UltraScale/UltraScale+ DFX设计检查清单

2024-01-19 17:04:10 浏览数 (1)

采用UltraScale/UltraScale 芯片进行DFX设计时,建议从以下角度对设计进行检查。

动态区是否包含全局时钟缓冲器或MMCM/PLL?

当这些时钟物理单元出现在动态区,那么相关的物理单元都要以PU(Programmable Unit)的一部分出现在动态区。如下图所示,图中红色标记为MMCM,黄色标记为相关的PU,包括以整个Clock Region为高度的I/O Bank,与之紧邻共享布线资源的CLB。

这就意味着在画Pblock时,Pblock的高度要Clock Region对齐,同时Pblock的形状最好为矩形。一旦为其他形状,最高的矩形部分必须与Clock Region对齐且包含I/O Bank和相应的全局时钟缓冲器或MMCM/PLL,如下图所示。图中右侧高亮矩形为最高的矩形,其边界与Clock Region对齐,且包含上图所示的黄色区域。

是否使用了下列逻辑单元:

BSCAN/DCIRESET/FRAME_ECC/ICAP/STARTUP/USR_ACCESS?

这些模块必须放置在静态区。

是否设置了Pblock的边界?

对于UltraScale/UltraScale 芯片,DFX设计时Pblock的X轴边界(水平方向)可以是PU如CLB、BRAM、DSP等,Y轴(竖直方向)边界可以时钟区域(CR)或IO Bank为边界,如果动态区包含了时钟缓冲器,那么整个CR都要在动态区。

如果是SSI芯片,动态区是否跨die?

如果目标芯片为SSI芯片,建议将动态区放置在一个SLR内。如果不可避免动态区要跨die,那么就要保证足够的跨die资源(LAGUNA寄存器)可用。这时最好将die边界的时钟区域放置在动态区,例如,目标芯片为xcvu5p,有两个die。动态区如果在die1,那么还要包括die0的边界CR,即die1 CR(die0边界)。

高速收发器是否在动态区?

UltraScale/UltraScale 的GT是支持动态可重配置的,如果GT出现在动态区,那么GT所在的整个Quad包括GT_CHANNEL、GT_COMMON和BUFG_GT都必须包含在对应的动态区。

输入/输出管脚是否出现在动态区?

如果输入/输出管脚出现在动态区,那么I/O管脚所在的Bank包括I/O逻辑(XiPhy)和时钟资源也要在动态区。同时同一个RP下的不同RM的I/O电平标准和方向必须保持一致,且要遵循DCI级联规则。

同一个RP下的逻辑是否要封装在一起?

DFX的直观体现是同一个RP下有不同的RM,所以要动态可重配置的逻辑单元必须封装在一个RM内。

关键路径是否在RM内?

RP的边界会限制一些优化,因此,建议将关键路径放置在RM内。方法是将RM的输入/输出管脚都用流水寄存器打一拍,即给RM的信号在RM内先打一拍再使用,RM输出的信号先打一拍再给出去。

Pblock是否合理?

Pblock的高度应与CR高度一致,以CR为边界。若存在多个RP,避免RP共享同一个CR。Pblock的宽度以PU为准进行划分。Pblock的形状为标准矩形,避免阶梯或回子形等特殊形状。

在RM输出端口是否设置了解耦逻辑?

在加载RP的部分bit文件时,RM输出端口呈现不确定状态,这时要添加解耦逻辑,以防止加载过程干扰动态区正常工作。

是否对configuration进行了验证?

要使用命令pr_verify对所有的configuration进行验证,保证匹配。

对综合后的设计是否执行了DRC检查?

对于DFX设计,综合后的DRC检查尤为重要,这可在设计早期发现潜在的问题。

是否要对RM侧进行调试?

如果需要,具体方法可参考这篇文章。

如何对DFX设计进行调试?

0 人点赞