本文主要是介绍数字集成系统设计——逻辑综合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、概述
1.1 综合的分类
1.2 逻辑综合的基本架构
1.3 逻辑综合的内部流程
1.3.1 RTL代码转译(Translation)
1.3.2 逻辑级优化(Optimization)
1.3.3 工艺映射(Mapping)
二、优化策略
2.1 资源共享
2.2 子表达式共享
2.3 时分复用
2.4 展平化与结构化
2.4.1 展平化(Flattening,亦称扁平化)
2.4.2 结构化(Structuring,亦称层次化)
2.5 逻辑重建
2.6 门级优化
2.7 针对建立-保持时间的策略
一、概述
1.1 综合的分类
- 行为综合:将基于HDL描述的行为级代码自动转换为RTL级代码,只考虑逻辑不考虑延时,发展缓慢。
- 逻辑综合:将基于HDL描述的RTL级代码自动转换为门级网表,所用连线延时是理论预估值,普遍使用(本节之后所称“综合”均指“逻辑综合”)。
- 物理综合:将基于HDL描述的RTL级代码自动转换为门级网表,所用连线延时是布局布线后提取的真实值,运算量巨大。
1.2 逻辑综合的基本架构
综合优化目标
- 速度:在不出现时序违例的前提下关键路径延时最短
- 面积:在满足时序的条件下面积最小
- 功耗:在满足时序的条件下功耗最低
常用逻辑综合工具
- Synopsys的Design Compiler(DC)
- Cadence的RTL Compiler、BuildGates
1.3 逻辑综合的内部流程
1.3.1 RTL代码转译(Translation)
1.3.2 逻辑级优化(Optimization)
1.3.3 工艺映射(Mapping)
二、优化策略
2.1 资源共享
2.2 子表达式共享
2.3 时分复用
原方案:需要4个乘法器、1个加法器、2组寄存器
时分复用方案:只需要1个乘法器、1个加法器、2个多路选择器和3组寄存器。如维持原有延时不变,需将时钟频率增加到原来的四倍
2.4 展平化与结构化
2.4.1 展平化(Flattening,亦称扁平化)
2.4.2 结构化(Structuring,亦称层次化)
人为地给设计增加中间变量和逻辑结构,适应于本身就有很强结构性的单元(如加法器、乘法器和算术单元等)
2.5 逻辑重建
2.6 门级优化
输入重排:对于多输入逻辑门,将翻转率高的信号接到输入电容小的引脚,可以降低动态功耗 门的合并:将翻转率较高的逻辑门合并到输入门中,可缩短二者之间的互连线,从而降低功耗 门尺寸优化:缩小翻转率较高的门的尺寸,可通过减少节点电容来降低功耗,但延迟会有增加
2.7 针对建立-保持时间的策略
- 如可供综合选用的单元库有慢库(slow,延时最长Max,最坏情况WC(Worst Case))和快库(fast,延时最短Min,最好情况BC(Best Case)),则选用慢库
- 相对于保持时间(hold time),建立时间(set time)违例在综合时更容易出现,因此优化主要针对建立时间而非保持时间
- 综合时消除保持时间违例会让面积急剧增大,而这种违例往往在布局布线后自动消失,因此在综合阶段可暂不消除保持时间违例。
这篇关于数字集成系统设计——逻辑综合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!