(57)【特許請求の範囲】
【請求項１】
コンピュータシステムが実行するフリップ・フロップ及びラッチの少なくとも１つを含む順序セルの回路設計方法において、
回路設計ネットリストの順序セルの、予備構成への予備配置を受け取るステップであって、その予備配置が順序セルの少なくともタイミング及びルータビリティに基づくものであるステップと、
前記予備構成に基づいて、改善された電力消費及び改善されたタイミング変化を受ける前記予備構成における順序セルのグループを、行及び列の接近構成への前記グループのその後の配置を遂行する際に、識別するステップであって、前記グループの順序セルの接近構成が前記グループの順序セルの前記予備構成とは異なるものであるステップと、
を備えた方法。
【請求項２】
行及び列の接近構成への前記グループのその後の配置を遂行するステップを更に備えた、請求項１に記載の方法。
【請求項３】
行及び列の前記接近構成への前記グループのその後の配置を遂行するステップと、
行及び列の前記接近構成とは異なる順序セルのその後の構成のために解散されるグループのその後の配置を遂行する際に、前記接近構成をルーティングする失敗に応答して、改善されたルータビリティを受ける前記接近構成の前記グループを解散させるステップと、
を更に備えた請求項１に記載の方法。
【請求項４】
前記順序セルのグループは、単一パイプライン段に属する、請求項１に記載の方法。
【請求項５】
前記順序セルのグループは、単一レジスタ伝達言語ベクトルを構成する、請求項１に記載の方法。
【請求項６】
前記順序セルのグループは、少なくとも１６の順序セルの単一レジスタ伝達言語ベクトルを構成する、請求項１に記載の方法。
【請求項７】
前記順序セルのグループは、共通ゲートクロック信号によりクロックされる、請求項１に記載の方法。
【請求項８】
前記順序セルのグループは、共通ゲートクロック信号によりクロックされ、そして
前記順序セルのグループは、１２８以下の順序セルの単一レジスタ伝達言語ベクトルを構成する、請求項１に記載の方法。
【請求項９】
第１の比が第２の比を越えるようにされ、
第１の比は、ｉ）順序セルのグループの合計面積と、ii）順序セルのグループを包囲する最も小さい長方形の面積との比であり、
第２の比は、ｉ）回路設計ネットリストの全ての順序セルの合計面積と、ii）回路設計ネットリストの合計ダイ面積から回路設計ネットリストのハードマクロの合計面積を差し引いたものとの比である、請求項１に記載の方法。
【請求項１０】
コンピュータシステムが実行するフリップ・フロップ及びラッチの少なくとも１つを含む順序セルの回路設計のためのコンピュータ読み取り可能なインストラクションをもつコンピュータ読み取り可能な媒体において、
回路設計ネットリストの順序セルの、予備構成への予備配置を受け取るコンピュータインストラクションであって、その予備配置が順序セルの少なくともタイミング及びルータビリティに基づくものであるコンピュータインストラクションと、
前記予備構成に基づいて、改善された電力消費及び改善されたタイミング変化を受ける前記予備構成における順序セルのグループを、行及び列の接近構成への前記グループのその後の配置を遂行する際に、識別するコンピュータインストラクションであって、前記グループの順序セルの接近構成が、前記グループの順序セルの予備構成とは異なるものであるコンピュータインストラクションと、
を備えたコンピュータ読み取り可能な媒体。
【請求項１１】
コンピュータシステムが実行するフリップ・フロップ及びラッチの少なくとも１つを含む順序セルの回路設計方法において、
回路設計ネットリストの順序セルのグループの識別を受け取るステップであって、このグループの識別は、順序セルの予備配置からの予備構成に基づくものであり、そしてこの予備構成は、順序セルの少なくともタイミング及びルータビリティに基づくものであるステップと、
行及び列の接近構成への前記グループの接近配置を遂行するステップであって、前記接近構成のグループは、前記予備構成のグループに対して改善された電力消費及び改善されたタイミング変化を有するものであるステップと、
を備えた方法。
【請求項１２】
前記接近構成をルーティングする失敗に応答して、改善されたルータビリティを受ける前記接近構成のグループを、行及び列の接近構成とは異なる順序セルのその後の構成への解散されるグループのその後の配置を遂行する際に、解散させるステップを更に備えた、請求項１１に記載の方法。
【請求項１３】
前記接近配置を遂行するステップは、
前記接近構成の第１の高さ対巾の比が、前記予備配置における順序セルのグループを包囲する最小長方形の第２の高さ対巾の比を近似するように、前記接近構成の行及び列の数を決定することを含む、請求項１１に記載の方法。
【請求項１４】
前記接近配置を遂行するステップは、
前記グループ内の順序セルの予備構成における相対的な位置に基づいて、前記グループ内の順序セルの接近構成における相対的な位置を決定することを含む、請求項１１に記載の方法。
【請求項１５】
前記接近配置を遂行するステップは、
前記グループ内の順序セルの予備構成における相対的な水平座標位置に基づいて、前記グループ内の順序セルの接近構成における相対的な水平座標位置を決定することを含む、請求項１１に記載の方法。
【請求項１６】
前記接近配置を遂行するステップは、
前記グループ内の順序セルの予備構成における相対的な垂直座標位置に基づいて、前記グループ内の順序セルの接近構成における相対的な垂直座標位置を決定することを含む、請求項１１に記載の方法。
【請求項１７】
前記接近配置を遂行するステップは、
前記接近構成の中間位置に一体化クロックゲートセルを配置することを含む、請求項１１に記載の方法。
【請求項１８】
フリップ・フロップ及びラッチの少なくとも１つを含む順序セルの回路設計のためのコンピュータ読み取り可能なインストラクションをもつコンピュータ読み取り可能な媒体において、
回路設計ネットリストの順序セルのグループの識別を受け取るコンピュータインストラクションであって、このグループの識別は、順序セルの予備配置からの予備構成に基づくものであり、そしてこの予備構成は、順序セルの少なくともタイミング及びルータビリティに基づくものであるコンピュータインストラクションと、
行及び列の接近構成への前記グループの接近配置を遂行するコンピュータインストラクションであって、前記接近構成のグループは、前記予備構成のグループに対して改善された電力消費及び改善されたタイミング変化を有するものであるコンピュータインストラクションと、
を備えたコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力／タイミング性能の改善を目標とした順序セルを伴う集積回路の合成に係る。
【背景技術】
【０００２】
集積回路設計のフローは、典型的に、次の段階、即ち製品アイデア、ＥＤＡソフトウェア、テープアウト、製造装置、パッキング／アッセンブリ、及びチップ、を通して進む。ＥＤＡソフトウェア段階は、次のテーブルに示すステップを含む。
【表１】
0005410523.tif 000002
【０００３】
典型的な回路設計プロセスにおいて、設計者は、回路設計の順序セルの配置を含むコンピュータ実施アルゴリズムに基づいて回路設計を配置するＥＤＡ（エレクトロニックデザインオートメーション）を実行する。コンピュータ実施の配置の後、設計者は、次いで、不良タイミング又は不良ルータビリティのような不充分な結果を引き起こす順序セルのバンクを手でチェックし識別する。この人手による試行錯誤プロセスは、低速で且つ費用のかかるものである。更に、回路設計におけるセルの合計数が百万セルの大部分に近づき、そして数百万にも達し、それを越えると、このような労力を要するプロセスは、エラー傾向の高いものとなる。又、自動化解決策は満足なものではない。というのは、配置及びルーティングのための自動化解決策は、低い電力のような更に別の事柄を考慮せずに、ルータビリティ又はタイミングのようなパラメータを最適化するからである。このような事柄を追加するための自動化解決策の変更は、ルータビリティ又はタイミングのような主要な要件において最適に達しない結果を生じさせる。従って、典型的な設計者は、ルータビリティ又はタイミングのようなパラメータを最適化する設計を生成する自動化解決策に依存し、次いで、労力を要しエラー傾向のあるプロセスにも関わらず、その結果を手で変更する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
更に、期待を満足しない種々の特定の解決策について以下に述べる。
【０００５】
順序セルのグループを手動で選択しパッキングすることは、上述した欠点がある。主な欠点は、順序セルの手動バンキングプロセスが、退屈なもので、時間がかかり、又、タイミング及びルータビリティに対する順序セルの影響を最小にできそうもないことである。
【０００６】
別の解決策は、配置とクロックツリー合成との間の繰り返しである。クロックツリーセル（バッファ又はＩＣＧ）により駆動される順序セルは、中心がクロックツリーセルであるマンハッタンサークルに配置される。マンハッタンサークルは、順序セルバンキングと同程度の電力をセーブすることができない。というのは、マンハッタンサークルのネットキャパシタンスが、通常、同じ数の順序セルを駆動するための順序セルバンクのネットキャパシタンスを越えるからである。
【０００７】
別の解決策では、クロックメッシュを使用する全電力ペナルティを支払うことなく変化に対するクロックツリーの感受性を減少するために、最小数のリンクがクロックツリーに追加される。しかしながら、高速ＳＰＩＣＥを使用して非ツリークロックトポロジーを分析することは、設計のフローを複雑にする。というのは、ほとんどの設計は、クロックツリーを分析するためにクロックツリートポロジーに対して高速ＳＰＩＣＥを必要としないからである。
【課題を解決するための手段】
【０００８】
この技術の種々の態様は、順序セルの回路設計の方法、及びこの方法を遂行するコンピュータインストラクションに向けられる。順序セルは、フリップ・フロップ及び／又はラッチを意味すると定義される。
【０００９】
一実施形態では、この方法は、回路設計ネットリストの順序セルの予備配置を受け取るステップと、その予備配置の予備構成に基づき、改善された電力消費及び改善されたタイミング変化を受ける順序セルのグループを、識別される順序セルグループのその後の配置を行う際に、識別するステップと、を有する。予備配置は、少なくとも順序セルのタイミング及びルータビリティに基づくものである。識別された順序セルグループの改善された電力消費及び改善されたタイミング変化の機会は、識別された順序セルグループを行及び列の接近構成へとその後に配置する結果である。グループの順序セルのこの接近構成は、グループの順序セルの予備構成とは異なる。
【００１０】
更に幾つかの実施形態は、行及び列の接近構成へのグループのその後の配置を行うことを含む。しかしながら、行及び列の接近構成への識別された順序セルグループのその後の配置から生じる改善された電力消費及び改善されたタイミング変化の機会にも関わらず、その後の配置が失敗することがある。例えば、その後の配置は、接近構成をルーティングできないために失敗する。このような失敗に応答して、識別されたグループは、この場合、その識別されたグループが、解散したグループのその後の配置を行う際に、改善されたルータビリティを受けるために、解散される。その後の配置は、解散したグループの順序セルのその後の構成を行及び列の接近構成とは異なるものにする。
【００１１】
種々の実施形態において、識別された順序セルグループは、単一のパイプライン段に属する順序セルのグループ、（例えば、少なくとも１６の順序セル及び／又は１２８以下の順序セルの）単一レジスタ伝達言語ベクトルを構成する順序セルのグループ、及び／又は共通ゲートクロック信号によりクロックされる順序セルのグループのように、種々の基準を満足する。識別された順序セルグループにより満足される別のより公式の基準は、第１の比が第２の比を越えるというものである。第１の比は、ｉ）順序セルのグループの合計面積と、ii）順序セルのグループを包囲する最小の長方形の面積との比である。第２の比は、ｉ）回路設計ネットリストの全ての順序セルの合計面積と、ii）回路設計ネットリストの合計ダイ面積から回路設計ネットリストのハードマクロの合計面積を引いたものとの比である。
【００１２】
別の実施形態では、この方法は、回路設計ネットリストの順序セルのグループの識別を受け取るステップと、行及び列の接近構成へのグループの接近配置を遂行するステップと、を有する。グループの識別は、順序セルの予備配置からの予備構成に基づく。予備配置は、順序セルの少なくともタイミング及びルータビリティに基づく。接近構成におけるグループは、予備構成におけるグループに対して改善された電力消費及び改善されたタイミング変化を有する。
【００１３】
しかしながら、行及び列の接近構成における識別された順序セルグループの改善された電力消費及び改善されたタイミング変化の機会に関わらず、接近配置が失敗することがある。例えば、接近配置は、接近構成をルーティングできないために失敗する。このような失敗に応答して、識別されたグループは、この場合、その識別されたグループが、解散したグループのその後の配置を行う際に、改善されたルータビリティを受けるために、解散される。その後の配置は、解散したグループの順序セルのその後の構成を行及び列の接近構成とは異なるものにする。
【００１４】
幾つかの実施形態では、接近配置を行うことは、順序セルのグループの接近構成の行数及び列数を決定することを含む。一例において、行数及び列数は、接近構成の第１の高さ対巾の比が、予備配置における順序セルのグループを包囲する最小長方形の第２の高さ対巾の比を近似するように決定される。
【００１５】
幾つかの実施形態において、接近配置を行うことは、グループの順序セルの接近構成における相対的な位置を決定する。例えば、接近構成におけるこのような相対的位置は、グループの順序セルの予備構成における相対的位置に基づく。別の例では、グループの順序セルの接近構成における相対的水平座標位置が、グループの順序セルの予備構成における相対的水平座標位置に基づいて決定される。別の例では、グループの順序セルの接近構成における相対的垂直座標位置が、グループの順序セルの予備構成における相対的垂直座標位置に基づいて決定される。ある実施形態では、更に、中間行（又は中間行付近）、又は中間列（又は中間列付近）、又は他の中間エリアのような接近構成の中間位置に一体化されたクロックゲートセルを配置することを含む。
【００１６】
別の実施形態では、この方法は、回路設計ネットリストの順序セルのグループの行及び列の接近構成を受け取るステップと、その接近構成のグループを解散するステップとを有する。このような解散は、行及び列の接近構成の失敗に応答して行われる。例えば、接近配置は、接近構成をルーティングできないために失敗することがあり、例えば、接近構成のネットの数がルーティング容量を越えることを決定する。解散したグループは、解散したグループのその後の配置を行う際に、改善されたルータビリティを受ける。その後の配置は、解散したグループの順序セルのその後の構成を行及び列の接近構成とは異なるものにする。
【００１７】
幾つかの実施形態では、更に、解散したグループの順序セルのその後の配置を行うことが含まれる。
【００１８】
他の実施形態は、ここに述べるいずれかの方法を遂行するためのコンピュータ読み取り可能なインストラクションを伴うコンピュータ読み取り可能な媒体である。
【図面の簡単な説明】
【００１９】
【図１】集積回路を設計し製造するプロセスの簡単な図である。
【図２】集積回路の順序セルのバンク又はグループの改善された配置を行う規範的プロセスの簡単なフローチャートである。
【図３】集積回路の順序セルのグループの改善された配置を行う規範的プロセスの別の簡単なフローチャートである。
【図４Ａ】集積回路の順序セルのグループの改善された配置を行う規範的プロセスの簡単な図である。
【図４Ｂ】集積回路の順序セルのグループの改善された配置を行う規範的プロセスの簡単な図である。
【図４Ｃ】集積回路の順序セルのグループの改善された配置を行う規範的プロセスの簡単な図である。
【図５】順序セルのグループの接近配置を遂行し、そして予備配置からの情報を使用して接近配置を行うプロセスの簡単な図である。
【図６】本発明技術の態様を具現化するコンピュータシステムの簡単なブロック図である。
【発明を実施するための形態】
【００２０】
プロセスフロー
図１は、ここに例示するデジタル集積回路設計及びテストフローを簡単に示す。ここに示す全てのフローチャートと同様に、図１の多数のステップは、達成される機能に影響せずに、組み合わせることもでき、並列に行うこともでき、又は異なるシーケンスで遂行できることも明らかであろう。ある場合には、ステップを再構成すると、他の幾つかの変更も行った場合にのみ同じ結果が得られ、そして他の場合には、ステップを再構成すると、幾つかの条件が満足された場合だけ同じ結果が得られる。このような再構成の可能性は、読者には明らかであろう。
【００２１】
高いレベルにおいて、図１のプロセスは、製品アイデア（ステップ１００）で開始し、そしてＥＤＡ（エレクトロニックデザインオートメーション）ソフトウェア設計プロセス（ステップ１１０）で実現される。設計が終了すると、製造プロセス（ステップ１５０）及びパッケージング・アッセンブリプロセス（ステップ１６０）が行われて、最終的に、集積回路チップが出来上がる（結果１７０）。出来上ったチップの幾つか又は全部が、ステップ１８０において、規定のテストベクトル及び予想応答を使用してテスターマシンでテストされる。
【００２２】
ＥＤＡソフトウェア設計プロセス（ステップ１１０）は、実際上、簡単化のため直線的な形態で示された多数のステップ１１２−１３０より成る。実際の集積回路設計プロセスでは、特定の設計は、幾つかのテストに合格するまでステップを逆行させねばならない。同様に、実際の設計プロセスでは、これらステップは、異なる順序及び組み合わせで行われてもよい。それ故、この説明は、特定の集積回路に対する特定の又は推奨される設計ではなく、状況及び一般的説明としてなされる。
【００２３】
ＥＤＡソフトウェア設計プロセス（ステップ１１０）の構成ステップを以下に簡単に説明する。
【００２４】
システム設計（ステップ１１２）：設計者は、具現化を希望する機能を記述し、機能、チェックコスト、等を改善するために、たられば(what-if)プランニングを遂行することができる。この段階において、ハードウェア・ソフトウェアアーキテクチャー区画を行うことができる。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、Ｍｏｄｅｌ  Ａｒｃｈｉｔｅｃｔ、Ｓａｂｅｒ、Ｓｙｓｔｅｍ  Ｓｔｕｄｉｏ、及びＤｅｓｉｇｎ  Ｗａｒｅ（登録商標）製品を含む。
【００２５】
ロジック設計・機能的検証（ステップ１１４）：この段階において、システム内のモジュールに対するＶＨＤＬ又はＶｅｒｉｌｏｇコードが書かれ、そして設計が機能的精度に対してチェックされる。より詳細には、設計は、特定の入力刺激に応答して正しい出力を発生することを保証するためにチェックされる。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、ＶＣＳ、ＶＥＲＡ、ＤｅｓｉｇｎＷａｒｅ（登録商標）、Ｍａｇｅｌｌａｎ、Ｆｏｒｍａｌｉｔｙ、ＥＳＰ及びＬＥＤＡ製品を含む。幾つかの設計は、この段階において、あるテスト用設計特徴、例えば、スキャンチェーン及びそれに関連したスキャン圧縮又は解凍回路を既に含むが、これらは、ここに使用する「ロジック設計」及び「回路設計」という語には含まれない。
【００２６】
合成・テスト用設計（ＤＦＴ）（ステップ１１６）：ここでは、ＶＨＤＬ／Ｖｅｒｉｌｏｇがネットリストへ変換される。ネットリストは、ターゲットとする技術に最適なものとすることができる。更に、出来上ったチップをチェックできるように、テストアーキテクチャーの具現化をこの段階で行う。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、Ｄｅｓｉｇｎ  Ｃｏｍｐｉｌｅｒ（登録商標）、フィジカルコンパイラー、テストコンパイラー、パワーコンパイラー、ＦＰＧＡコンパイラー、ＴｅｔｒａＭＡＸ、及びＤｅｓｉｇｎＷａｒｅ（登録商標）製品を含む。上述したユーザ指定コンフィギュレーション設定でテストアーキテクチャーを具現化する現在製品は、ＤＦＴ  ＭＡＸである。このＤＦＴ  ＭＡＸは、参考としてここに援用するシノプシスＤＦＴ  ＭＡＸ適応スキャン圧縮合成、データシート（２００７年）に説明されている。
【００２７】
ネットリスト検証（ステップ１１８）：この段階では、ネットリストが、タイミング制約との適合性及びＶＨＤＬ又はＶｅｒｉｌｏｇソースコードとの対応性についてチェックされる。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、Ｆｏｒｍａｌｉｔｙ、ＰｒｉｍｅＴｉｍｅ、及びＶＣＳ製品を含む。
【００２８】
設計プランニング（ステップ１２０）：ここでは、チップのための全フロアプランが、タイミング及びトップレベルルーティングについて構成され分析される。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、Ａｓｔｒｏ及びＩＣコンパイラー製品を含む。
【００２９】
物理的具現化（ステップ１２２）：この段階では、配置（回路素子の位置付け）及びルーティング（回路素子の接続）が行われる。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、Ａｓｔｒｏ及びＩＣコンパイラー製品を含む。
【００３０】
分析・抽出（ステップ１２４）：この段階では、回路機能がトランジスタレベルで検証され、これは、次いで、たられば(what-if)改善を許す。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、ＡｓｔｒｏＲａｉｌ、ＰｒｉｍｅＲａｉｌ、ＰｒｉｍｅＴｉｍｅ、及びＳｔａｒＲＣ／ＸＴ製品を含む。
【００３１】
物理的検証（ステップ１２６）：このステップでは、製造、電気的な問題、リソグラフィーの問題、及び回路についての正しさを保証するために、種々のチェック機能が遂行される。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、Ｈｅｒｃｕｌｅｓ製品を含む。
【００３２】
テープアウト（ステップ１２７）：このステップは、出来上ったチップを形成するためにリソグラフィック使用のマスクを形成する「テープアウト」データを与える。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、ＣＡＴＳ（Ｒ）ファミリーの製品を含む。
【００３３】
解像度向上（ステップ１２８）：このステップは、設計の製造性を改善するためのレイアウトの幾何学的操作を伴う。この段階で使用できるシノプシス社からの規範的ＥＤＡソフトウェア製品は、Ｐｒｏｔｅｕｓ、ＰｒｏｔｅｕｓＡＦ及びＰＳＭＧｅｎ製品を含む。
【００３４】
マスク準備（ステップ１３０）：このステップは、マスクデータの準備と、マスクそれ自体の書き込みとの両方を含む。
【００３５】
序文
ワイヤレス移動及びワイヤード高性能システムの両方にとって、今日のＩＣ設計では、低電力で、且つ変化に対して低感受性であることが大きな挑戦及び区別化となる。ＩＣの電力消費は、動的電力及び漏洩電力に分類することができる。クロックツリーは、非常に頻繁に切り換わり且つチップにわたり分散されるので、動的電力の主たる消費体である。又、クロックツリーは、全てのワイヤ及び順序セル（フロップ及びラッチ）を駆動しそしてスキューのバランスをとるために多数のバッファを含むので、漏洩電力の主たる消費体である。クロックツリーは、ＩＣにより消費される全電力の４０％程度を消費する。
【００３６】
又、クリックツリーは、変化に対するＩＣ感受性の主たる原因でもある。ＯＣＶ（オンチップ変化）のために、タイミング経路の起動フロップへのクロック経路は、１００ｐｓだけ低速化され、そして同じタイミング経路の捕獲フロップへのクロック経路は、１００ｐｓだけスピードアップされると仮定する。従って、タイミング経路へのＯＣＶの影響は、少なくとも２００ｐｓとなり、単一クロック経路へのＯＣＶの影響の２倍である。
【００３７】
従来のクロックツリー合成方法は、順序セル及びＩＣＧ（集積クロックゲートセル）の任意の配置がなされるとすれば、低電力及び低スキューのクロックツリーを合成するように試み、これは、困難で且つ益々扱いにくいものである。
【００３８】
本発明の技術は、低電力で且つ変化に対する感受性が低いクロックツリーの合成を行えるように順序セル及びＩＣＧを配置することにより、ＩＣ設計のクオリティ（低電力及び低スキュー）に対するクロックツリーの重要性に対処するものである。
【００３９】
電力アウェア（電力に気付く）配置技術は、ネット切り換え電力を最小にするために高いスイッチング周波数でネットを短くするようセルを配置する。クロックネットは、通常、最高のスイッチング周波数を有し、従って、電力アウェア配置では、順序セルを、それらを駆動するリーフレベルクロックツリーセル（バッファ又はＩＣＧ）に近づけるよう引っ張り、これは、順序セルクランピング(clumping)と称される。クロックツリーのネットキャパシタンスの約８０％が、リーフレベルクロックツリーセルと順序セルとの間のネットにあり、従って、順序セルクランピングは、リーフレベルにおけるクロックツリーのネットキャパシタンスを効果的に減少し、従って、クロックツリー電力を節約することができる。
【００４０】
ここに述べる自動的順序セル配置技術は、低電力ＩＣのための低電力クロックツリーを合成することができる。７つの工業設計では、（１）商業的ベースの流れ及び（２）電力アウェア配置技術に比して、この技術は、各々、平均で、クロックツリー電力を１０．０％及び１４．９％減少し、全電力を１５．３％及び５．２％減少し、オンチップ変化（±１０％）のもとでのＷＮＳを１．８％及び１．５％減少する。
【００４１】
自動化されたタイミング及びルータビリティ駆動アルゴリズムは、設計の配置、タイミング及び密集情報に基づいて順序セルバンクを生成して配置することにより、設計タイミング及びルータビリティへの影響を最小にする。より詳細には、アルゴリズムは、自動的に、（１）設計の初期配置に基づいて順序セルグループを識別し、（２）順序セルの初期配置に基づいて各グループの順序セルを長方形の順序セルバンクへ配置し、（３）タイミング分析に基づき設計タイミングに影響する順序セルバンクの形成を回避し、（４）配置ベース密集マップに基づきルータビリティに影響する順序セルバンクの形成を回避する。
【００４２】
自動的順序セルバンキングアルゴリズム及び電力アウェア配置技術は、シノプシス社のＩＣコンパイラーである最新の市販の物理的合成ツール上で実施された。しかしながら、種々の市販及び非市販の物理的合成ツールがこの技術の利点を取り入れることができる。１つの具現化には、配置、クロックツリー合成及びルーティングを含む全物理的合成フローを通して７つの工業設計におけるデフォールトの物理的合成フロー、電力アウェア配置フロー、及び自動的順序セルバンキングフローが適用された。設計は、９０ｎｍ及び６５ｎｍ技術において１４Ｋないし２５９Ｋのセルを有する。設計は、ＯＣＶを市販ツールのタイマーにおいてＣＲＰＲ（クロック再収束悲観的条件削除）を伴う１０％ディレーティング(derating)（各ワイヤ又はセルの遅延が±１０％変化する）としてモデリングする。設計は、細部ルート後のルーティングＤＲＣ（設計ルールチェック）違反の数によりルータビリティを測定する。近代的な工業設計フローでは、自動的細部ルート後のルーティングＤＲＣ違反は、典型的に、グラフィックユーザインターフェイスを使用して設計エンジニアにより固定される。
【００４３】
デフォールトフロー及び電力アウェア配置のフローに比して、自動的順序セルバンキングアルゴリズムは、各々、平均で、クロックツリー電力を１９．０％及び１４．９％減少し、全チップ電力を１５．３％及び５．２％減少し、ＯＣＶのもとでのスキューを２．５％及び０．６％減少し、そしてＯＣＶのもとでのＷＮＳ（最悪の負のたるみ）を１．８％及び１．５％減少する。ルータビリティに関して、自動的順序セルバンキングアルゴリズムは、電力アウェア配置のフローに勝る３０．０％の改善を達成した。デフォールトフローに比して、ルータビリティに対する自動的順序セルバンキングアルゴリズムの影響は、５．０％に制限される。
【００４４】
以下のセクションは、タイミング及びルータビリティ駆動の順序セルバンキングアルゴリズム、及びどのように順序セルバンキングが典型的な物理的合成フローに適合するか、を紹介し、どのように順序セルが順序セルバンクに配置されるかを詳細に説明し、実験の結果を提示し、そして他の特徴を検討し、結論付ける。
【００４５】
タイミング及び密集駆動順序セルバンキング
以下の検討は、どのようにタイミング及びルータビリティ駆動の自動的順序セルバンキングが完全な物理的合成フローに適合するかを示し、そして順序セルバンキングアルゴリズムについて説明する。
【００４６】
物理的合成フロー
図２は、どのように順序セルバンキングを典型的な物理的合成フローに合体できるかを示す。第１に、ステップ２０２において、マップされたネットリストの初期配置が行われる。この初期配置において、プレーサーによりタイミング及びルータビリティを最適化するために順序セルが設計の残部と一緒に配置される。プレーサーがタイミング及びルータビリティのために順序セルを互いに遠く離れて（希薄に）配置するように決定した場合には、プレーサーが合理的なジョブを行うと仮定すれば、それらを互いにタッチするように並置して順序セルバンクへと配置することで、タイミング及びルータビリティに大きな負の影響を招くことがある。換言すれば、プレーサーが「スマート」であると仮定すれば、互いに遠く離れて配置される順序セルをバンキングすることで、プレーサーのアルゴリズム目標に大きく違反する。ステップ２０２におけるマップされたネットリストの初期配置の後に、ステップ２０４において、設計の配置に基づいて、順序セルバンク（グループとも称される）生成が行われる。
【００４７】
次いで、ステップ２０６において、ステップ２０４で形成された順序セルバンクを含む設計を物理的に最適化するための増分的配置及び配置に基づくロジック最適化が遂行される。ステップ２０８において、タイミング及びルータビリティへの順序セルバンキングの影響を最小にするために、ある順序セルバンクが分解（解散とも称される）される。ステップ２１０において、タイミング及びルーティング密集を最小にするようにその分解された順序セルをリロケーションするための別の増分的配置及び配置に基づく最適化が行われる。最終的に、ステップ２１２において、クロックツリー合成及び最適化が行われ、そしてステップ２１４において、ルーティング及び物理的最適化が行われる。
【００４８】
順序セルバンクは、物理的合成フロー全体にわたって行われるグローバル配置及び細部配置の両方の間にハードマクロ状メモリ又はハードＩＰとして取り扱われる。ここに述べるセルは、標準的セルライブラリーにおける標準的セルである必要はない。「ハードマクロ」は、固定レイアウトを有する配置されルーティングされたセルである。「ソフトマクロ」は、変更可能なレイアウトを有していてネットリストにより記述されたセルである。
【００４９】
細部プレーサーは、順序セルバンクを含むオーバーラップを除去できない場合には、順序セルバンクを個々の順序セル及びＩＣＧへ分解し、そして再び配置を合法化するよう試みる。順序セルバンクにおける順序セル及びＩＣＧは、ステップ２０６及び２１０において、物理的最適化の間にサイズ決めすることができる。ステップ２１２におけるＣＴＳ（クロックツリー合成）のような物理的合成オペレーションの残り部分、並びにステップ２１４におけるグローバル及び細部ルーティングは、順序セルバンクにおける順序セル及びＩＣＧを、固定配置を伴う個々のセルとして取り扱う。
【００５０】
図３、４Ａ、４Ｂ及び４Ｃは、本発明の技術の全体的な態様、及び図２に述べた技術の種々のより特定の態様に各々向けられたフローチャートである。
【００５１】
図３において、フローチャートは次のステップを含む。ステップ３２０において、予備配置が受け取られる。ステップ３２２において、ステップ３２０の予備配置に基づき、その後の配置の際に、改善された電力及び／又はタイミングを受ける順序セルのグループが識別される。ステップ３２４において、識別された順序セルグループに対して接近配置が行われる。ステップ３２６において、接近配置が失敗した場合には、順序セルのグループが解散され、その解散されたグループの順序セルの配置が行われる。
【００５２】
図４Ａにおいて、フローチャートは、次のステップを含む。ステップ４３０において、予備配置が受け取られる。ステップ４３２において、予備配置に基づき、その後の配置の際に、改善された電力及び／又はタイミングを受けるものとして順序セルのグループが識別される。
【００５３】
図４Ｂにおいて、フローチャートは、次のステップを含む。ステップ４４０において、その後の配置の際に、改善された電力及び／又はタイミングを受ける順序セルのグループの識別が受け取られる。ステップ４４２において、その識別された順序セルグループの接近配置が行われる。
【００５４】
図４Ｃにおいて、フローチャートは、次のステップを含む。ステップ４５０において、順序セルのグループの接近構成が受け取られる。ステップ４５２において、接近配置が失敗した場合には、順序セルのグループが解散され、その解散されたグループの順序セルの配置が行われる。
【００５５】
配置駆動の順序セルバンクの生成
このセクションは、図２に示すフローのステップ２０４において順序セルバンクに含ませるべき順序セルの識別について述べる。
【００５６】
順序セルのセットがＩＣ設計のマイクロアーキテクチャーにおいて単一のパイプライン段を形成する場合には、設計のタイミング及び密集を最小にするように順序セルを互いに接近して配置しなければならない。幾つかの実施形態において、「単一のパイプライン段」とは、スループットのような性能を高めるためにそのようなパイプライン段のシーケンスによりデータの断片が処理される順序セルを含む処理ユニットである。単一のパイプライン段は、第１の先行するデータ断片をその段で処理した短時間後に第２の後続するデータ断片をその段で処理することができる。例えば、パイプライン型乗算器及び加算器は、古い入力を完全に処理する前に新たな入力の処理を開始することができる。更に別の実施形態では、複数のパイプライン段が順序セルバンクに配置されて、改善された電力及び／又はタイミングを実証する。
【００５７】
換言すれば、以下に述べるように、順序セルのセットを順序セルバンクに入念にパッキングすることにより、順序セルは、タイミング及びルータビリティに関してそれらの理想的な配置からあまり遠く離れなくてもよい。それ故、順序セルバンクは、クロックツリーの電力及びスキューを減少しながら、設計タイミング又はルータビリティに著しく影響してはならない。
【００５８】
設計のマイクロアーキテクチャーにおける単一のパイプライン段の一部分である順序セルを発見的に識別するために次の３つの規範的な基準が適用される。
【００５９】
基準１：順序セルのセットが単一のＩＣＧ（集積クロックゲートセル）により直接駆動される。
基準２：順序セルのセットがそれらの名前に基づくＲＴＬレベルにおいて見掛け上単一ベクトルを構成する。
基準３：順序セルのセットが初期配置（図２のステップ２０２）において「あまり希薄に」配置されない。
【００６０】
幾つかの実施形態において、基準１及び基準３の両方を満足するか又は基準２及び基準３の両方を満足する順序セルのセットについて、順序セルバンクが生成される。換言すれば、基準１又は基準２のいずれかを満足する順序セルのセットについては、基準３が最終的なフィルタとして働く。基準３の背景にある直観的なことは、順序セルのセットが初期配置においてチップにわたって分散配置される場合に、それらを順序セルバンクへと強制すると、ワイヤ長さ及び／又はタイミング低下の著しい増加を招く。他の実施形態では、基準１、基準２又は基準３単独、基準２及び基準３、又は順序セルの単一パイプ段を表す他の基準（１つ又は複数）のような、基準の他の組み合わせが、順序セルバンク生成のための要件を満足する。
【００６１】
上述した各基準について以下に詳細に述べる。９０ｎｍ以下の特徴サイズのほとんどの設計は、クロックツリー電力を節約するためにクロックゲートを使用する。クロックゲートは、通常、ＩＣＧ（集積クロックゲートセル）を使用して具現化される。ＩＣＧは、２つの入力信号（ピン）、即ちクロック及びイネーブルと、１つの出力信号（ピン）、即ちゲートクリックとを有する。イネーブル信号がオフである場合には、ゲートクロック信号がオフである。さもなければ、クロック信号は、ゲートクロック信号を通して伝播する。
【００６２】
順序セルのセットが同じＩＣＧにより駆動される場合には、その順序セルのセットが、厳密に同じイネーブル条件のもとで新たな入力を捕獲する。これは、通常、順序セルのセットがＩＣ設計のマイクロアーキテクチャーにおける単一パイプライン段の一部分であることを指示する。順序セルのセットが基準３も満足する場合には、その順序セルのセットが最小数の順序セルバンクとされ、各順序セルバンクが１２８以下の順序セルを含むようにされる。１２８より多い順序セルを伴う順序セルバンクを生成することは、幾つかの実施形態では回避される。というのは、そのサイズの順序セルバンクは、しばしば、（１）細部プレーサーで解決できないオーバーラップを伴い、そして（２）ルータビリティの問題を引き起こすからである。それにより得られる順序セルバンクは、クロックスキューを減少するために中間行にＩＣＧを有することができる。
【００６３】
基準２は、少なくとも１６の順序セルのセットがそれらの基礎的な名前に基づくＲＴＬレベルにおいて見掛け上同じベクトルにある場合には、それらがおそらく単一パイプライン段の一部分であることを示す。順序セルのセットが基準３も満足する場合には、その順序セルのセットが最小数の順序セルバンクとされ、各順序セルバンクが１２８以下の順序セルを含むようにされる。
【００６４】
基準３は、順序セルのセットがネットリストの初期配置において「あまりにも希薄に」配置される場合には、順序セルのセットが基準１又は基準２を満足しても、順序セルのこのセットに対して順序セルバンクは形成されない。順序セルのセットは、順序セルのセットの合計面積と順序セルのセットの境界ボックスの面積との比が、設計の全順序セルの合計面積とダイの「標準セル面積」との比より小さい場合には、「あまりにも希薄に」配置される。ダイの「標準セル面積」は、合計ダイ面積からダイにおけるハードマクロの合計面積を差し引いたものである。
【００６５】
タイミング及びルータビリティ駆動の順序セルバンクの除去
ここでは、タイミング又はルータビリティに対する順序セルバンキングの影響を最小にするために図２のステップ２０８において順序セルバンクをどのように分解するかについて述べる。
【００６６】
順序セルバンクに順序セルが含まれる場合には、プレーサーは、順序セルバンクにおいて個々の順序セルをもはや別々に移動できず、プレーサーは、バンク全体を移動しなければならない。従って、物理的合成ツールが、タイミング経路を最適化し又は順序セルを含むルーティング密集を最小にするように順序セルをリロケーションすることが、より困難となる。
【００６７】
設計タイミングに対する順序セルバンキングの影響を最小にするために、ステップ２０６におけるタイミング及び密集駆動配置の後に、順序セルのピンが、設計のＷＮＳ（最悪の負のたるみ）の２０％以内であるたるみをまだ有する場合には、図２のフローのステップ２０８において順序セルバンクが分解される。
【００６８】
順序セルバンクを分解することにより、プレーサーは、（分解された順序セルバンクの）個々の順序セルをチップ内のどこにでも自由に配置することが許される。順序セルは、もはや、順序セルバンクに並置されるよう強制されない。これは、物理的具現化中の配置制約の変化であり、設計のＲＴＬコードに対する変化ではない。プレーサーは、タイミング及びルータビリティに対する物理的具現化の間にＲＴＬベクトルの順序セルをチップに自由に配置する。
【００６９】
ルータビリティに対する影響を最小にするため、現在配置に基づいて密集マップが構築される。密集マップは、設計をセルへ分割するグリッドである。密集マップのセルは、セルの縁を通過するネットの推定数がセルの縁のルーティング容量を越える場合にオーバーフローする。順序セルバンクが密集マップのオーバーフローしたセルとオーバーラップする場合には、順序セルバンクは、図２のフローのステップ２０８において分解されたものである。
【００７０】
ステップ２１０におけるその後のタイミング及び密集駆動配置並びに配置ベースのロジック最適化は、タイミングを最小にするように個々の解散した順序セルをリロケーションできることに注意されたい。
【００７１】
順序セルバンクにおける順序セル配置
このセクションは、どのように順序セルバンクの大きさを決定しそして順序セルを順序セルバンク内に配置するかを例示する。
【００７２】
順序セルバンクの大きさ
順序セルバンクの大きさを決定するために、最初に測定されるのは、初期配置における順序セルのセットの境界ボックスの高さと巾の比である。次いで、決定されるのは、順序セルバンクの高さ対巾の比が境界ボックスの高さ対巾の比を近似するような順序セルバンクの行及び列の数である。この方法の背景にある直観的なことは、順序セルのセットの初期配置から順序セルバンク内でのそれらの配置への変位を最小にする見込みが高いことである。
【００７３】
順序セルバンク内での順序セル配置
合計変位を最小にするために初期配置における順序セルの相対的な位置に基づいて順序セルバンク内の順序セルの相対的な位置が計算される。順序セルのセットがｍｘｎ（ｍ行ｎ列）の順序セルバンクに配置されると仮定する。先ず、順序セルがそのｙ座標に基づいて分類され、そして順序セルがｍ行にグループ分けされ、各行がｎ個の順序セルを含むが、最後の行は、ｎ以下の順序セルを含むようにされる。次いで、順序セルは、各行において、そのｘ座標に基づいて分類されて、各行における相対的な位置を決定する。順序セルバンクがＩＣＧにより駆動される場合には、ＩＣＧが付加的な中間行に配置される。例えば、図５では、６個の順序セルが３ｘ２の順序セルバンクに配置される。先ず、６個の順序セルが、そのｙ座標に基づき、順序付けされたシーケンス１、２、３、４、５及び６に分類される。この順序付けされたシーケンスに基づき、順序セルは、３つの行｛１、２｝、｛３、４｝及び｛５、６｝にグルプ分けされる。各行内で、順序セルは、そのｘ座標に基づいて分類され、そして順序セルの最終的な相対的配置が、各行において｛２、１｝、｛３、４｝及び｛６、５｝として決定される。最終的に、ＩＣＧを配置するために、中間行が順序セルバンクへ挿入される。配置された順序セルバンクが図５に示されている。
【００７４】
実験結果
このセクションは、実験結果を説明し分析する。
【００７５】
実験の設定
自動的順序セルバンキングアルゴリズム及び電力アウェア配置技術が市販の物理的合成ツール上で具現化された。市販の物理的合成ツールは、実験のためのタイミング及び電力数字を与える内蔵のタイミング及び電力分析エンジンを有する。このタイミング分析エンジンは、（１）各ワイヤ又はセルの遅延を、あるユーザ指定パーセンテージについていずれかの仕方で変化させることのできるディレーティング(derating)、及び（２）ＣＲＰＲ（クロック再収束悲観的条件削除）を使用してＯＣＶ（オンチップ変化）をモデリングする。
【００７６】
実験は、９０ｎｍ及び６５ｎｍ技術において１４Ｋないし２５９Ｋセルの範囲の７つの工業設計で行われる。これら設計の統計値をテーブル１に要約する。
【表２】
0005410523.tif 000003
【００７７】
これらの設計には、デフォールトの物理的合成フロー、電力アウェア配置フロー、及び自動的順序セルバンキングフローが適用される。デフォールトフローは、図２のフローのステップ２０２、２１０ｋ、２１２及び２１４である。電力アウェア配置フローは、デフォールトフローにおけるタイミング及び密集駆動配置（図２のステップ２１０）の間に電力アウェア配置を行う。細部ルーティングの後に全ての実験結果が測定された。
【００７８】
自動的順序セルバンキングフローと他のフローとの間の比較
順序セルバンキングフローと、デフォールトフロー、及び電力アウェア配置フローとの比較をテーブル２に要約する。テーブル２では、第１列は、３つのフローを比較するときの基礎となる設計クオリティメトリックを列挙する。第２列及び第３列は、デフォールトフロー及び電力アウェア配置フローに対する順序セルバンキングフローからの平均改善パーセンテージを各々示す。負（正）のパーセンテージは、他のフローに比して順序セルバンクバンキングフローからの改善（悪化）を示す。タイミング数字は、１０％ディレーティング（各ワイヤ又はセルの遅延は±１０％変化する）及びＣＲＰＲで測定される。
【表３】
0005410523.tif 000004
【００７９】
クロックのＷＮＳパーセンテージ数は、クロック周期に対して正規化される。設計が複数のクロックを有する場合には、ＷＮＳパーセンテージ数は、全てのクロックの全てのＷＮＳパーセンテージ数の平均である。フローのルーティングＤＲＣ（設計ルールチェック）違反数は、デフォールトフロー又は電力アウェア配置フローに匹敵するＤＲＣ違反数である。
【００８０】
テーブル２は、順序セルバンキングフローが、デフォールトフロー及び電力アウェア配置フローに比して、各々、平均で、クロックツリー電力を１９．０３％及び１４．９４％、全電力を１５．２６％及び５．２０％、ＯＣＶのもとでのスキューを２．５３％及び０．６０％、そしてＯＣＶのもとでのＷＮＳ（最悪の負のたるみ）を１．７６％及び１．５２％減少したことを示す。これらの結果から、順序セルバンキングは、デフォールトフロー及び電力アウェア配置フローの両方に比して、クロックツリー電力を節約し且つＯＣＶの影響のもとで設計タイミングを改善するのに有効であると結論付けることができる。
【００８１】
ルータビリティは、細部ルート後のルーティングＤＲＣ（設計ルールチェック）違反の数で測定される。今日の工業設計フローでは、自動的細部ルート後のルーティングＤＲＣ違反は、グラフィックユーザインターフェイスを使用して設計エンジニアにより固定されることに注意されたい。電力アウェア配置フローに比して、順序セルバンキングフローは、ルーティングＤＲＣ違反の数を３０．０５％減少した。デフォールトフローに比して、順序セルバンキングフローは、ルーティングＤＲＣ違反の合計数を５．０１％増加した。電力アウェア配置及び自動的順序セルバンキングは、両方とも、ルータビリティに影響するが、セクション２．３に述べられた密集マップベースの順序セルバンク分解方法は、電力アウェア配置に比して、ルータビリティへの影響を効果的に減少した。
【００８２】
自動的順序セルバンキングのためのコードは、ランタイムを、デフォールトフローに比して１．６６Ｘだけ増加し、そして電力アウェア配置フローに比して１．１５Ｘだけ増加した。将来、ランタイムオーバーヘッドを減少する更なる改善を期待することができる。
【００８３】
テーブル３は、テストケースにおいて３つのフローを実行することから得られる実験データを示す。第１列は、７つの設計のコード名を示す。第２列は、３つのフロー、即ちデフォールトフロー、電力アウェア配置フロー、及び順序セルバンキングフローを示す。第３列ないし第７列は、５つの設計クオリティメトリック、即ちクロック電力、全電力、クロックスキュー、ＷＮＳ、及び細部ルーティング後のＤＲＣ違反の数に関して実験データを示す。
【表４】
0005410523.tif 000005
【００８４】
自動的順序セルバンキングにより達成されるスキュー及び電力減少の分析
なぜ順序セルバンキングがＯＣＶのもとでスキューを減少するかを以下に述べる。密接にパックされた順序セルバンクでは、細部ルーターが、通常、スキューに対して良好な魚の骨状のネットを生成する。更に、順序セルバンクにおける魚の骨状のネットは、クロックツリーのリーフレベルのネット容量を相当に減少し、クロックツリーが、より少数の、より小型のバッファを使用して、クロックネットを駆動できるようにする。その結果、クロックツリーの根からクロックのシンクへのクロック経路の遅延が最小にされ、ＯＣＶの影響を減少する。
【００８５】
上述したように、順序セルバンクは、クロックツリーが、より少数の、より小型のバッファを使用して、クロックネットを駆動できるようにする。その結果、全バッファ面積が減少され、ひいては、クロックツリーセルの漏洩及び内部（短絡）電力を減少する。それ故、自動的順序セルバンキングは、ネットスイッチング電力だけでなく、クロックツリーセルの漏洩及び内部電力も減少する。
【００８６】
テーブル４は、前記の議論をサポートする。テーブル４の第３列ないし第６列は、クロックツリーバッファ面積、漏洩電力、セル内部電力、及びネットスイッチング電力に関して実験データを示す。最下行は、自動的順序セルバンキングにより達成される前記メトリックの平均減少を示す（負のパーセンテージは、改善を示す）。クロックツリーバッファ面積の７．６１％の平均減少が、クロックツリー漏洩電力の７．２０％の平均減少、及びクロックツリーセル内部電力の７．８９％の平均減少を導いたことに注意されたい。
【表５】
0005410523.tif 000006
【００８７】
結論及び更に別の実施形態
低い電力及び変化に対する低い感受性は、ワイヤレス移動システム及びワイヤード高性能システムの両方に使用されるＩＣを設計するために設計者が今日直面する大きな挑戦である。クロックツリーは、電力消費及び変化に対する感受性の両方に対する主たる元凶であるから、低電力で且つ変化に対して頑強であるＩＣ設計をもつためには、低電力で且つ変化に対する感受性が低いクロックツリー設計を得ることが必須である。
【００８８】
低電力で且つ変化に対してより頑強なクロックツリーの合成を可能にする自動的順序セルバンキング技術が提供された。この順序セルバンキング技術は、市販の物理的合成ツール上で具現化される。この技術は、クロックツリー電力、全電力、及びオンチップ変化のもとでのＷＮＳを減少する上で効果的であることを実験結果が示している。
【００８９】
１４Ｋないし２５９Ｋのセルを伴う７つの工業的９０ｎｍ及び６５ｎｍ設計では、完全な物理的合成フローの後に、自動的順序セルバンキング技術は、デフォールトフロー及び電力アウェア配置フローに比して、各々、平均で、クロックツリー電力を１９．０％及び１４．９％、全電力を１５．３％及び５．２％、又、ＯＣＶ（±１０％）のもとでのＷＮＳを１．８％及び１．５％減少した。
【００９０】
他の実施形態は、順序セルバンキング及び電力アウェア配置を結合して、全電力の更に大きな減少を達成し、ルータビリティに対する順序セルバンキングの影響を更に減少し、及び／又はデフォールトフローに比して自動的順序セルバンキングフローのランタイムオーバーヘッドを減少する。
【００９１】
図６は、本発明の態様を合体するソフトウェアを具現化するのに使用できるコンピュータシステム６１０の簡単なブロック図である。ここに示すフローチャート及び他のアルゴリズムは、一連のステップを説明するものであるが、フローチャート又はアルゴリズムの各ステップは、６１０のようなコンピュータシステムを特定の仕方で動作させることにより具現化できることが明らかである。
【００９２】
コンピュータシステム６１０は、典型的に、バスサブシステム６１２を経て多数の周辺装置と通信するプロセッササブシステム６１４を備えている。このプロセッササブシステム６１４は、１つ又は多数のプロセッサを含む。又、プロセッササブシステム６１４は、コンピュータシステム６１０がここに述べる情報を受信及び送信するための経路を与え、このプロセッササブシステム６１４内に、マルチコア、マルチプロセッサ及び／又はバーチャルマシン実施を含む。周辺装置は、メモリサブシステム６２６及びファイル記憶サブシステム６２８を含む記憶サブシステム６２４と、ユーザインターフェイス入力装置６２２と、ユーザインターフェイス出力装置６２０と、ネットワークインターフェイスサブシステム６１６とを備えている。入力及び出力装置は、コンピュータシステム６１０とのユーザ対話を許す。ネットワークインターフェイスサブシステム６１６は、通信ネットワーク６１８へのインターフェイスを含む外部ネットワークへのインターフェイスを与えるものであり、通信ネットワーク６１８を経て他のコンピュータシステムの対応インターフェイス装置に結合される。通信ネットワーク６１８は、多数の相互接続されたコンピュータシステム及び通信リンクを備えている。これらの通信リンクは、ワイヤラインリンク、光学リンク、ワイヤレスリンク、又は情報通信のための他のメカニズムである。一実施形態では、通信ネットワーク６１８は、インターネットであるが、他の実施形態では、通信ネットワーク６１８は、適当なコンピュータネットワークでよい。通信ネットワーク６１８は、コンピュータシステム６１０がここに述べる情報を受信及び送信するための経路をなす。
【００９３】
ネットワークインターフェイスの物理的ハードウェアコンポーネントは、時々、ネットワークインターフェイスカード（ＮＩＣ）とも称されるが、カードの形態である必要はなく、例えば、マザーボードに直接嵌合される集積回路（ＩＣ）及びコネクタの形態、或いはコンピュータシステムの他のコンポーネントと共に単一の集積回路チップ上に製造されるマクロセルの形態でよい。
【００９４】
ユーザインターフェイス入力装置６２２は、キーボード、ポインティング装置、例えば、マウス、トラックボール、タッチパッド又はグラフィックタブレット、スキャナ、ディスプレイに合体されたタッチスクリーン、オーディオ入力装置、例えば、音声認識システム、マイクロホン、及び他の形式の入力装置を含む。一般的に、「入力装置」という語の使用は、コンピュータシステム６１０又はコンピュータネットワーク６１８に情報を入力するための考えられる全ての形式の装置及び方法を含むことが意図される。
【００９５】
ユーザインターフェイス出力装置６２０は、ディスプレイサブシステム、プリンタ、ファックスマシン、又は非視覚ディスプレイ、例えば、オーディオ出力装置を含む。ディスプレイサブシステムは、陰極線管（ＣＲＴ）、フラットパネル装置、例えば、液晶ディスプレイ（ＬＣＤ）、プロジェクション装置、又は視覚映像を生成するための他のメカニズムを含む。又、ディスプレイサブシステムは、オーディオ出力装置を経て非視覚表示を与えてもよい。一般的に、「出力装置」という語の使用は、コンピュータシステム６１０からユーザ或いは別のマシン又はコンピュータシステムへ情報を出力するための考えられる全ての形式の装置及び方法を含むことが意図される。
【００９６】
記憶サブシステム６２４は、本発明の幾つかの実施形態の機能を与える基本的プログラム及びデータ構造体を記憶する。例えば、本発明の幾つかの実施形態の機能を具現化する種々のモジュールは、記憶サブシステム６２４に記憶される。これらのソフトウェアモジュールは、一般的に、プロセッササブシステム６１４により実行される。
【００９７】
メモリサブシステム６２６は、典型的に、プログラム実行中にインストラクション及びデータを記憶するためのメインランダムアクセスメモリ（ＲＡＭ）６３０と、固定インストラクションが記憶されるリードオンリメモリ（ＲＯＭ）６３２とを含む多数のメモリを備えている。ファイル記憶サブシステム６２８は、プログラム及びデータファイルのための持続性記憶を与えるものであり、ハードディスクドライブ、関連する取り外し可能な媒体を伴うフロッピーディスクドライブ（回路設計６８０を記憶するコンピュータ読み取り可能な媒体６４０として例示された）、ＣＤ  ＲＯＭドライブ、光学的ドライブ、又は取り外し可能な媒体カートリッジを含む。本発明の幾つかの実施形態の機能を具現化するデータベース及びモジュールは、１つ以上のＣＤ−ＲＯＭのようなコンピュータ読み取り可能な媒体上に設けられ、そしてファイル記憶サブシステム６２８により記憶される。ホストメモリ６２６は、とりわけ、プロセッササブシステム６１４により実行されたときに、コンピュータシステムがここに述べるように動作するか又はここに述べる機能を遂行するようにさせるコンピュータインストラクションを含む。「ホスト」又は「コンピュータ」内又は上で実行すると言えるここに使用するプロセス及びソフトウェアは、インストラクション及びデータのための他のローカル又はリモート記憶装置を含むホストメモリサブシステム６２６内のコンピュータインストラクション及びデータに応答してプロセッササブシステム６１４上で実行される。
【００９８】
バスサブシステム６１２は、コンピュータシステム６１０の種々のコンポーネント及びサブシステムが意図されたように互いに通信するようにさせるためのメカニズムをなす。バスサブシステム６１２は、単一のバスとして概略的に示されているが、バスサブシステムの別の実施形態では、複数のバスが使用されてもよい。
【００９９】
コンピュータシステム６１０それ自体は、パーソナルコンピュータ、ポータブルコンピュータ、ワークステーション、コンピュータターミナル、ネットワークコンピュータ、テレビジョン、メインフレーム、パラレル処理システム、２つ以上のコンピュータのネットワーク、或いは他のデータ処理システム又はユーザ装置を含む種々の形式のものでよい。コンピュータ及びネットワークはその性質が絶えず変化しているために、図６に示すコンピュータシステム６１０の説明は、本発明の好ましい実施形態を例示するための特定例として意図されているに過ぎない。図６に示すコンピュータシステムより多数の又は少数のコンポーネントを有するコンピュータシステム６１０の他の多数の構成が考えられる。
【０１００】
ここに使用する所与のアクティビティは、先行入力がその所与のアクティビティに影響する場合には先行入力に「応答」する。介在する処理要素、ステップ又は期間が存在する場合には、所与のアクティビティは、まだ先行入力に「応答」することができる。介在する処理要素又はステップが２つ以上の入力を結合する場合には、アクティビティが各入力に「応答」すると考えられる。１つ以上の入力に対する所与のアクティビティの「依存性」も、同様に定義される。
【０１０１】
本発明の好ましい実施形態の以上の説明は、例示及び説明の目的でなされたものである。これは、余すところのないものでもないし、又、ここに開示した正確な形態に本発明を限定するものでもない。当業者であれば、多数の変更や修正が明らかであろう。前記実施形態は、本発明の原理及びその実際の応用を最良に説明するために選択されて説明されたものであり、従って、当業者であれば、種々の実施形態、及び意図された特定の用途に適した種々の変更についても、本発明を理解することができよう。本発明の範囲は、特許請求の範囲及びその等効物により限定されるものとする。
【符号の説明】
【０１０２】
１００：製品アイデア
１１０：ＥＤＡソフトウェア
１１２：システム設計
１１４：論理設計及び機能検証
１１６：合成及びテスト設計
１１８：ネットリスト検証
１２０：設計プランニング
１２２：物理的具現化及び最終ＡＴＰＧラン
１２４：分析及び抽出
１２６：物理的検証
１２７：テープアウト
１２８：解像度向上
１３０：マスク準備
１５０：製造
１６０：パッキング＆アッセンブル
１７０：チップ
１８０：チップテスト
６１０：コンピュータシステム
６１４：プロセッサ
６１６：ネットワークインターフェイス
６１８：通信ネットワーク
６２０：ユーザインターフェイス出力装置
６２２：ユーザインターフェイス入力装置
６２４：記憶サブシステム
６２６：メモリサブシステム
６２８：ファイル記憶サブシステム
６３０：ＲＡＭ
６３２：ＲＯＭ
６４０：コンピュータ読み取り可能な媒体
６８０：回路設計／コンピュータ実施インストラクション
【図１】
0005410523.tif 000007
【図２】
0005410523.tif 000008
【図３】
0005410523.tif 000009
【図４Ａ】
0005410523.tif 000010
【図４Ｂ】
0005410523.tif 000011
【図４Ｃ】
0005410523.tif 000012
【図５】
0005410523.tif 000013
【図６】
0005410523.tif 000014