目录
专用集成电路的设计过程依赖于软件工具来管理和控制那些描述大型复杂电路的数据库。在这些工具中,综合引擎工具有着至关重要的作用。综合工具可以完成许多工作,以下式其中的重要步骤:
(1)检测并消除冗余逻辑
(2)查找组合反馈环路
(3)利用无关紧要条件
(4)检测出未使用状态
(5)查找并消除等价的状态
(6)进行状态分配
(7)在满足物理工艺的面积和/或速度限制的条件下,综合出最优多级逻辑实现。最后一步包括了最优化计数,又有工艺映射的内容。
1. 综合简介
电路模型有三种常见的抽象级别:架构级、逻辑级和物理级。架构级:包含了必须由电路执行的,将输入序列转换为特定输出序列的一些操作,但不将操作与时钟关联。设计的关键在于如何从架构描述中提取一个能实现功能的算法。逻辑级:描述了能够由电路实现的一组变量和一组布尔函数。逻辑模型描述的寄存器资源、功能模块架构和时序均是其描述的一部分。设计任务:将布尔逻辑转换成可满足功能的组合门电路和存储寄存器的最优化的网表。物理描述:涉及实现电路的物理器件的实际几何图形。
1.1 逻辑综合
逻辑综合将电路从逻辑级描述为结构描述视图,最终生成结构化的原语网表。
1.2 RTL综合
RTL综合一般从结构开始,把基于语言的RTL描述转换成可通过逻辑综合工具进行优化的一组布尔方程。
1.3 高级综合
高级综合又称为“行为综合”或“结构综合”,其目标是寻找一个既能实现某种算法,且资源又可规划和分配的结构形式。所要综合的算法仅仅描述了电路的功能,而并没有明确指明寄存器和数据通道的结构,因此可能有多种不同的电路结构实现同一功能。
2、组合逻辑的综合
组合逻辑的描述方式:结构化的原语网表、一系列连续赋值语句、电平敏感的周期性行为
2.1 优先级结构的综合
case语句通常隐含地对首先解码的选项赋予较高优先权,而if语句则隐含地制定第一个分支具有更高优先权。
2.2 利用逻辑无关紧要条件
在综合时case或if语句中实用x的赋值将被处理成无关紧要条件。
如果一个条件操作符将z值放在电平敏感行为中连续赋值语句的右表达式中,那么该语句将会综合成通过组合逻辑驱动的一个三态器件。
2.3 ASIC单元与资源共享
用括号来控制操作符分组以缩减电路尺寸。
3.带锁存器的时序逻辑综合
一个无反馈的组合原语可综合成无锁存的组合逻辑
一组无反馈的连续赋值语句可以综合成无锁存的组合逻辑。
一个带反馈的条件操作符的连续赋值语句会综合出一个锁存器。
3.1 锁存器的无意综合
组合逻辑的Verilog描述给输出赋值时,必须考虑所有可能的输入值。
3.2 锁存器的有意综合
在一个电平敏感行为中的if过程里,如果只在部分而不是所有分支中对一个寄存器变量赋值(即条件不完整),它将会综合出一个锁存器。
4. 三态器件和总线结构的综合
三态器件允许在多个器件之间共享总线。描述三态总线驱动最常用的方法,是使用一个具有高阻态z分支赋值的连续赋值语句。
5. 带有触发器的时序逻辑综合
被综合为触发器的情况:
(1)如果该寄存器变量在行为描述的范围以外被使用;
(2)如果该寄存器变量在未被赋值前就已经在行为描述中被用到;
(3)如果该寄存器变量仅在行为描述工作的某些分支上被赋值。
综合要点:
(1)边沿敏感行为中的变量在被赋值前将综合成一个触发器的输出。
(2)当一个变量在被内部行为而不是外部行为引用前就被周期性行为赋值