Hspice语言学习总结 -

更新时间:2023-12-03 19:46:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

HSpice语言学习总结

第一讲:《SPICE》概述

(1) 元器件模型

构成器件模型的方法有两种:

? 行为级模型—“黑匣子”模型

例如IBIS模型和S参数,最新的是Verilog-AMS模型和VHDL-AMS模型

精度较差,一致性不能保证,受测试技术和精度的影响。

一般应用到高频、非线性、大功率等大型电路设计 ? 等级(LEVEL)模型

例如Hspice便是利用这种模型 精度较高

一般应用于中小型电路的IC设计 (2) LEVEL模型

② LEVEL1—LEVEL3:线性模型或低阶模型,可

直接进行计算或估算。 ②流片工厂提供的模型,如Level 49和Mos 9、EKV等,无法直接进行计算或估算,需要用电路仿真软件进行仿真,以便得到精确的结果。如Hspice

③ Hspice提取模型,是利用提取元件库的形式.lib,

元件库一般由工厂提供

(3) 集成电路特征线宽

微米: Micrometer: >1.0um 亚微米:0.8um 0.6um

深亚微米:0.5um 0.35um 0.25um 超深亚微:0.25um 0.18um 0.13um 纳米:0.09um (90nm) 0.07um (70nm)

Moor 定律:每一代(3年)硅芯片上的集成密度翻两

番。加工工艺的特征线宽每代以30%的速度缩小。 (4) Hspice的使用流程

(5) Hspice网表输入格式

----------------------------------------------------------------------------------------------------------------------- 第二讲 HSPICE网表的语法

(1)

? ? ?

文件名格式:

工具的多少:Cadence>>Hspice 精度:一般Hspice>Cadence 适用对象:Cadence 用于RF设计较好,Hspice更适合模拟IC设计 ? 目前应用建议:用Cadence布线布图以及版图

设计,Hspice仿真

(2) 输入行格式:

◆第一个语句必须是标题行,最后一个语句必须是.END语句;

? 标题语句和结束语句中间语句无任何先后次

序;

? 不区分大小写,无上标和下标(忽略) ? 语句、等式的长度不能超过256字符; ? 续行用“+”表示。 (3) 分隔符:

①分隔符可以为: tab键,空格,逗号,等号,括号 ②元件的属性用冒号来分割,例如 M1:beta

③用句点来表示隶属关系,例如X1.A1.V”表示电路X1的子电路A1的节点V

(4) 节点

① 结点标识可以长达1024个字符 ② 结点数字开头的0被忽略

③ 跟在以数字开头的结点编号后的字母被忽略。 ④ 结点名可以由以下任何字符打头:# _ ! %

⑤ 结点可以用.GLOBAL语句声明为全局调用。如声明节点1为全局调用,.GLOBAL 1

⑥ 结点0、GND、GND!和GROUND均指的是Hspice全局的地。

(1.0)后缀名:.sp。产生方法:可以用任何一个文本编辑器产生,只需更改后缀名

? 文件名:必须为英文,以字母打头,长度不超

过256个字符

? 放置目录:要放置于全英文目录下 ? 输入网表文件不能压缩⑦HSPICE要求每个节点对地均要有直流通路。当这个条件不满足时,通常是接一个大电阻使该悬浮节点具有直流通路。

⑧每个节点至少应连接两个元件,不能有悬空节点存在

(5) 数值及比例因子 数字表示:

a) 数字可以用整数,如12,-5; b) 浮点数,如2.3845,5.98601;

c) 整数或浮点数后面跟整数指数,如6E-14,

3.743E+3;

d) 在整数或浮点数后面跟比例因子,如10.18k

比例因子:为了使用方便,它们用特殊符号表示不同的数量级:

e) T=1E+12,G=1E+9,MEG=1E+6,K=1E+3,M=1E-3,

U=1E-6,N=1E-9,P=1E-12,F=1E-15,DB=20lg10 ,MIL=25.4E-6(千分之一英寸) (6) 单位及关键字

单位:以工程单位米、千克和秒(M,Kg,S)为基本单位。由此得到的其它电学单位可省略。如10,10V表示同一电压数。1000Hz,1000,1E+3,1k,1kHz都表示同一个频率值。同样,W、A等标准单位在描述时均可省略。单位可以省略,例如: C1 1 2 10P

二、标题、结束及注释语句

(1) 标题语句: .TITLE 语句 形式:

1: .TITLE 2: 例如:可以为.title a simple ac run

更常见的是第二种形式:a simple ac run 注意:如果没有标题,第一行空出。

(2) 结束语句 .END 语句

形式: .END

在 .END语句之后的文本将被当作注释而对模拟没有影响。

(3) 注释语句

一般形式:*

$ 注释标识: “*”或“$”。“*”打头的注释放在每行开头,而“三、电路描述语句$”打头的注释紧跟语句之后。

(1)元件描述的基本格式

HSPICE中元件的属性由 器件名,器件位置,器件类型,器件参数值等来定义。格式为: 名称 器件所连接的节点 器件的类型 参数值 例: 1A SIMPLE AC RUN 标题 2V1 1 0 DC 10 AC 1 3R1 1 2 1K 4R2 2 0 1K 电路描述语句

5C1 2 0 .001U

6.OPTIONS LIST NODE POST

7.OP

8.AC DEC 10 1K 1MEG 命令语句

9.PRINT AC V(1) V(2) I(R2) I(C1) 10.END 结束语句

(1)无源器件1-电阻

一般形式:

RXXX n1 n2 Rvalue TC=TC1,TC2 温度系数的缺省值为0,0

注释:R=R0*[1+TC1*(T-T0)+TC2*(T-T0)2]

T0为室温,25或27℃ 例: R1 1 2 100k

( 2 )无源器件RC1 12 17 2- 电容 1k

TC=0.001, 0

一般形式:

CXXX n1 n2 Cvalue TC=TC1,TC2 温度系数的缺省值为0,0

注释:C=C0*[1+TC1*(T-T0)+TC2*(T-T0)2] 例: C1 1 2 10u

CP 12 17 1p TC=0.001, 0

? 非线性电容:

CXXX n1 n2 POLY C0 C1 C2 ... 电容值=C0+C1*V+C2*V**2+… ,V为电容两端的电压

(3)无源器件3-电感

? 一般形式:

LXXX n1 n2 Lvalue TC=TC1,TC2 温度系数的缺省值为0,0 例: L1 1 2 10u

LP 12 17 1u TC=0.001, 0 ? 非线性电感:

LXXX n1 n2 POLY L0 L1 L2 ...

电感值=L0+L1*I+L2*I**2+… ,I为流过电感的电流

(4) 无器源器件

4-互感(电感)耦合

一般形式: KXXX LYYY LZZZ Kvalue KXXX LYYY LZZZ K=value 两耦合电感的名字: LYYY 和LZZZ 耦合系数: K , 0

In: 端口1 的(+); refin:端口1 的(-)节点;

Out:端口2 的(+); refout:端口2的(-) 节点。 Z0: 特征阻抗。

例子:T1 1 0 2 0 Z0=50 TD=10NS

T2 1 3 4 6 Z0=200 F=4.5MEGHz NL=0.5

T3 1 2 3 4 Z0=120 F=1.5MEGHz (NL=0.25)

(6) 无源器件6-有损耗传输线

均匀分布RC传输线一般形式:

UXXX N1 N2 N3 MNAME L=LEN 节点:N1,N2和N3,其中N3 是连接到电容的节点;MNAME:模型名称。

LEN:RC 传输线长度(m);

LUMPS: 传输线中所采用的集总分段数目

例: U1 1 5 0 URCMOD L=50U

URC2 1 10 4 UMOPL L=100U N=4

有源器件

? 晶体二极管(D)

? 双极型晶体三极管BJT(Q)

? 结型场效应管JFET或金属半导体场效应管

MESFET (J) ? MOS场效应管(M)

晶体二极管

? (1) 晶体二极管(D)

只往一个方向传送电流的元件。 单向导电特性:电流由正极流向负极 决定二极管性能的因素:

? 二极管面积:决定反向饱和电流,寄生电阻等 ? 掺杂浓度及材料:导通电压等

? 温度:影响反向饱和电流,势垒电容等

(二)一般形式:

DXXX nplus nminus mname + + 注释:

? DXXX:二极管元件名,必须以D开头,后面最

多跟15个字符。

? nplus/nminus: 二极管的正端(阳极)和负端(阴

极)

? mname: 二极管模型名 (三)一般形式:

DXXX nplus nminus mname + + 注释(续):

