JP2010534375A - アーキテクチャー上の物理的合成 - Google Patents

アーキテクチャー上の物理的合成 Download PDF

Info

Publication number
JP2010534375A
JP2010534375A JP2010518234A JP2010518234A JP2010534375A JP 2010534375 A JP2010534375 A JP 2010534375A JP 2010518234 A JP2010518234 A JP 2010518234A JP 2010518234 A JP2010518234 A JP 2010518234A JP 2010534375 A JP2010534375 A JP 2010534375A
Authority
JP
Japan
Prior art keywords
instance
resource
force
medium
resource type
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.)
Granted
Application number
JP2010518234A
Other languages
English (en)
Other versions
JP5608079B2 (ja
JP2010534375A5 (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 JP2010534375A publication Critical patent/JP2010534375A/ja
Publication of JP2010534375A5 publication Critical patent/JP2010534375A5/ja
Application granted granted Critical
Publication of JP5608079B2 publication Critical patent/JP5608079B2/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/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • 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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

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

Abstract

【課題】高レベル記述から合成プロセスを通して集積回路を設計する方法及び装置を提供する。
【解決手段】本発明は、集積回路を設計する方法及び装置を開示する。1つの態様によれば、本発明の回路設計は、合成及び配置の繰り返しプロセスを開示し、各繰り返しは、集積回路の設計に対する増分的変化を与える。本発明の増分的繰り返し解決策は、合成から配置へ及びそれとは逆の連続的な進行を与え、現在インスタンス配置を知ることで合成に対する増分的改善がなされ、現在回路ロジックを知ることで配置に対する増分的改善がなされる。別の態様によれば、本発明の回路設計は、異種リソース分布問題に対処するためにリソースレイヤを使用する増分的力指向配置変換を開示し、インスタンスに対する力は、それらリソースのローカル混雑に基づきリソースレイヤからの力の重み付けされた平均となる。更に、増分的なエリア除去方法を使用し、リソース需要トポロジーマッピングのような力指向配置変換に基づくクオリティメトリックを通してリソース利用問題に対処することができる。
【選択図】図3

Description

本発明は、一般に、集積回路を設計する分野に係り、より詳細には、高レベル記述から合成プロセスを通して集積回路を設計することに係る。
関連出願:本出願は、参考としてここに援用する2007年7月23日に出願の米国プロビジョナル特許出願第60/951,436号(管理番号02986.P059Z)の利益を主張する。又、この出願は、“Architectural Physical Synthesis”と題する2008年7月22日に出願の特許出願第12/177,867号(管理番号02986.P1116)にも関連し、それと同日に出願されたものである。
VLSI(超大規模集積)技術の規模でデジタル回路を設計する場合、設計者は、コンピュータ支援技術をしばしば使用する。複雑なデジタル回路の設計及びシミュレーションを助けるために、デジタル回路を記述するハードウェア記述言語(HDL)のような標準言語が開発されている。VHDLやVerilogのような多数のハードウェア記述言語は、工業標準として進化した。VHDLやVerilogは、抽象的なデータ形式を使用してチッププリミティブレベル、レジスタ転送レベル(RTL)又はビヘイビアレベルでハードウェアモデルを定義できるようにする汎用のハードウェア記述言語である。装置技術が進歩し続けているので、より新しい装置及び設計スタイルで使用するようにHDLを適応させるために種々の製品設計ツールが開発されている。
HDLコードで集積回路を設計するときには、先ず、コードが書かれ、次いで、HDLコンパイラーによってコンパイルされる。HDLソースコードは、あるレベルで回路素子を記述し、そしてコンパイラーは、このコンピレーションからRTLネットリストを形成する。RTLネットリストは、複数のRTLオブジェクト、又はコンポーネントと、それらコンポーネント間の信号接続である複数のネットとで構成される。RTLネットリストは、フィールドプログラマブルゲートアレイ(FPGA)又は特定用途向け集積回路(ASIC)のような特定ベンダーの集積回路の技術又はアーキテクチャーとは独立しているという点で技術的に独立したネットリストである。RTLネットリストは、(ビヘイビア表現とは対照的に)回路素子の概略表現に対応する。次いで、マッピングオペレーションが遂行されて、技術的に独立したRTLネットリストから、ベンダーの技術又はアーキテクチャーで回路を生成するのに使用できる技術的に特有のネットリストへと変換し、これは、インスタンスを配置し、相互接続を配線して、回路が所与のタイミング、スペース及び電力制約を満足するようにすることを含む。
初期の電子設計自動化(EDA)は、図1に示すように、HDL合成を配置/配線プロセスから完全に分離する。オペレーション11において、HDLコードが準備される。オペレーション13では、オペレーション11で準備されたHDLがネットリストを形成するようにコンパイル及び合成され、このネットリストは、典型的に、ロジック最適化を遂行することにより最適化される。その後、マッピングプロセスで、ネットリストを特定のターゲット技術/アーキテクチャーへマップする。オペレーション13の終わりに、合成が完了し、ここで、ベンダーのICに使用される技術/アーキテクチャーに特有のネットリストが与えられる。このネットリストは、実際上、ゲートレベルにあり、ファンアウトカウント又は接続されたコンポーネント形式及びサイズのような予め配置された情報に基づいて相互接続プロパティの統計学的モデルを使用することによりタイミング分析が推定される。合成後、オペレーション15においてロジック回路で従来の配置オペレーションが遂行され、タイミング性能を満足するためにオペレーション17においてネットリストへのローカルな変化(チッププリミティブ或いはセル又はゲートレベルのみにおける)がなされる。次いで、各ICにおいて回路の設計を生成するためにオペレーション19において従来の配線オペレーションが遂行される。満足されない制約がある場合には、プロセスは、ループバック繰り返しで変更を行う。
以前は、初期の合成ツールにおいてインスタンスの遅延が優勢であるときに、統計学的モデルに基づくタイミング推定が充分正確であり、合成と配置を分離しても、HDL及び合成段階へ戻る繰り返しは比較的僅かに要求されるだけであった。
しかしながら、技術的な結節が収縮するにつれて、相互接続遅延が顕著になり、ゲート遅延を越える。その結果、合成オペレーションにおける遅延推定は、配置及び配線オペレーションに続く実際の遅延との相関性が益々なくなり、後分析結果と後レイアウト結果との間のタイミング予想の不足を招く。従って、多くのケースでは、配置及び配線プロセスの後に、回路の物理的レイアウトが回路設計基準を満足できなくなり、しばしば、設計者は、合成ステップからやり直して、合成/配置/配線プロセスを繰り返さなければならない。
合成を改善するために、合成プロセス中に設計(例えば、配置)に関連した物理的特性を考慮することが重要である。配置情報を合成プロセスへ持ち込むために、フロアプランニング、インプレース(in-place)最適化(IPO)及び物理的合成のような一連の技術が採用されている。
フロアプランニング技術では、設計がチップ上の領域へと区画され、配置に基づく相互接続推定が領域間の相互接続に使用される一方、統計学的モデルを使用して領域内の相互接続が推定される。フロアプランは、初期のRTL段階で使用することもできるし、後で初期合成動作の後に使用することもできる。フロアプランニングは、RTLコンポーネントを領域へと区画化し、複写し及びスライスし、そしてRTLレベルタイミング及びエリアモデルと結合するように拡張することができる。次いで、領域間タイミングからの改善されたタイミングを使用して、RTLレベル最適化をより正確に推進することができる。良質のフロアプランを手動で生成することは、挑戦であり、ユーザの熟練度を要求する。テラ(Tera)システム(米国特許第6,145,117号及び第6,360,356号)からのもののような自動フロアプランナーは、領域を生成し、それらにRTLコンポーネントを指定することができる。合成は、減結合され、自動フロアプランニングに続くので、フロアプランニング中にはタイミング及びエリア情報の精度が悪い。
インプレース最適化(IPO)と称される技術は、配置及び配線遅延のバックアノテーションを合成ドメインに与える。クリティカル経路は、最適化し直されるが、ディテール配置は更新されないので、変更されたネットに対する相互接続遅延は、統計学的モデルへ立ち返る。多くの変化がなされた場合には、それにより生じるネットリストをその後に合法化するのに、インスタンスをそれらの初期位置から離れて移動することが必要となり、大きな遅延推定エラーを招く。このために、タイミング閉鎖を達成するのに顕著な変化が要求されるときには、IPOが不安定に見える。
別の技術は、IPO技術に勝る改善である物理的合成であり、この場合は、マップされたネットリストにおける少数の最適化が増分的な再合法化とインターリーブされて、遅延及びリソースメトリックの忠実度を維持する。この技術の制約は、個々の変化がリソースの控えめな増加に限定されること、又はIPO技術の不安定さの問題が再浮上することである。現在、物理的な合成に対して多数の異なるアルゴリズムがある。図2は、配置されたインスタンスの接近度に基づくタイミング推定を使用して物理的合成エンジンを与える1つのアルゴリズムを示す。オペレーション23においてマップされたネットリストが最初に配置された後に、物理的合成オペレーションは、チッププリミティブレベルのみで遂行されるオペレーション24において増分的最適化及び再配置のための回路の部分を選択する。
以上のことから、電子設計自動化のためのアルゴリズムの改良が必要とされていることが明らかである。
従来の特許も、チップ合成に係り、又はチップ合成を説明しており、それらの特許は、米国特許第6,519,754号、第6,711,729号、第7,010,769号、第6,145,117号、及び第6,360,356号を含む。配置アルゴリズムは、最近、論文:ブーヒュー氏、Timing-Driven Placement for Heterogeneous Field Programmable Gate Array、IEEE/ACM International Conference on Computer-Aided Design, November 2006 (ICCAD '06)、第383−388ページ(ISSN:1092−3152;ISBN1−59593−389−1)に掲載されている。
本発明は、集積回路を設計するための方法及び装置を開示する。ここに例示する実施形態において、本発明の回路設計は、RTL又はビヘイビアレベルで始まる合成及び配置の繰り返しプロセスを開示し、ここで、各繰り返しは、集積回路の設計の変換を通して増分的変化を与える。ある態様では、変換は、合成変換又は配置変換のいずれかである。合成変換は、ネットリスト内のオブジェクト、及び/又はオブジェクト間の接続を形成するネットを変更する。配置変換は、ネットリスト内の1つ以上のオブジェクトの位置を変更する。本発明の少なくともある実施形態の増分的繰り返し解決策は、現在回路ネットリスト、配置、タイミング、リソース利用性、及び電力のような設計メトリックにより決定される適切な合成及び配置変換を使用して連続的な進行を与える。ある態様では、各変換の後に、影響のある設計メトリックが更新され、将来の変換判断が、正確な設計統計情報に基づいてなされるようにする。このプロセスは、設計の最終的タイミングリソース及び電力エンクロージャーに向かって増分的に繰り返される。
本発明の少なくとも幾つかの実施形態の重要な観点は、高レベルコンポーネントに対して特定のリソース形式が識別される前に配置が行われることである。例えば、コンポーネントに対して望ましい重み及び関連リソース合計をもつ別の具現化がカタログ化され、そしてプレーサー(placer)は、望ましい具現化のためにリソース形式の付近へコンポーネントを移動するように配置を進行させる。
好ましい実施形態では、本発明は、RTL又はビヘイビア設計(回路)を表現するグラフ及びチップリソースの物理的マップでスタートする。繰り返し変換が遂行され、各変換は、回路の最適化又は洗練化、或いは回路内のオブジェクトの配置を生じさせる。
一実施形態では、変換は、高レベル最適化より成る。この変換は、コンポーネント又は複数のコンポーネントを、ルール又は数学的変換を通して、タイミング、電力又はリソース消費のような優れた特性を有する機能的に同等の別の1組のコンポーネントへと最適化する。このような変換の一例は、ツリーの高さを減少して遅延を改善するように演算式を編成し直すことである。別の例は、リソースシェアリング又はアンシェアリングである。
別の実施形態では、高レベル最適化変換は、回路オブジェクト(1つ又は複数)のグループ(1つ又は複数)を、より抽象的な形態から、より具体的な形態へと洗練化する。洗練化変換の一例は、演算式をチップ上のDSPリソースへとマッピングすることである。抽象的な形態が洗練化されるときには、通常、多数の具現化選択肢がある。例えば、演算式は、チップ上の特殊目的の演算機能(DSPブロック)により又はメモリ内のテーブルルックアップにより具現化することができ、或いはチップ上の低レベルロジックコンポーネント(LUT又はゲート及びフリップ−フロップ)から構築することができる。ビヘイビア合成フローからのコンポーネントは、リソースの別のスケジュール及びシェアリングに基づいて登録される複数の具現化を有する。ビヘイビアコンポーネントに対するこのような代替物は、現在使用可能なリソース及び相互接続遅延に基づいて動的に発生することもできる。
又、別の実施形態では、洗練化変換は、別の具現化のクオリティに基づく緊急メトリックも有し、緊急性の順に選択される。具現化のクオリティは、エリア消費、電力消費又はタイミングのような設計目的に関して測定される。単一イベントアップセットの困難さのような他の、より秘儀的な目的を含むこともできる。例えば、設計が1つの大きなメモリ及び多数の小さなサイズのメモリを含み、且つ大きなメモリが、論理ファブリックにより具現化されたときに比較的悪い具現化クオリティをもつ場合には、大きなメモリを、設計上、中間サイズのメモリよりもチップ上の少ない特殊目的メモリリソースに関連付けることが非常に重要である。従って、大きなメモリに対する緊急性メトリックは、小さなメモリに対するメトリックよりも非常に高くなる。コンポーネントが特定の具現化へマップされ且つチップ上の特定のリソースに関連付けられると、それらコンポーネントへの接続が、回路の残部を配置するためのアンカーとして働き、タイミング及び使用可能なリソース推定のクオリティを改善する。
一実施形態では、配置変換は、インスタンスの混雑、配線可能性及び回路性能のような配置メトリックを改善するために1つ以上の配置可能なオブジェクトの位置を洗練化することができる。配置可能なオブジェクトは、ビヘイビア合成コンポーネント、非マップロジックのRTLブロック、マップされたロジック、又はそれらの組合せより成る。
一実施形態では、配置変換は、異なる抽象レベルのオブジェクトを変更することができる。例えば、ある配置可能なオブジェクトは、RTLブロックであり、他のオブジェクトは、マップされたゲートである。
別の実施形態では、配置がローカルに充分進化して、使用可能なリソースを決定できると共に、配線遅延を推定できるときに、洗練化変換がトリガーされる。
本発明の別の態様によれば、集積回路を設計するためのここに例示する方法は、増分的変換の繰り返しを与え、合成及び配置変換は、いずれの順序でもなく、それらの機能に対して選択されるだけである。回路設計自動化は、選択機能に基づいて、合成又は配置のいずれかである次の変換を選択する。各繰り返しにおいて、変換の所定リストに対するコストが計算される。このコストは、他の変換のコストの変化に対して前を見ることを含む。例えば、演算オペレーションがROMへマップされる場合には、そのコストを上げる別の具現化に対してROMオプションを除去することができる。現在配置、ネットリスト、リソース、タイミング又は電力のようなコスト集中基準に基づき最良の変換が選択される。
次の変換は、配置更新、リソース指定、合成最適化、配置最適化、又は配線更新である。従って、IC設計の状態は、最終的な回路仕様及びレイアウトに向かって増分的に進行する。
別の実施形態では、配置変換は、クリティカル経路が整形を開始するまで又は所定の混雑スレッシュホールドに基づいてリソースが充分に拡散するまで繰り返し遂行される。繰り返し遂行に対する基準は、タイミング、リソースレイヤ当たりの混雑、エリア利用度及び電力である。
リソースレイヤ当たりの混雑は、リソースレイヤの使用により決定することができる。チップ上のリソースの個別のプリミティブ形式ごとにリソースレイヤがある。例えば、今日のFPGA及び構造化ASICは、プリミティブチップリソースの不規則なレイアウトを導入する。これらのプリミティブな形式は、ロジック(LUTS)、フリップ−フロップ、高速シリアル相互接続のためのSERDESのような特殊なI/Oセル、異なる容量をもつ種々のメモリコンポーネント、及びDSPアルゴリズムをスピードアップするための高速演算ブロックを含む。ロジック及びフリップ−フロップを除くと、典型的に、これらのリソースは、希薄に且つおそらく不規則な形態で含まれる。多くのFPGAは、限定された量のRAM、DSP、及びチップ上で希薄な列に配置された他の専用ロジックブロックを有する。例えば、DSP演算ブロックは、チップレイアウトにおいて2列しか使用できない。リソースレイヤは、プリミティブ形式ごとに生成される分布マップであり、その形式に対する使用可能なリソース位置と、その形式の各プリミティブの配置とを記録する。レイヤは、供給量より使用量が多いローカルな物理的領域が存在する場合に混雑していると言える。
この方法の典型的な例では、集積回路の設計の初期状態が、IOピン、既存のフロアプラン、又は既存の配置のようなタイミング制約及び配置制約を伴う高レベル表現から発生される。高レベル表現は、ハードウェア記述言語(HDL)コードであるか、又はハードウェア記述言語(HDL)コードからコンパイルした後の技術的に独立したRTLネットリストである。
一実施形態では、集積回路の設計の初期状態のネットリストが、先ず、タイミングに基づく一連のニュートラル最適化により最適化される。ニュートラル最適化は、リソースシェアリング又はアンシェアリング、好ましくはファンアウトテーブルタイミングに基づくアダーツリー分解、リソース指定、ハイアラーキーにわたり最適化を容易にするためのネットリストの平坦化、マルチプレクサ抽出又は再構築のような容易にアンドゥできるエリアの回復である。
一実施形態では、集積回路の設計の状態の一般的なフローは、RTLネットリストから分解及び因子分解へと進み、次いで、マップされ配線されたネットリストへと進む。配置変更、リソース指定、及びエリア又はタイミング最適化は、このフローを通して遂行される。
一実施形態では、配置及び回路アーキテクチャーを洗練化するプロセスは、全ての高レベルコンポーネントに特定の具現化及びリソース指定が与えられ、そして配置がチップに分散されて各コンポーネントが具現化のために充分近くにリソースを有するまで、繰り返される。この点から具現化を完了するために、より慣習的な物理的合成フローを使用することができる。
別の実施形態では、適用される変換及びそれらの潜在的な代替物が記録される。フローが繰り返され、そして別の変換を適用して、良好な結果を得ることができる。
又、本発明は、集積回路を設計するのに使用できるソフトウェア媒体を含む装置も開示する。例えば、本発明は、本発明に基づき集積回路を設計することのできるデジタル処理システムを含み、又、本発明は、コンピュータシステムのようなデジタル処理システムで実行されたときに、そのデジタル処理システムが集積回路設計方法を実行するようにさせるマシン読み取り可能な媒体も提供する。
本発明の他の特徴は、添付図面及び以下の詳細な説明から明らかとなろう。
本発明は、同様の要素が同じ参照番号で示された添付図面を参照して、一例として以下に説明するが、これに限定されない。
集積回路を設計するための従来の方法を示す。 物理的合成の従来の方法を示す。 本発明の一実施形態に基づき集積回路を設計するための方法のフローチャートである。 本発明の一実施形態に基づき集積回路を設計するための別の方法のフローチャートである。 本発明のある実施形態に基づき集積回路を設計する方法の細部を示す。 本発明のある実施形態に基づき集積回路を設計する方法の細部を示す。 本発明の一実施形態に基づき集積回路を設計するための方法のフローチャートである。 形状及びリソースの推定を例示する。 リソース形式に対するマッピングを例示する。 メモリリソースのマッピングを例示する。 メモリリソースのマッピングを例示する。 リソースシェアリング具現化を例示する。 リソースシェアリング具現化を例示する。 アダーツリー分解の一例を示す。 ゲートツリー分解の一例を示す。 スライス最適化の一例を示す。 スライス最適化の一例を示す。 複写最適化の一例を示す。 シャノン展開の一例を示す。 mux/pmuxコラプス及びタイミング駆動分解の一例を示す。 mux/pmuxコラプス及びタイミング駆動分解の一例を示す。 本発明に使用できるデータ処理システムのブロック図である。
集積回路又は複数の集積回路を設計するための方法及び装置をここに開示する。以下の説明において、説明上、本発明を完全に理解するために多数の特定の細部について述べる。しかしながら、当業者であれば、本発明は、これらの特定の細部を伴わずに実施できることが明らかであろう。他の点について、良く知られた構造、プロセス及び装置は、過度な細部を伴わずに説明をなすために、ブロック図で示すか又は概略を述べる。
本発明は、一実施形態において配置及び合成を単一パスに結合して集積回路を設計する方法及び装置を開示する。本発明の一実施形態は、合成と配置との間の相互作用がアーキテクチャーレベルで行われる「アーキテクチャー上の物理的合成」と称される物理的合成プロセスを開示する。これは、合成を、集積回路基板の表現上に実際に物理的に配置した状態で行えるようにし、使用可能なローカルリソースと、配置からの実際の回路タイミングに厳密に関連した遅延推定で合成を行い、従って、合成と配置との間の相互作用を同時に考慮することができる。更に、これは、高レベルのアーキテクチャー上の判断を行うか、高レベルコンポーネントをマッピングするか、或いは配置、混雑推定及びターゲットチップアーキテクチャーの特性を考慮する仕方で高レベル回路変換を行う自動的方法を提供することができ、前記特性は、種々のリソースの物理的分布、コンポーネント遅延、及び相互接続遅延を含むが、これに限定されない。本発明の1つの態様によれば、回路設計、又はHDLコード表現が与えられると、特に、所与の分布リソースを伴う既存のフロアプランに対して合成及び配置を相互リンクする非常に多数の別々の具現化が存在する。最適な設計具現化を達成するために、配置を通して収集されたタイミング又は電力のような現在入手できる回路データに基づいて早期合成判断を後方追跡できることが重要である。
従って、本発明の態様では、種々の設計具現化の適切さを正確に評価できるようにするため、配置は、早期合成サイクル、例えば、回路アーキテクチャーレベル、高レベル設計又はビヘイビア表現において遂行される。これは、リソースがチップ上に均一に分布されないFPGA及び構造化ASICのような前拡散型(prediffused)チップでは特に重要である。この前拡散型チップでは、リソースの位置及びリソースの形式が予め決定されて、希薄な状態で分布される。例えば、今日のFPGA及び構造化ASICは、チップリソースの不規則なレイアウトを導入している。これらのコンポーネントは、ロジック、フリップ−フロップ、高速シリアル相互接続のためのSERDESのような特殊I/O、異なる容量をもつ種々のメモリコンポーネント、及びDSPアルゴリズムをスピードアップするための高速演算ブロックを含む。多くのFPGAは、限定された量のRAM、DSP、及びチップ上で希薄な列に配置された他の専用ロジックブロックを有する。例えば、DSP演算ブロックは、チップレイアウトにおいて2列しか使用できない。
1つの態様において、本発明は、合成フローの始めに物理的配置及びアーキテクチャー選択を統合するためにチップアーキテクチャー進化のこの変化に向けられる。この要求は、RTLレベル又はビヘイビア合成レベルであり、ここで、異なる形式の所要リソースの数が決定される。
リソースレイアウト情報の現在の意識と、早期合成プロセスにおける配置及び合成の統合(例えば、設計の多くのコンポーネントは具現化を選択していないが)は、リソースの最適な利用を与える。例えば、リソースレイアウト情報を意識しないRTL合成プロセスは、あるリソース形式は過剰に使用するが、他のリソース形式はあまり使用されない中間ネットリストを生じる。更に、リソース形式判断は、リソースの物理的位置に適合しないことがある。例えば、チップのあるローカル部分では、利用できる以上のDSPリソースが要求されることがある。本合成方法は、チップ上のリソース分布について知り、そして特定のリソースが充分あるかだけでなく、充分近くにあるかも知ることで、これらリソースの効率的な利用を与えることができる。従って、遠くに配置されたリソースへ信号を配線することによる大きな相互接続遅延を回避することができる。
本発明の態様によれば、種々の配置判断が決定されるが、合成は依然高レベル回路表現であり(例えば、設計における多数のコンポーネントはまだ具現化を選択しておらず)、又はゲートレベル記述を依然決定しなければならない。これらの配置判断は、タイミング遅延又は電力消費のような回路パラメータの正確な評価を可能にし、最適な設計具現化に向かう増分的経路を許す。一実施形態では、図3に示すように、プロセスは、オペレーション30において、ESL又はHDL言語、ビヘイビア抽象、或いはRTLネットリストの高レベル抽象に対するコンパイルされたHDLコード、並びにタイミング、フロアプラン、電力及び配置制約を含むIC設計の初期状態でスタートする。オペレーション31において、合成変換が遂行され、これは、プロセスの早期段階では、高レベル変換である。この合成変換は、設計の一部分に対するものである。オペレーション32では、配置変換が既存の回路表現において遂行され、早期段階では、アーキテクチャーレベルでの配置となる。この配置変換は、設計の一部分に対するものである。このオペレーションにおける配置判断は、この早期段階では詳細な情報がおそらく欠落するので、種々の仮定及び推定を必要とすることがある。IC設計状態の容易さがオペレーション34において評価され、そして設計及び法的目的を満足する場合に、オペレーション48における慣習的な物理的合成へ移行する。この早期段階ではあり得るが、目的を満足しない場合には、合成の別の段階へループバックする。
合成の次の繰り返し(現在のオペレーション31)は、特に、物理的配置情報が与えられた(手前のオペレーション32)後に、設計表現を改善する。同様に、配置の次の繰り返し(現在のオペレーション32)は、合成の改善が与えられた後に回路パラメータの推定を改善する。このような密接なループでは、合成及び配置が一緒に緊密に働き、顕著な見直しを伴わずに最適な設計表現への経路を与えることができる。
一実施形態では、合成オペレーションは、回路設計表現に対して種々の具現化を与え、そして配置オペレーションは、選択肢を狭める上で助けとなるように、回路パラメータの分析を遂行することができる。例えば、具現化#1が明らかに優れている場合には、それが選択され、潜在的具現化の数が1に狭められる。或いは又、具現化#2が明らかに設計制約の範囲外である場合には、それが排除され、潜在的具現化の数が1だけ狭められる。
本発明の1つの態様によれば、複数の集積回路を設計するためのここに例示する方法は、抽象的なマシン仕様から、統合された双方向及び繰り返し式の合成及び配置を与える。一実施形態では、集積回路を設計するここに例示する方法は、IC設計の状態を増分的に変化させる。ESL又はHDL言語、ビヘイビア抽象、或いはRTLネットリストの高レベル抽象に対するコンパイルされたHDLコード、並びにタイミング、フロアプラン、電力及び配置制約を含むIC設計の初期状態でスタートして、ここに例示する方法は、最適な設計状態に到達するまでIC設計状態を増分的に繰り返し変化させる。最適な状態は、タイミング及び配置制約を満足するチッププリミティブレベルネットリストであるのが好ましく、これは、次いで、広範囲な見直しを行わずに慣習的な配置及び配線プロセスへパスすることができる。
1つの態様によれば、本発明は、合成及び配置の繰り返しプロセスを開示し、各繰り返しは、集積回路の設計に対する増分的変化を与える。本発明の幾つかの実施形態についての一般的な例を、図4を参照して説明する。図4の方法は、IC設計の初期状態を発生するオペレーション40で開始される。IC設計の初期状態は、ビヘイビア表現又は高レベルRTLネットリストを含み、これは、回路及びロジックを記述するHDLソースコードからコンパイルすることができる。
技術的に独立したRTLネットリストは、典型的に、設計の高レベルビヘイビア表現である。これは、最終的なマッピングステップの前にプロセスによって使用するための抽象情報を保存する。これは、言語コンピレーションを行った直後に、設計を微細な低レベル(ゲート)表現へと断片化する慣習的な合成ツールとは異なる。高レベルのビヘイビア表現を保存することにより、合成ツールは、最適化、区画化、及びフロアプランニングを非常にグローバルなレベルで遂行して、典型的に、良い結果を与えることができる。抽象データに対して動作することで、合成ツールは、より迅速に動作し、より大きな設計を取り扱うことができる。高レベルのRTLネットリストは、特定ベンダーの技術又はアーキテクチャーとは独立して、回路ブロック表現のような高レベル抽象を含む。
IC設計の初期状態は、更に、タイミング制約、電力制約及び配置制約、例えば、IOピン位置、既存のフロアプラン又は既存の配置(例えば、ICチップ、IPブロックのサイズ及び形状)含む。オペレーション42において、IC設計の状態は、増分的に変化される。集積回路の設計の状態は、一般的に、ネットリスト、タイミングデータ、リソース情報、配置情報、配線情報、及び電力データを含む。設計状態の増分的変化は、合成又は配置変更であり、以下に詳細に述べる。本発明の1つの態様において、変化は、増分的であり、これは、設計の最適化が、典型的にタイミング推定及び配置制約のような全ての現在情報と共に小さな変更で進行することを意味する。増分的変化は、着実に進行する完全な機密状態で設計を進行させることができる。1つの態様では、増分的な変化は、力指向方法のような増分的なグローバルな配置アルゴリズムを含む。別の態様では、増分的変化は、シミュレーションされるアニールのようなグローバルな最適化アルゴリズムを含む。オペレーション44では、IC設計の状態が評価され、そしてオペレーション46において、オペレーション42へ戻ることにより更に繰り返しを続けるべきか、又はオペレーション48で設計フローを完了すべきかの判断がなされる。
本回路設計方法は、合成及び物理的設計(例えば、配置及び配線)である集積回路設計の2つの基本的ステップ間に高度な統合及び繰り返しプロセスを与える。合成及び配置が強く相互依存する概念では、配置を伴わない合成において設計制約を正確に推定できず、又、合成を伴わずに配置を遂行することもできないので、本発明の設計方法は、合成及び配置を、増分的繰り返し解決策で、1ステッププロセスへ効果的に合体する。
一実施形態では、本方法は、合成/配置変換の繰り返しを与える。繰り返しプロセスの本体は、配置変換、合成変換、或いは合成及び配置変換の組合せである。いずれの場合にも、集積回路の設計の状態は、設計目的を満足するチッププリミティブレベルネットリストの合成又は配置に向かって増分的に繰り返し変化する。図5A及び5Bは、ICを設計するためのフローの一部分の2つの例を示し、即ち図5Aに示す方法のケースでは、最初に配置変換が生じ、その後、合成変換が生じるが、図5Bでは、その逆のことが生じる。合成、配置、又は合成/配置の増分的な繰り返し変換は、設計のいずれの状態においても合成と配置との間の連続的な相互作用を与える。合成及び配置の増分的な繰り返しの進行は、合成変換が、常に、最新の最も正確な設計状態情報を有するように保証し、この設計状態情報は、配置変換からの遅延情報及びローカルリソースの利用性を含み、そして配置変換は、常に、最新の合成ネットリストに基づいて物理的配置及び配線情報に対する最良の推定を与える。配置及び合成変換は、ネットリストがチップレベルプリミティブのみで構成され、設計目的が満足され、そしてディテールプレーサーが小さなローカル領域を独立して容易に合法化できるレベルに配置混雑が減少されるまで、続けられる。このフローの後に慣習的な物理的合成が続いて、具現化が完了となる。
図6は、IC設計状態の増分的変化のための本発明の実施形態を示す。本発明は、全ての抽象レベルを同時に配置することができる。早期の繰り返し中には、設計が主としてチッププリミティブより成るその後の繰り返しより、高い抽象レベルにあるオブジェクトがはびこっている。チッププリミティブインスタンスは、典型的に、最低レベルの表現である。合成変換は、ネットリストを徐々に変更し、より高い抽象レベルにあるオブジェクトを、より具体的なオブジェクトへと変化させる。これらの具体的なオブジェクトは、それに続く合成及び配置変換において考慮に入れられるより特定のリソース要求を有している。配置変換は、RTLインスタンス、非マップインスタンス、マップされたインスタンス、又はチッププリミティブレベルインスタンスのいずれかであるネットリストインスタンスの位置を決定し、これにより、回路におけるネットの長さ及び遅延をルータで決定する。配置変換は、合法的配置に向かって回路配置を徐々に繰り返すことができ、ここで、合法的配置とは、ICチップのリソース使用を支配するルールを満足することを意味する。典型的に、早期の繰り返しでは、配置は、あまり合法的でない。配置変換は、オブジェクト位置の増分的変化をなすので、配置変換を一回繰り返しても、合法的配置とならない。配置変換を繰り返すことで、配置が合法的となる。この実施形態では、配置変換は、本電子設計自動化の中心である。
各繰り返しにおいて、繰り返しの基準は、タイミングデータ、リソースレイヤ当たりの混雑、エリア利用性、電力レベル、又はその組合せである。この方法は、更に、設計を最適化し、クリティカル経路を整形し、又はリソースを所定スレッシュホールドに対して拡散するために考えられる内部ループ繰り返しを含むことができる。
合成及び配置変換を増分的に繰り返す本発明の方法の実施形態では、設計の全ての段階で合成変換において物理的設計情報を常に得ることができる。従って、合成における最適化及び変換は、タイミング及びエリアに関して、又、配線可能性に対する影響に関して、常に最新である。合成においてなされる回路構造に関する判断は、配置と完全に一致している。
合成及び配置変換を増分的に繰り返す本発明の方法は、論理的構造及び回路の空間的配置を同時に最適化するように合成及び配置変換を効果的に結合する。この方法の典型的な例では、集積回路の設計の状態が、最終的な回路仕様及びレイアウトに向かって増分的に進行する。
繰り返し配置変換の進行は、ネットリストの成熟度の増加レベル又は配置構成である。設計の成熟度は、ネットリストがチップレベルプリミティブのみで構成される程度、設計目的が満足される程度、及びディテールプレーサーが小さなローカル領域を独立して容易に合法化できるレベルまで配置混雑が減少される程度によって測定される。
繰り返し合成変換の進行は、タイミング制約を満足するためのオブジェクト又はインスタンスの再構成又は複写のような合成最適化である。合成最適化は、回路最適化、抽象的コンポーネントの分解、演算マッピング、アンドゥ/ドゥリソースシェアリング、アダーツリー分解、配置に基づくアンド/オアゲート分解、経路複写、経路迂回除去、RAM又はDSPのような離散的リソースへの指定、論理的因子分解、マルチプレクサ再構成、或いはハイアラーキーにわたる最適化を容易にするためのネットリストの平坦化を含むが、これらに限定されない。
この方法の実施形態が図6に示されており、これは、IC設計の初期状態が発生されるオペレーション61で開始される。IC設計の状態は、タイミングデータ、リソース情報、配置情報、配線情報、及び/又は電力データのような関連状態情報を伴うRTLネットリストである。典型的に、IC設計の状態は、機能、タイミング、電力及びフロアプランのような回路要件を指定するのに充分な情報を含む。
高レベルRTLネットリストは、ほとんどのオブジェクトが低レベルチッププリミティブの抽象であるところのネットリストである。関連プリミティブのグループは、RTLによってエンコードされた機能を表す高い表現レベルをもつオブジェクトとして表すことができる。集積回路設計の高レベル又は抽象的表現は、RTLコード又はその一部分を表す論理的オブジェクトである。各オブジェクトは、典型的に、多数のチッププリミティブを表し、例えば、アダー、マルチプライヤ、マルチプレクサ、及びシーケンスロジック、並びにAND機能、OR機能のような、より複雑な機能を表す。又、高レベル表現のオブジェクトは、メモリブロック又は専有(知的プロパティブロック又はIP)ブロックを含むこともできる。他の論理的オブジェクトは、グルーロジック(バッファ又はインターフェイス機能を与える)、タイミングロジック、制御ロジック、又はメモリロジックのようなサポート機能を与えるためのRTLコードの各部分である。又、高レベルRTLオブジェクトの幾つかは、チップレベルプリミティブでもよい。又、オブジェクトのネットリストは、配線及び配置のための各オブジェクトに関連した情報も含む。オブジェクトは、対応するRTLコードへマップして戻るための情報を含むことができる。
更に、RTLコードは、機能が一緒にグループ編成されたハイアラーキーを含むことができる。ある状況では、タイミング、ルーティング、エリア、又は電力要件を最適化するために、コンポーネントを1つのハイアラーキーから別のハイアラーキーへグループ編成し直すことができる。他の状況では、増分的繰り返しプロセス中に、機能的RTLハイアラーキーを全体的又は部分的に平坦化することができる。
最初に、設計の初期状態は、タイミング制約、電力制約、及び/又は配置制約のような制約を含むことができる。例えば、配置制約は、IOピンの位置、既存のフロアプラン、又は既存の配置データを含むことができる。
ここに例示する実施形態では、設計の初期状態は、最初に、タイミングに基づく一連のニュートラル最適化によって最適化される。このニュートラル最適化は、容易にアンドゥできるエリア回復、例えば、アンドゥ/ドゥリソースシェアリング、ファンアウトテーブルタイミングに基づくアダーツリー分解、明らかなリソース洗練化、例えば、設計上大きなRAMがあり且つ1つのRAMブロックリソースしか使用できない場合にRAMがそこへ行かねばならないこと、ハイアラーキーを横切る最適化を容易にするためのネットリストの平坦化、並びにマルチプレクサ構造体の抽出及び再構築を含む。
オペレーション62において、IC設計の状態を増分的に変化するために現在設計状態(現在配置、ネットリスト、リソース、タイミング、電力及び配線)に基づいて次の変換が選択される。オペレーション63−70は、本発明の一実施形態による典型的な変換であり、配置又は配置更新(63)、リソース指定(64)、因子分解(65)、マップ(66)、ロジック最適化(67)、具現化の生成/洗練化(68)、配線更新(69)、及び他の合成(70)を含む。これらの変換は、典型的に、配置及び合成のシームレスな統合を許す小さな増分的なオペレーションであり、従って、合成は、配置を知ることで遂行され、そして配置は、合成を知ることで遂行される。
従って、繰り返し及び増分的変換63−70は、アンドゥ/ドゥリソースシェアリング、アダーツリー分解、AND/ORゲート分解、ロジック複写、ビットスプライシング、迂回除去、因子分解のような最適化変換、並びに離散的リソース(RAM、DSP、等)への指定、及び配線のような配置変換を含む配置及び合成オペレーションで構成される。
ここに例示する実施形態では、各繰り返しにおいて、オペレーション62では、種々の潜在的な変換がコスト関数に基づいて評価される。コスト関数は、最初に動作すべき最良の変換を選択するように設計され、それ故、タイミング、配置混雑、配線混雑、エリア利用性及び電力のような設計状態情報を含む。評価の際に、最良の変換が遂行され、そして設計制約が満足されるまで繰り返しが続けられる。1つの態様において、設計は、次いで、慣習的なゲートレベル配置及び配線へと進む。
各繰り返しにおいて、この方法は、選択のリストを通して実行されて、コスト関数に基づいて最良の変換を選択する。例えば、配置変換と合成変換との間の選択は、タイミング収斂基準に基づく。クリティカル経路では、配置は、もし可能であれば、クリティカルネットを短縮するように試みることができる。クリティカルネットを短縮できない場合には、物理的合成最適化にネットを使用することができる。
本発明の別の態様によれば、集積回路設計するためのここに例示する方法は、変換の繰り返しを与え、合成及び配置変換は、いずれの順序でもなく、それらの機能に対して選択されるだけである。この方法は、合成と配置との間の良好な繰り返しを与え、その繰り返しの中で、タイミング及び配置制約を伴う最終的な構成に向かって進行するように、集積回路の設計の状態に基づいて次の変換が選択される。一実施形態では、この方法は、タイミング、リソースレイヤ当たりの混雑、エリア利用性、及び電力のような幾つかの基準に基づいて次の変換を選択する変換選択アルゴリズムを与える。次の変換は、リソース混雑の少ない現在ネットリストに対して配置変化を生じさせるか又は設計目的を良好に満足するために回路が繰り返しを受けるような配置の更新である。次の変換は、因子分解、最適化、又は分解のような合成最適化である。次の変換は、タイミング又は重要経路要件を満足するための分割、再構築又は複写のような合成最適化である。次の変換は、回路仕様及びレイアウトを完成させるか又は配線を更新するためのチッププリミティブレベルネットリストに向かって、現在ネットリストを低い抽象レベルへマップさせることのできる合成である。
次の変換は、フロアプラン区画化、リソース指定、タイミング又は重要経路要件を満足するためのロジック再構築又は複写、或いはインスタンス配置のための配線更新のような配置最適化である。次の変換は、回路仕様及びレイアウトを完成させるためのチッププリミティブレベルネットリストに向かって、現在ネットリストを低い抽象レベルへマップさせることのできる合成オペレーションである。
増分的変換では、タイミング及び電力のような設計状態情報が最新のものであり、それ故、目的に対する影響の正確なビューで最適化を遂行することができる。
別の実施形態では、多数の変換が選択される。各々の選択された変換が、次いで、設計状態に対する影響を測定するように適用され、そして復帰又はアンドゥされる。次いで、最良の変換が選択され、適用される。
一実施形態では、本発明の重要なステップは、オペレーション68であり、ネットリストの各RTLオブジェクトに対して、考えられる具現化選択肢を生成し又は洗練化する。その関連機能は、別の具現化の各々に必要とされる形状及びリソースの推定を遂行する。別の実施形態では、オペレーション68は、好ましい具現化を指示する重みを各具現化に指定することもできる。アーキテクチャーレベルで合成及び配置を合体する本発明の1つの重要な効果は、異なるアーキテクチャー上の具現化を評価できるようにすることである。本発明のアーキテクチャー上の物理的合成がないと、RTL合成段階において具現化が選択されたときに、ゲートレベル配置段階で、高レベル情報を回復することができない。その結果、他の具現化が好ましい場合には、準最適状態となる。それ故、具現化判断がRTLレベルにおいて物理的情報でなされた場合には、非常に優れたタイミング結果を得ることができる。この変換は、配置及び配線段階に対して回路がマップされると、遂行することが非常に困難である。
繰り返しが進み、設計状態が洗練化するにつれて、オペレーション68は、下位プロパティをもつ具現化選択を排除する。関数F、即ち具現化、F=S&(A*C)||〜S&(B*C)の例を使用して、オペレーション68を説明する。選択信号Sが1である場合には、Fは、AとCを乗算した結果であり、一方、Sが0である場合には、Fは、BとCを乗算した結果である。オペレーション68は、この関数に対して考えられる別の具現化を決定する。図10A及び10Bは、この関数に対して生成/洗練化(Create/Refine)具現化オペレーションが生成する2つの考えられる別の具現化を示す。図10Aは、2つのマルチプライヤ及び1つのマルチプレクサを使用する具現化を示し、これは、出力Fがタイミング重要であり且つ選択信号Sが最新の到着時間である場合に望ましいものである。図10Bは、単一のマルチプライヤ及びマルチプレクサを使用する具現化を示し、これは、入力Cが最新の到着信号であるか、或いは出力Fがタイミング重要でなく且つエリアの減少が望まれる場合に、より望ましいものである。これら2つの別の具現化は、リソースシェアリング/アンシェアリングを示す。関数のタイミング及び配置に関する具体的情報がないと、典型的な高レベル合成アルゴリズムは、典型的に、図10Aのような別の具現化を評価しない。というのは、2つの非常に高価なマルチプライヤに対してリソースを使用するからである。これは、慣習的なフローの配置が、出力重要で且つ選択信号SがA、B及びCの後に到着する状態で、この関数を、専用の未使用マルチプライヤリソース付近に配置する場合であってもそうである。本発明では、オペレーション68は、これら具現化の両方を生成し、そしておそらく他のものは、明らかにそれらが準同等であるときには別の具現化を排除する。例えば、繰り返しが進むにつれて、出力Fが重要でなくなることが明らかである。この場合に、オペレーション68は、具現化選択を図10Bのものだけに洗練化する。というのは、この別の具現化は、少数のリソースしか使用しないからである。或いは又、オペレーション68は、F及び選択ラインSが重要であり且つマルチプライヤを具現化するのに使用できるリソースが近くにある場合には図10Bの具現化を排除する。
FPGAチップは、典型的に、複数の前拡散型メモリリソース、例えば、フリップ−フロップと、ビットサイズの変化するブロック、例えば、512、4K、及びMRAMとを有する。設計により要求されるメモリコンポーネントも、サイズが変化する。典型的に、これらのメモリコンポーネントをどのように具現化すべきか明確でない。例えば、2ないし512ビットの適度なサイズのRAMは、フリップ−フロップ、512リソース、又は4Kリソースで具現化することができる。更に、大きなメモリサイズに対するリソースのサイトは、典型的に、チップ上で希薄に得られるだけである。以前のEDAツールでは、配置情報は、メモリ具現化段階では得られなかった。それ故、具現化の判断は、ローカル使用及び正確なタイミング情報なしに行われた。この制約は、重大な性能低下を生じさせる。適度なサイズのRAMが512リソースとして具現化され、唯一使用可能な512サイトが、RAMが接続されるロジックから遠くに位置される場合には、RAMを512に強制すると、相互接続部が長くなると共に、フリップ−フロップの具現化に対して512サイトを使用する遅延の有利さを無効にしてしまう。フリップ−フロップを使用する具現化の遅延は、長くなるが、この具現化で、RAMのフリップ−フロップと、RAMが接続されるロジックとの間の相互接続部を短縮できる場合には、より高速の設計となる。或いは又、使用可能な4KリソースがRAM接続ロジックの付近にある場合には、4Kとして具現化するのが効果的である。従って、メモリ具現化判断は、種々の使用可能なメモリリソースと、メモリへ接続するコンポーネントの位置とを考慮して、行わねばならない。
図9Aは、メモリ具現化判断の一例を示す。この図は、メモリリソースを頂面及び底面にもつチップを例示している。4ビットRAMがチップの右側のパッド及びANDゲートに接続されている。RAMがメモリとして具現化されてチップの頂面に配置される場合には、そのパッド入力及びそれが駆動するANDゲートへの相互接続部が非常に長いものになる。図9Bは、同じロジックの交互のマッピングを示す。RAMは、近傍のロジックを使用して具現化され、その結果、相互接続部及び遅延が非常に短くなる。
オペレーション68に密接に関連するのは、具現化に必要な形状及びリソースを推定する機能である。一実施形態では、この機能は、RTLコンポーネントに対するリソースを推定するためにマッピングを遂行する。別の実施形態では、このマッピングは、ターゲットとするチップアーキテクチャーに特有のものである。これらリソース推定は、特定コンポーネントのロジック要件及び入力/出力要件を推定して、ターゲットアーキテクチャーでモジュールを具現化するように設計された合成に基づいている。更に、一実施形態では、この機能は、コンポーネントに対するタイミング遷移も推定する。
図7は、2つのバスA[31:0]及びB[31:0]を加算して第3のバスO[31:0]を形成するアダーの一例を示す。このアダーを具現化するのに必要なロジックエリアは、具現化を推定し、必要なリソースと、入力から出力への内部遷移遅延とを決定する変換を通して推定される。ある態様では、例えば、アダーは、各々16個のルックアップテーブル(LUT)より成る2つのロジックアレイブロック(LAB)を使用して具現化することができる。
オペレーション65−67及びオペレーション70は、ここに例示する合成変換で、例えば、ロジック因子分解(オペレーション65)、ロジックマッピング(オペレーション66)、ロジック最適化(オペレーション67)、及び抽象化(オペレーション70)であり、RTLネットリストによって表されたコンポーネント及び接続が変更されて、設計状態、例えば、タイミング、電力を改善する機能的等価回路を生じさせる。これらの変換は、コンポーネント及びそれらの相互接続部を追加又は除去することができる。変換の例は、コンポーネントの複写を遂行し、又は一体的RTLコンポーネントを分割することを含む。
ここに例示する実施形態は、I/O、異なるサイズのメモリ、CPU、及びDSPに対して存在する非常に大きなクラスの具現化選択の非常に簡単なケースを表す。異なる設計は、これらのリソースを異なる仕方で使用することを希望する。本発明の抽象化変換であるオペレーション70は、タイミング情報、接続されたコンポーネントの位置、各リソース形式の利用性、及び配線の利用性に基づき、具現化を変化させることができる。抽象化変換は、オペレーション68の生成/洗練化変換と同様である。オペレーション68は、将来の繰り返しにおいて維持され評価される複数の交互の具現化を生成するが、抽象化オペレーションは、より詳細な具現化から抽象的コンポーネントへと抽象化する。抽象的コンポーネントの種々の具現化が考慮され、最良の具現化が選択されて、元の具現化に置き換えられる。この能力は、考えられる全てのアーキテクチャー上のマッピング選択を列挙して、それらの全部を、マッピング、配置及び配線を通して実行する別の具現化を回避する。
抽象化変換の一例が、アダーツリー分解オペレーションを示す図11に示されている。アダーツリー分解は、n入力アダーをm入力アダーツリーへ分割する。配置から導出される遅延情報がないと、この最適化は、どこの入力がどこに位置するアダーへ入るかの情報をもたず、入力到着時間のおおよその推定に基づきツリーを形成することしかできない。この例では、全ての入力がレジスタから到来する場合に、それらは、ほぼ同じ到着時間を有する。分解は、リーフノードに対する(a、b)、(c、d)及び(e、f)組合せを取り上げる。しかしながら、入力b及びd、a及びcは、互いに接近して配置されてもよい。配置情報と共に、リーフノードに対する(a、c)、(b、d)、(e、f)組合せを取り上げるのがよい。これは、非常に良好なタイミングを出力に生じる。
ゲートツリー分解の別の抽象化例が図12に示されている。合成フローのクリティカルステップは、32入力ANDゲートのような多数の入力をもつ大きなゲートをツリー表現へ分解することである。この段階は、通常、フローにおいて早期に一度遂行され、ツリー分解に関する判断は、大きなゲートのドライバの位置に関する情報を含まない。本発明は、ゲートツリー分解及び再構成を、配置及びタイミングが分かった変換として含む。重要度の最も低い最も早期に到着する入力は、ツリーのリーフレベルで入れられ、そして近傍にある他の重要度の低い入力とグループ編成される。タイミングが因子でないときには、信号ドライバの位置によって入力信号がグループ編成される。
最適化ロジック変換であるオペレーション67は、タイミング又は電力のような設計目的に対して最適化するようにネットリストを変化させる。最適化変換の一例が、図13Aに示すスライシングオペレーションである。広いプリミティブの入力又は出力が遠く離れている場合には、プリミティブを分割することが効果的である。この最適化は、配置情報に基づいて遂行するしかない。以下の例は、出力が非常に離れた2ビットメモリa[1:0]に対するこのケースを示す。このメモリは、2つのフリップ−フロップに分割され、これを、次いで、それらの出力に非常に接近して配置することができる。
別の例では、コンポーネントがファンアウト又はファンイン信号の位置に基づいて分割される。例えば、図13に示す例は、メモリのファンアウトの位置に基づいて3つのクラスターに分割されたメモリを示す。従って、単一のボックスとして示された元のコンポーネントは、対応する負荷に基づいてスライスされた3つの新たなコンポーネントを生成するように分割されている。コンポーネントの入力信号に基づいて同様の分割を適用することができる。この最適化は、一般的なもので、メモリに限定されない。
ここに例示する別のオペレーションは、図14に示すロジック複写である。複写の条件は、分割に非常に類似している。入力又は出力が遠く離れたコンポーネントの場合、コンポーネントのコピーを取って、クリティカル負荷の近くに配置することが効果的である。この最適化は、配置情報に基づいて遂行するしかない。以下の例は、出力が非常に離れたコンポーネントaに対するこのケースを示す。これは、2つのインスタンスa_1及びa_2に分割され、これを、次いで、それらの出力に非常に接近して配置することができる。これは、ドライバのファンアウトが高であるときには、非常に一般的である。インスタンスの1つのコピーのみが所与の物理的範囲内に保存される。
ここに例示する別のオペレーションは、図15に示すシャノン展開である。アダー又はマルチプライヤのような、大きな遅延を伴うRTL要素の入力コーンにおけるロジックの場合に、クリティカル入力ネットは、タイミングを改善するために「先に出す(pulled ahead)」ことができる。ロジックが複写され、クリティカルネットが一定入力0及び1と置き換えられ、そしてmuxを使用して、どの演算子コピーが出力であるか選択するクリティカルネットで2つの演算子の出力を選択する。2つのロジックコピーは、一定の入力に基づいて更に簡単化することができる。この場合も、これは、ロジックの位置の知識と、ロジックを駆動するクリティカルネットのドライバとで最良に遂行される最適化である。
ここに例示する更に別のオペレーションは、図16A及び16Bに示すMux/PMux(PMuxは、1ホットエンコード選択をもつmuxとして定義される)コラプシング及びタイミング駆動分解である。大きなMuxは、商業的回路において非常に一般的である。muxを分解することは、上述したアダーツリー及びAND/ORツリー分解に類似しているが、選択ロジックは、Mux分解をより困難にする。というのは、後で到着する入力をツリー内で移動すると、ツリーの構造に影響するだけでなく、選択ロジックにも影響するからである。他の分解と同様に、本発明は、適切な分解を決定するために配置及び配線に基づくタイミング情報を含む。
オペレーション69は、配線更新である。本発明の増分的な繰り返し方法は、設計の性能、ノイズ感度、収率、面積及び電力を改善するために集積回路の良好な配線可能性を与える。増分的な繰り返しプロセスは、単位面積当たりに要求される配線リソースの密度であるチップ上の配線混雑を徐々に改善することができる。
ここに述べる多数の変換は、FPGAにより消費される電力に影響する。例えば、メモリを分解する仕方(列形態・対・行)は、それが消費する電力に影響する。行分解は、あまり電力を使用しないが、付加的なマルチプレクシングを要求し、これは、付加的な遅延を導入する。電力消費を最適化するための行・対・列の分解の決定は、本発明において遂行することができる。というのは、合成と配置との間の本発明の密接な接続、即ち正確な遅延情報が得られるからである。
オペレーション63は、配置変換、又は更新配置変換である。配置変換は、RTLオブジェクト、非マップインスタンス、又はチッププリミティブレベルインスタンスのようなネットリストインスタンスの位置を変更し、それにより、ルータオペレーションと共に、回路におけるネットの長さ及び遅延を決定する。
配置変換は、ネットリスト及び配置の成熟度に基づいて種々の配置方法を使用することができる。ここに例示する実施形態では、本発明のプレーサーは、増分的アルゴリズムを使用する。増分的アルゴリズムとは、入力の小さな変化に応答して、アルゴリズム出力に増分的変化を生じさせるものである。例えば、力指向(force directed)配置のようなグローバルな配置は、成熟度の低いネットリスト及び配置を配するために使用することができる。力指向配置(FDP)方法は、本発明におけるグローバルな配置の好ましい選択肢の1つである。というのは、FDPの繰り返しで増分的配置変化が生じるような増分的方法だからである。典型的に、FDPは、ネットをモデリングすると共に、重畳するインスタンスをどのように拡散すべきか決定するために、二次プログラミング技術を使用する。
一実施形態では、第1ステップFDPは、インスタンスを相互接続するネットしかモデリングしない非制約二次プログラミング問題を解決する。この初期の解決策は、通常、非常に高い混雑度を有する。次いで、FDPは、拡散力を繰り返し構成して、インスタンスを過剰混雑(高インスタンス使用)のエリアから過少混雑(高リソース利用性)のエリアへ移動させる。これら繰り返しステップの性質は、FDPを増分的なアルゴリズムにすることである。これら繰り返しと繰り返しとの間にネットリスト又は他の設計状態データに対する変化をなすことができる。これらの状態変化が増分的であるときには、それにより生じるFDPの変化も、設計状態変化がなされなかった場合に生じるものに対して増分的でなければならない。
FDPの種々のアルゴリズムがあるが、過剰混雑のエリアを解消するためにインスタンスを移動すべき方向を計算するという基本的概念を全てが共有している。所与の配置において、ネットで接続されるインスタンスは、インスタンスとインスタンスとの間の二次距離に比例して互いに吸引力を及ぼすものと仮定される。この以前の研究では、全てのインスタンスが互いに反発し、インスタンスにとってサイトが適切でなくても全ての配置サイトへ吸引される。次いで、インスタンスは、システムが最小エネルギー状態で平衡となるまで移動される。従って、FDP方法は、インスタンスに作用する全力の方向にインスタンスを移動することに基づく。
1つの態様において、本発明は、多数のモデム再プログラム可能なチップ及び幾つかのASIC設計フローからの異種リソースに対処するための新規な異種リソース配置を提供する。例えば、ほとんどのFPGAは、特定のサイトでしか使用できないIO、DSP、RAM、LUT、FF、等の種々の予め定義されたチップリソースを有している。これらの予め定義されたリソースは、FPGAチップの前拡散特性の結果である。各リソースサイトは、サイトに配置できるインスタンスの数に制限がある。例えば、Altera Stratix−IIチップの場合、LABサイトに配置できるLUT又はFFは16個以下であり、又、512バイト、4Kバイト、及び64Kバイトを保持する3個の個別のRAMサイトがある。
ここに例示する実施形態では、本発明の増分的配置は、異種リソースの問題に対処する。FPGA、構造化ASIC、及びあるASCIチップでは、配置エリアにわたってしばしば均一に分布されない幾つかのサイトのみにリソースが配置されることがある。以前の全てのFDPを含むほとんどのグローバルなプレーサーは、仮定された異種リソースを有し、いずれのインスタンスも、その形式に関わらず、チップ境界内の有効エリアに配置することができる。この以前の解決策は、全てのインスタンスを簡単な直線的オブジェクトとして処理できるので、配置の問題を簡単化し、そしてこれらのオブジェクトが重畳せずにチップ境界内に配置される限り、配置は合法的である。この簡単な長方形モデルは、ある形式のインスタンスを不充分なリソースに隣接して配置できるようにする。この仮定は、異種リソースの場合に、各リソースが、インスタンスを配置しなければならない特定の1組のサイトを有することを無視している。この「結合」配置は、重畳をもたないことがあるが、実際のリソース形式を考慮したときに、配置が少しも合法的でないことがある。シミュレーテッドアニーリングプレーサーにおけるある以前の研究では、リソース情報が考慮されているが、これらのプレーサーは、静的にマップされたネットリストのみを配置し、RTLオブジェクトは配置しないように使用されている。更に、シミュレーテッドアニーリングは、非常に小さな設計に使用され、ランタイムのために大きな設計には困難である。
1つの態様において、本発明は、各個別のリソースサイトを別々にモデリングし、全ての配置変換において、リソース要件がプレーサーによって最適化されるようにする。1つの態様において、本発明は、「レイヤ」と称される、任意の数のサイト形式をモデリングする。これらのレイヤは、各インスタンスに対する拡散力を決定するのに使用される。一実施形態では、レイヤは、初期化段階において生成される。レイヤは、チップに存在する各リソース形式に対して生成される。レイヤのリソースサイトは、レイヤの供給分布においてそれらの位置に記録される。分布は、位置における値が、その位置における供給の値を与えるようなマトリクス状の二次元データ構造である。
各インスタンスは、それがリソースを消費するところのレイヤ(1つ又は複数)に指定される。単一リソース形式を消費するインスタンスは、プリミティブインスタンスと称され、多数のリソース、非プリミティブを消費するものである。非プリミティブの一例は、LUT及びFFサイト形式の両方を消費する状態マシンである。レイヤに指定された各インスタンスによって使用されるリソースは、レイヤ使用分布に記録される。本発明の方法は、リソースを有している全レイヤ上のエリアを記録することにより取り扱われる非プリミティブを与える。これらの使用貢献は、次いで、非プリミティブレイヤの各々に対する力の計算に影響を及ぼす。
レイヤに対して、その使用と供給分布との間の差は、そのレイヤに対する混雑分布である。以前のFDP方法と同様に、この混雑分布を使用して、そのレイヤにおける各インスタンスの力を計算する。
非プリミティブインスタンスの力は、そのリソースレイヤの各々から重み付けされた力の平均を取り出すことにより、又はそれらリソースのローカルの混雑に基づいて計算される。各レイヤに適用される重みは、均一な重みであるか、又はレイヤのリソースの相対的な離散性に基づく重みである。リソースの離散性は、どれほど離れてリソースが配置されるか、リソースがどれほど希薄であるか、或いはどれほど均一に又は非均一にリソースが分布されるかによって特徴付けることができる。
一実施形態では、多数の具現化が考えられるコンポーネントの力は、非プリミティブインスタンスの場合と同様に計算される。この力は、具現化のリソースレイヤの各々から重み付けされた力の平均を取り出すことで計算される。各具現化のリソースに適用される重みは、均一な重みであるか、又は所与の具現化が選択される確率に基づく重みである。
本発明の効果は、インスタンスの力が、同じリソース形式及びその形式に対するリソース供給を使用する他のインスタンスのみに依存することである。例えば、インスタンスA及びBの各々がリソースCを使用する部分を有する場合には、インスタンスA(又はリソースCを使用するインスタンスAの部分)にかかる力は、リソースCを使用するインスタンスBの部分に依存すると共に、配置に対して使用可能なリソースCにも依存する。異なるレイヤにおけるインスタンスは、互いの拡散力に影響しない。
1つの態様において、グローバルなプレーサーが終了するときに、各インスタンスは、その形式に適した有効サイト又はその付近にあり、僅かな移動で配置を合法化することができる。この解決策は、全てのインスタンスを単一形式としてモデリングし、全てのリソースエリアを結合し、次いで、その結合されたエリアにわたってインスタンスを拡散することを必要とした以前のFDPに比して新規である。
ここに例示する実施形態では、本発明のアーキテクチャー上の物理的合成は、リソース利用の問題に対して改善を与えることができる。チップリソースが回路の要件を越えるケースがしばしばある。例えば、FPGA設計では、チップ又はそれが具現化される部分が256個のLUTを有するときに、具現化されるべき回路が150個のLUTを要求することがある。この問題は、リソース利用問題と称される。リソース利用問題が無視されるときには、リソースにわたり変化する密度での配置によってたとえ良い結果が得られたとしても、プレーサーは、典型的に、使用可能なリソースにわたり回路インスタンスを均一に拡散する。以前のプレーサーは、この問題を無視するか、又は特別な「フィラー」インスタンスを挿入している。フィラーインスタンスは、回路に接続される接続性をもたない特別なインスタンスである。「フィラー」インスタンスの使用も、問題である。というのは、それらのインスタンスに対して位置を決定しなければならないからである。
ここに例示する実施形態では、本発明は、エリア除去方法を使用してリソース利用問題を解決する。力の発生と同様に、各リソースレイヤは、別々に考えられる。エリア除去方法では、リソースは、そのクオリティに基づいて利用され、クオリティの低いリソースが除去される。クオリティメトリックが最初に決定され、次いで、リソース供給が分析されて、リソースのランキングがそのクオリティに基づいて決定される。次いで、プレーサーにより配置サイトとして考慮することから低クオリティ部分が除去される。配置の変化はリソースのクオリティに影響するので、ランキング及び除去は、配置プロセス中に何回も遂行される。従って、このプロセスは、本発明による設計状態の繰り返し及び増分的改善に良く適している。
一実施形態では、ランキングを形成するのに使用されるクオリティメトリックは、使用からのリソースの距離に基づく。力を計算する1つの方法の副産物は、グリーン関数でのレイヤの密度分布のコンボリューションである。このコンボリューションの結果は、より高いポイントがリソースの需要を指示し、より低いポイントが重要の欠乏を表すトポロジーマップとして見ることができる。分布は、個別ボックスで構成されるので、これらのボックスは、コンボリューション結果に基づいて分類することができる。次いで、コンボリューション分類順に最低の値をもつリソースでスタートして、要求されたリソースが除去されるまで、供給を考察してリソースを除去することにより、除去されるべきリソースを決定することができる。1つの態様では、この方法は、そのレイヤに対するインスタンス需要を満足するに足るリソースがあり且つチップを配線できるように充分なリソースを残すことができる。
或いは又、ここに示す他の実施形態では、本発明は、力レンジ方法を使用してリソース利用問題を解決する。力レンジ方法では、各インスタンスに作用する力は、複数の力レンジからの重み付けされた力平均である。1つの態様では、ショートレンジの重み付けされたファクタは、高いローカル密度が大きな力を生じさせるショートレンジ領域におけるインスタンスの密度に比例する。従って、この比例は、重畳を減少するようにインスタンスの拡散ンを向上させることができる。
力レンジ方法では、インスタンスに加えられる力は、インスタンスの近傍におけるインスタンス密度に依存する。一般的な考え方として、インスタンスの拡散力は、インスタンスをその近傍において合法化するのに必要なエリアに依存しなければならない。全てのインスタンスが小さな近傍域で重畳している最も極端に混雑したケースでは、各インスタンスの力は、全てのインスタンス及び全てのリソースの位置に基づいて計算される。インスタンスがその付近に他のインスタンスをもたずに、あるリソース上に直接載っている最も混雑度の低いケースでは、インスタンスは、何ら力をもたない。これら両極端間のケースでは、力は、インスタンスを合法化するのに必要なエリアにおけるインスタンス及びリソースに依存する。
一実施形態では、力のレンジは、ローカル、中間、及びロングレンジの力に区画化することができる。他の実施形態では、より大きな又はより小さな力レンジを使用することができる。一般的に、近傍域に対する合法的エリア、及び各合法的レンジに対する力を決定することは、計算及びメモリリソースとの兼ね合いである。1つの態様では、グリーン関数のサイズを変えることで力が計算される。ロングレンジのグリーン関数は、全配置エリアをカバーし、小さなグリーン関数は、例えば、平均インスタンスエリアの5倍の半径をもつ円形エリアをカバーし、そして中間レンジのグリーン関数は、例えば、平均インスタンスエリアの10倍の半径を有する。インスタンスの力は、インスタンスのローカル、中間及びロングレンジの力の重み付けされた和である。適用される重みは、インスタンスの近傍域における密度によって決定される。近傍域が非常に高密度である場合には、ロングレンジの力が非常に高い重みを有し、そしてローカルの重みが0である。低密度エリアにおけるインスタンスは、ゼロのロングレンジ重みと、高いローカル重みとを有する。
本発明の方法の別の態様は、アーキテクチャー上の構成を具現化するのにどのリソースを使用すべきか決定する重要なアーキテクチャー上の判断を決定する能力である。アーキテクチャーレベルでは、FPGAに関して、小さなRAMを512ビットのRAMリソースへマップすべきか又は4KビットのRAMリソースへマップすべきか、といった多数の判断がある。他の例では、マルチプライヤ具現化の判断、及び上述したケース、例えば、アダーツリー分解が含まれる。本発明は、これらの特定例に限定されない。配置情報が得られる状態では、本発明は、設計目的を満足する重要なアーキテクチャー上の具現化判断を洗練化する。ここに示す例は、1kビットメモリを、2つの512ビットリソース又は単一の4kビットリソースのいずれかに指定できるケースである。この具現化は、1kビットメモリが接続されるロジックが、512ビット又は4kビットのいずれかのサイトに非常に接近して位置される場合には、首尾良く具現化するのが非常に厳しい。1kメモリの接続ロジックが512ビットリソースに非常に接近し、4kビットリソースがより遠くにあるケースでは、4kリソースへのマッピングが最適でないことにより実質的に低性能の回路を招く。この及び他のアーキテクチャー上の判断を行うのに、配置情報を使用することが重要である。
ここに例示する実施形態では、具現化の洗練化は、インスタンスがマップされる各レイヤに対して柔軟なレイヤインスタンスのエリアの一部分を使用に含ませることにより取り扱われる。本発明の1kビットの例では、インスタンスのエリアが512レイヤ及び4kレイヤの両方に部分的に含まれる。インスタンスの力は、潜在的なレイヤに対する力の重み付けされた和をとるか、又は最小の大きさの力をとることにより決定される。最小の大きさの力をとることの背景にある合理性は、この力に関連したレイヤが低い近傍密度を有していなければならないことである。
ここに例示する他の実施形態では、リソース具現化は、レイヤの使用において多数のあり得るリソース具現化を有するインスタンスを含まないことによりスタートする。エリア除去オペレーションが全てのレイヤに対して遂行された後、これらの柔軟な具現化インスタンスが考えられる。柔軟な具現化インスタンスの場合、そのあり得るレイヤ各々の潜在的な供給が考えられる。潜在的な供給は、エリア除去オペレーションによって全供給から除去されたエリアである。具現化レイヤの各々における潜在的な供給を検査して、除去されたエリアにインスタンスが配置された場合に最も破壊的でない除去されたエリアをどのレイヤが有するか決定する。次いで、その最も破壊的でないレイヤにインスタンスが指定される。
指定リソース変換(オペレーション64)は、特定チップリソースへのインスタンスの指定を決定するという役割を果たす。力指向配置、シミュレーテッドアニーリング、モングレル、min−cut配置、数値最適化による配置、進化ベースの配置、及び他のディテール配置アルゴリズムを含む種々の配置アルゴリズムをこのオペレーションに使用することができる。
本発明のほとんどの実施形態は、HDL設計合成ソフトウェアプログラムに使用するように意図されるが、本発明は、必ずしも、そのような使用に限定されない。他の言語及びコンピュータプログラムの使用が考えられる(例えば、コンピュータプログラムは、ハードウェアを記述するように書かれ、従って、HDLでの表現が考えられ、そしてコンパイルされるか、或いは本発明は、ある実施形態では、HDLを使用せずに生成された例えばネットリストのようなロジック表現を割り当て及び再割り当てできる)が、本発明の実施形態は、HDL合成システムでの使用に関して説明され、特に、ベンダー特有の技術/アーキテクチャーを有する集積回路に使用するように設計されたものについて説明する。良く知られたように、ターゲットアーキテクチャーは、典型的に、プログラマブルICの供給者によって決定される。ターゲットアーキテクチャーの一例は、カリフォルニア州サンノセのXilinx社からのフィールドプログラマブルゲートアレイである集積回路のプログラマブルルックアップテーブル(LUT)及び関連ロジックである。ターゲットアーキテクチャー/技術の他の例は、Altera、Lucent Technology、Advanced Micro Devices、及びLattice Semiconductorのようなベンダーからのフィールドプログラマブルゲートアレイ及び複雑なプログラマブルロジック装置におけるこれらの良く知られたアーキテクチャーを含む。又、ある実施形態の場合、本発明は、特定用途向け集積回路(ASIC)に使用することもできる。
本発明の一実施形態は、CD ROM又は磁気ハードディスク又は光学ディスク或いは種々の他の記憶装置のようなマシン読み取り可能な媒体に記憶されるコンピュータプログラムとして具現化される回路設計及び合成コンピュータ支援設計ソフトウェアである。更に、本発明の方法の多くは、従来の汎用コンピュータシステムのようなデジタル処理システムで遂行することができる。1つの機能しか遂行しないように設計又はプログラムされた特殊目的のコンピュータも使用できる。
図17は、本発明に使用できる典型的なコンピュータシステムの一例を示す。このコンピュータシステムは、HDLコードで記述された設計のロジック合成を遂行するのに使用される。図17は、コンピュータシステムの種々のコンポーネントを示しているが、それらコンポーネントを相互接続する特定のアーキテクチャー又は仕方を表すことを意図したものでないことに注意されたい。というのは、そのような細部は、本発明に密接に関係したものではないからである。図17のアーキテクチャーは、例示のためのものに過ぎず、本発明に関連して使用されるコンピュータシステム又は他のデジタル処理システムは、この特定アーキテクチャーに限定されないことに注意されたい。又、より少数のコンポーネント、又はおそらく、より多数のコンポーネントを有するネットワークコンピュータ及び他のデータ処理システムも、本発明に使用できることが明らかであろう。図17のコンピュータシステムは、例えば、アップル・マッキントッシュ・コンピュータである。
図17に示すように、データ処理システムの一形式であるコンピュータシステム101は、マイクロプロセッサ103、ROM107、揮発性RAM105、及び不揮発性メモリ106に結合されたバス102を備えている。インテル、又はモトローラ、又はIBMからのマイクロプロセッサであるマイクロプロセッサ103は、キャッシュメモリ104に結合される。バス102は、これらの種々のコンポーネントを一緒に相互接続すると共に、これらのコンポーネント103、107、105及び106を、ディスプレイコントローラ及びディスプレイ装置108へ相互接続し、且つマウス、キーボード、モデム、ネットワークインターフェイス、プリンタ、スキャナ、ビデオカメラである入力/出力(I/O)装置、及びこの技術で良く知られた他の装置のような周辺装置にも相互接続する。典型的に、入力/出力装置110は、入力/出力コントローラ109を通してシステムに結合される。揮発性RAM105は、典型的に、メモリのデータをリフレッシュ又は維持するために電力を常時必要とするダイナミックRAM(DRAM)として具現化される。不揮発性メモリ106は、典型的に、システムから電力が除去された後もデータを維持する磁気ハードドライブ、磁気光学ドライブ、光学ドライブ、DVD RAM又は他の形式のメモリシステムである。典型的に、不揮発性メモリは、ランダムアクセスメモリであるが、これは、要求されない。図17は、不揮発性メモリが、データ処理システムの残りのコンポーネントに直結されたローカル装置であることを示しているが、本発明は、システムから離れた不揮発性メモリ、例えば、モデム又はイーサネットインターフェイスのようなネットワークインターフェイスを通してデータ処理システムに結合されたネットワーク記憶装置を使用できることが明らかであろう。バス102は、この技術で良く知られたように、種々のブリッジ、コントローラ及び/又はアダプタを通して互いに接続された1つ以上のバスを含んでもよい。一実施形態では、I/Oコントローラ109は、USB(ユニバーサルシリアルバス)周辺機器を制御するためのUSBアダプタ、及び/又はIEEE−1394周辺機器を制御するためのIEEE−1394バスアダプタを備えている。
以上の説明から、本発明の態様は、少なくとも一部分は、ソフトウェアで実施できることが明らかであろう。即ち、この技術は、コンピュータシステム又は他のデータ処理システムにおいて、ROM107、揮発性RAM105、不揮発性メモリ106、キャッシュ104、又はリモート記憶装置のようなメモリに含まれたインストラクションのシーケンスを実行するマイクロプロセッサのようなプロセッサに応答して実施することができる。種々の実施形態では、本発明を具現化するために、固定布線回路がソフトウェアインストラクションと組み合わされて使用される。従って、この技術は、ハードウェア回路及びソフトウェアの特定の組合せに限定されず、又、データ処理システムにより実行されるインストラクションのための特定のソースにも限定されない。加えて、この説明全体を通して、種々のファンクション及びオペレーションは、説明を簡単にするために、ソフトウェアコードにより遂行され又は引き起こされるものとして説明された。しかしながら、当業者であれば、それらファンクションは、マイクロプロセッサ103のようなプロセッサによりコードを実行することから生じるものであることが明らかであろう。
データ処理システムにより実行されたときにそのシステムが本発明の種々の方法を遂行するようにさせるソフトウェア及びデータを記憶するためにマシン読み取り可能な媒体を使用することができる。この実行可能なソフトウェア及びデータは、例えば、ROM107、揮発性RAM105、不揮発性メモリ106及び/又はキャッシュ104を含む種々の場所に記憶することができる。このソフトウェア及び/又はデータの各部分は、これら記憶装置のいずれかに記憶することができる。
従って、マシン読み取り可能な媒体は、マシン(例えば、コンピュータ、ネットワーク装置、パーソナルデジタルアシスタント、製造ツール、1組の1つ以上のプロセッサをもつ装置、等)によってアクセス可能な形態で情報を与える(即ち、記憶及び/又は送信する)メカニズムを含む。例えば、マシン読み取り可能な媒体は、記録可能/記録不能媒体(例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュメモリ装置、等)、並びに電気的、光学的、音響的又は他の形式の伝播信号(例えば、搬送波、赤外線信号、デジタル信号、等)、等々を含む。
以上、本発明は、その特定の実施形態を参照して説明された。特許請求の範囲に規定された本発明の広い精神及び範囲から逸脱せずに種々の変更がなされることが明らかであろう。従って、明細書及び添付図面は、例示のためのもので、それに限定するためのものではない。
102:バス
103:プロセッサ
104:キャッシュ
105:メモリ(RAM)
106:不揮発性記憶装置
107:リードオンリメモリ(ROM)
108:ディスプレイ&ディスプレイコントローラ
109:I/Oコントローラ
110:I/O装置

Claims (70)

  1. 集積回路を設計する方法において、
    チップリソースを複数の区分へと区画化するステップと、
    クオリティメトリックに基づいて前記区分のランクを計算するステップと、
    配置変換による考慮から最低ランクの区分を除去するステップと、
    を備えた方法。
  2. 前記チップリソースは、集積回路の要件を越える、請求項1に記載の方法。
  3. 前記区分は、前記チップリソースが回路要件を満足するように除去される、請求項1に記載の方法。
  4. 所定の基準が得られるまでランク付け及び除去を繰り返すステップを更に備えた、請求項1に記載の方法。
  5. 除去された区分の幾つかは、次の繰り返し除去プロセスにおいて考慮し直される、請求項1に記載の方法。
  6. 除去された区分の幾つかは、永久的に除去され、次の繰り返し除去プロセスにおいて考慮し直されない、請求項1に記載の方法。
  7. 前記クオリティメトリックは、前記リソースの使用からの距離を含む、請求項1に記載の方法。
  8. ランクを計算する前記ステップは、前記リソースにおけるインスタンスの密度のコンボリューション及びグリーン関数を計算することを含む、請求項1に記載の方法。
  9. デジタル処理システムで実行されたときに、そのデジタル処理システムが、集積回路(IC)を設計する方法を遂行するようにさせる複数の実行可能なインストラクションを含むマシン読み取り可能な媒体において、前記方法は、
    チップリソースを複数の区分へと区画化し、
    クオリティメトリックに基づいて前記区分のランクを計算し、
    配置変換による考慮から最低ランクの区分を除去する、
    ことを含むものである、媒体。
  10. 前記チップリソースは、集積回路の要件を越える、請求項9に記載の媒体。
  11. 前記区分は、前記チップリソースが回路要件を満足するように除去される、請求項9に記載の媒体。
  12. 所定の基準が得られるまでランク付け及び除去を繰り返すことを更に含む、請求項9に記載の媒体。
  13. 除去された区分の幾つかは、次の繰り返し除去プロセスにおいて考慮し直される、請求項9に記載の媒体。
  14. 除去された区分の幾つかは、永久的に除去され、次の繰り返し除去プロセスにおいて考慮し直されない、請求項9に記載の媒体。
  15. 前記クオリティメトリックは、前記リソースの使用からの距離を含む、請求項9に記載の媒体。
  16. 前記ランクの計算は、前記リソースにおけるインスタンスの密度のコンボリューション及びグリーン関数を計算することを含む、請求項9に記載の媒体。
  17. チップ上の集積回路のインスタンス配置におけるインスタンスに対する全力を計算する方法において、
    インスタンスと要素との間の力を計算するステップであって、前記要素は、集積回路の別のインスタンス及びチップ上のチップリソースの少なくとも1つであり、そして前記力は、前記インスタンスと前記要素との間の距離の関数であるようなステップと、
    前記インスタンスの近傍を、前記インスタンスへの距離に基づいて複数の近傍エリアへ区画化するステップと、
    前記インスタンスにおける複数の近傍力を各近傍エリアのインスタンスと要素との間の力の関数として計算するステップと、
    前記インスタンスに対する全力を前記近傍力の重み付けされた和により計算するステップと、
    を備えた方法。
  18. 前記インスタンスの近傍は、3つの近傍エリア、即ちローカル近傍エリア、中間近傍エリア、及びロングレンジ近傍エリアへ区画化される、請求項17に記載の方法。
  19. 前記ローカル近傍エリアは、半径が平均インスタンスエリアの約5倍のエリアをカバーする、請求項18に記載の方法。
  20. 前記中間近傍エリアは、半径が平均インスタンスエリアの約10倍のエリアをカバーする、請求項18に記載の方法。
  21. 前記ロングレンジ近傍エリアは、全エリアをカバーする、請求項18に記載の方法。
  22. 前記近傍エリアは、ショートレンジ近傍を含み、更に、ショートレンジ近傍力の重みは、ショートレンジ近傍エリアにおけるインスタンスの密度に比例する、請求項17に記載の方法。
  23. 前記近傍エリアは、ロングレンジ近傍を含み、更に、ロングレンジ近傍力の重みは、ショートレンジ近傍エリアにおけるインスタンスの密度に逆比例する、請求項17に記載の方法。
  24. 前記近傍エリアは、更に、インスタンスを取り巻く使用を合法化するために要求されるエリアにより決定される、請求項17に記載の方法。
  25. 前記要素は、集積回路における別のインスタンスであり、前記インスタンスと前記別のインスタンスとの間の力は、反発力である、請求項17に記載の方法。
  26. 前記複数の近傍力のうちの近傍力は、リソース形式力の重み付けされた和によって計算され、各リソース形式力は、前記インスタンスと、同じリソース形式の集積回路における他のインスタンスの部分との間の力、及び前記インスタンスと同じリソース形式のチップリソースとの間の力を含む、請求項17に記載の方法。
  27. 前記別のインスタンスは、1つのリソース形式を有するプリミティブなインスタンスであり、前記インスタンスと別のインスタンスとの間の力は、1つのリソース形式力コンポーネントを含む、請求項26に記載の方法。
  28. 前記別のインスタンスは、複数のリソース形式を有する非プリミティブなインスタンスであり、前記インスタンスと別のインスタンスとの間の力は、複数のリソース形式力コンポーネントを含む、請求項26に記載の方法。
  29. 前記リソース形式力の重みは、前記リソース形式の離散度の関数である、請求項26に記載の方法。
  30. 前記要素は、前記インスタンスと同じ形式のチップリソースであり、そして前記インスタンスとチップリソースとの間の力は、吸引力である、請求項17に記載の方法。
  31. デジタル処理システムで実行されたときに、そのデジタル処理システムが、チップ上の集積回路のインスタンス配置におけるインスタンスに対する全力を計算する方法を遂行するようにさせる複数の実行可能なインストラクションを含むマシン読み取り可能な媒体において、前記方法は、
    前記インスタンスと集積回路の別のインスタンスとの間の力を計算し、この力は、2つのインスタンス間の距離の関数であり、
    前記インスタンスの近傍を、前記インスタンスへの距離に基づいて複数の近傍エリアへ区画化し、
    前記インスタンスと各近傍エリアの要素との間の力を加算することにより前記インスタンスにおける複数の近傍力を計算し、
    前記インスタンスに対する全力を前記近傍力の重み付けされた和により計算する、
    ことを含むものである、媒体。
  32. 前記インスタンスの近傍は、3つの近傍エリア、即ちローカル近傍エリア、中間近傍エリア、及びロングレンジ近傍エリアへ区画化される、請求項31に記載の媒体。
  33. 前記ローカル近傍エリアは、半径が平均インスタンスエリアの約5倍のエリアをカバーする、請求項32に記載の媒体。
  34. 前記中間近傍エリアは、半径が平均インスタンスエリアの約10倍のエリアをカバーする、請求項32に記載の媒体。
  35. ロングレンジ近傍エリアが全エリアをカバーする、請求項32に記載の媒体。
  36. 前記近傍エリアは、ショートレンジ近傍を含み、更に、ショートレンジ近傍力の重みは、ショートレンジ近傍エリアにおけるインスタンスの密度に比例する、請求項31に記載の媒体。
  37. 前記近傍エリアは、ロングレンジ近傍を含み、更に、ロングレンジ近傍力の重みは、ショートレンジ近傍エリアにおけるインスタンスの密度に逆比例する、請求項31に記載の媒体。
  38. 前記近傍エリアは、更に、インスタンスを取り巻く使用を合法化するために要求されるエリアにより決定される、請求項31に記載の媒体。
  39. 前記要素は、集積回路における別のインスタンスであり、前記インスタンスと前記別のインスタンスとの間の力は、反発力である、請求項31に記載の媒体。
  40. 前記複数の近傍力のうちの近傍力は、リソース形式力の重み付けされた和によって計算され、各リソース形式力は、前記インスタンスと、同じリソース形式の集積回路における他のインスタンスの部分との間の力、及び前記インスタンスと同じリソース形式のチップリソースとの間の力を含む、請求項31に記載の媒体。
  41. 前記別のインスタンスは、1つのリソース形式を有するプリミティブなインスタンスであり、前記インスタンスと別のインスタンスとの間の力は、1つのリソース形式力コンポーネントを含む、請求項40に記載の媒体。
  42. 前記別のインスタンスは、複数のリソース形式を有する非プリミティブなインスタンスであり、前記インスタンスと別のインスタンスとの間の力は、複数のリソース形式力コンポーネントを含む、請求項40に記載の媒体。
  43. 前記リソース形式力の重みは、前記リソース形式の離散度の関数である、請求項40に記載の媒体。
  44. 前記要素は、前記インスタンスと同じ形式のチップリソースであり、そして前記インスタンスとチップリソースとの間の力は、吸引力である、請求項31に記載の媒体。
  45. 集積回路のインスタンス配置における非プリミティブなインスタンスに対する全力を計算する方法であって、前記非プリミティブなインスタンスは、2つ以上の形式のリソースを消費するものである方法において、
    各形式の非プリミティブなインスタンスを各リソース形式レイヤに指定するステップであって、そのリソース形式レイヤは、リソース形式の表現であるようなステップと、
    前記リソース形式レイヤに対するリソース形式レイヤ力を前記インスタンスと前記リソース形式レイヤにおける他のインスタンス及びリソースとの間の力の関数として計算するステップと、
    前記インスタンスに対する全力を前記リソース形式レイヤ力の重み付けされた和によって計算するステップと、
    を備えた方法。
  46. 前記重みは、均一な重みである、請求項45に記載の方法。
  47. 前記重みは、レイヤのリソースの離散度の関数である、請求項45に記載の方法。
  48. デジタル処理システムで実行されたときに、そのデジタル処理システムが、集積回路のインスタンス配置における非プリミティブなインスタンスに対する全力を計算する方法であって、前記非プリミティブなインスタンスは、2つ以上の形式のリソースを消費するものである方法を遂行するようにさせる複数の実行可能なインストラクションを含むマシン読み取り可能な媒体において、前記方法は、
    各形式の非プリミティブなインスタンスを各リソース形式レイヤに指定し、そのリソース形式レイヤは、リソース形式の表現であり、
    前記リソース形式レイヤに対するリソース形式レイヤ力を前記インスタンスと前記リソース形式レイヤにおける他のインスタンス及びリソースとの間の力の関数として計算し、
    前記インスタンスに対する全力を前記リソース形式レイヤ力の重み付けされた和によって計算する、
    ことを含むものである、媒体。
  49. 前記重みは、均一な重みである、請求項48に記載の媒体。
  50. 前記重みは、レイヤのリソースの離散度の関数である、請求項48に記載の方法。
  51. 集積回路のインスタンス配置におけるインスタンスに対する全力を計算する方法において、
    前記インスタンスの一部分に対して複数のリソース形式を決定するステップと、
    前記インスタンスの前記一部分を、リソース形式の表現である各リソース形式レイヤに配置するステップと、
    前記インスタンスに対する全力を前記リソース形式レイヤからの力の関数として計算するステップと、
    を備えた方法。
  52. 前記全力は、前記リソース形式レイヤからの力の重み付けされた和である、請求項51に記載の方法。
  53. 前記リソース形式レイヤからの力は、前記インスタンスと前記リソース形式レイヤにおける他のインスタンスとの間の力を含む、請求項51に記載の方法。
  54. 前記リソース形式レイヤからの力は、前記インスタンスと前記リソース形式レイヤにおけるリソースとの間の力を含む、請求項51に記載の方法。
  55. 前記重みは、均一な重みである、請求項51に記載の方法。
  56. 前記重みは、レイヤのリソースの離散度の関数である、請求項51に記載の方法。
  57. 前記全力は、前記リソース形式レイヤからの力の中で最小の大きさをもつ力である、請求項51に記載の方法。
  58. デジタル処理システムで実行されたときに、そのデジタル処理システムが、集積回路のインスタンス配置におけるインスタンスに対する全力を計算する方法を遂行するようにさせる複数の実行可能なインストラクションを含むマシン読み取り可能な媒体において、前記方法は、
    前記インスタンスの一部分に対して複数のリソース形式を決定し、
    前記インスタンスの前記一部分を、リソース形式の表現である各リソース形式レイヤに配置し、
    前記インスタンスに対する全力を前記リソース形式レイヤからの力の関数として計算する、
    ことを含むものである、媒体。
  59. 前記全力は、前記リソース形式レイヤからの力の重み付けされた和である、請求項58に記載の媒体。
  60. 前記リソース形式レイヤからの力は、前記インスタンスと前記リソース形式レイヤにおける他のインスタンスとの間の力を含む、請求項58に記載の媒体。
  61. 前記リソース形式レイヤからの力は、前記インスタンスと前記リソース形式レイヤにおけるリソースとの間の力を含む、請求項58に記載の媒体。
  62. 前記重みは、均一な重みである、請求項58に記載の媒体。
  63. 前記重みは、レイヤのリソースの離散度の関数である、請求項58に記載の媒体。
  64. 前記全力は、前記リソース形式レイヤからの力の中で最小の大きさをもつ力である、請求項58に記載の媒体。
  65. 集積回路のインスタンス配置におけるインスタンスに対する全力を計算する方法において、
    1つのリソース形式レイヤにしか指定できないインスタンスの単一リソース部分を決定するステップであって、そのリソース形式レイヤがリソース形式の表現であるようなステップと、
    前記インスタンスの単一リソース部分をそれに対応するリソース形式レイヤに配置するステップと、
    前記インスタンスに対する全力をそれに対応するリソース形式レイヤからの力の関数として計算するステップと、
    複数の潜在的なリソース形式レイヤに指定できるインスタンスのマルチリソース部分を決定するステップと、
    前記インスタンスのマルチリソース部分を各潜在的なリソース形式レイヤに配置することにより生じる破壊的メトリックを計算するステップと、
    前記インスタンスのマルチリソース部分を、最小の破壊的メトリックを与える潜在的なリソース形式レイヤに配置するステップと、
    を備えた方法。
  66. 前記破壊的メトリックは、インスタンスに対するより大きな力で表される、請求項65に記載の方法。
  67. 前記インスタンスに対する力は、前記インスタンスと、同じリソース形式レイヤにおける他のインスタンスとの間の反発力、及び前記インスタンスと、同じリソース形式レイヤにおけるリソースとの間の吸引力を含む、請求項65に記載の方法。
  68. デジタル処理システムで実行されたときに、そのデジタル処理システムが、集積回路のインスタンス配置におけるインスタンスに対する全力を計算する方法を遂行するようにさせる複数の実行可能なインストラクションを含むマシン読み取り可能な媒体において、前記方法は、
    1つのリソース形式レイヤにしか指定できないインスタンスの単一リソース部分を決定し、そのリソース形式レイヤは、リソース形式の表現であり、
    前記インスタンスの単一リソース部分をそれに対応するリソース形式レイヤに配置し、
    前記インスタンスに対する全力をそれに対応するリソース形式レイヤからの力の関数として計算し、
    複数の潜在的なリソース形式レイヤに指定できるインスタンスのマルチリソース部分を決定し、
    前記インスタンスのマルチリソース部分を各潜在的なリソース形式レイヤに配置することにより生じる破壊的メトリックを計算し、
    前記インスタンスのマルチリソース部分を、最小の破壊的メトリックを与える潜在的なリソース形式レイヤに配置する、
    ことを含むものである、媒体。
  69. 前記破壊的メトリックは、インスタンスに対するより大きな力で表される、請求項68に記載の媒体。
  70. 前記インスタンスに対する力は、前記インスタンスと、同じリソース形式レイヤにおける他のインスタンスとの間の反発力、及び前記インスタンスと、同じリソース形式レイヤにおけるリソースとの間の吸引力を含む、請求項68に記載の媒体。
JP2010518234A 2007-07-23 2008-07-23 アーキテクチャー上の物理的合成 Active JP5608079B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US95143607P 2007-07-23 2007-07-23
US60/951,436 2007-07-23
US12/177,869 US8595674B2 (en) 2007-07-23 2008-07-22 Architectural physical synthesis
US12/177,869 2008-07-22
PCT/US2008/009050 WO2009014750A2 (en) 2007-07-23 2008-07-23 Architectural physical synthesis

Publications (3)

Publication Number Publication Date
JP2010534375A true JP2010534375A (ja) 2010-11-04
JP2010534375A5 JP2010534375A5 (ja) 2012-11-29
JP5608079B2 JP5608079B2 (ja) 2014-10-15

Family

ID=40139168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010518234A Active JP5608079B2 (ja) 2007-07-23 2008-07-23 アーキテクチャー上の物理的合成

Country Status (5)

Country Link
US (2) US8595674B2 (ja)
EP (1) EP2171624A2 (ja)
JP (1) JP5608079B2 (ja)
CN (1) CN101809576B (ja)
WO (1) WO2009014750A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015095692A (ja) * 2013-11-08 2015-05-18 キヤノン株式会社 半導体集積回路、及び、該半導体集積回路を備える情報処理装置

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819608B2 (en) 2007-07-23 2014-08-26 Synopsys, Inc. Architectural physical synthesis
US8595674B2 (en) 2007-07-23 2013-11-26 Synopsys, Inc. Architectural physical synthesis
US20090241082A1 (en) * 2008-03-19 2009-09-24 Amundson Michael D Method and System for Generating an Accurate Physical Realization for an Integrated Circuit Having Incomplete Physical Constraints
US8307315B2 (en) * 2009-01-30 2012-11-06 Synopsys, Inc. Methods and apparatuses for circuit design and optimization
US9576092B2 (en) * 2009-02-24 2017-02-21 Mentor Graphics Corporation Synthesis using multiple synthesis engine configurations
US8739088B1 (en) * 2009-10-16 2014-05-27 Xilinx, Inc. Using constraints wtihin a high-level modeling system for circuit design
US8091057B1 (en) * 2009-10-23 2012-01-03 Xilinx, Inc. Synthesis, place, and route responsive to reasons for critical paths not meeting performance objective
US8751986B2 (en) * 2010-08-06 2014-06-10 Synopsys, Inc. Method and apparatus for automatic relative placement rule generation
US8271920B2 (en) * 2010-08-25 2012-09-18 International Business Machines Corporation Converged large block and structured synthesis for high performance microprocessor designs
US8276107B2 (en) * 2010-10-18 2012-09-25 Algotochip Corporation Integrated data model based framework for driving design convergence from architecture optimization to physical design closure
US8516412B2 (en) * 2011-08-31 2013-08-20 International Business Machines Corporation Soft hierarchy-based physical synthesis for large-scale, high-performance circuits
US8484589B2 (en) * 2011-10-28 2013-07-09 Apple Inc. Logical repartitioning in design compiler
US8375345B1 (en) * 2012-02-16 2013-02-12 International Business Machines Corporation Soft-bounded hierarchical synthesis
KR101888940B1 (ko) * 2012-03-28 2018-08-17 삼성전자주식회사 패턴 레이아웃을 디자인하는 방법
US9524363B2 (en) * 2012-05-31 2016-12-20 Globalfoundries Inc. Element placement in circuit design based on preferred location
CN103885819B (zh) * 2012-12-21 2017-11-17 中国科学院微电子研究所 一种针对fpga面积优化的优先级资源共享方法
US10078717B1 (en) 2013-12-05 2018-09-18 The Mathworks, Inc. Systems and methods for estimating performance characteristics of hardware implementations of executable models
US10261760B1 (en) 2013-12-05 2019-04-16 The Mathworks, Inc. Systems and methods for tracing performance information from hardware realizations to models
US20150178436A1 (en) * 2013-12-20 2015-06-25 Lattice Semiconductor Corporation Clock assignments for programmable logic device
US9209821B2 (en) * 2014-01-24 2015-12-08 Intel Corporation Apparatus for generating quadrature clock phases from a single-ended odd-stage ring oscillator
US9361417B2 (en) 2014-02-07 2016-06-07 Synopsys, Inc. Placement of single-bit and multi-bit flip-flops
CN104809302B (zh) * 2015-05-07 2018-04-13 上海安路信息科技有限公司 Rtl电路综合中的资源共享方法及其系统
US10783292B1 (en) * 2015-05-21 2020-09-22 Pulsic Limited Automated analog layout
US10586004B2 (en) * 2015-06-22 2020-03-10 Altera Corporation Method and apparatus for utilizing estimations for register retiming in a design compilation flow
WO2018006048A1 (en) * 2016-06-30 2018-01-04 The Regents Of The University Of California Interactive incremental synthesis flow for integrated circuit design
EP3333735B1 (en) * 2016-12-12 2021-07-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device
CN107315863B (zh) * 2017-06-12 2021-01-08 深圳市国微电子有限公司 布局优化方法及装置、终端及存储介质
US10467373B2 (en) * 2018-02-21 2019-11-05 Xilinx, Inc. Method of selecting routing resources in a multi-chip integrated circuit device
US10586005B1 (en) 2018-03-21 2020-03-10 Xilinx, Inc. Incremental synthesis for changes to a circuit design
CN111753483B (zh) * 2020-06-30 2022-03-22 无锡中微亿芯有限公司 一种多裸片结构fpga的布局方法
US11983477B2 (en) 2021-08-17 2024-05-14 International Business Machines Corporation Routing layer re-optimization in physical synthesis
US11907634B2 (en) 2021-09-01 2024-02-20 International Business Machines Corporation Automating addition of power supply rails, fences, and level translators to a modular circuit design
US12050852B2 (en) 2021-09-07 2024-07-30 International Business Machines Corporation Signal pre-routing in an integrated circuit design
US11663381B2 (en) 2021-09-07 2023-05-30 International Business Machines Corporation Clock mapping in an integrated circuit design

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03124046A (ja) * 1989-10-06 1991-05-27 Kawasaki Steel Corp 集積回路における回路ブロック配置の設計装置
JPH0417070A (ja) * 1990-05-11 1992-01-21 Toshiba Corp 自動フロアプラン装置及び方法
JPH05342290A (ja) * 1992-06-08 1993-12-24 Nec Corp 要素配置方法および装置
US5712793A (en) * 1995-11-20 1998-01-27 Lsi Logic Corporation Physical design automation system and process for designing integrated circuit chips using fuzzy cell clusterization
JPH1185819A (ja) * 1997-09-02 1999-03-30 Matsushita Electric Ind Co Ltd 部品配置装置
JP2002252283A (ja) * 2001-02-27 2002-09-06 Fujitsu Ltd 配置方法、配置プログラム、および記録媒体
US20070150846A1 (en) * 2005-06-29 2007-06-28 Furnish Geoffrey M Methods and Systems for Placement
JP2008129725A (ja) * 2006-11-17 2008-06-05 Toshiba Corp 半導体レイアウト設計装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01142922A (ja) 1987-11-30 1989-06-05 Omron Tateisi Electron Co プリンタ用アダプタ
JPH0659686B2 (ja) 1990-10-29 1994-08-10 ダイアホイルヘキスト株式会社 コンデンサー用二軸配向ポリエステルフィルム
JPH06266801A (ja) 1993-03-15 1994-09-22 Nec Corp フロアプランを考慮した論理合成方法
JP3424997B2 (ja) 1995-01-31 2003-07-07 富士通株式会社 回路設計装置
JP2954894B2 (ja) 1996-12-13 1999-09-27 株式会社半導体理工学研究センター 集積回路設計方法、集積回路設計のためのデータベース装置および集積回路設計支援装置
US6249902B1 (en) * 1998-01-09 2001-06-19 Silicon Perspective Corporation Design hierarchy-based placement
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
US6519754B1 (en) * 1999-05-17 2003-02-11 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
JP2001142922A (ja) 1999-11-15 2001-05-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法
US6581191B1 (en) 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US7047163B1 (en) 2000-03-13 2006-05-16 International Business Machines Corporation Method and apparatus for applying fine-grained transforms during placement synthesis interaction
US6415426B1 (en) * 2000-06-02 2002-07-02 Incentia Design Systems, Inc. Dynamic weighting and/or target zone analysis in timing driven placement of cells of an integrated circuit design
US6711729B1 (en) * 2000-12-05 2004-03-23 Synplicity, Inc. Methods and apparatuses for designing integrated circuits using automatic reallocation techniques
US6480991B1 (en) 2001-04-11 2002-11-12 International Business Machines Corporation Timing-driven global placement based on geometry-aware timing budgets
US6845494B2 (en) * 2001-06-08 2005-01-18 Magma Design Automation, Inc. Method for generating design constraints for modules in a hierarchical integrated circuit design system
AU2003223051A1 (en) 2002-05-23 2003-12-12 Koninklijke Philips Electronics N.V. Integrated circuit design method
US7827510B1 (en) * 2002-06-07 2010-11-02 Synopsys, Inc. Enhanced hardware debugging with embedded FPGAS in a hardware description language
WO2004019219A2 (en) * 2002-08-21 2004-03-04 California Institute Of Technology Element placement method and apparatus
US7107568B2 (en) * 2002-10-07 2006-09-12 Hewlett-Packard Development Company, Lp. System and method for reducing wire delay or congestion during synthesis of hardware solvers
US6925628B2 (en) 2002-10-22 2005-08-02 Matsushita Electric Industrial Co., Ltd. High-level synthesis method
JP2004164627A (ja) 2002-10-22 2004-06-10 Matsushita Electric Ind Co Ltd 高位合成方法
US7003747B2 (en) * 2003-05-12 2006-02-21 International Business Machines Corporation Method of achieving timing closure in digital integrated circuits by optimizing individual macros
US7337100B1 (en) * 2003-06-12 2008-02-26 Altera Corporation Physical resynthesis of a logic design
US8095903B2 (en) * 2004-06-01 2012-01-10 Pulsic Limited Automatically routing nets with variable spacing
US7788625B1 (en) * 2005-04-14 2010-08-31 Xilinx, Inc. Method and apparatus for precharacterizing systems for use in system level design of integrated circuits
CN100347710C (zh) 2005-05-13 2007-11-07 清华大学 多端线网插入缓冲器优化时延的标准单元总体布线方法
GB0516634D0 (en) 2005-08-12 2005-09-21 Univ Sussex Electronic circuit design
CN100362520C (zh) 2005-09-09 2008-01-16 深圳市海思半导体有限公司 一种专用集成电路综合系统及方法
US7451416B2 (en) * 2006-03-17 2008-11-11 International Business Machines Corporation Method and system for designing an electronic circuit
US8332793B2 (en) 2006-05-18 2012-12-11 Otrsotech, Llc Methods and systems for placement and routing
US8819608B2 (en) * 2007-07-23 2014-08-26 Synopsys, Inc. Architectural physical synthesis
US8595674B2 (en) 2007-07-23 2013-11-26 Synopsys, Inc. Architectural physical synthesis

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03124046A (ja) * 1989-10-06 1991-05-27 Kawasaki Steel Corp 集積回路における回路ブロック配置の設計装置
JPH0417070A (ja) * 1990-05-11 1992-01-21 Toshiba Corp 自動フロアプラン装置及び方法
JPH05342290A (ja) * 1992-06-08 1993-12-24 Nec Corp 要素配置方法および装置
US5712793A (en) * 1995-11-20 1998-01-27 Lsi Logic Corporation Physical design automation system and process for designing integrated circuit chips using fuzzy cell clusterization
JPH1185819A (ja) * 1997-09-02 1999-03-30 Matsushita Electric Ind Co Ltd 部品配置装置
JP2002252283A (ja) * 2001-02-27 2002-09-06 Fujitsu Ltd 配置方法、配置プログラム、および記録媒体
US20070150846A1 (en) * 2005-06-29 2007-06-28 Furnish Geoffrey M Methods and Systems for Placement
JP2008129725A (ja) * 2006-11-17 2008-06-05 Toshiba Corp 半導体レイアウト設計装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015095692A (ja) * 2013-11-08 2015-05-18 キヤノン株式会社 半導体集積回路、及び、該半導体集積回路を備える情報処理装置

Also Published As

Publication number Publication date
US8595674B2 (en) 2013-11-26
WO2009014750A9 (en) 2009-04-09
JP5608079B2 (ja) 2014-10-15
EP2171624A2 (en) 2010-04-07
US10268797B2 (en) 2019-04-23
US20090031278A1 (en) 2009-01-29
US20140082579A1 (en) 2014-03-20
WO2009014750A2 (en) 2009-01-29
CN101809576A (zh) 2010-08-18
CN101809576B (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
JP5706689B2 (ja) アーキテクチャー上の物理的合成
JP5608079B2 (ja) アーキテクチャー上の物理的合成
US7669160B2 (en) Methods and systems for placement
US7752588B2 (en) Timing driven force directed placement flow
US8332793B2 (en) Methods and systems for placement and routing
US7275233B2 (en) Methods and apparatuses for designing integrated circuits
Chen et al. Simultaneous timing driven clustering and placement for FPGAs
Hutton et al. FPGA synthesis and physical design
WO2007147150A2 (en) Simultaneous dynamical integration applied to detailed placement
WO2007147084A2 (en) Generalized clock tree synthesis
TWI475415B (zh) 架構之實體合成
Murgai Technology-dependent logic optimization
Iida Design Methodology
Sayal EDA design for Microscale Modular Assembled ASIC (M2A2) circuits
Otten A design flow for performance planning: New paradigms for iteration free synthesis
Choi Performance driven optimization of VLSI layout
Kapadia Partitioning-driven convergence in the design of random-logic blocks
Leow Post-routing analytical models for homogeneous fpga architectures
Xu FPGA placement and global routing tool improvement based on simulated annealing and routing algorithms
Bazargan FPGA Technology Mapping, Placement, and Routing
Kim Physically-coupled replication and resynthesis

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130314

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130614

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140121

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140829

R150 Certificate of patent or registration of utility model

Ref document number: 5608079

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