スポンサーリンク

hspice .measの記述

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

コメント

タイトルとURLをコピーしました