JP4806376B2 - クロックメッシュ分析方法、装置及びシステム - Google Patents

クロックメッシュ分析方法、装置及びシステム Download PDF

Info

Publication number
JP4806376B2
JP4806376B2 JP2007150936A JP2007150936A JP4806376B2 JP 4806376 B2 JP4806376 B2 JP 4806376B2 JP 2007150936 A JP2007150936 A JP 2007150936A JP 2007150936 A JP2007150936 A JP 2007150936A JP 4806376 B2 JP4806376 B2 JP 4806376B2
Authority
JP
Japan
Prior art keywords
mesh
chip
sequential elements
clock
window location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007150936A
Other languages
English (en)
Other versions
JP2007328788A (ja
Inventor
エム レディー スボド
ムルガイ ラジーヴ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2007328788A publication Critical patent/JP2007328788A/ja
Application granted granted Critical
Publication of JP4806376B2 publication Critical patent/JP4806376B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は一般にクロックメッシュの技術分野に関連し、特にクロックメッシュを分析する改善されたスライディングウインドウ法をもたらすシステム及び方法に関連する。
集積回路の急増は、装置、部品及びアーキテクチャの多くに含まれているディジタルシステム及びマイクロプロセッサの設計上の要求を増やしている。マイクロプロセッサを含むディジタルシステム数は、着実に増え続けており、様々な製品及びシステムで使用されている。追加的なタスクを実行するため、或いはそれらのアプリケーションや環境で更に複雑な動作を実行するために、追加的な機能が集積回路に実装されるかもしれない。
マイクロプロセッサに関し、現世代の組み込みシステムは、精度、パフォーマンス及び電力消費に関して厳しい条件を有する。多くの組み込みシステムは、通信、画像処理、ビデオプロセッシング等のための複雑なアルゴリズムを使用し、それは集約的な演算処理である。メッシュ又はグリッドアーキテクチャは、クロック及びパワー/グランドのようなクリティカルグローバル信号をチップ上で分散するのに一般的である。メッシュアーキテクチャはループで生成される固有の冗長性を使用して、チップ上で空間的に分散されている信号ノード間の望まれない変動を平滑化する。これらの変動は、(フリップフロップのような)回路要素の非対称な分散性やダイのプロセス変動の範疇での、設計における非一様なスイッチング動作に起因する。パワー/グランドに関し、ネットワークの様々なノードにおける電圧変動(非一様なスイッチング動作に起因する電圧変動)を減らすことをメッシュは支援できる。
しかしながら、メッシュアーキテクチャの適用性を妨げる1つの問題は、それらを十分高精度に分析することの困難性である。その主な理由は、大きな設計の中で緻密なメッシュを正確にモデル化する必要のある回路ノード数が膨大であること、及びメッシュ構造に存在するメタルループ(サイクル)数が膨大なことである。従って、これらの問題に対処すること/最適な処理を達成する複雑な処理に対処することは、システム設計者及び部品製造業者にとってかなり重要な問題である。
本発明の課題は、メッシュアーキテクチャを十分高精度に分析できるようにすることである。
本発明の特定の実施例は、従来のクロックメッシュシステムに付随する問題及び欠点を解消又は軽減する。
一実施例では、クロックメッシュ分析のための方法が提供され、本方法は、複数のシーケンシャル要素及びクロックメッシュを有するチップの記述にアクセスするステップを含み、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定する。本方法は、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスするステップも含む。更に本方法は、前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用するステップを含む。更に、本方法は、前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決めるステップを含み、オリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有する。更に、オリジナルウインドウロケーション各々について、本方法は、前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し;前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し;前記メッシュシミュレーションモデルをシミュレーションし;前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し;且つ前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集する。
特定の実施例は1つ以上の技術的利点をもたらし、それらの1つ以上は明細書、特許請求の範囲及び図面から当業者に明確になるであろう。
本発明及びその利点の完全な理解を更に期するため、添付図面に関連する以下の説明が参照される。
図1は典型的な又は例示的なメッシュアーキテクチャシステム10の概略図であり、そのシステムは、位相ロックループ(PLL)又はルートバッファから、フリップフロップ(FF)及びラッチのような一連の素子へクロック信号をチップ上で分配するのに使用される。3つのメインコンポーネントが含まれ、それらは:1)(一様な)メッシュ、2)メッシュを駆動するグローバルバッファツリー及び3)ローカル相互接続部であり、ローカル相互接続部はFFのクロック入力をメッシュ上の最近接点に直接的に接続する。メッシュは、チップ領域全体に及ぶ一様で規則的なワイヤの格子(グリッド)であり、メッシュバッファによって駆動され、クロックをFFに伝搬する。mxnメッシュ又はグリッドは、m個の行(ロー)(水平なワイヤ)と、n個の列(カラム)(垂直なワイヤ)とを有する。メッシュのサイズはmxnである。所与のチップサイズに関し、メッシュサイズが大きくなるほど、よりメッシュのグレインはより緻密になる。メッシュノード(又はグリッドノード)は、各行が各列と接続される地点である。図1に示されるように、グローバル(H-)ツリーは、メッシュバッファと呼ばれるバッファを介してクロック信号をメッシュノードへ分配する。kxl個の一様なメッシュバッファのアレイが想定されている。図1では、k=m=4及びl=n=4である。2つの隣接するメッシュノード間のメッシュワイヤはメッシュセグメントと呼ばれ、1つのグリッド単位を表す。
教示及び説明の目的で、以下の本発明の動作をいくらか概観することは有益であろう。以下の基本的な情報は、本発明が正確に説明される基礎として理解されてもよい。そのような情報は説明目的に対してのみ真意に与えられ、従って本発明の広範な内容及びその潜在的な出願内容を限定するように解釈されるべきではない。
メッシュ又はグリッドアーキテクチャは、クロック及びパワー/グランドのようなクリティカルなグローバル信号をチップ上で分配するのに一般的である。メッシュアーキテクチャはループで生成される固有の冗長性を使用して、チップ上で空間的に分散されている信号ノード間の望まれない変動を平滑化する。これらの変動は、(フリップフロップのような)回路要素の非対称な分散性やダイのプロセス変動の範疇での、設計における非一様なスイッチング動作に起因する。パワー/グランドに関し、ネットワークの様々なノードにおける電圧変動(非一様なスイッチング動作に起因する電圧変動)を減らすことをメッシュは支援できる。
メッシュアーキテクチャの適用性を妨げる1つの問題は、それらを十分高精度に分析することの困難性である。その主な理由は、大きな設計の中で緻密なメッシュを正確にモデル化する必要のある回路ノード数が膨大であること、及びメッシュ構造に存在するメタルループ(サイクル)数が膨大なことである。従って、これらの問題に対処すること/最適な処理を達成する複雑な処理に対処することは、システム設計者及び部品製造業者にとってかなり重要な問題である。
あるクロック信号に関し、メッシュ(図1)は(例えば、ディジタル200MHzアルファ及び600MHzアルファ;IBMG5S/390,パワー4及びパワーPC;SUNSparcV9等のような)マイクロプロセッサ設計で非常に小さなスキュー(skew)を達成するよう示される。メッシュは優れたジッタ緩和特性を有する。
従来のスタティックタイミング分析(STA: Static Timing Analysis)法は、タイミング情報を入力から出力に(又はその逆に)伝送しており、前提とするグラフ構造が有向非巡回グラフ(DAG: Directed Acyclic Graph)であることを要する。これらは有向ループ(又はサイクル)を処理できない。その結果、SPICEのような回路シミュレーションは、メッシュ分析に利用可能な唯一の解法になる。回路シミュレーションはその回路構造内の回路を取り扱うことができる。しかしながらそれは法外なメモリ量や実行時間を必要としてしまう。従ってHSPICE及びHSIM(Synopsysからのもの)は双方共に工業設計用の粗いクロックメッシュでさえ分析することは困難である。
クロックメッシュの遅延時間を分析するのにスライディングウインドウ(SWS: Sliding Window Scheme)法も考えられる。SWSは関心のあるノードに近い又は遠いノードをモデル化する様々な分解能を利用する。SWSは、HSPICEでメモリ容量を超えるメッシュ及び設計インスタンスを解決するように見える。SWSの改善が望まれ、それはメッシュ分割法(MPS: Mesh Partitioning Scheme)と言及してよい。MPSはSWSよりも非常に少ないメモリしか消費せず、如何なる精度劣化も被らずに、原理的なスライディングウインドウ法よりも300倍高速になる。更にMPSは、SWSができなかった実際の設計及びメッシュインスタンスを仕上げることができる。メッシュタイミング不確定性分析に関連する出願の内容がここで概説され、MPS法はモンテカルロシミュレーション時間が(SWSでは)300時間であったのを118時間に削減する。一様な又は非一様なメッシュと共に、MPSは純粋なメッシュアーキテクチャ(図1)に、及びメッシュベースのハイブリッドアーキテクチャ(後述)に適用可能である。それは最適なクロックメッシュ設計及びポストルートメッシュ分析に使用されてもよい。最後にそれは如何なる回路シミュレータと共に使用してもよい。
本明細書は次のように組織される:従来の及び関連する処理が説明され、提案される改善法(MPS)が後に続く。MPS、オリジナルのSWS及びゴールデンSPICEシミュレーションがその後に比較される。MPSが使用可能ないくつかのデザイン及び分析のシナリオも説明される。
先ず始めにクロックネットワークモデルに関し、図2は本発明の実施例による相互接続用の1つのπ型モデルの概略を示す。各バッファ(メッシュバッファ及びツリーバッファ)は、NMOS及びPMOS用のBSIM3トランジスタを用いてモデル化される。メッシュは主にワイヤで構成されるので、正確なワイヤモデルを用意することが重要である。100μより小さなワイヤをモデル化するため、2つのキャパシタ、抵抗器及びインダクタを有するシングルπ型モデルが使用される(図2)。
図3は本発明の実施例による相互接続用の3πモデルの概略図である。より長いワイヤについて3πモデルが図3に示されるように使用される。富士通株式会社の0.11μ技術の研究によれば、本方法は4π及び5πモデルで0.5%以内の遅延精度になることが示された。これはSPICEモデルでノード数を減らすことを促す。グローバルツリー上でFFをメッシュ及びワイヤに接続するワイヤをモデル化するのに同じルールが使用される。FFのクロックピンは等価なキャパシタでモデル化される。
如何なるクロック分配法でも、最重要関心事は、各FFのクロック入力ピンでのクロック到着時間(クロック遅延又はレイテンシとも呼ばれる)を正確に計算することである。或る設計で或るパスPが仮定され、パスの開始及び終了ゲートがFs及びFeのFFであるとする。これらのFでのクロック到着時間がそれぞれas,aeであったとする。Pに許容される最大遅延dmaxは、(ae−as)−2つのFFでのクロック到着時間の差分−の関数である。
dmax ≦ ae−as+τ−tset_up (1)
ここで、τはクロックサイクルであり、tset_upはFeのセットアップ時間である。ae−asはFs及びFe間のスキューとして既知である。全てのFFの中で到着時間を比較することで、その設計の中で最悪のクロックスキューを計算することができる。それは、データパスで接続された2つのFFの到着時間の負の最大差分である。ある固定されたクロックサイクルに関し、その最悪のスキューはそのデータパスでの最大遅延を制限する。従ってそれは設計のターンアラウンドタイム(応答時間)に直接的な影響を持つ。或いは、所与のデザインに関し、そのデザインが適切に機能する最大クロック周波数に、スキューは影響を及ぼす。
グローバルツリーでのレイテンシを計算することは、比較的直接的で速いので、メッシュタイミング分析問題だけが取り組まれる。設計(デザイン)は既に用意され、FFの場所が既知であったとする。全てのメッシュバッファを駆動するのに同じクロック信号源が想定される。主要な関心事は、そのクロックソースに関して各FFでクロックの立ち上がりエッジの到着時間を正確に計算することにある。
クロックメッシュ分析の問題について多くは公表されていない。あるソリューションがもたらす方法は、クロックメッシュをツリーに分解し、メッシュ負荷を再分配するためにスムージングアルゴリズムを適用する。ツリーはレイテンシに関して分析される。しかしながら正確な結果は示されない。別の技術では、クロックメッシュが2段階で確認される。第1に、AWEベースのモデル次数低減法がそのメッシュについて実行され、メッシュ要素を簡略化する。そして簡略化された回路がSPICEを用いてシミュレートされる。この方法の精度及び効率は、現在のマッチング法の精度及び安定性に依存する。この方法は、MPSの基本概念と直交しており、MPSと共に統合可能である。つまり、MPSはある形式のモデル次数低減を既に使用しており、簡易なπモデルが短いワイヤに使用される。
他のソリューションは別のメッシュ問題(所与のクロックメッシュのサイズを決めることがクロックレイテンシを制限すること)に対処する。他の提案法は、全てのループを分解し、前提とするメッシュをツリー構造に変換する(アルゴリズム的にはツリーを取り扱う方が容易だからである。)。グリッドノードでのRC遅延は、一次ポール(first order pole)で近似される。他の提案法は、(エルモア遅延−Elmore delay−でなく)信号遅延の指標としてドミナント時間定数を利用し、サイジング問題を半定値(semi-definite)プログラミング問題に定式化する。より小さなメッシュサイズについての結果が示される。これら双方の方法が遅延の近似モデルを使用する。
最近、クロックメッシュのレイテンシ分析にスライディングウインドウ法(SWS)が提案された。SWSを考察するに、図4は本発明の実施例によるスライディングウインドウ方の概略図である。SWSでは、メッシュは2つの異なる分解能と共にモデル化される:詳細な回路モデルは、レイテンシが測定されるノードに場所的に近いメッシュ要素について使用され、簡易なモデルは測定されるノードから遠いメッシュ要素に使用される。ローカルなFF接続について簡略化がなされる。所与のメッシュサイズmxnに関し、サイズrxsの四角形のウインドウ(枠)Wを規定し、ここでr<m及びs<nである。W’を得るために或るボーダーまでWが拡張される(図4では、ボーダーは1グリッド単位である。)。
W’の左下隅がメッシュ上の地点に固定されたとすると、W’はそのメッシュのある一定の領域をカバーする(図4)。W’内でFFと最近接メッシュセグメントとの接続は、上述したように適切なπモデルで正確にモデル化される(接続の長さに依存してシングルπ又は3πモデルが使用される。)。FFのクロック入力ピンはキャパシタンスとしてモデル化される。W’の外側にあるFF及びそれらのメッシュへの接続は粗い近似でモデル化される。そのようなFFをメッシュに接続するワイヤは、等価なキャパシタンスで置換され;ワイヤ抵抗は無視される。W’外の所与のメッシュノードaに関し、aをカバーする領域は図4で単位四角形で示される。
この領域内の全てのFFのクロック入力ピンのキャパシタンス合計をCaとする。その領域はFFをメッシュに接続するワイヤの容量を有する。そしてCaはaにおける1つのキャパシタンスとしてまとめられる。W’外のメッシュセグメントでも、適切なπモデルでモデル化される。ウインドウロケーションのこのモデルに対応するSPICEファイルが生成され、シミュレートされる。内側のウインドウW内にある全てのFFのクロックレイテンシが測定される。次に、ウインドウWは水平に又は縦にスライドされ、以前の場所と重ならないようにする。再びSPICEモデルが作成され、処理される。メッシュシミュレーション全体は、複数の独立したウインドウベースのシミュレーションに分解される。つまり、デザイン中の全てのFF及びメッシュ全体をカバーするには、
Figure 0004806376
回のSPICEシミュレーションが必要になる。
SWSは分断攻略法(divide-and-conquer)である。ウインドウ外の領域を近似することは、回路モデル内のノード数を減らす。各FFを近似することは、7ノード(ワイヤが100μより長い場合)又は3ノード(それ以外の場合)を節約する。典型的な設計では、数十万(数100K)個のFFがあり、SPICEモデルサイズの低減は膨大になる。HSPICEは100K個のFFを有する65x65メッシュの計算を完了できないことが以前に示されている。それは2GBより多くのメモリが必要になるが、SWSは4台のマシンを用いて1GBメモリで1.5時間より短期間に完了できる。SWSで計算されるレイテンシは、1グリッド単位のボーダーを利用すると、完全なメッシュのSPICEシミュレーションで計算されるレイテンシの1%に収まるのが通常的である。如何なるボーダーも使用しなかった場合(即ち、0個のグリッドユニットのボーダーの場合)、正確な結果を常にはもたらさず;30%に至る誤差が見受けられたことも示されている。ボーダーを1グリッドを越えて増やしても、精度は十分に改善されない。しかしながら、実行時間は相当に増えてしまう。要するに、経験的には、1グリッド単位のボーダーが最適であるように見出された。更に、ウインドウサイズは精度にほとんど影響しないように見受けられる。しかしながら、より小さなウインドウサイズはより小さなモデルを意味し、従って大きなデザインをメモリに合わせやすくなる。しかしながら、より小さなウインドウはより多くのシミュレーションを含むことになる。
図5は本発明の実施例によるMPSベースのクロックメッシュ分析法を示す概略ローチャートである。SWSで基礎とする基本概念は、信号源(即ち、メッシュバッファ)各々に関するものであり、クロックメッシュはカスケード接続されたローパスRCフィルタと考えることができる。このRCフィルタに関し、ランプ入力信号の減衰は、距離の指数関数に比例する。この指数減衰に起因して、2つのノードが場所的に離れていたならば、それらは互いに非常に小さな電気的な影響しか及ぼさない。この測定はSWSを用いてなされる。ウインドウW内のフリップフロップのレイテンシを測定するため、ウインドウから遠い回路ノードは近似的にモデル化される。なぜなら、それらはW内のノードに大きな電気的な影響を及ぼさないからである。W内のノードは正確にモデル化される。この方法はほとんどの時間にわたって非常に正確なレイテンシの値をもたらす。しかしながら30%程度に大きな誤差が生じるかもしれない。この誤差を減らすため、Wのボーダーと呼ばれるW外の小さな領域も正確にモデル化される。このボーダーを備えたWをW’と呼ぶことにする。
SWSが探索しなかった1つの可能性(見逃した理由)は、ボーダーを使用するがW’以外の回路を完全に無視したことである。提案される新方法は、メッシュ分割法(MPS)と呼ばれる。MPSではウインドウ及びそのボーダーはSWSとまさに同様に生成される。所与のウインドウW’に関し、W’領域内のMPS回路モデルはSWSにおけるものと同じである。しかしながら、MPSでは、W’以外の領域は完全に抽象化される。言い換えれば、MPSシミュレーションモデルは、以下の如何なるものも含まない:
1.W’以外のメッシュセグメント
2.W’外のFF 及び
3.外部のFFとメッシュとの接続。
上述したようにSWSでは、W’以外のメッシュセグメントはR,L及びCと共にモデル化され(詳細なモデリング)、W’外のFF及びその接続は、最近接メッシュノードでのキャパシタンスで近似される。
図5には、MPSのフロー全体が示されている。あるチップ仕様において(例えば、チップ寸法)、FFの場所、技術情報(テクノロジ情報)、メッシュバッファサイズ及び場所、メッシュパラメータ(例えば、メッシュサイズ、ワイヤ幅等)を読み込み、各FFでのクロック到着時間を計算する。所与のウインドウサイズで、全てのウインドウロケーションはクロックメッシュ全体をカバーするように決定される。各ウインドウロケーションについて、そのウインドウはボーダーによって拡張され、メッシュシミュレーションモデルが生成され、SPICEがそのモデルについて実行され、ウインドウのコアの中のFFのレイテンシを測定する。全てのシミュレーションが完了した後に、全てのシミュレーションによるFFのレイテンシが収集される。MPS及びSWS間の唯一の差異は、メッシュシミュレーションモデルが生成されるボックスに現れる。SWSでは、ウインドウ外の領域について近似的なモデルが生成される。
モデルサイズが小さいことに起因して、MPSはSWSより優れた次の2つの利点を有する。
1.MPSはSWSより高速である。なぜなら、シミュレーションモデルはSWSより厳密には小さいからである。SPICEシミュレーション時間は、モデルサイズの単調関数になる。
2.MPSのメモリ条件の方がより小さい。従って、大きな設計及びメッシュインスタンスについての演算が完了しやすくなる。
SWS及びゴールデンシミュレーションを上回るMPSの優位性が、一例と共に示される。65×65のメッシュ及び100K個のFFを含む設計が想定され、FFはチップ上に一様に分散しているものとする。更に、全てのワイヤセグメント及びメッシュセグメントは3πモデルでモデル化されることが仮定される。Ngをゴールデンモデルのノード数とし、Ngは、全てのFF及びそのクロックピンワイヤが正確にモデル化される場合に登場する数である。各メッシュセグメントは3πモデルでモデル化され、6つのノードを有する(図3)。メッシュセグメント数は、64×65×2=8320 である。従ってメッシュ上のノード数は約50Kである。各FFは7つのノードに寄与し:ノードの1つはFFに、1つはメッシュに掛かる地点に、5つはπモデルの内部ノードに関連する。従ってFFは約700K個のノードに寄与する。そしてNgは約750Kである。
SWSでは、17×17のサイズのウインドウW’を用いることで、所与のW’の場所について、SPICEモデル中のノード数をNW’とする。上述したように、メッシュセグメントは50K個のノードをこのモデルに与える。しかしながら、全FFの約1/16のみがW’内にある。従って7K個のFFだけが正確にモデル化される。それらは49K個のノードに寄与する。W’外のFFは付加的な如何なるノードにも寄与しない。なぜなら、それらは最近接メッシュノードにまとめられているからである。そしてNW’は約99Kになる。こうしてSWSを用いることでモデルサイズを7.5倍減らすことができる。
MPSでは、W’に対応する17×16×2=544個のメッシュセグメントがモデル化され、約3K個のノードになる。ウインドウ内の7K個のFFは、全部で49K個のノードと共にSWSでモデル化される。これはMPSで総数52K個のノードになり、SWSよりも1.9倍ノード数を減らし、ゴールデンモデルよりも14.4倍削減する。
ゴールデンSPICEの実行時間と比べてSWS及びMPSの実行時間を推定する。SPICEの実行時間はO(N1.5)のオーダーであるとする。ノード数は7.5倍少ないので、各ウインドウシミュレーションは、ゴールデンモデルシミュレーションよりも約7.51.5=20.5倍速くなる。メッシュ全体を網羅するには全部で16回のシミュレーションが必要になる。従って、1つのマシンでの一連の実行について全体で1.3倍のスピードアップを期待でき、並列的な実行については20.5倍のスピードアップを期待できる(16個のマシンが利用可能であるとする。)。MPSに関しては、SWSよりも約1.91.5=2.6倍速くなる。
以後のセクションでは、MPSの精度及び実行時間のSWSとの比較結果が示される。提案されるクロックメッシュ分析ツールは或るアーキテクチャを提示し、そのアーキテクチャは或るチップ仕様(例えば、チップ寸法、FFの場所)で技術情報、メッシュバッファサイズ及びロケーション、並びにメッシュパラメータ(例えば、メッシュサイズ、ワイヤ幅等)を読み込む。そしてSPICEトランジェントシミュレーションを用いて、そのクロックソースに関するFFのクロックレイテンシを計算する(クロックソースは全てのメッシュバッファの入力に接続されている。)。比較は提案されるスライディングウインドウ法に基づく。目下の例ではウインドウサイズが入力として必要である。各ウインドウロケーションについて、そのツールは、ウインドウ内部の及び外部のフリップフロップ、ローカルワイヤ、メッシュについてのSPICEモデルを生成する。ユニックス(UNIX(登録商標))シェルスクリプトは、スライディングウインドウの生成、シミュレーション、及びシミュレーション出力からのクロックレイテンシの抽出を管理するように書かれている。
以下の実験では、SWS及びMPS間で精度及び実行時間を比較した。全ての実験は、0.11μ工業規格に基づいて行われた。チップサイズ、FF数、メッシュサイズ及びウインドウサイズの様々な値と共に多くの実験が行われた。FFは一様な分布でチップ上にランダムに置かれた。メッシュバッファはグリッドポイント毎に使用された。以下のラベリング法が実験で使用された。例えば、5mmx5mmのチップサイズ、10K個のFF数及び16x16のメッシュサイズの実験は、c5/f10K/m16のラベルが付される。
精度の観点からは、異なるFF数及びメッシュサイズを有する回路が使用された。回路c5x10/f16.7K/m64が実際のチップである。各メッシュサイズに関し、異なるウインドウサイズがSWS及びMPSで使用された。ゴールデン(フラット)シミュレーションによるレイテンシが、各FFに対するリファレンスレイテンシとして使用される。或るFFでSWS及びMPSにより生じるレイテンシ(共に、1グリッド単位のボーダーを利用する)が、対応するリファレンスレイテンシと比較され、誤差の割合が計算された。全てのFFの誤差の平均値及び最大値が算出され、テーブル1(表1)のように報告された。MPSは非常に正確であること、最大誤差は常に1.4%未満であること、平均誤差はせいぜい0.3%にすぎないことが分かる。誤差数はSWSと同様である。
Figure 0004806376
表1:ゴールデンシミュレーションに対するMPS&SWSの精度
|W|はウインドウサイズを示す。|W|=2は2x2ウインドウを意味する。
図6はボーダーサイズの関数としてMPSの最大エラーを示す本発明の実施例による概略図である。最大及び平均誤差(ps)に関する概念を与えるため、最大ゴールデンFFレイテンシをテーブル中に示している。導かれる1つの推論は、ほとんどの実験値に関し、MPSによる最大レイテンシ誤差は4psより少ないことである。1つ又は2つの場合に、それは9psになっている。
高精度なMPSから導かれる1つの結論は、ウインドウボーダーW’−WはW以外のほとんど全てのノードをモデル化するのに十分に見えることであり、ウインドウW’のコアWに影響を及ぼし得るものである。W内のFFの遅延に対する(W’外のノードの)影響は非常に小さい。
ボーダー長がMPS精度にどのように影響するかを測定する実験も行われた。粗いメッシュ(5mm×5mmのチップで16×16のメッシュ)では、ボーダーが増やされるにつれて最大誤差は減少する。しかしながら更に緻密なメッシュ(5mm×5mmのチップで64×64のメッシュ)では、ボーダーが1グリッドユニットを越えて増やされても最大誤差は同じままである。これは図6に示されている。
更に、SWSと同様に、MPS精度はウインドウサイズの関数ではない。こうして我々はメモリ又はCPUのような他の対象について最適なウインドウサイズを決定することができる。
Figure 0004806376
表2:シリアル及びパラレルな演算に関するSWSを上回るMPSの高速化
表2は表1に示される実験について、MPSとSWSとのCPU時間の比較結果を示す。MPS及びSWSのシリアル演算及びパラレル演算双方についての結果が示されている。シリアル演算では、(様々なウインドウロケーションに応じて)様々なシミュレーションが或るデザインインスタンスについて1つのプロセッサで順番に実行され、全てのシミュレーションについての総CPU時間が測定された。パラレル演算では、各シミュレーションが様々なプロセッサで実行され、全てのシミュレーションの中で最大のCPU時間が記録された。
MPSは、シリアルシミュレーションの場合307倍に至るほど速くでき、パラレルシミュレーションの場合278倍に至るほど速くできることが分かる。より小さなウインドウサイズの場合、SWSに対するMPSのスピードアップ率は更に高くなる。その理由は、小さなウインドウ外の領域がそのモデルよりも非常に大きくなるからである。MPSは外部領域を完全に抽象化するので、SWSよりも非常に小さなモデルを生成し、従って非常に顕著なスピードアップをもたらす。大きなウインドウサイズの場合、3乃至10倍のスピードアップが観測された。
上述したように、MPSはSWSより少ないメモリを使用する。このため、MPSは現実のスイッチチップデザインについての演算を完了できるであろう。その演算は、7.6M個のインスタンス、287.4K個のFFを有し、64×64及び128×128の2種類のメッシュを利用する演算であり、SWSならば何れのメッシュサイズについてもメモリ不足になってしまう。この実験では、SWS及びMPSは1GBメインメモリを有する2.4GHzリナックスマシンで実行された。
以前は、SWSの並列演算について小さなウインドウサイズが最適であった。なぜなら、より小さなウインドウサイズのシミュレーションモデルはより小規模であり、従ってより高速に実行できるからである。一方、大きなウインドウは、より短い総シミュレーション時間をもたらす。従って、SWSモデルがマシンメモリに適合する限り、これらはシーケンシャルシミュレーションに好ましい。
MPSのCPU時間がウインドウサイズの関数としてプロットされた。図7,8,9には、C5/f1K/m16,c5/f10K/m16及びc5/f10K/m64の回路についてのプロットが示されている。興味深いことに、全ての回路について、シリアル及びパラレル演算双方のCPU時間はウインドウサイズと共に増えている。より小さなウインドウはより小さなモデルサイズを有し、従ってマシンメモリに適合しやすいので、MPSの場合、最適な方法は可能な最少のウインドウサイズを選択することである。
図7は本発明の実施例によるc5/f1K/m16でのMPSのCPU時間をウインドウサイズの関数として示す。図8は本発明の実施例によるc5/f10K/m16でのMPSのCPU時間をウインドウサイズの関数として示す。図9は本発明の実施例によるc5/f10K/m64でのMPSのCPU時間をウインドウサイズの関数として示す。
MPS及びクロックメッシュ不確定性分析のアプリケーションでは、クロックサイクルはτであることを仮定する。実際には、チップ上の所与のフリップフロップでは、2つの連続的なクロックの立ち上がり(又は立ち下がり)エッジは、τ時間単位離れていないかもしれない。更に、2つのチップ上で対応する同じフリップフロップに関し、クロックソースからのクロックレイテンシは異なるかもしれない。クロックタイミング不確定性は、クロックエッジタイミングの、期待される値からの逸脱を示す。不確定性は(1)のas及びaeに影響を及ぼし、従ってdmax又はτに影響を及ぼし、上述したとおりである。クロックタイミングの不確定性は、供給電源ノイズ、温度変動、ダイ内部及びダイ間のプロセス変動(例えば、チャネル長、酸化膜厚、ドーパント濃度、相互接続幅及び相互接続膜厚等の変動)、クロストークノイズ及びPLLジッタ等に起因するかもしれない。
Figure 0004806376
表3:様々なパラメータについての3σ変動
スケーリングテクノロジと共に、パラメータ変動の大きさ及び変動に対するクロックレイテンシの感度は増えつつある。所与のメッシュベースのクロックアーキテクチャの下で、パラメータ変動が存在する場合のタイミング不確定性を分析することが重要になってくる。クロックネットワークが或るツリーであった場合、不確定性分析は、ゲートレベルの静的な統計的なタイミング分析で実行可能である。しかしながらそのようなアプローチは、メッシュベースのクロックネットワークには直接的に適用できず、それはメッシュ中に存在するメタルループ(サイクル)に起因する。1つの提案方法では、SWSを用いて次のようにしてこの問題を解決しようとしていた。変動パラメータがクロックネットワーク上のワイヤ及びバッファ各々に関連付けられる。SWSの各ウインドウW’について、メッシュのSPICEモデルが作成され、モンテカルロシミュレーション(MCS)が実行される。MCSの各実行段階で、クロックネットワークの各コンポーネントの変動パラメータ値が、それら各自の分布状況から決定され、W’のコア内(即ち、W’−W)にあるフリップフロップFFi各々のレイテンシDiが計算される。全ての演算が完了した後に、遅延Diの分布がそのようなFFi各々に利用可能になる。不確定性U(Di)=3σ(Di)がこの分布から計算される。最後に、U(Di)が全てのウインドウW’から収集され、そのデザインにおける全てのFFでの不確定性をもたらす。
上述の方法論で、SWSをMPSで単に置換することで、メッシュ不確定性分析は高速化可能である。クロックバッファのVdd値、バッファ及びワイヤ温度、トランジスタチャネル長及び閾電圧、並びに相互接続抵抗及び容量に関する変動が使用される。変動値は表3に示されている。表4は、メッシュ不確定性分析のスピードアップの結果を示し、4×4及び8×8のウインドウサイズでc5/f1K/m16についてSWS及びMPSベース400モンテカルロシミュレーションを実行している。MPSは2.5及び2.0倍SWSを上回るスピードアップをもたらす。意味深いことに、シリアル演算の総SWS実行時間は、第1の行(ロー)について300時間であったが、MPSでのそれは118時間でしかなかった。従って2.5倍のスピードアップは大きな恩恵である。MPSを利用すると、平均クロックレイテンシは647psであり、最大FF不確定性は33psであった。これらの値はWSWベースの不確定性分析で得られたものにほぼ一致している。
Figure 0004806376
表4:不確定性分析に関するMPSのSWSを上回るスピードアップ
不確定性分析の間、レイテンシ分析は複数回実行され、その都度異なるパラメータ値が使用される。従ってSWSを上回るMPSの期待されるスピードアップは、レイテンシ分析(表2)で得られたものと同様になるかもしれない。しかしながら、表4で見受けられるスピードアップは、それより少ない。例えば(表2によれば)、c5/f1K/m16のウインドウサイズ4に関し、レイテンシスピードアップは10.87であり、c5/f1K/m16のウインドウサイズ8に関し、レイテンシスピードアップは3.48である。この現象は不確定性分析での追加的なステップに起因し、その追加的なステップは、SWS及びMPS双方について実行される必要があり、例えば、ガウシアン分布を用いてパラメータ変動を設定し、その分布に関して各MCの実行でパラメータ値を計算し、クロストークノイズ源を導入する。不確定性分析に関する多くの実行時間の下で、より小さなメッシュ及びデザインインスタンスが検査される。これらの例に関し、追加的なファクタの実行時間への影響はかなり大きくなる。しかしながら、大規模なテストケースでは、不確定性分析のMPS/SWSスピードアップは、レイテンシ分析のアプローチでのものが期待される。
MPSはメッシュベースの如何なるクロックアーキテクチャに適用されてもよい。これまで我々は純粋なメッシュアーキテクチャ(図1)への適用を議論してきた。しかしながら、ローカルツリー(図10)及び複数のローカルメッシュ(図11)を有するメッシュのような、メッシュベースのハイブリッドアーキテクチャにも本発明は容易に適用可能である。
図10は本発明の実施例によるローカルツリーを有するメッシュを示す概略図である。図11は本発明の実施例による複数のメッシュを有するクロックアーキテクチャを示す概略図である。
非一様なメッシュを考察するに、上述の議論では、一様なメッシュが仮定され、X(Y)方向の全てのメッシュセグメントが同じ長さ及び幅を有していた。より小さなスキューを得るには、FF密度が高い領域は、より微細なメッシュを備えるべきことをシミュレーション結果は示す。まばらにしかFFが分布してない地域では、粗いメッシュを備えること(極端な場合は、メッシュを無くすこと)は、スキューに影響を及ぼさず、かなりの領域及びパワーを節約できる。更に、あるチップ領域が存在し、そのチップ領域では、メッシュセグメントはRAM及び第三者IP等のようなルーティング障害物に起因してルーティングできない。従って非一様なクロックメッシュは、(領域及びパワーを節約するために)切に望まれるだけでなく、そのような場合に不可避でさえある。
図12のホール(穴)と共にメッシュを含むいくつかの非一様なメッシュが設計されてもよい。図12は本発明の実施例による非一様なメッシュ例を示す概略図である。我々はMPSを適用し、ゴールデンシミュレーションと比較した。ゴールデンフラットシミュレーションに関する精度は、表1に示された数と同様になることが見出された。
最適なクロックメッシュデザインに関し、MPSはクロックメッシュ計画段階で最適なメッシュを決定するのに使用可能であり、その最適なメッシュはタイミング(レイテンシ、最大スキュー)、パワー及び領域の制約に合うものである。これはメッシュが実際にルーティングされる前である。メッシュパラメータ例は、メッシュサイズ(粒度)、メッシュが一様であるか否か、ワイヤ幅及びメッシュバッファサイズ等である。計画段階では、ワイヤセグメントは、シングルπのような最も簡易なモデルでモデル化可能である。設計者は先ずメッシュパラメータを選択し、タイミング、領域及びパワーを確認することで、メッシュの設計を進めることができる。タイミング値が希望のスキューマージンに合わなかった場合、より繊細なメッシュが速やかに合成され、シミュレートされる。このような反復計算が、設計ゴールに合うまで実行される。以前は、レイテンシ、最大スキュー及び電力消費が実際のチップの様々なメッシュサイズについて比較されていた。
パワーメッシュ設計及びセル配置後にクロックネットワークを設計することに関し、パワー/グランドメッシュが設計され、セル及びマクロが配置された後に、クロックネットワークが設計されるのが通常的である。そして、ルーティング障害物は既知であり、クロックメッシュルーティングは(関連するメタルレイヤで)それらを避けなければならない。これはホール(穴)を導入するかもしれない。クロックメッシュが最終的にルーティングされると、最終的なクロックメッシュ分析を行うためにMPSが使用可能になる。
大規模な工業設計のクロックメッシュを分析することは、困難な問題であった。ここで説明されたことは、MPSと呼ばれる改善されたスライディングウインドウ法であり、クロックメッシュのレイテンシを分析するためのものである。MPSはSWSの全ての利点を承継し、例えば大規模なメッシュを高精度にモデル化することができる。MPSはメモリを非常に少なくしか消費しない点、及び原理的なSWS法よりも300倍に至るほど高速である等の点でSWSより優れている。我々は、実際のデザイン及びメッシュインスタンスについて、SWSでは不可能であった演算を完了できることを示した。我々はMPSの適用可能ないくつものデザイン及び分析のシナリオも提示した。例えば、クロックメッシュ不確定性分析(モンテカルロベースのシミュレーション時間にSWSでは300時間かかっていたのをMPSは120時間に削減できる。)、メッシュベースのハイブリッドアーキテクチャ、非一様なメッシュ、最適なクロックメッシュ設計並びにポストパワーメッシュ及びセル配置等である。
上述の図示及び説明されたステップのいくつかは、適切ならば変更又は省略されてもよく、追加的なステップがフローチャートに付加されてもよい。これらの変更は、特定のディジタルアーキテクチャ、特定のインターフェース配置及び関連要素のコンフィギュレーションに基づいてもよく、本発明の範囲又は教示範囲から逸脱するものではない。図面及び表で説明されたような提案のクロックメッシュソリューションにおける要素の相互作用及び動作は、潜在的に可能性のあるアプリケーションについての単なる一例に過ぎない。他の多くのアプリケーションも等しく有利かもしれないし、特定のディジタルシステム又はマイクロプロッサのニーズに基づいて選択されてよい。
以上本発明が特定の実施例に関連して詳細に説明されてきたが、説明されたソリューションは、そのようなクロックメッシュツールの要請のある如何なる状況に拡張されてもよい。変更、置換、変形、代替及び修正の他の多くが当業者に確認されるであろう。本発明は、そのような変更、置換、変形、代替及び修正の全てを添付の特許請求の範囲内に包含することが意図される。
(関連出願)
本願は35U.S.C§119の下で西暦2006年6月に出願された仮出願番号60/804,041号に関連する。
以下、本発明により教示される手段を例示的に列挙する。
(付記1)
クロックメッシュ分析のための方法であって、
複数のシーケンシャル要素及びクロックメッシュを有するチップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスするステップであって、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定するステップと、
前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用するステップと、
前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決めるステップであって、オリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有するステップと、
オリジナルウインドウロケーション各々について、
前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し、
前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し、
前記メッシュシミュレーションモデルをシミュレーションし、
前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し、且つ
前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集するステップと、
を有する方法。
(付記2)
前記オリジナルウインドウロケーションの2つ以上が、互いに並列的に処理される付記1記載の方法。
(付記3)
前記クロックメッシュのアーキテクチャが、1つのメッシュ又は複数のメッシュを有する付記1記載の方法。
(付記4)
前記クロックメッシュのアーキテクチャが、グローバルツリーを有する付記1記載の方法。
(付記5)
前記クロックメッシュのアーキテクチャが、前記チップ上の各シーケンシャル要素への又は複数のローカルツリーへの直接的な接続を有するローカルな区域を有する付記1記載の方法。
(付記6)
前記より大きなウインドウロケーション中の前記メッシュシミュレーションモデルが、前記より大きなウインドウロケーション中のシーケンシャル要素各々への接続の明示的な表現を有し、該明示的な表現は正確な相互接続モデルを含む付記1記載の方法。
(付記7)
1つ以上の有形媒体にエンコードされる論理装置であって、
複数のシーケンシャル要素及びクロックメッシュを有するチップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスするステップであって、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定するステップと、
前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用するステップと、
前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決めるステップであって、オリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有するステップと、
オリジナルウインドウロケーション各々について、
前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し、
前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し、
前記メッシュシミュレーションモデルをシミュレーションし、
前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し、且つ
前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集するステップと、
をコンピュータに実行させる論理装置。
(付記8)
前記オリジナルウインドウロケーションの2つ以上が、互いに並列的に処理される付記7記載の論理装置。
(付記9)
前記クロックメッシュのアーキテクチャが、1つのメッシュ又は複数のメッシュを有する付記7記載の論理装置。
(付記10)
前記クロックメッシュのアーキテクチャが、グローバルツリーを有する付記7記載の論理装置。
(付記11)
前記クロックメッシュのアーキテクチャが、前記チップ上の各シーケンシャル要素への又は複数のローカルツリーへの直接的な接続を有するローカルな区域を有する付記7記載の論理装置。
(付記12)
前記より大きなウインドウロケーション中の前記メッシュシミュレーションモデルが、前記より大きなウインドウロケーション中のシーケンシャル要素各々への接続の明示的な表現を有し、該明示的な表現は正確な相互接続モデルを含む付記7記載の論理装置。
(付記13)
1つ以上のプロセッサと、
1つ以上の命令を含む前記プロセッサに結合されたメモリと、
を有する装置であって、前記命令は、
複数のシーケンシャル要素及びクロックメッシュを有するチップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスするステップであって、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定するステップと、
前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用するステップと、
前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決めるステップであって、オリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有するステップと、
オリジナルウインドウロケーション各々について、
前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し、
前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し、
前記メッシュシミュレーションモデルをシミュレーションし、
前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し、且つ
前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集するステップと、
を前記1つ以上のプロセッサに実行させる装置。
(付記14)
前記オリジナルウインドウロケーションの2つ以上が、互いに並列的に処理される付記13記載の装置。
(付記15)
前記クロックメッシュのアーキテクチャが、1つのメッシュ又は複数のメッシュを有する付記13記載の装置。
(付記16)
前記クロックメッシュのアーキテクチャが、グローバルツリーを有する付記13記載の装置。
(付記17)
前記クロックメッシュのアーキテクチャが、前記チップ上の各シーケンシャル要素への又は複数のローカルツリーへの直接的な接続を有するローカルな区域を有する付記13記載の装置。
(付記18)
前記より大きなウインドウロケーション中の前記メッシュシミュレーションモデルが、前記より大きなウインドウロケーション中のシーケンシャル要素各々への接続の明示的な表現を有し、該明示的な表現は正確な相互接続モデルを含む付記13記載の装置。
(付記19)
複数のシーケンシャル要素及びクロックメッシュを有するチップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスする手段であって、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定する手段と、
前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用する手段と、
前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決める手段であって、オリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有する手段と、
オリジナルウインドウロケーション各々について、
前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し、
前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し、
前記メッシュシミュレーションモデルをシミュレーションし、
前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し、且つ
前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集する手段と、
を有するシステム。
(付記20)
前記オリジナルウインドウロケーションの2つ以上が、互いに並列的に処理される付記19記載のシステム。
位相ロックループ(PLL)又はルートバッファからシーケンス要素へクロック信号を分配するのに使用される本発明の実施例によるメッシュアーキテクチャシステムを例示する図である。 本発明の実施例による相互接続の1つのπ型モデルの概略図である。 本発明の実施例による相互接続の3つのπ型モデルの概略図である。 本発明の実施例によるスライディングウインドウ法の概略図である。 本発明の実施例によるMPSベースのクロックメッシュ分析法を示すフローチャートである。 ボーダーサイズの関数としてMPSの最大エラーを示す本発明の実施例による概略図である。 c5/f1K/m16でのMPSのCPU時間をウインドウサイズの関数として示す本発明の実施例による概略図である。 c5/f10K/m16でのMPSのCPU時間をウインドウサイズの関数として示す本発明の実施例による概略図である。 c5/f10K/m64でのMPSのCPU時間をウインドウサイズの関数として示す本発明の実施例による概略図である。 本発明の実施例によるローカルツリーと共にメッシュを示す図である。 本発明の実施例による複数のメッシュを有するクロックアーキテクチャを示す概略図である。 本発明の実施例による非一様なメッシュ例を示す概略図である。
符号の説明
10 メッシュアーキテクチャシステム
W ウインドウ
W’ 拡張されたウインドウ

