1、什么是逻辑综合
我们用RTL源代码详细完整地为设计建立模型,定义设计中寄存器的结构和数目;定义设计中的组合电路功能;定义设计中寄存器的时钟。并将这个HDL模型输入到逻辑综合器。综合时我们要提供详细的的约束资料,以便产生出时序和面积折衷的设计结果,得到门级网表。门级网表输入到布局布线工具,由它产生GDSII文件,验证正确后,交付芯片生产商制造。
2、逻辑综合的过程
电路的逻辑综合一般由三步组成,即
综合 = 转化 + 逻辑优化 + 映射
Synthesis = Transition + Logic Optimization + Mapping
先通过read命令将RTL代码转化为通用的布尔(Boolean)等式,即GTECH(Generic Technology)格式;然后执行compile命令,该命令按照设计的约束对电路进行逻辑综合和优化,使电路能满足设计的目标或约束,并且使用目标工艺库中的逻辑单元映射成门级网表。
Synopsys公司的Design Compiler,简称DC,用于设计的综合。综合以时序路径为基础进行优化。DC在对设计做综合时,其过程包括了进行静态时序分析(Static Timing Analysis,简称STA)。DC使用其内建(Build-in)的静态时序分析器把设计分解成多条时间路径,然后根据设计的约束对这些路径进行优化。STA计算每一条路径的延迟(Delay),然后把延迟的结果和约束进行比较,如某条路径的时间延迟大于约束的值,则该路径时间违规(Timing Violation)。这时电路不能正常工作,无法达到原来的设计目标。
那么DC在映射线路图的时候,如何知道每个逻辑单元的延迟呢?半导体厂商会提供DC兼容的工艺技术库,我们使用这些库进行逻辑综合。技术综合库包括单元的延迟,目前广泛使用非线性延迟模型(Non Linear Delay Model,简称NLDM)来计算单元的延迟。单元的延迟与输入的逻辑转换时间(Input Transition Time)和输出的负载(Output Load)有关。根据每个单元的输入逻辑转换时间和输出负载,可以在技术综合库提供的查找表(Look-Up Table)中查出单元的延迟。