25-1-NDR绕线规则定义

在innovus里面,clock path除了最后一级buffer跟reg的clock pin相连的那段net称为leaf net之外,其他的clock net都称为trunk net。

而我们为了减小trunk net上的net delay,我们会将net的线宽加大,并且尽量使用高层金属走线来减小net delay,而为了避免trunk net上出现串扰问题,我们会将net的间距加大,所以我们针对trunk net创建了一个双倍线宽双倍间距的ndr绕线规则。

而leaf net由于数量比较,并且net长度普遍较短,我们用常规的绕线规则就可以,不另外设置。如果这个也用双倍线宽和线间距的话,可能会导致绕线资源紧张问题的出现,但是带来的net delay并不会有太多的改善。

脚本命令如下:

1
2
3
4
5
add_ndr -name cts_w2s2 -width_multiplier {M5:M8 2} -spacing_multiplier {M5:M8 2}

create_route_type -name trunk_rule -non_default_rule cts_w2s2 -top_preferred_layer M8 -bottom_preferred_layer M5

set_ccopt_property route_type trunk_rule -net_type trunk
1
2
3
4
5
6
7
8
9
10
11
# 第1行:创建名叫 cts_w2s2 的 NDR 规则。
# 规定在 M5 到 M8 层,线宽放大 2 倍,间距放大 2 倍。
add_ndr -name cts_w2s2 -width_multiplier {M5:M8 2} -spacing_multiplier {M5:M8 2}

# 第2行:把上面这个 NDR 规则打包成一个叫 trunk_rule 的“绕线套餐”。
# 并且死死限制住:最高只能走到 M8,最低不能下穿 M5。
create_route_type -name trunk_rule -non_default_rule cts_w2s2 -top_preferred_layer M8 -bottom_preferred_layer M5

# 第3行:给 CCOpt (时钟引擎) 下达终极指令。
# “兄弟,长时钟树的时候,只要是 Trunk (主干线),全部给我强制套用这个 trunk_rule 套餐!”
set_ccopt_property route_type trunk_rule -net_type trunk
ESC 关闭 | 导航 | Enter 打开
输入关键词开始搜索