JP3662149B2 - リピータ・セルの配置方法、その配置装置、および記録媒体 - Google Patents
リピータ・セルの配置方法、その配置装置、および記録媒体 Download PDFInfo
- Publication number
- JP3662149B2 JP3662149B2 JP28884199A JP28884199A JP3662149B2 JP 3662149 B2 JP3662149 B2 JP 3662149B2 JP 28884199 A JP28884199 A JP 28884199A JP 28884199 A JP28884199 A JP 28884199A JP 3662149 B2 JP3662149 B2 JP 3662149B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- repeater
- repeater cell
- cell
- net
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、配線遅延を抑制するために、チップ内部の電気配線(回路パス)にリピータ・セルを挿入する方法に関する。
【0002】
【従来の技術】
VLSI用の高速回路に挿入されるリピータ・セルの個数は、VLSIの動作周波数に大きく影響する。500MHz以上の速度で動作するマイクロプロセッサは、200MHz以下の速度で動作するマイクロプロセッサよりもはるかに多くのリピータ・セルを必要とする。
【0003】
大規模かつ高性能のVLSIを設計する上で、チップ内の金属配線部分の信号伝搬、すなわち配線遅延がRC遅延の主要因になる。一般に、配線遅延は、配線長の二乗に比例して増加する。配線遅延は、インバータやバッファ(ノン・インバータ)のようなリピータ・セルを挿入することにより減らすことができる。
【0004】
従来は、回路内のトランジスタの各ゲート入力信号のトランジション・タイムが等しくなるように、リピータ・セルの配置を決定していた。最大許容トランジション・タイムは、セル間の配線遅延(interconnect Elmore Delay)と相関づけられて決定される。このセル間の配線遅延は、Julian Culetu等の「A Practical Repeater Insertion Method in High-Speed VLSI Circuits」(Proc. IEEE Design Automation Conference, pp.392-395, 1998)に記載されている。
【0005】
セル間の配線遅延は、RCツリーの遅延を近似的に表したものである。RCツリー上の任意のノードiにおけるRC遅延の第1近似は、(1)式に示すエルモア定数Tiにより表される。
【0006】
【数1】
(1)式において、Rkiは入力端子とノードiとの間の経路の抵抗値である。このRkiは、入力端子とノードkとの間の経路の抵抗値と同じである。また、Ckは、ノードkにおける容量である。
【0007】
ノードiの信号電圧Vi(t)は(2)式で表される。
【0008】
【数2】
(2)式において、Tiはエルモア遅延定数である。ノードiの電圧ViがVxになる時間Txは、(3)式で表される。
【0009】
【数3】
従来は、(1)〜(3)式に基づいて、公知のリピータ挿入アルゴリズムによりリピータセルの挿入位置を決定していた。公知のリピータ挿入アルゴリズムでは、個々のノードでの分散化された容量を計算した後、ネット内の各負荷へのエルモア遅延を計算する。リピータ・セルは、エルモア遅延が最大となる負荷容量を有する経路に挿入される。リピータ・セルの挿入位置を検索する手法は、ボトムアップ検索と呼ばれる。
【0010】
エルモア遅延は、RCネットをセグメント単位で分析しつつ、リピータ・セルをセグメントのドライバとして考えながら計算される。計算を行った結果、セグメントの遅延時間が予め定めた制限時間を超えると、そのセグメント内にリピータ・セルが挿入されて、リピータ・セルの前後に新しいサブネットが生成される。
【0011】
また、回路に分岐がある場合には、分岐ノードを、リピータ・セルの出力ノードに移動させる。分岐ノードの移動は、セグメントの最大遅延時間が制限時間を超えなくなるまで続けられる。以上の処理が、エルモア遅延の大きい順に繰り返し行われる。
【0012】
【発明が解決しようとする課題】
リピータ・セルの挿入位置を予測する他の従来技術として、John Lillis等の「"Timing Optimization for Multi-source Nets:Characterization and Optimal Repeater Insertion", proc. 34th DAC, 1997」に記載されている。
【0013】
この論文に記載された技術は、隣接したノード間の容量を所定の制限値以下にするのには不適当であった。さらに興味深いことに、この論文に記載された技術は、枝分かれ経路が二以上ある場合に、満足な結果が得られない。
【0014】
さらに、従来は、リピータ・セルの挿入結果を、回路合成ツールやレイアウト・ソフトウェアにバック・アノテートすることができなかった。このため、リピータ・セルの挿入後は、入力端子、出力端子およびbiput端子などを新たに追加して回路モジュールを定義し直さなければならなかった。
【0015】
以下、リピータ・セル挿入後にバック・アノテーションを行う場合の従来の問題点を詳述する。各回路モジュールは、特定のソフトウェア専用のネットリストで表される。
【0016】
リピータ・セル挿入時にリピータ・セルを挿入するための理想的な位置がモジュールの内部に設けられることがある。このような位置にリピータ・セルを挿入すると、そのモジュール内に新たな入出力パラメータが必要となる。ところが、新たな入出力パラメータは、ネットリストで正しく表現できないため、リピータ・セルを挿入した回路については、回路モジュールを新たに生成し直さなければならなくなる。
【0017】
リピータ・セルを挿入する他の手法として、ハードマクロ・ブロックのみからなる回路に挿入する手法が知られている。しかしながら、この手法は、スタンダードセルには使用できない。その理由は、モジュールや領域を考慮せずにモジュール内部にリピータ・セルが挿入された場合、リピータ・セル挿入後のモジュールを定義するためには新規の入出力ピンが必要になるためであり、リピータ・セル挿入後の回路データを回路合成ツールやレイアウト・ソフトウェアのバック・アノテーションは許容できない。
【0018】
また、従来のリピータ挿入手法は、サイズの異なる2種類以上のリピータ・セルをサポートしておらず、負荷の容量の大きさによっては、著しく信号遅延が生じるおそれがあった。
【0019】
さらに、リピータ・セルの挿入後に、バック・アノテーションを正しく行えるようにするのが望ましい。
【0020】
さらにまた、多大な配線遅延や論理遅延を起こすことなく大きな負荷を駆動できるように、サイズの異なる複数種類のリピータ・セルを設けるのが望ましい。また、信号遅延を減らしてタイミング解析を不要とする、タイミング駆動型のリピータ技術が必要である。
【0021】
本発明は、このような点に鑑みてなされたものであり、その目的は、回路パス上の任意の位置において、隣接する2つのノード間の容量が所定値を越えないように、インバータ等のリピータ・セルを挿入するリピータ・セルの挿入方法を提供することにある。
【0022】
また、本発明の他の目的は、回路モジュールを定義するために付加的な入出力ピンを必要とせずに、リピータ・セルの挿入結果を合成ツールやレイアウト・ソフトウェアで利用できるようにすることである。
【0023】
さらに、本発明の他の目的は、サイズの異なる複数種類のリピータ・セルを用いて、リピータの挿入を行うことである。
【0024】
また、本発明の他の目的は、タイミング的に最もクリティカルな分岐経路の信号遅延を低減し、信号の伝搬速度を高速化しつつタイミング解析を不要とすることである。
【0025】
【課題を解決するための手段】
上述した課題を解決するために、本発明は、入力端子および出力端子間に少なくとも一つの回路モジュールが接続されており、前記入力端子から前記出力端子までの回路パス上にリピータ・セルを挿入するリピータ・セルの配置方法において、前記リピータ・セルは、前記回路モジュールの内部を除く前記回路パス上に挿入され、前記出力端子に近い側から前記入力端子に向かって、前記リピータ・セルの挿入位置を検索し、前記回路パスを構成するすべての回路ネットの回路パラメータが所定の基準しきい値以下になるように前記リピータ・セルを挿入する。
【0026】
請求項1の発明では、リピータ・セルを回路モジュールの外部に挿入するため、リピータ・セルを挿入しても、回路モジュールの入出力パラメータが変化しない。
【0027】
請求項2の発明では、回路パラメータ(例えば、負荷容量)が基準しきい値よりも大きい回路ネットにリピータ・セルを挿入するため、配線遅延による信号遅延を低減できる。
【0029】
本発明では、リピータ・セルの挿入により入出力パラメータが変化するような場所や、トライステート・バッファと接続しているため、信号の向きが固定していない場合など、リピータ・セルを挿入できない場所を予め禁止領域として設定しておくため、効率よく、かつ誤りなくリピータ・セルを挿入できる。
【0030】
本発明では、回路モジュールの入出力パラメータが変化しない場合に限り、リピータ・セルの挿入を許可するため、バック・アノテーションが可能になる。
【0031】
本発明では、リピータ・セル自身の遅延を考慮に入れてリピータ・セルを挿入するため、タイミング制約を遵守することができる。
【0032】
本発明では、駆動能力の異なる複数種類のリピータ・セルを使用できるようにしたため、負荷容量に応じた最適なリピータ・セルを選択することができる。
【0033】
本発明では、リピータ・セルを挿入した結果をバック・アノテートしてネットリストを生成するため、回路のレイアウト設計が容易になる。
【0034】
本発明では、最もクリティカルな回路ネットにはリピータ・セルを挿入しないようにしたため、各回路ネットのタイミング制約を遵守することができる。
【0035】
また、本発明は、入力端子および出力端子間に少なくとも一つの回路モジュールが接続されており、
前記入力端子から前記出力端子までの回路パス上にリピータ・セルを挿入するリピータ・セルの配置装置において、
前記回路パス上に、前記リピータ・セルを挿入可能な少なくとも一つの回路ネットが存在するか否かを判定する判定手段と、
前記回路ネットが存在すると判定されると、各回路ネットごとに前記回路パラメータを計算する回路パラメータ計算手段と、
前記出力端子に近い側から前記入力端子に向かって、前記リピータ・セルの挿入位置を検索し、前記回路パスを構成するすべての回路ネットの回路パラメータが所定の基準しきい値以下になるように前記リピータ・セルを挿入する第3ステップと、を備える。
【0036】
また、本発明は、入力端子および出力端子間に少なくとも一つの回路モジュールが接続されており、
前記入力端子から前記出力端子までの回路パス上にリピータ・セルを挿入するプログラムが記録された記録媒体において、
前記回路パス上に、前記リピータ・セルを挿入可能な少なくとも一つの回路ネットが存在するか否かを判定する第1ステップと、
前記回路ネットが存在すると判定されると、各回路ネットごとに前記回路パラメータを計算する第2ステップと、
前記出力端子に近い側から前記入力端子に向かって、前記リピータ・セルの挿入位置を検索し、前記回路パスを構成するすべての回路ネットの回路パラメータが所定の基準しきい値以下になるように前記リピータ・セルを挿入する第3ステップと、を備える。
【0037】
【発明の実施の形態】
以下、本発明に係るリピータ・セルの挿入方法について、図面を参照しながら具体的に説明する。以下では、負荷の単位として「LU」を用いる。この「LU」の一単位は、例えば、0.01〜0.05pFである。H-bufferと呼ばれるリピータ・セルは、最大で100LUの負荷を駆動する通常のリピータ・セルであり、4LUのゲート容量を有する。H-bufferは、例えば簡易的なインバータ・ゲートで構成される。
【0038】
一方、U-bufferと呼ばれるリピータ・セルは、100LUを越える負荷の駆動に用いられる大きなリピータ・セルである。U-bufferは、例えば大きなインバータ・ゲートで構成される。
【0039】
H-bufferやU-bufferは、バッファとして図示されるが、各バッファの特性等は上述したものに限定されない。本発明は、あらゆる種類のリピータ・セルを対象とする。
【0040】
また、本実施形態では、回路内の各ネットが177LUのしきい値容量を有するものと仮定する。177LU以上の容量を有するネットにはリピータ・セルが挿入される。各リピータ・セルは、最大で100LUの容量を駆動できるものとする。したがって、隣接する2つのリピータ・セル間の容量は100LUを越えてはいけない。
【0041】
本実施形態のリピータ・セル挿入方法を説明する前に、従来のリピータ・セル挿入について説明する。図1は従来のリピータ・セルの挿入手法を説明する図である。図1のドライバ11は、170LU+4LU=174LUの容量を駆動する。この容量はしきい値容量177LUよりも小さいため、ドライバ11の出力端子にはリピータ・セルは挿入されない。
【0042】
一方、図2(a)、図2(b)、図2(c)はドライバ11の負荷容量が224LU(=220LU+4LU)の例を示す図である。この場合の負荷容量もしきい値容量を超えるため、出力端子のノード22からドライバ11に向かって、リピータ・セルの挿入位置の検索が行われる。このような検索はボトムアップ検索と呼ばれる。
【0043】
この結果、ドライバ11とノード22との間に、一個目のリピータ・セル101を挿入すべき位置102が見つかる(図2(b))。この位置102にリピータ・セル101を挿入すると、リピータ・セル101とノード22との間の容量は100LU(=96LU+4LU)となる。
【0044】
この状態では、ドライバ11とリピータ・セル101との間の容量は、100LUより大きい128LU(=124LU+4LU)である。このため、二度目のボトムアップ検索が行われ、二個目のリピータ・セル103を接続すべき位置103が見つかる(図2(c))。
【0045】
一方、図3(a)、図3(b)、図3(c)はドライバ11が60LUの負荷66を駆動する例を示しており、ドライバ11と負荷66との間の容量は150LUである。図3の場合、図2と同様に、ボトムアップ検索が行われ、一個目のリピータ・セル101を挿入すべき位置104が見つかる(図3(b))。この位置にリピータ・セル101を挿入すると、ノード66とノード104との間の容量は100LU(=40LU+60LU)になる。
【0046】
また、ドライバ11とリピータ・セル101との間の容量は、100LUより大きい114LU(=110LU+4LU)なので、二度目のボトムアップ検索が行われ、二個目のリピータ・セル101を挿入すべき位置105が見つかる(図3(c))。この位置にリピータ・セルを挿入することにより、ノード104とノード105との間の容量は100LU(=96LU+4LU)になる。
【0047】
図4(a)、図4(b)、図4(c)はドライバ11が非常に大きな負荷66を駆動する例を示す図である。図4の場合、負荷66の接続位置に一個目のリピータ・セル101が接続される(図4(b))。このリピータ・セルには、非常に大きな負荷66を駆動可能なH-bufferが用いられる。
【0048】
ところが、このリピータ・セルだけでは、ドライバ11とリピータ・セル101との間の容量が100LUを越えてしまう。このため、ボトムアップ検索が行われ、二個目のリピータ・セル101を挿入すべき位置301が見つかる(図4(c))。この位置にリピータ・セル101を挿入することにより、ノード301とノード300との間の容量は100LU(=96LU+4LU)になる。
【0049】
また、二個目のリピータ・セル101とドライバ11との間の容量は100LU以下の58LU(=54LU+4LU)であるため、以後のボトムアップ検索は行われない。
【0050】
図4では、120LUの負荷をH-Bufferであるリピータ・セル101で駆動する例を示しているが、100LUを越えるような非常に大きな負荷を駆動すると、信号遅延が大きくなるという問題がある。
【0051】
また、従来のリピータ・セル挿入手法は、複数の分岐ネットを有する回路に対しては、適切な位置にリピータ・セルを挿入できないという問題があった。
【0052】
図5は従来の問題点を解決することを目的とした本発明の第1の実施形態の全体構成を示すブロック図である。図5のリピータ・セル挿入装置は、リピータ・セルの最適な挿入位置を決定するものである。
【0053】
図5のリピータ・セル挿入装置は、ソフトウェア・プログラムによりリピータ・セルの挿入位置を計算する。その際、例えば、Avant! Corporationの配置配線ツールであるAquariusXO(AXO)20が使用される。このAXO20は、UNIX(登録商標)やUNIXと互換性のあるオペレーティング・システムの下で動作する。
【0054】
AXO20は、スタンダード・セルとゲートアレイの混載チップの設計に用いられる、セルベースの配置配線ツールであり、統合環境の下で、セルベースの複雑なLSIの設計を行う。
【0055】
AXO20は、Verilog-HDLのネットリスト9と、リピータ・セルの挿入禁止位置を示すモジュール/領域ファイル12と、DSPF(Detailed Standard Parasitic Format)ファイル13と、出力ピン容量ファイル14と、矩形レイアウト領域ファイル15とを生成する。なお、DSPFファイル13は、対象回路内の全ネットの容量値と抵抗値とを記述したファイルである。
【0056】
図5のリピータ位置演算器10は、AXO20が生成したファイルのうち、Verilog-HDLのネットリスト以外のファイルと、3種類のユーザ定義ファイルと、内部容量値およびしきい値容量値を含むパラメータ・ファイル16と、リピータ挿入禁止ネット(Don't Touch Net)リストファイル17と、枝分かれ経路のスラック(タイミング制約と実際の信号遅延の差)ファイル18とに基づいて、リピータ・セルの挿入位置を決定するための演算を行う。そして、Verilog-HDLのネットリスト変換ファイル10と、AXOリピータ配置ファイル21と、リピータ・ファイル付きのDSPFとを生成する。
【0057】
AXO20は、リピータの挿入禁止物理領域情報ファイル23と、仮配置された他のセル情報ファイル24とを生成する。
【0058】
リピータ・リロケータ30は、AXO20が生成したリピータの挿入禁止物理領域情報ファイル23および仮配置された他のセル情報ファイル24と、Verilog-HDLのネットリスト変換ファイル19と、AXOリピータ・セル変換ファイル21と、矩形レイアウト領域ファイル15とに基づいて、リピータ・セル101の物理的な重複をなくし、セル・グリッドに沿ってリピータ・セル101を再配置する。
【0059】
また、デザイン・コンパイラ用リピータセル変更禁止コマンド・ファイル生成器50は、AXOリピータ配置ファイル21を用いてデザイン・コンパイラ用リピータセル変更禁止コマンド・ファイル27を生成し、このファイルはデザイン・コンパイラ60に入力される。
【0060】
図6はリピータ・リロケータ30の処理動作を示すフローチャートである。まず、リピータ・セル101の挿入が禁止される物理領域情報ファイル23と、仮配置された他のセル情報ファイル24と、矩形レイアウト領域ファイル15とを読み込む(ステップS1)。
【0061】
リピータ・リロケータ30は、リピータ・セル101が変換ファイル21内に存在するか否かを判定する(ステップS2)。変換ファイル内に存在しなければ図2の処理を終了し、変換ファイル内に存在すれば、リピータ・セル一つ分のデータをAXOリピータ配置ファイル21から読み込む(ステップS3)。
【0062】
次に、リピータ・セル位置を、他のブロック、境界レイアウト領域、および他のリピータ・セルと比較し、リピータ・セル位置が交差するか否かを判断する(ステップS4)。
【0063】
リピータ・セル位置が交差する場合には、交差しない位置にリピータ・セル101を移動させる(ステップS5)。この処理は置換処理と呼ばれ、変換ファイル21内にリピータ・セル101が存在しなくなるまで続けられる。この置換処理の結果を示す情報は、更新されたAXOリピータ配置ファイル25に格納される。
【0064】
Verilog-HDLネットリスト決定部40は、元のVerilog-HDLネットリスト9とリピータ位置演算器10で生成されたVerilog-HDL変換ファイル19とを読み出し、リピータ付きVerilog-HDLネットリスト26を生成する。
【0065】
リピータ付きVerilog-HDLネットリスト26と更新されたAXOリピータ配置ファイル25とは、AXO20に読み込まれて適切なソフトウェア・レイアウトが生成される。
【0066】
さらに、AXOリピータ配置ファイル21は、デザイン・コンパイラ用リピータセル変更禁止コマンドファイル生成器(Design Compiler Set_Don't_Touch Command File Generator)50により読み出され、禁止コマンドファイル(Set_Don't_Touch Command File)27はデザイン・コンパイラ60により利用される。この禁止コマンドファイル(Set_Don't_Touch Command File)27は、例えば、シノプシス社のデザイン・コンパイラ60に入力される。デザイン・コンパイラ60は、以後、リピータ・セル101の種類や挿入位置を変更しない。
【0067】
図5に示す構成のうち新規な構成は、図7の左半分に表示され、従来と同じ構成は、図7の右半分に表示されている。
【0068】
次に、リピータ位置演算器10の動作を説明する。
【0069】
図8はリピータ位置演算器10の処理動作を示すフローチャートである。まず、リピータ位置演算器10は、DSPFファイル13を除くすべての入力ファイル、すなわち、パラメータ・ファイル16、禁止ネットリスト・ファイル17、各枝分かれの時間差情報ファイル18、リピータ・セルの禁止モジュール/領域ファイル12、出力ピン容量ファイル14、および矩形レイアウト領域ファイル15を読み出す(ステップS11)。
【0070】
次に、DSPFファイル13内にネットが存在するか否かを判定する(ステップS12)。ネットが存在しない場合には、リピータ・セル101を挿入する必要がないため、図8の処理を終了する。
【0071】
一方、ネットが存在する場合には、そのうちの一つのネットをDSPFファイル13から読み出す(ステップS13)。次に、リピータ・セル101を挿入する必要があるか否かを判定する(ステップS14)。
【0072】
図9は図8のステップS14の詳細内容を示すフローチャートである。まず、禁止ネット(Don't Touch Net)か否かを判定する(ステップS31)。禁止ネットであれば、リピータ・セル101は挿入できないため、他のネットに関する情報をDSPFファイル13から読み出す(図8のステップS15)。
【0073】
ステップS31で禁止ネットでないと判定されると、トライステート・ネットか否かを判定する(ステップS32)。トライステート・ネットであれば、リピータ・セル101は挿入する必要がないため、他のネットに関する情報をDSPFファイル13から読み出す(図8のステップS15)。
【0074】
一方、ステップS32でトライステート・ネットでないと判定されると、負荷がしきい値容量を越えるか否かを判定する(ステップS33)。しきい値容量を越えなければ、リピータ・セル101は必要ないため、他のネットに関する情報をDSPFファイル13から読み出す(図8のステップS15)。
【0075】
一方、ステップS33で負荷がしきい値容量を越えたと判定されると、後述する有向グラフの作成処理(Build Directed Graph operation)を行う(図8のステップS16)。グラフの枝の向きは信号の流れる向きと一致する。
【0076】
図10は図8のステップS16の詳細内容を示すフローチャートである。まず、検索の基点となるルート・ドライバのノード11を決定する(ステップS41)。次に、ドライバ11から負荷66まで信号の流れる向きに沿って下位ノードの検索を行って、有向グラフを作成する(ステップS42)。
【0077】
図11は図10のステップS42における下位ノード検索処理の詳細内容を示すフローチャートである。まず、下位のノードが存在するか否かを判定する(ステップS51)。下位のノードが存在しなければ図11の処理を終了し、下位のノードが存在すれば、下位のノードを決定する(ステップS52)。次に、図10のステップS42の下位ノード検索処理を再帰的に実行する(ステップS53)。この処理サイクルは、ステップS51の判定処理が否定されるまで、すなわち、下位ノードが存在しなくなるまで繰り返し行われる。
【0078】
図12および図13は、上述した図10のステップS42における下位ノード検索処理をより詳細に説明する図である。このうち、図12(a)は2つの枝分かれ経路を示す図、図12(b)は図12(a)における各ネットを矢印で表した図である。
【0079】
まず、初期状態では、基点となるドライバのノードを決定する(図10のステップS41)。このドライバのノードは、図12ではノードDで表される。次に、下位のノードが存在するか否かを判定し(図10のステップS42)、下位のノードが存在すれば、下位のノードを決定する。
【0080】
図12(b)では、ノードN2を下位のノードとして決定する。次に、ノードN2を基点として下位のノードが存在するか否かを判定する(図11のステップS51)。図12(b)の場合、下位のノードN1,N3が存在するため、再び、図10のステップS42の処理が再帰的に実行される。
【0081】
図12(b)の場合、ノードN1に下位のノードL1が存在し、ノードN3に下位のノードL2が存在するため、再び、図10のステップS42の処理が再帰的に実行される。
【0082】
ノードL1,L2には下位のノードは存在しないため、今度は図11のステップS51の判定が否定される。したがって、図10のステップS42の処理が終了して、次のステップS43の処理が行われる。
【0083】
図12(c)は、図8のステップS16の処理を行った後の図12(a)に対応する有向グラフである。図示のように、ノードN1,N3はノードN2の下位ノードに割り当てられる。
【0084】
一方、図13(a)は複雑な回路のネット図であり、図13(b)は図13(a)の回路内の各ネットを矢印で表した図である。
【0085】
まず、基点となるドライバ・ノードを決定する(図10のステップS41)。このドライバ・ノードは、図13(a)の符号Dで示す位置である。次に、下位ノードが存在するか否かを判定し(図11のステップS51)、下位ノードが存在すれば、下位ノードを決定する。図13(b)の例では、ノードN4が下位ノードとして決定される。
【0086】
次に、ノードN4の下位ノードを検索する処理が行われ(図10のステップS42)、ノードN2,N5が下位ノードとして決定される。次に、ノードN2,N5の下位ノードを検索する処理がさらに行われ(図10のステップS42)、ノードN2についてはノードN1,N3が、ノードN5についてはノードN6,N8が検索される。
【0087】
次に、ノードN8の下位ノードを検索する処理がさらに行われ、ノードN7が下位ノードとして決定される。
【0088】
以上により、すべてのノードが決定される。図13(c)は図8のステップS16の処理が行われた後の図13(a)の有向グラフである。
【0089】
図8のステップS16の処理が終了すると、次に、ステップS16で検索された各下位ノードに対応するセグメントごとにInsertOKフラグをセットする処理を行う(ステップS17)。
【0090】
なお、本実施形態では、隣接するノード間を接続する経路をセグメントを呼び、隣接する複数のセグメントからなる経路をネットと呼ぶ。
【0091】
図14は図8のステップS17の詳細内容を説明するフローチャートである。まず、各回路モジュール内の駆動点数を計算する(ステップS61)。駆動点とは、有向グラフ内において、各モジュール内のセルの入力端子を表すノードのことである。次に、基点となるルート・ドライバのノードを決定し、注目ノードとする(ステップS62)。次に、図8のステップS16で注目ノードの下位ノードのそれぞれにInsertOKフラグを設定する(ステップS63)。
【0092】
図15は図14のステップS63の詳細内容を説明するフローチャートである。まず、注目ノードの下位のノードが存在するか否かを判定する(ステップS71)。下位のノードが存在する場合には、図14のステップS63の処理を再帰的に実行した後(ステップS72)、注目ノードより下位のノードに対応する駆動点の数を計測する(ステップS73)。ステップS71〜S73の処理は、ステップS71の判定が否定されるまで繰り返し行われる。
【0093】
ノードの駆動点がモジュール内に一つも存在しないか、あるいはノードがモジュール内のすべての駆動点を駆動するかについての判定を、各モジュールについて行う(ステップS74)。ステップS74の判定が肯定されると、InsertOKフラグを「OK」にセットする(ステップS75)。一方、ステップS74の判定が否定されると、InsertOKフラグを「notOK」にセットする(ステップS76)。
【0094】
ステップS75またはS76の結果が得られると、図8のステップS16の処理が終了する。
【0095】
図16はInsertOKフラグの設定例を示す図である。図示のように、モジュールB内の各セグメントのInsertOKフラグはすべてnotOKにセットされる。これに対して、モジュールA,B間とモジュールB,C間の各セグメントのInsertOKフラグはいずれもOKにセットされる。
【0096】
なお、図16では、ノードN1,N2がモジュールBの内側にあるように図示されているが、実際には、ノードN1,N2はモジュールBの境界付近にある。したがって、実質的に、モジュールB内のセグメントはすべてInsertOKフラグがnotOKになる。
【0097】
次に、リピータ位置演算器10により、ネット内のリピータ・セルの挿入位置を演算する(図8のステップS17)。
【0098】
図17は図8のステップS17の詳細内容を示すフローチャートである。まず、基点となるルート・ドライバのノードを決定し、注目ノードNとする(ステップS81)。次に、下位のノードにリピータ・セルを挿入する処理と、下位のノードの負荷を計算する処理とを行う(ステップS82)。
【0099】
図18は図17のステップS82の詳細内容を示すフローチャートである。まず、下位のノードが一つあるいは複数存在するか否かを判定する(ステップS91)。下位のノードが存在する場合には、いずれかの下位のノードLを選択する(ステップS92)。
【0100】
次に、リピータ・セル挿入処理を行う(ステップS93)。図19は図18のステップS93のリピータ・セル挿入処理の詳細内容を示すフローチャートである。まず、図17のステップS82の処理を行う。すなわち、ノードLの下流側にリピータ・セルを挿入するとともに、ノードLの下流側の負荷を計算する(ステップS111)。
【0101】
次に、セグメント(N,L)の総容量と下位のノードの負荷容量との和が、基準容量(例えば、100LU)よりも大きいか否かを判定する(ステップS112)。ステップS112の判定がYESの場合には、セグメント(N,L)のInsertOKフラグにOKがセットされているか否かを判定する(ステップS113)。
【0102】
InsertOKフラグにOKがセットされていれば、セグメント(N,L)にリピータ・セル101を挿入する(ステップS114)。また、新規のリピータ・セルの入力端子をノードLに設定した後(ステップS116)、ステップS112の処理を再び行う。
【0103】
一方、ステップS112の判定がNOの場合には、セグメント(N,L)の容量と下位のノードの容量との和を計算して図19の処理を終了する。
【0104】
また、ステップS113の判定がNOの場合には、ノードLの下流にリピータ・セルを挿入する処理を行った後(ステップS116)、ステップS112の処理を再び行う。
【0105】
図20は図19のステップS115の詳細内容を示すフローチャートである。まず、下位のノードが存在するか否かを判定する(ステップS131)。下位のノードが存在しなければ処理を終了し、下位のノードが存在する場合には下位のノードを選択した後(ステップS132)、セグメント(N,L)と以下のセグメントにリピータ・セルを挿入した後(ステップS133)、ステップS131の処理を再び行う。
【0106】
図21は図20のステップS133の詳細内容を示すフローチャートである。まず、セグメント(N,L)のInsertOKフラグにOKがセットされているか否かを判定する(ステップS141)。OKがセットされている場合には、セグメント(N,L)にリピータ・セルを挿入する(ステップS142)。一方、OKがセットされていない場合には、下位のノードLに強制的にリピータ・セルを挿入する(ステップS143)。
【0107】
図20のステップS131〜S133の処理は、下位のノードすべてについて行われる。下位のノードすべてについてステップS131〜S133の処理が終わると、再び、図19のステップS112の判定処理が行われる。
【0108】
図19のステップS112の判定が否定された場合、すなわち、セグメント(N,L)の容量と下位のノードLの負荷容量との和が基準容量以下であれば、その和を図18のステップS93の処理結果として返す。
【0109】
図18のステップ93の処理が終了すると、次に、ステップS93の処理結果であるセグメント(N,L)の容量とノードL以下の負荷容量との和を積算する(ステップS94)。
【0110】
図18のステップS91〜S94の処理は、下位のノードすべてについて行われる。これにより、下位のノードすべてについての容量の積算値が得られる。
【0111】
次に、各枝分かれ経路がそれぞれ異なるスラック(タイミング制約と実際の信号遅延の差)を有するか否かを判定する(ステップS95)。ステップ95の判定がYESの場合には、最もクリティカルな枝分かれ経路以外にリピータ・セルを挿入することで、枝分かれ経路の負荷容量を削減する(ステップS96)。
【0112】
ステップS95の判定がNOの場合、あるいは、ステップS96の処理が終了した場合には、ノードN以下の負荷が予め定めた基準容量(例えば、100LU)よりも大きいか否かを判定する(ステップS97)。ステップS97の判定がYESの場合には、最も負荷容量の大きい枝分かれ経路にリピータを挿入した後(ステップS98)、ステップS97に戻る。
【0113】
一方、ステップS97の判定がNOの場合には、ノードN以下の負荷容量を図17のステップS17の処理結果として返す。以上により、図17の処理が終了する。
【0114】
次に、リピータ位置演算器10は、リピータ・ファイル付きのDSPFファイル22と、リピータ・ファイル付きのVerilog-HDLネットリスト変換ファイル19とを出力する(ステップS18,S19)。
【0115】
リピータ・リロケータ30は、リピータ・ファイル付きのVerilog-HDLネットリスト変換ファイル19,21に基づいて、更新されたAXOリピータ配置ファイル25を生成する(ステップS20)。
【0116】
以上でリピータ・セルの挿入処理が終了する。以下、上述した図8の処理の具体例を説明する。
【0117】
(第1の具体例)
図22(a)は2つの枝分かれ経路を有する回路ネット図、図22(b)は図22(a)にリピータ・セルを挿入した例を示す図である。
【0118】
図22(a)に図示された2つの枝分かれ経路に関する情報は、図5のDSPFファイル13に記述されている。このDSPFファイル13には、各ネットの接続情報(物理情報)が含まれている。
【0119】
また、図5のAXO20のソフトウェアは、上述したように、リピータ・セル禁止モジュール/領域ファイル12と、DSPFファイル13と、出力ピン容量ファイル14と、矩形レイアウト領域ファイル15とを生成する。これらのファイルは、DSPFファイル13を除いてリピータ位置演算器10により読み出される。リピータ位置演算器10は、パラメータ・ファイル16の情報と禁止ネットリストファイル17の情報も併せて読み出して、これらのファイルに基づいて、上述した図8以降の処理を行う。
【0120】
図22(a)にリピータ・セルを挿入する処理を図8のフローチャートに沿って説明すると、まず、DSPFファイル13内にネットが存在するか否かを判定する。図22(a)のネットには、符号3,4で示すネットが存在する。図8のステップS13ではDSPFファイル13からネットを一つ読み出し(ステップS13)、このネットにリピータ・セル101を挿入する必要があるか否かを判定する(ステップS14)。
【0121】
図22(a)の例では、負荷がしきい値容量を越えているため、図8のステップS14の判定が肯定され、ネットの有向グラフが決定される(ステップS16)。ここで決定される有向グラフは、ドライバ11から負荷3,4への経路である。
【0122】
図23は図22(a)に対応する有向グラフの一例を示す図である。有向グラフは、各ネットごとに、信号が伝搬する方向を矢印で表したものである。
【0123】
有向グラフが生成されると、次に、ネット内にリピータ・セル101を挿入する処理を行う(ステップS17)。図22(a)の例では、ドライバ11は、188LU(=100LU+40LU+4LU+40LU+4LU)の容量を駆動する。この容量はしきい値容量(例えば、177LU)を超えているので、セグメント内にリピータ・セルを挿入する必要がある。
【0124】
また、図22(a)のノード2に対応するInsertOKフラグはOKにセットされているので、そのセグメント内(例えば、ドライバ11とノード2の間)にリピータ・セル101が挿入される(図22(b))。DSPFファイル13には他にネットが存在しないので、以上で処理が終了する。
【0125】
図24は図22(a)の各セグメントのInsertOKフラグの設定状態を示す図である。図示のように、すべてのフラグにOKがセットされている。
【0126】
Verilog-HDLネットリスト決定器40は、リピータ位置演算器10から出力されるVerilog-HDLネットリスト変換ファイル19とVerilog-HDLネットリスト・ファイル9とを読み出し、リピータ・ファイル付きのVerilog-HDLネットリストが生成される。
【0127】
リピータ位置演算器10はまた、AXOリピータ配置ファイル21を生成する。AXOリピータ配置ファイル21は、Verilog-HDLネットリスト変換ファイル19と、リピータ禁止物理領域情報ファイル23と、仮配置された他のセル情報ファイル24と、矩形レイアウト領域ファイル15とともに、リピータ・リロケータ30に読み込まれ、重複部分が除去されてリピータ・セルが配置される。
【0128】
リピータ・リロケータ30は、更新されたAXOリピータ配置ファイル25を生成する。このファイルは、リピータ・ファイル付きVerilog-HDLネットリスト26とともに、AXO20に入力される。AXO20は、リピータ・セルを挿入した状態で適切なソフトウェア・レイアウトを行う。
【0129】
(第2の具体例)
第2の具体例は、2つの枝分かれ経路を有する回路ネットにリピータ・セルを挿入するものである。
【0130】
図25(a)は2つの枝分かれ経路がそれぞれ異なる負荷容量を有する例を示す回路ネット図、図25(b)は図25(a)に2個のリピータ・セルを挿入した例を示す図、図25(c)は図25(b)にさらにもう一つリピータ・セルを挿入した例を示す図である。
【0131】
図25(a)に図示された2つの枝分かれ経路に関するネット情報は、図5のDSPFファイル13に記述されている。
【0132】
第2の具体例を図8のフローチャートに沿って説明すると、まず、DSPFファイル13内にネットが存在するか否かを判定する(ステップS11)。図25(a)の場合、符号3,4を負荷に持つネットが存在するため、これらネットのいずれか一つに関する情報をDSPFファイル13から読み出す(ステップS13)。
【0133】
次に、リピータ・セル101を挿入する必要があるか否かを判定する(ステップS14)。図25(a)の場合、各ネットの負荷容量がしきい値容量を越えているので、ネットの有向グラフを作成する(ステップS16)。
【0134】
図26は図25(a)に対応する有向グラフである。図示のように、有向グラフは、ドライバ11から負荷6に向かう4つの矢印付きのネットで表される。
【0135】
次に、ネットを構成する各セグメントのInsertOKフラグにOKが設定されているか否かを判定する。
【0136】
図27はネットを構成する各セグメントに対応するInsertOKフラグがすべてOKである例を示す図である。この場合、リピータ・セル101をネット内の任意の場所に挿入することができる。
【0137】
図25(a)はノード2の下流側の2つの枝分かれ経路がそれぞれ異なる負荷(一方は144LU、他方は124LU)を有する例を示している。この場合、ドライバ11は、全部で368LU(=100LU+140LU+4LU+120LU+4LU)の容量を駆動しなければならない。
【0138】
また、ノード2,3間の容量は144LU(=140LU+4LU)であり、ノード2,4間の容量は124LU(=120LU+4LU)である。このままでは、各セグメントの容量がしきい値容量を上回ってしまうため、各セグメントにリピータ・セル101を挿入する必要がある。
【0139】
そこで、図25(b)に示すように、ノード2,3間と、ノード2,4間にそれぞれ、リピータ・セル101が挿入される。
【0140】
ところが、これらリピータ・セルを挿入しても、ドライバ11はまだ、176LU(=100LU+24LU+4LU+44LU+4LU)の容量を駆動しなければならない。この負荷はしきい値容量を上回るので、さらにリピータ・セルを挿入する必要がある。
【0141】
そこで、図25(c)に示すように、ドライバ11とノード2との間のセグメントにリピータ・セル101が挿入される。
【0142】
(第3の具体例)
第3の具体例は、第2の具体例よりも負荷容量が大きい例を示している。
【0143】
図28(a)は2つの枝分かれ経路がそれぞれ異なる負荷容量を有する例を示す回路ネット図、図28(b)は図28(a)に2個のリピータ・セルを挿入した例を示す図、図28(c)は図28(b)にさらに2個のリピータ・セルを挿入した例を示す図である。
【0144】
図28(a)の2つの枝分かれ経路に関するネット情報は、DSPFファイル13に記述されている。
【0145】
第3の具体例を図8のフローチャートに沿って説明すると、図5のDSPFファイル13内にネットが存在するか否かを判定する(ステップS12)。図28(a)の場合、符号3,4を負荷に持つネットが存在するため、このネットがDSPFファイル13から読み出される(ステップS13)。
【0146】
次に、ネットにリピータ・セルを挿入する必要があるか否かを判定する(ステップS14)。リピータ・セルを挿入する必要がある場合には、そのネットの有向グラフを決定する(ステップS16)。
【0147】
この場合の有向グラフは、図29のように、ドライバ11からノード3,4に向かう4つの矢印付きのネットで表される。
【0148】
次に、InsertOKフラグにOKがセットされているか否かを判定する(ステップS17)。この場合、図30のように、すべてのセグメントについて、InsertOKフラグはOK状態になる。
【0149】
ここで、InsertOKフラグは、リピータ・セルの挿入処理を行っている最中は変化しないことに注意されたい。すなわち、いったんInsertOKフラグがOKに設定されたセグメントは、notOKには変化しない。
【0150】
次に、リピータ・セル101をネットに挿入する処理を行う。図28(a)の例では、2つの枝分かれ経路はそれぞれ異なる負荷容量を有する。具体的には、ドライバ11は、418LU(=100LU+140LU+4LU+170LU+4LU)の容量を有する。
【0151】
また、ノード2,3間のセグメントの容量は144LU(=140LU+4LU)であり、ノード2,4間のセグメントの容量は174LU(=170LU+4LU)である。各セグメントの容量は、しきい値容量を上回るので、各セグメント内にリピータ・セル101を挿入する必要がある。
【0152】
まず、図28(b)に示すように、ノード2,3間とノード2,4間にそれぞれリピータ・セル101が挿入される。この状態では、ドライバ11の負荷容量は、226LU(=100LU+44LU+4LU+74LU+4LU)である。この値はしきい値容量100LUを上回るので、さらにリピータ・セルを挿入する必要がある。
【0153】
この場合、最も容量の大きな場所にリピータ・セルを挿入するのが望ましい。ただし、図28(b)の点線位置にリピータ・セル101を挿入すると、このリピータ・セル101の駆動容量が100LUを越えてしまう。
【0154】
このため、図28(c)に示すように、ノード2,107間にリピータ・セルが挿入される。このとき、ドライバ11の負荷容量は、152LU(=100LU+44LU+4LU+4LU)になるため、ドライバ11とノード2との間にもリピータ・セル101が挿入される。以上で処理が終了する。
【0155】
(第4の具体例)
第4の具体例は、3つの枝分かれ経路を有する例である。
【0156】
図31(a)は3つの枝分かれ経路を有する例を示す回路ネット図、図31(b)は図31(a)に1個のリピータ・セルを挿入した例を示す図、図31(c)は図31(b)にさらに2個のリピータ・セルを挿入した例を示す図である。
【0157】
図31(a)のネット情報は、DSPFファイル13に記述されており、このネット情報を用いて図8の処理が行われる。
【0158】
第4の具体例を図8のフローチャートに基づいて説明すると、まず、DSPFファイル13内にネットが存在するか否かを判定する(ステップS11)。図8(a)の場合、符号3〜5を負荷に持つネットが存在するため、このネットが選択されて、DSPFファイル13から読み出される(ステップS13)。
【0159】
次に、選択したネット内にリピータ・セル101を挿入するか否かを判定する(ステップS14)。ここでは、ネットの負荷容量がしきい値容量を上回れば、リピータ・セルを挿入する必要があると判定する。
【0160】
図31(a)の場合、負荷容量がしきい値容量100LUを上回るため、ステップS14ではYESと判定される。
【0161】
次に、ネットの有向グラフを決定する(ステップS16)。図32は図31(a)に対応する有向グラフである。図示のように、ドライバ11からノード3〜5に向かう6つの矢印付きのネットで表される。
【0162】
次に、各セグメントのInsertOKフラグにOKがセットされているか否かを判定する(ステップS17)。この場合、図33のように、すべてのセグメントについてInsertOKフラグはOKであり、リピータ・セルの挿入が許可される。
【0163】
図31(a)の例では、各枝分かれ経路はそれぞれ異なる負荷容量を有する。ドライバ11は、全部で292LU(=100LU+70LU+4LU+60LU+4LU+50LU+4LU)の負荷を駆動する。この容量は、しきい値容量100LUを越えているので、セグメント内にリピータ・セル101を挿入する必要がある。
【0164】
リピータ・セル101は、最も負荷容量の大きいネットに挿入するのが望ましい。図31(a)の例では、ノード2,3の間のネットが最も負荷容量が大きいため、この位置にリピータ・セル101が挿入される(図31(b))。
【0165】
この状態でのドライバ11の負荷容量は、222LU(=100LU+60LU+4LU+50LU+4LU+4LU)であり、まだ、しきい値容量100LUを上回っている。この状態でノード2にリピータ・セル101を挿入すると、このリピータ・セル101の駆動容量が100LUを上回ってしまうため、ノード2の上位にはリピータ・セル101を挿入できない。
【0166】
ノード2の次に容量の大きなネットはノード2,4間である。このため、図31(c)に示すように、ノード2,4間にリピータ・セルが挿入される。
【0167】
この状態でのドライバ11の負荷容量は162LU(=100LU+50LU+4LU+4LU+4LU)である。この値はまだしきい値容量100LUを上回っているため、次に、ドライバ11とノード2との間にリピータ・セル101が挿入される(図31(c))。これで、すべてのネットがしきい値容量以下になるため、処理が終了する。
【0168】
(第5の具体例)
第5の具体例は、合成ツールへのバック・アノテーションを考慮に入れたリピータ・セル挿入手法である。
【0169】
ここで、バック・アノテーションとは、リピータ・セルの挿入情報をソフトウェア・レイアウトツール(例えば、AXO20)に入力して、リピータ・セルを挿入した状態でネットリスト等を生成することをいう。
【0170】
図34(a)はリピータ挿入前の回路モジュールA〜Cの接続関係を示す図、図34(b)はモジュールB内にリピータ・セルを挿入した様子を示す図、図34(c)はモジュールB内のリピータ・セルをモジュールB,C間に移動させる様子を示す図、図34(d)は最終的なリピータ・セルの挿入位置を示す図である。
【0171】
また、図35は図34に対応するネットリストを示す図であり、配置配線ツールや合成ツールの出力結果である。図16および図35には、各モジュールごとの駆動ポイント(駆動点)数と、各ノードの上位側に接続しているセグメントのInsertOKフラグの値が示されている。
【0172】
図16および図35に示すように、モジュールA内には駆動点が1点、モジュールB内には駆動点が2点、モジュールC内には駆動点が1点存在する。また、モジュールA,B間とモジュールB,C間は、InsertOKフラグがいずれもOKの状態である。
【0173】
リピータ・セル挿入時に、リピータ・セル101の理想的な挿入位置が図34(a)に点線で示すように、モジュール内部となることがある。ところが、このような位置にリピータ・セル101を挿入すると、モジュールB内での入出力パラメータが増えてネットリストを変更しなければならなくなり、リピータ・セルを他のソフトウェアツールに正しくバック・アノテートできなくなってしまう。
【0174】
このため、図34(c)に示すように、モジュールB内のリピータ・セルはモジュールB,C間に移動される。この位置にリピータ・セルを挿入すれば、モジュールBやC内の入出力パラメータ(例えば、入出力端子数)は変化しない。このため、各モジュールをネットリストにより適切に表現でき、リピータ・セル挿入結果を他のソフトウェアに正しくバック・アノテートすることができる。
【0175】
また、図16および図35に示すようにモジュールA,B間のInsertOKフラグもOKであるため、モジュールA,B間にもリピータ・セルを挿入することができる。
【0176】
結局、図34(d)に示すように、モジュールA,B間とモジュールB,C間にそれぞれリピータ・セルが挿入される。
【0177】
(第6の具体例)
第6の具体例は、サイズの異なる2種類のリピータ・セルを用いる例である。
【0178】
図36(a)はリピータ・セル挿入前の回路図である。図36(a)の場合、負荷が120LUもあるため、駆動能力の高いU-bufferと呼ばれるリピータ・セル200が負荷位置に挿入される(図36(b))。このリピータ・セル200を用いることにより、信号遅延を最小化することができる。
【0179】
負荷位置にリピータ・セル200を挿入しただけでは、ドライバ11とリピータ・セル200のノード45との間の負荷容量がしきい値容量を上回るため、上述した第1の具体例と同様の手法でリピータ・セル挿入が行われる。
【0180】
以下、図14のフローチャートに基づいて、図36(a)のリピータ・セル挿入処理を説明する。まず、DSPFファイル13にネットが存在するか否かを判定する(ステップS11)。図36(a)の場合、ネット一つが存在するため、このネットに関する情報をDSPFファイル13から読み出す(ステップS13)。
【0181】
次に、ネットにリピータ・セルを挿入する必要があるか否かを判定する(ステップS14)。図36(a)の場合、負荷がきわめて大きいため、ドライバ11とリピータ・セル200との間の容量がしきい値容量を上回ってしまう。
【0182】
ノード11,45間のセグメントに対応するInterOKフラグには、OKがセットされるため、このセグメントにリピータ・セル101が挿入される。DSPFファイル13にはそれ以外のネットは存在しないため、処理動作が終了する。
【0183】
このように、駆動能力の異なる複数種類のリピータ・セルを予め用意しておけば、リピータ・セルの挿入位置をより効果的に決定することができる。
【0184】
また、リピータ・セルの挿入後にバック・アノテーションを行う場合も、複数種類のリピータ・セルを考慮に入れてバック・アノテーションを行えるようにするのが望ましい。
【0185】
例えば、図37はU-bufferを挿入する例を示す図である。図37の場合、理想的には、図37(a)のようにモジュールB内にリピータ・セルを挿入するのが望ましいが、モジュールB内にリピータ・セルを挿入すると、バック・アノテーションを行えなくなるので、モジュールB内にはリピータ・セルは挿入できない。
【0186】
そこで、モジュールBより下流側で、リピータ・セルの理想位置に最も近い位置に、リピータ・セル101が挿入される(図37(b))。
【0187】
また、この状態では、ドライバ11の負荷容量は、130LU(=40LU+50LU+40LU)であり、しきい値容量を超えている。このため、モジュールA,B間に、駆動能力の高いリピータ・セル(U-buffer)200が挿入される。これにより、モジュール内での遅延時間を最小限に抑えることができる。
【0188】
(第7の具体例)
第7の具体例は、各枝分かれ経路のスラック(タイミング制約と実際の信号遅延の差)を考慮に入れてリピータ・セルの挿入を行うものである。
【0189】
枝分かれ経路がある場合、各経路ごとに信号遅延時間に差があることが多く、いずれかの経路がクリティカル・パスになることがある。そこで、第7の具体例は、各枝分かれ経路のスラックを考慮に入れてリピータ・セルを挿入する。具体的には、タイミング的にクリティカルな枝分かれ経路の信号遅延時間が、リピータ・セルが挿入される経路よりも優先的に短くなるようにする。
【0190】
例えば、図38(a)には、各枝分かれ経路の時間差が図示されている。各枝分かれ経路のうち一つが最もクリティカルな経路、すなわち最優先の経路である。クリティカルな枝分かれ経路は、クリティカルでない経路よりも信号遅延が少なくなるようにするのが望ましい。
【0191】
そこで、枝分かれ経路の各交点でのスラックを比較し、それほどクリティカルでない経路にリピータ・セル101を挿入する。これにより、クリティカルな経路の負荷容量は、クリティカルでない経路の負荷容量から切り離される。
【0192】
このような処理を行うのが、図18のステップS95である。ステップS95では、交点ノード2での各枝分かれ経路のスラックを比較する。その結果、対象となる枝分かれ経路がクリティカルな経路であると決定されると、クリティカルな経路の信号遅延がクリティカルでない経路ほど大きくならないように、クリティカルでない経路にリピータ・セル101が挿入される(図38(c))。
【0193】
この場合のリピータ挿入処理は、上述した第1〜第6の具体例の手法が適用可能である。
【0194】
具体的には、ドライバ11の下流側にリピータ・セル101が挿入されるとともに(図38(b)))、上述したように、タイミング的にクリティカルでない経路にリピータ・セル101が挿入される(図38(c))。
【0195】
(第2の実施形態)
上述した第1の実施形態では、リピータ・セルを挿入する際、リピータ・セル自身の遅延時間は特に考慮に入れていなかった。このため、タイミングに余裕のない配線経路にリピータ・セルが数多く挿入されて、リピータ・セル自身の遅延時間により、回路のタイミング制約を満足できなくなるおそれがある。
【0196】
例えば、図39は、ドライバ11の出力端子から負荷Aまでのタイミング制約が3ns、負荷Bまでのタイミング制約が4ns、負荷Cまでのタイミング制約が6nsの例を示している。
【0197】
上述した第1の実施形態では、リピータ・セル自身の遅延を考慮に入れずに、各枝分かれ経路のタイミング制約を互いに比較して、タイミング制約の値が大きい方にリピータ・セルを挿入していた。
【0198】
図39の場合、ドライバ11の出力端子から負荷Bまでのタイミング制約4nsの方が負荷Cまでのタイミング制約6nsよりも厳しいため、負荷C側に一個目のリピータ・セルが挿入される。
【0199】
次に、負荷B,Cへの分岐点とドライバ11との間の経路の容量がしきい値容量を超えるので、この経路に二個目のリピータ・セルが挿入される。
【0200】
次に、負荷B,Cのうち、タイミング制約の条件が厳しい負荷Bまでのタイミング制約4nsと、負荷Aまでのタイミング制約3nsとを比較し、制約の厳しくない負荷B側に三個目のリピータ・セルが挿入される。
【0201】
ところが、図39のように、各経路のタイミング制約のみでリピータ・セルの挿入位置を決めると、リピータ・セル自身の遅延により、負荷BやCに対するタイミング制約を守れなくなるおそれがある。
【0202】
そこで、第2の実施形態は、リピータ・セル自身の遅延を考慮に入れて、リピータ・セルの挿入位置を決定するものである。
【0203】
図40(a)、図40(b)は第2の実施形態のリピータ・セル挿入方法を説明する図である。第2の実施形態では、負荷Bまでのタイミング制約4nsと負荷Cまでのタイミング制約6nsとを比較し、制約が厳しくない負荷C側に一個目のリピータ・セルを挿入する。次に、負荷B,Cへの分岐点とドライバ11との間の経路の容量がしきい値容量を超えるので、この経路に二個目のリピータ・セルを挿入する。以上の手順は、図39と同様である。
【0204】
次に、一個目および二個目のリピータ・セル自身の遅れを考慮に入れて、ドライバ11の出力端子から負荷BおよびCまでのタイミング制約をそれぞれ更新する。すなわち、リピータ・セルを挿入した分だけ、負荷B,Cへのタイミング制約を厳しくする。
【0205】
具体的には、リピータ・セル自身の遅延を例えば2nsとすると、負荷Bまでのタイミング制約を2ns(=4ns-2ns)に更新し、負荷Cまでのタイミング制約を2ns(=6ns-2ns-2ns)に更新する。
【0206】
負荷B,Cの分岐点では、負荷B,Cのうち、タイミング制約の厳しい方のタイミング制約と、負荷Aまでのタイミング制約3nsとを比較する。図40の場合、負荷B,Cまでのタイミング制約はいずれも2nsなので、この2nsと負荷Aまでのタイミング制約3nsとを比較する。この場合、前者の方がタイミング制約が厳しいので、負荷A側に三個目のリピータ・セルが挿入される。
【0207】
このように、第2の実施形態では、リピータ・セル自身の遅延時間も考慮に入れて、リピータ・セルの挿入位置を決定するため、実際の信号の遅延を見込んで、最適な位置にリピータ・セルを挿入することができる。
【0208】
上述した各実施形態のリピータ挿入手法を用いることにより、タイミングを考慮に入れたリピータ挿入が可能になる。これは、完全にタイミングを最適化するリピータ挿入とは異なるが、タイミング・アナライザがなくても、タイミングを考慮したリピータ挿入を行える。すなわち、本実施形態によれば、SDF(Standard Delay Format)のようなタイミング情報が不要であるため、処理速度の向上が図れる。
【0209】
上述したように、本発明は、UnixやUnixと互換性のある他のオペレーティング・システムで動作する従来の配置配線ソフトウェア・ツールのソフトウェア・プログラムにより実現することができる。
【0210】
これらのソフトウェア・プログラムとオペレーション・プログラムは、図41に示すコンピュータ・システムにて実行可能である。図41のコンピュータ・システムは、プロセッサ410と、メモリ420と、ハードディスク装置やCD-ROM等の固定型記録装置430とを有する。プロセッサ410による実行結果は、表示装置440に表示される。固定型記録装置430に収納された本発明に係るソフトウェアは、メモリ420により読み出され、プロセッサ410により実行され、その結果がモニタ440に表示される。
【0211】
本明細書では、本発明の一実施形態のみについて説明したが、本発明は、種々の用途で利用でき、また、他のシステム等と組み合わせることも可能であり、本発明の範囲は本明細書に開示されたものに限定されない。
【0212】
【発明の効果】
以上詳細に説明したように、本発明によれば、回路パス上の回路パラメータが所定の基準しきい値より小さくなるようにリピータ・セルを挿入するため、負荷容量による信号の遅延を抑えることができる。また、回路モジュールの内部にはリピータ・セルを挿入しないようにしたため、リピータ・セルを挿入しても回路モジュールの入出力パラメータは変化しなくなり、リピータ・セルの挿入結果に基づいてバック・アノテーションを行ってネットリスト等を生成することができる。
【0213】
さらに、本発明では、駆動能力の異なる複数のリピータ・セルを設けるため、負荷容量の大きさに応じて最適なリピータ・セルを挿入することができる。
【図面の簡単な説明】
【図1】従来のリピータ・セルの挿入手法を説明する図。
【図2】(a),(b),(c)はドライバの負荷容量が224LU(=220LU+4LU)の例を示す図。
【図3】(a),(b),(c)はドライバが210LU(=150LU+60LU)の負荷を駆動する例を示す図。
【図4】(a),(b),(c)はドライバが非常に大きな負荷を駆動する例を示す図。
【図5】本発明の第1の実施形態の全体構成を示すブロック図。
【図6】リピータ・リロケータの処理動作を示すフローチャート。
【図7】図5の各構成を新規な構成と従来と同様の構成に分類した図。
【図8】リピータ位置演算器の処理動作を示すフローチャート。
【図9】図8のステップS14の詳細内容を示すフローチャート。
【図10】図8のステップS16の詳細内容を示すフローチャート。
【図11】図10のステップS42における下位ノード検索処理の詳細内容を示すフローチャート。
【図12】(a),(b),(c)は2つの枝分かれ経路を有する場合の下位ノード検索処理を説明する図。
【図13】(a),(b),(c)は多数の枝分かれ経路を有する場合の下位ノード検索処理を説明する図。
【図14】ステップS43の詳細フローチャート。
【図15】ステップS63の詳細フローチャート。
【図16】 InsertOKフラグの設定例を示す図。
【図17】ステップS17の詳細フローチャート。
【図18】ステップS82の詳細フローチャート。
【図19】ステップS93の詳細フローチャート。
【図20】ステップS115の詳細フローチャート。
【図21】ステップS133の詳細フローチャート。
【図22】(a)は2つの枝分かれ経路を有する回路ネット図、(b)は(a)にリピータ・セルを挿入した例を示す図。
【図23】図22(a)に対応する有向グラフの一例を示す図。
【図24】図22(a)の各セグメントのInsertOKフラグの設定状態を示す図。
【図25】(a)は2つの枝分かれ経路がそれぞれ異なる負荷容量を有する例を示す回路ネット図、(b)は(a)に2個のリピータ・セルを挿入した例を示す図、(c)は(b)にさらにもう一つリピータ・セルを挿入した例を示す図。
【図26】図25(a)に対応する有向グラフを示す図。
【図27】ネットを構成する各セグメントに対応するInsertOKフラグがすべてOKである例を示す図。
【図28】(a)は2つの枝分かれ経路がそれぞれ異なる負荷容量を有する例を示す回路ネット図、(b)は(a)に2個のリピータ・セルを挿入した例を示す図、(c)は(b)にさらに2個のリピータ・セルを挿入した例を示す図。
【図29】図28(a)に対応する有向グラフの一例を示す図。
【図30】図28(a)の各セグメントのInsertOKフラグの設定状態を示す図。
【図31】(a)は3つの枝分かれ経路を有する例を示す回路ネット図、(b)は(a)に1個のリピータ・セルを挿入した例を示す図、(c)は(b)にさらに2個のリピータ・セルを挿入した例を示す図。
【図32】図31(a)に対応する有向グラフの一例を示す図。
【図33】図31(a)の各セグメントのInsertOKフラグの設定状態を示す図。
【図34】(a)はリピータ挿入前の回路モジュールA〜Cの接続関係を示す図、(b)はモジュールB内にリピータ・セルを挿入した様子を示す図、(c)はモジュールB内のリピータ・セルをモジュールB,C間に移動させる様子を示す図、(d)は最終的なリピータ・セルの挿入位置を示す図。
【図35】図34に対応するノード、駆動点、InsertOK フラグを示す図。
【図36】大きい負荷を駆動する例を示す図。
【図37】バック・アノテーションを考慮したリピータ挿入手法を説明する図。
【図38】枝分かれ経路ごとに異なるスラックがある例を示す図。
【図39】負荷 A、B、C のタイミング制約のみを考慮に入れてリピータ・セルを挿入する例を示す図。
【図40】(a),(b)は負荷A,B,C間のタイミング制約及びリピータ・セル自身の遅延時間を考慮に入れてリピータ・セルを挿入する例を示す図。
【図41】本発明をソフトウェアで構成する場合のコンピュータシステムの全体構成図。
【符号の説明】
9 Verilog-HDLネットリスト・ファイル
10 リピータ位置演算器
12 リピータ禁止モジュール/領域ファイル
13 DSPFファイル
14 出力ピン容量ファイル
15 矩形レイアウト領域ファイル
16 パラメータ・ファイル
17 禁止ネットリスト
18 各枝分かれ経路のスラック・ファイル
19 Verilog-HDLネットリスト変換ファイル
20 AXO
21 AXOリピータ配置ファイル
22 リピータ付きDSPFファイル
23 リピータ禁止物理領域情報ファイル
24 仮配置された他のセル情報ファイル
25 AXOリピータ配置ファイル
26 リピータ付きVerilog-HDLネットリスト・ファイル
27 デザイン・コンパイラ禁止コマンド・ファイル
40 Verilog-HDLネットリスト決定器
50 デザイン・コンパイラ用リピータセル変更禁止コマンド・ファイル生成器60 デザイン・コンパイラ
Claims (10)
- 入力端子および出力端子間に少なくとも一つの回路モジュールが接続されており、
前記入力端子から前記出力端子までの回路パス上にリピータ・セルを挿入するリピータ・セルの配置方法において、
前記リピータ・セルは、前記回路モジュールの内部を除く前記回路パス上に挿入され、
前記出力端子に近い側から前記入力端子に向かって、前記リピータ・セルの挿入位置を検索し、前記回路パスを構成するすべての回路ネットの回路パラメータが所定の基準しきい値以下になるように前記リピータ・セルを挿入することを特徴とするリピータ・セルの配置方法。 - 前記回路パス上に、前記リピータ・セルを挿入可能な少なくとも一つの回路ネットが存在するか否かを判定する第1ステップと、
前記回路ネットが存在すると判定されると、各回路ネットごとに前記回路パラメータを計算する第2ステップと、
前記出力端子に近い側から前記入力端子に向かって、前記リピータ・セルの挿入位置を検索し、計算された回路パラメータの中から、前記基準しきい値よりも大きい前記回路パラメータを選択し、選択した回路パラメータに対応する回路ネット上に前記リピータ・セルを挿入する第3ステップと、を備えることを特徴とする請求項1に記載のリピータ・セルの配置方法。 - 前記入力端子から前記出力端子までの回路パス上に、前記リピータ・セルの配置を禁止する禁止領域を設定する第4ステップを備え、
前記第3ステップは、前記禁止領域以外の回路パスから、前記基準しきい値よりも大きい前記回路パラメータを有する回路ネットを選択し、選択された回路ネットに前記リピータ・セルを挿入することを特徴とする請求項2に記載のリピータ・セルの配置方法。 - 前記第4ステップは、回路パス上から選択されたノードが、そのノードの下流に配置されるすべての回路モジュールについて、各回路モジュール内のすべてのノードを駆動する場合か、あるいは前記選択されたノードが各回路モジュール内のいずれのノードも駆動しない場合のいずれか以外は、前記選択されたノードと前記出力端子との間に前記禁止領域を設定することを特徴とする請求項3に記載のリピータ・セルの配置方法。
- 各回路ネットごとにタイミング制約を設定する第5ステップと、
前記第3ステップにより前記リピータ・セルが挿入されると、前記リピータ・セル自身の遅延を考慮に入れて、前記リピータ・セルが挿入された回路ネットのタイミング制約を厳しくする第6ステップと、を備え、
前記第3ステップは、各回路ネットのタイミング制約を遵守しつつ前記リピータ・セルの挿入位置を決定することを特徴とする請求項2〜4のいずれかに記載のリピータ・セルの配置方法。 - 前記第3ステップは、前記リピータ・セルを挿入する際には、駆動能力の異なる複数種類の前記リピータ・セルの中からいずれかを選択することを特徴とする請求項2〜5のいずれかに記載のリピータ・セルの配置方法。
- 前記第3ステップで前記リピータ・セルを挿入した結果をバック・アノテートして、ネットリストを生成する第7ステップを備えることを特徴とする請求項2〜6のいずれかに記載のリピータ・セルの配置方法。
- 前記第3ステップは、複数の回路ネットそれぞれの信号遅延時間に差がある場合には、最もクリティカルな回路ネット以外の回路ネット上に前記リピータ・セルを挿入することを特徴とする請求項2〜7に記載のリピータ・セルの配置方法。
- 入力端子および出力端子間に少なくとも一つの回路モジュールが接続されており、
前記入力端子から前記出力端子までの回路パス上にリピータ・セルを挿入するリピータ・セルの配置装置において、
前記回路パス上に、前記リピータ・セルを挿入可能な少なくとも一つの回路ネットが存在するか否かを判定する判定手段と、
前記回路ネットが存在すると判定されると、各回路ネットごとに前記回路パラメータを計算する回路パラメータ計算手段と、
前記出力端子に近い側から前記入力端子に向かって、前記リピータ・セルの挿入位置を検索し、前記回路パスを構成するすべての回路ネットの回路パラメータが所定の基準しきい値以下になるように前記リピータ・セルを挿入するリピータ挿入手段と、を備えることを特徴とするリピータ・セルの配置装置。 - 入力端子および出力端子間に少なくとも一つの回路モジュールが接続されており、
前記入力端子から前記出力端子までの回路パス上にリピータ・セルを挿入するプログラムが記録された記録媒体において、
前記回路パス上に、前記リピータ・セルを挿入可能な少なくとも一つの回路ネットが存在するか否かを判定する第1ステップと、
前記回路ネットが存在すると判定されると、各回路ネットごとに前記回路パラメータを計算する第2ステップと、
前記出力端子に近い側から前記入力端子に向かって、前記リピータ・セルの挿入位置を検索し、前記回路パスを構成するすべての回路ネットの回路パラメータが所定の基準しきい値以下になるように前記リピータ・セルを挿入する第3ステップと、を備えるプログラムが記録されたコンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16928398A | 1998-10-08 | 1998-10-08 | |
US169283 | 1998-10-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000138290A JP2000138290A (ja) | 2000-05-16 |
JP3662149B2 true JP3662149B2 (ja) | 2005-06-22 |
Family
ID=22615004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28884199A Expired - Fee Related JP3662149B2 (ja) | 1998-10-08 | 1999-10-08 | リピータ・セルの配置方法、その配置装置、および記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6510542B1 (ja) |
JP (1) | JP3662149B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014038A (en) * | 1997-03-21 | 2000-01-11 | Lightspeed Semiconductor Corporation | Function block architecture for gate array |
US6928401B1 (en) * | 1999-06-10 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | Interactive repeater insertion simulator (IRIS) system and method |
US6966045B2 (en) | 1999-12-27 | 2005-11-15 | Kabushiki Kaisha Toshiba | Method and computer program product for estimating wire loads |
JP3953756B2 (ja) * | 2001-07-12 | 2007-08-08 | 富士通株式会社 | タイミングバジェット設計方法 |
US6826740B2 (en) * | 2002-05-07 | 2004-11-30 | International Business Machines Corporation | Automated buffer insertion incorporating congestion relief for use in connection with physical design of integrated circuit |
US7028280B1 (en) * | 2002-06-26 | 2006-04-11 | Cadence Design Systems, Inc. | IC layout buffer insertion method |
JP2004158631A (ja) * | 2002-11-06 | 2004-06-03 | Nec Electronics Corp | 半導体装置 |
US7243313B1 (en) * | 2003-11-24 | 2007-07-10 | Cadence Design Systems, Inc. | System and method for reducing the size of RC circuits |
JP2006172641A (ja) * | 2004-12-17 | 2006-06-29 | Toshiba Corp | 半導体回路およびその動作方法および遅延量制御回路システム |
JP2007149061A (ja) * | 2005-10-31 | 2007-06-14 | Seiko Epson Corp | レイアウトシステムおよびレイアウトプログラム、並びにレイアウト方法 |
TWI389004B (zh) * | 2009-03-19 | 2013-03-11 | Mstar Semiconductor Inc | 防止壅塞配置方法及裝置 |
JP2011134084A (ja) * | 2009-12-24 | 2011-07-07 | Renesas Electronics Corp | 半導体集積回路の設計方法、及びプログラム |
US10372860B2 (en) | 2015-07-01 | 2019-08-06 | Synopsys, Inc. | Netlist abstraction for circuit design floorplanning |
US9858377B2 (en) * | 2015-11-10 | 2018-01-02 | International Business Machines Corporation | Constraint-driven pin optimization for hierarchical design convergence |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5067091A (en) * | 1988-01-21 | 1991-11-19 | Kabushiki Kaisha Toshiba | Circuit design conversion apparatus |
JP2695078B2 (ja) * | 1991-06-10 | 1997-12-24 | 株式会社東芝 | データ処理装置クロック信号の分配方法 |
US5638291A (en) * | 1994-10-14 | 1997-06-10 | Vlsi Technology, Inc. | Method and apparatus for making integrated circuits by inserting buffers into a netlist to control clock skew |
JP3001403B2 (ja) * | 1995-09-29 | 2000-01-24 | 日本電気株式会社 | 論理回路のレイアウト方法 |
JPH10163330A (ja) * | 1996-12-03 | 1998-06-19 | Nec Corp | レイアウト考慮遅延最適化装置および方法 |
JP2970567B2 (ja) * | 1997-01-08 | 1999-11-02 | 日本電気株式会社 | 配線電流密度低減システム |
US5912820A (en) * | 1997-01-22 | 1999-06-15 | Unisys Corporation | Method and apparatus for distributing a clock tree within a hierarchical circuit design |
JP3206643B2 (ja) * | 1997-08-08 | 2001-09-10 | 日本電気株式会社 | 半導体集積回路の設計方法 |
US6148432A (en) * | 1997-11-17 | 2000-11-14 | Micron Technology, Inc. | Inserting buffers between modules to limit changes to inter-module signals during ASIC design and synthesis |
US6397169B1 (en) * | 1998-06-30 | 2002-05-28 | Synopsys, Inc. | Adaptive cell separation and circuit changes driven by maximum capacitance rules |
US6230302B1 (en) * | 1998-07-20 | 2001-05-08 | International Business Machines Corporation | Method and system for performing timing analysis on an integrated circuit design |
US6347393B1 (en) * | 1999-05-24 | 2002-02-12 | International Business Machines Corporation | Method and apparatus for performing buffer insertion with accurate gate and interconnect delay computation |
US6412101B1 (en) * | 1999-06-08 | 2002-06-25 | Hewlett-Packard Company | Simultaneous path optimization (SPO) system and method |
US6389581B1 (en) * | 1999-07-16 | 2002-05-14 | Silicone Graphics Inc. | Optimizing repeaters positioning along interconnects |
US6341365B1 (en) * | 1999-09-15 | 2002-01-22 | International Business Machines Corporation | Method for automating the placement of a repeater device in an optimal location, considering pre-defined blockages, in high frequency very large scale integration/ultra large scale integration (VLSI/ULSI) electronic designs |
-
1999
- 1999-10-08 US US09/416,200 patent/US6510542B1/en not_active Expired - Fee Related
- 1999-10-08 JP JP28884199A patent/JP3662149B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6510542B1 (en) | 2003-01-21 |
JP2000138290A (ja) | 2000-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6120549A (en) | Method and apparatus for generating optimized functional macros | |
US6080201A (en) | Integrated placement and synthesis for timing closure of microprocessors | |
US6668364B2 (en) | Methods and apparatuses for designing integrated circuits | |
US5896300A (en) | Methods, apparatus and computer program products for performing post-layout verification of microelectronic circuits by filtering timing error bounds for layout critical nets | |
US5659484A (en) | Frequency driven layout and method for field programmable gate arrays | |
US7676780B2 (en) | Techniques for super fast buffer insertion | |
US6415422B1 (en) | Method and system for performing capacitance estimations on an integrated circuit design routed by a global routing tool | |
US6598215B2 (en) | Datapath design methodology and routing apparatus | |
JP3662149B2 (ja) | リピータ・セルの配置方法、その配置装置、および記録媒体 | |
Ababei et al. | Multi-objective circuit partitioning for cutsize and path-based delay minimization | |
EP1305744B1 (en) | Method and system for hierarchical metal-end, enclosure and exposure checking | |
US6543041B1 (en) | Method and apparatus for reducing signal integrity and reliability problems in ICS through netlist changes during placement | |
US7958470B1 (en) | Method and system for false path analysis | |
US7159202B2 (en) | Methods, apparatus and computer program products for generating selective netlists that include interconnection influences at pre-layout and post-layout design stages | |
US5553001A (en) | Method for optimizing resource allocation starting from a high level | |
US7409658B2 (en) | Methods and systems for mixed-mode physical synthesis in electronic design automation | |
WO2007020439A1 (en) | Pattern matching and pattern replacement | |
JP2004178285A (ja) | 寄生素子抽出装置 | |
US6378114B1 (en) | Method for the physical placement of an integrated circuit adaptive to netlist changes | |
JP2004327864A (ja) | 半導体集積回路の低消費電力化設計方法 | |
US12073159B2 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
Khvatov et al. | Development of an IP-cores Libraries as Part of the Design Flow of Integrated Circuits on FPGA | |
US6532584B1 (en) | Circuit synthesis method | |
Chen et al. | Simultaneous placement with clustering and duplication | |
Reis et al. | Physical awareness starting at technology-independent logic synthesis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040611 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040709 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040907 |
|
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: 20050311 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050322 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080401 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090401 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100401 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100401 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110401 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |