【模拟CMOS集成电路】HSPICE入门仿真分析实例
- 一、采用HSPICE的MOS器件仿真
- 二、INV倒相器HSPICE仿真
- 附录
- 程序源码(一)
- 程序源码(二)
一、采用HSPICE的MOS器件仿真
一、采用HSPICE的MOS器件仿真, 并回答以下问题。
1) 固定器件
W
/
L
=
10
m
m
/
2
m
m
W/L=10mm/2mm
W/L=10mm/2mm尺寸,通过仿真给出NMOS管的输出特性曲线和转移特性曲线,简要说明仿真方法;
仿真电路图如图所示,对于MN0对VDS进行扫描,扫描范围
0
−
5
V
0-5V
0−5V,随后使
V
G
S
V_{GS}
VGS在
0
−
5
V
0-5V
0−5V范围内变化,变化步长为1V。得到MOS管输出特性曲线如图所示。
固定
V
D
S
=
5
V
VDS=5V
VDS=5V,对
V
G
S
VGS
VGS从
0
−
5
V
0-5V
0−5V进行扫描,扫描步长
0.001
V
0.001V
0.001V,绘制出转移特性曲线。
2)通过仿真测试给出NMOS管的阈值电压
V
T
H
VTH
VTH、工艺因子
k
′
k^{'}
k′, 说明相关参数的测试方法,并与工艺文件提供的对应参数值比较。 (k=μC_ox)
答:由图1-2的转移特性曲线,得到VTH=0.735mV(工艺库VTH=0.723100mV)
首先将MOS管取最小沟道长度
L
=
0.5
u
m
,
W
=
1
u
m
L=0.5um,W=1um
L=0.5um,W=1um通过仿真输出特性曲线,
得到饱和区的两个点
I
A
=
144
u
A
,
I
B
=
154
u
A
I_{A}=144uA,I_{B}=154uA
IA=144uA,IB=154uA,通过几何关系,得到线段AB与X轴相交与
V
=
12.4
V
=
0.5
∗
λ
V=12.4V=0.5*\lambda
V=12.4V=0.5∗λ ,进而得到
λ
=
24.8
V
−
1
\lambda =24.8 V^{-1}
λ=24.8V−1 然后在输出特性曲线上任取一点,通过式(1.1)
得 工艺因子
k
2
=
83.27
u
A
/
V
2
k^{2}=83.27uA/V^2
k2=83.27uA/V2
二、INV倒相器HSPICE仿真
二、采用HSPICE仿真INV倒相器,设
a
2
=
k
n
/
k
p
a^{2}=kn/kp
a2=kn/kp,回答以下问题
1) 给出 INV 转折电平
V
i
n
∗
Vin^{*}
Vin∗与
a
a
a的变化关系;
固定NMOS的尺寸为
W
N
=
2
u
,
L
N
=
1
u
WN=2u,LN=1u
WN=2u,LN=1u ,PMOS的尺寸
L
P
=
1
u
LP=1u
LP=1u,将器件参数WP从2u~8u进行扫描,扫描步长1u,随后进行仿真,仿真结果如图2-1,通过仿真可以得出结论:“INV的转折电平
V
i
n
∗
Vin^{*}
Vin∗ 随
a
a
a 的增大而减小”。
2) 给出INV正常工作下最小电源电压与N、P两管VTN和VTP的关系;
通过工艺库文件可以得到:
为了得到
I
N
V
INV
INV的输出特性曲线,对V_{GS}进行
0
−
3
V
0-3V
0−3V扫描,同时改变电源电压,将VDD从
0
−
3
V
0-3V
0−3V扫描,扫描步长
0.1
V
0.1V
0.1V,通过Hspice进行仿真
通过图2-2可以观察到,VDD>min{vthp,|vthp|} 时,反相器总会在1/2VDD处反转,且过渡反转正常,当VDD<min{vthp,|vthp|} 时,反相器输出曲线出现问题,转折点过程明显不理想,因此INV的最小工作电平为V_(DD,min) min{vthp,|vthp|}。
3) 分析INV静态电流与转折电平
V
i
n
∗
Vin^{*}
Vin∗之间的变化关系;(条件:PMOS和NMOS管匹配设计,尺寸往相反方向变,例如:一个MOS管尺寸增大两倍另一个减小两倍)(匹配设计:转折电平为1/2VDD)。
将NMOS与PMOS分别按照对称变化进行扫描,进行DC仿真。
通过仿真结果可以看出,当对称设计时,当切换时有最大漏电流,转折电平Vin*越接近1/2V_DD,漏电流越大,且随着不匹配程度的加重,漏电流减小。
4) 分析INV上升、下降延迟以及传输延迟与两管尺寸(W/L)n和(W/L)p 的变化关系。
在输入端加上一个脉冲信号,周期为100ns 上升和下降时间均为10ns,首先,固定(W/L)p,逐步增大(W/L)n,进行tran仿真,观察输出随时间变化曲线。
通过图2-4和图2-5可以看出,
1)随着(W/L)n的增大,当输出从低电平切换为高电平的时间t_LH增大。
2)随着(W/L)n的增大,当输出从高电平切换到低电平的时间t_HL减小。
3)传输延迟为〖t_p=(t〗_LH+t_HL)/2,变小。
原因如下:
对于输出上升沿,随着NMOS尺寸增大,输出电容C_OUT增大,上升时间主要与PMOS对C_OUT的充电有关,(W/L)p不变,则PMOS以同样的电流对输出端电容C_OUT充电,需要更多的时间才能使输出端电平切换。
对于输出下降升沿,随着NMOS尺寸增大,尽管输出电容C_OUT增大,在输出端存储了更多的电荷,但是下降时间主要与NMOS对C_OUT的放电电有关,(W/L)n增大,则NMOS以更大的电流对输出端电容C_OUT放电,输出端需要更短的时间就能使输出端发生电平切换。
通过图2-6和图2-7可以看出,
1)随着(W/L)p的增大,当输出从低电平切换为高电平的时间t_LH减小。
2)随着(W/L)p的增大,当输出从高电平切换到低电平的时间t_HL增大。
3)传输延迟为〖t_p=(t〗_LH+t_HL)/2,变小。
原因如下:
对于输出上升沿,随着PMOS尺寸增大,输出电容C_OUT增大,上升时间主要与PMOS对C_OUT的充电有关,(W/L)p变大,尽管输出端电容C_OUT变大,但是PMOS以更大的电流对输出端电容C_OUT充电,需要更短的时间就能使输出端电平切换。
对于输出下降升沿,随着PMOS尺寸增大,输出电容C_OUT存储了更多的电荷,下降时间主要与NMOS对C_OUT的放电电有关,(W/L)p增大,则NMOS以同样的电流对输出端电容C_OUT放电,输出端需要更长的时间才能使输出端电平切换。
最后,同时增大(W/L)p和(W/L)n进行tran仿真,观察输出曲线
可以观察到,等比例增大NMOS和PMOS,输出端点评切换时间几乎不变,因为输出端增大的寄生电容与因尺寸变化而产生的电流变化,等比例变化,两种效应相互抵消(也可以看成两个同样的反相器并联)
附录
程序源码(一)
*绘制NMOS输出特性曲线
*文件名称 mostest(1)
.title A MOSTEST DC RUN IDS=f(VDS,VGS)
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list
*Source
VDS NodeD 0 DC 5V
VGS NodeG 0 DC 5V
*Circuit
MN0 NodeD NodeG 0 0 nvn L=2u W=10u
*Simulation
.DC VDS 0 5 0.001 VGS 0 5 0.5
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG) I(MN0)
*
.END
*绘制NMOS转移特性曲线
*文件名称 mostest(2)
.title A MOSTEST DC RUN IDS=f(GS)
.options list node post
*Load lib
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list
*Source
VDS NodeD 0 DC 5V
VGS NodeG 0 DC 2V
*Circuit
MN0 NodeD NodeG 0 0 nvn L=1u W=2u
*Simulation
.DC VGS 0 5 0.001
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG) I(MN0)
*
.END
*测量沟长调制系数
*文件名称 mostest(3)
.title A MOSTEST DC RUN IDS=f(VDS)
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list
*Source
VDS NodeD 0 DC 5V
VGS NodeG 0 DC 2V
*Circuit
MN0 NodeD NodeG 0 0 nvn L=0.5u W=1u
*Simulation
.DC VDS 0 5 0.001
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG) I(MN0)
*
.END
程序源码(二)
*仿真转折电平与相对尺寸关系
*文件名称 inv(1)
.title A INV DC RUN FOR KP/KN
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list
*Parameter
.para WN=2u LN=1u WP=2u LP=1u
*Source
VDS vdd 0 DC 5V
VGS NodeG 0 DC 2.5V
*Circuit
MP0 Nout NodeG vdd vdd nvp L=LP W=WP
MN0 Nout NodeG 0 0 nvn L=LN W=WN
*Simulation
.DC VGS 0 5 0.001 SWEEP WP 2u 8u 0.5u
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG) I(MN0)
*
.END
*反相器最小VDD仿真
*文件名称 inv(2)
.title A INV DC RUN FOR SWEEP VDD
.options list node post
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list
*Parameter
.para WN=2u LN=1u WP=4.5u LP=1u
*Source
VDS vdd 0 DC 5V
VGS NodeG 0 DC 2.5V
*Circuit
MP0 Nout NodeG vdd vdd nvp L=LP W=WP
MN0 Nout NodeG 0 0 nvn L=LN W=WN
*Simulation
.DC VGS 0 3 0.0005 VDS 0 3 0.1
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG) I(MN0)
.END
*扫描MOS相对尺寸
*文件名称 inv(3)
.title A INV DC RUN FOR W/L
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list
*sweep W/L
.DATA CV
WP WN
80u 2u
40u 4u
20u 8u
10u 16u
5u 32u
2.5u 64u
.ENDDATA
*Source
VDS vdd 0 DC 5V
VGS NodeG 0 PULSE 0 5 50n 10n 10n 40n 100n
*Circuit
MP0 Nout NodeG vdd vdd nvp L=1u W=WP
MN0 Nout NodeG 0 0 nvn L=1u W=WN
*Simulation
.DC VGS 0 5 0.001 SWEEP data=CV
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG) I(MN0)
*
.END
*传输延迟仿真
*文件名称 inv(4)
.title A INV TRAN RUN FOR W/L
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list
*Parameter
.para WN=2u LN=1u WP=4.5u LP=1u
.para MN=1 MP=1 MM=1
*Source
VDS vdd 0 DC 5V
VGS NodeG 0 PULSE 0 5 50n 10n 10n 40n 100n
*Circuit
MP0 Nout NodeG vdd vdd nvp L=LP W=WP M=MM
MN0 Nout NodeG 0 0 nvn L=LN W=WN M=MM
*Simulation
.TRAN 100n 500n SWEEP MM 1 10 2
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG) I(MN0)
*
.END