在数字IC后端实现中,由于有的工艺foundary不提供Filler1,所以PR工具Innovus和ICC2在做标准单元摆放时需要避免出现两个标准单元之间的缝隙间距是Filler1。为了实现这个目的,我们需要给PR工具施加一些特殊的placement constraint(典型案例就是咱们社区TSMC 28nm项目)。
数字IC后端设计实现之Innovus place报错案例 (IMPSP-9099,9100三种解决方案)
下面分别分享ICC2和Innovus两个工具的做法。
【思考题】为何同是28nm工艺,GlobalFoundary为何支持任意两个标准之间的间距是一倍Filler的宽度?
ICC2中实现脚本:
###删除现有的spacing rule
remove_placement_spacing_rules -all
###设置placement的spacing rule来控制cell的摆放 (这样设置还可以避免一些DRC)
set_placement_spacing_label -name X -side both -lib_cells [get_lib_cells / ]
set_placement_spacing_rule -labels {X X} {0 1}
###检查设置是否成功
report_placement_spacing_rule > spacing_rule.rpt
延伸:这里也可以针对设计中那些不好绕线的cell来设置spacing rule来避免DRC。
set_placement_spacing_label -name X -side both -lib_cells [get_lib_cells /AOI]
Innovus中实现脚本:
setPlaceMode -place_detail_legalization_inst_gap 2