Claims (8)

  1. コンピュータが実行するクロックメッシュの分析方法であって、
    前記コンピュータが、
    複数のシーケンシャル要素及びクロックメッシュを有するチップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスするステップであって、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定するステップと、
    前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用するステップであって
    前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決め、オリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有するステップと、
    前記オリジナルウインドウロケーション各々について、
    前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し、
    前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し、
    前記メッシュシミュレーションモデルをシミュレーションし、
    前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し、且つ
    前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集するステップと、
    実行する分析方法
  2. 1つ以上の有形媒体にエンコードされる分析プログラムであって、コンピュータに、
    複数のシーケンシャル要素及びクロックメッシュを有するチップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスするステップであって、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定するステップと、
    前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用するステップであって、前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決め、オリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有するステップと、
    前記オリジナルウインドウロケーション各々について、
    前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し、
    前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し、
    前記メッシュシミュレーションモデルをシミュレーションし、
    前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し、且つ
    前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集するステップと、
    実行させる分析プログラム
  3. 1つ以上のプロセッサと、
    1つ以上の命令を含む前記プロセッサに結合されたメモリと、
    を有する装置であって、前記命令は、
    複数のシーケンシャル要素及びクロックメッシュを有するチップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスするステップであって、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定するステップと、
    前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用するステップであって、前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決めオリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有するステップと、
    前記オリジナルウインドウロケーション各々について、
    前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し、
    前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し、
    前記メッシュシミュレーションモデルをシミュレーションし、
    前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し、且つ
    前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集するステップと、
    を前記1つ以上のプロセッサに実行させる装置。
  4. 前記オリジナルウインドウロケーションの2つ以上が、互いに並列的に処理される請求項3記載の装置。
  5. 前記クロックメッシュのアーキテクチャが、1つのメッシュ又は複数のメッシュを有する請求項3記載の装置。
  6. 前記クロックメッシュのアーキテクチャが、グローバルツリーを有する請求項3記載の装置。
  7. 前記クロックメッシュのアーキテクチャが、前記チップ上の各シーケンシャル要素への又は複数のローカルツリーへの直接的な接続を有するローカルな区域を有する請求項3記載の装置。
  8. コンピュータが実行するクロックメッシュの分析システムであって、
    前記コンピュータが、複数のシーケンシャル要素及びクロックメッシュを有するチップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとにアクセスする手段であって、前記記述は、前記シーケンシャル要素を識別し、前記チップ上の前記シーケンシャル要素の位置を示し、前記チップ上の前記シーケンシャル要素間の相互接続を特定し、前記チップのレイアウトを特定する手段と、
    前記コンピュータが、前記チップの記述と、前記シーケンシャル要素及び相互接続をモデル化するための情報と、前記クロックメッシュの一群のパラメータとを利用する手段であって、前記クロックメッシュをカバーする複数のオリジナルウインドウロケーションを決、オリジナルウインドウロケーションの各々は前記チップ上の1つ以上のシーケンシャル要素を有する手段と、
    前記コンピュータが、前記オリジナルウインドウロケーション各々について、
    前記オリジナルウインドウロケーションを1つ以上の方向に拡張し、より大きなウインドウロケーションを生成し、
    前記より大きなウインドウロケーションの中でメッシュシミュレーションモデルを生成し、
    前記メッシュシミュレーションモデルをシミュレーションし、
    前記メッシュシミュレーションモデルのシミュレーションに基づいて、前記オリジナルウインドウロケーション中の前記シーケンシャル要素のクロックタイミングを測定し、且つ
    前記オリジナルウインドウロケーション中の前記シーケンシャル要素について前記測定されたクロックタイミングに基づいて、前記チップ上の前記シーケンシャル要素全てのタイミング情報を収集する手段と、
    を有する分析システム。
