【発明の詳細な説明】
ASIC設計における合成シェルの生成及び使用
著作権の限定的権利放棄
この特許文書の開示の一部には、著作権保護が求められている内容が含まれて
いる。著作権者は、米国特許商標庁のファイル又は記録に現れるままでのこの特
許文書又は特許開示の任意の者によるファクシミリ再生に反対しないが、それ以
外のすべての権利を留保する。
発明の背景
発明の分野
本発明は、集積回路の開発に関し、更に詳しくは、特定用途向け集積回路(A
SIC)の設計(design)及び開発(development)に用いられるツールに関す
る。
関連技術の説明
ASIC設計のための自動化された設計ツールにより、1つのチップ上に数百
万の使用可能なゲートを含むASICの設計が可能になる。そのような複雑なA
SICの開発プロセスは、設計を自動化するデータ処理システムにおいて実行さ
れる開発及び検証(verification)ツールに依存している。これらのツールは、
本発明の譲受人であるLSIロジック・コーポレーションなどの、主要な電子設
計自動化装置又はASICのベンダ(vendor)によって提供される。例えば、L
SIロジック社は、C−MDE(商標)設計ツールという製品を提供しているが
、これは、設計を作業用シリコンに移動させるのに必要なすべての機能を与える
ものである。市販されている設計自動化システムにおける設計ツールは、タイミ
ング解析ツール、フロア・プラニング・ツール、レイアウト・ツール、合成(sy
nthesis)ツール、パッケージング・ツールなどを含んでいる。
設計プロセスには、典型的には、行動(behavioral)の(又は、レジスタ移動
レベルの)記述(description)を伴うASICの仕様が含まれる。合成として
知られているプロセスでは、この行動記述が処理され、設計のための最適化され
たゲート・レベル・ネットリストが作成される。1つの設計に数百万のゲートが
存
在するために、ネットリストは、非常に大きくなる。合成は再帰的なプロセス(
recursive process)であるから、ネットリストの全体は、データ処理システム
の中に記憶され最終的な形態で作成される前に処理されなければならない。
ASIC設計の稠密度が高まるにつれて、利用可能な計算能力は、それに追い
ついていくのが困難になってきている。従って、ASIC設計のためのシステム
実行ツールは、大容量のメモリを有する強力なコンピュータを必要とする。使用
可能なゲートの数が極端に増大するにつれて、速度及びメモリのボトルネックの
問題が生じ、それにより、複雑な設計の開発プロセスの速度が実質的に低下する
ことになる。
この問題に対処するために、電子設計自動化装置のベンダであるシノプシス(
Synopsys)社が、タイミング・アーク(timing arcs)の形式でセルに対する遅
延情報を有するライブラリ・セルに変換可能な階層的設計を用いた「モデル」を
提案している。このモデルは、元の設計に代わって用いられ、元の設計は、その
設計のためのボトム・アップ合成プロセスの間、メモリから除去することができ
る。この技術は、それ自身の環境においてだけでなく、モデルが新たな環境に移
植された場合にも、不正確であることがわかっている。このモデルに依存する合
成は、結果的に、モデル化されたブロックの実際のゲート・レベルのネットリス
トを用いて得られるものとは非常に異なる設計を生じさせる。メモリの要求を削
減しようとする際に、この技術によって、受け入れられない量の精度が失われて
しまう。
また、ASIC産業が成熟するにつれて、多くのベンダが、ASIC設計ツー
ルのユーザに、回路のプロプライタリ(proprietary)なコア・ブロックを提供
する。これらのプロプライタリな回路は、ASIC開発に要求される設計時間を
、実質的に減少させる。しかし、そのような回路のベンダは、ASIC全体の合
成に用いるためのコア回路の設計の詳細を開示しなければならない。これでは、
結果的に、そうでなければ機密とされるはずのプロプライタリ情報を開示してし
まうことになり、望ましくない。
従って、精度を犠牲にせずに、大型のASIC設計の階層的な合成の際に、コ
ンパイル速度を改善しメモリ要求度を低下させるのに役立つツールを提供するこ
とが望まれている。更に、そのようなツールの実行結果が複数の設計環境及び合
成ツールの間で移植可能(portable)であり設計の再利用を容易にするものであ
ることが望ましい。更にまた、そのモジュールの所有者の知的財産権を保護する
フォーマットでプロプライタリ・モジュールに関する情報を提供し、同時に、そ
のモジュールを用いたASICの正確な合成を可能にすることが望まれる。
発明の概要
本発明は、合成シェル(systhesis shells)の使用に基づく数百万ゲートか
ら成るASICの合成のための実際的なアプローチを提供する。合成シェルは、
完全に特徴付けがなされた(fully characterized)ブロックのゲート・レベル
の記述から開始することによって、生成される。このゲート・レベルの記述は、
内部ゲートを除去し合成されたブロックの部分集合であるゲート・レベル合成シ
ェルを生じさせることによって、生成される。合成シェルは、ブロックの入力ロ
ード及びファンアウト、ブロックのクロックに対する出力遅延、ブロックの出力
ドライブ、ブロックのクロックに対する入力信号へのセットアップ/ホールド制
約条件、及びブロックの通過信号に対する入力から出力への遅延を保存する。こ
のような合成シェルは、元の設計ネットリストの代わりに、用いることができる
。従って、この合成シェルは、顧客の設計環境における階層的な合成のために、
又は、ASICサービスの提供側の知的財産権を保護するためにその提供側から
与えることが可能なものとして、用いることができる。合成側が必要とするすべ
ての情報はネットリストの形式で合成シェルにおいて入手可能であり、追加的な
情報が、元のローディング及び領域情報を再構成するのに与えられるので、シェ
ルは、非常に正確である。
上述の合成シェルは、合成されたブロックの部分集合であるゲート・レベル記
述を含む。この縮小された記述は、次のものを含む規準の組に従ってゲート・レ
ベル記述の要素を削除することによって得られる。すなわち、
入力ポートから第1の記憶素子(要素)への組合せ経路を保存すること、
最後の記憶素子から出力ポートへの組合せ経路を保存すること、
入力ポートから出力ポートへの直接の組合せ経路を保存すること、
クロック分散経路を保存すること、
出力ポートから記憶素子へのフィードバック経路を、その記憶素子と共に保存
すること、
設計における直接的な組合せ経路へのフィードバック経路を保存すること、
非同期RAMへの書き込み信号が入力ポートまでトレースされる場合にはその
非同期RAMを保存し、そうでなければその非同期RAMを組合せロジックとし
て扱い、同期RAMを記憶素子として扱うこと、
生じる内部クロックによってクロックされている任意の記憶素子が入力ポート
又は出力ポートに組合せロジックを介して又は直接に接続されている場合には、
内部クロックを生じる記憶素子を保存すること、及び
非同期経路を、リセット、クリアなどとして保存すること、である。
合成シェルの生成には、また、元のブロックに必要な領域と合成シェルにおけ
る保存された要素に必要な領域との差を示す領域差データを生成して、その領域
差データを合成シェルを用いて含ませるステップを含む。更に、ロード情報が、
合成シェルを用いて記憶され、この合成シェルは、合成プロセスに関連する合成
シェル内部のロードを示し、ブロックにおける最後の記憶素子から出力への経路
内のそれぞれのノード上のロードを示し、クロック及び非同期経路上のインクリ
メンタルなロードを示す。ここで、インクリメンタルなロードとは、ネットに接
続されたゲートの除去を補償するネット上のロードである。
シェルの直接的な実現は、シェルのブロックの主題に対する元のネットリスト
の部分集合にもかかわらず、ネットリストの形式で表されている。このシェルは
、ネットリストの部分集合において十分な情報を維持し、それによって、元のネ
ットリストをこの部分集合によって置き換えた場合には、合成装置に何の影響も
与えず、元のネットリストから得られたであろうすべての情報に依然としてアク
セスすることが可能である。シェル・ネットリストのサイズは、ずっと小さく、
その理由は、構成が、元のネットリストの部分集合によるからである。従って、
シェル・ネットリストを記憶するためのメモリ必要量は、より小さくなる。この
シェルは、異なるプロセス、電圧、温度(PVT)条件の間で移植可能であり、
集積回路の設計者にベンダから移植することができるし、また、階層的な合成の
間に設計者が生成することもできる。
従って、本発明は、複数のブロックを含む集積回路モジュールのゲート・レベ
ル記述を、そのモジュールの行動又はレジスタ移動(transfer)レベル記述から
合成する方法として特徴付けられる。この方法は、設計制約条件を伝え、そのブ
ロックの行動記述から複数の第1のブロックを合成する。この合成されたゲート
・レベル記述は、上述のように、合成シェルに縮小される。次に、この方法は、
合成シェルを参照して第2のブロックの行動記述を処理することによって複数の
ブロックにおける第2のブロックを合成し、少なくとも1つの他のブロックのゲ
ート・レベル記述を作成することに関する。
集積回路モジュールを合成するこの方法は、更に、更に他のブロックを、第1
及び第2のブロックの合成シェルを参照してその他のブロックの行動記述を再帰
的な態様で全体の設計が完了するまで処理することによって、合成することを含
む。
更に、このプロセスは、2つのブロックから成る合成シェルをより高いレベル
の合成シェルに統合するステップを含む。統合されたファイルは、次に、より低
いレベルの合成シェルの組合せに代わることができる統合された合成シェルに縮
小される。
本発明は、上述の方法を実行し作られる合成シェルを作成する及び/又は叙述
の方法によって作られる合成シェルを記憶する資源と、また、合成シェルを利用
する合成アルゴリズムを実行する処理資源を含む装置として特徴付けられる。
従って、数百万個のゲートを有する大規模なASICを合成するのに必要な処
理時間やメモリの量を縮小させることができる。先行技術によると、大規模な設
計の合成によると、利用可能な計算能力が限界に達し、速度及び資源のボトルネ
ック問題を生じていた。このボトルネックの主要な原因は、設計ネットリストの
全体を、従来技術では、最適化が完了したブロックの場合でも、メモリに保持し
ておかなければならないからであった。合成されたブロックがメモリに存在して
いることが要求されたが、その理由は、合成中の他のブロックの特徴付けに離京
を有し得るからである。本発明による合成シェルは、合成されたブロックからの
関連の情報の抽出に基づいており、合成中の他のブロックの特徴付けも依然とし
て正確である。このシェルの利点は、メモリに合成されたブロックの全体のネッ
トリストを記憶するのと比較して、抽出されたブロックを記憶するのであれば、
メモリ要求量が格段に小さくてすむ点である。従って、本発明の利点は、次のよ
うなものが含まれる。すなわち、
1.メモリ必要量の縮小、
2.ラン時間の縮小、
3.階層的な設計合成における表現と使用との精度に関して、元の設計と全く
変わらないこと、
4.複数の合成ツール及び設計環境の間で移植性を有する合成シェルへのネッ
トリスト・アプローチに依存していること、
5.先に設計したセルを設計者が自分自身のASICにおいて用いるために与
えるシステムにおいて、使用に関する情報の精度が保持されること、
6.ASICの合成において用いられる階層的なトップ・ダウン特徴付け及び
ボトム・アップ最適化方法に適合すること、
7.シェルが表すプロプライタリ・コアに対する知的財産権を保護すること、
である。
本発明のこれ以外の特徴及び効果は、次の、図面、詳細な説明及び請求の範囲
を参照することによって理解しうる。
図面の簡単な説明
図1は、合成シェルを生成し本発明に従って合成シェルに基づいて合成を行う
ための処理資源(processing resources)を含むシステムの簡略化されたブロ
ック図である。
図2は、合成シェルの使用と本発明による合成シェル生成とに基づく合成を含
むASIC設計のプロセスを図解している。
図3は、本発明による合成シェル生成に基づく再帰的合成プロセスの流れ図で
ある。
図4は、本発明による合成の流れの図解に用いられる例示的なブロック図であ
る。
図5は、シェル生成のための予め特定された規則に基づくセルの削除を図解す
るのに用いられる例示的なブロック図である。
図6は、本発明による1つの規則である内部的に生成されたクロックの保存の
図解に用いられる例示的なブロック図である。
図7は、本発明の1つの特徴による統合されたシェルを図解する例である。
図8は、本発明によるシェル生成のプロセスを図解する流れ図である。
図9は、本発明によるシェル生成の間の領域の平衡化技術を図解する流れ図で
ある。
図10は、合成シェルにおける特定のネット上でロード情報を保存する技術を
図解する流れ図である。
図11から図16は、代表的な回路ブロックの回路図と付属資料(アペンディ
クスA−C)のコード・サンプルによって表されている回路ブロックのシェルと
であり、本発明による合成シェル・プロセスの例を説明している。
詳細な説明
本発明の好適実施例の詳細な説明を、図1から図10を参照して行う。ここで
、図1は、合成シェルの生成と、本発明に従ってASICの合成における合成シ
ェルの利用とにおいて用いられる装置の全体像を与えている。図11から図16
は、付属資料におけるネットリスト全体及び合成シェルの例を図解するのに用い
られる。
図1に示されている装置は、バス11に結合されている中央処理装置(CPU)
10を含む。更にバス11には、入出力デバイス12と表示システム13とが結
合されている。この装置においては、データ・メモリ14と命令メモリ15とが
与えられており、CPU10によって用いられるために、バス11に接続されて
いる。本発明によるデータ・メモリは、開発中のASICのレジスタ移動(tran
sfer)レベルやそれ以外の行動記述(behavioral description)を含む。また
、データ・メモリは、合成の後のASICのゲート・レベル記述や、合成シェル
又は開発中のASIC内部の回路ブロックのシェルを記憶するのに用いられる。
このブロック図は、本発明に従って合成シェル及びプロセスを記憶し処理する
装置の発見的(heuristic)な見方を与える。この図は、例えば、この出願で述
ベられている追加的な要素を含む商用のワーク・ステーションやパーソナル・コ
ンピュータの構成要素を表そうとしたものである。本発明によると、命令メモリ
15は、合成ツールを含んでおり、本発明による合成シェル生成プロセスと合成
シェルの生成のための領域平衡化プロセスとを伴っている。更に、この合成ツー
ルは、既に合成されたブロックのための合成シェルに依存して、開発中のASI
C内部でブロックを合成することができる。
このように、命令メモリは、VERILOG又はVHDLなどのハードウェア
記述言語を実現するのに用いられる開発及び検証ツールを含む。これらの設計ツ
ールは、ハードウェア記述レベルからワークステーションに設計を移植するのに
必要なすべての機能を与えてくれる。これらの機能には、合成ツール、タイミン
グ解析ツール、フロア・プラニング・ツール、レイアウト・ツール、パッケージ
ング・ツールなどが含まれる。本発明によると、これらの機能は、また、上述し
たが後に更に詳しく説明する領域平衡化機能を有する合成シェル生成を含む。
図2は、本発明による合成シェル生成及び使用の内容を図解している。従って
、図2は、ASICの開発のための設計の流れを図解しており、これは、ASI
Cの仕様の生成(ブロック100)と、この仕様に基づくASICのゲート・レ
ベル記述の合成(ブロック101)と、結果的なゲート・レベル記述のレイアウ
ト(ブロック102)とを含み、これらは、ASICの製造の際に用いられる。
本発明は、合成資源(synthesis resource)における改善を提供するものであ
る。従って、合成は、例えば、レジスタ移動レベル(RTL)におけるハードウ
ェア記述言語を用いてASICの行動記述を提供すること(ブロック103)を含
む。この行動記述は、翻訳され最適化される(ブロック104)。翻訳及び最適化
ステップの結果は、ASICのためのゲート・レベル・ネットリストである(ブ
ロック105)。
本発明によると、合成シェルは、合成の翻訳と最適化の間に用いられる。合成
の方法に従って、例えばRTLコードである行動コードとASICのための設計
制約条件(design constraints)が、供給される(ブロック106)。この情報に
基づいて、ASICは、特徴付けられ最適化されて、ゲート・レベル記述を与え
る(ブロック107)。
最後に、合成シェル・ネットリストが、合成中のブロックに対して得られる(
ブロック108)。シェルは、「触れてはならない」とマークされ、ASICの
更なるブロックの合成のために記憶される(ブロック109)。
この合成シェル・ネットリストは、最適化されたブロックの読み取りを含むシ
ェル生成プロセスを用いて得られる(ブロック110)。
1組の規準を適用する規則が適用されて、回路ブロックに対する合成された設
計から、ゲートを除去する(ブロック111)。最後に、シェル・ネットリスト
とシェルのための必要な他のファイルが、ASICの平衡(バランス)の合成に
おいて用いるために書き込まれ、元のブロックが除去される(ブロック112)。
ブロック111において適用された規則には、基本的なシェル生成規則が含ま
れ、その結果として、ASICの平衡の合成には不要である回路ブロックの内部
からのゲートの除去が生じる(ブロック113)。特別のケース及び階層的な考慮
が、次に、結果的なゲート・リスト・レベル・シェルに加えられる(ブロック1
14)。更なる合成のために必要なネット上のロードは、合成シェルにおいて復
旧される(restored)(ブロック115)。回路ブロックに対する元のゲート・レ
ベル記述のための領域情報は、領域平衡化によって、合成シェルとして用いられ
る縮小されたネットリストにおいて保存される(ブロック116)。最後に、合成
シェルの結果は、他のブロックの更なる合成のために用いることができる(ブロ
ック117)。
図3は、本発明による合成プロセスの更に詳細なブロック図を与えている。従
って、図3は、大型の設計を特徴付けし最適化するのに用いられる合成の流れを
定義している。入力/出力属性及びタイミング制約条件が与えられ、モジュール
を特徴付ける(ブロック200)。特徴付けは、トップ・ダウンのプロセスであり
、特徴付けられているモジュールのピン上のすべてのI/O属性の計算を提供す
る。このプロセスは、トップ・レベル・モジュールのI/O特性と回路の残りの
効果とを特徴付けられているモジュールの入力及び出力まで伝えることによって
、実行される。特徴付けはトップ・ダウン・プロセスであるが、これは、階層の
トップ・レベルにあるモジュールの特性は、サブモジュールの特性を決定するこ
とができるより先に決定されなければならないからである。
モジュールを特徴付けすると、プロセスは、モジュールを最適化することに進
む(ブロック201)。最適化は、設計の小さなブロックから始まるボトム・アッ
プ・プロセスである。あるモジュールに対する合成シェルは、そのモジュールが
完全に最適化されゲートにマップされる、すなわち、現在の環境において合成さ
れるとすぐに作成される。これはまた、モジュールが「触れてはならない」とマ
ークされる地点である。
ブロック202に示されるように、遅延予測及びタイミング解析の後でタイミ
ング及びそれ以外の制約条件が満足されると、「触れてはならない」という属性
がモジュールに与えられ(ブロック203)、合成シェルが作成され、そのモジ
ュールは、このシェルによって代えられる(ブロック204)。
ブロック202においてタイミング及びそれ以外の制約条件が満足されないと
、シェルは、ブロック201から始まる最適化が再度なされる。
この合成シェルは、1組の規準に基づく最適化されたブロックのゲート・レベ
ル記述を縮小する規則に基づく技術によって、ブロック204において作成され
る。シェルがそのために生成されるモジュールは、次の制約条件を満足しなけれ
ばならない。すなわち、
1.完全に同期していなければならない。
2.すべての設計制約条件を満足していることが完全に検証されていなければ
ならない。
3.ゲート・レベルになければならない。
4.「触れてはならない」とマークされることができる地点まで、最適化され
ていなければならない。
これらの制約条件が満足される場合には、そのモジュールは、合成シェルに変
換することができる。
合成シェルは、次の情報を保存しなければならない。すなわち、
1.入力ロード及びファンアウト
2.クロックに対する出力遅延
3.クロックに対する入力信号に対するセットアップ/ホールド制約条件
4.すべての通過信号に対する入力から出力への遅延
図4は、本発明による合成シェルに基づく合成の流れの例を与えるのに用いら
れる回路図である。最初に、図4に示された回路は、行動レベルで定義される。
目的(オブジェクト)は、回路を最適に合成することである。回路ブロックAで
定義される階層は、ブロックBを有するトップ・レベルと、シェルC及びDとを
含む。シェルC及びDは、合成プロセスは既に作成されたシェルに依存し得るこ
とを強調するために図示されている。ブロックBは、ブロックE及びFによって
定義される階層の別のレベルを含む。接続関係は矢印で示されており、矢印11
は、ブロックA,B及Eに与えられる入力である。12は、ブロックA,B,E
及びFに接続される入力である。また、12は、シェルD及びCへの入力として
供給される。13は、ブロックA及びシェルCへの入力である。13は、ブロッ
クA及びシェルCへの入力である。14は、ブロックA及びシェルDへの入力で
ある。出力O1からO3は、次のように接続されている。出力O1は、ブロック
E,B及びAからの出力である。出力O2は、シェルc及びブロックAからの出
力である。出力O3は、シェルDにおいて生じ、ブロックAからの出力として与
えられる。内部ネットN1及びN2は、次のように接続されている。ネットN1
は、ブロックEにおいて生成され、ブロックFに供給される。ネットN2は、ブ
ロックFにおいて生成され、ブロックBからの出力として与えられ、シェルC及
びDへの入力として接続される。
この例では、入力12は、クロックを表している。すべての他の入力及び出力
は、クロックとの関係で特定される。この場合には、合成及び特徴付けの以下の
プロセスが行われ、最適な回路が提供される。ステップの次のリストでは、シェ
ルC及びDは、実際のブロックC及びDから作成される。(タイミング解析は、
ブロックのゲート・レベル・ネットリストが使用可能になるとすぐに、実行する
ことができる。)
すべてのブロックを、トップ・ダウンで特徴付ける(例えば、Bの次にE及び
F)。
Eを合成し、それをフロアプラン(floorplan)して、Eを再び特徴付ける。
Bを、そしてそれに続きFを再び特徴付ける。
Fを合成し、それをフロアプランして、Fを再び特徴付ける。
Eを再び特徴付ける。
E及びFをタイミング解析する。
必要であれば、Eを再び合成し、再び特徴付ける。
Fについて同じことをする。(ただし、この結果として、収束しない逐次的プ
ロセスとなる可能性があり、そうであれば、プロセスを停止させる規準が適用さ
れる。)
E及びFを「触れてはならない」とマークする。
E及びFのためのシェルを作成し、それぞれのシェルによって、それらの代わ
りとする。
Bを再び特徴付けする。
Bを合成し、それをフロアプランする(これによって、E及びFのフロア・プ
ラニングが変更され得る)。
Bを再び特徴付けし、タイミング解析を実行する。
必要であれば、Bを再び特徴付け及びフロアプランする。
Bを「触れてはならない」とマークする。
Bのためのシェルを作成し、そのシェルによってBの代わりとする。
C及びDを再び特徴付けする。
Cを合成し、それをフロアプランして、Cを再び特徴付けする。
Dを再び特徴付けする。
Dを合成し、それをフロアプランして、Dを再び特徴付けする。
C及びDをタイミング解析する。
必要であれば、Cを再び合成し、再び特徴付ける。
Dについて同じことをする。(ただし、この結果として、収束しない逐次的プ
ロセスとなる可能性があり、そうであれば、プロセスを停止させる規準が適用さ
れる。)
C及びDを「触れてはならない」とマークする。
C及びDのためのシェルを作成し、それぞれのシェルによって、それらの代わ
りとする。
Aを合成し、それをフロアプランする(これによって、B,C及びDのフロア
・プラニングが変更され得る)。
Aをタイミング解析する。
合成マネジャは、階層におけるすべてのブロックに対する規則に基づく特徴付
けを生じさせる。例えば、ブロックEに対する入力I1は、関連するワイヤ遅延
に対してなされる想定によって十分に特定される。12に接続されたクロックは
、ネット上のワイヤ遅延とロードに対する想定によって特定されるが、その理由
は、I2が接続されている他の2つのブロックもまたRTLレベルにあるからで
ある。同様にして、ネットN1は、O1に接続された出力が完全に特定される間
に、想定に基づいて特定される。ブロックE及びすべての他のブロックは、この
ようにして特徴付けられる。この場合には、合成及び特徴付けの次のプロセスが
行わ
れて、最適の回路を提供する。(タイミング解析は、あるブロックのゲート・レ
ベルの例が利用可能になるとすぐに実行することができる。)
すべてのブロックを、トップ・ダウンで特徴付ける(例えば、Bの次にE及び
F)。
Eを合成し、それをフロアプランして、Eを再び特徴付ける。
Bを、そしてそれに続きFを再び特徴付ける。
Fを合成し、それをフロアプランして、Fを再び特徴付ける。
Eを再び特徴付ける。
E及びFをタイミング解析する。
必要であれば、Eを再び合成し、再び特徴付ける。
Fについて同じことをする。(ただし、この結果として、収束しない逐次的プ
ロセスとなる可能性があり、そうであれば、プロセスを停止させる規準が適用さ
れる。)
E及びFを「触れてはならない」とマークする。
E及びFのためのシェルを作成し、それぞれのシェルによって、それらの代わ
りとする。
Bを再び特徴付けする。
Bを合成し、それをフロアプランする(これによって、E及びFのフロア・プ
ラニングが変更され得る)。
Bを再び特徴付けし、タイミング解析を実行する。
必要であれば、Bを再び特徴付け及びフロアプランする。
Bを「触れてはならない」とマークする。
Bのためのシェルを作成し、そのシェルによってBの代わりとする。
C及びDを再び特徴付けする。
Cを合成し、それをフロアプランして、Cを再び特徴付けする。
Dを再び特徴付けする。
Dを合成し、それをフロアプランして、Dを再び特徴付けする。
C及びDをタイミング解析する。
必要であれば、Cを再び合成し、再び特徴付ける。
Dについて同じことをする。(ただし、この結果として、収束しない逐次的プ
ロセスとなる可能性があり、そうであれば、プロセスを停止させる規準が適用さ
れる。)
C及びDを「触れてはならない」とマークする。
C及びDのためのシェルを作成し、それぞれのシェルによって、それらの代わ
りとする。
レジスタ318の出力は、インバータ314及びインバータ321を介して与
えられ、出力Out1を生成する。レジスタ320の出力は、インバータ322
に与えられ、出力Out2を与え、バッファ323を介して、ANDゲート32
4への1つの入力となる。ANDゲート324への第2の入力は、Out2信号
である。ANDゲート324の出力は、信号Out4を与える。
入力信号302は、インバータ325を介して、信号Out3を生成する組合
せクラウド(cloud)326に与えられる。
図5を参照すると、セルをゲート・リストから除去するタイミング規則を論じ
ることができる。図5では、Xとマークされた要素は、シェルに対して保存され
ない。
1.入力ポートから回路の経路上の第1の記憶素子への組合せ経路は、保存さ
れる必要がある。これは、任意の入力遅延を再構成し記憶素子のセットアップ及
びホールド時間を計算するのに必要である。従って、例えば、図5の矢印K1に
沿ったセルは、保存される必要があり、これには、NANDゲート305、AN
Dゲート306及びレジスタ310が含まれる。同様にして、ゲート304、ゲ
ート308及びレジスタ309は、保存される必要がある。レジスタ309の出
力からゲート306の入力へのネットは、保存されない。
2.最後の記憶素子から出力ポートへの任意の組合せ経路は、維持される必要
がある。これは、この出力ポートに従属するブロックに対するデータ到着時間と
この後であれば出力ポートにおいてデータが利用可能となる遅延との再構成を可
能にするために必要である。従って、図5の矢印K2の近傍の要素は、保存され
る必要がある。すなわち、レジスタ320及びゲート322は、この規則による
と保存されるべきである。また、レジスタ318、ゲート314及びゲート32
1は、保存されるべきである。
3.シェルがそのために作られるブロックの入力ポートから出力ポートへの任
意の直接の組合せ経路は、保存される必要がある。これは、この出力に従属する
他のブロックの入力においてシェルからデータ到着時間を再構成するために本質
的である。従って、図5の矢印K3に沿った要素は、保存される必要がある。従
って、インバータ325と組合せクラウド326とは、保存されるべきである。
4.クロック分散ネットワークは、保存される必要がある。従って、ライン3
03によって定義されるネットは、保存される必要がある。
5.バッファされていない出力ポートから生じるフィードバック経路は、出力
ローディングに基づいてそれらが接続されている記憶素子のセットアップ時間に
影響する。従って、そのようなフィードバック経路は、影響される記憶素子と共
に保存されるべきである。従って、例えば、図5の経路K4に沿って出力Out
1によって定義されるルートのブランチ上の要素は、保存される必要がある。結
果的に、ゲート307、ゲート304、ゲート308、レジスタ309が保存さ
れる。
6.純粋な組合せロジックを含む出力からのフィードバック経路は、保存され
る必要がある。従って、図5では、出力Out2からANDゲート324の入力
への矢印K5に沿ったブランチと共に、バッファ323とANDゲート324と
は、保存される。
7.リセット及びセットなどの非同期構造は、保存される必要がある。従って
、図5の回路におけるレジスタの任意のものがセット又はリセット入力を含む場
合には、これらの信号を生成するのに用いられるネットは、合成シェルにおいて
、保存されるべきである。
図5には示されていないが、メモリ素子の場合には、次の特別の場合を考慮す
る必要がある。すなわち、
1.メモリ・セルは、非同期RAMである場合には、任意の他の組合せロジッ
クのように扱われるべきであり、それに与えられるデータが記憶素子から来てい
るのでなければ、削除されるべきではない。この特別の場合は、このRAMへの
書き込み信号が入力ポートまでトレースされ得るときに生じる。そのような場合
には、RAMは、保存されるべきである。
2.同期RAMは、記憶素子のように扱われる。RAMに到着する及びRAM
を去るすべての信号がラッチされている場合には、RAMは削除することができ
るが、そうでなければ、保存されるべきである。
3.内部クロックを生成するフリップフロップは、それらがクロックする記憶
素子の任意のものが入力ポート又は出力ポートに組合せロジックを介して又は直
接に接続されている場合には、保存される必要がある。この場合が図6に図解さ
れているが、これは、ライン361上で入力Aを受け取る組合せクラウド360
を含む。レジスタ363をクロックするクロック信号が、ライン362上に与え
られる。レジスタ363の出力は、データ入力をレジスタ365に与える組合せ
クラウド364を介して、与えられる。このレジスタは、ライン322上の信号
によってクロックされる。このレジスタ365の出力は、レジスタ366をクロ
ックするのに用いられる。レジスタ366へのデータ入力は、組合せクラウド3
60の出力において与えられる。従って、要素365は、保存される必要がある
が、その理由は、それが、入力Aからそのデータを組合せロジックを介して受け
取るレジスタ366をクロックするからである。
以上の規準によると、セルを、回路ブロックのゲート・レベル記述から削除し
て、合成シェルを作成することができる。更に、多くのブロックを最適化して、
セルにすることができる。この場合には、相互接続されたシェルを、1つに統合
することができる。次に、2つのシェルがトップ・レベルから見られ、先行の規
則が適用されて、図7に図解されているような既存のサブシェルから成るスーパ
ー・シェルが得られる。従って、図7に示されている第1のシェル400と第2
のシェル401とは、組み合わされて、統合されたシェル402になる。第1の
シェル400は、記憶素子403と、組合せロジック405を介して出力を与え
る記憶素子404とを含む。ロジック405の出力は、第2のシェル401への
入力として、第1のシェル400から外へ与えられる。第2のシェルは、入力レ
ジスタ406と、組合せロジック408を介して出力を与えるレジスタ407と
を含む。統合されたシェルが作成され、その結果として、スーパー・シェル40
2のために、レジスタ404及び406と組合せロジック405とが削除される
。
更に、上述の規則に基づいて保存される必要があり、その推移的(transitive
)なファンアウトにおいていくつかの削除されたゲートを有する、すなわち、経
路
におけるノードに接続されているがシェルに記憶される必要はない削除されたゲ
ートを有する経路は、ロード復旧される必要がある。このようなロード平衡化(
バランシング)は、バッファされた出力からの内部フィードバック・ゲートが削
除される場合に必要であり、その理由は、記憶デバイスから出力に至る経路上の
ロードが影響されるからである。最後の記憶素子から出力ポートへの経路におけ
るそれぞれのノード上のロードは、復旧される必要がある。従って、図5のキャ
パシタ351によって発見的(ヒューリスティック)に表されるネット上のキャ
パシタンスは、復旧され留必要があり、この場合を満足するが、ここで、ゲート
315は、削除された内部フィードバック・ゲートであり、Out1上のロード
に影響する。
クロック・ネットに沿って現れるインクリメンタルなロードは、ダンプ・アウ
トされ、クロック・ネット上でロードの復旧を実行する必要がある。従って、要
素312及び316の除去を補償するクロック・ネット303上のインクリメン
タルなロードは、保存される必要がある。
合成の2つの主なゴールは領域とタイミングとであるから、合成装置によって
評価されるシェルの領域(面積)は、そのシェルが作られた元のネット・リスト
と同じである必要がある。元の領域は、元のゲート・レベル記述に基づいて入手
可能であり、シェルに対して生成された縮小されたネットリストの領域も同様で
ある。従って、機能を有さないが、元のネットリストと縮小されたネットリスト
との領域の差に等しく設定された領域パラメータを有するダミー・セルをモデル
化し、そのダミー・セルを縮小されたネットリストにおいて実例を示すことによ
り、領域の平衡が与えられる。
3つのタイプの領域が、合成装置によって評価される。すなわち、組合せ領域
、非組合せ領域及びネット領域である。組合せ、非組合せ及びネット領域は、ダ
ミー組合せセル、ダミー・シーケンシャル・セル及びダミー・ネットの実例を示
すことによって、復旧することができる。これらのダミー要素は、機能を有して
いないが、領域情報を与える。ダミー・セルは、それぞれの設計技術に特定的で
あり、従って、ライブラリ・ファイルとしてモデル化され、ユーザのホーム・デ
ィレクトリの中にコンパイルされる。ワイヤロード・モジュールが実際にはネッ
ト領域を決定し、ただ1つのワイヤロード・モジュールを、階層のそれぞれのレ
ベ
ルに対して選択することができるので、領域平衡化セルは、シェル・ネットリス
トにおける別個のブロックとして実例化される。
従って、トップ・ダウンの設計が3つのブロック(ブロック1、ブロック2及
びブロック3)が存在する階層の1つのレベルを有するという仮定の下では、合
成シェルのオプションを有する合成シェル生成ルーチンを呼び出すことにより、
次のオプションの下での次のファイルが結果的に生じる。すなわち、
1.領域平衡化のためにゲートを規則に基づいて削除しダミー・ゲートを含ま
せた後に残るゲートを含む合成シェル・ネットリスト。このネットリストは、ま
た、3つの成分であるdum_comb、dum_seq及びdum_netを
実例化するdum_areaと称されるトップ・レベルの下での階層の別個のレ
ベルを含む。dum_combセルは、1つのネットによって、dum_seq
セルに接続されている。これらの成分の記述は、ライブラリ・ファイルにおいて
入手可能である。
2.シノプシス(synopsys)フォーマット又は任意の合成ツール・フォーマッ
トでのライブラリ・ファイル。これは、dum_combを称される1つの組合
せセルを有し、このセルは、機能は有していないが、削除された組合せセルの領
域(面積)に等しい領域を有している。また、これは、機能は有していないが設
計から削除された非組合せセルの全体の領域に等しい領域を有するdum_se
qと称されるセルを含む。dum_netは、元のネットリストとゲートが除か
れたネットリストとの評価されたネット領域の差に単位ファンアウト当たりのワ
イヤロード領域が等しいワイヤロード・モデルである。
3.元の設計のすべての成分とネットとに対するローディング情報を含むブロ
ック・ローディング・ファイル。
統合されたシェルの場合には、合成シェル・プログラムは、ブロック1及びブ
ロック2を、1つのレベルの階層に崩壊させ、1つのシェルを作る。出力ファイ
ルに関する限り、プログラムは、2つのファイルを、すなわち、ブロック1に対
する崩壊したネットリストとブロック2に対する崩壊したネットリストとを、生
じさせる。元のシェル・ネットリストと崩壊したネットリスト・ファイルとの唯
一の差は、元のシェル・ネットリスト・ファイルの場合には、ネットリストは1
つのトップ・レベルを想定して生成されるということである。しかし、崩壊した
ネットリスト・ファイルは、既に図7を参照して述べたように2つ以上のレベル
を組み合わせてシェルを作成した後で生成されるネットリストである。
図8、図9及び図10は、本発明によるシェル生成において用いられる、シェ
ル生成の流れ、領域の平衡化及びロードの復旧を与えている。図8では、次の用
語が、シェル生成の背後にある概念の理解を助ける目的で用いられている。
「ルート(root)」。回路ブロックの任意の入力ポート又は出力ポートは、ルート
と称される。例えば、図5では、ノード300、301及び302が、ルートで
ある。また、出力Out1、Out2、Out3及びOut4もルートである。
「ブランチ(branch)」。ブランチは、ルートから生じるファンアウトである。従
って、図1を参照すると、ライン353によって表されている地点300からゲ
ート304の入力への経路はブランチであり、また、ネット354によって表さ
れるノード300からゲート305の入力への経路もまた入力ポート300のフ
ァンアウトであるからブランチである。
「シュート(shoot)」。シュートは、マクロセルから生じるファンアウトである
。図5では、インバータ314とインバータ313とに至るインバータ321の
入力はシュートである。
「シュート・イン(shoot in)」。シュート・インは、セルの入力に接続された
シュートである。例えば、図5におけるネットSin1は、ゲート313へのシ
ュート・インである。
「シュート・アウト(shoot out)」。シュート・アウトは、セルの出力に接続さ
れたシュートである。例えば、図5におけるネットSout1は、ゲート314
へのシュート・アウトである。
「リーフ(leaf)」。リーフとは、タイミング経路が終端する任意の記憶素子であ
る。設計におけるすべてのフリップフロップとラッチとはリーフである。
図8は、シェル生成のためのプロセスの流れを与える。アルゴリズムは、開始
から始まる(ブロック500)。第1のステップは、処理される次のルートを位置
決めし、それが入力なのか出力なのかを識別することである(ブロック501)。
次に、アルゴリズムは、そのルートがクロック、セット又はクリア信号を運ぶか
どうかを判断する(ブロック502)。ブロック502において、それがクロック
、セット又はクリア信号出ない場合には、アルゴリズムは、ルート上の
次の(又は第1の)ブランチを位置決めする(ブロック503)。このブランチに
対しては、ブランチ上のセルは、保持すべきものとしてマークされる(ブロック
504)。次に、そのセルがリーフであるかどうかが判断される(ブロック505
)。リーフでない場合には、レベル・インデクスiは、1に設定され(ブロック5
16)、このレベルに対してセル上の次のシュートが、位置決めされる(ブロック
507)。次に、アルゴリズムは、対応するルートが入力ルートであるかどうか
を判断する(ブロック508)。入力である場合には、そのシュートがシュート・
インであるかどうかを判断する(ブロック509)。ブロック509においてシュ
ート・インである場合には、そのセルは、ロード復旧のためにマークされ(ブロ
ック510)、アルゴリズムは、次のシュートの位置決めをするために、ブロッ
ク507までループして戻る。シュート・インではない場合には、又は、対応す
るルートがブロック508において入力であった場合には、アルゴリズムは、セ
ルを保持すべきものとマークする(ブロック511)。次に、アルゴリズムは、保
持されるべきとマークされたセルがリーフであるかどうかを判断する(ブロック
512)。リーフでない場合には、インデクスiはインクリメントされ(ブロック
513)、そうでない場合には、インデクスiは、変わらない。次に、アルゴリ
ズムは、このインデクス・レベルi上のすべてのシュートが処理されたかどうか
を判断する(ブロック514)。そうでなければ、アルゴリズムは、次のシュート
を処理するために、ブロック507までループして戻る。ブロック514ですべ
てのシュートがこのレベルに対して処理されたとされる場合には、アルゴリズム
は、インデクスiがゼロかどうかを判断する(ブロック515)。iがゼロではな
い場合には、iは、1だけデクリメントされ(ブロック516)、アルゴリズムは
、ブロック514にループする。iがブロック505においてゼロである場合に
は、アルゴリズムは、そのルートに対するすべてのブランチが処理されているか
どうかをブロック517において判断する。そうでなければ、次のブランチを処
理するために、ブロック503までループして戻る。ルート上のすべてのブラン
チが処理されている場合には、アルゴリズムは、すべてのルートが処理されてい
るかどうかを判断する(ブロック518)。そうでなければ、アルゴリズムは、図
示されているように、ブロック501において地点Aまで分岐して戻る。すべて
のルートが処理されている場合には、アルゴリズムは、終了に
よって示されているように、終了する(ブロック519)。
ブロック502においてルートがクロック、セット又はクリア信号であると判
断された場合には、アルゴリズムは、処理すべき次の(又は第1の)ブランチを
位置決めする(ブロック520)。次に、このブランチ上のセルがリーフであるか
どうかが判断される(ブロック521)。リーフである場合には、アルゴリズムは
、ルート上に他のブランチがあるかどうかを判断する(ブロック530)。ルート
上のすべてのブランチが処理されている場合には、アルゴリズムは、ブロック5
20までループして戻る。ブロック530においてそのルートに対するすべての
ブランチが終了しているを判断される場合には、アルゴリズムは、ルートを処理
するためにブロック501に分岐して戻る。ブロック521においてセルがリー
フではないということになれば、アルゴリズムは、ブロック522に分岐して、
インデクスiがゼロに設定される。次に、アルゴリズムは、セルを保持すべきも
のとしてマークし(ブロック523)、インデクスiを1だけインクリメントする
(ブロック524)。インデクスをインクリメントした後で、アルゴリズムは、レ
ベルiにおける第1の又は次のシュートを位置決めする(ブロック525)。そし
て、シュート上のセルがリーフであるかどうかが判断される(ブロック526)。
セルがリーフではない場合には、アルゴリズムは、分岐してブロック523に移
動し、セルを保持すべきものとマークする。セルがリーフである場合には、アル
ゴリズムは、レベルiにおけるすべてのシュートが処理されているかどうかを判
断する(ブロック527)。そうでなければ、アルゴリズムは、ブロック525に
戻り、次のシュートを処理する。すべてのシュートが処理されている場合には、
アルゴリズムは、インデクスが1に等しいかどうかを判断する(ブロック528)
。インデクスが1ではない場合には、1だけデクリメントされ(ブロック529)
、アルゴリズムは、ブロック527に戻って、それよりも低いレベルの他のシュ
ートを処理する。ブロック528においてインデクスiが1に等しい場合には、
アルゴリズムは、分岐してブロック530に至り、すべてのブランチが処理され
ているかどうかを判断する。そうでなければ、アルゴリズムは、ブロック520
に戻り、次のブランチに進む。すべてのブランチがブロック530で処理されて
いる場合には、アルゴリズムは、ブロック501までループして戻り、処理を継
続する。
図9は、タイミング・シェル・ネットリストのための領域平衡化プロセスを図
解している。このプロセスは、開始ブロック600で始まる。第1のステップは
、合成されている回路ブロックのための技術ライブラリを読み出すことに関する
(ブロック601)。次に、元の設計の組合せ、非組合せ及びネット領域が決定さ
れる(ブロック602)。次に、作成されたシェルの組合せ、非組合せ及びネット
領域が決定される(ブロック603)。これらの2つのファイルの差が、ライブラ
リ・ファイルに書き込まれる(ブロック604)。次に、このシェルの組合せ、非
組合せ及びネット領域が、ライブラリ・ファイルをコンパイルことによって作成
される(ブロック605)。これらのダミー・セルは、タイミング・シェルの中に
挿入され、プロセスは終了する(ブロック606)。
図10は、図8及び図9に従って生成された合成シェルのためのロード復旧の
プロセスを図解している。このアルゴリズムは、開始ブロック600で始まる。
第1のステップは、第1の又は次のリーフを回路において位置決めすることに関
する(ブロック601)。次のステップでは、このリーフがセル生成プロセスに保
持するためにマークされているかどうかを判断する(ブロック602)。そうでな
ければ、そのリーフに対するクロック、クリア及びセット・ネット上のロードは
、復旧される(ブロック603)。保持のためにマークされている場合には、アル
ゴリズムは、ブロック601まで、ループして戻る。
ブロック603の後は、アルゴリズムは、すべてのリーフが処理されているか
どうかをを判断する(ブロック604)。そうでなければ、アルゴリズムは、ブロ
ック601までループして戻り、次のリーフを処理する。すべてのリーフがブロ
ック604において処理されている場合には、アルゴリズムは、ブロック605
に進み、シェル生成プロセスにおいてロード復旧のためのマークがなされている
セル上のロードは、ロード復旧される。このプロセスの後で、アルゴリズムは、
終了する(ブロック606)。
この後に、付属資料(Appendices)のA、B及びCが続いている。付属資料A
は、加算器のためのVERILOG言語での行動コードのサンプルであり、付属
資料Bは、付属資料Aにおいてコードによって表された加算器に対するNDLフ
ォーマットでの合成されたネットリストであり、付属資料Cは、本発明によって
作成されたNDLフォーマットの合成シェルである。付属資料Bにおいて示さ
れている完全な合成されたネットリストは、28のマクロセルを有する回路を記
述している。例えば、図11、12及び13は、この合成されたネットリストの
トップ・レベルの回路を示している。図11において示されているように、FD
1というラベルの付された14のレジスタと、更にBITADDというラベルの
付されたサブブロックとがこのトップ・レベルの回路図に存在している。図12
は、5つのゲートを有する第1の加算器のサブブロックを示し、図13は、9つ
のゲートを有する第2の加算器のサブブロックを示している。これは、付属資料
Bに記述された加算器の完全なゲート・レベルのネットリストによって定義され
た28のゲートに対応する。
付属資料Cは、本発明による合成シェルのための縮小されたネットリストを示
している。この縮小されたネットリストは、図14の回路図によって示されるよ
うに、たった14のゲートと1つのダミー・セルとを有する。図示されているよ
うに、図14は、14のゲートと2つのゲートが除去されたブロックを有してい
る。ゲートが除去されたブロックは、図15及び図16に示された回路に表すこ
とができる。図示されているように、図15及び図16は、単に、回路における
サブブロックの入力と出力とである。従って、付属資料Cは、ネットリスト・フ
ォーマットでの結果的な合成シェルを示している。付属資料Cでは、ダミー・セ
ルは、ライン71によって表されている。上述のように、このダミー・セルは、
縮小されたネットリストのためのダミー・セルの記述が与えられているセル・ラ
イブラリへの基準を与える。代表的なダミー・モジュールは、付属資料Cのライ
ン122で始まる。ライン128は、シーケンシャル領域のための領域平衡化ラ
イブラリにおけるフェーク・セルfk_arseq()に対応し、ライン129
は、組合せ領域のためのフェーク・セルfk_ar_com()を指す。ダミー
・モジュールにおいて定義されたネットは、上述の領域平衡化dum_netで
ある。
このように、大規模集積回路(LSI)の合成に役立つ新たなツールがデータ
処理環境において用いられる合成シェル構成に基づいて与えられる。合成シェル
は、ASICの設計に関して表された回路ブロックに依存する顧客に移植され、
又は、大規模集積回路の合成の一部として生成される。合成シェルを用いること
により、大規模なASICの合成の際に、時間とメモリ消費との点で、処理要求
を大幅に縮小する。
本発明の好適実施例に関する以上の説明は、例示及び説明目的のものである。
網羅的であるとか本発明を開示された正確な形式に限定しようとするなどのiT
OTALは全くない。明らかに、当業者には、多くの修正や改変が明らかである
。本発明の範囲は、次に掲げる請求の範囲とその均等物とによって、画定される
ものとする。
【手続補正書】特許法第184条の8第1項
【提出日】1997年3月4日
【補正内容】
請求の範囲の記載を次の通りに補正する。
『1.モジュールの行動(behavioral)記述から、複数の回路ブロックを含む
集積回路モジュールのゲート・レベル記述を合成する方法であって、
前記複数のブロックにおける第1のブロックを、前記第1のブロックの前記行
動記述を処理することによって合成し、前記第1のブロックのゲート・レベル記
述を生じさせるステップと、
前記第1のブロックの前記ゲート・レベル記述におけるゲート数を減らすこと
により、前記第1のブロックのゲート・レベル記述よりも少ないゲートを有する
回路のゲート・レベル記述を含む合成シェルを生成するステップであって、前記
合成シェルは、前記第1のブロックと同じ数の入力ロード及びファンアウト、前
記第1のブロックと同じクロックに対する出力遅延、前記第1のブロックと同じ
出力ドライブ、前記第1のブロックと同じクロックに対する入力信号へのセット
アップ/ホールド制約条件、及び前記第1のブロックと同じ通過信号に対する入
力から出力への遅延を有する、ステップと、
前記複数のブロックにおける少なくとも1つの他のブロックを、前記合成シェ
ルを参照して前記少なくとも1つの他のブロックの行動記述を処理することによ
って合成し、前記少なくとも1つの他のブロックのゲート・レベル記述を生じさ
せるステップと、
を含むことを特徴とする方法。
2.請求項1記載の方法において、前記第1のブロックのゲート・レベル記述
は、前記第1のブロックのために必要とされる領域を特定するパラメータを含ん
でおり、前記縮小するステップは、
前記第1のブロックのために必要とされる領域と前記合成シェルにおける要素
のために必要とされる領域との差を示す領域差データを生成し、前記合成シェル
を用いて前記領域差データを含ませるステップを含むことを特徴とする方法。
3.請求項1記載の方法において、前記縮小するステップは、
最後の記憶素子から出力ポートへの経路におけるそれぞれのノード上のロード
(負荷)とクロック及び非同期経路上のインクリメンタル・ロードとを示す情報
を記憶するステップを含むことを特徴とする方法。
4.請求項1記載の方法において、前記合成シェルは、前記第1のブロックの
部分集合であるゲート・レベル記述を含み、前記縮小するステップは、1組の規
準に従って前記第1のブロックのゲート・レベル記述の要素を削除するステップ
を含むことを特徴とする方法。
5.請求項4記載の方法において、前記第1のブロックのゲート・レベル記述
は、前記第1のブロックのために必要な領域を特定し、前記縮小するステップは
、
前記第1のブロックのために必要とされる領域と前記合成シェルにおける要素
が必要とする領域との差を示す領域差データを生成し、前記領域差データを、前
記複数のブロックにおける少なくとも1つの他のブロックの合成に用いるために
、前記合成シェルと関連させるステップを含むことを特徴とする方法。
6.請求項4記載の方法において、前記1組の規準は、
入力ポートから第1の記憶素子への組合せ経路を保存することを含むことを特
徴とする方法。
7.請求項4記載の方法において、前記1組の規準は、
非同期RAMへの書き込み信号が入力ポートまでトレースされる場合にはその
非同期RAMを保存し、そうでなければ、その非同期RAMを組合せロジックと
して扱うことを含むことを特徴とする方法。
8.請求項4記載の方法において、前記1組の規準は、
そのように生じる内部クロックによってクロックされている任意の記憶素子が
入力ポート又は出力ポートに組合せロジックを介して又は直接に接続されている
場合には、内部クロックを生じる記憶素子を保存することを含むことを特徴とす
る方法。
9.請求項4記載の方法において、前記1組の規準は、
最後の記憶素子から出力ポートへの組合せ経路を保存することを含むことを特
徴とする方法。
10.請求項4記載の方法において、前記1組の規準は、
入力ポートから出力ポートへの直接の組合せ経路を保存することを含むことを
特徴とする方法。
11.請求項4記載の方法において、前記1組の規準は、
クロック分散経路を保存することを含むことを特徴とする方法。
12.請求項4記載の方法において、前記1組の規準は、
出力ポートから記憶素子へのフィードバック経路を、その記憶素子と共に保存
することを含むことを特徴とする方法。
13.請求項4記載の方法において、前記1組の規準は、
組合せロジックから構成される経路へのフィードバック経路を保存することを
含むことを特徴とする方法。
14.請求項4記載の方法において、前記1組の規準は、
非同期経路を保存することを含むことを特徴とする方法。
15.請求項4記載の方法において、前記1組の規準は、
入力ポートから第1の記憶素子への組合せ経路を保存することと、
最後の記憶素子から出力ポートへの組合せ経路を保存することと、
入力ポートから出力ポートへの直接の組合せ経路を保存することと、
クロック分散経路を保存することと、
出力ポートから記憶素子へのフィードバック経路を、その記憶素子と共に保存
することと、
組合せロジックから構成される経路へのフィードバック経路を保存することと
、
非同期RAMへの書き込み信号が入力ポートまでトレースされる場合にはその
非同期RAMを保存し、そうでなければ、その非同期RAMを組合せロジックと
して扱うことと、
そのように生じる内部クロックによってクロックされている任意の記憶素子が
入力ポート又は出力ポートに組合せロジックを介して又は直接に接続されている
場合には、内部クロックを生じる記憶素子を保存することを含むことと、
非同期経路を保存することと、
を含むことを特徴とする方法。
16.請求項1記載の方法において、前記少なくとも1つの他のブロックを合
成するステップは、
第2のブロックのゲート・レベル記述を、前記第2のブロックに対する入力ロ
ード及びファンアウト、前記第2のブロックのクロックに対する出力遅延、前記
第2のブロックの出力ドライブ、前記第2のブロックのクロックに対する入力信
号へのセットアップ/ホールド制約条件、及び前記第2のブロックの通過信号に
対する入力から出力への遅延を保存する第2の合成シェルに縮小するステップと
、
前記複数のブロックにおける他のブロックを、前記第1のブロックの前記合成
シェルと前記第2のブロックの前記第2の合成シェルとを参照して前記他のブロ
ックの行動記述を処理することによって合成し、前記少なくとも1つの他のブロ
ックのゲート・レベル記述を生じさせるステップと、
を含むことを特徴とする方法。
17.請求項16記載の方法において、
前記第1及び第2のブロックの合成シェルを統合された(merged)合成シェル
に縮小するステップを含み、前記統合された合成シェルは、前記第1及び第2の
ブロックに対する入力ロード及びファンアウト、この統合された第1及び第2の
ブロックのクロックに対する出力遅延、この統合された第1及び第2のブロック
の出力ドライブ、構成員統合された第1及び第2のブロックのクロックに対する
入力信号へのセットアップ/ホールド制約条件、及びこの統合された第1及び第
2のブロックの通過信号に対する入力から出力への遅延を保存することを特徴と
する方法。
18.回路ブロックのゲート・レベル記述を作成する方法であって、
前記ゲート・レベル記述を処理し、1組の規準に従って、前記回路ブロックの
前記ゲート・レベル記述の要素を削除するステップであって、前記1組の規準は
、前記回路ブロックに対する入力ロード及びファンアウト、前記回路ブロックの
クロックに対する出力遅延、前記回路ブロックの出力ドライブ、前記回路ブロッ
クのクロックに対する入力信号へのセットアップ/ホールド制約条件、及び前記
回路ブロックの通過信号に対する入力から出力への遅延を保存する、ステップと
、
残りの要素のゲート・レベル記述を、前記合成シェルとして、前記回路ブロッ
クに記憶するステップと、
を含むことを特徴とする方法。
19.請求項18記載の方法において、前記回路ブロックのゲート・レベル記
述は、前記回路ブロックのために必要とされる領域を特定し、前記処理するステ
ップは、
前記回路ブロックのために必要とされる領域と前記合成シェルにおける要素が
必要とする領域との差を示す領域差データを生成し、前記合成シェルを用いて前
記領域差データを含ませるステップを含むことを特徴とする方法。
20.請求項18記載の方法において、前記処理するステップは、
最後の記憶素子から出力ポートへの経路におけるそれぞれのノード上のロード
とクロック及び非同期経路上のインクリメンタル・ロードとを示す情報を記憶す
るステップを含むことを特徴とする方法。
21.請求項18記載の方法において、前記1組の規準は、
前記回路ブロックにおける入力ポートから第1の記憶素子への組合せ経路を保
存することと、
前記回路ブロックの最後の記憶素子から出力ポートへの組合せ経路を保存する
ことと、
前記回路ブロックの入力ポートから出力ポートへの直接の組合せ経路を保存す
ることと、
前記回路ブロックにおいてクロック分散経路を保存することと、
前記回路ブロックの出力ポートから前記回路ブロックにおける記憶素子へのフ
ィードバック経路を、その記憶素子と共に保存することと、
組合せロジックから構成される経路への前記回路ブロックにおけるフィードバ
ック経路を保存することと、
非同期RAMへの書き込み信号が入力ポートまでトレースされる場合にはその
非同期RAMを保存し、そうでなければ、その非同期RAMを組合せロジックと
して扱うことと、
そのように生じる内部クロックによってクロックされている任意の記憶素子が
入力ポート又は出力ポートに組合せロジックを介して又は直接に接続されている
場合には、内部クロックを生じる記憶素子を保存することを含むことと、
非同期経路を保存することと、
を含むことを特徴とする方法。
22.請求項18記載の方法において、前記回路ブロックは、第1及び第2の
サブブロックを含み、前記処理するステップは、前記処理するステップは、前記
ゲート・レベル記述を処理して前記1組の規準に従って前記第1のサブブロック
のゲート・レベル記述の要素を読み出すステップと、前記ゲート・レベル記述を
処理して前記1組の規準に従って前記第2のサブブロックのゲート・レベル記述
の要素を削除するステップと、前記第1及び第2のサブブロックの残りの要素の
ゲート・レベル記述の組合せから成るゲート・レベル記述を処理して前記合成シ
ェルを生成するステップと、を含むことを特徴とする方法。
23.請求項18記載の方法において、前記処理するステップは、
前記回路ブロックに対する入力及び出力ポートを再帰的に検査して、前記ポー
ト上の信号がクロック、セット、又はクリア信号ではない場合には、前記ポート
のブランチを検査するステップと、
それぞれのブランチに対して、前記ブランチ上のセルを維持されるようにマー
クし、前記セルがリーフであるかどうかを判断するステップと、
前記セルがリーフでない場合には、前記セルに対するシュートをそれぞれのシ
ュート上でリーフに達するまで検査し、前記セル上のシュートが他のセルの出力
である場合や、検査されているポートが入力である場合には、前記他のセルを維
持されるようにマークし、そうでない場合には、ロードされるべきシュート上の
前記セルを復旧されたものとマークするステップと、
前記ポート上の信号がクロック、セット又はクリア信号である場合には、前記
ポートのブランチを検査し、次に、前記ポートのそれぞれのブランチ上のリーフ
まで又は維持されたセル上のそれぞれのシュートまで維持されるようにセルをマ
ークするステップと、
結果的なゲート・レベル記述にダミー・セルを追加し、前記合成シェルのため
の領域を平衡させるステップと、
前記ゲート・レベル記述におけるすべてのクロック、クリア及びセット・ネッ
ト上の、及び、ロードの復旧のためにマークされたすべてのセルの上のロードを
復旧するデータを記憶するステップと、
を含むことを特徴とする方法。
24.回路ブロックのゲート・レベル記述の合成シェルを記憶するメモリを含
む装置であって、この装置は、
前記ゲート・レベル記述を処理し、1組の規準に従って、前記回路ブロックの
前記ゲート・レベル記述の要素を削除するステップであって、前記1組の規準は
、前記回路ブロックに対する入力ロード及びファンアウト、前記回路ブロックの
クロックに対する出力遅延、前記回路ブロックの出力ドライブ、前記回路ブロッ
クのクロックに対する入力信号へのセットアップ/ホールド制約条件、及び前記
回路ブロックの通過信号に対する入力から出力への遅延を保存する、ステップと
、
残りの要素のゲート・レベル記述を、前記合成シェルとして、前記回路ブロッ
クに記憶するステップと、
を含む方法によって作成されることを特徴とする装置。
25.請求項24記載の装置において、前記回路ブロックのゲート・レベル記
述は、前記回路ブロックのために必要とされる領域を特定し、前記処理するステ
ップは、
前記回路ブロックのために必要とされる領域と前記合成シェルにおける要素が
必要とする領域との差を示す領域差データを生成し、前記合成シェルを用いて前
記領域差データを含ませるステップを含むことを特徴とする装置。
26.請求項24記載の装置において、前記処理するステップは、
最後の記憶素子から前記回路ブロックの出力ポートへの経路におけるそれぞれ
のノード上のロードと前記回路ブロックにおけるクロック及び非同期ネット上の
インクリメンタル・ロードとを示す情報を記憶するステップを含むことを特徴と
する装置。
27.請求項24記載の装置において、前記1組の規準は、
前記回路ブロックにおける入力ポートから第1の記憶素子への組合せ経路を保
存することと、
前記回路ブロックの最後の記憶素子から出力ポートへの組合せ経路を保存する
ことと、
前記回路ブロックの入力ポートから出力ポートへの直接の組合せ経路を保存す
ることと、
前記回路ブロックにおいてクロック分散経路を保存することと、
前記回路ブロックの出力ポートから前記回路ブロックにおける記憶素子へのフ
ィードバック経路を、その記憶素子と共に保存することと、
組合せロジックから構成される経路への前記回路ブロックにおけるフィードバ
ック経路を保存することと、
非同期RAMへの書き込み信号が入力ポートまでトレースされる場合にはその
非同期RAMを保存し、そうでなければ、その非同期RAMを組合せロジックと
して扱うことと、
そのように生じる内部クロックによってクロックされている任意の記憶素子が
入力ポート又は出力ポートに組合せロジックを介して又は直接に接続されている
場合には、内部クロックを生じる記憶素子を保存することを含むことと、
非同期経路を保存することと、
を含むことを特徴とする装置。
28.請求項24記載の装置において、前記合成シェルの前記回路ブロックの
主題と他の回路とを含む集積回路モジュールのゲート・レベル記述を、前記合成
シェルと前記モジュールにおける前記他の回路の行動記述とから合成する処理資
源を含むことを特徴とする装置。』
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,DE,
DK,ES,FI,FR,GB,GR,IE,IT,L
U,MC,NL,PT,SE),OA(BF,BJ,CF
,CG,CI,CM,GA,GN,ML,MR,NE,
SN,TD,TG),AP(KE,LS,MW,SD,S
Z,UG),AM,AT,AU,BB,BG,BR,B
Y,CA,CH,CN,CZ,DE,DK,EE,ES
,FI,GB,GE,HU,IS,JP,KE,KG,
KP,KR,KZ,LK,LR,LT,LU,LV,M
D,MG,MN,MW,MX,NO,NZ,PL,PT
,RO,RU,SD,SE,SG,SI,SK,TJ,
TM,TT,UA,UG,UZ,VN
(72)発明者 ラマチャンドラン,ラヴィチャンドラン
アメリカ合衆国カリフォルニア州94089,
サニーヴェール,ワイルドウッド・アベニ
ュー 1235,ナンバー72
(72)発明者 アグラワル,サリカ
アメリカ合衆国カリフォルニア州95054,
サンタ・クララ,リヴァーサイド・コート
420,ナンバー206
(72)発明者 アドカール,サンジャイ
アメリカ合衆国カリフォルニア州94514,
サンノゼ,ハンバーサイド・コート 3114
【要約の続き】
部分集合であるゲート・レベル記述を含む。この記述
は、予め特定された1組の規準に従って、ゲート・レベ
ル記述の要素を削除することによって、縮小される。