如何用Hspice仿真MOS电容曲线?来自EE240的问题,大家讨论!
现在的问题是:如果需要仿真MOS Cap,则需要仿真AC电流。可以利用.ac实现单个频率点的仿真得到电流,可是如果这样的话,横坐标轴必定为频率。不知道图2中是如何实现横坐标为dc电压的?
简单的说,ac和dc扫描是如何结合,得到以上仿真结果的呢?
那你固定频率,vgs设置成变量,扫描Design variable:vgs不就好了吗。
To Kool: 扫描DC,能够得到AC值吗?
不是扫描DC,AC分析,扫描变量。把Vgs设置成变量。
Cadence是这样做的,Hspice应该也差不多的。
不难 通过电容定义就可以得到
1) C = I(ac) when V(ac) * 2 * Pi * f = 1
2) 扫描V(dc)
To Kool: 扫描Design Variable也得指定一种分析,DC/AC/Tran/Noise/OP等等。
如果不是这样,能不能详细点说明?
To bkat: 你没有明白我的意思,我的问题在于具体的仿真如何进行。
8# simpleme
可惜我的ubuntu崩溃了
不然还可以看看spectre可不可实现
不一定是hspice的结果
7# simpleme
Kool的意思是在AC分析中的变量扫描
To juliansky: AC中可以扫描变量吗?
***mos capcitor***
.option post nomod=1
.lib 'E:\work\exercise\lib\spice\ms018_v1p7.lib' TT
m1 0 g 0 0 n18 w=50u l=10u
vin x 0 0 dc=1 ac='0.5/3.1415926'
vmos x g 0
vcap x y 0
c1 y 0 100f
.op
.ac LIN 1 1 2 sweep vin -1.8 1.8 10m
.probe v(*) I(*)
.end
[img][/img]
补充说明一下,最简单的办法就是利用hspice直接将电容参数抽取出来最为简洁方便:
MOS 栅电容提取:
$ gate capacitance plots
.option dccap=1 post
m d g 0 b nch l=0.8u w=100u ad=200e-12 as=200e-12
vd d 0 0
vg g 0 0
vb b 0 0
*.dc vd 0 5 .1
.dc vg -5 5 .01
.print vds=v(d) CGG=lx18(m)
+ CGD=par('-lx19(m)') CDG=par('-lx32(m)')
+ CGS=par('-lx20(m)') CSG=par('lx18(m)+lx21(m)+lx32(m)')
+ CGB=par('lx18(m)+lx19(m)+lx20(m)') CBG=par('-lx21(m)')
+Ccc=par('CGD+CGS+CGB')
.model nch nmos
+ level=13 update=2 xqc=0.6 toxm=345.315
+ vfb0=-1 phi0=1 k1=1.0 muz=600 mus=650
+ acm=2 xl=0 ld=0.1u meto=0.1u
+
.end
谢谢hbchens,13楼的方法很有用,谢谢。
我试验了你发在12楼的代码,可是这样横轴仍然是频率,不是dc电压。不知是否有更好的办法呢?
11# simpleme
有的啊 至少在SPECTRE下面是有的
谢谢juliansky.
我已经在spectre下验证通过了,看来Hspice的功能确实弱了些,呵呵。
新手,学习学习
spectre直接用OP就可以阿,
不用这么麻烦吧
好啊 十分专业!
好书啊!
还是不懂,特别想知道
21# muchong5997 如果是放在powr和ground之间的decap电容的话,其实仿一个较长的tran应该比ac更合理对吗?因为这样用的decap最care的主要是power抖动时的电容
貌似咱讨论过 呵呵
Cds can help you extract the capacitance.
出不来结果,汗
真给力,赶快试下
直接打开dccap
需要什么电容 看下manual
lx18=cgg
lx19=cgs
lx20=cgd
等等
dc sweep 就出来了啊manual 也有例子啊
Thanks for sharing !
Thanks for sharing
有人能解决吗?小弟也想知道啊。