? area:二极管面积,它定义了饱和电流,电容

与电阻值。可以写为area=???也可以直接写为???,缺省值为1.0;若不定义area,用定义

W(二极管宽度)和L(二极管长度)来代替也可以,area=W*L

(四)一般形式:

DXXX nplus nminus mname + + 注释(续):

? PJ:二极管周长,PJ=2(L+M)。

? WP/LP: 寄生多晶电容的宽度/长度,缺省值为

0

? WM/LM: 寄生金属电容的宽度/长度,缺省值

为0

(五)一般形式:

DXXX nplus nminus

mname + + 注释(续):

? OFF:规定在进行直流分析时忽略初始条件,

缺省值为ON。

? IC: 瞬态分析的初始条件

? M: 多重二极管模拟时的倍增因子,缺省值为

1

DTEMP:元件温度与电路温度之间的差额,缺省值0

(六)一般形式:

DXXX nplus nminus mname + + 例子:

DBRIDGE 6 7 DIODE 1

DCLMMMP 3 GND DMOD 3 IC=0.2

第三讲 HSPICE网表的语法(续) 双极型晶体三极管(1)

决定三极管性能的因素:

? 三极管面积:决定电流,电容,寄生电阻等 ? 掺杂浓度及材料:导通电压等

晶体二极管一般形式(回忆) 一般形式:

DXXX nplus nminus mname +

+ 注释:

1:元件名称 2:节点 3:几何参数 4:初始值设定 5双极型晶体三极管:温度设定

(2)

一般形式:

QXXX nc nb ne mname +

+ + 注释:

? QXXX:三极管元件名,必须以Q开头,后面

最多跟15个字符。

? nc/nb/ne/ns: 三极管的集电极、基极、发射极

以及基底节点

mname: 三极管模型名

avalue:三极管面积。也可以用areaA=???、areaB=???以及areaC=???来定义。其中areaA, areaB以及areaC分别为发射区,基区,集电区的面积倍增因子。缺省值为1.

OFF:规定在进行直流分析时忽略初始条件,缺省值为ON。

IC: 瞬态分析的初始条件两种表达方式。

M: 多重三极管模拟时的倍增因子,缺省值为1 DTEMP:元件温度与电路温度直接的差额,缺省值0 (五)一般形式:

QXXX nc nb ne mname

+

+ + 例子:

Q11 CX BX EX QPNP AREAA=1.5 AREAB=2.5 AREAC=3.0

Q22 10 18 12 QMOD IC=0.5, 5.0 Q33 11 265 4 有源器件 20 MOD

结型场效应管JFET或MESFET(1) 决定JFET性能的因素:

? 面积:决定电流,电容,寄生电阻等 ? 掺杂浓度及材料:导通电压等 ? 温度:影响电流,势垒电容等

MESFET:将金属半导体接触势垒(肖特基势垒)代替了PN结作为栅极 结型场效应管JFET或

MESFET(2

)

一般形式:

JXXX nd ng ns mname +<< AREA=value; AREA>| W=val L=val >

+ +

注释:

? JXXX:元件名,必须以J开头,后面最多跟15

个字符。

? nd/ng/ns/nb: 漏极、栅极、源极以及基底节点 ? AREA:面积倍增因子。可以用AREA=???或者

直接???来表示。或者用栅极宽W和栅极长L代替。缺省值为1.

? OFF:规定在进行直流分析时忽略初始条件,

缺省值为ON。

? IC: 瞬态分析的初始条件,两种表达方式。 一般形式:

JXXX nd ng ns mname +<< AREA=value; AREA>| W=val L=val >

+

+

例子:

J11 DX GX SX JM1 AREA=1.5

J22 10 18 12 JMOD IC=0.5, 5.0 MOS场效应管(1)

决定JFET性能的因素:

? 面积:决定电流,电容,寄生电阻等 ? 掺杂浓度及材料:导通电压等 ? 温度:影响电流,势垒电容等

MOS场效应管(2) 一般形式:

MXXX nd ng ns mname

+ + + 注释:

? MXXX:元件名,必须以M开头,后面最多跟

15个字符。

? nd/ng/ns/nb: 漏极、栅极、源极以及基底节点 ? L/W:沟道长度和宽度;

? AD/AS:漏扩散区和源扩散区的面积; PD/PS:漏结和源结的周长

? NRD/NRS:用以计算漏、源极寄生串联电阻的

漏扩散区等效方块数

? RDC/RSC:漏极、源极与连线的接触电阻 ? OFF:规定在进行直流分析时忽略初始条件,

缺省值为ON。

? IC: 瞬态分析的初始条件。

? M: 多重管模拟时的倍增因子,缺省值为1 ? DTEMP:元件温度与电路温度直接的差额,缺省

值0

? 一般形式:

MXXX nd ng ns mname +

+ + 例子:

M11 D G S B MM1

M22 10 18 12 1 MODM L=0.5 W=2U (0.5U 2U)

M33 11 265 4 1 MOD OFF 10U 5U 2P 2P

电路描述语句

激励源

? 独立源—独立电压源(V)和独立电流源(I) ? 源控源

? 电压控制电压源(E) ? 电流控制电流源(F) ? 电压控制电流源 (G) ? 电流控制电压源(H)

直流源:一般形式:

VXXX n+ n- value> IXXX n+ n- value> 例子:

V11 2 0 DC=5V V11 2 0 5V

I11 3 0 DC 3mA I11 3 0 3mA 交流源:一般形式:

VXXX n+ n- AC<=>> IXXX n+ n- AC<=>> 例子:

V11 2 0 AC=10V 90 V11 2 0 AC 10V 90 I11 3 0 AC=3mA 0 I11 3 0 AC 3mA 脉冲源:一般形式:

VXXX n+ n- PULSE

IXXX n+ n- PULSE 例子:

VIN 3 0 PULSE -1 1 2ns 2ns 2ns 50ns 100ns

正弦源:一般形式:

VXXX n+ n- SIN V0 Va

IXXX n+ n- SIN I0 Ia

注释:

V0:初始值; Va:峰值;freq:频率;td:延迟时间;θ:阻尼因子;φ:相位

指数源:一般形式:

VXXX n+ n- EXP V0 Va

IXXX n+ n- EXP I0 Ia 注释:

V0:初始值(V0Va,先下降后上升) ;td1:下降(上升)延迟时间;t1:下降(上升)时间常数;td2:上升(下降)延迟时间;t2:上升(下降)时间常数。

例子:

VIN 3 0 EXP 0 4 2ns 30ns 60ns 40ns

分段线性源:一般形式:

VXXX n+ n- PWL t1 V1

IXXX n+ n- PWL t1 I1 注释:

tn Vn/In:时间—电压/电流对;R:是否周期重复 td:重复时延迟时间

例子:

VIN 3 0 PWL 60n 0V 80n 5V 120n 5V 140n 0V

+160n 0V 180n 5V R 300n

直流源DC,交流源AC,脉冲源PULSE,正弦源SIN,指数源EXP,分段线性源PWL,单频调频源SFFM,单

单频调频源:一般形式:

VXXX n+ n- SFFM V0 Va >>

IXXX n+ n- SFFM I0 Ia >>

注释:

V0/I0:电压/电流初始值 ;Va/Ia:电压/电流峰值 fc/fs:载频/调频;mdi:调制指数 例子:

VIN 3 0 SFFM 0.01V 0.4V 100MEG 0.3 20K 表达式:

单频调幅源:一般形式:

VXXX n+ n- AM sa oc fm fc td

IXXX n+ n- AM sa oc fm fc td

注释:

sa:调制信号的幅度;Oc:偏移常数 ;fm/fc:调频/载频;td:信号开始前的延迟时间 例子:

VIN 3 0 AM 10 1 100 1K 10n 表达式:

频调幅源AM

第四讲 HSPICE网表的语法(续)

源控源:一般形式:

E(FGH)XXX N+ N- NC+ GAIN_VALUE

NC-

说明:

? HSPICE 中具有的四种电压和电流控制元件,

通称为E、F、G 和H 元件。

? 在HSPICE 中用这些控制元件能够模拟MOS

晶体管、双极型晶体管、隧道二极管和可控硅整流器,此外还能对一些功能块,诸如运放、加法器、比较器、压控振荡器、调制解调器和开关电容电路等进行模拟。 ? 控制元件有线性和非线性两类。非线性以及延

迟等特性我们不再详细讲述

元件与激励源描述小结: 一般格式:

名称 节点 <模型名称>

? 无源元件的描述(R、C、L、K、T)

