為什麼這篇Hspice parameter鄉民發文收入到精華區:因為在Hspice parameter這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者CL2NE1 (CL)看板Electronics標題[問題] HSpice 參數輸出問題 .pa...
大家好
想請教關於.param 參數輸出的問題
如下spice檔
主要是逆向操作 藉由輸入暫態電流值
設通道遷移率 Un Width Length Vt ... 等數值已知
求出氧化層電容 Cox
**** for simulation
.option post
.param Wn=100u Ln=1u kn=75.3678u vt=0.570887 lambda=0.0026049
$ Wn Ln->MOS's width/length
.param vdss=1.2 vgss=1 IF=0 RR0=10 Un=500
.subckt large_signal drain gate source
.if (vdss == 0 || vgss == 0)
gds drain source cur='0'
.elseif (vdss < (vgss-vt))
* gds drain source cur='kn*(Wn/Ln)*(vgss-vt-(vdss/2))*vdss'
.param Cox=IF/(Un*100*((1-vt)-(vdss/2))*vdss)
.elseif (vdss>=(vgss-vt))
* gds drain source cur='0.5*kn*(Wn/Ln)*pwr((vgss-vt),2)*(1+(lambda*vdss))'
.param Cox=IF/(0.5*Un*100*pwr((1-vt),2))
.else
* gds drain source cur='0'
.endif
.ends
xt drain gate source large_signal
vds drain 0 dc 0
vgs gate 0 dc 3
vss source 0 dc 0
.dc vds 0 2 1
.probe i(xt.gds) Cox=par('Cox')
.print i(xt.gds) Cox=par('Cox')
.alter
.param IF= 0.00123
.alter
.param IF= 0.00123
.alter
.param IF= 0.00123
.alter
.
.
.
.
.end
debug後沒有error
但卻有如下所述
.param cox=if/(un*100*((1-vt)-(vdss/2))*vdss)
**warning** command in if ... else ... block defined in
subckt, ignored.
.elseif (vdss>=(vgss-vt))
gds drain source cur='0.5*kn*(wn/ln)*pwr((vgss-vt),2)*(1+(lambda*vdss))'
.param cox=if/(0.5*un*100*pwr((1-vt),2))
**warning** command in if ... else ... block defined in
subckt, ignored.
撰寫的cox參數 直接被忽略掉
想請問關於if判斷式內 是否不能直接設定參數定義
以及 .probe Cox=par('Cox') 這寫法應該是正確吧?
感謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.17.10.169