前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >针对UltraScale/UltraScale+芯片DFX应考虑的因素有哪些(1)

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

作者头像
Lauren的FPGA
发布2023-12-17 14:28:00
3420
发布2023-12-17 14:28:00
举报
文章被收录于专栏:Lauren的FPGA

对于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(Programmable Unit)决定的,而一个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,如下图所示。

对于Package Pin,其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_<RP的名字>_Placement/Routing_AllTiles.tcl。

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

source pblock_my_math_placement_AllTiles.tcl

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

扩展的布线区域

对于动态区的Pblock,其属性CONTAIN_ROUTING的值为TRUE,意味着动态区的布线也在划定的Pblock内。但实际上,最终的布线区域是可扩展的,不仅是已画好的Pblock,还包括Pblock之外的布线资源。从而,与RM输入/输出端口相连的网线就可能出现扩展的布线区域内(Pblock之外),但只要Partition Pin落在扩展区域内,就可以不用限定Partition Pin的位置。这里并不是说Pblock的形状不规范才导致布线区域扩展,即使是正规的矩形Pblock也可能会有扩展的布线区域。但一个事实是扩展的布线区域一定是以Clock Region为边界的。由于动态区布线区域的扩展,动态区对应的bit文件大小就会增大,但是如果动态区对应的bit文件大小比设计性能更为关键,可通过如下命令禁止动态区性能扩展。另外,7系列FPGA是不支持动态区布线区域扩展这一功能的。从Vivado 2020.2开始,算法的改进促使动态区布线扩展区域更小同时这种更小的布线区域对布线性能影响也更小。

转载事宜请私信 | 获得授权后方可转载

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术驿站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档