hspice仿真整理

更新时间:2023-10-11 15:14:01 阅读量: 综合文库 文档下载

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

§ 电路级和行为级仿真

§ 直流特性分析、灵敏度分析 § 交流特性分析 § 瞬态分析

§ 电路优化(优化元件参数) § 温度特性分析 § 噪声分析

例(Hspicenetlist for the RC network circuit): .title A SIMPLE AC RUN .OPTIONS LIST NODE POST .OP

.AC DEC 10 1K 1MEG

.PRINT AC V(1) V(2) I(R2) I(C1) V1 1 0 10 AC 1 R1 1 2 1K R2 2 0 1K C1 2 0 .001U .END

输出文件:一系列文本文件

? *.ic:initial conditions for the circuit ? *.lis:text simulation output listing

? *.mt0,*.mt1…:post-processor output for MEASURE statements ? *.pa0 :subcircuit path table ? *.st0 :run-time statistics

? *.tr0 ,*.tr1…:post-processor output for transient analysis ? *.ac0,*.ac1…: post-processor output for AC analysis

.TITLE 语句

.TITLE 或者:

如果是第二种形式,字符串应该是输入文件的首行;如果一个HSPICE语句出现在文件的首行,则它将被认为是标题而不被执行。

.END 语句

形式: .END

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

分隔符

? 包括:tab键,空格,逗号,等号,括号 ? 元件的属性由冒号分隔,例如 M1:beta ? 级别由句号指示,例如 X1.A1.B 表示电路X1的子电路A1的节点B 常量

? M-毫,p-皮,n-纳,u-微,MEG-兆,

例如c1 1 2 10pF;

? 单位可以省略,例如c1 1 2 10p 元件名

? 元件名以元件的关键字母开头:电阻-R,电容-C…… ? 子电路的名字以“X”开头 ? 元件名不超过16个字符 节点

? 节点名长度不超过16个字符,可以包括句号和扩展名 ? 开始的零将被忽略:

? 节点名可以用下列符号开始:# _ ! %

? 节点可以通过.GLOBAL语句定义成跨越所有子电路的全局节点:.GLOBAL node1 node2 node3 …node1 node2 node3都是全局节点,例如电源和时钟名

? 节点0,GND, GND!, GROUND 都指全局的地电位节点 元件语句:器件的类型+名称器件所连接的节点参数值 无源器件:

? 电阻:

Rxxx n1 n2 resistance 电阻值可以是表达式。例: Rterm input gnd R=’sqrt(HERTZ)’

Rxxx 9 8 1 AC=1e10 直流电阻1欧姆,交流电阻为1e10欧姆 ? 电容: 一般形式:

Cxxx n1 n2 capacitance 例,Cload driver output 1.0e-6。 ? 电感: 一般形式:

Lxxx n1 n2 inductance 有源器件:

? 二极管:

Dxxxnplusnminusmname /params 模型中的寄生电阻串联在正极端。 ? 双极型晶体管:

Qxxxncnb ne mname ? JFET:

Jxxxndng ns mname 子电路语句

? ?子电路定义开始语句

.SUBCKT SUBNAM

其中,SUBNAM为子电路名,node1…为子电路外部节点号,不能为零。子电路中的节点号(除接地点),器件名,模型的说明均是局部量,可以和外部的相同。

例 .SUBCKT OPAMP 1 2 3 4

? ?子电路终止语句

.ENDS 若后有子电路名,表示该子电路定义结束;若没有,表示所有子电路定义结束。 例 .ENDS OPAMP

? ?子电路调用语句

X***** SUBNAM 例 .Xopa1 a b c c OPAMP

激励源:

? 独立源:

脉冲形式:Vxxx n+ n- PULS <(>v1 v2 >>><)>

V1 V2 td tr tf pw per

值1 值2

上升延迟时间 上升时间 下降时间 脉冲宽度 周期

例:VPU 3 0 PULSE(1 2 5N 5N5N 20N 50N)

正弦形式:Vxxx n+ n- SIN<(>vova>><)>

v0 va freq td q φ

得到的波形: Time=0~td

Time=td~瞬态分析的结束时间

