(57)【要約】本発明は、多くの時間を時期尚早に費やしたスタックを得ることを避けるために、レイアウトツール、統合、及びタイミング解析を用いることによって集積回路の設計を改善する方法に関するものである（図２−１３）。設計がテープ切れで終了するとき、幾つかの問題が同時に収束しなければならず、そして有益な概念とは所望の目標とされたゴールに向かって付加されたマージンを徐々に少なくさせることである。【選択図】図２
2005502133.tif 000002
【特許請求の範囲】
【請求項１】
ネットリストを、各々が少なくとも１つの入力及び１つの出力を有する階層ブロックに分割するステップと、
任意のタイミング解析を行う前に、前記ブロック入力を分離するため全ブロック入力にバッファーを挿入するステップと、
任意のタイミング解析を行う前に、前記ブロック出力を分離するため全ブロック出力にバッファーを挿入するステップとを有するＶＬＳＩチップ設計をルーチン化する方法。
【請求項２】
ネットリストを階層ブロックに分割するステップと、
各ブロック組間で移動する信号のタイミングを解析するステップと、
それらの間の最長経路を有するブロック一組における受信ブロックに提供されたクロック信号を遅延するためにクロック分配を調整するステップとを有するＶＬＳＩチップ設計をルーチン化する方法。
【請求項３】
フロアープランニングステップと、
ブロックの統合ステップと、
ブロックの初期配置ステップと、
ゲートサイジング及びクロックツリー構築ステップと、
配線ステップと、
寄生的抽出及びタイミング解析ステップと、
前記ゲートサイジング及びクロックツリー構築ステップの前に実行される、前記ブロック入力を隔離するため全てのブロック入力にバッファーを挿入するステップとを含むＶＬＳＩチップ設計をルーチン化する方法。
【請求項４】
前記ゲートサイジング及びクロックツリー構築ステップ実行の前に、全てのブロック出力にバッファーを挿入するステップとをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
第１のブロックと第２のブロックに分配されたクロック信号のタイミングを調整する方法であって、
データ信号が前記第１のブロックから前記第２のブロックまでの第１の経路を経由して移動するとともに、データ信号が前記第２のブロックから前記第１のブロックまでの第２の経路を経由して移動し、かつ、前記第１の経路を移動する時間が前記第２の経路を移動する時間よりも長く、
前記第１の経路と前記第２の経路間の相違の関数量により、前記第１のブロックへ供給されるクロック信号に関係した前記第２のブロックに供給されるクロック信号を遅延するステップを含むことを特徴とする方法。
【請求項６】
前記クロック信号は、前記第１の経路と前記第２の経路間の相違の１／２の関数量により遅延されることを特徴とする請求項５に記載の方法。
【請求項７】
前記クロックは、前記第１の経路を移動する時間と、前記第２の経路を移動する時間との間の相違の関数量により遅延されることを特徴とする請求項５に記載の方法。
【請求項８】
前記クロックは、前記第１の経路を移動する時間と、前記第２の経路を移動する時間との間の相違の１／２の関数量により遅延されることを特徴とする請求項５に記載の方法。
【請求項９】
すべて最小のアノテーション（注釈）を備えた第１の組、すべて最大のアノテーションを備えた第２の組、データ結線で最小のアノテーションであるがクロック結線で最大のアノテーションを備えた第３の組、データ結線で最大のアノテーションであるがクロック結線で最小のアノテーションを備えた第４の組という、４つのアノテーションの組を生成するステップと、
親ホールドの拘束の確認に用いられるモデルのために、クロック入力からデータ出力までの遅延円弧を前記第１の組より引き出すとともに、入力とクロック入力間のホールド拘束を前記第３の組より引き出すステップと、
セットアップの拘束の確認に用いられるモデルのために、クロック入力からデータ出力までの遅延円弧を前記第２の組より引き出すとともに、前記第４の組よりセットアップ拘束円弧を引き出すステップを含むタイミング確認のためのモデル開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路（ＩＣ）の設計に関し、さらに詳しくは、１千万オーダのゲートを有するＩＣチップの設計に関するものである。
【背景技術】
【０００２】
数百万のゲートチップ設計は、管理かつ予測可能な日程計画で実現されるようにするため階層構造であることを要求する。選択された目標にタイミングを確実に集中させるには、早期の予算化、単純化されたブロックにおける配線及びタイミングモデルの抽出、及び幾つかの軸に沿った適当なマージン（margin：余裕）を要求する。
【０００３】
数百万のゲートチップを日程計画どおりに物理的に実行するための挑戦は、消費される全ての仕事から最高の利益を得るため、フロアー（floor）のプランニングとパーティショニングを早期に開始し、設計フローの至るところで適切な抽出と近似を継続することでもある。特に、終了のタイミングを達成するため、プロセスの各ステージは十分なマージンを含んでいなければならず、かつプロジェクトの全体が時期尚早の最適化に多くの時間を費やして遅延してしまうことを避けるため先に進むことに集中しなければならない。設計がテープ切れ（tapeout）で終わるので、幾つかの異なる問題点を同時に解決しなければならず、そして所望の目標に向かって付加されたマージンを徐々に少なくさせることが有益な概念となる。
【０００４】
（真の階層）
ＣＡＤツールの平坦な能力を改善することは、設計全体の階層的な流れに関した要件を不要にする。”真の階層的な”流れは、たった１つの抽出が、それらの論理、タイミング、配線、及びポート配置モデルそれぞれで共有される複製ブロックのインスタンス（実例）を作成することをサポートする。異なるインスタンスがいずれにしても最後には個々のモデルを有しなければならない場合、階層の有利さの殆どが失われてしまうことになる。これは、真に同一のオブジェクトとして用いられた複製ブロックのインスタンスに関する問題であり、この場合、ブロックレベルでなされた様々な設計及び解析タスクが、各インスタンスのために繰り返される必要がない。
【０００５】
最終の物理的なＤＲＣ／ＬＶＳ（デザインルールチェック／レイアウト対回路）マスクチェックを除き、どんなツールも平坦なデータの全てを参照するアプローチ及びアルゴリズムを選択することで、真に階層的な設計フローに関する他の重要な特徴がその複雑さを閉じ込める。
【０００６】
特に、物理的な配線、寄生的な抽出（parasitic extraction）、及び静的タイミングの解析ステップは、各ブロック内の完全なトランジスタ、ゲート、または多角形のデータベースを参照することなく、トップレベルの実行がインスタンス生成されたブロックの抽出のみを用いるような分離性を必要とする。このパーティショニング及び征服アプローチは、ある１つの実行で参照されるデータの量を真に制限すること、及び仮想メモリの使用及びジョブ実行時間が合理的であることを保証するのに不可欠である。
【０００７】
（フロアープランニングとパーティショニング（Floorplanning and Partitioning））
設計のパーティショニングは、管理可能な単位に区切ることに役立ち、これにより個人の努力を時間的に並行化させる利益を得ることができる。その目標は、トップレベルで、個々のブロックのためと同時性のための両面から仕事の進捗を分割可能にできるようにすることである。平坦なアプローチが時間の集中を与えることに失敗する別の理由は、最終のタイミングまたは配線が１つの大きな実行を介して進行を妨げられる場合、並行して行う仕事から利益を得るための良い方法がないからである。かわりに、パーティショニングをすることは、複数の人々及びライセンスが実際に適用されるべきであることを認めている。階層的な設計における良い目標とは、ブロックとそれらの親の間に”等価な痛み”を追求することであり、その結果、そのブロックサイズは十分に小さくなり、ブロックレベルでの配線とタイミング終了の努力が、親のために要求されたのとほぼ同じ努力となる。
【０００８】
幾つかのブロックが非常に大きく、ブロックレベルでの配線とタイミング終了の努力が親よりも非常に困難である場合、全プロジェクトの終了は、これらのブロックをより小さな部分に区切ること、及び接続の複雑性を親へ”押し込む”ことにより助けられるだろう。逆に言えば、配線、抽出、またはタイミングの親ジョブがあまりに大きい場合、ブロックを組み合わせることまたは階層の他のレベルを導入することにより、前記複雑性をカプセル化したり下方に押し込めたりすることは価値がある。階層を使用する利点は、”階層的な要因の再利用”であって、それはブロックインスタンス数のブロック数に対する比となる。設計にかなり依存するのではあるが、うまくパーティショニングするには、唯一のブロックが１つだけのインスタンスを有する一方で、ブロックが何度も複製されるために平均しておよそ３から４までの再利用を模索すべきである。
【０００９】
パーティショニングのあらさ（粒度）を選択することにおける別の良い原則は、どんな個々の実行も２０時間以上かからないことを保証することである。設計チームが利用可能なコンピュータの速度に基づき、ブロックの切断とパーティショニングに対して、配線、抽出、及びタイミングのための個々のコンピュータジョブを１日未満で完了させる階層的なパーティショニング及び征服アプローチを用いることにより進捗が保証される。完了時刻によって仕事は無関係になってはならない。さらに、多数の理由から、実行を完了するのに数日かかってしまうようなジョブに依存する巨大なプロジェクトにはリスクがある。というのは、とても遅くならないと明白にならない大きな失敗またはプログラムバグに依って、それは決して完了しないからである。個々の実行について一日以内を要求するブロックの抽出及びパーティショニングをすることで、進捗を先に進めること及び価値ある繰り返しをすることは、設計者にとっての解析結果のための時間を含んだ数日／１巡という合理的なサイクルタイムが続行する。
【００１０】
所定のツールによるブロックサイズの良い経験則とは、約１５０Ｋの大きさのインスタンス、またはおよそ４００Ｋゲート（標準ゲートに等しい２入力否定論理積）を有するブロックを探索することであることを我々は発見した。ツールがこのサイズのブロックを数回サポートすることがたとえできたとしても、１Ｍゲートの個々のブロックが全ステップのルーチンにおいて長すぎることから、それはプロジェクト全体を少ししか最適化しない。そして、それはあまりに接近しすぎているため、多ギガバイトのメモリを搭載した装置であっても、実メモリまたは仮想メモリの欠乏によりであらゆる点で失敗してしまう。
【００１１】
ポート位置の割り当ては、全体のフロアープランニングとパーティショニングにおける部分である。早期の判断が重要なので、強大な概念では、中継器が実際に配置される前にトップレベルのタイミングを許可する線形の”信号速度”値を用いている。良い中継器を後で挿入することを仮定することにより、フロアープランニングの調整は、ワイヤー抵抗において損失することなく、中継器のないワイヤー長の二次式を評価するキャパシタンス効果を進めることができる。所定の技術とワイヤー幅と近傍スペースのため、長いワイヤーの中継器間には最適なスペースがあり、これに対応する理想的な速度の信号はきっちり位置付けられた中継器を備えたワイヤーの下方へ移動する。
【００１２】
理想化した速度（例えば、１／２にカットする）を低く出力することにより、設計チームは、非理想的な中継器の位置、配線密集による非理想的な実際のワイヤー経路、及び各分岐に沿って次の中継器の前にあるファン出力の現実からみたときにも十分なマージンがある速度を選択することができる。次に、トップレベルのタイミング解析は、親信号のタイミングで、各ブロックポートの入力の到着時間及び出発時間を組み合わせることができ、そしてこの親信号のタイミングは、それが駆動する各出力ポートとあらゆる入力ポート間にある一対のマンハッタン（ｘ＋ｙ）距離上で低出力の信号速度を用いている。この場合、現在の周波数で幾つかのクロック周期をとるので、設計目標に合わせることや全チップを交差させなければならないワイヤーを避けるようにするため、トップレベルのタイミング割り当て及びワイヤー長が決められる。
【００１３】
（抽出）
幾つかの設計がアプローチする典型的な策略の一つは、パーティショニングとフロアープランニングの大仕事をした後でさえも、階層構造における親と子間の分離を保存しない解析方法を選択することである。例えば、キャパシタンスの詳細な抽出は、上下のワイヤーを”参照”しようとして、親と子のデータを組み合わせるために企てられるべきではない。そのかわり、もっと良いのは、最悪状況が存在することを仮定した抽出フローの草案を作成することによって単純化させることである。適切な各金属層の好ましい方向における最小のキャパシタンス値のためには、これはワイヤーが無いことを仮定することを意味し、最大のキャパシタンス値のためには、配線ピッチで間隔がつけられたワイヤーの”格子状シート”を仮定することを意味する。金属の固体シートをモデル化することは保守的であるのだが、経路の定められた環境という現実では、最悪の場合、配線ピッチでワイヤーの全密度格子になるので、それは過剰となる。
【００１４】
階層構造をあまり効果的にさせない他の典型的な策略は、階層の境界を交差する信号のタイミングを処理することである。どのくらいの負荷が親による信号に適用されるかによって子のタイミングが決定する場合、或いは、出力ポートに到着する前にどのくらいの内部配線がワイヤーに置かれるかによって親のタイミングが決定される場合、分離の質が失われる。
【００１５】
我々は全ブロックの全入出力ポートでバッファーを加えることにより、そしてポート位置に非常に近い物理的なバッファーを配置することにより、階層構造の抽出が強まることに気づいた。バッファーが他の理由で不必要なときでも、親と子のタイミングを分離することを可能にすることによって、親と子の結線間での分離はタイミング集中を手助けする無視可能な領域コストとしての価値がある。
【００１６】
（相補的タイミング解析）
近年の０．１８マイクロまたはさらに微小な技術において、微小ピッチのワイヤーはその幅よりも高くなる。そしてこのことは、ワイヤーの総キャパシタンスの５０％を超える状況において、隣の信号へ交差結合することがしばしば存在していることを意味している。同時切り換えの効果を無視することができないが、処理の広がりの範囲を越えて発生することができる全結合の組み合わせの中から正確な決定を捜し求めることは非現実的である。したがって、安全かつ成功するタイミング集中は、１つの”正確な”値を発見することを絶望的に捜すよりも、最小値及び最大値による遅延演算と結びついた保守的な選択を要求する。
【００１７】
交差結合を処理するための保守的な選択を行った後でさえ、処理の広がり、誘電体の厚さまたは誘電率におけるバリエーション、オンチップ処理の傾斜、電源供給の電圧降下におけるオンチップのバリエーション、及び抽出とトランジスタ特性における最大誤差など多数の他の要因において、タイミング上の効果に関する量に付加的なマージンを加えることは依然として重要である。関連する最小及び最大キャパシティ値のテーマを続けるとすれば、増加傾向のマージンが名目値との関連で付加することができ、Ceff．mix及びCeff．maxのための良い方程式は次のようになる。
【００１８】
2005502133.tif 000003
【００１９】
ｘの値は所望なものとして選択することができ、典型的には０．０５〜０．１０の範囲にあって、この場合、導入されたマージンは事実上２ｘである。その他はっきりと定量化できないが、要因の多くはそれぞれ１０％の効果であるので、このマージンは非常に必要とされることに留意されたい。また、同様に増加傾向のマージンが、ワイヤーの厚さと幅における処理のバリエーション、及び自己加熱のせいでオンチップの局所化された温度バリエーション量に寄生するワイヤー抵抗に適用するのに向いている。
【００２０】
全結線に関する最小と最大の抵抗及びキャパシタンスは、タイミング解析に.sdfファイルを用いながらバックアノテーション（backannotated：後注釈）されることができる全結線の最小及び最大遅延の計算を我々に許可している。レジスタ（エッジトリガーされたフロップ）型の設計において、進行の終了結果を決定するような全セットアップ及びホールド確認を受信レジスタで想像してください。両者は他の一方の完全な双対なものとして考察されるべきであり、そこでは各セットアップ確認が、発信レジスタ及び組み合わせ的な論理を通って受信レジスタに至る最大遅延を用いて基礎づけられ、そして最小遅延による正確な同一経路がホールド確認のために使用される。
【００２１】
さらにこれらの確認のために使用された経路には、発信及び受信レジスタを供給するクロック分配ツリーの部分の間で、前の位置に戻っていくクロックツリーを含むことが必要である。このため、通常のセットアップ及びホールド確認は、全体的なゆがみの代わりに局所的なゆがみを強調しながらクロック分配ツリーの質を実証し、そして”有用なゆがみ”を使用する可能性を許可し、悪いゆがみを罰しないのと同様に、そこではとにかく影響を与えたセットアップまたはホールド確認にどんな相違点も作らない。
【００２２】
クロックツリー解析に対するこの厳格かつ安全なアプローチは、中心クロックを分配することにおいてまさにチップの切り換えキャタピタンスの１／３を時には拡張する平坦部分が短いごく普通の解決法の過剰さよりも、制限された平均的なファン出力での高いクロックツリーを用いたかなり低パワーのクロック分配スキーマを許可する。
【００２３】
選択され追加されたマージンの量に関する違反をホールド確認が示す場所に、遅延要素を挿入することができる。最小及び最大の遅延計算に関する保守的な扱いのために、非常に多くのセットアップ経路の質を下げることなく、ホールド違反を固定する正しい方法で遅延要素を追加することが、ときには技巧的なバランス行動となる。有益な概念は、（最大遅延計算の下）最大セットアップスラック（あそび）の状態でアップストリームの位置のために（最小遅延計算を用いながら）ホールド違反を有する各受信レジスタ入力の円錐体ファンによって選択されたネットを探索し、かつそのネットに遅延バッファーを挿入するスクリプトを書くことである。ときにこれは、ホールドフィックス遅延要素が発信レジスタの出力にも受信レジスタの入力にも適合しない位置に挿入されなければならないことを意味し、そこは極度に単純化されたホールドフィックスアルゴリズムがそれらを普通に配置した場所である。
【００２４】
タイミング終結の後半段階において、ブロックレベルで静的なタイミング解析を実行した実際の結果が、ブロックのモデルを生成するために使用されることができ、それはトップレベルの静的タイミング解析実行におけるオブジェクトとして用いられる。もちろん、複製されたインスタンスは、ブロック型の単一のタイミングモデルを必要とするだけであり、ブロックのタイミング解析が、親の経路に横たわるインスタンス固有のワイヤーによって複雑にされないという選択と一致している。
【００２５】
さらに、前記経路が入力ポートから受信レジスタへつながり、最後の発信レジスタから出力ポートまでつながる経路が、最小遅延及び最大遅延の両方を有することから、遅延要素の円弧の両タイプは親に使用されることによって構成されたモデルに表されることが必要である。どんな商業的な流れもこれを自動的に行うのだが、内部のスクリプトはブロックレベルのモデルにこれらの円弧を組み合わせるために書かれ、その結果、親レベルでのタイミング解析がすべてのセットアップ及びホールド確認のために同一の二重性を使用することができる。
【００２６】
（クロージャー：Closure）
意味あるマージンを付加することは、各ブロックタイプ及びトップレベルのためにほんの少数の繰り返しで収束する設計を許可している。あらゆるセットアップ及びホールド処理での両方に関して十分に相補的な確認による保守的な設計スタイルをとることによって、シリコンが回復した後にのみ発見される説明不可能なカップリングまたは騒音の問題によってひどい目にあわされるリスクというより、むしろプロセス内には成功が築かれる。ここで述べられた保守的な遅延計算の測定法は、期待してもよい上昇傾向があることを意味する。
【００２７】
最悪ケース値での遅延計算を基礎にして選択することにより、典型的な処理の広がりの殆どの部分が、最悪ケースモデルによって予測されたタイミングの上方で実際に生産されるだろう。くわえて、方程式（１）及び（２）における要因ｘによって組み入れられた特別な増加傾向にあるタイミングマージンは、テープアウト状態の”保証された”目標と、環境的な状況にわたって終了されパッケージされた部分の試験で検証された実際に到達したクロック周波数との間にある付加的な上昇傾向の要因となっている。
【００２８】
（詳細な説明）
図１は、ＩＣのレイアウトにおける従来の手順に従ったステップを示している。これらのステップは、フロアープランニング１１０、ブロック統合１２０、ブロックの初期配置１３０、ゲートサイジング（Gate-Sizing）とツリー構築１４０、配線１５０、及び寄生的抽出とタイミング解析１６０を含んでいる。
【００２９】
タイミング解析を完了する前に、階層的設計において親と子の両方の要素設計を完了する必要性が認識されるので、タイミング解析はプロセスの終わりで実行されるのが普通である。例えば、親要素は子ブロックにおけるワイヤーの負荷（ファン出力）を見ないし、親要素と子ブロック出力との間の結合は、子ブロックの内部タイミングを変化させることができる。
【００３０】
タイミング解析はタイミング問題をしばしば露呈し、そしてこれらの問題への解決のために、様々なブロックの入力または出力へバッファーを挿入することがよく行われる。このようなバッファーの挿入は、バッファー挿入、再配線、及びタイミング解析の付加的な繰り返しを導くワイヤーの密集のせいで、ワイヤーの再配線及びさらなるタイミング解析を要求するのが典型的である。それぞれの繰り返しは、より多くのバッファー挿入、ワイヤーの付加的な再配線、さらなるタイミング解析を要求する。
【００３１】
本発明に従って、タイミング解析が実行される前に、バッファーが全入力ブロック及び全出力ブロックに挿入される。図１の手順における要素と同一の要素には同一の番号を付している図２のレイアウト手順に示すように、おそらく、初期配置１３０ステップの後、且つゲートサイジングとツリー構築ステップ１４０の前に、バッファーが挿入されるのが好ましい。
【００３２】
さらに一般的には、図３に示すように、ステップ３２０で生じる階層ブロックへネットリストを分割した後であって、かつステップ３６０で生じるタイミング解析実行前であるレイアウト処理手順の位置で、ＩＣチップ設計における全入力ブロック及び全出力ブロックにバッファーが挿入される。バッファーは必要とされるかもしれないし、そうでないかもしれない。それにもかかわらず、バッファーは挿入される。結果として、全ポート上のファン入力が１に制限され、そして親要素によって、内部フィードバック経路が出力ポートに配置されたブロックから切り離される。さらに、親のタイミング解析によって、他には見られるだけのポートに対するワイヤータイミング効果をみるためにブロックのタイミング解析が強制される。
【００３３】
親要素と子ブロックにおいてワイヤーを分離することにより、タイミング解析問題がより明確に切り離されることになり、要求されるタイミングの繰り返しが僅かなものとなる。不必要なバッファーの領域コストは無視してよい。
【００３４】
集積回路の設計における改善のための別の領域は、クロック分配、特に全レジスタに対するクロック信号の分配にある。クロックのゆがみ（skew）は、発信及び受信レジスタの組でのクロック到着時刻の違いとなる。同調設計の場合、できるだけ少ないゆがみになるよう目標を設定するのが典型的である。一般に、受信レジスタが発信レジスタよりも早い到着クロック信号を有する可能性を説明するために、クロック周期は延長（性能の低下）されなければならないことから、ゆがみは悪いものとしてみなされる。しかしながら、制限された状況の下、クリティカルパスの発信レジスタが受信レジスタよりも早い到着クロックを有する場合には、ゆがみは有利なものとなり得ることが知られている。なぜならば、ゆがみは伝播のための時間が基本クロック周期よりも多い経路を与えるためである。
【００３５】
論理とレジスタの集合が一緒に結合されるとき、クロックのゆがみに関する同じ原理がより高い階層レベルで適用される。そのグループ分けは幾十万オブジェクトに対するほんの僅かなオブジェクトというレベルである。図４は２つのブロック（ＡとＢ）を示し、そこではＡからＢへ移動するデータ信号Ｃ、及びＢからＣへ移動する他のデータ信号Ｄがある。両ブロックは親レベルからのクロックを受信し、内部レジスタへそのクロックを分配する。一般性を失うことなく、Ａで受信されたクロックよりも遅いクロックをＢに与えるためにクロック分配が調整されることが示されるケースを想定されたい。この場合、２つのクロック到着時間のゆがみが、Ｄ信号の効果的な経路遅延を増加させ、かつＣ信号の効果的な経路遅延から減じる。ＣとＤが他の等しい経路長を有する場合、ゆがみは不利益となる。しかし、（ブロックの内部遅延と、ブロック間結合の遅延との両方を総計した）Ｃの経路遅延が、Ｄの経路遅延よりも長く始まる状況では、前記ゆがみは実行性能を改善する。
【００３６】
階層設計において、まずブロックが構築されタイミングが解析される。次に、遅延クロックに調整された親レベルのクロック分配が、最長経路の受信ブロックへ向かう。各ブロック組の間に追加された有益な遅延の量は、遅延クロックブロックに向かって移動する最長経路間の相違の１／２である。そして、その最長経路は前記組の他のブロックに向かって遅延クロックから離れて移動する。したがって、クロック遅延が追加された後、前記データ経路は同じ最小周期（最大チップクロック周波数）を有するだろう。
【００３７】
前述したように、別の設計技術は、１つの”正確な”値を発見することを絶望的に捜すよりも、最小値及び最大値による遅延演算と結びつけることをする。このアプローチの一例は、交差結合キャパシタンスを関連した”効果的な”キャパシタンスに変換することである。図５は、解析の下、反対または同一方向の何れかにおいて、犠牲信号として切り換わる攻撃の可能性を示している。反対方向の速い攻撃が実際には名目的な交差結合の３倍以上の効果的なキャパシタンスを有する可能性があるのだが、効果的な交差結合のキャパシタンスを名目的なキャパシタンスの２倍に設定することは、合理的な近似であり、それは切り換えの効果を乗じたキャパシタンスを無視することよりもさらに保守的でもある。同様に、同一方向の速い攻撃を、効果的な結合キャパシタンスが実際には無視されるゆっくりとした犠牲変換の効果の手助けになるようにすることは可能だが、効果的なキャパシタンス値を最小の零に設定することが合理的である。最大及び最小のキャパシタンス両方を使用するタイミング確認を相補的に完了させるときに留意すると、最小キャパシタンスをより小さくすることには実際には悲観が伴う。全交差結合キャパシタンスに対してこれらの係数を適用することの単純性と保守性は、図５からみて少しだけ悪い効果のキャパシタンス倍数を攻撃が有する可能性とともに、その多くが重なり合う切り換えを実際には有しないという現実外にバランスさせている。より正確で詳細な騒音確認ツールが最終ステップとして使用することができる。
【００３８】
他の設計技術はタイミング経路の解析に関係する。ゲートレベルで解析されるべきタイミング経路のために、正確な解析がネットを通った経路をトレースしなければならず、そのネットは、受信レジスタの制約と比較される最悪の状況を生成するために、クロックとデータラインに沿ったネットの遅延アノテーション（注釈）を拡大及び縮小する。セットアップ制約のために、最大遅延が受信レジスタへのクロック経路として使用される。ホールド制約のために、最小遅延が発信レジスタへのクロック経路として使用され、そして２つのレジスタ間のデータ経路のために、最大遅延が受信レジスタ（図６）へのクロック経路のために使用される。これは、交差結合キャパシタンスがあまり厳しくない設計の０．２５ｕｍの前では完全に行われることは稀ではあるが、いたるところで名目の遅延を使用するよりもより厳密である。しかし、単独のみならず、同時に最大及び最小を使用することが、正確で厳密なアプローチとして知られており、幾つかのツールが平坦な設計のためにそれをサポートしている。
【００３９】
モデル抽出は階層的な方法論を要求する。その抽出（図７を参照）は、全体領域の組み合わせ的な論理及びレジスタ（例えば、幾十万のゲート）を、ブロック内部の詳細をそのままにするブロックモデル（これが”ＳＴＡＭＰ”モデルと称されるように表わすための商業用フォーマット）にカプセル化し、そして、各入力ポートで開始する経路を、セットアップ及びホールド拘束をクロックポートに表現するポートからのタイミング円弧に置き換える。同様に、出力ポートに通じる各経路は、クロック→出力（ｃｌｋ→ｑ）拘束を表す円弧に置き換えられる。図７の先行技術の場合、これら円弧による経路の置き換えは、名目の（または典型的な）モデルだけを使用して行われ、それはブロックモデルが図６に示すより厳格なセットアップ及びホールド確認を行うことを試みる親実行においてインスタンスとして使用されることを許可していない。
【００４０】
本発明は、階層的な境界にわたって厳格な最大／最小確認を提供するためのブロック抽出方法を向上することに存在する困難性に取り組んでいる。それは、商業ツールによってこれまでに選択された、不正確な幾つかのアプローチで示されるような自明なものではない。これらアプローチの困難さの１つは、それが単に、遅延に関する単一のアノテーション（注釈）を持つネットを通る最大及び最小経路をトレースする問題でないことにある。図８は、ブロックのクロックポートと内部レジスタとの間の経路が、入力及び出力拘束の生成のために異なった遅延でアノテーションされたネットを有する必要があるという状況を示し、そしてそのときでさえ、両者は親レベルでホールド拘束のみを確認するために使用される。これは、ネットアノテーションのどんな単一集合も、親のセットアップ／ホールド確認のために必要とされる要求経路を同時にトレースする間は十分でないことを示している。先行技術における他の共通した誤りのステップが図９に示されている。図９には、２つの分離経路のトレースの動作が実行されていて、その１つは、最大遅延と、最小遅延にアノテーションされたネットを用いる他の遅延とを備えたアノテーションネットに基づいている。しかしながら、このアプローチは、図６によって要求されるようなデータ及びクロック経路上で分離した最大及び最小のものを組み合わせていない理由で、不十分である。
【００４１】
図１０は、正確な確認のために実際に要求される組み合わせを示している。それは、経路が２つの異なるモデルを作り出すために分離して解析される必要があって、その１つは親のセットアップ確認のために使用され、そして他の１つは親のホールド確認のために使用されることを示している。さらに、実際には、これらの経路をトレース実行するための入力として必要な異なる４つのネット遅延の組み合わせがある。
【００４２】
2005502133.tif 000004
【００４３】
商業ツールはモデル抽出においてアノテーションされた複数の値を使用することをサポートしていないので、本発明では、テーブル上部においてネット遅延の異なる４つの組み合わせを作り出し、そして図１０に示すような経路トレース実行にこれらをアノテーションするための前処理を行うのにまず必要である。前記経路トレースは、ネット遅延がどのように前処理されるかを知っておく必要はなく、それゆえにデータが名目上のキャタピタンスと異なって前処理されることを”知っている”静的なタイミングツールなしに、正確に作業する。本発明の実施では、分離した４つの経路トレース実行からの円弧を２つの分離モデルに再結合させることが必要であり、１つはセットアップ拘束（図１１を参照）を規定するために親実行で使用され、そして他の１つはホールド拘束（図１２を参照）を見つける親実行のためのものである。２つの異なるモデルの使用は、それ自身で固有なものではないが、２つの分離モデルへ異なる４つの経路トレース実行からの円弧を組み合わせることが、本発明の特徴点である。
【００４４】
トランジスタレベルのシミュレーションを実行することはメモリと実行時間の両方において高価であるという単純な理由のために、ＶＬＳＩ設計では、モデル生成が常に考慮される。個々のゲートの上どんな付加的な階層レベルも有していない平坦な設計のためでさえ、論理ゲート自身はタイミングモデルによって解析の間中表示される。先行技術が、ある動作状況に基づくモデルの相違のために提供され、その結果、異なるモデルが、最良ケースまたは最悪ケースのゲート製造の下での動作をシミュレートするために用いられる。例えば、そのような状況のモデルがそのような状況下ですべての拘束確認にとって適切であるかを考察する。さらに本発明は、親における特定の拘束確認のために必要とされる正しいモデルを得るために、確認されるべき拘束のタイプによってモデルを区別し、かつ、異なるモデルの円弧を組み合わせることによってモデルを作り出す。
【００４５】
このように、本発明は、アノテーションデータを前処理することと、２つの出力モデルに対して異なった経路トレースを実行することで円弧の組み合わせ的な前処理することの両方を含んでいる。この前処理は、アノテーションの４つの集合を生成し、そのうちの１つはすべて最小のアノテーション、そのうちの１つはすべて最大のアノテーション、そのうちの１つはデータネットに最小のアノテーションでクロックネットに最大のアノテーション、及び最後の１つはクロックネットに最小のアノテーションでデータネットに最大のアノテーションを備えている。モデルはこれら４つのアノテーション集合のそれぞれのために生成され、そして個々の経路トレース実行のために静的なタイミング解析ツールへロードされる。
【００４６】
次に、結果として生じる円弧は、拘束タイプの１つ（ホールドまたはセットアップのいずれか）のみに適当な最終モデルを生成するために再結合され、最小／最大アノテーションの所望の目標をカプセル化する。親ホールド拘束確認のために使用されるモデルのためには、図１２に示すように、クロック入力からデータ出力への遅延円弧は、すべて最小モデルから引き出され、入力とクロック間のホールド拘束は、最小−データ−最大−クロックモデルから引き出される。同様に、セットアップ拘束確認に使用されるモデルのために、図１１に示すように、クロックから出力までの遅延円弧は、すべて最大モデルから引き出され、そしてセットアップ拘束円弧は、最小−クロック−最大−データモデルから引き出される。これら２つのモデルは、それら拘束タイプに固有であるが、結果として生じる円弧は、トップレベルの経路における抽出部分の正確な表示、及び解析方法論の仮定を作り出すために正しく結合する。この結果、階層的なアプローチは、適当な最小／最大データを同時に考慮する厳密な平坦化実行として、レジスタの組のすべての組み合わせのために正確で同一な報告を作り出す。
【００４７】
拘束タイプによるモデルの相違は、タイミング解析の間、モデル特性での細かな制御を許可し、その結果が適用される技術判断のためにより強固な基礎を提供する。厳密な最小／最大確認は、タイミングの正確性を保証するために重要であり、同一ネットに関する最小値と最大値間の大きな相違を導く交差結合キャパシタンスの高比率を有する位相幾何プロセスによく関係している。
【００４８】
厳密な最小／最大確認は、データと同様なクロックツリー結合の両方を取り囲んでいる。それはセットアップ及びホールド確認が、全体のゆがみのかわりに局所的なゆがみを強調するクロックの分配ツリーの質を検査することを許可し、かつ、とにかくセットアップまたはホールド確認にどんな相違もなさない悪いゆがみを罰しないのと同様に、”有益なゆがみ”を用いる可能性を許可している。さらに、クロックツリー解析に対するこの厳格かつ安全なアプローチは、中心クロックを分配することにおいてまさにチップの切り換えキャタピタンスの１／３を時には拡張する平坦部分が短いごく普通の解決法の過剰さよりも、制限された平均的なファン出力での高いクロックツリーを用いたかなり低パワーのクロック分配スキーマを許可する。
【００４９】
また、クロックの完全性は、付加的なマージンが追加されることを必要とすることが少ないことを意味する。多くの先行アプローチの場合、階層的な境界を行き来する信号にとって十分に正確な拘束集合をプロセスが確認していないので、むしろ設計者は、正確な円弧を実際に考慮しない最大誤差の原因となるマージンを追加することによってその問題を処理していた。本発明は、必要とされるマージンを少なくさせ、これにより潜在的な設計の実行性能を増加させる。さらに、ポートそれぞれの特性のために、拘束と固有で安全なマージンとの関係を有するモデルを生成することによって、任意の固有ポートで拘束のための安全なマージンを犠牲にすることなく、階層の高いレベルですべての安全なマージンを減少させることができる。これは、より高いレベルで固定されることを要求する問題として報告される失敗のタイミング経路を少なくさせることにつながり、タイミング終了の速度を速める。
【００５０】
物理的な実行の早い段階では、（前述した線形の信号速度によって判断されるような）内部のブロックタイミングとトップレベルのタイミングとの両方のために、高い目標を設定するのが最善である。設計がテープ切れに向かって進行し、トップレベルのタイミングが、経路が定められかつタイミングされたブロックから分配された実際のタイミングモデルと置き換えられるとき、そのゴールは終局のテープ切れの目標に向かって緩和することができる。ゲートサイジングの変更、繰り返しの挿入、及びホールド要素の挿入全ては、ルーチン化された設計における”崩壊”であることから、それらは近隣のオブジェクト（セルインスタンス）またはワイヤー上でタイミング効果を有することができる。
【００５１】
固定／時間変更された繰り返しによってますます少ないネット及びオブジェクトに”接触する”ため、そのオブジェクトは探索による収束を保証している。良いゴールとは、接触するネットの数が各繰り返し用の４から８の係数によって減じられることを確認することである。各繰り返しで探索されるゴールのほんのわずかな減少が、収束を非常に手助けしている。
【００５２】
2005502133.tif 000005
【００５３】
実際には、収束はこれら３つの軸に沿って同時に進行する。より厳密な基準に基づいた問題を固定するために、早い経路が探索によって”作動”を多少行うのだが、このアプローチは、隣接したワイヤーまたはオブジェクトが衝突するとき、再作動されなければならない項目の数を少なくする。例えば、許可しうるアンテナチャージ比率の違反（金属ワイヤー領域と、これらが接続する多結晶シリコン領域の間の比率を制限することによって生まれるルールの助け）は容易に固定されるが、これらは接触経路を固定するので、その固定はセットアップまたはホールド経路をしっかりと分断することができる。よって、収束は、要求された目標に向かうすべてのゴール上でバー（bar）を同時にかつ増加的に低くすることによって改善される。
【００５４】
当業者にとって明白なように、多数の修正が本発明において行われることができる。
【図面の簡単な説明】
【００５５】
本発明に関するこれら及び他のオブジェクト、特徴及び利点は、後述する本発明の詳細な説明から乖離することなく次の図面を参照することでさらに容易になるだろう。
【図１】集積回路（ＩＣ）のレイアウトにおける従来の手順に従ったステップを示すブロック図である。
【図２】本発明に従ったＩＣのレイアウトにおけるステップを示すブロック図である。
【図３】本発明に従ったＩＣのレイアウトをさらに示すブロック図である。
【図４】クロック分配に関する本発明による改善を理解することに有用なブロック図である。
【図５】交差結合キャパシタンスを見積もることに関する本発明の改善を理解することに有用なブロック図である。
【図６】時間遅延を見積もることに関する本発明の改善を理解することに有用なブロック図である。
【図７】タイミング遅延を見積もる先行技術を示す図の一部である。
【図８】タイミング遅延を見積もることに関する実例の問題を示すブロック図である。
【図９】タイミング遅延を見積もる典型的な先行アプローチを示すブロック図の一部である。
【図１０】タイミング遅延を見積もることに関する本発明の改善を示すブロック図の一部である。
【図１１】タイミング遅延を見積もることに関する本発明のアプローチを示すブロック図である。
【図１２】タイミング遅延を見積もることに関する本発明のアプローチを示すブロック図である。
【図１３】本発明の様々な設計技術が最終製品を生産することにいかに集中するかを理解するのに有用な図である。
【図１】
2005502133.tif 000006
【図２】
2005502133.tif 000007
【図３】
2005502133.tif 000008
【図４】
2005502133.tif 000009
【図５】
2005502133.tif 000010
【図６】
2005502133.tif 000011
【図７】
2005502133.tif 000012
【図８】
2005502133.tif 000013
【図９】
2005502133.tif 000014
【図１０】
2005502133.tif 000015
【図１１】
2005502133.tif 000016
【図１２】
2005502133.tif 000017
【図１３】
2005502133.tif 000018
【国際公開パンフレット】
2005502133.tif 000019
2005502133.tif 000020
2005502133.tif 000021
2005502133.tif 000022
2005502133.tif 000023
2005502133.tif 000024
2005502133.tif 000025
2005502133.tif 000026
2005502133.tif 000027
2005502133.tif 000028
2005502133.tif 000029
2005502133.tif 000030
2005502133.tif 000031
2005502133.tif 000032
2005502133.tif 000033
2005502133.tif 000034
2005502133.tif 000035
2005502133.tif 000036
2005502133.tif 000037
2005502133.tif 000038
2005502133.tif 000039
2005502133.tif 000040
2005502133.tif 000041
2005502133.tif 000042
2005502133.tif 000043
2005502133.tif 000044
2005502133.tif 000045
2005502133.tif 000046
2005502133.tif 000047
【国際調査報告】
2005502133.tif 000048