目录

数字IC后端设计实现教程-Innovus-ICC2-Routing-Pin-Access-Setting设置方法

目录

数字IC后端设计实现教程 |Innovus &ICC2 Routing Pin Access Setting设置方法

默认情况下routing 引擎可以在标准单元可以打孔的任何地方(via region)打孔,甚至工具还会先拉出一块metal,然后再打孔过渡到高层。

随之工艺节点越做越小,标准单元内部的结构也越来越复杂。此时如果还沿用传统工艺的走线方式,最终在做calibre drc检查可能会发现大量pin access相关的drc violation。

主要原因是工具看不到标准单元内部的Contact layer!

比如下图所示右侧工具为了连接M1 Pin,把via1打孔在这个pin边界处,而且大部分via1超出这个pin shape范围。此时虽然PR工具看不到violation,但Calibre drc检查会出现巨量这类drc violation。

https://i-blog.csdnimg.cn/direct/f1916af109874f79a4bb6da3e1a3d0c6.png

https://i-blog.csdnimg.cn/direct/6c0e966ccbfc4e7fae4b50f73f470a34.png

所以现在最新的PR Flow默认都会通过一些选项来控制工具在标准单元出pin上打孔的方式。

对于ICC和ICC2工具不仅要控制via在pin shape内,还会控制对应的M1 Wire在pin范围内。

https://i-blog.csdnimg.cn/direct/ddbe60e7814f4193908cc1e20230d7ab.png

Innovus routing阶段设置:

setNanoRouteMode -routeAutoTuneOptionsForAdvancedDesign true

setNanoRouteMode -routeWithViaOnlyForStandardCellPin 1:1 -routeWithViaInPin 1:1

ICC2 routing阶段设置:

set_app_options -name -value { {M1 via_wire_standard_cell_pins}}

ICC Routing阶段设置:

set_route_zrt_common_options \

-wide_macro_pin_as_fat_wire true \

-connect_within_pins [M1 via_wire_standard_cell_pins] ] \

-reshield_modified_nets reshield \

-tie_off_mode rail_only \

-rotate_default_vias false \

-route_soft_rule_effort_level high \

-concurrent_redundant_via_effort_level medium \

-eco_route_concurrent_redundant_via_effort_level medium \

-concurrent_redundant_via_mode reserve_space

如果在前期忘记设置这些变量,我们也可以在当前的database中重新设置如上的变量,然后再做下ecoRoute。

但需要指出的是这种改动其实对绕线和timing是有影响的。如果是高频的设计实现,切记不要这么干,很容易导致绕线和timing问题!