一:综合策略
top-down & bottom-up
1:top-down
层次化结构,只对顶层设计进行全面约束,针对个别模块有特殊约束;比如管理模块(clock模块,reset模块等)的综合不会与工作模块(顶层模块)放在一起综合的。
2:bottom-up
对底层的各个模块定为current_design,进行综合,加上dont touch属性;若各层之间有group logic(如与门),还需要对group logic约束;这种风格的综合约束复杂且多。
所有top-dowm方式用得更多
3:综合里的关键字
边界优化, ungroup(模块被打散,只能看到顶层设计),扫描链(DFT)。。。。
二:compile_ultra的三级分类
虚拟机不支持,是对compile进行优化;
将模块全部打散,对于后端来说,全部打散不方便后续操作,只能看到各个与或非门,无法得到具体模块与模块之间的关系或者问题。
对关键路径优化,循环迭代优化。目标是满足时序要求的同时保证面积最小。
分为三个阶段的优化:
主要包括:第一阶段的结构级的优化(Architectural-Level Optimization)、第二阶段的逻辑级优化(Logic-Level Optimization)、最后阶段的门级优化(Gate-Level Optimization)。
1:结构级优化(archiiture-level)
结构级优化包括的内容如下:
包括:设计结构的优化,数据通路的优化,共享共同的子表达式,资源共享,重新排序运算符号(详见http://www.cnblogs.com/IClearner/p/6636176.html)
例如:加法器有普通加法器,超前进位加法器,DC会根据应用场合挑选出合适的加法器。
2:逻辑级优化(logic-level)
一个逻辑表达式可以是与非格式,也可以是或非格式,DC会选择合适的逻辑表达式来描述逻辑功能。
逻辑优化的内容如下:
做完结构的优化后,电路的功能以GTECH的器件来表示。在逻辑级优化的过程中,可以作结构(Structuring)优化和展(开)平(Flattening)优化。
3:门级优化(Gate-level)
得到网表后的优化,局部优化。
三:其他知识点
1:re-synthesis
网表文件生成后,静态时序分析时,DC工具对路径进行分析,对关键路径进行优化,逻辑级优化与门级优化可以迭代使用(若路径延时过大,不满足设计规则,DC会resynthesis,一直到路径延迟满足要求)。
2:DesignWare Library
IP库,包含算术操作,标准IP;优点在于设计更快更可靠;在使用compile_ultra会自动使用该库。
3:综合最基本的要求是满足时序要求;
4:CSA算法优化数据通路的设计
5:常见算术优化方法
尤其是第五条,乘法运算改为移位运算,减少资料占用。
6:逻辑复制(logic duplication)
对关键路径部分的负载放在其他路径上,减少关键路径延时,以面积换速度。
7:库分析
一个逻辑表达式可由不同的表达方式表达,DC挑选出合适的库单元实现逻辑。
三:其他有关命令的时序优化及方法
DC综合之后,我们查看详细的报告,如果没有违规,设计既能满足时间和面积的要求又不违犯设计规则,那么综合完成。可以把门级网表和设计约束等交给后端(backend)工具做布局(placement )、时钟树综合(clock tree synthesis)和布线(route)等工作,产生GDSII文件。如果设计不能满足时间和面积的要求或违犯设计规则等,就要分析问题所在,判断问题的大小,然后采取适当的措施解决问题。问题往往是时序的问题,发生时序违规时可以采取相应的措施,如下图所示: