18lickc新利
的意见

eFPGA配置接口的重要性

CPU、串行Flash和JTAG配置模式各有其独特的优点。

受欢迎程度

efpga因其灵活性和可编程性而在整个半导体行业中备受赞誉,特别是在高性能计算应用方面。让我们仔细看看eFPGA是如何配置的。

ASIC或SoC设计中的每个eFPGA实例都必须在系统上电后进行配置,因为这种eFPGA采用非易失性SRAM技术来存储其配置位。每个实例都包含自己的FPGA配置单元(FCU),用于初始化、配置和管理eFPGA的核心逻辑阵列。

例如,在ASIC或SoC设计中实例化三个efpga将包括芯片上的三个fcu,每个fcu都有自己的一组配置引脚和配置模式引脚,以确定配置引脚如何操作。


图1:在ASIC或SoC设计中,Speedcore eFPGA的边界逻辑包括FCU和eFPGA的核心逻辑。

如图1所示,FCU的配置模式引脚提供三个模式相关的块,标记为CPU, Flash和JTAG,这是FCU中可用的三种配置接口。FCU的配置模式引脚以及eFPGA的JTAG控制器中基于寄存器的设置决定了配置引脚的工作方式。

配置模式引脚可以单独在CPU和Flash模式之间进行选择。然而,JTAG配置模式独立于配置模式引脚,并通过发送FCU命令来启用,该命令在eFPGA的JTAG TAP控制器中设置适当的位。一旦启用JTAG模式,它将覆盖配置模式引脚的设置,直到禁用为止,允许JTAG控制器控制eFPGA,而不管配置模式设置如何。

这三种配置模式——CPU、串行Flash和JTAG——都有各自的优势。

CPU配置模式
FCU的CPU配置模式允许外部CPU作为主CPU来控制eFPGA的编程操作,eFPGA在该模式下充当从CPU。CPU模式在1位、8位、16位、32位或128位宽的并行接口上运行。

CPU模式是Speedcore eFPGA最快的配置模式,因为它允许eFPGA的配置比特流通过128位总线(最宽配置)以最大支持的时钟速率进入FCU。所有eFPGA配置模式都支持100 MHz的最大时钟速率,因此CPU配置模式下的最大比特流配置数据速率是轻快的12.8 Gbits/sec。

串行Flash配置模式
FCU的Speedcore eFPGA的串行Flash配置模式允许FCU从SPI串行NOR闪存加载配置位流。在这种模式下,eFPGA是主控芯片,为SPI闪存提供时钟。与CPU配置模式一样,Serial Flash配置模式的最大时钟速率为100 MHz。

然而,并不是所有的串行闪存设备都能在100mhz下工作。为了适应这种潜在的限制,FCU可以以三个额外的时钟速率驱动闪存的时钟,这些时钟速率来自于ASIC/SoC提供给FCU的时钟。串行闪存的四个可用时钟速率是:

  • 除以1(全速)
  • 除以2
  • 除以4
  • 除以8(默认)

在使用Achronix 's生成配置位流时选择时钟速率ACE设计工具.使用ACE GUI的“比特流生成实现选项”部分中的“串行Flash时钟分配器”下拉菜单配置选择。最初在上电时,FCU的串行Flash配置模式使用一个除8的闪存时钟,因为这是最安全的时钟速率,兼容任何闪存设备。在配置位流早期嵌入的FCU命令可以增加flash内存的时钟速率(由工具设置),从而在从串行闪存加载配置时减少整体配置时间。

Speedcore eFPGA的串行闪存模式专为1位宽闪存设备而设计。同样,也可以在4位模式下操作,即从4个1位宽闪存设备中的每一个接收一个位(如下图所示)。这导致更快的配置时间,并允许存储更大的配置比特流。


图2:虽然串行Flash模式用于1位宽的闪存设备,但它可以在4位模式下运行,该模式从4个1位宽的闪存设备中每个接收一个位,以实现更快的配置时间和更大的配置位流存储。

JTAG配置模式
FCU的JTAG配置模式采用符合IEEE标准1149.1的eFPGA的JTAG Tap控制器。由于JTAG实现用于比特流编程和实时系统内控制和观察,JTAG TAP控制器可以在接收到适当的数据寄存器(DR)命令后控制FCU,而不管eFPGA的配置模式引脚设置。

当使用JLOAD DR指令设置为JTAG配置模式时,Speedcore TAP控制器接受由ASIC或SoC的JTAG TDI数据输入引脚上的JTAG端口提供的配置数据,并将其转换为FCU内JTAG逻辑的指令。FCU中的JTAG逻辑使用这些DR指令组装标准的128位配置帧,转发到FCU状态机,加载eFPGA的配置内存并配置eFPGA的核心逻辑。

虽然JTAG端口可以像eFPGA的其他配置模式一样以最大100 MHz的时钟速率运行,但JTAG配置模式是三种配置模式中最慢的。这是因为它是一个1位接口,加上添加到配置位流中的大量通信开销位,以符合JTAG指令协议。

当设计人员配置eFPGA时,他们也需要考虑编程时间。在这个由两部分组成的博客系列的第2部分中,将使用上面讨论的三种eFPGA配置模式来配置编程时间。

有关更深入的配置技术,包括将多个Speedcore eFPGA核连接到ASIC或SoC上的一个CPU核、比特流加密功能和CRC错误检查的方法,请下载Speedcore配置用户指南(UG061)



留下回复


(注:此名称将公开显示)

Baidu