【从零开始のIC学习笔记】-综合

1.综合的意义

  • 综合是根据标准单元库(由流片厂商提供)将RTL生成为网表

  • 根据需求,在满足时序、性能的情况下,用较小功耗和面积的元器件

使用工具:

DC ——design complie -预综合

PT———prime time -时序分析

2.综合的输入输出文件

输入文件:

RTL代码: 设计的rtl代码

IP库/标准单元库:使用其他IP的库,例如设计中使用了memory;厂商提供的标准单元库

约束:约束包含PPA(时序、功耗、面积)约束,以及PVT(制程、环境、温度)约束

符号库:在图形界面中,使用哪种符号表示标准器件, 例如不同厂商的两输入与门可能不同

输出文件:

网表:最终转换的网表文件

工程文件:当再次打开DC时,可以通过工程文件查看结果

svf文件:记录DC将代码进行了那些修改(逻辑合并、逻辑修改),为形式验证的输入

3.DC的原理

首先根据rtl生成GTECH文件,GTECH文件能够支持多种语言,避免DC处理时,由于输入的语言不同导致DC难以进行,因此GTECH相当于一个中间文件;

根据提供的标准单元库及约束,将转换的GTECH生成网表。

功耗计算:粗略估算,各个模块的功耗相加而得

时序计算: 若无物理约束,采用线负载模型:按照负载数估算延迟,并且只根据负载数量而定

带有物理约束的库:DCT、DCG

4.综合脚本

脚本运行机制

1.set_library.tcl :生成设置的库文件和search_path的约束

2.read_design.tcl:读入设计文件的约束

3.creat_clock.tcl:生成时钟源相关的约束

4.set_rst.tcl:生成复位端口约束的约束

5.set_io.tcl:生成输入输出端口约束

6.set_cons.tcl:生成保存门级网表、各种report文件的约束

关于一个适用性广的DC综合脚本,可参考:

挖坑

下面为简单的流程代码


//设置变量
set_app_var search_path "/home/.../smic035.digtal/"  //搜索路径
set_app_var target_library "/home/..../xxx.db/"  
set_app_var link_library * $target_library $synthetic_library
set_app_var symbol_library "/home/...../xxx.sdb"

//执行rtl
read-verilog     /home/.../xxx.v    //导入设计顶层文件
current_design   xxx_top.v          
link                               //链接
compile_ultra                      //运行

//生成文件
wire -f verilog -h -o ./xx.v      //生成的网表
wire -f ddc -h -o /xxx.dcc        //此前的工程

5.DC运行方式

指令模式:

dc_shell,随后source tcl文件

dc_shell -f dc_start.tcl | xxx.log 运行dc,并带上脚本,可选生成log文件

图形界面:

dc_shell -gui

在图形界面的指令行输入指令(指定路径、添加文件等)

6.库说明

在线负载模式下,DC使用logic Library、Symbol Library和Design ware库;在拓扑模模式下除了以上三种库,DC还需要使用Physical Library。另外,DC在工作过程中还会产生一个伪库ALIB。

6.1 逻辑库

Logic Library是半导体工艺厂商维护并提供的扩展名为.lib(ASCII码,可读)或者.db(2进制,DC使用)的库,库内包含的是每个逻辑单元(比如与非门、反相器、buffer、ram等)的特性和功能信息,比如时间单位、电压单位、单元名、pin脚名、延时弧、pin脚负载信息和功耗信息等。该库中也规定了应用库必须满足的条件,比如线上最大转换时间没最大扇出值等,这些条件被称为Dseign Rule Constrains(DRC)。

Logic Library的建立包括Target Library和Link library。DC在mapping和optimization阶段从Target library中选择功能相符的单元,即Target Library是用来对GTECH单元进行功能等价映射的,或者对已映射的单元进行功能等价替换的,故而Target Library只包含标准单元库,不包含Design Ware Library和Macro Library,比如 ram和pad。设计中的所有的例化单元都必须在库中找到相应的期间或者design reference。DC是在Link Library中解析设计中所有的例化单元,所以Link Library中需要包含所有的连接信息,包括标准单元库、Design Ware、ram、pad和读入内存的基础设计文件等。可见Target Library是Link Library的子集。如果理解了Target Library和Link library不同作用,那么也就明白了,为什么更换工艺时,旧的单元库要设置到Link library中,而新的标准单元库要设置到Target Library中。

6.2 符号库

Symbol Library 是由半导体工艺厂维护提供的,格式为.sdb。DC利用图形库产生相应原理图。如果事先没有通过Symbol Library声明符号库或者在声明的符号库中找不到相应单元符号,DC会在自带的通用符号库generic.sdb中寻找相应单元符号。DC默认符号库安装在目录下的library/syn中。

6.3 综合库

Design Ware库是可重用电路设计器件集合,比如加法器、减法器、乘法器和比较器等,库中分别包含多种面积和速度不同的以上期间,在进行综合优化时,DC会自动根据约束来选择适合的器件来满足面积和速度的均衡。综合人员可以使用Design Ware Developer开发自己的Design Ware库,也可以使用Synopsys的Licensed Design Ware库。

DC自带了综合库,如果想使用Synopsys的默认标准综合库standard.sldb,综合人员无需声明建立综合库,如果使用Licensed Dsign Ware库,即便没有声明dw founction.sldb,但是DC检测到licensed key,也会自动加载该综合库到变量列表中,不过这种操作可能因版本不同而有变动,建议用户还是通过synthetic library做声明,并对link library变量做相应补充。

6.4物理库简介

  再说物理库前,首先需要理解Milkyway database、Milkway library、cell、Milkway design library和Milkway reference library等概念。

Milkway database是为了Synopsys Galaxy Design Platform多种工具交互便利而使用的通用存储格式。像DC、PT和ICC这样的工具都与Milkway database有二进制接口,可以直接访问Milkway dayabase,这样减少了将AscII文件转换成需要格式的麻烦,减少了出错概率。Milkway database可以包含leaf cell和IP宏等物理信息、工艺信息和当前设计的完备信息。

cell是milkway library的基本单元,一个cell代表的是芯片版图的物理结构,整个chip是一个cell,基本的IO PAD也是cell,当前打开的用于编辑的milkway library。一个design library可以对应多个reference library,且一次只可以打开一个design library。

如下图所示,DC物理库的声明就是通过建立Milkway design library来实现的。建立milkway design library需要milkway reference library和technology Library作为输入,二者均由工艺厂提供。Reference library包含标准单元库、IP或宏单元和IO PAD单元信息等,其中,标准单元库又以三种不同的形式给出标准单元信息:CEL、FRAM和LM。CEL包含全部版图单元信息,比如与非门、或非门的全部版图信息,在流片过程中被ICC软件所使用,注意DCT并不使用;FRAM包含部分版图信息,是抽象的版图单元信息,比如与非门单元轮廓、Pin脚位置和金属层次信息等,FRAM主要用于ICC的P&R和DCT中;LM是逻辑库,包含的是时序和工号信息,被ICC和DCT所用,库形式为sc_max.db、sc_min.db;tecgnology library通常以.f文件拓展名给出,包含的信息是每层金属或通孔标号number和名称、介电常数、每层的设计规则、每层的物理和点穴特性和电子单位精度等。为了更好的预估延迟,最好补充RC信息:TLUPLUS fife和Layer Mapping file。TLUPLUS文件往往带.tluplus拓展名后缀,是由ITF(Inter connect technology Format)ITF文件包含的工艺的物理特性信息,比如层厚、度介电常数、shallow trench Isolatlon和copper dishlng(Desensity Analysis和width)文件经过starRC工具提取RC模型生成的文件,包含RC查找表,b当然该文件也可由工艺厂直接提供;而layyer mapping文件包含的是technology file和TLUplus file两个文件中金属层名称匹配信息。

6.5ALIB库简介

ALIB不是由工艺厂提供的库,是一个伪库,它是DC对目标逻辑库target library特性的预先解析结果存储的集合,所谓的特性解析,指的是使用target library中的单元,将常用布尔功能电路构建出来,然后存储起来,在执行命令compile ultra过程中,DC就可以从AUB库中直接读取文件,并根据该库提供的信息更快的进行面积和速度的这种优化。DC进行compile ultra时会自动对目标逻辑库进行解析和特性描述,并将其存储到alib_library_analysis_path变量代表的路径下,接下来DC就可以继续使用这个ALIB库了。综合人员也可以在综合前,就使用alib_analyze_libs命令产生该ALIB库并建立相应目录来管理库文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值