vivado 布局优化、自动流水线

使用-unpace选项

取消放置选项取消放置设计中没有固定位置的所有单元和所有端口。具有固定位置的对象的IS_LOC_fixed属性值为TRUE。

使用-no_timing_driven选项

-no_timing_driven选项禁用默认的计时驱动放置算法。这根据导线长度进行更快的放置,但忽略过程中的任何时间约束安置过程。

使用-timing_summary选项

放置后,将估计的时间摘要输出到日志文件。默认情况下,数字反映了砂矿的内部估计。例如

INFO: [Place 30-746] Post Placement Timing Summary WNS=0.022. For the most
accurate timing information please run report_timing.

为了以稍长的运行时间为代价获得更高的准确性,您可以使用-timing_summary选项,强制放置程序根据结果报告时间摘要来自静态正时发动机。

INFO: [Place 30-100] Post Placement Timing Summary | WNS=0.236 | TNS=0.000 |

•WNS=最差负松弛

•TNS=总负松弛

使用-verbose选项

要更好地分析放置结果,请使用-verbose选项查看单元和I/O位置。

由于可能会有大量额外的信息。如果您认为-verbose选项可能会有所帮助,请使用它。

使用-post_place_opt选项

放置后优化是一种放置优化,可以潜在地提高关键以牺牲额外运行时间为代价的路径定时。优化是在完全放置的违反时序的设计。对于前几条关键路径中的每一条,放置者都会尝试移动关键小区以改善延迟,并且如果它们改善了估计的延迟则提交新的小区布置。对于具有较长运行时间和相对更关键路径的设计,这些放置过程可能会进一步改善时机。

使用-no_psip选项

-no_psip选项禁用放置程序中的默认物理合成算法。

使用-no_bufg_opt选项

-no_bufg_opt选项禁用放置程序中的默认bufg插入算法。

使用-ultrasthreads选项

此选项仅适用于UltraScale+SSI和vu440设备,并通过将general.maxThreads指示的多个线程尽可能均匀地分布在多个SLR。放置结果会略有不同,这取决于是否使用超线程

自动流水线

您可以选择在放置过程中插入额外的流水线寄存器,以解决定时关闭问题对特定总线和接口的挑战。在自动流水线模式下使用AXI寄存器片AXI寄存器切片IP核心通常用于在内存之间添加流水线寄存器映射或流式AXI接口,以帮助缩短计时。

对于较大的设备,添加右侧在不过度增加寄存器利用率和应用程序延迟的情况下进行流水线操作是一个共同的挑战。为了简化管道插入任务并允许Vivado砂矿器灵活性,您可以使用AXI寄存器切片IP核心的自动流水线优化功能。启用此功能后,将进入一个特殊的物理合成阶段(在布图规划和全局砂矿阶段)根据设置时间间隙插入和放置额外的管道阶段和SLR距离。AXI寄存器切片IP核保持符合AXI握手尽管由于使用小型FIFO而增加了延迟。您可以在IP配置向导中启用此功能。设置寄存器切片选项(REG_*)到多SLR交叉。此外,为所有Multi-SLR设置“使用定时驱动的管道插入”channels选项设置为1以启用自动流水线。下图显示了一个示例。

在自定义界面上使用自动流水线自动流水线并不局限于AXI寄存器切片IP。您还可以在上控制自动流水线使用下表中显示的属性的自定义接口,这些属性在RTL。有关详细信息,请参阅《Vivado Design Suite属性参考指南》(UG912)。

属于同一AUTOPIPELINE_GROUP的所有网络必须具有相等数量的管道插入每个标记信号上的寄存器。以下是其他注意事项:

•如果AUTOPIPELINE_GROUP没有引用AUTOPIPELINE_INCLUDE组,则插入AUTOPIPELINE_GROUP的管道阶段数必须介于0和之间AUTOPIPELINE_MIT。

•如果AUTOPIPELINE_GROUP引用AUTOPIPELINE_INCLUDE组,则插入到AUTOPIPELINE_GROUP和AUTOPIPELINE_INCLUDE中的管道阶段组必须介于0和AUTOPIPELINE_LIMIT之间。指定AUTOPIPELINE_GROUP、AUTOPIPELINE_LMIT和RTL中寄存器上的AUTOPIPELINE_INCLUDE属性,Vivado工具会自动将属性传播到直接连接到寄存器输出的网络。为了最好定时QoR,AMD建议如下:

•仅将AUTOPIPELINE_*属性应用于没有时钟启用和重置的寄存器控制信号。

•为界面两侧创建不同的层次结构,并应用不同的USER_SLR_ASSIGNMENT,每侧都有一个不同的字符串。字符串不得为SLR<n>。软地板规划约束引导Vivado放置器移动两组根据需要向不同的SLR注册以提高定时QoR。例如,如果层次结构hierA包括源寄存器,hierB包括目标寄存器,则必须添加以下约束:

set_property USER_SLR_ASSIGNMENT apSrcGrpA [get_cells hierA]
set_property USER_SLR_ASSIGNMENT apDstGrpB [get_cells hierB]

重要!自动流水线功能改变了设计的延迟。因此,您必须确保该功能对于指定的AUTOPIPELINE_ MIT范围保持正确。如果握手电路是必需的,您必须添加适当的逻辑,如FIFO,具有足够的深度以支持背压而不会丢失数据。Vivado工具不会验证设计逻辑的正确性。

注意:为了获得最佳定时QoR结果,必须在没有时钟的寄存器上设置自动管道属性启用或重置逻辑。下图显示了自动流水线属性如何在AXI寄存器切片中使用RTL。

以下逻辑图显示了带有标记网络的AXI寄存器切片的一个AXI通道具有自动管道属性。

审查自动流水线实现结果

以下表格在的楼层规划阶段打印在Vivado日志文件中地点设计(_D):

•由于自动管道插入导致的延迟增加摘要:此表详细说明了为每组插入的管道阶段。

•物理合成优化摘要:此表显示插入的总数量流水线寄存器和优化的自动流水线组的数量(优化单元/网络)。下图显示了由于自动管道导致的延迟增加摘要的示例插入表。

插入的流水线寄存器可以根据它们的名称进行检索,如下所示:

<origCellName>_psap and <origCellName>_psap_<N>

下图显示了从SLR2到SLR0的路径,其中有九个管道级在place_design期间自动插入。

下图显示了设备视图中的相同示例。

  • 17
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cckkppll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值