R(C,L,K,T) n1 n2 value RB 2 3 10K RC 4 0 2K rbe 3 0 1e6 rce 4 0 2k Cbe 3 0 1n Cbc 3 4 2u Commands… .end 例3::CMOS反相器。请写出本电路的网表(不写命令行,用…省略)。其中VCC=5V,VIN为脉冲源,低电压0.2,高电压4.8,延迟时间2ns,上升下降时间为1ns,脉宽5ns,周期20ns。PMOS,NMOS,沟道长度为1um,宽度20us。

? 有源元件的描述

D(Q,J,M) n1 n2 (n3) mname

parameter:几何参数,初始值的设定,温度设定 元件与激励源描述小结

? 独立源的描述

V(I) n+ n- type value

type:DC, AC, PULSE SIN EXP PWL SFFM, AM value:电压或电流值,时间,周期等

? 源控源的描述

E(FGH) n+ n- nc+ nc- value 例1:一个简单的晶体管放大电路,所有的元件、激励源、它们的值或模型以及各个节点的定义均已标在图中,请写出本电路的网表(不写命令行,用…省略)。其中,RC的温度因子TC1=0.02,TC2=0

网表的格式: Title

Elements and sources Commands .end

a single NPN common-emiitter AMP VBB 1 0 0.87 VCC 5 0 10

VS 2 1 AC 1

RB 2 3 10K TC=0.02, 0 RC 4 5 2K

Q1 4 3 0 Q2N222 Commands… .end 例2:晶体管放大电路的等效电路。请写出本电路的网表(不写命令行,用…省略)。 Small signal equivalent circuit

VS 2 0 AC 1 *VCCS with a gain gm=1

Gb 4 0 3 0 1

an inverter circuit VCC vcc 0 5

VIN IN 0 PULSE 0.2 4.8 2n 1n 1n 5n 20n M1 out in vcc vcc PCH L=1U W=20U M2 out in 0 0 NCH L=1U W=20U CLOAD out 0 0.75p

*.MODEL PCH PMOS LEVEL=1 *.MODEL NCH NMOS LEVEL=1 …COMMANDS .END

? 子电路描述语句

子电路描述一般形式:

.SUBCKT(.MACRO) SUBNAME N1 < N2 …>

具体电路描述

.ENDS 注释:

子电路是以 .SUBCKT 或 .MACRO 开头,以 .ENDS 结束的一组语句。子电路可嵌套其他子电路。

SUBNAME:子电路模型名。

N1,N2…:子电路外部的节点名称。

.ENDS:结束语句。只有当二次以上嵌套时才后跟子电路模型名。

子电路调用语句:

Xnnn N1 SUBNAME 注释:

子电路调用时,可以将子电路看成是以X为关键字的器件。

Xnnn:子电路名称。

N1,N2…:子电路外部的节点名称,与子电路描述语句的外部节点一一对应,但名称不一定相同。

SUBNAME:子电路模型名。

注意:子电路中的节点号,器件名,模型的说明均是局部量,

可以和外部的相同

子电路使用举例

CMOS反相器组成的三级反相器链网表: …

.SUBCKT INV IN OUT

Mn out in 0 NMOS 子电路描述 Mp out in vdd PMOS .ENDS

X1 IN 1 INV X2 1 2 INV 子电路调用 X3 2 OUT INV CL OUT 0 1PF ……

电路描述语句:元件的模型

有源元件的描述:D(Q,J,M) n1 n2 (n3) mname

三极管放大电路网表 a single NPN common-emiitter AMP

Q1 4 3 0 Q2N222 …

.end

反相器网表

an inverter circuit … M1 out in vcc vcc PCH L=1U W=20U M2 out in 0 0 NCH L=1U W=20U *.MODEL PCH PMOS LEVEL=1 *.MODEL NCH NMOS LEVEL=1 … .END

模型描述语句

一般形式:.MODEL mname type 注释:

mname: 模型参考名,与元件描述语句的mname相同

type:用来选择模型类型。

prameter1,2…:此类模型所共有的参数值 例:

.MODEL MOD1 NPN BF = 50 IS = 1E-+13 VBF = 50 +AREA = 2 PJ = 3 N = 1.05

模型类型(全,共14种)

MOSFET模型:MOSFET模型的描述方法:

PMOS:.MODEL 模型名 PMOS

NMOS:.MODEL 模型名 NMOS

MOS场效应管的描述中都必不可少的加入了LEVEL模型。

? 第一代元件模型:LEVEL 1, LEVEL 2, LEVEL 3 ? 第二代元件模型:BSIM1模型(LEVEL13),

LEVEL28(修正的BSIM1模型),LEVEL39(BSIM2) ? 第三代元件模型:BSIM3 (LEVEL49) ? 第一代元件模型: ? LEVEL1:1968年以前,简单的MOSFET模型。

? 线性方程,可手动计算。

? 计算速度快

? 不精确,只能进行近似分析 ? LEVEL2:1969~1978年,增强型的LEVEL1模型

? 引入3/2幂次项,基于几何图

形的分析

? 适用于长通道元件~10um ? 较LEVEL1精确,但仍不能有效地进行计算机模拟

? LEVE3:1979

? 利用一阶泰勒展开取代3/2次项 ? 引入实验性方程式,为半实验模型 ? CPU时间较少,适用于沟道长

度~2um以上元件。

? 第二代元件模型:

? LEVEL13:1984年,BSIM1模型

? 使用较多的多项式描述。 ? 适用于通道长度小于2um的

entryname:将要包括的库文件段的入口名 库文件嵌套:

.LIB entryname 具体库模型的描述

.LIB ‘ file name’ MOS元件,实验参数较多 ? 偶尔造成元件行为的不易控

制。

? LEVEL28:1990年,修正的BSIM1模型

? 由Meta-software公司开发,

更加准确

? 可有效进行亚微米元件的模

? 解决了BSIM1的问题

? LEVE39:1991,BSIM2模型

? 利用数值分析的方法

? 适用深亚微米级元件的模拟,

沟道长度~0.2um以上的元件 ? 模型参数过多。

? 第三代元件模型

? LEVEL49:1995年,BSIM3V3模型,加州大学

伯克利分校推出。

? 以缩减的物理参数为主,实验

性参数为辅。

? 共有166个模型参数

? 适用于深亚微米级模拟和数

字集成电路的模拟

? LEVEL50:MOS9,飞利浦公司推出

? 有72个模型参数

? 适用于深亚微米级的模拟集

成电路的模拟

不同MOSFET模型应用场合:

? Level 1:简单MOSFET模型,常用于数字电路

的模拟,精度低、速度快

? Level 2:耗尽型MOS,10μm 器件模拟分析 ? Level 3:2μm 器件数字分析

? Level13,39,49:可进行亚微米及深亚微米模

拟电路的分析,精度高、速度慢

对电路设计工程师来说, 采用什么模型参数在很大程度上还取决于能从相应的工艺制造单位得到何种模型参数? 库文件调用及定义语句.

(.LIB语句)

库文件的使用:库文件可包含: ? 器件模型(.MODEL 语句) ? 子电路(包含.ENDS 语句) ? 有关注释语句

? 库文件调用语句(.LIB 语句)等。

使用库文件的优点:速度快、占内存少。 库文件的创建:

.LIB entryname 具体库模型的描述 .ENDL entryname 注释:

.LIB entryname:定义入口名为entryname的库。

ENDL:结束库定义语句 注意:不能包含.END语句 库文件调用: 一般形式:

.LIB ‘ file name’ entryname 注释:

filepath: 库文件所在的路径,若.lib与所运行的网表在相同目录下,则可以缺省。

filename:库的文件名。扩展名必.lib不可少。路径与文件名必须包含在双引号或者单引号里面。

entryname1

.ENDL entryname 注意:

库文件定义中嵌套调用其他库文件的入口名不能与所要定义的名字相同!可以无限嵌套。

例子:创建: .LIB CMOS1 …

.LIB ‘…/sum/cmosmodel.lib’ CMOS2 … .ENDL 调用:

.LIB ‘…/sum/MODELS.lib’ CMOS1 【.INCLUDE语句】 :

.Include ‘ file name’ 例:.include \

****************************************** 【 命令语句 】:

直流工作点分析.OP : : . op

方式:所有独立源或受控源都是直流形态,所有电感短路,电容开路。

输出:节点电压、电源电流、静态功耗、半导体器件的电流、阻抗和电容。

注意:只可以出现一次.OP语句 Task1: op run.sp

A SIMPLE AC RUN V1 1 0 10 AC 1

