微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 为什么module经过DC综合后 端口的数目都变了? 真奇怪

为什么module经过DC综合后 端口的数目都变了? 真奇怪

时间:10-02 整理:3721RD 点击:



原始的.v文件和综合之后得到一个.v文件,为什么综合后的ADD这个module多了一个port呢?

表示没有看懂问题说啥

ADD是我自己写的一个加法器,然后把这个ADD在top.v中例化了一次;top.v中除了加法器还有一个乘法器和一个电源控制模块;
然后去DC中进行综合,综合之后,write命令写一个.v文件出来,就是图中的module TOP 可为什么在module TOP中的I_ADD的端口的个数和我原来的ADD模块的端口个数不一致了呢

小编看懂问题了吗 知道这是怎么造成的吗

DCT , 或者DCG ,做 place优化的时候增加端口,很正常。

我用的是 DC mode,没有使用 DCT和DCG mode啊

要想不动端口,可以改一定的变量,不过,DC加端口是有一定理由的。不动端口,可能增加面积,timing变差的结果。

我这个增加端口是因为upf的原因,我做了实验,不加upf的时候,综合后没有多加端口;
但是load upf之后,再compile就会多加端口;

也正因为这个多加的端口,一直提示说 有个 level shifter 加不进去;

请问修改什么变量可以控制,让工具对子模块不多加端口;

试试这个
power_preserve_rtl_hier_names

设置为true之后,综合之后得到的网表文件中,I_ADD依然多了一个端口
ADD I_ADD ( .add_in0(in0), .add_in1(in1), .clk(clk), .resetn(resetn),
.add_out({n12, n11, n10, n9, n8, n7, n6, n5, n4}), .a_ret(n2) );


那看看 把它端口都 dont touch.
set_dont_touch [get_nets -of I_ADD/add*] true
还有这个变量 :
compile_preserve_subdesign_interfaces

set_dont_touch 肯定能保持原来状况,但是优化力度肯定小了
你就个adder,还搞什么upf啊,

熟悉下流程啊,这是跑的synopsys的low power lab,只有lab么有guide,版大能否帮忙下这个guide呢
http://www.synopsys.com/apps/support/training/lowpowerflowhld_fcd.html
多谢了先

额 使用完你说的这俩命令写出来的.v文件中,I_ADD这个module依然多了个 a_ret这个port,
并且这个端口在I_ADD内的net直接连了一个buffer,应该是先连一个level shifter才对;

可以先综合这个add看看,应该是不会加端口的。

那就得采用bottom-up的方法了,将ADD这个模块单独综合 然后单独布局布线

将ADD这个模块单独综合 然后单独布局布线
---
那倒是不用的,单独综合,合在顶层一块PR

我不理解你的意思,如果我有如下.v文件
top.va.vb.v c.v;top.v 中例化了 a.v b.v c.v ; 如果我分别单独综合了 a.vb.vc.v 综合之后各出一个网表(.v文件);top.v不做任何操作

然后直接将top.v传给ICC去做PnR你是这个意思吗;还是说我分别单独综合了 a.vb.vc.v 综合之后各出一个网表(.v文件),然后将top.v去做一遍DC综合,出一个TOP.v然后将这个TOP.V传给ICC去做 PnR?

是上面的那种情况呢?

是上面的那种情况呢?
===
都可以,两种网表都能只做一遍PR就实现。

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

网站地图

Top