Hspice是一种通用电路分析程序,可用来进行集成电路和电子线路的分析模拟。它可以用来分析电路的非线性直流特性,线性交流小信号特性,非线性瞬态特性,温度特性等。其中,直流分析(.DC)不光可进行直流转移特性分析,还可进行直流工作点(.OP),直流小信号传输特性(.TF),直流小信号灵敏度(.SENS)分析;在进行交流分析(.AC)的同时还可进行噪声特性(.NOISE)和失真特性(.DISTO)分析;在进行瞬态分析(.TRAN)的同时还可进行傅立叶(.FOUR)分析;进行温度特性分析(.TEMP)以求得电路的温度特性。在进行交流分析和瞬态分析前先进行直流分析,以决定其非线性元件的线性化小信号模型和其初始条件。
Hspice输入描述文件格式:
标题语句 | |
元件语句 模型语句 | |
" 子电路 | .SUBCKT 元件语句, 模型语句 子电路调用 .ENDS语句 |
控制语句 | |
结束语句 |
元件语句是说明该元件的拓扑关系和元件值的。每个元件给予一个元件名,元件名的第一个字母说明该元件的类型,Hspice并对各种类型的元件所对应的英文字母作了规定,元件名不能重复。元件的节点号可以用一正整数表示,也可以用网点名表示。
模型语句是说明该元件的模型参数的。在模型语句中定义一组元件模型参数并赋予一个唯一的模型名,在元件语句中即可引用此模型名,表明此元件具有该组模型参数值。
子电路是用一组元件语句来定义,程序会自动将这组元件插入到子电路被调用的地方,其大小和复杂性没有,并允许其包含其他子电路。在电路中不能包括短路的电压源和电感,开路的电流源和电容,电路中的每个节点都不能悬空。
控制语句是控制程序的运行和规定分析及输出的内容。如温度语句,工作点分析语句,交流分析语句,瞬态分析语句,打印语句,绘图语句和可选项语句等。
Hspice的每条语句都有若干个字段,字段之间由空格或符号隔开,多余的空格将被忽略,字段内不能随意加空格,即字段不能断开。
字段可以是字符段或数字段,字符段必须以字母开头,长度不超过8个字符,多余的字符将被忽略,且由用户定义的字符段中不能包括Hspice输入描述语言中已定义的字符段(即保留字);数字段可以为整数或浮点数,其后可直接跟下列比例因子:
K=1E3,MEG=1E6,G=1E9,T=1E12,
M=1E-3,U=1E-6,N=1E-9,P=1E-12,F=1E-15,MIL=25.4E-6
比例因子必须紧跟在数字后面,不是比例因子的字母及比例因子之后的字母均被忽略。
如一个语句一行写不完,可在下一行接着写,该行称为续行,续行的第一列必须是“+”号,续行数没有。
Hspice模拟仿真流程:
N
Y
N
Y
N
Y
Y
N
Hspice输出文件类型如下表:
输 出 文 件 类 型 | 扩 展 名 |
列表输出,其内容包括仿真所用的名字和版本;Meta-Software单元信息;输入文件名;使用者名;注册资料;拷贝的输入网点文件;节点计算;操作点参数;每个source和sub-circuit的电压降,电流,功耗的详细情况;由. PLOT语句产生低分辩率图表;. PRINT语句结果;. OPTIONS语句结果。 | . lis,或使用者指定 |
瞬态分析结果,它包含瞬态分析的数据结果,是在输入文件同时有. TRAN和. OPTION POST语句时产生的一个分析记录文件。 | . tr# + |
瞬态分析测量结果,它是. MEASURE TRAN语句分析结果。 | . mt# |
DC分析结果,包含其使用的步长或在. DC语句中定义的扫描频率下的分析结果,包括噪声,失真或网络分析。 | . sw# + |
DC分析测量结果,它是. MEASURE DC语句分析结果。 | . ms# |
AC分析结果,包含一个频率功能的输出变量列表,符合其后的. AC语句的使用者规格。 | . ac# + |
AC分析测量结果,它是. MEASURE AC语句分析结果。 | . ma# |
硬拷贝图表数据(从meta.cfg PRTDEFAULT) | . gr# ++ |
数字输出,包含从U单元A2D转换选项得到的转换数字数据。 | . a2d |
FFT分析图表数据,包含显示FFT分析波形的图表数据。 | . ft# +++ |
分支电路交叉列表,它说明了在符合分支电路定义下调用的分支电路节点名。 | . pa# |
输出情况,包含运行时间结果:每个CPU状态的开始和结束时间;废弃的选择项设置警告;预先检查注册资料,输入语法,模型和电路拓扑结构的情况;对困难电路使用的Hspice收敛方法。 | . st# |
操作点节点电压(初始状态),对于. SAVE语句。 | . ic |
注意:#表任一扫描编号或硬拷贝文件编号。 +只有在使用. POST语句产生图表数据才会生成。 ++需要. GRAPH语句或在meta.cfg文件中有一文件输出指针。在PC版的 Hspice中此文件不能产生。 +++只有在使用. FFT语句才会生成。 |
在下列描述中,“[ ]”内的域为可选项,其余的域为必须的;name1,name2为可选的字符串,字符串最多可有八个字符(包括首字符),但其中不能出现分隔符(如空格,等号,逗号等)。
1.电阻:Rname N1 N2 value [TC=TC1[,TC2]]
R为关键字,N1,N2为与电阻相连的两节点的节点号,电阻值可为正值或负值,其单位为欧姆。TC1,TC2为电阻的温度系数,电阻值按下式随温度而变化:
当两可选参数TC1,TC2未给出时,程序将自动赋零。T0为标称温度,可由.OPTIONS控制语句进行修改。
2.电容:Cname N+ N- [PLOY] value [C1 [C2…]] [IC=v]
C为关键字,N+,N-表电容的正负节点,可选项PLOY表示该电容是一个随电压变化的非线性电容,其值可由下式求得:
,其中n≤20。
[IC= ] 项为初始条件项,其作用将视瞬态分析语句中是否有UIC(Use Initial Condition)关键词而不同:若瞬态分析语句中有UIC项,则进行瞬态分析时,将以IC项所给值作为该元件的瞬态分析初始条件。
3.电感:Lname N+ N- [PLOY] value [L1 [L2…]] [IC=i]
L为关键字,N+,N-表电感的正负节点,电流从正节点流到负节点。可选项PLOY表示该电感是一个随电流变化的非线性电感,其值可由下式求得:
,其中n≤20。
[IC= ] 项为初始条件项,其作用将视瞬态分析语句中是否有UIC(Use Initial Condition)关键词而不同:若瞬态分析语句中有UIC项,则进行瞬态分析时,将以IC项所给值作为该元件的瞬态分析初始条件。
4.互感:Kname1 Lname2 Lname3 value
K为关键字,Lname2和Lname3为两个耦合电感名,耦合系数的取值范围为大于0小于1,每个电感的第一个节点作为同名端。
5.传输线:Tname N1 N2 N3 N4 Z0=value TD=val2 [F=freq [NL=nlen] ] +[IC=v1,i1,v2,i2]
T为关键字,N1,N2是端口1的两个节点,N3,N4是端口2的两个节点。Z0为特性阻抗值,TD为传输延迟值,F为频率,NL相当于在频率F时传输线波长的归一化电学长度。如指定F而省去NL,则NL缺省值为0.25。
传输线的传输延迟值必须以下列两种方法中的一种输入:
1).直接给出TD值;
2).由F和NL两项求出,即TD=NL/F。
v1,i1,v2,i2分别为端口1和端口2的电压,电流的初始值。
6.线性和非线性受控源:Hspice包含四种线性和四种非线性受控源,它们分别为:
.线性电压控制电流源:I=G·V,Gname N+ N- NC+ NC- value
.线性电压控制电压源:V=E·V,Ename N+ N- NC+ NC- value
.线性电流控制电流源:I=F·I,Fname N+ N- Vname value
.线性电流控制电压源:V=H·I,Hname N+ N- Vname value
G,E,F,H分别为跨导,电压增益,电流增益和互阻因子。N+,N-分别为受控
源的正负节点,NC+,NC-分别为控制电压源的正负节点,Vname为控制电流所流
过的电压源的名称,语句中的value值分别为各受控对应的跨导值,电压增益值,电流增益值和互阻因子值。
Hspice允许以一组多项式系数来描述非线性受控源,并且控制变量可以是的,维数与系数的数目没有,但系数的意义随维数的不同而改变。其语句格式为:
.非线性电压控制电流源:Gname n+ n- POLY (nd) nc1+ nc1- … ncnd+
ncnd- P0 [P1…] [IC=控制电压初值]
.非线性电压控制电压源:Ename n+ n- POLY (nd) nc1+ nc1- … ncnd+
ncnd- P0 [P1…] [IC=控制电压初值]
.非线性电流控制电流源:Fname n+ n- POLY (nd) Vname1 … Vnamend
P0 [P1…] [IC=控制电压初值]
.非线性电流控制电压源:Hname n+ n- POLY (nd) Vname1 … Vnamend
P0 [P1…] [IC=控制电压初值]
n+,n-为受控源的正负节点,POLY为非线性受控源关键字,nd为控制变量维数,nc1+,nc1- … ncnd+,ncnd-分别为nd个控制电压源的正负节点,Vname1 … Vnamend分别为nd个控制电流所流过的电压源的名称,P0 ,P1…是多项式的系数。初始条件IC项给出受控源的初始条件,计算时将先使控制变量取IC项所给值,求电路的直流工作点;收敛后继续迭代,再求出控制变量的最终精确解。若不给IC项,则控制变量的初始值为零。以电压控制电压源为例,如控制电压为一维的,则受控电压为:;
如控制电压为二维的,则受控电压为:
如控制电压为三维的,则受控电压为:
7.电压源和电流源:
Vname N+ N- [ [DC] value] [AC magval [phaseval] ]
+ [PULSE( v1 v2 [td [tr [tf [pw [per] ] ] ] ] ) ]
or [SIN (vo va [freq [td [kd] ] ] ) ]
or [EXP (v1 v2 [td1 [t1 [td2 [t2] ] ] ] ) ]
or [PWL( t1 v1 t2 v2 … tn vn ) ]
or [SFFM( vo va freq [mdi [fs] ] ) ]
or [AM( vo va freq [fs [td] ] ) ]
或Iname N+ N- [ [DC] value] [AC magval [phaseval] ]
+ [PULSE( i1 i2 [td [tr [tf [pw [per] ] ] ] ] ) ]
or [SIN (io ia [freq [td [kd] ] ] ) ]
or [EXP (i1 i2 [td1 [t1 [td2 [t2] ] ] ] ) ]
or [PWL( t1 i1 t2 i2 … tn in ) ]
or [SFFM( io ia freq [mdi [fs] ] ) ]
or [AM( io ia freq [fs [td] ] ) ]
V和I 为电压源和电流源的关键字,N+和N-为电源的正负节点,这里规定电
流源的方向是从正节点经电源内部流向负节点。
一个源,可以同时给出三种分析类型的信号源值,上面第一个选择项为电源
的直流值,第二个选择项为交流数据,第三个选择项为瞬态数据。程序在作不同
的分析时,将取相应的信号源数据。若作直流分析,取直流常数值;若作交流分
析,源被视为由振幅和相位所描述的正弦小信号(频率即为交流分析频率);
当作瞬态分析时,则用随时间变化的瞬态数据(也可能是常数);直流和瞬态分析
可用同一值描述,如值随时间变化,则取t=0的值作直流分析。
DC为直流信号的关键字,如直流值为零也可省略不写。模拟时可用零值电压源表
电流表,因每个电压源和电流值都将被打印。
AC为交流信号的关键字,交流信号的振幅和相位的缺省值分别为“1”和“0”。
当电路中只有一个交流信号输入时,交流信号的振幅通常设为1,以便求得电路的
增益。注意,Hspice中相位的单位为度。
瞬态分析所需的信号源的值是随时间而变化的,随时间变化的关系可以是下列六
种形式之一:
.脉冲信号源:PULSE(val1 val2 td tr tf pw per)
脉冲信号参数的意义及其缺省值如表1所示,表中tstep和tstop分别是瞬态分
析的时间步长和时间终值,它们均由.TRAN语句定义。
脉冲信号源一个周期内的信号值由表2决定,中间时间点上的信号值由输入
值的线性插值法求得。
参 数 | 描 述 | 缺省值 | 单 位 |
val1 | 初始值 | V或A | |
val2 | 脉冲值 | V或A | |
td | 延迟时间 | 0 | s |
tr | 上升时间 | tstep | s |
tf | 下降时间 | tstep | s |
pw | 脉冲宽度 | tstop | s |
per | 周期 | tstop | s |
时 间 | 数值 |
0 | val1 |
td | val1 |
td+ tr | Val2 |
td+ tr+pw | Val2 |
td+ tr+pw+tf | val1 |
td+ per | val1 |
脉冲信号源的波形如下图所示:
V
val2
0 t
val1
td tr pw tf
per
.正弦信号源:SIN(off amp freq td kd ph)
正弦信号参数的意义及其缺省值如表1所示,正弦信号源的值由表2决定。
参 数 | 描 述 | 缺省值 | 单 位 |
off | 直流偏置 | V或A | |
amp | 幅度 | V或A | |
freq | 频率 | 1/tstep | Hz |
td | 延迟时间 | 0 | s |
kd | 阻尼因子 | 0 | 1/s |
ph | 相位延迟 | 0 | °(度) |
时 间 | 数 值 |
0~ td | off+amp*SIN(2*∏*ph/360) |
td~ | off+amp*EXP(td*kd-t)*SIN{2*∏*[freq*(t-td)+ph/360]} |
正弦信号源的波形如下图所示:
V
amp 由kd决定的衰减包络线
off
-amp
td per per=1/freq
0 t
.指数信号源:EXP(val1 val2 td1 t1 td2 t2)
指数信号参数的意义及其缺省值如表1所示,指数信号源的值由表2决定。
参 数 | 描 述 | 缺省值 | 单 位 |
val1 | 初始值 | V或A | |
val2 | 脉冲值 | V或A | |
td1 | 上升延迟时间 | s | |
t1 | 上升延迟时间常数 | tstep | s |
td2 | 下降延迟时间 | td1+tstep | s |
t2 | 下降延迟时间常数 | tstep | s |
时 间 | 数 值 |
0~ td1 | val1 |
td1~ td2 | val1+(val2- val1)*{1-EXP[(td1-t)/t1]} |
td2~ | val1+(val2- val1)*{1- EXP[(td1-td2)/t1]}*EXP[(td2-t)/t2] |
指数信号源的波形如下图所示:
V
val2
t1 t2
0 t
val1
td1
td2
.分段线性化信号源:PWL(t1 val1 t2 val2 … tn valn)
t1,t2,…,tn为时间点,val1,val2,…,valn为对应时间点的信号源值,ti和ti+1之间的数值是由vali和vali+1用插值法求得。
分段线性化信号源的波形如下图所示:
V val3 val4
val1 val2 val5 val6
0 t1 t2 t3 t4 t5 t6 t
.调频信号源:SFFM(off amp fcar mdind fsig)
调频信号参数的意义及其缺省值如表1所示。
参 数 | 描 述 | 缺省值 | 单 位 |
off | 直流偏置 | V或A | |
amp | 载波幅度 | V或A | |
fcar | 载波频率 | 1/tstop | 1/s |
mdind | 调制系数 | 0 | |
fsig | 信号频率 | 1/tstop | 1/s |
调频信号源的值由下式决定:
value=off+amp*SIN[2*∏*fcar*t+mdind*SIN(2*∏* fsig*t)]
调频信号源的波形如下图所示:
V
amp
off
-amp
fsig fcar
0 t
.调幅信号源:AM(amp off fmod fcar td)
调幅信号参数的意义及其缺省值如表1所示。
参 数 | 描 述 | 缺省值 | 单 位 |
amp | 载波幅度 | 0 | V或A |
off | 直流偏置 | 0 | V或A |
fmod | 调制频率 | 1/tstop | 1/s |
fcar | 载波频率 | 0 | 1/s |
td | 延迟时间 | 0 | 1/s |
调幅信号源的值由下式决定:
value= amp *{ off +SIN[2*∏* fmod *(t-td)]}*SIN[2*∏* fcar*(t-td)]
调幅信号源的波形如下图所示:
V
amp
fmod
fcar
0 t
-amp
td fcar
8.二极管:Cname n+ n- modname [area] [OFF] [IC=icval]
C为关键字,n+,n-是正负节点,modname为模型名,它必须在. MODEL语句中
进行说明。area为面积因子,为一无量纲的数,表示器件面积与模型语句中定义
的“单位面积” 器件的面积比值,与面积有关的模型参数将乘以或除以这个面积
因子。OFF项可帮助实现直流收敛,其作用是将器件作截止处理,迭代收敛后再
使器件正常工作,继续迭代求得精确解。如. TRAN分析语句中有UIC项,那么IC
参数的值icval则为瞬态分析的初始条件。
9.晶体管:Qname nc nb ne [ns] modname [area] [OFF] [IC=Vbe,Vce]
Q为关键字,nc,nb,ne分别表晶体管的集电极,基极和发射极,ns表衬底节点,
缺省时则认为它是接地的。其余modname,面积因子“area”,关键字“OFF”,
初始条件“IC=”项等的意义如前所述。
10.结型场效应管:
Jname nd ng ns modname [area] [OFF] [IC=Vds,Vgs]
J为关键字,nd,ng,ns分别表结型场效应管的漏极,栅极和源极节点,其余
各项的意义如前所述。
11.MOS管:Mname nd ng ns nb modname [L=lval] [W=wval]
+[AD=adval] [AS=asval] [PD=pdval] [PS=psval] [NRD=nrdval]
+[NRS=nrsval] [OFF] [IC=Vds,Vgs,Vbs]
M为关键字,nd,ng,ns,nb分别表MOS管的漏极,栅极,源极和衬底节点。L和W分别为沟道长度和宽度,缺省值为100U。AD,AS分别为漏极和源极扩散区面积,缺省值为0。PD,PS分别为漏极和源极扩散区周长,缺省值为0。NRD,NRS分别为漏极和源极扩散区等效方块面积数目,缺省值为1。其中,L,W,AD,AS这四个参数均能通过. OPTIONS语句进行修改。
Hspice子电路描述语句:
在Hspice中,可以把电路中重复出现的相同单元定义为“子电路”,作为“宏模块” 重复调用,从而使Hspice的电路描述更加简洁明了。
子电路与外部电路相联系的节点称为子电路的外部节点,只在子电路内部使用的节点称为子电路的局部节点。局部节点只在子电路内部有效,因此局部节点的节点号可以与调用该子电路的主电路的节点号相同。只有接地节点例外,因其无论对于子电路还是对于主电路,它都是接地点或参考节点。
子电路的描述以子电路定义语句开头,然后是一组描述这个子电路的描述语句,最后是结束语句。子电路中可以直接调用主电路中描述的模型语句,也可以有自己的模型语句,还可以再定义和调用子电路(即“嵌套”),但不可出现其他控制语句。子电路中的模型语句和嵌套子电路都是局部的,即只在子电路内部有效,外部不能调用。
1.子电路定义语句:.SUBCKT subname n1 [n2 n3 …]
subname是用户给予电路起的名字,n1,n2,n3…是子电路的外部节点。.SUBCKT语句后是一组描述子电路的语句,这些语句可以是基本电路器件描述语句,电压源和电流源语句,半导体器件描述语句以及模型语句,还可以是对其他子电路的调用语句,但不能是控制语句。子电路描述的最后一个语句是结束语句。
2.结束语句:.ENDS subname
如给出子电路名(subname),就表示结束subname子电路的描述,否则表示结束所有子电路的描述。
3.子电路的调用:Xname N1 [N2 N3 …] subname
子电路每次被调用时,都需给它赋一个标识符Xname,子电路的标识符必须以字
符X打头。N1,N2,N3…是主电路的节点,通过它们与子电路相连,因此N1,
N2,N3…必须与子电路的外部节点一一对应。
Hspice的控制语句:
1.分析类型语句:
.直流分析:
.直流分析语句:.DC var1 start1 stop1 incr1 [var 2 start2 stop2 incr2]
或.DC var1 start1 stop1 incr1[SWEEP var 2 type np start2 stop2]
或.DC var1 type np start1 stop1 [SWEEP DATE=datenm]
或.DC DATE=datenm [SWEEP var2 start2 stop2]
或.DC DATE=datenm
或.DC var1 type np start1 stop1 [SWEEP MONTE=val]
或.DC MONTE=val
或.DC DATE=datenm OPTIMIZE=opt RESULTS=mea MODEL=optmod
或.DC var1 start1 stop1 SWEEP OPTIMIZE=opt RESULTS=mea
MODEL=optmod
直流分析语句将完成对一个电路和器件的直流转移特性的分析,尤其是半导
体器件的直流特性的分析。其中,
var为所要进行的扫描激励源名,它可以是电压源或电流源名,任何器件或模
型参数,或者是关键字TEMP,Hspice在进行直流分析时,允许有两个扫描
激励源,start为所要进行的扫描激励源的起始值,stop为终止值,incr为增量;
type为跟踪分析关键字,包括:
DEC – 十倍频程变化;
OCT – 倍频程变化;
LIN – 线性变化;
POI – 点阵列表;
np表以十倍频程或倍频程选取的频率点数,或对应前面关键字的总分析点数
(其中,十倍频程中频率点是以对数函数等间隔选取的);
datenm为调用的.DATE语句名;
MONTE=val是在高斯型的,均匀的或任意范围内的分布中选择一个数值val;
OPTIMIZE指在.PARAM语句中指定参数的优化;
RESULTS指在.MEASURE语句中指定参数的优化;
MODEL指在.MODEL OPT语句中指定参数的优化;
程序将针对激励源的每个扫描值,求出电路所对应的响应,包括任何参数值,
任何电源值,任何温度范围,进行直流MONTE CARLO分析(随机扫描),
进行直流电路优化,进行直流模型描述。
.直流工作点分析语句:.OP [format1] [time1] [format2] [time2]
直流工作点分析将求解出电路的直流工作点。在作直流分析时,程序将电容
看作开路,电感看作短路。在作交流分析或瞬态分析时,程序将自动进行直
流工作点分析。当电路描述中,没有规定任何分析类型时,程序将自动进行
直流工作点分析。其中,
format表跟踪分析关键字(只有第一个字母有效,默认值为ALL),包括:
ALL – 全部工作点,包括电压,电流,电导和电容;指定时间的电压/电流的
输出。
BRIEF – 对每个元件的电压,电流和功耗生成一个线性摘要,电流单位为毫
安,功耗单位为毫瓦。
CURRENT –对电压列表,每个电流和功耗的一个简短摘要。
DEBUG – 通常只用于程序在非收敛的仿真过程中。调试打印非收敛节点的新
电压值,旧电压值和它们之间的公差(非收敛程度)。它也要打印
非收敛元件和它们的公差值。
NONE – 禁止节点和元件打印输出,但允许执行额外的指定分析。
VOLTAGE – 只有电压列表。
注意:上述关键字是互不相容的,在同一时间只有一个被使用。
time表在打印记录时,参数直接按照全部的,电压,电流或者调试和指定时
间来排列。
.直流小信号传输函数分析语句:.TF ov srcname
ov指小信号输出变量;
srcname指小信号输入来源;
直流小信号传输函数分析语句定义了直流小信号分析的小信号输出和输入,
将完成对小信号传输函数的分析,通常用于计算电路的输出/输入的小信号传
输函数,直流增益和输入,输出电阻。
.直流小信号灵敏度分析语句:.SENS ov1 [ov2 …]
ov1,ov2 指直流分量灵敏度分析分支电流或节点电压名。
直流小信号灵敏度分析语句用于对指定的电路参数的直流小信号灵敏度的计
算,它对于大电路会产生非常大的输出数据。
.极点/零点分析语句:.PZ ov srcname
ov指输出变量:一个节点电压或分支电流(元件)。
srcname指输入来源:一个电压源或电流源名。
.交流分析:
.交流分析语句:.AC type np fstart fstop
或.AC type np fstart fstop [SWEEP var start stop incr]
或.AC type np fstart fstop [SWEEP var type np start stop]
或.AC var start stop incr
或.AC type np fstart fstop [SWEEP DATE=datenm]
或.AC DATE=datenm
或.AC DATE=datenm OPTIMIZE=opt RESULTS=mea MODEL=optmod
或.AC type np fstart fstop [SWEEP MONTE=val]
type为跟踪分析关键字,包括:
DEC – 十倍频程变化;
OCT – 倍频程变化;
LIN – 线性变化;
POI – 点阵列表;
np表以十倍频程或倍频程选取的频率点数,或总分析点数,与上述关键字相
对应(其中,十倍频程中频率点是以对数函数等间隔选取的);
fstart为起始频率(如典型变量“POI”存在,则一个频率列表将指定替换“fstart
fstop”的值);
fstop为终止频率;
var为所要进行的扫描激励源名,它可以是电压源或电流源名,任何器件
或模型参数,或者是关键字TEMP;
start为电压,电流,元件或模型参数的起始值;
stop为电压,电流,元件或模型参数的终止值
incr为电压,电流,元件或模型参数的增量值(如变量“type”存在,则“np”
为指定替换“incr” 的值);
datenm为调用的.AC语句的数据名;
MONTE=val是在一个分布中选择出的参数值,是任意的值,这分布可以是高
斯型,均匀的,任意范围的;
OPTIMIZE指在.PARAM语句中指定参数的优化;
RESULTS指在.MEASURE语句中指定参数的优化;
MODEL指在.MODEL OPT语句中指定参数的优化;
交流分析语句要求Hspice作电路的交流小信号分析(即频域分析),这就要求
电路中至少包含一个交流信号源。作交流分析时,程序先建立电路的小信号
线性化等效电路,然后将频率为fstart的交流小信号加入到该等效电路,求出
各个节点的相应交流信号值。该过程不断重复,直至求出频率点fstop上的各
个节点的交流信号值为止。
在交流分析模式中,对.PRINT语句和.PLOT语句进行了扩充,使其可以按
照下列类型输出(电压或电流):
DB:分贝,表20*log10(幅值); P:表响应信号的相位;
I:表输出的虚部; R:表输出的实部;
M:表响应信号的幅度; T:表响应信号的群延迟。
.失真分析语句:.DISTO R4 [inter [skw2 [refpwr [spwf] ] ] ]
Rload表用户指定的负载电阻名,用于计算其上的输出功率;
inter表失真分析结果的打印输出间隔;
skw2表第二个频率F2对指定频率F1的比值,其值1E-3<skw2≤0.999,默
认值为0.9;
refpwr表用户指定的基准参考功率,默认值为1mW或0dbM,其值必须大于
1E-10;
spwf表第二个频率F2的幅值,默认值为1.0,其值必须大于1E-3;
失真分析语句是要求在执行交流分析的同时执行失真分析,故其输入文件中
一定要包含.AC语句。分析时先假定在输入端叠加一个或两个单频信号,其
频率分别为F1(指交流分析的输入信号)和F2(F2= skw2* F1),程序将计算
下列失真量:
HD2:假定F2不存在,频率分量2* F1的幅值;
HD3:假定F2不存在,频率分量3* F1的幅值;
SIM2:频率分量F1+ F2的幅值;
DIM2:频率分量F1- F2的幅值;
DIM3:频率分量2*F1- F2的幅值;
以上失真量均可用.PRINT语句或.PLOT语句打印输出,所求得的失真量的
值是等效的输入信号的值。失真分析还包括计算出由用户指定的负载电阻
Rload上的输出功率,并以用户指定的参考功率refpwr为基准输出。
注意:1).交流分析的结果表示的是电路的增益或传输函数,输出值为10000
并不意味输出信号为10000V,而是表示输出信号的幅值是输入信
号幅值的10000倍。
2).失真量指的是等效的输入信号值。
.噪声分析语句:.NOISE ovv srcname inter
ovv表用户指定的输出端点;
srcname表用户指定的输入基准端点;
inter表噪声分析结果的打印输出间隔;
噪声分析语句是要求在执行交流分析的同时执行噪声分析,故其输入文件中
一定要包含.AC语句。该语句将在指定的输出端(ovv)计算总的输出噪声,
并在指定的输入基准端(srcname)计算等效输入噪声,计算的频率点与交流
分析相同,并在这些频率点上,按照打印输出间隔(inter),将每个噪声源对
输出噪声的影响打印出来。
.噪声叠加分析语句:
.SAMPLE FS=freq [TOL=val] [NUMF=val] [MAXFLD=val] [BATA=val]
FS=freq表用户指定基准频率,单位为HZ;
TOL表用户指定的错误容许公差,即在基带上的噪声功率和叠加的最高噪声
功率的比值,默认值为1.0E-3;
NUMF表用户指定的最大允许频率,默认值为100;
MAXFLD表最大允许叠加间隔,其值由式FMAX=MAXFLD* FS计算得到,
默认值为10;
BATA表积分回路选择或在基准节点指定一个有效的积分噪声。BATA=0时表
没有积分,BATA=1时表进行简单积分(默认值)。
噪声叠加分析语句相当于将.AC和.NOISE语句的分析结果相“与”,是在
输出节点进行一个简单的噪声叠加分析。
.交流网络分析语句:.NET input [RIN=val]
或.NET input [val]
或.NET ouput input [ROUT=val] [RIN=val]
input表输入的交流电压或电流源名;
ouput表输出端口,它可以是一个输出电压或电流;
RIN表输入或源极电阻关键字,默认值为1欧姆;
ROUT表输出或负载电阻关键字,默认值为1欧姆;
交流网络分析语句用于计算参数阻抗矩阵Z,电导矩阵Y,混合矩阵H,散射
矩阵S,它是一个局部交流小信号分析。因此,它需要指定其交流扫描频率。
其中,输入阻抗,输出阻抗和电导总是要计算的。
.瞬态分析:
.瞬态分析语句:.TRAN tstep tstop [tstart [tmax] ] [UIC]
或.TRAN var1 start1 stop1 incr1
或.TRAN var1 start1 stop1 incr1 [SWEEP var2 type np start2 stop2]
或.TRAN tincr1 tstop1 [tincr2 tstop2 … tincrN tstopN] [START=val] [UIC]
或.TRAN tincr1 tstop1 [tincr2 tstop2 … tincrN tstopN] [START=val] [UIC]
+[SWEEP var pstart pstop pincr]
或.TRAN DATE=datenm
或.TRAN var1 start1 stop1 incr1 [SWEEP DATE=datenm]
或.TRAN DATE=datenm [SWEEP var pstart pstop pincr]
或.TRAN tincr1 tstop1 [tincr2 tstop2 … tincrN tstopN] [START=val] [UIC]
+[SWEEP MONTE=val]
或.TRAN DATE=datenm OPTIMIZE= opt RESULTS=mea MODEL=optmod
tstep为瞬态分析时打印分析结果的时间步长;
tstop为瞬态分析的时间终止值;
tstart为瞬态分析对打印分析结果的时间起始值,默认值为0;
tmax为计算时的最大时间步长;
var为所要进行的扫描激励源名,它可以是电压源或电流源名,任何器件
或模型参数,或者是关键字TEMP;
start为电压,电流,元件或模型参数的起始值;
stop为电压,电流,元件或模型参数的终止值;
incr为电压,电流,元件或模型参数的增量值(如变量“type”存在,则“np”
为指定替换“incr” 的值);
type为跟踪分析关键字,包括:
DEC – 十倍频程变化;
OCT – 八倍频程变化;
LIN – 线性变化;
POI – 点阵列表;
np表以十倍频程或倍频程选取的频率点数,或总分析点数,与上述关键字相
对应(其中,十倍频程中频率点是以对数函数等间隔选取的);
tincr1…表打印或绘图输出增量值,并对以后处理程序提出计算增量;
tstop 1…表由tincr1决定增量的瞬态分析的截止时间,如有另一对tincr-tstop,
这分析将使用新的增量值;
START表打印或绘图的开始时间,默认值为0(如.TRAN语句与.MEASURE
语句一起使用时,使用一个不为零的START时间会导致错误的.MEASURE
的输出结果。不为零的START时间不能用于.TRAN语句与.MEASURE语
句一起使用时);
UIC表Hspice作瞬态分析时使用用户所给的初始条件,用户可由置初值语句
(.IC)和元件语句中的IC项规定初始条件。程序将直接使用这些初始条件
进行瞬态分析而无需先进行直流分析来求得初始条件;
pstart表开始电压,电流,温度,任一元件或模型参数的值(如变量“POI”
存在,则一个参数值列表为指定替换“pstart pstop”);
pstop表终止电压,电流,温度,任一元件或模型参数的值;
pincr表电压,电流,元件或模型参数,或温度的增量值(如变量“type”存
在,则“np”为指定替换“pincr”);
datenm为调用的.TRAN语句的数据名;
MONTE=val是在一个分布中选择出的参数值,是任意的值,这分布可以是高
斯型,均匀的,任意范围的;
OPTIMIZE指在.PARAM语句中指定参数的优化;
RESULTS指在.MEASURE语句中指定参数的优化;
MODEL指在.MODEL OPT语句中指定参数的优化;
瞬态分析语句用于对给定时间范围内的电路特性进行分析。瞬态分析总是从0
时刻开始到tstop时刻结束,如已给出tstart,瞬态分析仍从0时刻开始,只是
在0~tstart时间内的计算结果不存储也不输出。
瞬态分析中要注意区分打印步长和计算步长两个概念。Hspice作瞬态分析时
采用了变阶变步长技术,其计算步长是变化的,而第一个步长是将tstep/10和
(tstop~tstart)/500比较,取其较小的值作为计算步长。如已给出tmax,则所
有计算步长不得大于此值。
.傅立叶分析语句:.FOUR freq ov1 [ov2 ov3 …]
freq为傅立叶分析的基频频率;
ov1…为所要进行傅立叶分析的输出量;
傅立叶分析仅是瞬态分析的一部分,仅对输入信号的最后一个周期(tstop~
period到tstep)进行。故如要进行傅立叶分析,必须先进行瞬态分析,与瞬态
分析配合使用。傅立叶分析将对所有输出量求出其平均直流分量和前九个频率
分量。
.快速傅立叶分析语句:.FFT output_val为有效的输出变量,包括电压,电流或电源; START为指定进行分析的输出变量波形的开始值,默认值同.TRAN语句中 的START或0; FROM为.FFT语句中START的另一个别名; STOP为指定进行分析的输出变量波形的结束值,默认值同.TRAN语句中 的TSTOP; TO为.FFT语句中STOP的另一个别名; NP为指定用于FFT分析的分析点数,NP必须是2的幂,如NP不是2的幂, Hspice会自动调整它接近较高的为2的幂的数,默认值为1024; FORMAT为指定输出格式:NORM=标准量级,UNORM=非标准量级,默认 值为NORM; WINDOW为指定使用视窗类型: RECT=简单矩形截断窗口, BART=Bartlett(三角形)窗口, HAAN=Hanning(汉宁修匀)窗口, HAMM=Hamming(汉明修匀)窗口, BLACK=Blackman(布莱克曼)窗口, HARRIS= Blackman-Harris(布莱克曼-哈里斯)窗口, GAUSS=Gaussian(高斯)窗口, KAISER=Kaiser-Bessel(凯撒-贝赛尔)窗口, 默认值为RECT; ALFA为指定用于GAUSS和 KAISER窗口的参数,控制最大波瓣等级,带宽 和上限,1.0≤ALFA≤20.0,默认值为3.0; FREQ为指定的基频频率,如FREQ是非零的,输出列表将在这个频率的 谐波范围内,基带为FMIN至FMAX,这些谐波的THD同样打印输出,默认 值为0.0(Hz); FMIN为指定的最小频率在FFT分析的列表文件中的输出或用于THD计算, 默认值为1.0/T(Hz),T=(STOP-START); FMAX为指定的最大频率在FFT分析的列表文件中的输出或用于THD计算, 默认值为0.5*NP*FMIN(Hz)。 .温度特性分析: 温度特性分析语句:.TEMP t1 [t2 … tn] t1,t2…tn分别为不同的工作温度,以℃为单位,最低温度不得低于-223.0℃。 如不给出此语句,将在标称温度下进行分析,标称温度可在任选项语句(.OPTION) 中设置,默认值为27℃。 2.输出语句:输出语句供用户选择输出内容和格式,有以下四种语句。 .打印语句:.PRINT type var1 [var2 … var32] type为指定的分析输出类型,它可以是DC,AC,TRAN,NOISE和DISTO五项 中的任一项,分别表示上述五种分析的输出,其余分析类型不需写输出语句而自 动输出数据; var1…为要打印的输出变量,它可以是电压,电流或进行DC,AC,TRAN,NOISE 或DISTO分析的输出变量模板的要素,每条语句中的输出变量的数目最多可为 32个,但输出语句条数不限; AC分析的输出变量可以是电压或电流的实部,虚部,模,相位和模的分贝数, 分别用字母R,I,M,P和DB来表明,如不指明则认为是模; NOISE分析的输出变量只能是ONOISE和INOISE,分别表示输出噪声和等效输 入噪声,DISTO分析的输出变量可以是HD2,HD3,SIM2,DIM2或DIM3,NOISE 和DISTO分析的输出变量也都可以跟一个字母R,I,M,P或DB来表示实部, 虚部,模,相位和模的分贝数,但要加上括号。 .绘图语句:.PLOT type var1 [(plo1 phi1)] [var2 [(plo2 phi2)] … var32] type为指定的分析输出类型,它可以是DC,AC,TRAN,NOISE和DISTO五项 中的任一项,分别表示上述五种分析的输出,其余分析类型不需写输出语句而自 动输出数据; var1…为要打印的输出变量,它可以是电压,电流或进行DC,AC,TRAN,NOISE 或DISTO分析的输出变量模板的要素,每条语句中的输出变量的数目最多可为 32个,但输出语句条数不限; (plo1 phi1)…是用来定义绘图的纵坐标,plo表坐标上限,phi表坐标下限, 均可正可负,每个括号不仅对前一个输出变量起作用,而且对前面所有输出变量 起作用,直到另一个括号出现为止,如未规定坐标范围,程序将根据数据范围自 动选择纵坐标,同一幅图中不同曲线可以有不同的坐标尺度; AC分析的输出变量可以是电压或电流的实部,虚部,模,相位和模的分贝数, 分别用字母R,I,M,P和DB来表明,如不指明则认为是模; NOISE分析的输出变量只能是ONOISE和INOISE,分别表示输出噪声和等效输 入噪声,DISTO分析的输出变量可以是HD2,HD3,SIM2,DIM2或DIM3,NOISE 和DISTO分析的输出变量也都可以跟一个字母R,I,M,P或DB来表示实部, 虚部,模,相位和模的分贝数,但要加上括号; .存储语句:.PROBE type var1 [var2 … var32] type为指定的分析输出类型,它可以是DC,AC,TRAN,NOISE和DISTO五项 中的任一项,分别表示上述五种分析的输出,其余分析类型不需写输出语句而自 动输出数据; var1…为要存储的输出变量,它可以是电压,电流或进行DC,AC,TRAN,NOISE 或DISTO分析的输出变量模板的要素,每条语句中的输出变量的数目最多可为 32个,但输出语句条数不限; AC分析的输出变量可以是电压或电流的实部,虚部,模,相位和模的分贝数, 分别用字母R,I,M,P和DB来表明,如不指明则认为是模; NOISE分析的输出变量只能是ONOISE和INOISE,分别表示输出噪声和等效输 入噪声,DISTO分析的输出变量可以是HD2,HD3,SIM2,DIM2或DIM3,NOISE 和DISTO分析的输出变量也都可以跟一个字母R,I,M,P或DB来表示实部, 虚部,模,相位和模的分贝数,但要加上括号; .PROBE语句将只存储指定的输出变量在输出列表文件中。 .测量法语句: .MEASURE [MeasType] [ParamName=MeasClause] MeasType为测量法所要完成任务的类型:AC,DC或TRAN; MeasClause为测量法所要完成任务的结构:TRIG/TARG,FIND/WHEN,.PARAM 或其它。 3.任选项语句: .OPTIONS op1 [op2 op3 … ] op1…为输入控制任选项的关键字,其作用主要是对Hspice的算法加以人工干预或 对缺省值进行赋值,其关键字如下所示: 1禁止统计; 2允许统计(默认); 3允许MATRIX统计表统计; 安,功耗单位为毫瓦。 INGOLD=0,工程格式,用一个单一的字符表示指数值: 1G=1e9 1X=1e6 1K=1e3 1M=1e-3 1U=1e-6 1N=1e-9 1P=1e-12 1F=1e-15 INGOLD=1,结合固定和指数格式(G格式),固定格式数值从0.1至999,指数格式包括大于999或小于0.1的数值; INGOLD=2,专有的指数格式(SPICE2G结构),将产生适合后序分析工具的大小的常数值; 用.OPTIONS MEASDGT结合INGOLD去控制.MEASURE结果的输出数据格式。 用MEASDGT结合.OPTIONS INGOLD=x可以控制数据输出格式。 1没有信息(默认值); 2打印变量,扩大更新和平分结果信息; 3打印递减率,错误,Hessian和迭代信息; 4打印上述全部和函数行列式。 5.电路参数修改语句: 6.宽度语句和结束语句:
4.端点电压预置语句和初始条件设置语句:通用控制任选项 输入,输出控制 ACCT 打印计算和运行时间的统计,有以下三种选择: ACOUT 在AC输出微分计算结果时采用数量值,相位值,还是分贝值用于打印和绘图,默认值=1。当默认值ACOUT=1,选择Hspice方式时,计算结果时用数量值输出;选择SPICE方式,ACOUT=0时,计算结果时用数量值输出。 BRIEF,NXX 对每个元件的电压,电流和功耗生成一个线性摘要,电流单位为毫 CO=x 设置打印输出列数:x可以是80(窄行打印机)或132(宽行打印机)中的任一个,它也可以通过.WIDTH语句进行设置,默认值=80。 INGOLD=x 指定打印输出格式,INGOLD=2时与SPICE兼容,默认值=0,有以下三种选择: LENNAM=x 指定在工作点分析结果的打印输出中的名字的最大长度,默认值=8。 LIST 打印输入数据的总清单。 MEASDGT=x 在列表文件(.Lis)和.MEASURE语句输出文件(.ma0,.mt0,.ms0等)中使用.MEASURE语句输出格式,其值一般在1到7之间,最高可达10,默认值=4.0。 NODE 打印节点表,表中将包括每个节点和全部元件的连接。 NOELCK 不进行元件检查;对非常大的文件减少支路元件检查的预处理时间。 NOMOD 抑制模型参数的打印输出。 NOPAGE 抑制打印翻页。 NOTOP 对非常大的文件为增加预处理速度抑制布局检查结果。 NUMDGT=x 设置输出变量值的有效位数,其值一般在1到7之间,最高可达10,默认值=4.0,此任选项不会影响仿真的精确度。 OPTLST=x 允许输出中增加优化信息输出: OPTS 打印全部任选项设置,如果一些任选项的默认值已经改变,OPTS任选项将打印仿真中使用的值,可以通过BRIEF任选项抑制其作用。 PATHNUM PLIM SEARCH VERIFY CPU控制 CPTIME=x 设置作业允许的最大CPU时间,单位为秒。 EPSMIN=x EXPMAX=x LIMTIM=x 设置由程序保留的CPU时间总数,为绘图使用,默认值=2.0(秒)。 界面控制 ARTIST=x 在ARTIST=2时允许有Cadence Analog Artist界面,该选项需要经特许授权; CDS CSDF MEASOUT POST PROBE PSF SDA ZUKEN 分析控制 ASPEC 设置Hspice为ASPEC兼容模式,该选项可设置成ASPEC模式和网表供Hspice读取,且其结果兼容,默认值=0(Hspice模式); LIMPTS=x 设置在DC,AC或瞬态分析时能被打印的点的总数,默认值=201。 PARHIER SPICE 出错控制 BADCHR DIAGNOSTIC NOWARE WARNLIMIT 版本 H9007 H95 模型分析控制 通用模型 DCAP SCALE TNOM=x 设置标称温度,默认值=27.0℃(300K)。 MOSFETs模型 CVTOL DEFAD=x 设置MOS管漏极扩散面积的缺省值,默认值=0.0。 DEFAS=x 设置MOS管源极扩散面积的缺省值,默认值=0.0。 DEFL=x 设置MOS管沟道长度的缺省值,默认值=100U。 DEFNRD DEFNRS DEFPD DEFPS DEFW=x 设置MOS管沟道宽度的缺省值,默认值=100U。 SCALM WL 电感模型 GENK KLIM BJTs模型 EXPLI Diodes模型 DIORSCAL EXPLI DC工作点和DC扫描分析控制 精度控制 ABSH ABSI ABSMOS ABSTOL=x 设置程序的绝对电流误差容限,默认值=1.0E-12。 ABSVDC DI KCLTEST MAXAMP RELH RELI RELMOS RELV RELVDC 矩阵,真值表控制 ITL1=x 设置直流迭代极限,默认值=100.0。 ITL2=x 设置直流转移曲线迭代极限,默认值=50.0。 NOPIV PIVOT,SPARSE PIVREF PIVREL=x 设置最大矩阵项和允许的主元值之间的相对比率,默认值=1.0E-3。 PIVTOL=x 设置允许被接受为主元的矩阵项的绝对最小值,默认值=0.1。 输入,输出控制 CAPTAB DCCAP VFLOOR 集中, 收敛控制 CONVERGEN CSHDC DCFOR DCHOLD DCON DCSTEP DV GMAX GMINDC GRAMP GSHUNT ICSWEEP NEWTOL OFF RESMIN RMAXDC 极点/零(原)点控制 CSCAL FMAX FSCAL GSCAL LSCAL PZABS PZTOL RITOL XnR,XnL NEWTOL 瞬态和AC小信号分析控制 精度控制 ABSH ABSV=x,VNTOL=x 设置程序的绝对电压误差容限,默认值=1.0E-6。 ACCURATE CHGTOL 设置程序的电荷容差,默认值=1.0E-14。 CSHUNT,GSHUNT DI GMIN=x 设置程序允许的最小跨导,默认值=1.0E-12。 GSHUNT,CSHUNT MAXAMP RELH RELQ RELTOL=x 设置程序的相对误差容限,默认值=0.001。 TRTOL=x 设置瞬态误差容限,默认值=7.0。 速度控制 AUTOSTOP BKPSIZ BYPASS BYTOL FAST ITLPZ MBYPASS 时间跨度控制 ABSVER DELMAX DVDT FS FT IMIN=x,ITL3=x 设置瞬态分析迭代下限,默认值=4.0。 IMAX=x,ITL4=x 设置瞬态分析时间点迭代极限,默认值=10.0。 ITL5=x 设置瞬态分析时间点迭代极限,默认值=5000.0。 RELVAR RMAX RMIN SLOPETOL TIMERES 算法控制 DVTR LVLTIM=x 如果LVLTIM=1,则用迭代次数控制时间步长;如果LVLTIM=2,则用截断误差控制时间步长;如果METHOD=GEAR和MAXORD>2,则LVLTIM的默认值=2。 MAXORD=x 如果采用GEAR的变阶方法,设置积分法的最大阶数,其值必须在2和6之间,默认值=2。 METHOD=name 设置程序所用的数值积分方法,可为GEAR法或TRAPEZOIDAL法(梯形法),默认值=TRAPEZOIDAL。 MU,XMU 输入,输出控制 INTERP ITRPRT UNWRAP