R1 1 2 1K R2 2 0 1K C1 2 0 .001U .OPTIONS LIST NODE POST $control options

.OP

.END 【直流扫描分析(.DC) 】: 直流扫描分析:

在指定的范围内,某一个(或两个)独立源或其他电路元器件参数步进变化时,计算电路直流输出变量的相应变化曲线。

a. 直流参数值扫描 b. 电源值扫描 c. 温度范围扫描

d. 执行直流蒙特卡罗分析(随机扫描) e. 完成直流电路优化 f. 完成直流模型特性化

一般形式: R1 1 3 100 .DC variable start stop R2 1 2 100 step R3 2 3 100

注释: R4 3 0 100 variable:要扫描的对象(如电压、电流、温度等).OPTION LIST NODE 的变量名。 .OP

start:扫描初始值。 .TF V(2) VS stop:扫描终止值。 step:扫描步进步长。 举例: .DC VIN 0.25 5.0 0.25 .DC Examples : .DC VIN 0.25 5.0 0.25 Sweep VIN from 0.25 to 5v by 0.25v increments .DC VDS 0 10 0.5 VGS 0 5 1 Sweep VDS from 0 to 10v by 0.5 incr at VGS values of 0, 1, 2, 3, 4, & 5v. .DC TEMP -55 125 10 Sweep TEMP from -55C to 125C in 10 degree C increments .DC Rx 1k 10k 0.5k SWEEP TEMP LIN 5 25 125 DC analysis performed at each temperature value. Linear TEMP sweep from 25 to 125 (5 points) while sweeping a resistor value called ‘Rx’ from 1K to 10K in .5K increments. 【直流小信号传输函数 (.TF)】: 直流传输函数:在直流工作点附近对电路进行线性化处理,然后对电路进行以下分析: ? 直流小信号传输函数(小信号增益) ? 输出变量对于输入源的增益 ? 电路输入电阻 ? 电路输出电阻 该语句特别适用于直流电路和直接耦合放大器(差动电路和运算放大器)的增益、输入电阻,输出电阻的计算 一般形式:.TF variable1 variable2 注释:

variable1:传输函数中的分子变量,一般为输出变量。

variable2:传输函数中的分母变量,一般为出入变量。

注意:每一次电路模拟中只能有一个.TF语句,若有多个,则执行最后一个

举例: .TF V(5,3) VIN

例:利用HSPICE求出节点2处的电压与输入Vs

的比值,并求出输入输出阻抗。

Task3: tf run.sp

A tf run VS 1 0 DC 10 .END tf run.lis ( small signal transfer information) 第六讲 HSPICE网表的语法(续) 直流小信号灵敏度分析.SENS 直流小信号灵敏度: 在指定的范围内,各个指定的输出变量相对于某一电路参数(如主被动元件值、独立电源等)的直流【小信号灵敏度。】

绝对灵敏度 相对。。: ? 一般形式: .SENS VO1

注释: VO:输出的支路电流或节点电压。

灵敏度分析能够帮助电路设计者了解在电路中哪些元件和模型参数对直流偏置的影响最大。据此,电路的设计者知道电路中哪些元件的作用是“关键”的,它们参数的变化都会对输出造成较大的影响,从而对

这些元件精密度的选择做出了要求。 举例:.SENS V(8) I(VOUT) 例2.7 利用HSPICE求出电压VO的灵敏度。

A SIMPLE SENS RUN

Vs 1 0 10

R1 1 2 40 R2 2 0 10

.OP .SENS V(2) .END

(Operating point information (in sens run.lis file)) 【交流分析】 交流信号:

包含幅值、相位、频率等的信号。 交流分析:

分析输出参数随频率变化规律: 频率响应

交流分析中的一些规定:

? 电阻:若包含交流电阻,则使用交流电阻。 ? 电容:阻抗为1/jwC ? 电感:阻抗为jwL

? 有源元件、非线性元件:全部转化为小信号模型。

? 直流源:全部接地。

注:交流分析与直流分析。是以激励源的类型不同来命名的。直流分析是忽略所有的交流信号,电容开路,电感短路,整个电路中只存在直流器件。交流分析是忽略所有的直流信号,电容和电阻写出阻抗形式。因此,分析要比直流分析复杂。交流分析实际上为频率响应分析

? 交流小信号分析(.AC) ? 极零点分析(.PZ)

? 交流小信号失真分析(.DISTO) ? 交流噪声分析(.NOISE) ? 噪声叠加分析(.SAMPLE) ? 交流网络分析(.NET) 【1.交流小信号分析.AC】 ? 一般形式:

.AC type np fstart fstop 注释:

type:扫描类型。 np:扫描点数

fstart/fstop:起始/终值频率

注意:电路当中必须至少含有一个独立交流源! 扫描类型type( type包含的类型 ):

? DEC :每十进制实现对np个点进行扫描,对

数坐标 ? OCT:每八进制实现对np个点进行扫描,对数

坐标)

? LIN:线性扫描,在指定的fstop-fstart频率范

围内进行线性扫描

? POI:按所列参数点表进行扫描

Expamples:

? q .AC DEC 10 1K 100MEG

? Sweep from 1KHz to 100MEGHz,with 10 points

per decade

? q .AC LIN 100 1 100HZ

? A 100 point frequency sweep from 1Hz to 100.

.AC其它形式(1) 一般形式:

.AC type np fstart fstop

+SWEEP variable start-value stop-value +increment (type np start-value stop-value)

Expamples:

q .AC DEC 10 1 10K SWEEP Cload LIN 20 1pf 10pf

对Cload的每个值进行AC分析,扫描频率为1Hz到10KHz,每10进制扫描10个点,其中Cload的值为从1pf到10pf等距离取20个点

? .AC DEC 10 1 10K SWEEP Rx POI 2 5k 15k

? .AC DEC 10 1 10K SWEEP Rx 5k 15k 5k 例:这是一个简单的RC电路,请利用HSPICE求出

当激励源的频率1KHz变化到100MHz时,节点2的电压、通过R2和C1的电流的幅值和

相位的变化。 A SIMPLE AC RUN R1 1 2 1K R2 2 0 1K C1 2 0 .001U

V1 1 0 10 AC=1 .OPTIONS LIST NODE POST .OP

.AC DEC 10 1K 1MEG

.PROBE AC V(2) VP(2) I(R2) IP(R2) I(C1) IP(C1) .END

.AC分析结果输出

【2.极/零点分析.PZ】

任何线性时不变电路网络,都可以化为线性传递函数来表示:

其中,z1…zm为网络的零点,p1…pn为网络的极点。主要是用做放大器、滤波器等非时变网络的设计

? 一般形式:

.PZ OUTPUT INPUT 注释:

OUTPUT:输出变量,可为任一支路电流或节点电压。

INPUT:输入变量,可为任一独立电压或电流源名称。

举例: .PZ V(10) VIN

例5.2 利用HSPICE对简单放大器等效电路作极/零点分析。

.PZ analysis netlist A pz run Vin 1 0 1 AC 1 Rs 1 2 1k Rpi 2 0 1k RL 3 0 1k Cpi 2 0 1n Cmu 2 3 10P

Gmu 3 0 2 0 0.04

.OPTIONS POST=2 .OP

.PZ V(3) VIN .AC DEC 5 100 100MEG

.PRINT AC VDB(3) VP(3)

