PT工具常用的debug指令(持续更新) 📅 2026/7/4 4:09:57 获取两个时钟之间的关系比如是否有设置allow_pathget_clock_relationship{clock Aclock B}即可获取clock A和clock B之间的关系report_timing时增加如下指令可以在报timing的时候把当前path设置且当前生效exception可能被覆盖的exception报出来report_timing-fromA-toB-exceptionsdominant可以在报timing的时候把当前path设置的所有的exception可以debug exception被覆盖的情况报出来report_timing-fromA-toB-exceptionsall可以把exception设置的from/through/to的信息全部报出来。在get_pins时可以通过增加-f full_name~xxx来进行filter全称操作。-f 等价于-filter还可以-f ref_name ~ xxx来匹配module名的方式进行。若想通过get_pins命令获取某个get_cell得到的cell的全部pins且该cell是时序器件非组合逻辑cell。可以get_pins-of_object[get_cells-hier-filterref_name ~ module name is_sequential true]或者get_pins-of[get_cells-hier-filterref_name ~ module name is_sequential true]若想进一步filter该cell为leaf cell可以get_pins-of[get_cells-hier-filterref_name ~ module name is_sequential trueis_hierarchicalfalse]report_timing 报告延时信息更加详细的方法report_timing-inputs_pins-fromxxx-toxxx-input_pins强烈推荐始终开启的选项。默认报告只显示单元的输出引脚O、Z、Q等的延迟。加上这个选项后它会多显示一列输入引脚A、D、B等。关键好处在于你能看到线网延迟被单独剥离出来了原来一个 Incr 值里混在一起的单元延迟和互连延迟现在一目了然。你能直接判断延迟大头是单元本身慢还是走线太长了。显示某个cell输入引脚与时序延迟。在默认情况下时序报告仅显示单元的输出引脚线网延迟隐含在输出到输入的路径中。启用后强制显示路径中所有单元的输入引脚让路径节点更完整明确展示线网延迟从驱动单元输出引脚到负载单元输入引脚的延迟-nets这个选项会把路径上的线网名称和它的扇出数显示出来。对于分析高扇出网络、了解信号分布很有帮助。但注意它本身不显示延迟需要配合 -input_pins 才能看到线网的具体延迟贡献。report_timing-include_hierarchical_pins-fromxxx-toxxx默认pt工具报告中只会显示leaf cell的延时无法显示hierarchical pin的延时。开始该选项可以让报告显示地更加全面。可以通过如下指令查看某个class有哪些属性list_attributes-class[xxx]-application-nosplit有效的class有pin、net、cell、timing_path、clock、port、design比如要获取timing_path有哪些attribute可以list_attributes-classtiming_path-application-nosplit比如想要获取某个时钟的频率周期可以get_attribute[get_clock xxx]period或者获取其waveform显示其占空比可以get_attribute[get_clock xxx]waveform ----{217.5,870}或者获取该时钟的master clock或者master pinget_attribute[get_clock xxx]master_clockget_attribute[get_clock xxx]master_pin或者获取该时钟是否是lib中生成的get_attribute[get_clock xxx]is_generated_from_lib_cell比如想获取某个leaf cell在Lib库中调用的lib cell名get_attribute[get_cells xxx]lib_cell比如想要获取某个信号设置case或者外部tie0或1可以获取某个pin的属性get_attribute[get_pins xxx]case_valueget_attribute[get_pins xxx]constant比如想要获取某个path的data delay信息可以get_attribute[get_timing_path-fromA-toB-delay_typemin]arrival比如想要获取某个path的slack信息可以get_attribute[get_timing_path-fromA-toB-delay_typemin]slack将pt抓出来的collection比如get_cell或者get_pins的结果按列整齐排放的方法join[get_object_name[get_cells xxx]]\n如果想整齐地打印到某个文件中则echo[join[get_object_name[get_cells xxx]]\n]xxx.log检查某个cell是否设置disable timing的方法report_disable_timing[get_cells xxx]可以报出disable的timing arc是什么。如何在pt_shell中查看当前顶层设计是啥current_designreport_timing -path_type full_clock_expanded 的含义默认的path_type为full_clock。在timing报告中将会把clock的演示合并为单一clock source latency项隐藏中间逻辑选择-path_type full_clock_expanded后可以显示主时钟→生成时钟的完整转换路径如分频、门控、MUX 时钟让clock的路径更加完成可以更好地分析时钟路径延时。all_fanin/all_fanout相关要想得到连接到某个寄存器D端的cell且为timing的start_point起点的cellall_fanin-startpoints_only-flat-to$reg/D-only_cells要想从某个寄存器的CPall_fanout-endpoints_only-flat-from$reg/CP-only_cells如果想用图形化的界面看一下cell之间的连接关系则可以通过下面的指令start_gui 选择view-Schematic_View change_selection[get_pins$pin_name]双击pin则会显示前面和后面的链接pt要想获取某个object的名字比如cell的名字比如抓到某个cell想要打印它的名字setpin_name[get_cells-quiet-hier-filterref_name xxxx]puts$pin_name此时虽然终端打印结果为{aaa}但是pin_name这个变量本质上返回的是一个指针打印结果为_sel263如果想要返回真实的名字需要setpin_real_name[get_object_name$pin_name]puts$pin_real_name然后打印结果为aaa