十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

SDC命令详解:使用log_trace命令进行调试 相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.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)、选项缩写或命令缩写在记录到输出文件时都会被还原为完整、标准的命令格式。
返回列表