一、HSPICE基础知识.doc
- 格式:doc
- 大小:83.00 KB
- 文档页数:5
Hspice应用讲解Hspice是一种通用电路分析程序,可用来进行集成电路和电子线路的分析模拟。
它可以用来分析电路的非线性直流特性,线性交流小信号特性,非线性瞬态特性,温度特性等。
其中,直流分析(.DC)不光可进行直流转移特性分析,还可进行直流工作点(.OP),直流小信号传输特性(.TF),直流小信号灵敏度(.SENS)分析;在进行交流分析(.AC)的同时还可进行噪声特性(.NOISE)和失真特性(.DISTO)分析;在进行瞬态分析(.TRAN)的同时还可进行傅立叶(.FOUR)分析;进行温度特性分析(.TEMP)以求得电路的温度特性。
在进行交流分析和瞬态分析前先进行直流分析,以决定其非线性元件的线性化小信号模型和其初始条件。
Hspice输入描述文件格式:Hspice的输入描述文件格式是一种自由格式,其输Array入的第一条语句必须是标题语句,且不能省略;最后一条语句必须是结束语句(.END),其余语句的顺序是任意的。
在输入描述文件的任何地方都可插入注释语句(在语句前加“*”或“$”),程序只对注释语句进行原样打印而不进行任何处理。
元件语句是说明该元件的拓扑关系和元件值的。
每个元件给予一个元件名,元件名的第一个字母说明该元件的类型,Hspice并对各种类型的元件所对应的英文字母作了规定,元件名不能重复。
元件的节点号可以用一正整数表示,也可以用网点名表示。
模型语句是说明该元件的模型参数的。
在模型语句中定义一组元件模型参数并赋予一个唯一的模型名,在元件语句中即可引用此模型名,表明此元件具有该组模型参数值。
子电路是用一组元件语句来定义,程序会自动将这组元件插入到子电路被调用的地方,其大小和复杂性没有限制,并允许其包含其他子电路。
在电路中不能包括短路的电压源和电感,开路的电流源和电容,电路中的每个节点都不能悬空。
控制语句是控制程序的运行和规定分析及输出的内容。
如温度语句,工作点分析语句,交流分析语句,瞬态分析语句,打印语句,绘图语句和可选项语句等。
hspiceD使用手册一、HSPICE基础知识 (2)二、HSPICED的使用 (3)1.选择仿真环境 (3)2.确定model库 (3)3.加载激励 (5)4.Choose Analyses (8)三、HSPICED的注意事项 (9)1.HSPICES的state用于HSPICED需注意 (9)2.HSPICE仿真速度快造成卡机的问题 (10)一、HSPICE基础知识Avant!Start-Hspice现在是Synopsys公司的电路仿真工具,是目前业界使用最广泛的IC设计工具,甚至可以说是标准。
hspice和Spectre这两种仿真器每种都有两个接口,就是hspiceD 和hspiceS(hspice Direct,和hspice Socket),以及spectre和spectreS(Spectre Direct,和spectre Socket)。
"Socket"接口是仿真器的一个比较老的接口。
因为在过去,很多仿真器没有强大的参数化语言,所以Cadence工具所做的就是使用cdsSpice (这个工具有强大的宏语语言,但实际上是一个比较脆弱的仿真器)来充当仿真器。
所有的网表都用cdsSpice的宏语言生成,然后再翻译成目标仿真器的语言——不保留任何参数化的东西。
这种方法是可行的,但是我们没有办法使用主流仿真器的所有特征。
大约1999年,以IC443为例,引入了"direct"接口的概念,我们就去掉了中间手段而直接用相应的语言生成网表。
这样更快,更有效,并且给出了更强大的读取主流仿真器的接口。
"Direct"接口的仿真工具输出的网表可读性更好,可以在只读模式下仿真,能够执行更高级的运算等等,所以在两大EDA工具提供商的仿真器中,hspiceD和spectre是优选。
我们根据书籍对电路的计算和估算都采用Level 2的MOS Model,与实际的Level 49和Mos9 、EKV等Liabrary不同,这些model要比Level 2的Model复杂得多,因此Designer使用Hspice、Spectre等工具进行仿真,以便得到精确的结果,是必须的。
HSPICE介绍HSPICE介绍1、为什么要使⽤Hspice进⾏电路仿真Avant! Star_Hspice(Synopsys公司)是IC设计中最长⽤的仿真⼯具,是⽬前业界使⽤最为⼴泛的IC设计⼯具,甚⾄可以说是事实上的标准。
⽬前,⼀般的书籍中都采⽤⽐较简单的MODEL对MOS 电路进⾏计算和估算。
⽽⼯艺⼚商提供的MODEL往往要⾼级的多、复杂的多。
因此设计者除了利⽤书本上的公式对电路进⾏估算外,还需要使⽤更⾼级的MODEL对电路进⾏精确的仿真,这就有赖于仿真⼯具的使⽤,如Hspice,Spectre。
2、Hspice仿真的流程3、Hspice所使⽤的单位(不区分⼤⼩写)4、输⼊⽂件格式(.net /.sp)5、电路元器件在Hspice⽂件中的表⽰⽅法在器件名字前⾯加上前缀字符,即可被Hspice程序识别,如:MOS器件前缀为:M BJT器件前缀为:QDiode器件前缀为:D⼦电路的前缀为:X电阻、电容、电感的前缀分别为R、C、L下⾯表⽰⼀个器件名为M1的MOS管MM1 ND NG NS NB MNAME L=VAL W=VAL M=VAL下⾯表⽰⼀个器件名为C1的电容CC1 net1 net2 1pf定义字电路的语句如下:.SUBCKT SUBNAM(⼦电路的名字) 1 2 3 4(字电路外部节点)例⼦:.SUBCKT OPAMP 1 2 3 4(描述电路结构).ENDS OPAMP调⽤⼦电路时,使⽤X前缀加实例名,将SUBCKT实例化,如:.XOPAMP1 1 2 3 4 OPAMP6、信号源描述(激励描述):电压源-V,电流源-IVxxx/Ixxx n+ n- < dcval> >+直流:V1 1 0 DC=5V 或V1 1 0 5VI1 1 0 DC=5mA 或I1 1 0 5mA交流模式:V1 1 0 AC=10V,90 幅度为10v,相位为90度交直流模式:V1 1 0 0.5v AC=10V,90 直流分量是0.5vVxxx/ Iyyy n+ n-+tranfun:EXP, PULSE, PWL…。
hspice基础知识元件描述语句1.1 R、L、C 元件描述语句元件语句一般由元件名、元件所连接的电路节点号和元件参数值组成。
元件在输入中以一行表示,该行不能以“.”开始。
语句中的第一个字母是关键字,它确定了该元件的类型。
一般形式:elname或elname其中:elname: 元件名,是一个带有一个关键字母的不超过15个字符的字符串。
HSPICE 中表示元件的关键字母的含义:C-电容K-耦合互感L-电感R-电阻T-无损耗传输线U-有损耗传输线node1... 节点名,用来说明元件所连接的节点,节点名的第一个字符必须是字母,整个字符串不超过16 个字符(连第一个字母在内)。
=()′[ ]等符号不能出现在节点名中。
mname: 模型参考名,对除了无源器件外所有元件都是必需的。
当基本元件参数不能充分描述时,调用相应的模型来描述。
pname1... 元件参数名,用来标明一些元件的参数值。
val1... 赋于的参数值或模型节点,这些数值可以是数值,也可以是代数表达式。
M=val 元件的倍增因子。
二. 电容、电感和电阻(1) 电容:一般形式:CXXX n1 n2 capval > ++或CXXX n1 n2 C=val++或CXXX n1 n2 C=equation CTYPE=0 or 1例:C1 3 2 10U IC=3VCBYP 13 0 1UFC2 1 2 CMOD 6PF若系统中所用电容是非线性的,则其一般形式是:CXXX n1 n2 POLY C0 C1 C2 ...电容值=C0+C1*V+C2*V**2+…(2) 电感:一般形式:LXXX n1 n2 Lval >+或LXXX n1 n2 L=val+或LXXX n1 n2 L=equation LTYPE=0 or 1例:LLINK 42 69 1UHLSHUNT 23 51 10U 0.001 0 15 IC=15.7MALH8 5 80 LMOD 2MH若系统中所用电感是非线性的,则其一般形式是:LXXX n1 n2 POLY L0 L1 L2 ...电感值=L0+L1*i+L2*i**2+…在非线性电容和电感的表达式中,POLY 表示其中的数值C0,C1,C2…(和L0,L1,L2…)是描述元件值的多项式系数。
HSPICE 简明教程udan专用集成电路与系统国家重点实验室RFIC宫志超 1.0 2007.4.7 本文档内容以常用HSPICE指令为主,主要目的为便于学习与查询,详细了解请参阅参考文献版权所有,不得侵犯!传播与修改请保留版权信息。
目录第一章概述 (5)§1.1 HSPICE简介 (5)§1.2 常数 (5)§1.3 输入输出文件及后缀 (5)§1.4 一个简单例子 (6)§1.5 符号说明 (7)第二章仿真输入及控制的设置 (8)§2.1 输入网表概要 (8)§2.2 网表文件中的元素 (8)第三章器件及电源 (15)§3.1 器件 (15)§3.2 独立源 (16)3.2.1 直流源 (16)3.2.2 交流源 (16)3.2.3 瞬态源 (16)3.2.4 混合源 (21)§3.3 受控源 (22)3.3.1 压控电压源 E ELEMENTS (22)3.3.2 压控电流源 G ELEMENTS (23)第四章参数、函数及仿真设置 (25)§4.1 参数 (25)4.1.1 参数定义 (25)4.1.2 .PARAM 声明 (25)4.1.3 指令行内定义 (25)4.1.4 代数表达式定义输出参数 (25)4.1.5 倍乘参数M (THE MULTIPLY PARAMETER) (25)4.1.6 参数作用范围 (26)§4.2 函数 (27)4.2.1 用户定义函数 (27)4.2.2 内置函数 (27)4.2.3 保留变量 (29)§4.3 仿真设置 (29)4.3.1 设置控制选项(CONTROL OPTIONS) (29)4.3.2 基本控制选项 (29)第五章输出设置 (31)§5.1 输出指令 (31)§5.2 输出参数 (31)5.2.1 直流和瞬态分析输出参数 (31)5.2.2 功率 (32)5.2.3 交流分析输出参数 (32)5.2.4 网路相关参数 (33)5.2.5 噪声和谐波分析输出参数 (33)5.2.6 器件参数输出 (34)第六章常用分析 (35)§6.1 直流初始化及工作点分析 (35)6.1.1 电路初始化 (35)6.1.2 工作点分析(OPERATING POINT) .OP声明 (35)§6.2 直流扫描分析 (36)6.2.1 .DC 声明 (36)6.2.2 例子 (36)6.2.3 其他直流分析声明 (37)§6.3 瞬态分析 (38)6.3.1 瞬态分析的初始化 (38)6.3.2 瞬态分析 .TRAN 声明 (38)6.3.3 例子 (38)6.3.4 傅立叶分析 (38)§6.4 交流分析 (40)6.4.1 交流分析 .AC 声明 (40)6.4.2 例子 (40)6.4.3 其他交流分析 (41)第七章统计分析及优化 (43)§7.1 用户定义的分析 (43)7.1.1 .MEASURE 声明 (43)7.1.2 上升、下降和延迟(RISE FALL AND DELAY) (43)7.1.3 FIND 和 WHEN函数 (44)7.1.4 方程计算 (45)7.1.5 平均值、均方根值、最大最小值和峰峰值测量 (45)7.1.6 积分函数 (46)7.1.7 微分函数 (46)7.1.8 误差函数 (47)§7.2 温度分析 (48)§7.3 最坏情况分析 (48)7.3.1 标准统计名词定义 (48)7.3.2 最坏情况分析介绍 (49)7.3.3 模型歪斜参数及工艺角文件 (49)§7.4 蒙特卡罗分析 (50)7.4.1 蒙特卡罗分析概要 (50)7.4.2 定义分布函数 .PARAM 声明 (51)7.4.3 蒙特卡罗分析的例子 (52)7.4.4 最差情况和蒙特卡罗分析的例子 (53)§7.5 优化 (58)7.5.1 优化概要 (58)7.5.2 优化相关声明 (59)7.5.3 优化的例子 (60)备注: (63)参考文献: (63)第一章概述§1.1Hspice简介Hspice是电路模拟仿真的工具。
一、H SPICE基础知识Avant! Start-Hspice (现在属丁- Synopsys公司)是IC设计中最常使用的电路仿真工具,是日前业界使用最为广泛的IC设计工具,甚至可以说是事实上的标准。
目前,一般书籍都采用Level 2的MOS Model进行计算和估算,与Foundry 经常提供的Level 49和Mos 9、EKV等Library不同,而以上Model要比Level 2 的Model复杂的多,因此Designer除利用Level 2的Model进行电路的估算以外,还一定要使用电路仿真软件Hspice> Spectre等进行仿真,以便得到精确的结果。
本文将从最基本的设计和使用开始,逐步带领读者熟悉Hspice的使用,并对仿真结果加以讨论,并以一个运算放大器为例,以便建立IC设计的基木概念。
在文章的最后还将对Hspice的收敛性做深入细致的讨论。
Hspice输入网表文件为.sp文件,模型和库文件为.inc和.lib, Hspice输出文件有运行状态文件.StO、输出列表文件.lis、瞬态分析文件.tr#、直流分析文件.sw#、交流分析文件.ac#、测量输出文件.m*#等。
其中,所有的分析数据文件均可作为AvanWaves的输入文件用来显示波形。
表1 Hspice所使用的单位独立电压和电流源包括:1.直流源(DC):电压源Vxxx n+ n- dcval电流源Ixxx n+ n- dcval2.交流源(AC): Vxxx n+ n- AC=acmag,acphase3.瞬态源(随时间变化):脉冲源:pulse vl v2 td tr tf pw per线性源:pwl tl vl <t2 v2 t3 v3...>正弦源:sin vo va freq td damping phasedelay4.混合源:可以包括以上所有的形式,如:VIN 13 2 0.001 AC 1 SIN(0 1 IMeg)二、输入网表文件TITLE.INCLUDE.LIB MACRO元件描述信号源描述分析命令测量命令.ALTER.END图1输入网表(Netlist)文件标准格式二、有源器件和分析类型有源器件包括二极管(D)、MOS管(M)、BJT管(Q)、JFET和MESFET (J)、子电路(X)和宏.Behavioral器件(E,G)、传输线(T,U,W)等。
这里值得注意的是MOS、JFET和MESFET的L和W的scale是m,而不是um o 分析的类型包括:直流、交流和瞬态分析。
1 .直流分析:对DC、AC和TRAN分析将自动进行直流操作点(DCOP)的计算,但,TRANUIC将直接设置初始条件,不进行DC OP的计算。
.DC varl start 1 stopl incl sweep var2 type np start2 stop2直流分析包含以下五种语句:.DC:直流扫描分析;.OP:直流操作点分析;.PZ: Pole/Zero 分析;.SENS:直流小信号敏感度分析;TF:直流小信号传输函数分析。
2.交流分析:交流分析是指输出变量作为频率的函数。
.AC varl start 1 stopl incl sweep var2 type np start2 stop2交流分析包括以下四种语句:.NOISE:噪声分析;.DISTO:失真分析;.NET:网络分析;.SAMPLE:采样噪声分析。
3.瞬态分析:瞬态分析是指计算的电路结果作为时间的函数。
.TRAN tincl tstopl tinc2 tstop2... START=.. UIC SWEEP..三、输出格式和子电路(1)输出命令包括:.PRINT、.PLOT、GRAPH、.PROBE 和.MEASURE。
.PLOT antype ovl ov2... plol ,phhi 1...plo32,phi32.PROBE ovl ov2... ov32.PRINT antype ovl ov2... ov32有五种输出变量形式:1 .直流和瞬态分析:用于显示单个节点电压,支路电流和器件功耗。
.print V(node)或.plot I(node), 也可用.graph、.probe0V(node)表示节点电压,I(node)表示节点&流,p(rload)表示在负载rload ±的分析点的功耗。
2.交流分析:用于显示节点电压和支路电流的实部、虚迎和相位。
一vi(node)表示节点电压的虚部,ip(node)表示节点电流的相位,vp(4,6)表示节点4, 6间的相位用。
3 .器件模版:用于显示制定的器件节点的电压、支路电流和器件参数。
Ivl6(m3)表示MOS管m3的漏电流,其他表示方式见手册。
4.MEASURE 语句:用于号示用户自定义的变量。
可以采用的句法包括:raise,fall,delay,average,RMS,min,max,p-p 等。
5 .参数语句:用于显示用户自定义的节点电压等表达式。
语法格式:.print tran out_var_name=PAR(4expression,)(2)还可以采用AvanWave进行波形输出,启动AvanWave的命令为:awaves <filename> &(3)子电路:1.采用.GLOBAL设置全局节点:,GLOBAL nodel node2 node3...2.子电路语句.SUBCKT和.MACRO:.S UBCKT subnam nl n2 n3… parnam=val....MACRO subnam nl n2 n3… parnam=val...子电路的调用:Xyyy nl n2 n3... sunnam parnam=val... M=val四、控制语句和option语句1 .OPTION 语句:.options 语句格式:.options optl opt2 opt3... opt=x—般在每个仿真文件中设置options .options acct list post,也可以设置为.options node opts,其中.option list表示将器件网表、节点连接方式等输入到列表文件,用于debug与电路拓扑结构有关的问题,.option node表示将输出节点连接表到列表文廿,用于debug与由于电路拓扑结构引起的不收敛问题,.option acct表示在列表文件中输出运行时间统计和仿真效率,.option opts在列表文件中报告所有的.option设置,.option nomod表示不输出MODEL参数,以便减小列表文件的大小,.option brief=l表示不输出网表信息,直到设置.option brief=0 , .protect/.unprotect用于屏蔽网表文件中要保护的信息,.option bypass= 1 不计算latent 器件,.option autostop 表示当所有.measure 语句完成时,终止仿真,.option accurate" 1表示设置为最精确的仿真算法和容差,tstep表示仿真步长值,del max表示最大允许时间步长,其中delmax=tstep*max , .option dvdt=4 用于数字CMOS 电路仿真(默认设 3 , .option dcca=l在直流扫描时强行计算随电压变化的电容,.option captab对二极管、BJT管、MOS、JFET、无源电容器,打印出信号的节点电容值,.option dcstep=val将直流模型和器件转换为电导,主要应用于“No DC Path to Ground,,或有直流通路,但不符合Hspice定义的情况。
2.M0DEL OPTION 语句:SCALE影响器件参数,如:L、W、area, SCALM影响model参数,如:tox、vto> tnoirio五、仿真控制和收敛Hspice仿真过程采用Newton-Raphson算法通过迭代解矩阵方程,使节点电压和支路电流满足Kirchoff定律。
迭代算法计算不成功的节点,主要是因为计算时超过了Hspice限制的每种仿真这代的总次数从而超过了迭代的限制,或是时间步长值小于Hspice允许的最小值。
(1)造成Hspice 仿真不收敛主要有"No Convergence in DC Solution,, 和“Timestep too Small”,其可能的原因是:1 .电路的拓扑结构:电路拓扑结构造成仿真不收敛主要有:电路连线错误,scale、sea Im和param 语句错误,其他错误可以通过查找列表文件中的warning和errors发现。
解决的方法是:将电路分成不同的小模块,分别进行仿真;简化输入源;调整二极管的寄生电阻;调整错误容差,重新设置RELV, ABSV, RELI, ABSI, RELMOS, ABSMOS 等。
2.仿真模型:由于所有的半导体器件模型都可能包含电感为零的区域,因此可能引起迭代的不收敛。
解决的方法是:在PN结或MOS的漏与源之间跨接一个小电阻;将.option 中默认的GMINDC、GMIN增大。
3.仿真器的options设置:仿真错误容差决定了仿真的精度和速度,要了解你所能接受的容差是多少。
解决的方法是:调整错误容差,重新设置RELV, ABSV, RELI, ABSL RELMOS, ABSMOS 等。
(2)针对仿真分析中可能出现的不收敛情况进行分析:1.直流工作点分析:每种分析方式都以直流操作点分析开始,由于Hspice有很少的关于偏置点的信息,所以进行DC OP分析是很困难的,分析结果将输出到.ic文件中。
对DC OP分析不收敛的情况,解决方法是:删除option语句中除acct, list, node, post之外的所有设置,采用默认设置,查找』is文件中关于不收敛的原因;使用.nodeset和.ic语句自行设置部分工作点的偏置;DC OP不收敛还有可能是由于model引起的,如在亚阈值区模型出现电导为负的情况。
2.直流扫描分析:在开始直流扫描分析之前,Hspice先做DC OP计算,引起直流扫描分析不收敛的原因可能是快速的电压或电流变化,模型的不连续。
解决的方法是:对于电压或电流变化太快,通过增加ITL2来保证收敛,.option ITL2是在直流扫描分析中在每一步允许迭代的次数,通过增加迭代次数,可以在电压或电流变化很快的点收敛。
对于模型的不收敛,主要是由于MOS 管线性区和饱和区之间的不连续,Newton-Raphson算法再不连续点处进行迭点计算产生震荡,可以通过增减仿真步长值或改变仿真初始值来保证收敛,如:.dcvin0v5v0.lv的直流分析不收敛,可以改为.dcvinOv5vO.2v增大步长值,.de vin 0.01v5.01v0.1v改变仿真的范围。