微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > ICC的问题请教(insert_diode/insert_well_filler)

ICC的问题请教(insert_diode/insert_well_filler)

时间:10-02 整理:3721RD 点击:
1,在用ICC做PR后发现还有Antenna Violations(Calibre能查出来,但是ICC本身不会报出violations),我的做法是:set_route_zrt_detail_options -antenna true -insert_diodes_during_routing true \
-default_diode_protection 30 -antenna_fixing_preference use_diodes \
-default_port_external_antenna_area 30 -merge_gates_for_antenna false
但是最后的结果还是会出现Antenna Violations,请问各位大神,还有什么办法能解决Antenna问题吗?

2,我在使用insert_well_filler -layer NWELL时,出现下述ERROR,NWELL也没有insert:
ERROR: cannot find WELL intersections on cell boundary - MX4XLM.
ERROR: cannot find WELL intersections on cell boundary - MX3X1M.
ERROR: cannot find WELL intersections on cell boundary - MX2X2M.
ERROR: cannot find WELL intersections on cell boundary - DFFQX1M.
ERROR: cannot find WELL intersections on cell boundary - NAND2X4M.
ERROR: cannot find WELL intersections on cell boundary - NOR4X2M.
ERROR: cannot find WELL intersections on cell boundary - NOR3X6M.
ERROR: cannot find WELL intersections on cell boundary - XOR2X2M.
ERROR: cannot find WELL intersections on cell boundary - NAND2BX2M.
ERROR: cannot find WELL intersections on cell boundary - AND4X2M.
ERROR: cannot find WELL intersections on cell boundary - AND3X2M.
WARNING: Nothing added. Check cells for well layer data
SUGGESTION: (1) check well layer minimum spacing in tech file
(2) check the input layer number
************** End of Well Filler ***********
请问大家是什么原因啊?

不要沉啊

ICC 不认为是antenna违反当然就不会自己做了,有读antenna的rule文件么? 或者定义的ratio什么的不太合适;
第二个没用过 不清楚了

ICC check 不到的 violations,肯定不会去 fix
少的话ECO,多的话想办法让 ICC identify antenna information 并且计算方法与 Calibre 一致。
看上去是说 FRAM view 没有 NWELL。
当然一般做 p&r 也不关心 NWELL 的 minspacing,所以 tf 也要看一下

应该是读了Antenna Rule,我看Man上的说明好像也对的。Rule内容如下:set lib [current_mw_lib]
define_antenna_rule $lib -mode 4 -diode_mode 2 -metal_ratio 0 -cut_ratio 0
define_antenna_layer_rule $lib -mode 4 -layer "METAL1" -ratio 400 -diode_ratio {0.203 0400.002200 }
define_antenna_layer_rule $lib -mode 4 -layer "METAL2" -ratio 400 -diode_ratio {0.203 0400.002200 }
define_antenna_layer_rule $lib -mode 4 -layer "METAL3" -ratio 400 -diode_ratio {0.203 0400.002200 }
define_antenna_layer_rule $lib -mode 4 -layer "METAL4" -ratio 400 -diode_ratio {0.203 0400.002200 }
define_antenna_layer_rule $lib -mode 4 -layer "METAL5" -ratio 400 -diode_ratio {0.203 08000.0030000 }
define_antenna_layer_rule $lib -mode 4 -layer "VIA12" -ratio 20 -diode_ratio {0.203 083.3375 }
define_antenna_layer_rule $lib -mode 4 -layer "VIA23" -ratio 20 -diode_ratio {0.203 083.3375 }
define_antenna_layer_rule $lib -mode 4 -layer "VIA34" -ratio 20 -diode_ratio {0.203 083.3375 }
define_antenna_layer_rule $lib -mode 4 -layer "VIA45" -ratio 20 -diode_ratio {0.203 083.3375 }

{}内的内容不是太明白,不知道这个Rule对也不对?

刚接触数字后端,能不能详细的讲解一下,谢谢!
ECO的话要怎么做?ICC identify antenna information又要怎么做?

Fram View中貌似是没有NWELL,那么如果我想在每条Power row上都加入Nwell,我该怎么做?

我自己顶

