vivado 重复使用合成结果、约束冲突

重复使用合成结果

增量编译的性能可以与合成中的变化量相关联。重复使用的合成结果限制了更改量,从而提高了性能整体增量编译流的一部分。

Vivado合成

Vivado合成可以增量运行,只需很少的设置。这需要一个检查点在合成之前阅读。它是在项目模式下运行时自动设置的,但不是项目模式下,必须将其添加到脚本中。有关更多信息,请参阅Vivado Design Suite用户指南中的增量合成:合成(UG901)。IP和块设计在上下文外模式下自动合成,并将重用缓存结果(如果可用)。有关更多信息,请参阅Vivado Design中的断章取义设计流程Suite用户指南:设计流程概述(UG892)。

Synplify合成

Synplify可以使用编译点流来保存结果。Synplify提供了两种不同的编译点流,它是自动的和手动的。在自动编译点模式中,编译点是根据现有的层次结构和利用率通过合成自动选择的估计。这是一种按钮模式。除了启用流之外,不需要任何操作就你而言。要启用,请选中GUI中的“自动编译点”复选框,或添加以下内容设置为Synplify项目:

set_option -automatic_compile_point 1

手动编译点流提供了更多的灵活性,但需要更多的交互选择编译点。流程包括编译设计,然后使用SCOPE编辑器“编译点”选项卡或define_Compile_point设置。有关编译的更多信息点流,请参阅Synplify联机帮助。

保存重用后检查点

read_checkpoint-incremental之后,将引用检查点应用于当前在设计中,增量重用数据在整个流程中都会保留下来。如果保存了检查点,则在相同或单独的Vivado Design Suite会话中重新加载,它仍处于增量编译中模式请考虑以下命令序列:

opt_design; # optimize the current design
read_checkpoint -incremental reference.dcp; # apply reference data to
current design write_checkpoint incr.dcp; # save a snapshot of the current
design
read_checkpoint incr.dcp
place_design
write_checkpoint top_placed.dcp; # save incremental placement result
route_design

在read_checkpoint incr.dcp时,Vivado工具确定存在增量数据,并且随后的place_ design和route_design命令递增地运行。即使退出并重新启动Vivado Design Suite,也可以按照以下命令序列route_design命令以增量模式运行,使用原始路径中的路由数据引用检查点引用.dcp:

read_checkpoint top_placed.dcp
phys_opt_design
route_design

约束冲突

修订设计的约束可能与参考检查点的物理数据相冲突。当发生冲突时,行为取决于所使用的约束。如所示以下示例。

LOC约束冲突示例

约束为单元cell_A分配固定位置RAMB36_X0Y0。然而,在参考中检查点引用.dcp,单元_A被放置在RAMB36_X0Y1,并且不同的单元单元_B被放置放置在RAMB36_X0Y0处。在运行read_checkpoint-incremental reference.dcp之后,cell_A被放置在X0Y0和单元_ B被取消放置。单元cell_B是在增量放置过程中放置的。

PBlock冲突示例

在引用检查点中没有Pblock,但已将一个Pblock添加到当前运行中。如果存在冲突,则使用来自参考检查点的放置数据。

影响计时性能的因素

有许多因素会影响工具保持或提高性能的能力相对于参考运行。以下列表涵盖了工具可能无法使用的主要原因达到预期性能

•重复使用水平低。当重复使用率较低时,大量预放置细胞可能会限制为新逻辑找到最佳位置的能力。建议在中使用默认流这些案例。

•关键路径的变化。如果路径变得更糟,例如添加更多的单元,则计时无法保持相同的性能。对于这些情况,建议进行审查改变并进一步优化。

•变化发生在模具的堵塞区域。当设计可接受的范围有限时新单元格有时最好使用默认流找到新的解决方案。在里面在这种情况下,用户可以从运行默认流和增量流中获益看看哪种情况下表现最好。

•指令设置。当RuntimeOptimized设置为指令时,工具将不会尝试改进超出参考设置的范围。

影响编译时间改进的因素

影响编译时改进的因素包括:

•时间关键领域的变化量。如果关键路径的放置和布线不能重复使用,需要付出更多的努力来保持时间。此外,如果小的设计更改引入参考设计中不存在的新时序问题、更高的工作量和运行时间可能需要,并且设计可能不符合时间要求。

•地点和路线运行时间的初始化部分。在短距离和路线运行中Vivado放置器和路由器的初始化开销可能会消除递增的地点和路线过程。

孤立路由段

一些单元可能已经从当前设计中删除或在放置期间移动,从参考设计中留下孤立的管段。如果您在Vivado IDE中运行,您可能会看到潜在的问题网络。这些孤立或连接不正确的路由分段在Vivado路由器的增量路由期间被清理。放置过程中会出现以下INFO消息。

INFO: [Place 46-2] During incremental compilation, routing data from the
original checkpoint is applied during place_design. As a result, dangling
route segments and route conflicts may appear in the post place_design
implementation due to changes between the original and incremental
netlists. These routes can be ignored as they will be subsequently resolved
by route_design. This issue will be cleaned up automatically in
place_design in a future software release.

配置增量流

您可以使用config_implementation命令配置增量流。到查看该命令的默认值和当前值,请使用report_config_implementation命令。要更新这些值,请使用config_implementation命令。以下是一个示例:

report_config_implementation
config_implementation { {incr.ignore_user_clock_uncertainty true} }

注意:通过用相同的方法对键值对进行分组,可以一次更新多个元素如上图所示,位于外支架内。您可以配置以下内容:

•自动增量中的小区匹配、网络匹配和WNS的最小阈值流

•当自动增量流量标准时,综合和实施的行为不满足。此检查发生在合成运行开始时和read_checkpoint-用于实现的增量。可以设置为Terminate停止流或切换到退出增量流但继续的DefaultFlow具有默认流量设置。

•流程是否忽略了通常用于过度拉紧放置器并强制更紧密地放置。

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cckkppll

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

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

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

打赏作者

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

抵扣说明:

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

余额充值