JP2007150936A 2006-06-06 2007-06-06 クロックメッシュ分析方法、装置及びシステム Expired - Fee Related JP4806376B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US80404106P 2006-06-06 2006-06-06
US60/804,041 2006-06-06
US11/754,586 2007-05-29
US11/754,586 US7802215B2 (en) 2006-06-06 2007-05-29 System and method for providing an improved sliding window scheme for clock mesh analysis

Publications (2)

Publication Number Publication Date
JP2007328788A JP2007328788A (ja) 2007-12-20
JP4806376B2 true JP4806376B2 (ja) 2011-11-02

Family

ID=38791860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007150936A Expired - Fee Related JP4806376B2 (ja) 2006-06-06 2007-06-06 クロックメッシュ分析方法、装置及びシステム

Country Status (2)

Country Link
US (1) US7802215B2 (ja)
JP (1) JP4806376B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930675B2 (en) * 2007-12-26 2011-04-19 Cadence Design Systems, Inc. Method and system for implementing timing analysis and optimization of an electronic design based upon extended regions of analysis
US7992114B1 (en) * 2008-08-19 2011-08-02 Magma Design Automation, Inc. Timing analysis using statistical on-chip variation
JP5444985B2 (ja) * 2009-09-16 2014-03-19 日本電気株式会社 情報処理装置
JP5512227B2 (ja) * 2009-10-29 2014-06-04 ルネサスエレクトロニクス株式会社 タイミング解析装置、タイミング解析方法、及びタイミング解析プログラム
CN102169515B (zh) * 2010-02-26 2014-04-16 国际商业机器公司 一种专用集成电路中时钟树延迟时间的估计方法和系统
GB2484295A (en) * 2010-10-05 2012-04-11 St Microelectronics Ltd Circuit simulation
US9141740B2 (en) 2011-03-31 2015-09-22 Cadence Design Systems, Inc. Methods, systems, and articles of manufacture for implementing full-chip optimization with reduced physical design data
US8707228B1 (en) 2011-04-29 2014-04-22 Cadence Design Systems, Inc. Method and system for implementing hierarchical prototyping of electronic designs
US8719743B1 (en) * 2011-04-29 2014-05-06 Cadence Design Systems, Inc. Method and system for implementing clock tree prototyping
US9280628B2 (en) 2011-08-22 2016-03-08 Fujitsu Limited System and method for clock network meta-synthesis
US8566771B1 (en) 2012-09-20 2013-10-22 International Business Machines Corporation Automation of interconnect and routing customization
US9171112B2 (en) 2012-12-07 2015-10-27 Synopsys, Inc. Semiconductor hold time fixing
US9026978B1 (en) 2013-10-24 2015-05-05 Cadence Design Systems, Inc. Reverse interface logic model for optimizing physical hierarchy under full chip constraint
CN103617322B (zh) * 2013-11-27 2016-06-22 中国人民解放军国防科学技术大学 基于驱动窗口的集成电路时钟网格驱动优化方法
KR20150069142A (ko) * 2013-12-13 2015-06-23 삼성전자주식회사 설정 가능한 클락 메시 회로, 이의 동작 방법, 및 이를 포함하는 장치들
US9760667B1 (en) 2014-06-30 2017-09-12 Cadence Design Systems, Inc. Method, system, and computer program product for implementing prototyping and floorplanning of electronic circuit designs
US20180076803A1 (en) * 2014-12-10 2018-03-15 Mediatek Singapore Pte. Ltd. Clock-distribution device of ic and method for arranging clock-distribution device
US9483604B1 (en) 2015-06-15 2016-11-01 International Business Machines Corporation Variable accuracy parameter modeling in statistical timing
CN106960087B (zh) * 2017-03-13 2020-05-19 上海华力微电子有限公司 一种时钟分布网络结构及其生成方法
US11022998B2 (en) * 2018-10-12 2021-06-01 International Business Machines Corporation Optimally driving non-uniform clock mesh loads
US11281830B2 (en) * 2019-03-11 2022-03-22 Intel Corporation Method and apparatus for performing profile guided optimization for first in first out sizing
CN115408980B (zh) * 2022-11-02 2023-01-24 北京工业大学 基于动态规划的规则化时钟网格规划方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3299842B2 (ja) * 1994-05-19 2002-07-08 富士通株式会社 半導体集積回路の配置配線方法および装置
US5828580A (en) * 1994-11-08 1998-10-27 Epic Design Technology, Inc. Connectivity-based approach for extracting parasitic layout in an integrated circuit
US6389582B1 (en) * 1995-12-21 2002-05-14 John Valainis Thermal driven placement
US6387621B1 (en) * 1999-04-27 2002-05-14 University Of Utah Research Foundation Automated analysis of real-time nucleic acid amplification
US6690371B1 (en) * 2000-05-03 2004-02-10 Ge Medical Systems Global Technology, Llc Relevant image data extraction from a medical image data volume
US7392495B1 (en) * 2002-08-13 2008-06-24 Cypress Semiconductor Corporation Method and system for providing hybrid clock distribution

