このページの内容は2022年1月以後保守されていません.
sonnetの結果からspiceで読み取る事のできるnetlistを抽出し,それをLT SPICEで解析する手順を紹介します

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

2018/2/9
石飛
  1. netlist抽出に必要な最低限の前提知識
  2. spiceの選択
  3. netlist抽出の例
  4. LTSPICE XVIの解析例
  5. まとめ

netlist抽出に必要な最低限の前提知識

Sパラメータからnetlistあるいは等価回路を抽出するにあたって, 最低限知っておくべきことをまとめます.

netlistモデルはSパラメータの周波数範囲外では信頼できない.

Sパラメータは有限で離散的な周波数で測定なり解析されたデータです. ところがnetlistモデルは直流から無限に高い周波数まで連続的に振る舞います. 例えば2MHzから2GHzまで50点のSパラメータに完璧に一致するnetlistを抽出したとしても,そのnetlistの2MHz未満と2GHz以上の周波数領域での振る舞いはもとのSパラメータとは関係ありません.

この問題は特に直流を含む低い周波数で問題になります. 一般にSパラメータを扱う測定器やシミュレータは直流を扱うことができませんし, Sパラメータには直流や低い周波数領域のデータが含まれていません. ところがSPICEシミュレータはどんな場合にも(自動的に内部で) netlistの直流での振る舞いに基づいて直流解析を行うので, 異常な結果を出したり解析に失敗したりする可能性があります. これに対処するためにSパラメータファイルに直接DC(とみなしうる非常に低い周波数)の値を書き加える必要があるかもしれません. Sonnet Professinalでは解析周波数としてDCを指定することができます.

EMC,EMI問題では高い周波数領域の再現が期待されることがあります. そのためにSパラメータファイルは必要な高い周波数領域のデータを含んでいなければなりません. そのSパラメータは,最終的にEMC,EMI問題を再現したいシステムと同じ境界条件や伝搬モードで評価されたSパラメータでなければならないことを忘れてはなりません. そのようなSパラメータを得ることは現実には非常に困難です.

Causality(因果律)に従わないSパラメータが多い

例えば 測定から得られたSパラメータでは 絶対値の小さいデータに対して 無視できない誤差が含まれており, netlist抽出の過程で必要な∂S11/∂freqの計算に非常に大きな誤差を生じます.

損失の小さな系の測定結果や無損失でのシミュレーションでは, しばしば√(S11^2+S22^2)が1より大きいデータが含まれます. そこから抽出されたnetlistは負性抵抗を含む可能性があり, しばしばSPICEを混乱させます.

このような問題は高周波回路シミュレータや測定器で扱う上では全く問題になりません. netlistを抽出してSPICE解析を行った時初めて問題が明らかになります.

netlistは物理モデルに基づいた等価回路ではない

ある一つのSパラメータファイルと等価なnetlistをだた一つに決めることは原理的にできません.例えば2つの共振周波数を持つ系を4つのリアクタンスを持つ完全に等価な回路は3つあります. 多数の素子を含む系では完全に同じ特性の多くのnetlistが存在し得ます.

物理的な材料や構造との対応を説明したり,回路の動作を理解しやすくするために使われる 等価回路は 同じ特性を持った多くの回路の中の一つに過ぎません.

Sonnetのbbextractでは, 抽出アルゴリズムで扱いやすい 複雑で大規模な回路が SPICEで可読なnetlistとして出力されます. 恐らくそのどこを取り出しても人間には理解できない回路になるでしょう.

物理モデルに基づいた等価回路抽出には

物理的な材料や構造との対応を説明したり,回路の動作を理解しやすくするための 等価回路が必要な場合は,等価回路の形(トポロジ)を指定し, 抽出アルゴリズムをその都度開発しなければなりません. 需要の多い分野では専用の抽出アルゴリズムを使ったシステムが製品化されています. もし,キャパシタやインダクタの自己共振周波数やアンテナの等価回路が望みなら,単純な並列または直列共振回路で再現でき,その抽出に専用のソフトウェアは必要ありません.

Sonnetのbbextractには スパイラルインダクタやトランスの等価回路抽出に適した Inductor Model Fileが含まれています.

Sonnet Liteには, 波長よりずっと小さなコネクタやviaの等価回路に適したPI-Modelと 波長よりずっと小さな断面で,波長と同程度か長い多条線路のRLGC等価回路を抽出するN-Coupled Lie Modelが用意されています.


spiceの選択

LTSPICE XVI

これを書いている2018年の時点で最も多く使われているSPICEと思われます. 無料で使用でき,日本語のマニュアルや資料,書籍が豊富です.

PSPICE

有料ですが,日本代理店から技術サポートを受けることができます. Sonnetのbbextractが正式にサポートしています.

H-SPICE

大規模な回路開発で多く使われているますが,高価です. sonnetのbbextractが正式にサポートしています.

UCBK(University of California Berkeley) SPICE(the Simulation Program with Integrated Circuit Emphasis)

これがオリジナルのSPICEです. ソースファイルもドキュメントも無料です. 現在ではこのUCBK SPICEを直接使用することはあまりないでしょう. しかし他の全てのSPICEはこのUCBK SPICEとの互換性を保っているので, UCBK SPICEのドキュメントやアルゴリズムを理解することは有益です.


