订阅
纠错
加入自媒体

一文了解高级综合优化选项ungroup

2021-07-29 10:38
ExASIC
关注

我们在综合时,为了面积和时序目标,常常开了很多优化选项,比如compile_ultra。这个命令会根据面积和时序的要求,自动ungroup部分子模块,并进行跨模块边界优化。为了优化动态功耗,我们还会自动插入门控时钟。还有DCT、DCG模式,会打开物理优化,为了修复Cap和Transition的违例,进行寄存器复制、子模块端口复制等。下面就这些选项做一些说明。

flatten hierarchy

顾名思义就是打平层次关系,特别是一些纯组合逻辑的小模块,或者以连线为主的粘合逻辑。我们知道时序分析(setup/hold)时有以下几种时序路径:in2reg、reg2reg、reg2out、in2out。判断一条路径是否满足时序要求,就是看路径上的总延时大小。而总延时是跨模块的,或者说是以逻辑锥(logic cone)为单位的。所以打平这些组合逻辑模块后,就不需要保持层次关系的端口,更有利于以逻辑锥为单位进行优化。相反,如果保留子模块pin,优化力度会打折扣。

那是不是把所有层次关系都去掉更好呢?对优化面积和时序,是的。但对LEC、ECO、后仿调试,会大大加大难度。所以,一般建议只flatten跨模块的大组合逻辑。并且建议设计时按逻辑锥来划分模块,即常讲的模块的信号总是用DFF打拍输出。

声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号