JP3953740B2 - Arrangement method, arrangement program, and recording medium - Google Patents

Arrangement method, arrangement program, and recording medium Download PDF

Info

Publication number
JP3953740B2
JP3953740B2 JP2001051560A JP2001051560A JP3953740B2 JP 3953740 B2 JP3953740 B2 JP 3953740B2 JP 2001051560 A JP2001051560 A JP 2001051560A JP 2001051560 A JP2001051560 A JP 2001051560A JP 3953740 B2 JP3953740 B2 JP 3953740B2
Authority
JP
Japan
Prior art keywords
blocks
block
arrangement
area
movement amount
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
Application number
JP2001051560A
Other languages
Japanese (ja)
Other versions
JP2002252283A (en
Inventor
敏彦 横丸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001051560A priority Critical patent/JP3953740B2/en
Publication of JP2002252283A publication Critical patent/JP2002252283A/en
Application granted granted Critical
Publication of JP3953740B2 publication Critical patent/JP3953740B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、配置領域内にブロックを配置する配置方法、配置プログラムおよび記録媒体に関するものである。
【0002】
【従来の技術】
最近の製造技術の進歩により、LSIの集積度の向上や回路の大規模化が著しく、LSI設計をフラットに行うことが困難になってきている。この問題を解決する回路設計法の1つとして、階層化設計によるレイアウトがある。階層化設計には、まず回路をブロックと呼ばれる部分回路に分割し、次に、フロアプランと呼ばれる、ブロックの配置と形状の決定を行い、最後にブロックごとにレイアウトを行う、という設計手法である。この設計手法により、回路を小さな部分回路に分割することが可能となる。LSI設計では、まず、論理合成で与えられた回路をセルと呼ばれる回路素子の基本単位とセル間を接続するネットとに分割し、レイアウトで回路をブロックに分割してフロアプランする。次に、ブロック内にセルを配置し、最後にセル間を接続する。
【0003】
この際、LSI設計では、遅延が最小となる設計方法がLSI設計者から強く求められている。その理由としては、テクノロジの微細化により配線遅延が素子遅延に比べて相対的に大きくなり、配線遅延の影響が無視できなくなっていることである。長い配線が存在すると、それによって大きな遅延が生じ、LSIのパフォーマンスが低下してしまう上、配線資源の浪費にもつながってしまう。そのため、長い配線を短くすることがハイパフォーマンスなLSI設計には重要となっている。特に、テクノロジの微細化が進んでいる今日では、フロアプランで配線遅延を最適化することが重要となっている。
【0004】
従来のフロアプランの1手法としてFD法(Force Directed法)があり、これは、配線長の2乗の和が最小となるブロック配置を求める手法である。このFD法では、ブロックを点、つまり面積を0とみなしてブロック配置を行う。そのため、ブロックが重なって配置されている可能性がある。そこで、FD法では、重なったブロックが離れるように反発力を発生させ、その反発力を利用してブロックの重なりが最小のブロック配置を求めるようにしていた。
【0005】
【発明が解決しようとする課題】
このため、従来の上述のFD法では、下記の問題などがある。
(1) ブロックが配置領域の外に出てしまう可能性がある。
【0006】
(2) あるブロックが配置領域の枠に接している固定ブロックや禁止領域にと重なっている場合、配置領域の外に出てしまう可能性がある。
(3) 隣接するブロックが同じブロックは、初期配置で同じ座標に配置されると、以降同じ反発力が発生し、その結果、同じ座標へ配置されてしまう可能性がある。
【0007】
(4) 配線長のみの最適化を行うために、ブロックの形状の最適化が行われない。
(5) ブロック間を接続するネットは、ブロックが配置されていない領域に配線されるため、配線が混雑している領域では全ての配線ができない可能性がある。
【0008】
本発明は、これらの問題を解決するため、LSIの階層化設計のフロアプランにおいて、配線長が最小となるように、ブロックの形状と配置を自動決定することを目的としている。
【0009】
【課題を解決するための手段】
図1を参照して課題を解決するための手段を説明する。
図1において、処理装置1は、配置領域内のブロックの配線長を最小かつブロックが重ならないように配置するものであって、ここでは、ブロック配置手段2、ブロック形状計算手段3、反発力計算手段4、およびブロック再配置手段5などから構成されるものである。
【0010】
ブロック配置手段2は、配置領域内に配線長が最小となるようにブロック(ブロックの中心)を配置するものである。
ブロック形状計算手段3は、重なっているブロックを抽出してブロックの辺を離れる方向に所定量を移動した後、面積を元に等しく戻したりなどすものである。
【0011】
反発力計算手段4は、ブロックが重なっているときに重なりが少なくなる方向にブロックの中心を移動する所定の移動量を算出したり、算出した移動量で配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出したりなどするものである。
【0012】
ブロック再配置手段5は、移動量をもとに、配置領域内で配線長が最小となるブロックの配置を計算したりなどするものである。
次に、動作を説明する。
【0013】
処理装置1を構成するブロック配置手段2が配置領域内に配線長が最小となる位置にブロック(ブロックの中心)を配置し、ブロック形状計算手段3が配置した状態で重なっているブロックを抽出して当該ブロックの重なっている辺を離れる方向に所定量を移動した後、面積を元に等しく戻して形状を変形し、反発力計算手段4が更にブロックが重なっているときに重なりが少なくなる方向にブロックの中心を移動する所定の移動量を算出し、算出した移動量で配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出し、ブロック再配置手段5が算出した移動量をもとに配置領域内で配線長が最小となるブロックの配置を計算することを繰り返し、配置領域内に配線長が最小のブロックを配置するようにしている。
【0014】
この際、面積を元に等しく戻してとして、面積を相似形で元に等しく戻すようにしている。
また、面積をもとに戻した状態で、ブロックが重なっているときに重なりが少なくなる方向に当該ブロックの中心を移動として、重なるブロックの中心を結ぶ線分上で相互に離れるように所定の移動量を算出したり、あるいはブロックの中心の移動によって配置領域外にでたときは内の方向の移動量を算出したり、あるいは配置領域の辺に斜めに外にでたときは反射する内の方向に移動量を算出したりするようにしている。
【0015】
従って、LSIの階層化設計のフロアプランにおいて、配線長が最小となるように、ブロックの形状と配置を自動決定することが可能となる。
【0016】
【発明の実施の形態】
次に、図1から図14を用いて本発明の実施の形態および動作を順次詳細に説明する。
【0017】
図1は、本発明のシステム構成図を示す。
図1において、処理装置1は、プログラムに従い各種処理を実行するものであって、ここでは、ブロック配置手段2、ブロック形状計算手段3、反発力計算手段4、およびブロック再配置手段5などから構成されるものである。
【0018】
ブロック配置手段2は、配置領域内に配線長が最小となるようにブロック(ブロックの中心)を配置するものである。
ブロック形状計算手段3は、配置領域内で重なっているブロックを抽出してブロックの重なっている辺を離れる方向に所定量を移動した後、相似形で面積を元に等しく戻すものである。これにより、ブロックの形状が重なりが少なくなる方向に徐々に変形されることとなる。
【0019】
反発力計算手段4は、ブロック形状計算手段3によってブロックの形状を変えてもまだブロックが重なっているときに、重なりが少なくなる方向にブロックの中心を移動させる所定の移動量を算出したり、算出した移動量でブロックが配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出したりなどするものである。これにより、ブロックの中心を重なりが少なくなる方向に徐々に移動させることとなる。
【0020】
ブロック再配置手段5は、反発力計算手段4によって計算されたブロックの中心の移動量などをもとに、配置領域内で配線長が最小となるブロックの配置を計算するものである。そして、ブロック形状計算手段3、反発力計算手段4および当該ブロック再配置手段5の処理を順番に繰り返すことにより(後述する図2参照)、配置領域内でブロックの形状を変形、ブロックの中心を移動して重なりのなくかつ配線長の最小のブロックの配置を計算して決定することが可能となる。
【0021】
表示装置6は、各種データや計算結果などを表示するものである。
入力装置7は、データや各種指示を入力するものであって、マウスやキーボードなどである。
【0022】
データベース8は、各種データを検索し易く格納したものであって、ここでは、配置領域、各ブロックなどの情報や配置結果などを格納するものである。
次に、図2のフローチャートに順番に従い、図1の構成の全体の動作を詳細に説明する。
【0023】
図2は、本発明の動作説明フローチャート(全体)を示す。
図2において、S1は、配線長が最小のブロック配置を計算する。これは、指定された配置領域内に、指定されたブロック(サイズ、結線情報)を配線長が最小となるブロックの位置を計算する。この際、ブロックは中心の座標で表し、サイズは零(あるいは小さな所定サイズ)と仮定して配線長が最小となるブロック位置を計算する。
【0024】
S2は、ブロック形状を計算する。これは、後述する図3のフローチャートを用いて詳述するように、S1あるいはS4で配置領域内に配線長が最小となるように配置されたブロック(第1回目はS1、第2回目以降はS4)について、ブロックの形状をもとに重なっているブロックを抽出し、抽出した重なっているブロックの辺を重なりが少なくなる方向に移動させた後、相似形で元の面積と同じブロックの形状に変形する。同様に、全ての重なっているブロックについて繰り返す。
【0025】
S3は、反発力を計算する。これは、後述する図5のフローチャートを用いて詳述するように、S2でブロック形状の計算結果をもとに、重なっているブロックを全て抽出し、重なっているブロックが離れる方向に当該ブロックの中心を移動させ、移動後に配置領域のそとにでたときは内方向の移動量を計算などする。同様に、全ての重なるブロックについて繰り返す。
【0026】
S4は、反発力をもとにした配線長が最小のブロック配置を計算する。これは、後述する図7のフローチャートを用いて詳述するように、ブロック配置計算式にS3の結果を代入して配線長が最小となるブロック配置を計算する。そして、所定回数(例えば100回)繰り返すまでS2に戻り繰り返す。
【0027】
また、S11、S12は、S2のときに、S1あるいはS4で配線長が最小となるブロック位置をそのまま取り込んでブロック形状計算を行うのではなく、ブロック間に配線が混雑した場合に、図9の(b)に示すように、当該ブロックの面積を大きくして両ブロックの間隔を狭くして既述したS2、S3、S4の計算を行い、計算後に両ブロックの間隔を元に戻して、当該両ブロックの間隔を広く確保し、配線が可能にするための操作である。
【0028】
S5は、S2、S3、S4を所定回数繰り返し(例えば100回)たか判別する。YESの場合には、終了し、S3の結果を出力する。一方、NOの場合には、S2に戻り繰り返す。
【0029】
以上によって、配置領域に配線長が最小となるブロック配置を行い(S1)、重なるブロックについて重なりが少なくなる方向に形状変更を行い(S2)、更に重なるときにブロックの中心を重なりが少なくなる方向に移動し(S3)、これら結果をもとに配線長が最小となるブロック再配置を行うことを繰り返すことにより、配置領域内に重なりがなくなるように、あるいは重なりが少なくなるようにブロック配置を自動的に行うことが可能となる。以下順次詳細に説明する。
【0030】
図3は、本発明の動作説明フローチャート(S2)を示す。これは、既述した図2のS2の詳細フローチャートであって、配置領域内で重なるブロックの形状を重なりが少なくなる方向に変形して面積を等しくするものである。
【0031】
図3において、S21は、重なっているブロックを抽出する。これは、配線長が最小となるブロック位置にあるブロックについて、配置領域内で重なっているブロックを全て抽出する。
【0032】
S22は、辺を中心に向かって重なりが少なくなるように移動する。これは、例えば後述する図4の(a)の斜線を引いたA(i、j)の部分が少なくなるように、図4の(b)の辺を矢印で示す中心に向かって重なりが少なくなる方向に移動させ、図4の(c)に示すようにする。
【0033】
S23は、面積を最初と等しくする。これは、相似形で面積を最初と等しく、かつ中心を合わせて相似形で移動(元のブロックの中心間の距離L0は変えないで)する。
【0034】
以上によって、配置領域内で重なっているブロックは重なりが少なくなる方向に形状が変形されることとなる(例えば図4の(a)のブロックが図4の(d)のブロックのように中心間距離を等しくして重なりが無くなるように面積を最初と等しくして変形されることとなる)。
【0035】
図4は、本発明の説明図(S2)を示す。
図4の(a)は、配置領域内のブロックの重なりの状態を示す(図3のS21)。この状態では、図示のように、ブロックの斜線の部分が重なっている。
【0036】
図4の(b)は、矢印でブロックの辺を重なりが少なくなる移動方向を示す。
図4の(c)は、ブロックの辺を重なりが少なくなる方向に移動した後の状態を示す。
【0037】
図4の(d)は、図4の(c)の状態で、相似形で面積を等しく拡大した後の状態を示す。図示の状態では、ブロックが重なりがなくなるように面積を等しくして変形されたこととなる(ブロックの中心間の距離L0は、図4の(a)の最小の距離L0と等しい)。
【0038】
以上のように、配置領域内で重なっているブロックを抽出し、ブロックの辺を重なりが少なくなる方向に移動させた後、相似形で元の面積に戻してブロックの形状を重なりが少なくなる形状に変形することにより、ブロック間の距離を同じにしてブロック間の重なりをなくす、あるいは少なくすることが可能となる。
【0039】
次に、図4の(a),(b),(c),(d)および図中の記号を用いて数式的に図示のようにして重なりが無くなる、あるいは少なくなる方向に形状を変形するコンピュータシステムを利用した数式処理について詳細に説明する。
【0040】
(1) 図4の(a)に示すように、ブロックi,jが重なっている時、ブロックi、jのX方向の重なりX(i,j),Y方向の重なりY(i,j)、重なりの面積A(i,j)を下式でそれぞれ求める。
【0041】
X(i,j)=max(min(xi+wi/2, xj+wj/2)-max(xi-wi/2,xj-wj/2),0)
Y(i,j)=max(min(yi+hi/2, yj+hj/2)-max(yi-hi/2,yj-hj/2),0)
A(i,j)=X(i,j)・Y(i,j)
ここで
・(xi,yi)はブロックiの中心座標
・wiはブロックiの幅
・hiはブロックiの高さ
をそれぞれ表す。
【0042】
(2) 図4の(b)に示すように、jが占める領域との重なりを持つiの辺を、ブロックの中心に向かって移動する。jとの重なりによるiの右辺、左辺、上辺、下辺の移動量をそれぞれMr(j−i),Ml(j−i),Mt(j−i),Mb(j−i)とし、下式でそれぞれ求める。ここで、A(i,j)はブロックiとブロックjとが重なった領域の面積を表し、αは定数である。
【0043】
Mr(j-i)=α・A(i,j)(wi/(wihi+wjhj))
Ml(j-i)=α・A(i,j)(wi/(wihi+wjhj))
Mt(j-i)=α・A(i,j)(hi/(wihi+wjhj))
Mb(j-i)=α・A(i,j)(hi/(wihi+wjhj))
全てのブロックとの重なりを調べて、iの各辺の移動量Mr(i),Ml(i),Mt(i),Mb(i)を決定する。
【0044】

Figure 0003953740
ここで、Aiは自身以外の全てを表す。
【0045】
(3) 図4の(c)に示すように、次に、辺を移動したブロックを拡大する。辺の移動により、ブロック幅はwiからwi−Mr(i)−Ml(i)へ、高さはhiからhi−Mt(i)−Mb(i)へと変わっている。ブロックの面積を維持するため、iの高さと幅を
(wihi/((wi-Mr(i)-Ml(i))(hi-Mt(i)-Mb(i)))1/2
し、整理して変更後の幅wi’,高さhi’として下式を得る(図4の(d))。
【0046】
wi'=((wi-Mr(i)-Ml(i))w(i)h(i)/(hi-Mt(i)-Mb(i)))1/2
hi'=((hi-Mt(i)-Mb(i))w(i)h(i)/(wi-Mr(i)-Ml(i)))1/2
以上の式および手順によって、重なっているブロックの重なりを無くすあるいは重なりを少なくする方向に辺を移動した後、面積を相似形で元の面積と等しくすることをコンピュータシステムを利用して計算することが可能となる。
【0047】
図5および図6は、本発明の説明図(S3)を示す。これらは、既述した図2のS3の詳細説明図であって、反発力を計算するものである。
図5の(a)は、フローチャートを示す。
【0048】
図5の(a)において、S31は、ブロック形状計算結果を取り込む。これは、既述した図3のS23の計算結果(上述した図4の(d)の計算結果)を取り込む。即ち、重なるブロックについて、ブロックの中心を移動させないで、辺を重なりが少なくなる方向に移動した後に相似形で元の面積と等しくしたときの計算結果を取り込む。
【0049】
S32は、ブロックの中心が離れる方向へ重なりが少なくなる移動量(方向と距離)を計算する。これは、例えば後述する図5の(b)の矢印に示すように、重なるブロックの中心が離れる方向へ重なりが少なくなる移動量(方向と距離)を計算する。
【0050】
S33は、ブロックが配置領域から出ているか判別する。YESの場合には、S34で、配置領域の外から中への移動量を計算する(例えば後述する図6の(c)の左側のブロックの矢印で示すような移動量を計算する)。一方、NOの場合には、終了する。
【0051】
以上によって、重なるブロックについて、ブロックの中心が離れる方向に移動量(方向と距離)を計算することが可能となる。この際、移動して配置領域の外に出た場合には、配置領域の中に戻るように例えば図6の(c),(d)の矢印で示す移動量を計算することが可能となる。
【0052】
図5の(b)は、中心を移動させるための反発力の計算方法の説明図を示す。ブロックが図示のように重なっていた場合には、ブロックの中心を結ぶ線分上で、重なりが少なくなるように離れる方向に図示の矢印の移動量を計算で求める。
【0053】
図6の(c)は、移動した結果、ブロックが配置領域の外に出た場合の移動量の算出の例を示す。左側のブロックは、配置領域の左の辺から外に一部が出てしまったので、配置領域の中に戻る図示矢印の方向の移動量を計算する。また、右上のブロックは、左と下の両方向に移動しないと配置領域の中に戻らないので、図示の矢印の合成の方向の移動量を計算する。
【0054】
図6の(d−1)は、配置領域の辺に接している禁止領域/固定ブロック内にブロックが入ってしまった場合を示す。
図6の(d−2)は、図6の(d−1)の状態の場合には、禁止領域/固定ブロックの中心を配置領域の辺に仮中心として移動し、当該禁止領域/固定ブロックの外かつ配置領域の中に戻す方向に移動量を計算する。
【0055】
以上の図5の(b)、図6の(c)、(d)のように、配置領域外に出た場合あるいは禁止領域/固定ブロック内に入ってしまったときに、配置領域の中あるいは配置領域の中かつ禁止領域/固定ブロック外に戻るように移動量を計算することが可能となる。
【0056】
図7および図8は、本発明の説明図(S4)を示す。これは、既述した図2のS4の反発力を元にした配線長が最小のブロック配置を計算する説明である。
図7の(a)は、フローチャートを示す。
【0057】
図7の(a)において、S41は、ブロック配置計算式にCとdを設定する。これは、配線長が最小のブロック位置を計算するための、後述する図8の計算式中のCとdに、重なるブロックの接続関係をそれぞれ設定する。
【0058】
S42は、S3の結果の取り込みを行う。これは、既述した図2のS3の結果(重なるブロックの中心を重なりが少なくなる方向への移動量)の取り込みを行う。
【0059】
S43は、移動量をeに設定する。これは、S42で取り込んだ重なるブロックの中心の移動量eを、後述する図8の計算式中のe(移動量)に設定する。
S44は、配線長が最小となるブロック配置計算式を解いてpを求める。これは、S41、S43で後述する図8のブロック配置計算式にC,d,eをそれぞれ設定し、解いてp(ブロック位置あるいはブロックの中心座標)を求める。この際、配線長はデータベース8内に蓄積されているデータを使って計算する。
【0060】
以上によって、既述したS3の重なるブロックの中心を重なりが少なくなる方向への移動量をもとに配線長が最小となるブロック配置を計算することが可能となる。
【0061】
図7の(b)は、配置領域内にブロック#1、#2、#3の3つと、固定ブロックが1つある場合の例を示す。この場合の配線長が最小となるブロック配置を解く行列式は、後述する図8のように表記される。
【0062】
図8は、図7の(b)のブロック#1、#2.#3の3つと、固定ブロックが1つある場合の配線長が最小となるブロック位置を計算する式の行列による表現の例を示す。ここでは、C、d(接続関係)は既述した図7の(a)のS41で設定し、e(移動量、既述した図2のS3で求めた移動量)は既述した図7の(a)のS43で設定し、解であるp(座標)は既述した図7の(a)のS44で求めるものである。
【0063】
ここで、移動量eには、図示の下記のものがある。
(1)ブロック同士による移動量(例えば既述した図5の(b)の矢印の移動量)
(2)配置領域の外から中への移動量(例えば既述した図6の(c)の矢印の移動量)
(3)同じ座標のブロックによる移動量(例えばブロックが複数重なったときに異なる位置に配置するための移動量)
図9は、本発明の説明図を示す。これは、配線が混雑している領域のブロック間について、ブロックの面積を拡大してブロック間を狭くして、既述した図2のS2からS4の処理を実行した後にブロックの面積を元に戻してブロック間を広げて確保し、配線が確実に配置可能にするための処理であって、既述した図2のS11とS12の処理を説明するものである。
【0064】
図9の(a)は、配置領域内で配線が混雑した領域(楕円で示す領域)の例を示す。
図9の(b)は、図9の(a)の楕円で示す領域に面するブロック間の辺を近づけて狭くした状態を示す。この状態は、既述した図2のS11でブロックの面積を拡大した例に対応し、ブロック間の間隔が狭くなっている。この状態で、既述した図2のS2、S3、S4の処理を実行した後に、S12で元の図9の(a)の状態のブロックに戻して配線領域を広く確保することが可能となる。
【0065】
図10は、本発明の説明図(S2)を示す。これは、既述した図2のS2の他の実施例の動作の説明図である。
図10の(a)は、フローチャートを示す。
【0066】
図10の(a)において、S51は、重なっているブロックを抽出する。これは、配置領域内で重なっているブロックを抽出する。
S52は、同じ種類のブロックが存在するか判別する。YESの場合には、同じ種類のブロック(例えば形状が同じブロック)が複数個存在すると判明したので、S53、S54のブロックの辺の移動や面積を元に戻す処理をスキップし、当該ブロックの形状を変えないでそのままにしておく。一方、NOの場合には、同じ種類のブロックが存在しないと判明したので、S53で既述したように重なっているブロックの辺を中心に向かって重なりが少なくなるように移動し(図10の(b)参照)、S54で面積を最初と等しくする。
【0067】
以上によって、配置領域内で重なっている同じ種類のブロックは形状が変形されることなくそのままとし、重なりの相手のブロックの辺についてのみ重なりが少なくなるように移動した後、元の面積に相似形で戻すことにより、同じ種類のブロックをそのままのこし当該ブロックの内部配置の処理を削減することが可能となる。
【0068】
図10の(b)は、種類が同じブロックi,jの形状を不変とした例を示す。図示のように、配置領域内で重なるブロックのうち、形状が同じブロックi,jについて図10の(a)のS53の辺の移動およびS54の面積を最初と等しくしてブロックの形状を重なりが少なくなるように変形する処理をスキップし、重なっている相手のブロックのみS53、S54の処理を行い当該ブロックの形状の変形を行い重なりを少なくなるようにする。これにより、同じ種類のブロックをそのまま残し、同じ種類のブロック内の配置処理を迅速に行うことが可能となる。
【0069】
図11は、本発明の説明図(S2)を示す。これは、既述した図2のS2の他の実施例の動作の説明図である。
図11の(a)は、フローチャートを示す。
【0070】
図11の(a)において、S61は、重なっているブロックを抽出する。これは、配置領域内で重なっているブロックを抽出する。
S62は、同じ種類の全てのブロックの辺を、中心に向かって重なりが少なくなるように移動する。これは、後述する図11の(b)に示すように、重なっている種類が同じブロックi,jについて、全て同一に辺を中心に向かって重なりが少なくなるように移動する(種類が同じブロックi、jでそれぞれ移動が異なるときは全てのブロックで最適な移動を行う(例えば全ての移動量をマージした移動を行う))。
【0071】
S63は、面積を最初と等しくする。
以上によって、配置領域内で重なっている同じ種類のブロックは全て同一の辺について同一の移動をした後、元の面積に相似形で戻すことにより、同じ種類のブロックは全て同じ変形処理を施して変形後の全て同じ形状とし、各ブロックの内部配置の処理を削減することが可能となる。
【0072】
図11の(b)は、種類が同じブロックi,jの形状変形を同じとした例を示す。図示のように、配置領域内で重なるブロックのうち、形状が同じブロックi,jについて図11の(a)のS62の全て同じ辺の移動およびS63の面積を最初と等しくしてブロックの形状を重なりが少なくなるように全て同じ変形する処理を行うことにより、同じ種類のブロックを全て同じ変形を施して同じ形状とすることにより、当該同じ種類のブロック内の配置処理を迅速に行うことが可能となる。
【0073】
図12および図13は、本発明の説明図(S4)を示す。これらは、図13の配置領域内のブロック#1、#2間の接続の強さを変更した例を示す。
図12の(a)は、既述したブロック配置計算式の例を示す。このブロック配置計算式は、後述する図13の(a)の配置領域内にブロック#1、#2、#3の3つのブロックを配置し、配線長を最小とする各ブロックの中心(座標p)を解く式である。
【0074】
図12の(b)は、図13の(b)に示すブロック#1,#2の接続を変更したときに接続関係cを変更して設定した例を示す。ここでは、接続関係cのうちの、図中の
・U’の1箇所
・V’の2箇所
について、U,Vからそれぞれ変更する。変更した後のブロック配置計算式を解いて座標p(x1,x2,x3)を求めると、ブロック#1、#2、#3のそれぞれの中心座標を求めることが可能となる。尚、他の値の設定は、既述した図8のブロック配置計算式および図7の(a)のフローチャートを参照。
【0075】
図13の(a)は、配置領域内にブロック#1、#2、#3を配置し、ブロック#1とブロック#2が重なっている様子を示す。
図13の(b)は、既述した図12の(b)で接続関係c中でU,VをU’,V’にブロック#1、#2の中心の移動に対応した値を設定し、解いてその座標p(x1,x2,x3)を求めた様子を示す。
【0076】
以上のように、配置領域内で重なっているブロックの中心を移動した場合に、図12の(b)に示すようにブロック配置計算式中の該当パラメタを変更して解くことにより、重なりが少なくなる方向にブロックを移動した後の配線長を制約として与えられた値以下とするブロックの位置を再計算することが可能となる。
【0077】
図14は、本発明の説明図を示す。これは、ブロックiとブロックjの間にブロック以外の例えばセルが存在する場合に、本願発明を適用できるようにするための前処理の例を示す。
【0078】
図14の(a)、(b)は、フローチャートを示す。
図14の(a)、(b)において、S71は、ブロックを抽出する。これは、配置領域内に配置する全てのブロックを抽出する。
【0079】
S72は、図14の(b)のS81からS85を実行する。
S81は、隣接するセルまたはブロックを抽出する。これは、例えば後述する図14の(c)に示すようなブロック−セル−セル−ブロックが接続されてた場合に、これらを順次抽出する。
【0080】
S82は、抽出したのはブロックか判別する。YESの場合には、S83でリストに追加し、S84に進む。一方、NOの場合には、S85で再帰的にS81、S82を実行し、ブロックが抽出されるまでセルの先を順次繰り返し辿り、ブロックが抽出されたときにS82のYESとなり、S84に進む。
【0081】
S84は、隣接するセルまたはブロックをすべて抽出済みか判別する。YESの場合には、復帰してS72に戻り、次のS73に進む。一方、NOの場合には、S81に戻り、次のブロックあるいはセルの抽出、S82などを繰り返す。
【0082】
以上のS81からS84によって、配置領域内のブロックのみがリストに追加され、セルは削除されることとなる。
S73は、リスト中のすべてのブロックの組に対してネットを生成する。これにより、配置領域内のブロックのみを抽出(セルを削除)して後述する図14の(c)に示すようなセルを削除してスキップしたブロックのネットが作成されることとなる。そして、既述した図1から図13によってブロックの形状変更(図2のS2)、ブロックの中心移動(図2のS3)、および配線長が最小のブロック配置を計算して決定(図2のS4)し、その後にセルを戻して配線長が最小のブロック配置およびセル配置することが可能となる。
【0083】
図14の(c)は、配置領域内にブロックとセルが接続されている例を示す。
図14の(d)は、セルを削除した例を示す。これは、図14の(c)のブロックとセルが接続された状態で、図14の(a)および(b)のフローチャートにより、セルを削除したブロックi,jのリストを作成し、これらリスト中のブロックi,jについて、既述した図1から図13の処理を実行することで、ブロック間にセルがあっても本願発明が適用できるようにしたものである。そして、本願発明を適用して配線長を最小にして重なりを無くしあるいは重なりを少なくしたブロックにセルを元の位置に戻して配置領域内にブロックとセルの混合した配置を実現できるようにしたものである。
【0084】
(付記1)
配置領域内にブロックを配置する配置方法において、
配置領域内にブロックを配置するステップと、
上記配置した状態で重なっているブロックを抽出して当該ブロックの重なっている辺を離れる方向に所定量を移動した後、面積を元に等しく戻して形状を変形する第1のステップと、
上記面積をもとに戻した状態で、ブロックが重なっているときに重なりが少なくなる方向に当該ブロックの中心を移動する所定の移動量を算出し、当該算出した移動量で上記配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出する第2のステップと、
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置を計算する第3のステップと
を設け、上記第1から第3のステップを繰り返し上記配置領域内に配線長が最小のブロックを配置する配置方法。
【0085】
(付記2)
上記面積を元に等しく戻してとして、面積を相似形で元に等しく戻した請求項1記載の配置方法。
【0086】
(付記3)
上記面積をもとに戻した状態で、ブロックが重なっているときに重なりが少なくなる方向に当該ブロックの中心を移動として、当該重なるブロックの中心を結ぶ線分上で相互に離れるように所定の移動量を算出、あるいはブロックの中心の移動によって上記配置領域外にでたときは内の方向に移動、あるいは上記配置領域の辺に斜めに外にでたときは反射する内の方向に移動する請求項1記載の配置方法。
【0087】
(付記4)
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置の計算として、所定の式に、重なるブロックの接続関係、移動量を代入して上記配置領域内で配線長が最小となるブロックの配置を計算する請求項1記載の配置方法。
【0088】
(付記5)
上記配置領域内で配線が混雑するブロックとブロックの間について、当該ブロックとブロックの相対する辺を近づけて間を狭くした状態で、上記第1から第3のステップを実行した後に当該辺を元に戻すことを繰り返し、配線が混雑するブロックとブロックの間を確保する請求項1から請求項4のいずれかに記載の配置方法。
【0089】
(付記6)
上記配置領域内に種類が同一のブロックが存在する場合に、両ブロックの形状を不変とし、ブロック内の配置処理を削減する請求項1から請求項5のいずれかに記載の配置方法。
【0090】
(付記7)
上記配置領域内に種類が同一のブロックが存在する場合に、両ブロックの形状の変形を同一とし、ブロック内の配置処理を削減する請求項1から請求項5のいずれかに記載の配置方法。
【0091】
(付記8)
ブロックとブロックの間にセルが存在する場合に、間に存在するセルを除去して上記第1から第3のステップを繰り返して処理を終了した後に、削除したセルを付加して戻す請求項1から請求項7のいずれかに記載の配置方法。
【0092】
(付記9)
配置領域内にブロックを配置する配置プログラムにおいて、
配置領域内にブロックを配置する手段と、
上記配置した状態で重なっているブロックを抽出して当該ブロックの重なっている辺を離れる方向に所定量を移動した後、面積を元に等しく戻して形状を変形する第1の手段と、
上記面積をもとに戻した状態で、ブロックが重なっているときに重なりが少なくなる方向に当該ブロックの中心を移動する所定の移動量を算出し、当該算出した移動量で上記配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出する第2の手段と、
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置を計算する第3の手段と
を設け、上記第1から第3の手段を繰り返し上記配置領域内に配線長が最小のブロックを配置する、ように機能させるための配置プログラム。
【0093】
(付記10)
配置領域内にブロックを配置する手段と、
上記配置した状態で重なっているブロックを抽出して当該ブロックの重なっている辺を離れる方向に所定量を移動した後、面積を元に等しく戻して形状を変形する第1の手段と、
上記面積をもとに戻した状態で、ブロックが重なっているときに重なりが少なくなる方向に当該ブロックの中心を移動する所定の移動量を算出し、当該算出した移動量で上記配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出する第2の手段と、
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置を計算する第3の手段と
を設け、上記第1から第3の手段を繰り返し上記配置領域内に配線長が最小のブロックを配置する、ように機能するプログラムを記録したコンピュータ読取可能な記録媒体。
【0094】
(付記11)
配置領域内にブロックを配置する配置装置において、
配置領域内にブロックを配置する手段と、
上記配置した状態で重なっているブロックを抽出して当該ブロックの重なっている辺を離れる方向に所定量を移動した後、面積を元に等しく戻して形状を変形する第1の手段と、
上記面積をもとに戻した状態で、ブロックが重なっているときに重なりが少なくなる方向に当該ブロックの中心を移動する所定の移動量を算出し、当該算出した移動量で上記配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出する第2の手段と、
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置を計算する第3の手段と
を設け、上記第1から第3の手段を繰り返し上記配置領域内に配線長が最小のブロックを配置することを特徴とする配置装置。
【0095】
【発明の効果】
以上説明したように、本発明によれば、配置領域内で重なっているブロックを抽出して重なりが少なくなる方向にブロックの辺を移動して元の面積に戻すおよびブロックの重なりが少なくなる方向にブロックの中心を移動させた後、配線長を最小とするブロックの配置を再計算することを繰り返す構成を採用しているため、LSIの階層化設計のフロアプランにおいて、配線長が最小となるように、ブロックの形状と配置を自動決定することが可能となる。これらにより、
(1)配置領域内で重なりのないブロックの配置をコンピュータを使って決定することが可能となる。
【0096】
(2)得られるブロック配置は配置領域の内側に収まっており、他のブロックや禁止領域との重なりをなくすことができる。
(3) ブロック形状が可変の場合、最適なブロックの形状を得ることができる。
【0097】
(4)ブロック形状が同じ種類の場合には、配置領域内で形状変化させないか、あるいは変化されても同じ形状に変化させることにより、同じブロック形状を保持させて当該同じブロック内の素子などの配置を簡易にすることができる。
【0098】
(5)配置領域内にブロック以外にセルが混在しても、ブロックのみを抽出してブロック形状および位置を最適に配置した後に、セルを元の位置に配置し、セルがブロック内に散在しても本願発明を適用することができる。
【図面の簡単な説明】
【図1】本発明のシステム構成図である。
【図2】本発明の動作説明フローチャート(全体)である。
【図3】本発明の動作説明フローチャート(S2)である。
【図4】本発明の説明図(S2)である。
【図5】本発明の説明図(S3)である。
【図6】本発明の説明図(S3)である。
【図7】本発明の説明図(S4)である。
【図8】本発明の説明図(S4)である。
【図9】本発明の説明図である。
【図10】本発明の説明図(S2)である。
【図11】本発明の説明図(S2)である。
【図12】本発明の説明図(S4)である。
【図13】本発明の説明図(S4)である。
【図14】本発明の説明図である。
【符号の説明】
1:処理装置
2:ブロック配置手段
3:ブロック形状計算手段
4:反発力計算手段
5:ブロック再配置手段
6:表示装置
7:入力装置
8:データベース[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an arrangement method, an arrangement program, and a recording medium for arranging blocks in an arrangement area.
[0002]
[Prior art]
Due to recent advances in manufacturing technology, the degree of integration of LSIs and the scale of circuits have increased significantly, making it difficult to design LSIs flatly. As one of circuit design methods for solving this problem, there is a layout by hierarchical design. Hierarchical design is a design method that first divides a circuit into partial circuits called blocks, then determines the arrangement and shape of the blocks, called a floor plan, and finally lays out each block. . With this design method, the circuit can be divided into small partial circuits. In LSI design, first, a circuit given by logic synthesis is divided into basic units of circuit elements called cells and nets connecting the cells, and the circuit is divided into blocks by layout and floorplanned. Next, the cells are arranged in the block, and finally the cells are connected.
[0003]
At this time, in LSI design, there is a strong demand from LSI designers for a design method that minimizes delay. The reason is that the wiring delay is relatively larger than the element delay due to the miniaturization of technology, and the influence of the wiring delay cannot be ignored. If a long wiring exists, a large delay is caused thereby, LSI performance is deteriorated, and wiring resources are wasted. Therefore, shortening long wiring is important for high performance LSI design. In particular, as technology is increasingly miniaturized, it is important to optimize wiring delay in floor plans.
[0004]
One conventional floor plan technique is the FD method (Force Directed method), which is a method for obtaining a block arrangement that minimizes the sum of the squares of the wiring lengths. In this FD method, a block is arranged by regarding a block as a point, that is, an area of 0. Therefore, there is a possibility that the blocks are arranged overlapping each other. Therefore, in the FD method, a repulsive force is generated so that the overlapping blocks are separated from each other, and the block arrangement with the smallest block overlap is obtained using the repulsive force.
[0005]
[Problems to be solved by the invention]
For this reason, the above-mentioned conventional FD method has the following problems.
(1) There is a possibility that the block goes out of the arrangement area.
[0006]
(2) When a certain block overlaps with a fixed block or prohibited area that is in contact with the frame of the arrangement area, there is a possibility that the block will go out of the arrangement area.
(3) When blocks adjacent to each other are arranged at the same coordinates in the initial arrangement, the same repulsive force is generated thereafter, and as a result, the blocks may be arranged at the same coordinates.
[0007]
(4) Since only the wiring length is optimized, the block shape is not optimized.
(5) Since the nets connecting the blocks are wired in the area where the blocks are not arranged, there is a possibility that not all wiring can be performed in the area where the wiring is congested.
[0008]
In order to solve these problems, an object of the present invention is to automatically determine the shape and arrangement of blocks so that the wiring length is minimized in a floor plan of LSI hierarchical design.
[0009]
[Means for Solving the Problems]
Means for solving the problem will be described with reference to FIG.
In FIG. 1, the processing device 1 is arranged so that the wiring length of the block in the arrangement area is minimized and the blocks do not overlap. Here, the block arranging unit 2, the block shape calculating unit 3, the repulsive force calculating It comprises means 4 and block rearrangement means 5.
[0010]
The block arrangement means 2 arranges a block (the center of the block) so that the wiring length is minimized within the arrangement area.
The block shape calculation means 3 extracts overlapping blocks, moves a predetermined amount in a direction away from the sides of the blocks, and then returns the area to the original value.
[0011]
The repulsive force calculation means 4 calculates a predetermined movement amount for moving the center of the block in a direction in which the overlap is reduced when the blocks overlap, or from the outside when the calculated movement amount is outside the arrangement area. The amount of movement for moving the center of the block in the inner direction is calculated.
[0012]
The block rearrangement means 5 calculates, for example, the arrangement of the block having the minimum wiring length in the arrangement area based on the movement amount.
Next, the operation will be described.
[0013]
The block placement means 2 constituting the processing device 1 places the block (the center of the block) at the position where the wiring length is minimum in the placement area, and extracts the overlapping blocks in the state where the block shape calculation means 3 is placed. After moving a predetermined amount in the direction away from the overlapping side of the block, the shape is deformed by returning it to the same area, and the repulsive force calculation means 4 further reduces the overlap when the blocks overlap. A predetermined amount of movement for moving the center of the block is calculated, and when the calculated amount of movement is outside the arrangement area, the amount of movement for moving the center of the block from the outside to the inside is calculated, and the block rearrangement means Based on the movement amount calculated in step 5, the calculation of the arrangement of the block having the minimum wiring length in the arrangement area is repeated, and the block having the minimum wiring length is arranged in the arrangement area.
[0014]
At this time, it is assumed that the area is returned to the original value and the area is returned to the original value in a similar manner.
In addition, in a state where the area is restored, the center of the block is moved in a direction in which the overlap is reduced when the blocks are overlapped, and a predetermined distance is set so as to be separated from each other on a line segment connecting the centers of the overlapped blocks. Calculate the amount of movement, calculate the amount of movement in the inner direction when going out of the placement area due to the movement of the center of the block, or reflect inside when it goes diagonally outside the side of the placement area The movement amount is calculated in the direction of.
[0015]
Accordingly, in the floor plan of the hierarchical design of LSI, it is possible to automatically determine the block shape and arrangement so that the wiring length is minimized.
[0016]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments and operations of the present invention will be described in detail sequentially with reference to FIGS.
[0017]
FIG. 1 shows a system configuration diagram of the present invention.
In FIG. 1, a processing apparatus 1 executes various processes in accordance with a program. Here, the processing apparatus 1 includes a block arrangement unit 2, a block shape calculation unit 3, a repulsive force calculation unit 4, a block rearrangement unit 5, and the like. It is what is done.
[0018]
The block arrangement means 2 arranges a block (the center of the block) so that the wiring length is minimized within the arrangement area.
The block shape calculation means 3 extracts blocks that overlap in the arrangement area, moves a predetermined amount in a direction away from the side where the blocks overlap, and then restores the area to be the same with a similar shape. Thereby, the shape of the block is gradually deformed in a direction in which the overlap is reduced.
[0019]
The repulsive force calculation means 4 calculates a predetermined amount of movement for moving the center of the block in a direction in which the overlap is reduced when the block is still overlapped even if the shape of the block is changed by the block shape calculation means 3, When the block moves out of the arrangement area with the calculated movement amount, the movement amount for moving the center of the block from the outside to the inside is calculated. Thereby, the center of the block is gradually moved in a direction in which the overlap is reduced.
[0020]
The block rearrangement unit 5 calculates the block arrangement with the minimum wiring length in the arrangement region based on the movement amount of the block center calculated by the repulsive force calculation unit 4. Then, by repeating the processing of the block shape calculating means 3, the repulsive force calculating means 4 and the block rearranging means 5 in order (see FIG. 2 described later), the shape of the block is deformed within the arrangement area, and the center of the block is set. It is possible to calculate and determine the arrangement of blocks that move and do not overlap and have the shortest wiring length.
[0021]
The display device 6 displays various data and calculation results.
The input device 7 inputs data and various instructions, and is a mouse, a keyboard, or the like.
[0022]
The database 8 stores various data so that it can be easily searched. Here, the database 8 stores information such as arrangement areas and blocks, arrangement results, and the like.
Next, the entire operation of the configuration of FIG. 1 will be described in detail according to the flowchart of FIG.
[0023]
FIG. 2 shows a flowchart (overall) for explaining the operation of the present invention.
In FIG. 2, S1 calculates a block arrangement with the minimum wiring length. This calculates the position of the block having the minimum wiring length for the specified block (size, connection information) within the specified placement area. At this time, the block is represented by the coordinates of the center, and the block position where the wiring length is minimum is calculated assuming that the size is zero (or a small predetermined size).
[0024]
In S2, the block shape is calculated. As will be described in detail with reference to the flowchart of FIG. 3 to be described later, this is a block (S1 in the first time, S1 in the first time, and the second and subsequent times) in S1 or S4 so that the wiring length is minimized. For S4), after extracting the overlapping blocks based on the block shape and moving the sides of the extracted overlapping blocks in the direction in which the overlap is reduced, the shape of the block that is similar and has the same area as the original area Transforms into Similarly, repeat for all overlapping blocks.
[0025]
S3 calculates the repulsive force. As will be described in detail with reference to the flowchart of FIG. 5 described later, this is because all the overlapping blocks are extracted based on the block shape calculation result in S2, and the overlapping blocks are moved away from each other. The center is moved, and when moving out of the arrangement area after the movement, the amount of movement in the inward direction is calculated. Similarly, repeat for all overlapping blocks.
[0026]
In S4, a block arrangement having the minimum wiring length based on the repulsive force is calculated. As will be described in detail with reference to the flowchart of FIG. 7 to be described later, the block arrangement that minimizes the wiring length is calculated by substituting the result of S3 into the block arrangement calculation formula. And it returns to S2 and repeats until it repeats predetermined times (for example, 100 times).
[0027]
In S11 and S12, instead of taking the block position where the wiring length is the minimum in S1 or S4 as it is in S2, the block shape calculation is not performed, but when the wiring is congested between the blocks, FIG. As shown in (b), the calculation of S2, S3, and S4 described above is performed by increasing the area of the block and reducing the interval between both blocks. After the calculation, the interval between both blocks is restored to the original value. This is an operation for ensuring a wide space between both blocks and enabling wiring.
[0028]
In S5, it is determined whether S2, S3, and S4 are repeated a predetermined number of times (for example, 100 times). In the case of YES, it ends and outputs the result of S3. On the other hand, if NO, the process returns to S2 and is repeated.
[0029]
As described above, the block arrangement in which the wiring length is minimized is performed in the arrangement area (S1), the shape is changed in a direction in which the overlapping of the overlapping blocks is reduced (S2), and the center of the block is reduced in the overlapping direction when overlapping further (S3), and by repeating the block rearrangement that minimizes the wiring length based on these results, the block placement is performed so that there is no overlap or less overlap in the placement region. This can be done automatically. Details will be sequentially described below.
[0030]
FIG. 3 shows a flowchart (S2) for explaining the operation of the present invention. This is the detailed flow chart of S2 of FIG. 2 described above, in which the shape of the blocks that overlap in the arrangement region is deformed in a direction in which the overlap is reduced to make the areas equal.
[0031]
In FIG. 3, S21 extracts overlapping blocks. This extracts all the overlapping blocks in the arrangement area for the block at the block position where the wiring length is minimum.
[0032]
In S22, the side moves toward the center so that there is less overlap. This is because, for example, the side of FIG. 4B is less overlapped toward the center indicated by the arrow so that the portion of A (i, j) in FIG. To a direction as shown in FIG.
[0033]
In S23, the area is made equal to the first. This is a similar shape with the same area as the first, and moves in a similar shape with the center aligned (without changing the distance L0 between the centers of the original blocks).
[0034]
As a result, the overlapping blocks in the arrangement area are deformed in a direction in which the overlapping is reduced (for example, the block in FIG. 4A is centered like the block in FIG. 4D). It will be transformed with the same area as the first so that the distance is equal and there is no overlap).
[0035]
FIG. 4 is an explanatory diagram (S2) of the present invention.
FIG. 4A shows the overlapping state of blocks in the arrangement area (S21 in FIG. 3). In this state, as shown in the figure, the hatched portions of the blocks overlap.
[0036]
FIG. 4B shows the moving direction in which the sides of the block are overlapped with arrows.
FIG. 4C shows a state after the sides of the block have been moved in a direction that reduces overlap.
[0037]
FIG. 4D shows a state after the area is enlarged with a similar shape in the state of FIG. In the state shown in the figure, the blocks are deformed with the same area so as not to overlap (the distance L0 between the centers of the blocks is equal to the minimum distance L0 in FIG. 4A).
[0038]
As described above, after extracting the blocks that overlap in the arrangement area, move the sides of the blocks in the direction that reduces overlap, and then return to the original area with a similar shape that reduces the overlap of the blocks By deforming to the above, it becomes possible to eliminate or reduce the overlap between the blocks by making the distance between the blocks the same.
[0039]
Next, using (a), (b), (c), (d) in FIG. 4 and the symbols in the figure, the shape is deformed in a direction in which there is no overlap or less as shown mathematically. Formula processing using a computer system will be described in detail.
[0040]
(1) As shown in FIG. 4A, when the blocks i and j overlap, the overlap of the blocks i and j in the X direction X (i, j) and the overlap in the Y direction Y (i, j) The overlap area A (i, j) is obtained by the following equations.
[0041]
X (i, j) = max (min (xi + wi / 2, xj + wj / 2) -max (xi-wi / 2, xj-wj / 2), 0)
Y (i, j) = max (min (yi + hi / 2, yj + hj / 2) -max (yi-hi / 2, yj-hj / 2), 0)
A (i, j) = X (i, j) ・ Y (i, j)
here
・ (Xi, yi) is the center coordinate of block i
・ Wi is the width of block i
・ Hi is the height of block i
Respectively.
[0042]
(2) As shown in FIG. 4B, the side of i that overlaps the area occupied by j is moved toward the center of the block. The movement amounts of the right side, the left side, the upper side, and the lower side of i due to the overlap with j are Mr (j−i), Ml (j−i), Mt (j−i), and Mb (j−i), respectively. Ask for each. Here, A (i, j) represents the area of the area where the block i and the block j overlap, and α is a constant.
[0043]
Mr (j-i) = α ・ A (i, j) (wi / (wihi + wjhj))
Ml (j-i) = α ・ A (i, j) (wi / (wihi + wjhj))
Mt (j-i) = α ・ A (i, j) (hi / (wihi + wjhj))
Mb (j-i) = α ・ A (i, j) (hi / (wihi + wjhj))
By checking the overlap with all the blocks, the movement amounts Mr (i), Ml (i), Mt (i), and Mb (i) of each side of i are determined.
[0044]
Figure 0003953740
Here, Ai represents everything except itself.
[0045]
(3) Next, as shown in FIG. 4C, the block whose side is moved is enlarged. Due to the movement of the side, the block width is changed from wi to wi-Mr (i) -Ml (i), and the height is changed from hi to hi-Mt (i) -Mb (i). To maintain the block area, the height and width of i
(wihi / ((wi-Mr (i) -Ml (i)) (hi-Mt (i) -Mb (i)))1/2Double
Then, the following formulas are obtained as the width wi 'and the height hi' after being changed and arranged ((d) of FIG. 4).
[0046]
wi '= ((wi-Mr (i) -Ml (i)) w (i) h (i) / (hi-Mt (i) -Mb (i)))1/2
hi '= (((hi-Mt (i) -Mb (i)) w (i) h (i) / (wi-Mr (i) -Ml (i)))1/2
Use the computer system to calculate the area to be similar to the original area after moving the edges in the direction that eliminates or reduces the overlap of the overlapping blocks by the above formula and procedure. Is possible.
[0047]
5 and 6 are explanatory diagrams (S3) of the present invention. These are detailed explanatory diagrams of S3 of FIG. 2 described above, and calculate the repulsive force.
FIG. 5A shows a flowchart.
[0048]
In FIG. 5A, S31 captures a block shape calculation result. This takes in the calculation result of S23 of FIG. 3 described above (the calculation result of (d) of FIG. 4 described above). That is, for the overlapping blocks, the calculation result when the sides are moved in the direction in which the overlap is reduced without moving the center of the blocks and then the similar area is made equal to the original area is fetched.
[0049]
In S32, the amount of movement (direction and distance) that reduces the overlap in the direction in which the center of the block leaves is calculated. For example, as shown by an arrow in FIG. 5B to be described later, a movement amount (direction and distance) that reduces the overlap in the direction in which the centers of the overlapping blocks are separated is calculated.
[0050]
In step S33, it is determined whether the block is out of the arrangement area. In the case of YES, in S34, the amount of movement from the outside to the inside of the arrangement area is calculated (for example, the amount of movement as indicated by the arrow in the left block in FIG. 6C described later is calculated). On the other hand, if NO, the process ends.
[0051]
As described above, with respect to the overlapping blocks, it is possible to calculate the movement amount (direction and distance) in the direction in which the center of the block leaves. At this time, when moving out of the arrangement area, for example, it is possible to calculate the movement amount indicated by the arrows (c) and (d) in FIG. 6 so as to return to the arrangement area. .
[0052]
FIG. 5B is an explanatory diagram of a method for calculating the repulsive force for moving the center. If the blocks overlap as shown in the figure, the amount of movement of the arrow shown in the figure is determined by calculation in the direction away from the overlap so as to reduce the overlap on the line connecting the centers of the blocks.
[0053]
FIG. 6C illustrates an example of calculating the movement amount when the block moves out of the arrangement area as a result of the movement. Since a part of the left block has protruded from the left side of the placement area, the amount of movement in the direction of the arrow shown in the figure returning to the placement area is calculated. In addition, the upper right block does not return to the arrangement area unless it moves in both the left and lower directions, and therefore the amount of movement in the direction of the composition of the arrows shown in the figure is calculated.
[0054]
(D-1) in FIG. 6 shows a case where a block has entered the prohibited area / fixed block in contact with the side of the arrangement area.
In the state of (d-1) in FIG. 6, (d-2) in FIG. 6 moves the center of the prohibited area / fixed block as a temporary center to the side of the arrangement area, and the prohibited area / fixed block. The amount of movement is calculated in the direction of returning to the outside of the arrangement area.
[0055]
As shown in FIGS. 5 (b), 6 (c) and 6 (d) above, when the user goes out of the arrangement area or enters the prohibited area / fixed block, It is possible to calculate the movement amount so as to return to the outside of the prohibited area / fixed block in the arrangement area.
[0056]
7 and 8 are explanatory diagrams (S4) of the present invention. This is an explanation for calculating the block arrangement having the minimum wiring length based on the repulsive force of S4 in FIG.
FIG. 7A shows a flowchart.
[0057]
In FIG. 7A, S41 sets C and d in the block arrangement calculation formula. This sets the connection relationship of overlapping blocks to C and d in the calculation formula of FIG. 8 to be described later for calculating the block position having the minimum wiring length.
[0058]
In S42, the result of S3 is fetched. This takes in the result of S3 in FIG. 2 described above (the amount of movement in the direction in which the overlap of the centers of the overlapping blocks is reduced).
[0059]
In S43, the movement amount is set to e. This sets the movement amount e at the center of the overlapping blocks captured in S42 to e (movement amount) in the calculation formula of FIG.
In S44, p is obtained by solving a block arrangement calculation formula that minimizes the wiring length. In this case, C, d, and e are respectively set in the block arrangement calculation formula of FIG. 8 described later in S41 and S43, and solved to obtain p (block position or block center coordinates). At this time, the wiring length is calculated using data stored in the database 8.
[0060]
As described above, it is possible to calculate the block arrangement that minimizes the wiring length based on the amount of movement in the direction in which the overlapping of the centers of the overlapping blocks of S3 described above decreases.
[0061]
FIG. 7B shows an example in which there are three blocks # 1, # 2, and # 3 and one fixed block in the arrangement area. A determinant for solving the block arrangement that minimizes the wiring length in this case is expressed as shown in FIG.
[0062]
FIG. 8 shows blocks # 1, # 2,. An example of expression by a matrix of an expression for calculating the block position where the wiring length becomes the minimum when there are three of # 3 and one fixed block is shown. Here, C and d (connection relationship) are set in S41 of FIG. 7A described above, and e (movement amount, movement amount obtained in S3 of FIG. 2 described above) is described in FIG. (A) in step S43, and the solution p (coordinates) is obtained in step S44 in FIG.
[0063]
Here, the movement amount e includes the following as shown in the figure.
(1) Movement amount between blocks (for example, the movement amount of the arrow in FIG. 5B described above)
(2) Amount of movement from the outside to the inside of the arrangement area (for example, the amount of movement of the arrow in FIG. 6C described above)
(3) Amount of movement by a block having the same coordinate (for example, a movement amount for arranging at a different position when a plurality of blocks overlap)
FIG. 9 is an explanatory diagram of the present invention. This is based on the block area after executing the processes from S2 to S4 in FIG. 2 described above, by enlarging the block area and narrowing the block area between blocks in the area where the wiring is congested. This is a process for returning and securing the space between the blocks so that the wiring can be surely arranged, and the processes of S11 and S12 of FIG. 2 described above will be described.
[0064]
FIG. 9A shows an example of an area (area indicated by an ellipse) where wiring is congested in the arrangement area.
FIG. 9B shows a state in which the sides between the blocks facing the area indicated by the ellipse in FIG. This state corresponds to the example in which the area of the block is expanded in S11 of FIG. 2 described above, and the interval between the blocks is narrow. In this state, after executing the processing of S2, S3, and S4 in FIG. 2 described above, it is possible to return to the original block in the state of FIG. 9A in S12 and secure a wide wiring area. .
[0065]
FIG. 10 shows an explanatory diagram (S2) of the present invention. This is an explanatory view of the operation of the other embodiment of S2 of FIG. 2 described above.
FIG. 10A shows a flowchart.
[0066]
In FIG. 10A, S51 extracts overlapping blocks. This extracts blocks that overlap in the placement area.
In S52, it is determined whether or not the same type of block exists. In the case of YES, it has been found that there are a plurality of blocks of the same type (for example, blocks having the same shape). Leave it unchanged. On the other hand, in the case of NO, since it has been found that the same type of block does not exist, as described above in S53, the overlapping block moves toward the center so that there is less overlap (see FIG. 10). (See (b)), the area is made equal to the first in S54.
[0067]
With the above, blocks of the same type that overlap in the placement area are left unchanged without being deformed, and after moving so that only the sides of the overlapping block overlap, the shape is similar to the original area. By returning in step, it is possible to reduce the processing of the internal arrangement of the block of the same type as it is.
[0068]
FIG. 10B shows an example in which the shapes of the blocks i and j of the same type are unchanged. As shown in the figure, among the blocks overlapping in the arrangement area, the blocks i and j having the same shape are overlapped by making the side of S53 in FIG. The process of deforming so as to be reduced is skipped, and the processes of S53 and S54 are performed only on the overlapping partner block to deform the shape of the block so that the overlap is reduced. As a result, it is possible to leave the same type of block as it is, and to quickly perform arrangement processing in the same type of block.
[0069]
FIG. 11 is an explanatory diagram (S2) of the present invention. This is an explanatory view of the operation of the other embodiment of S2 of FIG. 2 described above.
FIG. 11A shows a flowchart.
[0070]
In FIG. 11A, S61 extracts overlapping blocks. This extracts blocks that overlap in the placement area.
In S62, the sides of all the blocks of the same type are moved toward the center so that there is less overlap. This is because, as shown in FIG. 11B, which will be described later, with respect to blocks i and j having the same overlapping type, all of them move so that there is less overlap toward the center with the same type (blocks of the same type). When the movements of i and j are different from each other, an optimal movement is performed in all blocks (for example, a movement in which all movement amounts are merged)).
[0071]
In S63, the area is made equal to the first.
As described above, all the blocks of the same type that overlap in the arrangement area move the same for the same side, and then return to the original area in a similar shape, so that all the blocks of the same type are subjected to the same deformation process. It is possible to reduce the processing of the internal arrangement of each block by using the same shape after the deformation.
[0072]
FIG. 11B shows an example in which the shape deformation of the same type of blocks i and j is the same. As shown in the figure, among the blocks overlapping in the arrangement region, the blocks i and j having the same shape are moved by the same side in S62 in FIG. By performing the same deformation process so that there is less overlap, the same type of blocks are all deformed to the same shape, so that the arrangement process within the same type of blocks can be performed quickly. It becomes.
[0073]
12 and 13 are explanatory views (S4) of the present invention. These show examples in which the strength of connection between blocks # 1 and # 2 in the arrangement area of FIG. 13 is changed.
FIG. 12A shows an example of the block arrangement calculation formula described above. This block arrangement calculation formula arranges three blocks # 1, # 2, and # 3 in the arrangement area of FIG. 13A described later, and the center of each block (coordinate p) that minimizes the wiring length. ).
[0074]
FIG. 12B shows an example in which the connection relationship c is changed and set when the connections of the blocks # 1 and # 2 shown in FIG. 13B are changed. Here, of the connection relation c,
・ One place of U ’
・ V'2
Are changed from U and V respectively. If the coordinates p (x1, x2, x3) are obtained by solving the block arrangement calculation formula after the change, the center coordinates of the blocks # 1, # 2, and # 3 can be obtained. For setting other values, refer to the block arrangement calculation formula of FIG. 8 and the flowchart of FIG.
[0075]
FIG. 13A shows a state in which blocks # 1, # 2, and # 3 are arranged in the arrangement area, and block # 1 and block # 2 overlap each other.
13B, U and V are set to U ′ and V ′ in the connection relation c in FIG. 12B described above, and values corresponding to the movement of the centers of the blocks # 1 and # 2 are set. , And the coordinates p (x1, x2, x3) are obtained.
[0076]
As described above, when the center of the overlapping block in the arrangement area is moved, the overlap is reduced by changing the corresponding parameter in the block arrangement calculation formula as shown in FIG. It is possible to recalculate the position of the block that is less than or equal to the given value with the wiring length after moving the block in a certain direction.
[0077]
FIG. 14 is an explanatory diagram of the present invention. This shows an example of preprocessing for enabling the present invention to be applied when, for example, a cell other than the block exists between the block i and the block j.
[0078]
14A and 14B show a flowchart.
In (a) and (b) of FIG. 14, S71 extracts a block. This extracts all blocks placed in the placement area.
[0079]
In S72, S81 to S85 in FIG. 14B are executed.
S81 extracts adjacent cells or blocks. For example, when block-cell-cell-blocks as shown in FIG. 14C described later are connected, these are sequentially extracted.
[0080]
In S82, it is determined whether the extracted block. In the case of YES, it adds to a list by S83, and progresses to S84. On the other hand, in the case of NO, S81 and S82 are recursively executed in S85, and the cell ends are sequentially repeated until a block is extracted. When a block is extracted, the determination in S82 becomes YES, and the process proceeds to S84.
[0081]
S84 determines whether all adjacent cells or blocks have been extracted. In the case of YES, it returns and returns to S72 and proceeds to the next S73. On the other hand, in the case of NO, the process returns to S81, and the next block or cell extraction, S82, etc. are repeated.
[0082]
Through the above S81 to S84, only the blocks in the arrangement area are added to the list, and the cells are deleted.
In step S73, a net is generated for each set of blocks in the list. As a result, only the blocks in the arrangement area are extracted (cells are deleted), and a net of blocks skipped by deleting cells as shown in FIG. 1 to 13, the block shape change (S2 in FIG. 2), the center movement of the block (S3 in FIG. 2), and the block arrangement with the minimum wiring length are calculated and determined (in FIG. 2). S4), and then the cell is returned to allow the block arrangement and cell arrangement with the minimum wiring length.
[0083]
FIG. 14C shows an example in which blocks and cells are connected in the arrangement area.
FIG. 14D shows an example in which a cell is deleted. This is because a list of blocks i and j from which cells have been deleted is created according to the flowcharts of FIGS. 14 (a) and 14 (b) with the blocks and cells of FIG. 14 (c) connected. By executing the above-described processes of FIGS. 1 to 13 for the blocks i and j in the middle, the present invention can be applied even if there are cells between the blocks. Then, by applying the present invention to minimize the wiring length and to eliminate the overlap or to return the cells to the original position in the block where the overlap is reduced, it is possible to realize a mixed arrangement of blocks and cells in the arrangement area. It is.
[0084]
(Appendix 1)
In an arrangement method for arranging blocks in an arrangement area,
Placing blocks within the placement area; and
A first step of extracting a block overlapping in the above-described arrangement and moving a predetermined amount in a direction away from the overlapping side of the block, and then transforming the shape by returning the area to be the same;
In a state where the area is returned to the original, a predetermined movement amount that moves the center of the block in a direction in which the overlap is reduced when the blocks overlap is calculated, and the calculated movement amount is outside the arrangement region. A second step of calculating the amount of movement to move the center of the block from the outside to the inside when
A third step of calculating the arrangement of the block having the minimum wiring length in the arrangement area based on the calculated movement amount;
And arranging the block having the smallest wiring length in the arrangement region by repeating the first to third steps.
[0085]
(Appendix 2)
The arrangement method according to claim 1, wherein the area is returned to be the same as the original by assuming that the area is returned to the original.
[0086]
(Appendix 3)
In a state where the area is returned to the original state, the center of the block is moved in a direction in which the overlap is reduced when the blocks are overlapped, and a predetermined distance is set so as to be separated from each other on a line segment connecting the centers of the overlapped blocks. When moving out of the arrangement area by calculating the amount of movement or moving the center of the block, it moves in the inner direction, or when it goes diagonally out to the side of the arrangement area, it moves in the reflecting inner direction. The arrangement method according to claim 1.
[0087]
(Appendix 4)
Based on the calculated movement amount, as a calculation of the arrangement of the block having the minimum wiring length in the arrangement area, the connection relationship and movement amount of the overlapping blocks are substituted into a predetermined formula, The arrangement method according to claim 1, wherein the arrangement of blocks having a minimum wiring length is calculated.
[0088]
(Appendix 5)
In the arrangement area, between the blocks where the wiring is congested, with the sides close to each other close to each other, the sides are reduced after the first to third steps are executed. The arrangement method according to any one of claims 1 to 4, wherein the arrangement is repeated to ensure a space between blocks where wiring is congested.
[0089]
(Appendix 6)
The arrangement method according to any one of claims 1 to 5, wherein, when blocks of the same type exist in the arrangement area, the shapes of both blocks are made unchanged, and arrangement processing in the blocks is reduced.
[0090]
(Appendix 7)
The arrangement method according to any one of claims 1 to 5, wherein when a block of the same type exists in the arrangement area, the deformation of both blocks is made the same, and arrangement processing in the block is reduced.
[0091]
(Appendix 8)
2. When cells exist between blocks, the cells existing between the blocks are removed, the first to third steps are repeated, and the process is terminated, and then the deleted cells are added back. The arrangement method according to claim 7.
[0092]
(Appendix 9)
In a placement program that places blocks in a placement area,
Means for placing blocks in the placement area;
A first means for extracting a block overlapping in the above-described arrangement and moving a predetermined amount in a direction away from the overlapping side of the block;
In a state where the area is returned to the original, a predetermined movement amount that moves the center of the block in a direction in which the overlap is reduced when the blocks overlap is calculated, and the calculated movement amount is outside the arrangement region. A second means for calculating the amount of movement for moving the center of the block from the outside to the inside when
A third means for calculating the arrangement of the block having the minimum wiring length in the arrangement area based on the calculated movement amount;
And an arrangement program for causing the block having the smallest wiring length to be arranged in the arrangement area by repeating the first to third means.
[0093]
(Appendix 10)
Means for placing blocks in the placement area;
A first means for extracting a block overlapping in the above-described arrangement and moving a predetermined amount in a direction away from the overlapping side of the block;
In a state where the area is returned to the original, a predetermined movement amount that moves the center of the block in a direction in which the overlap is reduced when the blocks overlap is calculated, and the calculated movement amount is outside the arrangement region. A second means for calculating the amount of movement for moving the center of the block from the outside to the inside when
A third means for calculating the arrangement of the block having the minimum wiring length in the arrangement area based on the calculated movement amount;
And a computer-readable recording medium recording a program that functions to repeat the first to third means and arrange a block having the smallest wiring length in the arrangement area.
[0094]
(Appendix 11)
In a placement device that places blocks in a placement area,
Means for placing blocks in the placement area;
A first means for extracting a block overlapping in the above-described arrangement and moving a predetermined amount in a direction away from the overlapping side of the block;
In a state where the area is returned to the original, a predetermined movement amount that moves the center of the block in a direction in which the overlap is reduced when the blocks overlap is calculated, and the calculated movement amount is outside the arrangement region. A second means for calculating the amount of movement for moving the center of the block from the outside to the inside when
A third means for calculating the arrangement of the block having the minimum wiring length in the arrangement area based on the calculated movement amount;
And arranging the block having the minimum wiring length in the arrangement region by repeating the first to third means.
[0095]
【The invention's effect】
As described above, according to the present invention, the blocks that overlap in the arrangement area are extracted and the sides of the blocks are moved in the direction in which the overlap is reduced to return to the original area and the block overlap is reduced. After the center of the block is moved, the configuration is repeated to recalculate the layout of the block that minimizes the wiring length, so the wiring length is minimized in the floor plan of the LSI hierarchical design As described above, the shape and arrangement of the blocks can be automatically determined. With these,
(1) It is possible to determine the arrangement of blocks that do not overlap in the arrangement area using a computer.
[0096]
(2) The block arrangement obtained is contained inside the arrangement area, and overlapping with other blocks and prohibited areas can be eliminated.
(3) When the block shape is variable, an optimum block shape can be obtained.
[0097]
(4) When the block shape is the same type, the shape is not changed in the arrangement region, or even if it is changed, the shape is changed to the same shape, so that the same block shape is maintained and the elements in the same block are Arrangement can be simplified.
[0098]
(5) Even if cells other than blocks are mixed in the arrangement area, after extracting only the blocks and arranging the block shape and position optimally, the cells are arranged at the original positions, and the cells are scattered in the blocks. However, the present invention can be applied.
[Brief description of the drawings]
FIG. 1 is a system configuration diagram of the present invention.
FIG. 2 is a flowchart (overall) for explaining the operation of the present invention.
FIG. 3 is an operation explanation flowchart (S2) of the present invention.
FIG. 4 is an explanatory diagram (S2) of the present invention.
FIG. 5 is an explanatory diagram (S3) of the present invention.
FIG. 6 is an explanatory diagram (S3) of the present invention.
FIG. 7 is an explanatory diagram (S4) of the present invention.
FIG. 8 is an explanatory diagram (S4) of the present invention.
FIG. 9 is an explanatory diagram of the present invention.
FIG. 10 is an explanatory diagram (S2) of the present invention.
FIG. 11 is an explanatory diagram (S2) of the present invention.
FIG. 12 is an explanatory diagram (S4) of the present invention.
FIG. 13 is an explanatory diagram (S4) of the present invention.
FIG. 14 is an explanatory diagram of the present invention.
[Explanation of symbols]
1: Processing device
2: Block arrangement means
3: Block shape calculation means
4: Repulsive force calculation means
5: Block rearrangement means
6: Display device
7: Input device
8: Database

