在做placement时,如何保持module端口数目不变?
例如,module test原来有A、B、C三个pin,在使用"place_opt"命令后pins变为A、B、C、IN0、IN1,新增pin的名字一般叫做INx,
如果使用place_opt命令时加-skip_initial_placement选项可以避免新增pin,但是会导致congestion变严重,应该是placement没有做到最优。
请问怎样才可以避免place完成后增加module pin,而且不会对congestion造成影响?
你找错原因了,ahfs肯定会增加模块端口的,但这个不会影响congestion,
congestion有很多原因:
1) power 打的太多
2) power net下放单元
3)开启-cong选项了么,place_opt
4)利用率太高
5)局部利用率太高
6)修了不该修的timing,加了过大的余量
谢谢赐教啊~_~
小编说得对,这种新增pin的存在对于design的性能没有影响,拿去跑PT、DC是OK的,
问题是项目需要改版时,前端designer需要在设计中断开某些线和重连某些线,但designer并不知道IN0、IN1这些新增pins是用来干嘛的,必须重新把设计读一遍,这样就会耽误时间,这是前端designer对我提的一个要求,就是可以不给module增加pin吗?
这个问题一般是由于fix high fanout pin引起的。 应该有keep port或function的之类的option
可以的,
set_dont_touch 该模块就行了,
或者
Usage: set_ahfs_options# set ahfs options
[-no_port_punching list]
(List of hier cells which should get no new ports created or old ports removed during AHFS)
谢谢小编赐教!小编果然很厉害啊!
正解就是在place_opt之前使用:
set_ahfs_options -enable_port_purching false
增加pin是什么原因啊? 求
buffer tree引起,你可以想想,和cts类似
同理,在Encounter里。
setOptMode -keepPort true
还不是很理解为什么在ahfs阶段,module的port的个数会增加呢?
module test原来有A、B、C三个pin,是因为A或B或C是high fanout port,所以工具在优化的时候复制了一个新的port 用来驱动?
小编,还不是很理解为什么在ahfs阶段,module的port的个数会增加呢?
module test原来有A、B、C三个pin,是因为A或B或C是high fanout port,所以工具在优化的时候复制了一个新的port 用来驱动?
不知道您解决了这个问题了嘛? 就是在place_opt之后 module为何会增加pin呢? ICC不会随意增加pin吧就是不知道什么原因让ICC去添加pin端口
版大,我想问下为何ahfs之后,module会无端多生成几个pin呢?