.END .PZ analysis result(in dc run.lis file :

【交流小信号失真分析(.DISTO ) 】 考虑失真时: 1. 输入频率f时:输出会出现二次谐波…n次谐波(可利用它计算谐波失真特性),如失真系数可定义为谐波分量的总有效值与基波分量之比

2. 当输入频率为f1和f2时,不仅会产生各自的谐波,还会产生mf1+mf2的组合谐波(可利用它计算相互调制失真特性)

当输入信号的能量很大时,或者通俗的讲,当输入电压的幅值很大时,三极管有可能会进入饱和状态而不是放大状态,此时,三极管的输出电压的幅值就会失真,所以针对这种情况,我们选用宏观的分析方法,即大信号图解分析法。而当输入电压的幅值很小时,用宏观的分析方法也就是大信号图解法,显然结果会很不准确,所以就用小信号模型分析法。小信号模型,就是把抽象元件三极管等效为电阻,受控电流源等元件组成的二端口网络。在这样的基础上进行分析。如图是一个非常典型的三极管放大电路。当输入为小信号时,通过模拟电路的学习,知道,它有三个工作区域:截止区,放大区以及饱和区。很多的时候,我们调整其静态工作点,使其工作在线性区,从而达到让其成为放大器的目的。它的基极电流为IB,集电极电流为IC,输出工作电压为VCE,我们认为,它可以等效为这样的一个线性模型,经过计算,可以得到,输出电流IC为输入基极电流IB的贝塔倍,成线性关系。大家注意,这种线性关系,只是输入、输出特性曲线上极小的一段,是一种近似的线性,没有考虑失真的情况。很多时候,我们必须考虑失真,例如功放电路分析中。由于输入输出的非线性,(周期信号经过非线性系统,输出会产生高次谐波)当放大器输入某一频率f时,输出就会出现二次谐波,三次谐波,四次谐波等等。当输入频率为f1和f2时,不仅会产生它们的

谐波,还会产生mf1+mf2的组合谐波。在功放的推动级,这时的信号幅度已比较大,特性曲线的一段不能用直线来代替,必须考虑非线性失真。要根据输入、输出信号的大小及放大器的特性来选择合适的工作点,尽量使非线性失真达到最小,并要引入负反馈等措施来减少失真。

可计算的五个失真量:

? DIM2:相互调制失真量(与第一级谐波差额时

的失真量)。即频率量 f1-f2 相关的幅度和相位

? DIM3:相互调制失真量(与第二级谐波差额时

的失真量)。即频率分量 2*f1-f2 相关的幅度和相位

? HD2:第二级谐波失真量。即忽略 f2 时,2*f1

频率分量相关的幅度和相位。

? HD3:第三级谐波失真量。即忽略 f2 时,3*f1

频率分量相关的幅度和相位。 ? SIM2:相互调制失真量(总量)。即频率分量

f1+f2 相关的幅度和相位 一般形式:

.DISTO Rload >>> 注释:

Rload:输出负载电阻的名字,所有失真功率都是在该负载电阻上计算得出。

交流小信号失真分析,便是分析某个输出负载的输出功率失真。

注释:

inter:打印失真计算结果的频率间隔,即规定打印多少计算结果。

1.一般此频率为进行交流扫描的频率。

2.若不写,则不打印失真计算结果,可以在再用.PRINT和.PLOT语句对失真结果进行打印。

3.若只需要打印第一个和最后一个频率失真计算结果,

则inter值>分析计算的终止频率。 skw2:第二个频率f2 与标称分析频率f1 的比值。允许的范围是1e-3

f1:计算谐波失真特性

f2:可选,计算调制失真特性 refpwr:用来计算输出失真功率的参考功率,缺省值是1mw。

spwf:第二频率 F2 的振幅, 其值必须大于或等于 1e-3, 缺省值是1.0。

注意:一次电路模拟只能有一个.DISTO语句,默认执行最后一个。

例:.DISTO

RL 2 0.95 1.0E-3 0.75

第七讲:命令语句

【交流噪声分析(.NOISE) 】

? 噪声:有用信号外的某些电子干扰。 ? 噪声来源:电阻和半导体器件。

? 输出噪声:每个器件的噪声源在AC分析的每

个频率点计算出相应的噪声,并传送到一个输出节点。

电路总的输出噪声:一定的频率下,各个噪声源计算所得噪声在该点进行 RMS (均方根)相加:

注释:

I:由各个端点噪声产生的等效电流 Z:噪声源与输出之间的等效电阻 n:与电路中所有电阻、MOSFET、二极管、JFET 和BJT 有关的噪声源数目。

单位:V2/Hz

噪声的定义:1.电路总的输入噪声:一定的频率下,

总的输出噪声除以电路电压(或电流)增益或者传输函数。单位:V2/Hz

2.均一化噪声:(onoise/BW)0.5,单位: ? 一般形式:

.NOISE OVV srcnam inter 注释:

OVV:指定节点总的噪声输出电压。

srcnam:是作为噪声输入基准的独立电压源或独立电流源

inter:打印噪声分析结果的频率间隔

注意:交流噪声分析时必须进行交流小信号分析。 举例 : .NOISE V(5) VIN 10

.AC DEC 10 1 100MEG

思考:本例共计算了几个频率点的交流噪声? 例:求出图中输出节点2的噪声,频率范围1Hz~100MEGHz,20个点打印一次。

Noise run.sp : A simple noise run R1 1 2 5

C1 2 0 500pf

V1 1 0 0 AC=10V, 37 .AC DEC 10 1 100MEG .noise v(2) v1 20 .END

Output noise information (in noise run.lis file) 【噪声叠加分析.SAMPLE】

噪声叠加分析:对模拟信号数据采样的采样噪声进行分析。得到某输出节点各采样值的噪声(对各噪声的叠加)

.SAMPLE FS=freg 注释:

FS=freg:数据采样频率 【交流网络分析.NET 】

交流网络分析:进行交流小信号分析时,计算输入输出阻抗矩阵(Z矩阵) 、导纳 矩阵(Y矩阵)混合矩阵(H 矩阵)和散射矩阵(S 矩阵)的参数 单端口网络:.NET input < RIN=val>

双端口网络:.NET output input

注释:

input 交流输入电压或电流源名

output 输出端口变量 RIN/ROUT:输入输出电阻

例:.NET V(10,30) VINAC ROUT=75 RIN=50

瞬态分析:

也称为时域的暂态分析(时域分析),是指对所选定的电路节点的时域响应进行分析,即观察该节点在整个显示周期中每一时刻的波形。

瞬态分析条件:

? 电路中含有储能元件,如电容、电感等。 ? 换路的条件:电源值的升高与降低(包括接通与

断开)、电路中元件参数的改变。

? 换路定理1:在换路瞬间,电容上的电压、电

感中的电流不能突变。这就意味着瞬态分析中需要设置初始条件。

? 换路定理2:换路瞬间,电感相当于理想恒流

源I0,电容相当于理想恒压源U0 瞬态分析目的:

? 低阶电路的时间常数τ的物理意义? ? 瞬态分析的目的:电路的响应速度。 ? 电路的瞬态响应:

? 零输入响应 ? 零状态响应 ? 全响应

瞬态分析的初始条件

? 直流工作点(静态工作点) 必须配合.OP语句,以直流工作点为初始条件。

直流工作点为初始条件常常出现不收敛!

瞬态分析初始条件的设定 初始条件语句一般形式:

.IC var1=val1 <…> .DCVOLT V(node1)/node1=val1 <…>

例:

.IC V(11) = 5 V(4) = -5 V(2) = 2.2 .DCVOLT 11 5 4 -5 2 2.2

注意:.IC可以设置任意变量初始值,而.DCVOLT只能设置电压初始值。

节点电压语句一般形式:

.NODESET V(node1) = val1 或 .NODESET node1 val1

例:

? .NODESET V (12) = 4.5 V(4) = 2.23 ? .NODESET 12 4.5 4 2.33 初始条件设置的三种形式:

? ①:IC=?,描述元器件两端的初始电压。 ? 如:C1 2 0 1uF IC=2V ? ②:初始条件语句.IC

? ③:节点电压语句.NODESET(.DCVOLT)

? 优先次序:(1) IC = ... (2) .IC (3) .NODESET。 ? 如.IC 语句和.NODESET

语句共存时,.IC 语句将取代.NODESET 语句。 【 瞬态分析.TRAN 】

.TRAN TSTEP TSTOP 注释:

TSTEP:瞬态分析的步长。 TSTOP:分析终止时间。

TSTART:分析的起始时间,若不写,默认为0. 注意:瞬态分析总是从时间0开始分析,到稳态结束。但只打印TSTART到TSTOP时间段的结果。

(备注:若对于振荡电路或带有反馈的电路,没有稳态的工作点,一般用.IC语句设置初始值,或者把反馈回路打断分析,再用直流工作点作为初始值。注意,瞬态分析是从时间零开始,到时间TSTOP,仍没有结束,一直分析,但没有输出,而且瞬态分析值没有存储起来。只有在TSTART到TSTOP间隔内的计算才被储存和输出。)

UIC:①当.TRAN语句中规定了UIC参数,HSPICE不去计算初始直流工作点,而用.IC语句规定的节点电压计算电路中的初始条件。这时,要仔细设置各个节点的直流电压值。 ②当.TRAN语句未规定UIC参数时,HSPICE在瞬态分析前先计算直流工作点。这时,若有.IC语句,则仅当作求解直流工作点时相应的节点初始值。而瞬态分析忽略这些电压限制。

.TRAN分析的几种表现形式和例子 .TRAN 1NS 100NS UIC

分析和打印瞬态分析结果,从0~100ns,每1ns打印一次。忽略初始直流工作点,以.IC规定的节点电压或电流值或某个元器件两端的初始电压值作为初始条件。

.TRAN .1NS 25NS 1NS 40NS START=10NS 分析和打印10ns~25ns,步长为0.1ns;25ns~40ns,步长1ns.

.TRAN 10NS 1US UIC SWEEP TEMP -55 75 10

对温度-55, -45…~75分别进行瞬态扫描,时间从从0~1us,步长10ns。初始条件为IC规定的。

.TRAN 10NS 1US SWEEP Cload POI 3 1pF 5pF 10pF

对负载参数电容Cload为1pf,5pf以及10pf时分别进行瞬态扫描,时间从0~10pf,步长为10ns。POI代表参数列表。

例:这是一个简单的RC电路,请利用HSPICE分析各个节点的瞬态电压和流过各个元件的电流。输入V1增加了一个脉冲函数。

tran run.sp :

A SIMPLE AC RUN R1 1 2 1K R2 2 0 1K C1 2 0 .001U

V1 1 0 10 AC 1 PULSE 0 5 10N 20N 20N 500N 2U .OPTIONS LIST NODE POST .OP

.TRAN 10N 2U $仿真区域为0~2us .PRINT TRAN V(1) V(2) I(R2) I(C1) .END

注意:瞬态分析是为了得到电路的时间响应特性,因此激励源要详细描述,一般为PULSE脉冲激励,正弦激励,指数激励等。一般的交流要写出正弦激励的

形式,不然将会被忽略。

TRAN sweep information (in tran run.lis file)

V1为输入脉冲源曲线。显然,它是一个脉冲激励,幅值为5V,起始时间为10ns,上升时间为20ns,下降时间为20ns,脉冲宽度为500ns,周期2us。PULSE源上升阶段,激励源电压逐渐增加,逐渐对C1进行充电,因此,V2逐渐增加,其中时间常数为R1C1=1us>500n,并未充电到稳态。当530s激励源电压突然下降,电容两端逐渐放电,C2减少。

.TRAN分析中初始条件作用举例

例:这是一个简单的RC电路,请利用HSPICE分析各个节点的瞬态电压和流过各个元件的电流。C1两端的初始电压分别为0V和2V。 (图如左。)

tran run.sp

A SIMPLE AC RUN R1 1 2 1K R2 2 0 1K

C1 2 0 .001U IC=0V

V1 1 0 10 AC 1 PULSE 0 5 10N 20N 20N 500N 2U .OPTIONS LIST NODE POST .OP

.TRAN 10N 2U UIC $仿真区域为0~2us .PRINT TRAN V(1) V(2) I(R2) I(C1) .ALTER C1 2 0 .001U IC=2V .END

TRAN sweep information (in tran run.lis file)

.END

FOUR analysis information (in four run.lis file)

【蒙特卡罗(MONTE CARLO)分析】

在给定的标准差资料的基础上,使用随机数 发生器按元件值的概率分布来选择元件值, 然后对电路进行模拟分析。

目的: 计算a):一定的工艺误差允许范围内的元件值;b):一定的元件值下所允许的工艺误差容忍值。 应用 : 预测a):元件参数的变化对产品效能的影响;b):电路生产的成品率及成本等

