当前位置: 首页 > news >正文

SDC命令详解:使用report_trace命令进行调试

相关阅读

SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm=1001.2014.3001.5482


目录

指定开始性能剖析

指定停止性能剖析

指定恢复性能剖析

指定性能数据类型

指定累计资源消耗排名的命令数量

指定单次调用资源消耗排名的命令数量

指定报告某个具体命令

指定静默输出

简单使用


在使用Synopsys的EDA工具(如Design Compiler、PrimeTime、Fusion Compiler、IC Compiler II等)的过程中,随着设计规模不断增大,脚本运行时间往往会明显增长。此时用户常常会遇到一些典型问题:

  • 难以判断到底是哪个命令导致流程变慢
  • 难以区分是命令调用次数过多,还是某一次调用异常耗时
  • 难以量化CPU时间、内存和实际运行时间(wall clock时间)的消耗情况

在没有定量分析手段的情况下,性能调优往往只能依赖经验,效率较低。为了解决这些问题,Synopsys提供了report_trace命令(在2023版本引入),用于对被跟踪命令的执行过程进行性能剖析,并生成相应的统计报告,从而帮助用户在命令级别定位性能瓶颈(其实它并不是一个SDC命令,归为此类只是为了方便管理)。

report_trace命令的BNF范式(有关BNF范式,可以参考以往文章)为:

report_trace [-start | -stop | -resume] [-profile profile_type] [-command command_name] [-cumulative count] [-top count] [-quiet] // 注:该命令的选项和参数顺序任意

指定开始性能剖析

-start选项指定开始性能剖析,当使用该选项后,工具会对后续所有被跟踪命令的每一次调用进行统计,记录其CPU时间、内存消耗、wall clock时间以及调用次数。需要注意的是,如果此前使用-stop选项停止过性能剖析,再次使用-start选项时,之前已经收集的所有性能数据都会被清空,并重新开始统计。

-start选项与-stop选项、-resume选项、-profile选项、command选项、-cumulative选项和-top选项是互斥的,不能同时使用。

指定停止性能剖析

-stop选项指定停止性能剖析数据的收集。当使用该选项后,工具会冻结当前已经收集的性能数据,后续命令的执行将不再被统计。需要注意的是,停止性能剖析并不是生成报告的前提条件,即使在性能剖析仍在进行的过程中,也可以随时使用report_trace命令查看当前统计结果。

-stop选项与-start选项、-resume选项、-profile选项、command选项、-cumulative选项和-top选项是互斥的,不能同时使用。

指定恢复性能剖析

-resume选项指定在停止性能剖析之后恢复数据收集。与-start选项不同,-resume选项不会清空此前已经收集的性能数据,而是将新收集的数据追加到已有统计结果中。

-resume选项与-start选项、-stop选项、-resume选项、-profile选项、command选项、-cumulative选项和-top选项是互斥的,不能同时使用。

指定性能数据类型

-profile选项指定报告哪些性能数据(无法控制是否收集),可选的指标包括memory、cpu、time和count,也可以使用all表示包含所有指标。当指定该选项时,report_trace命令生成的报告中只会包含对应类型的性能数据;如果未指定该选项,则默认包含所有类型的性能数据。

-profile选项与-start选项、-stop选项和-resume选项是互斥的,不能同时使用。

指定累计资源消耗排名的命令数量

-cumulative选项用于指定在报告中显示累计资源消耗排名靠前的命令数量。如果多个命令的资源消耗值与排名边界相同,则这些命令都会一并显示。若未指定该选项,默认显示累计资源消耗排名前10的命令。

-cumulative选项与-start选项、-stop选项、-resume选项和-command选项是互斥的,不能同时使用。

指定单次调用资源消耗排名的命令数量

-top选项用于指定在报告中显示单次调用资源消耗排名靠前的命令数量。与-cumulative类似,如果存在资源消耗值相同的情况,相关命令也会一并显示。若未指定该选项,默认显示单次调用资源消耗排名前10的命令。

-top选项与-start选项、-stop选项、-resume选项和-command选项是互斥的,不能同时使用。

指定报告某个具体命令

-command选项用于生成针对某一个指定命令的性能剖析报告。报告中会同时显示该命令的累计资源消耗情况,以及资源消耗最大的单次调用情况。如果指定的命令在当前剖析周期内从未被调用,则report_trace命令会给出相应提示,而不会生成空报告。

-command选项与-start选项、-stop选项、-resume选项、-cumulative选项和-top选项是互斥的,不能同时使用。

指定静默输出

-quiet选项用于指定静默输出,例如重复启动性能剖析,或对不存在的命令生成报告,此时不会报错或警告(不过语法错误仍会报错)。

简单使用

dcnxt_shell-topo> report_trace -start dcnxt_shell-topo> source dc.tcl > log dcnxt_shell-topo> report_trace -cumulative 5 -top 5 MEM (kBytes): Cumulative(top 5): compile_ultra ( 2 calls): 309780 open_lib ( 2 calls): 12876 analyze ( 2 calls): 7464 elaborate ( 2 calls): 6240 check_design ( 2 calls): 908 Single Call(top 5): compile_ultra : 308000 open_lib : 12876 analyze : 7464 elaborate : 6240 check_design : 908 CPU: Cumulative(top 5): compile_ultra ( 2 calls): 00:00:31.12 analyze ( 2 calls): 00:00:01.09 elaborate ( 2 calls): 00:00:00.24 open_lib ( 2 calls): 00:00:00.08 set_tlu_plus_files ( 2 calls): 00:00:00.07 Single Call(top 5): compile_ultra : 00:00:17.96 analyze : 00:00:01.08 elaborate : 00:00:00.21 open_lib : 00:00:00.08 set_tlu_plus_files : 00:00:00.04 TIME: Cumulative(top 5): compile_ultra ( 2 calls): 00:00:31.08 analyze ( 2 calls): 00:00:01.09 elaborate ( 2 calls): 00:00:00.24 open_lib ( 2 calls): 00:00:00.08 set_tlu_plus_files ( 2 calls): 00:00:00.07 Single Call(top 5): compile_ultra : 00:00:17.94 analyze : 00:00:01.08 elaborate : 00:00:00.21 open_lib : 00:00:00.08 set_tlu_plus_files : 00:00:00.04 COUNT: Cumulative(top 5): get_ports : 38 echo : 18 set_output_delay : 10 ::SNPS::set_app_var : 8 capture_app_var : 8 get_clocks : 8 redirect : 8 set_input_delay : 8
http://www.jsqmd.com/news/1380888/

相关文章:

  • 2026年度潍坊标书代写机构综合实力评估|正规电子标制作投标文件编制专业推荐 - 安华招标
  • 2026年莱姆石/洞石/砂岩质感砖**品牌|巴里诺BALNO重塑高端质感标准 - GrowthUME
  • 新疆乌鲁木齐抖音代运营公司哪家好?实体店选服务商实用指南 - 甄选测评官
  • 2026年嘉兴海盐GEO服务商代理加盟怎么选?本地靠谱推荐与城市合伙人合作指南 - 子柔传媒
  • 河北专升本机构口碑?2026真实评价红黑榜(不吹不黑) - 米諾
  • AI Agent记忆系统设计:Gliding Horse三层架构与CPU式管理实践
  • AI Agent的任务编排艺术:如何实现复杂业务流程的自动化流转与状态管理
  • 2026下半年鹿之岛质量怎么样:高端旅拍定制实力深度解析 - 装修教育财税推荐2026
  • Java实现贪吃蛇完整代码
  • SpringCloud微服务链路追踪:基于MDC与OpenFeign实现全局TraceId传递
  • 从反复邮寄到线上签,商务合作协议当天就能定稿
  • Java编程入门到精通:从环境搭建到JVM调优的完整知识体系
  • 麒麟系统安装察元 WPS AI 文档助手:免费、开源、离线部署说明
  • 2026年佛山安保公司**科普:广东中企卫保安综合实力测评 - GrowthUME
  • 成都公立三甲防癌早筛体检怎么预约?从卫蓝鲸鱼看四个关键环节 - 滚动商讯
  • 当AI开始替你“回答”品牌评价,你还能坐得住吗? - 新闻快传
  • 2026 乌鲁木齐头屯河区汽车贴膜哪家好?诚信贴膜工厂一站式服务值得推荐 - 米諾
  • 2026年嘉兴嘉善县GEO服务商代理加盟怎么选?本地靠谱推荐与合作指南 - 小随科技
  • 2026年宁波市北仑区GEO服务商代理加盟怎么选?本地靠谱推荐与避坑指南 - 企业新闻快传
  • ComfyUI-VideoHelperSuite终极指南:从节点消失到高效视频合成的完整解决方案
  • 数学建模国赛三天冲刺指南:从零到获奖的完整路径与实战工具
  • 租车合同还在纸质签?中小车队这样统管才不丢单
  • Revit破解工具完整指南:如何安全获取和使用免费版本
  • UE5风格化描边插件横评:Stylized Outline、Outline Plus与Kawaii Outline实战选型指南
  • 移动端H5软键盘弹起导致页面布局错乱的系统性解决方案
  • MCP协议:标准化AI工具交互,解决RAG碎片化与Agentic AI构建难题
  • 【ORC】字典编码在什么数据分布下最有效?如何避免字典溢出导致的性能下降?
  • 2026优选山东半挂车供应厂家哪家好 - 装修教育财税推荐2026
  • 重庆高森唐能源科技:以自主创新打造超导地暖制造基地 - 米諾
  • 汽车电子Fail Safe设计:从概念到实现的故障安全机制详解