增量实施
增量实现是指增量编译的实现阶段设计流程:
•通过重用参考设计中的先前布局和布线,保持QoR的可预测性。
•加快地点和路线的编制时间或尝试最后一英里的计时关闭。
下图提供了增量实现设计流程图。该图还说明了增量合成流程。有关增量的更多详细信息合成流程,请参阅Vivado Design Suite用户指南中的“增量合成”部分:合成(UG901)。
增量实施术语
增量流使用以前运行的变体以及当前设计变体。在里面为了保持清晰的理解,使用了以下术语:
参考设计
参考设计优选地是来自相同的最近迭代的完全路由检查点设计要使用不同的设计变体,重要的是参考设计与增量设计相匹配。虽然可以将放置的检查点用作作为参考,与路由检查点相比,效益会降低;计时将不那么一致,编译时间会更高。参考设计必须与设备相匹配,建议与工具版本相匹配但不是一个严格的要求。
增量设计
增量设计是要通过实现工具运行的更新设计。它可以包括RTL更改、网表更改或两者兼而有之,但这些更改通常应小于5%。在发出read_checkpoint-incremental命令之前,不知道正在使用增量实现流。因此,重要的是不要引入当与参考设计进行了比较。允许更改约束条件,但约束条件的普遍收紧将产生重大影响放置和路由,并且通常最好添加到增量流之外。运行增量地点和路线将增量设计加载到内存中后,通过加载使用read_checkpoint-incredential<dcp>命令参考设计检查点。Vivado读取参考检查点后,将采取以下操作:
•与参考运行中的物理优化相匹配的物理优化是在自动增量设计。
•将增量设计中的网表与参考设计进行比较,以确定匹配细胞和网。
•重复使用参考设计检查点的放置,将匹配单元格放置在增量设计。
•路由被重新用于在每个负载引脚的基础上路由匹配网络。如果负载销由于如果网表发生更改,则其路由将被丢弃,否则将被重用。有可能部分重复使用的路由。如果它提高了性能或有助于可路由性。参考设计和当前设计之间不匹配的设计对象为在增量放置完成后放置,并在布线完成后布线。
增量模式
当用户选择增量模式时,该工具可能仍然无法运行完整的增量流,如果它确定设计更改过多。增量实施通常运行如果细胞重复使用率高于80%。所选流量为:
•使用增量优化算法的完整位置和路线。放置和布线尽可能多地重复使用。目标WNS由以下两者的组合确定引用检查点和指令。根据提供的指令选择指令到read_checkpoint-incremental-directional<directional>开关。
•使用默认算法的完整位置和路线。放置和布管不会重复使用。目标WNS始终为0.000。指令取自提供给以下任意一个的指令开关place_design-指令<directive>或route_design-指令<指令>命令。
这一决定是在设计修改和小区匹配过程之后做出的read_checkpoint-增量命令。由于此评估是在更改后进行的设计是为了改进匹配,因此它与运行纯默认流不同这些变化是持久的。当进入增量模式时,可以看到以下消息:
自动增量
自动增量实现旨在利用的更快编译时间增量实施,同时不影响WNS等结果的质量。它是的子集具有更严格控制的完整增量流量,以确保性能不会降低。它有效符合以下标准:
1.仅当WNS>=-0.250 ns时才更新参考检查点。这只是主动的以项目模式管理。在非项目流中,用户必须遵循下面提供的脚本。
2.在read_checkpoint-incremental期间为WNS和重用设置更高的目标阶段
•94%的细胞匹配
•90%的净匹配
•WNS>=-0.250 ns
使用以下命令激活流:
更新检查点时,以下脚本将确保WNS没有降级超出可接受的限度:
增量指令
有三个指令可以控制增量流的行为。增量指令使用命令设置:
运行时间优化
RuntimeOptimized指令试图重复使用来自参考运行尽可能。计时目标将与参考运行相同。如果参考运行的WNS为-0.050,则增量运行不会尝试关闭此时间设计,而且也以-0.050为目标。这只会影响设置时间。这是默认行为当没有指定指令时。
计时结束
TimingClosure指令将重用引用中的放置和布线,但它会撕毁不符合时间安排的路径,并尝试关闭它们。运行一些运行时密集型算法以获得尽可能多的时间改进,但由于位置很大程度上被提前放弃收益有限。该技术在参考WNS>-0.250 ns的设计中是有效的。
注意:为了获得更多的关闭时间,请运行report_qor_advances以生成自动设计增强。
快的
快速是一种特殊模式,在放置和路线期间不调用计时器,而是使用相关逻辑的放置作为指导。这是最快的模式,但不适用于大多数设计。设计需要WNS>1.000 ns才能有效。这些通常是ASIC仿真或原型设计。
注意:在2019.1及之前的版本中,通过的指令映射实现了相同的行为place_design和route_design。Explore指令已映射到TimingClosure,Quick映射到映射到RuntimeOptimized的Quick和其他指令。
小心!从2019.1及更早版本升级的用户,他们正在为指定Explore或Quick指令place_design将需要指定增量指令以实现中的等效功能2020.1.
其他选项
使用read_checkpoint-incremental时,以下选项可用命令
-auto_incremental选项
这将启用自动增量中所述的自动增量流。
-fix_objects选项可用于锁定单元格的子集。这些细胞不会被增量放置和布线工具。-fix_objects选项仅适用于匹配并且被识别用于小区重用。
示例
以下是-fix_objects用法的示例:
•要重用所有对象并仅修复块内存位置,请执行以下操作:
-force_incr选项
-force_incr选项可用于强制增量实现流而与递增标准检查无关。如果未指定增量实现流可能退出并以非增量流或默认流继续。可以使用此选项,而不是修改增量实现配置更新中的小区匹配、网络匹配和WNS的最小阈值的值自动递增流量。
注意:-force_incr仅与-increative开关一起使用。