ICC2用create_pg_vias给power mesh打孔,可以选bbox,可以选layer,可以选type……非常好用。
但是,经常遇到有些地方打不上孔。明明很简单的power嘛,不可能有DRC啊,可为什么就是打不上。试了半天也不行,难道是工具bug?算了,还是问问AE先。啥?AE明天才来啊,郁闷……
今天分享一个很强大的debug方法,能很快解决绝大多数打不上pg via的问题。
方法很简单,create_pg_vias有个选项-show_phantom,翻译成中文叫:幽灵现身。加上这个选项后,如果有打不上的via,这个命令会生成一个error file,告诉你某个地方打不上孔是因为什么原因。
create_pg_vias -show_phantom
举个栗子,我想把这个地方加一个VIA78,把M7,M8的power mesh连接起来
现在用这个命令
icc2_shell> create_pg_vias
-nets VSS
-within_bbox {{{297 1025} {298 1026}}}
-from_layers M7
-to_layers M8
Log:
Instantiating vias for 1 intersections starts
Starting via DRC checking ...
Committed 0 vias.
Error: DRC violations prevented new vias to be inserted. (PGR-051)
从log里看,via没有插入成功,原因是有DRC violation。但是是什么DRC 呢?不知道。这个时候就可以用“显示幽灵这个”功能了
icc2_shell> create_pg_vias
-nets VSS
-within_bbox {{{297 1025} {298 1026}}}
-from_layers M7
-to_layers M8
-show_phantom
log:
Instantiating vias for 1 intersections starts
Starting via DRC checking ...
Committed 0 vias.
Error: DRC violations prevented new vias to be inserted. (PGR-051)
Number of phantom vias: 1
仔细看log,这时有一个幽灵孔出现了。这时,再开打error brower研究一下。
选择checker是“create_pg_vias”那个error data,打开之,就能看到幽灵孔了,选择幽灵孔,可以看具体原因
从中可以发现,有DRC是因为via78和"routing objects" overlap了。奇怪了,via78这层明明啥也有没有啊,和谁overlap了?
打开别的东西看看,咦,在via78发现了routing blockage