蒙特卡罗分析方法: ① 直流工作分析:

.DC MONTE=val ① 直流扫描分析:

.DC vin 15 .25 SWEEP MONTE=val ① 交流扫描分析:

.AC dec 10 100 10meg SWEEP MONTE=val

① 瞬态扫描分析:

.TRAN 1n 10n SWEEP MONTE=val 注释:

value:蒙特卡罗分析中迭代的次数。一般是30。

电路分析中进行蒙特卡罗分析的方法是,将MONTE命令加入在直流分析、交流分析以及瞬态分析的命令中。经 30 次迭代蒙特卡罗统计分析后,若所有电路性能都合格,则在实际应用中,电路的 80%以上元件特性正确的概率可达 99%。

元件参数的设定.PARAM

蒙特卡罗分析设定—元件参数设定: ? 均匀分布 ① 相对变化:

.PARAM XX=UNIF (NOM_VALUE,REL_VARIATION<,multiplier>) ① 绝对变化:

.PARAM

XX=AUNIF(NOM_VALUE,ABS_VARIATION<,multiplier>) 注释:

XX:变化参数名

NOM_VALUE:参数变化中心值(N)

REL_VARIATION:相对变化值(R)—(在[N-N*R, N+N*R]之间呈均匀分布)

ABS_VARIATION:绝对变化值(A)—(在[N-A, N+A]之间呈均匀分布)

multiplier: 重复计算的次数,并储存最大偏离值。默认为1

【傅立叶分析.FOUR】 ? 傅立叶分析时间间隔:(Tstop-1/fperiod, Tstop) Tstop:.TRAN 语句中的终止时间 fperiod:傅立叶分析的基频。

傅里叶分析仅仅在瞬态分析分析终止时间 TSTOP 之前的基频的一个周期。

? 傅立叶分析能够得到DC 分量、基频和第 2 到

第 9 次谐波(交流分量)

什么是傅里叶变换?它是将任意的时域信号,转化成不同频率的正弦波的无限叠加,属于谐波分析。为什么要进行傅里叶变换?傅里叶变换实际上是将时域信号转化成频域信号,从而方便我们观察信号的频率组成,从而对与频率有关的如噪声等进行观察。HSPICE中的傅里叶分析是瞬态分析的一部分,它是在瞬态分析刚刚结束之前完成的。 一般形式:

.FOUR freq ov1 注释:

freq:傅里叶分析的基频。此频率的倒数即周期时间一定要小于TSTOP

Ov1:要求分析的输出变量,如节点电压。

注意:傅里叶分析同时要进行瞬态分析,为瞬态分析的一部分。

例:.FOUR 100K V(5) 例:这是一个简单的CMOS反相器,请利用HSPICE对输出电压进行傅里叶分析。

four run.sp : an inverter circuit VCC vcc 0 5

VIN IN 0 PULSE 0.2 4.8 2n 1n 1n 5n 20n M1 out in vcc vcc PCH L=1U W=20U M2 out in 0 0 NCH L=1U W=20U CLOAD out 0 0.75p

.MODEL PCH PMOS LEVEL=1 .MODEL NCH NMOS LEVEL=1 .op

.tran 200p 20n

.FOUR 100MEG V(OUT) .options list node post .print tran v(in) v(out)

(进行蒙特卡罗分析之前,首先要定义要分析的Monte.sp 参数服从什么分布,在什么样的范围波动。HSPICE可A dc run 以模拟三种随机分布,分别是均匀分布,高斯分布以及随机范围参数分布。我们先看第一种,均匀分布。所谓均匀分布,大家学过数理统计,应该都很清楚,就是这个参数落在这个区间任何一点的概率相等。可以用两种形式定义,即利用相对变化参数定义相对变化和利用绝对变化参数定义绝对变化。对于我们看他们的格式。设定随机参数利用.PARAM命令,后面跟随机参数名称XX,这个随机参数有哪些值呢?就是在一个均匀分布的区间内取值。这个均匀分布的区间有两种定义方法,相对参数,用UNIF表示,括号里面包含变化的中心值和相对变化值。相对变化值的定义是N*R,因此变化区间是[N-N*R, N+N*R];绝对参数,用AUNIF表示,区间为[N-A, N+A]。而multiplier的含义是重复计算的次数。什么意思,就是比如我们进行一次蒙特卡罗分析,取30个点进行分析,由于是随机取值,所以可能得到的随机变化结果和重新进行一次分析得到的结果有所不同,为了更准确得到最大的变化量,选用多次模拟方法。这个可以不设定,默认为1.) 蒙特卡罗分析设定—元件参数设定: ? 高斯分布 ① 相对变化: .PARAM X=GAUSS(NOM_VALUE ,REL_VARIATION, + <,multiplier>) ① 绝对变化: .PARAM XX=AGAUSS(NOM_VALUE,ABS_VARIATION, +, ) 注释: XX:变化参数名 NOM_VALUE:参数变化中心值(N) REL_VARIATION:相对变化值(R)—(在[N-N*R, N+N*R]之间呈高斯分布)

ABS_VARIATION:绝对变化值(A)—(在[N-A, N+A]之间呈高斯分布)

Sigm:标准差参数(S)。实际标准差=A/S multiplier: 重复计算的次数,并储存最大偏离值。默认为1

