innovus: set_ccopt_property的基本用法

innovus: set_ccopt_property的基本用法_第1张图片

abfa3294a52c418da7aaf312581d69a0.png

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

拾陆楼知识星球入口

7c66a2680e394a00bae75cad763daf4d.png

innovus: set_ccopt_property的基本用法_第2张图片clock route

clock route的net type分为三种,分别是root、trunk和leaf,其中root是指fanout超过routing_top_fanout_count约束的net,leaf是指接sink的net,剩下的就是trunk,工具会给既接sink又接组合逻辑的net插buf来避免net type定义冲突。

top net的fanout限制是人为控制的。

set_ccopt_property routing_top_fanout_count 1000

还可以设置如下命令,让mem/CLK相当于1000个FF/CK,通过这种方式可以让mem/CLK用top route rule去绕线。

set_ccopt_property -pin mem/CLK -routing_top_fanout_count 1000

net_type参考命令:

innovus: add_ndr

innovus: add_ndr使用自定义via def

add_ndr -name 2w2s -spacing_multiplier {M3:M5 2} -width_multiplher {M3:M5 2}

create_route_type _name top -non_default_rule 2w2s

create_route_type _name trunk -non_default_rule 2w2s

create_route_type -name leaf -top_preferred_layer M2 -bottom_preferred_layer M5 

set_ccopt_property -net_type top route_type trunk

set_ccopt_property -net_type top route_type trunk

set_ccopt_property -net_type leaf route_type leaf

innovus: set_ccopt_property的基本用法_第3张图片 clock cell

clock buffer_cells / inverter_cells / clock_gating_cells / logic_cells 设置方法如下:

innovus: clock cell list如何设置

选型参考如下方法:

长tree的buffer_cells/inverter_cells如何选型

 

innovus: set_ccopt_property的基本用法_第4张图片   opt_ignore    

使用innovus分段长tree时可以用以下三种方式先做subtree(分别使用,也可以结合使用)。

ICC2/innovus 分段长tree思路

1)修改spec,保留subtree clock。

2)修改sdc,创建新的analysis_view,产生对应的spec file。

3)使用opt_ignore,设置为true工具不会balance指定clock。

set_ccopt_property -opt_ignore true -clock_tree $clock_name

innovus: set_ccopt_property的基本用法_第5张图片sink_type

用户通过set_ccopt_property控制的sink type有三种,分别是stop pin ,ignore pin和exclude pin,具体区别见如下文章:

stop pin / ignore pin /exclude pin /float pin

设置方法如下:

set_ccopt_property \

-pin \

sink_type ignore/stop/exclude

innovus: set_ccopt_property的基本用法_第6张图片

update_io_latency

在cts前后,由于clock latency造成in2reg和reg2out的时序发生很大变化,为了减小这种变化的影响,工具会自动update io latency,具体内容可见如下文章:

update io latency详解

默认情况下,innovus ccopt会自动update io latency,命令如下:

set_ccopt_property update_io_latency true(default)

但如果cts时遇到core clock已经是propagated的情况,工具不会update io latency除非做出如下设置。

set_ccopt_property force_update_io_latency true(default: false)

 

你可能感兴趣的:(学习,后端)