JPH05298394A - 自動配置方法 - Google Patents

自動配置方法

Info

Publication number
JPH05298394A
JPH05298394A JP4104277A JP10427792A JPH05298394A JP H05298394 A JPH05298394 A JP H05298394A JP 4104277 A JP4104277 A JP 4104277A JP 10427792 A JP10427792 A JP 10427792A JP H05298394 A JPH05298394 A JP H05298394A
Authority
JP
Japan
Prior art keywords
cell
division
length
processing
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.)
Pending
Application number
JP4104277A
Other languages
English (en)
Inventor
Koichi Arakawa
浩一 荒川
Yasushi Ogawa
泰 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4104277A priority Critical patent/JPH05298394A/ja
Publication of JPH05298394A publication Critical patent/JPH05298394A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K3/00Apparatus or processes for manufacturing printed circuits
    • H05K3/0005Apparatus or processes for manufacturing printed circuits for designing circuits by computer

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 【目的】 分割処理を繰り返して配置を行なう自動配置
方法において、分割処理で評価関数となる結線長の評価
を精度良く行なうことによって、推定総結線長の小さい
配置結果を得る。 【構成】 分割処理は、初期分割処理101、ゲイン初
期化処理102、分割改善処理103、分割結果の書き
込み104からなる。分割状態の評価値は、結線の端点
を含む最小包括矩形の半周長を端点数で補正した結線の
推定値の総和とする。102、及び103のセルの移動
とゲインの更新処理109において、セルを移動した時
の結線長の変化を、セルの分布の分類を行なうことで高
速に求める。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、印刷配線板やLSIチ
ップ等のレイアウト設計を行なうために用いる自動配置
方法に関する。
【0002】
【従来の技術】分割処理を繰り返して配置を得ること
は、広く行なわれている。その一例としてアイ・イー・
イー・イー、第23回デザイン・オートメーション・コ
ンファレンスの予稿集(1986年)第404頁から第
410頁(IEEE Proceedings ofthe 23rd Design Autom
ation conference(1986), pp. 404-410)には、配置対
象領域の2分割処理をx方向とy方向に交互に繰り返し
てチップ上のセルの位置を決定する方法が述べられてい
る。この2分割処理では、セル間のネットの結合度に基
づいてセルのクラスタリングを行なって、分割の初期状
態を作った後、カーニハン・リンの分割改善アルゴリズ
ムを用いて、配置対象領域を2分割する直線(カットラ
イン)を横切るネットの数、すなわちカット数を最小に
するように分割処理を行なっている(ミニカット法)。
【0003】また、1度の分割処理において分割数を多
くした場合に2分割を繰り返すよりも良い結果が得られ
ることが、アイ・イー・イー・イー、トランザクション
ズ・オン・コンピューターズ、ボリューム38(198
9年)第62頁から第81頁(IEEE Transactions on C
omputers, Vol. 38(1989), pp. 62-81)に報告されてい
る。
【0004】
【発明が解決しようとする課題】自動配置において分割
処理を行なう場合には、ネットの推定長の総和を分割の
評価関数とし、これを最小にする目的関数を採ることが
多い。これは、ネットの推定長の総和が小さいほど、配
置処理後の、ネットの経路を求める配線処理で良い結果
が得られる傾向があることや、回路の遅延時間を考慮し
た場合にも有利になるからである。従来の自動配置で
は、分割処理の都合上、評価関数をカット数の和として
扱っていた。しかしながら、カット数でネット長の推定
を行なった場合には誤差が大きく、特に分割処理を行な
う領域(分割対象領域)外のセルの影響を正確に評価す
ることが難しかった。
【0005】また、一般に分割処理では、セルを分割対
象領域中の他の部分領域に移動させた場合の評価関数の
差(変化値)が、複数のセルで同じ値をとると、どのセ
ルを移動させるべきかという判断がつかず、結果的に得
られる分割状態も悪くなる傾向がある。セルは、一般に
複数のネットによって、他のセルと結合しているため、
単純にカット数を評価しただけでは評価が粗過ぎ、複数
のセルの評価関数の変化値が同じ値を取ることが多かっ
た。しかし、さらに良い分割結果を得るためにネット長
の推定をカット本数よりも精度の良い手法で行なうと、
処理時間が非常に多くかかるという問題点があった。
【0006】本発明の目的は、自動配置における分割処
理において、ネットの推定値の精度をカット本数よりも
向上させると同時に、高速に分割処理を行なえる手法を
提供することにある。
【0007】
【課題を解決するための手段】上記目的の達成のため、
分割処理におけるネット長の推定値としてネットの端点
であるピンを含む最小包括矩形の半周長をピン数によっ
て補正した値を用い、この総和を分割の評価関数とす
る。また、ネットで結合されるセルの部分領域内の分布
状態を分類し、この分類ごとに、分割処理に先だってセ
ルを部分領域間で移動させた場合のネット長の変化値を
計算する。分割処理では、ネットに結合するセルの分布
状態の分類を行なうことにより、セルを移動させた場合
の該ネット長の変化値を得る。さらに、分割処理におけ
る分割数を、2以上にとる。
【0008】
【作用】ネットの最小包括矩形の半周長をピン数によっ
て補正した値をネット長の推定値として用いることによ
り、従来手法のカット本数よりも推定の精度が向上し、
分割対象領域外のピンの影響も正確に評価できる。更
に、この推定方法により分割状態の評価がきめ細かく行
なえるため、複数のセルの評価関数の変化値が同じ値を
取ることが少なくなる。これによって、分割処理の性能
が向上し、配置後の総結線長が従来のミニカット法によ
る結果よりも短い結果を得ることができる。また、一度
の分割処理における分割数を2よりも多くする場合に
は、従来手法で述べたように、さらに総結線長の短い結
果が得られる。また、ネットで結合されるセルの部分領
域内の分布状態を分類し、分割処理に先だって、セルを
部分領域間で移動させた場合のネット長の変化値を計算
しておくことにより、分割処理時には、ネットに結合す
るセルの分布の分類処理を行なうだけで高速にネット長
の変化値を得ることができる。これによってネット長の
推定精度を上げても分割処理を高速に行なうことができ
る。
【0009】
【実施例】以下本発明の一実施例を、配置すべき領域を
LSIのチップとし、配置する部品をセルとし、4分割
処理を繰り返して配置を行なう場合について説明する。
図1に、本発明の自動配置方法で用いる分割処理の手順
の一例を示す。図2は、自動配置方法全体の処理手順と
入力及び出力データを示す。図3は、自動配置方法を実
施するために必要なデータ構造を示すものである。
【0010】始めに図4を用いて、分割処理による配置
方法について説明する。401は、LSIチップの摸式
図である。402はLSIチップの入出力バッファであ
り、LSIチップの外部とのインターフェースである外
部ピンは、このバッファに接続される。403は、この
バッファと内部の論理回路とを結ぶための入出力ピンで
ある。404が与えられた論理回路を配置する配置可能
領域である。配置する部品はセル405と呼ばれ、図に
示すようにその周辺又は内部に入出力端子(ピン)40
6がある。各ピンには、そのピンと同電位であるべき
(同じセル又は他のセルの)ピンが与えられており、こ
れらを結線しなければならない。この論理的な結線40
7のことをネットと呼ぶ。本発明では、各セルの404
内での位置を決定するのが目的であり、ネットのチップ
上での経路が決定される前の段階(配線処理前)で処理
を行なう。従って、ネットの長さは推定によって求めな
ければならない。以下説明の都合上、一つのネットに着
目した時、そのネットのピンを持つセルのことを該ネッ
トに属すセルと呼ぶ。配置を行なうために、まず配置対
象領域を幾つかの部分領域に分割する。408に配置対
象領域409の4分割を行なった例を示す。410〜4
13が分割によってできた部分領域であり、414〜4
15が部分領域の境界となるカットラインである。分割
対象領域内の各セル416をセルとネットの関係に基づ
いてどの部分領域に置くかを決定するのが分割処理であ
る。分割処理を行なった後、各部分領域410〜413
を今度は新たに配置対象領域として、その領域内にあっ
たセルについてさらに分割処理を行なう。これを示して
いるのが417である。この処理を分割領域内にセルが
1個しかなくなるまで繰り返して、最終的なチップ上の
セル位置を決定する。
【0011】次に図2を用いて本発明の自動配置方法全
体の処理の流れを説明する。配置処理205は、データ
の読み込み206において、セルのピンとネットの接続
関係を記述した論理ファイル201、各セルについてそ
の形状やピンのセル上での座標を記述したセル情報ライ
ブラリ202、配置対象となるLSIチップの形状、配
置可能領域やセルの種類等を記述したチップ下地情報ラ
イブラリ203を図3に示す処理テーブルに読み込む。
また、論理情報に基づくだけでなく回路の遅延時間を考
慮して配置処理を行なう場合には、各セルに組み込まれ
た回路の特性を記述したディレイ情報ライブラリ204
をさらに読み込む。続いて配置終了条件を満たすまで
(207)、分割対象領域の選択209と選択した領域
の分割処理210を行ない、各セルのチップ内での位置
を決定した後、配置結果出力ファイル211にセルのチ
ップ上の位置情報を出力する。
【0012】図3は、配置処理を行なう上で必要となる
データ構造を表したものである。ここではテーブル形式
でデータ構造を表現しており、セルテーブル301、ネ
ットテーブル302、ネットリストテーブル303、セ
ルリストテーブル304、ピンリストテーブル305か
らなっている。セルテーブル301の各フィールドは、
次の様に構成する。306には、セル名を記録する。3
07、308には、分割対象領域内でセルがどの部分領
域にあるかを示し、X方向とY方向にそれぞれ0か1の
値を入れる。部分領域410〜413に対しては、
(X,Y)の値をそれぞれ(0,0)、(0,1)、
(1,0)、(1,1)とする。309、310にはそ
れまでの分割処理の結果求まったチップ上でのセルの座
標を書く。311〜314には、セルを動かした場合の
推定総結線長の変化値すなわちゲインを移動先の部分領
域毎に記録する。セルのピンに接続するネットのリスト
をネットリストテーブル303上に構成し、その最初の
エントリをネットリストへのポインタ315として記録
する。316、317には、セル形状情報としてセル原
点から見たセルの左下隅の座標(セルのX及びY座標の
最小値)と、右上隅の座標(セルのX及びY座標の最大
値)を記録する。ネットテーブル302の各フィールド
は次のようになる。318にはネット名を記録する。3
19〜322には、ネットに属すセルを移動させた時の
ゲインの計算に用いる基本ゲインを格納する。各部分領
域毎に、その部分領域にあるセルのリストをセルリスト
テーブル304上に構成し、その最初のエントリをリス
トへのポインタとして、323〜326に記録する。3
27〜330には、各部分領域内の該ネットに属すセル
の個数をセル分布として記録する。これらの値は、それ
ぞれ323〜326のポインタからセルリストテーブル
304を順次辿っていった時のリストの要素の個数に等
しくなる。331には、ネットのピンについてピンリス
トテーブル305上にリストを構成し、その最初のエン
トリをピンリストへのポインタとして記録する。ネット
リストテーブル303は、次のリストの要素のエントリ
を指すためのネクストポインタ332と、ネットテーブ
ル302のエントリを記録するネットへのポインタ33
3の2つのフィールドから成る。セルリストリストテー
ブル304は、次のリストの要素のエントリを指すため
のネクストポインタ334と、セルテーブル301のエ
ントリを記録するセルへのポインタ335の2つのフィ
ールドがある。ピンリストテーブル305の各フィール
ドは、次のように構成される。336には次のリストの
要素のエントリを指すためのネクストポインタを格納す
る。337にはピン名(ピン番号)を記録する。338
には、そのピンが属しているセルのセルテーブル301
のエントリをセルへのポインタをとして記録する。33
9にはセル原点からの相対ピン座標を格納する。
【0013】図2のデータの読み込み206では、セル
テーブル301について、セル名306、ネットリスト
へのポインタ315、セル形状316〜317を設定す
る。ネットテーブル302については、ネット名31
8、ピンリストへのポインタ331を設定する。ネット
リストテーブル303については、ネクストポインタ3
32、ネットへのポインタ333を設定し、ネットリス
トへのポインタ315から始まるリスト構造を作る。ピ
ンリストテーブル305に関しては、ネクストポインタ
336、ピン名337、セルへのポインタ338、ピン
座標339を設定し、ピンリストへのポインタ331か
ら始まるリスト構造を作る。
【0014】配置結果出力208では、セルテーブル3
01中のセル名306とチップ上の配置位置309、3
10を配置結果ファイル211に出力する。
【0015】次に図5を用いて分割対象領域の選択20
9について説明する。この図では、501、516のよ
うに破線のカットラインで4分割された実線の矩形が分
割対象領域を表す。まず始めに、分割対象領域501と
して、チップの配置可能領域404全体を取り、分割処
理210を行なう。その後、次の階層の処理として、5
01での部分領域512〜515を分割対象領域として
選択し、順次分割処理を行なって行く。この過程を示し
たのが502〜505である。実線は既に分割が終了し
ているカットラインを表す。ここで、例えば最初の50
2の分割処理に着目すると、501の分割処理では51
3〜515の部分領域に置かれたセルについては、各部
分領域の中心にあるとして総結線長の推定を行ない、そ
れに基づいて512の分割処理を行なうため、503〜
505までの分割処理が終った後で見ると512の分割
処理は必ずしも総結線長の短い結果を与えているとは限
らない。すなわち、512〜515の部分領域の分割処
理を行なう順序によって分割処理後の総結線長が異な
る。この順序依存性を少なくし、かつできるだけ総結線
長の短い結果を得るために、502〜505の過程の後
で再び512〜514の分割処理を繰り返すことが考え
られる。この場合には、例えば再び512の分割を行な
う場合には、既に513〜515の領域も4分割されて
いる状態で結線長の推定を行なうため、分割対象領域を
選択する順序による総結線長の変化は少なくなり、また
総結線長の短い分割結果が安定して得られる。しかし、
この様に分割処理を単純に繰り返すよりも更に総結線長
の短い結果が得られるのが、506〜510に示すよう
な、必ずしも上位の階層501で分割した結果を遵守せ
ずに、分割対象領域を選択する方法である。上位の階層
501での分割境界をまたがった分割対象領域を選択し
た方が良い結果が得れれる理由は、分割処理を実用的な
時間内で行なうためには、発見的手法を使って処理しな
ければならず、必ずしも結果が最適になるとは限らない
からである。従って、分割対象領域の選択方法として、
511に示すように、まず上位の階層の分割処理の部分
領域(記号518で示される格子点を含む領域)を新た
に分割対象領域として選択し、分割処理を行なった後、
残った格子点(記号519で示される格子点)を含む領
域を分割対象領域として選択して分割処理を行なうこと
により、分割処理の順序に依存しにくく、総結線長の短
い分割結果を得ることができる。
【0016】ここで、結線長の評価方法について図6を
使って説明する。601〜604はセルを、605〜6
09は、セルの周上又はセル内にあるピンを表す。60
5〜609が1つのネットで結線される場合を考える。
分割処理ではセルの配置状態をネットの長さの総和で評
価するが、配置の段階ではこのネットの経路はまだ決定
されておらず、従って正確なネット長を知ることができ
ない。そこで、このネット長を推定しなければならな
い。従来、ネット長の評価として用いられてきたものに
ピンの最小包括矩形611(バウンディングボックス)
の半周長がある。これは、ピンをその内部及び周上に含
む最小の長方形を求め、その縦方向の長さ613と横方
向の長さ614の和をネット長の推定値とする方法であ
る。しかし、これは実際のネット長の下限を与えるに過
ぎず、特に多ピンのネットの場合に誤差が大きくなる。
また、別の方法として、最小包括矩形611の縦又は横
の長い方の辺に沿ってピンの重心位置を通して一本の幹
線を引き、各ピンからこの幹線に向かって垂直に支線を
引き、幹線と支線の長さの和を推定値とする方法である
(610)。この方法では、最小包括矩形の半周長を推
定値とするよりも誤差は小さくなるが、配線長を計算す
るのに時間がかかるという欠点を持つ。そこで本発明で
は、ネットワークス、ボリューム9(1979年)、第
19頁から第36頁(Networks, Vol.9(1979), pp.19-3
6)に掲載されている、最小スタイナー木と最小包括矩
形の長さの比の最大値ρを使って、配線長を推定する。
この長さの比ρは、以下のように定義される。
【0017】
【数1】
【0018】すなわち、
【0019】
【数2】
【0020】である。ここでは、最小スタイナー木長の
下限と上限の中間値をネットの推定長とする。表1にピ
ン数nが2から10までの時のρ及び推定係数を挙げ
る。最小包括矩形の半周長に推定係数を掛けた値がネッ
トの推定値である。
【0021】
【表1】
【0022】ピン数nが多い時にはρの値は漸近的に
【0023】
【数3】
【0024】の様になるので、推定係数として、nが1
0よりも大きい時には、
【0025】
【数4】
【0026】とする。
【0027】続いて分割処理210について図1を使っ
て説明する。初期分割処理101では、セルテーブル3
01の全てのセルについて、それまでに求まっている配
置位置309、310から、分割対象領域内に入ってい
るかどうかを判断し、領域内にあるセルについて410
〜413の部分領域の領域に分けて配置する。但し、デ
ータの読み込み206の後の第1回目の分割処理では、
309、310には、値が入っていないので全てのセル
について処理を行なう。この初期分割処理101は、単
に分割改善処理103の種となる状態を作るためのもの
なので、例えばセルテーブル301に現れる順に408
から411まで1つづつ置くことを繰り返せば良い。セ
ルを置いた位置に対応して分割領域内の位置307、3
08に0または1を設定する。
【0028】ゲイン初期化処理102では、まず、変数
の初期化処理105において、分割領域内のセルについ
てセルテーブル301のゲイン311〜314に0を設
定する。続いて、全てのネットについて(106)、ネ
ットの基本ゲインを求める手続き(110)、ネットに
属すセルの分布の分類手続き(111)、セルと移動先
毎のゲイン計算手続き(112)、計算値をセルのゲイ
ン変数に加える手続き(112)を順次行なう。
【0029】まず、ネットの基本ゲインについて図7を
使って説明する。図で、701はチップの配置可能領域
404を表し、702が現在の分割対象領域である。7
03〜706は、分割対象領域702の部分領域であ
る。707〜711は、現在対象とするネットで結ばれ
るピンがあるセルを表しており、このうち707〜70
9が分割対象領域内に、710〜711は分割対象領域
外にある。ここでは単にセル位置によって、分割対象領
域外のピンを選んでいるが、それ以外にセルが設計者に
より始めから固定指示されている場合や、入出力ピンの
内、位置が固定されている場合には、たとえ分割対象領
域内にピンがあっても、分割対象領域外のピンとして扱
わなければならない。分割対象領域内の最小包括矩形7
12について説明する。分割対象領域内のピン位置は全
て、セルの中心位置にあるとし、更にセルは各部分領域
の中心にあるとして扱う。その結果最小包括矩形712
の変化の単位は、x方向が715、y方向が716とな
る。例えば、図7の状態で、セル707が部分領域70
4から705に移動すると最小包括矩形はx軸の増加方
向に715の大きさだけ縮み、y軸の減少方向に716
の大きさだけ縮む。分割領域内の最小包括矩形712が
変化した時にネット全体の最小包括矩形714の変化す
る値を基本ゲインと呼ぶ。分割対象領域外にピンがない
場合には、基本ゲインは702の変化する量と同じであ
り、従って、この値は各部分領域の中心座標の差で、座
標の増加方向に最小包括矩形が縮んだ場合と座標の減少
方向に縮んだ場合の基本ゲインは相等しくなる。しか
し、分割対象領域外にピンがある場合には、ネットに属
すピン全体としての最小包括矩形714の変化を考えな
ければならない。この分割対象領域外ピンの影響により
基本ゲインの値は変更を受ける。これについて説明す
る。まず、分割対象領域外のピンの作る最小包括矩形7
13を求める。2つの最小包括矩形712と713の位
置関係によって、基本ゲインの値が決まる。図7では、
x方向に関しては、セル707が部分領域706に移動
する場合の様に最小包括矩形712が座標の増加方向に
縮む場合にはネット全体としての最小包括矩形714は
変化せず、基本ゲインは0になる。逆に712が座標の
減少方向に縮む場合には714も座標の減少方向に同じ
長さだけ縮むので、基本ゲインの値は716の大きさと
なる。y方向に関しては、セル707が703に移動す
る場合のように、712が座標の減少方向に縮む場合に
は分割領域外の最小包括矩形713のために、基本ゲイ
ンは717の大きさになる。また、712が座標の増加
方向に縮む場合には714は変化しないため、基本ゲイ
ンは0になる。
【0030】110では、まずネットテーブル302の
323〜330をクリアする。続いて、ピンリストへの
ポインタ331からピンリストテーブル305上のリス
トを順に辿って、セルへのポインタ338からピンが属
すセルについて配置位置309〜310を見て、セルが
分割対象領域内にあった場合には、323〜326から
始まるリストの内、セルの分割対象領域内の位置30
7、308に応じて決まるリストに、このセルのリスト
の要素をセルリストテーブル304上で追加する。ま
た、その時にセル分布327〜330の内の対応するフ
ィールドも1だけ増加させる。次にネットの基本ゲイン
を求め、x座標及びy座標、座標の増加方向に最小包括
矩形が縮む場合及び減少方向に縮む場合、それぞれにつ
いてネットテーブル302の基本ゲインのフィールド3
19〜322に、最小包括矩形の変化値に以前に述べた
ピン数によるネット長の推定係数を掛けた値を書き込
む。
【0031】次に分割対象領域内の最小包括矩形の変化
について、図7及び図8を使って説明する。分割対象領
域外のピンの影響については基本ゲインを計算すること
で全て取り込めるので、分割対象領域内のセルを移動さ
せることによるネット長の変化値すなわちゲインは、分
割対象領域内の最小包括矩形712が、どう変化するか
を調べれば良い。例えば、図7の状態でセル707を部
分領域704から、703、705、706へと動かす
と、それぞれ322の値、319の値と322の値の
和、319の値と、ネット長は変化する。しかし、セル
708を動かした場合には同じ部分領域705内にセル
709があるために、712の大きさは変わらず、従っ
てネット長も変化しない。このように、分割対象領域7
02内のセルの分布状態によって一つのセルを動かした
時に最小包括矩形712がどう変化するかが決まる。従
って、分布状態をあらかじめ分類して、各分類毎に最小
包括矩形の変化の様子を求めておくことにより、セルの
分類を行なうだけで各セルを動かした時の最小包括矩形
の変化を高速に得ることができる。この分類を示したの
が図8である。814は部分領域内の1個のセルを表
し、815は1個以上のセルを表す。また、816は部
分領域内にセルがないことを表す。801〜813が分
類の結果である。例えば、801〜803の状態では、
どのセルがどの部分領域に移動してもゲインは0であ
る。804〜807では、部分領域の内、セルが1個だ
けしかない場合には、そのセルは移動先ごとに異なった
ゲインを持つが、その他のセルはどの部分領域に移動し
てもゲインは0となる。808〜813は、全てのセル
が移動先毎にそれぞれ異なったゲインをもつ。
【0032】ネットに属すセルの分布の分類111で
は、セルの分布が801〜813のどの状態にあるかを
調べ、セルと移動先毎のゲイン計算112では、分割領
域内の全てのセルについて、分類した結果に基づいて移
動先毎のゲインを求める。
【0033】次に、113では112で得たセル及び移
動先毎のゲインをセルテーブル301のゲインフィール
ド311〜314に加える。
【0034】ここまでで、ゲイン初期化処理102を終
る。この段階で、セルテーブル301の各セルのゲイン
フィールド311〜314には、そのセルを各部分領域
に移動させた場合の推定総結線長の変化値が入っている
ことになる。
【0035】次に101で求めた初期分割結果の推定総
結線長を改善する分割改善処理103を行なう。これ
は、終了条件を満たすまで(107)、セルと移動先の
選択処理108とセルの移動とゲインの更新処理109
を行なう。107と108は改善処理に用いるアルゴリ
ズムによって変わる。一例として、配置処理で良く用い
られるカーニハン・リン(Kernighan & Lin)の分割改
善アルゴリズムについて説明する。まず、その時点での
最もゲインの大きいセルと移動先を選び、それに従って
セルの移動とゲインの更新処理109を行ない、そのセ
ルを固定し、ゲインをスコアに加える。この過程を全て
のセルを固定するまで繰り返す。この繰り返しの過程を
パスと呼ぶ。パスの中で最も大きいスコアを取った状態
を採用し、その状態からもう一度パスの処理を行なう。
これを繰り返し、最大スコアが0又は負の値になった時
に分割改善処理を終了するアルゴリズムである。このカ
ーニハン・リンのアルゴリズムは確率を用いない改善処
理であるが、その他にもSA法などの確率を使ったアル
ゴリズムを用いても良い。
【0036】次にセルの移動とゲインの更新処理109
について説明する。これは、108で選択したセルを実
際にその移動先に移動させる処理である。この移動によ
って、そのセルに属すネットについてはセルの分布状態
が変化することになるため、ゲインの更新処理が必要に
なる。そのため、まず、移動するセルに属すネットにつ
いて(114)、ネットに属すセルの分布の分類111
と、セルと移動先毎のゲイン計算112を行ない、今度
はその結果を各セルのゲインフィールド311〜314
から差し引く(117)。セルの分布の分類111に関
しては、ネットテーブル302に分類結果を書き込むフ
ィールドを用意しておけば、ここでは再度分類処理を行
なわなくてもよい。その後、セルの移動処理115で
は、移動するセルについてセルテーブル301の分割対
象領域内の位置307〜308を移動先の値に変更し、
ネットリストへのポインタ315からネットリストテー
ブル303上のリストを順に辿って、各ネットに対し
て、323〜326から始まるリストで、移動するセル
に対応するリストの要素を、移動前のセル位置のリスト
から移動語のセル位置のリストへつなぎ直す。また、セ
ル分布327〜330についても移動前の位置のセル数
を1だけ減らし、移動後の位置のセル数を1だけ増や
す。ここまでで、セルの移動処理115は終り、もう一
度移動したセルに属すネットについて(116)、ネッ
トに属すセルの分布の分類111とセルと移動先毎のゲ
イン計算112を行ない、計算値をセルのゲイン変数に
加える(113)。これで、セルを移動させたことによ
るゲインの更新処理が終了する。
【0037】最後に、分割結果の書き込み104におい
て、分割改善処理103で得られた各セルの分割領域内
の位置307、308に応じて、その部分領域の中心座
標を配置位置309、310に書き込む。また、各ネッ
トについて、323〜326のセルリストを解放し、基
本ゲイン319〜322、セル分布327〜330をク
リアする。
【0038】以上で、結線長の総和を最小にすることを
目的関数とした分割処理を用いた自動配置方法について
の説明を終る。
【0039】目的関数は結線長の総和の最小化に限る必
要はなく、高速LSI等で回路の遅延時間を考慮した配
置を行なう場合には、分割処理の前にパスディレイ計算
を行ない、各ネットにパスディレイ値と該パスの基準値
との差に応じた重みを与え、基本ゲイン319〜322
に、この重みを掛けた値を格納して、分割処理を行なう
ことにより、結線長の総和を小さくすると共に、パスデ
ィレイ値の基準値からの違反を少なくすることを目的関
数として配置を行なうことができる。また、本自動配置
方法では、分割処理において各ネットの推定結線長を最
小包括矩形714から常に求めることが可能である。こ
の結線長から負荷容量及び抵抗値を求め、それぞれのネ
ットのソースとなるゲートの駆動能力を考慮して、その
ネットによる遅延時間を計算し、ネットに属すセルが他
の部分領域に移動した時の、該遅延時間の差を求め、こ
れにパスディレイ値と基準値との差による重みを掛けた
値を基本ゲイン319〜322に格納することによっ
て、結線長ではなく、重み付けられたディレイ値の総和
の最小化を目的関数とする配置を行なうことができる。
【0040】
【発明の効果】以上説明したように、本発明によれば、
セル間の結線長を従来のミニカット法で用いるカット数
よりも精度よく推定することができ、特にカット数では
困難であった分割対象領域外のピンの影響を正確に取り
入れることができる。これによって分割処理の性能が向
上する。また、ネットに属すセルの各部分領域での分布
を分類するだけで、セルのゲインを計算できるので、高
速な分割処理が可能になる。更に、パスディレイ値の基
準値に対する余裕度で各ネット長に重み付けした値を評
価関数として、分割処理を行なうことにより、パスディ
レイ制約違反の少ない配置結果を得ることができる。ま
た、本発明では分割処理において、ネット長の差だけで
なくネット長自身も評価できるため、この値をセルの回
路定数を用いてディレイ値を計算でき、直接このディレ
イ値または、これにパスの余裕度の重みを付けた値の総
和を最小にする目的関数を採ることができる。このた
め、パスディレイの制約違反を更に減らすことが可能で
ある。
【図面の簡単な説明】
【図1】本発明の自動配置手法で用いる分割処理の手順
を示すためのPAD図である。
【図2】自動配置手法の入力及び出力情報、および手法
全体の処理の手順を示す図である。
【図3】自動配置を行なうためのデータ構造を表すテー
ブルの図である。
【図4】配置の対象となるLSIチップと、セル及びネ
ットの関係を示す。
【図5】配置対象領域の選択方法と、階層的な分割処理
について説明する図である。
【図6】ネットの長さの推定方法について説明する図で
ある。
【図7】分割対象領域内のセルの最小包括矩形、対象領
域外のセルの最小包括矩形、及びネット全体の最小包括
矩形の間の関係について説明する図である。
【図8】各部分領域のセル数の分布の分類を表す図であ
る。
【符号の説明】
101〜117…分割処理の手順を示すためのPAD
図、201〜204…自動配置の入力情報、205〜2
10…自動配置の処理手順を示すためのPAD図、21
1…配置結果情報、301…セルテーブル、302…ネ
ットテーブル、303…ネットリストテーブル、304
…セルリストテーブル、305…ピンリストテーブル、
306〜339…各テーブルのフィールド、401…L
SIチップ、402…外部入出力バッファ、403…入
出力ピン、404…配置可能領域、405…セル、40
6…ピン、407…ネット、408…4分割例、409
…配置対象領域、410〜413…部分領域、414〜
415…カットライン、416…セル、417…次の階
層の4分割例、501…分割対象領域、502〜510
…分割対象領域の選択状態、511…分割完了状態、5
12〜515…部分領域、516…分割対象領域、51
8…最初に分割の対象とする領域の中心点、519…5
18の後に分割の対象とする領域の中心点、601〜6
04…セル、605〜609…ピン、610…1幹線モ
デル、611…最小包括矩形、613〜614…613
の縦及び横の長さ、701…配置可能領域、702…配
置対象領域、703〜706…部分領域、707〜71
1…セル、712…702内セルの最小包括矩形、71
3…702外のセルの最小包括矩形、714…ネット全
体の最小包括矩形、715〜716…部分領域の中心座
標のx方向及びy方向の差、717…714の変化量、
801〜813…部分領域のセル数分布の分類、814
…1個のセル、815…1個以上のセル、816…0個
のセル。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】配置対象領域を2つ以上の部分領域に分割
    し、配置する部品をどの部分領域に置くかを決定する処
    理(分割処理)を繰り返すことによって配置を行なう自
    動配置方法において、部品間の結線の長さを、結線の端
    点を含む最小包括矩形の半周長と端点数とを基に推定
    し、前記結線長の総和を最小にすることを目的関数とし
    て分割処理を行なうことを特徴とする自動配置方法。
  2. 【請求項2】請求項1記載の自動配置方法の分割処理に
    おいて、一つの結線で接続される部品の分割の状態(各
    部分領域ごとの部品の数)を分類し、あらかじめ分類毎
    に求めておいた部分領域間の部品の移動による結線の推
    定長の変化値を得、次にこの値を部品に接続する結線全
    てについて加えることにより、部品を部分領域間で移動
    させた時の推定総結線長の変化値を求め、この値を基に
    改善処理を行なうことを特徴とする自動配置方法。
  3. 【請求項3】請求項1記載の自動配置方法において、特
    に電子部品の配置を行なう際に、分割処理に先だってパ
    スディレイ計算を行ない、各結線にパスディレイの基準
    値に対する余裕度を与え、推定結線長に前記余裕度に応
    じた重みを付けた値の総和を最小にすることを目的関数
    として分割処理を行なうことを特徴とする自動配置方
    法。
  4. 【請求項4】請求項3記載の自動配置方法において、結
    線の推定長から部品となるセル内のゲートの負荷容量及
    び結線の抵抗値を計算し、これらの値を基に前記ゲート
    の駆動能力を考慮して前記ゲート一段当たりのディレイ
    値を求め、このディレイ値を結線のパスディレイの基準
    値に対する余裕度によって重み付けした値の総和を最小
    にすることを目的関数として分割処理を行なうことを特
    徴とする自動配置方法。
