JP5410523B2 - 順序セルを接近配置する方法及び装置 - Google Patents

順序セルを接近配置する方法及び装置 Download PDF

Info

Publication number
JP5410523B2
JP5410523B2 JP2011520252A JP2011520252A JP5410523B2 JP 5410523 B2 JP5410523 B2 JP 5410523B2 JP 2011520252 A JP2011520252 A JP 2011520252A JP 2011520252 A JP2011520252 A JP 2011520252A JP 5410523 B2 JP5410523 B2 JP 5410523B2
Authority
JP
Japan
Prior art keywords
group
ordered
configuration
cells
placement
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.)
Active
Application number
JP2011520252A
Other languages
English (en)
Other versions
JP2011529238A (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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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 Synopsys Inc filed Critical Synopsys Inc
Publication of JP2011529238A publication Critical patent/JP2011529238A/ja
Application granted granted Critical
Publication of JP5410523B2 publication Critical patent/JP5410523B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/04Clock gating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Description

本発明は、電力/タイミング性能の改善を目標とした順序セルを伴う集積回路の合成に係る。
集積回路設計のフローは、典型的に、次の段階、即ち製品アイデア、EDAソフトウェア、テープアウト、製造装置、パッキング/アッセンブリ、及びチップ、を通して進む。EDAソフトウェア段階は、次のテーブルに示すステップを含む。
Figure 0005410523
典型的な回路設計プロセスにおいて、設計者は、回路設計の順序セルの配置を含むコンピュータ実施アルゴリズムに基づいて回路設計を配置するEDA(エレクトロニックデザインオートメーション)を実行する。コンピュータ実施の配置の後、設計者は、次いで、不良タイミング又は不良ルータビリティのような不充分な結果を引き起こす順序セルのバンクを手でチェックし識別する。この人手による試行錯誤プロセスは、低速で且つ費用のかかるものである。更に、回路設計におけるセルの合計数が百万セルの大部分に近づき、そして数百万にも達し、それを越えると、このような労力を要するプロセスは、エラー傾向の高いものとなる。又、自動化解決策は満足なものではない。というのは、配置及びルーティングのための自動化解決策は、低い電力のような更に別の事柄を考慮せずに、ルータビリティ又はタイミングのようなパラメータを最適化するからである。このような事柄を追加するための自動化解決策の変更は、ルータビリティ又はタイミングのような主要な要件において最適に達しない結果を生じさせる。従って、典型的な設計者は、ルータビリティ又はタイミングのようなパラメータを最適化する設計を生成する自動化解決策に依存し、次いで、労力を要しエラー傾向のあるプロセスにも関わらず、その結果を手で変更する。
更に、期待を満足しない種々の特定の解決策について以下に述べる。
順序セルのグループを手動で選択しパッキングすることは、上述した欠点がある。主な欠点は、順序セルの手動バンキングプロセスが、退屈なもので、時間がかかり、又、タイミング及びルータビリティに対する順序セルの影響を最小にできそうもないことである。
別の解決策は、配置とクロックツリー合成との間の繰り返しである。クロックツリーセル(バッファ又はICG)により駆動される順序セルは、中心がクロックツリーセルであるマンハッタンサークルに配置される。マンハッタンサークルは、順序セルバンキングと同程度の電力をセーブすることができない。というのは、マンハッタンサークルのネットキャパシタンスが、通常、同じ数の順序セルを駆動するための順序セルバンクのネットキャパシタンスを越えるからである。
別の解決策では、クロックメッシュを使用する全電力ペナルティを支払うことなく変化に対するクロックツリーの感受性を減少するために、最小数のリンクがクロックツリーに追加される。しかしながら、高速SPICEを使用して非ツリークロックトポロジーを分析することは、設計のフローを複雑にする。というのは、ほとんどの設計は、クロックツリーを分析するためにクロックツリートポロジーに対して高速SPICEを必要としないからである。
この技術の種々の態様は、順序セルの回路設計の方法、及びこの方法を遂行するコンピュータインストラクションに向けられる。順序セルは、フリップ・フロップ及び/又はラッチを意味すると定義される。
一実施形態では、この方法は、回路設計ネットリストの順序セルの予備配置を受け取るステップと、その予備配置の予備構成に基づき、改善された電力消費及び改善されたタイミング変化を受ける順序セルのグループを、識別される順序セルグループのその後の配置を行う際に、識別するステップと、を有する。予備配置は、少なくとも順序セルのタイミング及びルータビリティに基づくものである。識別された順序セルグループの改善された電力消費及び改善されたタイミング変化の機会は、識別された順序セルグループを行及び列の接近構成へとその後に配置する結果である。グループの順序セルのこの接近構成は、グループの順序セルの予備構成とは異なる。
更に幾つかの実施形態は、行及び列の接近構成へのグループのその後の配置を行うことを含む。しかしながら、行及び列の接近構成への識別された順序セルグループのその後の配置から生じる改善された電力消費及び改善されたタイミング変化の機会にも関わらず、その後の配置が失敗することがある。例えば、その後の配置は、接近構成をルーティングできないために失敗する。このような失敗に応答して、識別されたグループは、この場合、その識別されたグループが、解散したグループのその後の配置を行う際に、改善されたルータビリティを受けるために、解散される。その後の配置は、解散したグループの順序セルのその後の構成を行及び列の接近構成とは異なるものにする。
種々の実施形態において、識別された順序セルグループは、単一のパイプライン段に属する順序セルのグループ、(例えば、少なくとも16の順序セル及び/又は128以下の順序セルの)単一レジスタ伝達言語ベクトルを構成する順序セルのグループ、及び/又は共通ゲートクロック信号によりクロックされる順序セルのグループのように、種々の基準を満足する。識別された順序セルグループにより満足される別のより公式の基準は、第1の比が第2の比を越えるというものである。第1の比は、i)順序セルのグループの合計面積と、ii)順序セルのグループを包囲する最小の長方形の面積との比である。第2の比は、i)回路設計ネットリストの全ての順序セルの合計面積と、ii)回路設計ネットリストの合計ダイ面積から回路設計ネットリストのハードマクロの合計面積を引いたものとの比である。
別の実施形態では、この方法は、回路設計ネットリストの順序セルのグループの識別を受け取るステップと、行及び列の接近構成へのグループの接近配置を遂行するステップと、を有する。グループの識別は、順序セルの予備配置からの予備構成に基づく。予備配置は、順序セルの少なくともタイミング及びルータビリティに基づく。接近構成におけるグループは、予備構成におけるグループに対して改善された電力消費及び改善されたタイミング変化を有する。
しかしながら、行及び列の接近構成における識別された順序セルグループの改善された電力消費及び改善されたタイミング変化の機会に関わらず、接近配置が失敗することがある。例えば、接近配置は、接近構成をルーティングできないために失敗する。このような失敗に応答して、識別されたグループは、この場合、その識別されたグループが、解散したグループのその後の配置を行う際に、改善されたルータビリティを受けるために、解散される。その後の配置は、解散したグループの順序セルのその後の構成を行及び列の接近構成とは異なるものにする。
幾つかの実施形態では、接近配置を行うことは、順序セルのグループの接近構成の行数及び列数を決定することを含む。一例において、行数及び列数は、接近構成の第1の高さ対巾の比が、予備配置における順序セルのグループを包囲する最小長方形の第2の高さ対巾の比を近似するように決定される。
幾つかの実施形態において、接近配置を行うことは、グループの順序セルの接近構成における相対的な位置を決定する。例えば、接近構成におけるこのような相対的位置は、グループの順序セルの予備構成における相対的位置に基づく。別の例では、グループの順序セルの接近構成における相対的水平座標位置が、グループの順序セルの予備構成における相対的水平座標位置に基づいて決定される。別の例では、グループの順序セルの接近構成における相対的垂直座標位置が、グループの順序セルの予備構成における相対的垂直座標位置に基づいて決定される。ある実施形態では、更に、中間行(又は中間行付近)、又は中間列(又は中間列付近)、又は他の中間エリアのような接近構成の中間位置に一体化されたクロックゲートセルを配置することを含む。
別の実施形態では、この方法は、回路設計ネットリストの順序セルのグループの行及び列の接近構成を受け取るステップと、その接近構成のグループを解散するステップとを有する。このような解散は、行及び列の接近構成の失敗に応答して行われる。例えば、接近配置は、接近構成をルーティングできないために失敗することがあり、例えば、接近構成のネットの数がルーティング容量を越えることを決定する。解散したグループは、解散したグループのその後の配置を行う際に、改善されたルータビリティを受ける。その後の配置は、解散したグループの順序セルのその後の構成を行及び列の接近構成とは異なるものにする。
幾つかの実施形態では、更に、解散したグループの順序セルのその後の配置を行うことが含まれる。
他の実施形態は、ここに述べるいずれかの方法を遂行するためのコンピュータ読み取り可能なインストラクションを伴うコンピュータ読み取り可能な媒体である。
集積回路を設計し製造するプロセスの簡単な図である。 集積回路の順序セルのバンク又はグループの改善された配置を行う規範的プロセスの簡単なフローチャートである。 集積回路の順序セルのグループの改善された配置を行う規範的プロセスの別の簡単なフローチャートである。 集積回路の順序セルのグループの改善された配置を行う規範的プロセスの簡単な図である。 集積回路の順序セルのグループの改善された配置を行う規範的プロセスの簡単な図である。 集積回路の順序セルのグループの改善された配置を行う規範的プロセスの簡単な図である。 順序セルのグループの接近配置を遂行し、そして予備配置からの情報を使用して接近配置を行うプロセスの簡単な図である。 本発明技術の態様を具現化するコンピュータシステムの簡単なブロック図である。
プロセスフロー
図1は、ここに例示するデジタル集積回路設計及びテストフローを簡単に示す。ここに示す全てのフローチャートと同様に、図1の多数のステップは、達成される機能に影響せずに、組み合わせることもでき、並列に行うこともでき、又は異なるシーケンスで遂行できることも明らかであろう。ある場合には、ステップを再構成すると、他の幾つかの変更も行った場合にのみ同じ結果が得られ、そして他の場合には、ステップを再構成すると、幾つかの条件が満足された場合だけ同じ結果が得られる。このような再構成の可能性は、読者には明らかであろう。
高いレベルにおいて、図1のプロセスは、製品アイデア(ステップ100)で開始し、そしてEDA(エレクトロニックデザインオートメーション)ソフトウェア設計プロセス(ステップ110)で実現される。設計が終了すると、製造プロセス(ステップ150)及びパッケージング・アッセンブリプロセス(ステップ160)が行われて、最終的に、集積回路チップが出来上がる(結果170)。出来上ったチップの幾つか又は全部が、ステップ180において、規定のテストベクトル及び予想応答を使用してテスターマシンでテストされる。
EDAソフトウェア設計プロセス(ステップ110)は、実際上、簡単化のため直線的な形態で示された多数のステップ112−130より成る。実際の集積回路設計プロセスでは、特定の設計は、幾つかのテストに合格するまでステップを逆行させねばならない。同様に、実際の設計プロセスでは、これらステップは、異なる順序及び組み合わせで行われてもよい。それ故、この説明は、特定の集積回路に対する特定の又は推奨される設計ではなく、状況及び一般的説明としてなされる。
EDAソフトウェア設計プロセス(ステップ110)の構成ステップを以下に簡単に説明する。
システム設計(ステップ112):設計者は、具現化を希望する機能を記述し、機能、チェックコスト、等を改善するために、たられば(what-if)プランニングを遂行することができる。この段階において、ハードウェア・ソフトウェアアーキテクチャー区画を行うことができる。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、Model Architect、Saber、System Studio、及びDesign Ware(登録商標)製品を含む。
ロジック設計・機能的検証(ステップ114):この段階において、システム内のモジュールに対するVHDL又はVerilogコードが書かれ、そして設計が機能的精度に対してチェックされる。より詳細には、設計は、特定の入力刺激に応答して正しい出力を発生することを保証するためにチェックされる。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、VCS、VERA、DesignWare(登録商標)、Magellan、Formality、ESP及びLEDA製品を含む。幾つかの設計は、この段階において、あるテスト用設計特徴、例えば、スキャンチェーン及びそれに関連したスキャン圧縮又は解凍回路を既に含むが、これらは、ここに使用する「ロジック設計」及び「回路設計」という語には含まれない。
合成・テスト用設計(DFT)(ステップ116):ここでは、VHDL/Verilogがネットリストへ変換される。ネットリストは、ターゲットとする技術に最適なものとすることができる。更に、出来上ったチップをチェックできるように、テストアーキテクチャーの具現化をこの段階で行う。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、Design Compiler(登録商標)、フィジカルコンパイラー、テストコンパイラー、パワーコンパイラー、FPGAコンパイラー、TetraMAX、及びDesignWare(登録商標)製品を含む。上述したユーザ指定コンフィギュレーション設定でテストアーキテクチャーを具現化する現在製品は、DFT MAXである。このDFT MAXは、参考としてここに援用するシノプシスDFT MAX適応スキャン圧縮合成、データシート(2007年)に説明されている。
ネットリスト検証(ステップ118):この段階では、ネットリストが、タイミング制約との適合性及びVHDL又はVerilogソースコードとの対応性についてチェックされる。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、Formality、PrimeTime、及びVCS製品を含む。
設計プランニング(ステップ120):ここでは、チップのための全フロアプランが、タイミング及びトップレベルルーティングについて構成され分析される。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、Astro及びICコンパイラー製品を含む。
物理的具現化(ステップ122):この段階では、配置(回路素子の位置付け)及びルーティング(回路素子の接続)が行われる。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、Astro及びICコンパイラー製品を含む。
分析・抽出(ステップ124):この段階では、回路機能がトランジスタレベルで検証され、これは、次いで、たられば(what-if)改善を許す。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、AstroRail、PrimeRail、PrimeTime、及びStarRC/XT製品を含む。
物理的検証(ステップ126):このステップでは、製造、電気的な問題、リソグラフィーの問題、及び回路についての正しさを保証するために、種々のチェック機能が遂行される。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、Hercules製品を含む。
テープアウト(ステップ127):このステップは、出来上ったチップを形成するためにリソグラフィック使用のマスクを形成する「テープアウト」データを与える。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、CATS(R)ファミリーの製品を含む。
解像度向上(ステップ128):このステップは、設計の製造性を改善するためのレイアウトの幾何学的操作を伴う。この段階で使用できるシノプシス社からの規範的EDAソフトウェア製品は、Proteus、ProteusAF及びPSMGen製品を含む。
マスク準備(ステップ130):このステップは、マスクデータの準備と、マスクそれ自体の書き込みとの両方を含む。
序文
ワイヤレス移動及びワイヤード高性能システムの両方にとって、今日のIC設計では、低電力で、且つ変化に対して低感受性であることが大きな挑戦及び区別化となる。ICの電力消費は、動的電力及び漏洩電力に分類することができる。クロックツリーは、非常に頻繁に切り換わり且つチップにわたり分散されるので、動的電力の主たる消費体である。又、クロックツリーは、全てのワイヤ及び順序セル(フロップ及びラッチ)を駆動しそしてスキューのバランスをとるために多数のバッファを含むので、漏洩電力の主たる消費体である。クロックツリーは、ICにより消費される全電力の40%程度を消費する。
又、クリックツリーは、変化に対するIC感受性の主たる原因でもある。OCV(オンチップ変化)のために、タイミング経路の起動フロップへのクロック経路は、100psだけ低速化され、そして同じタイミング経路の捕獲フロップへのクロック経路は、100psだけスピードアップされると仮定する。従って、タイミング経路へのOCVの影響は、少なくとも200psとなり、単一クロック経路へのOCVの影響の2倍である。
従来のクロックツリー合成方法は、順序セル及びICG(集積クロックゲートセル)の任意の配置がなされるとすれば、低電力及び低スキューのクロックツリーを合成するように試み、これは、困難で且つ益々扱いにくいものである。
本発明の技術は、低電力で且つ変化に対する感受性が低いクロックツリーの合成を行えるように順序セル及びICGを配置することにより、IC設計のクオリティ(低電力及び低スキュー)に対するクロックツリーの重要性に対処するものである。
電力アウェア(電力に気付く)配置技術は、ネット切り換え電力を最小にするために高いスイッチング周波数でネットを短くするようセルを配置する。クロックネットは、通常、最高のスイッチング周波数を有し、従って、電力アウェア配置では、順序セルを、それらを駆動するリーフレベルクロックツリーセル(バッファ又はICG)に近づけるよう引っ張り、これは、順序セルクランピング(clumping)と称される。クロックツリーのネットキャパシタンスの約80%が、リーフレベルクロックツリーセルと順序セルとの間のネットにあり、従って、順序セルクランピングは、リーフレベルにおけるクロックツリーのネットキャパシタンスを効果的に減少し、従って、クロックツリー電力を節約することができる。
ここに述べる自動的順序セル配置技術は、低電力ICのための低電力クロックツリーを合成することができる。7つの工業設計では、(1)商業的ベースの流れ及び(2)電力アウェア配置技術に比して、この技術は、各々、平均で、クロックツリー電力を10.0%及び14.9%減少し、全電力を15.3%及び5.2%減少し、オンチップ変化(±10%)のもとでのWNSを1.8%及び1.5%減少する。
自動化されたタイミング及びルータビリティ駆動アルゴリズムは、設計の配置、タイミング及び密集情報に基づいて順序セルバンクを生成して配置することにより、設計タイミング及びルータビリティへの影響を最小にする。より詳細には、アルゴリズムは、自動的に、(1)設計の初期配置に基づいて順序セルグループを識別し、(2)順序セルの初期配置に基づいて各グループの順序セルを長方形の順序セルバンクへ配置し、(3)タイミング分析に基づき設計タイミングに影響する順序セルバンクの形成を回避し、(4)配置ベース密集マップに基づきルータビリティに影響する順序セルバンクの形成を回避する。
自動的順序セルバンキングアルゴリズム及び電力アウェア配置技術は、シノプシス社のICコンパイラーである最新の市販の物理的合成ツール上で実施された。しかしながら、種々の市販及び非市販の物理的合成ツールがこの技術の利点を取り入れることができる。1つの具現化には、配置、クロックツリー合成及びルーティングを含む全物理的合成フローを通して7つの工業設計におけるデフォールトの物理的合成フロー、電力アウェア配置フロー、及び自動的順序セルバンキングフローが適用された。設計は、90nm及び65nm技術において14Kないし259Kのセルを有する。設計は、OCVを市販ツールのタイマーにおいてCRPR(クロック再収束悲観的条件削除)を伴う10%ディレーティング(derating)(各ワイヤ又はセルの遅延が±10%変化する)としてモデリングする。設計は、細部ルート後のルーティングDRC(設計ルールチェック)違反の数によりルータビリティを測定する。近代的な工業設計フローでは、自動的細部ルート後のルーティングDRC違反は、典型的に、グラフィックユーザインターフェイスを使用して設計エンジニアにより固定される。
デフォールトフロー及び電力アウェア配置のフローに比して、自動的順序セルバンキングアルゴリズムは、各々、平均で、クロックツリー電力を19.0%及び14.9%減少し、全チップ電力を15.3%及び5.2%減少し、OCVのもとでのスキューを2.5%及び0.6%減少し、そしてOCVのもとでのWNS(最悪の負のたるみ)を1.8%及び1.5%減少する。ルータビリティに関して、自動的順序セルバンキングアルゴリズムは、電力アウェア配置のフローに勝る30.0%の改善を達成した。デフォールトフローに比して、ルータビリティに対する自動的順序セルバンキングアルゴリズムの影響は、5.0%に制限される。
以下のセクションは、タイミング及びルータビリティ駆動の順序セルバンキングアルゴリズム、及びどのように順序セルバンキングが典型的な物理的合成フローに適合するか、を紹介し、どのように順序セルが順序セルバンクに配置されるかを詳細に説明し、実験の結果を提示し、そして他の特徴を検討し、結論付ける。
タイミング及び密集駆動順序セルバンキング
以下の検討は、どのようにタイミング及びルータビリティ駆動の自動的順序セルバンキングが完全な物理的合成フローに適合するかを示し、そして順序セルバンキングアルゴリズムについて説明する。
物理的合成フロー
図2は、どのように順序セルバンキングを典型的な物理的合成フローに合体できるかを示す。第1に、ステップ202において、マップされたネットリストの初期配置が行われる。この初期配置において、プレーサーによりタイミング及びルータビリティを最適化するために順序セルが設計の残部と一緒に配置される。プレーサーがタイミング及びルータビリティのために順序セルを互いに遠く離れて(希薄に)配置するように決定した場合には、プレーサーが合理的なジョブを行うと仮定すれば、それらを互いにタッチするように並置して順序セルバンクへと配置することで、タイミング及びルータビリティに大きな負の影響を招くことがある。換言すれば、プレーサーが「スマート」であると仮定すれば、互いに遠く離れて配置される順序セルをバンキングすることで、プレーサーのアルゴリズム目標に大きく違反する。ステップ202におけるマップされたネットリストの初期配置の後に、ステップ204において、設計の配置に基づいて、順序セルバンク(グループとも称される)生成が行われる。
次いで、ステップ206において、ステップ204で形成された順序セルバンクを含む設計を物理的に最適化するための増分的配置及び配置に基づくロジック最適化が遂行される。ステップ208において、タイミング及びルータビリティへの順序セルバンキングの影響を最小にするために、ある順序セルバンクが分解(解散とも称される)される。ステップ210において、タイミング及びルーティング密集を最小にするようにその分解された順序セルをリロケーションするための別の増分的配置及び配置に基づく最適化が行われる。最終的に、ステップ212において、クロックツリー合成及び最適化が行われ、そしてステップ214において、ルーティング及び物理的最適化が行われる。
順序セルバンクは、物理的合成フロー全体にわたって行われるグローバル配置及び細部配置の両方の間にハードマクロ状メモリ又はハードIPとして取り扱われる。ここに述べるセルは、標準的セルライブラリーにおける標準的セルである必要はない。「ハードマクロ」は、固定レイアウトを有する配置されルーティングされたセルである。「ソフトマクロ」は、変更可能なレイアウトを有していてネットリストにより記述されたセルである。
細部プレーサーは、順序セルバンクを含むオーバーラップを除去できない場合には、順序セルバンクを個々の順序セル及びICGへ分解し、そして再び配置を合法化するよう試みる。順序セルバンクにおける順序セル及びICGは、ステップ206及び210において、物理的最適化の間にサイズ決めすることができる。ステップ212におけるCTS(クロックツリー合成)のような物理的合成オペレーションの残り部分、並びにステップ214におけるグローバル及び細部ルーティングは、順序セルバンクにおける順序セル及びICGを、固定配置を伴う個々のセルとして取り扱う。
図3、4A、4B及び4Cは、本発明の技術の全体的な態様、及び図2に述べた技術の種々のより特定の態様に各々向けられたフローチャートである。
図3において、フローチャートは次のステップを含む。ステップ320において、予備配置が受け取られる。ステップ322において、ステップ320の予備配置に基づき、その後の配置の際に、改善された電力及び/又はタイミングを受ける順序セルのグループが識別される。ステップ324において、識別された順序セルグループに対して接近配置が行われる。ステップ326において、接近配置が失敗した場合には、順序セルのグループが解散され、その解散されたグループの順序セルの配置が行われる。
図4Aにおいて、フローチャートは、次のステップを含む。ステップ430において、予備配置が受け取られる。ステップ432において、予備配置に基づき、その後の配置の際に、改善された電力及び/又はタイミングを受けるものとして順序セルのグループが識別される。
図4Bにおいて、フローチャートは、次のステップを含む。ステップ440において、その後の配置の際に、改善された電力及び/又はタイミングを受ける順序セルのグループの識別が受け取られる。ステップ442において、その識別された順序セルグループの接近配置が行われる。
図4Cにおいて、フローチャートは、次のステップを含む。ステップ450において、順序セルのグループの接近構成が受け取られる。ステップ452において、接近配置が失敗した場合には、順序セルのグループが解散され、その解散されたグループの順序セルの配置が行われる。
配置駆動の順序セルバンクの生成
このセクションは、図2に示すフローのステップ204において順序セルバンクに含ませるべき順序セルの識別について述べる。
順序セルのセットがIC設計のマイクロアーキテクチャーにおいて単一のパイプライン段を形成する場合には、設計のタイミング及び密集を最小にするように順序セルを互いに接近して配置しなければならない。幾つかの実施形態において、「単一のパイプライン段」とは、スループットのような性能を高めるためにそのようなパイプライン段のシーケンスによりデータの断片が処理される順序セルを含む処理ユニットである。単一のパイプライン段は、第1の先行するデータ断片をその段で処理した短時間後に第2の後続するデータ断片をその段で処理することができる。例えば、パイプライン型乗算器及び加算器は、古い入力を完全に処理する前に新たな入力の処理を開始することができる。更に別の実施形態では、複数のパイプライン段が順序セルバンクに配置されて、改善された電力及び/又はタイミングを実証する。
換言すれば、以下に述べるように、順序セルのセットを順序セルバンクに入念にパッキングすることにより、順序セルは、タイミング及びルータビリティに関してそれらの理想的な配置からあまり遠く離れなくてもよい。それ故、順序セルバンクは、クロックツリーの電力及びスキューを減少しながら、設計タイミング又はルータビリティに著しく影響してはならない。
設計のマイクロアーキテクチャーにおける単一のパイプライン段の一部分である順序セルを発見的に識別するために次の3つの規範的な基準が適用される。
基準1:順序セルのセットが単一のICG(集積クロックゲートセル)により直接駆動される。
基準2:順序セルのセットがそれらの名前に基づくRTLレベルにおいて見掛け上単一ベクトルを構成する。
基準3:順序セルのセットが初期配置(図2のステップ202)において「あまり希薄に」配置されない。
幾つかの実施形態において、基準1及び基準3の両方を満足するか又は基準2及び基準3の両方を満足する順序セルのセットについて、順序セルバンクが生成される。換言すれば、基準1又は基準2のいずれかを満足する順序セルのセットについては、基準3が最終的なフィルタとして働く。基準3の背景にある直観的なことは、順序セルのセットが初期配置においてチップにわたって分散配置される場合に、それらを順序セルバンクへと強制すると、ワイヤ長さ及び/又はタイミング低下の著しい増加を招く。他の実施形態では、基準1、基準2又は基準3単独、基準2及び基準3、又は順序セルの単一パイプ段を表す他の基準(1つ又は複数)のような、基準の他の組み合わせが、順序セルバンク生成のための要件を満足する。
上述した各基準について以下に詳細に述べる。90nm以下の特徴サイズのほとんどの設計は、クロックツリー電力を節約するためにクロックゲートを使用する。クロックゲートは、通常、ICG(集積クロックゲートセル)を使用して具現化される。ICGは、2つの入力信号(ピン)、即ちクロック及びイネーブルと、1つの出力信号(ピン)、即ちゲートクリックとを有する。イネーブル信号がオフである場合には、ゲートクロック信号がオフである。さもなければ、クロック信号は、ゲートクロック信号を通して伝播する。
順序セルのセットが同じICGにより駆動される場合には、その順序セルのセットが、厳密に同じイネーブル条件のもとで新たな入力を捕獲する。これは、通常、順序セルのセットがIC設計のマイクロアーキテクチャーにおける単一パイプライン段の一部分であることを指示する。順序セルのセットが基準3も満足する場合には、その順序セルのセットが最小数の順序セルバンクとされ、各順序セルバンクが128以下の順序セルを含むようにされる。128より多い順序セルを伴う順序セルバンクを生成することは、幾つかの実施形態では回避される。というのは、そのサイズの順序セルバンクは、しばしば、(1)細部プレーサーで解決できないオーバーラップを伴い、そして(2)ルータビリティの問題を引き起こすからである。それにより得られる順序セルバンクは、クロックスキューを減少するために中間行にICGを有することができる。
基準2は、少なくとも16の順序セルのセットがそれらの基礎的な名前に基づくRTLレベルにおいて見掛け上同じベクトルにある場合には、それらがおそらく単一パイプライン段の一部分であることを示す。順序セルのセットが基準3も満足する場合には、その順序セルのセットが最小数の順序セルバンクとされ、各順序セルバンクが128以下の順序セルを含むようにされる。
基準3は、順序セルのセットがネットリストの初期配置において「あまりにも希薄に」配置される場合には、順序セルのセットが基準1又は基準2を満足しても、順序セルのこのセットに対して順序セルバンクは形成されない。順序セルのセットは、順序セルのセットの合計面積と順序セルのセットの境界ボックスの面積との比が、設計の全順序セルの合計面積とダイの「標準セル面積」との比より小さい場合には、「あまりにも希薄に」配置される。ダイの「標準セル面積」は、合計ダイ面積からダイにおけるハードマクロの合計面積を差し引いたものである。
タイミング及びルータビリティ駆動の順序セルバンクの除去
ここでは、タイミング又はルータビリティに対する順序セルバンキングの影響を最小にするために図2のステップ208において順序セルバンクをどのように分解するかについて述べる。
順序セルバンクに順序セルが含まれる場合には、プレーサーは、順序セルバンクにおいて個々の順序セルをもはや別々に移動できず、プレーサーは、バンク全体を移動しなければならない。従って、物理的合成ツールが、タイミング経路を最適化し又は順序セルを含むルーティング密集を最小にするように順序セルをリロケーションすることが、より困難となる。
設計タイミングに対する順序セルバンキングの影響を最小にするために、ステップ206におけるタイミング及び密集駆動配置の後に、順序セルのピンが、設計のWNS(最悪の負のたるみ)の20%以内であるたるみをまだ有する場合には、図2のフローのステップ208において順序セルバンクが分解される。
順序セルバンクを分解することにより、プレーサーは、(分解された順序セルバンクの)個々の順序セルをチップ内のどこにでも自由に配置することが許される。順序セルは、もはや、順序セルバンクに並置されるよう強制されない。これは、物理的具現化中の配置制約の変化であり、設計のRTLコードに対する変化ではない。プレーサーは、タイミング及びルータビリティに対する物理的具現化の間にRTLベクトルの順序セルをチップに自由に配置する。
ルータビリティに対する影響を最小にするため、現在配置に基づいて密集マップが構築される。密集マップは、設計をセルへ分割するグリッドである。密集マップのセルは、セルの縁を通過するネットの推定数がセルの縁のルーティング容量を越える場合にオーバーフローする。順序セルバンクが密集マップのオーバーフローしたセルとオーバーラップする場合には、順序セルバンクは、図2のフローのステップ208において分解されたものである。
ステップ210におけるその後のタイミング及び密集駆動配置並びに配置ベースのロジック最適化は、タイミングを最小にするように個々の解散した順序セルをリロケーションできることに注意されたい。
順序セルバンクにおける順序セル配置
このセクションは、どのように順序セルバンクの大きさを決定しそして順序セルを順序セルバンク内に配置するかを例示する。
順序セルバンクの大きさ
順序セルバンクの大きさを決定するために、最初に測定されるのは、初期配置における順序セルのセットの境界ボックスの高さと巾の比である。次いで、決定されるのは、順序セルバンクの高さ対巾の比が境界ボックスの高さ対巾の比を近似するような順序セルバンクの行及び列の数である。この方法の背景にある直観的なことは、順序セルのセットの初期配置から順序セルバンク内でのそれらの配置への変位を最小にする見込みが高いことである。
順序セルバンク内での順序セル配置
合計変位を最小にするために初期配置における順序セルの相対的な位置に基づいて順序セルバンク内の順序セルの相対的な位置が計算される。順序セルのセットがmxn(m行n列)の順序セルバンクに配置されると仮定する。先ず、順序セルがそのy座標に基づいて分類され、そして順序セルがm行にグループ分けされ、各行がn個の順序セルを含むが、最後の行は、n以下の順序セルを含むようにされる。次いで、順序セルは、各行において、そのx座標に基づいて分類されて、各行における相対的な位置を決定する。順序セルバンクがICGにより駆動される場合には、ICGが付加的な中間行に配置される。例えば、図5では、6個の順序セルが3x2の順序セルバンクに配置される。先ず、6個の順序セルが、そのy座標に基づき、順序付けされたシーケンス1、2、3、4、5及び6に分類される。この順序付けされたシーケンスに基づき、順序セルは、3つの行{1、2}、{3、4}及び{5、6}にグルプ分けされる。各行内で、順序セルは、そのx座標に基づいて分類され、そして順序セルの最終的な相対的配置が、各行において{2、1}、{3、4}及び{6、5}として決定される。最終的に、ICGを配置するために、中間行が順序セルバンクへ挿入される。配置された順序セルバンクが図5に示されている。
実験結果
このセクションは、実験結果を説明し分析する。
実験の設定
自動的順序セルバンキングアルゴリズム及び電力アウェア配置技術が市販の物理的合成ツール上で具現化された。市販の物理的合成ツールは、実験のためのタイミング及び電力数字を与える内蔵のタイミング及び電力分析エンジンを有する。このタイミング分析エンジンは、(1)各ワイヤ又はセルの遅延を、あるユーザ指定パーセンテージについていずれかの仕方で変化させることのできるディレーティング(derating)、及び(2)CRPR(クロック再収束悲観的条件削除)を使用してOCV(オンチップ変化)をモデリングする。
実験は、90nm及び65nm技術において14Kないし259Kセルの範囲の7つの工業設計で行われる。これら設計の統計値をテーブル1に要約する。
Figure 0005410523
これらの設計には、デフォールトの物理的合成フロー、電力アウェア配置フロー、及び自動的順序セルバンキングフローが適用される。デフォールトフローは、図2のフローのステップ202、210k、212及び214である。電力アウェア配置フローは、デフォールトフローにおけるタイミング及び密集駆動配置(図2のステップ210)の間に電力アウェア配置を行う。細部ルーティングの後に全ての実験結果が測定された。
自動的順序セルバンキングフローと他のフローとの間の比較
順序セルバンキングフローと、デフォールトフロー、及び電力アウェア配置フローとの比較をテーブル2に要約する。テーブル2では、第1列は、3つのフローを比較するときの基礎となる設計クオリティメトリックを列挙する。第2列及び第3列は、デフォールトフロー及び電力アウェア配置フローに対する順序セルバンキングフローからの平均改善パーセンテージを各々示す。負(正)のパーセンテージは、他のフローに比して順序セルバンクバンキングフローからの改善(悪化)を示す。タイミング数字は、10%ディレーティング(各ワイヤ又はセルの遅延は±10%変化する)及びCRPRで測定される。
Figure 0005410523
クロックのWNSパーセンテージ数は、クロック周期に対して正規化される。設計が複数のクロックを有する場合には、WNSパーセンテージ数は、全てのクロックの全てのWNSパーセンテージ数の平均である。フローのルーティングDRC(設計ルールチェック)違反数は、デフォールトフロー又は電力アウェア配置フローに匹敵するDRC違反数である。
テーブル2は、順序セルバンキングフローが、デフォールトフロー及び電力アウェア配置フローに比して、各々、平均で、クロックツリー電力を19.03%及び14.94%、全電力を15.26%及び5.20%、OCVのもとでのスキューを2.53%及び0.60%、そしてOCVのもとでのWNS(最悪の負のたるみ)を1.76%及び1.52%減少したことを示す。これらの結果から、順序セルバンキングは、デフォールトフロー及び電力アウェア配置フローの両方に比して、クロックツリー電力を節約し且つOCVの影響のもとで設計タイミングを改善するのに有効であると結論付けることができる。
ルータビリティは、細部ルート後のルーティングDRC(設計ルールチェック)違反の数で測定される。今日の工業設計フローでは、自動的細部ルート後のルーティングDRC違反は、グラフィックユーザインターフェイスを使用して設計エンジニアにより固定されることに注意されたい。電力アウェア配置フローに比して、順序セルバンキングフローは、ルーティングDRC違反の数を30.05%減少した。デフォールトフローに比して、順序セルバンキングフローは、ルーティングDRC違反の合計数を5.01%増加した。電力アウェア配置及び自動的順序セルバンキングは、両方とも、ルータビリティに影響するが、セクション2.3に述べられた密集マップベースの順序セルバンク分解方法は、電力アウェア配置に比して、ルータビリティへの影響を効果的に減少した。
自動的順序セルバンキングのためのコードは、ランタイムを、デフォールトフローに比して1.66Xだけ増加し、そして電力アウェア配置フローに比して1.15Xだけ増加した。将来、ランタイムオーバーヘッドを減少する更なる改善を期待することができる。
テーブル3は、テストケースにおいて3つのフローを実行することから得られる実験データを示す。第1列は、7つの設計のコード名を示す。第2列は、3つのフロー、即ちデフォールトフロー、電力アウェア配置フロー、及び順序セルバンキングフローを示す。第3列ないし第7列は、5つの設計クオリティメトリック、即ちクロック電力、全電力、クロックスキュー、WNS、及び細部ルーティング後のDRC違反の数に関して実験データを示す。
Figure 0005410523
自動的順序セルバンキングにより達成されるスキュー及び電力減少の分析
なぜ順序セルバンキングがOCVのもとでスキューを減少するかを以下に述べる。密接にパックされた順序セルバンクでは、細部ルーターが、通常、スキューに対して良好な魚の骨状のネットを生成する。更に、順序セルバンクにおける魚の骨状のネットは、クロックツリーのリーフレベルのネット容量を相当に減少し、クロックツリーが、より少数の、より小型のバッファを使用して、クロックネットを駆動できるようにする。その結果、クロックツリーの根からクロックのシンクへのクロック経路の遅延が最小にされ、OCVの影響を減少する。
上述したように、順序セルバンクは、クロックツリーが、より少数の、より小型のバッファを使用して、クロックネットを駆動できるようにする。その結果、全バッファ面積が減少され、ひいては、クロックツリーセルの漏洩及び内部(短絡)電力を減少する。それ故、自動的順序セルバンキングは、ネットスイッチング電力だけでなく、クロックツリーセルの漏洩及び内部電力も減少する。
テーブル4は、前記の議論をサポートする。テーブル4の第3列ないし第6列は、クロックツリーバッファ面積、漏洩電力、セル内部電力、及びネットスイッチング電力に関して実験データを示す。最下行は、自動的順序セルバンキングにより達成される前記メトリックの平均減少を示す(負のパーセンテージは、改善を示す)。クロックツリーバッファ面積の7.61%の平均減少が、クロックツリー漏洩電力の7.20%の平均減少、及びクロックツリーセル内部電力の7.89%の平均減少を導いたことに注意されたい。
Figure 0005410523
結論及び更に別の実施形態
低い電力及び変化に対する低い感受性は、ワイヤレス移動システム及びワイヤード高性能システムの両方に使用されるICを設計するために設計者が今日直面する大きな挑戦である。クロックツリーは、電力消費及び変化に対する感受性の両方に対する主たる元凶であるから、低電力で且つ変化に対して頑強であるIC設計をもつためには、低電力で且つ変化に対する感受性が低いクロックツリー設計を得ることが必須である。
低電力で且つ変化に対してより頑強なクロックツリーの合成を可能にする自動的順序セルバンキング技術が提供された。この順序セルバンキング技術は、市販の物理的合成ツール上で具現化される。この技術は、クロックツリー電力、全電力、及びオンチップ変化のもとでのWNSを減少する上で効果的であることを実験結果が示している。
14Kないし259Kのセルを伴う7つの工業的90nm及び65nm設計では、完全な物理的合成フローの後に、自動的順序セルバンキング技術は、デフォールトフロー及び電力アウェア配置フローに比して、各々、平均で、クロックツリー電力を19.0%及び14.9%、全電力を15.3%及び5.2%、又、OCV(±10%)のもとでのWNSを1.8%及び1.5%減少した。
他の実施形態は、順序セルバンキング及び電力アウェア配置を結合して、全電力の更に大きな減少を達成し、ルータビリティに対する順序セルバンキングの影響を更に減少し、及び/又はデフォールトフローに比して自動的順序セルバンキングフローのランタイムオーバーヘッドを減少する。
図6は、本発明の態様を合体するソフトウェアを具現化するのに使用できるコンピュータシステム610の簡単なブロック図である。ここに示すフローチャート及び他のアルゴリズムは、一連のステップを説明するものであるが、フローチャート又はアルゴリズムの各ステップは、610のようなコンピュータシステムを特定の仕方で動作させることにより具現化できることが明らかである。
コンピュータシステム610は、典型的に、バスサブシステム612を経て多数の周辺装置と通信するプロセッササブシステム614を備えている。このプロセッササブシステム614は、1つ又は多数のプロセッサを含む。又、プロセッササブシステム614は、コンピュータシステム610がここに述べる情報を受信及び送信するための経路を与え、このプロセッササブシステム614内に、マルチコア、マルチプロセッサ及び/又はバーチャルマシン実施を含む。周辺装置は、メモリサブシステム626及びファイル記憶サブシステム628を含む記憶サブシステム624と、ユーザインターフェイス入力装置622と、ユーザインターフェイス出力装置620と、ネットワークインターフェイスサブシステム616とを備えている。入力及び出力装置は、コンピュータシステム610とのユーザ対話を許す。ネットワークインターフェイスサブシステム616は、通信ネットワーク618へのインターフェイスを含む外部ネットワークへのインターフェイスを与えるものであり、通信ネットワーク618を経て他のコンピュータシステムの対応インターフェイス装置に結合される。通信ネットワーク618は、多数の相互接続されたコンピュータシステム及び通信リンクを備えている。これらの通信リンクは、ワイヤラインリンク、光学リンク、ワイヤレスリンク、又は情報通信のための他のメカニズムである。一実施形態では、通信ネットワーク618は、インターネットであるが、他の実施形態では、通信ネットワーク618は、適当なコンピュータネットワークでよい。通信ネットワーク618は、コンピュータシステム610がここに述べる情報を受信及び送信するための経路をなす。
ネットワークインターフェイスの物理的ハードウェアコンポーネントは、時々、ネットワークインターフェイスカード(NIC)とも称されるが、カードの形態である必要はなく、例えば、マザーボードに直接嵌合される集積回路(IC)及びコネクタの形態、或いはコンピュータシステムの他のコンポーネントと共に単一の集積回路チップ上に製造されるマクロセルの形態でよい。
ユーザインターフェイス入力装置622は、キーボード、ポインティング装置、例えば、マウス、トラックボール、タッチパッド又はグラフィックタブレット、スキャナ、ディスプレイに合体されたタッチスクリーン、オーディオ入力装置、例えば、音声認識システム、マイクロホン、及び他の形式の入力装置を含む。一般的に、「入力装置」という語の使用は、コンピュータシステム610又はコンピュータネットワーク618に情報を入力するための考えられる全ての形式の装置及び方法を含むことが意図される。
ユーザインターフェイス出力装置620は、ディスプレイサブシステム、プリンタ、ファックスマシン、又は非視覚ディスプレイ、例えば、オーディオ出力装置を含む。ディスプレイサブシステムは、陰極線管(CRT)、フラットパネル装置、例えば、液晶ディスプレイ(LCD)、プロジェクション装置、又は視覚映像を生成するための他のメカニズムを含む。又、ディスプレイサブシステムは、オーディオ出力装置を経て非視覚表示を与えてもよい。一般的に、「出力装置」という語の使用は、コンピュータシステム610からユーザ或いは別のマシン又はコンピュータシステムへ情報を出力するための考えられる全ての形式の装置及び方法を含むことが意図される。
記憶サブシステム624は、本発明の幾つかの実施形態の機能を与える基本的プログラム及びデータ構造体を記憶する。例えば、本発明の幾つかの実施形態の機能を具現化する種々のモジュールは、記憶サブシステム624に記憶される。これらのソフトウェアモジュールは、一般的に、プロセッササブシステム614により実行される。
メモリサブシステム626は、典型的に、プログラム実行中にインストラクション及びデータを記憶するためのメインランダムアクセスメモリ(RAM)630と、固定インストラクションが記憶されるリードオンリメモリ(ROM)632とを含む多数のメモリを備えている。ファイル記憶サブシステム628は、プログラム及びデータファイルのための持続性記憶を与えるものであり、ハードディスクドライブ、関連する取り外し可能な媒体を伴うフロッピーディスクドライブ(回路設計680を記憶するコンピュータ読み取り可能な媒体640として例示された)、CD ROMドライブ、光学的ドライブ、又は取り外し可能な媒体カートリッジを含む。本発明の幾つかの実施形態の機能を具現化するデータベース及びモジュールは、1つ以上のCD−ROMのようなコンピュータ読み取り可能な媒体上に設けられ、そしてファイル記憶サブシステム628により記憶される。ホストメモリ626は、とりわけ、プロセッササブシステム614により実行されたときに、コンピュータシステムがここに述べるように動作するか又はここに述べる機能を遂行するようにさせるコンピュータインストラクションを含む。「ホスト」又は「コンピュータ」内又は上で実行すると言えるここに使用するプロセス及びソフトウェアは、インストラクション及びデータのための他のローカル又はリモート記憶装置を含むホストメモリサブシステム626内のコンピュータインストラクション及びデータに応答してプロセッササブシステム614上で実行される。
バスサブシステム612は、コンピュータシステム610の種々のコンポーネント及びサブシステムが意図されたように互いに通信するようにさせるためのメカニズムをなす。バスサブシステム612は、単一のバスとして概略的に示されているが、バスサブシステムの別の実施形態では、複数のバスが使用されてもよい。
コンピュータシステム610それ自体は、パーソナルコンピュータ、ポータブルコンピュータ、ワークステーション、コンピュータターミナル、ネットワークコンピュータ、テレビジョン、メインフレーム、パラレル処理システム、2つ以上のコンピュータのネットワーク、或いは他のデータ処理システム又はユーザ装置を含む種々の形式のものでよい。コンピュータ及びネットワークはその性質が絶えず変化しているために、図6に示すコンピュータシステム610の説明は、本発明の好ましい実施形態を例示するための特定例として意図されているに過ぎない。図6に示すコンピュータシステムより多数の又は少数のコンポーネントを有するコンピュータシステム610の他の多数の構成が考えられる。
ここに使用する所与のアクティビティは、先行入力がその所与のアクティビティに影響する場合には先行入力に「応答」する。介在する処理要素、ステップ又は期間が存在する場合には、所与のアクティビティは、まだ先行入力に「応答」することができる。介在する処理要素又はステップが2つ以上の入力を結合する場合には、アクティビティが各入力に「応答」すると考えられる。1つ以上の入力に対する所与のアクティビティの「依存性」も、同様に定義される。
本発明の好ましい実施形態の以上の説明は、例示及び説明の目的でなされたものである。これは、余すところのないものでもないし、又、ここに開示した正確な形態に本発明を限定するものでもない。当業者であれば、多数の変更や修正が明らかであろう。前記実施形態は、本発明の原理及びその実際の応用を最良に説明するために選択されて説明されたものであり、従って、当業者であれば、種々の実施形態、及び意図された特定の用途に適した種々の変更についても、本発明を理解することができよう。本発明の範囲は、特許請求の範囲及びその等効物により限定されるものとする。
100:製品アイデア
110:EDAソフトウェア
112:システム設計
114:論理設計及び機能検証
116:合成及びテスト設計
118:ネットリスト検証
120:設計プランニング
122:物理的具現化及び最終ATPGラン
124:分析及び抽出
126:物理的検証
127:テープアウト
128:解像度向上
130:マスク準備
150:製造
160:パッキング&アッセンブル
170:チップ
180:チップテスト
610:コンピュータシステム
614:プロセッサ
616:ネットワークインターフェイス
618:通信ネットワーク
620:ユーザインターフェイス出力装置
622:ユーザインターフェイス入力装置
624:記憶サブシステム
626:メモリサブシステム
628:ファイル記憶サブシステム
630:RAM
632:ROM
640:コンピュータ読み取り可能な媒体
680:回路設計/コンピュータ実施インストラクション

Claims (18)

  1. コンピュータシステムが実行するフリップ・フロップ及びラッチの少なくとも1つを含む順序セルの回路設計方法において、
    回路設計ネットリストの順序セルの、予備構成への予備配置を受け取るステップであって、その予備配置が順序セルの少なくともタイミング及びルータビリティに基づくものであるステップと、
    前記予備構成に基づいて、改善された電力消費及び改善されたタイミング変化を受ける前記予備構成における順序セルのグループを、行及び列の接近構成への前記グループのその後の配置を遂行する際に、識別するステップであって、前記グループの順序セルの接近構成が前記グループの順序セルの前記予備構成とは異なるものであるステップと、
    を備えた方法。
  2. 行及び列の接近構成への前記グループのその後の配置を遂行するステップを更に備えた、請求項1に記載の方法。
  3. 行及び列の前記接近構成への前記グループのその後の配置を遂行するステップと、
    行及び列の前記接近構成とは異なる順序セルのその後の構成のために解散されるグループのその後の配置を遂行する際に、前記接近構成をルーティングする失敗に応答して、改善されたルータビリティを受ける前記接近構成の前記グループを解散させるステップと、
    を更に備えた請求項1に記載の方法。
  4. 前記順序セルのグループは、単一パイプライン段に属する、請求項1に記載の方法。
  5. 前記順序セルのグループは、単一レジスタ伝達言語ベクトルを構成する、請求項1に記載の方法。
  6. 前記順序セルのグループは、少なくとも16の順序セルの単一レジスタ伝達言語ベクトルを構成する、請求項1に記載の方法。
  7. 前記順序セルのグループは、共通ゲートクロック信号によりクロックされる、請求項1に記載の方法。
  8. 前記順序セルのグループは、共通ゲートクロック信号によりクロックされ、そして
    前記順序セルのグループは、128以下の順序セルの単一レジスタ伝達言語ベクトルを構成する、請求項1に記載の方法。
  9. 第1の比が第2の比を越えるようにされ、
    第1の比は、i)順序セルのグループの合計面積と、ii)順序セルのグループを包囲する最も小さい長方形の面積との比であり、
    第2の比は、i)回路設計ネットリストの全ての順序セルの合計面積と、ii)回路設計ネットリストの合計ダイ面積から回路設計ネットリストのハードマクロの合計面積を差し引いたものとの比である、請求項1に記載の方法。
  10. コンピュータシステムが実行するフリップ・フロップ及びラッチの少なくとも1つを含む順序セルの回路設計のためのコンピュータ読み取り可能なインストラクションをもつコンピュータ読み取り可能な媒体において、
    回路設計ネットリストの順序セルの、予備構成への予備配置を受け取るコンピュータインストラクションであって、その予備配置が順序セルの少なくともタイミング及びルータビリティに基づくものであるコンピュータインストラクションと、
    前記予備構成に基づいて、改善された電力消費及び改善されたタイミング変化を受ける前記予備構成における順序セルのグループを、行及び列の接近構成への前記グループのその後の配置を遂行する際に、識別するコンピュータインストラクションであって、前記グループの順序セルの接近構成が、前記グループの順序セルの予備構成とは異なるものであるコンピュータインストラクションと、
    を備えたコンピュータ読み取り可能な媒体。
  11. コンピュータシステムが実行するフリップ・フロップ及びラッチの少なくとも1つを含む順序セルの回路設計方法において、
    回路設計ネットリストの順序セルのグループの識別を受け取るステップであって、このグループの識別は、順序セルの予備配置からの予備構成に基づくものであり、そしてこの予備構成は、順序セルの少なくともタイミング及びルータビリティに基づくものであるステップと、
    行及び列の接近構成への前記グループの接近配置を遂行するステップであって、前記接近構成のグループは、前記予備構成のグループに対して改善された電力消費及び改善されたタイミング変化を有するものであるステップと、
    を備えた方法。
  12. 前記接近構成をルーティングする失敗に応答して、改善されたルータビリティを受ける前記接近構成のグループを、行及び列の接近構成とは異なる順序セルのその後の構成への解散されるグループのその後の配置を遂行する際に、解散させるステップを更に備えた、請求項11に記載の方法。
  13. 前記接近配置を遂行するステップは、
    前記接近構成の第1の高さ対巾の比が、前記予備配置における順序セルのグループを包囲する最小長方形の第2の高さ対巾の比を近似するように、前記接近構成の行及び列の数を決定することを含む、請求項11に記載の方法。
  14. 前記接近配置を遂行するステップは、
    前記グループ内の順序セルの予備構成における相対的な位置に基づいて、前記グループ内の順序セルの接近構成における相対的な位置を決定することを含む、請求項11に記載の方法。
  15. 前記接近配置を遂行するステップは、
    前記グループ内の順序セルの予備構成における相対的な水平座標位置に基づいて、前記グループ内の順序セルの接近構成における相対的な水平座標位置を決定することを含む、請求項11に記載の方法。
  16. 前記接近配置を遂行するステップは、
    前記グループ内の順序セルの予備構成における相対的な垂直座標位置に基づいて、前記グループ内の順序セルの接近構成における相対的な垂直座標位置を決定することを含む、請求項11に記載の方法。
  17. 前記接近配置を遂行するステップは、
    前記接近構成の中間位置に一体化クロックゲートセルを配置することを含む、請求項11に記載の方法。
  18. フリップ・フロップ及びラッチの少なくとも1つを含む順序セルの回路設計のためのコンピュータ読み取り可能なインストラクションをもつコンピュータ読み取り可能な媒体において、
    回路設計ネットリストの順序セルのグループの識別を受け取るコンピュータインストラクションであって、このグループの識別は、順序セルの予備配置からの予備構成に基づくものであり、そしてこの予備構成は、順序セルの少なくともタイミング及びルータビリティに基づくものであるコンピュータインストラクションと、
    行及び列の接近構成への前記グループの接近配置を遂行するコンピュータインストラクションであって、前記接近構成のグループは、前記予備構成のグループに対して改善された電力消費及び改善されたタイミング変化を有するものであるコンピュータインストラクションと、
    を備えたコンピュータ読み取り可能な媒体。
JP2011520252A 2008-07-30 2009-07-29 順序セルを接近配置する方法及び装置 Active JP5410523B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/182,442 US8099702B2 (en) 2008-07-30 2008-07-30 Method and apparatus for proximate placement of sequential cells
US12/182,442 2008-07-30
PCT/US2009/052091 WO2010014698A2 (en) 2008-07-30 2009-07-29 Method and apparatus for proximate placement of sequential cells

Publications (2)

Publication Number Publication Date
JP2011529238A JP2011529238A (ja) 2011-12-01
JP5410523B2 true JP5410523B2 (ja) 2014-02-05

Family

ID=41609635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011520252A Active JP5410523B2 (ja) 2008-07-30 2009-07-29 順序セルを接近配置する方法及び装置

Country Status (6)

Country Link
US (1) US8099702B2 (ja)
EP (1) EP2329417B1 (ja)
JP (1) JP5410523B2 (ja)
CN (1) CN101796520B (ja)
TW (1) TWI431497B (ja)
WO (1) WO2010014698A2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7448012B1 (en) 2004-04-21 2008-11-04 Qi-De Qian Methods and system for improving integrated circuit layout
US9310831B2 (en) * 2008-02-06 2016-04-12 Mentor Graphics Corporation Multi-mode multi-corner clocktree synthesis
JP4706738B2 (ja) * 2008-08-20 2011-06-22 日本電気株式会社 遅延解析装置、遅延解析方法、及びプログラム
US8099701B2 (en) * 2009-02-27 2012-01-17 Oracle America, Inc. Efficient chip routing method and apparatus for integrated circuit blocks with multiple connections
US8230377B1 (en) * 2009-04-24 2012-07-24 Xilinx, Inc. Control set constraint driven force directed analytical placer for programmable integrated circuits
US8196081B1 (en) * 2010-03-31 2012-06-05 Xilinx, Inc. Incremental placement and routing
JP2011238163A (ja) * 2010-05-13 2011-11-24 Renesas Electronics Corp 半導体集積回路のレイアウト方法、レイアウトシステム及びレイアウトプログラム
US8347257B2 (en) 2010-06-08 2013-01-01 International Business Machines Corporation Detailed routability by cell placement
US8495534B2 (en) 2010-06-08 2013-07-23 International Business Machines Corporation Post-placement cell shifting
US8316333B2 (en) * 2010-07-22 2012-11-20 International Business Machines Corporation Implementing timing pessimism reduction for parallel clock trees
US8271923B2 (en) 2010-07-22 2012-09-18 International Business Machines Corporation Implementing forward tracing to reduce pessimism in static timing of logic blocks laid out in parallel structures on an integrated circuit chip
US8356264B2 (en) 2010-10-28 2013-01-15 International Business Machines Corporation Implementing enhanced clock tree distributions to decouple across N-level hierarchical entities
US8959473B2 (en) 2010-11-29 2015-02-17 Synopsys Taiwan Co., LTD. Multiple level spine routing
US8584075B2 (en) 2011-02-15 2013-11-12 Qualcomm Incorporated Method and apparatus for characterizing and reducing proximity effect on cell electrical characteristics
US8332798B2 (en) * 2011-03-08 2012-12-11 Apple Inc. Using synthesis to place macros
US8661374B2 (en) * 2011-09-14 2014-02-25 Texas Instruments Incorporated Placement aware clock gate cloning and fanout optimization
US8443326B1 (en) * 2012-04-10 2013-05-14 Freescale Semiconductor, Inc. Scan chain re-ordering in electronic circuit design based on region congestion in layout plan
US8806413B2 (en) * 2012-09-17 2014-08-12 Texas Instruments Incorporated Gradient AOCV methodology enabling graph-based timing closure with AOCV timing models
US8839061B2 (en) 2013-02-07 2014-09-16 Freescale Semiconductor, Inc. System and method for scan chain re-ordering
TWI643082B (zh) 2013-09-03 2018-12-01 美商新思科技股份有限公司 一種佈線出一解決路徑之方法及系統
US10192019B2 (en) 2013-09-25 2019-01-29 Synopsys, Inc. Separation and minimum wire length constrained maze routing method and system
JP2015177222A (ja) * 2014-03-13 2015-10-05 株式会社東芝 半導体集積回路
CN104950241B (zh) * 2014-03-31 2017-10-24 联发科技(新加坡)私人有限公司 集成电路及在集成电路中建立扫描测试架构的方法
US9665680B2 (en) 2014-05-30 2017-05-30 Regents Of The University Of Minnesota Cell-level signal electromigration
CN104036090B (zh) * 2014-06-25 2017-03-29 龙芯中科技术有限公司 电路优化方法及装置
GB2532284A (en) 2014-11-17 2016-05-18 Ibm Method to reduce dynamic clock skew and/or slew in an electronic circuit
US20180076803A1 (en) * 2014-12-10 2018-03-15 Mediatek Singapore Pte. Ltd. Clock-distribution device of ic and method for arranging clock-distribution device
CN105989197B (zh) * 2015-01-28 2019-06-11 京微雅格(北京)科技有限公司 基于sat算法的时钟树布线方法
US10025452B2 (en) * 2015-09-14 2018-07-17 Adobe Systems Incorporated Physics-based cell layout redesign
US9613173B1 (en) * 2015-10-01 2017-04-04 Xilinx, Inc. Interactive multi-step physical synthesis
CN106960087B (zh) * 2017-03-13 2020-05-19 上海华力微电子有限公司 一种时钟分布网络结构及其生成方法
CN107944183B (zh) * 2017-12-11 2021-07-20 深圳市紫光同创电子有限公司 Fpga顶层网表的创建方法、装置、计算机设备及介质
CN107977231B (zh) * 2017-12-15 2020-10-27 安徽寒武纪信息科技有限公司 一种计算方法及相关产品
US10796066B1 (en) * 2018-12-20 2020-10-06 Cadence Design Systems, Inc. Power aware resizing of clock tree instances
CN111241771B (zh) * 2019-01-29 2023-12-01 叶惠玲 建立标准单元库的方法与系统、芯片设计方法与系统
KR20210057875A (ko) 2019-11-12 2021-05-24 삼성전자주식회사 집적 클럭 게이팅 회로
US10885250B1 (en) * 2020-01-06 2021-01-05 Cadence Design Systems, Inc. Clock gate placement with data path awareness
CN113919275A (zh) 2020-09-21 2022-01-11 台积电(南京)有限公司 用于优化集成电路的布局的方法
CN114528019A (zh) * 2020-11-23 2022-05-24 深圳比特微电子科技有限公司 多比特寄存器、芯片和计算装置
CN112560378B (zh) * 2020-12-23 2023-03-24 苏州易行电子科技有限公司 一种应用于整合完整芯片开发流程的自动化平台
US11897172B2 (en) * 2021-09-02 2024-02-13 Institute of Nuclear Energy Research, Atomic Energy Council, Executive Yuan, R.O.C. Method for fabricating polar plate of flexible plastic graphite composite

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495419A (en) * 1994-04-19 1996-02-27 Lsi Logic Corporation Integrated circuit physical design automation system utilizing optimization process decomposition and parallel processing
US5661663A (en) * 1995-03-24 1997-08-26 Lsi Logic Corporation Physical design automation system and method using hierarchical clusterization and placement improvement based on complete re-placement of cell clusters
JP3305176B2 (ja) * 1995-11-21 2002-07-22 株式会社東芝 自動素子配置装置
JP2773771B2 (ja) * 1996-03-05 1998-07-09 日本電気株式会社 半導体装置のレイアウト方法
US6074430A (en) * 1996-10-21 2000-06-13 Kabushiki Kaisha Toshiba Automatic cell placing method
JPH10335467A (ja) * 1997-05-28 1998-12-18 Matsushita Electric Ind Co Ltd 半導体集積回路のセル配置方法
US6141009A (en) 1997-07-16 2000-10-31 Cognex Corporation Interface for model definition
JP3412745B2 (ja) * 1997-09-18 2003-06-03 松下電器産業株式会社 半導体回路におけるクロック供給装置およびその設計方法
JP3209162B2 (ja) * 1997-10-06 2001-09-17 日本電気株式会社 半導体集積回路及びその設計方法
US6145117A (en) * 1998-01-30 2000-11-07 Tera Systems Incorporated Creating optimized physical implementations from high-level descriptions of electronic design using placement based information
US6442743B1 (en) * 1998-06-12 2002-08-27 Monterey Design Systems Placement method for integrated circuit design using topo-clustering
US6381731B1 (en) * 1999-01-19 2002-04-30 Laurence W. Grodd Placement based design cells injection into an integrated circuit design
US6467074B1 (en) * 2000-03-21 2002-10-15 Ammocore Technology, Inc. Integrated circuit architecture with standard blocks
US6826517B2 (en) 2000-12-21 2004-11-30 Kabushiki Kaisha Toshiba Method and apparatus for simulating manufacturing, electrical and physical characteristics of a semiconductor device
US6668365B2 (en) * 2001-12-18 2003-12-23 Cadence Design Systems, Inc. Quadratic programming method for eliminating cell overlap and routing congestion in an IC layout
US6789244B1 (en) * 2002-08-08 2004-09-07 Xilinx, Inc. Placement of clock objects under constraints
US7302376B2 (en) 2002-08-15 2007-11-27 International Business Machines Corporation Device modeling for proximity effects
JP2004302819A (ja) * 2003-03-31 2004-10-28 Kawasaki Microelectronics Kk 半導体集積回路のレイアウト設計方法
JP4471582B2 (ja) 2003-04-21 2010-06-02 株式会社ルネサステクノロジ 半導体集積回路及び回路設計装置
JP4610313B2 (ja) * 2004-11-29 2011-01-12 富士通セミコンダクター株式会社 半導体集積回路の設計方法
US7353478B2 (en) * 2005-04-19 2008-04-01 International Business Machines Corporation System and method for text based placement engine for custom circuit design
US7581197B2 (en) * 2005-05-26 2009-08-25 Synopsys, Inc. Relative positioning of circuit elements in circuit design
JP2007072995A (ja) * 2005-09-09 2007-03-22 Ricoh Co Ltd レイアウト装置、自動配置配線方法および半導体集積回路製造方法
JP4759368B2 (ja) * 2005-11-15 2011-08-31 株式会社リコー 半導体集積回路の設計方法
US7469394B1 (en) * 2005-12-09 2008-12-23 Altera Corporation Timing variation aware compilation
US7624366B2 (en) * 2006-10-31 2009-11-24 International Business Machines Corporation Clock aware placement
CN101187958B (zh) * 2006-11-20 2012-05-30 国际商业机器公司 生成集成电子电路的布图的方法和系统
US7624364B2 (en) * 2007-05-02 2009-11-24 Cadence Design Systems, Inc. Data path and placement optimization in an integrated circuit through use of sequential timing information
US7555734B1 (en) * 2007-06-05 2009-06-30 Xilinx, Inc. Processing constraints in computer-aided design for integrated circuits
JP2009025914A (ja) * 2007-07-17 2009-02-05 Nec Electronics Corp 半導体集積回路の設計方法及び設計プログラム

