使用Vivado Design Suite进行物理优化(一)

物理优化是对设计的negative-slack路径进行时序驱动的优化。物理优化有两种操作模式:布局后优化和布线后优化。

1、物理优化的操作模式

布局后优化模式
优化基于cell布局的时序预估进行。物理优化会自动整合因逻辑优化而产生的网表变化,并按需布局cell。
布线后优化模式
优化基于实际的布线延迟进行。除了自动更新逻辑变化后的网表并布局cell外,物理优化还会按需自动更新布线。
布线后物理优化最有效地应用于具有少量失败路径的设计。对于WNS(最差负时序裕量)小于-0.200纳秒或失败端点数超过200的设计,使用布线后物理优化可能会导致运行时间过长而质量改善有限。
总体而言,物理优化在布局后模式下更为激进,因为此时有更多的逻辑优化机会。在布线后模式下,物理优化倾向于更为保守,以避免破坏已经时序闭合的布线。在运行之前,物理优化会检查设计的布线状态,以确定使用哪种模式,即布局后优化或布线后优化。
如果设计没有negative-slack,并且请求了一个基于时序优化的物理优化,那么命令会迅速退出而不执行优化。为了平衡运行时间和设计性能,物理优化不会自动尝试优化设计中的所有失败路径。只有失败路径中占比最高的前几部分才会被考虑进行优化。因此,可以使用多次连续的物理优化运行来逐渐减少设计中的失败路径数量。

2、可用的物理优化

Vivado 工具会对内存中的设计执行物理优化,如下表所示。
物理优化可以通过选择相应的命令选项来限制为特定的优化。只有指定的优化会被执行,而其他所有优化都将被禁用,即使它们通常是默认执行的。
在这里插入图片描述
在这里插入图片描述
物理优化的命令选项说明

1、High-Fanout优化

High-Fanout优化按以下步骤进行:
①考虑具有negative-slack且在 WNS(最差负时序裕量)百分比范围内的高扇出网络进行复制。
②根据邻近性对负载进行聚类,并为每个负载集群复制和布局驱动器。
重新分析时序,如果时序有所改善,则提交逻辑更改。

2、Placement优化

通过重新布局关键路径上的所有cell来优化布局,以减少线延迟。

3、Routing 优化

通过重新布线和使用具有更短延迟的引脚来优化关键路径上的布线。

4、Rewiring

通过交换 LUT(查找表)上的连接来优化关键路径,以减少关键信号的逻辑层级数量。修改 LUT 方程以保持设计功能。

5、Critical-Cell优化

关键cell优化会复制失败路径中的单元。如果特定cell的负载布局得很远,那么该cell可能会被复制,并且新的驱动器会被布局在更接近负载集群的位置。虽然高扇出不是此优化发生的必要条件,但路径必须在最差negative-slack的百分比范围内失败时序。

6、DSP 寄存器优化

DSP 寄存器优化可以将寄存器从 DSP 单元移动到逻辑阵列中,或者从逻辑移动到 DSP 单元,如果这可以改善关键路径上的延迟。

7、Block RAM寄存器优化

Block RAM寄存器优化可以将寄存器从Block RAM cell移动到逻辑阵列中,或者从逻辑移动到Block RAM cell,如果这能改善关键路径上的延迟。

8、移位寄存器优化

移位寄存器优化可以改善移位寄存器单元(SRLs)与其他逻辑单元之间负时序裕量路径的时序。如果存在对移位寄存器单元(SRL16E或SRLC32E)的时序违规,优化会从SRL寄存器链的开始或结束处提取一个寄存器,并将其放置在逻辑结构中以改善时序。优化缩短了原始关键路径的线长。
优化仅将寄存器从移位寄存器移动到逻辑结构中,而从不从逻辑结构移动到移位寄存器,因为后者不会改善时序。
发生此优化的先决条件是:
• SRL地址必须为1或更大,以便有可以移出SRL的寄存器阶段。
• SRL地址必须是一个常数值,由逻辑1或逻辑0驱动。
• 必须存在从SRL单元开始或结束的时序违规,该SRL单元位于最差的关键路径中。
某些电路拓扑结构不会被优化:
• 串联在一起的SRLC32E以形成更大的移位寄存器不会被优化。
• 使用Q31输出引脚的SRLC32E。
• 结合到单个LUT中的SRL16E,同时使用O5和O6输出引脚。
从SRLs移动到逻辑结构的寄存器是FDRE单元。FDRE和SRL INIT属性会根据SRL地址进行相应的调整。
SRL16E地址的srl_inste递减以反映内部寄存器阶段减少了一个。由于srlopt寄存器被放置在更接近下游单元的位置,并且FDRE单元具有相对更快的时钟到输出延迟,因此原始的关键路径现在变短了。

9、Critical Pin 优化

关键引脚优化通过重新映射逻辑LUT输入引脚到更快的物理引脚来改进关键路径的时序。如果一个关键路径穿越映射到慢速物理引脚(如A1或A2)的逻辑引脚,那么会将其重新分配给更快的物理引脚(如A6或A5),如果这能改善时序的话。具有LOCK_PINS属性的单元会被跳过,并且该单元保留LOCK_PINS指定的映射。逻辑到物理引脚的映射由命令get_site_pins给出。

10、Block RAM启用优化

Block RAM启用优化可以改善涉及功率优化的Block RAM的关键路径的时序。
预放置的Block RAM功率优化会重新构造驱动Block RAM读写启用输入的逻辑,以减少动态功耗。放置之后,重新构造的逻辑可能会变得时序关键。Block RAM启用优化会逆转启用逻辑的优化,以改善关键启用逻辑路径上的时序裕量。

11、Hold-Fixing

Hold-Fixing尝试通过增加保持时间关键路径上的延迟来改进高保持时间违规者的时序裕量。

12、Negative-Edge FF Insertion

插入负边沿触发的寄存器来修复难以处理的保持时间违规。寄存器插入将一个保持时间关键时序路径分割成两个半周期路径,使其更容易满足保持时间要求。顾名思义,仅支持负边沿触发的寄存器插入,用于修复两个正边沿触发的顺序单元之间的保持时间违规。

13、Retiming

重新计时通过跨组合逻辑移动寄存器来改进关键路径上的延迟。phys_opt_design重新计时优化支持正向重新计时。

14、Forced Net Replication

强制网络复制强制复制网络驱动器,而不考虑时序裕量。复制基于负载放置,并需要手动分析以确定复制是否足够。如果需要进一步复制,可以通过连续命令多次复制网络。尽管忽略了时序,但网络必须位于时序受限的路径中才能触发复制。

15、SLR-Crossing Optimization

执行放置后或布线后优化,以改进跨SLR(Super Logic Region,超级逻辑区域)连接的路径延迟。优化会调整SLR交叉处驱动器和负载或两者的位置。如果驱动器有跨SLR和SLR内部的负载,则布线后优化支持复制。与-slr_crossing_opt开关一起使用-tns_cleanup开关时,支持TNS清理选项。TNS清理允许在执行跨SLR路径优化时,其他路径上的一些时序裕量下降,只要设计的总体WNS(最坏负时序裕量)没有下降。对于UltraScale设备,可以针对TX_REG或RX_REG SLL寄存器进行优化。在UltraScale+设备中,同一跨SLR连接上的TX_REG和RX_REG寄存器都可以作为目标。

16、Clock Optimization

插入全局缓冲器以在关键路径的起点和终点之间创建有用的偏斜。为了改进建立时间,会插入缓冲器来延迟目标时钟。

  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值