针对UltraScale/UltraScale+芯片DFX应考虑的因素有哪些(1)

描述

对于UltraScale/UltraScale+芯片,几乎FPGA内部所有组件都是可以部分可重配置的,这包括CLB中的查找表(LUT)、触发器(FF)、移位寄存器(采用LUT实现)、分布式RAM/ROM等,Block如BRAM、URAM、DSP、GT(高速收发器)、PCIe、CMAC、Interlaken MAC等,SYSMON(XADC和System Monitor),时钟单元如BUFG、MMCM和PLL等,I/O相关单元如ISERDES、OSERDES和IDELAYCTRL等。只有与配置相关组件必须在静态区,包括BSAN、CFG_IO_ACCESS、EFUSE_USR、ICAP、FRAME_ECC、MASTER_JTAG、STARTUP、和USR_ACCESS。

Pblock的大小

DFX设计中,动态区都有专属的Pblock。Pblock的最小范围是由PU(ProgrammableUnit)决定的,而一个PU的大小是跟资源类型紧密相关的。例如,对于SLICE,其PU为所属的CLB以及与之相邻的一个CLB,同时还包括这两个CLB共享的Interconnect,这可通过如下Tcl命令获取,注意最外层的Tcl命令get_tiles需要添加选项-pu。如果Vivado版本是2023.1或更高版本,可以使用命令get_dfx_footprint外加选项-pu实现同样功能。

移位寄存器移位寄存器

移位寄存器

对于BRAM(36Kb),其PU包含自身之后还包含与之相邻的5个CLB以及共享的Interconnect,如下图所示。

移位寄存器

对于PCIE,其PU包含自身之后还包含两侧各60个共120个CLB以及共享的Interconnect,如下图所示。

移位寄存器

移位寄存器

对于高速收发器,其PU包含自身之外还包含与之相邻的60个CLB以及共享的Interconnect,如下图所示。

移位寄存器

移位寄存器

对于PackagePin,其PU包含其所在IO Bank的所有资源,如下图所示,这也表明了同一个IO Bank内的管脚要么均在静态区,要么均在动态区。

移位寄存器移位寄存器

在UltraScale/UltraScale+ FPGA中,Pblock不再需要设置属性RESET_AFTER_RECONFIG,但需要将属性SNAPPING_MODE设置为on。这样工具给了用户足够的灵活性去画Pblock,但为了保证Pblock不违反PU的要求,工具又会在已画Pblock的基础上自动调整,这正是SNAPPING_MODE的作用。

对于DFX工程,在执行完布局布线之后,会生成一个名为hd_visual的文件目录,在此文件夹下有两个Tcl文件,如下图所示,文件名为pblock__Placement/Routing_AllTiles.tcl。

移位寄存器

打开布线后的网表文件,执行source命令即可看到整个Pblock的实际布局范围和布线范围。图中白色高亮标记为原始Pblock范围,红色标记为实际Pblock的布局范围,黄色标记为实际Pblock的布线范围,包括了扩展的布线区域。对于Vivado2023.1及之后版本,可直接使用命令get_dfx_footprint实现同样功能。

sourcepblock_my_math_placement_AllTiles.tcl

移位寄存器

移位寄存器

对于UltraScale/UltraScale+ FPGA,动态区Pblock的高度可以不是以Clock Region对齐,这在上述案例中已有体现。换言之,上图中Pblock所在Clock Region的其他区域仍然可以供静态区使用,但不能供其他动态区使用。这意味着同一个ClockRegion只能拥有一个RP,所以可以看到“可重构”仍然是按照ClockRegion作为基础帧执行的。

扩展的布线区域

对于动态区的Pblock,其属性CONTAIN_ROUTING的值为TRUE,意味着动态区的布线也在划定的Pblock内。但实际上,最终的布线区域是可扩展的,不仅是已画好的Pblock,还包括Pblock之外的布线资源。从而,与RM输入/输出端口相连的网线就可能出现扩展的布线区域内(Pblock之外),但只要Partition Pin落在扩展区域内,就可以不用限定PartitionPin的位置。这里并不是说Pblock的形状不规范才导致布线区域扩展,即使是正规的矩形Pblock也可能会有扩展的布线区域。

但一个事实是扩展的布线区域一定是以Clock Region为边界的。由于动态区布线区域的扩展,动态区对应的bit文件大小就会增大,但是如果动态区对应的bit文件大小比设计性能更为关键,可通过如下命令禁止动态区性能扩展。另外,7系列FPGA是不支持动态区布线区域扩展这一功能的。从Vivado2020.2开始,算法的改进促使动态区布线扩展区域更小同时这种更小的布线区域对布线性能影响也更小。

移位寄存器 






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分