目录
一、前言
Vivado对于工程设计在综合阶段或布线后的质量提供了一个分析命令report_qor_assessment,执行命令后可以得到当前设计的一个评分值,用于评估后续的时序收敛难度大小,该值范围为1-5,值越大说明质量越高,越容易收敛,通常低于3是较差。特别是在综合阶段执行该命令提前预知结果的好差,如综合阶段如果评分值小于3,则无需执行实现阶段的流程了。
二、Report_qor_assessment
2.1 执行分析
Report_qor_assessment的入口在菜单栏的Report中
弹出设置框
-
Number of paths for assessment analysis: 设置每个时钟组分析的时序路径数
-
Report passing metrics:选项框对应参数-full_assessment_details的开关并且提供通过给定阈值指标的信息
-
Export to file:设置分析结果的导出路径
-
Export timing paths as csv files to directory:将时序路径和分析结果保存到指定路径的CSV文件中,如果csv文件已经存在则会被覆盖
执行后的报告如下,有4大类:General,QoA Assessment, challenging Timing Paths,Netlist objects with DONT_TOUCH
注意:对于7系列的器件不支持ML Strategy,需为Ultrascale、Ultrascale+系列的器件
7系列的器件结果如下图
下列结果为Kintex UltraScale+系列器件xcku3p-ffvb676-2-i ,查看总体评分2分,不达标
查看“Assessment Details”获取细节,如果Actual列的值超过Threshold列的值则其状态为REVIEW需要重点关注,设计例子为小例子,所以细节内容较少,如果是大工程,则会有更多资源相关的信息
查看ML Strategy Availability,ML策略可用的条件为实现流程配置中phys_opt_design设置
为default或explore,并且设计布线成功
下图为ML策略的结果
Challenging Timing Paths显示了时序路径不通过的关键属性,默认情况下, 该命令会对每个时钟组中的 100 条失败的路径进行评估,分析的因素包括Net预算,LUT预算,时钟偏斜。保存中Suggestions中部分存在RQS的即表示生成了对应修改建议,未生成的可能需要手动查看。
Clock skew小节显示时钟偏斜相关的内容
Netlist objects with DONT_TOUCH Property显示设计带有DONT_TOUCH属性的单元,因为含 DONT_TOUCH 属性的网表对象可能阻止执行有助于改善设计性能的最优化。
三、Report_qor_suggestions
report_qor_assessment可以评估设计的收敛难度,当评估出设计收敛难时,该怎么处理呢?这时可以尝试使用report_qor_suggestions,该命令的作用就是协助用户进行修改,具体操作方式下面将介绍。
3.1 执行Reqort_qor_suggestions
进入菜单栏Report中,选择Report Qor Suggestion,进入下面的设置界面,和Report Qor Assessment相比,有以下配置的区别
Maximum Number of Strategies to suggest:作用是设置运行中生成ML策略的数目,默认为3
Export to file:设置导出结果的txt文件路径
Export timing paths as csv files to directory:设置生成时序分析结果CSV文件的路径
执行后结果如下界面,从时序,时钟,约束,资源使用率,ML策略五方面进行修改建议
在GENERATED的Description列描述了具体的修改建议
3.2 导出RQS
点击“write suggestions to report”
进入RQS结果保存界面
Save suggestions as:选择RQS文件来保存修改建议,默认为RQS文件可以放置的路径
Override don't touch properties :勾选后会覆盖已经生成的修改建议,默认不勾选 ,除非确保移除设计中的DONT_TOUCH后对设计也是安全的
Write ML Strategies:勾选后可以将建议写入,该选项无法取消
Copy sources to the project:将所有的RQS文件应用到工程中,如果RQS文件在impl_run中已经是使用了并且Write ML strategies已勾选则可不勾选。
执行后在设置的目录下可以查看到rqs文件。
3.3 导入RQS
在上一小节中导出的rqs文件需要导入当前工程使用才能生效,可直接在当前的综合流程中导入,在design_runs窗口中点击右键,弹出弹框选择set_qor_suggestions
进入set qor suggestions设置框,勾选Enable suggestions,在specify suggestions file设置rqs 的路径
将rqs文件应用到工程后,synth和impl的状态都是修改
导入rqs文件前的结果,时序中存在的修改建议如下
导入rqs后重新运行,Qor suggestions中已经只剩下General,Suggestion report,XDC三项了,最终的结果还得看时序报告和资源报告
如果想保留上一次综合和实现的结果,也可以在design_runs窗口中新建Synth,新建方式为design_runs窗口中空白处点击右键,弹出弹框选择create_runs新建一个synth,然后执行导入rqs文件运行综合与实现
四、参考资料
用户手册《ug906-vivado-design-analysis-en-us-2023.1.pdf》