vo+va·sin(2πφ/360) vo+vaExp[-(Time- td)×θ+· Sin,2π·*freq(Time-td)+φ/360+-

失调值 幅度 频率 延迟时间 阻尼因子 相位

例:VIN 3 0 SIN (0 1 100MEG 1NS 1e10) 逐段线性形式:

pwl<(> t1 v1><)>

vi是ti时刻的值,repeat 是开始重复的起始点;delay是延迟时间。 指数形式:

EXP <(> v1 v2 >>><)>

V1是初始值,v2是峰值,td1是上升延迟时间,t1是上升时间常数,t2是下降时间常数。

控制卡

是hspice输入文件的命令部分,告诉hspice要进行哪些操作和运算,并给出相关的参数——如分析方式、输出的变量等。其内容主要包括选项语句(.OPTIONS)、分析命令语句、输出控制语句几类。这些语句格式的共同特点是都由保留字引导,后面跟随相应的参数,在保留字前要加“.”

LIB 语句:

.lib ‘filename’entryname

该语句根据文件路径和文件名来调用一个库文件,一般该文件包含器件模型中的参数值。

例 .lib 'f:\\spice\%userlib\\csmc.lib' bjt csmc.lib文件中: ···

.lib bjt

.MODEL pnp20 pnp···

.INCUDE语句:引用一个文件,被引用的文件置于引用文件前。

例: LNA

.include “me98xxxx/model.sp“ ···

直流分析仿真流程

.OP:直流工作点分析

会在输出文件中列出一些直流参数和各结点的工作点电压与支路电流、静态功耗。

.dc:

扫描:.DC 变量1扫描<变量2扫描>···

扫描:.DC var1 START STOP STEP/

type-DEC(十进位)/OCT(倍频)/LIN(线性)/DATA=datanm/POI(列表) Np-单位范围内的点数(依type而定)。SWEEP后的变量可是电压、电流或温度等变量。

例:.DC xval 1k 10k .5k SWEEP TEMP LIN 5 25 125 .DC TEMP POI 5 0 30 50 100 125对前面反相器链的直流特性扫描:

...

VIN IN 0

.DC VIN 0 5V 0.1V(从0v到5v,步长0.1v) …

例:分析反相器链的直流传输特性和工作点

……

.global vdd

.SUBCKT INV IN OUT wn=1.2u wp=1.2u ……

.ENDS X1 IN 1 INV WN=1.2U WP=3U X2 1 2 INV WN=1.2U WP=3U X3 2 OUT INV WN=1.2U WP=3U CL OUT 0 1PF VCC VDD 0 5V VIN IN 0 .DC VIN 0 5V 0.1V .OP …… .END

小信号灵敏度分析:.SENS ov1

ov1,ov2是做灵敏度分析的支路电流或节点电压。

计算给出输出变量对于每个电路参数的偏导,并做归一化。同一输出变量对所有电路参数的灵敏度和为100% 小信号转移函数:.TF ovsrcnam ov是输出变量,srcnam是输入源。 例

.TF V(5,3) VIN 计算V(5,3)/VIN 瞬态分析仿真流程

一般分析:

.TRAN var1 START=start1 STOP=stop1 STEP=incr1 or

.TRAN tincr1 tstop1 起始时刻和步长都指的是输出打印的时刻点,计算的时间步长由hspice自己决定。 UIC参数表示使用.IC语句指定的节点初始值。 例:.TRAN .1NS 25NS 1NS 40NS START=10NS

0-25ns,步长0.1ns,25ns-40ns,步长1ns;从10ns开始输出结果。 .TRAN .1NS 100N 以0.1ns的步长输出到100ns

Fourier分析:

.FOUR freq ov1 Freq-基频,ov1、ov2···-输出变量 例:CMOS INVERTER

M1 2 1 0 0 NMOS W=20U L=5U M2 2 1 3 3 PMOS W=40U L=5U VDD 3 0 5

VIN 1 0 SIN 2.5 2.5 20MEG

.MODEL NMOS NMOS LEVEL=3 CGDO=.2N CGSO=.2N CGBO=2N .MODEL PMOS PMOS LEVEL=3 CGDO=.2N CGSO=.2N CGBO=2N .OP

.TRAN 1N 100N .FOUR 20MEG V(2) .PRINT TRAN V(2) V(1) .END 交流分析

.AC:

一般频域扫描:

.AC typenpfstartfstop or

.AC type npfstartfstop or

.AC var1 START = start1 STOP = stop1 STEP = incr1

例:.AC DEC 10 1K 100MEG 1kHz-100MHz,每10倍频10个采样点。 噪声分析:

用来计算各个器件的噪声对输出节点的影响并给出其均方根并输出,可完成.AC语句规定的各频率的计算,应在.AC分析之后。 .NOISE ovvsrcnam inter

Ovv-输出变量,srcnam-输入源,inter-频率间隔 例:.title ac sweep example .OPTIONS POST R1 in 1 5

C1 1 0 500pf

V1 IN 0 0 AC=10V,37 .AC OCT 10 1 100MEG

.noise v(1) v1 20--分析1点电压的噪声情况,噪声源为V1端口 .END

温度分析:

与直流或瞬态分析等命令结合使用:例如对反相器链瞬态特性的温度扫描: ……

VIN IN 0 PULSE(0 5V 10NS 1N 1N 50N 100N)

.TRAN 1N 200N sweep temp 0 125 20 .PRINT V(OUT) .END

.TEMP t1 >:会产生一系列的瞬态分析文件:tr0,tr1...,在metawave中对应不同的分析。

初始化:

瞬态分析的初始化语句

.IC var1=val1··· 直流分析的初始条件设定语句

.NODESET var1=val1···

进行含有多稳态电路的模拟时往往需要给出初始化条件。

.OPTIONS:

该语句允许用户重新设置程序的参数或控制程序的功能。常用的一些如下:

node: 列出个节点的元件端点,便于查错;

post: 使输出数据可以使用MetaWaves浏览(即将数据输出到post processor)

list: 列出元件列表;

MEASDGT:.MEASURE语句输出的有效数字位数

例:.option post probe $MetaWaves只观察.probe语句输出的变量。 输出控制

输出语句:

? .PRINT:在输出的list文件中打印数字的分析结果,如果.OPTIONS中有POST则同时输出到post-processor中。 ? .PLOT:在输出的list文件中打印低分辨率的曲线(由ASCII字符组成),如果.OPTIONS中有POST则同时输出到post-processor中。 ? .GRAPH:生成用于打印机或PostScript格式的高分辨率曲线。 ? .PROBE:把数据输出到post-processor,而不输出到list文件。

? .MEASURE:输出用户定义的分析结果输出到.mtx文件,如果.OPTIONS中有POST则同时输出到post-processor中。 ? .OP, .TF, .NOISE, .SENS和.FOUR都提供直接输出功能。 .PRINT:

.PRINTantypeov1 Antype-AC/DC/TRAN;

Ovi:输出变量,可以有以下形式:

v(1): 节点1的电平,v(1, 2): 1、2间的电压,V(R1): 电阻R1的电压; vm(1): v1的幅值,vr(1): v1的实部,vi(1): v1的虚部,vp(1) v1的相位,vdb(1): v1的分贝值;

(电流与以上类似); .PLOT:

.PLOT antype ov1<(plo1,phi1)>…<(plo32,phi32)> (plo1,phi1)-ov1绘图的上下限。 .PROBE:

.PROBE antypeov1 … 元件电流引用:BJT: I1(Qx)-Ic,I2(Qx)-Ib, I3(Qx)-Ie, I4(Qx)-衬底电流;

MOS:I(Mx)-Ids。 .MEASURE:

? 包括以下测量模式:

? Rise, fall, and delay ? Find-when

? Equation evaluation

? Average, RMS, min, max, and peak-to-peak ? Integral evaluation ? Derivative evaluation ? Relative error

? Rise,Fall,Delay模式:

.MEASURE result TRIG … TARG …

Result-测量结果的名字, TRIG … TARG -起始···中止(依分析内容不同可是时刻、频率···)

- TRIG和TARG的格式

TRIG trig_ var VAL=trig_ val 或TRIG AT=val TARG targ_var VAL=targ_val

trig_var和targ_var指定引发变量;val指出上升、下降、或反转的临界点;time_delay指出开始测量时跳过的时间量;CROSS, RISE, FALL分别指出开始触发的次数;LAST说明到最后一次;

例 .meastrantdlay trig v(1) val=2.5 td=10n rise=2targ v(2) val=2.5 fall=2

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

Top