(57)【要約】  この発明の或る実施例に従うと、シミュレーションを実行するためのシステムおよび方法が提供される（４００）。システム内の並列性を用いて、この方法は、大きな問題を複数の小さい区画へと分解する（４０４）。一連の反復が実行され、（４１０）、上記各区画間で交換される波形が収束するまで（４１２）これを行なう。強結合された区画の近似プレビュー解が導入され（４０８）、収束に必要な反復の数を減少させる。これら近似プレビュー解は、シミュレーションが行なわれる前に導入される。波形が一旦収束すれば、シミュレーションは解を決定している。
2007536602.tif 000002
【特許請求の範囲】
【請求項１】
システムを区画化するステップと、
上記システムに、区画の近似シミュレーションを導入するステップと、
上記近似シミュレーションを用いて上記システムをシミュレートするステップとを含む、方法。
【請求項２】
上記近似シミュレーションを含むプレビューアを生成するステップをさらに含む、請求項１に記載の方法。
【請求項３】
上記システムを区画化するステップは、
上記システムの内在的な特性に基づいて弱結合を識別するステップと、
上記弱結合に基づいて上記システムを上記区画へと分割するステップとを含む、請求項１に記載の方法。
【請求項４】
上記シミュレートするステップは、上記導入するステップの後に行なわれる、請求項１に記載の方法。
【請求項５】
上記プレビューアを生成するステップは、ルックアップテーブルからピースワイズリニア近似を生成するステップを含む、請求項２に記載の方法。
【請求項６】
上記シミュレートするステップおよび上記導入するステップは、ネットワーク化された機械において並列実行される、請求項１に記載の方法。
【請求項７】
実行された際に機械が方法を実行することを引起す実行可能なプログラムコードを記憶した機械読取可能媒体であって、上記方法は、
システムを区画化するステップと、
上記システムに、区画の近似シミュレーションを導入するステップと、
上記近似シミュレーションを用いて上記システムをシミュレートするステップとを含む、機械読取可能媒体。
【請求項８】
上記近似シミュレーションを含むプレビューアを生成するステップをさらに含む、請求項７に記載の機械読取可能媒体。
【請求項９】
上記システムを区画化するステップは、
上記システムの内在的な特性に基づいて弱結合を識別するステップと、
上記弱結合に基づいて上記システムを上記区画へと分割するステップとを含む、請求項７に記載の機械読取可能媒体。
【請求項１０】
上記シミュレートするステップは、上記導入するステップの後に行なわれる、請求項７に記載の機械読取可能媒体。
【請求項１１】
上記プレビューアを生成するステップは、ルックアップテーブルからピースワイズリニア近似を生成するステップを含む、請求項８に記載の機械読取可能媒体。
【請求項１２】
上記シミュレートするステップおよび上記導入するステップは、ネットワーク化された機械において並列実行される、請求項７に記載の機械読取可能媒体。
【請求項１３】
デジタル処理システムであって、
表示装置に結合されたデジタルプロセッサと、
前記デジタルプロセッサに結合され、シミュレーションのためのシステムを受けるメモリとを備え、前記プロセッサは、
システムを区画化し、
上記システムに、区画の近似シミュレーションを導入し、かつ
上記近似シミュレーションを用いて上記システムをシミュレートする、デジタル処理システム。
【請求項１４】
上記近似シミュレーションを含むプレビューアを生成する上記プロセッサをさらに含む、請求項１３に記載のデジタル処理システム。
【請求項１５】
システムを区画化することは、
上記システムの内在的な特性に基づいて弱結合を識別することと、
上記弱結合に基づいて上記システムを上記区画へと分割することとを含む、請求項１３に記載のデジタル処理システム。
【請求項１６】
上記シミュレートは、上記導入の後に行なわれる、請求項１３に記載のデジタル処理システム。
【請求項１７】
プレビューアを生成することは、ルックアップテーブルからピースワイズリニア近似を生成することを含む、請求項１４に記載のデジタル処理システム。
【請求項１８】
上記シミュレートおよび上記導入は、ネットワーク化された機械において並列実行される、請求項１３に記載のデジタル処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、２００３年５月２２日出願の、「電子回路および物理的ｎポートシステムの高速・正確なシミュレーション方法（Method for fast, accurate simulation of electronics circuits and physical n-port system）」と題された、米国特許仮出願連続番号第６０／４７３，０４７号の優先権を主張する。
発明の分野
この発明は、一般的にシミュレーションに関し、特定的には、大型の複雑系についての正確な波形レベルコンピュータシミュレーションに関する。
【背景技術】
【０００２】
背景
コンピュータシステムを用いてシミュレーションを実行することによって、設計者または開発者が或る設計を製造前にテストできるようにする場合がある。たとえば、設計者はコンピュータアプリケーションを用いて複雑な回路を構築する場合がある。次に、このアプリケーションは、或る入力があった場合にいくつかの時点で回路の出力をシミュレートすることができる。シミュレーションを用いて設計者は容易にいくつかの回路の原型を作り出し、それを実際に構築することなしにテストすることができる。
【０００３】
シミュレーションは、しばしば大きな計算リソースを必要とする。このリソースを低価格で提供する１つの方策として、並列動作する複数の機械からなるクラスターを用いるというものがある。たとえば、複数のコンピュータシステムを合せてネットワーク化することによって、単一の問題についての解に対して集団で作業を行なうことができる。このシミュレーションを並列実行する１つの問題は、機械同士の間で作業を分割し連携させることである。
【０００４】
回路シミュレーションは、しばしばＳＰＩＣＥ（Simulation Program With Integrated
Circuit Emphasis）シミュレータまたはそこから派生したものを用いて実行される。これらシミュレータは、「ダイレクトスパース（Direct Sparse）」解求方法として知られる数値積分を用いる。回路が大型化し信号完全性効果がより重要となるのに伴い、これらシミュレーションを実行するのにかかる時間が極端に長くなっている。これらシミュレーションでは、典型的には、回路の過渡挙動が伴い、初期値問題（Initial Value Problem）を解くことが必要である。
【０００５】
図１は、初期値問題を用いてシミュレーションに対する解を決定するためのプロセスを例示するフローチャートである。プロセス１００は、ダイレクトスパース法を用いて大規模なシミュレーションの所与の部分についての解を決定するために用いることができる。たとえば、回路シミュレーションを複数のブロックに分割し、その各々を微分代数方程式（differential algebraic equations：ＤＡＥ）によって表わせるようにすることができる。一実施例に従うと、ＤＡＥは、変形ノード分析（modified nodal analysis：ＭＮＡ）を用いて得られる。次に、これら式を簡略化して解くことによって当該シミュレーションについての解に達することができる。
【０００６】
【数１】
2007536602.tif 000003
【０００７】
これらは非線形代数方程式である。
【０００８】
非線形の式は解くのが困難で計算コストがかかるため、ブロック１０８にて、ニュートン・ラフソン（ＮＲ）反復を実行して線形代数方程式を得る。ＮＲ反復は以下の形である。
【０００９】
【数２】
2007536602.tif 000004
【００１０】
結果として得られる、Ａｘ＝ｂの形の線形代数方程式は、次にブロック１１０にて線系求解部を用いて解くことができる。
【００１１】
ブロック１０８およびブロック１１０はＮＲループを形成し、これはブロック１１０での線系求解部の解が収束するまで繰返され得る。ブロック１１２にて、ＮＲ解が収束したか否かを判断する。もし収束していれば、プロセスはブロック１１４へと継続する。解が収束していなければ、ＮＲループが繰返され、プロセスはブロック１０８に戻る。
【００１２】
ブロック１１４にて、さらに処理されるべきタイムステップがある場合、プロセス１００はブロック１０６に戻り、新たな時点について解を求めることができる。タイムステップがもはやない場合、プロセスはブロック１１６にて終了する。この時点で、当該問題についての解が得られている。
【００１３】
チップ設計の検証は、異なる入力波形または動的なベクトルで多数の過渡シミュレーションの実行を必要とする。シミュレーションを並列実現すればシミュレーションを高速化させることができる。通信オーバーヘッドと、通信を介して計算を同期させる必要とによって、並列の実現においてボトルネックが生じる場合がある。並列の実現においてダイレクトスパース法がもたらしてきた性能利得は、通信および同期オーバーヘッドのため限定的である。プロセス１００のＮＲ反復は並列化可能である。この「方法内の並列性」は、回路全体におけるあらゆる箇所での活動（すなわち可変値における急速な変化）によって決まるタイムスケールで回路全体にわたる通信同期を必要とする。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
回路シミュレーションにおいて、「システム内の並列性」が提案されている。これは回路シミュレーション関連の文献では「波形緩和」とも呼ばれている。この手法によって、複数の副回路にわたって全体の波形を交換することにより初期値問題の並列シミュレーシ
ョン（時間過渡シミュレーション）が可能となる。しかしながら、ほとんどの実際の回路においては、強く結合されたシステムにおけるフィードバックのため、結果としての収束は遅くなる。その結果、並列の実現から得られる利益は遅い収束の結果減少し、こうして多くの弛緩反復が必要となる。この問題に対処するため、ローカル（端子での負荷）およびグローバル（多数の端子および副回路にわたる）強結合を扱ういくつかの手法がそれぞれ提案されている。実際には、各区画が大きくなりすぎて計算負荷の効果的な並列化が達成されなくなるか、または通信および同期オーバーヘッドのため当該方法が効果的でなくなる。よって、並列化されたシミュレーションの実行に必要な時間を減少させるとともに、ローカルおよびグローバル両方の強結合を考慮した方法が必要とされている。
【課題を解決するための手段】
【００１５】
発明の概要
この発明の一実施例に従うと、シミュレーションを実行するためのシステムおよび方法が提供される。システム内の並列性を用いて、上記方法は、大きい問題をいくつかのより小さい区画へと分解する。各区画間で交換される波形が収束するまで一連の反復が実行される。強結合された区画の近似プレビュー解が導入されて、収束に必要な反復の数を減少させる。これら近似プレビュー解は、シミュレーションが行なわれる前に導入される。波形が一旦収束すれば、シミュレーションは解を決定している。
【００１６】
添付の図面の各図においてこの発明についての１つ以上の実施例を限定でなく例として説明する。図中においては、同様の参照符号は同様の構成要素を示す。
【発明を実施するための最良の形態】
【００１７】
詳細な説明
本願明細書においては、電子回路および物理的なＮポートシステムのシミュレーションのための方法およびシステムが記載される。なお、この説明においては、「一実施例」または「或る実施例」への言及は、言及されている特徴がこの発明についての少なくとも１つの実施例に含まれることを意味している。さらに、この説明における「一実施例」または「或る実施例」への個々の言及は、必ずしも同じ実施例を指すものではない。しかしながら、このような実施例は、別段の記載がない限り、さらに説明から当業者に容易に明らかであろう場合を除き、相互に排他的でもない。たとえば、一実施例に記載された特徴、構造、行為などは、その他の実施例にも含まれ得る。したがって、この発明は、ここに記載された各実施例の多種多様な組合せおよび／または統合を含み得る。
【００１８】
この発明の一実施例に従うと、シミュレーションを実行するためのシステムおよび方法が提供される。システム内の並列性を用いて、上記方法は、大きな問題をいくつかのより小さい区画へと分解する。各区画間で交換される波形が収束するまで、一連の反復が実行される。強結合された区画の近似プレビュー解が導入されて、収束に必要な反復の数を減少させる。これらプレビュー解は、シミュレーションがローカルおよびグローバル両方の結合の効果を減少させ始める前に導入される。波形が一旦収束すれば、シミュレーションは解を決定している。下で説明するように、近似の導入によって、波形が収束するのに必要な計算時間の量が減少し、ローカルおよびグローバル両方の強結合が勘案される。
【００１９】
一般的に、大きなシミュレーションをより小さい区画へと分割することが有利である。より小さい区画はより容易に並列化可能であり、その場合シミュレーションに必要な時間が短縮される。加えて、より小さい区画であれば必要な全体の計算も少なくなる。一般的に、シミュレーションは各区画間で波形を交換することによって並列化される。波形は、特定の区画の出力および入力を表わす。波形は、交換されている波形が或る共通の値に一旦近づけば収束し、結果として解が得られる。２つの区画の間での強結合は、収束に必要な反復の数（または２つの区画間の波形の交換）を増加させる場合がある。
【００２０】
従来技術の実現では、ローカルな強結合を効果的に扱うことができるのみであった。以下の各例を用いて示すように、区画のシミュレーションが始まる前に複合近似（または「プレビューア」）をシミュレーション反復に導入することによって、ローカルおよびグローバル両方の結合の効果は大幅に減少される。その結果、より小さい区画を用いることができる一方、交換される波形はより速やかに収束する。その結果として、シミュレーション時間は大幅に短縮されるが、それはより多くの区画に伴って並列化が大きくなり、より小さい区画であれば必要な計算が少なくなり、強結合の効果の減少の結果、収束に必要な反復が少なくなるからである。
【００２１】
回路シミュレーションについて詳細に述べるが、その他のシミュレーションもここに記載の技術から利益を享受し得ることが理解される。たとえば、生物学的、化学的および自動車工学的シミュレーションが、ネットワーク化されたｎポートに関連して記述可能である。ｎポートは、他のシステムとネットワーク化可能な大型のシステムのうちの１区画と考えることができる。ｎポートに関連して記述可能なあらゆる種類のシステムが、ここに開示の技術から利益を享受することができる。たとえば、ｎポートは、温度、速度、力、電力などといった値を記述し得る。現在、ベリログ（Verilog）ＡＭＳといったいくつかのシミュレーション規格が、ｎポートに関連してさまざまなシステムを記述することが可能である。
【００２２】
図２は、この発明の或る実施例が実現され得るコンピュータシステムを例示する。コンピュータシステム２００は、図３に記載の、より大型のクラスタの一部であり得る。コンピュータシステム２００は、コンピュータシステム２００全体にわたる情報のための分配チャネルとして働くバス２０２を含む。バス２０２にはプロセッサ２０４が結合される。プロセッサ２０４は、インテル（Intel）およびモトローラ（Motorola）で製造されたものを含む（ただしこれに限定されず）任意の好適なプロセッサであり得る。プロセッサ２０４はまた、多数のプロセッサを含み得る。バス２０２にはさらにメモリ２０６が結合される。メモリ２０６は、ランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、フラッシュメモリなどを含み得る。基本入出力ユニット２０８は、キーボード、マウスなどといったいくつかの入力源からの入力を受け、ディスプレイ、スピーカなどといった出力装置に対して出力する。記憶装置２１０は、磁気または光学記憶装置、たとえばハードドライブまたはコンパクトディスク読出専用メモリ（ＣＤ−ＲＯＭ）を含むあらゆる種類の永久または一時記憶装置を含み得る。オペレーティングシステム（ＯＳ）２１２のコピーが記憶装置２１０に記憶され得る。ＯＳ２１２は、コンピュータシステム２００を動作させるために必要なソフトウェアを含み、リナックス（Linux）などといったユニックス（Unix（登録商標））派生品であり得る。ＯＳ２１２は、マイクロソフト・ウィンドウズ（登録商標）（Microsoft Windows（登録商標））またはマッキントッシュ（Macintosh）ＯＳといったその他入手できるどのＯＳでもよいことが理解される。ネットワークアダプタ２１４によって、コンピュータシステム２００を、接続部２１６を介してクラスタ内の他のシステムおよびインターネットといった他のネットワークと接続する。コンピュータシステム２００は、単にこの発明の実現に用いられ得るコンピュータシステムの一例であり、その他あらゆる適当な構成を用いてもよいことが理解される。
【００２３】
図３は、この発明の或る実施例に従うコンピュータシステム３００のクラスタを例示する。いくつかのコンピュータシステム２００が、中央スイッチまたはルータ３０２を伴うピア・ツー・ピア構成を用いて一緒にネットワーク化され得る。これに代えて、ネットワーク化されたシステム３００内のコンピュータシステム２００の１つは中央サーバであり得る。この実現例を用いて、いくつかの安価なコンピュータシステム２００をネットワーク化してクラスタ３００とすることによって、並列化された問題を解くための強力なシステムを提供することができる。
【００２４】
図４は、この発明の一実施例に従う、ｎポートまたは回路を含むシステムを区画化してシミュレーションを実行するためのプロセスを記述するフローチャートである。プロセス４００は、シミュレートされるべき大きなシステムを、システム内並列の方法で用いられるべき小さい区画へと分割することを記載している。下で述べるように、システム全体をより小さなブロックへと分割することによって、各々の区画についてのノードの数Ｎは減少し、その結果、必要な計算の総数は減少する。この計算は、収束に必要な波形反復の数だけの、各々の区画の波形シミュレーションの実行からなる。
【００２５】
大きな区画、または多数の未知のノード変数を有する区画は、典型的に小さな区画よりも波形シミュレーション中により多くの計算を必要とする。信号完全性効果のない最も純粋なデジタル回路の場合、一時点あたりの計算コストは、ノードの数Ｎと比例して、およそＮのα乗となり、ここでαは１．４から１．６の範囲である。しかしながら、電力格子メッシュといった信号完全性効果が含まれる場合、αは１．８から２．４の範囲となり得る。加えて、より大きな回路の場合、シミュレーションにおける時点の数は、より高い全体の活動性のため大きくなる。総合的に、これらの効果は、収束レートおよびオーバーヘッドが悪影響を受けない限り、より小さい区画の実行を極めて有利としている。
【００２６】
一般的に、回路が有するノードまたは変数Ｎが少なくなるのに伴い、１タイムポイントあたりに必要とされる計算は少なくなる。たとえば、α＝２のシステムにおいては、１０００ノードを有する区画は、波形において１タイムポイントあたり最大１００万の浮動小数点演算を必要とする。一方、１０００ノード回路が各々１００ノードの１０個の小さい回路へと分割される場合、これら１０個の小さい回路の各々は、１タイムポイントあたり最大わずか１万の浮動小数点演算を必要とし、すなわち１タイムポイントあたり合計で最大１０万の演算となる。加えて、より大きな回路の場合、シミュレーション内のタイムポイントの数は、全体の活動性がより高いことから高くなる。
【００２７】
強結合の効果は、システムをより小さい区画へと分割する利益に対してバランスが取られる。たとえば、一区画は、回路の要素であって、その挙動が当該回路の他の要素の挙動に大きく依存する要素、を含む回路を含み得る。区画化によってこれら強結合された区画が分割される場合、結果として得られるシミュレーションは、典型的に、収束するために多数の波形反復を必要とすることになる。その結果、収束に必要な反復の数の増大は、区画がより小さくなったことによって各々の波形反復をシミュレートするために必要な時間の減少を上回る場合がある。下に記載のプレビューアを用いた近似の導入によって、グローバルおよびローカル両方の結合の効果が減少し、収束に必要な反復の数が減少する。
【００２８】
プロセス４００は開始ブロック４０２で始まる。ブロック４０４にて、システム全体の、サブシステムへの初期区画化が作成される。この区画化は、システムの内在的な特性から生じる弱結合に基づいて完了される。システム全体をスキャンして、初期区画の数およびそのシミュレーション順序を決定するのが効果的である。これら区画は、内在的結合の順序でシミュレートされたときに比較的少ない反復で収束するように選択される。大きな初期区画が内部の強結合の結果である。上述のように、より大きい区画は、各々の波形シミュレーションにつきはるかに長い計算時間を必要とする。より長い時間に伴い、コンピュータ負荷におけるバランスの崩れが生じて並列化が制約を受ける。ブロック４０６にて、さらなる並列化を必要とする順序付けられた区画が識別される。これら区画は、ブロック４０４にて生成された区画を調べることによって、さらに分割可能と識別される。識別された区画は、所望よりも大きい強結合された区画である。ブロック４０８にて、プレビューアシミュレーションが導入されて、さらなる並列化が可能となり、細かい区画化および順序が得られる。プレビューアおよびその動作については下でさらに説明するが、一般的には、プレビューアは、近似プレビュー解をもたらすために、強結合されたシステム内
に導入されることになる近似を含む。プレビューアは、シミュレータに対する解を「プレビュー」する。プレビューアは、区画のシミュレーションが始まる前に近似を生成することから、システムはローカルおよびグローバル結合の効果を減少させるが、これについては下で説明する。
【００２９】
プレビューアは、さらなる分割のための最適な候補を決定する。ブロック４１０にて、細かい区画シミュレーションが実行され、これにはコンピュータプラットフォーム上の新たな順序におけるプレビューアシミュレーションが含まれる。この動作は、シミュレーション自体の実行である。このシミュレーションは、ＳＰＩＣＥ、ベリログＡＭＳ、または別のシミュレーションアプリケーションを用いて実行され得る。
【００３０】
ブロック４１２にて、シミュレーションの進行が監視され、提案された分割の収束についてのテストが実行される。必要であれば、上記分割をさらに細かくすることによって、最も良いブロック組ひいては最も良いシミュレーションを生成する。
【００３１】
回路シミュレーションといった分野で生じる動的なシステムのシミュレーションは、典型的にはｎポートの相互接続を用いて記述される。ベリログＡＭＳといったシミュレーション言語によって、設計者は、ｎポートに関連して階層的に大型のシステムを記述することが可能である。ＳＰＩＣＥといった回路シミュレータによれば、ｎポート副回路に関連して階層記述が可能である。任意のｎ＋１端子装置がｎポート副回路として記述され得る。各々のｎポートは、一組の微分方程式および代数方程式として内部的に記述される。ポートでの相互接続は、その結果としてキルヒホフ（Kirchoff）の電流則（ＫＣＬ）またはキルヒホフの電圧則（ＫＶＬ）といったさらなる制約が生じる。
【００３２】
図５は、強結合されたマルチポート非線形回路を例示する。回路５００は、個々のｎポートとして記述され得る回路５０２，５０４を含む。回路５００は、上述の区画化４０４の結果である。回路５００は、区画としては大きすぎるものである場合があり、したがって、シミュレーションに必要な時間を増加させることになる。しかしながら、回路５００はまた、強結合されているので、分割された場合には収束が遅くなりすぎることになる。大きな回路５００は、予備的に２つの回路５０２，５０４に分割することができ、ここで回路５０２は近似可能であり、回路５０４は、元の回路５００の残りである。
【００３３】
回路５０２がｎポートインピーダンスＨ1として表わされ、回路５０４がより大きな区画５００の残りであると仮定する。回路５０２は、ｎ＋１端子回路とすることができ、ここでｎは回路内にあるポートの数であり、回路５０２は、回路の残り５０４と共通の接地４０６を共有する。
【００３４】
回路５０２の代わりに計算上コストの低い近似、たとえばＨ＾1（なおＨ＾などは、図６以下のようにＨなどの上に＾があるものを表わすこととする）を導入することによって回路５００が変換される場合、収束は加速可能である。図６は、この発明の或る実施例に従う近似を含む強結合された回路６００を例示する。回路６００は、回路５０２の代わりに近似回路６０２を用いた回路５００のプレビューアである。残りの回路５０４は上述のものと同じである。下に述べるように近似Ｈ＾1が適当なものである限り、プレビューア回路６００は、元の回路区画５０２Ｈ1に弱結合されることになり、プレビューア回路６００および回路５０２の収束は、はるかに速やかに起こることになる。近似Ｈ＾1は、計算上低コストとなるように選択され、その場合、プレビューア回路６００のシミュレーションは、区画Ｈ2のシミュレーションおよび区画５０２Ｈ1のシミュレーションとほぼ同じ時間がかかる。
【００３５】
シミュレーションについての波形反復を以下に記載する。
【００３６】
（１）  ｋ＝１；波形を初期化ΔＶ1k-1＝０
（２）  プレビューア回路６００をシミュレートすることによってΔＶ1k-1├→｛Ｉ1k，Ｖ＾1k｝
（３）  区画化されたスタンダロンインピーダンス回路５０２Ｈ1をシミュレートすることによってＩ1k├→Ｖ1k、こうして電圧波形ΔＶ1k＝Ｖ1k−Ｖ＾1kを与える。
【００３７】
（４）  ‖ΔＶ1k-1−ΔＶ1k‖＞ｔｏｌであれば、ｋ＝ｋ＋１、演算（２）へ戻り、他では終了する。
【００３８】
値ｋは各々の反復につき増分される。第１の演算（１）において各変数が初期化される。
【００３９】
第２の演算（２）において、ΔＶ1k-1├→｛Ｉ1k，Ｖ＾1k｝が決定される。値ΔＶ1k-1は、実際の電圧波形と、前の反復ｋ−１についての近似電圧波形との差に対応する。この値は回路６００に入力され、シミュレーションが実行され、電流波形についての値およびこの反復についての電圧波形の近似がプレビューアを用いて決定される。第３の演算（３）において、電流波形についての決定された値が回路に入力されて、この反復についての電圧波形についての値を決定する。次に、この反復ΔＶ1kについての実際値および近似値間の差が決定され得る。演算（４）において、波形ΔＶ1k-1およびΔＶ1k間の差のノルムが、予め定められた許容値よりも大きい場合、反復は継続してプロセスは演算（２）に戻る。差が許容値よりも小さい場合、波形は収束しており、回路６０２についてのシミュレートされた値は決定されている。波形のノルムの計算およびプレビューアにおける近似の選択については下でさらに説明する。
【００４０】
場合によっては、いくつかの近似を単一の区画内に導入することが必要なこともある。図７は、複数のより小さい区画へと分解された大きい区画を示す。図７に示すように、回路７００は、初期の区画化から残っている大きい区画である。回路７００は強結合されているため、いくつかの副回路７０２ａ〜７０２ｘに分割されており、ここでｘは、ｍ個の近似区画に等しい任意の区画数である。副回路７０２ａ〜７０２ｘは、回路７００Ｈ0の残り７０４にすべて結合され、これは典型的に抵抗器といった単純な受動素子を含む。図８は、ｍ個の近似区画を有する回路７００についてのプレビューア回路８００を示す。副回路７０２ａ〜７０２ｘの各々は、近似Ｈ＾1８０２ａからＨ＾m８０２ｘと交換されている。残りの回路Ｈ0８０４は、残りの回路７０４と同じである。
【００４１】
回路８００の収束についての波形反復は以下のように進行する。
【００４２】
（１）  初期化ｋ＝１。ｉ＝１，…ｍの場合、波形ΔＶi0
（２）  プレビューア８００をシミュレートすることによってΔＶ1k-1├→｛Ｉik，Ｖ＾ik｝。７０４−（８０２ａ…８０２ｘ）。
【００４３】
（３）  区画化されたスタンダロンインピーダンスマルチポート回路Ｖik＝Ｈi（Ｉik）、ｉ＝１，…ｍ、の各々をシミュレートすることによってＩik├→Ｖik、こうして波形ΔＶik＝Ｖik−Ｖ＾ikを与える。この演算は並列で行なわれ得る。
【００４４】
（４）  任意のｉ＝１，…ｍについて‖ΔＶik-1−ΔＶik‖＞ｔｏｌの場合、ｋ＝ｋ＋１であり、演算（２）に戻り、他では終了する。
【００４５】
このプロセスは、図６に関して上述したプロセスと類似である。しかしながら、この場合、シミュレーションが実行されなければならないいくつかの異なる区画が存在する。値
ｉは各々の区画につき増分される。図９は、いくつかの異なる区画についてのシミュレーションを実行するいくつかのプロセッサを例示する。図９に示すように、第３の演算（３）は並列化可能であり、これのためには、第２の演算（２）においてプレビューアから電流波形Ｉikが一旦利用可能となれば別個のプロセッサ９０４ａ〜９０４ｘにおいて各々の元の区画９０２ａ〜９０２ｘのシミュレーションを実行する。他では、プロセスは図６に関して上述したものと同じである。
【００４６】
上述のように、第３の演算（３）は並列化され得るが、第２の演算（２）の後に直列的に続く。複合近似の計算コストが、各々の個々の回路区画Ｖik＝Ｈi（Ｉik）の計算コストよりも小さいときには、第２の演算（２）および第３の演算（３）のさらなる並列化が達成可能である。図１０は、この発明の或る実施例に従う並列動作する複数のプロセッサを例示する。一実施例では、各々の区画が、シミュレーションのためにおよそ同じ量の計算時間を必要とするように、複数の区画が選択される。
【００４７】
図１０は、上述のシミュレーションプロセスを並列化する間における時系列１００８に沿っての複数のプロセッサ１００２，１００４，１００６の動作を例示する。時間ｔsimは、シミュレーションにおける各々の反復についての時間である。反復中のシミュレーションインターバルは時間セグメントに分割される。図１０は、各々が等しい計算時間ｔsim／２を必要とする２つの時間セグメントを伴う例を示す。第１のプロセッサ１００２は、一般にプレビューアの計算が割当てられる。第２のプロセッサ１００４および第３のプロセッサ１００６は、個々の区画が割当てられてこれら区画をシミュレートする。この例においては、第１のプロセッサ１００２は複合近似（プレビューア）を実行し、第２のプロセッサ１００４は第１の区画９０２ａを実行し、第３のプロセッサ１００６は第２の区画９０２ｂを実行する。たとえば、第１のプロセッサ１００２は、反復１０１０ａの前半の間に複合近似１０１２を実行する。近似１０１２が完了したとき、これはプロセッサ１００４，１００６に転送され、各々のプロセッサ１００４，１００６は、反復の後半の間に個々の区画をシミュレートする。換言すると、ｔ0およびｔ0＋ｔsim／２間の期間の間中、第１のプロセッサ１００２はプレビューア１０１２を算出し、これはプロセッサ１００４およびプロセッサ１００６によってそれぞれシミュレーション１０１４およびシミュレーション１０１６を実行するために用いられることになる。ｔ0＋ｔsim／２およびｔ0＋ｔsim間の期間においては、第１のプロセッサ１００２は、第１の反復の後半のプレビューアシミュレーションを算出する。この時間の間中、プロセッサ１００４，１００６は、プロセッサ１００２によって時間ｔ0およびｔ0＋ｔsim／２中に生成されたプレビューアを用いて、反復の前半についてのシミュレーションを実行する。時間ｔ0＋ｔsimおよびｔ0＋１．５＊ｔsim間に、プロセッサ１００４，１００６は、プロセッサ１００２によって時間ｔ0＋ｔsim／２およびｔ0＋ｔsim中に生成されたプレビューア解１０２２を用いてシミュレーション１０１８，１０２０を実行する。このプロセスは、シミュレーションが収束するまで継続する。
【００４８】
より具体的には、シミュレーションインターバル１０１０の前半の終わりに、反復１０１０ａの前半インターバルについてのポート電流波形Ｉi1、ｉ＝１，２がプロセッサ１００２に対して利用可能となる。これら電流波形は、スタンダロン区画を実行するよう割当てられたプロセッサ１００４，１００６に転送される。スタンダロン区画は、前半インターバルについてのシミュレーションを開始し、一方でプロセッサ１００２は、シミュレーションインターバルの後半についてのシミュレーションを実行する。プロセッサ１００４，１００６が時間ｔ0＋ｔsimでインターバルの前半のシミュレーションを完了させたとき、前半のインターバルについての区画から、プロセッサ１００２で次の反復中に用いられるべき複合近似までの電圧波形Ｖi1、ｉ＝１，２をもたらす。これによって、プロセッサ１００２は、時間ｔ0＋ｔsimにおいて、第２の反復についての前半のインターバルのシミュレーションを継続することができる。パイプライン化された評価によって、当該方法を
効率的に並列実行することが可能となる。
【００４９】
図１１および図１２は、インピーダンスおよび電圧でなくアドミタンスおよび電流を用いたこの発明の或る実施例を例示する。図１１は、プレビューア回路６００に類似の強結合された回路のためのプレビューア１１００を例示する。回路１１００は、近似回路１１０２および回路の残り１１０４を含む。図１２は、回路８００に類似の多数の別個の区画を含む回路１２００を例示する。回路１２００は、複数の区画１２０２ａ〜１２０２ｘおよび回路の残り１２０４を含む。上述のインピーダンスおよび電圧ｎポートと類似して、波形反復は以下のように進行する。
【００５０】
（１）  初期化ｋ＝１。ｉ＝１，…ｍの場合、波形ΔＩi0
（２）  上述の図１１に示すようにプレビューアシステム０−１’…ｍ’をシミュレートすることによってΔＩik-1├→｛Ｖik，Ｉ＾ik｝。
【００５１】
（３）  区画化されたスタンダロンアドミタンスマルチポート回路Ｉik＝Ｈi（Ｖik）、ｉ＝１，…ｍの各々をシミュレートすることによってＶik├→Ｉik、これによって波形ΔＩik＝Ｉik−Ｉ＾ikを与える。この演算は並列で実行可能である。
【００５２】
（４）  任意のｉ＝１，…ｍの場合に‖ΔＩik-i−ΔＩik‖＞ｔｏｌである場合、ｋ＝ｋ＋１であり、演算（２）に戻り、他では終了する。
【００５３】
ここで用いられる場合、最初の区画１２０２ａについてはｉ＝１であり、最後の区画１２０２ｘについてはｉ＝ｍである。上と同様に、波形ΔＩikは、電流の実際の算出値と近似値との差を測定する。第４の演算（４）において、前の繰返しと現在の繰返しとの波形ΔＩik間の差のノルムが許容値ｔｏｌ未満であれば、反復は収束しており、この区画につてのシミュレーションは完了している。図８および図１２においては、任意の１つのｎポートはハイブリッドマルチポートであり得る。対応の入力および出力は、電圧および電流のハイブリッド（組合せ）である。波形反復は、回路についての適当な入力および出力波形のために変更が加えられる。
【００５４】
この手法にはいくつかの利点がある。一般に強結合された非線形のマルチポートシステムが考慮されているため、グローバルおよびローカル両方のフィードバック状況がともに対処される。以前の方法では、単一の端子での負荷から生じるローカルフィードバックに対してグローバルフィードバックとは別個に対処を図っていた。これら先行技術の方法では、ＭＯＳ回路における特定の単方向構造を利用していた。強いローカルな両方向結合が存在する場合、これは収束上の困難さを引起していた。先行技術の方法にはまた、強いグローバル結合が存在する場合に収束が遅いという問題があった。
【００５５】
本方法は、非線形波形をバナッハ空間での非線形波形に写像するあらゆるシミュレーションに適用される。対応のバナッハ空間ノルムが、反復中に収束テストにおいてかつ下記の近似のための増分演算子利得を計算するために用いられる。したがって、その利益を引出すためにマルチポートシステムにおける特定の構造は用いない。本方法から引出される利益に加えて、下層ドメインの構造を利用するあらゆるシミュレータが、構造を利用するために使用され得る。たとえば、ＳＰＩＣＥといった回路シミュレータにおいては、下層の回路式のスパーシティ構造はシミュレータ自体によって利用される。個々の構成要素のシミュレーションにＳＰＩＣＥを用いることによって、回路式のスパーシティ構造の利用が可能となる。
【００５６】
複合近似は、多種多様な手法を用いてシミュレーション可能である。たとえば、ＭＯＳ回路シミュレータにおいては、イベント駆動シミュレーションにおいてテーブル駆動のピ
ースワイズ近似モデルを用いて複合近似が構成可能である。このようなシミュレータは、高速タイミングシミュレータとも称され、ＳＰＩＣＥよりも１０〜１０００倍の速度で近似波形をもたらす。しかしながら、近似波形はわずか５〜１０％の範囲で正確なものである。近似シミュレーションの別の例は、ＭＯＲ（Model Order Reduction）を用いるというものである。大型のＲＬＣネットワークについては、ＭＯＲは、最大１０％のエラーを導入することと引き換えに数桁速い計算をもたらす。
【００５７】
近似が収束のための条件を満たす限りあらゆる特定ドメインのシミュレータおよび特定ドメインの近似を用いることができる。注目すべきことは、比較的粗い近似が速い収束に繋がることである。
【００５８】
以下の記載は、上述の各プロセスで用いられることになる近似を選択するプロセスを説明するものである。強結合されたシステムについてのプレビューアは、以下の特性を有する複合近似を含む。
【００５９】
（１）  プレビューアは、各々の元の構成要素ｎポートを正確にシミュレートするために必要とされる時間に相当する時間内にそれ自身のシミュレータでシミュレート可能である。これは、図１０におけるパイプライン化されたプロセスに関して既に述べられたものである。
【００６０】
（２）  残りの回路Ｈ0は無視できるほど小さなものであり、典型的に抵抗器またはノードといった受動素子を含む。
【００６１】
（３）  各々の近似された構成要素ｎポートＨ＾iは、Ｈiに対してエラーテストを満たす。これはＨi−Ｈ＾iの増分演算子利得についてのテストである。
【００６２】
近似のための候補には、簡略化テーブルルックアップモデルでのシミュレーション、スイッチレベルシミュレーション、マクロモデル、および低次縮約モデルが含まれる。これら近似は、再利用される構成要素についての前特徴付けを含み得る。これに加えて、近似の品質とその実行時間速度との間の兼ね合いがある。前特徴付け時には、ＨiとＨ＾iとの間のエラーは以下を用いて計算される。
【００６３】
ｕ1，ｕ2，…，ｕlを、Ｈ＾iの当てはめに用いられる別個の入力ベクトルとする。
【００６４】
ｙ1，ｙ2，…，ｙlを、入力ｙj＝Ｈi（ｕj）でのＨiの実行からの出力ベクトルとする。
【００６５】
ｙ＾1，ｙ＾2，…，ｙ＾lを、入力ｙ＾j＝Ｈ＾i（ｕj）でのＨ＾iの実行からの出力ベクトルとする。
【００６６】
ここでは、ｕjは入力波形値を表わし、ｙj＝Ｈi（ｕj）は、入力ｕjが与えられた場合の区画Ｈiの実際の波形出力を表わし、ｙ＾j＝Ｈ＾i（ｕj）は、入力ｕjが与えられた場合の区画についての近似出力を表わす。近似についてのエラーを決定するためには、増分演算子利得の推定値が計算される。
【００６７】
【数３】
2007536602.tif 000005
【００６８】
ここで入力または出力ベクトル波形のノルムは
【００６９】
【数４】
2007536602.tif 000006
【００７０】
である。任意の所与の時間ｔにて、ｙ（ｔ）は電圧または電流変数のベクトルである。｜ｙ（ｔ）｜は、順序付けられた実際のｎ個の要素からなる集合の線形空間におけるノルムを表わす。たとえば、ｙ（ｔ）が４つの電圧から構成される場合、ｙ（ｔ）＝［Ｖ１（ｔ），Ｖ２（ｔ），Ｖ３（ｔ），Ｖ４（ｔ）］であり、その場合
｜ｙ（ｔ）｜＝ｍａｘ［ａｂｓ（Ｖ１（ｔ）），ａｂｓ（Ｖ２（ｔ）），ａｂｓ（Ｖ３（ｔ）），ａｂｓ（Ｖ４（ｔ））］、
または代替的に｜ｙ（ｔ）｜＝（Ｖ１2（ｔ）＋Ｖ２2（ｔ）＋Ｖ３2（ｔ）＋Ｖ４2（ｔ））1/2である。
【００７１】
【数５】
2007536602.tif 000007
【００７２】
後の記載は、ここに記載された技術のいくつかの例を説明する。これら記載は例であると理解され、さらに、記載の発明については他のいくつかの可能な実現例および実施例が存在することが理解される。
【００７３】
図１３〜１７は、この発明の或る実施例に従う両方向ローカル結合を呈する回路のシミュレーションを例示する。図１３は、両方向ローカル結合を呈する回路を例示する。回路１３００は、非線形要素Ｇ２  １３０２を含む強結合された回路であり、これは２つの並列のダイオード方程式によって記述され得る。
【００７４】
【数６】
2007536602.tif 000008
【００７５】
回路１３００は、Ｈ1と表わす第１の区画１３０４と回路の残り１３０６とに区画化されることになる。回路１３００はさらに、３つのキャパシタＣ１  １３０８、Ｃ２  １３１０およびＣ３  １３１２、線形要素Ｇ１  １３１４および電流源Ｊ  １３１６を含む。
【００７６】
標準ノード分析（キルヒホフの電流則を用いる）からは、２つの結合された微分方程式が与えられる。
【００７７】
【数７】
2007536602.tif 000009
【００７８】
ガウス・ザイデル反復を用いてこの回路を複数の区画へと分解するための先行技術の方法は、結果として以下の式を与える。
【００７９】
【数８】
2007536602.tif 000010
【００８０】
【数９】
2007536602.tif 000011
【００８１】
結合キャパシタＣ３  １３１０が、他のキャパシタＣ１  １３０８およびＣ２  １３１０と比較して大きい静電容量を有するとき、収束のレートは遅くなる。図１４は、標準的なガウス・ザイデル分解を用いた遅い収束を例示する。グラフ１４００は、ｘ軸１４０２に沿ってプロットされた時間およびｙ軸１４０４に沿った電圧を有する。プロット線１４０６の各々は、回路１３００についての実際の値と比較した先行技術のガウス・ザイデル分解を用いたシミュレーションにおける各々の漸進反復についてのエラーを例示する。グラフ１４００は、１０回の反復を通じて遅く収束するシミュレーションを示す。プロット線１４０６ａは、１回目の反復についてのエラーを示し、プロット線１４０６ｊは、１０回目の反復についてのエラーを示す。シミュレーションは正しい解へ向けてゆっくりと収束するが、１０回目の反復の後でもエラーはいくつかのタイムポイントで０．６Ｖを超過する。このような低い収束レートは実際の場面は許容不可能であることは明らかである。先行技術の方法を用いた発見的区画化アルゴリズムでは回路１３００を区画化しないであ
ろう。しかしながら、大型の回路でこれを行なうことは、並列計算のために不十分な粒度に繋がる。
【００８２】
図１５は、非線形要素Ｇ２  １３０２についての近似を例示する。グラフ１５００は、ｘ軸１５０２上の電圧対ｙ軸１５０４上の電流のプロットを示す。完全な、シミュレートされたプロット１５０６を、グラフ１５００に示す。近似値はプロット１５０８を用いて示される。近似値は、ここに記載の技術を用いて、たとえば粗いピースワイズリニアテーブルルックアップを用いて得られる。
【００８３】
図１６は、非線形要素Ｇ２のピースワイズリニア近似１５０８を含む回路１３００を例示する。プレビューア回路１６００は、回路１３００であって、元の非線形要素１３０２の代わりに近似１６０２を含むものである。図５，６に記載の区画１３０４の代わりに区画１６０４が示されている。
【００８４】
図１７は、プレビューア回路１６００を用いた高速収束を例示するプロットである。プロット１５００と同様、プロット１７００は、ｘ軸１７０２に沿った時間およびｙ軸１７０４に沿った電圧を示す。プロット内の電圧は、回路１３００によって生成された実際の出力からのエラーである。なお、ｙ軸１７０４の目盛は、上述のｙ軸１５０４の目盛よりもはるかに小さく、１回目の反復１７０６ａについても１０回目の反復１５０６ｊについてのエラーよりもエラーがはるかに小さいことを示している。３回目の反復１７０６ｃまでに、エラーは極めて小さくなっており、シミュレーションは、回路１３００についての実際の算出値に極めて近づいている。その結果、ここに記載のこの発明の各実施例を用いて、反復は近似を用いないよりもはるかに速やかに収束する。
【００８５】
図１８〜２２は、この発明の一実施例に従う単方向グローバルおよびローカル両方向結合ならびにそのシミュレーションを例示する。図１８は、四次フィルタ回路１８００を例示する。回路１８００は、３つの演算増幅器の段１８０２，１８０４，１８０６を含む。入力電圧から出力電圧への理想化されたフィルタ転送機能は、振動応答を伴う二次である。実際の応答は、演算増幅器におけるスルーレート（slew rate）およびクランピングといった非線形の効果を有する。加えて、より高次の寄生極およびゼロは、線形化された転送機能に存在する。各々の演算増幅器段１８０２，１８０４または１８０６を副回路とみなすと、機能ブロックの単方向入出力信号流れを横切るのに伴い振動応答を生じさせる強いグローバル結合が存在することが明らかである。グローバル結合に加えて、各々すべての接続ノードにはローカルな両方向負荷効果が存在する。グローバル結合は、高速で作用しかつ強いものである。
【００８６】
図１９は、ガウス・ザイデル分解を用いて区画化された回路１８００を例示する。分解１９００は、複数の順序付けられた区画１９０２，１９０４，１９０６に分割された回路１８００を示す。これら区画は、公知のガウス・ザイデル分解を用いて作り出されている。
【００８７】
図２０は、ガウス・ザイデル分解を用いた回路１８００のシミュレーションの収束を示すプロットである。グラフ２０００は、ｘ軸２００２に沿った時間およびｙ軸２００４に沿った電圧を示す。プロット２００６は、回路１８００の実際の応答を示す。プロット２００８は、ガウス・ザイデル分解１９００を用いた５回の反復後の出力を示す。プロット２０１０は、ガウス・ザイデル分解１９００を用いた１０回の反復後の出力を示す。波形は極めて遅く収束することが見て取れる。
【００８８】
この発明の或る実施例に従うと、回路１８００は、図７，８，９の回路７００が分解されるのと同じ態様で分解され得る。図２１は、この発明の或る実施例に従う回路１８００
の分解からのプレビューアを例示する。副回路段Ｈ1１８０２、Ｈ2１８０４およびＨ3１８０６の各々は、非線形２ポートインピーダンス演算子として見られる。残りの回路Ｈ0２１０８は、相互接続ワイヤを伴うノードのみを含む。各々の段２１０２，２１０４，２１０６の近似は、完全な非線形演算増幅器の代わりに等価の理想電圧制御電圧源を用いることによって達成される。
【００８９】
図２２は、この発明の或る実施例に従い分解された回路１８００の収束を例示するグラフである。グラフ２２００は、ｘ軸２２０２における時間およびｙ軸２２０４における出力電圧を示す。プロット２２０６は完全なシミュレーションである。プロット２２０８は１回目の反復後の出力であり、プロット２２１０は２回目の反復後の出力である。図７，８，９に示す分解を用いたときにシミュレーションは極めて速やかに収束することが見て取れる。
【００９０】
図２３〜２６は、この発明の或る実施例に従う両方向ローカルおよびグローバル結合の非線形メッシュ例を示す。図２３Ａは、非線形二次元メッシュ２３００を例示する。図２３Ｂおよび２３Ｃは、メッシュ２３００の分解図を示す。メッシュ２３００は、集積回路（ＩＣ）内の電力格子であり得る。メッシュ２３００は、４つの隣接するノードに接続する各々の内部ノード２３０４について４つの抵抗器２３０２を含む。各々のノード２３０４にて、キャパシタ２３０６およびダイオード２３０８が接地２３１０に接続される。ダイオード２３０８は逆バイアスされる。メッシュコーナは，４つの接続抵抗器２３０２を介して供給ノードに接続される。メッシュノードは、タイル２３１２に分割される。図２３Ａに示すように、メッシュ２３００は３×２タイルの格子を含む。各々のタイル２３１２は、高インピーダンス電流源２３１４が取付けられる中央ノード２３０４を含む。
【００９１】
図２３Ｃに示すように、タイル２３１２は、接続抵抗器２３１６を介して接続される。これら接続抵抗器２３１６は、残りの回路Ｈ0を構成でき、各々のタイル２３１２は、図７，８，９におけるような区画Ｈiを含み得る。メッシュ２３００は、この発明の或る実施例に従いこの態様で分解され得る。
【００９２】
メッシュ２３００についての近似Ｈ＾iは、Ｈiの線形化されたインピーダンスの低次縮約モデルを用いて作り出されている。その結果得られるプレビューアは、効率的にシミュレート可能な低次の線形システムである。
【００９３】
図２４は、回路２３００のフルレファレンスシミュレーションから、およびそのフルオーダ線形近似からのタイル２３１２についての中央ノード電圧を示すグラフ２４００を例示する。ｘ軸２４０２は時間を示し、ｙ軸２４０４は出力の電圧を示す。プロット２４０６はフルレファレンスシミュレーションを示し、プロット２４０８はフルオーダ線形近似を示す。２つのプロット２４０６，２４０８間の差は、ダイオード２３０８の非線形性から生じる。
【００９４】
図２５は、タイル２３１２の中央ノード電圧についてのフルレファレンスシステムおよび近似の低次プレビューア応答間の差を例示する。ここでもまた、ｘ軸２５０２は時間を示し、ｙ軸２５０４は電圧を示す。プロット２５０６では、近似と完全な参照との差がかなりあることが示される。
【００９５】
図２６は、プレビューアベースの近似の或る実施例を用いた３回の反復後のシミュレーションの電圧出力のエラーを示すグラフである。グラフ２６００は、時間を示すｘ軸２６０２および電圧を示すｙ軸２６０４を含む。プロット２６０６では、わずか３回の反復後にエラーは受け入れられる許容値以内に十分にあることが示される。これとは対照的に、標準的なガウス・ザイデル分解を用いた場合、収束は５０回超の反復を要する。
【００９６】
この発明の各実施例は回路シミュレーションには限定されないことが理解される。たとえば、化学的シミュレーション、生物学的シミュレーション、自動車工学的シミュレーションなどといった他のいくつかの種類のシミュレーションが、ここに記載されたシステムおよび技術を用いて実行され得る。これら技術は、特定の用途に対して適合され得る。
【００９７】
この発明は、その特定の例示的な実施例を参照して記述してある。しかしながら、この開示の利益を有する者にとっては、この発明のより広い意味および範囲から逸脱することなしにさまざまな変形や変更が上記各実施例に対して可能であることが明らかであろう。したがって、明細書および図面は、制限的でなく例示的な意味で考えられるべきである。
【図面の簡単な説明】
【００９８】
【図１】初期値問題を用いてシミュレーションに対する解を決定するためのプロセスを例示するフローチャートである。
【図２】この発明の或る実施例が実現され得るコンピュータシステムを例示する図である。
【図３】この発明の或る実施例に従うコンピュータシステムのクラスタを例示する図である。
【図４】この発明の一実施例に従いシステムを区画化してシミュレーションを実行するためのプロセスを説明するフローチャートである。
【図５】強結合されたマルチポート非線形回路を例示する図である。
【図６】この発明の或る実施例に従う近似を含む強結合された回路を例示する図である。
【図７】複数の小さな区画へと分解された大きな区画を例示する図である。
【図８】ｍ個の近似区画を伴う回路７００についてのプレビューア回路を例示する図である。
【図９】複数の異なる区画についてのシミュレーションを実行する複数のプロセッサを例示する図である。
【図１０】この発明の或る実施例に従う並列実行される複数のプロセッサを例示する図である。
【図１１】プレビューア回路６００に類似の強結合された回路についてのプレビューアを例示する図である。
【図１２】回路８００に類似の、多数の別個の区画を含む回路を例示する図である。
【図１３】両方向ローカル結合を呈する回路を例示する図である。
【図１４】標準ガウス・ザイデル分解を用いた遅い収束を例示する図である。
【図１５】非線形要素Ｇ２についての近似を例示する図である。
【図１６】非線形要素Ｇ２のピースワイズリニア近似を含む回路を例示する図である。
【図１７】回路の高速収束を例示するプロットである。
【図１８】四次フィルタ回路を例示する図である。
【図１９】ガウス・ザイデル分解を用いて区画化された回路を例示する図である。
【図２０】ガウス・ザイデル分解を用いた回路のシミュレーションの収束を示すプロットである。
【図２１】この発明の或る実施例に従う回路の分解からのプレビューアを例示する図である。
【図２２】この発明の或る実施例に従い分解された回路の収束を例示するグラフである。
【図２３Ａ】非線形二次元メッシュを例示する図である。
【図２３Ｂ】メッシュの一例の分解図である。
【図２３Ｃ】メッシュの一例の分解図である。
【図２４】回路のフルレファレンスシミュレーションから、およびフルオーダ線形近似からのタイルについての中央ノード電圧を示すグラフである。
【図２５】タイルの中央ノード電圧についてのフルレファレンスシステムおよび近似の低次プレビューア応答間の差を例示する図である。
【図２６】プレビューアベースの近似の或る実施例を用いた３回の反復後のシミュレーションの電圧出力のエラーを示すグラフである。
【図１】
2007536602.tif 000012
【図２】
2007536602.tif 000013
【図３】
2007536602.tif 000014
【図４】
2007536602.tif 000015
【図５】
2007536602.tif 000016
【図６】
2007536602.tif 000017
【図７】
2007536602.tif 000018
【図８】
2007536602.tif 000019
【図９】
2007536602.tif 000020
【図１０】
2007536602.tif 000021
【図１１】
2007536602.tif 000022
【図１２】
2007536602.tif 000023
【図１３】
2007536602.tif 000024
【図１４】
2007536602.tif 000025
【図１５】
2007536602.tif 000026
【図１６】
2007536602.tif 000027
【図１７】
2007536602.tif 000028
【図１８】
2007536602.tif 000029
【図１９】
2007536602.tif 000030
【図２０】
2007536602.tif 000031
【図２１】
2007536602.tif 000032
【図２２】
2007536602.tif 000033
【図２３Ａ】
2007536602.tif 000034
【図２３Ｂ】
2007536602.tif 000035
【図２３Ｃ】
2007536602.tif 000036
【図２４】
2007536602.tif 000037
【図２５】
2007536602.tif 000038
【図２６】
2007536602.tif 000039
【手続補正書】
【提出日】平成19年5月18日(2007.5.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムをシミュレートする方法であって、
比較的精度の低いシミュレーション機構を用いて上記システムの少なくとも一部がシミュレートされる、上記システムの第１のシミュレーションを実行することにより第１のシミュレーション結果を生成するステップと、
比較的精度の高いシミュレーション機構を用いて上記システムの前記一部がシミュレートされる、第２のシミュレーションを実行することにより第２のシミュレーション結果を生成するステップと、
上記第１のシミュレーション結果および上記第２のシミュレーション結果の両方に基づいて上記システムについてのシミュレーション結果を決定するステップとを含む、方法。
【請求項２】
上記システムの前記一部は、上記第１のシミュレーション中に、上記システムの他の部分と波形を交換する上記システムの区画である、請求項１に記載の方法。
【請求項３】
上記方法はさらに、上記第１および第２のシミュレーションを実行することに先立ち、複数の区画を生成するように上記システムを区画化するステップを含み、
上記一部は、上記複数の区画のうちの第１の区画を含み、
上記第１のシミュレーション中に、比較的精度の高いシミュレーション機構を用いて上記複数の区画のうちの第２の区画がシミュレートされる、請求項１に記載の方法。
【請求項４】
上記第１のシミュレーション中に上記第２の区画をシミュレートするために用いられる上記比較的精度の高いシミュレーション機構は、上記第２のシミュレーション中に上記システムの前記一部をシミュレートするために用いられる同じ比較的精度の高いシミュレーション機構である、請求項３に記載の方法。
【請求項５】
上記第１の区画は、上記第２の区画に強く結合される、請求項３に記載の方法。
【請求項６】
上記第１のシミュレーション中に、上記システムの複数の区画の各々につき比較的精度の低いシミュレーション機構を用い、
上記第１のシミュレーションとは別に、比較的精度の高いシミュレーション機構を用い
て上記複数の区画のうちの各々の区画につきシミュレーション動作を実行し、
上記システムについての上記シミュレーション結果は、上記第１のシミュレーションと、上記複数の区画のうちの各々の区画についての上記シミュレーション動作との両方に基づいて決定される、請求項１に記載の方法。
【請求項７】
上記複数の区画のうちの各々の区画についての上記シミュレーション動作は並列実行される、請求項６に記載の方法。
【請求項８】
上記第１のシミュレーションを実行するステップは、第１の組の１つ以上のプロセッサにおいて、第２の組の１つ以上のプロセッサにおける上記第２のシミュレーションの実行と並列に実行される、請求項１に記載の方法。
【請求項９】
上記第１のシミュレーション結果および上記第２のシミュレーション結果間の比較を実行するステップと、
上記比較に基づいて、上記システムについての上記シミュレーション結果を決定するために追加のシミュレーション動作を実行するべきか否かを判断するステップとをさらに含み、
追加のシミュレーション動作を実行するべきか否かを判断する上記ステップは、上記第１のシミュレーション結果および上記第２のシミュレーション結果間の差が特定のしきい値を超過するか否かを判断するステップを含む、請求項１に記載の方法。
【請求項１０】
上記システムについてのシミュレーション結果を決定する上記ステップは、
上記第１のシミュレーション結果および上記第２のシミュレーション結果間の差を決定するステップと、
上記システムの少なくとも１つの追加のシミュレーションを実行するステップと、
上記差を、上記少なくとも１つの追加のシミュレーションへの入力として使用するステップとを含む、請求項１に記載の方法。
【請求項１１】
上記第１のシミュレーションを実行するステップは、プレビューアのシミュレーションを実行するステップを含み、上記プレビューアは、上記第１の区画の比較的精度の低いシミュレーションをもたらす第１の数学的記述によって上記システムの特定の区画が表わされる、上記システムのモデルであり、
上記第２のシミュレーションを実行するステップは、上記特定の区画の比較的精度の高いシミュレーションをもたらす第２の数学的記述を用いて上記特定の区画のシミュレーションを実行するステップを含む、請求項１に記載の方法。
【請求項１２】
上記システムは回路を含み、
比較的精度の低いシミュレーション機構を用いて上記システムの少なくとも一部がシミュレートされる、上記システムの第１のシミュレーションを実行することにより第１のシミュレーション結果を生成するステップは、比較的精度の低い回路シミュレータを用いて上記回路の少なくとも一部がシミュレートされる、上記回路の第１のシミュレーションを実行することにより第１のシミュレーション結果を生成するステップを含み、
比較的精度の高いシミュレーション機構を用いて上記システムの前記一部がシミュレートされる、第２のシミュレーションを実行することにより第２のシミュレーション結果を生成するステップは、比較的精度の高い回路シミュレータを用いて上記回路の前記一部がシミュレートされる、第２のシミュレーションを生成するステップを含み、
上記第１のシミュレーション結果および上記第２のシミュレーション結果の両方に基づいて上記システムについてのシミュレーション結果を決定するステップは、上記第１のシミュレーション結果および上記第２のシミュレーション結果の両方に基づいて上記回路についてのシミュレーション結果を決定するステップを含む、請求項１に記載の方法。
【請求項１３】
上記第１のシミュレーションは、高速タイミングシミュレータを用いて上記回路の前記少なくとも一部をシミュレートするステップを含み、
上記第２のシミュレーションは、ＳＰＩＣＥを用いて上記回路の前記少なくとも一部をシミュレートするステップを含む、請求項１２に記載の方法。
【請求項１４】
上記第１のシミュレーションは、ＭＯＲ（Model Order Reduction）シミュレータを用
いて上記回路の前記少なくとも一部をシミュレートするステップを含み、
上記第２のシミュレーションは、ＳＰＩＣＥを用いて上記回路の前記少なくとも一部をシミュレートするステップを含む、請求項１２に記載の方法。
【請求項１５】
上記第１のシミュレーション結果は、第１の電流結果および第１の電圧結果を含み、
上記第２のシミュレーションは、上記第１の電流結果に基づき、
上記第２のシミュレーション結果は、第２の電圧結果を含み、
上記方法は、
上記第１の電圧結果および上記第２の電圧結果間の比較を実行するステップと、
前記比較に基づいて、上記システムについての次のシミュレーションを実行するべきか否かを判断するステップとをさらに含み、
上記第１の電圧結果および上記第２の電圧結果間の差がしきい値を超過した場合に上記システムについての次のシミュレーションを実行し、
上記システムについての次のシミュレーションが実行される場合、上記第１の電圧結果および上記第２の電圧結果間の上記差を、上記システムについての上記次のシミュレーション中に入力として使用する、請求項１２に記載の方法。
【請求項１６】
上記第１のシミュレーション結果は第１の結果および第２の結果を含み、上記第１の結果は、上記回路の第１の属性を測定し、上記第２の結果は、上記回路の第２の属性を測定し、
上記第２のシミュレーションは、上記第１のシミュレーション中に生成された上記第１の結果に基づき、
上記第２のシミュレーション結果は、上記回路の上記一部の前記第２の属性を測定する第３の結果を含み、
上記方法は、
上記第２の結果および上記第３の結果間の比較を実行するステップと、
前記比較に基づいて、上記システムについての次のシミュレーションを実行するべきか否かを判断するステップとをさらに含む、請求項１２に記載の方法。
【請求項１７】
システムをシミュレートする方法であって、
第１のシミュレーション機構を用いて上記システムのうちの部分がシミュレートされる、上記システムの第１のシミュレーションを実行することにより第１のシミュレーション結果を生成するステップと、
複数の第２のシミュレーションを実行することにより複数の第２のシミュレーション結果を生成するステップとを含み、各々の第２のシミュレーションは、第２のシミュレーション機構を用いて、上記部分のうちの１つをシミュレートし、
上記第２のシミュレーション機構は第１のシミュレーション機構と異なり、
上記第２のシミュレーションのうちの１つの少なくとも一部は、上記第２のシミュレーションのうちの他の少なくとも１つと並列に実行され、
上記第１のシミュレーション結果および上記複数の第２のシミュレーション結果の両方に基づいて上記システムについてのシミュレーション結果を決定するステップをさらに含む、方法。
【請求項１８】
上記システムの第１のシミュレーションを実行するステップは、前特徴付け中に、以下の式に従い計算された増分演算子利得の推定値に基づいて近似についてのエラーを決定するステップを含み、すなわち
【数１】
2007536602.tif 000040
である、請求項１に記載の方法。
【請求項１９】
１つ以上の命令シーケンスを担うコンピュータ読取可能媒体であって、上記１つ以上の命令シーケンスは、１つ以上のプロセッサにより実行されたときに、上記１つ以上のプロセッサに請求項１から１８のいずれかに記載の方法を実行させる、コンピュータ読取可能媒体。
【請求項２０】
システムをシミュレートするための装置であって、
比較的精度の低いシミュレーション機構を用いて上記システムの少なくとも一部がシミュレートされる、上記システムの第１のシミュレーションを実行することにより第１のシミュレーション結果を生成するための手段と、
比較的精度の高いシミュレーション機構を用いて上記システムの前記一部がシミュレートされる、第２のシミュレーションを実行することにより第２のシミュレーション結果を生成するための手段と、
上記第１のシミュレーション結果および上記第２のシミュレーション結果の両方に基づいて上記システムについてのシミュレーション結果を決定するための手段とを含む、装置。
【請求項２１】
上記装置はさらに、上記第１および第２のシミュレーションを実行するのに先立ち複数の区画を生成するように上記システムを区画化するための手段を含み、
上記少なくとも一部は、上記複数の区画のうちの第１の区画を含み、
上記第１のシミュレーション中に、比較的精度の高いシミュレーション機構を用いて上記複数の区画のうちの第２の区画がシミュレートされる、請求項２０に記載の装置。
【請求項２２】
上記第１の区画は、上記第２の区画に強く結合される、請求項２１に記載の装置。
【請求項２３】
上記第１のシミュレーション中に、上記システムの複数の区画の各々につき比較的精度の低いシミュレーション機構が用いられ、
上記装置は、
上記第１のシミュレーションとは別に、比較的精度の高いシミュレーション機構を用いて上記複数の区画のうちの各々の区画についてのシミュレーション動作を実行するための手段と、
上記第１のシミュレーション、および、上記複数の区画のうちの各々の区画についての上記シミュレーション動作、の両方に基づいて上記システムについての上記シミュレーション結果を決定するための手段とを含む、請求項２０に記載の装置。
【請求項２４】
上記複数の区画のうちの各々の区画についての上記シミュレーション動作は並列実行される、請求項２３に記載の装置。
【請求項２５】
システムをシミュレートするための装置であって、
上記システムの複数の部分のうちの各々の部分が第１のシミュレーション機構を用いてシミュレートされる、上記システムの第１のシミュレーションを実行することにより第１のシミュレーション結果を生成するための手段と、
複数の第２のシミュレーションを実行することにより複数の第２のシミュレーション結果を生成するための手段とを含み、各々の第２のシミュレーションは、第２のシミュレーション機構を用いて上記複数の部分のうちの１つの部分をシミュレートし、
上記第２のシミュレーション機構は上記第１のシミュレーション機構と異なり、
上記第２のシミュレーションのうちの１つの少なくとも一部は、上記第２のシミュレーションのうちの他の少なくとも１つと並列に実行され、
上記第１のシミュレーション結果および上記複数の第２のシミュレーション結果の両方に基づいて上記システムについてのシミュレーション結果を決定するための手段をさらに含む、装置。
【請求項２６】
回路を表わす、シミュレートされた回路であって、
比較的低い精度を用いて上記回路の１つ以上の区画を表わす１つ以上の近似化された区画と、
比較的高い精度を用いて、上記１つ以上の近似化された区画で表わされていない上記回路の部分を表わす残りの回路とを含み、
上記１つ以上の近似化された区画は、波形を上記残りの回路と交換し、
上記シミュレートされた回路を用いて上記回路をシミュレートした結果は、１つ以上の副回路をシミュレートした結果と比較され、
上記１つ以上の副回路は、比較的高い精度を用いて、上記回路の上記１つ以上の区画を表わす、シミュレートされた回路。
【請求項２７】
上記１つ以上の副回路は複数の副回路を含む、請求項２６に記載のシミュレートされた回路。
【請求項２８】
上記回路は、マルチポート非線形回路である、請求項２６に記載のシミュレートされた回路。
【請求項２９】
上記副回路の各々は、スタンダロンインピーダンスマルチポート回路を表わす、請求項２６に記載のシミュレートされた回路。
【請求項３０】
上記複数の副回路は並列にシミュレートされる、請求項２７に記載の方法。
【請求項３１】
機械読取可能媒体に記憶されたプログラムであって、実行されたときに、
比較的精度の低いシミュレーション機構を用いてシステムの少なくとも一部がシミュレートされる、第１のシミュレーションが実行されることを引起し、
上記第１のシミュレーションの実行は第１のシミュレーション結果を生成し、上記プログラムはさらに、
比較的精度の高いシミュレーション機構を用いて上記システムの前記一部がシミュレートされる、第２のシミュレーションが実行されることを引起し、
上記第２のシミュレーションの実行は第２のシミュレーション結果を生成し、上記プログラムはさらに、
上記第１のシミュレーション結果および上記第２のシミュレーション結果の両方に基づいて、上記第１のシミュレーション結果よりも正確な上記システムについてのシミュレーション結果を得るためには追加のシミュレーションが実行されるべきか否かについての判断がなされることを引起す、プログラム。
【請求項３２】
上記システムの前記一部は、上記第１のシミュレーション中に波形を上記システムの他の部分と交換する、上記システムの区画である、請求項３１に記載のプログラム。
【請求項３３】
上記プログラムはさらに、上記第１および第２のシミュレーションを実行するのに先立ち複数の区画を生成するように上記システムが区画化されることを引起し、
上記一部は、上記複数の区画のうちの第１の区画を含み、
上記第１のシミュレーション中に、上記複数の区画のうちの第２の区画が、比較的精度の高いシミュレーション機構を用いてシミュレートされる、請求項３１に記載のプログラム。
【請求項３４】
上記第１のシミュレーション中に上記第２の区画をシミュレートするために用いられる上記比較的精度の高いシミュレーション機構は、上記第２のシミュレーション中に上記システムの前記一部をシミュレートするために用いられる同じ比較的精度の高いシミュレーション機構である、請求項３３に記載のプログラム。
【請求項３５】
上記第１のシミュレーション中に、上記システムの複数の区画の各々につき比較的精度の低いシミュレーション機構が用いられ、
上記第１のシミュレーションとは別に、比較的精度の高いシミュレーション機構を用いて上記複数の区画のうちの各々の区画につきシミュレーション動作が実行され、
上記システムについての上記シミュレーション結果は、上記第１のシミュレーション、および、上記複数の区画のうちの各々の区画についての上記シミュレーション動作、の両方に基づいて決定される、請求項３１に記載のプログラム。
【請求項３６】
上記複数の区画のうちの各々の区画についての上記シミュレーション動作は並列実行される、請求項３５に記載のプログラム。
【国際調査報告】
2007536602.tif 000041
2007536602.tif 000042