Design Compile (DC) 使用说明 (1)
(2013-01-16 14:49:31)
标签:
杂谈 |
分类: DC |
一.软件说明
Design Compile是synopsys的综合软件,它的功能是把RTL级的代码转化为门级网表。综合包括转译(Translation),优化(Opitimization),映射(Mapping)三个过程。在转译的过程中,软件自动将源代码翻译成每条语句所对应的功能模块以及模块之间的拓扑结构,这一过程是在综合器内部生成电路的布尔函数的表达,不做任何的逻辑重组和优化。优化:基于所施加的一定时序和面积的约束条件,综合器按照一定的算法对转译结果作逻辑优化和重组。在映射过程中,根据所施加的一定的时序和面积的约束条件,综合器从目标工艺库中搜索符合条件的单元来构成实际电路。
DC有两种界面,图形界面通过敲入design vision&调用出来,另一种命令行界面通过dc_shell-t调用。建议初学者使用图形界面,因为图形界面比较容易上手;业界的人士比较青睐命令行界面,因为其所耗的资源少,并且将所用的命令写成综合脚本的形式,便于查阅。
因为门级和代码级不同,代码级考虑的是理想情况,但是实际电路不是这样的,它有门级的延时,线的延时,信号的转换时间,甚至时钟信号到达各个触发器的时间不相等。基于这些考虑,DC通过施加约束,模拟实际环境,根据实际情况得出门级网表。因此如何适当的施加约束是DC的关键所在。
二.库的配置
通过上述说明可知,DC需要通用库和工艺库的支持,DC用到的工艺库是.db或者是.lib格式的,其中.lib格式的文件是可读得,通过此文件可以了解库的详细信息,比如说工作电压,操作温度,工艺偏差等等。.db格式的库是二进制的,不可读。.db格式的库由.lib格式的库通过命令read_lib生成。
目标工艺库(Target_library):
是指将RTL级的HDL描述到门级时所需的标准单元综合库,它是由芯片制造商(Foundry)提供的,包含了物理信息的单元模型。通常芯片制造商提供的基本电路单元有:与非,或非,非门等基本的逻辑单元;还有选择器,与或非,或与非等较复杂的组合逻辑,以及锁存器
set
链接库(link_library):
链接库可以是同target_library一样的单元库,或者是已综合到门级的底层模块设计,其作用如下:在由下而上的综合过程中,上一层的设计调用底层已综合模块时,将从link_library中寻找并链接起来。
set
{*
如果需要将已有的设计从一个工艺A转到另一个工艺B时,可以将当前单元综合库A设为link_library,而将单元综合库B设为target_library,重新映射一下即可。
符号库(symbol_libray):
显示电路时,用于标识器件,单元的符号库。
Set symbol_library
{/app/cadence/smic35-2003.12/smic35/v1.0/synopsys/1999.05/icons/smic35io122.sdb /app/cadence/smic35-2003.12/smic35/v1.0/synopsys/1999.05/icons/smic35io132.sdb /app/cadence/smic35-2003.12/smic35/v1.0/synopsys/1999.05/icons/smic35os142.sdb}
搜寻路径(search_path):
给出了DC环境下读入的文件(包括综合库和设计文件)的搜寻路径。
set
Setup文件:
在启动DC时,它会自动运行三个setup文件
下面是一个典型的setup文件:
# and link libraries
set target_library lsi_10k.db
set symbol_library lsi_10k.sdb
set symthetic_library dw_foundation.sldb
set link_library "* $target_library $synthetic library"
set search_path [concat $search_path ./src]
set designer "Your Name"
#Define aliases
alias h history
alias rc "report_constraint -all_violators"