ungroup使用
ungroup -all当然是能达到最大的优化力度啊, 整体timing最好,
但是有时候会导致功能的变化, 仿真没法过,比如某个hier boundary没了,
因此只是有限度的ungroup,比如-level3,
哦,谢谢你。
那在保证功能正常的情况下,就可以使用ungroup -all -flatten全局打散,这样可以得到最好的综合效果,是吗
为什么某个hier boundary没了会导致仿真通不过,仿真过程我们关心的是顶层的输入和输出,内部的子模块边界去除了难道会影响系统的功能吗? 不是太明白,请再帮我解释下,多谢。
理论上是这样的,前端的人更清楚这个,
全部ungroup打散后,没有boundary,一般功能是不会影响的,LEC来保证。但是function层次就没有了,比如对网表做一些verification,如STA时一些重要的点可能找不到了,如果还要debug的话几乎做不下去。
后端fix后某些点发现需要做function ECO,那么很可能也没法做了。
另外ungroup也分具体情况也不是所有情况下就一定明显减小面积,我们一般是有选择地对个别一些联系紧密的module会ungroup,不过目的是为了打掉boundary得到更好的timing不是面积。
纯属个人理解
你好,我还有些不明白的地方,耽误你些时间,请帮我看看,谢谢。
全部ungroup打散后,没有boundary,一般功能是不会影响的,LEC来保证。
LEC是STA的工具吧,和PrimeTime类似吗?不明白LEC是如何来保证功能的,应该是仿真来保证功能吧?
但是function层次就没有了,比如对网表做一些verification,如STA时一些重要的点可能找不到了,如果还要debug的话几乎做不下去。
你这里提到的verification,是指的哪方面验证,debug是指的后仿吗,能帮我再细说下吗?
后端fix后某些点发现需要做function ECO,那么很可能也没法做了。
这里的function ECO,指的是什么,之前没有遇到过,请帮我再说明。
另外ungroup也分具体情况也不是所有情况下就一定明显减小面积,我们一般是有选择地对个别一些联系紧密的module会ungroup,不过目的是为了打掉boundary得到更好的timing不是面积。
像现在我这种情况,加入ungroup,使得面积大大减小了50%,同时formality验证也ok。如果时序没有问题,仿真也都通过的话,加入ungroup岂不是非常必须的。我的理解正确吗?
单纯从前端观点看,移除了boundary后会导致针对网表的debug很难做。
如果你仿真都能通过,当然flat的网表也行啊,
就是后面的debug 和升级没法做,
LEC和formality一样的, 是cadenc的形式验证工具,
谢谢。
所说的Debug和升级,指的具体哪一过程,指的是下一次流片的升级吗?
是不是如果到以后可能会升级的话,本次就不要用ungroup -all -flatten了呢?
你好,在最后我又问了一个问题,帮我看看,谢谢
对,主要指以后的eco 工作, 或者debug 仿真的问题, 会在某个hier 上,
如果你这次没啥问题,flatten netlist也行的
能否回答一下7楼所问的问题 多谢啦
ungroup 不能随便使用。有几点考虑
(1) 形式验证角度
(2) ungroup不一定带来面积和timing的好处,flatten的netlist对placement并不是很好
学习了
小白学习了