尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Design Compiler:使用QORsum报告对比结果质量
相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482Design Compiler在2022版本推出了QORsum功能运行生成一个基于Web的QORsum报告使用.html和.json格式用于查看和比较QoR数据首先介绍生成QORsum报告的基本步骤。1、使用set_qor_data_options命令对后续步骤中捕获和显示的QoR数据进行配置可选下面举例说明。指定关键功耗场景使用-leakage_scenario和-dynamic_scenario选项可以指定QORsum报告中功耗汇总面板(Power Summery)中漏电功耗和动态功耗数据来自的场景。默认情况下如果存在一个或多个同时对漏电功耗和动态功耗都处于活跃状态的场景则选择其中总功耗最高的场景中的漏电功耗和动态功耗数据如果所有场景分别只有漏电功耗或动态功耗处于活跃状态则分别选择其中漏电功耗最高的场景和动态功耗最高的场景并据此得到总功耗。需要注意的是该设置只对功耗汇总面板生效对于功耗详细面板(Power Details)其中会包含所有场景中处于活跃状态的功耗。以上谈到的都是已激活的场景对于未激活的场景其所有数据不会被记录。指定运行名使用-run_time选项可以指定运行的名字以便在QORsum报告中进行识别。默认情况下工具会使用Run1、Run2...这样的名字该名字将在使用write_qor_data命令时写入运行所属目录的.write_qor_data配置文件中。另外也可以在第三步中使用compare_qor_data命令的-run_names选项指定运行的名字其优先级大于set_qor_data_options命令。2、使用write_qor_data命令收集QoR数据用户可以在设计流程的不同阶段多次使用该命令必须使用-label选项指定代表各个阶段的标签比如compile、compile_incr各个阶段的数据将保存在-output选项指定的运行目录下的子目录中如不使用该选项默认运行目录为./qor_data子目录名为标签名若对同一个运行目录重复使用同一标签则之前的相应数据会被覆盖。该命令还提供一些选项用于控制收集的数据类型下面举例说明。指定报告组使用-report_group选项可以指定一个报告组工具为每个报告组预设了一些数据类型支持的报告组有unmapped、mapped、placed对于物理实现工具还支持cts和routed。unmapped报告组包含的数据类型有report_app_optionshost_machineperformancemapped报告组包含的数据类型有unmapped报告组包含的数据类型report_areareport_clock_gatingreport_designreport_multibitreport_threshold_voltage_groupsreport_utilizationreport_qorreport_global_timingreport_constraintsplaced报告组包含的数据类型有mapped报告组包含的数据类型report_powerreport_congestion指定报告列表如果需要更精细的控制可以使用-report_list选项支持的所有数据类型有report_app_optionsreport_areareport_clock_gatingreport_clock_qorreport_congestionreport_congestion_detailedreport_constraintsreport_designreport_glitchreport_global_timingreport_logic_levelsreport_metricsreport_multibitreport_powerreport_qorreport_rtl_metrics_hierreport_threshold_voltage_groupsreport_utilizationcheck_routeshost_machineperformancegui_floorplangui_placement_hierarchygui_congestiongui_cell_densitygui_cellmap_utilizationgui_pin_densitygui_hold_buffersgui_routing_drcs如果-report_group选项和-report_list选项都没有使用则默认选择placed报告组如果-report_group选项和-report_list选项都使用则取并集。指定不报告列表如果需要排除一些报告可以使用-exclude_list选项支持的所有数据类型与-report_list选项相同。其典型使用场景为当用户将综合/优化流程和报告生成分在不同的会话中执行时在综合/优化流程会话中只需捕获运行时间在报告生成会话中再捕获其他数据此时需要将运行时间排除如下所示。// 综合/优化流程会话 dcnxt_shell write_qor_data -label compile -report_list performance host_machine // 报告生成会话 dcnxt_shell write_qor_data -label compile -exclude_list performance host_machine指定运行时间开始记录在介绍-mark_start_time选项前首先来看看QORsum报告的性能面板(Performance)中有关运行时间的部分如图1所示。图1 运行时间捕获TotalRun指的是本阶段及所有之前阶段的StageRun总和。图1展示的是不使用-mark_start_time选项的情况StageRun为PreRun和RptRun的总和PreRun为会话开始到本阶段的write_qor_data命令调用开始对于第一个阶段或从上阶段的write_qor_data命令调用结束到本阶段的write_qor_data命令调用开始对于后续阶段需要注意的是这里统计的是会话持续的时间也就是说即使挂机也会统计。RptRun为本阶段的write_qor_data命令的执行时间。如果想要获取特定命令的执行时间需要为其专门创建一个阶段比如对于compile_ultra命令如下所示。compile_ultra命令的执行时间可以从compile_end阶段的PreRun得到。dcnxt_shell write_qor_data -label compile_start dcnxt_shell compile_ultra dcnxt_shell write_qor_data -label compile_end如果使用了-mark_start_time选项则可以更加方便图2展示的是对compile阶段使用-mark_start_time选项的情况StageRun为PreRun、CmdRun和RptRun的总和。此时需在compile_ultra命令前使用-mark_start_time选项标记CmdRun统计开始CmdRun为从本阶段的write_qor_data -mark_start_time命令到write_qor_data命令调用开始。PreRun为会话开始到本阶段的write_qor_data -mark_start_time命令调用对于第一个阶段或从上阶段的write_qor_data命令调用结束到本阶段的write_qor_data -mark_start_time命令调用对于后续阶段。RptRun为本阶段的write_qor_data命令的执行时间。图2 运行时间捕获dcnxt_shell write_qor_data -label compile -mark_start_time dcnxt_shell compile_ultra dcnxt_shell write_qor_data -label compile dcnxt_shell compile_ultra -incr dcnxt_shell write_qor_data -label compile_incr3、使用compare_qor_data命令生成QORsum报告该命令通过比较-run_locations选项指定的运行目录由write_qor_data命令输出比较结果将保存在-output选项指定的结果目录中如不使用该选项默认结果目录为./compare_qor_data。4、使用view_qor_data命令查看生成的QORsum报告使用-location选项可以指定结果目录如不使用该选项默认结果目录为./compare_qor_data结果如图3所示。图3 QORsum报告关于QORsum报告的使用方法比如控制显示风格、控制显示的运行、根据选择的指标进行排序、根据选择的指标进行过滤等操作可以查看Design Compiler User Guide中的Comparing QoR Data一节。最后介绍QORsum报告的自定义数据捕获。创建自定义面板使用define_qor_data_panel命令可以定义一个新的面板用于在QORsum报告中捕获自定义的数据。使用-type选项可以指定面板类型支持汇总(summary)、详细(detailed)、图像(image)三种面板。使用-group选项可以指定面板所属的分组可以使用新的分组名字也可以使用默认存在的分组名字比如Netlist、Power默认情况下自定义面板不属于任何分组。使用-key_columns选项可以指定详细面板中哪些列使用capture_qor_data命令创建作为共有列默认只有第一列是共有列图4展示了前两列为共有列的情况。图4 共有列捕获自定义数据使用capture_qor_data命令可以将自定义数据捕获到QORsum报告的面板中该命令的效果类似write_qor_data命令只不过此时数据由用户自己指定。-panel选项用于指定要填充数据的面板如果是默认存在的汇总面板则可以向其中添加新指标或覆盖原指标图5展示了在功耗汇总面板添加新指标图6展示了在功耗汇总面板覆盖原指标图5 在功耗汇总面板添加新指标图6 在功耗汇总面板覆盖原指标如果是define_qor_data_panel命令创建的面板则允许任意修改所有类型的面板。必须使用-label选项指定代表各个阶段的标签比如compile、compile_incr各个阶段的数据将保存在-output选项指定的运行目录下的子目录中如不使用该选项默认运行目录为./qor_data子目录名为标签名若对同一个运行目录重复使用同一标签则指定面板之前的相应数据会被覆盖如图4所示。-columns选项用于指定汇总面板或详细面板中的列指标对于汇总面板无需写出原指标即支持增量修改对于详细面板不支持增量修改-data选项用于指定指定汇总面板或详细面板中的数据对于汇总面板是一个列表对于详细面板是一个双层列表需要与-columns选项数量对应。下面展示了完成图5和图6的行为所需命令以及在自定义详细面板中捕获数据、覆盖原指标和添加新指标所需命令分别对应图7、图8和图9。dcnxt_shell capture_qor_data \ -panel Power Summary \ -label test \ -columns MyMetric \ -data 123.45dcnxt_shell capture_qor_data \ -panel Power Summary \ -label test \ -columns Total \ -data 888888// 首先定义面板 dcnxt_shell define_qor_data_panel \ -name My_Timing \ -type detailed \ -key_columns PathGroup Corner // 然后捕获数据 dcnxt_shell capture_qor_data \ -panel My_Timing \ -label test \ -output ./qor_data \ -columns PathGroup Corner WNS TNS MySlackMargin \ -data { {REG2REG SS -0.12 -10.5 0.03} {REG2REG FF 0.05 0.00 0.10} {IN2REG SS -0.20 -25.0 -0.05} } // 接着覆盖原指标 dcnxt_shell capture_qor_data \ -panel My_Timing \ -label test \ -output ./qor_data \ -columns PathGroup Corner WNS TNS MySlackMargin \ -data { {REG2REG SS -0.12 -10.5 3} {REG2REG FF 0.05 0.00 10} {IN2REG SS -0.20 -25.0 -5} } // 最后添加新指标 dcnxt_shell capture_qor_data \ -panel My_Timing \ -label test \ -output ./qor_data \ -columns PathGroup Corner WNS TNS MySlackMargin Slack \ -data { {REG2REG SS -0.12 -10.5 3 1} {REG2REG FF 0.05 0.00 10 2} {IN2REG SS -0.20 -25.0 -5 3} }图7 在详细面板中捕获数据图8 在详细面板中覆盖原指标图9 在详细面板中添加新指标除了这两个命令之外还可以是用set_qor_data_metric_properties命令对QORsum报告进行高度定制如是否分组显示、鼠标悬停说明、颜色规则改善/退化着色或差异着色、颜色触发阈值百分比或绝对值、“什么算改善”的判断方式值变大/变小/趋近于零、默认是否可见。
RELATED