Also Published As

Publication number Publication date
TWI431497B (zh) 2014-03-21
JP2011529238A (ja) 2011-12-01
US8099702B2 (en) 2012-01-17
WO2010014698A3 (en) 2010-06-03
US20100031214A1 (en) 2010-02-04
EP2329417A4 (en) 2014-03-26
CN101796520A (zh) 2010-08-04
TW201017452A (en) 2010-05-01
CN101796520B (zh) 2013-03-06
WO2010014698A2 (en) 2010-02-04
EP2329417A2 (en) 2011-06-08
EP2329417B1 (en) 2020-02-26

Similar Documents

Publication Publication Date Title
JP5410523B2 (ja) 順序セルを接近配置する方法及び装置
US7552409B2 (en) Engineering change order process optimization
US8037437B2 (en) Optimizing systems-on-a-chip using the dynamic critical path
US8266570B2 (en) Density-based area recovery in electronic design automation
US8244515B2 (en) Structure for detecting clock gating opportunities in a pipelined electronic circuit design
Hou et al. Automatic register banking for low-power clock trees
US8719752B1 (en) Hierarchical crosstalk noise analysis model generation
US8037443B1 (en) System, method, and computer program product for optimizing an altered hardware design utilizing power reports
US20120144353A1 (en) Method for Implementing Timing Point Engineering Change Orders in an Integrated Circuit Design Flow
US8407655B2 (en) Fixing design requirement violations in multiple multi-corner multi-mode scenarios
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
US9672315B2 (en) Optimization for circuit migration
US8527927B2 (en) Zone-based area recovery in electronic design automation
US8418116B2 (en) Zone-based optimization framework for performing timing and design rule optimization
US8959467B2 (en) Structural rule analysis with TCL scripts in synthesis or STA tools and integrated circuit design tools
Kahng et al. An improved methodology for resilient design implementation
US7962877B2 (en) Port assignment in hierarchical designs by abstracting macro logic
US8132141B2 (en) Method and apparatus for generating a centerline connectivity representation
US10902167B1 (en) Feedback-aware slack stealing across transparent latches empowering performance optimization of digital integrated circuits
CN201607731U (zh) 用于序向单元的电路设计的设备
US11210448B1 (en) Mitigating timing yield loss due to high-sigma rare-event process variation
Nath New Applications of Learning-Based Modeling in Nanoscale Integrated-Circuit Design
Chinnery et al. Design Flows
Liu et al. Optimization for timing-speculated circuits by redundancy addition and removal
Malnar Synthesis flow for designing a high performance microprocessor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120524

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120823

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120924

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130829

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130904

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: 20131015

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131106

R150 Certificate of patent or registration of utility model

Ref document number: 5410523

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250