JP4104277A 1992-04-23 1992-04-23 自動配置方法 Pending JPH05298394A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4104277A JPH05298394A (ja) 1992-04-23 1992-04-23 自動配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4104277A JPH05298394A (ja) 1992-04-23 1992-04-23 自動配置方法

Publications (1)

Publication Number Publication Date
JPH05298394A true JPH05298394A (ja) 1993-11-12

Family

ID=14376437

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4104277A Pending JPH05298394A (ja) 1992-04-23 1992-04-23 自動配置方法

Country Status (1)

Country Link
JP (1) JPH05298394A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017520786A (ja) * 2014-06-25 2017-07-27 インテル・コーポレーション 機能セルのコンパクトアレイを形成するための技術
CN107220445A (zh) * 2017-06-02 2017-09-29 济南浪潮高新科技投资发展有限公司 一种自动检查超长net的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017520786A (ja) * 2014-06-25 2017-07-27 インテル・コーポレーション 機能セルのコンパクトアレイを形成するための技術
US10217732B2 (en) 2014-06-25 2019-02-26 Intel Corporation Techniques for forming a compacted array of functional cells
CN107220445A (zh) * 2017-06-02 2017-09-29 济南浪潮高新科技投资发展有限公司 一种自动检查超长net的方法

Similar Documents

