JP3804901B2 - 回路素子を配置する配置装置および方法 - Google Patents
回路素子を配置する配置装置および方法 Download PDFInfo
- Publication number
- JP3804901B2 JP3804901B2 JP20257699A JP20257699A JP3804901B2 JP 3804901 B2 JP3804901 B2 JP 3804901B2 JP 20257699 A JP20257699 A JP 20257699A JP 20257699 A JP20257699 A JP 20257699A JP 3804901 B2 JP3804901 B2 JP 3804901B2
- Authority
- JP
- Japan
- Prior art keywords
- cell
- block
- net
- cells
- information
- 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
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、電子装置の実装設計に係り、電子回路の自動レイアウトを行う配置装置および方法に関する。
【0002】
【従来の技術】
最近の回路技術の進歩に伴い、VLSI(very large scale integrated circuit )の集積度の向上および回路規模の増大には目覚ましいものがある。このような集積度の向上および回路規模の増大に伴って、タイミング、配線率、および消費電力が設計者の要求を満たすように、これらのパラメータをCAD(computer-aided design )ツールで制御することが大きな問題になっている。ここで、配線率とは、配線すべきネットの総数に対する実際に配線されたネットの数の割合を表し、これが100%になることが最終的な目標である。
【0003】
従来のVLSIの自動レイアウトは、一般に、回路素子(セルまたはモジュール)の配置と素子間の配線の2つの処理に分けて行われる。そして、配置および配線が終了した後に、タイミングの厳しい信号パス上のセルの置き換えや、ネットへのバッファの挿入を行って、タイミング等を改善するようにしている。
【0004】
また、従来の配置方法の1つとしては、min−cut法が知られている。この方法では、カット数を評価基準としてLSIチップの論理分割を逐次繰り返すことにより、セルの配置が決定される。ここで、カット数とは、チップ上に引いたカットラインを横切る論理的な配線(ネット)の数を表す。
【0005】
【発明が解決しようとする課題】
しかしながら、上述した従来の回路設計には、次のような問題がある。
自動レイアウトにおいて、配置および配線が完全に終了してしまった状態では、新たにセルのサイズを大きくしたり、パス上にバッファを挿入したりするためには、十分な空きセルスペースが必要である。ところが、最近の配線層の多層化に伴い狭い領域での配線が容易になったために、チップ上の配線領域の面積が減少し、逆にセルの使用面積が増加している。このため、チップ面積に対するセル使用面積の割合(セル使用率)は80%を越えている。
【0006】
したがって、配置および配線が完全に終了してしまった状態においては、十分な空きセルスペースが存在しないのが現状である。このため、タイミングを最適化できるサイズにセルを変更したり、最適な場所にバッファを挿入したりすることが必ずしも可能ではないという問題がある。
【0007】
また、一般に、タイミングが厳しいパスは集中する傾向があり、仮にセルを置くためのスペースがあったとしても、そのスペースにセルを置くことによって、配線のためのスペースが不足することがある。このため、かえって配線が迂回することになり、タイミングを悪化させるという問題も生じている。
【0008】
本発明の課題は、電子回路の自動レイアウトにおいて、タイミング等のパラメータが設計者の要求を満たすように配置を変更する配置装置および方法を提供することである。
【0009】
【課題を解決するための手段】
図1は、本発明の配置装置の原理図である。図1の配置装置は、格納手段1と変更手段2を備え、回路設計において、領域分割を繰り返しながらセルの配置を決定する。
【0010】
格納手段1は、ある分割レベルにおいて、分割により生成されたブロックのブロック情報を格納する。変更手段2は、ブロック情報を用いて、その分割レベルにおける配置を変更し、変更された配置を出力する。
【0011】
領域分割の方法としては、例えば、上述したmin−cut法が用いられ、格納手段1は、階層的に繰り返される論理分割のある分割レベルにおいて、その分割レベルに属する各ブロックのブロック情報とセル配置の情報を格納する。変更手段2は、その分割レベルにおけるブロック情報を用いて、1つまたは複数のブロック内のセルを変更/削除/追加することで、設計者の要求が満たされるように、セル配置を変更する。
【0012】
このように、配置および配線が完全に終了した後ではなく、配置処理の途中のある分割レベルにおいてセル配置を変更することにより、タイミング等のパラメータが最適化されるような変更を行うことが可能になる。また、このような変更を各分割レベルにおいて繰り返すことで、配置はさらに最適化される。
【0013】
例えば、図1の格納手段1は、後述する図32のメモリ12に対応し、図1の変更手段2は、図32のCPU(中央処理装置)11およびメモリ12に対応する。
【0014】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本実施形態では、論理分割に基づく配置方法の各分割レベル(階層)において、分割されたブロックの情報と概略配線情報とを基にゲートのサイジングやバッファの挿入/削除を行うことにより、設計者の要求を満たす配置を自動的に実現する。より具体的には、このような配置方法の1つであるmin−cut法の各分割レベルにおいて、ゲートのパワーを変更したり、ネットにバッファを挿入したり、バッファを削除したりすることにより、タイミング、配線率、および消費電力の制御を行う。
【0015】
min−cut法においては、前述したように、チップ領域の論理分割を階層的に繰り返すことによりセル配置を決定しているが、分割における各レベルでのブロックは、例えば、図2に示すような構造を持つ。このとき、配置装置は、以下の情報を保持している。
1.ライブラリ情報
ライブラリに登録された各回路素子の属性を表す。図2の回路の場合、例えば、図3に示すようなライブラリテーブルがライブラリ情報として保持される。ここでは、L0〜L8の9個の素子が登録されている。
【0016】
図3において、各素子の情報は、識別子(libId)、種類(lib_kind(libId))、パワータイプ(lib_power(libId))、面積(lib_area(libId))、入力端子のキャパシタンス(lib_inp_capa(libId))、出力端子のドライブ能力(lib_out_drive(libId))、およびゲート遅延(lib_delay(libId))からなる。
【0017】
例えば、L0はローパワーのインバータに対応し、L1はノーマルパワーのインバータに対応し、L2はハイパワーのインバータに対応する。また、L3、L4、L5はNANDゲートに対応し、L6、L7、L8はバッファに対応する。
2.セル情報
配置された各セルの属性を表す。図2の回路の場合、例えば、図4に示すようなセルテーブルがセル情報として保持される。ここでは、図2の4個のセルC0、C1、C2、C3の情報が登録されている。
【0018】
図4において、各セルの情報は、識別子(cellId)、セルが属するブロックのブロック座標(cell_x(cellId),cell_y(cellId))、およびセルに対応する素子のライブラリ識別子(cell_kind(cellId))からなる。また、セルの面積(cell_area(cellId))を付加することもできる。
【0019】
例えば、セルC0のブロック座標は(1,0)であり、対応するライブラリ識別子はL0となっている。したがって、この時点では、セルC0としてローパワーのインバータが割り当てられていることが分かる。図2においては、ローパワーのセルは細線で描かれており、ハイパワーのセルは太線で描かれている。
3.ネット情報
セル間のネットの属性を表す。図2の回路の場合、例えば、図5に示すようなネットテーブルがネット情報として保持される。ここでは、図2の6個のネットN0、N1、N2、N3、N4、N5の情報が登録されている。
【0020】
図5において、各ネットの情報は、識別子(netId)、ネットのスラック(net_slack(netId))、および総キャパシタンス(net_capa(netId))からなる。スラックは、パスに含まれる各ネットにおける信号のタイミング(到着時刻)の余裕度を表し、例えば、次式により与えられる。
スラック=要求された到着時刻−実際の到着時刻 (1)
また、ネットテーブルには、配線パターン識別子(net_pattern(netId))やシミュレーション実行後の状態に基づく信号変化の周波数(net_f(netId))を付加することもできる。配線パターンは、後述するように、タイミングを計算するためのモデルを構築する際に生成される。また、信号変化の周波数は、1秒間にネットの電荷が放電される回数、言い換えれば、1秒間にネット上の信号が変化する回数を表す。
4.ブロック情報
分割により生成されたブロックの属性を表す。図2の回路の場合、例えば、図6に示すようなブロックテーブルがブロック情報として保持される。ここでは、図2の9個のブロックの情報が登録されており、各ブロックは10×10の正方形であるものと仮定している。
【0021】
図6において、各ブロックの情報は、ブロック座標(x,y)、ブロックの中心位置の座標(block_center_x(x,y)),block_center_y(x,y))、セル使用可能面積(block_area_capa(x,y))、およびセル使用面積(block_cell_area(x,y))からなる。ブロック座標は、ブロックの識別子として用いられる。また、セル使用可能面積は、通常、ブロックの面積から配線領域等に使用する面積を除いて設定される。
【0022】
例えば、ブロック座標(0,0)のブロックの中心位置は(x,y)=(5,5)であり、セル使用可能面積は“7”である。しかしながら、図2では、このブロックにはセルが置かれていないため、セル使用面積は“0”となっている。
【0023】
また、ブロック座標(0,1)のブロックの中心位置は(x,y)=(5,15)であり、セル使用可能面積は“7”である。図2では、このブロックにセルC2が置かれており、図4より、このセルに対応するライブラリ識別子はL0である。また、図3より、L0の面積は“1”であるため、ブロック(0,1)のセル使用面積には“1”が格納される。
【0024】
また、配置装置は、各セルと各ネットの接続関係を表す情報として、図7および図8に示すようなリストを保持している。図7のリストは、各セルの識別子に1つ以上のネットの識別子をポインタで繋げた構造を持ち、あるセルに接続されたネットを検索する際に用いられる。また、図8のリストは、各ネットの識別子に1つ以上のセルの識別子をポインタで繋げた構造を持ち、あるネットに接続されたセルを検索する際に用いられる。
【0025】
配置装置は、上述したライブラリ情報、セル情報、ネット情報、およびブロック情報を入力として、概略配線の配線パターンを生成し、タイミングを計算するためのモデルを構築する。
【0026】
この配線パターンにおいては、あるブロック(x,y)に含まれるセルの端子は、すべてそのブロックの中心に位置すると仮定し、配線の分岐もブロックの中心で行われると仮定する。そして、ネットの配線遅延を計算するために、まず、ブロック内で閉じているネットの配線長(wire_len_in_block(netId,x,y))を求める。
【0027】
この配線長は、そのネットに繋がっており、ブロックに含まれている端子の数(pin_number(netId,x,y))を基に、次式により計算される。
wire_len_in_block(netId,x,y)
=α+β×pin_number(netId,x,y) (2)
ここで、αおよびβは、あらかじめ決められた定数であり、pin_number(netId,x,y)は、そのネットに関する混雑度(実際の配線の数)を表すと考えられる。
【0028】
次に、得られたブロック内の配線長と、ブロック間の配線長と、単位長さあたりの遅延時間(単位遅延量)から、次式によりネットの配線遅延が計算される。
配線遅延
=単位遅延量×(ブロック内の配線長+ブロック間の配線長) (3)
図9は、図2の回路のセルとネットの遅延を示している。図9において、各セルの遅延としては、図3のライブラリテーブルに登録された値が用いられており、各ネットの遅延は、(3)式により計算されている。ただし、ここでは、簡単のために、単位遅延量=1、ブロック内の配線長=0(α=β=0)、ブロック間の配線長=ネットがブロック間の境界をまたぐ回数、としている。
【0029】
例えば、ネットN3の場合、ブロック(0,1)とブロック(0,2)の境界と、ブロック(1,1)とブロック(1,2)の境界と、ブロック(0,2)とブロック(1,2)の境界と、ブロック(1,2)とブロック(2,2)の境界をまたいでいる。したがって、ネットの配線長は“4”になり、遅延も“4”になっている。
【0030】
また、図10は、図9の遅延から計算されたパスの遅延を示している。図10において、1つのパスはセルおよびネットからなり、パスの遅延はそれに含まれるセルおよびネットの遅延の総和により与えられる。ネットN0、N1の左端に信号が到着した時刻を“0”と仮定すると、各ネットの端点(各セルの入出力端子)に信号が到着する時刻がパスの遅延に一致する。
【0031】
例えば、ネットN1からネットN5に至るパスの場合、図9より、ネットN1、セルC0、ネットN2、セルC1、ネットN3、セルC3、およびネットN5の遅延は、それぞれ、“1”、“4”、“1”、“2”、“4”、“4”、および“2”であるので、パスの遅延は“18”となる。したがって、ネットN5の右端における到着時刻は“18”となる。
【0032】
また、図11は、図10の到着時刻から計算されたネットのスラックを示している。図11においては、各ネットの端点における“実際の到着時刻/要求された到着時刻”が示されており、()内の数値は、(1)式により計算されたスラックを表している。こうして計算されたスラックは、図5のネットテーブルに格納される。
【0033】
一般に、スラックが“0”または負の場合、そのネットはクリティカルであると考えられ、そのネットに至るパスのタイミングを改善することが望ましい。また、スラックが正の場合、そのネットのタイミングには余裕があると考えられる。
【0034】
また、配置装置は、あるブロック(x,y)に含まれるセルのサイズを大きくする操作、または、そのブロックにバッファを挿入する操作を、次式が満たされることを条件として許可する。
block_area_capa(x,y)
>block_cell_area(x,y) (4)
(4)式は、セル使用面積がセル使用可能面積より小さいことを表しており、この式が満たされる限り、そのブロック内での配線可能性が保証される。言い換えれば、ブロック内でセル使用面積が増加するような配置変更は、(4)式の条件により制限されている。
【0035】
次に、図12から図31までを参照しながら、本実施形態の配置装置による配置処理について詳細に説明する。
図12は、配置処理のフローチャートである。配置装置は、まず、チップの論理分割の分割レベルを表す制御変数Lを0とおき(ステップS1)、Lを分割レベルの最大値max_levelと比較する(ステップS2)。
【0036】
Lがmax_level以下であれば、現在のレベルにおける各ブロックをカット数が最適になるように分割して、次のレベルのブロックを生成する(ステップS3)。そして、グローバル配線を行って配線パターンを生成し、遅延の評価等のためのモデルを構築する(ステップS4)。
【0037】
次に、このモデルを用いて、得られた配置のタイミングを改善する処理を行い(ステップS5)、配線率を改善する処理を行い(ステップS6)、消費電力を改善する処理を行う(ステップS7)。次に、Lに1を加算して(ステップS8)、ステップS2以降の処理を繰り返す。そして、ステップS2においてLがmax_levelを越えれば、詳細配置を行って(ステップS9)、処理を終了する。
【0038】
ここで、ステップS5、S6、およびS7における処理を説明するための準備として、これらの処理に含まれる基本処理について、図13から図28までを参照しながら説明する。
【0039】
図13は、タイミングを改善するために行われるセル変更処理のフローチャートである。この処理では、ある分割レベルにおいて、スラックの値が小さい順にネットをソートし、スラックが負であるネット(net_slack(netId)<0)に関して、loading over等の与えられた制約条件を満たしている範囲内で、そのネットに接続されているセルのライブラリのパワータイプ(lib_power(libId))を変更する。
【0040】
スラックが負であるネットは、タイミングの厳しいパスに含まれると考えられ、このネットのスラックを改善することで、それを含むパスのタイミングを改善することができる。また、スラックが正であるネットは、タイミングに余裕のあるパスに含まれる。
【0041】
また、ネットのloading overは、ネットの総キャパシタンスに関する制限を表し、例えば、次式により与えられる。
Cmax ×γ>net_capa(netId) (5)
ここで、Cmax は、そのネットをドライブするセルの出力端子のドライブ能力を表し、γは、あらかじめ決められた定数である。(5)式は、ネットの総キャパシタンスを出力端子のドライブ能力のγ倍より小さい値に制限することを表している。
【0042】
配置装置は、まず、ネットテーブルのデータをスラックの値が小さい順にソートし(ステップS11)、スラックが負のネットがあるか否かをチェックする(ステップS12)。スラックが負のネットがあれば、その中の1つを選択し(ステップS13)、選択されたネットに接続されているセルを1つ選択する(ステップS14)。
【0043】
そして、(4)、(5)式を含む与えられた制約条件が満たされる範囲内でネットのスラックが改善されるように、選択されたセルのパワータイプを変更する(ステップS15)。これにより、セルテーブルにおいて、対応するセルのライブラリ識別子が変更される。(4)式が満たされるようにセルを変更することにより、セル使用率を一定値以内に抑えることができ、配線率を落とさずにタイミングを改善することができる。
【0044】
次に、変更されたセルを用いてネットの遅延を評価し(ステップS16)、タイミングが改善されたか否かをチェックする(ステップS17)。タイミングが改善されれば、ブロックテーブルにおいて、変更されたセルを含むブロックのセル使用面積を変更する(ステップS18)。また、タイミングが改善されなければ、セルテーブルのライブラリ識別子を元に戻すことで、セルのパワータイプを元に戻す(ステップS19)。
【0045】
次に、選択されたネットに他のセルがあるか否かをチェックし(ステップS20)、他のセルがあれば、ステップS14以降の処理を繰り返す。また、そのネットのすべてのセルについて処理が終了すると、他のネットについてステップS12以降の処理を繰り返す。そして、スラックが負のネットがなくなると、処理を終了する。
【0046】
例えば、図5のネットテーブルをスラックの値でソートすると、図14のようになる(ステップS11)。ただし、図14では、総キャパシタンスは省略されている。ここでは、ネットN1、N2、N3、およびN5のスラックが負であるため、これらのネットが処理対象となる。
【0047】
このうちネットN5が処理対象として選択されたとすると、図8のリストから、このネットにはセルC3のみが接続されていることが分かる。そこで、セルC3が処理対象として選択され、ネットN5のスラックが改善されるように、このセルのパワータイプが変更される。
【0048】
ここで、図4のセルテーブルを参照すると、セルC3のライブラリ識別子はL0であることが分かり、図3のライブラリテーブルを参照すると、ライブラリ識別子L0の種類はインバータであることが分かる。さらに、ライブラリテーブルには3つの異なるパワータイプのインバータが登録されており、パワーが大きくなるほど遅延は小さくなっている。したがって、セルC3をよりパワーの大きなインバータに変更すれば、ネットN5のスラックが改善されると考えられる。
【0049】
そこで、配置装置は、セルC3のライブラリ識別子をL0からL2に変更することで、そのパワータイプを“LOW”から“HIGH”に変更する(ステップS15)。これにより、図2の配置は図15のように変更される。図15においては、セルC3が太線で描かれており、ハイパワーのセルに変更されたことを示している。
【0050】
また、図3のライブラリテーブルより、インバータL2の面積は“3”であるので、セルC3を含むブロック(2,2)のblock_cell_area(2,2)は“3”となる。しかし、図6のブロックテーブルより、ブロック(2,2)のblock_area_capa(2,2)は“7”であるため、セルC3をL0からL2に変更しても、(4)式は満たされている。
【0051】
次に、図15の配置の遅延を評価すると、図9、図10、および図11に示した数値は、それぞれ、図16、図17、および図18に示すように変更される(ステップS16)。図16においては、セルC3の遅延が“4”から“2”に減少し、図17においては、ネットN5のパスの遅延が“18”から“16”に減少している。そして、図18においては、ネットN5のスラックが“−1”から“1”に改善されている。
【0052】
また、これに伴って、ネットN1、N2、およびN3の各端点における“要求された到着時刻”に“2”が加算され、これらのネットのスラックも“−1”から“1”に改善されている。
【0053】
このため、配置装置は、セルの変更を確定し、図6のブロックテーブルにおいて、ブロック(2,2)のセル使用面積を“1”から“3”に変更する(ステップS18)。こうして、スラックが負のネットに接続されたセルのパワーが大きくなり、スラックが正に改善される。
【0054】
次に、図19は、配線率を改善するために行われるセル変更処理のフローチャートである。この処理では、ある分割レベルにおいて、次式により各ブロックのセル使用余裕度(block_room(x,y))を求める。
block_room(x,y)
=block_area_capa(x,y)
−block_cell_area(x,y) (6)
そして、このセル使用余裕度の小さい順にブロックをソートし、余裕のないブロックに含まれているセルに対して、与えられた制約条件を満たしている範囲内で、パワーが小さくなるようにセルのライブラリのパワータイプを変更する。
【0055】
配置装置は、まず、ブロックテーブルの各ブロックについて、(6)式に基づいてセル使用余裕度を計算し(ステップS21)、ブロックテーブルのデータをセル使用余裕度の値が小さい順にソートする(ステップS22)。例えば、図6のブロックテーブルの各ブロックのセル使用余裕度を計算し、ブロックテーブルをセル使用余裕度でソートすると、図20のようになる。
【0056】
次に、余裕のないブロックがあるか否かをチェックする(ステップS23)。ここでは、各ブロックのセル使用余裕度を所定値と比較し、セル使用余裕度が所定値より小さいブロックを余裕のないブロックとして抽出する。所定値としては、例えば、“0”が用いられる。そして、余裕のないブロックがあれば、その中の1つを選択し(ステップS24)、選択されたブロック内のセルを1つ選択する(ステップS25)。
【0057】
そして、(4)、(5)式を含む与えられた制約条件が満たされる範囲内でブロックのセル使用余裕度が改善されるように、選択されたセルのパワーを小さくする(ステップS26)。
【0058】
このとき、(4)式が満たされるようにセルのパワータイプを変更することにより、セル使用率を一定値以内に抑えることができ、配線率の改善と消費電力の最小化を図ることができる。さらに、タイミング破綻(timing violation)を防止するために、タイミングに余裕のあるパス上のセルのみを変更の対象とするような制約条件を課しておく。
【0059】
次に、選択されたブロック内に他のセルがあるか否かをチェックし(ステップS27)、他のセルがあれば、ステップS25以降の処理を繰り返す。また、そのブロック内のすべてのセルについて処理が終了すると、他のブロックについてステップS23以降の処理を繰り返す。そして、余裕のないブロックがなくなると、処理を終了する。
【0060】
次に、図21は、消費電力を改善するために行われるセル変更処理のフローチャートである。この処理では、ある分割レベルにおいて、シミュレーション実行後の状態に基づく信号変化の周波数と総キャパシタンスの積とネットの電圧Vから、次式により各ネットの電力(net_power(netId))を求める。
net_power(netId)
=net_capa(netId)×net_f(netId)
×(1/2)V2 (7)
そして、この電力の大きい順にネットをソートし、与えられた制約条件を満たしている範囲内で、各ネットに接続されているセルのパワーを小さくしてみる。その結果、すべてのネットの電力の総和が小さくなれば、セルのパワータイプを変更する。
【0061】
配置装置は、まず、ネットテーブルの各ネットについて、(7)式に基づいて電力を計算し(ステップS31)、ネットテーブルのデータを電力の値が大きい順にソートする(ステップS32)。次に、ソート順に1つのネットを選択し(ステップS33)、選択されたネットに接続されたセルを1つ選択する(ステップS34)。
【0062】
そして、(4)、(5)式を含む与えられた制約条件が満たされる範囲内でネットの電力が改善されるように、選択されたセルのパワーを小さくする(ステップS35)。
【0063】
このとき、(4)式が満たされるようにセルのパワータイプを変更することにより、セル使用率を一定値以内に抑えることができ、配線率を落とさずに消費電力の最小化を図ることができる。さらに、タイミング破綻を防止するために、タイミングに余裕のあるパス上のセルのみを変更の対象とするような制約条件を課しておく。この場合、ステップS33において、スラックが正のネットのみが処理対象として選択される。
【0064】
次に、変更されたセルを用いてネットの電力の総和を評価し(ステップS36)、総消費電力が改善されたか否かをチェックする(ステップS37)。総消費電力が減少していれば、ブロックテーブルにおいて、変更されたセルを含むブロックのセル使用面積を変更する(ステップS38)。また、総消費電力が減少していなければ、セルのパワータイプを元に戻す(ステップS39)。
【0065】
次に、選択されたネットに接続された他のセルがあるか否かをチェックし(ステップS40)、他のセルがあれば、ステップS34以降の処理を繰り返す。また、そのネットに接続されたすべてのセルについて処理が終了すると、未処理の他のネットがあるか否かをチェックする(ステップS41)。他のネットがあれば、ステップS33以降の処理を繰り返し、未処理のネットがなくなると、処理を終了する。
【0066】
次に、図22は、タイミングを改善するために行われるバッファ挿入/削除処理のフローチャートである。この処理では、ある分割レベルにおいて、スラックの値が小さい順にネットをソートし、スラックが負であるネットに関して、与えられた制約条件を満たしている範囲内で、そのネットにバッファを挿入したり、そのネットからバッファを削除したりする。
【0067】
図22のステップS51〜S53の処理は、図13のステップS11〜S13の処理と同様である。配置装置は、ステップS53においてネットを選択すると、(4)、(5)式を含む与えられた制約条件が満たされる範囲内でネットのスラックが改善されるように、選択されたネットに新たなバッファを挿入するか、あるいは、そのネットから既存のバッファを削除する(ステップS54)。このとき、バッファを挿入する位置は、ブロック座標により指定される位置に限定する。
【0068】
バッファの挿入/削除により、セルテーブル、ブロックテーブル、ネットテーブル等の情報が変更される。(4)式が満たされるようにバッファを挿入/削除することにより、セル使用率を一定値以内に抑えることができ、配線率を落とさずにタイミングを改善することができる。
【0069】
そして、ステップS52以降の処理を繰り返し、スラックが負のネットがなくなると、処理を終了する。
例えば、図14のソート結果において、ネットN3が処理対象として選択されたとする。このとき、図14より、ネットN4のスラックは“5”であり、ネットN4のタイミングには余裕があることが分かる。そこで、ネットN4に接続されたセルC2の入力側にバッファを挿入して、ネットN3のサイズを小さくすれば、ネットN3の遅延が減少し、ネットN3、N5のスラックが改善されると考えられる。
【0070】
そこで、配置装置は、図23に示すように、ネットN3上のブロック座標(0,2)の位置にパワータイプ“LOW”のバッファC4を挿入して、ネットN3を小さくし、新たなネットN6を生成する(ステップS54)。これにより、図4のセルテーブルには、ライブラリ識別子L6を持つセルC4が追加され、図5のネットテーブルには、ネットN6が追加される。
【0071】
また、図3のライブラリテーブルより、バッファL6の面積は“2”であるので、図6のブロックテーブルにおいて、ブロック(0,2)のblock_cell_area(0,2)は“0”から“2”に変更される。しかし、ブロック(0,2)のblock_area_capa(0,2)は“7”であるため、バッファL6を挿入しても、(4)式は満たされている。
【0072】
また、図9、図10、および図11に示した数値は、それぞれ、図24、図25、および図26に示すように変更される。図23においては、ネットN3がまたぐブロック間の境界の数が“4”から“3”に減少しているため、図24においても、ネットN3の遅延が“4”から“3”に減少している。また、ネットN6はブロック(0,1)とブロック(0,2)の境界をまたいでいるため、ネットN6の遅延は“1”となっている。
【0073】
また、図25においては、ネットN5のパスの遅延が“18”から“17”に減少し、逆に、ネットN4のパスにおいては、遅延“4”のバッファC4が挿入されたために、パスの遅延が“17”から“21”に増加している。
【0074】
そして、図26においては、ネットN5のスラックが“−1”から“0”に改善されている。これに伴って、ネットN1、N2、およびN3の各端点における“要求された到着時刻”に“1”が加算され、これらのネットのスラックも“−1”から“0”に改善されている。逆に、ネットN4のスラックは“5”から“1”に減少しているが、スラックが負のネットがなくなったことで、回路全体としてはスラックが改善されたことになる。
【0075】
次に、図27は、配線率を改善するために行われるバッファ削除処理のフローチャートである。この処理では、ある分割レベルにおいて、各ブロックのセル使用余裕度を求め、その値の小さい順にブロックをソートする。そして、与えられた制約条件を満たしている範囲内で、余裕のないブロックに含まれているバッファを削除する。
【0076】
図27のステップS61〜S64の処理は、図19のステップS21〜S24の処理と同様である。配置装置は、ステップS64においてブロックを選択すると、次に、選択されたブロック内のバッファを1つ選択する(ステップS65)。
【0077】
そして、(4)、(5)式を含む与えられた制約条件が満たされる範囲内でブロックのセル使用余裕度が改善されるように、選択されたバッファを削除する(ステップS66)。
【0078】
このとき、(4)式が満たされるようにバッファを削除することにより、セル使用率を一定値以内に抑えることができ、配線率の改善と消費電力の最小化を図ることができる。さらに、タイミング破綻を防止するために、タイミングに余裕のあるパス上のバッファのみを削除の対象とするような制約条件を課しておく。
【0079】
次に、選択されたブロック内に他のバッファがあるか否かをチェックし(ステップS67)、他のバッファがあれば、ステップS65以降の処理を繰り返す。また、そのブロック内のすべてのバッファについて処理が終了すると、他のブロックについてステップS63以降の処理を繰り返す。そして、余裕のないブロックがなくなると、処理を終了する。
【0080】
次に、図28は、消費電力を改善するために行われるバッファ削除処理のフローチャートである。この処理では、ある分割レベルにおいて、各ネットの電力を求め、その値の大きい順にネットをソートする。そして、与えられた制約条件を満たしている範囲内で、すべてのネットの電力の総和が小さくなるように、各ネットに接続されているバッファを削除する。
【0081】
図28のステップS71〜S73の処理は、図21のステップS31〜S33の処理と同様である。配置装置は、ステップS73においてネットを選択すると、選択されたネットに接続されたバッファを1つ選択する(ステップS74)。
【0082】
そして、(4)、(5)式を含む与えられた制約条件が満たされる範囲内でネットの電力が改善されるように、選択されたバッファを削除する(ステップS75)。
【0083】
このとき、(4)式が満たされるようにバッファを削除することにより、セル使用率を一定値以内に抑えることができ、配線率を落とさずに消費電力の最小化を図ることができる。さらに、タイミング破綻を防止するために、タイミングに余裕のあるパス上のバッファのみを削除の対象とするような制約条件を課しておく。この場合、ステップS73において、スラックが正のネットのみが処理対象として選択される。
【0084】
次に、選択されたネットに接続された他のバッファがあるか否かをチェックし(ステップS76)、他のバッファがあれば、ステップS74以降の処理を繰り返す。また、そのネットに接続されたすべてのバッファについて処理が終了すると、未処理の他のネットがあるか否かをチェックする(ステップS77)。他のネットがあれば、ステップS73以降の処理を繰り返し、未処理のネットがなくなると、処理を終了する。
【0085】
以上説明した基本処理において、バッファを挿入/削除する処理には、バッファと同様の機能を持つ1つ以上のセルを挿入/削除する処理も含まれる。例えば、この処理において、連続した偶数個のインバータを挿入/削除してもよい。
【0086】
次に、これらの基本処理を参照しながら、図12のステップS5、S6、およびS7における処理を説明する。
図29は、図12のステップS5におけるタイミング改善処理のフローチャートである。この処理においては、図13のセル変更処理と図22のバッファ挿入/削除処理を組み合わせることで、より効果的にタイミングを改善する。
【0087】
図29のステップS81〜S83の処理は、図13のステップS11〜S13の処理と同様である。配置装置は、ステップS83においてネットを選択すると、図13のステップS14〜S20の処理を行って、選択されたネットに接続されたセルのパワータイプを変更する(ステップS84)。
【0088】
そして、ステップS20において未処理の他のセルがなくなると、次に、図22のステップS54の処理を行って、選択されたネットにバッファを挿入したり、そのネットからバッファを削除したりする(ステップS85)。そして、ステップS82以降の処理を繰り返し、ステップS82においてスラックが負のネットがなくなると、処理を終了する。
【0089】
次に、図30は、図12のステップS6における配線率改善処理のフローチャートである。この処理においては、図19のセル変更処理と図27のバッファ削除処理を組み合わせることで、より効果的に配線率を改善する。
【0090】
図30のステップS91〜S94の処理は、図19のステップS21〜S24の処理と同様である。配置装置は、ステップS84においてブロックを選択すると、図19のステップS25〜S27の処理を行って、選択されたブロック内のセルのパワータイプを変更する(ステップS95)。
【0091】
そして、ステップS27において未処理の他のセルがなくなると、次に、図27のステップS65〜S67の処理を行って、選択されたブロック内のバッファを削除する(ステップS96)。そして、ステップS67において未処理の他のバッファがなくなると、ステップS93以降の処理を繰り返し、ステップS93において余裕のないブロックがなくなると、処理を終了する。
【0092】
図31は、図12のステップS7における消費電力改善処理のフローチャートである。この処理においては、図21のセル変更処理と図28のバッファ削除処理を組み合わせることで、より効果的に消費電力を改善する。
【0093】
図31のステップS101〜S103の処理は、図21のステップS31〜S33の処理と同様である。配置装置は、ステップS103においてネットを選択すると、図21のステップS34〜S40の処理を行って、選択されたネットに接続されたセルのパワータイプを変更する(ステップS104)。
【0094】
そして、ステップS40において未処理の他のセルがなくなると、次に、図28のステップS74〜S76の処理を行って、選択されたネットからバッファを削除する(ステップS105)。そして、ステップS76において未処理の他のバッファがなくなると、未処理の他のネットがあるか否かをチェックする(ステップS106)。他のネットがあれば、ステップS103以降の処理を繰り返し、ステップS106において他のネットがなくなると、処理を終了する。
【0095】
ところで、本実施形態の配置装置は、図32に示すような情報処理装置(コンピュータ)を用いて構成することができる。図32の情報処理装置は、CPU(中央処理装置)11、メモリ12、入力装置13、出力装置14、外部記憶装置15、媒体駆動装置16、およびネットワーク接続装置17を備え、それらはバス18により互いに接続されている。
【0096】
メモリ12は、例えば、ROM(read only memory)、RAM(random access memory)等を含み、処理に用いられるプログラムとデータを格納する。CPU11は、メモリ12を利用してプログラムを実行することにより、必要な処理を行う。
【0097】
図3のライブラリテーブル、図4のセルテーブル、図5のネットテーブル、図6のブロックテーブル、図7および図8のリスト等のデータは、メモリ12に保持される。
【0098】
入力装置13は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、ユーザからの指示や情報の入力に用いられる。出力装置14は、例えば、ディスプレイ、プリンタ、スピーカ等であり、ユーザへのメッセージや処理結果の出力に用いられる。
【0099】
外部記憶装置15は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク(magneto-optical disk)装置等である。情報処理装置は、この外部記憶装置15に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ12にロードして使用することができる。また、外部記憶装置15は、図3のライブラリテーブルを格納するデータベースとしても用いられる。
【0100】
媒体駆動装置16は、可搬記録媒体19を駆動し、その記録内容にアクセスする。可搬記録媒体19としては、メモリカード、フロッピーディスク、CD−ROM(compact disk read only memory )、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。ユーザは、この可搬記録媒体19に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ12にロードして使用することができる。
【0101】
ネットワーク接続装置17は、任意のネットワーク(回線)を介して外部の装置と通信し、通信に伴うデータ変換を行う。情報処理装置は、必要に応じて、ネットワーク接続装置17を介して上述のプログラムとデータを外部の装置から受け取り、それらをメモリ12にロードして使用することができる。
【0102】
図33は、図32の情報処理装置にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体19や外部のデータベース20に保存されたプログラムとデータは、メモリ12にロードされる。そして、CPU11は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【0103】
【発明の効果】
本発明によれば、電子回路の自動レイアウトにおいて領域の論理分割に基づくセル配置を行うとき、各分割レベルにおいてセルのパワータイプの変更やバッファの挿入/削除を行うことで、タイミング、配線率、および消費電力を改善することができる。これにより、配線による遅延を指定された範囲内に抑えることが可能になり、回路のパフォーマンスが向上する。
【図面の簡単な説明】
【図1】本発明の配置装置の原理図である。
【図2】セルの配置を示す図である。
【図3】ライブラリテーブルを示す図である。
【図4】セルテーブルを示す図である。
【図5】ネットテーブルを示す図である。
【図6】ブロックテーブルを示す図である。
【図7】第1のリストを示す図である。
【図8】第2のリストを示す図である。
【図9】第1のセルとネットの遅延を示す図である。
【図10】第1のパス遅延を示す図である。
【図11】第1のスラックを示す図である。
【図12】配置処理のフローチャートである。
【図13】第1のセル変更処理のフローチャートである。
【図14】ネットテーブルのソート結果を示す図である。
【図15】ゲートの変更を示す図である。
【図16】第2のセルとネットの遅延を示す図である。
【図17】第2のパス遅延を示す図である。
【図18】第2のスラックを示す図である。
【図19】第2のセル変更処理のフローチャートである。
【図20】ブロックテーブルのソート結果を示す図である。
【図21】第3のセル変更処理のフローチャートである。
【図22】バッファ挿入/削除処理のフローチャートである。
【図23】バッファの挿入を示す図である。
【図24】第3のセルとネットの遅延を示す図である。
【図25】第3のパス遅延を示す図である。
【図26】第3のスラックを示す図である。
【図27】第1のバッファ削除処理のフローチャートである。
【図28】第2のバッファ削除処理のフローチャートである。
【図29】タイミング改善処理のフローチャートである。
【図30】配線率改善処理のフローチャートである。
【図31】消費電力改善処理のフローチャートである。
【図32】情報処理装置の構成図である。
【図33】記録媒体を示す図である。
【符号の説明】
1 格納手段
2 変更手段
11 CPU
12 メモリ
13 入力装置
14 出力装置
15 外部記憶装置
16 媒体駆動装置
17 ネットワーク接続装置
18 バス
19 可搬記録媒体
20 データベース
Claims (8)
- 回路設計において、セルの配置を決定するコンピュータのためのプログラムを記録した記録媒体であって、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第1のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第2のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第3のステップと、
該モデルを用いてパスのタイミングを評価する第4のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、前記ブロック情報を参照し、ブロックごとのセル使用余裕度を算出し、余裕のないブロックに含まれているセルを、前記ライブラリテーブルを参照し、よりパワータイプの小さいセルに変更し、前記第1のステップに進む第5のステップと、
を含む処理を前記コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。 - 回路設計において、セルの配置を決定するコンピュータのためのプログラムを記録した記録媒体であって、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第1のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第2のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第3のステップと、
該モデルを用いてパスのタイミングを評価する第4のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、前記ブロック情報を参照し、ブロックごとのセル使用余裕度を算出し、セル使用余裕度に余裕のないブロック内にある、タイミングに余裕のあるパス上のバッファを削除し、前記第1のステップに進む第5のステップと、
を含む処理を前記コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。 - 回路設計において、セルの配置を決定するコンピュータのためのプログラムを記録した記録媒体であって、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第1のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第2のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第3のステップと、
該モデルを用いてパスのタイミングを評価する第4のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上の セルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、セル間のネットの属性をネットごとに記憶しているネットテーブルを参照して、ネットごとの電力を計算し、電力が大きいネットに接続されているセルを、前記ライブラリテーブルを参照し、よりパワータイプの小さいセルに変更し、前記第1のステップに進む第5のステップと、
を含む処理を前記コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。 - 回路設計において、セルの配置を決定するコンピュータのためのプログラムを記録した記録媒体であって、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第1のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第2のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第3のステップと、
該モデルを用いてパスのタイミングを評価する第4のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、セル間のネットの属性をネットごとに記憶しているネットテーブルを参照して、ネットごとの電力を計算し、電力が大きいネットに接続されているバッファを削除し、前記第1のステップに進む第5のステップと、
を含む処理を前記コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。 - コンピュータが、回路設計において、セルの配置を決定する配置方法であって、
前記コンピュータが、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第1のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第2のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第3のステップと、
該モデルを用いてパスのタイミングを評価する第4のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、前記ブロック情報を参照し、ブロックごとのセル使用余裕度を算出し、余裕のないブロックに含まれているセルを、前記ライブラリテーブルを参照し、よりパワータイプの小さいセルに変更し、前記第1のステップに進む第5のステップと、
を実行することを特徴とする配置方法。 - コンピュータが、回路設計において、セルの配置を決定する配置方法であって、
前記コンピュータが、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成 し、格納手段に格納する第1のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第2のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第3のステップと、
該モデルを用いてパスのタイミングを評価する第4のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、前記ブロック情報を参照し、ブロックごとのセル使用余裕度を算出し、セル使用余裕度に余裕のないブロック内にある、タイミングに余裕のあるパス上のバッファを削除し、前記第1のステップに進む第5のステップと、
を実行することを特徴とする配置方法。 - コンピュータが、回路設計において、セルの配置を決定する配置方法であって、
前記コンピュータが、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第1のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第2のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第3のステップと、
該モデルを用いてパスのタイミングを評価する第4のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、セル間のネットの属性をネットごとに記憶しているネットテーブルを参照して、ネットごとの電力を計算し、電力が大きいネットに接続されているセルを、前記ライブラリテーブルを参照し、よりパワータイプの小さいセルに変更し、前記第1のステップに進む第5のステップと、
を実行することを特徴とする配置方法。 - コンピュータが、回路設計において、セルの配置を決定する配置方法であって、
前記コンピュータが、
回路の分割されていないチップ領域若しくは配置処理の途中のある分割レベルに分割されたチップ領域を、前記分割レベルが予め設定した所定のレベル以下であった場合には領域分割し、該分割により生成されたブロックに関する属性情報を含むブロック情報を生成し、格納手段に格納する第1のステップと、
前記分割レベルが予め設定した所定のレベルを超えていた場合には、セルの詳細配置を行う第2のステップと、
前記ブロック情報と配置されたセル間の概略配線の情報に基づいて、タイミングを計算するためのモデルを生成する第3のステップと、
該モデルを用いてパスのタイミングを評価する第4のステップと、
前記評価するステップによる評価において、タイミングが厳しいと評価されたパス上のセルのパワータイプを、セルの属性情報をセルのタイプごとに記憶しているライブラリテーブルを参照し、別のパワータイプに変更し、セル間のネットの属性をネットごとに記憶しているネットテーブルを参照して、ネットごとの電力を計算し、電力が大きいネットに接続されているバッファを削除し、前記第1のステップに進む第5のステップと、
を実行することを特徴とする配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20257699A JP3804901B2 (ja) | 1999-07-16 | 1999-07-16 | 回路素子を配置する配置装置および方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20257699A JP3804901B2 (ja) | 1999-07-16 | 1999-07-16 | 回路素子を配置する配置装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001034644A JP2001034644A (ja) | 2001-02-09 |
JP3804901B2 true JP3804901B2 (ja) | 2006-08-02 |
Family
ID=16459788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20257699A Expired - Fee Related JP3804901B2 (ja) | 1999-07-16 | 1999-07-16 | 回路素子を配置する配置装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3804901B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4953526B2 (ja) * | 2001-07-27 | 2012-06-13 | 富士通セミコンダクター株式会社 | タイミング優先でセル配置するlsiのレイアウト方法及びその装置 |
JP4894106B2 (ja) * | 2001-08-01 | 2012-03-14 | 凸版印刷株式会社 | トランジスタサイズ設計方法及びトランジスタサイズ設計装置 |
JP5212218B2 (ja) * | 2009-03-27 | 2013-06-19 | 富士通セミコンダクター株式会社 | 設計支援プログラム、設計支援装置、および設計支援方法 |
-
1999
- 1999-07-16 JP JP20257699A patent/JP3804901B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001034644A (ja) | 2001-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7222318B2 (en) | Circuit optimization for minimum path timing violations | |
JP3331968B2 (ja) | グリッチ分析と低減に重点をおいたレジスタトランスファレベルの電力消費最適化回路、方法、及び記録媒体 | |
US6058252A (en) | System and method for generating effective layout constraints for a circuit design or the like | |
US6038386A (en) | Method for controlling power and slew in a programmable logic device | |
CN102160054B (zh) | 用于设计使用自适应电压和调节优化的集成电路的系统和方法 | |
US7107557B2 (en) | Method for calculation of cell delay time and method for layout optimization of semiconductor integrated circuit | |
US9792398B2 (en) | Flip-flop clustering for integrated circuit design | |
JPH09212533A (ja) | 論理回路の最適化装置及びその方法 | |
US7207024B2 (en) | Automatic insertion of clocked elements into an electronic design to improve system performance | |
US20060044932A1 (en) | Method for routing data paths in a semiconductor chip with a plurality of layers | |
Lin et al. | Power reduction by gate sizing with path-oriented slack calculation | |
CN104699867A (zh) | Fpga芯片的局部布局的优化方法 | |
US6460166B1 (en) | System and method for restructuring of logic circuitry | |
JP3178371B2 (ja) | 半導体集積回路の設計方法 | |
JP3804901B2 (ja) | 回路素子を配置する配置装置および方法 | |
JP2003308350A (ja) | 電力消費および速度に対して高性能cmos集積回路設計を最適化する方法 | |
US7178116B2 (en) | Method and device for designing semiconductor integrated circuit and logic design program | |
US6282695B1 (en) | System and method for restructuring of logic circuitry | |
JPH09223744A (ja) | Vlsiチップへの回路の配置方法 | |
Song et al. | Buffer Reduction for Congestion Control during Timing Optimization | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
Marquardt | Cluster-based architecture, timing-driven packing and timing-driven placement for FPGAs. | |
US6701496B1 (en) | Synthesis with automated placement information feedback | |
JP5883633B2 (ja) | レイアウト装置及びレイアウト方法 | |
Karna et al. | Impact on the Performance of North Bridge I/O Peripheral Component Interconnect Express Block in Physical Design Flow Considering Two Different Synthesis Corners at below 10nm Technology Node |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051025 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060124 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060223 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060410 |
|
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: 20060502 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060508 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090519 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100519 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100519 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110519 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120519 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130519 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140519 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |