(57)【要約】【課題】電力管理回路を備える回路のための高速シミュレーション方法を提供する。【解決手段】本発明の高速シミュレーション手法は、集積回路の電力供給モジュールの出力ノードを理想電力ノードとして指定し、電力供給モジュールをファンインブロックに指定し、電力ノードに接続された全ブロックをファンアウトブロックに指定する。集積回路のＤＣを初期化し、各時間ステップにて過渡的なシミュレーションを実施する間に、ファンアウトブロックの相互関係を決定し、各ファンアウトブロックのセンシティビティモデルを計算する。電力ノードは理想電力ノードとして指定されるため、各ファンアウトブロックのセンシティビティモデルの結果を電力ノードの総負荷に非同期的に追加できる。総負荷をファンインブロックのために計算された行列にロードし、シミュレーション波形ポイントを出力する。【選択図】図４
2011509457.tif 000002
【特許請求の範囲】
【請求項１】
高速シミュレーション方法であって、
回路のネットリストにアクセスする工程と、
前記回路の電力供給モジュールの出力ノードを電力ノードとして識別する工程と、
前記電力ノードを理想電力ノードに指定する工程と、
前記回路を複数のブロックに分割し、前記電力供給モジュールをファンインブロックに指定し、前記電力ノードに接続された全てのブロックをファンアウトブロックに指定する工程と、
前記回路のＤＣの初期化を実施する工程とを有し、
各指定された時間ステップ毎に、
前記ファンアウトブロックの相互関係を決定する工程と、
前記各ファンアウトブロックのセンシティビティモデルを計算する工程と、
前記各ファンアウトブロックの前記センシティビティモデルの結果を前記電力ノードの総負荷に非同期的に追加する工程と、
前記総負荷を前記ファンインブロックのために計算された行列にロードする工程と、
シミュレーション波形ポイントを出力する工程とを含むことを特徴とする方法。
【請求項２】
前記結果を非同期的に追加する工程は、前記総負荷をグローバルデータ構造を用いて追跡記録する工程を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記総負荷を追跡記録する工程は、非作動ファンアウトブロックを無視することを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記行列は、ヤコビ行列であることを特徴とする請求項１に記載の方法。
【請求項５】
前記各ファンアウトブロック内の回路は、同期的にシミュレートされることを特徴とする請求項１に記載の方法。
【請求項６】
少なくとも１つのファンアウトブロックを分割する工程と、
前記分割されたファンアウトブロックにおいて別の理想ノードを指定する工程と、
前記別の理想ノードより給電される回路を非同期的にシミュレートする工程とを更に含むことを特徴とする請求項１に記載の方法。
【請求項７】
コンピュータで実行されたときに集積回路をシミュレートするための工程を実施させるべく信号を生成するコンピュータ命令が保存されたコンピュータ可読媒体であって、
前記集積回路をシミュレートするための工程が、
回路のネットリストにアクセスする工程と、
前記回路の電力供給モジュールの出力ノードを電力ノードとして識別する工程と、
前記電力ノードを理想電力ノードに指定する工程と、
前記回路を複数のブロックに分割し、前記電力供給モジュールをファンインブロックに指定し、前記電力ノードに接続された全てのブロックをファンアウトブロックに指定する工程と、
前記回路のＤＣの初期化を実施する工程とを有し、
各指定された時間ステップ毎に、
前記ファンアウトブロックの相互関係を決定する工程と、
前記各ファンアウトブロックのセンシティビティモデルを計算する工程と、
前記各ファンアウトブロックの前記センシティビティモデルの結果を前記電力ノードの総負荷に非同期的に追加する工程と、
前記総負荷を前記ファンインブロックのために計算された行列にロードする工程と、
シミュレーション波形ポイントを出力する工程とを含むことを特徴とするコンピュータ可読媒体。
【請求項８】
前記結果を非同期的に追加する工程は、前記総負荷をグローバルデータ構造を用いて追跡記録する工程を含むことを特徴とする請求項７に記載のコンピュータ可読媒体。
【請求項９】
前記総負荷を追跡記録する工程は、或るファンアウトブロックを無視することを含むことを特徴とする請求項８に記載のコンピュータ可読媒体。
【請求項１０】
前記行列は、ヤコビ行列であることを特徴とする請求項７に記載のコンピュータ可読媒体。
【請求項１１】
前記各ファンアウトブロック内の回路は、同期的にシミュレートされることを特徴とする請求項７に記載のコンピュータ可読媒体。
【請求項１２】
少なくとも１つのファンアウトブロックを分割する工程と、
前記分割されたファンアウトブロックにおいて別の理想ノードを指定する工程と、
前記別の理想ノードより給電される回路を非同期的にシミュレートする工程とを更に含むことを特徴とする請求項７に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路（ＩＣ）のシミュレーションに関し、具体的には、電力管理回路を備えるＩＣのための高速シミュレーション方法を提供する。
【背景技術】
【０００２】
ＩＣ技術が９０ｎｍ以下まで縮小したことにより、総電力消費量はシステムオンチップのチップ設計における最も重要な関心事の１つになっている。待機時漏れ電流及び動的消費電力を減少させるためにパワーゲーティング、電圧スケーリング、及び閾値可変ＣＭＯＳなどの周知技術が利用されてきた。しかし後述するように、これらの技術は、シミュレーションのために必要な節点解析方程式の集合から構成される行列のサイズが極めて大きいため、プリレイアウト及びポストレイアウト・フルチップ検証の両者に対する重要な課題をもたらしている。
【０００３】
システムオンチップ（ＳｏＣ）設計は、通常、少なくとも１つの出力ノードを有する少なくとも１つの電力供給モジュールを含み、該少なくとも１つの出力ノードは、他のモジュールへの電圧供給ノードとしての役割を果たす。例示的な電力供給モジュールは、電荷ポンプ、レギュレータ、電源スイッチ、及び／又はトランジスタを含み、前記設計において１つ或いは複数の電力供給部が備えられるようにする。
【０００４】
ＳＰＩＣＥは、カリフォルニア大学バークレイ校（University of California at Berkeley）で開発された周知の汎用回路シミュレーションプログラムである。ＳＰＩＣＥは、例えば、抵抗、コンデンサ、インダクタ、電圧源、電流源、伝送線路、及び一般的な半導体デバイスなどを備える回路をシミュレートすることができる。高速ＳＰＩＣＥシミュレータは、従来のＳＰＩＣＥシミュレータの性能を改善するために、様々なアルゴリズムを使用している。
【０００５】
性能を改善するための或る例示的なアルゴリズムには、１つの回路を、理想電圧源ノードと弱結合ノード（例えば、ＭＯＳＦＥＴデバイスのゲート）との境界において、より小さいブロックに分割するパーティショニングが含まれる。例えば、図１Ａに示すように、従来の高速ＳＰＩＣＥシミュレータは、回路１００を２つのブロック１１０及び１１１に分割する。なぜならば、２つのブロック１１０及び１１１は両者とも理想電圧源に直接接続されているからである。限定された数の例示的な回路素子（例えば、トランジスタ及び抵抗）のみが図１Ａに示されているが、実際の回路には通常は様々な他の回路素子が含まれていることを留意されたい。
【０００６】
特に、高速ＳＰＩＣＥシミュレータを使用する場合、ブロック１１０及び１１１は、シミュレーション中のそれらの待ち時間に従って様々な速度でシミュレートすることができる。結果として、高速ＳＰＩＣＥシミュレータは、許容可能な精度の低下はあるものの、１０倍〜１０００倍の速度増加をもたらし得る。しかし、高速ＳＰＩＣＥシミュレータは、電力供給モジュールの出力ノード（図１Ａでは、電力供給モジュール１０１の電力ノード１０２）が非理想ノードであり、従って大きなフラットなパーティション上でシミュレータを作動させなければならないため、通常はＳｏＣ回路にとって効率が悪い。特に、高速ＳＰＩＣＥシミュレータは、ブロック１１１内の回路を同期的にシミュレートしなければならない。
【０００７】
一部の進歩的なシミュレータ（例えば、ＨＳＩＭ）は、大きなブロックを第２レベルのブロックに更に分割でき、従って同型マッチング（isomorphic matching）を活用することができる。例えば、図１Ｂに示すように（簡略化のために小さなブロック１１０（図１Ａ）は省略している）、ＨＳＩＭシミュレータは、回路１００を電力ノード１０２においてカットし且つ分割し、複数のチャネル接続ブロック（ＣＣＢ）１０１、１０３、１０４、及び１０５を形成する。シミュレーションツールは、一般的にトランジスタレベルにおいてＣＣＢを画定することを留意されたい。これらのＣＣＢは、比較的単純な回路である（発明者が示す回路は説明のためであり、図示の回路に制限するわけではない）。
【０００８】
電力供給モジュール１０１の出力ノード、即ち電力ノード１０２は、非理想電圧供給源であるため、ＣＣＢ１０１、１０３、１０４、及び１０５は、電力ノード１０２の正確なシミュレーションを提供するために同時に（即ち、同期的に）評価しなければならない。そのサイズのために、ＣＣＢ１０５は、ＨＳＩＭシミュレータによって更に分割することができる。この例では、ＣＣＢ１０５は、ＣＣＢ１０６、１０７、及び１０８に更に分割することができる。様々なシミュレーションツールは、様々な方法で、カットグループ（cut group）の要素（即ち、分割することによって形成されたブロック）を決定することを留意されたい。例えば、一実施形態では、シミュレーションツールは、カットする位置に接続されるＣＣＢの数に基づいてカットグループを決定し得る。
【０００９】
特に、ＣＣＢ１０６、１０７、及び１０８は、再度、同期的に評価されなければならない、即ち、これらのＣＣＢはフラットなパーティションも形成している。従って、ＣＣＢ１０１、１０３、１０４、及び１０５は、第１レベルのカットグループとして特徴付けることができ、ＣＣＢ１０６、１０７、及び１０８は、第２レベルのカットグループとして特徴付けることができる。ＣＣＢ１０５からの評価結果は、ＣＣＢ１０３、１０４、及び１０５の同期的な評価において使用することができることを留意されたい。従って、この階層的パーティショニングにも関わらず、ＨＳＩＭシミュレータは、非理想電力供給モジュールを有する大規模（例えば、ＳｏＣ）回路をシミュレートするとき、通常は、最適ではない、即ち比較的時間がかかるという結果になる。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従って、電力管理回路を備える回路のための高速シミュレーション方法が必要とされている。
【課題を解決するための手段】
【００１１】
高速シミュレーション方法によれば、集積回路の電力供給モジュールの出力ノード（即ち、非理想電力ノード）を、理想電力ノードとして指定することができる。前記回路は、ブロックに分割することができる。この場合、電力供給モジュールはファンインブロック（fan-in block）として指定することができ、前記電力ノードに接続された全てのブロックはファンアウトブロック（fan-out block）として指定することができる。この時点で、ＤＣ初期化を実施することができる。
【００１２】
次に、各時間ステップにおいて過渡的なシミュレーションを実施することができる。例えば、過渡的なシミュレーションの初期工程では、ファンアウトブロックの相互関係を決定することができる。一実施形態では、この相互関係は、各ファンアウトブロックのシミュレーション間隔及び外部トリガイベントを特定することを含み得る。
【００１３】
或る時間ステップにおいて、或るファンアウトブロックの評価を行う場合、そのファンアウトブロックのセンシティビティモデルを計算することができる。このセンシティビティモデルは、そのファンアウトブロックのコンダクタンス、静電容量、及び電流負荷を含み得る。有利なことに、前記電力ノードが理想電力ノードとして指定されるために、各ファンアウトブロックのセンシティビティモデルの結果を、前記電力ノードの総負荷に非同期的に追加することができる。一実施形態では、直前のシミュレーション中に計算された直前の負荷値から現在の負荷値を減算し、その差異を、そのブロックの総負荷（即ち、コンダクタンス、静電容量、及び電流負荷）に追加することによって寄与度を計算することができる。
【００１４】
ファンアウトブロックを非同期的に評価することができるので、シミュレータは、その評価を、（任意の数のファンアウトブロックに対して）並行して、任意の順序で、及び／又はシステムリソースが利用可能なときはいつでも（制限されたシステムリソースであっても）実施できるのが好都合である。従って、そのファンアウトブロックを非同期的に評価する能力は、かなりの時間節約及びシステムリソースの最適な利用をもたらすので、それによってシステムの効率及び柔軟性が最大限になる。
【００１５】
一実施形態では、非同期的に追加する結果には、グローバルデータ構造を用いて総負荷を追跡記録することが含まれる。一実施形態では、総負荷を追跡記録することには、非作動ファンアウトブロックを無視することが含まれる。追跡記録後、前記総負荷は各ファンインブロック毎に計算された行列（例えば、ヤコビ行列）にロードすることができ、またシミュレーション波形ポイントを出力することができる。前述の過渡的なシミュレーションの工程は、各指定された時間ステップにおいて実施することができる。
【００１６】
コンピュータ可読媒体も本願明細書中で説明される。このコンピュータ可読媒体は、コンピュータ上で実行されたとき、集積回路をシミュレートするべく前述の工程を実行させる信号を生成するコンピュータ命令を保存している。
【図面の簡単な説明】
【００１７】
【図１Ａ】通常のシミュレータが理想電力ノードに接続された回路のブロックをどのように評価するかを示す図である。この場合、各ブロック内の回路は同期的に評価しなければならない。
【図１Ｂ】非理想電力ノード及び弱結合ノードにおいて回路をカットし、それによって同期した評価を依然として必要とする階層的パーティションをもたらす通常の回路のパーティショニングを示す図である。
【図２Ａ】非理想電力ノードを理想電力ノードとして指定することができ、それによって該電力ノードに接続された全てのファンアウトブロックを非同期的に評価できる例示的なパーティショニングを示す図である。
【図２Ｂ】複数の非理想電力ノードを理想電力ノードとして指定することができ、それによって該電力ノードに接続された全てのファンアウトブロックを非同期的に評価できる別の例示的なパーティショニングを示す図である。
【図３】ＣＣＢの負荷効果を考慮してセンシティビティモデルを生成するＣＣＢの例示的な評価を示す図である。このセンシティビティモデルには、コンダクタンス、静電容量、及び電流が含まれる。
【図４】電力供給モジュールの出力ノード（即ち、非理想電力ノード）を理想電力ノードとして指定し、それによって該電力ノードに接続された全てのファンアウトブロックの非同期的な評価を可能にする例示的なシミュレーション技術を示す図である。
【図５】例示的なマルチレート、イベント駆動型の方法を示す図である。
【図６】図４のシミュレーション技術を含むことができる例示的なデジタルＡＳＩＣ設計フローを示す図である。
【発明を実施するための形態】
【００１８】
高速シミュレーション手法では、集積回路の電力供給モジュールの出力ノードを理想電力ノードとして指定することができる。この時点で、電力供給モジュールをファンインブロックに指定することができ、電力ノードに接続されている全てのブロックをファンアウトブロックに指定することができる。詳細は後述するが、非理想電力ノードが理想電力ノードとして指定されるため、ファンアウトブロックを非同期的に評価することができ、それによってシミュレーション中の時間節約及びシステム柔軟性を最大限にする。
【００１９】
図２Ａは、高速シミュレーション方法の態様を表す簡略化回路２００を示す。シミュレーション中に、回路２００をブロック２０１、２０３、２０４、及び２０５に分割することができる。具体的には、回路２００は、電力供給モジュール２０１からカットされる複数のチャネル接続ブロック（ＣＣＢ）２０３、２０４、及び２０５に分割することができる。電力供給モジュール２０１の出力（電源）ノード２０２は、実際には非理想電力ノードであることを留意されたい。しかし、前述の高速シミュレーション方法の一態様によれば、電力ノード２０２は、非理想電力ノードの代わりに、理想電力ノードとして指定することもできる。結果として、ＣＣＢ２０３、２０４、及び２０５は、シミュレーション中に非同期的に評価できるのが好都合である。
【００２０】
典型的なＩＣ回路では、電力ノードに接続されるＣＣＢの数は、数百或いは数千に達することを留意されたい。ＣＣＢを非同期的に評価することができるので、シミュレータは、その評価を、（任意の数のＣＣＢに対して）並行して、任意の順序で、及び／又はシステムリソースが利用可能なときはいつでも（制限されたシステムリソースであっても）実施できるのが好都合である。従って、そのＣＣＢを非同期的に評価する能力により、かなりの時間節約及びシステムリソースの最適な利用をもたらすことができ、それによってシステムの効率及び柔軟性が最大限になる。
【００２１】
シミュレータによってカットグループを特徴付けることができるＣＣＢ２０５は、ＣＣＢ２０６，２０７、及び２０８に更に分割することができることを留意されたい。一実施形態では、ＣＣＢ２０６、２０７、及び２０８は、階層的な解法を用いて同期的にシミュレートすることができる。別の実施形態では、図２Ｂに示すように、ＣＣＢ２０７及び２０８は、ノード２０９を理想電力ノードとして指定することによって（またＣＣＢ２０６を電源モジュールとして特徴付ける）、非同期的にシミュレートすることができ、それによって更なるシステムの効率化をもたらす。ファンアウトブロックにおいて同期／非同期シミュレーションのどちらを実施するかの決定は、ファンアウトブロックのサイズに基づいて決定され得る。このサイズは、様々なシミュレーションからの実験結果を用いて設定することができ、その後に、費用関数に基づいて適切な大きさの閾値を決定する。回路２００には２つの指定された理想ノード２０２及び２０９が備えられているが、他の回路では任意の数の指定された理想ノードを含み得ることを留意されたい。更に、非理想ノードを理想ノードに指定することは、再帰的方法で任意の様々なレベルにおいて行うことができる。
【００２２】
いずれにせよ、シミュレーション分野の当業者には周知のように、ＣＣＢ２０６、２０７、及び２０８の評価は、ＣＣＢ２０５の評価実施前に要求される。図３は、センシティビティモデル３０１（ノートンの等価回路）を生成することができるＣＣＢ３００の例示的な評価を示す。この場合、センシティビティモデル３０１は、コンダクタンスＧ（抵抗の逆数）、静電容量Ｃ、及び電流Ｉを含む。
【００２３】
図４は、非理想電力ノードを理想電力ノードとして指定することを含む例示的な高速シミュレーション方法４００を示す。ステップ４０１では、回路の設計にアクセスすることができる。典型的な実施形態では、この設計は、ネットリストとしてアクセスすることができる。ネットリストは、従来の回路図入力システムを用いて作成することができ、高速ＳＰＩＣＥで用いられている構文形式と同一の構文形式に従うことがあることを留意されたい。
【００２４】
この時点で、前記設計内の電力供給モジュールの出力ノード（即ち、電力ノード）を、理想電力ノードとして指定する。次に、ステップ４０２では、ＩＣ回路をブロックに分割する。ただし、電力供給モジュールを、その電力ノードのドライバ（即ち、ファンインブロック）として指定し、他のブロックを、その電力ノードの負荷（即ち、ファンアウトブロック又はＣＣＢ）として指定する。ステップ４０３では、開始時間ｔ＝０においてＩＣ回路の動的電圧状態を得るためにＤＣを初期化する。
【００２５】
ステップ４０４では、例えば、ブロックのシミュレーション間隔を調査することによって（マルチレートと呼ばれる）、又はブロックがイベント駆動型か否かによって、ファンアウトブロックの相互関係を決定する。図５は、ファンインブロック５０１及びファンアウトブロック５０２〜５０４を含む例示的なマルチレートのイベント駆動型システム５００を示す。システム５００では、全てのブロック５０１〜５０４が初期時間Ｔ０（黒丸で示す）において評価（即ちシミュレート）される。続いて、ブロック５０１〜５０４は、異なる間隔で評価される。即ち、ブロック５０１は、時間Ｔ２及びＴ４で評価され、ブロック５０２は、時間Ｔ１及びＴ２で評価され、ブロック５０３は、時間Ｔ２及びＴ３で評価され、ブロック５０４は、時間Ｔ３で評価される。
【００２６】
各ブロック５０１〜５０４のシミュレーション間隔は、ブロックの内部待ち時間又は外部トリガイベントのどちらかに関連するものとして特徴付けることができる複数の因子によって決定される。ブロックの内部待ち時間には、電圧変化の割合、各ノードの静電容量に対する充電電流の大きさなどの因子が含まれる。ブロックの内部待ち時間は、１つのステップにおいて電圧又は電流が急激に変化することがないように検討される。
【００２７】
図５は、３つの外部トリガイベント５１０、５１１、及び５１２を有するシステム５００を示す。従来型のシミュレータでは、イベントは、ファンアウトブロックのシミュレーションをトリガするためにファンインブロックによって生成されることを留意されたい。或る好適実施形態によれば、イベントはファンアウトブロックで生成することができる。例えば、システム５００では、ブロック５０２は、ブロック５０３のシミュレーションをトリガするイベント５１０を生成し、ブロック５０３は、ブロック５０４のシミュレーションをトリガするイベント５１１を生成し、ブロック５０４は、ブロック５０１のシミュレーションをトリガするイベント５１２を生成する。或るイベントは、ブロックの物理的な接続により得られることを留意されたい。例えば、再び図２Ａを参照すると、ＣＣＢ２０３はＣＣＢ２０４へ出力を提供する。従って、ＣＣＢ２０３は、ＣＣＢ２０４のシミュレーションをトリガするイベントを生成するものとして特徴付けることができる（ブロック５０２及び５０３と同様である）。
【００２８】
再び図４を参照して、ステップ４０５では、各ファンアウトブロックのセンシティビティモデルを計算する。一実施形態では、このセンシティビティモデルは、そのファンアウトブロックの電力ノードにおけるコンダクタンスＧ、静電容量Ｃ、及び電流Ｉを計算することを含み得る。或る好適実施形態では、階層的な解法を各カットグループのセンシティビティモデルを計算するために使用することができ、従来型の解法を他のファンアウトブロックに対して使用することができる。一実施形態では、有利なことに、複数のファンアウトブロックが同じ形態を有し且つ同一の端子電圧及び電流を有している場合、最初に計算されたファンアウトブロックの結果を他のファンアウトブロックが再利用することができるため、１つのファンアウトブロックのみが計算される（この再利用は同型マッチングとも呼ばれる）。例示的な階層的な解法及び同型マッチングのより詳細な説明は、１９９９年５月１７日付で登録されたTcherniaevによる米国特許第６，５７７，９９２号に記載されており、ここで参照することをもって本願明細書に組み込まれるものとする。
【００２９】
ステップ４０６では、電力供給モジュールに関連する電力ノードの総負荷に全てのファンアウトブロックの総負荷を追加することができる。これらの総負荷には、ステップ４０５で計算された電流Ｉ、コンダクタンスＧ、及び静電容量Ｃが含まれる。図５に示すように、各ファンアウトブロックは、それぞれ固有のシミュレーション間隔を有していることを留意されたい。一実施形態では、或るファンアウトブロックの総負荷が計算されたとき、その計算結果が直前のシミュレーション間隔の結果と比較される、即ち、ΔＩ＝Ｉ−Ｉｌａｓｔ、ΔＧ＝Ｇ−Ｇｌａｓｔ、ΔＣ＝Ｃ−Ｃｌａｓｔである。これらのデルタ値は、次に、指定された理想電力ノードの総負荷に追加される。最初に実施されたシミュレーション（例えば、図５の時間ステップＴ０において実施されたシミュレーション）は比較するものがないため、それらのブロックの総負荷は、ステップ４０５で計算された電流、コンダクタンス、及び静電容量を含む。
【００３０】
一実施形態では、電力ノード（例えば、図２Ａ／２Ｂの電力ノード２０２）の総負荷は、グローバルデータ構造によって追跡記録することができる。非同期的な評価であるため、各ファンアウトブロックから結果が得られたときに（即ち、インクリメンタルな方法で）、それらをグローバルデータ構造に追加することができることを留意されたい。従って、グローバルデータ構造は、全てのファンアウトブロックからの全ての結果を追跡記録することができる。一実施形態では、追跡記録の間、特定の時間ステップにおいて或るファンアウトブロックが作動していない場合、そのファンアウトブロックを無視することができる。換言すれば、グローバルデータ構造は、全てのファンアウトブロックからの全ての結果を追跡記録することができる。
【００３１】
ステップ４０７では、総負荷を評価する場合、その総負荷をファンインブロック（例えば、図２Ａ／２Ｂの電力供給モジュール２０１）の行列にロードする。電流を計算するための例示的なヤコビ行列は以下のとおりである。
【００３２】
［Ｉ］＝［Ｇ］×［Ｖ］
【００３３】
ただし、［Ｇ］はコンダクタンスの行列であり、［Ｖ］は電圧の行列であり、［Ｉ］は電流の行列である。この計算は、シミュレーション分野の当業者には周知であり、従って本明細書ではその詳細について説明しない。一般的に、この方程式は、非線形解法に対する線形化を提供することができる。ステップ４０８では、シミュレーション波形ポイントを生成する。
【００３４】
或る波形は、複数の別個のポイントを含み、各ポイント（本明細書中ではシミュレーション波形ポイントと呼ばれる）は、過渡的なシミュレーション中の各時間ステップにおいて計算されることを留意されたい。高速シミュレーション方法４００では、ステップ４０４〜４０８は、ＩＣ回路の過渡的なシミュレーションを提供する。従って、ステップ４０９では、シミュレーションのための追加の時間ステップが指定されているか否かを判断する（総シミュレーション時間、即ち、時間ステップの数が入力ファイルにおいて特定されることはシミュレーション分野の当業者には周知であることを留意されたい）。追加の時間ステップが指定されている場合、方法４００はステップ４０４に戻る。追加の時間ステップが指定されていない場合、方法４００を終了する。
【００３５】
図６は、例示的なデジタルＡＳＩＣ設計フローを簡略化して説明するための図である。上側の段において、プロセスは製品企画（ステップ６００）より開始し、ＥＤＡソフトウェア設計プロセスを実行する（ステップ６１０）。設計が終了すると、テープアウトを行う（イベント６４０）。テープアウト後、製造プロセス（ステップ６５０）、パッケージング及び組立プロセス（ステップ６６０）を実施し、最終的に、完成品チップが得られる（結果６７０）。
【００３６】
ＥＤＡソフトウェア設計プロセス（ステップ６１０）は、実際には複数のステップ６１２〜６３０から構成されており、簡略化のために直線的に示している。実際のＡＳＩＣ設計プロセスでは、特定の設計は、所定の試験に合格するまでステップを逆戻りしなければならないこともある。同様に、実際の設計プロセスでは、これらのステップは、異なる順序及び組み合わせで行われることがある。従って、この説明は、特定のＡＳＩＣのための具体的な或いは推奨する設計フローとしてよりも、むしろ背景説明（context）及び一般的な説明のために提供される。
【００３７】
ここで、ＥＤＡソフトウェア設計プロセス（ステップ６１０）を構成するステップを簡単に説明する。
【００３８】
システム設計（ステップ６１２）：設計者は、実装したい機能性を記述し、ｗｈａｔ−ｉｆプランニングを実施して機能性改良や費用確認など行うことができる。ハードウェア−ソフトウェア・アーキテクチャ・パーティショニングは、このステップで行うことができる。このステップで使用することができるシノプシス社（Synopsys, Inc.）製の例示的なＥＤＡソフトウェア製品には、Ｍｏｄｅｌ Ａｒｃｈｉｔｅｃｔ、Ｓａｂｅｒ、Ｓｙｓｔｅｍ Ｓｔｕｄｉｏ、及びＤｅｓｉｇｎＷａｒｅ（登録商標）などの製品が含まれる。
【００３９】
論理設計及び機能性の検証（ステップ６１４）：このステップでは、システム内のモジュールのためのＶＨＤＬまたはＶｅｒｉｌｏｇコードを書き込み、その設計を機能性の精度について検査する。より具体的には、設計を検査することによって、正しい出力を生成することを保証する。このステップで使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、ＶＣＳ、ＶＥＲＡ、ＤｅｓｉｇｎＷａｒｅ（登録商標）、Ｍａｇｅｌｌａｎ、Ｆｏｒｍａｌｉｔｙ、ＥＳＰ、及びＬＥＤＡなどの製品が含まれる。
【００４０】
合成及び試験のための設計（ステップ６１６）：このステップでは、ＶＨＤＬ／Ｖｅｒｉｌｏｇをネットリストに変換する。ネットリストは、目的の技術のために最適化することができる。加えて、完成品チップの検査を可能とする試験の設計及び実装を行う。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ｄｅｓｉｇｎ Ｃｏｍｐｉｌｅｒ（登録商標）、Ｐｏｗｅｒ Ｃｏｍｐｉｌｅｒ、Ｔｅｔｒａｍａｘ、及びＤｅｓｉｇｎＷａｒｅ（登録商標）などの製品が含まれる。
【００４１】
ネットリスト検証（ステップ６１８）：このステップでは、ネットリストを、タイミング制約との適合性及びＶＨＤＬ／Ｖｅｒｉｌｏｇソースコードとの対応性について検査する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ｆｏｒｍａｌｉｔｙ、ＰｒｉｍｅＴｉｍｅ、ＶＣＳ、及びＨＳＩＭ＋などの製品が含まれる。一実施形態では、ＨＳＩＭ＋製品は、前述の高速シミュレーション方法４００（図４）を含み得る。一実施形態では、シミュレーションは、図２Ａを参照して説明したようなパーティショニング及び非同期的なシミュレーションを含み得る。
【００４２】
設計プランニング（ステップ６２０）：このステップでは、チップの全体フロアプランを作成し、タイミング及び最上位ルーティングについて解析する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ａｓｔｒｏ及びＩＣ Ｃｏｍｐｉｌｅｒなどの製品が含まれる。
【００４３】
物理的な実装（ステップ６２２）：このステップでは、配置（回路素子の位置決め）及びルーティング（回路素子の接続）を行う。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ａｓｔｒｏ及びＩＣ Ｃｏｍｐｉｌｅｒなどの製品が含まれる。
【００４４】
解析及び抽出（ステップ６２４）：このステップでは、回路機能をトランジスタレベルで検証し、これによりｗｈａｔ−ｉｆ解析による改良を可能にする。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、ＡｓｔｒｏＲａｉｌ、ＰｒｉｍｅＲａｉｌｅ、ＰｒｉｍｅＴｉｍｅ、及びＳｔａｒ ＲＣ／ＸＴなどの製品が含まれる。
【００４５】
物理的な検証（ステップ６２６）：このステップでは、様々なチェック機能を実行し、製造、電気的な結果、リソグラフィックの結果、及び回路構成について正確性を保証する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ｈｅｒｃｕｌｅｓ及びＨＳＩＭ＋などの製品が含まれる。一実施形態では、ＨＳＩＭ＋は、前述の高速シミュレーション方法４００（図４）を含み得る。典型的には、物理的な検証中に実施されるポストレイアウトシミュレーションは、図２Ｂを参照して説明したようなパーティショニング及び非同期的なシミュレーションを含み得る。
【００４６】
分解能向上（ステップ６２８）：このステップでは、レイアウトの幾何学的操作を行い、設計の製造可能性を改善する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、Ｐｒｏｔｅｕｓ、ＰｒｏｔｅｕｓＡＦ、及びＰＳＭＧｅｎなどの製品が含まれる。
【００４７】
マスクデータ準備（ステップ６３０）：このステップでは、完成品チップを作成するのに使用するリソグラフのために、マスク作成用の「テープアウト」データを提供する。このステップにおいて使用することができるシノプシス社製の例示的なＥＤＡソフトウェア製品には、ＣＡＴＳ（登録商標）シリーズの製品が含まれる。
【００４８】
本発明の例示的な実施形態について、本明細書では添付の図面を参照しながら詳細に説明してきたが、本発明はこれらの正確な実施形態に限定されるわけではないことを理解されたい。これらの実施形態は、本発明を包括する或いは本発明をこれらと一致するものに制限することを意図しない。そのため、様々な変更及び変形ができることは明らかであろう。
【００４９】
例えば、前述の高速シミュレーション技術は、１つのデータ保存システム、少なくとも１つの入力装置、及び少なくとも１つの出力装置からデータ及び命令を受信し、且つそれらに対してデータ及び命令を送信するように接続された少なくとも１つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行する１つ或いは複数のコンピュータプログラムに有利に実装することができる。各コンピュータプログラムは、高次手続き型又はオブジェクト指向型プログラミング言語で、或いは所望に応じてアセンブリ言語又は機械語で実装することができる。いずれにせよ、その言語はコンパイラ型又はインタープリタ型言語である。適切なプロセッサには、例えば、汎用マイクロプロセッサ及び特定用途向けマイクロプロセッサの両者のほか、他の種類のマイクロコントローラが含まれる。一般的に、プロセッサは、読み出し専用メモリ及び／又はランダムアクセスメモリから命令及びデータを受信する。一般的に、コンピュータは、データファイルの保存用として１つ或いは複数の大容量記憶装置を有しており、その大容量記憶装置には、磁気ディスク（例えば、内蔵されたハードディスク及びリムーバブルディスク）、光磁気ディスク、及び光ディスクが含まれる。コンピュータプログラム命令及びデータを具体的に実施するのに適合する記憶装置には、全ての形態の不揮発性メモリ（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの半導体メモリ装置、及びフラッシュメモリ装置）、磁気ディスク（例えば、内蔵されたハードディスク及びリムーバブルディスク）、光磁気ディスク、及びＣＤ−ＲＯＭディスクが含まれる。前述したいずれのものも、特定用途向け集積回路（ＡＳＩＣ）により補足することができる又はそれに組み込むことができる。
【００５０】
従って、本発明の範囲は、特許請求の範囲に記載のもの及びそれらの同等物によって定義されるものとする。
【図１Ａ】
2011509457.tif 000003
【図１Ｂ】
2011509457.tif 000004
【図２Ａ】
2011509457.tif 000005
【図２Ｂ】
2011509457.tif 000006
【図３】
2011509457.tif 000007
【図４】
2011509457.tif 000008
【図５】
2011509457.tif 000009
【図６】
2011509457.tif 000010
【国際調査報告】
2011509457.tif 000011
2011509457.tif 000012