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

SDC命令详解:使用log_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等)的过程中,用户编写的Tcl脚本往往包含大量条件判断、嵌套过程(procedure)以及对其他脚本的调用。这种复杂性会导致以下问题:

  • 难以确认实际执行了哪些命令
  • 难以复现流程中出现的问题
  • 隐式调用、不建议或废弃的命令执行难以被察觉

为了解决这些问题,Synopsys提供了log_trace命令(在2023版本引入),用于记录所有被跟踪命令的实际执行过程,并生成一个可复现结果的Tcl脚本。本文将详细介绍log_trace命令的使用方法(其实它并不是一个SDC命令,归为此类只是为了方便管理)。

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

log_trace [-start file_name | -stop | -pause | -resume] [-log log_string] [-quiet] //注:该命令的选项和参数顺序任意

指定开始记录

-start选项指定开始记录工具执行的命令(包括设置应用变量,不包括用户自定义变量和Tcl控制结构),并选择一个输出文件,需要注意的是,同一时间只能存在一个正在记录的输出文件。

-start选项、-stop选项、-pause选项和-resume选项是互斥的,只能使用其中一个。

指定停止记录

-stop选项指定停止记录并关闭正在记录的输出文件,需要注意的是,一旦停止记录,输出文件的内容无法被追加(如果再次用-start选项指定,则会覆盖)。

-start选项、-stop选项、-pause选项和-resume选项是互斥的,只能使用其中一个。

指定暂停记录

-pause选项指定暂停记录(立刻在输出文件中留下一条注释:#----- Trace Log Paused -----),在此期间,所有工具执行的命令不会被记录到输出文件中,直到通过-resume选项恢复记录。需要注意的是,暂停记录可能会导致准确复现工具的运行结果(停止记录时会在输出文件中留下一条注释:This trace log may not replay or replicate tool results),谨慎使用。

-start选项、-stop选项、-pause选项和-resume选项是互斥的,只能使用其中一个。

指定恢复记录

-pause选项指定恢复记录,后续工具执行的命令将会追加到输出文件中。

-start选项、-stop选项、-pause选项和-resume选项是互斥的,只能使用其中一个。

指定显式记录

-log选项用于将给定的字符串显式记录在输出文件中,它可以是一条Tcl命令,也可以是以#开头的注释。

指定静默

-quiet选项用于指定静默输出,例如尝试在尚未开始记录时就暂停记录,此时不会报错或警告(不过语法错误仍会报错)。

简单使用

最终生成的Tcl脚本并不能100%保证可以回放或完全复现工具的运行结果。其中一个原因是工具的执行环境可能发生变化。在不使用任何选项调用log_trace命令时,工具会报告当前记录的状态,可能的状态包括on、paused或off,并显示当前打开的输出文件。

图1展示了一个日常使用的脚本,以及使用log_trace命令记录的脚本。

图1 脚本对比

下面有几点需要注意。

  • 即使命令在执行过程中失败,只要该命令已经真正进入工具执行阶段,其执行过程仍然会被记录到输出文件中。例如,在创建时钟时未指定源对象而导致执行失败的情况。相反,如果命令由于语法错误(例如使用了不存在的选项)而在语法解析阶段就被拒绝执行,则不会被记录,因为该命令并未真正进入工具的执行流程。
  • 对于某些复合命令,例如create_clock -period 15.0 [get_ports pclk],在记录时会被拆分为若干离散的命令调用,以更加准确地反映工具内部的真实执行顺序。
  • 于部分命令(如read_verilog),在输出文件中会被记录为其等价的底层形式,例如read_file -format verilog,从而体现工具内部实际调用的接口。
  • 此外,如果在脚本中使用了命令别名(alias)、选项缩写或命令缩写,在记录到输出文件时都会被还原为完整、标准的命令格式。
http://www.jsqmd.com/news/1380920/

相关文章:

  • OVN安全配置:Access Control Lists与网络隔离最佳实践
  • Windows电源管理深度解析:如何彻底禁用程序干扰,精准控制睡眠与息屏
  • Cursor Pro完全解锁指南:三步告别AI编程限制,享受无限代码辅助体验
  • .NET Core异步编程原理与高性能实践指南
  • LightCompress快速入门:3分钟上手大模型量化与稀疏化技术
  • 2026年盐城市东台市GEO服务商代理加盟怎么选?本地靠谱推荐与城市合伙人模式指南 - 企业新闻快传
  • 2026 年贵阳贵安新区代理记账怎么甄别?三信财务15108506934参考指引 - 米諾
  • 2026太原高端装修找谁?大宅改善装修甄选指南,太原金螳螂深耕本地高端整装 - 滚动商讯
  • 面向连载内容的 AI 漫剧工程化实现:ComfyUI 工作流、帧校验与时序优化完整方案
  • 2026桂林市数码回收哪家靠谱?正规渠道避坑指南 - 新闻快传
  • 构建高可用AI后端服务:REST API设计、数据库交互及异步任务编排经验总结
  • 2026年宁波鄞州区GEO服务商代理加盟本地靠谱推荐:从选型标准到落地实操全指南 - 企业新闻快传
  • Redis集群模式深度解析:主从复制、哨兵与Cluster的实战选择
  • 2026二手设备出口东南亚选哪个物流靠谱?福要二手设备报关运输一体化方案 - 滚动商讯
  • 从奥特曼与鬼杀队战力对比,看系统架构与产品设计思维
  • 从零拆解CNN:核心组件、经典架构与PyTorch实战指南
  • 济南大观园舞蹈机构实测测评:星梦舞蹈,小班精细化舞蹈培训优选 - 米諾
  • agent-sandbox完全指南:如何轻松管理隔离的AI代理运行时工作负载
  • 大模型推理算力平台:从卡时到度量的消费逻辑分享
  • 2026赣州市数码回收哪家靠谱?正规渠道避坑指南 - 新闻快传
  • 2026 金华汽车贴膜哪家好?国通车检管家一站式贴膜养护值得推荐 - 米諾
  • 从代码助手到智能代理:Codex如何重塑软件开发工作流
  • 如何用G-Helper轻量级工具彻底优化华硕笔记本性能:3个步骤告别Armoury Crate臃肿体验
  • VRChat改模环境配置指南:Unity、VCC与SDK协同工作流详解
  • 2026年编织袋撕碎机哪家客户满意度高用户力荐 - 滚动商讯
  • 泰州市高淳区GEO服务商代理加盟本地怎么选?2026年靠谱推荐与避坑全指南 - 小随科技
  • itc保伦股份获评“AAA知名商标品牌”!三十三年自主创新再获认可! - 品牌速递
  • 计算机毕业设计之高校学生评教系统的设计与实现
  • 2026 年 6001200/7501500/9001800 瓷砖源头厂家优选|拉斐爵士陶瓷原厂一站式供货 - 米諾
  • 金融K线基础模型:从时序表示学习到量化策略落地的探索与实践