标准单元库参数提取
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标准单元库参数提取
参数提取是通过HSPICE对修改供电电压之后的标准单元重新进行时序和功耗的仿真。由于需要对input transition time和output net capacitance的每一对组合点作HSPICE仿真,仿真工作量很大。因此我们考虑写一个批处理程序调用HSPICE进行仿真。这里我们采用微电子所开发的LPE工具进行参数提取仿真。它是一个可以在UNIX环境运行的可执行文件(由于其C++源代码有问题,不能在LINUX环境下重新进行编译)。
使用LPE提取电路参数的流程如下:
①LPE工具底层调用Hspice进行运算,因此,需要终端能够运行Hspice,并在.cshrc文件中配置好Hspice的运行环境。
②配置LPE的SPICE器件模型文件lpespicemodel.txt、模拟环境文件lpeenv.txt 以及环境条件文件lpedefault.ctr。
lpespicemodel.txt:首钢NEC提供了最好(Fast)、最坏(Slow)和典型(Typical)三种情况的spice模型。lpespicemodel.txt将三种模型整合在一起,并分别注明最好、最坏和典型情况,文件格式如下:
!BEGIN TYPE
.MODEL PMOS
.MODEL NMOS
!END TYPE
其中,TYPE分别对应FAST-FAST(最好)、SLOW-SLOW(最坏)和TYPICAL (典型)
lpeenv.txt:定义模型的类型(FF,SS,TYPICAL)、Spice模拟器(Hspice)和
参数单位(如时间、电容、电压单位等),除模型类型根据用户需要制定外,一般采用缺省定义
lpedefault.txt:定义环境条件,如电压、温度等,采用缺省定义即可
③配置LPE的输入文件(以an02d0为例):an02d0.def(单元功能文件)、an02d0.spi(单元网表文件)和an02d0.condition(任务描述文件)。
单元功能文件an02d0.def:说明单元的输入、输出端口以及单元的功能函数,文件如下:
type:com;
input:A1,A2;
output:Z=A1*A2;
单元网表文件an02d0.spi:对Cadence导出的原始网表文件an02d0.cir进行修改(注释掉EQUIV、PARAM、+vss!,将PM、NM、vdd!、vss!分别改为P、N、vdd、vss)后保存。an02d0.spi调用修改后的an02d0.cir,具体文件如下:.include’an02d0.cir’
.global vdd vss
x1 A1 A2 Z an02d0
*Z Z
*A1 A1
*A2 A2
.end
任务描述文件an02d0.condition:可以在文件中定义某一种参数的提取任务,也可以定义所有参数的提取任务,每种任务的描述格式基本相同,以提取A1到Z的上升沿延时为例,文件如下:
#Begin
#Table deley Rise Cell DRTemp2
#FromTo A1 Z
InputNetTransition 5 0.01 0.84 1.40 1.80 3.33
TotalOutputNetCapacitance 5 0.01 0.11 0.52 1.56 2.08
#End
注:Table表示输出查表模型的结果集,deley是参数类型(可以是power、setup、hold等),rise是沿(可以是fall),采样点为5×5,采样值为电压值和负载电容值。
④在UNIX环境命令行键入wave an02d0,执行LPE参数提取,参数结果存入文件an02d0.res
⑤改变lpeenv.txt的模型类型(SS、FF和TYPICAL),重新执行④,直至提取完所有情况、所有参数后为止