hspiceのAC解析とノイズ解析について.
AC解析
AC解析はあるバイアス点において交流信号を与え,その周波数の振幅がそれぞれのノードでどうなるかを解析できる.
正弦波定常現象を前提としている,すなわち過渡現象ではなく十分に時間が経過した定常状態を解析していることに注意.
アンプのAC解析
次のサンプルは単純なアンプのAC解析ができる.
※汎用性のため,ampというサブサーキットを用意していることを前提.
.param _VDD = 1.2
.param _VSS = 0.0
.param _Vcom = 0.6
** voltage sources
vVSS VSS 0 '_VSS'
vVDD VDD VSS '_VDD'
** input voltage
* vVin node1 node2 AC 'amplitude' 'phaseShift[deg]'
vVin Vin 0 AC 1 0
** subckt of preamp
xamp Vin VDD VSS Vout amp
** load capacitance
cl Vout VSS 1.0f
** analysis
* .ac 'ampleNum' 'Fmin' 'Fmax'
.ac dec 1k 10k 10G
* .noise {outputNodeVol} {inputSource} {freqPointInterval}
.noise v(Vout) vVin 10
.print ac v(*)
.print noise inoise inoise(m) inoise(db)
.print noise onoise onoise(m) onoise(db)
.end
AC解析における変数の指定形式
.printや.measなどのコマンドで表示指定できる変数は次の通り
変数形式 | 表示対象 |
---|---|
v(nodeName) | 電圧の振幅 |
vm(nodeName) | 電圧の振幅 |
vr(nodeName) | 電圧の実部 |
vi(nodeName) | 電圧の虚部 |
vp(nodeName) | 電圧の位相 |
vdb(nodeName) | 電圧の振幅(dB表記) |
i(nodeName) | 電流の振幅 |
im(nodeName) | 電流の振幅 |
: | 以下同様 |
差動アンプのAC解析
次のサンプルは完全差動アンプのAC解析の例である.
※汎用性のため,ampというサブサーキットを用意していることを前提.
.param _VDD = 1.2
.param _VSS = 0.0
.param _Vcom = 0.6
** voltage sources
vVSS VSS 0 '_VSS'
vVDD VDD VSS '_VDD'
** input voltage
vVin Vin 0 AC 1 0
vVcom Vcom 0 '_Vcom'
eVinp Vinp 0 POLY(1) Vin 0 '_Vcom' 0.5
eVinn Vinn 0 POLY(1) Vin 0 '_Vcom' -0.5
eVout Vout 0 Z ZN 1
** subckt of preamp
xamp Vinp Vinn VDD VSS Z ZN amp
** load capacitance
clp Z VSS 0.5f
cln ZN VSS 0.5f
** analysis
.ac dec 1k 10k 10G
.noise v(Vout) vVin 10
.print ac v(*)
.print noise inoise inoise(m) inoise(db)
.print noise onoise onoise(m) onoise(db)
.end
差動入力の記述法
差動入力の記述法として先に思いつくのは次のような書き方であるが,電圧源が2つになるためノイズ解析の文法に当てはめられない.
vVinp Vinp 0 '_Vcom' AC 0.5 0
vVinn Vinn 0 '_Vcom' AC 0.5 180
よって,ノイズ解析と併用するときは上の例のように,AC電源は1つにしVCVSを用いて差動入力を記述する.
vVin Vin 0 AC 1 0
vVcom Vcom 0 '_Vcom'
eVinp Vinp 0 POLY(1) Vin 0 '_Vcom' 0.5
eVinn Vinn 0 POLY(1) Vin 0 '_Vcom' -0.5
コメント