innovus做cts的设置和脚本
专栏:iLoveIC Dec. 1, 2025, 5:11 p.m. 37 阅读
记录一下innovus做cts(时钟树综合)的方法和脚本

首先,设置CTS要用的金属层,通常选上层金属,电阻更小。比如四层的设计,选M3和M4,三层的设计,选M3和M2。

add_ndr -name CTS_1W1S -width {M2 0.24 M3 0.4} -spacing {M2 0.24 M3 0.4} -generate_via

create_route_type -name top_rule   -non_default_rule CTS_1W1S -top_preferred_layer M3 -bottom_preferred_layer M2
create_route_type -name trunk_rule -non_default_rule CTS_1W1S -top_preferred_layer M3 -bottom_preferred_layer M2
create_route_type -name leaf_rule  -non_default_rule CTS_1W1S -top_preferred_layer M3 -bottom_preferred_layer M2

set_ccopt_property route_type -net_type top   top_rule
set_ccopt_property route_type -net_type trunk trunk_rule
set_ccopt_property route_type -net_type leaf  leaf_rule

设置CTS上要用的clock buffer、inverter、icg等cell,通常选用中等驱动能力的。驱动能力太小延时大,驱动能力太大功耗又高,折中一下。

set_ccopt_property buffer_cells   {
    CLKBUFV4_9TR
    CLKBUFV6_9TR 
}
set_ccopt_property inverter_cells {
    CLKINV4_9TR 
    CLKINV6_9TR 
}
set_ccopt_property clock_gating_cells {
    CLKLANQV4_9TR
    CLKLANQV6_9TR 
    CLKLAHQV4_9TR
    CLKLAHQV6_9TR 
}

设置CTS的指标,max trans、skew等,如下。

set_ccopt_property use_inverters true
set_ccopt_property target_max_trans 350ps
set_ccopt_property target_skew 350ps

set_ccopt_property update_io_latency false

接下来,生成CTS spec,运行CTS综合。

create_ccopt_clock_tree_spec -file cts.spec
source -echo -verbose cts.spec
clock_opt_design

最后,产生CTS的structure报告,方便debug。

report_ccopt_clock_tree_structure \
    -expand_below_logic \
    -expand_generated_clock_trees inline \
    -show_sinks \
    -update_timing \
    -file cts_struct.rpt
感谢阅读,更多文章点击这里:【专栏:iLoveIC】
最新20篇 开设专栏