Publication Publication Date Title
KR100281977B1 (ko) 집적 회로 설계 방법, 집적 회로 설계용 데이터베이스 장치 및집적 회로 설계 지원 장치
US6505328B1 (en) Method for storing multiple levels of design data in a common database
US6738960B2 (en) Method and apparatus for producing sub-optimal routes for a net by generating fake configurations
US6516456B1 (en) Method and apparatus for selectively viewing nets within a database editor tool
US7155697B2 (en) Routing method and apparatus
US6687893B2 (en) Method and apparatus for pre-computing routes for multiple wiring models
US6845494B2 (en) Method for generating design constraints for modules in a hierarchical integrated circuit design system
US6618849B2 (en) Method and apparatus for identifying routes for nets
US6536023B1 (en) Method and system for hierarchical metal-end, enclosure and exposure checking
US7073150B2 (en) Hierarchical routing method and apparatus that use diagonal routes
US20020147958A1 (en) Method and apparatus for adaptively selecting the wiring model for a design region
US20030066042A1 (en) Routing method and apparatus
US20030063614A1 (en) Method and apparatus for storing routes for groups of related net configurations
US20110154279A1 (en) Decision modules
CN1529864B (zh) 在布局中考虑到斜布线的方法和装置
US20030064559A1 (en) Method and apparatus for generating routes for groups of related node configurations
US6564361B1 (en) Method and apparatus for timing driven resynthesis
US6543032B1 (en) Method and apparatus for local resynthesis of logic trees with multiple cost functions
US20020124230A1 (en) Timing optimization for integrated circuit design
US6601226B1 (en) Tightloop method of timing driven placement
US20230274068A1 (en) Performing non-preferred direction detailed routing followed by preferred direction global and detailed routing
US6637011B1 (en) Method and apparatus for quick search for identities applicable to specified formula
JPH05298394A (ja) 自動配置方法
US6931610B1 (en) Method for rapid estimation of wire delays and capacitances based on placement of cells
US6665851B1 (en) Quick placement of electronic circuits using orthogonal one dimensional placements