(第二种可以分析的分布是高斯分布。大家都知

道,高斯分布曲线是由中心值和标准差决定的。所以

在这里肯定要定义这两个参数。仍然有两种不同的变化,含义与前面均匀分布相同。标准差并没有直接给出来,是由一个参数Sigm定义。) ? 随机范围参数分布 .PARAM XX=LIMIT(NOM_VALUE ,ABS_VARIATION<,multiplier>) 注释: XX:变化参数名 NOM_VALUE:参数变化中心值(N)

ABS_VARIATION:绝对变化值(A)—(在[N-A, N+A]之间呈

随机分布)

multiplier: 重复计算的次数,并储存最大偏离值。默认为1

随机范围参数分布就是在一定范围内随机分布。

例2.6

利用HSPICE对R1服从高斯变化时(中心点为100,相对变化值0.2),计算出输出V(1,2)以及I(R2)的变化值。

Vs 1 0 DC 10 R1 1 3 VALUE R2 1 2 100 R3 2 3 100 R4 2 0 100 .OPTION LIST NODE $control options .DC MONTE=10 .PARAM VALUE=GAUSS(100,0.2) .PRINTDC V(1,2) I(R2) $ output options .GRAPH DC V(1,2) .END Monte sweep information (in monte.lis file)

V(1,2)变化情况 最坏情况分析: ? 方法:一般取统计分布的+/-2σ 或+/-3σ 值用sweep扫描来进行。

? 目的:调节电路参数,最后以一种符合实际的折衷方法完善电路的设计。 ? 应用:一般对 MOS 和双极型集成电路进行参数极端情况的分析 (由于微细加工工艺的限制,使得实际制作的图形和设计图形之间有一定的差距,这个差距呈一个统计分布。那么反映到元件参数值上,就会表现出一定的统计差距,设这个差距的标准差为sigma,那么我们刚才讲述的蒙特卡罗分析便是分析这种差距带来的影

响。但是,实际电路设计的时候,往往要仿真比实际差距更大的情况,目的是留出一定的冗余空间,以便防止在工艺发生比较严重的误差时能够保障电路正常工作。这种分析就是最坏情况分析。) 【电路的温度特性】 ? 电路温度:由.TEMP 语句设定。 格式:.TEMP T1 T2 T3…(电路对每个设定温度都模拟一次),注:若缺省,则电路温度为TNOM(.option设定,若未设定,25) ? 单个元件温度:这是用 DTEMP 参数的扩展功

能。

指的是元件温度与电路温度的差值

? 模型参考温度:这个温度由.MODEL语句中的

TREF 参数决定。 举例

.TEMP 100 $电路温度

D1 N1 N2 DMOD DTEMP=30 $二极管D1温度100+30 D2 NA NC DMOD $二极管D2温度100 R1 NP NN 100 DTEMP =-30 $电阻温度100-30 .MODEL DMOD D IS=1E-1.5 VJ=0.6 CJA=1.2E-13 +CJP=1.3E-14 TREF=60.0 $模型温度

格式:

.PARAM XX=VALUE, …/formula 例: .PARAM WVAL=15U VDD=5 Example of ALTER contains PARAM

输入控制

【一、】.ALTER语句 功能:

针对设定的不同参数和数据自动进行更替来进行电路的模拟 格式:

circuit statement .alter

circuit statement 注意:

.ALTER语句中不能包.PRINT、.PLOT、.GRAPH 或其它任何 I/O 语句,但可以包含所有用于分析的语句,.DC、.AC、.OP、.TRAN、.FOUR、.DISTO、.PZ、.TF 等

利用.ALTER语句可以进行N次分析,分析结果可以查看波形。但只能在.LIS中进行一次打印或者画图。

.ALTER举例—.TRAN分析中初始条件作用举例 例:这是一个简单的RC电路,请利用HSPICE分析各个节点的瞬态电压和流过各个元件的电流。C1两端的初始电压分别为0V和2V。(第七讲瞬态分析例子)

A SIMPLE AC RUN R1 1 2 1K R2 2 0 1K

C1 2 0 .001U IC=0V

V1 1 0 10 AC 1 PULSE 0 5 10N 20N 20N 500N 2U

.OPTIONS LIST NODE POST .OP

.TRAN 10N 2U $仿真区域为0~2us

.PRINT TRAN V(1) V(2) I(R2) I(C1) .ALTER C1 2 0 .001U IC=2V .END

Example of ALTER contains PARAM .OPTION LIST NODE POST .TRAN 200P 20N

.PRINT TRAN V(IN) V(OUT)

M1 OUT IN VCC VCC PCH L=1U W=Wx M2 OUT IN 0 0 NCH L=1U W=Wx VCC VCC 0 5

VIN IN 0 0 PULSE .2 4.8 2N 1N 1N 5N 20N CLOAD OUT 0 Cx

.MODEL PCH PMOS LEVEL=1 .MODEL NCH NMOS LEVEL=1 .PARAM Wx=20U Cx=.75p .ALTER .PARAM Wx=20U Cx=.50p .ALTER .PARAM Wx=20U Cx=.25p .ALTER .PARAM Wx=20U Cx=.10p .ALTER .PARAM Wx=10U Cx=.10p .ALTER .PARAM Wx=5U Cx=.10p .END

【二】.PARAM语句 ? 功能:

用来对 HSPICE 模拟中的元件和模型所指定的关键字进行赋值, 这特别适合要调用不同参数进行模拟以及统计分析 (蒙特卡罗分析) 等场合,对所赋的任何一个值都模拟一遍。

【三】.DATA语句

功能: 针对每一个模拟过程期间,那些需要改变的参数提供了一种简便的改变参数并给出数值设置的有效方法

应用:. DATA 语句特别适合做数据驱动分析,多参数变化

注意: .DATA 语句中可以读入任何数据 。并在一个输出曲线中绘制出调用不同参数进行模拟的结果

(与.ALTER和.PARAM语句相比,它使模拟成为一种内循环,而不需根据不同参数要求去重复读取数据

再建立模拟过程,从而节省了计算时间。同时,可以包含任何打印等输入输出语句和任何分析语句。也就是说,任何分析都可以在.LIS文件中打印出来,也可以在AVANWAVES中查看波形。) 一般形式:

.DATA DATANM PNAME1

+PVALUE1 .ENDDATA

注释:DATANM:在.TRAN、 .DC 或.AC 语句设定的数据调用名

PNAME:参数名。 PVALUE:参数值。 例子:

.TRAN 1n 100n SWEEP DATA=devinf

.AC DEC 10 1hz 10khz SWEEP DATA=devinf .DC TEMP -55 125 10 SWEEP DATA=devinf .DATA devinf

width length thresh cap 50u 30u 1.2v 1.2pf 25u 15u 1.0v 0.8pf 5u 2u 0.7v 0.6pf .ENDDATA

Example of DATA as the Inner Sweep : Example of DATA as the Inner Sweep M1 OUT IN VCC VCC PCH L=1U W=Wx M2 OUT IN 0 0 NCH L=1U W=Wx VCC VCC 0 5

VIN IN 0 0 PULSE .2 4.8 2N 1N 1N 5N 20N CLOAD OUT 0 Cx

.OPTION LIST NODE POST

.TRAN 200P 20N SWEEP DATA=d1 .PRINT TRAN V(IN) V(OUT) .MODEL PCH PMOS LEVEL=1 .MODEL NCH NMOS LEVEL=1 .param wx=20u cx=.50p .alter .param wx=20u cx=.25p .alter .param wx=20u cx=.10p .alter .param wx=10u cx=.10p .alter .param wx=5u cx=.10p .end .DATA d1 Wx Cx 20u .50p 20u .25p 20u .10p 10u .10p 5u .10p .ENDDATA .END

【四】.OPTION语句

功能:

任选项语句是为了满足用户的需要或特殊的模拟目的,允许用户重新设置程序的参数或/和控制程序的功能

格式: .OPTIONS opt1 注释: 1:对整个程序起作用

2:分为两种类型,无值和有值

3:不同的任选项在语句中可以任意排列 常用的可选项语句

更多.OPTIONS语句请参看

C:\\synopsys\\Hspice_A-2007.09\\docs\\hspice_cmdref.pdf:P385-536

.OPTIONS运用举例 A SIMPLE AC RUN R1 1 2 1K R2 2 0 1K

C1 2 0 .001U ic=0

V1 1 0 10 AC 1 PULSE 0 5 10N 20N 20N 500N 2U

.OPTIONS LIST NODE POST ACCT OPTS .OP

.AC DEC 10 1K 100MEG .TRAN 10N 2U

.PRINT TRAN V(1) V(2) I(R2) I(C1) .alter

C1 2 0 .001U ic=2 .END

举例:

.OPTIONS LIST NODE POST ACCT OPTS

