JP2000259682A - 自動部品配置システム及び方法並びに自動部品配置プログラムを記録した記録媒体 - Google Patents

自動部品配置システム及び方法並びに自動部品配置プログラムを記録した記録媒体

Info

Publication number
JP2000259682A
JP2000259682A JP11066793A JP6679399A JP2000259682A JP 2000259682 A JP2000259682 A JP 2000259682A JP 11066793 A JP11066793 A JP 11066793A JP 6679399 A JP6679399 A JP 6679399A JP 2000259682 A JP2000259682 A JP 2000259682A
Authority
JP
Japan
Prior art keywords
component
dimensional
area
components
specific gravity
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.)
Granted
Application number
JP11066793A
Other languages
English (en)
Other versions
JP3389875B2 (ja
Inventor
Hideo Kikuchi
秀雄 菊地
Arata Tanido
新 谷戸
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP06679399A priority Critical patent/JP3389875B2/ja
Priority to US09/523,300 priority patent/US6560505B1/en
Publication of JP2000259682A publication Critical patent/JP2000259682A/ja
Application granted granted Critical
Publication of JP3389875B2 publication Critical patent/JP3389875B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 【課題】総配線長が最短に近い部品配置を短時間に得る
自動部品配置装置および方法の提供。 【解決手段】位置指定部品を核とする部品群を求め、部
品配置領域を、部品群の総部品面積の比で部品群毎の矩
形に分割してなる仕切部屋を作成する手段と、仕切部屋
内の未配置部品と既配置部品とを結ぶネットの数から未
配置部品に接続されるその他のネット数を減算した結果
を未配置部品の面積で除算した値を未配置部品の部品比
重とする手段と、未配置部品を部品比重の大きい順に既
配置部品の近隣に第1(第2)の一次元方向に配置する
手段と、仕切部屋毎に第1、第2の一次元部品配置を直
交座標軸における部品の配置位置とし部品の二次元平面
での配置位置を計算する手段と、仕切部屋内の部品毎に
分割する分割領域を導出し、分割領域に収納される部品
を分割領域の中央に配置する手段とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、部品の自動配置装
置及び方法に関し、特に、部品、図形等を平面上に自動
配置するCADシステム等に用いて好適とされる自動部
品配置装置及び方法に関する。
【0002】より詳細には、本発明は、印刷配線板、半
導体集積回路の設計工程において、印刷配線板の部品あ
るいは半導体集積回路のセルの形状データを読み込み、
部品端子同士を接続するネットデータを読み込み、その
部品を二次元空間に配置する処理をコンピュータで実行
させる自動部品配置処理システム、あるいは電子回路
図、コンピュータプログラムのフローチャートなどのシ
ンボルの位置を自動配置する自動部品配置設計システム
に用いて好適な自動部品配置システム及び方法に関す
る。
【0003】
【従来の技術】従来の印刷配線板あるいは半導体集積回
路の自動部品配置システムに適用される部品配置方法に
関する刊行物として、例えば刊行物(1)(特開平6−
332983号公報)には、総配線長などの評価基準の
小さな部品配置を高速に求めることができる部品配置最
適化方法として、部品を均一な大きさのブロックまたは
ブロックの集合に仮想的に変換して、複数のブロックま
たはブロックの集合の置き換えを行うことにより、総配
線長などの評価基準がなるべく小さくなるようにブロッ
クの配置を改善して、そのブロックの配置をもとに部品
の配置を決定する方法が提案されている。この方法を実
現するシステム構成としては、キーボード等の入力手段
と、CRTディスプレイ等の表示手段と、CPUとメモ
リとハードディスクからなるデータ処理部とから構成さ
れるコンピュータシステムにプログラムを与えて動作す
る構成とされ、初期配置を行なった後に部品位置を交換
し総配線長を改善していく。その際に、部品の交換が容
易になるように、部品をその大きさが均一なブロックま
たはブロックの集合に仮想的に変換し、そのブロックの
最善の部品配置を計算し、その後に、部品を仮想的な形
状から実際の形状に戻して配置するものであった。
【0004】また、刊行物2(特開平3−108739
号公報)には、大きさの異なるブロックを自動的に配置
し、配線を決定するための高集積回路のブロック配置方
法において、大きさの無いブロック間をばねで連結した
質点系のばねモデルを使って初期配置する手順、少なく
とも一部のブロックの大きさを円で与えてブロック間の
重なりがなくなるように再配置する手順、外形を回路基
板の枠に合わせてコンパクト化する手順、ブロックの形
状を円から実際の形状に変更する手順、ブロックを膨張
させて配線のための領域を割り当てる手順、許容範囲内
で、各ブロックのアスペクト比を調整する手順とを含む
配置配線方法が提案されている。この方法は、回路ブロ
ック間をばねで連結した質点系のばねモデルを使ってい
る。その力学モデルのエネルギーは、ネット長の二乗和
になるが、これを評価関数とし、それを最小にする位
置、すなわち重心位置に部品を配置する重心法により部
品を初期配置する。次に、その部品(回路ブロック)を
その面積相当の円で近似し、その円の配置を計算した後
に、部品の形状を円から実形状に変更して、部品配置を
調整している。
【0005】同様に、刊行物(3)(特開平3−124
046号公報)においても、質点系のばねモデルを用い
て初期配置していた。
【0006】更に、刊行物(4)(特開平6−3329
84号公報)には、二素子交換によらないで高速に最適
解を得ることを可能とする素子配置方法として、ネット
の重心位置を決定する処理、各処理について該当する各
端子位置から上記端子の当該ネット重心のベクトルを求
め上記ベクトルを当該端子について平均した平均ベクト
ルに従って上記素子の移動位置を決定する素子移動位置
決定処理、移動位置の座標値の大小に従って素子の順列
を決定する素子順列決定処理、該素子順列によって素子
を並べて素子形状と初期配置の行列形状に合わせて素子
間の重なり構造のない行列構造の素子配置を決定する素
子位置決定処理を備えた素子配置方法が提案されてい
る。この方法は、予め定められた数行の配置行の上に素
子を配置し、その配置位置を重心法で計算し、その位置
の座標値の大小に従って素子の配置順序を定め、素子を
その順に、素子同士が重ならないように配置していくと
いうものである。
【0007】上記刊行物(1)に記載された方法は、初
期配置を行なった後に、評価関数を用いて、初期配置を
改善して部品配置の最適化を行なう。評価関数として総
配線長を用い、総配線長が最小になる最適な部品配置を
求める。この総配線長は、ネットで結ばれる部品端子間
のマンハッタン距離の総和として定義される。
【0008】また、他の評価関数として、刊行物
(2)、刊行物(4)に記載されているように、ネット
で結ばれる部品端子間の距離の二乗和を総配線長に替わ
る評価関数とする場合もある。
【0009】ところで、このような最適な部品配置を見
つけるという問題には、解折的な解法が存在せず、最適
解を見つけるためには、全部品の配置可能なあらゆる組
み合わせ毎に総配線長を計算し、その値が最小になる組
み合わせを選定する方法が考えられる。
【0010】しかしながら、この場合の組み合わせの数
は、部品数Nの階乗N!となり、最適解を見つけるため
の計算に必要とされる演算時間(計算量)は、部品数N
の増加とともに、爆発的に増大する。
【0011】このため、従来より、最適解に近い解を高
速に見つける部品配置改善のアルゴリズムの開発が行な
われてきた。
【0012】図34は、この部品配置改善方法の1つで
ある、ペア交換法のアルゴリズムを説明するためのフロ
ーチャートである。
【0013】まず、部品の初期配置を行なう(ステップ
S71)。この部品の初期配置はランダムに決められた
り、ペアリンキング法、あるいはクラスタ成長法、ある
いは重心法などの方法で、ある程度総配線長が短くなる
ように決めてもよい。
【0014】次に、1回目のサイクルを開始する(ステ
ップS72)。
【0015】次に、1回のサイクルで、まだ選ばれてい
ない部品から1つの部品Biを選択する(ステップS7
3)。ここで、Bの添え字iは部品の番号とする。
【0016】次に、選択された部品Biと配置位置を交
換した場合に最も総配線長が短くなる部品の集合{B
j}を、部品Biと交換可能な部品の集合から求め(ス
テップS74)、その交換により総配線長が短くなる場
合には(ステップS75)、その内の1つの部品と部品
Bi の配置位置を交換する(ステップS76)。
【0017】全ての部品を計算するまでこの処理を繰り
返す(ステップS77)。
【0018】そして、以上のステップS73からステッ
プS77までの処理を行なった結果の総配線長を、それ
以前の総配線長と比較し、総配線長の低減率が予め定め
た値よりも小さくなるまで処理を繰り返す(ステップS
78)。
【0019】
【発明が解決しようとする課題】しかしながら、このよ
うに、単に部品交換で総配線長が小さくなる部品配置を
選ぶことを繰り返すという方法では、最後にどの部品を
交換しても総配線長が小さくならない配置が出来上がる
が、この特徴を持った部品配置は複数存在し、このよう
な解に落ち着いた場合には、総配線長が、それよりも小
さい解があるにもかかわらず、解を発見することが不可
能になってしまう局所安定化という現象を生じる問題点
があった。
【0020】このため、分子の加熱時の攪乱による状態
遷移により局所安定化から抜け出す原理を、部品配置探
索の問題に適用したシミュレーテッドアニーリング法を
併用することで、最適な解を得ようとしてきた。すなわ
ち、部品配置の解を1つに安定させず、ランダムに解を
いくつかに変えた状態から、より評価関数が改善された
解を選ぶというものである。
【0021】また、遺伝的アルゴリズムの手法で、得ら
れた解の一部をランダムに攪乱した「子孫」の解を得
て、そこから評価関数が改善された解を選ぶ処理を繰り
返す事で解を改善する手法も知られている。
【0022】しかしながら、従来のシミュレーテッドア
ニーリング法あるいは遺伝的アルゴリズム法を用いた自
動部品配置システムは、ペア交換法により解を求める時
間よりも、桁ちがいに多くの演算時間を必要とするとい
う問題がある。
【0023】その理由は、シミュレーテッドアニーリン
グ法や遺伝的アルゴリズム法は、ランダムな攪乱を利用
した多数の微妙に異なる解を作り、それぞれに対してペ
ア交換法を適用して得られた解から改善された解を得、
これを再び攪乱して多数の解を得、得られた解を再び評
価するという手順が実行されるため、多くの計算時間を
必要とするためである。
【0024】この問題の本質は、最適解に至る道が断た
れないように、攪乱を適切に、かつ十分広範に行なわな
ければいけないことと、ランダムな攪乱を加えるのに比
して、解へ収束させる処理も攪乱を十分回復できるだけ
多くの収束処理を行なわなければならない、ということ
にある。
【0025】結局、最適解により近い解を得るために
は、なるべく大きい攪乱を施し、次に、その攪乱を収束
させるのに十分な収束処理を行なう、つまり、より良い
解を得るためには、より多くの処理時間が必要である、
という問題があった。
【0026】一方、刊行物(2)乃至刊行物(4)等に
記載された方法では、質点系のばねモデルを用いた初期
配置を行ない計算機の処理時間は短く改善しているが、
質点系のばねモデルによる初期配置では、大面積のブロ
ックと小面積のブロックを区別することが出来ず、得ら
れる解は、部品の面積の影響を反映していない、という
問題がある。
【0027】さらに、別の問題について以下に説明す
る。刊行物(4)等に記載されている、部品をネットの
重心位置に配置する方法は、必ずしも総ネット長を最短
にしない。例えば、第1の部品が基板の左端と2本のネ
ットで結ばれ、右端とは1本のネットで結ばれる場合を
考えると、第1の部品の重心位置は基板の左端から右端
までの3分の1の位置にある。また、第2の部品が基板
の左端と6本のネットで結ばれ、右端とは4本のネット
で結ばれる場合は、第2の部品の重心位置は基板の左端
から右端までの5分の2の位置にあり、第1の部品の重
心位置よりも右になる。
【0028】しかし、総ネット長を最短にするには、第
2の部品の左右のネット数の差は2であり第1の部品よ
りも1つ大きいため、第2の部品を優先し左に配置する
解は総配線長が短くなる最善の解になる。
【0029】しかしながら、重心法によると、結果はそ
うならず、最善の解が得られない、という問題がある。
【0030】また、重心法の評価関数は、部品の遠方の
端子からの寄与が距離の二乗に比例して大きくなるた
め、遠方の部品との関係が近くの部品との関係よりも重
み付けられているので、総配線長を短くする配置を直接
的に得るには、不向きな評価関数である。
【0031】上記問題点に対処すべく、本願出願人によ
る刊行物(5)(特開平6−149939号公報:本願
発明者の一人を発明者に含む)には、その解決方法が提
案されている。
【0032】この解決方法は、部品から引き出す配線の
数を引力の強さとして、これを部品の面積で割った(疑
似)部品比重を求め、部品を部品比重の大きい順に次元
に配置する。この一次元部品配置の解を2つ求め、これ
らを縦および横方向の座標軸への部品の投影とした二次
元平面上の部品配置(概略部品配置)を求める、という
ものである。この方法は、部品及び部品群の配置を自由
に変更して最善の概略部品配置(初期配置)を得るもの
である。
【0033】しかしながら、この方法は、概略部品配置
そのままでは、設計に直接利用することができない未完
成な部品配置である、という点で問題がある。
【0034】したがって、本発明は、上記問題点に鑑み
てなされたものであって、その目的は、この概略部品配
置の部品を実際の部品形状に基づき最適な位置に配置
し、以降の設計に直接利用できる配置を完成させる自動
部品配置装置および方法を提供することである。
【0035】また本発明の他の目的は、総配線長を最短
にする部品配置位置の計算を、部品の位置交換の試行錯
誤をせずに、全部品の配置位置を一度に計算する事を可
能とすることで、総配線長が最短に近い部品配置を短時
間に得る自動部品配置装置および方法を提供することで
ある。なお、上記以外の本発明の目的、特徴、作用効果
等は以下の説明でさらに明らかとされる。
【0036】
【課題を解決するための手段】前記目的を達成する本発
明に係る装置は、部品端子同士を接続するネットデータ
と、部品データと、位置指定部品の位置データとを入力
し、これらのデータを記憶手段に記憶する第1の手段
と、前記位置指定部品を核とする部品群を導出する第2
の手段と、部品配置領域を、前記部品群の総部品面積の
比で、前記部品群毎の矩形形状に分割してなる仕切部屋
を作成する第3の手段と、前記仕切部屋毎に、前記仕切
部屋内の未配置部品と既配置部品とを結ぶネットの数か
ら、前記未配置部品に接続されるその他のネット数を減
算した結果を、前記未配置部品の面積で除算し前記除算
結果を前記未配置部品の部品比重として記憶する第4の
手段と、前記未配置部品を、その部品比重の大きい順
に、前記既配置部品の近隣に、第1の一次元方向に配置
した第1の一次元部品配置を求めるとともに、前記未配
置部品を、その部品比重の大きい順に、前記既配置部品
の近隣に、前記第1の一次元方向と直交する第2の一次
元方向に配置した第2の一次元部品配置を求める第5の
手段と、前記仕切部屋毎に、前記第1の一次元部品配置
と前記第2の一次元部品配置を直交座標軸における部品
の配置位置とし、部品の二次元平面での配置位置を計算
する第6の手段と、前記仕切部屋について仕切部屋内の
部品毎に分割する分割領域を導出し、前記分割領域に収
納される部品を、前記分割領域の中央に配置する第7の
手段と、を含む。
【0037】前記目的を達成する本発明に係る方法は、
(a)部品端子同士を接続するネットデータと、部品デー
タと、位置指定部品の位置データとを入力し、これらの
データを記憶手段に記憶する第1のステップと、(b)
前記位置指定部品を基準とする部品群を導出する第2の
ステップと、(c)部品配置領域を、前記部品群の総部
品面積の比で、前記部品群毎の矩形形状に分割してなる
仕切部屋を作成する第3のステップと、(d)前記仕切
部屋毎に、前記仕切部屋内の未配置部品と既配置部品と
を結ぶネットの数から、前記未配置部品に接続されるそ
の他のネット数を減算した結果を、前記未配置部品の面
積で除算し、前記除算結果を前記未配置部品の部品比重
として記憶し、前記未配置部品を、その部品比重の大き
い順に、前記既配置部品の近隣に、第1の一次元方向に
配置した第1の一次元部品配置を求める第4のステップ
と、(e)前記仕切部屋毎に、前記仕切部屋内の未配置
部品と既配置部品とを結ぶネットの数から、前記未配置
部品に接続されるその他のネット数を減算した結果を、
前記未配置部品の面積で除算し前記除算結果を前記未配
置部品の部品比重として記憶し、前記未配置部品を、そ
の部品比重の大きい順に、前記既配置部品の近隣に、前
記第1の一次元方向と直交する第2の一次元方向に配置
した第2の一次元部品配置を求める第5のステップと、
(f)前記仕切部屋毎に、前記第1の一次元部品配置と
前記第2の一次元部品配置を直交座標軸における部品の
配置位置とし、部品の二次元平面での配置位置を計算す
る第6のステップと、(g)前記仕切部屋について仕切
部屋内の部品毎に分割する分割領域を導出し、前記分割
領域に収納される部品を、前記分割領域の中央に配置す
る第7のステップと、を含む。
【0038】
【発明の実施の形態】本発明の実施の形態について以下
に説明する。最初に本発明の原理について説明する。本
発明は、先ず、複数の位置指定部品の位置データを入力
する。次に、以下のようにして、入力された部品データ
から部品を、それぞれの位置指定部品を基準とした部品
群に所属させる。
【0039】まず部品が部品群に接続するネット数を、
その部品の面積で除算した値を、部品比重として、この
部品比重を、物理現象の比重に対応させる。
【0040】部品比重が最大になる部品と、部品群との
組み合わせを抽出し、当該部品を部品群に加える。こう
して、位置指定部品を核とするすなわち、位置指定部品
を基準にグループ化される部品群のメンバーを増す。
【0041】この処理を繰り返し、全ての部品を、いず
れかの位置指定部品を核とする部品群に所属させる。ま
た、以上の処理は、位置指定部品を基準としてグループ
化される部品群を導出したが、他の方法として、操作者
からの指定を受けグループ化する部品群を決定する処理
も可能である。
【0042】次に、これらの部品群の面積の比で、全体
の部品配置領域を矩形形状に分割した仕切領域(以下
「仕切部屋」という)を作成する。なお、本願明細書で
用いる仕切部屋という用語の「部屋」は、部品配置領域
の二次元平面における分割された区画(パーティショ
ン)を意味しており、3次元空間の部屋を意味するもの
ではないことは明らかである。
【0043】次に、X−Y二次元平面において、仕切部
屋毎に、各部品のX軸に対して右下がり45度方向(第
1の一次元座標軸)の部品比重を計算する。すなわち、
部品同士を結ぶネットの右下がり45度方向へ投影した
長さの和(あるいは総配線長)を、物理現象の位置エネ
ルギーに対応させる。
【0044】そして、物質の位置エネルギーを最小にす
る配置は、比重の大きい物質の順に下から配置すること
で得られるという物理現象に対応させ、部品を第1の一
次元座標軸方向に、部品比重の大きい順に配置した第1
の一次元部品配置位置を計算することで、その方向の総
配線を最短にする部品配置位置を得る。
【0045】次に、同様に、仕切部屋の部品を、X軸に
対して右上がり45度の第2の一次元座標軸(第2の一
次元座標軸は第1の一次元座標軸に直交する)上に投影
される部品比重を計算し、部品を部品比重の大きい順に
第2の一次元座標軸上に一列に配置し、その部品の配置
の座標を第2の一次元部品配置位置として記録する。
【0046】そして、部品の第1の一次元部品配置位置
と、第2の一次元部品配置位置とを、部品の右下がり4
5度の座標軸の座標値と、右上がり45度の座標軸の座
標値として定められる二次元平面上の部品配置位置を計
算する。
【0047】次に、この二次元平面上に配置した部品群
を仕切部屋内に収納し部品群の配置位置を整列する。こ
の第1の方法は、部品群の配置をコンパクション処理を
用いて仕切部屋内に部品群を配置する。また、部品群を
仕切部屋内に収納する第2の方法は、部品群の全体を包
含し、形が矩形に限定されない任意形状の包含四角形を
計算し、その包含四角形を矩形の仕切部屋に写像する座
標変換を行い、その写像による部品配置位置を計算す
る。
【0048】次に、仕切部屋内の部品群を、二次元平面
上で左右の部品群に分ける縦仕切線を作成し、あるい
は、上下の部品群に分ける横仕切線を作成し、収納する
部品群の面積の比で仕切部屋の領域を分割する。
【0049】こうして仕切線で分割した領域である仕切
部屋を、更に垂直方向の仕切線で分割する処理を繰り返
し、部品の面積の比で分けた部品毎の仕切部屋を作成す
る。
【0050】次に、部品毎に作成された仕切部屋の中央
に、部品を配置し、部品位置を整合させる。
【0051】本発明は、その好ましい装置構成の一実施
の形態において、図1を参照すると、部品端子同士を接
続するネットデータと、部品データとを入力し、これら
のデータを部品データ記憶手段に記憶する部品データ入
力手段(101)と、位置指定部品の位置データを入力
し部品データ記憶手段に記憶する操作指令入力手段(1
03)と、前記位置指定部品を核とする部品群を導出す
る部品群作成手段(106)と、部品配置領域を、部品
群の総部品面積の比で、部品群毎の矩形形状に分割して
なる仕切部屋を作成する仕切部屋作成手段(108)
と、前記仕切部屋毎に、前記仕切部屋内の未配置部品と
既配置部品とを結ぶネットの数から、前記未配置部品に
接続されるその他のネット数を減算した結果を、前記未
配置部品の面積で除算し前記除算結果を前記未配置部品
の部品比重として記憶する一次元部品比重計算手段(1
12)を備える。
【0052】さらに、前記未配置部品を、その部品比重
の大きい順に、前記既配置部品の近隣に、第1の一次元
方向に配置した第1の一次元部品配置を求める一次元整
列手段(111)を備え、つづいて一次元整列手段(1
11)により、前記未配置部品を、その部品比重の大き
い順に、前記既配置部品の近隣に、前記第1の一次元方
向と直交する第2の一次元方向に配置した第2の一次元
部品配置を求める。
【0053】そして、本発明の一実施の形態において
は、前記仕切部屋毎に、前記第1の一次元部品配置と前
記第2の一次元部品配置を直交座標軸における部品の配
置位置とし、部品の二次元平面での配置位置を計算する
部品二次元配置手段(113)と、前記仕切部屋につい
て仕切部屋内の部品毎に分割する分割領域を導出し、前
記分割領域に収納される部品を、前記分割領域の中央に
配置する仕切部屋分割手段(115)と、を備える。
【0054】また本発明は、その好ましい実施の形態に
おいて、部品同士を結ぶネット数が他の部品と結ぶネッ
ト数よりも予め指定した値よりも大きい場合、前記部品
と相手の部品の集合のクラスタデータを作成するクラス
タ作成手段(104)を備える。そして、仕切部屋分割
手段(115)は、前記クラスタが部品と同等に配置し
た後に、前記クラスタを構成する部品に展開する。
【0055】本発明は、その好ましい実施の形態におい
て、部品群作成手段(106)で求めた前記部品群に未
所属の部品について、部品比重計算手段(105)でそ
の部品比重を計算し、前記部品比重の最大の未所属部品
から順に該部品群に所属させる。
【0056】本発明は、その好ましい実施の形態におい
て、部品二次元配置手段(113)で求められた前記直
交座標軸において配置した部品の集合を包含する任意形
状の包含四角形を導出し、前記包含四角形の形状を仕切
部屋の矩形形状に写像し、前記包含四角形とともに部品
の位置を仕切部屋内に写像するレイアウト写像手段(1
14)を備える。
【0057】本発明は、その好ましい実施の形態におい
て、仕切部屋分割手段(115)は、前記仕切部屋内の
前記部品群を、前記部品配置領域の2次元平面上で、縦
横に沿って分割し、該分割した部品群の面積比に基づ
き、前記仕切部屋を、縦横の仕切線で分割する手段と、
前記分割領域に部品が単体で収納されるまで部品群を分
割する分割領域を作成する手段と、各部品を前記分割領
域の中央に配置する手段と、を含む。
【0058】また本発明は、その好ましい第2の実施の
形態において、図18を参照すると、前記仕切部屋を各
直交座標軸方向で等分して形成する分割領域を導出する
手段(119)と、前記部品が隣接する分割領域に収納
される他の部品と結合するネット数を隣接力として計算
し、該部品がそれ以外の部品と結合するネット毎に該結
合先の部品方向を向く単位ベクトルを計算し、前記単位
ベクトルの総和のベクトルを計算して発散ベクトルと
し、前記隣接力から前記発散ベクトルの絶対値を引き算
した値を該部品の該部品領域への吸引力として計算する
手段と、複数の部品が一つの分割領域に重複して収納さ
れる場合に、吸引力の小さい部品から順に、前記分割領
域とは別の分割領域に移動させる手段(120)と、を
含む。前記部品を隣接する分割領域に移動することで前
記引力がより大きくなる分割領域を求め、該分割領域に
前記部品を移動させる。
【0059】また本発明は、その好ましい第3の実施の
形態において、図27を参照すると、部品端子同士を接
続するネットデータと、部品データとを入力し、これら
のデータを部品データ記憶手段に記憶する部品データ入
力手段(101)が指定バス配線のネット名データを入
力し、指定バス配線のネットに接続する部品の集合のク
ラスタを計算し、該クラスタの要素の部品の相対位置と
して前記第1の一次元部品配置による部品の相対位置を
記録した部品データを作成し、前記クラスタの要素の部
品の相対位置を保ち部品配置を計算するバス接続部品配
置手段(121)と、を含む。
【0060】上記した本発明の実施の形態において、上
記各手段は、コンピュータ上で実行されるプログラムに
よってその機能・処理が実現され、該プログラムを記録
したコンピュータで読み出し可能な記録媒体より読み出
し装置を介してコンピュータにプログラムを読み出し、
主記憶にロードして実行することで本発明を実施するこ
とができる。
【0061】
【実施例】本発明の実施例について図面を参照して以下
に説明する。
【0062】図1は、本発明の第1の実施例の構成を示
す図である。図1を参照すると、本発明の第1の実施例
をなす自動部品配置装置は、プログラム制御により動作
するコンピュータのデータ処理装置100と、表示装置
200と、入力装置300とを備えて構成される。な
お、以下では印刷配線板上に部品を配置するシステムに
本発明を適用した例に即して説明する。
【0063】データ処理装置100は、部品データ入力
部101と、部品データ記憶部102と、操作指令入力
部103と、クラスタ作成部104と、第1の部品比重
計算部105と、部品群作成部106と、再分配部10
7と、仕切部屋作成部108と、部品配置処理記憶部1
10と、一次元整列部111と、一次元部品比重計算部
112と、部品二次元配置部113と、レイアウト写像
部114と、仕切部屋分割部115と、を含む。
【0064】上記各部の動作は概略つぎのようなものと
される。
【0065】部品データ入力部101は、部品の形状デ
ータと、面積データと、部品端子を接続するネットデー
タとを入力し、これらの入力データを部品データ記憶部
102に書き込む。
【0066】操作指令入力部103は、操作者からの指
令を受け、位置指定部品の配置位置を設定する。これ
は、マウスの操作等により、部品を表示装置200の管
面上で選択し、例えばマウスをドラッグすることで管面
上で、部品位置を移動する表示をさせる等の操作を行う
ことにより、操作者の指令を入力する。
【0067】クラスタ作成部104は、ネットの結合が
強い部品同士を合わせたクラスタを作成する。
【0068】第1の部品比重計算部105は、部品と部
品群の組み合わせ毎に部品比重を計算する。
【0069】部品群作成部106は、部品を、それぞれ
の位置指定部品を核とする部品の集まりからなる部品群
に所属させる。
【0070】再分配部107は、部品群の要素部品をよ
り結合の強い部品群へその所属を変更する。
【0071】仕切部屋作成部108は、印刷配線板の部
品配置領域を部品群の面積の比で分割した矩形の仕切部
屋を作成する。
【0072】一次元整列部111は、部品を部品比重の
大きい順に整列させ、この順番の一次元部品配置を部品
配置処理記憶部110に記憶する。
【0073】一次元部品比重計算部112は、部品の一
次元座標軸方向に接続するネット数による部品比重を計
算する。
【0074】部品二次元配置部113は、部品の第1の
一次元部品配置位置と第2の一次元部品配置位置とを二
次元平面上の位置の2つの斜行座標軸の座標値とする部
品位置を計算し部品を概略配置する。
【0075】レイアウト写像部114は、仕切部屋毎
に、概略配置した部品を囲み、形は矩形に限定されない
任意形状の包含四角形を計算し、その包含四角形を仕切
部屋に写像する座標変換を行い、部品配置を仕切部屋内
に写像する。
【0076】仕切部屋分割部115は、仕切部屋を、そ
の収納する部品毎の領域に分割し、部品位置をその領域
内に整列する。
【0077】次に、本発明の第1の実施例の全体の動作
について、図1乃至図17を参照して説明する。図4
は、本発明の第1の実施例の処理フローを示す流れ図で
ある。
【0078】まず、ステップS1では、部品データ入力
部101が、図2(a)に示すように、ネット名100
1と、部品名1002と、部品端子番号1003のデー
タ項目から成るネットデータ2001を入力し、更に、
図2(b)に示すように、部品名1002と、形状種別
名1004と、形状寸法値1005と、部品面積値10
06と、部品配置位置座標値1007と、その他、必要
なデータ項目を有する部品データ2002を作成し、部
品データ記憶部102に記憶する。
【0079】そして、ネットデータ2001から、図2
(c)に示すような、ネット名1001毎に接続する部
品名1002と部品端子番号1003の組み合わせの集
合を含むネット集合データ2003を作成する。
【0080】また、操作指令入力部103が、操作者か
らの指令を受け、印刷配線板上に予め配置位置が指定さ
れた部品を配置し、あるいは設計者の部品配置構想に基
き中核となる部品を配置する。このように位置が指定さ
れた位置指定部品の二次元平面上の部品配置位置座標値
1007を、操作指令入力手段103から入力し、部品
データ2002に記録する。
【0081】図5には、位置指定部品の配置位置が四角
形で示されており、その他の部品(未配置部品)は丸で
示されており、ネット名1001の共通な部品端子の部
品を線で結んで示されている。
【0082】再び図4を参照すると、ステップS2で
は、クラスタ作成部104が、各未配置部品(これを
「部品1」とする)のうち、部品1がある部品(これを
「部品2」とする)と接続する共通ネット数が、その他
の部品と接続する残りのネット数よりも大きい場合を検
出し、この場合は、部品1と部品2を合わせたクラスタ
を、新たな部品データ2002とし、部品データ記憶部
102に記憶する。
【0083】クラスタの部品データ2002は、部品の
形状データを未定とし、面積データは、部品1と部品2
の両部品の総和の面積値を記録し、クラスタ要素部品名
1008を記録する。
【0084】またクラスタの要素となった部品の部品デ
ータ2002には、上位クラスタ名1009を記録す
る。
【0085】以後、クラスタを1つの部品として扱い、
そのクラスタの要素の部品の部品データ2002は、そ
のクラスタを要素に展開する際に用いられる。
【0086】次に、ステップS3では、第1の部品比重
計算部105が、部品群に未所属の各部品に対して、位
置指定部品を核とする各部品群(「引力源部品群」とい
う)との組み合わせ毎に、次式(1)により、部品比重
を計算する。この部品比重の計算は、部品がその引力源
部品群と接続するネット数から、当該部品がその他の部
品と接続するネット数を減算した値を求め、この値を、
未所属部品の面積で除算した値を、当該未所属部品が、
該引力源部品群に引かれる部品比重1010とする。そ
して、図3(a)に示す第1種部品比重データ2004
に、この部品比重1010を、部品名1002と引力源
部品群名1002と共に記録し、部品配置処理記憶部1
10に記憶する。
【0087】 部品が引力源部品群に引かれる部品比重1010 =([部品が引力源部品群と接続するネット数] −[部品がその他の部品に接続するネット数])/[部品の面積] …(1)
【0088】ただし、上式(1)の計算において、部品
が記録されるネット集合データ2003が、引力源部品
群の部品とそれ以外の部品をともに記録している場合に
は、そのネットは相殺して計算する。
【0089】次に、部品群作成部106は、こうして計
算された部品比重1010の中から、最大の部品比重1
010を与える未所属部品と引力源部品群との組み合わ
せを抽出する。
【0090】そして、該未所属部品を、該引力源部品群
に加え、部品データ2002に、部品群名1011を記
録する。このようにして、位置指定部品を核とする部品
群のメンバーを増やしていく。
【0091】次に、部品群作成部106が、先に抽出し
た部品を記録するネット集合データ2003を抽出し、
ネット集合データ2003に記録される未所属部品を抽
出し、第1の部品比重計算部105が、該未所属部品と
上記した引力源部品群との間の部品比重1010を再計
算し、第1種部品比重データ2004の部品比重101
0を更新する。
【0092】そして、再度、最大の部品比重1010を
与える未所属部品と引力源部品群の組み合わせを抽出す
るという、上記した処理を繰り返し、図6に示すよう
に、各部品を位置指定部品を核にする部品群に所属させ
る(ステップS3)。
【0093】次に、ステップS4では、再分配部107
において、ネット集合データ2003の要素の部品が、
複数の部品群に属する場合には、該要素の部品名100
2を、移動候補配列に記録する。こうして抽出された部
品は、図7に示すように、部品群間を結ぶネットに接続
する部品である。
【0094】次に、再分配部107は、移動候補配列か
ら、順次、部品名1002を抽出し、その名の部品が各
部品群に接続する部品比重1010を、第1種部品比重
データ2004から読み出し、部品比重1010が最大
の部品群にその部品の所属を変更する。
【0095】部品の所属を変更した場合は、その部品を
記録するネット集合データ2003を抽出し、そのネッ
ト集合データ2003に記録された部品で、その所属変
更先部品群以外に属する部品の部品名1002を移動候
補配列の記録に加える。
【0096】そして、移動候補配列に記録されている部
品を以下のように、順次処理することで、部品群を結ぶ
ネットに接続する部品を、他の部品群に所属させるよう
に変更する処理を繰り返し、図8に示すように、部品群
を変更する(ステップS4)。
【0097】次に、ステップS5では、仕切部屋作成部
108が、各部品群に属する部品の面積の総和を計算
し、この面積の比で、図9に示すように、部品配置領域
を分割する仕切線の位置を計算する。ここで、ある部品
配置領域が、位置指定部品以外の部品の配置領域として
定義されている場合には、位置指定部品以外の部品の集
合について、この計算を行なう。
【0098】仕切線の計算は、部品配置領域を、XY二
次元平面上でX方向の仕切線あるいはY方向の仕切線に
より、部品群同士を、上下あるいは左右に分けるよう
に、部品配置領域を、部品群の面積比で分割する。
【0099】この仕切線で分割された部品配置領域を、
この明細書では、「仕切部屋」と呼ぶ。
【0100】全ての部品群毎に1つの仕切部屋が形成さ
れるまで、更に、先に形成した仕切線に垂直な仕切線を
作成し、仕切部屋を左右あるいは上下の仕切部屋に分割
する。
【0101】このようして、部品配置領域を、部品群毎
の仕切部屋に分割し、仕切部屋毎に、図3(b)に示す
ように、仕切部屋名1011と、仕切部屋の上下左右の
境界線座標値1012と、収納部品名1002を記録し
た仕切部屋データ2005を作成し、部品配置処理記憶
部110に記憶する。
【0102】ここで、境界線座標値1012として、仕
切線の座標値の格納記憶番地を記録する。同じ仕切線に
よる境界線座標値1012は、同じ格納記憶番地が境界
線座標値1012として記録される(ステップS5)。
【0103】次に、ステップS6では、仕切部屋毎に、
仕切部屋の形状がX方向(横方向)に細長い形状である
かもしくは正方形の場合は、以下に説明するステップS
7により、X軸に対して右下がり45度方向の第1の一
次元座標軸の、左から右に部品配置位置を計算し、次に
ステップS8により、X軸に対して右上がり45度方向
の第2の一次元座標軸の左から右に部品配置位置を計算
する。すなわち、ともに左から右へ配置を計算する。
【0104】そして、ステップS9により、両配置位置
の座標値により部品を二次元配置する。
【0105】一方、仕切部屋の形状がY方向(縦方向)
に細長い場合は、ステップS7により、X軸に対して右
下がり45度方向の第1の一次元座標軸の上から下に部
品配置位置を計算し、次に右上がり45度方向の第2の
一次元座標軸の上から下に部品配置位置を計算する。す
なわち、ともに上から下へ配置を計算する。そして、ス
テップ9により両配置位置の座標値により部品を二次元
配置する(ステップS6)。
【0106】ステップS7では、一次元部品比重計算部
112が、その仕切部屋が収納する部品の右下がり45
度方向の第1の一次元座標軸方向の部品比重1010を
計算し、その値と、部品名1002と、仕切部屋名10
11と、一次元座標軸方向1013と、その他の項目か
ら成る一次元部品比重データ2006(図3(c)参
照)を作成し、部品配置処理記憶部110に記憶する。
【0107】そして、一次元整列部111が、印刷配線
板の部品同士を結ぶネットの長さの和の総配線長を、物
理現象の位置エネルギーに対応させ、物質の位置エネル
ギーを最小にする配置は、物質を部品比重1010の大
きい順に配置することで得られるという物理現象に対応
させ、部品を、部品比重1010の大きい順に配置する
ことで、総配線長を最短とする。
【0108】一次元整列部111は、部品の第1の一次
元座標軸上の位置を以下の手順で計算し、図3(d)に
示す第1の一次元部品配置データ2007を作成する。
【0109】そして、この第1の一次元部品配置データ
2007に、仕切部屋名1011と、一次元座標方向1
013と、部品名1002と、部品の一次元部品配置位
置1015を記録し、部品配置処理記憶部110に記憶
する。
【0110】すなわち、一次元整列部111は、先ず、
部品毎に、部品を、液体とみたてて、仕切部屋に充填し
て配置し、仕切部屋の第1の一次元座標軸方向に重力が
働く場合に、部品の液体が最大限に寄せられる液面を表
わす、X軸に対して右上がり45度の線(分割線)、Y
=X+Y0と表わされる分割線を計算する。
【0111】ここで、Y0は分割線のY軸との交点(切
片)の値であり、分割線が、部品の面積比で仕切部屋の
領域を分割する位置座標を表す。
【0112】このY切片の値Y0を計算し、図3(c)
に示す一次元部品比重データ2006に、分割線位置座
標1014として記録する。
【0113】さらに、この分割線で囲まれる領域の重心
位置を計算し、この重心位置を通る右上がり45度の直
線のY切片を、一次元部品配置位置1015として記録
する。
【0114】次に、一次元部品比重計算部112が、次
式(2)により、部品が他の部品にネットで接続する方
向を第1の一次元座標軸に投影し、一次元座標軸内のそ
の方向にネット数に比例した力が部品に加わるとし、全
接続ネットの力の総和を計算し、この力の総和を、部品
の面積値で除算することで、第1の一次元座標軸方向の
部品比重1010を計算し、この部分比重1010を一
次元部品比重データ2006に記録する。
【0115】 部品の一次元座標軸方向の部品比重1010 =([部品の配置位置から一次元座標軸方向に接続するネット数] −[その逆方向に接続するネット数])/[部品の面積] …(2)
【0116】上式(2)の計算において、部品(第1の
部品)が他の仕切部屋の部品(第2の部品)と接続する
ネットがある場合に、第2の部品の位置は、その所属す
る仕切部屋の中心位置にあるものと近似して計算し、第
1の部品に接続するネットの方向を計算する。
【0117】また、第1の部品を記録するネット集合デ
ータ2003を抽出し、当該ネット集合データ2003
が記録する他の部品が、第1の一次元座標軸方向に位置
する部品と、その逆方向に位置する部品がともに記録さ
れている場合には、該ネットは相殺して計算する。
【0118】一次元整列部111は、次に、最大部品比
重1010の部品を選び、仕切部屋に充填して配置し、
図3(d)に示す一次元部品配置データ2007に、部
品名1002と一次元部品配置位置1015とを記録す
る。そして、選んだ部品を記録するネット集合データ2
003を抽出し、当該ネット集合データ2003が記録
する部品のうち配置されずに残った部品を抽出する。
【0119】一次元部品比重計算部112が、抽出され
た部品の部品比重1010を計算し、一次元部品比重デ
ータ2006を更新する。そして、次の最大部品比重1
010の部品を選定する。
【0120】この処理手順を繰り返すことにより、第1
の一次元座標軸上へ投影した総配線長が最短になる部品
配置が得られる(ステップS7)。
【0121】次に、ステップS8では、ステップS7と
同様に、一次元部品比重計算部112が、仕切部屋が収
納する部品のX軸に対して右上がり45度方向の第2の
一次元座標軸方向の部品比重1010を計算し、一次元
整列部111が、部品の第2の一次元座標軸上の位置を
計算し、第2の一次元部品配置データ2007に記録す
る(ステップS8)。
【0122】次に、ステップS9では、部品二次元配置
部113が、図11(a)に示すように、第1の一次元
部品配置データ2007によるX軸に対して右下がり4
5度の座標軸の座標値と、第2の一次元部品配置データ
2007による右上がり45度の座標軸の座標値による
位置に部品を二次元配置する(ステップS9)。
【0123】次に、ステップS10では、レイアウト写
像部114が、ステップS9で二次元配置した部品の集
合(部品群)を以下のようにして仕切部屋内に収納す
る。この第1の方法は、部品群の配置を、Y方向の一次
元コンパクション処理により、部品同士および仕切部屋
の境界線同士相互のY方向への移動の限界を記録した制
約グラフを作成し、その制約グラフの最短経路を計算す
る事で、Y方向の下端の部品は仕切部屋のY方向下端に
突き当てるY方向下限位置を計算し、各部品は部品同士
の衝突が無い限り最大限下に移動する部品のY方向下限
位置を計算する。次に、その逆に、部品を仕切部屋のY
方向上端に突き当たるまで上に移動する部品のY方向上
限位置を計算する。そして、部品をY方向の上限位置と
下限位置の間に、仕切部屋のY方向の範囲内に収納す
る。次にその部品配置を、X方向の一次元コンパクショ
ン処理により、同様に、部品をX方向に移動する部品の
左限位置と右限位置を計算し、部品をX方向の左限位置
と右限位置の間に、仕切部屋のX方向の範囲内に収納す
る。この第1の方法としては、以上の一次元コンパクシ
ョン処理の他に、2次元コンパクション処理を用いて仕
切部屋内に部品群を配置する事も可能である。一方、部
品群を仕切部屋内に収納する第2の方法は、ステップS
9で二次元配置した部品の集合(部品群)を包含する任
意形状の包含四角形を計算する。この際に、図13
(a)に示すように、部品数が4個以上あり、部品群を
囲む図形に接する部品が3個である場合には、包含四角
形の上下の辺にともに接する部品、あるいは左右の辺に
ともに接する部品を抽出し、抽出された部品(図13
(a)の部品K)を、図13(b)に示すように、移動
させることで、その位置の部品群の内、4個以上の部品
に接する包含四角形を作成する。
【0124】レイアウト写像部114は、作成された包
含四角形を仕切部屋の矩形形状に写像する座標変換を行
い、その写像による部品配置位置を計算する。
【0125】この写像の式は、次式(3)及び式(4)
で与えられる。すなわち、包含四角形の頂点の座標が、
左下点が(X0,Y0)、右下点が(X1,Y1)、右
上点が(X2,Y2)、左上点が(X3,Y3)であ
り、矩形の仕切部屋の左下点の座標が(Xs,Ys)
で、右上点の座標が(Xe,Ye)の場合、次式
(3)、(4)を計算し、図11(a)と図11(b)
に示すように、この包含四角形上の部品配置位置座標
(X,Y)を、仕切部屋内の部品位置座標(Xn,Y
n)に写像する(ステップS10)。
【0126】 Xn=K×(A×(X−X0)×(Y−Y3)−B×(Y−Y0)×(X−X3) )+Xs …(3)
【0127】 Yn=L×(C×(X−X0)×(Y−Y1)−D×(Y−Y0)×(X−X1) )+Ys …(4)
【0128】ただし、上式(3)、(4)の各パラメー
タA、B、C、D、K、Lは、以下の各式で計算され
る。
【0129】 A=(Y1−Y0)×(X1−X3)−(Y2−Y0)×(X2−X3) …(4a)
【0130】 B=(X1−X0)×(Y1−Y3)−(X2−X0)×(Y2−Y3) …(4b)
【0131】 C=(Y3−Y0)×(X3−X1)−(Y2−Y0)×(X2−X1) …(4c)
【0132】 D=(X3−X0)×(Y3−Y1)−(X2−X0)×(Y2−Y1) …(4d)
【0133】 K=(Xe−Xs)/{A×(X2−X0)×(Y2−Y3)−B×(Y2−Y0) ×(X2−X3)} …(4f)
【0134】 L=(Ye−Ys)/{C×(X2−X0)×(Y2−Y1)−D×(Y2−Y0) ×(X2−X1)} …(4g)
【0135】ステップS7からステップS10まで処理
した場合は、ステップS6に戻り、各仕切部屋毎に繰り
返し、全ての仕切部屋に対して処理を終えた場合にステ
ップS11に進む。
【0136】次に、ステップS11では、仕切部屋分割
部115が、図16に示すように、仕切部屋内に配置し
た部品群を、左右の部品群に分ける縦仕切線を作成し、
あるいは、部品群を上下の部品群に分ける横仕切線を作
成し、収納する部品群の面積の比で、仕切部屋の領域を
分割する。
【0137】こうして、仕切線で分割した領域を、更に
垂直方向の仕切線で分割する処理を繰り返し、部品毎に
仕切部屋を部品の面積比で分割した仕切部屋を作成す
る。
【0138】次に、クラスタが収納される仕切部屋を、
該クラスタの要素部品の面積比で分ける仕切線を計算し
て、仕切部屋を分割する。
【0139】一次元部品比重計算部112は、要素部品
の部品比重1010を計算し、部品比重1010の順
に、各要素部品を各仕切部屋に収納する。
【0140】最後に、仕切部屋毎に、収納される部品を
仕切部屋の中央に配置する。この処理は、部品群を収納
する仕切部屋単位で、コンパクション処理を用いて、部
品の配置の上限位置、下限位置、左限位置、右限位置を
計算し、その限界位置の中間位置に部品を配置する処理
で行なう事も可能である(ステップS11)。
【0141】次に、本発明の一実施例について具体例を
用いて説明する。
【0142】図5乃至図17は、本発明の一実施例の動
作を説明するため平面図であり、図5は、本実施例の処
理の対象となる印刷配線板の部品とネットを示す。
【0143】図4のステップS1では、図5に示すよう
に、部品データ入力部101が、位置指定部品P1、P
2、P3、P4、及び、部品Aから部品Nの部品データ
2002を入力及び作成する。
【0144】また、操作指令入力部103が操作者から
の指令を受けて、位置指定部品P1から位置指定部品P
4を指定位置に配置し、その部品配置位置座標値100
7を部品データ2002に記録し、作成された部品デー
タ2002を部品データ記憶部102に記憶する。
【0145】更に、部品データ入力部101は、部品端
子同士を接続するネットデータ2001を入力し、これ
を部品データ記憶部102に記憶する。
【0146】図5では、部品同士を結ぶ配線のネットデ
ータは線分で示されている。ここで、部品AからNまで
の13個の部品の面積は、いずれも「1」とする。
【0147】次に、図4のステップS2では、クラスタ
作成部104が、部品同士を結合するネット数を計算す
る。その結果、部品Nが部品Gと共有するネット数が2
本あり、部品Nがそれ以外の部品と接続する他のネット
の数1本よりも多い。
【0148】このようにこの両部品を結ぶネット数は、
部品Nがその他の部品と結ばれるネット数よりも多いこ
とから、部品Nと部品Gとを組み合わせ、部品面積が部
品Nと部品Gの合計の値「2」を持つ部品データ200
2を作成する。この組み合わせを「クラスタG’」と呼
ぶ。以後、クラスタG’を部品G’として扱う。
【0149】次に、ステップS3では、第1の部品比重
計算部105が、各部品と部品群との組み合わせ毎の部
品比重1010を上式(1)で順次計算し、部品群作成
部106が、図6に示す様に、最大の比重を与える部品
から順に位置指定部品を核にする部品群に加える。
【0150】先ず最初に、第1の部品比重計算部105
が、以下の計算を行う。
【0151】位置指定部品P1に引かれる部品の部品比
重1010を、上式(1)を用いて計算すると、 部品A:−2、 部品E:−2 であり、位置指定部品P2に引かれる部品の部品比重1
010は、 部品G’:−1、 部品L:−1 であり、位置指定部品P3に引かれる部品の部品比重1
010は、 部品G’:−1、 部品M:−1 であり、位置指定部品P4に引かれる部品の部品比重1
010は、 部品B:−3、 部品K:−1 である。
【0152】次に、部品群作成部106が、この内、最
大の部品比重1010を与える組み合わせを抽出する。
【0153】この例では、最大の部品比重1010を与
える組み合せは、位置指定部品P2に引かれる部品G’
とL、位置指定部品P3に引かれる部品G’とM、位置
指定部品P4に引かれる部品Kである。
【0154】値が同じ部品比重1010の部品の選択に
は、自由度があるが、先ず、位置指定部品P2に引かれ
る部品Lを最大部品比重1010の部品として選び、P
2を核とする部品群(「P2部品群」という)に加えて
記録する。
【0155】この結果、部品比重1010が変化する未
所属部品は、部品Lに接続する部品FとJであり、これ
ら未所属部品が部品Lの所属するP2部品群に引かれる
部品比重1010は、 部品F:−2、 部品J:−1 である。
【0156】次に、最大部品比重1010の部品とし
て、P3を核とする部品群(「P3部品群」という)に
引かれる部品Mを選び、P3部品群に加え記録する。
【0157】この結果、部品比重1010の変化は、部
品Mに接続する部品HとG’であり、それがP3部品群
に引かれる部品比重1010は、 部品G’:0、 部品H:−1 である。
【0158】この場合、最大部品比重1010の部品
は、P3部品群に引かれる部品G’のみとなるので、
G’をP3部品群に加える。この結果、部品比重101
0が変わる部品は、部品Gに接続する部品Kであり、そ
れがP3部品群に引かれる部品比重1010は、部品
K:−1である。
【0159】次に、最大部品比重1010の部品とし
て、P4部品群に引かれる部品Kを選びP4部品群に加
える。この結果、部品比重1010が変わる部品は、部
品Kに接続する部品Cであり、部品CがP4部品群に引
かれる部品比重1010は、部品C:0である。
【0160】この場合、最大部品比重1010の部品
は、P4部品群に引かれる部品Cのみとなるので、部品
CをP4部品群に加える。この結果、部品比重1010
が変わる部品は、部品Cに接続する部品Dであり、それ
がP4部品群に引かれる部品比重1010は、部品D:
0である。
【0161】次に、最大部品比重1010の部品は、P
4部品群に引かれる部品Dのみとなるので、部品DをP
4部品群に加える。この結果、部品比重1010が変わ
る部品は、部品Dに接続する部品Bであり、部品BがP
4部品群に引かれる部品比重1010は、部品B:−1
である。
【0162】次に、最大部品比重1010の部品とし
て、P1部品群に引かれる部品Aを選びP1部品群に加
える。この結果、部品比重1010が変わる部品は、部
品Aに接続する部品EとHであり、これらの部品がP1
部品群に引かれる部品比重1010は、 部品E:0、 部品H:−1 である。
【0163】このうち最大部品比重1010の部品はP
1部品群に引かれる部品Eのみとなるので、部品EをP
1部品群に加える。この結果、部品比重1010が変わ
る部品は、部品Eに接続する部品Bであり、この部品B
がP1部品群に引かれる部品比重1010は、部品B:
−3である。
【0164】次に、最大部品比重1010の部品とし
て、P2部品群に引かれる部品Jを選びP2の部品群に
加える。この結果、部品比重1010が変わる部品は、
部品Jに接続する部品Bであり、部品BがP2部品群に
引かれる部品比重1010は、部品B:−3である。
【0165】次に、最大部品比重1010の部品とし
て、P4部品群に引かれる部品Bを選びP4部品群に加
える。この結果、部品比重1010が変わる部品は、部
品Bに接続する部品Fであり、部品FがP4部品群に引
かれる部品比重1010は、部品F:−2である。
【0166】次に、最大部品比重1010の部品とし
て、P3の部品群に引かれる部品Hを選びP3の部品群
に加える。この結果、部品比重1010が変わる部品
は、部品Hに接続する部品Fであり、部品FがP3部品
群に引かれる部品比重1010は、部品F:−2であ
る。
【0167】最後に、最大部品比重1010の部品とし
て、P1部品群に引かれる部品Fを選びP1部品群に加
え処理を終える。この結果、図6に示すような、P1〜
P4の部品群を得る。
【0168】次に、ステップS4は、再分配部107
が、ネット集合データ2003の要素の部品が複数の部
品群に属する場合を抽出し、F、L、E、J、A、H、
B、G’、Kを得、この部品名1002を、移動候補配
列に記憶する。
【0169】再配分部107は、移動候補配列から部品
Fを選び、上式(1)により、部品Fが各部品群に接続
する部品比重1010を計算する。
【0170】その結果、部品Fに接続するP1部品群の
A、P2部品群のL、P3部品群のH、P4部品群のB
のいずれに対しても、部品Fは同じ部品比重値−3を持
つことが分かり、部品Fを、従来通り、P1部品群に所
属させ、また、処理済みの部品Fを移動候補配列から消
す。
【0171】次に、移動候補配列から部品Lを選び、部
品Lは、現在所属するP2部品群のP2とJとに接続し
ているので、結局、部品Lは、現在所属するP2部品群
に最大部品比重1010で接続する結果を得、現状通
り、P2部品群に所属させる。
【0172】同様に、部品E、J、Aも現状維持のまま
とされる。
【0173】次に、部品Hを選び、部品HがP1部品群
の部品AとFに接続し、これが最大部品比重1010に
なることを検出する。
【0174】部品Hを、これまで所属していたP3部品
群からP1部品群に所属を変更する。そして、部品Hが
部品群P1以外の部品Mとネットで接続することを抽出
し、部品Mを、移動候補配列に追加記録する。この結
果、移動候補配列に記録された部品は、B、G’、K、
Mとなる。
【0175】続いて、部品B、G’、K、Mは現状維持
とし、結局、図8に示すように、部品群の要素を変更す
る。
【0176】次に、図4のステップS5では、仕切部屋
作成部108が、図9に示すように、部品配置領域の境
界に仕切線を作成し、部品群の部品の面積和の比で領域
を分ける横仕切線1で、P1部品群とP3部品群の集合
と、P2群とP4群の集合と、に分ける。
【0177】更に、同様に、部品の面積和で領域を分け
る縦仕切線2で、P1群とP3群を分離し、P2部品群
を縦仕切線3で、P4部品群から分離する。
【0178】次に、図4のステップS6では、XY二次
元平面の基板上の左上のP1部品群の仕切部屋の面積
を、その収納する部品A、E、F、Hの面積の比で分配
した値を、各部品の占有面積値と計算する。
【0179】次に、各部品群を収納する仕切部屋毎に、
以下のステップS7からステップS10までの処理を行
なう。
【0180】図10(a)に示すP1部品群の仕切部屋
の形状は正方形(4コーナーの各点はSQ1、SQ2、
SQ3、SQ4)である。この場合、仕切部屋の左から
右に部品配置位置を計算する。
【0181】次に、図4のステップS7では、以下の処
理により、図10(a)の左上角SQ1から右下角SQ
3まで向かう右下がり45度方向の一次元座標軸(第1
の一次元座標軸)上に、部品A、E、F、Hをそれぞれ
配置させる。
【0182】すなわち、先ず、一次元部品比重計算部1
12が、図10(a)に示すように、部品A、E、F、
Hのそれぞれについて、部品毎に、仕切部屋の左上の角
SQ1と右上がり45度の分割線m1とで囲まれる仕切
部屋の面積を、部品の占有面積と等しくする分割線m1
のY切片を計算し、この値を、一次元部品比重データ2
006に、分割線位置座標1014として記録する。
【0183】また、その領域の重心の位置を計算し、重
心の位置から、分割線m1に対して平行に伸ばした直線
(第1の直線)がY座標軸に交わる点のY座標(Y切
片)を計算し、これを部品の一次元部品配置位置101
5として、一次元部品比重データ2006に記録する。
【0184】次に、上式(2)により、第1の一次元座
標軸上の部品比重1010(左上に引かれる力を正とし
て計算する)を計算する。この計算において、第1の直
線より上にある部品からは、第1の一次元座標軸方向の
左上に引く引力+1が与えられ、第1の直線よりも下に
ある部品からは斥力が与えられるものとして計算する。
【0185】また、他の仕切部屋に所属する部品の位置
は、該部品を収納する仕切部屋の中心位置に存在するも
のとして計算する。
【0186】最初に、各未配置部品の部品比重1010
を計算すると、A:−2、E:−2、H:−3、F:−
4の値を得るこの内、最大の部品比重1010を持つ部
品は、AとEである。
【0187】一次元整列部111が、部品Aを選び、点
SQ1とAの分割線m1の間の領域に収納し、第1の一
次元部品配置データ2007に記録する。
【0188】次に、一次元整列部111が、未配置の各
部品毎に、仕切部屋の面積を、先の部品の分割線m1と
これに平行な第2の分割線m2で切り取る面積を、第2
の部品の占有面積と等しくする第2の分割線m2の位置
を計算し、一次元部品比重データ2006に記録する。
【0189】そして、一次元部品比重計算部112は、
部品が第1の一次元座標軸の左上方向に引かれる力を第
2の部品の面積で割った部品比重1010を計算する。
その部品比重1010は、E:0、H:−1、F:−2
である。
【0190】このうち、最大の部品比重1010を持つ
部品はEである。一次元整列部111が、部品Eを、第
1の分割線m1と第2の分割線m2の間の領域に収納
し、第1の一次元部品配置データ2007に記録する。
【0191】同様にして、残った部品の部品比重101
0を計算し、その部品比重1010は、H:−1、F:
−2である。
【0192】このうち、最大の部品比重1010の部品
はHである。分割線m3を計算し、その分割線m3とm
2の間の領域に部品Hを収納し、第1の一次元部品配置
データ2007に記録する。
【0193】最後に、部品Fを分割線m3と点SQ3の
間の領域に加え、第1の一次元部品配置データ2007
に記録する。
【0194】以上の処理の結果得られた部品配置は、左
上から順に、A、E、H、Fとなる。第1の一次元座標
軸上のこれらの部品名1002の順と、一次元部品配置
位置1015は、第1の一次元部品配置データ2007
に記録される。
【0195】次に、図4のステップS8は、一次元整列
部111が、以下の処理により、図10(b)の仕切部
屋の左下角SQ2から右上角SQ4までの右上がり45
度方向の一次元座標軸(第2の一次元座標軸)上に、部
品A、E、F、Hを配置させる。
【0196】先ず、一次元整列部111が、図10
(b)に示すように、部品A、E、F、Hのそれぞれ
に、仕切部屋の左下の角SQ2と右下がり45度の分割
線n1で囲まれる仕切部屋の面積を、部品の占有面積と
等しくする分割線n1のY切片を計算し、これを一次元
部品比重データ2006に分割線位置座標1014とし
て記録する。
【0197】その領域の重心の位置を計算し、この重心
の位置から分割線n1に平行に伸ばした直線(第2の直
線)がY座標軸に交わる点のY座標(Y切片)を計算
し、これを部品の一次元部品配置位置1015として、
一次元部品比重データ2006に記録する。
【0198】次に、一次元部品比重計算部112が、上
式(2)により、第2の一次元座標軸上の部品比重10
10(左下に引かれる力を正とし計算する)を計算す
る。この計算において、第2の直線より下にある部品か
らは、第2の一次元座標軸方向の左上に引く引力+1が
与えられ、第1の直線よりも上にある部品からは斥力が
与えられるものとして計算する。
【0199】最初に、一次元部品比重計算部112が、
各未配置部品の部品比重1010を計算すると、A:−
2、E:0、H:−3、F:−2の値を得る。
【0200】この内、最大の部品比重1010を持つ部
品はEである。一次元整列部111が、部品Eを点SQ
2と分割線n1の間の領域に収納し、第2の一次元部品
配置データ2007に記録する。
【0201】そして、次の部品を分割線n1とそれに平
行な第2の分割線n2で切り取られる面積に収納し部品
比重1010を計算し、A:0、H:−1、F:−2を
得る。
【0202】このうち、最大の部品比重1010を持つ
部品はAである。部品Aを分割線n1とn2の間の領域
に収納し、第2の一次元部品配置データ2007に記録
する。
【0203】同様にして、次に配置する部品の部品比重
1010を計算し、H:−1、F:0を得る。
【0204】このうち、最大の部品比重1010の部品
はFである。分割線n3を計算し、その分割線n3とn
2の間の領域に部品Fを収納し、第2の一次元部品配置
データ2007に記録する。
【0205】最後に、部品Hを分割線n3と角点SQ4
の間の領域に加え、第2の一次元部品配置データ200
7に記録する。
【0206】以上で得られた部品配置は、左下から順
に、E、A、F、Hとなる。第2の一次元座標軸上のこ
れらの部品名1002の順と、一次元部品配置位置10
15が、第2の一次元部品配置データ2007に記録さ
れる。
【0207】次に、図4のステップS9では、部品二次
元配置部113が、図11(a)に示すように、第1の
一次元座標軸上の第1の一次元部品配置位置1015
と、第2の一次元座標軸の第2の一次元部品配置位置1
015を部品の座標位置として部品をXY二次元平面上
に配置する。
【0208】そして、図4のステップS10は、レイア
ウト写像部114が、こうして配置した部品群を囲む包
含四角形を、以下のように計算し、包含四角形を仕切部
屋に写像する座標変換を行い、図11(b)に示すよう
に、その写像による部品配置位置を計算する。
【0209】この写像を与える変換式として、上式
(3)及び上式(4)を用いて計算する。すなわち、包
含四角形の頂点の座標が、左下点が(−1.5,−
1)、右下点が(1.5,−1)、右上点が(1.5,
1)、左上点が(−1.5,1)であり、仕切部屋の左
下点SQ2の座標を(−1,−1)とし、右上点SQ4
の座標を(1,1)とし、式(3)及び式(4)を計算
する。その結果、以下の写像の式が得られる。
【0210】 Xn=2×(X+1.5)/3 −1 Yn=Y …(5)
【0211】この式(5)から、図11(a)の部品
A、E、F,Hの座標(X,Y)を、図11(b)の仕
切部屋内の座標(Xn,Yn)に変換する。
【0212】次に、図4のステップS6に戻り、次の仕
切部屋として、P2部品群を収納する仕切部屋を処理す
る。ステップS6において、この仕切部屋が縦(Y軸方
向)に長いことを判定する。この場合、図12(a)に
示すように、第1の一次元部品配置を、左上から右下の
順(矢線1)に計算した後に、第2の一次元部品配置
は、右上から左下の順(矢線2)に計算する。
【0213】すなわち、第1の一次元部品配置も第2の
一次元部品配置もともに、上から下への計算順になるよ
うに計算する。
【0214】先のP1部品群の場合と同様に処理し、そ
の結果、上から下に部品L、部品Jの順に配置される。
この結果を仕切部屋に写像することで、図12(b)に
示す結果を得る。
【0215】次に、ステップS6に戻り、P4部品群を
収納する仕切部屋を処理する。
【0216】P4部品群に対して、図4のステップS9
まで処理すると、図13(a)に示すような二次元部品
配置を得る。
【0217】次に、ステップS10で部品群を囲む包含
四角形を作成する。この場合、部品数が4個有るが包含
四角形に接する部品は3個だけで部品Kが部品群を囲む
図形の上下の辺にともに接する。この場合、図13
(b)に示すように、部品Kの収納される分割線領域
(分割線で囲まれる領域)に隣接する分割線領域に部品
Kを移動させた場合のネットの長さを計算し、ネット長
がより短くなる場合に部品Kを移動する。
【0218】すなわち、部品Kの、その位置の部品比重
1010(下向きの力を正とする)を計算し、部品比重
値−1を得る。部品比重1010が0よりも軽い場合、
この部品Kは、図13(b)に示すように、上側の分割
線領域に移動する。この部品群を囲む包含四角形には4
個の部品が接する。
【0219】この写像を与える上式(3)及び上式
(4)を用いて計算する。すなわち、包含四角形の頂点
の座標が、左下点が(−1.5,−1)、右下点が
(0.5,−0.5)、右上点が(2,1)、左上点が
(−1.5,1)であり、仕切部屋の左下点の座標を
(−1,−1)とし右上点の座標を(1,1)とし、上
式(3)及び上式(4)を計算し、以下の写像の式
(6)を得る。
【0220】 Xn=2×(X+1.5)×(Y−3)/7 −1 Yn={4(X+1.5)×(Y+0.5) −3(X−0.5)×(Y+1)}/6 −1 …(6)
【0221】次に、この包含四角形をP4部品群の仕切
部屋に写像し、部品位置を変換し、図14に示すよう
に、仕切部屋内に配置する部品の位置を得る。
【0222】次に、ステップS6に戻り、P3部品群の
仕切部屋についても同様に処理し、以上の結果を合わせ
て、図15に示すような部品配置が得られる。
【0223】こうして、全ての仕切部屋を処理した後
に、ステップS11に進み、仕切部屋分割部115が、
図16に示すように、各仕切部屋を部品毎に面積比で分
割する仕切線を計算する。
【0224】すなわち、P1部品群の仕切部屋について
は、部品A、Eと部品H、Fとを左右に分ける縦仕切線
を計算し、更に、部品AとEを上下に分ける横仕切線を
計算し、部品HとFを上下に分ける横仕切線を計算す
る。
【0225】P2部品群の仕切部屋については、仕切部
屋が縦長であるが、その場合は、部品J、Lを上下に分
ける横仕切線を作成する。
【0226】P3部品群の仕切部屋には、部品M、P3
と部品G’とを分ける横仕切線を作成する。
【0227】P4部品群の仕切部屋については、仕切部
屋が横長であるが、この場合、先ず、部品B、Dと部品
C、Kとを左右に分ける縦仕切線を作成し、更に部品B
とDを上下に分ける横仕切線を作成し、また、部品Kと
Cを上下に分ける横仕切線を作成する。
【0228】このようにして、全ての仕切部屋を処理し
た後に、仕切部屋分割部115が、図16に示すクラス
タG’が収納される仕切部屋を、クラスタG’が含む2
つの部品GとNの面積比で、左右に分割する縦仕切線を
計算する。
【0229】次に、部品GとNの左へ引かれる部品比重
1010を計算し、G:−1、N:−3を得る。
【0230】そして、Gを左側に分割された仕切部屋に
配置し、Nを右側に分割された仕切部屋に配置する。
【0231】仕切部屋分割部115は、図17に示すよ
うに、これらの仕切部屋に収納される部品をその仕切部
屋の中央に配置する。
【0232】次に、本発明の第2の実施例について説明
する。
【0233】図18は、本発明の第2の実施例の構成を
示す図である。図18において、図1と同等の要素には
同一の参照符号が付されている。本発明第2の実施例を
なす自動配置設計装置は、前記第1の実施例と同様に、
プログラム制御により動作するコンピュータのデータ処
理装置100と、表示装置200と、入力装置300と
から構成される。
【0234】データ処理装置100は、前記第1の実施
例の構成に加え、第2の一次元部品比重計算部116
と、第2の一次元整列部117と、第2の部品二次元配
置部118と、第2の仕切部屋分割部119と、部品再
配置部120、をさらに備えている。
【0235】第2の一次元部品比重計算部116は、部
品のX軸あるいはY軸方向に接続するネット数による部
品比重を計算する。
【0236】第2の一次元整列部117は、部品を部品
比重の大きい順にX軸あるいはY軸に整列させ、この順
番の一次元部品配置を部品配置処理記憶部110に記憶
する。
【0237】第2の部品二次元配置部118は、部品の
第1の一次元部品配置位置と、第2の一次元部品配置位
置を二次元平面上のXY座標軸の座標値とする部品位置
を計算して、部品を概略配置する。
【0238】第2の仕切部屋分割部119は、仕切部屋
を、最小の部品配置寸法のピッチの格子でX方向及びY
方向に分割した個別部品領域を作成する。
【0239】部品再配置部120は、個別部品領域に収
納する部品を1つ以下にするように、部品を収納される
個別部品領域を移動させ再配置する。
【0240】次に、図19乃至図26を参照して、本発
明の第2の実施例の全体の動作について詳細に説明す
る。図20は、本発明の第2の実施例の処理フローを示
すフローチャートである。
【0241】先ず、図20のステップS1では、前記第
1の実施例と同様に、部品データ入力部101が、ネッ
トデータ2001と、部品データ2002と、ネット集
合データ2003を作成する。
【0242】次に、図20のステップS2からS5で
は、前記第1の実施例と同様に、部品群を仕切部屋に分
ける。
【0243】次に、ステップS21では、仕切部屋毎
に、以下に説明するステップS200により、クラスタ
が混在する部品を二次元配置し、次に、ステップS25
によりクラスタを個別部品に展開した後に、再び、ステ
ップS200により、全部品を二次元配置する。
【0244】次にステップS26により、仕切部屋を個
別部品領域に分割し、全部品を仕切部屋の中央に再配置
する。
【0245】すなわち、ステップS200は、部品をX
座標軸へ左から右に配置する処理を以下に説明するステ
ップS22で行なわせ、更に部品をY座標軸へ上から下
に配置する処理をステップS23で行なわせ、ステップ
S24で部品を二次元配置させる。
【0246】以下、図20のステップS22、S23、
S24の各処理を詳細に説明する。
【0247】ステップS22では、先ず、第2の一次元
部品比重計算部116が、仕切部屋内の位置指定部品及
び既配置部品を第1の配置方向の座標軸(X座標軸)に
投影する。
【0248】次に、図24に示すように、仕切部屋の左
右の端部から、縦の分割線により仕切部屋をX方向の一
列の複数領域に分割する。ここで、最小の面積の部品の
占有面積に近い面積の領域に仕切部屋を分割する。この
ように分割線のX座標値を計算し、それを一次元部品比
重データ2006の分割線位置座標1014として記録
する。この分割線で分割された領域を「X領域」と呼
ぶ。
【0249】次に、各位置指定部品側のX領域から順
に、X領域に引き付けられる部品比重1010を以下の
式(7)で順次計算する。
【0250】 部品が既格納部品に隣接するX領域に引き付けられる部品比重1010 =([部品が既格納部品側に有る他の部品に接続するネット数] −[その逆側に有る部品に接続するネット数] −[その他、位置が不定な部品に接続するネット数] )/[部品の面積] …(7)
【0251】例えば、ある部品が位置指定部品の右側に
隣接するX領域に引き付けられる部品比重1010は、
以下のように計算する。
【0252】先ず、その部品が、そのX領域より左側に
存在する部品に接続するネット数からその他の部品と接
続するネット数を引き算する。その値を部品面積で割り
算した値をそのX領域に引き付けられる部品の部品比重
1010として計算する。
【0253】次に、第2の一次元整列部117が、位置
指定部品に隣接するX領域から順に、最大の部品比重1
010を与えるX領域と格納候補部品の組み合わせを探
索する。ただし、占有面積の大きい部品は複数のX領域
に格納される。
【0254】そして、抽出した部品をそのX領域に格納
し、該X領域に対して、第1の一次元部品比重データ2
006を作成する。一次元部品比重データ2006に
は、格納した部品名1002を記録し、分割線の位置座
標1014として、そのX座標値を記録し、第1の一次
元部品配置位置1015としてX領域の中心のX座標を
記録する。
【0255】次に、第2の一次元比重計算部116が、
その部品を格納したX領域の隣のX領域に引き付けられ
る部品の部品比重1010を計算する。
【0256】次に、再び第2の一次元整列部117が最
大の部品比重1010を与えるX領域と部品の組み合わ
せを探索する。以上の処理を、仕切部屋の全部品をいず
れかのX領域に格納し終えるまで繰り返す。
【0257】また、ステップS23では、ステップS2
2と同様の処理を、第2の配置方向(Y方向)に行な
う。そして、ステップS22と同様に、Y領域に対し
て、第2の一次元部品比重データ2006を作成する。
それには、第2の一次元部品配置位置としてY領域の中
心のX座標を記録する。
【0258】ステップS24では、第2の部品二次元配
置部118が、全部品の第1の一次元部品配置位置と第
2の一次元部品配置位置によるXY座標軸上の位置に部
品を配置する。
【0259】次に、ステップS25では、クラスタが仕
切部屋に含まれる場合、先のステップS24で配置した
部品は、その既配置位置に配置し、クラスタの要素の部
品をステップS200により配置することで全部品の配
置位置を計算する。
【0260】次に、ステップS26では、第2の仕切部
屋分割部119が、図25に示すように、仕切部屋を、
最小の部品占有寸法程度のピッチでX方向に等分し、ま
た、Y方向に等分した個別部品領域を作成する。
【0261】ステップS26は、次に、部品再配置部1
20が、1つの個別部品領域に部品が複数充填された個
別部品領域を検出し、その各部品毎に、以下の式(8)
から式(10)を計算し、部品の吸引力を計算する。
【0262】 隣接力=[隣接する個別部品領域の部品と接続するネット数]の総和 …(8)
【0263】 発散ベクトル=[隣接しない個別部品領域の部品とネットで接続する方向の 単位ベクトル]の総和 …(9)
【0264】 吸引力=[隣接力]−[発散ベクトルの絶対値] …(10)
【0265】そして、吸引力のより小さい部品を隣接す
る個別部品領域に移動させる事により重複収納を解消す
る。また、面積の大きい部品及び多端子部品は、その面
積に応じた数の、あるいは分離して存在する端子毎の、
複数の個別部品領域に収納される。
【0266】次に、各部品の現在の個別部品領域におけ
る吸引力と、その部品を隣接する空の個別部品領域に移
動させる場合の吸引力を、上式(8)から上式(10)
に従って計算し、その移動による吸引力の増加量を計算
し記録する。
【0267】次に、そのうち、吸引力の増加量が正の値
で最大値を与える部品移動を抽出し、該部品を、個別部
品領域に移動させる。
【0268】次に、その結果の部品配置に関して、同様
に、部品移動による吸引力の増加量を計算し、増加量が
正の値で最大値を与える部品の移動を行なう処理を繰り
返す。
【0269】この処理を、どの部品移動による吸引力の
増加量も全て「0」以下になるまで繰り返す。次に、ス
テップS26に戻る。
【0270】本発明の第2の実施例について具体例を用
いて説明する。
【0271】図21乃至図31は、本発明の第2の実施
例の動作を説明するための絵柄を示す平面図であり、図
21は、本発明の第2の実施例の処理の対象となる印刷
配線板の部品とネットを示す図である。
【0272】ステップS1では、前記第1の実施例と同
様に、部品データ入力部101が、位置指定部品P1、
P2、及び、未配置部品A、B、C、D、Eの部品デー
タ2002を入力・作成する。
【0273】ステップS2では、前記第1の実施例と同
様に、クラスタ作成部104が、部品A、B、C、Eを
合わせたクラスタABCEを計算し、部品データ200
2を作成する。
【0274】ステップS3及びS4では、前記第1の実
施例と同様に処理し、部品群作成部106が、P2部品
群にクラスタABCEと部品Dを所属させる。
【0275】ステップS5では、前記第1の実施例と同
様に処理し、仕切部屋作成手段108が、図21に示す
ように、P2部品群を収容する仕切部屋を作成する。
【0276】ステップS21では、P2部品群の仕切部
屋の部品DとクラスタABCEを、以下に説明するよう
に、ステップS200の処理により配置し、次にステッ
プS25に進む。
【0277】ステップS200では、以下のステップS
22とステップS23とステップS24の処理を行う。
【0278】先ず、ステップS22では、第2の一次元
整列部117が、最小部品占有面積を単位とし、仕切部
屋をX方向に順に5つのX領域に分割する。
【0279】次に、第2の一次元部品比重計算部116
が、各部品毎に、位置指定部品に隣接する複数のX領域
毎にその部品をそのX領域が収納する場合のX方向の部
品比重1010を式(5)で計算する。
【0280】すなわち、第2の一次元部品比重計算部1
16が、位置指定部品P1に隣接する第1のX領域へ引
き付けられる部品の部品比重1010を式(5)で計算
すると、 部品D:−1、 クラスタABCE:−2/4 である。
【0281】位置指定部品P2に隣接する第5のX領域
へ引き付けられる部品の部品比重1010を計算する
と、 部品D:−1、 クラスタABCE:0 である。
【0282】次に、第2の一次元整列部117が、第5
のX領域に引き付けられるクラスタABCEを最大の部
品比重1010を与える組み合わせとして抽出し、その
クラスタABCEを、占有面積に対応して、第5のX領
域と第4、第3、第2のX領域に配置し、そのX領域の
一次元部品比重データ2006にクラスタABCE名を
部品名1002として記憶する。残った部品Dを第1の
X領域に配置し、そのX領域の一次元部品比重データ2
006に記憶する。
【0283】こうして、以下のX領域の一次元部品比重
データ2006を作成した。X領域1(部品D)、X領
域2からX領域5(クラスタABCE)。
【0284】ステップS23では、第2の一次元整列部
117が、仕切部屋をY方向に順に5つのY領域に分割
する。
【0285】次に、第2の一次元部品比重計算部116
が、各部品毎に、位置指定部品に隣接する複数のY領域
毎にその部品を収納する場合のY方向の部品比重101
0を上式(7)で計算する。
【0286】すなわち、第2の一次元部品比重計算部1
16が、位置指定部品P1に隣接する第1のY領域に引
かれる部品の部品比重1010を上式(7)で計算する
と、 部品D:1、 クラスタABCE:2/4 である。
【0287】位置指定部品P2に隣接する第5のY領域
に引かれる部品の部品比重1010を計算すると、 部品D:−1、 クラスタABCE:0 である。
【0288】次に、第2の一次元整列部117が、第5
のY領域に引かれるクラスタABCEを最大の部品比重
1010を与える組み合わせとして抽出し、クラスタA
BCEを、占有面積に対応して、第5のY領域と第4、
第3、第2のY領域に配置し、該Y領域の一次元部品比
重データ2006に記憶する。
【0289】残った部品Dを第1のY領域に配置し、そ
のY領域の一次元部品比重データ2006に記憶する。
【0290】こうして、以下のY領域の一次元部品比重
データ2006を作成する。
【0291】Y領域1(部品D)、Y領域2からY領域
5(クラスタABCE)。
【0292】ステップS24では、第2の部品二次元配
置部118が、図22に示すように、全部品のX領域の
部品配置位置とY領域の部品配置位置によるXY座標軸
上の座標位置に部品を配置する。
【0293】その結果、左上領域に部品Dを配置し、右
下領域にクラスタABCEを配置する。
【0294】次に、ステップS25では、以上で得られ
た図22の部品DとクラスタABCEの配置から、図2
3に示す部品Dの位置は既配置位置とし、クラスタAB
CEの要素の各部品をステップS200の処理で配置す
る。
【0295】すなわち、ステップS200の最初の処理
のステップS22により、第2の一次元整列部117
が、P2部品群の仕切部屋内を、最小部品占有面積を単
位とし、仕切部屋をX方向に順に第1のX領域から第5
のX領域までの5つのX領域に分割する。図24の縦点
線がこの領域の分割線を示す。また、第1のX領域には
既配置部品Dを初めから記憶する。
【0296】次に、第2の一次元部品比重計算部116
が、各部品毎に、位置指定部品に隣接する複数のX領域
毎にその部品をそのX領域に収納する場合のX方向の部
品比重1010を上式(7)で計算する。
【0297】つまり、第2の一次元部品比重計算部が、
部品Dに隣接する第2のX領域に引かれる各部品の部品
比重1010の式による計算を、各部品が第1のX領域
の部品Dと位置指定部品P1に接続するネット数からそ
の他の部品と接続するネット数を引き算し、その値を部
品面積で割り算し計算することで、部品A:−1、B:
−5、C:−3、E:−3を得る。
【0298】また、位置指定部品P2に隣接する第5の
X領域へ引かれる各部品の部品比重1010の計算は、
部品P2に接続するネット数からその他の部品に引かれ
るネット数を引き算し、その値を部品面積で割り算し計
算し、部品A:−3、B:−7、C:−1、E:−1を
得る。
【0299】次に、第2の一次元整列部117が、最大
の部品比重1010を与えるX領域と部品の組み合わせ
を探索する。 各組み合わせ毎の部品比重1010を
(X領域の番号、部品名)と表わすと、最大の部品比重
を与える組み合わせは、部品比重値が−1である、
(5,C)=(5,E)=(2,A)の3つがある。
【0300】このうちから任意に、第5のX領域に引か
れる部品Cを選択し、その部品Cを第5のX領域に収納
し、一次元部品比重データ2006に記録する。
【0301】この結果、部品比重1010が変る部品
は、部品Cに接続する部品Bであり、部品Bが部品Cに
隣接する第4のX領域に引かれる部品比重値を第2の一
次元部品比重計算部116が計算した結果の値は、それ
が第5のX領域の部品Cと部品P2に接続するネット数
からその他の部品に接続するネット数を引き算した値−
3になる。
【0302】次に、最大の部品比重を与える組み合わせ
は、−1=(2,A)=(4,E)の2つがある。この
うち、第2のX領域に引かれる部品A(比重値−1)を
選び、部品Aを第2のX領域に加える。
【0303】この結果、部品Aに隣接するX領域で部品
比重1010が変る部品は、部品Aに接続する部品Bで
あり、部品Bが第3のX領域に引かれる部品比重値は
「−1」に変る。
【0304】次に、最大の部品比重1010を与える組
み合わせは−1=(3,B)=(4,E)の2つがあ
る。このうち、第3のX領域に引かれる部品B(比重値
−1)を選び、部品Bを第3のY領域に加え、一次元部
品比重データ2006に記録する。
【0305】この結果、部品比重1010が変る部品
は、部品Bに接続する部品Eであり、それが第4のX領
域に引かれる部品比重値は「+3」に変る。
【0306】最後に、残った部品Eを第4のX領域に加
える。
【0307】以上の処理により、X領域に収納する部品
順 (D、A、B、E、C)を得、この順を記録する一
次元部品配置データ2007を作成する。
【0308】次に、ステップS23では、第2の一次元
整列部117が、P2部品群の仕切部屋内を、最小部品
占有面積を単位とし、仕切部屋をY方向に順に第1のY
領域から第5のY領域までの5つのX領域に分割する。
図24の横点線がこの分割線を示す。また、第1のY領
域には既配置部品Dを初めから記憶する。
【0309】ステップS23により、Y方向にステップ
S22と同様に処理した結果、こうして、Y領域に収納
する部品順(D、A、B、E、C)を得、この順を記録
する一次元部品配置データ2007を作成する。
【0310】次に、ステップS24では、第2の部品二
次元配置部118が、図24に示すように、全部品のX
領域の部品位置とY領域の部品位置によるXY座標軸上
の位置に部品を配置する。その結果、図24の様に、部
品D、A、B、E、Cが斜め一列に配置された。
【0311】次に、ステップS26では、第2の仕切部
屋分割部119が、図25(a)に示すように、仕切部
屋を、最小の部品占有寸法程度のピッチで分割する。す
なわち、X方向に3分割しY方向に3分割した9個の個
別部品領域を作成する。
【0312】そして、部品再配置部120が、部品Cと
Eを収納する個別部品領域が部品を重複して収納してい
ることを検出する。
【0313】次に、部品Cが現在収納されている個別部
品領域に引き付けられる吸引力を上式(8)から上式
(10)により、以下のように計算する。
【0314】上式(8)で、部品Cが同じ個別部品領域
に重複して収納される部品Eと接続するネットは計算に
加えず、部品Cが、隣接する個別部品領域の部品P2に
引き付けられるネットを隣接力に加算し、値1を得る。
【0315】上式(9)で計算する発散力ベクトルは、
Bに接続するネット数により値が「2」となり、上式
(10)で計算する吸引力は値が「−1」となる。部品
Eについても、吸引力を計算し、値が「−1」となる。
この場合、いずれの吸引力も変わらないため、任意に部
品Eを選択する。
【0316】次に、部品Eが現在収納されている個別部
品領域に隣接し空の個別部品領域を探索し、図25
(a)に示すように、上側の個別部品領域を見出し、部
品Eを上側の個別部品領域に移動することで、部品Eの
部品Cと同じ個別部品領域への重複収納を解消してい
る。
【0317】次に、仕切部屋の各部品を個別部品領域の
中央に位置を合わせる。こうして、図25(b)に示す
部品配置が得られた。
【0318】次に、各部品の現在の個別部品領域におけ
る吸引力と、隣接する空の個別部品領域に移動させた場
合の吸引力を上式(8)から上式(10)により計算
し、移動による吸引力の増加量を計算する。
【0319】その結果、部品Dの現在位置の吸引力は
「−1」、右隣に移動する場合の吸引力は「+0.
2」、増加量は「+1.2」となる。
【0320】以下、各部品毎の計算結果を示す。
【0321】 部品D:−1、右に移動:+0.2、増加量:+1.2 部品A:+1、下に移動:−2.5、増加量:−3.5 部品B:+3、上に移動:−3.7、増加量:−6.7 部品B:+3、下に移動:−1.7、増加量:−4.7 部品E:+1、上に移動:−2.5、増加量:−3.5 部品C:−1、左に移動:+1、増加量:+2
【0322】これらの結果から、吸引力の増加量が正の
値で最大値を与える部品Cを左へ移動する。更に、次に
最大の正の増加量を与える部品Dを右に移動し、図26
の結果を得た。
【0323】次に本発明の第3の実施例について説明す
る。本発明の第3の実施例は、前記第2の実施例と同様
に、プログラム制御により動作するコンピュータのデー
タ処理装置100と、表示装置200と、入力装置30
0とから構成される。
【0324】本発明の第3の実施例は、図27に示すよ
うに、データ処理装置100が、前記第2の実施例の構
成に加え、バス接続部品配置部121を備えている。
【0325】このバス接続部品配置部121の概略動作
は、指定バス接続部品の配置方向を第1の配置方向とし
て指定する。次に、指定バス接続部品の集合をクラスタ
とし、その要素の部品の相対位置座標値を一定値に記憶
する。
【0326】図28は、本発明の第3の実施例の動作の
説明するためのフローチャートである。本発明の第3の
実施例の全体の動作について図28を詳細に説明する。
【0327】先ず、ステップS31は、部品データ入力
部101が、ネットデータ2001と、 位置指定部品
び未配置部品の部品データ2002と、ネット集合デー
タ2003と、それ以外に新たに、指定バス配線のネッ
ト名データを、入力、あるいは作成する(ステップS3
1)。
【0328】次に、ステップS2からS5では、前記第
1の実施例と同様に、部品群を仕切部屋に分ける。
【0329】次に、ステップS32では、仕切部屋毎
に、以下のステップS200、S33、S34、S3
5、S23、S24、S26の処理を繰り返し、全仕切
部屋を処理した場合に全ての処理が終わる。
【0330】すなわち、ステップS200では、部品を
XY座標軸へ二次元配置させ、ステップS33でクラス
タの存在を判定し、ステップS34からS26の処理で
クラスタを個別部品に展開し二次元配置する。
【0331】ステップS200では、前記第2の実施例
と同様に,第2の部品二次元配置部118が、全部品の
X領域の位置とY領域の部品位置によるXY座標軸上の
座標位置に部品を配置し、ステップS33に進む。
【0332】ステップS33では、仕切部屋内のクラス
タを検出し、クラスタがある場合はステップS34、S
35、S23、S24、そしてステップS26の順に処
理し、一方、クラスタが無い場合はすぐステップS26
に進む。
【0333】ステップS34では、バス接続部品配置部
121が、クラスタの要素の部品のうち指定バス配線の
ネットに接続する部品を探索し、該当部品を検出した場
合には、操作指令入力部103が、該部品を管面に強調
表示して、操作者に知らせる。
【0334】次に、操作者から指定バスに接続する部品
の配置領域と配置方向(第1の配置方向)の指令を受け
取り記録する。また、第1の配置方向に垂直な方向を第
2の配置方向とする。
【0335】例えば、指定バス配線に接続する部品群を
X方向またはY方向に一列に配置する指令を受け、ある
いは、X方向またはY方向に2列以上に配置する指令を
受ける。
【0336】ここで、バス接続部品配置部121が、指
定バス配線のネットに接続する部品を検出せず第1の配
置方向の指令を受けとらなかった場合、第1の配置方向
と第2の配置方向をX方向とY方向に指定する。
【0337】ステップS35では、先ず、既にステップ
S200で配置した個別部品の位置を既配置位置とし、
クラスタの要素の部品を個別部品に展開し、第2の一次
元整列部121が、それらの部品の第1の配置方向の第
1の一次元部品配置位置データを計算する。
【0338】次に、バス接続部品配置部121が、指定
バス接続部品をまとめてクラスタとし、その要素の部品
の位置のクラスタの重心位置に対する相対位置座標値1
016をクラスタの部品データ2002に記録し、クラ
スタの要素の部品の相対位置座標値1016を一定にす
る。
【0339】次に、ステップS23では、ステップS3
5で作成したクラスタと残りの部品を、第2の一次元整
列部117が、前記第2の実施例と同様に、第2の配置
方向に配置する一次元部品配置位置データ2007を計
算する。
【0340】次に、ステップS24では、第2の部品二
次元配置部118が、前記第2の実施例と同様に、X領
域の部品位置とY領域の部品位置によるXY座標軸上の
座標位置に部品を配置する。
【0341】次に、ステップS26では、前記第2の実
施例と同様に、仕切部屋を、最小の部品配置寸法のピッ
チの格子でX方向及びY方向に分割した個別部品領域を
作成する。この際に、個別部品領域に部品が重複収納さ
れた場合は、その各部品毎に、前記第2の実施例の上式
(8)から上式(10)に基づき、部品の吸引力を計算
する。
【0342】そして、吸引力のより小さい部品を他の個
別部品領域に移動させることにより重複収納を解消す
る。次に、ステップS32に戻る(ステップS26)。
【0343】本発明の第3の実施例の動作について具体
例を用いて説明する。
【0344】先ず、ステップS31により、部品データ
入力部101が、図29に示すように、位置指定部品P
1及び未配置部品A、B、C、D、E、F、Gの部品デ
ータ2002を入力・作成する。そして、更に、指定バ
ス配線のネット名データを入力する。
【0345】次に、ステップS2により、クラスタ作成
部104が、部品A、B、C、D、E、F、Gを合わせ
たクラスタABCDEFGを計算し部品データ2002
を作成する。
【0346】次に、ステップS3及びS4により、部品
群作成部106が、P1部品群にクラスタABCDEF
Gを所属させる。
【0347】次に、ステップS5により、仕切部屋作成
手段108が、図29に示す様に、P1部品群を収容す
る仕切部屋を作成する。
【0348】次に、ステップS200で、P1部品群の
クラスタABCDEFGを配置するが、この例では、単
に、クラスタABCDEFGを仕切部屋に置くだけであ
る。
【0349】次に、ステップS33により、クラスタA
BCDEFGが存在する事を検出し、次のステップS3
4に進む。
【0350】次に、ステップS34により、バス接続部
品配置部121が、クラスタの要素の部品のうち指定バ
ス配線のネットで結ばれている部品を抽出し、クラスタ
ABCDEFGの要素の部品A、B、C、Dが4本の指
定バス配線のネットで結合していることを検出し、この
部品A、B、C、Dを管面に強調表示し操作者に知らせ
る。
【0351】次に、操作指令入力部103が、操作者か
ら、指定バスに接続する部品の第1の配置方向をX方向
とする指令を受ける。
【0352】次に、ステップS35により、図30に示
すように、第2の一次元整列部117が、P1部品群の
仕切部屋を、X座標軸に垂直な縦仕切線でX座標軸方向
を7等分し、第1から第7のX領域を作成する。
【0353】次に、位置指定部品P1に隣接する第1の
X領域に引かれる部品比重1010を、部品P1と接続
するネット数からその他の部品と接続するネット数を引
き算し、その値を部品面積で割り算し計算し、部品A:
−1、B:−2、C:−1、D:−2、E:−2、F:
−2、G:−2を得る。
【0354】この計算において、部品P1が部品Aから
Dまでを結ぶ4本のネットは、各部品がP1に引き付け
られる反面、該ネットに接続する残りの部品が存在する
ため、ネットは相殺される。
【0355】次に、第2の一次元整列部117が、仕切
部屋のX座標軸の端から順次に最大の部品比重1010
を与えるX領域と部品の組み合わせを探索する。これに
より、先ず第1のX領域に引かれる部品A(部品比重値
−1)を抽出し、部品Aを第1のX領域に記録する。
【0356】この結果、部品比重1010が変る部品
は、部品Aに接続する部品Eであり、その部品Eが第2
のX領域に引かれる部品比重値は、それが第1のX領域
とその左の部品AとP1に接続するネット数から、その
他の部品に接続するネット数を引き算した値0になる。
【0357】また、それ以外の部品の第2のX領域に引
き付けられる部品比重値は、第1のX領域に引き付けら
れた部品比重値を第2のX領域に引き継ぐ。
【0358】次に、最大の部品比重1010を与える組
み合わせとして、第2のX領域に引かれる部品E(比重
値0)を選び、部品Eを第2のX領域に加える。この結
果、部品比重1010が変る部品は、部品Eに接続する
部品Bであり、部品Bが第3のX領域に引かれる部品比
重値は「0」に変る。
【0359】次に、最大の部品比重1010を与える組
み合わせとして、第3のX領域に引かれる部品B(比重
値0)を選び、部品Bを第3の部品領域に加える。この
結果、部品比重1010が変る部品は、部品Bに接続す
る部品Fであり、それが第4のX領域に引かれる部品比
重値は「0」に変る。
【0360】次に、最大部品の部品比重1010を与え
る組み合わせを探索し、第4のX領域に引かれる部品F
(比重値0)を選び、部品Fを第4のX領域に加える。
この結果、部品比重1010が変る部品は、部品Fに接
続する部品Dであり、それが第5のX領域に引かれる部
品比重値は「0」に変る。
【0361】次に、最大部品の部品比重1010を与え
る組み合わせを探索し、第5のX領域に引かれる部品D
(比重値0)を選び、部品Dを第5のX領域に加える。
この結果、部品比重1010が変る部品は、部品Dに接
続する部品Gであり、それが第6のX領域に引かれる部
品比重値は「0」に変る。
【0362】次に、最大部品の部品比重1010を与え
る組み合わせを探索し、第6のX領域に引かれる部品G
(比重値0)を選び、部品Gを第6のX領域に加える。
この結果、部品比重1010が変る部品は、部品Gに接
続する部品Cである。この部品Cが部品P1からDまで
を結ぶ4本のネットに接続する残りの部品は部品Cのみ
であるため、ネットは相殺されず、このネットにも部品
Cが引かれると計算し、結局、部品Cが第7のX領域に
引かれる部品比重値は「+5」に変る。
【0363】次に、最大部品の部品比重1010を与え
る組み合わせを探索し、第7のX領域に引かれる部品C
(比重値5)を選び第7のX領域に加える。
【0364】こうして、以下のX方向の一次元部品配置
データ2007の部品配置順を作成した(A、E、B、
F、D、G、C)。
【0365】次に、図30に示すように、バス接続部品
配置部121が、指定バス接続部品A、B、D、Cの集
合をクラスタとし、その要素の部品をX方向に一列に配
置し、その部品の相対位置座標値1016を、クラスタ
ABDCの部品データ2002に記録する。
【0366】次に、ステップS23により、図31に示
すように、第2の一次元整列部117が、Y方向にクラ
スタABDCと部品E、F、Gを一列に配置し、以下の
ように、Y方向の第2の一次元部品配置データ2007
を作成する(E、F、クラスタABDC、G)。
【0367】次に、ステップS24により、第2の部品
二次元配置部118が、全部品のX領域の位置とY領域
の部品位置によるXY座標軸上の座標位置に部品を配置
し、図31に示す部品の二次元配置を得る。
【0368】次に、ステップS26により、図32に示
すように、部品再配置部120が、仕切部屋をX方向に
4等分しY方向に2等分した8つの個別部品領域を作成
する。
【0369】そして、部品再配置部120が、図32に
示すように、部品E及び部品Fを、をその収納される個
別部品領域の中央に移動する。また、部品再配置部12
0が、部品Gを収納している個別部品領域が、クラスタ
部品ABDCの要素の部品Dも重複して収納しているこ
とを検出する。
【0370】次に、部品Gが現在収納されている個別部
品領域に引き付けられる吸引力を、上式(8)から上式
(10)により、以下のように計算する。
【0371】上式(8)で、部品Gが、隣接する個別部
品領域の部品C及びDに引き付けられるネットを隣接力
に加算し、値「2」を得る。また式(9)で計算される
発散力ベクトルは「0」となる。そして、上式(10)
で計算される吸引力は値「2」となる。
【0372】次に、クラスタABDCが現在収納されて
いる個別部品領域に引き付けられる吸引力を以下のよう
に計算する。
【0373】先ず、式(6)により、クラスタABDC
が隣接する位置指定部品P1と接続する指定バス配線の
ネット数の値「4」を隣接力に加え記憶する。
【0374】次に、部品Aが隣接する個別部品領域の部
品Eに引き付けられるネット数の値1を隣接力に加算す
る。
【0375】次に、部品Bが隣接する部品Fと接続する
ネット数の値1を隣接力に加算し、他方、部品Bが部品
Eにネットで引き付けられる方向の単位ベクトル(−
0.7,0.7)を式(7)の発散力ベクトルデータに
加える。
【0376】次に、部品Dが部品Fにネットで引き付け
られる方向の単位ベクトル(−0.7,0.7)を発散
力ベクトルデータに加算し、部品Dが同じ個別部品領域
に重複して収納される部品Gと接続するネット数の値1
を隣接力に加える。
【0377】次に、部品Cが隣接する部品Gと接続する
ネット数の値「1」を隣接力に加える。
【0378】以上の総和で、隣接力は値「8」と計算さ
れ、発散力ベクトルデータはX、Y方向に(−1.4,
1.4)と計算される。
【0379】次に、式(10)により、クラスタABD
Cの隣接力の値7から発散ベクトルの絶対値2を引き算
した値「6」を吸引力として計算する。
【0380】部品Gの吸引力の値2とクラスタABDC
と部品Gの吸引力の値6を比較し、吸引力の小さい部品
Gを選択し、これに隣接する空の個別部品領域を探索す
る。そして、上側の個別部品領域を見出し、部品Gをそ
の個別部品領域に移動する事で部品の重複収納を解消し
た。
【0381】またクラスタABDCは、その全要素の部
品の重心を、これらを収納する全個別部品領域の重心に
位置を合わせて配置する。
【0382】このようして、図33に示すように、クラ
スタABDCの各部品の相対位置が保たれるため、各部
品を接続する指定バス配線として、その流れを崩されな
い部品配置が得られる。
【0383】上記した本発明の第3の実施例によれば、
バス接続部品配置部121が指定バス配線のネットに接
続する部品の配置方向を指定することができ、また、部
品の相対位置が保たれるクラスタを作成しその部品集合
を相互の相対位置を保ちつつ配置することができるた
め、バス配線の流れを崩すことなく、部品配置を設計す
ることができるという利点を有する。
【0384】なお、上記実施例では、印刷配線板上の部
品配置システムを例に説明したが、本発明は印刷配線板
の自動配置等に限定されるものでなく、2次元平面上
に、相互に接続される複数部品を自動配置する各種シス
テムに適用可能であることは勿論である。
【0385】
【発明の効果】以上説明したように、本発明によれば、
総配線長を最短にする部品配置位置の計算を、部品の位
置交換の試行錯誤をせずに、全部品の配置位置を一度に
計算するように構成したことにより、総配線長が最短に
近い部品配置を短時間に得ることができる、という効果
を奏する。
【0386】また、本発明によれば、重心法に比べて、
総配線長を短くすることができる、という効果を奏す
る。
【0387】その理由は、本発明においては、部品の最
短配線を得る問題を、総配線長を物理現象における物体
の総位置エネルギーに対応させ、部品比重が重い物が下
に配置されることで、位置エネルギーが最小になること
に対応させ、一次元の座標軸方向で部品比重を計算し、
部品比重を最小にする一次元部品配置を計算することに
より、演算回数を縮減することができる、ためである。
【0388】また本発明において、部品配置を計算する
回数は、全部品数をNとすると高々Nの二乗のオーダー
であり、厳密に全配置を評価するのに必要とされる従来
法の演算量のオーダーであるNの階乗N!に比べて、十
分少ない計算回数で、最短に近い総配線長を与える部品
配置を計算できるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示す図である。
【図2】本発明の一実施例におけるデータ構造の一例を
示す図である。
【図3】本発明の一実施例におけるデータ構造の一例を
示す図である。
【図4】本発明の一実施例の処理フローを示す流れ図で
ある。
【図5】本発明の一実施例の動作を具体的に説明するた
めの図である。
【図6】本発明の一実施例の動作を具体的に説明するた
めの図である。
【図7】本発明の一実施例の動作を具体的に説明するた
めの図である。
【図8】本発明の一実施例の動作を具体的に説明するた
めの図である。
【図9】本発明の一実施例の動作を具体的に説明するた
めの図である。
【図10】本発明の一実施例の動作を具体的に説明する
ための図である。
【図11】本発明の一実施例の動作を具体的に説明する
ための図である。
【図12】本発明の一実施例の動作を具体的に説明する
ための図である。
【図13】本発明の一実施例の動作を具体的に説明する
ための図である。
【図14】本発明の一実施例の動作を具体的に説明する
ための図である。
【図15】本発明の一実施例の動作を具体的に説明する
ための図である。
【図16】本発明の一実施例の動作を具体的に説明する
ための図である。
【図17】本発明の一実施例の動作を具体的に説明する
ための図である。
【図18】本発明の第2の実施例の構成を示す図であ
る。
【図19】本発明の第2の実施例におけるデータ構造の
一例を示す図である。
【図20】本発明の一実施例におけるデータ構造の一例
を示す図である。
【図21】本発明の第2の実施例の処理フローを示す流
れ図である。
【図22】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図23】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図24】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図25】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図26】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図27】本発明の第3の実施例の構成を示す図であ
る。
【図28】本発明の第3の実施例の処理フローを示す流
れ図である。
【図29】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図30】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図31】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図32】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図33】本発明の第2の実施例の動作を具体的に説明
するための図である。
【図34】従来技術の処理フローを示す流れ図である。
【符号の説明】
100 データ処理装置 101 部品データ入力部 102 部品データ記憶部 103 操作指令入力部 104 クラスタ作成部 105 第1の部品比重計算部 106 部品群作成部 107 再分配部 108 仕切部屋作成部 110 部品配置処理記憶部 111 一次元整列部 112 一次元部品比重計算部 113 部品二次元配置部 114 レイアウト写像部 115 仕切部屋分割部 116 第2の一次元部品比重計算部 117 第2の一次元整列部 118 第2の部品二次元配置部 119 第2の仕切部屋分割部 120 部品再配置部 121 バス接続部品配置部 200 表示装置 300 入力装置

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】部品端子同士を接続するネットデータと、
    部品データと、位置指定部品の位置データとを入力し、
    これらのデータを記憶手段に記憶する第1の手段と、 グループ化される部品群を導出する第2の手段と、 部品配置領域を、前記各部品群の総部品面積の比で、前
    記部品群毎の矩形形状に分割してなる仕切部屋を作成す
    る第3の手段と、 前記仕切部屋毎に、前記仕切部屋内の未配置部品と既配
    置部品とを結ぶネットの数から、前記未配置部品に接続
    されるその他のネット数を減算した値を、前記未配置部
    品の面積で除算してなる除算結果を求め、前記除算結果
    を前記未配置部品の部品比重として、記憶手段に記憶す
    る第4の手段と、 前記未配置部品を、その部品比重の大きさの順に、前記
    既配置部品の近隣に、第1の一次元方向に配置してなる
    第1の一次元部品配置を求めるとともに、前記未配置部
    品を、その部品比重の大きさの順に、前記既配置部品の
    近隣に、前記第1の一次元方向と直交する第2の一次元
    方向に配置した第2の一次元部品配置を求める第5の手
    段と、 前記仕切部屋毎に、前記第1の一次元部品配置と前記第
    2の一次元部品配置を直交座標軸における部品の配置位
    置とし、部品の二次元平面での配置位置を導出し前記配
    置位置を整列する第6の手段と、 を含むことを特徴とする自動部品配置システム。
  2. 【請求項2】前記第1の手段が、ある部品と相手部品の
    部品同士を結ぶネット数が他の部品と結ぶネット数より
    も予め指定した値よりも大きい場合、前記部品と相手部
    品の集合をクラスタとしてクラスタデータを作成する手
    段を含み、 前記第6の手段が、前記クラスタが部品と同等に配置さ
    れた後に、前記クラスタを構成する部品に展開する手段
    を含むことを特徴とする請求項1記載の自動部品配置シ
    ステム。
  3. 【請求項3】前記第2の手段で導出された前記部品群に
    未所属の部品について、その部品比重を計算し、前記部
    品比重の最大の未所属部品から順に該部品群に所属させ
    る手段を含む、ことを特徴とする請求項1又は2記載の
    自動部品配置システム。
  4. 【請求項4】前記第6の手段で求められた、前記直交座
    標軸において配置した部品の集合を包含する任意形状の
    包含四角形を導出する手段と、 前記包含角形の形状を仕切部屋の矩形形状に写像し、前
    記包含四角形とともに部品の位置を仕切部屋内に写像す
    る手段と、 を含むことを特徴とする請求項1記載の自動部品配置シ
    ステム。
  5. 【請求項5】前記第6の手段が、前記仕切部屋内の前記
    部品群を、前記部品配置領域の2次元平面上で、縦横に
    沿って分割し、該分割した部品群の面積比に基づき、前
    記仕切部屋を、縦横の仕切線で分割する手段と、 前記分割領域に部品が単体で収納されるまで部品群を分
    割する分割領域を作成する手段と、 各部品を前記分割領域の中央に配置する手段と、 を含むことを特徴とする請求項1記載の自動部品配置シ
    ステム。
  6. 【請求項6】前記第6の手段が、前記仕切部屋を、前記
    各直交座標軸方向で等分して形成される分割領域を導出
    する手段と、 前記部品が隣接する分割領域に収納される他の部品と結
    合するネット数を隣接力として計算し、該部品がそれ以
    外の部品と結合するネット毎に、結合先の部品方向を向
    く単位ベクトルを計算し、前記単位ベクトルの総和のベ
    クトルを計算して発散ベクトルとし、前記隣接力から前
    記発散ベクトルの絶対値を減算した値を該部品の該部品
    領域への吸引力として計算する手段と、 複数の部品が一つの分割領域に重複して収納される場合
    に、吸引力の小さい部品から順に、前記分割領域とは別
    の分割領域に移動させる手段と、 を含むことを特徴とする請求項1記載の自動部品配置シ
    ステム。
  7. 【請求項7】前記第6の手段において、前記部品を隣接
    する分割領域に移動することで前記引力がより大きくな
    る分割領域を求め、該分割領域に前記部品を移動する手
    段を有することを特徴とする請求項6記載の自動部品配
    置システム。
  8. 【請求項8】前記第1の手段が、指定バス配線のネット
    名データを入力し、 指定バス配線のネットに接続する部品の集合のクラスタ
    を計算し、該クラスタの要素の部品の相対位置として前
    記第1の一次元部品配置による部品の相対位置を記録し
    た部品データを作成する手段と、 前記クラスタの要素の部品の相対位置を保ち部品配置を
    計算する手段と、 を含むことを特徴とする請求項1記載の自動部品配置シ
    ステム。
  9. 【請求項9】二次元部品配置領域上に部品を自動配置す
    る自動部品配置装置において、 部品の形状及び面積データと、部品を互いに接続するネ
    ットデータとを入力し、これらの入力データを記憶手段
    に記憶する部品データ入力手段と、 操作指令に基づき、位置指定部品の配置位置を設定する
    操作指令入力手段と、 ネットの結合が強い部品同士を合わせたクラスタを作成
    するクラスタ作成手段と、 部品と部品群の組み合わせ毎に部品比重を導出する第1
    の部品比重計算手段と、 部品を前記位置指定部品を基準とする部品の集まりから
    なる部品群に所属させる部品群作成手段と、 部品群の要素部品をより結合の強い部品群へ所属させる
    ように変更する再分配手段と、 部品配置領域を部品群の面積の比で分割した矩形領域よ
    りなる仕切部屋を作成する仕切部屋作成手段と、 部品の一次元座標軸方向に接続するネット数による部品
    比重を計算する一次元部品比重計算手段と、 部品を、前記一次元部品比重計算手段で求められた部品
    比重の大きさの順に整列させ、この順番に配置してなる
    一次元部品配置を記憶手段に記憶する一次元整列手段
    と、 前記一次元整列手段により求められた部品の第1の一次
    元部品配置位置と、前記一次元整列手段により求められ
    た部品の前記第1の一次元方向と直交する第2の一次元
    部品配置位置と、を二次元平面上の位置の2つの斜行座
    標軸の座標値とする部品位置を求め、部品を概略配置す
    る部品二次元配置手段と、 仕切部屋毎に、前記部品二次元配置手段で概略配置され
    た部品を囲む任意形状の包含多角形を求め、前記包含多
    角形を、前記仕切部屋に写像する座標変換を行い、部品
    配置を前記仕切部屋内に写像するレイアウト写像手段
    と、 前記レイアウト写像手段により求められた前記仕切部屋
    内の部品配置に対して、前記仕切部屋が収納する部品毎
    の分割領域にさらに細分し、前記部品を分割領域内に整
    列配置する仕切部屋分割手段と、 を備えたことを特徴とする自動部品配置装置。
  10. 【請求項10】前記一次元部品比重計算手段が、前記仕
    切部屋内の未配置部品と既配置部品とを結ぶネットの数
    から、前記未配置部品に接続されるその他のネット数を
    減算した値を、前記未配置部品の面積で除算してなる値
    を、前記未配置部品の部品比重とする、ことを特徴とす
    る請求項9記載の自動部品配置装置。
  11. 【請求項11】二次元部品配置領域上に部品を自動配置
    する自動部品配置装置において、 部品の形状及び面積データと、部品を互いに接続するネ
    ットデータとを入力し、これらの入力データを記憶手段
    に記憶する部品データ入力手段と、 操作指令に基づき、位置指定部品の配置位置を設定する
    操作指令入力手段と、 ネットの結合が強い部品同士を合わせたクラスタを作成
    するクラスタ作成手段と、 部品と部品群の組み合わせ毎に部品比重を導出する第1
    の部品比重計算手段と、 部品を前記位置指定部品を基準とする部品の集まりから
    なる部品群に所属させる部品群作成手段と、 部品群の要素部品をより結合の強い部品群へ所属させる
    ように変更する再分配手段と、 部品配置領域を部品群の面積の比で分割した矩形領域よ
    りなる仕切部屋を作成する仕切部屋作成手段と、 部品配置領域のXY平面上で部品のX軸あるいはY軸方
    向に接続するネット数による部品比重を導出する第2の
    一次元部品比重計算手段と、 部品を、前記第2の一次元部品比重計算手段で求められ
    た部品比重の大きさの順にX軸あるいはY軸に整列さ
    せ、この順番の一次元部品配置を記憶手段に記憶する第
    2の一次元整列手段と、 前記第2の一次元整列手段により求められた部品の第1
    の一次元部品配置位置と、前記第2の一次元整列手段に
    より求められた部品の前記第1の一次元方向と直交する
    第2の一次元部品配置位置と、を二次元平面上のXY座
    標軸の座標値とする部品位置を計算して、部品を概略配
    置する第2の部品二次元配置手段と、 最小の部品配置寸法のピッチの格子でX方向及びY方向
    に分割した個別部品領域を作成する第2の前記仕切部屋
    分割手段と、 前記個別部品領域に収納する部品を1つ以下とするよう
    に部品を収納される個別部品領域を移動させることで再
    配置する部品再配置手段と、 を備えたことを特徴とする自動部品配置装置。
  12. 【請求項12】請求項11記載の自動部品配置装置にお
    いて、指定バス配線のネット名データを入力し、 前記指定バス配線に接続する部品をまとめてクラスタと
    し、前記クラスタの要素の部品の位置の前記クラスタの
    重心位置に対する相対位置座標値を求め、前記クラスタ
    の要素の部品の相対位置座標値を一定として部品配置を
    求めるバス接続部品配置手段をさらに備えたことを特徴
    とする自動部品配置装置。
  13. 【請求項13】印刷配線板または半導体集積回路の自動
    配置システムにおいて、 請求項9乃至12のいずれか一に記載の自動部品配置装
    置を備えた自動配置システム。
  14. 【請求項14】(a)部品端子同士を接続するネットデー
    タと、部品データと、位置指定部品の位置データとを入
    力し、これらのデータを記憶手段に記憶する第1のステ
    ップと、 (b)グループ化される部品群を導出する第2のステッ
    プと、 (c)部品配置領域を、前記部品群の総部品面積の比
    で、前記部品群毎の矩形形状に分割してなる仕切部屋を
    作成する第3のステップと、 (d)前記仕切部屋毎に、前記仕切部屋内の未配置部品
    と既配置部品とを結ぶネットの数から、前記未配置部品
    に接続されるその他のネット数を減算した値を、前記未
    配置部品の面積で除算し、前記除算結果を前記未配置部
    品の部品比重として記憶し、前記未配置部品を、その部
    品比重の大きさの順に、前記既配置部品の近隣に、第1
    の一次元方向に配置した第1の一次元部品配置を求める
    第4のステップと、 (e)前記仕切部屋毎に、前記仕切部屋内の未配置部品
    と既配置部品とを結ぶネットの数から、前記未配置部品
    に接続されるその他のネット数を減算した値を、前記未
    配置部品の面積で除算し、前記除算結果を前記未配置部
    品の部品比重として記憶し、前記未配置部品を、その部
    品比重の大きさの順に、前記既配置部品の近隣に、前記
    第1の一次元方向と直交する第2の一次元方向に配置し
    た第2の一次元部品配置を求める第5のステップと、 (f)前記仕切部屋毎に、前記第1の一次元部品配置と
    前記第2の一次元部品配置を直交座標軸における部品の
    配置位置とし、部品の二次元平面での配置位置を計算し
    前記配置位置を整列する第6のステップと、 を含むことを特徴とする自動部品配置方法。
  15. 【請求項15】前記第1のステップが、ある部品と相手
    部品の部品同士を結ぶネット数が他の部品と結ぶネット
    数よりも予め指定した値よりも大きい場合に、前記部品
    と相手の部品の集合をクラスタとしクラスタデータを作
    成するステップを含み、 前記第6のステップが、前記クラスタを部品と同等に配
    置された前記クラスタを構成要素の部品に展開するステ
    ップと、 前記仕切部屋について仕切部屋内の部品毎に分割する分
    割領域を導出し、前記分割領域に収納される部品を、前
    記分割領域の略中央に配置する第7のステップと、 を含むことを特徴とする請求項14記載の自動部品配置
    方法。
  16. 【請求項16】前記第2のステップで求められた前記部
    品群に未所属の部品の前記部品比重を計算し、前記部品
    比重の最大の未所属部品から順に該部品群に所属させる
    ステップを含む、ことを特徴とする請求項14記載の自
    動部品配置方法。
  17. 【請求項17】前記第6のステップが、前記直交座標軸
    において配置した部品の集合を包含する任意形状の包含
    四角形を計算するステップと、 前記包含四角形の形状を仕切部屋の矩形形状に写像し、
    前記包含四角形とともに該部品の位置を仕切部屋内に写
    像するステップと、 を含むことを特徴とする請求項14記載の自動部品配置
    方法。
  18. 【請求項18】前記第6のステップが、前記仕切部屋内
    の前記部品群を、前記部品配置領域の2次元平面上で、
    縦横に沿って分割し、該分割した部品群の面積比に基づ
    き、前記仕切部屋を、縦横の仕切線で分割するステップ
    と、 前記分割領域に部品が単体で収納されるまで部品群を分
    割する分割領域を作成するステップと、 各部品を前記分割領域の中央に配置するステップと、を
    含むことを特徴とする請求項14記載の自動部品配置方
    法。
  19. 【請求項19】前記第3のステップが、前記仕切部屋を
    前記各直交座標軸方向で等分して形成する分割領域を計
    算するステップと、 前記部品が隣接する分割領域に収納される他の部品と結
    合するネット数を隣接力として計算し、該部品がそれ以
    外の部品と結合するネット毎に結合先の部品方向を向く
    単位ベクトルを計算し、該単位ベクトルの総和のベクト
    ルを計算して発散ベクトルとし、前記隣接力から該発散
    ベクトルの絶対値を引き算した値を該部品の該部品領域
    への吸引力として計算するステップと、 複数の部品が一つの分割領域に重複して収納される場合
    に、吸引力の小さい部品から順に、前記分割領域とは別
    の分割領域に移動させるステップと、 を含むことを特徴とする特徴とする請求項14記載の自
    動部品配置方法。
  20. 【請求項20】前記部品を隣接する分割領域に移動する
    ことで、前記引力がより大きくなる分割領域を計算し、
    該分割領域に前記部品を移動することを特徴とする請求
    項14記載の自動部品配置方法。
  21. 【請求項21】前記第1のステップが、指定バス配線の
    ネット名データを入力するステップを含み、 指定バス配線のネットに接続する部品の集合のクラスタ
    を計算し、該クラスタの要素の部品の相対位置として前
    記第1の一次元部品配置による部品の相対位置を記録し
    た部品データを作成するステップと、 前記クラスタの要素の部品の相対位置を保ち部品配置を
    計算するステップと、 を含むことを特徴とする請求項14記載の自動部品配置
    方法。
  22. 【請求項22】コンピュータで部品の自動配置を実行す
    るための処理であって、 (a)部品端子同士を接続するネットデータと、部品デー
    タと、位置指定部品の位置データとを入力し、これらの
    データを記憶手段に記憶する第1の処理と、 (b)グループ化される部品群を導出する第2の処理
    と、 (c)部品配置領域を、前記部品群の総部品面積の比
    で、前記部品群毎の矩形形状に分割してなる仕切部屋を
    作成する第3の処理と、 (d)前記仕切部屋毎に、前記仕切部屋内の未配置部品
    と既配置部品とを結ぶネットの数から、前記未配置部品
    に接続されるその他のネット数を減算した値を、前記未
    配置部品の面積で除算し、前記除算結果を前記未配置部
    品の部品比重として記憶し、前記未配置部品を、その部
    品比重の大きさの順に、前記既配置部品の近隣に、第1
    の一次元方向に配置した第1の一次元部品配置を求める
    第4の処理と、 (e)前記仕切部屋毎に、前記仕切部屋内の未配置部品
    と既配置部品とを結ぶネットの数から、前記未配置部品
    に接続されるその他のネット数を減算した値を、前記未
    配置部品の面積で除算し前記除算結果を前記未配置部品
    の部品比重として記憶し、前記未配置部品を、その部品
    比重の大きさの順に、前記既配置部品の近隣に、前記第
    1の一次元方向と直交する第2の一次元方向に配置した
    第2の一次元部品配置を求める第5の処理と、 (f)前記仕切部屋毎に、前記第1の一次元部品配置と
    前記第2の一次元部品配置を直交座標軸における部品の
    配置位置とし、部品の二次元平面での配置位置を計算し
    前記配置位置を整列する第6の処理と、 を含み、 前記(a)乃至(f)の処理を前記コンピュータで実行
    させるためのプログラムを記録した記録媒体。
  23. 【請求項23】請求項22記載の記録媒体において、 前記第1の処理が、 (a−1)部品同士を結ぶネット数が他の部品と結ぶネ
    ット数よりも予め指定した値よりも大きい場合に、その
    部品と相手の部品の集合のクラスタデータを作成する処
    理を含み、 前記第6の処理が、 (a−2)前記クラスタが部品と同等に配置された後
    に、前記クラスタを構成要素の部品に展開する処理と、 前記仕切部屋について、前記仕切部屋内の部品毎に分割
    する分割領域を導出し、前記分割領域に収納される部品
    を、前記分割領域の中央に配置する処理と、を含み、 前記(a−1)及び(a−2)の処理を前記コンピュー
    タで実行させるためのプログラムを記録した記録媒体。
  24. 【請求項24】請求項22記載の記録媒体において、 前記第2の処理が、 (b−1)前記部品群に未所属の部品の前記部品比重を
    計算し、前記部品比重の最大の未所属部品から順に該部
    品群に所属させる処理を含み、 前記(b−1)の処理を前記コンピュータで実行させる
    ためのプログラムを記録した記録媒体。
  25. 【請求項25】請求項22記載の記録媒体において、 前記第6の処理が、 (f−1)前記直交座標軸において配置した部品の集合
    を包含する任意形状の包含四角形を計算する処理と、 (f−2)前記包含四角形の形状を仕切部屋の矩形形状
    に写像し、前記包含四角形とともに該部品の位置を仕切
    部屋内に写像する処理と、 を含み、前記(f−1)及び(f−2)の処理を前記コ
    ンピュータで実行させるためのプログラムを記録した記
    録媒体。
  26. 【請求項26】請求項22記載の記録媒体において、 前記第6の処理が、 (g−1)前記仕切部屋内の前記部品群を、前記部品配
    置領域の2次元平面上で、縦横に沿って分割し、該分割
    した部品群の面積比に基づき、前記仕切部屋を、縦横の
    仕切線で分割する処理と、 (g−2)前記分割領域に部品が単体で収納されるまで
    部品群を分割する分割領域を作成する処理と、 (g−3)各部品を前記分割領域の中央に配置する処理
    と、 を含み、前記(g−1)乃至(g−3)の処理を前記コ
    ンピュータで実行させるためのプログラムを記録した記
    録媒体。
  27. 【請求項27】請求項22記載の記録媒体において、 前記第3の処理が、 (c−1)前記仕切部屋を各直交座標軸方向で等分して
    形成する分割領域を計算する処理と、 (c−2)前記部品が隣接する分割領域に収納される他
    の部品と結合するネット数を隣接力として計算し、該部
    品がそれ以外の部品と結合するネット毎に該結合先の部
    品方向を向く単位ベクトルを計算し、該単位ベクトルの
    総和のベクトルを計算して発散ベクトルとし、前記隣接
    力から該発散ベクトルの絶対値を引き算した値を該部品
    の該部品領域への吸引力として計算する処理と、 (c−3)複数の部品が一つの分割領域に重複して収納
    される場合に、吸引力の小さい部品から順に、前記分割
    領域とは別の分割領域に移動させる処理と、 を含み、前記(c−1)乃至(c−3)の処理を前記コ
    ンピュータで実行させるためのプログラムを記録した記
    録媒体。
  28. 【請求項28】請求項22記載の記録媒体において、 前記第6の処理が、 (g−4)前記部品を隣接する分割領域に移動すること
    で、前記引力がより大きくなる分割領域を計算し、該分
    割領域に前記部品を移動する処理を含み、 前記(g−4)の処理を前記コンピュータで実行させる
    ためのプログラムを記録した記録媒体。
  29. 【請求項29】請求項22記載の記録媒体において、 前記第1の処理において、(a−3)指定バス配線のネ
    ット名データを入力する処理を含み、 (h)指定バス配線のネットに接続する部品の集合のク
    ラスタを計算し、該クラスタの要素の部品の相対位置と
    して前記第1の一次元部品配置による部品の相対位置を
    記録した部品データを作成する処理と、 (i)前記クラスタの要素の部品の相対位置を保ち部品
    配置を計算する処理と、 を含み、前記(a−3)、(h)、(i)の処理を前記
    コンピュータで実行させるためのプログラムを記録した
    記録媒体。
  30. 【請求項30】前記第4のステップにおいて、部品毎
    に、X−Y二次元平面上矩形形状の前記仕切部屋の第1
    の角の点及び前記第3の角の点の対角線を前記第1の一
    次元方向の座標軸とし、前記第1の角の点と前記座標軸
    に対して所定角度の分割線とで囲まれる仕切部屋の面積
    を、第1の部品の占有面積と等しくする分割線のY切片
    を計算し、この値を分割線位置座標として記録し、前記
    囲まれた仕切部屋の重心位置を計算し、前記重心の位置
    から、前記分割線に対して平行に延在した直線がY座標
    軸に交わるY切片を計算し、これを部品の一次元部品配
    置位置として記録し、第1の一次元座標軸上の部品比重
    を計算し、各未配置部品の部品比重について、最大の部
    品比重を持つ部品を選び、前記第1の角の点と前記分割
    線の間の領域に収納し、 未配置の各部品毎に、仕切部屋の面積を、前記分割線と
    これに平行な第2の分割線で切り取る面積を、第2の部
    品の占有面積と等しくする第2の分割線の位置を計算
    し、前記部品が第1の一次元座標軸の前記第1の角の点
    方向に引かれる力を前記第2の部品の面積で割った部品
    比重を計算し、最大の部品比重を持つ部品を前記第1の
    分割線と前記第2の分割線の間の領域に収納し、同様に
    して、残った部品の部品比重を計算し、隣り合う前記分
    割線の間の領域に収納し、このようにして得られた前記
    第1の一次元座標軸上の部品名の順と、前記第1の一次
    元部品配置の位置を記憶し、 前記第5のステップにおいても、部品毎に、X−Y平面
    上矩形形状の前記仕切部屋の第2の角の点及び前記第4
    の角の点の対角線を前記第2の一次元方向の座標軸と
    し、前記第2の角の点に前記座標軸に対して所定角度の
    分割線とで囲まれる仕切部屋の面積を、第1の部品の占
    有面積と等しくする分割線のY切片を計算し、この値を
    分割線位置座標として記録し、前記囲まれた仕切部屋の
    重心位置を計算し、前記重心の位置から、前記分割線に
    対して平行に伸ばした直線がY座標軸に交わるY切片を
    計算し、これを部品の一次元部品配置位置として記録
    し、前記第2の一次元座標軸上の部品比重を計算し、各
    未配置部品の部品比重について、最大の部品比重を持つ
    部品を選び、前記点と前記分割線の間の領域に収納し、 未配置の各部品毎に、仕切部屋の面積を、前記分割線と
    これに平行な第2の分割線で切り取る面積を、前記第2
    の部品の占有面積と等しくする第2の分割線の位置を計
    算し、前記部品が前記第2の一次元座標軸の前記第2の
    点方向に引かれる力を第2の部品の面積で割った部品比
    重を計算し、最大の部品比重を持つ部品を前記第1の分
    割線と前記第2の分割線の間の領域に収納し、同様にし
    て、残った部品の部品比重を計算し、隣り合う前記分割
    線の間の領域に収納し、このようにして得られた前記第
    2の一次元座標軸上の部品名の順と、前記第2の一次元
    部品配置の位置を記憶する、ことを特徴とする請求項1
    4記載の部品自動配置方法。
  31. 【請求項31】前記第6のステップにおいて、前記直交
    座標軸において配置した部品の集合の配置をコンパクシ
    ョン処理により縮小し仕切部屋内に収納することを特徴
    とする請求項14記載の部品自動配置方法。
  32. 【請求項32】前記第2の手段が、前記位置指定部品を
    基準としてグループ化される部品群を導出することを特
    徴とする請求項1記載の自動部品配置システム。
  33. 【請求項33】前記第2のステップにおいて、前記位置
    指定部品を基準としてグループ化される部品群を導出す
    ることを特徴とする請求項14記載の部品自動配置方
    法。
JP06679399A 1999-03-12 1999-03-12 自動部品配置システム並びに自動部品配置プログラムを記録した記録媒体 Expired - Fee Related JP3389875B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP06679399A JP3389875B2 (ja) 1999-03-12 1999-03-12 自動部品配置システム並びに自動部品配置プログラムを記録した記録媒体
US09/523,300 US6560505B1 (en) 1999-03-12 2000-03-10 Automatic parts placement system, method, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06679399A JP3389875B2 (ja) 1999-03-12 1999-03-12 自動部品配置システム並びに自動部品配置プログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
JP2000259682A true JP2000259682A (ja) 2000-09-22
JP3389875B2 JP3389875B2 (ja) 2003-03-24

Family

ID=13326113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06679399A Expired - Fee Related JP3389875B2 (ja) 1999-03-12 1999-03-12 自動部品配置システム並びに自動部品配置プログラムを記録した記録媒体

Country Status (2)

Country Link
US (1) US6560505B1 (ja)
JP (1) JP3389875B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006030750A1 (ja) * 2004-09-17 2006-03-23 Ssi Co., Ltd. 乳癌を抑制するカワリハラタケ抽出物
JP2010165365A (ja) * 2000-06-22 2010-07-29 Fujitsu Ltd Lsiのセル配置位置情報変更プログラム及び方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6462818B1 (en) * 2000-06-22 2002-10-08 Kla-Tencor Corporation Overlay alignment mark design
US7096445B1 (en) 2003-01-14 2006-08-22 Cadence Design Systems, Inc. Non-orthogonal structures and space tiles for layout, placement, and routing of an integrated circuit
US7100128B1 (en) * 2003-01-14 2006-08-29 Cadence Design Systems, Inc. Zone tree method and mechanism
US7676781B1 (en) 2003-01-14 2010-03-09 Cadence Design Systems, Inc. Method and mechanism for implementing a minimum spanning tree
US7237214B1 (en) * 2003-03-04 2007-06-26 Synplicity, Inc. Method and apparatus for circuit partitioning and trace assignment in circuit design
TW200538919A (en) * 2004-05-21 2005-12-01 Hon Hai Prec Ind Co Ltd System and method for checking split plane of motherboard layout
US7882057B1 (en) * 2004-10-04 2011-02-01 Trilogy Development Group, Inc. Complex configuration processing using configuration sub-models
US7346869B2 (en) * 2004-10-29 2008-03-18 Synopsys, Inc. Power network analyzer for an integrated circuit design
US7386822B1 (en) * 2005-12-15 2008-06-10 Cswitch Corporation Simultaneous timing-driven floorplanning and placement for heterogeneous field programmable gate array
US20070157146A1 (en) * 2006-01-03 2007-07-05 Mediatek Inc. Method of packing-based macro placement and semiconductor chip using the same
JP4783268B2 (ja) * 2006-11-17 2011-09-28 株式会社東芝 半導体レイアウト設計装置
JP2009238130A (ja) * 2008-03-28 2009-10-15 Fujitsu Ltd プリント基板設計装置およびプリント基板設計方法
US9495501B1 (en) * 2016-01-29 2016-11-15 International Business Machines Corporation Large cluster persistence during placement optimization of integrated circuit designs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149939A (ja) * 1992-10-13 1994-05-31 Nec Corp 印刷配線板の自動配置設計装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2537280B2 (ja) 1989-10-06 1996-09-25 川崎製鉄株式会社 集積回路における回路ブロック配置の設計装置
JPH0760856B2 (ja) 1989-06-28 1995-06-28 川崎製鉄株式会社 高集積回路のブロツク配置配線方法
ATE128555T1 (de) 1991-01-30 1995-10-15 Roth Technik Gmbh Vorrichtung zum kontinuierlichen überwachen der konzentrationen von gasförmigen bestandteilen in gasgemischen.
JP3124046B2 (ja) 1991-02-21 2001-01-15 株式会社東芝 軽水炉の燃料集合体群
JP3130173B2 (ja) 1993-05-19 2001-01-31 松下電器産業株式会社 素子配置方法
JPH06332983A (ja) 1993-05-20 1994-12-02 Mitsubishi Electric Corp 部品配置最適化方法
JPH08137927A (ja) * 1994-11-07 1996-05-31 Hitachi Ltd 部品配置配線表示方法
JP3351651B2 (ja) * 1995-04-07 2002-12-03 富士通株式会社 会話型回路設計装置
US5892688A (en) * 1996-06-28 1999-04-06 Lsi Logic Corporation Advanced modular cell placement system with iterative one dimensional preplacement optimization
JP3215351B2 (ja) * 1997-04-30 2001-10-02 富士通株式会社 配置方式
US6449761B1 (en) * 1998-03-10 2002-09-10 Monterey Design Systems, Inc. Method and apparatus for providing multiple electronic design solutions
US6446239B1 (en) * 1998-03-10 2002-09-03 Monterey Design Systems, Inc. Method and apparatus for optimizing electronic design
US6438736B1 (en) * 1999-04-15 2002-08-20 Sycon Design, Inc. Method for determining cleanup line routing for components of an integrated circuit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149939A (ja) * 1992-10-13 1994-05-31 Nec Corp 印刷配線板の自動配置設計装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010165365A (ja) * 2000-06-22 2010-07-29 Fujitsu Ltd Lsiのセル配置位置情報変更プログラム及び方法
WO2006030750A1 (ja) * 2004-09-17 2006-03-23 Ssi Co., Ltd. 乳癌を抑制するカワリハラタケ抽出物

Also Published As

Publication number Publication date
US6560505B1 (en) 2003-05-06
JP3389875B2 (ja) 2003-03-24

Similar Documents

Publication Publication Date Title
JP3389875B2 (ja) 自動部品配置システム並びに自動部品配置プログラムを記録した記録媒体
US5587923A (en) Method for estimating routability and congestion in a cell placement for integrated circuit chip
CN102346795B (zh) 电工电子类虚拟实验快速自动布线方法
US5661663A (en) Physical design automation system and method using hierarchical clusterization and placement improvement based on complete re-placement of cell clusters
US4630219A (en) Element placement method
US8341586B2 (en) Method and system for routing
US6446239B1 (en) Method and apparatus for optimizing electronic design
US8930869B2 (en) Method, program, and apparatus for aiding wiring design
Lin et al. POLAR: Placement based on novel rough legalization and refinement
JPH03188650A (ja) 配線経路処理方法、配線経路処理システム、及び半導体集積回路
US6829757B1 (en) Method and apparatus for generating multi-layer routes
WO1996024904A1 (en) Integrated circuit layout
JPH0429356A (ja) チャネル配線方法
US7107564B1 (en) Method and apparatus for routing a set of nets
Xiang et al. Bus-driven floorplanning
US5835378A (en) Computer implemented method for leveling interconnect wiring density in a cell placement for an integrated circuit chip
JP2019168976A (ja) 3次元モデル生成装置
US8863062B2 (en) Methods and apparatus for floorplanning and routing co-design
US20080155485A1 (en) Multilevel ic floorplanner
Lin et al. Routability-driven TSV-aware floorplanning methodology for fixed-outline 3-D ICs
US6532578B2 (en) Method of configuring integrated circuits using greedy algorithm for partitioning of N points in P isothetic rectangles
US7310793B1 (en) Interconnect lines with non-rectilinear terminations
Kubo et al. Global routing by iterative improvements for two-layer ball grid array packages
JPH0844883A (ja) 自動レイアウト装置
Hentschke et al. 3D-vias aware quadratic placement for 3D VLSI circuits

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20020813

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20021217

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

Free format text: PAYMENT UNTIL: 20080117

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090117

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees