You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用TCL脚本在PT Tool中批量导出所有受害者网络的侵扰网络

批量导出受害者网络对应侵扰网络的TCL脚本(PT Tool)

以下是可直接用于PrimeTime的TCL脚本,实现批量提取所有受害者网络对应的侵扰网络并导出到文件:

# 指定输出报告文件路径
set output_report "aggressor_nets_summary.txt"
set file_handle [open $output_report w]

# 获取所有受害者网络(可根据需求添加过滤条件,比如仅选时序违例路径关联网络)
set all_victim_nets [get_nets -hierarchical *]

# 遍历每个受害者网络,提取对应侵扰网络
foreach victim_net $all_victim_nets {
    # 获取当前网络的输入输出引脚对(对应时序路径端点)
    set timing_paths [get_timing_paths -from [get_pins -of_objects $victim_net -filter "DIRECTION == OUTPUT"] -to [get_pins -of_objects $victim_net -filter "DIRECTION == INPUT"]]
    
    if {[llength $timing_paths] > 0} {
        puts $file_handle "--- 受害者网络: $victim_net ---"
        foreach path $timing_paths {
            set from_pin [get_property FROM_PIN $path]
            set to_pin [get_property TO_PIN $path]
            
            # 调用PT命令并捕获输出内容
            set delay_report [report_delay_calculation -from $from_pin -to $to_pin -format text -nosplit]
            
            # 过滤出侵扰网络相关内容写入文件
            puts $file_handle "路径: $from_pin -> $to_pin"
            puts $file_handle "侵扰网络:"
            puts $file_handle [regexp -all -inline -line {(Aggressor nets:.*)} $delay_report]
            puts $file_handle "\n"
        }
    }
}

close $file_handle
puts "批量报告已生成,路径: $output_report"

关键说明

  • 网络过滤:如果不需要遍历所有网络,可以修改get_nets的过滤条件,比如添加-filter "IS_TIMING_CRITICAL == true"仅提取时序关键网络,或从预定义文件读取受害者列表:
    set victim_nets [split [read [open "target_victim_nets.txt" r]] "\n"]
    
  • 输出调整:若PT的report_delay_calculation输出格式有变化,需要同步修改正则表达式(Aggressor nets:.*)的匹配规则,确保准确提取侵扰网络内容。
  • 性能优化:大规模设计中,建议先通过get_timing_paths -max_paths N限定路径数量,避免脚本运行时间过长。

内容的提问来源于stack exchange,提问作者muttineni pavan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:58:26