资源描述
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器件前缀为:Q
Diode器件前缀为: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 OPAMP
6、信号源描述(激励描述):
电压源-V,电流源-I
Vxxx/Ixxx n+ n- <<DC=> dcval> <AC=acmag, <acphase>>
+ <M=val>
直流:V1 1 0 DC=5V 或 V1 1 0 5V
I1 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、5v
Vxxx/ Iyyy n+ n- <tranfun>
+ <M=val>
tranfun:EXP, PULSE, PWL…。
<M=val>只用来描述电流源,表示并联得电流源个数。默认为1。
脉冲源:
Vxxx n+ n- PULSE (v1 v2 td tr tf pw per)
(脉冲电流源有类似得书写方法)
V1
下降沿电平值
V2
上升沿电平值
td
上升延迟时间
tr
上升时间
tf
下降时间
pw
脉冲宽度
per
周期
正弦源:
Vxxx n+ n- SIN ( vo va freq td Θ φ)
(正弦电流源可以类似得方式给出)
v0
失调值
va
幅度
freq
频率
td
延迟时间
Θ
阻尼因子
φ
相位
任意方波源:
Vxxx n+ n- pwl ( t1 v1 t2 v2 t3 v3…… R TD )
7、分析命令
工作点分析
、OP 会在输出文件中列出一些直流参数与各结点得工作点电压与支路电流、静态功耗。
直流分析
、DC var1 START STOP STEP/<SWEEP var2 type np start2 stop2>,
Type: DEC(十进位)/OCT(倍频)/LIN(线性)/DATA=datanm/POI(列表)
Np -单位范围内得点数(依type而定)。SWEEP后得变量可就是电压、电流或温度等变量。
例:
、DC xval 1k 10k 0、5k SWEEP TEMP LIN 5 25 125
交流分析
、AC type np fstart fstop <SWEEP var start stop incr>
例:
、AC DEC 10 1K 100MEG
*1kHz-100MHz,每10倍频程取10个点打印。
瞬态分析
、TRAN var1 START=start1 STOP=stop1 STEP=incr1 或者
、TRAN tincr1 tstop1 < tincr2 tstop2 、、、tincrN tstopN>
+ <START=val> <UIC>
注意: Tran分析时起止时刻及步长指得就是输出打印点得时刻,Hspice真正得计算步长就是由Hspice自己决定得。
例:
、TRAN 0、1NS 25NS 1NS 40NS START=10NS
*0-25ns,步长0、1ns, 25ns-40ns,步长1ns; 从10ns开始输出结果。
、TRAN 1NS 100NS *以1ns得步长输出到100ns
8、测量命令:
MEASURE命令
、MEASURE <DC|AC|TRAN> result TRIG … TARG …
Result就是测量结果得名字,
TRIG … TARG 为 起始···中止(依分析内容不同可就是时刻、频率···)
TRIG 与 TARG得格式如下:
TRIG trig_var VAL=trig_val <TD=time_delay> <CROSS=c> <RISE=r> <FALL=f>
TARG targ_var VAL=targ_val <TD=time_delay> <CROSS=c | LAST>
<RISE=r | LAST> <FALL=f | LAST> *last表示最后一次事件。
例:
、meas tran tdlay trig v(1) val=2、5 td=10n rise=2
+ targ v(2) val=2、5 fall=2
该例测量一个名为tdlay得时间,在节点1处得电压第二次超过2、5v,时开始测量(注意在超过2、5v以后10n秒才开始计算次数),到节点2处得电压第二次回落到2、5v时停止测量。
9、输出命令
、PRINT <DC | TRAN> P(element_or_subcircuit_name) POWER
*打印功率值
、PRINT TRAN P(M1) P(VIN) P(CLOAD) POWER
、PLOT DC POWER P(IIN) P(RLOAD) P(R1)
、PROBE antype ov1 … <ov32>
*antype 可以就是DC /AC/TRAN…… 后面得变量可以使电压或者电流及器件得参数等等。
10、例题
下图反相器中得MOS管L=1、2u,W=1、2u。试建立反相器子电路,并考察子电路得VTC特性。建立完整电路后,分析该反相器链得直流传输特性、时序特性及带负载能力(负载为电容0、5P 1P 2P)。
1
2
out
IN
第一步:设计反相器单元
第二步:写出输入文件,执行DC分析获得反相器得VTC特性图
、TITLE 1、2UM CMOS INVERTER
、LIB ‘ ‘
、global vdd
、option probe
Mn out in 0 0 NMOS W=1、2u L=1、2u
Mp out in vdd vdd PMOS W=1、2u L=1、2u
CL OUT 0 0、5PF
VDD VDD 0 5V
VIN VIN 0 PULSE(0 5V 10NS 1N 1N 50N 100N)
、DC VIN 0 5V 0、1V
、op
、probe dc v(Vout)
、end
第三步 写出SUBCKT并实例化三个,来实现反相器链对反相器链执行DC扫描。
、TITLE 1、2UM CMOS INVERTER CHAIN
、LIB ‘’
、global vdd
、SUBCKT INV IN OUT wn=1、2u wp=1、2u
Mn out in 0 0 NMOS W=wn L=1、2u
Mp out in vdd vdd PMOS W=wp L=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
VDD VDD 0 5V
VIN VIN 0 0
、DC VIN 0 5V 0、1V
、measure DC ttrans when v(out)=2、5v
、PROBE dc v(Vout)
、END
第四步执行measure 命令测量延迟时间。
VIN VIN 0 PULSE(0 5V 10NS 1N +1N 50N 100N)
、TRAN 1N 200N
、measure tran tdelay trig v(in)
+ val=2、5 td=8ns rise=1
+ targ v(out) val=2、5
+ td=9n fall=1
、PRINT V(OUT)
、end
第五步 考察电路带容性负载得能力,同学门自己完成(提示:建立DATA包含三个容值,瞬态分析时执行SWEEP DATA=DATANM)
展开阅读全文