要使用智能设计运行功能特性 , 需要 Vivado 工程。这是因为需要进行运行管理。以下指示信息解释了创建综合后工程的最简单方法。这些信息适用于以下流程的用户:
• 非工程实现运行
• 使用较低版本的 Vivado 或第三方综合工具进行综合
访问智能设计运行功能特性的最简单方法是给综合后工程添加单个完整的设计 DCP 源文件。这样即可提供完整的网表和所有设计约束。创建此工程时, 遵循 创建智能设计运行 部分中的步骤进行操作即可启动 IDR 。
1. 从现有实现运行生成单一检查点。要执行此操作 , 请在实现运行 Tcl 脚本中找到 opt_design 调用 , 并在此阶段之前写入一个检查点。下面给出了 1 个示例 :
write_checkpoint -force <PreOptDesign>.dcp
opt_design -directive Explore ; ## FOR EXAMPLE ONLY ##
最早的完整设计检查点是在 opt_design 之后写入的 , 无需用户干预。但理想情况下 , 最好在运行 opt_design 之前写入检查点。在此情况下, 应使用 opt_design 前的 Tcl 挂钩来写入检查点。在 Tcl 脚本中添加 write_checkpoint 行 , 如果存在冲突 , 则在 init_design ( link_design ) 之后或者在 opt_design 之前
插入该行 :
add_files -fileset utils_1 -norecurse ./test.tcl
set_property STEPS.INIT_DESIGN.TCL.POST [get_files ./test.tcl -of
[get_fileset utils_1] ] [get_runs <ImplRun>]
或 set_property STEPS.OPT_DESIGN.TCL.PRE [get_files ./test.tcl -of
[get_fileset utils_1] ] [get_runs <ImplRun>]
2. 如有检查点可用 , 请创建综合后工程 , 可使用“ New Project ” Wizard ( 新建工程向导 ) 来轻松创建该工程。创建 工程的等效 Tcl 代码如下所示 :
create_project <ProjectName> <ProjectDirectory> -part <PartName>
set_property design_mode GateLvl [current_fileset]
add_files -norecurse <PreOptDesign>.dcp
受支持的系列和设计流程
下表汇总了该版本中 IDR 支持的器件系列和设计流程。
QoR 建议
凭借以下策略 , QoR 建议可用于改善设计满足时序的能力 :
• 在命令中添加开关 , 如 opt_design
• 在单元和信号线之类的设计对象中添加属性
• 完整的实现策略
report_qor_suggestions 命令可在 AMD Vivado ™ IDE 或基于文本的报告中生成报告。它可用于 :
• 生成和查看有关存储器中当前设计的新建议
• 查看使用 read_qor_suggestions 命令读入的现有建议
综合后 , 随时可对存储器中加载的设计运行 report_qor_suggestions 命令。生成的建议对象会考量诸多设计特性 并按如下类别生成建议:
• 时钟设置
• XDC
• 网表
• 使用率
• 拥塞
• 时序
• 策略
生成的建议随后必须馈送回流程才能生效。通常必须重新运行各设计阶段 , 如下图所示 :
生成新建议前 , 必须将设计加载到存储器中。在综合后的任意阶段均可运行 report_qor_suggestions 。返回的建议在报告中按重要性从高到低进行排序并列示。
它仅报告改善设计 QoR 所需的建议。有时 , 必须先获取布局或布线信息 , 而后才能发出建议。此外 , 存在一些限制用于确保仅生成包含必要的设计更改的建议。
• 网表建议是基于网表分析来生成的。这些建议用于识别导致后续流程中时序失败的网表结构 , 但并不会直接观察时序路径, 因此可在时序收敛的设计上生成。
• 时钟设置建议通常需在布局之后生成 , 但布局前已有准确信息可用的情况下则例外。这些建议需要获取失败的时序路径, 但有少数例外情况。
• 时序建议是通过检验每个时钟组中前 100 条失败的时序路径来生成的。
• 生成使用率建议的前提是它判定建议的目标资源已过度使用 , 并且生成的建议不会导致关键资源增加。这些建议可在任意设计阶段报告。
• 拥塞仅在布局后才会报告。如果设计已完成布线并且时序已满足 , 则不会报告拥塞建议 , 因为已证明这些建议对时序收敛没有影响。
• 最后一个类别是“策略” , 其中包含实现策略。这些策略是使用机器学习算法通过分析大量设计特性所生成的。使用这些对象的流程与上述流程略有不同, 在本章后文中对此提供了更详细的描述。