执行建议
满足以下条件时
,
在建议运行轮次期间执行建议
:
• 这些建议处于已启用
(ENABLED)
状态。
• 必须运行
APPLICABLE_FOR
阶段。
• 这些建议必须设置为
AUTO
。
执行建议时
,
APPLIED
设置将会更新
,
如下图所示
:
在实现流程中
,
如果未将建议中的某个属性正确应用于关联的单元或信号线
,
则
FAILED_TO_APPLY
将被设置为
1
。如 果部分应用某项建议,
则将生成新的建议
,
此建议将被拆分为已应用的建议和未能应用的建议。 如果 APPICABLE_FOR 阶段位于生成建议的阶段之后
,
那么可在生成建议的相同运行轮次中执行这些建议。为此
,
您必须首先手动启用建议。
set_property ENABLED 1 [get_qor_suggestions <SuggID>]
使用此方法时
,
当运行完成后
,
请务必将此建议写入
RQS
文件以便后续继续使用此建议。
所有相关命令
有
5
条相关命令可用于处理
QoR
建议对象
:
应用建议
在建议对象文件中读取然后运行命令即可在流程中应用建议。以下章节涵盖了便于在工程模式下处理建议对象文件的附加功能特性。
工程模式
在工程模式下
,
建议写入
RQS
文件后
,
会将此文件自动添加到工程
(
utils_1
)
中的实用工具源文件集内。请将此文件存储于除运行目录外的其他目录中,
因为当运行复位后
,
将删除此文件。每轮运行都应采用不同的独立目录来存储各轮
运行的专用建议文件。推荐采用如下位置
:
<project_dir>/<project>.srcs/utils_1/<run_name>
。
在工程内的“
Design Runs
”
(
设计运行
)
窗口中右键单击运行
,
然后选择“
Set QoR Suggestions
”
(
设置
QoR
建议)
。在综合运行和实现运行中可能都需要添加此操作。
选择“
Enable Suggestions
”
(
启用建议
)
。这样您即可选择建议文件和
/
或执行自动运行。所选建议文件如果尚未添加到 utils_1
文件集中
,
则会执行添加。
以下代码片段中显示了此流程的等效
Tcl
命令
:
write_qor_suggestions -of_objects [get_qor_suggestions \
{<NAME_1> <NAME_2>}] -file <fn.rqs>
add_files -fileset utils_1 <fn>.rqs
set_property RQS_FILES <fn>.rqs [get_runs <run name>]
自动生成和应用建议
自动
QoR
建议流程会为基于工程的运行生成并应用
QoR
建议。对于易于更改的设计而言
,
这是生成和应用
QoR
建议
的最简单的方法。启用自动
QoR
建议时
,
会按下图所示调整标准实现流程。
初始运行可设为使用用户所选的
RQS
文件
,
也可以在不使用
RQS
文件的情况下运行。如果选择用户
RQS
文件
,
那么此文件会保留在原处直至生成新建议为止。此文件中的任何建议都将写入 <top>_routed.rqs
文件
,
并移除保留原始文件的要求。
如果已启用
report_qor_suggestions
命令
,
那么在
opt_design
、
place_design
以及
route_design
或布线后 phys_opt_design
之后运行该命令。
大多数建议会在实现运行结束时写入
RQS
文件中
,
以便在下一次实现运行时应用。可写入
RQS
文件的建议包括
:
• 含有属性
AUTO_RQS_FLOW==1
的新建议
• 含有属性
APPLIED==1
的旧建议
此外还包括
RQS_CLOCK-1
建议
,
该建议可在
opt_design
处生成
,
且在同一轮运行中应用。
在运行命令的每个点的“
Reports
”
(
报告
)
选项卡中提供了
report_qor_suggestions
报告
,
可用于检查这些议。
当运行复位后
,
会将建议从实现运行目录复制到另一处位置
,
并将其添加到
utils_1
文件集中。默认情况下
,
此位置位于源文件目录中,
但也可修改为任意其他位置。
建议也可以应用于父综合
(
如果存在
)
。仅限单一子实现运行可提供综合建议。如选中多个子实现运行
,
则使用最新的运行。
在第一类运行对象上使用了以下属性
:
以下代码片段中显示了在
Tcl
中使用这些属性的示例
:
set_property AUTO_RQS 1 [get_runs impl_1]
set_property RQS_FILES C:/temp/test.rqs [get_runs impl_1]
set_property AUTO_RQS.DIRECTORY C:/project_name/sources/rqs/impl_1
[get_runs impl_1]
set_property AUTO_RQS.SUGGESTION_RUN impl_1 [get_runs synth_1]
自动
QoR
建议和
ML
策略
如果在开始运行前存在
ML
策略
,
那么可使用
RQS_FILES
属性来设置
RQS
文件。在流程结束时
,
会将这些策略建议添加到新的 RQS
文件中。
如果不存在
ML
策略
,
则会在建议生成进程中
,
在
<run_name>/MLStrategy
目录中为用户自动生成这些策略。
自动
QoR
建议和增量编译
启用增量流程后
,
在后续步骤中只能应用对增量友好的新建议。这会限制建议可以执行的更改量
,
因此可能难以大幅改善时序。
如果在
opt_design
处应用建议
,
并且随后发起增量流程
,
则可应用影响更大的建议。由于此建议可能导致时序劣化,
因此可能需要将其禁用。
如果自动增量流程由于参考检查点质量欠佳而决定使用默认流程
,
则可应用所有建议。
禁用不需要的建议
由于对自动添加到建议文件的建议缺少足够的控制
,
如果建议导致时序结果变差
,
那么可在
opt_design
之前的步骤中禁用 Tcl
脚本。以下代码片段提供了禁用
RQS_TIMING-1
建议的示例
:
set_property ENABLED 0 [get_qor_suggestions RQS_TIMING-1*]
非工程模式
在此模式下创建
RQS
文件的过程与工程模式相同。即
,
编写建议文件
,
随后必须使用
read_qor_suggestions
将此文件添加到运行中。read_qor_suggestions
命令应在
synth_design
或
opt_design
之前运行。
此流程的等效
Tcl
命令如下所示
:
read_vhdl <some_file>.vhd
read_qor_suggestions all_enabled_suggestions.rqs
synth_design -top <top> -part <part>
opt_design
...
route_design
report_qor_suggestions -file design_rqs_routed.rpt
write_qor_suggestions -force all_enabled_suggestions.rqs