相关推荐

Design Compiler:触发器的复制(set_register_replication命令)

Design Compiler:触发器的复制(set_register_replication命令)

相关阅读 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 目录 简介 手动触发器复制 指定触发器列表/集合 指定最大扇出数量 指定复制后数量 指定复制包含扇入逻辑 指定复制包含扇出逻辑 指定由原始触发器驱动 指定是…

📅 2026/10/26 17:58:51
本地部署开源语音工作室:声音克隆与工作流引擎实战指南

本地部署开源语音工作室:声音克隆与工作流引擎实战指南

声音克隆这个词这两年热度一直没降过,但真正落到"能日常用起来"的工具其实不多。大部分方案要么依赖云端API、要么部署链路长得让人放弃,要么就是克隆出来的声音一股电子味。最近我在折腾一个完全本地运行的开源语音工作室项目,它把…

📅 2026/10/26 17:53:50
DeepSeek-R1实战指南:任务-模型-提示语-验证四维对齐方法论

DeepSeek-R1实战指南:任务-模型-提示语-验证四维对齐方法论

简介:本资源为清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室出品的《DeepSeek:从入门到精通》专题教程PPT,面向AI开发者、技术研究者及大模型应用实践者,系统解析国产开源推理模型DeepSeek-R1的核心能力、适用边界与工程…

