innovus如何生成和统计长线的报告
专栏:iLoveIC Dec. 3, 2025, 12:34 p.m. 28 阅读
记录一下在innovus里生成和统计长线long nets报告的方法

首先,编写一个计算单根net长度的函数get_net_lenght。用dbGet把wires的每一段长度加起来。

proc get_net_length {net_name} {
    set len_list [dbGet [dbGet -p1 top.nets.name ${net_name}].wires.length]
    set sum 0
    foreach num ${len_list} {
        set sum [expr {$sum + $num}]
    }
    return $sum
}

再用dbGet取出所有的net,foreach遍历每一根net计算长度,并将结果puts到report文件里,如下。

set mylog [open "longnets.rpt" w]
set nets [dbGet top.nets.name]
foreach net $nets {
    puts $mylog "${net},[get_net_length $net]"
}
close $mylog

longnets.rpt其实是一个csv(逗号分隔)文件,后续分析的话,可以用excel或者soffice打开,进行排序或者直方图统计。

感谢阅读,更多文章点击这里:【专栏:iLoveIC】
最新20篇 开设专栏