.OPTIONS LIST NODE POST ACCT OPTS

第九讲 HSPICE网表的语法

【输出控制】 输出参数设定方法 * 电压:

1.V(node1 <,node2>),node2不写表示为地; 2.VI(node1 <,node2>),表示虚部; 3.VR(node1 <,node2>)表示实部;

4.VP(node1 <,node2>)表示相位;5. VM(node1 <,node2>)表示幅值

* 电流 In( W)。 其中n为元件的第n个节点,X为子电路名称,W为元件名。 表示流过子电路X中元件W的第n个节点的电流。 * 功耗: P(W/X)。W为元件名,可以为激励源,也可以为电路元件; 表示元件W或者子电路X的功耗。

* 噪声 INOISE/ONOISE。 分别表示输入噪声和输出噪声。 要与NOISE连用,如.PRINT NOISE INOISE ONOISE

* 失真 任何失真分析参数(HD2,HD3,SIM2,DIM2,DIM3) 要与DISTO连用,如.PRINT DISTO HD2(M) HD2(DB)

* 参数表达式 XXX=PAR(‘function(par1,par2...)’)

表示输出参数XXX,它是一个或多个参数的函数。 如PRINT BETA=PAR(‘I(R1)/I(R2)’) 作用: 规定了在输出.lis文件中要打印的变量值。 一般形式 .PRINT antype ov1 注释: antype: 是用户规定的输出分析类型: DC 、AC、TRAN 、NOISE 或DISTO ov…:要被打印的输出变量。

【 .PRINT 】:

? .PRINT TRAN V(in) V(out)

? .PRINT AC VM(4,2) VR(7) VP(8,3) II(R1)

? .PRINT NOISE INOISE

.OPTIONS LIST NODE POST ACCT OPTS

OPTIONS LIST NODE POST ACCT OPTS

.OPTIONS LIST NODE POST ACCT OPTS

【输出绘图语句.PLOT】: ? 作用:

对某种选定分析的结果在.lis文件中进行绘图输出。

? 一般形式

.PLOT antype ov1 <(plo1,phi1)>… ov32><(plo32,phi32)>

? 注释:

antype: 是用户规定的输出分析类型: DC 、AC、TRAN 、NOISE 或DISTO

ov…:要被打印的输出变量。

plo/phi:对绘图输出规定的上限和下限 绘图宽度:.OPTIONS CO=?来决定

(在.PLOT 语句中若没有规定绘图限制,HSPICE

将自动地确定所有绘图的输出变量的最小值和最大

值,并换算合适的作图比例。若各输出变量的值差别是数量级的,那么输出变量在一张图上绘制时可采用不同的比例和作图符号绘图。在同一张图上有多个输出变量时,第一个被指定的变量,在绘图的同时还将打印出值来;但如果要求把所有变量值都打印时,应具有相应的.PRINT 语句。绘图输出的宽度由.OPTION 语句中的参数来决定,若CO=80,则产生一个50 列宽的绘图范围,若 CO=132,则产生一个100 列宽的绘图范围。)

.PLOT举例

? .PLOT TRAN V(in) V(out)

? .PLOT AC VM(4,2) VR(7) VP(8,3) II(R1) ? .PLOT NOISE INOISE

【输出探针语句.PROBE】:

? 作用: 将输出变量存储到接口文件和图形数据文件中,而不被打印。

? 一般形式 .PROBE antype ov1

? 注释: antype: 是用户规定的存储的分析类型: DC 、AC、TRAN 、NOISE 或DISTO ov…:要被存储的输出变量。

如果用户仅仅对输出数据感兴趣而不想其被打印到.lis文件中,利用.probe语句。与.print语句不通的是,.print既输出接口数据,又要被打印。

【输出绘图语句.GRAPH】 ? 作用:

产生一个高分辨率的输出绘图结果。

这个语句与一个附加了一个可选模型的.PLOT 语句功能一样。.GRAPH 语句产生一个.gr#图形数据文件,同时直接发送到一个缺省的高分辨率图形发生器(由meta.cfg 配置文件中PRTDEFAULT 规定)。.gr#文件中的#表示存在的文件序号,.GRAPH 产生的.gr#文件最大序号是36。.GRAPH 语句对HSPICE 的PC 版本不支持

【输出测量语句.MEASURE】 ? 作用:

对某种选定的输出结果进行测量,从而得到精确值。

? 可测量的参数

? 上升、下降和延迟

? 平均值、RMS值、峰值、谷值、峰谷

? FIND和WHEN ? 算术表达式计算 ? 积分计算 ? 微分计算 ? ……更多请参看

C:\\synopsys\\Hspice_A-2007.09\\docs\\hspice_sa.pdf

上升、下降和延迟测量 一般形式:

.MEASURE result TRIG ... TARG ... 可以简写为.MEAS。可进行直流、交流以及瞬态分析测量。测量结果分别为直流扫描量,频率以及时间。

注释:

result:测量结果参数名。比如测量结果为2ns,则打印输出为result 2ns。

TRIG:即trigger缩写,由它引导测量的起始参数。 TARG:即target缩写,由它引导测量的目标参数。 (直流测量,一般可以测量直流扫描量,如电阻、电压、电流等。交流测量,一般可以测量频率,用于计算带宽。瞬态测量一般可以计算延迟时间)

1 .meas tran tdlay trig vin val=2 rise=1

targ vout val=2 fall=1

2 .meas tran td trig vin val=“Vcc/2”

fall=1 targ vout val= “Vcc/2” rise=1

3 .mens tran t1 trig vout val=4 fall=1 targ vout val=4 rise=1

平均值、RMS值、峰值、谷值、峰谷值 一般形式:

.MEASURE result func out_var FROM=val TO=val

注释:

result:测量结果参数名。比如测量结果为2V,则打印输出为result 2V。

func:函数名,如AVG ,RMS, MAX, MIN, PP。 OUT_VAR:输出参数名,例如VOUT。 FROM/TO:起始终止时间(电压、频率等)

--------------------------------------------------------------------- 1 .meas tran avgval AVG Vout FROM=4ns TO=8ns

2 .meas tran rmsval RMS Vout FROM=4ns TO=8ns

3 .meas tran maxval MAX Vout FROM=4ns TO=20ns

4 .meas tran minval MIN Vout FROM=4ns TO=20ns

5 .meas tran ppval PP Vout FROM=4ns TO=20ns

E(FGH)XXX N+ N- NC+ NC- 2: POI n value1 value2….valuen

3: monte=n GAIN_VALUE

参数赋值语句 子电路描述

? .PARAM

子电路描述一般形式:

1. 与monte连用

.SUBCKT(.MACRO) SUBNAME N1 < N2 …>

.PARAM X=UNIF(N, R)

具体电路描述

GUASS

.ENDS .PARAM X=AUNIF(N, A)

子电路调用语句: Xnnn N1 SUBNAME MOS模型语句

MOSFET描述方法:

MXXX D G S B Model_name L=?

W=?

MOSFET模型的描述方法:

PMOS:.MODEL 模型名 PMOS NMOS:.MODEL 模型名 NMOS

分析语句

三种基本的分析类型: 直流分析,交流分析以及瞬态分析。其他的所有分析都包含在这些基本分析之中的。 各种分析语句含义?

如何进行分析?(一般形式) 可以获得哪些结果

? 直流分析:.OP, .DC, .TF, .SENS

? 交流分析:.AC, .PZ, .NOISE (频率响应) ? 瞬态分析:.TRAN, .FOUR (时间特性,时域响

应)

三种设置初始值方法:IC=? .IC语句以及.NODESET语句,优先级?

电路的温度设定方法?

对第二参数进行扫描分析: ? .DC X STYPE

? .DC variable start stop step SWEEP X STYPE

? .AC type np fstart fstop SWEEP X STYPE

? .TRAN tstep tstart SWEEP X STYPE STYPE:

1: start stop step

AGUASS 2. 与.ALTER连用

.PARAM X=valuex Y=valuey ? .DATA .DATA DATANM PNAME1

PVALUE1

.ENDDATA

输出控制语句 ? .PRINT: .PRINT DC(AC, TRAN) Outparameter

? .PLOT: .PLOT DC(AC, TRAN) Outparameter ? .MEASURE

1. 上升,下降和延迟

.MEASURE result TRIG ... TARG ...

2. 平均值,RMS值,峰值,谷值,峰谷值

.MEASURE result func out_var from= to=

3.FIND 和WHEN

.MEASURE result 条件

本文来源:https://www.bwwdw.com/article/jqot.html

Top