📅 2026/10/26 17:53:50
MORE NEWS

更多资讯

📰

二分查找解决愤怒的牛问题:最大化最小距离算法

1. 愤怒的牛问题解析 这道题目源自经典的"愤怒的牛"问题,属于算法竞赛中的二分查找应用题型。题目描述通常为:农夫John建造了一个有N个隔间的牛棚,这些隔间分布在一条直线上,坐标分别为x1,...,xN。他的C头牛对隔间非常挑…

📰

React Native鸿蒙跨平台开发:列表视图实战指南

1. 项目概述:React Native鸿蒙跨平台开发入门刚接触React Native的开发者常常会面临一个现实问题:如何快速掌握核心开发模式,同时适配新兴的鸿蒙平台?这个浏览历史列表项目正是为解决这个问题而设计的。作为React Native开发中最基…

📰

服务器配置与优化实战:从硬件选型到性能调优

1. 服务器配置入门:从零开始搭建专业级服务环境第一次接触服务器配置时,我被各种专业术语和复杂参数搞得晕头转向。经过多年实战,我发现只要掌握几个核心要点,任何人都能快速搭建稳定的服务器环境。今天我就把最实用的配置经验整理…

📰

ONLYOFFICE大文档处理崩溃问题优化方案

1. ONLYOFFICE大文档处理崩溃问题全景解析最近在技术社区看到不少关于ONLYOFFICE处理大文档时崩溃的讨论,作为一款开源的办公套件,它在企业文档协作领域确实越来越受欢迎。但当我们处理50页以上的大型文档,特别是包含复杂格式和多媒体内容时&…

📰

模板代码安全风险与增强实践指南

1. 模板代码安全性增强的必要性在软件开发领域,模板代码就像建筑工地上的脚手架——它能快速搭建起项目框架,但也可能成为安全隐患的温床。我见过太多团队因为忽视模板代码的安全性而付出惨重代价,从数据泄露到系统入侵,这些本可以…

📰

DirectX 9.0 SDK免安装版:绕过注册表与VC++依赖的离线开发方案

简介:本资源为DirectX 9.0 SDK免安装精简版,面向Windows平台C游戏开发初学者与图形编程学习者,解决传统SDK安装繁琐、环境配置复杂的问题,支持快速接入Direct3D 9、DirectSound、DirectInput等核心组件开发。压缩包为RAR格式&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