hspiceのmeas(measure)コマンドの記述例まとめ.
measコマンド
.probeや.printのような波形ビューワーで出力を確認する方法とは異なり,
必要な結果のみを取り出すのに.measコマンドが便利である.
.measの出力結果の拡張子は.mt#であり,{fileName}.mt#で出力を確認できる.
基本的な文法は
.meas tran/dc/ac {valueName} ...
であり,tran/dc/acは解析コマンド(.tranや.acなど)の後に用いれば省略可能である.
{valueName}は変数名であるため何でもよい.
find {par} at 記法
過渡解析時は時間,DC解析時は電圧,AC解析時は周波数をatの後に入れる.
.meas vout find v(vout) at 0.6
.meas iout find i(iout) at 0.6
.meas vc find par('v(2)-v(1)') at 0.6
find {par} when 記法
whenの後は単純に等式か信号の遷移を検出するコマンドがくる.
rise=#の#は何回目の遷移であるかを表す.
.meas tran find par(v(3)-v(2)) when v(1) val='0.5*_VDD' rise=1 from=10n to=20n
.meas tran find par(v(4)-v(3)) when v(1)=v(2) from=10n to=20n
find {par} をなしにするとwhen以降の条件が満たされたときのx軸値(過渡⇒時間,DC解析⇒電圧値,AC解析⇒周波数)が出力される.
次の例では遷移した時間やオフセット電圧,ゲインが1となる周波数を取得する.
以下の例もfrom=t1, to=t2で時間制限が可能.
.meas tran riseTime when v(vout) val='0.5*_VDD' rise=3
.meas tran fallTime when v(vout) val='0.5*_VDD' fall=2
.meas tran crossTime when v(vout) val='0.5*_VDD' cross=last
.meas dc offset when v(vout+)=v(out-)
.meas ac freq when v(vout)=1
最大値,最小値,平均,RMS値,PeakToPeak値
次は過渡解析時の記述例.
DC解析(tran⇒dc),AC解析(tran⇒ac)時も使用可能.
.meas tran voutmin MIN v(vout) from=10ns to=20ns
.meas tran voutmax MAX v(vout) from=10ns to=20ns
.meas tran voutavg AVG v(vout) from=10ns to=20ns
.meas tran voutrms RMS v(vout) from=10ns to=20ns
.meas tran voutpp PP v(vout) from=10ns to=20ns
TRIGとTARG
fromやtoのイベントトリガーver.
次の例では,立ち上がり遷移時間を取得できる.
.meas tran tr TRIG v(vout) val='0.1*vdd' rise=1
+ TARG v(vout) val='0.9*v(vout)' rise=1
消費電力の測定
サブサーキットの消費電力の保存.
.meas tran power AVG P(xamp) from=0n to=10n
パラメータ出力
.meas {valueName} param='{eq}’で変数を出力できる.
例のように電圧値や電流値を出力したり,他の.measで取得した変数を参照できる.
.meas iout param='i(vout)'
.meas iout param='v(vdd)/iout'
微積分値
.meas tran slewRate deriv v(out) at=5n
.meas dc gain deriv v(out) at=0.5
.meas tran charge INTEG i(out) from=5n to=10n
連続(continuous)モード
連続モードでは上記の例とは違い複数の結果を返す.
次の例ではtranではなくtran_contとなっており,出力結果も2回目以降の立ち上がり時刻が全て出力される.
.meas tran_cont riseTime when v(vout) val='0.5*_VDD' rise=2
コメント