DC
シミュレーション
2004 年 12 月
この文書に含まれる情報は予告なしに変更されうるものです。 アジレント・テクノロジーはこの文書に関して、商業性および特定の目的への適合性の暗示的な保証 を含む、いかなる種類の保証もしません。アジレント・テクノロジーはここに含まれる誤りや、この 文書の配布、上演、利用に関連する付随的あるいは結果的な損害に責任を持つものではありません。 保証 このソフトウェア製品に適用される特定の保証条件のコピーは、アジレント・テクノロジーの担当者 に請求することが出来ます。
Restricted Rights Legend
Use, duplication or disclosure by the U.S. Goverment is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 for DoD agencies, and subparagraphs (c)(1) and (c)(2) of the Commercial Computer Software Restricted Rights clause at FAR 52.227-19 for other agencies.
Agilent Technologies 395 Page Mill Road
Palo Alto, CA 94304 U.S.A.
Copyright c°1998-2004, Agilent Technologies. All Rights Reserved.
Acknowledgments
Mentor Graphics is a trademark of Mentor Graphics Corporation in the U.S. and other countries.
Microsoft r°, Windows r°, MS Windows r°, Windows NT r°, and MS-DOS r° are U.S. registered trademarks of Microsoft Corporation.
Pentium r° is a U.S. registered trademark of Intel Corporation. PostScript is a trademark of Adobe Systems Incorporated. UNIX r° is a registered trademark of the Open Group. JavaTM is a U.S. trademark of Sun Microsystems, Inc.
目次
第1章: DCシミュレーション 1-1 DCシミュレーションの実行. . . 1-2 例(ADSのみ) . . . 1-2 BJTのシミュレーション . . . 1-3 パラメータの掃引 . . . 1-4 DCシミュレーションの説明. . . 1-7 シミュレーションの仮定 . . . 1-8 他のシミュレーションにおける DCシミュレータの効果 . . . 1-8 DCシミュレーションコントローラ . . . 1-9 RFDE でのアノテーションデータの保存. . . 1-9 ADSでの掃引の設定 . . . 1-10 RFDE での掃引の設定 . . . 1-11 シミュレーションパラメータの定義 . . . 1-13 スケマティック上での収束モードの設定(ADSのみ) . . . 1-19 シミュレーションのトラブルシューティング . . . 1-20 回路が予想通りに振舞わない . . . 1-21 シミュレーション時間 . . . 1-21 iiiシミュレータが収束に失敗したとき . . . 1-22 I-V曲線の結果が予想通りでないとき . . . 1-24 DC オープン回路のエラーをなくす. . . 1-25 トポロジチェックの失敗 . . . 1-26 許容値パラメータの調節 . . . 1-28 相対電流許容値,絶対電流許容値 . . . 1-29 相対電圧許容値,絶対電圧許容値 . . . 1-29 索引 Index-1 iv
第
1
章
:
DC
シミュレーション
DCシミュレーションコントローラは、被試験デザイン(DUT)の直流動作特性を計算します。すべ てのRF/アナログシミュレーションの基礎であり、DC解析はすべてのRF/アナログ設計で使われま す。DC 解析はトポロジチェックと直流動作点の解析を行い、回路の消費電力の解析も含まれます。 シミュレータは、回路方程式系を構築し、それを数値的に解くことで、回路の特定の刺激に対する応 答を計算します。DC シミュレーションは、この解析を次のように遂行します: • 非線形常微分方程式 (ODE)系を解きます。 • 平衡点を求めます。 • すべての時間導関数は一定(ゼロ)です。 • 非線形代数方程式系です。 DCシミュレーションを1 つあるいはそれ以上のパラメータを掃引するように設定し、例えばシミュ レートされたモデルの直流伝達特性(I-V曲線)を実際の測定と比較することで、モデルパラメータを 検証するようなタスクを行うことができます。Advanced Design Systemの環境では、DC Simulation コンポーネントはSimulation-DCパレット にあります。
Analog Design Environmentでは、DC SimulationはADSsim シミュレータの解析の選択肢のひと つです。
DCシミュレーションの詳細は、次のトピックを参照してください。
• 1-2ページの「DCシミュレーションの実行」は、DCシミュレーションに必要な最小限の設定
です。
• 1-2ページの”例(ADSのみ)”には、詳細なDC シミュレーションの設定、ひとつの直流点を 計算する例、変数を掃引してIV曲線の集合を生成する例があります。 • 1-7ページの「DCシミュレーションの説明」は、DCシミュレーションの過程の簡単な説明 です。 • 1-9ページの「DCシミュレーションコントローラ」は、DCシミュレーションコントローラの タブとフィールドについての詳細を与えます。 • 1-20 シミュレーションのトラブルシューティングは、シミュレーションの改善のしかたについ ての示唆を提供します。
DC
シミュレーションの実行
まずデザインを作って、電流プローブを追加し、データを収集したいノードに識別名をつけてくだ さい。 うまく解析するには: • スケマティックにDCシミュレーションコンポーネントを追加します。シミュレーションコン ポーネントのデフォルト設定を編集しなければ、回路に適用された電流プローブとノードにつ いて、回路中のほかの部品の設定にもとづいて値が計算されます。 • ある範囲で掃引、例えば入力電圧を可変したり、抵抗値を変化させたりするには、シミュレー ションコンポーネントをダブルクリックして sweepタブを選んでください。掃引するパラメー タの名前を入力し、掃引の形式を選んで範囲を入力します。 各フィールドの詳細は、開いたダイアログボックスからHelp をクリックしてください。例
(ADS
のみ
)
DCシミュレーションの設定、実行のしかたを説明する2つの例があります。 • 1-3ページの「BJTのシミュレーション」は、BJTの単一の直流バイアス点を計算するやり方 を示します。 • 1-4ページの「パラメータの掃引」は、シミュレーション中に1 つあるいは複数の回路パラ メータをある値の範囲で掃引するやり方を示します。 1-2 例 (ADS のみ)BJT
のシミュレーション
Figure1.1は、BJTのDCシミュレーションのセットアップを示します。このシミュレーションは 単一の直流動作点を計算します。 注 このデザインDC1.dsn は、Tutorial/SimModels prjの下の Examplesディレクトリにありま す。結果はDC1.ddsです。 Figure 1.1 シングルポイントDCバイアスシミュレーションのセットアップ シングルポイントDC シミュレーションを行うには、 1. Sources-Freq Domainパレットから、V DCを選んでください。スケマティックに直流電 圧源を置いてコレクタ電圧を与え、必要に応じて電圧を修正してください。 例(ADS のみ) 1-3注 必ず信号源がワイヤかノード名接続(Insert > Node Name)のどちらかによってつな がっているようにしてください。
2. Sources-Freq Domainパレットから、I DCを選んでください。スケマティックに信号源 を置いてベース電流を与え、必要に応じて電流を修正してください。
3. Probe Componentsパレットから、I Probeを選んでください。この電流プローブを回路 の適切な位置に置いてください。 4. Simulation-DCパレットから、DCシミュレーションコンポーネントをスケマティックに置 いて、必要に応じてパラメータやオプションを編集してください。 5. OKをクリックして変更を承認し、ダイアログボックスを閉じます。 6. Simulateを実行します。シミュレーションが終わるとすぐに次のDCシミュレーションオプ ションを実行することができます。 • スケマティック上のすべてのノードの電流と電圧の直接的な表現を得るには、Simulate > Annotate DC Solutionを選びます。
• デバイス単体の詳細を得るには、Simulate > Detailed Device Operating Pointまたは Brief Device Operating Pointを選び、十字が現れたらそのデバイスをクリックします。 • アノテーションを消すには、Simulate > Clear DC Annotationを選びます。
7. データディスプレイで、シミュレーションのデータは直流電流と電圧のリストとして表現され ます。
パラメータの掃引
DCのバイアス掃引または変数掃引シミュレーションを行うことで、温度やバイアス供給電圧のよう な掃引パラメータに対して回路の動作点を調べることができます。結果のデータはカーブトレーサの 表示に似せてプロットできます。 Figure1.2は、MOSFETの理想的な掃引DCバイアスシミュレーションを行うセットアップを示し ています。Vdd とVgg がある電圧範囲に渡って掃引されます。結果は、様々なゲート電圧の値に対す るドレイン電流対ドレイン電圧を示す曲線の集合になります。 1-4 例 (ADS のみ)注 このデザインDC2.dsn は、Tutorial/SimModels prjの下の Examplesディレクトリにありま す。結果はDC2.ddsです。 Figure 1.2 掃引DCシミュレーションのセットアップ例 注 この例はモデルを参照して使っています。パラメータ cellsはbinningと呼ばれる抽出パラメー タに対応し、この特定のモデルの電気的特性を反映します。cellsの数値はVarEqnコンポーネントで 定められています。 理想的な掃引DCバイアスシミュレーションを行うには、 1. Sources-Freq Domainパレットから、V DCを選んでください。このV DCコンポーネ 例(ADS のみ) 1-5
ント(SRC1)をデバイスのベースとグランドの間に置いてください。このコンポーネントを編 集して、ひとつの数値ではなく Vdc=Vgg1と定義してください。 2. もうひとつのV DCコンポーネント(SRC2)をデバイスのドレインとグランドの間に置いてく ださい。このコンポーネントを開いてひとつの数値ではなくVdc=Vdd1と定義してください。 これによりこの値を掃引することができます。すべての掃引パラメータは、後で示すように式 によって理想化されていなければなりません。
3. Probe Componentsパレットから、I Probeを選んでください。ドレインとSRC2の間に
プローブを置いて、名前を変えたければ変えてください (ここではProbe1と呼びます)。 4. DCコンポーネントでSweepタブを選んで掃引パラメータを次のように修正します: • Parameter to sweep = Vdd1 (このパラメータの表示をオンにしていると、スケマティッ ク上でSweepVarとして現れます。) 注 この欄で入力した変数は、スケマティック上で引用符付きで現れます。スケマティッ ク上(この場合、DC コンポーネントのSweepVar宣言の右側)で直接変数を入力するな ら、その変数を二重引用符で囲まなければなりません。これは、以降のステップで示す他 のユーザ定義変数についても適用されます。 • Start = 0 • Stop = 6 • Step = 0.1 5. OKをクリックして変更を承認し、ダイアログボックスを閉じます。 6. Simulation-DCパレットを選択し、PSWP (ParamSweep)を選んでください。スケマティッ ク上にこのコンポーネントを置いて次のように編集してください: Sweepタブ: • Parameter to sweep = Vgg1 • Start = 2 • Stop = 3 • Step = 0.25 Simulationsタブ: • Simulation 1 = DC1 (このパラメータの表示をオンにしていると、スケマティック上で SimInstanceName[1]として現れます。) 7. OKをクリックして変更を承認し、ダイアログボックスを閉じます。
8. Data Itemsパレットを選択し、Var eqn (Variables and equations)を選んでください。ス ケマティック上にこのコンポーネントを置いて次の式を入力してください: • Vdd1 = 4 • Vgg1 = 2.5 9. OKをクリックして変更を承認し、ダイアログボックスを閉じます。 10. シミュレートしてください。シミュレーションが終わったら、プローブ電流(Probe1.i)をプ ロットしてください。結果として現れる、様々なゲート電圧の値に対するドレイン電流対ドレ 1-6 例 (ADS のみ)
イン電圧を示す曲線の集合を次に示します:
DC
シミュレーションの説明
DCコントローラは、シングルポイントおよび掃引の両方のシミュレーションができます。掃引変数 は、電圧または電流源の値や、その他のコンポーネントパラメータの値と関連付けることができます。 DCバイアス掃引または変数掃引シミュレーションを実行することにより、温度やバイアス電源電圧 などの掃引パラメータに対する回路の動作点を確認できます。 DCコントローラは次のようなことに使います: • 被試験デザイン(DUT)の適切な直流動作特性を検証。 • 回路の消費電力を決定。 • モデルの直流伝達特性(I-V 曲線)を実測値と比較してモデルパラメータを検証。 • シミュレーション後の電圧および電流を表示。 • DCバックアノテーションのデータを与えます。 DCシミュレーション技術は、解に向かって数学的に収束する反復過程によっています。非線形常微分 方程式(ODE)系を使って、下に述べる仮定のもとに回路を記述した線形/非線形代数方程式の平衡点 を求めます。掃引を行うと、掃引の最初の点で収束のテストが行われ、残りの掃引は無効になります。 DC シミュレーションの説明 1-7シミュレーションの仮定
直流電圧と電流は、ゼロ周波数の信号と考えられます。DCシミュレーションを行うとき、シミュ レータはこの概念を用い、次の条件が適用されます: • 独立信号源は、一定値となります。 • 線形素子は、ゼロ周波数での(実数)コンダクタンスに置き換えられます。 • キャパシタ、マイクロストリップギャップ、交流結合線路、および類似のものは、オープン回路 として扱われます。 • インダクタ、導電性の不連続部、および類似のものは、仮想的なショート回路となります。 • 時間導関数は一定(ゼロ)です。 • 伝送線路は、その長さ、断面積、導電率から計算される直流コンダクタンス値に置き換えられ ます。 • 散乱パラメータ(Sパラメータ)ファイルには、直流で正しく動作させるため、ゼロ周波数の データが含まれていなければなりません(これはharmonic balance解析にも必要です)。さも ないと、シミュレータは各Sパラメータをゼロ周波数の場合に外挿し、その実部を直流応答と して使います。 • シミュレータには、直流的に孤立した(グランドへの直流経路がない)ノードと、直流電源 -イ ンダクタのループに対する保護が組み込まれています。しかしながら、このような条件はなる べく避けるようにしてください。 直流バイアス掃引シミュレーションにおいて収束過程を改善するため、シミュレータは直前のバイア ス点からの結果を、次のバイアス点の初期推測値として使います。直流バイアス掃引シミュレーショ ンの結果は、バイナリ形式で一時ファイルに保存されます。このファイルは、設定された測定の後処 理を行うために使われます。このファイルはすべての結果を含んでいるので、続きのシミュレーショ ンをすることなく、新しい測定を指定して表示することができます。他のシミュレーションにおける
DC
シミュレータの効果
すべてのtransient, harmonic balance,そしてバイアスに依存する線形解析の前に、シングルポイン
トのDC バイアスシミュレーションが自動的に行われます。これは、これらのシミュレーションのた めの出発点を与えます。ACシミュレーションの場合は非線形コンポーネントの線形化モデルを決定 し、harmonic balanceでは初期推測値を決定します。 もしバイアスシミュレーションが失敗したり何らかの形で正しくできない(例えば不正なノード接続 のため)と、harmonic balanceやバイアス依存線形解析は失敗し、正しくない結果を出します。 1-8 DCシミュレーションの説明
DC
シミュレーションコントローラ
DCシミュレーションコントローラでは、シミュレーションの次のような側面を定義できます。 • Sweep—掃引形式と関連する特性 • Parameters—収束に関するパラメータ、サマリ情報のステータスレベル、デバイス動作点レ ベル、感度。すべてのステップで解を出力するオプションもあります。 • Output—ADSで、シミュレーションデータを選択的にデータセットに保存します。詳細は 回路シミュレータ ドキュメントの「シミュレーションの基本」の章の「シミュレーションデータの選択的な保存と制御」のトピックを参照してください。RFDE では、Analog Design
Environmentウィンドウで、Outputs > Save Options を使ってください。
• Display (ADS)—スケマティック上のシミュレーションパラメータの可視性を制御します。 詳細は 回路シミュレータ ドキュメントの「シミュレーションの基本」の章の「スケマティック 上のシミュレーションパラメータの表示」のトピックを参照してください。
RFDE
でのアノテーションデータの保存
RF Design EnvironmentでのDC解析は、スケマティックにDCデータのアノテーションを出力で きる唯一の解析タイプです。出力(PSFファイルに保存されます)は、ノード電圧、デバイス電流、デ バイス動作点のデータを含んでいます。データを保存するには、DC Analysis設定フォームを選び、Save Voltages and Currentsをク リックしてこのオプションを有効にし、Device Operating Point Level (BriefまたはDetailed) を選 んでください。
シミュレーションが走った後、保存したデータでスケマティックにアノテートすることができます。 Analog Design Environmentウィンドウで、Results > Annotateをクリックし希望のオプション を選んでください。
時々、analogLibライブラリの部品は動作点データを表示しないかもしれません。これは、ADSsim とSpectreシミュレータが同じ動作点パラメータ名を共有していないときに起こります。欠落してい るアノテーションを自動的に表示するには、スケマティックウィンドウでコンポーネントインスタン スを更新しなければなりません。
1. Edit > Component Displayを選び、特定のanalogLibコンポーネントを選んでください。 2. Edit Componentフォームで、Select Label をparameterに設定してください。
3. Parameter Labels欄で、Apply Toのlibrary、そしてoperating pointを選んでください。 4. noneに設定されているパラメータ名のところは、表示したいパラメータを選んでOKをク
リックしてください。 Save Voltages and
Currents
ノード電圧、デバイス電流、デバイス動作点をスケマティックへのアノテー ションのために保存します。デフォルトは無効に設定されています。 Device operating point level —回路中のほとんどの能動素子といくつかの線形素子の動作点情
報をデータセットに保存するオプションです。ADSでは、このシミュレーションで1 回をこえ るDC解析(複数のDC コントローラにより)が行われたときは、最後だけでなくすべてのDC 解析のデバイス動作点データが保存されます。デフォルト設定はNoneです。 None (None) 情報は全く保存されません。 Brief (Brief) デバイスの電流、電力、およびいくつかの線形化されたデバイスパラメータ を保存します。 Detailed (Detailed) デバイスの電流、電力、電圧、線形化されたデバイスパラメータを含む直流 動作点値を保存します。
ADS
での掃引の設定
シミュレーションの掃引部分の設定は、3つの基本的な部分からなります: • 掃引したいパラメータを特定 • 掃引形式を選択し、関連する特性を設定 • オプションで、sweep planの指定 パラメータ掃引でシミュレーション時間を短くするには、収束が容易な出発点を選び、少しずつパラ メータを変化させてください。出発点を選ぶには、掃引の片方の端では収束が簡単で、他方では難し いとき、簡単なほうの端を掃引の開始点に使ってください。パラメータを少しずつ変化させると、次 のシミュレーションのためのより良い推測値が得られ、パラメータを急に変えるよりも速く収束に達 します。シミュレータのパラメータの名前は、ネットリストやADSのスケマティックに現れるよう に、括弧で括られます。 表1.1: ADS DCシミュレ−ション掃引オプション Sweep Parameter to sweep (SweepVar) 掃引したい定義されたパラメータの名前 1-10 DCシミュレーションコントローラ表1.1: ADS DCシミュレ−ション掃引オプション Parameter sweep —掃引タイプとパラメータ Sweep Type Single point このパラメータの特定の値におけるシミュレーションを有効にします。 Paramter欄に希望の値を指定してください。 Linear 直線的な増分による値の範囲の掃引を有効にします。Start/Stopをクリック して掃引の開始と終了の値を設定するか、Center/Spanで中央値と掃引範囲 を設定してください。 Log 対数的な増分による値の範囲の掃引を有効にします。Start/Stopをクリック して掃引の開始と終了の値を設定するか、Center/Spanで中央値と掃引範囲 を設定してください。 Start/Stop Start/Stopオプションを選び、開始値、終了値、ステップサイズ、およびポ イント数に基づいて掃引します。Step-sizeはLog掃引では Pts./decadeに なります。 Start (Start) —掃引の開始点 Stop (Stop) —掃引の終了点 Step-size (Step) —掃引を行う増分 Num. of pts. (Lin) —掃引を行うポイント数 Center/Span Center/Spanオプションを選び、中央値、十倍あたりポイント、およびポイ ント数に基づいて掃引します。ステップサイズおよびポイント数に基づいて 掃引します。Pts./decadeはLinear掃引ではStep-sizeになります。
Center (Center) —掃引の中央値 Span (Span) —掃引の範囲
Pts./decade (Dec) —十倍あたりのポイント数 Num. of pts. (Lin) —掃引を行うポイント数
注: Start, Stopなどの欄を変更すると、自動的に他の欄も再計算されます。
Use sweep plan (SweepPlan)
すでに存在するsweep planコンポーネント(SweepPlan)の使用を有効にし ます。このオプションを選んでプランの名前を入れるか、ドロップダウンリ ストから選んでください。
RFDE
での掃引の設定
シミュレーションの掃引部分の設定は、3つの基本的な部分からなります: • Parameter Sweepを有効にする DC シミュレーションコントローラ 1-11• パラメータのタイプの指定 • Sweep planの指定 パラメータ掃引でシミュレーション時間を短くするには、収束が容易な出発点を選び、少しずつパラ メータを変化させてください。出発点を選ぶには、掃引の片方の端では収束が簡単で、他方では難し いとき、簡単なほうの端を掃引の開始点に使ってください。パラメータを少しずつ変化させると、次 のシミュレーションのためのより良い推測値が得られ、パラメータを急に変えるよりも速く収束に達 します。 表1.2: ADS DCシミュレ−ション掃引オプション Paramter Sweep Parameter Type
Design Variable SelectをクリックしてSelect Design Variableフォームから変数名を選んで ください。このリストはEditing Design Variablesフォームで設定された変
数を含んでいます。Variable Name欄に名前を打ち込むこともできます。し かしながら、シミュレーションが成功するにはその変数がデザインに存在し なければなりません。 Temperature tempは予約済みの変数名なので自動的に選択されます。 Component Parameter Selectをクリックしてスケマティックからコンポーネントを選んでくださ い。Select Component Parameterフォームで、掃引するパラメータを選ん
でOKをクリックしてください。Variable Name欄に名前を入力すること もできます。しかしながら、シミュレーションが成功するにはそのコンポー ネントとパラメータがデザインに存在しなければなりません。 Model Parameter 定義済みのモデル名と掃引するモデルパラメータ名を入力してください。 Sweep Plan どれかひとつの掃引範囲を選びます:
Start-Stop 掃引の StartとStopの値を設定します。 Start -掃引の開始点
Stop -掃引の終了点
Center-Span 掃引の Center値とSpanを設定します。 Center -掃引の中央値
Span -掃引の範囲
どれかひとつの掃引タイプを選びます:
表1.2: ADS DCシミュレ−ション掃引オプション
Linear 直線的な増分による値の範囲掃引を有効にします。Step SizeかNumber of Stepsで増分を設定してください。特定の値を追加するにはAdditional Pointsを使ってください。
Step Size -掃引を行う増分
Number of Steps -掃引を行うポイント数
Logarithmic 対数的な増分による値の範囲掃引を有効にします。Points Per Decadeか Number of Stepsで増分を設定してください。特定の値を追加するには Additional Pointsを使ってください。
Points Per Decade -十倍あたりのポイント数 Number of Steps -掃引を行うポイント数
Points Only パラメータの特定の値におけるシミュレーションを有効にします。Specific Points欄に、各値の間に空白を入れて入力してください。
Additional Points 掃引タイプがLinearまたはLogarithmicのとき、掃引範囲に含めたい特定 の値を入れるにはこのオプションをクリックしてください。各値の間に空白 を入れて入力してください。
シミュレーションパラメータの定義
シミュレーションパラメータの定義は、4つの基本的な部分からなります。 • 各試行ごとに許されるノード電圧の最大変化、試行回数、希望の収束アルゴリズムを指定 • 希望するシミュレーションステータスサマリの詳細度を指定 • 保存するデバイス動作点の情報量を指定 • オプションで、すべての解をデータセットに保存するように指定 シミュレーションパラメータの名前は、ネットリストやADSのスケマティックに現れるように、括 弧で括られます。 表1.3: DCシミュレ−ションパラメータオプション Parameters Convergence DC シミュレーションコントローラ 1-13表1.3: DCシミュレ−ションパラメータオプション Max. Delta V (MaxDeltaV) 各試行ごとのノード電圧の最大変化。値が指定されないとデフォルト値は熱 雑音電圧の4 倍、およそ0.1 Vになります。 Max. Iterations (MaxIters) 実行する最大の試行回数。シミュレーションは、収束するか、エラーが起こ るか、この限界値に達するまで反復を続けます。 Mode (ConvMode) 次の収束アルゴリズムのうちひとつを選択できます: †,†† Auto sequence (0) デフォルト。最初はこれを使ってください。アルゴリズムを次の順で循環し 回路を収束させます。 • Hybrid solver
• Forward/reverse source sweeping • Pseudo transient • Rshunt sweeping • Newton-Raphson Quick convergence test (1) 初期テストの結果を使って、どの収束パラメータの組み合わせを試すべきか を予測します。このモードは最初にいくつかのMax. delta V の値に対して Newton-Raphson法††† を適用します。 ひとつ以上のNewton-Raphsonテストが収束したら、最も速い収束が得ら
れたMax. delta Vの値を残りのテストに使います。Newton-Raphsonの
試行がひとつも収束しなければ、いくつかのMax. delta V の値にわたって
残りのテストを実行します。
Newton-Raphsonテストに続いて、Quick convergence testはForward source-level sweepを試し、必要ならReverse source-level sweep,続いて Rshunt sweep, hybrid solver, pseudo transient解析を試します。Quick convergence testは試した収束モードの時間順のリストを生成します。
表1.3: DCシミュレ−ションパラメータオプション Robust convergence test (2)†††† いくつかの収束パラメータの組み合わせを試し、収束モードの時間順のリス トを生成します。
1. 最初にNewton-Raphson法をいくつかのMax. delta Vの値に対して適 用します。
2. 次にForward source-level sweepをやはりいくつかのMax. delta V の 値に対して試します。
3. そしてRshunt sweep,続いて Reverse source-level sweepとhybrid solverを、それぞれいくつかのMax. delta V の値に対して試します。 4. 最後にpseudo transient解析を試します。
Quick convergenceとHybrid solverが失敗したときだけ使用してくださ い。この方法は大規模回路では遅くなりすぎるかもしれません。 Newton-Raphson (3) 反復プロセスです。各ノードに流れ込む電流の総和が0に等しくなると終了 し、ノード電圧が収束します。中規模や大規模の回路ではより不安定です。 Forward source-level sweep (4) すべての直流信号源を0 に設定してから、要求値まで掃引します。forward
source-level sweepが”out of bounds”エラーで失敗したら、Rshunt sweepの前にReverse source-level sweepを試します。大規模回路や、複雑 な連続経路やリミット点を持つ回路に対して安定しています。
Rshunt sweep (5)
各ノードとグランドの間に1e-6 Ωの抵抗を挿入し、この値を無限大まで掃
引します。この収束モードは通常Forward source-level sweepよりも遅くな ります。この抵抗が追加されないと反復中に回路の行列の対角成分が小さい 値/ゼロを持ってしまうのを防ぎ、収束を助けます。ArcMinValue を指定す ることで異なる初期抵抗値を使うことができます。 Reverse source-level sweep (6) めったに使われませんが、数少ない必要な場合のために用意されています。 Reverse source-level sweepはForward source-level sweepと同じですが、 前者は逆方向に始まるところが異なります。Forward source-level sweep が ”out of bounds”エラーを返したときは、Reverse source-level sweepを 使ってください。このエラーは、すべての直流信号源がゼロのときに回路に 負性抵抗があることを示します。これはまれな状況ですが、(ファンデルポー
ル方程式で記述されるような)発振器の理想モデルでは起こります。
表1.3: DCシミュレ−ションパラメータオプション Hybrid solver (7) 速く収束するために様々なアルゴリズムを部分的に使います。Auto sequenceが選択されていると、このアルゴリズムは最初のアルゴリズムとし て使われます。ニュートン試行とソースステッピング、必要であればGmin 緩和法を組み合わせます。 • ソースステッピング: 直流信号源をゼロから始めて要求値まで掃引します。 • Gmin緩和法: 各ノードとグランドの間に1 MΩの抵抗を挿入し、この値 を無限大まで掃引します。 • ニュートン反復: 内部的に決定された値からスタートします。小規模な半 導体回路では速く収束します。希望しないあるいは誤った解に収束するか もしれません。 Pseudo transient (8) ソースステッピングアルゴリズムの変形です。もとの回路の代わりに、擬似 回路で transientシミュレーションを行います。この解析ではゼロ解から最 終解までの間の遷移は関心事ではなく、打切り誤差は無視され、タイムス テップはできるだけ大きく取られます。この方法は大規模集積回路で堅実に 良い収束性を示します。
Arc Max Step (ArcMaxStep) 弧長連続法のときの弧長の最大値を制限します。弧長連続法では、弧長は階 段状に増加します。ステップサイズはそれぞれの問題に応じて自動的に計算 されます。ただしArcMaxStepが指定されていてゼロでないときは、その 値が弧長ステップの大きさの上限として定義されます。(ADSでは、このパ ラメータをスケマティック上に表示して直接設定してください。) Arc Level Max
Step
(ArcLevelMaxStep)
ソースレベル連続法の最大弧長ステップサイズを制限します。デフォルトは 0 で、ArcLevelMaxStepに制限がないことを意味します。(ADSでは、こ のパラメータをスケマティック上に表示して直接設定してください。) Arc Min Value
(ArcMinValue) ArcMaxValueと関連して設定されます。ArcMinValueは、シミュレーショ ン中に連続パラメータρに許される下限を決定します。弧長連続法におい て、ρは複雑な多分岐をたどることができ、その値は非単調に変化すること ができます。ArcMinValueはρの下限を指定し、弧長連続法の間ρが ArcMinValueより小さくなるとシミュレーションは収束に失敗したとみな されます。デフォルトはρmin− ∆で、∆ はρmax− ρmin, ρmin はパラメー
タ掃引の最小値、ρmax はパラメータ掃引の最大値です。(ADSでは、このパ
ラメータをスケマティック上に表示して直接設定してください。)
表1.3: DCシミュレ−ションパラメータオプション Arc Max Value
(ArcMaxValue) ArcMinValueと関連して設定されます。ArcMaxValueは、シミュレーショ ン中に連続パラメータρに許される上限を決定します。弧長連続法におい て、ρは複雑な多分岐をたどることができ、その値は非単調に変化すること ができます。ArcMaxValueはρの上限を指定し、弧長連続法の間ρが ArcMaxValueより大きくなるとシミュレーションは収束に失敗したとみな されます。デフォルトはρmax+ ∆で、∆はρmax− ρmin, ρminはパラメー
タ掃引の最小値、ρmax はパラメータ掃引の最大値です。(ADSでは、このパ
ラメータをスケマティック上に表示して直接設定してください。) Max Step Ratio
(MaxStepRatio) 連続ステップの最大値(デフォルトは100)を制御します。(ADSでは、この パラメータをスケマティック上に表示して直接設定してください。) Max Shrinkage (MaxShrinkage) 弧長ステップの最小サイズ(デフォルトは1e-5)を制御します。(ADSでは、 このパラメータをスケマティック上に表示して直接設定してください。) Limiting Mode (LimitingMode) 各試行ごとにノードの変化に対して行われる制限の形式を設定します。 (ADSでは、このパラメータをスケマティック上に表示して直接設定してく ださい。) Global Element Compression 各試行ごとの非線形ノードでの変化が、内部的に決定された値を超えたとき、 log関数によって変化を制限します。 Global Device-based Limiting 非線形コンポーネントについて、各試行ごとの変化の制限を行います。 Dynamic Element Compression 各試行ごとの非線形ノードでの変化が、内部的に決定された値を超えたとき、 log関数によって変化を制限します。 Dynamic Vector Compression 各試行ごとのすべてのノードでの変化が、内部的に決定された値を超えたと き、log関数によって変化を制限します。 Global Vector Compression 各試行ごとのすべてのノードでの変化が、内部的に決定された値を超えたと き、log関数によって変化を制限します。 Global Vector Scaling 各試行ごとのノードでの変化を、内部的に決定されたスケール比でスケール します。 No Limiting 各試行ごとのすべてのノードでの変化に対して、何も制限をかけません。 DC シミュレーションコントローラ 1-17
表1.3: DCシミュレ−ションパラメータオプション Levels (ADS) Annotation (RFDE) シミュレーションステータスレポートの詳細度を設定できます。 Status level (StatusLevel) メッセージウィンドウのStatus/Summary部分にシミュレーションについ ての情報を表示します。 • 0は、シミュレーションエンジンによってほとんどあるいは全く情報を報 告しません。 • 1と2 は、より詳細な情報が得られます。 • 3と4 は、処理の大きさとシミュレーション時間をかなり増加させるの で、慎重に使ってください。 表示される情報の種類には、回路の各ノードの電流誤差の総和、収束に達し たかどうか、リソース使用度、データセットがどこの保存されたか、が含ま れているかもしれません。情報の量と種類は、ステータスレベルの値とシ ミュレーションのタイプによります。
Device operating point level (DevOpPtLevel) (ADS) (RFDEは、1-9ページの「RFDEでの
アノテーションデータの保存」をご覧ください。) —回路中のほとんどの能動素子といくつかの 線形素子の動作点情報をデータセットに保存するオプションです。ADSでは、このシミュレー ションで1 回をこえるDC解析(複数のDC コントローラにより)が行われたときは、最後だけ でなくすべてのDC解析のデバイス動作点データが保存されます。デフォルト設定はNone です。 None (None) 情報は全く保存されません。 Brief (Brief) デバイスの電流、電力、およびいくつかの線形化されたデバイスパラメータ を保存します。 Detailed (Detailed) デバイスの電流、電力、電圧、線形化されたデバイスパラメータを含む直流 動作点値を保存します。 Output Solutions Output solutions at all steps (OutputAllSolns) すべての解をデータセットに保存するようシミュレータに指示します。シ ミュレータが収束するためにステップの間のポイントを使うことが必要なと き、結果の情報は保存され、続けてより詳細な解析のために使うことができ ます。 Optimization 1-18 DCシミュレーションコントローラ
表1.3: DCシミュレ−ションパラメータオプション Compute Sensitivities Using Finite Difference (UseFiniteDiff) 感度解析最適化を有限差分近似法を用いて行います。これは、Nを最適化変 数の数としてN+1回の回路シミュレーションを必要とします。(ADSでは、 このパラメータをスケマティック上に表示して直接設定してください。) Other 隠れパラメータへのアクセスを可能にするには、このボックスをチェックし てください。テキスト領域が有効になりパラメータに値を割当てることがで きます。書式は Other=HiddenParameter1=value HiddenParameter2=value... です。隠れパラメータは一般的に収束の問題のトラブルシューティングのと きに使われます。(ADSでは、このパラメータをスケマティック上に表示し て直接設定してください。) † ここで選択した収束モードはDCシミュレーションにのみ適用されます。Optionsコンポーネ ントを使ってもこれらと同じ収束アルゴリズムを選ぶことができ、その場合はこのデザインで行 われるすべての解析に適用されます。 †† (ADSのみ) ConvModeパラメータを表示し、希望の収束モードに対応する数値に等しく設定 することで、スケマティック自身の上で収束モードを指定できます。詳細はこの表の次の説明を ご覧ください。 ††† 収束モードのいくつかはNewton-Raphsonアルゴリズムを使います。Newton-Raphsonは、 各ノードでキルヒホフの電流則(各ノードに流れ込む電流の総和はゼロに等しい)が満たされた とき終了し、ノード電圧が収束する反復プロセスです。
†††† Robust convergence testは、Quick convergence testかHybrid solverが収束するモード
を見つけるのに失敗したときのみ使ってください。
スケマティック上での収束モードの設定
(ADS
のみ
)
収束モードをスケマティック上で直接表示して編集することで、簡単にモードを変更して再シミュ レートすることができます。 収束モードのスクリーン上での編集を可能にするには、 1. DCシミュレーションコントローラのダイアログボックスから、Displayタブを選んでくだ DC シミュレーションコントローラ 1-19さい。 2. ConvModeパラメータを選んで、OK をクリックしてください。 3. スクリーン上のエディタを使って、希望の初期収束モードを表1.4に示す対応する数値を使っ て設定してください。 表1.4 収束モードに対応する数値 収束モード 対応する数値 Auto sequence 0 Quick convergence test 1 Robust convergence test 2 Newton-Raphson sweep 3 Forward source-level sweep 4
Rshunt sweep 5
Reverse source-level sweep 6 Hybrid solver 7 Pseudo transient 8
シミュレーションのトラブルシューティング
この節は、このシミュレータの使用と結果の精度の改善のための示唆を述べます。問題を見つけてな おすために次のチェックリストから始めてください。特定の問題についての詳細は、これに続く各節 をご覧ください。• OptionsコンポーネントのTopology checkerをオンにします。
• OptionsコンポーネントのIssue warnings (GiveAllWarnings)をオンにし、Maximum number of warnings (MaxWarnings) を増やします。
• Simulation/Synthesis Messagesのすべてのエラーと警告のメッセージを読み、それにした がって修正を施します。
• Status/Summaryウィンドウのすべてのステータス情報を、すべてのページを通して (Windowタブ下のShow Complete Status Message を選んでください)読み、それにした がって修正を施します。 • コンポーネントやモデルのパラメータ値や単位、特にモデルパラメータの小さな直列抵抗値を チェックします。 • 回路のトポロジが正しいことを確かめます。 • netlist.logに明らかなエラーがないか検証します。 1-20 シミュレーションのトラブルシューティング
• DCシミュレーションコントローラの Status Levelを4 にします。 • 各試行ごとのRHS NORM 値のパターンを検証します。 • 異なる Max. Delta Vの値を試してみます。
回路が予想通りに振舞わない
回路がおかしな動きをする場合は、次のいずれかまたは全部を試してみてください。 • 回路が正しくバイアスされているかチェックします。 • 信号が回路に供給される点を動かします。 • 回路を部分に分け、各部分の性能を検証します。シミュレーション時間
シミュレーション時間は、回路の種類とともに、基本波周波数の数やその高調波次数によって影響さ れます。Optionsコンポーネントで設定できる収束条件によっても影響されます。回路の種類
線形と非線形の両方の回路をシミュレートできます。ただし非線形回路を解析するときは、次の点に 留意することが重要です。 • システムは、集中定数および分布定数のコンポーネントをもつ増幅器、フィルタ、周波数逓倍 器、ミキサ、検波器、発振器をシミュレートできます。これらのコンポーネントは理想的にも、 測定結果にすることもできます。• Circuit envelopeとtransientシミュレーションを除いて、シミュレータは正弦波形を用いま す。したがって正弦波に近い波形となる回路のほうが、シミュレーション時間は短くなります。 波形が滑らかでない回路は、より多くのシミュレーション時間を必要とします。
• 回路が非線形であればあるほど、波形が正弦波的でないのでシミュレーション時間は長くなり
ます。
シミュレータが収束に失敗したとき
トランジスタやダイオードのような能動素子の直流動作点は、高周波シミュレーションが行われる前 に決定されていなければなりません。結果としてDCシミュレーションが、すべての非線形シミュ レーションの最初のステップとして実行されます。理想的には、各ノードにおいて試行間の電圧変化 がゼロで、かつ各ノードにおける電流の総和がゼロ(キルヒホフの電流則)のとき収束が起こります。 実際には、より不正確な解でも許容できます。Optionsコンポーネントで許容度を設定することがで きます。シミュレータが与えられた回数の数値反復の後も、与えられた許容値以内の解に達すること ができないとき、収束に失敗したといいます。収束の問題を解決する特定のひとつの方法はありませ んが、次の示唆が役に立つかもしれません。 典型的な収束の問題 回路が、ゆっくり収束/発散する 症状 RHS NORMが非常に遅く発散あるいは収束します。 原因 この回路はシステムライブラリモデルを含んでおり、その中の内部電圧が不自然に高いこ とがあります。 各ニュートン試行における改善量(半導体デバイスの特性に基づき、Max Delta Vのある 関数とそのデフォルト値によって制限されます。(∼ 0.1 V))が、この種の回路では小さく なりすぎます。 対策Max. Delta Vを1e9に増やしてください。
回路が、望まない/誤った解に収束する 症状 Hybridソルバアルゴリズムがある内部的に決定された値でニュートン反復を始めてしま い、数学的に正しい、しかし望まれない解に収束します。 対策 Max. Delta Vを0.02あるいは熱電圧の数倍に設定してください。
Max. Delta Vを設定すると、hybridソルバがニュートン反復の初期推測値として0 Vを 使い、結果として希望の解になるように導きます。
希望の解を得るためMax. Delta V = 0.02に設定してください。
モデルパラメータImax が小さすぎるので回路が収束しない 症状 反復の間にRHS NORMが振動します。 原因 この回路のダイオードのp-n接合を流れる電流が1 Aをこえています。非線形半導体デバ イスのImax のデフォルト値はおよそ1 Aです。 対策
非線形デバイスのモデルパラメータImaxを1e3に増やしてください。BSIM3ではこの
モデルパラメータはIjthになります。 理想的な SDD方程式を使っていて回路が収束しない 症状 ニュートン反復においてRHS NORMがずっと小さいままなのに、回路が収束しません。 原因 ダイオード電圧が最終解−1 Vに近づくとき、逆バイアスされたp-n接合のコンダクタン スはおよそ10−30 Sで11 Ω (0.0909 S)のRs が直列に入ったものになります。16桁の 精度の制限のために行列は悪条件になります。 −1 Vにおけるダイオードの電流は−2.741 × 10−15 Aです。 対策 p-n接合を横切る漏れ抵抗を追加してください。組込み済のp-n接合モデルは1012Ωの漏 れ抵抗を使っています。 回路が不安定、または複数の解を持つ Nodeset コンポーネントを予想した電圧にして問題のノードに置いてください。必ずNodeset コンポーネントの抵抗はノードインピーダンスの少なくとも100 倍小さくしてください。 RHS NORMがずっと小さいままなのに、回路が収束しない 収束許容値を緩めてください。 回路が収束に近づいているように見えるが、試行数が多すぎてシミュレーションがソースステッピン グに移る Max. Iterations (デフォルト250)を増やしてください。 シミュレーションのトラブルシューティング 1-23
回路が最初の250 回の試行で収束せず、シミュレーションがソースステッピングに移る Max. Iterationsを50に減らし、250のうち 200のどうしても収束しない試行をスキップし てください。 収束のヒント 掃引コントローラを使ってください: • 特定の信号源、あるいは複数の信号源の値を掃引してください。 • 回路が収束しないときはステップサイズを減らすか、複数のsweep planを使ってそのポイン トをスキップしてください。
• OptionsのDC solutionsタブ下のWrite Final Solutionを設定して、最終結果を保存してく ださい。
• OptionsのDC solutionsタブ下のUse Initial Guessを設定して、直流初期推測値を使ってく ださい。
Transient解析を使ってください:
• すべての直流信号源の信号を増加していき、回路が定常状態に達するまで時間ドメイン解析を
続けます。
• OptionsのDC solutionsタブ下のWrite Final Solutionを設定して、最終結果を保存してく ださい。
• OptionsのDC solutionsタブ下のUse Initial Guessを設定して、直流初期推測値を使ってく ださい。
I-V
曲線の結果が予想通りでないとき
もし直流I-V曲線が予想と異なって見えたら、おそらくそれは次の理由のうちのひとつあるいはいく つかによります。 • 掃引された独立パラメータが格子表示上で入れ替わっています。例えば、SRC1がトランジス タのゲート電圧を掃引、SRC2がドレイン電圧を掃引しており、x軸をSRC1 (ゲート電圧)と して電流が表示されているなら、その軌跡は一般的な直流 I-V曲線には見えないでしょう。掃 引変数 SRC1とSRC2の格子上の順序を交換してください。 1-24 シミュレーションのトラブルシューティング• 片方の信号源を大きな変化で、もう一方を小さな変化で掃引しています。例えば、ベースに直 流電流源、コレクタに直流電圧源を接続して、トランジスタのベース電流とコレクタ電圧を掃 引しているとします。さらに、ベース電流を掃引するのにSRC1,コレクタ電圧を掃引するのに SRC2を使っているとします。直流バイアス-電流掃引は、一般的に非常に小さい増分—例え ばマイクロアンペアのオーダ—が必要です。プログラムの内部で、SRC1の掃引は常に SRC2の掃引の内側で起こり、結果的にベース電流はより速く掃引されます。 電流掃引の増分が小さいので、ある電流値から次の値へ進んでも、シミュレータでの回路の状 態(動作点)は変わらないかもしれません。これにより、プログラムは直前の電流値と同じ解に 収束し、結果としてぎざぎざの I-V曲線になります。 • 直流電流を誤った方向で測っています。デフォルトでは、抵抗や電流計のような 2端子素子を 流れる正の電流は、ピン1 からピン2へ流れるように測定されます。 電流を逆方向に測るには、スケマティックを編集してその素子の方向を変えたり、異なるピン の電流を指定したり、電流プローブの方向を変えることができます。
DC
オープン回路のエラーをなくす
DC回路シミュレーションが成功するには、すべての回路ノードはグランドへの直流経路がなければ なりません。これにより、定義されない直流電圧値で浮いているノードがなくなり、DCシミュレー ションは回路のすべてのノードのバイアス点をみつけることができます。このエラーは普通2 つの直 列キャパシタによって起こります。 • このエラーをなくすには、害を及ぼしているノードとグランドの間に大きな抵抗 (10 MΩが良 い値です)を挿入してください。これは回路の性能に影響を与えずにグランドへの直流経路を 付加します。 短絡された直流ループをもつ回路を作ることは可能ですが、DCシミュレーションでは正しく扱われ ません。例えば、2つの理想インダクタが並列に接続されていると、直流短絡ループができます。この ループの直流電流は定義されず、回路の解によらず任意の値を取り得ます。 • このエラーをなくすには、ループ内に直列に小さな直流抵抗(例えば 0.001 Ohm)を追加して ください。あるいは、ループが理想インダクタからなるときは、単に理想インダクタを小さな 損失量のあるインダクタに変えてください。 最後の手段として、トポロジチェッカをオフにしてください。Optionsコンポーネントで、Perform topology checkが選ばれていないのを確かめてください。これはトポロジチェックをオフにし、シ ミュレーションは直接DCシミュレーションの段階に進みます。これはシミュレーションをわずかに シミュレーションのトラブルシューティング 1-25速くし、DCシミュレーションがトポロジにかかわらず成功することが明らかなまれな場合に役立つ かもしれません。 注 トポロジチェッカでみつかったエラーは、ほとんど常にDCシミュレーションの失敗につなが りますので、トポロジチェッカをオフにすることはお勧めしません。
トポロジチェックの失敗
一般的に、シミュレーションが走る前にトポロジチェックが行われます。トポロジチェックは、後で シミュレーション中により深刻なエラーにつながるような通常の回路のエラーをみつけ、 Simulation/Synthesis Messagesウィンドウに報告します。このチェックは、次の条件が存在するか どうか検証します。 • 少なくとも2 つのコンポーネントが各ノードに接続されている。 • すべてのノードからグランドへの直流経路がある。 • 直流的短絡や電圧、電流源のループ(例えばインダクタ)がない。 トポロジチェッカは、トランスや伝送線路を通り抜けてこれらの条件をチェックすることはできま せん。 ノードとピンのチェック トポロジチェックが失敗すると、Simulation/Synthesis Messagesウィンドウに問題のあるノードが ハイライトされます。Simulate > Highlight Nodeを選んでこれらのノードを特定してください。未接続ワイヤのエラー
回路に抜けているワイヤがある場合、シミュレーション中Simulation/Synthesis Messagesウィンド ウに、次のようなメッセージが現れます。
Warning detected by HPEESOFSIM during DC analysis "DC1". Circuit as given has no unique solution.
A virtual resistance of 1 TOhms was added to each node.
未接続のワイヤやピンの場合、Tools > Check Representation > Open connectionsを選んでOKを クリックしてください。すべての未接続のワイヤやコンポーネントはハイライトされ、画面上にわか りやすく見えるようになります。これらを正しい回路ノードに接続してください。
ポート/ピンの不一致
根底にあるスケマティック上の、ポートと名前のつけられたピンの不一致をチェックするには、Check Representation機能を使います。Tools > Check Representation を選び、次にPort/Pin
mismatchesを選んでください。トポロジの問題のない回路では、シミュレータは次のように報告し ます: Unconnected pins: 0 Port/Pin mismatches: 0 例えば2 つのピン間のワイヤがないところでは、コンポーネントと不連続なピンはスケマティック上 で赤くハイライトされ、次のようなメッセージが現れ、コネクタの座標を示します: Unconnected pins: 2 I_DC SRC1, pin 2 (2.500,-0.125) BJT_NPN BJT1, pin 2 (3.250,0.375)
ハイライトを消すには、View > Clear Highlightingを選んでください。
注 必ずポート番号の重複が無いことを確かめてください。 解が見つからない もしDCシミュレーションが解を見つけられないと、シミュレータはソースステッピングを試みます。 シミュレータはすべての直流信号源をゼロに設定し、低いレベルで収束を達成しようとします。シ ミュレータはこの解のポイントから開始して、信号源レベルを少しずつ増やして回路を解くことを繰 り返し、元のレベルで収束しようとします。収束が得られた各ポイントにおいて、各シミュレーショ ンの結果を次のための初期推測値として使いながら、レベルを希望の値まで段階的に増やします。通 常は、回路の応答は直流信号源に従って希望の値まで滑らかな曲線となります。非常にまれには、回 路が奇妙な振舞いを示すこともあり、信号源の増加につれて回路の応答が発散します。シミュレータ はこの振舞いをある程度許容します;しかしながら、回路の応答が規定の境界を超えて発散すると、シ シミュレーションのトラブルシューティング 1-27
ミュレータは断念します。 試行回数を増やす 時折DC シミュレーションが与えられた試行回数の間に解に収束できないことがあります。 試行回数を増やすには: 1. DCシミュレーションダイアログボックスで、Parametersタブを選んでください。 2. Max. Iterationsを収束を許すのに十分高い値に設定してください。 有り得ない回路 回路が唯一つの解を持つことに失敗することもあります。有り得ない 回路— 2つの直流電流源(あ るいはおそらくカレントミラー回路)が直列に入っている回路のような場合です。このような回路で は、シミュレータは回路のすべてのノードに並列に大きな抵抗を追加して解析しようとします。これ でDCシミュレーションが成功したら、抵抗値はできるだけ高く(1 TΩまで)増やされます。これは DCシミュレーションを前進させ、普通は成功します。しかしながら、問題のある回路ノードは、続く harmonic balanceシミュレーションでこれらの抵抗が付加されないので、しばしば問題を起こしま す。問題のノードをみつけ、グランドへの直流経路(例えば大きな抵抗)を付加するべきです。 非線形性の高い回路 時折デフォルトのDC シミュレーションアルゴリズムは、非線形性の高い回路の場合に失敗すること があります。Parametersタブ下の異なる収束アルゴリズムを選んで、最もよく動くものをみつけてく ださい。 それでもなおDCシミュレーションが失敗するときは、次に述べる許容値パラメータを調節してみて ください。そうでなければ、唯一の頼みは非線形性がDC シミュレーションに及ぼす影響を小さくす るように回路を修正してみることです。
許容値パラメータの調節
いくつかの許容値パラメータは、変更して多少より正確でない結果となりますがシミュレーションを より収束しやすくすることができます。これらのパラメータには次のものが含まれます: 1-28 シミュレーションのトラブルシューティング• 相対電流許容値 • 相対電圧許容値 • 絶対電流許容値 • 絶対電圧許容値 これらのいずれかのパラメータを変えるには、Optionsコンポーネントで編集してください。この許 容値パラメータは次に説明します。収束のチェックに使われる式は、DCだけでなくすべての解析方 式に適用されます。
相対電流許容値
,
絶対電流許容値
これらの許容値は、回路の各ノードにおける電流を求める際、キルヒホフの電流則(KCL)を満たすた めに使われます。シミュレータはKCLを満たす解をみつけようとし、すべての回路ノードに流入(あ るいは流出)する電流の総和がゼロになるようにします。各試行において、ノード電流の許容値としてCurrent relative toleranceとCurrent absolute toleranceが使われます。収束に達するために、各回 路ノードにおいて電流は次式を満たさなければなりません: ¯ ¯ ¯Xin ¯ ¯ ¯ ≤ εrel X |in| + εabs ただし in=ノードにつながる各枝路の電流 εrel=相対電流許容値 εabs=絶対電流許容値
Current relative toleranceのデフォルト値は10−6 (0.0001 %), Current absolute toleranceのデ
フォルト値は10−12 (1 pA)です。多くの問題では、これらの許容値は必要よりもずっと厳しくなっ
ています。(Berkeley SPICE 3e1の相対電流許容値のデフォルト値は10−3 です。)これらの許容値 を緩めると、問題の回路を解けるようにするだけでなく、より少ない時間で解けるようになります。
相対電圧許容値
,
絶対電圧許容値
すべてのノードでキルヒホフの法則が満たされれば、シミュレータはすべてのノードの電圧を計算し て唯一つの解を調べます。時々、ノード電圧の大きな変化によってノード電流の変化がほとんどなく なることがあります。例えば、2 つのS パラメータブロック(つまり増幅器やフィルタのようなSパ ラメータが測れる任意の2ポート)が縦続接続されており、2つの部品間の基準ノードが接地されてい シミュレーションのトラブルシューティング 1-29ないとすると、2つのSパラメータブロックの間の差動電圧は、電流を変えることなく任意の値を取 ることができます。そうすると回路は複数の可能な解を持つことになります。すべてのノード電圧に 正しい解をみつけるため、シミュレータはVoltage relative toleranceとVoltage absolute tolerance パラメータをCurrent absolute tolerance とCurrent relative toleranceと同様なやり方で使います。 収束のためには、回路のすべてのノード電圧について次の関係が満たされなければなりません: |∆Vn| ≤ εrel|Vn| + εabs ただし ∆Vn =前回の試行からのノード電圧解の変化分 Vn =この試行でみつかった解のノード電圧 εrel =相対電圧許容値 εabs =絶対電圧許容値
Voltage relative toleranceとVoltage absolute toleranceのどちらもデフォルト値は10−6 です。 Current absolute toleranceとCurrent relative toleranceと同様に、これらの許容値を緩めてシミュ レーションの収束と速度を支援することができます。