Design Compile 是 synopsys 的综合软件,它的功能是把 RTL 级的代码转化为门级网表。
综合包括:
- 转译(translation),在转译的过程中,软件自动将源代码翻译成每条语句所对应的功能模块以及模块之间的拓扑结构,这一过程是在综合器内部生成电路的布尔函数的表达,不做任何的逻辑重组和优化。
- 优化(Opitimization),基于所施加的一定时序和面积的约束条件,综合器按照一定的算法对转译结果作逻辑优化和重组。
- 映射(Mapping),在映射过程中,根据所施加的一定的时序和面积的约束条件,综合器从目标工艺库中搜索符
合条件的单元来构成实际电路。
DC有两种界面:
(1)图形界面,通过design vision&调用出来
(2)命令行界面,通过dc_shell-t调用
因为门级和代码级不同,代码级考虑的是理想情况,但是实际电路不是这样的,它有门级的延时,线的延时,信号的转换时间,甚至时钟信号到达各个触发器的时间不相等。基于这些考虑, DC 通过施加约束,模拟实际环境,根据实际情况得出门级网表。 因此如何适当的施加约束是 DC 的关键所在。
(二)库的配置
DC所用的工艺库是.db或者.lib格式的,其中.lib 格式的文件是可读得,通过此文件可以了解库的详细信息,比如说工作电压,操作温度,工艺偏差等等。 .db 格式的库是二进制的,不可读。 .db 格式的库由.lib 格式的库通过命令 read_lib 生成。
1、目标工艺库(Target_library)
是指将 RTL 级的 HDL 描述到门级时所需的标准单元综合库,它是由芯片制造商(Foundry)提供的,包含了物理信息的单元模型。一般有:与非,或非,非门等基本的逻辑单元;还有选择器,与或非,或与非等较复杂的组合逻辑,以及锁存器 (LATCH)和触发器(DFF)等时序逻辑单元。
2、链接库(link_library)
链接库可以是同 target_library 一样的单元库,或者是已综合到门级的底层模块设计,其作用如下:在由下而上的综合过程中,上一层的设计调用底层已综合模块时,将从 link_library中寻找并链接起来(设置里面不仅有Target library,还有其他东西,例如IP核)。
如果需要将已有的设计从一个工艺 A 转到另一个工艺 B 时,可以将当前单元综合库 A 设为link_library,而将单元