ECO 就是看到哪条 net 有 violation 就手动加 diode(其实一般提倡先试 hop layer)
那 ICC 为什么没有 check 到这些 violations 呢。
假设你这里 define_antenna_rule 与 Calibre 的 rule 一致,并且 Calibre 的 rule 是正确的:
{0.203 0400.002200 }意味着当 diode 面积大于 0.203 时, radio 要小于 (diode_area+0)*400+2200,当 diode 面积小于 0.203 时, radio要小于 "-ratio 400"
你要保证 FRAM view 包含 gate size 等,可以详细地看一下 set_route_zrt_detail_options 的各个 option
你这里是 mode 4(side-wall),要保证 tf 里面定义的 metal 的 thickness 与 Calibre 计算的一致。

如果你的 floorplan 是 double back,只想在每条 power row 加 Nwell, 那不应该这样做,而应该 insert STD filler

3Q,我会按你说的试试

那 ICC 为什么没有 check 到这些 violations 呢。
假设你这里 define_antenna_rule 与 Calibre 的 rule 一致,并且 Calibre 的 rule 是正确的:
{0.203 0400.002200 }意味着当 diode 面积大于 0.203 时, radio 要小于 (diode_area+0)*400+2200,当 diode 面积小于 0.203 时, radio要小于 "-ratio 400"
你要保证 FRAM view 包含 gate size 等,可以详细地看一下 set_route_zrt_detail_options 的各个 option
你这里是 mode 4(side-wall),要保证 tf 里面定义的 metal 的 thickness 与 Calibre 计算的一致。
===>如何来确认呢?我刚查了下,tf文件中
METAL1
unitMinThickness= 0.53
unitNomThickness= 0.53
unitMaxThickness= 0.53
METAL2
unitMinThickness= 0.53
unitNomThickness= 0.53
unitMaxThickness= 0.53
METAL3
unitMinThickness= 0.53
unitNomThickness= 0.53
unitMaxThickness= 0.53
METAL4
unitMinThickness= 0.53
unitNomThickness= 0.53
unitMaxThickness= 0.53
METAL5
unitMinThickness= 0.99
unitNomThickness= 0.99
unitMaxThickness= 0.99

你说的是这个吗?具体怎么计算?
如果你的 floorplan 是 double back,只想在每条 power row 加 Nwell, 那不应该这样做,而应该 insert STD filler

===>我试着加了
insert_stdcell_fill -cell_without_metal {FILL1M FILL2M FILL4M FILL8M} -between_std_cells_only -respect_keepout

但是好像没有效果。是不是我弄错了?

谢谢!

1. 手工跳线,icc搞不定的只能手工修,
2. insert_well_filler用到的机会非常少,你要干啥, rowend nwell 只需要add_end_cap即可,


现在就是我PR出来的结果,在有些地方well是断开的,有可能会造成Drc Violations,所以。

现在显示的是我目前的well,总是有些地方是断开的,有可能会造成Drc Violations

考,你加filler不就好了,insert_stdcell_filler

试过了,请看10#,还是不行啊

去掉-between_std_cells_only,加上-ignore_soft_placement_blockage ,

OK,我下周试试,

试过了,貌似还是没区别。
难道是我人品太差?

smic18 1p5m arm 库么,应该没问题的啊,加了filler, nwell还连续不起来?
你dump gds有问题么,

我重新试了一下,OK了,3Q

虽然不懂,顶一下,学习.......



maomaoyu太好学了

你现在是加fill cell来解决这个nwell问题吗?还是加well fill?我试着加well fill是不行的,问题和你一样。

我是通过加Filler cell

我有一些cell之间空闲太小,无法加入fill cell我目前工艺最小的fillceel 是0.58um所以有的地方加不进去怎么办呢?

你使用的是什么命令?我也是新手一个,可能我也是误打误撞才弄好了,咱们可以一起研究一下。

你好:这是加fill cell的comand 但是这样还是有nwell空隙。
insert_stdcell_filler -respect_keepout-cell_with_metal "FILLCAP3 FILLCAP8 FILLCAP4" -connect_to_power VDD -connect_to_ground VSSinsert_stdcell_filler -respect_keepout-cell_with_metal "FILL1 FILL2 FILL4" -connect_to_power VDD -connect_to_ground VSS
FILL1是最小FRAM大概是0.58um的宽。
不知道well fill 怎么加?

学写了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top