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

相关阅读

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


目录

指定开始注释输出

指定停止注释输出

指定实时注释中是否包含性能数据

指定显式注释内容

指定静默

简单使用


annotate_trace命令与report_trace命令类似,都是用于进行命令级性能剖析,不同的是,annotate_trace命令允许命令在执行过程中进行实时注释(包括命令注释和性能数据注释)。本文将详细介绍annotate_trace命令的使用方法(其实它并不是一个SDC命令,归为此类只是为了方便管理)。

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

复制代码
annotate_trace
    [-start | -stop]
    [-profile profile_annotation_type]
    [-log log_string]
    [-quiet]
    // 注:该命令的选项和参数顺序任意

指定开始注释输出

-start选项指定开始在命令执行过程中进行实时注释,命令执行的开始阶段会输出命令字符串,并在行首添加前缀;##,是否进行性能数据注释则取决于-profile选项。

-start选项和-start选项互斥,只能使用其中一个。

指定停止注释输出

-start选项指定停止在命令执行过程中进行实时注释,需要注意的是,与report_trace命令不同,此命令的性能数据统计不依赖-start选项,也不会随着实时注释的关闭而停止统计。

-start选项和-start选项互斥,只能使用其中一个。

指定实时注释中是否包含性能数据

-profile选项指定实时注释中是否输出性能数据,以及输出的时机,该选项需要与-start选项选项同时使用,或之前已开始注释输出。

set_trace_option命令可用于对实时注释进行定制化设置,比如可以关闭某些命令的实时注释、设置性能数据种类(CPU时间、内存消耗、wall clock时间),设置性能数据注释的增量阈值(CPU时间、内存消耗、wall clock时间的增量超过对应阈值才会输出)。

当-profile选项设置为on时,命令执行的结束阶段会输出当前消耗的CPU时间、内存、wall clock时间的总量和增量(以;###作为前缀);当-profile选项设置为with_start时,命令执行的开始阶段会输出当前消耗的CPU时间、内存、wall clock时间的总量(不受阈值影响),结束阶段会输出当前消耗的CPU时间、内存、wall clock时间的总量和增量;当-profile选项设置为off时,表示实时注释中不包含性能数据。

如果不使用该选项,相当于将该选项设置为off,即只输出命令字符串。

指定显式注释内容

-log选项用于输出一段字符串并在行首添加前缀;##,如果字符串包含换行符\n,则会在每一行都添加前缀。

指定静默

-quiet选项用于指定静默输出,例如重复指定开始注释输出,此时不会报错或警告(不过语法错误仍会报错)。

简单使用

复制代码
dcnxt_shell-topo> set_trace_option -time_threshold 0
dcnxt_shell-topo> set_trace_option -memory_threshold  0
dcnxt_shell-topo> set_trace_option -cpu_threshold 0
dcnxt_shell-topo> set_trace_option -profile all 
dcnxt_shell-topo> annotate_trace -start -profile with_start
dcnxt_shell-topo> compile_ultra -spg
;## compile_ultra -spg
;### Start: MEM: 1934608  CPU: 00:00:13.98  TIME: Wed Jan  7 18:58:10 2026
*****
*****
*****
*****
;### End compile_ultra: MEM: 2237480 (delta: 302872)  CPU: 00:00:32.94 (delta: 00:00:18.96)  TIME: Wed Jan  7 18:58:29 2026 (delta: 00:00:18.95)

dcnxt_shell-topo> annotate_trace -profile on
;## annotate_trace -profile on
;### Start: MEM: 2237480  CPU: 00:00:32.95  TIME: Wed Jan  7 18:59:59 2026
;### End annotate_trace: MEM: 2237480 (delta: 0)  CPU: 00:00:32.95 (delta: 00:00:00.00)  TIME: Wed Jan  7 18:59:59 2026 (delta: 00:00:00.00)

dcnxt_shell-topo> report_timing
;## report_timing 
Information: Updating design information... (UID-85)
 
****************************************
Report : timing
        -path full
        -delay max
        -max_paths 1
Design : MY_DESIGN
Version: W-2024.09-SP2
Date   : Wed Jan  7 19:00:14 2026
****************************************

 * Some/all delay information is back-annotated.

Operating Conditions: ss0p75v125c   Library: saed32lvt_ss0p75v125c
Wire Load Model Mode: Inactive.

  Startpoint: Cin2[0] (input port)
  Endpoint: Cout[4] (output port)
  Path Group: (none)
  Path Type: max

  Point                                    Incr       Path
  -----------------------------------------------------------
  input external delay                     0.00       0.00 r
  Cin2[0] (in)                             0.00       0.00 r
  U73/Y (INVX1_HVT)                        0.10 *     0.10 f
  U74/Y (NOR2X0_HVT)                       0.74 *     0.84 r
  U82/Y (AO222X1_HVT)                      2.63 *     3.47 r
  U88/Y (AO222X1_HVT)                      3.21 *     6.67 r
  U90/Y (AO22X1_HVT)                       2.07 *     8.74 r
  U91/S (FADDX1_HVT)                       1.54 *    10.29 r
  U92/CO (FADDX1_HVT)                      1.71 *    11.99 r
  U97/S (FADDX1_HVT)                       2.57 *    14.56 f
  Cout[4] (out)                            0.00 *    14.56 f
  data arrival time                                  14.56
  -----------------------------------------------------------
  (Path is unconstrained)


;### End report_timing: MEM: 2237548 (delta: 68)  CPU: 00:00:32.98 (delta: 00:00:00.02)  TIME: Wed Jan  7 19:00:18 2026 (delta: 00:00:04.15)

关于命令字符串,有一些与log_trace命令相同需要注意的点,请参考下面博客的末尾。

SDC命令详解:使用log_trace命令进行调试https://chenzhang.blog.csdn.net/article/details/156659891

相关推荐
日晨难再3 天前
Design Compiler:Multibit优化(增强型布局感知的Multibit Banking流程)
数字ic
日晨难再6 天前
我在CSDN的三年创作历程
数字ic
日晨难再21 天前
Design Compiler:Multibit Banking(一)
数字ic
日晨难再1 个月前
Design Compiler:Early Data Flow
数字ic
日晨难再1 个月前
Design Compiler:SDC相关运行时间问题的报告和修复
数字ic
日晨难再1 个月前
Design Compiler:Guide Hierarchical Map(GHM) Flow
数字ic
IC_Brother2 个月前
数字IC经典电路(6)—Ring Oscillator(环形振荡器)与工艺角监控
verilog·数字ic·dc综合
0基础学习者2 个月前
跨时钟域处理
fpga开发·verilog·数字ic
日晨难再2 个月前
Design Compiler:时钟树在综合时的特性
数字ic