Also Published As

Publication number Publication date
US20070283305A1 (en) 2007-12-06
US7802215B2 (en) 2010-09-21
JP2007328788A (ja) 2007-12-20

Similar Documents

Publication Publication Date Title
JP4806376B2 (ja) クロックメッシュ分析方法、装置及びシステム
US8572532B1 (en) Common path pessimism removal for hierarchical timing analysis
US11308253B2 (en) Partitioning in post-layout circuit simulation
US8640066B1 (en) Multi-phase models for timing closure of integrated circuit designs
US9767240B2 (en) Temperature-aware integrated circuit design methods and systems
US8656331B1 (en) Timing margins for on-chip variations from sensitivity data
US8516423B2 (en) System and method for determining simulated response extrema for integrated circuit power supply networks
US10467365B1 (en) Systems and methods for calculating common clock path pessimism for hierarchical timing analysis in an electronic design
US8594988B1 (en) Method and apparatus for circuit simulation using parallel computing
JP2006107517A (ja) クロストークを考慮したタイミング分析のためのシステム、方法及び論理装置
JP2010160787A (ja) パラメータ情報作成システム、歩留まり算出システム、プログラム及び記録媒体
JP4973241B2 (ja) メッシュ回路のタイミングの不確定性を判定するための方法及び装置
US9298872B2 (en) Apportioning synthesis effort for better timing closure
US8443321B1 (en) Pessimism removal in the modeling of simultaneous switching noise
US9582626B1 (en) Using waveform propagation for accurate delay calculation
Srivastava et al. Interdependent latch setup/hold time characterization via Euler-Newton curve tracing on state-transition equations
US8966429B2 (en) Bit slice elements utilizing through device routing
JP2007004563A (ja) ライブラリ作成装置、ライブラリ作成プログラムおよびライブラリ作成方法
US20060041852A1 (en) Targeted optimization of buffer-tree logic
Kang et al. Statistical timing analysis using levelized covariance propagation considering systematic and random variations of process parameters
US10372851B2 (en) Independently projecting a canonical clock
US7725852B2 (en) Sliding window scheme (SWS) for determining clock timing in a mesh-based clock architecture
US20220327269A1 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
US20130174107A1 (en) Design tool for glitch removal
CN113536726A (zh) 用于最大瞬时峰值功率的矢量生成

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110802

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110812

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees