各位后端设计的老铁们,今天咱们来聊聊Innovus里的一个“神器”——setAddStripeMode
。这个命令看似不起眼,但用好了,条纹生成、间距控制、DRC修复、甚至天线效应处理都能轻松搞定!今天就带大家从零开始,把它的核心功能一网打尽。
1. 电源条生成与间距控制:间距要精确还是灵活?
电源条间距的控制是setAddStripeMode
的核心功能之一,这里有两个关键选项:
-
-keep_pitch_after_snap {true | false}
这个选项决定了电源条在对齐后是否保持原间距。如果设为true
,电源条会严格按照设定的间距生成;而false
则会稍微“放松”一下,间距会近似但更灵活。
示例:setAddStripeMode -keep_pitch_after_snap true
建议: 如果你的设计对间距要求极高,选
true
;但如果想避免DRC错误,false
更友好。 -
-use_exact_spacing {true | false}
这个选项更“硬核”,直接强制电源条间距与设定值严格一致。高精度设计必备! -
-max_extension_distance distance
限制电源条在同一层同方向的最大延伸距离,避免过度耦合。
示例:setAddStripeMode -max_extension_distance 5
2. DRC与天线效应处理:别让小问题毁了你的设计
DRC错误和天线效应是后端设计的“两大杀手”,setAddStripeMode
提供了几个实用选项:
-
-trim_antenna_max_distance value
定义天线终点与阻挡目标的最小允许距离(单位:微米)。如果距离小于设定值,天线会被保留以便后续连接。
示例:setAddStripeMode -trim_antenna_max_distance 2
建议: 根据芯片核心区到焊盘环的距离调整,避免不必要的修剪。
-
-split_vias {true | false}
自动分割长via,减少DRC错误。尤其适合高层金属或密集布线区域。
示例:setAddStripeMode -split_vias true
3. 层次与区域约束:条纹生成的“边界条件”
电源条生成时,区域和层次的约束同样重要:
-
-area {{x1 y1 x2 y2} ...}
定义电源条生成的矩形或多边形区域。注意,它和addStripe -area
的优先级冲突,后者优先。
示例:setAddStripeMode -area {{0 0 100 100} {200 200 300 300}}
-
-domain_offset_from_core {true | false}
在电源域中生成电源条时,是否从全局核心偏移量对齐。多电源域设计的福音! -
-stacked_via_bottom_layer/-stacked_via_top_layer
设置堆叠via的起始和终止层次,跨多层垂直连接时非常实用。
4. Via与连接优化:连接质量决定一切
条纹生成后,连接优化是关键:
-
-via_using_exact_crossover_size {true | false}
控制via间隙是否使用精确的交叉尺寸计算。DRC风险高时选true
,否则用false
提升覆盖率。 -
-merge_with_all_layers {true | false}
将所有层的条纹合并到阻挡环或引脚,适合电源环连接的场景。
5. 辅助功能:小工具,大作用
-
-extend_to_closest_target {stripe | ring | ...}
把条纹延伸到最近的目标,避免悬空连接。
示例:setAddStripeMode -extend_to_closest_target stripe
-
-help
输出参数类型及默认值的简述,快速上手的好帮手。 -
-quiet
以Tcl列表格式返回当前设置,适合脚本自动化。
setAddStripeMode
看似复杂,但掌握了这些核心选项,条纹生成和优化就能事半功倍。下次遇到DRC错误或天线效应时,不妨试试这些技巧。当然,这些只是冰山一角,更多隐藏功能等你去挖掘!