sonnetの結果からspiceで読み取る事のできるnetlistを抽出し、 それを一般的なspiceで時間軸解析を行う手順を紹介します.

トップ/ サポート/ TIPS/ sonnetとspiceをリンクした解析例

2006/1/30
石飛

  1. spiceの選択
  2. 電磁界解析とネットリスト抽出
  3. LT-SPICEでの時間軸解析の例
  4. 5spiceでの時間軸解析の例
  5. まとめ

spiceの選択

現在では非常に多くの、多機能なspiceを入手することができます. 代表的なspiceの入手法を紹介します

UCBK Spice

これがオリジナルのSPICEです. 無料でソースファイルをダウンロードできます. マニュアルもありますが全てが英語で、 実行にはunixと互換性のある開発環境が必要です. もちろん、マウスとは無縁で、全てをエディタで入力して、コマンドラインや スクリプトを組んで操作します. ちょっと気軽に試してみる、、、タイプのプログラムではありません.

H-SPICE

IC回路設計などにたぶん一番使われていると思います.Sonnetのbbextractが正式にサポートしています. が,高価です.ちょっと気軽に試してみるわけにはいきません.

OrCAD/PSPICE

おそらく日本で一番多く使われていると思います.有料ですが、 日本語のマニュアルや、 日本代理店から技術サポートを受けることができます. Sonnetのbbextractが正式にサポートしています. 但し、雑誌や書籍の付録から入手できる無料版には回路規模制限があるので Sonnetのbbextractが抽出したネットリストを扱うことはできません.

製品版をお持ちのかたは、下記の例題をpspiceで実行できると思います.

5SPICE

個人利用は無料です.継続的な商用利用には有料の登録が必要ですが、$199です. Sonnetのbbextractは正式にはサポートしていませんが 回路規模の制限は無く Sonnetのbbextractが抽出したネットリストを扱うことができます.

下記に実際の操作の例を紹介します.

LTSPICE IV

LINEAR Technology社が無料で配布しています. 国内で使っている人が多く、日本語の資料がネット上にあります. Sonnetのbbextractは正式にはサポートしていませんが 解析規模制限が無く、 Sonnetのbbextractが抽出したネットリストを扱うことができます.

下記に実際の操作の例を紹介します.

電磁界解析とネットリスト抽出

電磁界解析モデル

ここでは例題として、単純なスタブを取り上げます. スタブの長さは1.6GHzの1/4波長です. ex.zon

何の変哲もなさそうなモデルですが、 これはProfessional版でなくては解析できません. 解析周波数としてDC(とみなせるほど低い周波数)と10Mhzから3decadeにもおよぶ広帯域な解析を指定しているからです. 一般の高周波用電磁界シミュレータはDCの特性を解析できませんし、これほどの広帯域の解析は困難です.
Spiceの解析は本質的に広帯域な特性を表現するので、その元になるデータも 高周波電磁界シミュレータにとっては厳しいほどに広帯域なデータを含む必要があります.


抽出モデルのトポロジ

Sonnetは解析結果を次の形式で出力できます. ここでは下表の中から PI-Model File...Broadband Model File... 例に説明します.

サブメニュートポロジ長所短所
S,Y,Z Parameter File...トポロジはありません.S,Y,Zパラメータの周波数特性が表形式で記録されます. Sonnetのすべてのグレード,他社のほとんどの高周波用シミュレータや測定器で相互に利用できます. ほとんどのSPICEでは使用できません.使用できる場合もSPICEでの解析負荷が重い場合があります.
PI-Model File... シンプルなπ型の回路トポロジです. 概ね1/20波長以下の大きさの構造をモデル化できます. Sonnetのすべてのグレードで使用できます. ほとんどのSPICEで使用できます. 波長に対して無視できない大きさの構造では大きな誤差が生じる可能性があります.
N-Coupled Line Model File... Cadence Virtuoso のmtline モデルです. 互いに結合した複数の伝送線路をRLGC等価回路の行列で表現します. 波長に比べて無視できない長さから,非常に長い線路まで使用できます. 高速デジタル信号の時間領域での解析に適したモデルをコンパクトに表現できます. 限られたSPICEでしか使用できません.抽出元になるモデルの構造やポート番号の付与順に制約があります.伝送線路と見なす事ができない構造では大きな誤差が生じるか,抽出そのものができません.
Broadband Model File... 多量の線形回路素子が 非常に複雑に接続された大規模な回路トポロジです. DCから非TEMモードが発生する周波数領域まで非常に広帯域に使用できます. ほとんどのSPICEで使用できます. 波長に対して無視できない大きさの構造では抽出した回路規模が巨大になる場合や,抽出に長い時間がかかる可能性があります. 解析結果と出力データの間の偏差が生じる恐れがあります. 特に損失の少ないモデルでは変換条件を細かく指定する必要があります. 製品版のbbextractのライセンスが必要です.
Inductor Model File... スパイラルインダクタやトランスの一般的な等価回路です. 高周波半導体中で使われるスパイラルインダクタの特性を 高精度且つコンパクトに表現できます. ほとんどのSPICEで使用できます. 製品版のbbextractのライセンスが必要です.

pi-modelの抽出

pi-modelはSonnet Liteにも実装されている一番単純な等価回路の抽出法です. この方法の問題点は抽出された等価回路が、狭い周波数範囲でしか信頼できない 事です.

  1. 操作は簡単です. 右図のようにグラフを表示しておいて、 [Output]-[PI model file]です.


  2. PI model fileでは 周波数毎に多くの.subcktが生成され、 周波数毎に別の名前が自動的につけられます.

    [Save]ボタンをクリックすると、ファイル名を指定するように促されるので、 名前をつけて保存します. ここではex_pi.libという名前にしました.


bbextractモデルの抽出

bbextractモデルを抽出するには[Output]-[broadband model file]です. 詳しくは Sパラメータファイルから広帯域Spiceモデルを作る操作方法 に説明してあります. ここではex_bb.libという名前で保存します.

LT-SPICEでの時間軸解析の例

ここでは、 Sonnetのbbextractが抽出した広帯域なネットリストex_bb.libを LT-SPICEに読み込み時間軸解析する様子を紹介します.

2010/12/22追加

シンボルを定義する

[File]-[New Symbol]を選んで新しいシンボルの定義を始めます.
[Draw]-[Rect]を選んで適当な長方形を描きます.

[Edit]-[Add Pin/Port]を選んで、端子を設定します.
Labelは回路図に表示されるピン番号
Netlist Orderは対応するSUBCKTの端子の順序
Pin Label Justificationは回路図上のピンの表示位置です.

必要な数の端子を定義します. この例では 2port Sパラメータに対応するシンボルなので 三つの端子を定義し、三番目の端子はcommonという意味で"c"というlabelにしました.

[Edit]-[Attributes]-[Edit Attributes]を選んで、 シンボルの属性を定義します.
Symbol Typeは "Block"
Prefixは必ず X にしてください
Descriptionはなんでもいいです.ここでは "s2p"としました.

[File]-[Save As]で名前をつけて保存します.
保存場所は、この後作る回路を定義したファイルと同じ場所でなければなりません. 何処に保存したかを自分でしっかり把握しておいてください.
名前は、何でもいいです.ここでは "s2p"としました.

これでシンボルの定義は終わりです.[File]-[Close]で ファイルを閉じてしまいましょう.

回路を定義する

[File]-[New Schematic]で新しい回路の定義を始めます.
[Edit]-[Component]を選び、voltage すなわち電圧源を回路に追加します.

同様に抵抗も追加します.

重要
ここで一旦、 [File]-[Save As]で名前をつけて保存してください.
保存場所は、この上で定義したシンボルと同じ場所でなければなりません.

