微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > ICC derive_pg_connection是否須要常常執行?

ICC derive_pg_connection是否須要常常執行?

时间:10-02 整理:3721RD 点击:
ICC不知為何有一個地方很麻煩,就是每次執行完*_opt指令(如clock_opt, route_opt, ...),
就要執行一次derive_pg_connection,不像SoC Encounter只要設定一次power/ground就可以了。
但我曾經試過,有時執行完好幾次*_opt、忘了執行derive_pg_connection,最後只要執行一次derive_pg_connection,再跑ICC的LVS就沒問題。
那這麼說,是不是每次執行完*_opt,就執行derive_pg_connection是多餘的?
而是只要用route_opt或focal_opt修完timing slacks,最後在執行一次derive_pg_connection就可以了?
但我記得ICC user guide是建議每次執行完*_opt,就執行derive_pg_connection,這樣有什麼好處?

不是必要的,只是让icc知道现在有很多cell的pg关系更新了,因为每次opt都有很多cell加入,
但实际上因为都是放在row上,已经自动连接到了pg,verify_lvs的时候就不会出现null net short with vdd/vss 这种 error
从calibre lvs的角度看,没有区别,

从你ICC导出的Verilog网表中我们可以看到区别,我们使用ICC的OPTION,使写出的Verilog带PG port.
没有derive_pg 之前写出的如下( 具体语法记不清了 )
INV XINV (.A(A),.Z(Z));
derive_pg之后的网表如下:
INV XINV (.A(A),.Z(Z),.VDD(VDD),VSS(VSS));
做Calibre 的LVS时,如果使用了.GLOBAL VDD VSS,第一个网表可以用, 如果没有使用.GLOBAL VDD VSS,第一网表就报错了。
而不使用.GlOBAL的话,第二个网表也可以用于LVS,是正确的。

我的理解是,在读入网表后,做一次derive,然后直到你需要检查LVS之前,再执行一次derive就OK了。
但是我也有点不明白,这个derive会不会影响Timing里面的计算时所用到的Voltage信息?
还望大牛给解答:)

应该不会, 缺省就是认为是vdd,vss的,
icc还没有到voltage related timing results 这种自动的地步吧,
要很多library group scaling来做的

謝謝各位的意見。

谢谢 icfbicfb的答复

学到了多谢大牛们!

我只是在导入网表的时候derive_pg_connection,route后, verify_lvs的时候出现了null net short with vdd/vss error。这个会出问题么?

学习了,多谢解释

经常这样做

对leaf cel ,hierarchical cells, and physical-only cells创建逻辑电源和地连接,单电压和多电压流程皆适用。
使用report_cell_physical –connection命令,可以察看结果。
当电源和地之间连接改变时,derive_pg_connection都要再执行。比如
• After design planning • After using logical ECO to modify the design • After chip-finishing tasks
为了确保Verilog netlist中正确电源和地信息,在写一个Verilog netlist之前执行此命令。

大家多讨论,学习了~

好好好

学习了

如果在所有opt做完以后再做一次pg connnect呢?会怎么样?

还是赞同每次都是执行 VDD VSS 居多

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

网站地图

Top