FPGA可重配置原理及实现(2)——要求与标准

一、前言

         在之前的文章中着重介绍了FPGA的可重构技术,可重配置技术是Xilinx提供的用来高效利用FPGA设计资源实现FPGA资源可重复利用的最新的FPGA设计技术,这种技术的发展为FPGA应用提供了更加广阔的前景。在此基础上,我们简单介绍了与此技术相关的术语含义,最后介绍了FPGA可重构技术的应用。

        在本文中我们将继续介绍可重配置原理的要求与标准

二、可重配置的要求

1、可重配置要求使用Vivado 2013.3或更新的版本

2、Vivado 2017.3可重配置支持下面的器件

(1)7系列:包括几乎所有的Artix-7, Kintex-7, Virtex-7, and Zynq-7000 AP SoC 器件。但是不支持下列器件,即Spartan-7、Artix-7 7A12T 和 7A25T,以及采用单核的Zynq-7000器件((Z-7007S, Z-7012S, Z-7014S)。

(2)UltraScale系列:对于所有量产的器件(除了VU440以外),均支持布局和布线,以及产生比特流。对于ES2器件,默认禁止产生比特流,但是依然支持布线布线。

(3)UltraScale+系列:为这些设备(KU9P, KU15P, VU3P, VU7P, VU9P, VU13P, ZU7EV, ZU9EG, ZU19EG)启用了布局布线和比特流生成。启用了这些设备的布局布线,以及上述设备的工程硅(ES1、ES2)版本: KU5P、KU11P、KU13P、VU11P、ZU3EG、ZU5EV、ZU11EG、ZU15EG。这些设备默认禁用比特流生成。

3、要求为每个元素类型进行布局规划,用于定义可重构区域

(1)对于7系列来说,将数据块与帧/时钟区域边界垂直对齐,这将产生最佳效率,允许启用RESET_AFTER_RECONFIG。

(2)水平对齐规则也适用。

(3)对于UltraScale,布局规划更加灵活,Xilinx推荐停止Pblock短帧/时钟域边界以允许扩展的布线,这将极大地改善布线能力和QoR。

4、设计者负责自底向上/OOC综合,以及管理RM网表文件

(1)对于第三方的综合工具,禁止I/O插入

(2)对于vivado脱离上下文(out of context,OOC)的综合,将自动禁止I/O插入。

5、支持标准的时序约束,如果需要,还可提供额外的时序规划能力

6、建立了一套唯一的设计规则检查(DRCs),以帮助确保成功地完成设计

7、一个PR设计必须考虑部分重新配置的启动以及部分比特流文件的传递,无论是在FPGA内还是作为系统设计的一部分

8、Vivado设计套件包含对部分重构控制器IP。这个可定制的IP用于管理在任何Xilinx设备中进行部分重新配置的内核任务。它用于接收来自硬件或软件的触发器,管理握手和解耦任务,从内存位置获取部分比特流,并将它们传递到ICAP

9、一个PR必须包用于分区的由可变RM所使用的所有引脚的超集。如果一个RM使用来自另一个RM的不同输入或输出,则所产生的RM输入或输出可能无法连接到RM的内部。对于所有没有使用的输入和输出,这个工具通过在RM内部插入一个LUT1缓冲区来处理这个问题。LUT1的输出绑定到一个常数值,该常数的值可以由未使用的引脚的HD.PARTPIN_TIEOFF属性控制

10、比特流生成支持黑盒

11、对于用户复位信号,确定RM内部的逻辑是电平敏感还是边缘敏感。如果复位电路是边缘敏感的(因为它可能在某些IP中,如FIFOs),那么在重新配置完成后不应使用RM复位

三、可重配置的标准

1、对于7系列来说,遵循以下规则

(1)可重配置资源包括CLB,BRAM和DSP元件类型,以及布线资源

(2)不可以重配置时钟,以及时钟修改逻辑。因此,它们必须驻留在静态区域内,包括BUFG、BUFR、MMCM、PLL和类似的元件

(3)以下的元件不可以重新配置,必须驻留在静态区域内

  • I/O和I/O相关的元件(ISERDES, OSERDES, IDELAYCTRL等)
  • 串行收发器(MGT)和相关元件
  • 单个的结构特性元件(如BSCAN, STARTUP, ICAP, XADC)

2、对于UltraScale和UltraScale+器件来说,可重配置的元件范围扩大

(1)可重配置资源包括CLB,BRAM和DSP元件类型,以及布线资源

(2)可以重配置时钟,以及时钟正在修改的逻辑。(包括BUFG、BUFR、MMCM、PLL和类似的元件)

(3)I/O和I/O相关的元件(ISERDES, OSERDES, IDELAYCTRL等)

(4)串行收发器(MGT)和相关元件

(5)PCIe, CMAC, Interlaken, 和 SYSMON 块

(6)这些新元件的比特流粒度要求遵循特定的规则。例如,I/O的部分重新配置要求整个bank,加上该帧中的所有时钟资源一起都是可重配置的

(7)只有配置元件(如BSCAN, STARTUP, ICAP, 和FRAME_ECC)必须保留在设计的静态区域内

3、到可重构分区的全局时钟资源是有限的,这取决于设备和这些可重构分区所占用的时钟区域

4、由于实现IP使用的元件,或者IP要求的连接,因此可能会发生IP限制

        这些例子包括:

                (1)vivado调试核

                (2)包含嵌入式全局缓冲区或者I/O的IP模块

                (3)存储器IP控制器(MMCM和BSCAN)

5、必须初始化可重构模块,以确保重配置后的开始条件。对于除7系列以外的所有设备,在PR完成后自动应用GSR。对于7系列设备,GSR在满足RESET_AFTER_RECONFIG块要求后,可以使用RESET_AFTER_RECONFIG块属性打开

6、强烈建议使用去耦合逻辑。这样,在部分重构操作期间,就可以将可重构区域与静态部分的连接断开

7、必须对一个可重配置区域进行布局规划,这样,模块必须是一个可以物理隔离,并满足时间要求的块。如果该模块已完成,则建议通过非PR流程运行此设计,以获得对布局、布线和时序结果的初步评估。如果设计在非PR流程中存在问题,则应该在进入PR流程之前解决这些问题

8、尽可能多地优化一个RP的接口。如果RP上的接口引脚数量过多,可能会导致时序和布线问题

9、Virtex-7 SSI设备(7V2000T、7VX1140T、7VH870T、7VH580T)有两个基本要求。这些要求包括:

(1)可重构的区域必须完全包含在单个SLR中。这确保了全局重置事件在可重构模块中的所有元素之间得到正确的同步;所有超长连线(SLL)都包含在设计的静态部分中。SLL是不能重构的

(2)如果使用ICAP发送部分比特流,必须位于主SLR,它是这些器件的SLR1 。在ICAP上应用位置约束将其只能约束到ICAP_X0Y2或者ICAP_X0Y3。比特流的格式是贯穿4个SLR的标准菊花链。

10、UltraScale有一个与部分重新配置事件相关的新要求。在加载新的可重构模块的部分位流之前,必须“清除”当前的可重构模块,以准备重新配置。UltraScale+设备没有这个限制

11、支持部分位流的专用加密

12、通过write_bitstream使能器件使用每帧CRC检验机制,以确保在加载前每一帧都是有效的

13、实现工具禁止跨越PR边界的优化。通常,PR设计中,WNS路径是跨越RP边界的高扇出控制/复位信号。避免高扇出信号跨越RP边界,因为驱动器无法被复制

14、对于具有多个RP的设计,Xilinx建议不要在两个RP之间进行直接连接。这包括通过异步静态逻辑(未在静态中注册)的连接。如果两个RP之间存在直接连接,则必须在静态时序分析中验证所有可能的配置,以确保跨这些接口满足时序

四、小结

        本文中主要介绍了xilinx官方手册中给出的关于可重配置的要求和标准,文章基本来自于官方文档ug909的翻译。

你可能感兴趣的:(FPGA原理与结构,#,FPGA可重构技术,fpga,xilinx,fpga可重构)