Claims (5)

配置領域内にブロックを配置する配置方法において、
配置領域内にブロックを配置するステップと、
上記配置した状態で重なっているブロックを抽出して当該ブロックの重なっている辺を離れる方向に所定量を移動した後、ブロック形状を、相似形状を維持したまま、面積を元に等しく戻して変形する第1のステップと、
上記面積をに戻した状態で、ブロックが重なっているときに、当該重なるブロックの中心を結ぶ線分上で、当該ブロックの中心が相互に離れ、重なりが少なくなるように所定の移動量を算出し、当該算出した移動量で上記配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出する第2のステップと、
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置を計算する第3のステップと
を設け、上記第1から第3のステップを繰り返し上記配置領域内に配線長が最小のブロックを配置する配置方法。
In an arrangement method for arranging blocks in an arrangement area,
Placing blocks within the placement area; and
After extracting the overlapping blocks in the above arrangement and moving a predetermined amount in the direction away from the overlapping sides of the blocks , the block shape is transformed back to the original area while maintaining the similar shape. A first step to:
When the blocks are overlapped in the state where the area is returned to the original , the predetermined movement amount is set so that the centers of the blocks are separated from each other on the line segment connecting the centers of the overlapping blocks and the overlap is reduced. A second step of calculating a movement amount for moving the center of the block from the outside to the inside when the calculated movement amount is outside the arrangement area;
A third step of calculating the arrangement of the block having the minimum wiring length in the arrangement area based on the calculated movement amount, and repeating the first to third steps in the arrangement area. A placement method that places blocks with the shortest wiring length.
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置の計算として、所定の式に、重なるブロックの接続関係、移動量を代入して上記配置領域内で配線長が最小となるブロックの配置を計算する請求項1記載の配置方法。Based on the calculated movement amount, as a calculation of the arrangement of the block having the minimum wiring length in the arrangement area, the connection relationship and movement amount of the overlapping blocks are substituted into a predetermined formula, The arrangement method according to claim 1, wherein the arrangement of blocks having a minimum wiring length is calculated. 上記配置領域内で配線が混雑するブロックとブロックの間について、当該ブロックとブロックの相対する辺を近づけて間を狭くした状態で、上記第1から第3のステップを実行した後に当該辺を元に戻すことを繰り返し、配線が混雑するブロックとブロックの間を確保する請求項1あるいは請求項2記載の配方法。In the arrangement area, between the blocks where the wiring is congested, with the sides close to each other close to each other, the sides are reduced after the first to third steps are executed. Repeat to return to, placement method of claim 1 or claim 2, wherein securing between the block and the block wiring is congested. 配置領域内にブロックを配置する配置プログラムにおいて、
配置領域内にブロックを配置する手段と、
上記配置した状態で重なっているブロックを抽出して当該ブロックの重なっている辺を離れる方向に所定量を移動し、ブロック形状を、相似形状を維持したまま、面積を元に等しく戻して変形する第1の手段と、
上記面積をに戻した状態で、ブロックが重なっているときに、当該重なるブロックの中心を結ぶ線分上で、当該ブロックの中心が相互に離れ、重なりが少なくなるように所定の移動量を算出し、当該算出した移動量で上記配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出する第2の手段と、
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置を計算する第3の手段と
を設け、上記第1から第3の手段を繰り返し上記配置領域内に配線長が最小のブロックを配置する、ように機能させるための配置プログラム。
In a placement program that places blocks in a placement area,
Means for placing blocks in the placement area;
Extract the blocks that overlap in the above arrangement, move a predetermined amount in the direction away from the overlapping sides of the blocks, and transform the block shape back to the same area while maintaining the similar shape A first means;
When the blocks are overlapped in the state where the area is returned to the original , the predetermined movement amount is set so that the centers of the blocks are separated from each other on the line segment connecting the centers of the overlapping blocks and the overlap is reduced. A second means for calculating and calculating a movement amount for moving the center of the block from the outside to the inside when the calculated movement amount is outside the arrangement area;
And a third means for calculating the arrangement of the block having the minimum wiring length in the arrangement area based on the calculated movement amount, and repeating the first to third means in the arrangement area. Placement program for functioning to place the block with the shortest wiring length.
配置領域内にブロックを配置する手段と、
上記配置した状態で重なっているブロックを抽出して当該ブロックの重なっている辺を離れる方向に所定量を移動し、ブロック形状を、相似形状を維持したまま、面積を元に等しく戻して変形する第1の手段と、
上記面積をに戻した状態で、ブロックが重なっているときに、当該重なるブロックの中心を結ぶ線分上で、当該ブロックの中心が相互に離れ、重なりが少なくなるように所定の移動量を算出し、当該算出した移動量で上記配置領域外にでたときは外から内の方向へブロックの中心を移動する移動量を算出する第2の手段と、
上記算出した移動量をもとに、上記配置領域内で配線長が最小となるブロックの配置を計算する第3の手段と
を設け、上記第1から第3の手段を繰り返し上記配置領域内に配線長が最小のブロックを配置する、ように機能するプログラムを記録したコンピュータ読取可能な記録媒体。
Means for placing blocks in the placement area;
Extract the blocks that overlap in the above arrangement, move a predetermined amount in the direction away from the overlapping sides of the blocks, and transform the block shape back to the same area while maintaining the similar shape A first means;
When the blocks are overlapped in the state where the area is returned to the original , the predetermined movement amount is set so that the centers of the blocks are separated from each other on the line segment connecting the centers of the overlapping blocks and the overlap is reduced. A second means for calculating and calculating a movement amount for moving the center of the block from the outside to the inside when the calculated movement amount is outside the arrangement area;
And a third means for calculating the arrangement of the block having the minimum wiring length in the arrangement area based on the calculated movement amount, and repeating the first to third means in the arrangement area. A computer-readable recording medium having recorded thereon a program that functions to arrange a block having a minimum wiring length.
JP2001051560A 2001-02-27 2001-02-27 Arrangement method, arrangement program, and recording medium Expired - Fee Related JP3953740B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001051560A JP3953740B2 (en) 2001-02-27 2001-02-27 Arrangement method, arrangement program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001051560A JP3953740B2 (en) 2001-02-27 2001-02-27 Arrangement method, arrangement program, and recording medium