[Edit]-[Component]を選び、先ほど定義したシンボルを追加します.
右上端の▼をクリックすると、デフォルトのシンボル群の他に 上で保存した場所もブラウズできますから、 そこから先ほど定義したシンボルを選択します.

グランドも追加し、右図のように配線してください.

ネットリストの読み込み

重要
Sonnetのbbextractが抽出したネットリスト ex_bb.lib は予め この上で定義した回路と同じ場所に保存しておいてください.

[Edit]-[SPICE Directive]を選びます.
How to netlist this textは[SPICE directive]にチェックし、
その下の枠には ".inc"と入力して
[OK]ボタンで閉じてください.

回路図の適当な場所に".inc"という文字が現れます.
この上で右クリックすると、再びダイアログが現れます.
今度はHow to netlist this textとして [SPICE .inc directive]にチェックし
[Browse]ボタンをクリックしてください.

Sonnetのbbextractが抽出したネットリスト ex_bb.lib を選択してください.
そして[Open]ボタンで、ネットリストファイルを開きます.

重要
スクロールして ".SUBCKT" という文字列で始まる行を探してください. その行の二番目の単語がこのネットリストが定義する特性の名前です. これは後で必要になります. 右図の例では "ex_bb"です.

シンボルとネットリストを関連付ける

回路ブロックのシンボルを右クリックしてください.
[Value]に上記の ネットリストが定義する特性の名前を指定してください. 右図の例では "ex_bb"です.

信号と解析条件を定義する

電圧源のシンボルの上で右クリックしてください.
さらに[Advanced]ボタンをクリックします.
そして信号源の波形なり振幅なりを指定してください. ここでは周期3.125nSecのパルスとしてあります. これは320MHzです.

注意:波形に含まれる周波数成分についてよく検討してから信号波形を設定してください.信号波形に含まれる周波数成分が,元の電磁界解析結果に含まれるように注意してください.

[Simulate]-[Run]か、右クリックして[Edit Simulation Cmd.]を選ぶと、 解析条件の指定ダイアログになります.
ここでは時間軸に沿って55nSecまでのTransient解析を指定してみました.

5spiceでの時間軸解析

ここではSonnetのbbextractが抽出した広帯域なネットリスト ex_bb.libと 狭帯域なpi-modelを 5spiceに読み込んで、 時間軸解析し、結果の違いを示します

まず、sonnetで作った ex_pi.libex_bb.libを spiceに認識させねばなりません. 5spiceの場合は、

C:¥Documents and Settings¥All Users¥Application Data
	¥5Spice Analysis¥Library¥SubCircuits
  にlibファイルを置いて、右図のように [Tools]-[Rebuild Spice Libraly..]を選んで、 ライブラリリストを更新します.

右のモデルでは、EX SUB3というブロックがsonnetで解析した結果から抽出した ネットリストで、 それに、50Ωの電圧源と負荷を接続してあります. 電圧源は周波数320MHzの矩形波で、振幅は0-2Vです.

右図は最も低い周波数のpi-modelを使った解析結果です. 赤が入力側、青が出力側です. この系ではインピーダンス整合がとれているので反射はありませんが、 入力側と出力側の時間差があります. また、出力波形はなだらかで、高周波成分が失われていることがわかります.

右図では、1.6GHz付近のpi-modelを使った解析結果です. 上の図とは似ても似つきません. pi-modelで抽出したnetlistでは、 信号周波数に対して適切な周波数から抽出したnetlistを選択しないと、 大きく誤った結果になってしまいます.

右図は bbextractを使った解析結果です. 信号レベルや、入出力の時間差は pi-modelとほぼ同じですが、 全体に波形の解像度がくっきりと見えます.

この信号波形には320MHzの奇数倍の高調波が含まれますが、 5倍高調波だけが、スタブの影響で阻止されています. 右図の出力側の波形(青)は5倍高調波成分が失われて 立ち上がり立下り時間が遅くなっていますが、 より高次の高調波が再現されているので、 波形は正弦波よりも台形に近い形になっています.

まとめ