netlist抽出の例

電磁界解析のポート

右の図は差動線路の電磁界解析モデルの一例です. このモデルのような線路の短い部分や,コネクタ,via等は波長よりずっと小さいので Sonnet Liteに含まれる PI-Model で良い結果を得られる場合が多いです.


差動線路はグランド導体を含めて5つの外部端子を持っています. sonnetでは右図のようにそれらの端子に付与するポート番号を変更することで 差動,同相あるいはそれらの混在モードを解析することができます.


しかしnetlist抽出を行う場合は,右図の様にグランド端子を除く全ての端子に別のポート番号を付与してください.負(マイナス)のポート番号を使ってはいけません.



抽出モデルのトポロジ

Sonnetでnetlistを抽出する時emgraphの[Output]メニューには右図のようにサブメニューがあります. 下表にこれらの意味をまとめました.


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

PI-Modelの抽出

左図のように [Output]-[PI-Model File...]を選んでください.


Data Typeはほとんどの場合[De-Embedded]がよいでしょう. 小型アンテナでは[not De-Embedded]のほうが良いかもしれません.

PI-Modelの場合, [Include Adaptive Data]のチェックは外しておいてください. 左の図で黒く反転した部分に "SON4f6e_0というsubcktは20~112MHzのSパラメータから抽出された" と書いてあります.

* Analysis frequencies: 20.0, 112.468265 MHz
.subckt SON4f6e_0 1 2 3 4 REF

PI-Modelによるnetlist抽出では 周波数ごとに異なるsubcktが抽出されます.


左図は上述の netlist抽出に適したポートを与えたモデルの解析結果です. グラフでは6つの周波数にマーカーが置かれています. sonnetではこのマーカーのある周波数が厳密に電磁界解析を行った周波数で,それ以外はABSというSonnet社独自の補間を行ったデータです. 低い周波数と二番目に低い周波数のマーカーが上記の

* Analysis frequencies: 20.0, 112.468265 MHz

と一致していることに注意してください. 他のマーカー同士の間でもそれぞれに異なるsubcktが抽出されますが, 左のグラフから分かるようにこのグラフは10GHz以下では直線的に変化しており, どの周波数領域から抽出したsubcktでも大差はなかろうことが予想できます. このようなモデルではPI Modelが適しています.


[Model Options]をクリックすると別のダイアログが開きます.

左のダイアログはnetlist抽出にあたってSonnetが無視する値の設定です. 例えば1000Ωより大きな抵抗, 0.01pFより小さなキャパシタ, 100nHより大きなインダクタは単に絶縁されているとみなします. これらのデフォルトの設定はマイクロ波周波数領域で一般的な設定です. 目的に応じて適切な値に変更する必要があります. 例えば13.56MHzのRFIDでは[Lmax]をより大きな値にしなければ,RFIDのインダクタが無視されてしまいます.


このダイアログを[Close]で閉じ,一つ前のダイアログで[Save]を選んで, netlistファイルを保存してください. ここでは4p_pi.libという名前で保存しました.

netlistファイルは単なるASCIIファイルです.メモ帳などのエディタプログラムで開いて内容を確認してみてください.


bbextractモデルの抽出

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

上記の差動線路のモデルから抽出したbbextractモデルに 4p_bb.libという名前を付けました.



LTSPICE XVIの解析例

ここでは, netlistファイルをLT-SPICEに読み込み時間軸解析する様子を紹介します.

シンボルを定義する

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

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

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

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

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

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

シンボルを読み込む

[File]-[New Schematic]で新しい回路の定義を始めます.

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

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

netlistの読み込み

重要

Sonnetで抽出したnetlistファイル

は この上で定義した回路と同じ場所に保存しておいてください.

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

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

Sonnetで抽出したnetlistファイル

のどちらかを選択してください.
そして[Open]ボタンで,netlistファイルを開きます.

重要

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

  • bbextractで抽出した4p_bb.libでは.SUBCKTは一つだけです.
  • PI Modelで抽出した4p_pi.libでは 多くの".SUBCKT"があります.対応する周波数領域に注意して設定してください. 右図では例として632MHzから3.5GHzの"4p_pi_2"を拡大表示しています.

ファイルを閉じ,ダイアログを[OK]で閉じてください. これで,回路にnetlist 4p_pi.lib (か4p_bb.lib )を読み込ませる設定ができました.必要なら複数の".inc"を置いて,複数のnetlistを読み込ませることもできます.

シンボルとnetlistを関連付ける

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

回路を入力し解析する

あとは,通常のSPICEの回路入力です. 任意の回路を設定して解析できます.

右の例では周囲1nSecの差動パルスを与えています. fftで非常に高い周波数の高調波も表示していますが, どの周波数領域まで正しいかは次のことを考慮して判断してください.

  • この一連の例に使ったSパラメータファイルは20GHzまでのデータしか含んでいない,bbextractで抽出した場合は20GHzまで正しい.
  • PI Modelでは632MHzから3.5GHzの"4p_pi_2"のSUBCKTを選択したので1GHzの基本波と3倍高調波まで正しい.

まとめ