资源描述
元件描述语句
1.1 R、L、C 元件描述语句
元件语句一般由元件名、元件所连接的电路节点号和元件参数值组成。元件在输入中以一行表示,该行不能以“.”开始。语句中的第一个字母是关键字,它
确定了该元件的类型。
一 般形 式: elname <node1 node2...nodeN> <model reference> <pnamel=val1> <pname2=val2> <M=val>
或 elname <node1 node2...nodeN> <mname> <val1 val2...valn>
其中:
elname: 元件名, 是一个带有一个关键字母的不超过15个字符的字符串。
HSPICE 中表示元件的关键字母的含义:
C-电容 K-耦合互感
L-电感 R-电阻
T-无损耗传输线 U-有损耗传输线
node1... 节点名,用来说明元件所连接的节点,节点名的第一个字符必须是字母,整个字符串不超过16 个字符(连第一个字母在内)。=()′ [ ]等符号不能出现在节点名中。
mname: 模型参考名,对除了无源器件外所有元件都是必需的。
<model reference> 当基本元件参数不能充分描述时,调用相应的模型来描述。
pname1... 元件参数名,用来标明一些元件的参数值。
val1... 赋于的参数值或模型节点,这些数值可以是数值,也可以是代数表达式。
M=val 元件的倍增因子。
二. 电容、电感和电阻
(1) 电容:
一般形式: CXXX n1 n2 <mname> capval <TC=TC1<,TC2>>
+ <SCALE=val> <IC=val> <M=val> <w=val>
+ <L=val> <DTEMP=val>
或 CXXX n1 n2 <mname> C=val <TC1=val>
+ <TC2=val> <IC=val> <M=val> <W=val> <L=val>
+ <DTEMP>
或 CXXX n1 n2 C=equation CTYPE=0 or 1
例: C1 3 2 10U IC=3V
CBYP 13 0 1UF
C2 1 2 CMOD 6PF
若系统中所用电容是非线性的,则其一般形式是:
CXXX n1 n2 POLY C0 C1 C2 ... <IC=val>
电容值=C0+C1*V+C2*V**2+…
(2) 电感:
一般形式:LXXX n1 n2 <mname> Lval <TC=TC1<,TC2>>
+ <SCALE> <IC=val> <M=val> <DTEMP=val>
或 LXXX n1 n2 <mname> L=val <TC1=val>
+ <TC2=val> <SCALE=val> <IC=val> <M=val> <DTEMP>
或 LXXX n1 n2 L=equation LTYPE=0 or 1
例: LLINK 42 69 1UH
LSHUNT 23 51 10U 0.001 0 15 IC=15.7MA
LH8 5 80 LMOD 2MH
若系统中所用电感是非线性的,则其一般形式是:
LXXX n1 n2 POLY L0 L1 L2 ... <IC=val>
电感值=L0+L1*i+L2*i**2+…
在非线性电容和电感的表达式中,POLY 表示其中的数值 C0,C1,C2…(和
L0,L1,L2…) 是描述元件值的多项式系数。 电容值为元件两端电压 V 的函数,
而电感值则为流过电感的电流i 的函数,故有上述的表达式:
电容值=C0+C1*V+C2*V**2+…
电感值=L0+L1*i+L2*i**2+…
(3)电阻的写法: t+ N# Y0 a5 s8 G, N% m4 U
/ m P/ z' Z# c电阻也可以在后面加AC参数,如:' q$ C- G4 {# j+ t
Rxxxx 9 8 1 AC=e10; c' E1 ~. m" @9 C3 ^
定义了直流电阻1欧姆,交流电阻为1e10欧姆。电容和电感就没那么多鸟事情了。,
例如:R1 1 2 1K * 电阻R1接在节点1和2之间,阻值1K
三、 电源描述语句
HSPICE中提供了一些供激励用的独立源和受控源。电源描述语句也由电源名称的关键字、连接情况和有关参数值组成。描述电源的关键字含义为
V: 独立电压源 I: 独立电流源
E: 电压控制电压源 F: 电流控制电流源
G: 电压控制电流源 H: 电流控制电压源
一. 独立电压源 V 和独立电流源 I
一般形式:VXXX n+ n- <<DC=>dcval> <tranfun >
+ <AC=acmag,<acphase>>
或 IYYY n+ n- <<DC=>dcval> <tranfun >
+ <AC= acmag,<acphase>>
其中:
VXXX: 独立电压源名。必须以“V”开始,后面字符串不得超过15个字符。
IYYY: 独立电流源名。必须以“I”开始,后面字符串不得超过15 个字符。
n+/n-: 电源的正负节点, 电流源的电流正方向是使电流从 n+节点流出,经过电流源流入 n-节点。正的电压源是使电流从 n+节点流出,通过电压源流入 n-节点。注意电源不必接地。若将零值的电压源接到电路某支路中,这样可得到流经该支路的电流值。零值电压源就是短路线,所以不影响电路的工作。
DC: 电源直流值
tranfun: 电源的瞬态功能
AC: 表示电源用来作交流小信号分析
acmag: 交流幅度
acphase: 交流初相位(缺省值为 0.0)
M: 电流源并联数(缺省值为1.0)
基于上面的语句格式,HSPICE 规定有七种独立电源:
1. 直流源
一般形式:VXXX n+ n- <<DC=>dcval>
IXXX n+ n- <<DC=>dcval>
例 V1 2 0 DC=5v
V1 2 0 5v
I1 3 0 DC=3mA
I2 3 0 3mA
2.正弦波信号
V1 1 0 SIN 0 1 1K *一个正弦波信号源在1和0之间,偏移0,振幅1V,频率1K
四、半导体器件描述语句
电路中每个半导体器件也和上述的元件一样需用器件语句来描述。 每个器件描述语句的第一字母是代表某种器件的关键字, 这一节中所涉及的关键字的含义为:
D:晶体二极管 Q:双极型晶体三极管
J:结型或MES 场效应晶体管 M:MOS 场效应管
1.MOS 场效应管
一般形式:MXXX nd ng ns <nb> mname <L=val> <W=val>
+ <AD=val> <AS=val> <PD=val> <PS=val> <NRD=val>
+ <NRS=val> <RDC=val> <RSC=val> <OFF>
+ <IC=vds,vgs,vbs> <M=val> <DTEMP=val> <GEO=val>
+ <DELVTO=val>
或 MXXX nd ng ns <nb> mname lval wval ...
或 .OPTION WL
MXXX nd ng ns <nb> mname wval lval
其中:
MXXX: MOSFET 元件名,必须以“M”开头,后面最多跟 15 个字符的字符串。
ng, ns, nd: 分别是 MOSFET 的栅、源和漏的节点名。
nb: MOSFET 衬底节点名,它可以通过模型语句中的 BULK 参数来加以定义。
mname: MOSFET 的模型参考名
L: MOSFET 的沟道长度,缺省值为 DEFL。
W: MOSFET的沟道宽度,缺省值为 DEFW。
AD: 漏扩散区面积
AS: 源扩散区面积
PD: 漏结的周长
PS: 源结的周长
NRD: 用以计算漏极寄生串联电阻的漏扩散区等效方块数。
NRS: 用以计算源极寄生串联电阻的源扩散区等效方块数。
RDC: 漏极与连线的接触电阻。
RSC: 源极与连线的接触电阻。
OFF: 表示在进行直流分析时在器件上不加初始条件,缺省值为
ON。这个规定不适用于耗尽型器件。
M: 多重 MOSFET 模拟时的倍增因子,这个因子将对 MOSFET 的沟道宽度、二极管反向漏电、结覆盖电容和寄生电阻发生影响,缺省值为1.0。
vbs: MOSFET衬底与源极之间的初始电压。
vds: MOSFET 漏极与源极之间的初始电压。
vgs: MOSFET 栅极与源极之间的初始电压。
DTEMP: 元件温度与电路温度之间的差额,缺省值为 0.0。
GEO: 在ACM=3的情况下源漏分配选择设置。
DELVTO: 零偏压下的阈值电压漂移量,缺省值为 0.0。
MOSFET模型中的电流方向规定:
五. 数值比例因子
HSPICE 中的数值可以是整形数、浮点数。一个整形数或浮点数后跟随一个整形指数(如 1e-14,2.65e3,但不能是 1e-3pf)或者一个整形数或浮点数后跟随一个以下列出的数值比例因子:
MI=25.4E-6 FT=.305 DB=20lg10 F=1e-15
P=1e-12 N=1e-9 U=1e-6 M=1e-3 T=1e12
G=1e9 MEG=X=1e6 K=1e3
重要语句
1.瞬态分析.TRAN
瞬态分析是与时间有关的电路特性分析。HSPICE 在进行瞬态分析时首先执
行直流工作点分析,并以此为初始条件开始进行瞬态分析,除非在.TRAN 语句中
也包含了UIC 参数,则.TRAN语句进行瞬态分析时,从.IC 语句中规定的节点电
压开始进行。值得注意的是,对于振荡器电路或带有反馈的电路,因为其没有稳
态工作点,所以在瞬态分析时,必须把反馈回路打断,这样瞬态分析开始前才能
进行直流工作点计算。
.tran 1ns 100ns 0.5ns *! j2 I/ x6 N) ?# p! {( X, Q步长1ns,从0.5ns扫描至100ns
2.直流扫描分析 .DC
(1)双参数直流扫描分析格式1格式 (适用于两个电压源或电流源)
.dc 参数1 START1 END1 STEP1
+ 参数2 START2 END2 STEP2
例: .DC V1 0 5 0.1 V2 0 5 1
(2)双参数扫描格式2 (参数2是使用 .PARA 语句自定义的参数)
.DC 参数1 起始1 结束1 步长1
+ SWEEP 参数2 起始2 结束2 步长2
例: .DC VG 0 5 0.1 SWEEP WX 1.5U 3U 0.5U
(3)双参数直流扫描格式3格式 (适用于非等间隔扫描)
.DC 参数1 起始1 结束1 步长1
+ SWEEP 参数2 POI 点数 值1 值2 值3
(4)双参数直流扫描格式4
.DC 参数1 起始1 结束1 步长1
+ SWEEP TEMP 起始2 结束2 步长2
.DC 参数1 起始1 结束1 步长1
+ SWEEP TEMP POI 点数 值1 值2 值3
3.交流小信号分析.AC
交流小信号分析时,HSPICE将交流输出变量作为指定频率的函数来加以分析计算。分析时 HSPICE 首先求直流工作点,作为交流分析的初始条件,这时HSPICE 将电路中所有非线性器件变换成线性小信号模型,电容和电感则被换算成相应的导纳值:YC=jwc 和 YL=1/jwl。 HSPICE 允许电阻有不同的直流和交流值。若在电阻描述语句中定义了AC=<value>,则在直流工作点计算时用直流电阻值,但在交流分析时则用交流电阻值。这对于分析运算放大器特性十分便利,因为在进行运放直流工作点计算时,可以用一个低阻值直流电阻构成反馈式单位增益结构来进行计算,而在运放交流分析时,可以用一个高阻交流电阻构成开环形式来进行交流分析。
交流分析允许对下述参数进行扫描分析:
(a)频率
(b)分量
(c)温度
(d)模型参数
(e)随机分布(蒙特卡罗分析)
(f)优化及交流设计分析
.AC 语句形式视具体的应用情况而定,下面给了几种应用情况的语句形式:
(1)单/双扫描
.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 var1 START=<param_expr1> STOP=<param_expr2>
+ STEP=<param_expr3>
或 .AC var1 START=start1 STOP=stop1 STEP=incr1
(2)参数化扫描:
.AC type np fstart fstop <SWEEP DATA=datanm>
或 .AC DATA=datanm
(3)优化扫描
.AC DATA=datanm OPTIMIZE=opt_par_fun
+ RESULTS=measnames MODEL=optmod
4.直流工作分析语句.OP
当输入文件中包含了一个.OP 语句时,HSPECE 软件将去计算电路的直流工
作点, .OP 语句也可能在进行瞬态分析时产生一个直流工作点作为瞬态分析的初始条件。此语句在进行电路直流工作点计算时,电路中所有电感短路,电容开
路。值得注意的是,在一个 HSPICE 模拟中只能出现一个.OP 语句。
一般形式: .OP < format > < time > < forme > < time >
其中:
format 是下述关键字中的任何一个(只有第一个自号有效的,缺省值为 ALL):
ALL 提供全部工作点值,包括电压、电流、电导和电容等值。
BRIEF 每一个元件都产生一行电压、电流和功率值,电流单位是 mA ,功率单位是 mw。
CURRENT 提供一种带有元件电流和功率的电压表格样式的简明结果。
DEBUG 此参数同上只有在模拟结果不收敛的情况下才由程序来调用。并能调整打印出收敛节点的新、老电压以及不收敛的程度(容差),它也能打印出带容差值的不收敛元 件。
NOTE 禁止节点和元件打印输出,但允许执行时附加分析规定 。
VOLTAGE 仅提供电压输出表格形式。
对上述关键字有一点值得特别注意,这些关键字互相不兼容,同一时间只能
用一个关键字定义。
time这个参数直接跟在 All、Voltage、Current 或DEBUG等参数后面 ,用来确定这些参数值输出打印的时间 。
下面给出两个进行直流工作点分析的例子:
例 1:.OP .5NS CUR 10NS VOL 17.5NS 20NS 25NS
在例 1 中计算了直流工作点,并要求在 0.5ns 时打印出所有直流工作点值,
此外电流在 10 ns,电压在17.5 ns、20ns 以及 25 ns 时进行瞬态分析。
引用库文件
.INC /路径/AMI06N.M
M1 ND NG GND GND AMI06N W=1.5U L=0.6U
5.注释
用 * 或者 $, * 必须写在行首, $ 可以写在语句后,但与语句间至少要空一格。, u7 Q
6.常量
| K' G' f+ L 常量有 f、p、n、u、m、k、meg、g。紧跟在数字后面即可,如: c1 1 2 10p
7.全局节点
用.GLOBAL定义,如: .GLOBAL node1 node2 node3
' ^+ O. m4 Y" W! H5 K. b; e8 i( E 定义了三个全局节点。另外,节点 0、GND、GND!、GROUND都指全局的地电位。
8.模拟程序电路网表的编写
包含部分:后面为对应的指令
0) 标题 -- .title (可有可无)
1) 器件模型 -- .lib 、.inc
2) 全局变量声明 -- .global例如 .global vdd 全局变量声明,一般是vdd
3) 参量声明 .param参量声明,可以是个扫描用的可变参量,也可是像宏一样的声明。比如
.param vsupply=2.53.5) .data c_tab …… .enddata(可能有)参量表,扫描参数时用到
4) 直流工作点分析 -- .op (这个东西不一定要有,与.UIC文件有关,可以自己看,但是一般要写)
5) 模拟类型(可以用多种或一种,在看波形时就知道区别了),
a.有瞬态分析 .tran ,
b.有直流特性分析 .dc ,
c.有交流特性(频域分析)分析 .ac 。
6) 电路网表 ,利用已经建立的子电路搭建一个测试电路,并且声明好电路的激励。实际就是将节点连接正确。
7) 测量语句,利用 .measure 来测量一些参数,比如延迟,上升延时,下降延时等。
8) .end 结束语句。
子电路的开始结束: .subckt -- .ends
参量网表: .data c_tab -- .enddata
顶层电路: -- .end (不用开头)
" F; A7 O5 R* T8 9.使用库
, j7 r; R# H% s4 j! ^7 r8 b. E6 L+ E .lib 'C:\path\to\the\lib\mylib.lib' L18U18V_TT
10.引用文件
5 S9 m5 u4 q+ D0 O/ K0 ]% v .include "filename.sp"
6 v0 B/ i- o% ?8 x) \- ?3 ? 这样做相当于把那个文件整个粘贴过来。
11.定义参数
.param wp=0.72u,wn=0.36u,lm=0.18u/ L; C8 E; I+ ]% x- R' G4 {
然后就可以在下面用wp、wn、lm来表示这些数值了。
, p) s3 `1 Q4 u. ~- S
12.子电路的写法! r$ `9 f; w k; p$ n/ y
* }7 L7 k8 X# m .SUBCKT SUBNAME node1 node2 ……5 G/ z4 D) @# a* w; S( Y: f
*电路描述
! _+ \# ?- F' E: l" U; g. L' F .ENDS SUBNAME) R* @+ `8 T' g( E6 b
展开阅读全文