[看完就懂]DC综合4--综合库和DC的设计对象概述(下)
反相器的综合模型
综合库中主要给出了各端口的功能、电容、功耗及延时等信息(不同的库模型信息种类可能不一样)。反相器的功耗主要分为两部分:静态功耗和动态功耗。其中静态功耗是指泄漏功耗,动态功耗包括翻转时的短路功耗及节点电容的充放电所消耗的功耗。节点电容充放电消耗的功耗仅跟VDD、节点翻转率及节点电容有关。其中,VDD和节点电容是固定的,节点翻转率跟输入激励有关,需要通过仿真激励进行计算。因此,在综合库中,不列出充放电功耗。而短路功耗跟输入转换时间和节点电容有关,一般以查找表的形式给出(在综合库中,用internal_power表示)。
具体的反相器的综合模型如下所示:
当然,上面看到的只是部分内容,有些内容折叠起来了比如输入引脚的等效负载、输出引脚的短路功耗等被折叠起来了,下面进行讲解:
引脚A表示反相器的输入(上图),展开后可以看到输入的引脚的等效负载,也就是等效电容的大小。
输出管脚Y有:
短路功耗信息(internal_power):
展开短路信息如下图所示:
短路功耗与A管脚相关联,也就是与A管脚有关系。
risepower给出了Y从低到高时的短路功耗,功耗跟输入信号的转换时间(index1)及节点电容(index2)有关;根据不同的信息进行查表,表的值就是(value),7X7表示index1是7,index_2也是7,因此value是7X7=49,如下图所示:
时序信息(timing):
Cell_rise 给出了Y从低到高时单元的延时,延时跟输入转换时间和节点电容有关:
Rise_transition给出Y从低到高时输出的延时(transtion),跟输入转换时间和节点电容有关:
Cellfall、falltransition:则是对应Y从高到低时的单元延时和输出延时,也是跟输入转换时间和节点电容有关。
cellleakagepower:单元的泄漏功耗
有时候,也给出在不同条件时的泄漏功耗(也就是查表的方式):
寄存器单元的综合模型
寄存单元综合库模型主要包括以下内容:
· 单元面积;
·D端短路功耗;
·D端的建立时间约束和保持时间约束;
· 时钟引脚上的短路功耗;
· 时钟引脚上的最小脉宽要求;
· 输出端的短路功耗;
· 输出端的延时;
· 输出端的最大负载约束;
其综合库内容如下所示:
D端口(引脚):
输入端口,主要包含输入的等效负载、短路功耗、时序信息。
internal_power,D端消耗的短路功耗:
rise_power给出D端由低电平变到高电平时的短路功耗,跟输入转换时间有关,电容为定值:
timing,时序信息:
D的时序信息与“CK”端口有关,Setup_rising表明是setup(建立时间)的时序信息。
rise-constraint:给出D端由低电平变到高电平时的setup约束,跟D端输入转换时间和时钟的转换时间有关:
fall-constraint则给出D端由高电平变到低电平时的setup约束,跟输入转换时间和时钟的转换时间有关。
前面我们看到,有两个timing,一个既然是建立时间了,那么另外一个就是保持时间了:
rise-constraint:给出D端由低电平变到高电平时的hold约束,跟输入转换时间和时钟的转换时间有关:
CK端口:
这个是时钟端口,主要给出了输入的负载、最大转换时间约束、短路电流、高低电平的最小脉宽要求,如下图所示。
Internal_power,短路功耗:
也是分为CK上升时跟下降时的短路功耗,与D端有关。
ff:描述寄存器的功能。
Q端口:
Internal_power,短路功耗:
rise_power给出了输出端由低电平变到高电平时的短路功耗,跟输入转换时间、Q端负载及QN端负载有关:
Timing,时序信息:
说明Q端口与CK的上升沿有关。
cell-rise给出Q端由低电平变到高电平时CK到Q的延时,跟输入转换时间和输出节点电容有关:
rise-transitio给出了Q端由低电平变到高电平时Q端转换时间,跟输入转换时间和输出节点电容有关:
cell-fall给出了Q端由高电平变到低电平时CK到Q的延时,跟输入转换时间和输出节点电容有关;
fall-transition给出了Q端由高电平变到低电平时Q端转换时间,跟输入转换时间和输出节点电容有关。
max_capacitance,则是最大输出负载电容约束。
cellleakagepower给出了默认单元漏电流大小。而下面的不同漏电流,则是根据端口信号处在不同状态时的漏电流大小:
注:对于有复位信号的寄存器,还有可能有下面的信息:
· 复位引脚上的短路功耗;
· 复位引脚上的最小脉宽要求;
· 复位引脚上的recovery/removal时序约束;
· 输出端的输出转换时间(相对于时钟);
· 输出端的输出转换时间(相对于异步复位信号);
(2)DC的设计对象
在了解了综合库之后,下面介绍一下DC的设计对象,虽然这个设计对象相对于综合库没有那么重要,但是还是要了解一下的。
对于一个verilog代码模块,我们知道这是一个模块的名字是什么,这个模块的功能是什么,这个模块有哪些端口等等信息。但是对于DC来说,它不想我们那么理解,给它一个verilog模块,它把这个模块的内容当做设计对象(简称对象)来看。DC支持的对象和解释如下所示:
DC支持8中设计对象:
Design :具有某种或多种逻辑功能的电路描述;
Cell :设计的 instance;
Reference :cell 或 instance 在库中定义的名字;
Port :design 的输入、输出;
Pin :design 中 cell 的输入、输出;
Net :ports 和 pins 之间或 pins 之间的信号名;
Clock :被定义为时钟源的 pin 或 port;
Library :cell 的集合,如:stargetlibrary,linklibrary;
在DC读入设计时候,可以通过下面命令查看这些对象:
Query:访问某一个对象,
Sizeof:查某一个(对象)集合的大小。
对象具有某些属性,比如:
端口(port)的属性有:方向、驱动单元、负载、最大电容约束等等
单元(cell)的属性有:层次化、不触碰 等待;
时钟的属性有:周期、抖动等;
(3)Design Ware 库
DesignWare是Synopsys提供的知识产权(Intellectual Property,简称IP)库。IP库分成可综合IP库(synthesizable IP,SIP) ,验证IP库(Verification IP,VIP)和生产厂家库(foundry 1ibraries)。IP库中包含了各种不同类型的器件。这些器件可以用来设计和验证ASIC, SoC和FPGA。库中有如下的器件:
·积木块(Building Block)IP(数据通路、数据完整性、DSP和测试电路等等)。
·AMBA总线构造(Bus Fabric)、外围设备(Peripherals)和相应的验证IP。
·内存包(Memory portfolio)(内存控制器、内存BIST和内存模型等等)。
·通用总线和标准I/O接口(PCI Express,PCI-X,PCI和USB)的验证模型。
·由工业界最主要的明星IP供应商提供的微处理器(Microprocessor)和DSP核心。
·生产厂家库(Foundry Libraries)。
·板级验证IP<board verification="" ip)。<="" p="" style="box-sizing: border-box;">
·微控制器(Microcontrollers,如8051和6811)。
·等等
这里主要介绍集成在DC综合工具中的designware foundation库。所有的IP都是事先验证过的、可重复使用的、参数化的、可综合的,并且不受工艺的约束。
常用的designware foundation库单元如下所示:
使用IP库中的器件,可以用运算符号推论法(Operator Inferencing)或功能推论法(Functional Inferencing)。运算符号推论法是直接在设计中使用“+、一、*、>、一和<”等的运算符号。功能推论法是在设计中例化(instantiate) DesignWare中某种算术单元,例如直接指定用库中的DWF_ mult_ tc,DWF_ div_ uns和DWFsqrttc单元。
由于DesignWare库中的所有器件都是事先验证过的,使用该IP库我们可以设计得更快,设计的质量更高,增加设计的生产力和设计的可重复使用性,减少设计的风险和技术的风险。对于每个运算符号,一般地说DesignWare库中会有多个结构(算法)来完成该运算。这样就允许DC在优化过程中评估速度/面积的折衷,选择最好的实现结果。对于一个给定的功能,如果有多个DesignWare的电路可以实现它,Design Compiler将会选择能最好满足设计约束的电路。此外使用DesignWare中的DW Foundation库是需要许可证的(license) , DW Foundation库提供了更好的设计质量(Quality of Result)。
使用DesignWare中IP的方法如下图所示:
Design Compile自动选择和优化算术器件。对于算术运算,我们并不需要在DC中指定标准的(基本的)综合库standard.sldb。标准的综合库standard.sldb包含内置的HDL运算符号,综合时DC会自动使用这个库。如果我们要使用性能更高的额外的IP库,例如DW_ foundation.sldb,我们必须指定这些库,如下所示:
#Specify for use during optimization
set syntheticlibrary dwfoundation.sldb
#Specify for cell resolution during link
本文系转载。出处为 http://www.cnblogs.com/IClearner/ ,作者:IC_learner