2)、DC Ultra模式:在该模式,工具会在综合阶段考虑post-layout的信息,并基于此进行PPA的优化(而不是线负载模型),在该模式下得到的综合网标与终极的物理设计干系性更高;同时基于此能够在项目早期预估当前设计是否存在拥塞,以便在项目前期暴露问题。通过dc_shell -topographical_mode命令激活该模式
3)、GUI模式,供应 Expert及Ultra模式下所有的特性,并以图形的办法能够实时看到当前约束对设计的影响等。
综合的流程及过程优化可以看上图所示,其紧张包括转译(Translation)、映射(Mapping)、优化(Optimization)三个过程。
个中,翻译(Translation)是把前端供应的RTL转换成与特定工艺无关的逻辑电路,对付DC来说便是转换成GTECH文件;
映射(Mapping),是把转译后得到的电路构造用特定目标工艺库中的单元来实现。这时得到的电路包含了详细的制造工艺参数。
优化(Optimization),
则是综合工具根据设计者施加的时序和面积等约束条件对电路进行改进的过程。综合工具根据设定的参数采取一定的算法来使设计只管即便知足设计哀求。
.综合准备
在进行芯片设计的时候,第一件你须要考虑的事情便是你想要利用的半导体供应商和技能,在选择的过程中你须要基于下面这些问题综合考虑:
1)、芯片最大的事情频率
2)、物理约束
3)、功率约束
4)、封打扮服装缚
5)、时钟树的实现
6)、版图布局
7)、工艺支持
8)、一些第三方的IP,包括RAM等
9)、测试方法以及模式等
2.1、Library Requirements
在wire load mode(Expert )模式下,DC综合工具利用logic,symbol和Design Ware库。
在topographical(Ultra)模式下,DC综合工具利用logic,symbol和Design Ware库以及physical库,也可以供应TLUPlus文件用于在Ultra模式下RC参数的估计(此项非必须)。
Logic librarysLogic librarys由半导体供应商掩护和供应,包含关于每个单元的特性和功能的信息,如单元名称、引脚名称、区域、延迟弧和引脚加载。它们还定义了必须知足的条件,例如,nets的最大转换韶光。这些条件被称为设计规则约束。此外,逻辑库指定了特定技能的操作条件和线负载模型。
DC支持利用非线性延迟模型(NLDMs)或者复合电流源(CCS)模型。DC会根据逻辑库的内容自动选择要利用的定时模型的类型。如果库同时包含NLDM和CCS模型,则工具会优先利用CCS模型。在DC综合和优化期间,为了节约综合时间,并不会利用所有的CCS库中数据。
常日semiconductor vendor 供应的logic library格式都以.dB为后缀的文件,如果semiconductor vendor供应的并不是.dB文件可以利用library compiler进行格式的转换。
DC利用逻辑库用于以下目的:1)、Implementing the design function
Target_library: 个顶用于mapping及Optimization的library叫做target_liabrary,它是link_library的子集。
Link_library:link_liabrary用于网标生产过程中参考cells的映射,例如设计中利用的一些第三方IP或者一些分外的cells等。
Logic librarys还包含了设计网标中cell的延时以及功耗信息,用于路径延时的估计以及设计的功耗打算。
把稳:DC利用在link_library变量中找到的第一个逻辑库作为主库。它利用主库来得到针对操作条件、导线负载选择组、导线负载模式和净延迟打算的默认值和设置。如果其他库具有不同于主库单元的丈量单位,设计编译器将将所有单元转换为主库中指定的单元。Symbol librarysSymbol librarys用于利用cells的符号定义,当你在DC中想查看综合后电路的事理图时,你必须定义symbol librars。DC的安装目录下都包含了一个默认的symbol library($SYNOPSYS_ROOT/libraries/syn),generic.sdb,在通过软件加载事理图的时候,DC首先会检讨你定义的symbol library 如果找不到就会在该目录下查找该默认文件。如果你的设计网标有个别cell在symbol library中为找到对应符号,那工具会默认将该cell用一个矩形来代替。
Design Ware librarys
Design ware库是一个可重复利用的电路设计凑集,其是SYNOPSYS供应的一些可重复利用电路,已经与DC工具进行了深度绑定,在综合的时候,工具会根据你的设计约束自动在该凑集中找到知足的哀求且最具性价比的电路模块代替。
正常而言,如果Designware的licence可用,那么DC工具在启动时会自动加载dw_foundation.sldb库
Physical librarys如果你要在topographical 模式下利用DC,则除了指定逻辑库之外,还须要指定物理库。如果想要将当前设计保存为milkway格式,那么须要以下这些文件信息:
1)、Milkway reference library:包含了标准单元cells和宏的物理信息,在topographical模式下,Milkway利用FRAM信息去保存信息;reference library还定义了最小的布线间隙及布线方向等信息。
2)、Synopsys technology file:tf文件包含了设计布线所需的特定信息。
2.2、Library setup
逻辑库设定通过2.1节我们知道在不同的DC模式下,须要制订的库,那么接下来我们便是通过脚本来设置各自库文件。在设定库文件的时候,你可以通过绝对地址设置或者只设置库名称,如果只设置了库名称,那么DC工具会在你定义的系统变量$search_path下进行查找,默认情形下serarch_path包含了当前事情目录及软件安装目录$SYNOPSYS/libraries/syn,且以第一个找到的为准。
例如:
set_app_var target_library [list_of_standard_cell_libraries]
set_app_var synthetic_library [list_of_sldb_files_for_DesignWare]
set additional_link_lib_files [additional_libraries]
set_app_var link_library [list $target_library \ $additional_link_lib_files $synthetic_library]
默认情形下不须要知道Desiginware library,由于工具会自动加载安装目录下的DW库,但是如果你除了事情默认的DW库外还有其余的DW库,那么你必须要通过synthetic library进行制订,并且须要将此DW库加入link_library中。
set_app_var synthetic_library {dw_foundation.sldb}
set_app_var link_library [list $target_library \ $additional_link_lib_files $synthetic_library]
默认情形下,link_library中的库将同时用于最差和最好的时序剖析,如果想根据不同的库进行不同的时序剖析,那么须要进行独立的设定,通过set_min_library来进行minimum时序剖析。
set_app_var link_library { maxlib.db}
set_min_library maxlib.db -min_version minlib.db
物理库设定利用create_mw_lib命令创建Milkway库
create_mw_lib -technology $mw_tech_file -mw_reference_library $mw_reference_library $mw_design_library_name
打首创立的Milkway库利用open_mw_lib命令。
open_mw_lib $mw_design_library_name
(可选非必须)通过利用set_tlu_plus_files命令设置附加TLUPlus文件(它可以供应更准确的电容和电阻数据)。
set_tlu_plus_files -max_tluplus $max_tlu_file -min_tluplus $min_tlu_file -tech2itf_map $prs_map_file
举例解释:下面通过一个实际脚本进行库设定的解释,详细如下图所示:
首先,定义工具综合所需的各种库文件。
其次,将库文件定义到综合工具对应的各种变量上。
上述文件编写成功后,就可以启动DC进行库的读入,我们在Terminal中输入dc_shell -topo启动DC,然后依次source上述文件,就成功进行了库的读入及设定。
库文件读入后,可以通过如下DC自带的TCL命令,查看库的读入是否成功。
例如:Printvar target_library
Printvar link_library 等
也可以通过
check_library
check_tlu_plus_files
分别检讨Logical库和physical库的同等性以及TLUPus及tf文件的同等性等。
库设定完成之后,并且检讨无误后,我们就可以读入我们的设计,这些将在后续章节先容。