Publications (2)

Publication Number Publication Date
JP2002252283A JP2002252283A (en) 2002-09-06
JP3953740B2 true JP3953740B2 (en) 2007-08-08

Family

ID=18912319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001051560A Expired - Fee Related JP3953740B2 (en) 2001-02-27 2001-02-27 Arrangement method, arrangement program, and recording medium

Country Status (1)

Country Link
JP (1) JP3953740B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595674B2 (en) * 2007-07-23 2013-11-26 Synopsys, Inc. Architectural physical synthesis

Also Published As

Publication number Publication date
JP2002252283A (en) 2002-09-06

Similar Documents

Publication Publication Date Title
JP2954894B2 (en) Integrated circuit design method, database device for integrated circuit design, and integrated circuit design support device
US8464189B2 (en) Technology migration for integrated circuits with radical design restrictions
US5416722A (en) System and method for compacting integrated circuit layouts
US8312404B2 (en) Multi-segments modeling bond wire interconnects with 2D simulations in high speed, high density wire bond packages
JPH11272732A (en) Graphic layout change system and method therefor
US20030009736A1 (en) Method and apparatus for detail routing using obstacle carving around terminals
JPH10275176A (en) Interconnection modeling system and method therefor
WO2000065490A1 (en) Timing optimization in presence of interconnect delays
KR100299877B1 (en) Compaction method, compaction device and wiring method
CN109074412B (en) Interactive wiring using connections in auto-soldered and auto-cloned circuits
US6075934A (en) Method for optimizing contact pin placement in an integrated circuit
JP5621427B2 (en) Resistance value calculation program, resistance value calculation method, resistance value calculation device
JP3953740B2 (en) Arrangement method, arrangement program, and recording medium
Ying et al. An analytical approach to floorplanning for hierarchical building blocks layout (VLSI)
US6931610B1 (en) Method for rapid estimation of wire delays and capacitances based on placement of cells
WO2001075687A9 (en) Method and apparatus to optimize an integrated circuit design using transistor folding
JP2004145379A (en) Method for calculating inductance of semiconductor integrated circuit
JP3147045B2 (en) Method and apparatus for verifying cell layout of LSI layout
JP2566061B2 (en) How to convert area data to path data
JP5326471B2 (en) Clock signal supply circuit design method, information processing apparatus, and program
US7797649B1 (en) Method and system for implementing an analytical wirelength formulation
KR100336163B1 (en) System and method of generating three-dimensional structure for numerical analysis
JP3433025B2 (en) Module placement method
WO1998055950A1 (en) Integrated circuit layout synthesis tool
Zhou Machine learning based techniques for routing interconnects in very large scale integrated (VLSI) circuits

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060121

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070425

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

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140511

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees