JP2000067089A - 自動部品配置方法、システムおよび自動部品配置プログラムを記録した記録媒体 - Google Patents
自動部品配置方法、システムおよび自動部品配置プログラムを記録した記録媒体Info
- Publication number
- JP2000067089A JP2000067089A JP11153399A JP15339999A JP2000067089A JP 2000067089 A JP2000067089 A JP 2000067089A JP 11153399 A JP11153399 A JP 11153399A JP 15339999 A JP15339999 A JP 15339999A JP 2000067089 A JP2000067089 A JP 2000067089A
- Authority
- JP
- Japan
- Prior art keywords
- component
- arrangement
- dimensional
- components
- cluster
- 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
Links
Abstract
(57)【要約】
【課題】 従来技術では部品及び部品群の配置を自由に
変更し、最善の概略部品位置が得られるが、概略部品位
置そのままでは設計に直接利用できない。 【解決手段】 部品データを入力し、部品の比重モデル
によって第1の一次元部品配置15と、第2の一次元部
品配置を計算する。第1の一次元部品配置15における
部品位置と第2の一次元部品配置16における部品位置
を直交座標軸の各座標成分とし、部品の二次元平面での
配置位置を計算し、それを概略部品位置とする。この概
略部品位置をコンパクションし詳細な部品配置を得る。
変更し、最善の概略部品位置が得られるが、概略部品位
置そのままでは設計に直接利用できない。 【解決手段】 部品データを入力し、部品の比重モデル
によって第1の一次元部品配置15と、第2の一次元部
品配置を計算する。第1の一次元部品配置15における
部品位置と第2の一次元部品配置16における部品位置
を直交座標軸の各座標成分とし、部品の二次元平面での
配置位置を計算し、それを概略部品位置とする。この概
略部品位置をコンパクションし詳細な部品配置を得る。
Description
【0001】
【発明の属する技術分野】本発明は、印刷配線板の部品
あるいは半導体集積回路のセルの形状データを読み込
み、部品端子同士を接続するネットデータを読み込み、
その部品を二次元空間に配置する処理をコンピュータで
実行させる自動部品配置処理システム、あるいは電子回
路図、コンピュータプログラムのフローチャートなどの
シンボル位置を自動配置する自動部品配置および自動部
品配置システムに関する。
あるいは半導体集積回路のセルの形状データを読み込
み、部品端子同士を接続するネットデータを読み込み、
その部品を二次元空間に配置する処理をコンピュータで
実行させる自動部品配置処理システム、あるいは電子回
路図、コンピュータプログラムのフローチャートなどの
シンボル位置を自動配置する自動部品配置および自動部
品配置システムに関する。
【0002】
【従来の技術】従来の印刷配線板あるいは半導体集積回
路の自動部品配置システムの一例が、特開平6−332
983号公報「部品配置最適化方法」に記載されてい
る。この従来の自動部品配置システムは、キーボード等
の入力手段と、CRTディスプレイ等の表示装置と、C
PUとメモリとハードディスクからなるデータ処理装置
とから構成されるコンピュータシステムにプログラムを
与えて動作する様に構成されている。ここで引用した従
来例は、初期配置を行なった後に部品位置を交換し総配
線長を改善していく。その際に部品の交換が容易になる
ように、部品をその大きさが均一なブロックまたはブロ
ックの集合に仮想的に変換し、そのブロックの最善の部
品配置を計算し、その後に、部品を仮想的な形状から実
際の形状に戻し配置するものであった。
路の自動部品配置システムの一例が、特開平6−332
983号公報「部品配置最適化方法」に記載されてい
る。この従来の自動部品配置システムは、キーボード等
の入力手段と、CRTディスプレイ等の表示装置と、C
PUとメモリとハードディスクからなるデータ処理装置
とから構成されるコンピュータシステムにプログラムを
与えて動作する様に構成されている。ここで引用した従
来例は、初期配置を行なった後に部品位置を交換し総配
線長を改善していく。その際に部品の交換が容易になる
ように、部品をその大きさが均一なブロックまたはブロ
ックの集合に仮想的に変換し、そのブロックの最善の部
品配置を計算し、その後に、部品を仮想的な形状から実
際の形状に戻し配置するものであった。
【0003】また、第2の従来例が特開平3−1087
39号公報「高集積回路のブロック配置配線方法」に記
載されている。この従来の自動部品配置システムは、回
路ブロック間をばねで連結した質点系のばねモデルを使
い、その力学モデルのエネルギーはネット長の二乗和に
なるが、これを評価関数とし、それを最小にする位置、
すなわち重心位置に部品を配置する重心法により部品を
初期配置する。次に、その部品(回路ブロック)をその
面積相当の円で近似し、その円の配置を計算した後に、
部品の形状を円から実形状に変更し部品配置を調整して
いた。また、特開平3−124046号公報「集積回路
における回路ブロック配置の設計装置」も同様に、質点
系のばねモデルを用いて初期配線していた。
39号公報「高集積回路のブロック配置配線方法」に記
載されている。この従来の自動部品配置システムは、回
路ブロック間をばねで連結した質点系のばねモデルを使
い、その力学モデルのエネルギーはネット長の二乗和に
なるが、これを評価関数とし、それを最小にする位置、
すなわち重心位置に部品を配置する重心法により部品を
初期配置する。次に、その部品(回路ブロック)をその
面積相当の円で近似し、その円の配置を計算した後に、
部品の形状を円から実形状に変更し部品配置を調整して
いた。また、特開平3−124046号公報「集積回路
における回路ブロック配置の設計装置」も同様に、質点
系のばねモデルを用いて初期配線していた。
【0004】さらに、第3の従来例が特開平6−332
984号公報「素子配置方法」に記載されている。この
従来の自動部品配置システムは、予め定められた数行の
配置行の上に素子を配置し、その配置位置を重心法で計
算し、その位置の座標値の大小に従って素子の配置順序
を定め、素子をその順に、素子同士が重ならない様に配
置していく。
984号公報「素子配置方法」に記載されている。この
従来の自動部品配置システムは、予め定められた数行の
配置行の上に素子を配置し、その配置位置を重心法で計
算し、その位置の座標値の大小に従って素子の配置順序
を定め、素子をその順に、素子同士が重ならない様に配
置していく。
【0005】第1の従来例の印刷配線板の自動部品配置
システムは、初期配置を行なった後に、評価関数を用い
て、初期配置を改善して部品配置の最適化を行なう。評
価関数として総配線長を用い、総配線長が最小になる最
適な部品配置を求める。この総配線長は、ネットで結ば
れる部品端子間のマンハッタン距離の総和として定義さ
れる。また、他の評価関数として、第2、第3の従来例
のように、ネットで結ばれる部品端子間の距離の二乗和
を総配線長に替わる評価関数とする場合もある。
システムは、初期配置を行なった後に、評価関数を用い
て、初期配置を改善して部品配置の最適化を行なう。評
価関数として総配線長を用い、総配線長が最小になる最
適な部品配置を求める。この総配線長は、ネットで結ば
れる部品端子間のマンハッタン距離の総和として定義さ
れる。また、他の評価関数として、第2、第3の従来例
のように、ネットで結ばれる部品端子間の距離の二乗和
を総配線長に替わる評価関数とする場合もある。
【0006】このような最適な部品配置を見つける問題
には解折的な解法が存在せず、最適解を見つけるために
は、全部品の配置可能なあらゆる組み合わせ毎に総配線
長を計算し、その値が最小になる組み合わせを選定する
方法が考えられる。しかし、この場合の組み合わせの数
は部品数Nの階乗N!であり、最適解を見つけるための
計算にかかる時間は部品数Nの増加とともに爆発的に増
大する。そのため、従来より、最適解に近い解を高速に
見つける部品配置改善のアルゴリズムの開発が行なわれ
てきた。
には解折的な解法が存在せず、最適解を見つけるために
は、全部品の配置可能なあらゆる組み合わせ毎に総配線
長を計算し、その値が最小になる組み合わせを選定する
方法が考えられる。しかし、この場合の組み合わせの数
は部品数Nの階乗N!であり、最適解を見つけるための
計算にかかる時間は部品数Nの増加とともに爆発的に増
大する。そのため、従来より、最適解に近い解を高速に
見つける部品配置改善のアルゴリズムの開発が行なわれ
てきた。
【0007】図31はこの部品配置改善方法の1つであ
る、ペア交換法を示すフローチャートである。このアル
ゴリズムは、まず、ステップ701で部品の初期配置を
行なう。この部品の初期配置はランダムに決められた
り、ペアリンキング法、あるいはクラスタ成長法、ある
いは重心法などの方法で、ある程度総配線長が短くなる
ように決めてもよい。次に、ステップ702で1回のサ
イクルを始める。次に、ステップ703で1回のサイク
ルでまだ選ばれていない部品から1つの部品Biを選択
する。ここで、Bの添え字iは部品の番号とする。次
に、ステップ704で選択された部品Biと配置位置を
交換した場合に最も総配線長が短くなる部品の集合{B
j}を、部品Biと交換可能な部品の集合から求め、ス
テップ705でその交換により総配線長が短くなる場合
は、ステップ706でその内の1つの部品と部品Biの
配置位置を交換する。全ての部品を計算するまでこの処
理を繰り返す(ステップ707)。そして、以上のステ
ップ703から707までの処理を行なった結果の総配
線長を、それ以前の総配線長と比較し、総配線長の低減
率が予め定めた値より小さくなるまで処理を繰り返す
(ステップ708)。
る、ペア交換法を示すフローチャートである。このアル
ゴリズムは、まず、ステップ701で部品の初期配置を
行なう。この部品の初期配置はランダムに決められた
り、ペアリンキング法、あるいはクラスタ成長法、ある
いは重心法などの方法で、ある程度総配線長が短くなる
ように決めてもよい。次に、ステップ702で1回のサ
イクルを始める。次に、ステップ703で1回のサイク
ルでまだ選ばれていない部品から1つの部品Biを選択
する。ここで、Bの添え字iは部品の番号とする。次
に、ステップ704で選択された部品Biと配置位置を
交換した場合に最も総配線長が短くなる部品の集合{B
j}を、部品Biと交換可能な部品の集合から求め、ス
テップ705でその交換により総配線長が短くなる場合
は、ステップ706でその内の1つの部品と部品Biの
配置位置を交換する。全ての部品を計算するまでこの処
理を繰り返す(ステップ707)。そして、以上のステ
ップ703から707までの処理を行なった結果の総配
線長を、それ以前の総配線長と比較し、総配線長の低減
率が予め定めた値より小さくなるまで処理を繰り返す
(ステップ708)。
【0008】しかし、以上の様に単に部品交換で総配線
長が小さくなる部品配置を選ぶことを繰り返す方法で
は、最後にどの部品を交換しても総配線長が小さくなら
ない配置が出来上がるが、この特徴を持った部品配置は
複数存在し、この様な解に落ち着いた場合には、総配線
長がそれより小さい解があるにもかかわらず、この方法
ではその解を発見することが不可能になってしまう局所
安定化という現象を生じる欠点があった。
長が小さくなる部品配置を選ぶことを繰り返す方法で
は、最後にどの部品を交換しても総配線長が小さくなら
ない配置が出来上がるが、この特徴を持った部品配置は
複数存在し、この様な解に落ち着いた場合には、総配線
長がそれより小さい解があるにもかかわらず、この方法
ではその解を発見することが不可能になってしまう局所
安定化という現象を生じる欠点があった。
【0009】そのため、分子の加熱時のかく乱による状
態遷移により局所安定化から抜け出す原理を部品配置探
索の問題に適用したシミュレーテッドアニーリング法を
併用して最適な解を得ようとしてきた。すなわち、部品
配置の解を1つに安定させず、ランダムに解をいくつか
に変えた状態から、より評価関数が改善された解を選ぶ
方法である。また、遺伝的アルゴリズムの手法で、得ら
れた解の一部をランダムにかく乱した「子孫」の解を得
て、そこから評価関数が改善された解を選ぶ処理を繰り
返すことで解を改善する手法も知られている。
態遷移により局所安定化から抜け出す原理を部品配置探
索の問題に適用したシミュレーテッドアニーリング法を
併用して最適な解を得ようとしてきた。すなわち、部品
配置の解を1つに安定させず、ランダムに解をいくつか
に変えた状態から、より評価関数が改善された解を選ぶ
方法である。また、遺伝的アルゴリズムの手法で、得ら
れた解の一部をランダムにかく乱した「子孫」の解を得
て、そこから評価関数が改善された解を選ぶ処理を繰り
返すことで解を改善する手法も知られている。
【0010】しかし、上述した従来のシミュレーテッド
アニーリング法あるいは遺伝的アルゴリズム法による自
動部品配置システムは、ペア交換法により解を求める時
間より桁ちがいに多くの計算時間を有するという問題が
ある。その理由は、シミュレーテッドアニーリング法や
遺伝的アルゴリズム法はランダムなかく乱を利用した多
数の微妙に異なる解を作り、それぞれにペア交換法を適
用して得られた解から改善された解を得、それをまたか
く乱して多数の解を得て、それを再び評価するので、多
くの計算時間を必要とするためである。
アニーリング法あるいは遺伝的アルゴリズム法による自
動部品配置システムは、ペア交換法により解を求める時
間より桁ちがいに多くの計算時間を有するという問題が
ある。その理由は、シミュレーテッドアニーリング法や
遺伝的アルゴリズム法はランダムなかく乱を利用した多
数の微妙に異なる解を作り、それぞれにペア交換法を適
用して得られた解から改善された解を得、それをまたか
く乱して多数の解を得て、それを再び評価するので、多
くの計算時間を必要とするためである。
【0011】この問題の本質は、最適解に至る道が断た
れない様にかく乱を適切にかつ十分広範に行なわなけれ
ばいけないことと、ランダムなかく乱を加えるのに比し
て、解へ収束させる処理もかく乱を十分回復できるだけ
多くの収束処理を行なわなければならないからである。
結局、最適解により近い解を得るためには、なるべく大
きいかく乱をし、次に、そのかく乱を収束させるのに十
分な収束処理を行なう、つまり、より良い解を得るため
にはより多くの処理時間を必要とするという問題があっ
た。
れない様にかく乱を適切にかつ十分広範に行なわなけれ
ばいけないことと、ランダムなかく乱を加えるのに比し
て、解へ収束させる処理もかく乱を十分回復できるだけ
多くの収束処理を行なわなければならないからである。
結局、最適解により近い解を得るためには、なるべく大
きいかく乱をし、次に、そのかく乱を収束させるのに十
分な収束処理を行なう、つまり、より良い解を得るため
にはより多くの処理時間を必要とするという問題があっ
た。
【0012】一方、第2、第3の従来例では、質点系の
ばねモデルを用いた初期配置を行ない計算機の処理時間
は短く改善していたが、第1の問題は、質点系のばねモ
デルによる初期配置では大面積のブロックと小面積のブ
ロックを区別できない、その解は部品の面積の影響を反
映していない問題があった。
ばねモデルを用いた初期配置を行ない計算機の処理時間
は短く改善していたが、第1の問題は、質点系のばねモ
デルによる初期配置では大面積のブロックと小面積のブ
ロックを区別できない、その解は部品の面積の影響を反
映していない問題があった。
【0013】また、第2の問題は、以下に説明するが、
部品をネットの重心位置に配置する方法は必ずしも総ネ
ット長を最短にしない。例えば、第1の部品が基板の左
端と2本のネットで結ばれ、右端とは1本のネットで結
ばれる場合を考えると、第1の部品の重心位置は基板の
左端から右端までの3分の1の位置にある。また、第2
の部品が基板の左端と6本のネットで結ばれ、右端とは
4本のネットで結ばれる場合は、第2の部品の重心位置
は基板の左端から右端までの5分の2の位置にあり、第
1の部品の重心位置よりも右になる。しかし、総ネット
長を最短にするには、第2の部品の左右のネット数の差
は2であり、第1の部品よりも1つ大きいため、第2の
部品を優先し左に配置する解は総配線長が短くなる最善
の解になる。しかし、重心法によると結果はそうならず
最善の解が得られない問題があった。
部品をネットの重心位置に配置する方法は必ずしも総ネ
ット長を最短にしない。例えば、第1の部品が基板の左
端と2本のネットで結ばれ、右端とは1本のネットで結
ばれる場合を考えると、第1の部品の重心位置は基板の
左端から右端までの3分の1の位置にある。また、第2
の部品が基板の左端と6本のネットで結ばれ、右端とは
4本のネットで結ばれる場合は、第2の部品の重心位置
は基板の左端から右端までの5分の2の位置にあり、第
1の部品の重心位置よりも右になる。しかし、総ネット
長を最短にするには、第2の部品の左右のネット数の差
は2であり、第1の部品よりも1つ大きいため、第2の
部品を優先し左に配置する解は総配線長が短くなる最善
の解になる。しかし、重心法によると結果はそうならず
最善の解が得られない問題があった。
【0014】また、重心法の評価関数は、部品の遠方の
端子からの寄与が距離の二乗に比例して大きくなるた
め、遠方の部品との関係が近くの部品との関係よりも重
み付けられているので、総配線長を短くする配置を直接
的に得るためには不向きな評価関数であった。
端子からの寄与が距離の二乗に比例して大きくなるた
め、遠方の部品との関係が近くの部品との関係よりも重
み付けられているので、総配線長を短くする配置を直接
的に得るためには不向きな評価関数であった。
【0015】
【発明が解決しようとする課題】そのため、本出願人は
特開平6−149939号公報「印刷配線板の自動配置
設計装置」でこの問題の解決方法を提案している。この
解決方法は、部品から引き出す配線の数を引力の強さと
して、それを部品の面積で割った(疑似)比重を求め、
その比重の大きい順に部品を一次元に配置する。この一
次元部品配置の解を2つ求め、それらを縦および横方向
の座標軸への部品の投影とした二次元平面上の部品配置
(概略部品位置)を求める方法である。
特開平6−149939号公報「印刷配線板の自動配置
設計装置」でこの問題の解決方法を提案している。この
解決方法は、部品から引き出す配線の数を引力の強さと
して、それを部品の面積で割った(疑似)比重を求め、
その比重の大きい順に部品を一次元に配置する。この一
次元部品配置の解を2つ求め、それらを縦および横方向
の座標軸への部品の投影とした二次元平面上の部品配置
(概略部品位置)を求める方法である。
【0016】この方法は、部品及び部品群の配置を自由
に変更し最善の概略部品位置(初期配置)を得る方法で
ある。しかし、この方法は、その概略部品位置そのまま
では、設計に直接利用することができない未完成な部品
配置であるという問題点があった。
に変更し最善の概略部品位置(初期配置)を得る方法で
ある。しかし、この方法は、その概略部品位置そのまま
では、設計に直接利用することができない未完成な部品
配置であるという問題点があった。
【0017】本発明の目的は、この概略部品位置の部品
を実際の部品形状に基づき最適な位置に配置し、以降の
設計に直接利用できる配置を完成させる自動部品配置方
法およびシステムを提供することである。
を実際の部品形状に基づき最適な位置に配置し、以降の
設計に直接利用できる配置を完成させる自動部品配置方
法およびシステムを提供することである。
【0018】
【課題を解決するための手段】本発明の自動部品配置方
法は、部品端子同士を接続するネットデータを入力し、
記憶するステップと、当該未配置部品と既配置部品を結
ぶネット数から該未配置部品に接続されるその他のネッ
ト数を引き算した結果を該未配置部品の面積で割り、そ
の商の値を当該未配置部品の比重として記憶し、これら
部品を比重の大きい順に配置した第1の一次元部品配置
を計算するステップと、最初に配置する部品を他の部品
に変えて、第1の一次元部品配置を計算するのと同様に
して第2の一次元部品配置を得るステップと、第1の一
次元部品配置と第2の一次元部品配置を直交座標軸にお
ける部品の位置とし、部品の二次元平面での配置位置を
計算するステップと、該配置位置に部品の仮想形状を投
影するステップと、前記仮想形状の部品の配置をコンパ
クションすることで、仮想形状同士の重なりを解消し、
仮想形状同士を近接させた概略部品位置を得るステップ
と、部品の実寸法に寸法換算係数を掛けた値の寸法の部
品形状を前記概略部品位置に配置するステップと、部品
同士が重なり合う場合に、重なり合う部品を含む領域を
定義し、その範囲内に部品を再配置するステップと、部
品配置をコンパクションすることにより、部品同士の重
なりを解消し、部品同士を近接させた密集配置を得るス
テップを有する。
法は、部品端子同士を接続するネットデータを入力し、
記憶するステップと、当該未配置部品と既配置部品を結
ぶネット数から該未配置部品に接続されるその他のネッ
ト数を引き算した結果を該未配置部品の面積で割り、そ
の商の値を当該未配置部品の比重として記憶し、これら
部品を比重の大きい順に配置した第1の一次元部品配置
を計算するステップと、最初に配置する部品を他の部品
に変えて、第1の一次元部品配置を計算するのと同様に
して第2の一次元部品配置を得るステップと、第1の一
次元部品配置と第2の一次元部品配置を直交座標軸にお
ける部品の位置とし、部品の二次元平面での配置位置を
計算するステップと、該配置位置に部品の仮想形状を投
影するステップと、前記仮想形状の部品の配置をコンパ
クションすることで、仮想形状同士の重なりを解消し、
仮想形状同士を近接させた概略部品位置を得るステップ
と、部品の実寸法に寸法換算係数を掛けた値の寸法の部
品形状を前記概略部品位置に配置するステップと、部品
同士が重なり合う場合に、重なり合う部品を含む領域を
定義し、その範囲内に部品を再配置するステップと、部
品配置をコンパクションすることにより、部品同士の重
なりを解消し、部品同士を近接させた密集配置を得るス
テップを有する。
【0019】部品を一列に並べる一次元部品配置を2つ
求め、XY座標軸それぞれにこの一次元部品配置を投影
し、これらを二次元平面上の部品配置の各座標軸上への
投影として概略部品位置を定める。
求め、XY座標軸それぞれにこの一次元部品配置を投影
し、これらを二次元平面上の部品配置の各座標軸上への
投影として概略部品位置を定める。
【0020】一次元部品配置は、印刷配線板の総配線長
(あるいは部品同士の結合ネット)を物理現象の位置エ
ネルギーに対応させ、物体が比重の大きい順に配置され
ると位置エネルギーが最小になる物理現象に対応させ、
部品面積値を長さとする線分を部品として、部品から出
るネット数を部品に加わる力に対応させ(ネットを引き
出す方向に応じ正負の値にして)合計し、それをこの線
分の長さで割った値を比重に対応させ計算する。そし
て、この比重の大きい順に部品を一次元の座標軸方向に
配置することで、座標軸上に投影した総配線長が最小に
なる一次元部品配置を求めることができる。
(あるいは部品同士の結合ネット)を物理現象の位置エ
ネルギーに対応させ、物体が比重の大きい順に配置され
ると位置エネルギーが最小になる物理現象に対応させ、
部品面積値を長さとする線分を部品として、部品から出
るネット数を部品に加わる力に対応させ(ネットを引き
出す方向に応じ正負の値にして)合計し、それをこの線
分の長さで割った値を比重に対応させ計算する。そし
て、この比重の大きい順に部品を一次元の座標軸方向に
配置することで、座標軸上に投影した総配線長が最小に
なる一次元部品配置を求めることができる。
【0021】次に、最初に配置する部品を変え、それに
ともない部品間の相対関係が変わるため各部品の比重も
変わるので、先の第1の一次元部品配置と異なる第2の
一次元部品配置を得ることができる。
ともない部品間の相対関係が変わるため各部品の比重も
変わるので、先の第1の一次元部品配置と異なる第2の
一次元部品配置を得ることができる。
【0022】こうして得た第1の一次元部品配置と第2
の一次元部品配置を、概略部品位置のXY座標軸それぞ
れへの投影として2次元平面上に部品を配置した概略部
品配置を得る。このとき、部品に対応する全線分の長さ
の合計は全部品の面積をあらわす。
の一次元部品配置を、概略部品位置のXY座標軸それぞ
れへの投影として2次元平面上に部品を配置した概略部
品配置を得る。このとき、部品に対応する全線分の長さ
の合計は全部品の面積をあらわす。
【0023】次に、各一次元部品配置を展開した座標軸
に対して45度の傾きを持つ斜行座標軸を定める。
に対して45度の傾きを持つ斜行座標軸を定める。
【0024】次に、全部品面積を2で割った値の平方根
を寸法換算係数として求め、部品と同じ面積を有する円
形あるいは多角形の寸法に寸法換算係数を掛けた値の寸
法の仮想形状を概略部品位置に配置する。
を寸法換算係数として求め、部品と同じ面積を有する円
形あるいは多角形の寸法に寸法換算係数を掛けた値の寸
法の仮想形状を概略部品位置に配置する。
【0025】次に、各一次元部品配置を展開する座標軸
に対して45度の傾きを持つ斜行座標軸を定める。
に対して45度の傾きを持つ斜行座標軸を定める。
【0026】次に、仮想形状の部品の配置を斜行座標軸
に沿ってコンパクションすることで、仮想形状同士の重
なりを解消し、かつ仮想形状同士を近接させた配置を得
る。
に沿ってコンパクションすることで、仮想形状同士の重
なりを解消し、かつ仮想形状同士を近接させた配置を得
る。
【0027】次に、部品の実寸法に寸法換算係数を掛け
た値の寸法の部品形状を斜行座標軸方向に向け、概略部
品位置に配置する。
た値の寸法の部品形状を斜行座標軸方向に向け、概略部
品位置に配置する。
【0028】次に、この部品同士が重なり合う場合に、
両部品を含む領域を定義し、その範囲内に両部品を再配
置する。その後、部品配置を斜行座標軸方向にコンパク
ションすることで、斜行座標軸方向の部品同士の重なり
を解消し、かつ、部品同士を近接させた密集配置を得
る。
両部品を含む領域を定義し、その範囲内に両部品を再配
置する。その後、部品配置を斜行座標軸方向にコンパク
ションすることで、斜行座標軸方向の部品同士の重なり
を解消し、かつ、部品同士を近接させた密集配置を得
る。
【0029】こうして斜行座標軸上に、部品同士を結ぶ
総配線長を最小にするように部品を配置することができ
る。
総配線長を最小にするように部品を配置することができ
る。
【0030】本発明によれば、部品の最短配線を得る問
題を、総配線長を物理現象における物体の総位置エネル
ギーに対応させ、比重が大きい物が下に配置されること
で位置エネルギーが最小になることに対応させ部品の比
重を求めて比重を最小にする配置を求める手順を行なう
ことにより、処理の重複が無いため、総配線長を最短に
する部品配置を短時間に求めることができる。実際、本
発明が部品配置を計算する回数は、全部品数をNとする
と高々Nの二乗のオーダーであり、厳密に全配置を評価
するのに必要な従来の計算回数のオーダーであるNの階
乗N!に比べ十分少ない計算回数で最前の部品配置に近
い部品配置を計算できる。
題を、総配線長を物理現象における物体の総位置エネル
ギーに対応させ、比重が大きい物が下に配置されること
で位置エネルギーが最小になることに対応させ部品の比
重を求めて比重を最小にする配置を求める手順を行なう
ことにより、処理の重複が無いため、総配線長を最短に
する部品配置を短時間に求めることができる。実際、本
発明が部品配置を計算する回数は、全部品数をNとする
と高々Nの二乗のオーダーであり、厳密に全配置を評価
するのに必要な従来の計算回数のオーダーであるNの階
乗N!に比べ十分少ない計算回数で最前の部品配置に近
い部品配置を計算できる。
【0031】また、本発明によれば、比重を最小にする
概略配置を求めた位置に部品の仮想形状を定めて仮想形
状の部品の配置をコンパクションし、仮想形状を実部品
形状に置き換えてから部品形状に応じて部品を再配置
し、さらにその部品配置を再度縮小するコンパクション
処理を行ない、部品が重ならない部品配置を得る。
概略配置を求めた位置に部品の仮想形状を定めて仮想形
状の部品の配置をコンパクションし、仮想形状を実部品
形状に置き換えてから部品形状に応じて部品を再配置
し、さらにその部品配置を再度縮小するコンパクション
処理を行ない、部品が重ならない部品配置を得る。
【0032】本発明の自動部品配置システムは、部品デ
ータ記憶手段と、部品端子同士を接続するネットデータ
を入力し、前記部品データ記憶手段に記憶する部品デー
タ入力手段と、当該部品と既配置部品を結ぶネット数か
ら当該部品に接続されるその他のネット数を引き算した
結果を当該部品の面積で割り、その商の値を当該部品の
比重として前記部品データ記憶手段に記憶する部品比重
計算手段と、部品配置順番記憶手段と、部品群を比重の
大きい値に整列させ、この順番を第1の一次元部品配置
として前記部品配置順番記憶手段に記憶し、配置する部
品の選択肢を変えることで、部品群を比重の大きい順に
整列させた第2の一次部品配置を計算し、前記部品配置
順番記憶手段に記憶する整列手段と、第1の一次部品配
置と第2の一次元部品配置を部品の二次元平面上の位置
の2つの座標軸上の投影とする概略部品位置を計算する
概略部品配置手段と、部品の形状あるいは仮想形状を計
算して、該形状を前記概略部品位置に投影する部品形状
投影手段と、部品群を移動させ部品配置をコンパクショ
ンするコンパクション手段を有する。
ータ記憶手段と、部品端子同士を接続するネットデータ
を入力し、前記部品データ記憶手段に記憶する部品デー
タ入力手段と、当該部品と既配置部品を結ぶネット数か
ら当該部品に接続されるその他のネット数を引き算した
結果を当該部品の面積で割り、その商の値を当該部品の
比重として前記部品データ記憶手段に記憶する部品比重
計算手段と、部品配置順番記憶手段と、部品群を比重の
大きい値に整列させ、この順番を第1の一次元部品配置
として前記部品配置順番記憶手段に記憶し、配置する部
品の選択肢を変えることで、部品群を比重の大きい順に
整列させた第2の一次部品配置を計算し、前記部品配置
順番記憶手段に記憶する整列手段と、第1の一次部品配
置と第2の一次元部品配置を部品の二次元平面上の位置
の2つの座標軸上の投影とする概略部品位置を計算する
概略部品配置手段と、部品の形状あるいは仮想形状を計
算して、該形状を前記概略部品位置に投影する部品形状
投影手段と、部品群を移動させ部品配置をコンパクショ
ンするコンパクション手段を有する。
【0033】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。 (第1の実施形態)図1を参照すると、本発明の第1の
実施形態の自動部品配置システムは、プログラム制御に
より動作するコンピュータのデータ処理装置100と、
表示装置120と、入力装置130とから構成される。
て図面を参照して説明する。 (第1の実施形態)図1を参照すると、本発明の第1の
実施形態の自動部品配置システムは、プログラム制御に
より動作するコンピュータのデータ処理装置100と、
表示装置120と、入力装置130とから構成される。
【0034】データ処理装置100は部品データ入力部
101と部品データ記憶部102と部品比重計算部10
3と整列部104と部品配置順番記憶部105とクラス
タ作成部106と概略配置部107と部品再配置部10
8と部品配置コンパクション部109と部品形状記憶部
110を含む。
101と部品データ記憶部102と部品比重計算部10
3と整列部104と部品配置順番記憶部105とクラス
タ作成部106と概略配置部107と部品再配置部10
8と部品配置コンパクション部109と部品形状記憶部
110を含む。
【0035】部品データ入力部101は、部品の形状デ
ータと面積データを入力し、部品データ記憶部102に
書き込み記憶する。また、以下の要素を記録したネット
データを入力し部品データ記憶部102に書き込み記憶
する。すなわち、ネットデータは、ネット名と、そのネ
ットに接続する部品端子名を記録するデータ構造を持
つ。ネットデータは、ネット名毎に電気的に同一電位に
接続すべき部品端子を定義するものである。
ータと面積データを入力し、部品データ記憶部102に
書き込み記憶する。また、以下の要素を記録したネット
データを入力し部品データ記憶部102に書き込み記憶
する。すなわち、ネットデータは、ネット名と、そのネ
ットに接続する部品端子名を記録するデータ構造を持
つ。ネットデータは、ネット名毎に電気的に同一電位に
接続すべき部品端子を定義するものである。
【0036】部品比重計算部103は、部品の比重Wを
計算する。整列部104は、部品を比重の大きい順に整
列させ、この順番を部品配置順番記憶部105に記憶す
る。クラスタ作成部106は、部品の配置順番で隣り合
う上の部品の比重が下の部品の比重よりも重い場合に、
それらの部品の集合のクラスタを作成する。概略配置部
107は、第1の一次元部品配置と第2の一次元部品配
置を部品の二次元平面上の位置の2つの座標軸への投影
とする概略部品位置を計算し部品を配置する。部品形状
投影部110は、部品の形状あるいは仮想形状を計算し
概略部品位置に部品形状を配置する。
計算する。整列部104は、部品を比重の大きい順に整
列させ、この順番を部品配置順番記憶部105に記憶す
る。クラスタ作成部106は、部品の配置順番で隣り合
う上の部品の比重が下の部品の比重よりも重い場合に、
それらの部品の集合のクラスタを作成する。概略配置部
107は、第1の一次元部品配置と第2の一次元部品配
置を部品の二次元平面上の位置の2つの座標軸への投影
とする概略部品位置を計算し部品を配置する。部品形状
投影部110は、部品の形状あるいは仮想形状を計算し
概略部品位置に部品形状を配置する。
【0037】部品再配置部108は配置した部品同士の
重なりを検出し、重なる部品の集合を包み他の部品とは
重ならない領域を計算し、その領域内で部品を再配置す
る。部品配置コンパクション部109は、この部品を先
に定義した座標軸と45度の角度を成す斜行座標軸の各
座標軸方向に沿って、部品同士が近接する位置まで部品
配置を縮小し、また、部品同士の重なりがある場合には
それが解消される位置まで部品配置を拡大するコンパク
ション処理を実行する。
重なりを検出し、重なる部品の集合を包み他の部品とは
重ならない領域を計算し、その領域内で部品を再配置す
る。部品配置コンパクション部109は、この部品を先
に定義した座標軸と45度の角度を成す斜行座標軸の各
座標軸方向に沿って、部品同士が近接する位置まで部品
配置を縮小し、また、部品同士の重なりがある場合には
それが解消される位置まで部品配置を拡大するコンパク
ション処理を実行する。
【0038】次に、本実施形態の全体の動作を図2〜図
4を参照して説明する。まず、ステップ201で、部品
データ入力部101が、部品端子名とそれに接続する信
号ネット名を記録するネットデータと部品の面積を記録
する部品の面積データを入力し、部品データ記憶部10
2に書き込む。このとき、信号ネット毎にそれに接続す
る部品端子の集合を計算し記憶する。
4を参照して説明する。まず、ステップ201で、部品
データ入力部101が、部品端子名とそれに接続する信
号ネット名を記録するネットデータと部品の面積を記録
する部品の面積データを入力し、部品データ記憶部10
2に書き込む。このとき、信号ネット毎にそれに接続す
る部品端子の集合を計算し記憶する。
【0039】次に、ステップ202で、第1の一次部品
配置15を計算し、部品データ記憶部102に記憶す
る。このステップ202は、初めに全ての部品を未配置
部品として部品配置順番記憶部105に記憶する。そし
て、図3のステップ301から306の処理を行なう。
以下その処理を順に説明する。
配置15を計算し、部品データ記憶部102に記憶す
る。このステップ202は、初めに全ての部品を未配置
部品として部品配置順番記憶部105に記憶する。そし
て、図3のステップ301から306の処理を行なう。
以下その処理を順に説明する。
【0040】まず、ステップ301は、部品群を一次元
部品配置する。このステップ301は図4のステップ4
01からステップ404の処理で行なわれる。まず、ス
テップ401において、部品比重計算部103が未配置
部品の比重Wを以下の式1で計算する。
部品配置する。このステップ301は図4のステップ4
01からステップ404の処理で行なわれる。まず、ス
テップ401において、部品比重計算部103が未配置
部品の比重Wを以下の式1で計算する。
【0041】 比重=((下の既配置部品に接続するネット数) −(上に接続する、あるいは未配置部品に接続するネット数)) /(部品面積) …(1) ただし、この式(1)の計算において、未配置部品は全
ての既配置部品の上にあるものとする。また、同一信号
ネットが部品端子の上にも下にも接続する場合はそのネ
ットは計算に入れない。
ての既配置部品の上にあるものとする。また、同一信号
ネットが部品端子の上にも下にも接続する場合はそのネ
ットは計算に入れない。
【0042】次に、ステップ402において、整列部1
04が比重の大きい部品から順に未配置部品を整列さ
せ、この未配置部品の順番を部品配置順番記憶部105
に記憶する。さらに、ステップ403において、部品配
置順番記憶部105に記憶された順番が最下位の未配置
部品の部品データを既配置部品の最上部として部品配置
順番記憶部105に記憶する。
04が比重の大きい部品から順に未配置部品を整列さ
せ、この未配置部品の順番を部品配置順番記憶部105
に記憶する。さらに、ステップ403において、部品配
置順番記憶部105に記憶された順番が最下位の未配置
部品の部品データを既配置部品の最上部として部品配置
順番記憶部105に記憶する。
【0043】ステップ401において、最初はどの未配
置部品も既配置部品に接続するネット数が0であるか
ら、その値0からそれ以外の未配置部品に接続するネッ
ト数を引き算した値を部品面積で割って比重の値とす
る。その値は負であるが、ステップ403で未配置部品
を既配置部品に登録すると、その部品に結合する他の未
配置部品の比重は、既配置部品へ接続するネットの数P
1が増すので比重が大きくなる。
置部品も既配置部品に接続するネット数が0であるか
ら、その値0からそれ以外の未配置部品に接続するネッ
ト数を引き算した値を部品面積で割って比重の値とす
る。その値は負であるが、ステップ403で未配置部品
を既配置部品に登録すると、その部品に結合する他の未
配置部品の比重は、既配置部品へ接続するネットの数P
1が増すので比重が大きくなる。
【0044】次に、ステップ404において、全部品が
既配置部品に登録されていない場合を判定し、その場合
は、処理をステップ401に戻す。次に、ステップ40
1により、部品比重計算部103が、先にステップ40
3で登録した部品にネットで結合する未配置部品の比重
Wを再計算する。次に、ステップ402により、整列部
104が未配置部品全体を再整列し、部品配置順番記憶
部105のデータを更新する。
既配置部品に登録されていない場合を判定し、その場合
は、処理をステップ401に戻す。次に、ステップ40
1により、部品比重計算部103が、先にステップ40
3で登録した部品にネットで結合する未配置部品の比重
Wを再計算する。次に、ステップ402により、整列部
104が未配置部品全体を再整列し、部品配置順番記憶
部105のデータを更新する。
【0045】こうして、ステップ301は、ステップ4
01からステップ404までの処理を、未配置部品が無
くなるまで繰り返し、得られた既配置部品の順番を部品
配置順番記憶部105に記憶する(ステップ301)。
01からステップ404までの処理を、未配置部品が無
くなるまで繰り返し、得られた既配置部品の順番を部品
配置順番記憶部105に記憶する(ステップ301)。
【0046】次に、ステップ302では、クラスタ作成
部106がこの既配置部品の順番を用いてクラスタデー
タを作成する。以下、ステップ302の処理を説明す
る。まず、ステップ301で得た部品配置の解を下の部
品から上の部品の順に処理し、既配置部品の比重を部品
比重計算部103が再計算する。
部106がこの既配置部品の順番を用いてクラスタデー
タを作成する。以下、ステップ302の処理を説明す
る。まず、ステップ301で得た部品配置の解を下の部
品から上の部品の順に処理し、既配置部品の比重を部品
比重計算部103が再計算する。
【0047】ここで、既配置部品の比重は式(1)に示
す様に、その部品の下の部品と接続するネットの数から
上の部品と接続するネットの数を差し引いた値を部品の
面積で割った値で計算する。
す様に、その部品の下の部品と接続するネットの数から
上の部品と接続するネットの数を差し引いた値を部品の
面積で割った値で計算する。
【0048】こうして隣り合う部品の比重を比較し、下
の部品の比重よりも上の部品の比重が大きい場合、上下
の部品を集合させたクラスタを作成する。構成部品の面
積の和をクラスタの面積とする部品とみなしてクラスタ
の比重を部品比重計算部103が計算し、それらのデー
タを部品データ記憶部102に記憶する。ここで、クラ
スタを作成した次にその上の部品と比重を比較する際に
は、下の部品としてはクラスタを用いる。これを、ステ
ップ202における解の下の部品から上の部品までの全
部品を処理し終わるまで続ける(ステップ302)。
の部品の比重よりも上の部品の比重が大きい場合、上下
の部品を集合させたクラスタを作成する。構成部品の面
積の和をクラスタの面積とする部品とみなしてクラスタ
の比重を部品比重計算部103が計算し、それらのデー
タを部品データ記憶部102に記憶する。ここで、クラ
スタを作成した次にその上の部品と比重を比較する際に
は、下の部品としてはクラスタを用いる。これを、ステ
ップ202における解の下の部品から上の部品までの全
部品を処理し終わるまで続ける(ステップ302)。
【0049】次に、ステップ303では、以下で得られ
たクラスタと部品群(ただし、クラスタの階層位置は最
上位の階層のものだけ)を、再度図4のステップ401
から404の処理を行ない、部品・クラスタ配置を得
る。次に、ステップ304では、以上で得られた部品・
クラスタ配置において、その構成要素に対して図4の手
順が処理済みのクラスタの構成要素(下位の階層)を選
ぶ。
たクラスタと部品群(ただし、クラスタの階層位置は最
上位の階層のものだけ)を、再度図4のステップ401
から404の処理を行ない、部品・クラスタ配置を得
る。次に、ステップ304では、以上で得られた部品・
クラスタ配置において、その構成要素に対して図4の手
順が処理済みのクラスタの構成要素(下位の階層)を選
ぶ。
【0050】次に、ステップ305では、そのクラスタ
の構成要素(下位の階層)の部品(とクラスタ)に対し
て再び図4のステップ401から404の処理を行な
い、部品配置を計算する。このステップ304からステ
ップ305までの処理を、上位のクラスタの階層から下
位の階層まで、最終的には部品単体のレベルまで階層を
順次下りながら繰り返し、全部品の配置順序を計算する
(図3のステップ306)。得られた最終結果の部品配
置は第1の一次元部品配置15として記憶する。以上で
ステップ202の処理の詳細のステップ301から30
6を説明した(図2のステップ202)。
の構成要素(下位の階層)の部品(とクラスタ)に対し
て再び図4のステップ401から404の処理を行な
い、部品配置を計算する。このステップ304からステ
ップ305までの処理を、上位のクラスタの階層から下
位の階層まで、最終的には部品単体のレベルまで階層を
順次下りながら繰り返し、全部品の配置順序を計算する
(図3のステップ306)。得られた最終結果の部品配
置は第1の一次元部品配置15として記憶する。以上で
ステップ202の処理の詳細のステップ301から30
6を説明した(図2のステップ202)。
【0051】次に、ステップ203では、以下の手順で
第2の一次元部品配置16を計算する。先ず、第1の一
次元部品配置15を計算する際に最初に配置する部品
(最も比重の小さい未配置部品)を他の部品に変え、そ
の後の処理は第1の一次元部品配置15を得る処理と同
様にして第2の一次元部品配置16を得る。第1の一次
元部品配置15の最初の部品を選定する際に比重が最大
の部品が複数あり、選択肢が複数ある場合には、第1の
一次元部品配置15で最初に選んだ部品とは別の部品
で、第1の一次元部品配置15での順位が中間に位置す
る部品を選ぶ。選択肢が1つだけの場合は、最大比重の
次に大きい比重の部品を選ぶ。次に、この最初に配置す
る部品以外の部品を最初は全て未配置部品として部品配
置順番記憶部105に記憶し、それ以降は第1の一次元
部品配置15を得るのと同じステップ301から306
の処理を行ない、最終結果として得られた部品の配置を
第2の一次元部品配置16として部品配置順番記憶部1
05に記憶する。
第2の一次元部品配置16を計算する。先ず、第1の一
次元部品配置15を計算する際に最初に配置する部品
(最も比重の小さい未配置部品)を他の部品に変え、そ
の後の処理は第1の一次元部品配置15を得る処理と同
様にして第2の一次元部品配置16を得る。第1の一次
元部品配置15の最初の部品を選定する際に比重が最大
の部品が複数あり、選択肢が複数ある場合には、第1の
一次元部品配置15で最初に選んだ部品とは別の部品
で、第1の一次元部品配置15での順位が中間に位置す
る部品を選ぶ。選択肢が1つだけの場合は、最大比重の
次に大きい比重の部品を選ぶ。次に、この最初に配置す
る部品以外の部品を最初は全て未配置部品として部品配
置順番記憶部105に記憶し、それ以降は第1の一次元
部品配置15を得るのと同じステップ301から306
の処理を行ない、最終結果として得られた部品の配置を
第2の一次元部品配置16として部品配置順番記憶部1
05に記憶する。
【0052】次に、ステップ204では、概略配置部1
07が、第1の一次元部品配置15の順番の部品(ある
いはクラスタ)を、第1の一次元部品配置15で隣り合
う部品同士に関して、両部品の面積Sの和に予め定めた
係数値(この値は1とする)を掛け算した値の距離で第
1の座標軸方向に両部品の中心を隔てた部品の第1の座
標位置を計算する。次に、第1の座標軸方向の部品配置
位置を計算したのと同様に、概略配置部107は、第2
の一次元部品配置16の順番の部品(あるいはクラス
タ)を、第2の一次元部品配置で隣り合う部品同士に関
して、両部品の面積の和に予め定めた係数値(この値は
1とする)を掛け算した値の距離で第2の座標軸方向に
両部品の中心を隔てた部品の第2の座標位置を計算す
る。
07が、第1の一次元部品配置15の順番の部品(ある
いはクラスタ)を、第1の一次元部品配置15で隣り合
う部品同士に関して、両部品の面積Sの和に予め定めた
係数値(この値は1とする)を掛け算した値の距離で第
1の座標軸方向に両部品の中心を隔てた部品の第1の座
標位置を計算する。次に、第1の座標軸方向の部品配置
位置を計算したのと同様に、概略配置部107は、第2
の一次元部品配置16の順番の部品(あるいはクラス
タ)を、第2の一次元部品配置で隣り合う部品同士に関
して、両部品の面積の和に予め定めた係数値(この値は
1とする)を掛け算した値の距離で第2の座標軸方向に
両部品の中心を隔てた部品の第2の座標位置を計算す
る。
【0053】次に、概略配置部107は、以上で計算し
た部品の第1の座標位置と第2の座標位置の二次元座標
平面上の部品配置位置を計算し、これを概略部品位置と
し記憶する。こうして計算した全部品の配置される二次
元平面領域の長さLは全部品の面積を合計した値で与え
られる長さLになる。
た部品の第1の座標位置と第2の座標位置の二次元座標
平面上の部品配置位置を計算し、これを概略部品位置と
し記憶する。こうして計算した全部品の配置される二次
元平面領域の長さLは全部品の面積を合計した値で与え
られる長さLになる。
【0054】次に、ステップ205を説明する。ステッ
プ205では、部品の実寸法に対する仮想形状の寸法の
比を与える寸法換算係数値を、全部品面積の総和を2で
割った値の平方根として計算する。こうする事で全部品
の仮想形状の占有する面積が全部品の配置される領域の
L×Lの面積の半分となるようにする。次に、実部品と
同じ面積の円形あるいは多角形の寸法を計算し、この寸
法に先に得た寸法換算係数を掛けた値の寸法の仮想形状
を計算し、この形を概略部品位置に配置する。この仮想
形状として、実部品の寸法に寸法換算係数を掛けて相似
な形とした仮想形状を用いてもよい。
プ205では、部品の実寸法に対する仮想形状の寸法の
比を与える寸法換算係数値を、全部品面積の総和を2で
割った値の平方根として計算する。こうする事で全部品
の仮想形状の占有する面積が全部品の配置される領域の
L×Lの面積の半分となるようにする。次に、実部品と
同じ面積の円形あるいは多角形の寸法を計算し、この寸
法に先に得た寸法換算係数を掛けた値の寸法の仮想形状
を計算し、この形を概略部品位置に配置する。この仮想
形状として、実部品の寸法に寸法換算係数を掛けて相似
な形とした仮想形状を用いてもよい。
【0055】次に、ステップ206では、こうして得ら
れた部品配置に第1の一次元部品配置15を投影する座
標軸及び第2の一次元部品配置16を投影する座標軸と
45度の傾きを持つ斜行座標軸を設定し、この部品配置
を部品の仮想形状が互いに隣接するまで第1の斜行座標
軸に沿って縮小、あるいは部品の仮想形状同士の重なり
が解消するまで拡大する一次元コンパクション処理を行
ない、同様に第2の斜行座標軸方向の一次元コンパクシ
ョン処理を行なう。
れた部品配置に第1の一次元部品配置15を投影する座
標軸及び第2の一次元部品配置16を投影する座標軸と
45度の傾きを持つ斜行座標軸を設定し、この部品配置
を部品の仮想形状が互いに隣接するまで第1の斜行座標
軸に沿って縮小、あるいは部品の仮想形状同士の重なり
が解消するまで拡大する一次元コンパクション処理を行
ない、同様に第2の斜行座標軸方向の一次元コンパクシ
ョン処理を行なう。
【0056】次に、ステップ207では、部品配置位置
を斜行座標軸とともに45度回転させて、斜行座標軸を
XY座標軸に重ねる。
を斜行座標軸とともに45度回転させて、斜行座標軸を
XY座標軸に重ねる。
【0057】次に、ステップ211では、部品形状投影
部が部品の実形状の寸法に寸法換算係数を掛けた値を計
算し、この値の寸法の形状を部品形状記憶部110に記
憶し、この形状をステップ207で計算した概略部品位
置に配置し、また、部品方向をXY座標軸方向に向け
る。
部が部品の実形状の寸法に寸法換算係数を掛けた値を計
算し、この値の寸法の形状を部品形状記憶部110に記
憶し、この形状をステップ207で計算した概略部品位
置に配置し、また、部品方向をXY座標軸方向に向け
る。
【0058】次に、ステップ212では、部品再配置部
108が、配置した部品同士のX方向での重なりを検出
し、X方向で重なる部品に関して、それらの部品の位置
に、それ以外の部品とは重ならない最大限の領域を計算
し、以下の様にして、その領域内の部品の配置を改善す
る。その領域のX方向の幅からこの領域内の部品のX方
向の幅の和を引き算した値(値1)を計算する。 1.この値1が予め指定した負の値(限界値)よりも小
さい場合は、この領域内の部品でY方向の幅がX方向の
幅よりも小さい部品で、かつ、そのX方向の幅がこの領
域のY方向の幅よりも小さい部品を90度回転させ、値
1を再計算する。この値1が限界値以上になった場合
は、その位置に再配置する。 2.先の計算(1)結果でも、値1が限界値よりも依然
として小さい場合は、この領域の部品の集合をY方向に
回転させ、その領域のY方向の幅からこの領域内の部品
のY方向の幅の和を引き算した値(値2)を計算する。
この値1が限界値以上になった場合は、その位置に再配
置する。 3.この値2が限界値よりも小さい場合は、この領域内
の部品でX方向の幅がY方向の幅よりも小さい部品で、
かつ、そのY方向の幅がこの領域のX方向の幅よりも小
さい部品を90度回転させ、値2を再計算する。この値
2が限界値以上になった場合は、その位置に再配置す
る。
108が、配置した部品同士のX方向での重なりを検出
し、X方向で重なる部品に関して、それらの部品の位置
に、それ以外の部品とは重ならない最大限の領域を計算
し、以下の様にして、その領域内の部品の配置を改善す
る。その領域のX方向の幅からこの領域内の部品のX方
向の幅の和を引き算した値(値1)を計算する。 1.この値1が予め指定した負の値(限界値)よりも小
さい場合は、この領域内の部品でY方向の幅がX方向の
幅よりも小さい部品で、かつ、そのX方向の幅がこの領
域のY方向の幅よりも小さい部品を90度回転させ、値
1を再計算する。この値1が限界値以上になった場合
は、その位置に再配置する。 2.先の計算(1)結果でも、値1が限界値よりも依然
として小さい場合は、この領域の部品の集合をY方向に
回転させ、その領域のY方向の幅からこの領域内の部品
のY方向の幅の和を引き算した値(値2)を計算する。
この値1が限界値以上になった場合は、その位置に再配
置する。 3.この値2が限界値よりも小さい場合は、この領域内
の部品でX方向の幅がY方向の幅よりも小さい部品で、
かつ、そのY方向の幅がこの領域のX方向の幅よりも小
さい部品を90度回転させ、値2を再計算する。この値
2が限界値以上になった場合は、その位置に再配置す
る。
【0059】次に、同様にして、配置した部品同士のY
方向での重なりを検出し、Y方向で重なる部品に関し
て、それらの部品の位置に、それ以外の部品とは重なら
ない最大限の領域を計算し、その領域内の部品の配置を
改善する。
方向での重なりを検出し、Y方向で重なる部品に関し
て、それらの部品の位置に、それ以外の部品とは重なら
ない最大限の領域を計算し、その領域内の部品の配置を
改善する。
【0060】最後に、ステップ213で、部品配置コン
パクション部109が、この部品配置をY座標軸に沿っ
てコンパクション(あるいは部品同士の重なりを解消す
る位置まで配置を拡大)することで、Y座標軸方向での
部品同士の重なりを解消すると同時に、部品同士を隣接
させた配置を得る。同様にX座標軸方向に沿って部品配
置をコンパクションする。
パクション部109が、この部品配置をY座標軸に沿っ
てコンパクション(あるいは部品同士の重なりを解消す
る位置まで配置を拡大)することで、Y座標軸方向での
部品同士の重なりを解消すると同時に、部品同士を隣接
させた配置を得る。同様にX座標軸方向に沿って部品配
置をコンパクションする。
【0061】このステップ212からステップ213の
処理は、以下の手順で行なうこともできる。すなわち、
部品配置領域を縦横の等間隔の仕切線で分割し、部品の
中心が収納される分割領域に部品を収納し、その分割領
域の上下の境界の仕切線同士を縦方向に結ぶ制約グラフ
データと、左右の境界の仕切線同士を横方向に結ぶ制約
グラフデータを作成し、その制約グラフの長さとして仕
切線間に収納する部品の幅を計算し記憶する。
処理は、以下の手順で行なうこともできる。すなわち、
部品配置領域を縦横の等間隔の仕切線で分割し、部品の
中心が収納される分割領域に部品を収納し、その分割領
域の上下の境界の仕切線同士を縦方向に結ぶ制約グラフ
データと、左右の境界の仕切線同士を横方向に結ぶ制約
グラフデータを作成し、その制約グラフの長さとして仕
切線間に収納する部品の幅を計算し記憶する。
【0062】ここで、その制約グラフの長さよりも部品
の幅(半径)の和が大きく部品同士が重なる場合は、部
品を回転させ最も重なり幅が小さい向きに配向させる。
また、重なる部品群を90度単位で回転させ、更にその
個々の部品をその周囲で隣接する他の部品との重なりが
最小になる向きに90度単位で回転させる。回転させた
部品群を収納する分割領域の記録を更新し、仕切線を結
ぶ制約グラフデータの長さを仕切線の間に挟む部品の寸
法により更新する。そして、制約グラフデータの縦方向
の最長経路と横方向の最長経路を計算し、その経路長の
位置に仕切線を配置し、その間に部品を配置し、その部
品配置に対してコンパクション処理を行ない、部品同士
の重なりを解消した部品配置を得る。
の幅(半径)の和が大きく部品同士が重なる場合は、部
品を回転させ最も重なり幅が小さい向きに配向させる。
また、重なる部品群を90度単位で回転させ、更にその
個々の部品をその周囲で隣接する他の部品との重なりが
最小になる向きに90度単位で回転させる。回転させた
部品群を収納する分割領域の記録を更新し、仕切線を結
ぶ制約グラフデータの長さを仕切線の間に挟む部品の寸
法により更新する。そして、制約グラフデータの縦方向
の最長経路と横方向の最長経路を計算し、その経路長の
位置に仕切線を配置し、その間に部品を配置し、その部
品配置に対してコンパクション処理を行ない、部品同士
の重なりを解消した部品配置を得る。
【0063】次に、具体例を用いて説明する。図5に示
す部品1から9の部品の形状データと面積データとその
部品端子同士を接続するネットデータを部品データ入力
部101が入力し、部品データ記憶部102に記憶する
(ステップ201)。ここで、この9個の部品の面積は
いずれも1とする。
す部品1から9の部品の形状データと面積データとその
部品端子同士を接続するネットデータを部品データ入力
部101が入力し、部品データ記憶部102に記憶する
(ステップ201)。ここで、この9個の部品の面積は
いずれも1とする。
【0064】次に、部品比重計算部103が各部品の面
積を式(1)で計算する。未配置部品1の比重は、未配
置部品1につながるネットの数=2(未配置部品につな
がるネットは負数とする)を面積1で割り算し、比重=
−2とする(ステップ401)。
積を式(1)で計算する。未配置部品1の比重は、未配
置部品1につながるネットの数=2(未配置部品につな
がるネットは負数とする)を面積1で割り算し、比重=
−2とする(ステップ401)。
【0065】同様にして、全未配置部品1〜9の比重を
計算した結果は、部品1:−2、部品2:−3、部品
3:−2、部品4:−3、部品5:−4、部品6:−
3、部品7:−2、部品8:−2、部品9:−2、とな
る。
計算した結果は、部品1:−2、部品2:−3、部品
3:−2、部品4:−3、部品5:−4、部品6:−
3、部品7:−2、部品8:−2、部品9:−2、とな
る。
【0066】整列部104が最大比重の未配置部品を抽
出する(ステップ402)。最大の比重は−2である
が、その比重を持つ任意の部品(ここでは、部品3)を
選び、これを最初の既配置部品として記憶する(ステッ
プ403)。
出する(ステップ402)。最大の比重は−2である
が、その比重を持つ任意の部品(ここでは、部品3)を
選び、これを最初の既配置部品として記憶する(ステッ
プ403)。
【0067】次に、部品比重計算部103が、新たに既
配置部品とした部品3と接続する未配置部品の比重を再
計算する。未配置部品2は、部品3と1本のネットで結
ばれ、未配置部品1および5との合計2本のネットで結
ばれるので、結局未配置部品2の比重は(1−2)/1
=−1に変わる。他に、未配置部品6の比重も−1に変
わる(ステップ101)。
配置部品とした部品3と接続する未配置部品の比重を再
計算する。未配置部品2は、部品3と1本のネットで結
ばれ、未配置部品1および5との合計2本のネットで結
ばれるので、結局未配置部品2の比重は(1−2)/1
=−1に変わる。他に、未配置部品6の比重も−1に変
わる(ステップ101)。
【0068】次に、整列部104が最大の比重(−1)
の未配置部品6を選び(ステップ402)、既配置部品
3の最上位に乗せる既配置部品として記憶する(ステッ
プ403)。再び、部品比重計算部103が新たに既配
置部品とした部品6と接続する未配置部品の比重を再計
算し、部品9の比重0を得、部品5の比重−2を得る
(ステップ401)。
の未配置部品6を選び(ステップ402)、既配置部品
3の最上位に乗せる既配置部品として記憶する(ステッ
プ403)。再び、部品比重計算部103が新たに既配
置部品とした部品6と接続する未配置部品の比重を再計
算し、部品9の比重0を得、部品5の比重−2を得る
(ステップ401)。
【0069】次に、整列部104が最大比重の未配置部
品9を抽出し(ステップ402)、既配置部品の最上位
に乗せる(ステップ403)。以下、同様にして、部品
2、1、5、8、4、7の順で未配置部品を選び、既配
置部品に加える(ステップ301)。
品9を抽出し(ステップ402)、既配置部品の最上位
に乗せる(ステップ403)。以下、同様にして、部品
2、1、5、8、4、7の順で未配置部品を選び、既配
置部品に加える(ステップ301)。
【0070】次に、クラスタ作成部106が、以上で得
た配置における既配置部品の比重を再計算し、部品3の
比重−2と部品6の比重−1を得る。この様に下の部品
3より上の部品6の比重が大きい場合は、両部品を要素
として持つクラスタCLS1を表わすクラスタデータを
作成する。そして、クラスタCLS1の比重を計算す
る。すなわち、クラスタCLS1から上に出るネット数
を計算し、値として3本を得、クラスタの面積は要素部
品の面積の和を計算し、値として2を得、このネット数
をこの面積で割ることでCLS1の比重−1.5を得、
この比重をクラスタデータに記録する。以下、クラスタ
を、要素部品を囲む括弧であらわし、(3,6)と書
く。
た配置における既配置部品の比重を再計算し、部品3の
比重−2と部品6の比重−1を得る。この様に下の部品
3より上の部品6の比重が大きい場合は、両部品を要素
として持つクラスタCLS1を表わすクラスタデータを
作成する。そして、クラスタCLS1の比重を計算す
る。すなわち、クラスタCLS1から上に出るネット数
を計算し、値として3本を得、クラスタの面積は要素部
品の面積の和を計算し、値として2を得、このネット数
をこの面積で割ることでCLS1の比重−1.5を得、
この比重をクラスタデータに記録する。以下、クラスタ
を、要素部品を囲む括弧であらわし、(3,6)と書
く。
【0071】次に、上に来る既配置部品9の比重を計算
し比重0を得る。これは、下のクラスタCLS1の比重
より大きいので、CLS1と部品9を合わせてクラスタ
CLS2を作成する。CLS2の面積は3で比重は−1
である。クラスタは、((3,6),9)である。次
に、上に来る既配置部品2の比重を計算し−1を得る。
これは下のクラスタCLS2の比重と同じであるのでク
ラスタを作らない。
し比重0を得る。これは、下のクラスタCLS1の比重
より大きいので、CLS1と部品9を合わせてクラスタ
CLS2を作成する。CLS2の面積は3で比重は−1
である。クラスタは、((3,6),9)である。次
に、上に来る既配置部品2の比重を計算し−1を得る。
これは下のクラスタCLS2の比重と同じであるのでク
ラスタを作らない。
【0072】次に、上に来る既配置部品1の比重を計算
し値0を得る。これは下の部品2の比重−1よりも大き
い。そのため、部品2と部品1を合わせてクラスタCL
S3を作る。この面積は2、比重は−0.5である。ク
ラスタは(2,1)となる。このクラスタCLS3の比
重−0.5はその下のクラスタCLS2の比重−1より
大きい。そのため、CLS2とCLS3を合わせてクラ
スタCLS4を作る。この面積は5、比重は−0.8で
ある。クラスタは、(((3,6),9,(2,1))
となる。
し値0を得る。これは下の部品2の比重−1よりも大き
い。そのため、部品2と部品1を合わせてクラスタCL
S3を作る。この面積は2、比重は−0.5である。ク
ラスタは(2,1)となる。このクラスタCLS3の比
重−0.5はその下のクラスタCLS2の比重−1より
大きい。そのため、CLS2とCLS3を合わせてクラ
スタCLS4を作る。この面積は5、比重は−0.8で
ある。クラスタは、(((3,6),9,(2,1))
となる。
【0073】次に、上に来る既配置部品5の比重を計算
し、値0を得る。これは、下のクラスタCLS4の比重
−0.8よりも大きい。そのため、部品5とCLS4を
合わせてクラスタCLS5を作る。この面積は6、比重
は−0.67である。クラスタは、((((3,6),
9),(2,1)),5)となる。次に、上に来る既配
置部品8の比重を計算し、値1を得る。これは下のクラ
スタCLS5より大きい。そのため、部品8とCLS5
を合わせてクラスタCLS6を作る。この面積は7、比
重は−0.43である。クラスタは、(((((3,
6),9),(2,1)),5),8)となる。
し、値0を得る。これは、下のクラスタCLS4の比重
−0.8よりも大きい。そのため、部品5とCLS4を
合わせてクラスタCLS5を作る。この面積は6、比重
は−0.67である。クラスタは、((((3,6),
9),(2,1)),5)となる。次に、上に来る既配
置部品8の比重を計算し、値1を得る。これは下のクラ
スタCLS5より大きい。そのため、部品8とCLS5
を合わせてクラスタCLS6を作る。この面積は7、比
重は−0.43である。クラスタは、(((((3,
6),9),(2,1)),5),8)となる。
【0074】次に、上に来る既配置部品4の比重を計算
し値1を得る。これは下のクラスタCLS6より大き
い。そのため、部品4とCLS6を合わせてクラスタC
LS7を作る。この面積は8、比重は−0.25であ
る。クラスタは、((((((3,6),9),(2,
1)),5),8,4)となる。次に、上に来る既配置
部品7の比重を計算し値2を得る。これは下のクラスタ
CLS7より大きい。そのため、部品7とCLS5を合
わせてクラスタCLS8を作る。クラスタは、
(((((((3,6),9),(2,1)),5),
8),4),7)となる。結局全部品が1つのクラスタ
CLS8に包含された(ステップ302)。
し値1を得る。これは下のクラスタCLS6より大き
い。そのため、部品4とCLS6を合わせてクラスタC
LS7を作る。この面積は8、比重は−0.25であ
る。クラスタは、((((((3,6),9),(2,
1)),5),8,4)となる。次に、上に来る既配置
部品7の比重を計算し値2を得る。これは下のクラスタ
CLS7より大きい。そのため、部品7とCLS5を合
わせてクラスタCLS8を作る。クラスタは、
(((((((3,6),9),(2,1)),5),
8),4),7)となる。結局全部品が1つのクラスタ
CLS8に包含された(ステップ302)。
【0075】次に、このクラスタCLS8の内部の部品
7とCLS7を未配置部品として、比重を計算すると、
部品7は比重が−2で、CLS7は比重が−0.25で
あり、CLS7の方が大きいのでCLS7の上に部品7
を配置する(ステップ305)。次に、クラスタCLS
7の内部を同様の処理により、CLS6の上に部品4を
配置する(ステップ305)。
7とCLS7を未配置部品として、比重を計算すると、
部品7は比重が−2で、CLS7は比重が−0.25で
あり、CLS7の方が大きいのでCLS7の上に部品7
を配置する(ステップ305)。次に、クラスタCLS
7の内部を同様の処理により、CLS6の上に部品4を
配置する(ステップ305)。
【0076】クラスタCLS6の内部を同様の処理によ
り、CLS6の上に部品8を配置する(ステップ30
5)。クラスタCLS6の内部を同様の処理により、C
LS4の上に部品5を配置する(ステップ305)。ク
ラスタCLS4の内部を同様の処理により、CLS2の
上にCLS3を配置する(ステップ305)。クラスタ
CLS3の内部の部品2はクラスタ外で下とつながるネ
ットが1本あり、上とつながるネットが1本、クラスタ
内でつながるネットが1本ある。部品2をクラスタCL
S3内部の未配置部品とし、最後の種類のネット1本は
上につながるネットに加えて比重を計算し、結局部品2
の比重は−1と計算する。部品1については、クラスタ
外で上とつながるネットが1本、クラスタ内とつながる
ネットが1本ある。後の種類のネット1本は上につなが
るネットに加えて比重を計算し、結局部品1の比重は−
2と計算する。このため、部品2の方が大きいので部品
2の上に部品1を配置する(ステップ305)。
り、CLS6の上に部品8を配置する(ステップ30
5)。クラスタCLS6の内部を同様の処理により、C
LS4の上に部品5を配置する(ステップ305)。ク
ラスタCLS4の内部を同様の処理により、CLS2の
上にCLS3を配置する(ステップ305)。クラスタ
CLS3の内部の部品2はクラスタ外で下とつながるネ
ットが1本あり、上とつながるネットが1本、クラスタ
内でつながるネットが1本ある。部品2をクラスタCL
S3内部の未配置部品とし、最後の種類のネット1本は
上につながるネットに加えて比重を計算し、結局部品2
の比重は−1と計算する。部品1については、クラスタ
外で上とつながるネットが1本、クラスタ内とつながる
ネットが1本ある。後の種類のネット1本は上につなが
るネットに加えて比重を計算し、結局部品1の比重は−
2と計算する。このため、部品2の方が大きいので部品
2の上に部品1を配置する(ステップ305)。
【0077】クラスタCLS2の内部を同様の処理によ
り、CLS1の上に部品9を配置する(ステップ30
5)。クラスタCLS1の内部を同様の処理により、部
品3の上に部品6を配置する(ステップ305)。こう
して、クラスタ内の部品の配置も最適配置を行なえた。
この列では、クラスタ形成前の配置と変わらなかった
が、もっと複雑なネットの場合には、この処理により配
置が改善される(ステップ202)。
り、CLS1の上に部品9を配置する(ステップ30
5)。クラスタCLS1の内部を同様の処理により、部
品3の上に部品6を配置する(ステップ305)。こう
して、クラスタ内の部品の配置も最適配置を行なえた。
この列では、クラスタ形成前の配置と変わらなかった
が、もっと複雑なネットの場合には、この処理により配
置が改善される(ステップ202)。
【0078】次に、第2の一次元部品配置16を行な
う。全部品が未配置部品の状態では最大の比重を持つ部
品は複数あり、第1の一次元部品配置を行なう際にはそ
の中から部品3を選んだが、第2の部品配置において
は、それと異なる部品で第1の一次元部品配置で中間に
位置する部品1を選ぶ。それ以降は第1の一次元部品配
置を計算する場合と同様に処理し部品とクラスタの第2
の一次元部品配置を得る。その結果は、
(((((((1,2),3),(4,7)),5),
6),8),9)となる(ステップ203)。
う。全部品が未配置部品の状態では最大の比重を持つ部
品は複数あり、第1の一次元部品配置を行なう際にはそ
の中から部品3を選んだが、第2の部品配置において
は、それと異なる部品で第1の一次元部品配置で中間に
位置する部品1を選ぶ。それ以降は第1の一次元部品配
置を計算する場合と同様に処理し部品とクラスタの第2
の一次元部品配置を得る。その結果は、
(((((((1,2),3),(4,7)),5),
6),8),9)となる(ステップ203)。
【0079】第1の一次元部品配置15をX座標軸への
投影として第2の一次元部品配置16をY座標軸への投
影として、図6に示す様にXY座標平面上の部品配置位
置を計算する(ステップ204)。次に、部品形状投影
部が、総部品面積9を2で割った値の平方根を寸法換算
係数kとして求める。
投影として第2の一次元部品配置16をY座標軸への投
影として、図6に示す様にXY座標平面上の部品配置位
置を計算する(ステップ204)。次に、部品形状投影
部が、総部品面積9を2で割った値の平方根を寸法換算
係数kとして求める。
【0080】k=sqrt(9/2)=2.12 次に、面積1の部品と同じ面積の円の直径d=sqrt
(4/π)=1.13を計算し、これに寸法換算係数k
を掛けて2.4を得、図7に示す様に概略部品位置に
2.4の直径を有する円の仮想形状を設置する(ステッ
プ205)。次に、図18に示す様にXY座標軸と45
度の角度を成す斜行座標軸を設定し、各斜行座標軸に沿
って部品を移動し部品配置をコンパクションする処理に
より部品の仮想形状同士を近接させ、また、部品の仮想
形状同士の重なりがある場合はそれを解消するまで部品
ピッチを拡大する(ステップ206)。
(4/π)=1.13を計算し、これに寸法換算係数k
を掛けて2.4を得、図7に示す様に概略部品位置に
2.4の直径を有する円の仮想形状を設置する(ステッ
プ205)。次に、図18に示す様にXY座標軸と45
度の角度を成す斜行座標軸を設定し、各斜行座標軸に沿
って部品を移動し部品配置をコンパクションする処理に
より部品の仮想形状同士を近接させ、また、部品の仮想
形状同士の重なりがある場合はそれを解消するまで部品
ピッチを拡大する(ステップ206)。
【0081】次に、図18に示す様に部品配置位置を斜
行座標軸とともに45度回転させ、斜行座標軸をXY座
標軸と一致させる(ステップ210)。そして、図10
に示すように概略部品位置に部品の仮想形状を実形状に
置き換えて配置する。すなわち、部品の実寸法に寸法換
算係数kを掛けた値の寸法の部品形状を計算し、その形
状をX座標軸方向あるいはY座標軸方向に向けて概略部
品位置に配置する(ステップ211)。
行座標軸とともに45度回転させ、斜行座標軸をXY座
標軸と一致させる(ステップ210)。そして、図10
に示すように概略部品位置に部品の仮想形状を実形状に
置き換えて配置する。すなわち、部品の実寸法に寸法換
算係数kを掛けた値の寸法の部品形状を計算し、その形
状をX座標軸方向あるいはY座標軸方向に向けて概略部
品位置に配置する(ステップ211)。
【0082】次に、部品再配置部108が部品8と部品
7がX方向で重なることを検出し、部品8と部品7の両
者を囲む領域(図10に点線で示す)を設定する。次
に、領域の左右の幅と部品8と部品7の左右の幅を合計
した値とを比較することで重なりの解消の可能性を計算
し、否定的結果を得る。次に、領域の上下の幅と部品8
と部品7の上下の幅を合計した値とを比較することで重
なりの解消の可能性を計算し、肯定的結果を得、部品8
と部品7を上下に配置する位置を計算し、図10に示す
様に部品を再配置する(ステップ212)。最後に、部
品配置コンパクション部109が、XY座標軸と重なっ
た斜行座標軸に沿って部品を移動させ部品配置をコンパ
クションする処理により部品の実形状同士を近接させる
(ステップ213)。 (第2の実施形態)図12を参照すると、本発明の第2
の実施形態の自動部品配置システムは、プログラム制御
により動作するデータ処理装置100と、表示装置12
0と、入力装置130とから構成されている。第2の実
施形態の自動部品配置システムは、データ処理装置10
0が、第1の実施形態の各部に加え、共通クラスタ作成
部113と階層別配置部114を有する。
7がX方向で重なることを検出し、部品8と部品7の両
者を囲む領域(図10に点線で示す)を設定する。次
に、領域の左右の幅と部品8と部品7の左右の幅を合計
した値とを比較することで重なりの解消の可能性を計算
し、否定的結果を得る。次に、領域の上下の幅と部品8
と部品7の上下の幅を合計した値とを比較することで重
なりの解消の可能性を計算し、肯定的結果を得、部品8
と部品7を上下に配置する位置を計算し、図10に示す
様に部品を再配置する(ステップ212)。最後に、部
品配置コンパクション部109が、XY座標軸と重なっ
た斜行座標軸に沿って部品を移動させ部品配置をコンパ
クションする処理により部品の実形状同士を近接させる
(ステップ213)。 (第2の実施形態)図12を参照すると、本発明の第2
の実施形態の自動部品配置システムは、プログラム制御
により動作するデータ処理装置100と、表示装置12
0と、入力装置130とから構成されている。第2の実
施形態の自動部品配置システムは、データ処理装置10
0が、第1の実施形態の各部に加え、共通クラスタ作成
部113と階層別配置部114を有する。
【0083】この共通クラスタ作成部113の概略動作
は、第1の一次元部品配置と第2の一次元部品配置とで
共通に存在するクラスタを共通クラスタとして抽出する
ことである。階層別配置部114は、上位の共通クラス
タから順に下位の階層の部品あるいは共通クラスタを1
つの部品として配置し、その共通クラスタ毎に、それを
更に下位の階層の共通クラスタ及び部品に展開し配置す
る。
は、第1の一次元部品配置と第2の一次元部品配置とで
共通に存在するクラスタを共通クラスタとして抽出する
ことである。階層別配置部114は、上位の共通クラス
タから順に下位の階層の部品あるいは共通クラスタを1
つの部品として配置し、その共通クラスタ毎に、それを
更に下位の階層の共通クラスタ及び部品に展開し配置す
る。
【0084】次に、本実施形態の全体の動作について図
13のフローチャートを参照して詳細に説明する。ま
ず、図13を参照して説明する。
13のフローチャートを参照して詳細に説明する。ま
ず、図13を参照して説明する。
【0085】ステップ201では、第1の実施形態のス
テップ201により、部品データ入力部101がネット
データと部品の面積データと部品形状データを入力し、
部品データ記憶部102に書き込む。次に、ステップ2
02では、第1の実施形態のステップ202により、第
1の一次元部品配置15を得、結果の部品配置は第1の
一次元部品配置15として記憶する。次に、ステップ2
03では、第1の実施形態のステップ203により、第
2の一次元部品配置16を得、記憶する。
テップ201により、部品データ入力部101がネット
データと部品の面積データと部品形状データを入力し、
部品データ記憶部102に書き込む。次に、ステップ2
02では、第1の実施形態のステップ202により、第
1の一次元部品配置15を得、結果の部品配置は第1の
一次元部品配置15として記憶する。次に、ステップ2
03では、第1の実施形態のステップ203により、第
2の一次元部品配置16を得、記憶する。
【0086】次に、ステップ220では、共通クラスタ
作成部113が、ステップ202で第1の一次元部品配
置を計算した際に得られたクラスタとステップ203で
第2の一次元部品配置15を計算した際に得られたクラ
スタを比較し、それが要素とする全部品が同じクラスタ
を両一次元部品配置の共通クラスタとして記憶する。ま
た、全部品の集合を1つの共通クラスタとする。そし
て、全部品面積の和を2で割った値の平方根を寸法換算
係数として求める。
作成部113が、ステップ202で第1の一次元部品配
置を計算した際に得られたクラスタとステップ203で
第2の一次元部品配置15を計算した際に得られたクラ
スタを比較し、それが要素とする全部品が同じクラスタ
を両一次元部品配置の共通クラスタとして記憶する。ま
た、全部品の集合を1つの共通クラスタとする。そし
て、全部品面積の和を2で割った値の平方根を寸法換算
係数として求める。
【0087】次に、ステップ221からステップ224
では、階層別配置部114が、以下の様にして上位の共
通クラスタから順に下位の階層の部品あるいは共通クラ
スタに展開し配置する。
では、階層別配置部114が、以下の様にして上位の共
通クラスタから順に下位の階層の部品あるいは共通クラ
スタに展開し配置する。
【0088】ステップ221では、概略配置部107
が、共通クラスタの中心を原点とする座標軸上に、共通
クラスタの要素の部品(及び共通クラスタ)をその面積
の長さを持つ線分にし、その線分をX座標軸上に原点か
ら左右対称に第1の一次元部品配置15の順に配置す
る。同様に、Y座標軸上に原点から上下対称に、それら
の部品の線分を第2の一次元部品配置15の順に配置す
る。そして、XY座標軸上のその線分の中心位置をその
線分に対応する部品の位置のXY座標成分として、それ
らの部品(共通クラスタ)をその上位の階層の共通クラ
スタに替えて配置する概略部品位置を定める。
が、共通クラスタの中心を原点とする座標軸上に、共通
クラスタの要素の部品(及び共通クラスタ)をその面積
の長さを持つ線分にし、その線分をX座標軸上に原点か
ら左右対称に第1の一次元部品配置15の順に配置す
る。同様に、Y座標軸上に原点から上下対称に、それら
の部品の線分を第2の一次元部品配置15の順に配置す
る。そして、XY座標軸上のその線分の中心位置をその
線分に対応する部品の位置のXY座標成分として、それ
らの部品(共通クラスタ)をその上位の階層の共通クラ
スタに替えて配置する概略部品位置を定める。
【0089】次に、ステップ222では、第1の実施形
態のステップ205と同様に、部品形状投影部201
が、部品(あるいは共通クラスタ)の面積を有する円形
あるいは多角形の寸法を計算し、この寸法に寸法換算係
数を掛けた値の寸法の仮想形状を計算し、この形を概略
部品位置に配置する。
態のステップ205と同様に、部品形状投影部201
が、部品(あるいは共通クラスタ)の面積を有する円形
あるいは多角形の寸法を計算し、この寸法に寸法換算係
数を掛けた値の寸法の仮想形状を計算し、この形を概略
部品位置に配置する。
【0090】次に、ステップ223では、第1の実施形
態のステップ206と同様に、こうして展開した部品
(共通クラスタ)の配置のXY座標軸に45度の傾きを
持つ斜行座標軸を設定し、この部品配置を部品の仮想形
状同士の重なりが解消し互いに隣接するまで第1の斜行
座標軸に沿ってコンパクション処理を行ない、次に、同
様に第2の斜行座標軸に沿ってコンパクション処理を行
なう。この様にして最下位の階層に至るまでステップ2
21から223を繰り返し、共通クラスタを単部品の階
層に至るまで展開し部品の概略配置位置を定める。
態のステップ206と同様に、こうして展開した部品
(共通クラスタ)の配置のXY座標軸に45度の傾きを
持つ斜行座標軸を設定し、この部品配置を部品の仮想形
状同士の重なりが解消し互いに隣接するまで第1の斜行
座標軸に沿ってコンパクション処理を行ない、次に、同
様に第2の斜行座標軸に沿ってコンパクション処理を行
なう。この様にして最下位の階層に至るまでステップ2
21から223を繰り返し、共通クラスタを単部品の階
層に至るまで展開し部品の概略配置位置を定める。
【0091】次に、第1の実施形態のステップ210
で、部品配置位置と斜行座標軸を45度回転させて、斜
行座標軸をXY座標軸に重ねる。
で、部品配置位置と斜行座標軸を45度回転させて、斜
行座標軸をXY座標軸に重ねる。
【0092】次に、第1の実施形態のステップ211
で、部品の実形状の寸法に寸法換算係数を掛けた値を計
算し、この値の寸法の形状を概略部品位置に配置しXY
座標軸方向に向ける。次に、第1の実施形態のステップ
212で、部品の配置を改善する。
で、部品の実形状の寸法に寸法換算係数を掛けた値を計
算し、この値の寸法の形状を概略部品位置に配置しXY
座標軸方向に向ける。次に、第1の実施形態のステップ
212で、部品の配置を改善する。
【0093】最後に、第1の実施形態のステップ213
で、部品配置コンパクション部109が、この部品配置
をY座標軸に沿って縮小(あるいは部品同士の重なりを
解消する位置まで配置を拡大)するコンパクション処理
を行なうことで、Y座標軸方向での部品同士の重なりを
解消すると同時に、部品同士を隣接させた配置を得る。
同様に、X座標軸方向に沿ってコンパクション処理す
る。
で、部品配置コンパクション部109が、この部品配置
をY座標軸に沿って縮小(あるいは部品同士の重なりを
解消する位置まで配置を拡大)するコンパクション処理
を行なうことで、Y座標軸方向での部品同士の重なりを
解消すると同時に、部品同士を隣接させた配置を得る。
同様に、X座標軸方向に沿ってコンパクション処理す
る。
【0094】次に、具体例を用いて説明する。図5に示
す部品1から9とその部品端子同士を接続するネットデ
ータを部品データ入力部101が入力し、部品データ記
憶部102に記憶する(ステップ201)。先ず、第1
の実施形態と同様にして、第1の一次元部品配置を得
る。結果は、(((((((3,6),9),(2,
1)),5),8),4),7)となる(ステップ20
2)。
す部品1から9とその部品端子同士を接続するネットデ
ータを部品データ入力部101が入力し、部品データ記
憶部102に記憶する(ステップ201)。先ず、第1
の実施形態と同様にして、第1の一次元部品配置を得
る。結果は、(((((((3,6),9),(2,
1)),5),8),4),7)となる(ステップ20
2)。
【0095】次に、第2の一次元部品配置を行なう。そ
の結果は、(((((((1,2),3),(4,
7)),5),6),8),9)となる(ステップ20
3)。次に、第1の一次元部品配置15と第2の一次元
部品配置16は、全部品から成るクラスタを共通クラス
タにする。この明らかな場合以外に、両配置が(部品
1、部品2)のクラスタを共有することを見出す。この
クラスタを共通クラスタc1とし記憶する。また、総部
品面積9を2で割った値の平方根を寸法換算係数kとし
て求める(ステップ220)。
の結果は、(((((((1,2),3),(4,
7)),5),6),8),9)となる(ステップ20
3)。次に、第1の一次元部品配置15と第2の一次元
部品配置16は、全部品から成るクラスタを共通クラス
タにする。この明らかな場合以外に、両配置が(部品
1、部品2)のクラスタを共有することを見出す。この
クラスタを共通クラスタc1とし記憶する。また、総部
品面積9を2で割った値の平方根を寸法換算係数kとし
て求める(ステップ220)。
【0096】k=sqrt(9/2)=2.12 次に、全部品の共通クラスタの要素の共通クラスタc1
とその他の部品による第1の一次元部品配置をX座標軸
への投影とし、第2の一次元部品配置をY座標軸への投
影としてXY座標平面上の部品概略位置を計算する(ス
テップ221)。次に、部品形状投影部201が、以下
の様にして部品の仮想形状を計算する。すなわち、面積
1の部品を円で近似すると円の直径d=sqrt(4/
π)=1.13となるが、これに寸法換算係数kを掛け
て2.4を得、図14に示す様に概略部品位置に部品の
仮想形状が2.4の直径を有する円のデータを記録す
る。面積2の部品(共通クラスタ)c1は同様に計算し
直径3.4を得る(ステップ222)。
とその他の部品による第1の一次元部品配置をX座標軸
への投影とし、第2の一次元部品配置をY座標軸への投
影としてXY座標平面上の部品概略位置を計算する(ス
テップ221)。次に、部品形状投影部201が、以下
の様にして部品の仮想形状を計算する。すなわち、面積
1の部品を円で近似すると円の直径d=sqrt(4/
π)=1.13となるが、これに寸法換算係数kを掛け
て2.4を得、図14に示す様に概略部品位置に部品の
仮想形状が2.4の直径を有する円のデータを記録す
る。面積2の部品(共通クラスタ)c1は同様に計算し
直径3.4を得る(ステップ222)。
【0097】次に、図15に示す様にXY座標軸と45
度の角度を成す斜行座標軸を設定し、各斜行座標軸に沿
って部品を移動し部品配置を縮小するコンパクション処
理により部品を近接し、また、部品同士の重なりを解消
する(ステップ223)。次に、図16に示す様に共通
クラスタc1を下位の階層の部品1と部品2に展開す
る。部品1と部品2の位置は第1の一次元部品配置と第
2の一次元部品配置の順がXY座標軸への投影となる様
に概略部品位置を定め設定し、部品の仮想形状は先と同
様に計算した直径を持つ円を設定する(ステップ22
1,222)。
度の角度を成す斜行座標軸を設定し、各斜行座標軸に沿
って部品を移動し部品配置を縮小するコンパクション処
理により部品を近接し、また、部品同士の重なりを解消
する(ステップ223)。次に、図16に示す様に共通
クラスタc1を下位の階層の部品1と部品2に展開す
る。部品1と部品2の位置は第1の一次元部品配置と第
2の一次元部品配置の順がXY座標軸への投影となる様
に概略部品位置を定め設定し、部品の仮想形状は先と同
様に計算した直径を持つ円を設定する(ステップ22
1,222)。
【0098】次に、図17に示す様に部品を斜行座標軸
に沿ってコンパクション処理し部品同士を近接させ、か
つ、部品同士の重なりを解消する(ステップ223)。
次に、図18に示す様に部品配置位置を斜行座標軸とと
もに45度回転させ、斜行座標軸をXY座標軸と一致さ
せる(ステップ210)。そして、図9に示す様に、部
品形状投影部201が、仮想形状の代わりとして、部品
の実寸法に寸法換算係数kを掛けた値の寸法の形状をX
Y座標軸方向に配向した形を配置する(ステップ21
1)。
に沿ってコンパクション処理し部品同士を近接させ、か
つ、部品同士の重なりを解消する(ステップ223)。
次に、図18に示す様に部品配置位置を斜行座標軸とと
もに45度回転させ、斜行座標軸をXY座標軸と一致さ
せる(ステップ210)。そして、図9に示す様に、部
品形状投影部201が、仮想形状の代わりとして、部品
の実寸法に寸法換算係数kを掛けた値の寸法の形状をX
Y座標軸方向に配向した形を配置する(ステップ21
1)。
【0099】次に、部品再配置部108が、部品8と部
品7がX方向で重なることを検出し、部品8と部品7の
両者を囲む領域(9に点線で示す)を設定する。次に、
領域の左右の幅と部品8と部品7の左右の幅を合計した
値を比較し重なりの解消に否定的結果を得、次に、領域
の上下の幅と部品8と部品7の上下の幅を合計した値を
比較し重なりの解消に肯定的結果を得、部品8と部品7
を上下に配置する位置を計算し、図10に示す様に部品
を再配置する(ステップ212)。後に、部品配置コン
パクション部109が、図11に示すようにXY座標軸
となった斜行座標軸に沿って部品配置をコンパクション
処理する。 (第3の実施形態)第3の実施形態の構成は、図19に
示すように、第2の実施形態の各部に加え、部品データ
入力部101が初期クラスタ作成部111を有する。初
期クラスタ作成部111は部品(第1の部品)毎に、そ
の部品と他の1つの部品(第2の部品)を結ぶネットの
数を部品間の結合力値として計算する。第1の部品に対
し最大の結合力値を与える第2の部品(これを第3の部
品と称する)を抽出する計算を行ない、それ以外の第2
の部品と第1の部品の結合力値の総和を計算する。前者
が後者よりも予め指定した値より大きい場合に、第3の
部品を第1の部品との結合が強い部品として、第3の部
品と第1の部品の集合を初期クラスタと記録する。初期
クラスタは部品と同等に扱い、初期クラスタの面積はそ
の構成要素全体の面積の和とする。
品7がX方向で重なることを検出し、部品8と部品7の
両者を囲む領域(9に点線で示す)を設定する。次に、
領域の左右の幅と部品8と部品7の左右の幅を合計した
値を比較し重なりの解消に否定的結果を得、次に、領域
の上下の幅と部品8と部品7の上下の幅を合計した値を
比較し重なりの解消に肯定的結果を得、部品8と部品7
を上下に配置する位置を計算し、図10に示す様に部品
を再配置する(ステップ212)。後に、部品配置コン
パクション部109が、図11に示すようにXY座標軸
となった斜行座標軸に沿って部品配置をコンパクション
処理する。 (第3の実施形態)第3の実施形態の構成は、図19に
示すように、第2の実施形態の各部に加え、部品データ
入力部101が初期クラスタ作成部111を有する。初
期クラスタ作成部111は部品(第1の部品)毎に、そ
の部品と他の1つの部品(第2の部品)を結ぶネットの
数を部品間の結合力値として計算する。第1の部品に対
し最大の結合力値を与える第2の部品(これを第3の部
品と称する)を抽出する計算を行ない、それ以外の第2
の部品と第1の部品の結合力値の総和を計算する。前者
が後者よりも予め指定した値より大きい場合に、第3の
部品を第1の部品との結合が強い部品として、第3の部
品と第1の部品の集合を初期クラスタと記録する。初期
クラスタは部品と同等に扱い、初期クラスタの面積はそ
の構成要素全体の面積の和とする。
【0100】また、初期クラスタ作成部111は、これ
以外に、操作者のマウス操作により部品を指定する指令
を受け取り、これにより指定された部品の集合を、初期
クラスタとして記録する事ができる。更に、初期クラス
タ作成部111は、操作者のマウス操作により、部品を
指定する指令を受け取り、これにより指定された部品相
互の相対位置を記憶し、一次元部品配置の計算におい
て、初期クラスタを、その要素の部品同士の相対位置が
固定した一体の部品の集合体として記憶し、部品比重計
算部103が初期クラスタを一体の部品として扱い比重
を計算し、整列部104が初期クラスタを一体の部品と
して扱い一次元部品配置の順番を計算することもでき
る。すなわち、初期クラスタ作成部111は、第1の一
次元部品配置に関わる初期クラスタと、第2の一次元部
品配置に関わる初期クラスタを以下の様にして独立に設
定する。
以外に、操作者のマウス操作により部品を指定する指令
を受け取り、これにより指定された部品の集合を、初期
クラスタとして記録する事ができる。更に、初期クラス
タ作成部111は、操作者のマウス操作により、部品を
指定する指令を受け取り、これにより指定された部品相
互の相対位置を記憶し、一次元部品配置の計算におい
て、初期クラスタを、その要素の部品同士の相対位置が
固定した一体の部品の集合体として記憶し、部品比重計
算部103が初期クラスタを一体の部品として扱い比重
を計算し、整列部104が初期クラスタを一体の部品と
して扱い一次元部品配置の順番を計算することもでき
る。すなわち、初期クラスタ作成部111は、第1の一
次元部品配置に関わる初期クラスタと、第2の一次元部
品配置に関わる初期クラスタを以下の様にして独立に設
定する。
【0101】先ず、操作者のマウス操作により複数の部
品を指定し、部品群を形成する指令を受け取り、また、
その部品群が初期クラスタとなる部品配置方向をX方向
あるいはY方向に指定する指令を受け取り、以下の要素
を記録した初期クラスタデータを作成し部品データ記憶
部102に記憶する。初期クラスタデータのデータ構造
は、部品配置方向と、部品群名と、その部品群に属する
部品名と、初期クラスタの要素の部品の相対位置と、を
記録するデータ構造を持つ。また、初期クラスタデータ
には、部品配置方向として、X方向とY方向との2つの
方向をともに記録する事もできるが、その場合は、その
部品群は、X方向の移動でもY方向の移動においても一
体として移動する初期クラスタとなる。
品を指定し、部品群を形成する指令を受け取り、また、
その部品群が初期クラスタとなる部品配置方向をX方向
あるいはY方向に指定する指令を受け取り、以下の要素
を記録した初期クラスタデータを作成し部品データ記憶
部102に記憶する。初期クラスタデータのデータ構造
は、部品配置方向と、部品群名と、その部品群に属する
部品名と、初期クラスタの要素の部品の相対位置と、を
記録するデータ構造を持つ。また、初期クラスタデータ
には、部品配置方向として、X方向とY方向との2つの
方向をともに記録する事もできるが、その場合は、その
部品群は、X方向の移動でもY方向の移動においても一
体として移動する初期クラスタとなる。
【0102】この後の部品配置位置の計算において、初
期クラスタデータで記録した部品群の部品は、その記録
した部品配置方向の部品の移動では、各部品を連結し一
斉に同じ距離で移動する制約を与えるが、その方向へ垂
直な第2の方向については、その第2の方向がもう1つ
の部品配置方向として記録されていない場合は、第2の
方向への各部品の移動は互いの相対位置を任意に変える
移動ができる。
期クラスタデータで記録した部品群の部品は、その記録
した部品配置方向の部品の移動では、各部品を連結し一
斉に同じ距離で移動する制約を与えるが、その方向へ垂
直な第2の方向については、その第2の方向がもう1つ
の部品配置方向として記録されていない場合は、第2の
方向への各部品の移動は互いの相対位置を任意に変える
移動ができる。
【0103】次に、本実施形態の全体の動作について図
13を参照して説明する。先ず、ステップ201では、
第1の実施形態のステップ201により、部品データ入
力部101がネットデータと部品の面積データと部品形
状データを入力し、部品データ記憶部102に書き込
む。次に、初期クラスタ作成部111が、部品(第1の
部品)毎に、その部品と他の1つの部品(第2の部品)
を結ぶネットの数を部品間の結合力値として計算する。
第1の部品に対し最大の結合力値を与える第2の部品
(第3の部品)を抽出する計算を行ない、それ以外の第
2の部品と第1の部品の結合力値の総和を計算する。前
者が後者よりも予め指定した値より大きい場合に、第3
の部品を第1の部品との結合が強い部品として、第3の
部品と第1の部品の集合を初期クラスタとして初期クラ
スタデータを作成する。この初期クラスタデータは、初
期クラスタの面積はその構成要素の部品の面積の総和を
記録し、部品の相対位置は指定せず任意とし、その構成
部品の相対位置は制約しないようにする。初期クラスタ
は部品と同等に扱う。
13を参照して説明する。先ず、ステップ201では、
第1の実施形態のステップ201により、部品データ入
力部101がネットデータと部品の面積データと部品形
状データを入力し、部品データ記憶部102に書き込
む。次に、初期クラスタ作成部111が、部品(第1の
部品)毎に、その部品と他の1つの部品(第2の部品)
を結ぶネットの数を部品間の結合力値として計算する。
第1の部品に対し最大の結合力値を与える第2の部品
(第3の部品)を抽出する計算を行ない、それ以外の第
2の部品と第1の部品の結合力値の総和を計算する。前
者が後者よりも予め指定した値より大きい場合に、第3
の部品を第1の部品との結合が強い部品として、第3の
部品と第1の部品の集合を初期クラスタとして初期クラ
スタデータを作成する。この初期クラスタデータは、初
期クラスタの面積はその構成要素の部品の面積の総和を
記録し、部品の相対位置は指定せず任意とし、その構成
部品の相対位置は制約しないようにする。初期クラスタ
は部品と同等に扱う。
【0104】次に、ステップ202から224までの処
理を行ない、ステップ221から224までの処理を繰
り返し、ステップ221では、階層別配置部114が、
共通クラスタをその構成要素の部品に展開し、ステップ
222では、部品形状投影部が部品の実形状を部品形状
記憶部110に記録し、その形状を共通クラスタの配置
位置に配置する。その後に、ステップ223では、部品
配置コンパクション部109が全部品の配置を縮小す
る。そして、全ての共通クラスタをその構成要素の部品
にまで展開しコンパクションした後に、ステップ221
から224までの処理により、初期クラスタを部品に展
開する。次に、第2の実施形態と同様に、ステップ21
0からステップ213の処理を行ない、部品のレイアウ
トをコンパクションし部品配置を完成させる。
理を行ない、ステップ221から224までの処理を繰
り返し、ステップ221では、階層別配置部114が、
共通クラスタをその構成要素の部品に展開し、ステップ
222では、部品形状投影部が部品の実形状を部品形状
記憶部110に記録し、その形状を共通クラスタの配置
位置に配置する。その後に、ステップ223では、部品
配置コンパクション部109が全部品の配置を縮小す
る。そして、全ての共通クラスタをその構成要素の部品
にまで展開しコンパクションした後に、ステップ221
から224までの処理により、初期クラスタを部品に展
開する。次に、第2の実施形態と同様に、ステップ21
0からステップ213の処理を行ない、部品のレイアウ
トをコンパクションし部品配置を完成させる。
【0105】本実施形態は、部品間の結合の強い部品の
集合を予め初期クラスタとし一体にして部品配置するの
で、部品数が初期クラスタにまとめられ減少し、処理時
間を短くすることができる。 (第4の実施形態)第4の実施形態の構成は、図20に
示す様に、第1の実施形態の各部に加え、部品データ入
力部101が部品グラフデータ入力部115を有する。
第4の実施形態は、ネットデータのデータ構造を、ネッ
ト名と、そのネット信号の重み値と、そのネットに接続
する部品端子名と、を記録するデータ構造にし、ネット
信号の重みを記録するようにした。
集合を予め初期クラスタとし一体にして部品配置するの
で、部品数が初期クラスタにまとめられ減少し、処理時
間を短くすることができる。 (第4の実施形態)第4の実施形態の構成は、図20に
示す様に、第1の実施形態の各部に加え、部品データ入
力部101が部品グラフデータ入力部115を有する。
第4の実施形態は、ネットデータのデータ構造を、ネッ
ト名と、そのネット信号の重み値と、そのネットに接続
する部品端子名と、を記録するデータ構造にし、ネット
信号の重みを記録するようにした。
【0106】また、以下の要素を記録した部品グラフデ
ータを記憶する。すなわち、部品グラフデータは、部品
同士の間に定義するグラフデータであり、部品群名(ネ
ット名に相当する)と、部品グラフの重み値と、その部
品群に属する部品名と、を記録するデータ構造を持つ、
部品同士を節として結ぶデータである。この部品グラフ
データは、比重の計算において、ネットデータと同じく
計算に加えられる。
ータを記憶する。すなわち、部品グラフデータは、部品
同士の間に定義するグラフデータであり、部品群名(ネ
ット名に相当する)と、部品グラフの重み値と、その部
品群に属する部品名と、を記録するデータ構造を持つ、
部品同士を節として結ぶデータである。この部品グラフ
データは、比重の計算において、ネットデータと同じく
計算に加えられる。
【0107】本実施形態の部品データ入力部101は、
ネット信号の重みを記録したネットデータを読み込み、
また、部品グラフデータ入力部115の概略動作は、部
品同士を節として結ぶ部品グラフデータを読み込むこと
である。
ネット信号の重みを記録したネットデータを読み込み、
また、部品グラフデータ入力部115の概略動作は、部
品同士を節として結ぶ部品グラフデータを読み込むこと
である。
【0108】本実施形態では、部品データ入力部101
が、部品(あるいは半導体セル)端子同士を結ぶネット
信号のネットデータに関して、そのネットを結ぶ配線を
伝達する信号の伝達速度を速くするか、信号遅延時間を
短くするため配線を特に短くすべきネットや、そのネッ
トを結ぶ配線から発生するノイズを小さくするため配線
を特に短くすべきネットは重みを大きくできる様に重み
値を記録したネットデータを読み込む。このネットデー
タの重み値は、操作者のマウス操作でネットを指定する
指令を受け取り、操作者のキーボード操作で重み値を指
定する指令を受け取る事でネットデータを読み込む事が
できる。
が、部品(あるいは半導体セル)端子同士を結ぶネット
信号のネットデータに関して、そのネットを結ぶ配線を
伝達する信号の伝達速度を速くするか、信号遅延時間を
短くするため配線を特に短くすべきネットや、そのネッ
トを結ぶ配線から発生するノイズを小さくするため配線
を特に短くすべきネットは重みを大きくできる様に重み
値を記録したネットデータを読み込む。このネットデー
タの重み値は、操作者のマウス操作でネットを指定する
指令を受け取り、操作者のキーボード操作で重み値を指
定する指令を受け取る事でネットデータを読み込む事が
できる。
【0109】例えば、ネット信号毎に必要とされる許容
遅延時間の逆数に比例した重み値、あるいは抑制すべき
ノイズの当該信号線からの発生率、などに比例した重み
値を記録したネットデータを読み込む。この重み値は、
部品比重計算部103が部品の比重を計算する際に、そ
のネットの数に重みとして掛け合わされる。
遅延時間の逆数に比例した重み値、あるいは抑制すべき
ノイズの当該信号線からの発生率、などに比例した重み
値を記録したネットデータを読み込む。この重み値は、
部品比重計算部103が部品の比重を計算する際に、そ
のネットの数に重みとして掛け合わされる。
【0110】他の方法としては、初めはネットデータに
重み値は記録せず、ネットデータにはネット毎にネット
の特性値を記録する。例えば、第1の特性値として許容
遅延時間を記録し、第2の特性値としてネット毎に単位
長さ当たりのノイズの発生率を記録したデータ構造のネ
ットデータを読み込む。このネットデータの特性値は操
作者のマウス操作でネットを指定する指令を受け取り、
操作者のキーボード操作で特性値を指定する指令を受け
取る事でネットデータを読み込む事ができる。
重み値は記録せず、ネットデータにはネット毎にネット
の特性値を記録する。例えば、第1の特性値として許容
遅延時間を記録し、第2の特性値としてネット毎に単位
長さ当たりのノイズの発生率を記録したデータ構造のネ
ットデータを読み込む。このネットデータの特性値は操
作者のマウス操作でネットを指定する指令を受け取り、
操作者のキーボード操作で特性値を指定する指令を受け
取る事でネットデータを読み込む事ができる。
【0111】次に、重みデータ計算手段が、これらの特
性の種別毎に予め記憶した係数をその特性値で割り算す
る事でネット信号の重み値を計算する。そして、特性の
種別毎に計算したネット重み値の総和を計算し、その結
果をネットの重み値としてネットデータに追加し記録す
る。あるいは、先に作成したネットデータとは別に新た
に、ネット名とネットの重み値を重みデータとして記憶
手段に記憶し、部品比重計算部103が部品の比重を計
算する際に読み出し、ネット数に重みとして掛け合わせ
て比重を計算しても良い。
性の種別毎に予め記憶した係数をその特性値で割り算す
る事でネット信号の重み値を計算する。そして、特性の
種別毎に計算したネット重み値の総和を計算し、その結
果をネットの重み値としてネットデータに追加し記録す
る。あるいは、先に作成したネットデータとは別に新た
に、ネット名とネットの重み値を重みデータとして記憶
手段に記憶し、部品比重計算部103が部品の比重を計
算する際に読み出し、ネット数に重みとして掛け合わせ
て比重を計算しても良い。
【0112】また、部品グラフデータ入力部115が能
動部品とその電源とグランドを結ぶバイパスコンデンサ
に関して両部品を両端の節として定義する部品グラフデ
ータで、両部品が引き合う引力による重みを記録した部
品グラフデータを読み込む。この部品グラフデータは、
引力を表わすネットデータと同様に、部品グラフデータ
に記録した重みの引力とし、ネットデータと部品グラフ
データの総和が部品に加わる力として計算される。
動部品とその電源とグランドを結ぶバイパスコンデンサ
に関して両部品を両端の節として定義する部品グラフデ
ータで、両部品が引き合う引力による重みを記録した部
品グラフデータを読み込む。この部品グラフデータは、
引力を表わすネットデータと同様に、部品グラフデータ
に記録した重みの引力とし、ネットデータと部品グラフ
データの総和が部品に加わる力として計算される。
【0113】これ以外の部品グラフデータとして、アナ
ログ処理の部品群を1つの部品群と指定しその部品群の
部品同士を接続する部品グラフデータを読み込む。ま
た、デジタル処理の部品群を1つの部品群と指定しその
部品群の部品同士を接続する部品グラフデータを読み込
む。この場合は、部品比重計算部103が部品の比重を
計算する際に、このアナログ部品群の部品グラフデータ
とデジタル部品群の部品グラフデータがネットデータと
一緒に比重の計算に用いられ、そして整列部104が一
次元部品配置の順番を計算し、概略配置部107が二次
元平面に配置する部品概略配置位置を計算した結果は、
アナログ部品群とデジタル部品群がそれぞれの部品群に
互いに分かれて集合した配置が得られる。
ログ処理の部品群を1つの部品群と指定しその部品群の
部品同士を接続する部品グラフデータを読み込む。ま
た、デジタル処理の部品群を1つの部品群と指定しその
部品群の部品同士を接続する部品グラフデータを読み込
む。この場合は、部品比重計算部103が部品の比重を
計算する際に、このアナログ部品群の部品グラフデータ
とデジタル部品群の部品グラフデータがネットデータと
一緒に比重の計算に用いられ、そして整列部104が一
次元部品配置の順番を計算し、概略配置部107が二次
元平面に配置する部品概略配置位置を計算した結果は、
アナログ部品群とデジタル部品群がそれぞれの部品群に
互いに分かれて集合した配置が得られる。
【0114】また、他の種類の部品グラフデータとし
て、発熱量の高い部品同士をお互いに引き離す様に重み
値を負数と記録した、発熱による部品グラフデータも読
み込む。発熱による部品グラフデータの場合は、熱特性
データ作成手段が、予め定めた値以上に発熱量の多い、
あるいは熱に弱い部品を抽出し、その2つの部品同士を
結ぶ、両部品の発熱量の積、あるいは耐熱性の逆数の積
に比例する負の値の重み値を記録した部品グラフデータ
を作成する。この負の重み値の部品グラフデータが作成
された場合は、部品比重計算部103が部品の比重を計
算する際に、その部品群の部品間に反発力が働く様に比
重が計算され、概略配置部107が二次元平面に配置す
る部品概略配置位置を計算した結果は、その部品同士を
遠ざける部品配置位置が計算される。
て、発熱量の高い部品同士をお互いに引き離す様に重み
値を負数と記録した、発熱による部品グラフデータも読
み込む。発熱による部品グラフデータの場合は、熱特性
データ作成手段が、予め定めた値以上に発熱量の多い、
あるいは熱に弱い部品を抽出し、その2つの部品同士を
結ぶ、両部品の発熱量の積、あるいは耐熱性の逆数の積
に比例する負の値の重み値を記録した部品グラフデータ
を作成する。この負の重み値の部品グラフデータが作成
された場合は、部品比重計算部103が部品の比重を計
算する際に、その部品群の部品間に反発力が働く様に比
重が計算され、概略配置部107が二次元平面に配置す
る部品概略配置位置を計算した結果は、その部品同士を
遠ざける部品配置位置が計算される。
【0115】また、特に発熱量が大きい部品に関して
は、その他の部品毎に、その1つの部品と高発熱部品を
結ぶ部品グラフデータを、高発熱部品の発熱量に比例す
る負の重み値を記録し作成する。こうする事で、高発熱
部品とその他の部品を遠ざけた配置が計算される。
は、その他の部品毎に、その1つの部品と高発熱部品を
結ぶ部品グラフデータを、高発熱部品の発熱量に比例す
る負の重み値を記録し作成する。こうする事で、高発熱
部品とその他の部品を遠ざけた配置が計算される。
【0116】また、第3の実施形態と同様に、部品デー
タ入力部101が初期クラスタ作成部111を有し、部
品(第1の部品)毎に、その部品と他の1つの部品(第
2の部品)を結ぶネットデータと部品グラフデータにそ
れぞれの重みを掛けて計算した和を部品間の結合力値と
計算する。第1の部品に対し最大の結合力値を与える第
2の部品(これを第3の部品と称する)を計算し、それ
以外の第2の部品と第1の部品の結合力値の総和を計算
する。前者が後者よりも予め指定した値より大きい場合
に、第3の部品を第1の部品との結合が強い部品とし
て、第3の部品と第1の部品の集合を初期クラスタと記
録する。初期クラスタは部品と同等に扱い、初期クラス
タの面積はその構成要素全体の面積の和とする。次に、
部品比重計算部103が比重を計算する際に信号のネッ
トデータと部品グラフデータに指定した重みを掛けて加
えて力を計算し、それを部品面積で割り算して比重を計
算して記憶する。
タ入力部101が初期クラスタ作成部111を有し、部
品(第1の部品)毎に、その部品と他の1つの部品(第
2の部品)を結ぶネットデータと部品グラフデータにそ
れぞれの重みを掛けて計算した和を部品間の結合力値と
計算する。第1の部品に対し最大の結合力値を与える第
2の部品(これを第3の部品と称する)を計算し、それ
以外の第2の部品と第1の部品の結合力値の総和を計算
する。前者が後者よりも予め指定した値より大きい場合
に、第3の部品を第1の部品との結合が強い部品とし
て、第3の部品と第1の部品の集合を初期クラスタと記
録する。初期クラスタは部品と同等に扱い、初期クラス
タの面積はその構成要素全体の面積の和とする。次に、
部品比重計算部103が比重を計算する際に信号のネッ
トデータと部品グラフデータに指定した重みを掛けて加
えて力を計算し、それを部品面積で割り算して比重を計
算して記憶する。
【0117】本実施形態は、他の信号線が1信号を伝達
する間に3信号を伝達するような高速信号線は、ネット
の重みを他のネットの例えば3倍に設定し大きな重みを
入力し、整列部104が部品を配置する際に高速信号線
を他の信号線より優先的に短くする様に部品配置を導く
ことができる効果がある。
する間に3信号を伝達するような高速信号線は、ネット
の重みを他のネットの例えば3倍に設定し大きな重みを
入力し、整列部104が部品を配置する際に高速信号線
を他の信号線より優先的に短くする様に部品配置を導く
ことができる効果がある。
【0118】本実施形態は、例えば、あるLSIとその
近くに配置すべきバイパスコンデンサを結ぶ部品グラフ
データを、重みを大きく指定し入力すると、初期クラス
タ作成部111がLSIとバイパスコンデンサを要素と
する初期クラスタを作成する。そのため、整列部104
が自動的に部品配置を決める場合に両部品が常に近くに
配置されるが、配置の相対位置には自由度を与えて配置
できる効果がある。また、本実施形態は、部品同士を結
ぶ部品グラフデータを操作者が容易に定義できるため、
操作者が自動部品配置の配置位置の概略を容易にシステ
ムに指令でき、システムの操作性が良くなる利点があ
る。 (第5の実施形態)第5の実施形態の構成は、図21に
示す様に、第1の実施形態の各部に加え、操作指令入力
部116を有する。操作指令入力部116の概略動作
は、部品配置の各局面を表示装置120に表示し、操作
者からの指令を受け取り、その指令に応じた動作を行な
うべく各部をコントロールすることである。
近くに配置すべきバイパスコンデンサを結ぶ部品グラフ
データを、重みを大きく指定し入力すると、初期クラス
タ作成部111がLSIとバイパスコンデンサを要素と
する初期クラスタを作成する。そのため、整列部104
が自動的に部品配置を決める場合に両部品が常に近くに
配置されるが、配置の相対位置には自由度を与えて配置
できる効果がある。また、本実施形態は、部品同士を結
ぶ部品グラフデータを操作者が容易に定義できるため、
操作者が自動部品配置の配置位置の概略を容易にシステ
ムに指令でき、システムの操作性が良くなる利点があ
る。 (第5の実施形態)第5の実施形態の構成は、図21に
示す様に、第1の実施形態の各部に加え、操作指令入力
部116を有する。操作指令入力部116の概略動作
は、部品配置の各局面を表示装置120に表示し、操作
者からの指令を受け取り、その指令に応じた動作を行な
うべく各部をコントロールすることである。
【0119】本実施形態は、操作指令入力部116が、
部品配置位置を表示装置120に表示し、操作者の指令
を受けて斜行座標軸を表示装置120に表示する。部品
データ入力部101が、操作者のマウス操作、キーボー
ド操作、ジョイスティック操作等による指令により、部
品あるいはクラスタを回転させ位置を移動しその位置を
記憶するとともに表示装置120に表示する。
部品配置位置を表示装置120に表示し、操作者の指令
を受けて斜行座標軸を表示装置120に表示する。部品
データ入力部101が、操作者のマウス操作、キーボー
ド操作、ジョイスティック操作等による指令により、部
品あるいはクラスタを回転させ位置を移動しその位置を
記憶するとともに表示装置120に表示する。
【0120】また、操作指令入力部116が操作者の指
令により、平面上に位置を指定する部品(例えばコネク
タ類やその他の位置指定部品)の位置を指定し記憶し、
更に、部品配置禁止領域や部品の高さ制限を定義する領
域を印刷配線板上の所定位置に定義し記憶する。
令により、平面上に位置を指定する部品(例えばコネク
タ類やその他の位置指定部品)の位置を指定し記憶し、
更に、部品配置禁止領域や部品の高さ制限を定義する領
域を印刷配線板上の所定位置に定義し記憶する。
【0121】また、操作指令入力部116が操作者の指
令により部品群を結ぶ部品グラフデータを作成し記憶す
る。また、操作者からの指令によりこの部品グラフデー
タを印刷配線板上の指定位置に結ぶ指定をする。ここ
で、部品グラフデータは、部品群名と、部品グラフの重
み値と、その部品群に属する部品名と、を記録するデー
タ構造を持つが、印刷配線板上の指定位置は、この指令
の際に、新しい部品として形成され、その部品名がこの
部品グラフデータに記録される。こうしてその部品を指
定位置に結び付ける既配置部品とする。ただし、部品グ
ラフデータを印刷配線板の特定位置に結ばず、特定位置
に束縛されない様にすることもできる。
令により部品群を結ぶ部品グラフデータを作成し記憶す
る。また、操作者からの指令によりこの部品グラフデー
タを印刷配線板上の指定位置に結ぶ指定をする。ここ
で、部品グラフデータは、部品群名と、部品グラフの重
み値と、その部品群に属する部品名と、を記録するデー
タ構造を持つが、印刷配線板上の指定位置は、この指令
の際に、新しい部品として形成され、その部品名がこの
部品グラフデータに記録される。こうしてその部品を指
定位置に結び付ける既配置部品とする。ただし、部品グ
ラフデータを印刷配線板の特定位置に結ばず、特定位置
に束縛されない様にすることもできる。
【0122】また、操作指令入力部116が操作者の指
令により、部品群を指定し、それらの初期クラスタを作
成する指令を初期クラスタ作成部111に出す。また、
操作指令入力部116が操作者の指令を受け、部品形状
投影部に、部品あるいは初期クラスタの仮想形状あるい
は部品の実形状の形を計算し部品形状記憶部110に記
録し表示装置120に表示する指令を出す。
令により、部品群を指定し、それらの初期クラスタを作
成する指令を初期クラスタ作成部111に出す。また、
操作指令入力部116が操作者の指令を受け、部品形状
投影部に、部品あるいは初期クラスタの仮想形状あるい
は部品の実形状の形を計算し部品形状記憶部110に記
録し表示装置120に表示する指令を出す。
【0123】また、操作指令入力部116が、操作者か
らの指令により、図22のステップ601から605の
手順で、部品データ記憶部102と部品比重計算部10
3と整列部104と部品配置順番記憶部105とクラス
タ作成部106と概略配置部107に部品の概略配置位
置を計算する指令を送る。
らの指令により、図22のステップ601から605の
手順で、部品データ記憶部102と部品比重計算部10
3と整列部104と部品配置順番記憶部105とクラス
タ作成部106と概略配置部107に部品の概略配置位
置を計算する指令を送る。
【0124】最初に、ステップ601では、位置を指定
した部品や部品配置禁止領域(これを面積のある部品と
みなして)や部品の高さ制限を定義する領域が部品グラ
フデータで結ばれる位置のX方向の一次元部品配置位置
を以下の様に計算する。すなわち、その部品グラフデー
タの接続する印刷配線板の指定位置の左端からのX方向
の距離を、X方向の印刷配線板の幅で割り算した値を、
全部品面積の値に掛け算した値を計算し、その値の位置
をX方向の一次元部品配置における位置とする。位置指
定部品はその印刷配線板上の位置に部品グラフデータで
強く結び付けられる事で配置位置が指定されていない部
品との差異が与えられ、以降の処理では配置位置が指定
されていない部品と同様に扱い配置する。
した部品や部品配置禁止領域(これを面積のある部品と
みなして)や部品の高さ制限を定義する領域が部品グラ
フデータで結ばれる位置のX方向の一次元部品配置位置
を以下の様に計算する。すなわち、その部品グラフデー
タの接続する印刷配線板の指定位置の左端からのX方向
の距離を、X方向の印刷配線板の幅で割り算した値を、
全部品面積の値に掛け算した値を計算し、その値の位置
をX方向の一次元部品配置における位置とする。位置指
定部品はその印刷配線板上の位置に部品グラフデータで
強く結び付けられる事で配置位置が指定されていない部
品との差異が与えられ、以降の処理では配置位置が指定
されていない部品と同様に扱い配置する。
【0125】次に、ステップ602では、部品比重計算
部103が、第1の実施形態のステップ301で、以下
のステップ401から404により、X方向の一次元部
品配置を左から右に計算する。ここで、ステップ401
でその未配置部品の比重を計算する際に、その未配置部
品が部品グラフデータで結ばれる位置が一次元部品配置
における既配置部品の最右位よりも左の位置であれば、
左から引かれる力とし比重を重くし、その結ばれる位置
が既配置部品の最右位よりも右の位置であれば、右から
引かれる力とし比重を軽くする計算を行なう。そして、
その比重に応じて、第1の実施形態のステップ402か
ら404の処理で部品群の一次元部品配置を計算する。
次に、第1の実施形態のステップ302から306の処
理によりX方向の第1の一次元部品配置を計算する(ス
テップ602)。
部103が、第1の実施形態のステップ301で、以下
のステップ401から404により、X方向の一次元部
品配置を左から右に計算する。ここで、ステップ401
でその未配置部品の比重を計算する際に、その未配置部
品が部品グラフデータで結ばれる位置が一次元部品配置
における既配置部品の最右位よりも左の位置であれば、
左から引かれる力とし比重を重くし、その結ばれる位置
が既配置部品の最右位よりも右の位置であれば、右から
引かれる力とし比重を軽くする計算を行なう。そして、
その比重に応じて、第1の実施形態のステップ402か
ら404の処理で部品群の一次元部品配置を計算する。
次に、第1の実施形態のステップ302から306の処
理によりX方向の第1の一次元部品配置を計算する(ス
テップ602)。
【0126】次に、同様に基板のY方向の一次元部品配
置に関してステップ601、ステップ602と同様の処
理によりY方向の一次元部品配置(第2の一次元部品配
置)を計算する(ステップ603,604)。次に、ス
テップ605では、第1の一次元部品配置における部品
位置をX座標とし、第2の一次元部品配置における部品
位置をY座標とし、両座標で定まる二次元平面上の位置
をその部品の部品概略部品位置として、部品をXY座標
平面上に配置する(ステップ605)。
置に関してステップ601、ステップ602と同様の処
理によりY方向の一次元部品配置(第2の一次元部品配
置)を計算する(ステップ603,604)。次に、ス
テップ605では、第1の一次元部品配置における部品
位置をX座標とし、第2の一次元部品配置における部品
位置をY座標とし、両座標で定まる二次元平面上の位置
をその部品の部品概略部品位置として、部品をXY座標
平面上に配置する(ステップ605)。
【0127】また、操作指令入力部116が操作者から
の指令により、部品配置コンパクション部109に、斜
行座標軸あるいはXY座標軸に沿って部品配置をコンパ
クション処理する指令を送る。また、操作指令入力部1
16が操作者からの指令を受け、部品群の配置と斜行座
標軸をともに任意角度回転させ斜行座標軸をXY座標軸
に重ねる。また、操作指令入力部116が操作者からの
指令により、部品再配置部108が初期クラスタを構成
要素の部品に展開する指令を送る。その部品群の位置は
概略配置部107が先に計算した概略部品位置を、初期
クラスタの中心にその構成部品群の中心が来るように平
行移動し配置する。また、操作指令入力部116が操作
者の指令を受け、部品再配置部108に、指定された部
品を囲む領域で、他の部品と重ならない領域を計算し、
その領域内で部品を再配置する位置を計算させる指令を
送る。
の指令により、部品配置コンパクション部109に、斜
行座標軸あるいはXY座標軸に沿って部品配置をコンパ
クション処理する指令を送る。また、操作指令入力部1
16が操作者からの指令を受け、部品群の配置と斜行座
標軸をともに任意角度回転させ斜行座標軸をXY座標軸
に重ねる。また、操作指令入力部116が操作者からの
指令により、部品再配置部108が初期クラスタを構成
要素の部品に展開する指令を送る。その部品群の位置は
概略配置部107が先に計算した概略部品位置を、初期
クラスタの中心にその構成部品群の中心が来るように平
行移動し配置する。また、操作指令入力部116が操作
者の指令を受け、部品再配置部108に、指定された部
品を囲む領域で、他の部品と重ならない領域を計算し、
その領域内で部品を再配置する位置を計算させる指令を
送る。
【0128】本実施形態は、操作指令入力部116が操
作者の指令を受け、各処理毎に段階的にシステムを動作
させることができる。また、本実施形態は、部品を部品
グラフデータで印刷配線板の特定の位置に結合させる事
で、特定部品の配置位置を指定し部品配置を計算でき
る。また、斜行座標軸への部品配置の傾きの状況に応
じ、操作者が座標軸を任意角度で回転させて最善の部品
配向を選択できるため、システムの操作性が良い利点が
ある。 (第6の実施形態)第6の実施形態の構成は、図23に
示す様に、プログラム制御により動作するコンピュータ
のデータ処理装置100と、表示装置120と、入力装
置130とから構成される。データ処理装置100は、
部品データ入力部101と部品データ記憶部102と部
品比重計算部103と整列部104と部品配置順番記憶
部105と概略配置部107と部品配置コンパクション
部109と初期クラスタ作成部111と部品グラフデー
タ入力部115と操作指令入力部116と部品配置座標
変換部117とを有する。
作者の指令を受け、各処理毎に段階的にシステムを動作
させることができる。また、本実施形態は、部品を部品
グラフデータで印刷配線板の特定の位置に結合させる事
で、特定部品の配置位置を指定し部品配置を計算でき
る。また、斜行座標軸への部品配置の傾きの状況に応
じ、操作者が座標軸を任意角度で回転させて最善の部品
配向を選択できるため、システムの操作性が良い利点が
ある。 (第6の実施形態)第6の実施形態の構成は、図23に
示す様に、プログラム制御により動作するコンピュータ
のデータ処理装置100と、表示装置120と、入力装
置130とから構成される。データ処理装置100は、
部品データ入力部101と部品データ記憶部102と部
品比重計算部103と整列部104と部品配置順番記憶
部105と概略配置部107と部品配置コンパクション
部109と初期クラスタ作成部111と部品グラフデー
タ入力部115と操作指令入力部116と部品配置座標
変換部117とを有する。
【0129】この概略動作は、操作指令入力部116が
操作者の指令により、概略部品位置における最左端ある
いは最右端、最上端、最下端等の部品の概略位置関係
(例えばコネクタ類やその他の位置指定部品の他の部品
群に対する概略位置関係)を指定し記憶する。また、操
作指令入力部116が、概略配置部107の結果の概略
部品位置を表示装置120に表示する。そして、操作指
令入力部116が、部品あるいは部品群を移動させる指
令あるいは回転させる指令を、操作者のマウス操作、キ
ーボード操作、ジョイスティック操作等から受け取り、
部品データ入力部101が指令の処理を行ない、その結
果の部品位置を部品データ記憶部102に記憶し、表示
装置120に表示させる。
操作者の指令により、概略部品位置における最左端ある
いは最右端、最上端、最下端等の部品の概略位置関係
(例えばコネクタ類やその他の位置指定部品の他の部品
群に対する概略位置関係)を指定し記憶する。また、操
作指令入力部116が、概略配置部107の結果の概略
部品位置を表示装置120に表示する。そして、操作指
令入力部116が、部品あるいは部品群を移動させる指
令あるいは回転させる指令を、操作者のマウス操作、キ
ーボード操作、ジョイスティック操作等から受け取り、
部品データ入力部101が指令の処理を行ない、その結
果の部品位置を部品データ記憶部102に記憶し、表示
装置120に表示させる。
【0130】また、操作指令入力部116が、部品群を
指定する指令と部品の配置位置の座標変換の指令を、操
作者から同様にして受け取り、部品配置座標変換部11
7が、指令された部品群の配置位置の座標変換の計算を
行ない、概略部品位置をその計算結果で更新する。
指定する指令と部品の配置位置の座標変換の指令を、操
作者から同様にして受け取り、部品配置座標変換部11
7が、指令された部品群の配置位置の座標変換の計算を
行ない、概略部品位置をその計算結果で更新する。
【0131】次に、本実施形態の全体の動作について図
24のフローチャートを参照して詳細に説明する。ステ
ップ201は、第1の実施形態のステップ201によ
り、部品データ入力部101がネットデータと部品の面
積データと部品形状データを入力し、部品データ記憶部
102に書き込む(ステップ201)。
24のフローチャートを参照して詳細に説明する。ステ
ップ201は、第1の実施形態のステップ201によ
り、部品データ入力部101がネットデータと部品の面
積データと部品形状データを入力し、部品データ記憶部
102に書き込む(ステップ201)。
【0132】次に、ステップ702は、操作指令入力部
116が操作者の指令により、部品配置領域の最左端あ
るいは最右端、最上端、最下端に配置すべき部品(例え
ばコネクタ類やその他の位置指定部品の他の部品群)を
指定する。そして、最左端に指定された部品について
は、左方向に引き付けられる比重を最大値に指定し部品
データ記憶部102に記憶する。最右端に指定された部
品については、左方向に引き付けられる比重を最小値に
指定して記憶する。最下端に指定された部品について
は、下方向に引き付けられる比重を最大値に指定し、最
上端に指定された部品については、下方向に引き付けら
れる比重を最小値に指定して記憶する(ステップ70
2)。
116が操作者の指令により、部品配置領域の最左端あ
るいは最右端、最上端、最下端に配置すべき部品(例え
ばコネクタ類やその他の位置指定部品の他の部品群)を
指定する。そして、最左端に指定された部品について
は、左方向に引き付けられる比重を最大値に指定し部品
データ記憶部102に記憶する。最右端に指定された部
品については、左方向に引き付けられる比重を最小値に
指定して記憶する。最下端に指定された部品について
は、下方向に引き付けられる比重を最大値に指定し、最
上端に指定された部品については、下方向に引き付けら
れる比重を最小値に指定して記憶する(ステップ70
2)。
【0133】次に、ステップ703は、第1の実施形態
のステップ301により、X方向の両端に指定された部
品の間に部品をX方向に配置する第1の一次元部品配置
15を計算し、結果を部品配置順番記憶部105に記憶
する(ステップ703)。次に、ステップ704は、第
1の実施形態のステップ301により、Y方向の両端に
指定された部品の間に部品をY方向に配置する第2の一
次元部品配置16を計算し、結果を部品配置順番記憶部
105に記憶する(ステップ704)。
のステップ301により、X方向の両端に指定された部
品の間に部品をX方向に配置する第1の一次元部品配置
15を計算し、結果を部品配置順番記憶部105に記憶
する(ステップ703)。次に、ステップ704は、第
1の実施形態のステップ301により、Y方向の両端に
指定された部品の間に部品をY方向に配置する第2の一
次元部品配置16を計算し、結果を部品配置順番記憶部
105に記憶する(ステップ704)。
【0134】次に、ステップ705は、概略配置部10
7が、第1の一次元部品配置15の前後の順に部品同士
に関して、両部品の面積の和に予め定めた係数値を掛け
算した値を計算し、この値に両部品をX方向に隣接させ
得る最小間隔値を加算した値を計算する。そして、この
値の距離で両部品のX座標位置を隔て、部品位置のX座
標値を計算する。こうする事で、部品の外形のX座標軸
への投影は互いに分離されX座標軸上で重ならない様に
部品が配置される。
7が、第1の一次元部品配置15の前後の順に部品同士
に関して、両部品の面積の和に予め定めた係数値を掛け
算した値を計算し、この値に両部品をX方向に隣接させ
得る最小間隔値を加算した値を計算する。そして、この
値の距離で両部品のX座標位置を隔て、部品位置のX座
標値を計算する。こうする事で、部品の外形のX座標軸
への投影は互いに分離されX座標軸上で重ならない様に
部品が配置される。
【0135】次に、概略配置部107が、第2の一次元
部品配置15の前後の順の部品同士に関して、両部品の
面積の和に予め定めた係数値を掛け算した値を計算し、
この値に両部品をY方向に隣接させ得る最小間隔値を加
算した値を計算する。そして、この値の距離で両部品Y
座標位置を隔て、部品位置のY座標値を計算する。こう
する事で、部品の外形のY座標軸への投影は互いに分離
されY座標軸上で重ならない様に部品が配置される。
部品配置15の前後の順の部品同士に関して、両部品の
面積の和に予め定めた係数値を掛け算した値を計算し、
この値に両部品をY方向に隣接させ得る最小間隔値を加
算した値を計算する。そして、この値の距離で両部品Y
座標位置を隔て、部品位置のY座標値を計算する。こう
する事で、部品の外形のY座標軸への投影は互いに分離
されY座標軸上で重ならない様に部品が配置される。
【0136】次に、概略配置部107は、部品をXY座
標平面上に配置する。以上で計算したX座標とY座標に
よる部品位置を概略部品位置とし部品データ記憶部10
2に記憶する(ステップ705)。次に、ステップ70
6は、操作指令入力部116が、概略部品位置に配置し
た部品を表示装置120に表示する。この概略部品位置
は、ネットの結びつきが強い部品同士が近隣に集まる事
で、結びつきが深い部品の集合が表示装置120により
操作者に観察できる様になる。
標平面上に配置する。以上で計算したX座標とY座標に
よる部品位置を概略部品位置とし部品データ記憶部10
2に記憶する(ステップ705)。次に、ステップ70
6は、操作指令入力部116が、概略部品位置に配置し
た部品を表示装置120に表示する。この概略部品位置
は、ネットの結びつきが強い部品同士が近隣に集まる事
で、結びつきが深い部品の集合が表示装置120により
操作者に観察できる様になる。
【0137】この段階では、バイパスコンデンサが組み
合わされるべき部品を指令するデータが未だ作成されて
いないため、以下のステップ707の処理により両者の
組み合わせを与えるデータを作成する。すなわち、操作
指令入力部116が、操作者に次に処理を、ステップ7
07、ステップ708、ステップ709、ステップ70
3、あるいはステップ213から選択させる指令をキー
ボードあるいはマウスから受け取り、これにより指定さ
れたステップに進む(ステップ706)。
合わされるべき部品を指令するデータが未だ作成されて
いないため、以下のステップ707の処理により両者の
組み合わせを与えるデータを作成する。すなわち、操作
指令入力部116が、操作者に次に処理を、ステップ7
07、ステップ708、ステップ709、ステップ70
3、あるいはステップ213から選択させる指令をキー
ボードあるいはマウスから受け取り、これにより指定さ
れたステップに進む(ステップ706)。
【0138】ステップ707は、操作指令入力部116
が、操作者が部品とそれに結び付けたいバイパスコンデ
ンサの組み合わせの様に相互に近づけたい部品群を指定
する指令を、管面のマウス操作あるいはキーボード操作
などから受け取り、部品グラフデータ入力部115を動
作させる。次に、部品グラフデータ入力部115が、操
作者から受け取った指令にもとづき、第4の実施形態で
示した部品グラフデータを作成し記憶する。次に、ステ
ップ706に戻る(ステップ707)。 ステップ70
8は、以下の様に部品の配置位置の座標変換を行なう。
が、操作者が部品とそれに結び付けたいバイパスコンデ
ンサの組み合わせの様に相互に近づけたい部品群を指定
する指令を、管面のマウス操作あるいはキーボード操作
などから受け取り、部品グラフデータ入力部115を動
作させる。次に、部品グラフデータ入力部115が、操
作者から受け取った指令にもとづき、第4の実施形態で
示した部品グラフデータを作成し記憶する。次に、ステ
ップ706に戻る(ステップ707)。 ステップ70
8は、以下の様に部品の配置位置の座標変換を行なう。
【0139】すなわち、ステップ708では、部品ある
いは部品群を平行移動する指令を操作指令入力部116
から受け取り、部品を移動させるとともに、以下の様
に、部品群をまとめて部品位置を座標変換して部品を移
動させる。先ず、操作指令入力部116が、表示装置1
20に表示した概略部品位置を観察した操作者から、複
数の部品を指定し部品群を形成する指令を受け取り、次
に、その部品群の部品位置の座標変換をするパラメータ
(以下の式3、式4のパラメータ)を指定する指令を受
け取り、その指令により部品配置座標変換部117を動
作させる。部品配置座標変換部117は、指定された部
品群の配置位置を式3あるいは式4により座標変換する
計算を行ない、概略部品位置を更新し部品データ記憶部
102に記憶する。
いは部品群を平行移動する指令を操作指令入力部116
から受け取り、部品を移動させるとともに、以下の様
に、部品群をまとめて部品位置を座標変換して部品を移
動させる。先ず、操作指令入力部116が、表示装置1
20に表示した概略部品位置を観察した操作者から、複
数の部品を指定し部品群を形成する指令を受け取り、次
に、その部品群の部品位置の座標変換をするパラメータ
(以下の式3、式4のパラメータ)を指定する指令を受
け取り、その指令により部品配置座標変換部117を動
作させる。部品配置座標変換部117は、指定された部
品群の配置位置を式3あるいは式4により座標変換する
計算を行ない、概略部品位置を更新し部品データ記憶部
102に記憶する。
【0140】X=a×y+x+b …(式3) Y=c×x+y+d …(式4) この式3及び式4で、部品の旧配置位置座標は(x,
y)で、新配置位置座標は(X,Y)であり、a,b,
c,dは座標変換のパラメータである。ここで、式3は
指定した部品群の部品の位置のX座標が変化し、式4で
はY座標が変化する。先のステップ705の処理の結
果、概略部品位置は部品同士がX方向及びY方向で重な
らない配置であるため、その部品群に式3あるいは式4
の座標変換を行なっても部品同士が重なる事はない。
y)で、新配置位置座標は(X,Y)であり、a,b,
c,dは座標変換のパラメータである。ここで、式3は
指定した部品群の部品の位置のX座標が変化し、式4で
はY座標が変化する。先のステップ705の処理の結
果、概略部品位置は部品同士がX方向及びY方向で重な
らない配置であるため、その部品群に式3あるいは式4
の座標変換を行なっても部品同士が重なる事はない。
【0141】次に、ステップ706に戻る(ステップ7
08)。ステップ709は、初期クラスタ作成部111
が、操作指令入力部116により、操作者から、初期ク
ラスタを指定する指令を受け取り初期クラスタデータを
作成する。初期クラスタデータは、この後の部品配置位
置の計算において、その記録した部品群の部品は、部品
配置方向においては、各部品を連結し一斉に同じ距離で
移動する制約を与え、一方、部品配置方向へ垂直な方向
への各部品の移動には制約が無い。
08)。ステップ709は、初期クラスタ作成部111
が、操作指令入力部116により、操作者から、初期ク
ラスタを指定する指令を受け取り初期クラスタデータを
作成する。初期クラスタデータは、この後の部品配置位
置の計算において、その記録した部品群の部品は、部品
配置方向においては、各部品を連結し一斉に同じ距離で
移動する制約を与え、一方、部品配置方向へ垂直な方向
への各部品の移動には制約が無い。
【0142】この初期クラスタデータは、部品配置方向
の一次元部品配置の計算においては、その部品群を一体
のクラスタとして部品配置を計算するが、部品のコンパ
クションを行なう際にも以下の様に作用する。例えば、
初期クラスタデータは、格子状にならべる部品群につい
ては、常にX方向あるいはY方向に一列に配置させる部
品群毎にその方向に垂直な方向を部品配置方向と記録し
た初期クラスタデータを作成する。
の一次元部品配置の計算においては、その部品群を一体
のクラスタとして部品配置を計算するが、部品のコンパ
クションを行なう際にも以下の様に作用する。例えば、
初期クラスタデータは、格子状にならべる部品群につい
ては、常にX方向あるいはY方向に一列に配置させる部
品群毎にその方向に垂直な方向を部品配置方向と記録し
た初期クラスタデータを作成する。
【0143】この初期クラスタデータは、部品位置のコ
ンパクションを行なう際、あるいは部品を移動する際に
読み出され、そこに記録した部品群を、部品配置方向の
移動では一体のものとして移動させる。すなわち、X方
向の移動の際には、X方向を部品配置方向とする初期ク
ラスタデータの部品群を一体で移動させ、Y方向の移動
の際には、Y方向を部品配置方向とする初期クラスタデ
ータの部品群を一体で移動させる。
ンパクションを行なう際、あるいは部品を移動する際に
読み出され、そこに記録した部品群を、部品配置方向の
移動では一体のものとして移動させる。すなわち、X方
向の移動の際には、X方向を部品配置方向とする初期ク
ラスタデータの部品群を一体で移動させ、Y方向の移動
の際には、Y方向を部品配置方向とする初期クラスタデ
ータの部品群を一体で移動させる。
【0144】次に、ステップ706に戻る(ステップ7
09)。ステップ213は、第1の実施形態のステップ
213により、部品配置コンパクション手段109が、
この概略部品位置の部品群をX方向及びY方向にコンパ
クションし、部品同士を隣接させた配置を得る。次に、
ステップ706に戻る(ステップ213)。
09)。ステップ213は、第1の実施形態のステップ
213により、部品配置コンパクション手段109が、
この概略部品位置の部品群をX方向及びY方向にコンパ
クションし、部品同士を隣接させた配置を得る。次に、
ステップ706に戻る(ステップ213)。
【0145】次に、具体例を用いて説明する。先ず、ス
テップ201は、部品データ入力部101が、図25に
示す部品AからNまでの13個の部品と、P1からP4
の4個の位置指定部品の形状データと、部品端子同士を
接続するネットデータを入力し部品データ記憶部102
に記憶する(ステップ201)。
テップ201は、部品データ入力部101が、図25に
示す部品AからNまでの13個の部品と、P1からP4
の4個の位置指定部品の形状データと、部品端子同士を
接続するネットデータを入力し部品データ記憶部102
に記憶する(ステップ201)。
【0146】次に、ステップ702は、操作指令入力部
116が、操作者の指令により、最左端の部品P1とP
2、最右端の部品P3とP4、最上端の部品P1とP
3、最下端の部品P2とP4を指定する。そして、最左
端に指定された部品P1とP2は、左方向に引き付けら
れる比重を、+1000000など、最大値に指定し部
品データ記憶部102に記憶する。最右端に指定された
部品P3とP4は、左方向に引き付けられる比重を、−
1000000など、最小値に指定して記憶する。最下
端に指定された部品P2とP4は、下方向に引き付けら
れる比重を、+1000000など、最大値に指定し、
最上端に指定された部品P1とP3は、下方向に引き付
けられる比重を、−1000000など、最小値に指定
して記憶する(ステップ702)。
116が、操作者の指令により、最左端の部品P1とP
2、最右端の部品P3とP4、最上端の部品P1とP
3、最下端の部品P2とP4を指定する。そして、最左
端に指定された部品P1とP2は、左方向に引き付けら
れる比重を、+1000000など、最大値に指定し部
品データ記憶部102に記憶する。最右端に指定された
部品P3とP4は、左方向に引き付けられる比重を、−
1000000など、最小値に指定して記憶する。最下
端に指定された部品P2とP4は、下方向に引き付けら
れる比重を、+1000000など、最大値に指定し、
最上端に指定された部品P1とP3は、下方向に引き付
けられる比重を、−1000000など、最小値に指定
して記憶する(ステップ702)。
【0147】次に、ステップ703は、最左端あるいは
最右端に位置を指定した指定部品P1からP4以外の部
品Aから部品Nまでの全ての部品を初めは未配置部品と
して部品配置順番記憶部105に記録する。そして、未
配置部品とその左側の既配置部品とが接続するネット数
からその他のネット数を引き算した値を未配置部品の面
積で割り算した値を計算し未配置部品の左向き比重と
し、その値が最大の部品から順に図26の左から右の順
に、部品E,L,A,J,F,H,B,D,C,K,
M,G,Nと並べる第1の一次元部品配置を計算し部品
配置順番記憶部105に記憶する(ステップ703)。
最右端に位置を指定した指定部品P1からP4以外の部
品Aから部品Nまでの全ての部品を初めは未配置部品と
して部品配置順番記憶部105に記録する。そして、未
配置部品とその左側の既配置部品とが接続するネット数
からその他のネット数を引き算した値を未配置部品の面
積で割り算した値を計算し未配置部品の左向き比重と
し、その値が最大の部品から順に図26の左から右の順
に、部品E,L,A,J,F,H,B,D,C,K,
M,G,Nと並べる第1の一次元部品配置を計算し部品
配置順番記憶部105に記憶する(ステップ703)。
【0148】次に、ステップ704は、ステップ703
のX方向をY方向に変え、同様に計算し、図26の下か
ら上の順に、部品L,J,B,F,D,C,K,G,
N,M,H,A,Eと並べる第2の一次元部品配置を計
算し部品配置順番記憶部105に記憶する(ステップ7
04)。次に、ステップ705は、概略配置部107
が、図26に示すように、X方向の左右の部品の配置の
順を与える第1の一次元部品配置と、Y方向の上下の順
を与える第2の一次元部品配置により、部品をXY座標
平面上に配置する概略部品位置を計算する。
のX方向をY方向に変え、同様に計算し、図26の下か
ら上の順に、部品L,J,B,F,D,C,K,G,
N,M,H,A,Eと並べる第2の一次元部品配置を計
算し部品配置順番記憶部105に記憶する(ステップ7
04)。次に、ステップ705は、概略配置部107
が、図26に示すように、X方向の左右の部品の配置の
順を与える第1の一次元部品配置と、Y方向の上下の順
を与える第2の一次元部品配置により、部品をXY座標
平面上に配置する概略部品位置を計算する。
【0149】次に、ステップ706は、操作指令入力部
116が、図26に示すXY座標平面上の概略部品位置
を表示装置120に表示する。図26に示す様に、ネッ
トの結びつきが強い部品同士が近隣に集まった部品の集
合が表示され、操作者の指令が待たれる。
116が、図26に示すXY座標平面上の概略部品位置
を表示装置120に表示する。図26に示す様に、ネッ
トの結びつきが強い部品同士が近隣に集まった部品の集
合が表示され、操作者の指令が待たれる。
【0150】次に、操作者の指令によりステップ708
に進み、部品配置座標変換部117が、操作者のマウス
操作から図26の部品E,A,Hの指定を受け取り、部
品Hを部品Hの位置まで上昇させる斜行座標変換の指令
を受け取り、部品配置座標変換部117が、部品位置を
座標変換する。また、部品L,J,F,Bを指定し部品
Bを部品LのY座標の位置まで下降させる斜行座標変換
の指令を受け取り、部品配置座標変換部117が部品位
置を座標変換する。また、部品D,C,Kに関し、部品
Kを部品Dと同じY座標の位置まで下降させる座標変換
をする。更に、部品M,G,Nに関し、部品Gを部品N
と同じY座標の位置まで上昇させる座標変換をする。こ
れらの座標変換の結果を図27に示す。
に進み、部品配置座標変換部117が、操作者のマウス
操作から図26の部品E,A,Hの指定を受け取り、部
品Hを部品Hの位置まで上昇させる斜行座標変換の指令
を受け取り、部品配置座標変換部117が、部品位置を
座標変換する。また、部品L,J,F,Bを指定し部品
Bを部品LのY座標の位置まで下降させる斜行座標変換
の指令を受け取り、部品配置座標変換部117が部品位
置を座標変換する。また、部品D,C,Kに関し、部品
Kを部品Dと同じY座標の位置まで下降させる座標変換
をする。更に、部品M,G,Nに関し、部品Gを部品N
と同じY座標の位置まで上昇させる座標変換をする。こ
れらの座標変換の結果を図27に示す。
【0151】次に、操作者の指令によりステップ213
に進み、部品配置コンパクション手段109が図27の
概略部品位置の部品群をX方向及びY方向に相似な位置
にコンパクションし、図28に示す様に部品配置位置を
縮小した配置を得る。次に、操作者の指令によりステッ
プ709に進み、初期クラスタ作成部111が、操作者
から、図28の部品E,A,Hを指定し部品配置方向を
Y方向に指定する指令を受け取り、初期クラスタデータ
を作成し部品データ記憶部102に記憶する。次に、部
品G,Nを指定し部品配置方向をY方向とする初期クラ
スタデータを作成する。次に、部品F,D,C,Kを指
定し部品配置方向をY方向に指定する初期クラスタデー
タを作成する。次に、部品L,J,Bを指定し部品配置
方向をY方向に指定する初期クラスタデータを作成す
る。次に、部品M,G,Kを指定し部品配置方向をX方
向に指定する初期クラスタデータを作成する。
に進み、部品配置コンパクション手段109が図27の
概略部品位置の部品群をX方向及びY方向に相似な位置
にコンパクションし、図28に示す様に部品配置位置を
縮小した配置を得る。次に、操作者の指令によりステッ
プ709に進み、初期クラスタ作成部111が、操作者
から、図28の部品E,A,Hを指定し部品配置方向を
Y方向に指定する指令を受け取り、初期クラスタデータ
を作成し部品データ記憶部102に記憶する。次に、部
品G,Nを指定し部品配置方向をY方向とする初期クラ
スタデータを作成する。次に、部品F,D,C,Kを指
定し部品配置方向をY方向に指定する初期クラスタデー
タを作成する。次に、部品L,J,Bを指定し部品配置
方向をY方向に指定する初期クラスタデータを作成す
る。次に、部品M,G,Kを指定し部品配置方向をX方
向に指定する初期クラスタデータを作成する。
【0152】次に、操作者の指令によりステップ213
に進み、部品配置コンパクション手段109が、図28
の部品位置を、先ずは、X方向にコンパクションする。
X方向のコンパクションの際に、X方向の部品配置方向
を持つ部品M,G,Kの部品群は一体になり移動する。
次に、Y方向にコンパクションする。Y方向のコンパク
ションの際に、Y方向の部品配置方向を持つ部品E,
A,Hは一体になり移動する。部品G,Nも同様にY方
向に一体に移動する。部品F,D,C,Kも同様にY方
向に一体に移動する。部品L,J,Bも同様にY方向に
一体に移動する。このX方向のコンパクションとY方向
のコンパクションの結果、図29に示す様に部品同士を
隣接させた配置を得る。
に進み、部品配置コンパクション手段109が、図28
の部品位置を、先ずは、X方向にコンパクションする。
X方向のコンパクションの際に、X方向の部品配置方向
を持つ部品M,G,Kの部品群は一体になり移動する。
次に、Y方向にコンパクションする。Y方向のコンパク
ションの際に、Y方向の部品配置方向を持つ部品E,
A,Hは一体になり移動する。部品G,Nも同様にY方
向に一体に移動する。部品F,D,C,Kも同様にY方
向に一体に移動する。部品L,J,Bも同様にY方向に
一体に移動する。このX方向のコンパクションとY方向
のコンパクションの結果、図29に示す様に部品同士を
隣接させた配置を得る。
【0153】次に、操作指令入力部116が操作者から
の指令を受け、ステップ709に進み、部品E,A,H
の初期クラスタデータから、部品Eを除外する指令を受
け、次に、ステップ708に進み、図29の部品Eを下
に移動させる。次に、ステップ709に進み、部品M,
G,Kの初期クラスタデータから部品Mを除外する指令
を受け、次に、ステップ708に進み、部品Mを左に移
動させる。次に、部品G,Nを上に移動させる。
の指令を受け、ステップ709に進み、部品E,A,H
の初期クラスタデータから、部品Eを除外する指令を受
け、次に、ステップ708に進み、図29の部品Eを下
に移動させる。次に、ステップ709に進み、部品M,
G,Kの初期クラスタデータから部品Mを除外する指令
を受け、次に、ステップ708に進み、部品Mを左に移
動させる。次に、部品G,Nを上に移動させる。
【0154】次に、ステップ709に進み、部品F,
D,C,Kの初期クラスタデータから部品C,Kを除外
する指令を受け、次に、ステップ708に進み、部品C
を下に移動させ、部品Kを左に移動させる。次に、操作
者の指令によりステップ213に進み、部品配置コンパ
クション手段109が、図29の部品位置をX方向及び
Y方向にコンパクションし、図30の部品配置結果を得
る。
D,C,Kの初期クラスタデータから部品C,Kを除外
する指令を受け、次に、ステップ708に進み、部品C
を下に移動させ、部品Kを左に移動させる。次に、操作
者の指令によりステップ213に進み、部品配置コンパ
クション手段109が、図29の部品位置をX方向及び
Y方向にコンパクションし、図30の部品配置結果を得
る。
【0155】本実施形態は、操作指令入力部116が概
略部品位置を表示手段に表示する事でネットの結合の強
い部品の概略配置を操作者に知らせる事ができる。次
に、操作者からの指令を受け取り、その指令により、部
品の位置を変更し、コンパクションし、その結果を表示
する操作を繰り返す事で、部品配置を改善する事ができ
る。また、部品グラフデータや初期クラスタデータを入
力し部品の配置の条件を加える事で、その条件に基づい
た概略部品位置を計算する事ができ、操作者が指定した
条件により概略部品位置を改善する事ができる。
略部品位置を表示手段に表示する事でネットの結合の強
い部品の概略配置を操作者に知らせる事ができる。次
に、操作者からの指令を受け取り、その指令により、部
品の位置を変更し、コンパクションし、その結果を表示
する操作を繰り返す事で、部品配置を改善する事ができ
る。また、部品グラフデータや初期クラスタデータを入
力し部品の配置の条件を加える事で、その条件に基づい
た概略部品位置を計算する事ができ、操作者が指定した
条件により概略部品位置を改善する事ができる。
【0156】また、本実施形態の部品配置座標変換部1
17が、部品配置の座標変換により部品の配置位置を整
列し、部品配置コンパクション部109で部品配置をコ
ンパクションできるので、部品配置が整列できる。更
に、初期クラスタデータ入力部111が部品をX方向あ
るいはY方向に配列する条件を入力し整列された部品配
置をコンパクション処理により得られる利点がある。
17が、部品配置の座標変換により部品の配置位置を整
列し、部品配置コンパクション部109で部品配置をコ
ンパクションできるので、部品配置が整列できる。更
に、初期クラスタデータ入力部111が部品をX方向あ
るいはY方向に配列する条件を入力し整列された部品配
置をコンパクション処理により得られる利点がある。
【0157】なお、以上で説明した図2〜図4、図1
3、図22、図24、の各処理は自動部品配置プログラ
ムとして、フロッピーディスク、CD−ROM、芝磁気
ディスク、半導体メモリ等の記録媒体に記録しておき、
当コンピュータのデータ処理装置により読み込んで実行
するようにしてもよい。
3、図22、図24、の各処理は自動部品配置プログラ
ムとして、フロッピーディスク、CD−ROM、芝磁気
ディスク、半導体メモリ等の記録媒体に記録しておき、
当コンピュータのデータ処理装置により読み込んで実行
するようにしてもよい。
【0158】
【発明の効果】以上説明したように、本発明によれば、
総配線長を最短にする部品配置位置の計算を部品同士の
位置交換によらず、全部品の配置位置を一度に計算する
ので、部品の配置改善処理によるネット長の収束を短時
間に得ることができるという効果があり、また、重心法
の評価関数よりも総ネット長に直結した評価関数を用い
るため、総ネット長をより短くできる効果がある。
総配線長を最短にする部品配置位置の計算を部品同士の
位置交換によらず、全部品の配置位置を一度に計算する
ので、部品の配置改善処理によるネット長の収束を短時
間に得ることができるという効果があり、また、重心法
の評価関数よりも総ネット長に直結した評価関数を用い
るため、総ネット長をより短くできる効果がある。
【図1】本発明の第1の実施形態の自動部品配置システ
ムの構成図である。
ムの構成図である。
【図2】第1の実施形態の動作を示すフローチャートで
ある。
ある。
【図3】図2中のステップ202のフローチャートであ
る。
る。
【図4】図3中のステップ301のフローチャートであ
る。
る。
【図5】部品データ入力部101から入力されるネット
データの例を示す図である。
データの例を示す図である。
【図6】算出された、XY座標平面上の部品配置位置を
示す図である。
示す図である。
【図7】概略部品位置に仮想形状を設置した図である。
【図8】図7に示す部品をコンパクション処理した結果
を示す図である。
を示す図である。
【図9】図8の部品配置位置を斜行座標軸とともに45
度回転させ、斜行座標軸をXY座標軸と一致させた結果
を示す図である。
度回転させ、斜行座標軸をXY座標軸と一致させた結果
を示す図である。
【図10】部品装置に部品の実形状を配置した図であ
る。
る。
【図11】図10において、部品8と部品7を再配置し
た図である。
た図である。
【図12】本発明の第2の実施形態の自動部品配置シス
テムの構成図である。
テムの構成図である。
【図13】第2の実施形態の動作を示すフローチャート
である。
である。
【図14】概略部品位置に、仮想形状の円を記録した例
を示す図である。
を示す図である。
【図15】図14に示す部品をコンパクション処理した
結果を示す図である。
結果を示す図である。
【図16】図15においてクラスタc1を部品1と部品
2に展開した結果を示す図である。
2に展開した結果を示す図である。
【図17】図16において部品同士の重なりを解消した
結果を示す図である。
結果を示す図である。
【図18】部品配置位置を斜行座標軸とともに45度回
転させ、斜行座標軸をXY座標軸と一致させた結果を示
す図である。
転させ、斜行座標軸をXY座標軸と一致させた結果を示
す図である。
【図19】本発明の第3の実施形態の自動部品配置シス
テムの構成図である。
テムの構成図である。
【図20】本発明の第4の実施形態の自動部品配置シス
テムの構成図である。
テムの構成図である。
【図21】本発明の第5の実施形態の自動部品配置シス
テムの構成図である。
テムの構成図である。
【図22】第5の実施形態の処理を示すフローチャート
である。
である。
【図23】本発明の第6の実施形態の自動部品配置シス
テムの構成図である。
テムの構成図である。
【図24】第6の実施形態の処理を示すフローチャート
である。
である。
【図25】部品データ入力部101から入力されるネッ
トデータの例を示す図である。
トデータの例を示す図である。
【図26】第6の実施形態で算出されたXY平面上の部
品配置を示す図である。
品配置を示す図である。
【図27】図26に示す部品位置の各部品群をそれぞれ
斜行座標変換した結果を示す図である。
斜行座標変換した結果を示す図である。
【図28】図27に示す部品配置をコンパクション処理
した結果を示す図である。
した結果を示す図である。
【図29】図28に示す部品配置をコンパクション処理
した結果を示す図である。
した結果を示す図である。
【図30】図29に示す部品配置をコンパクション処理
した結果を示す図である。
した結果を示す図である。
【図31】従来技術を示すフローチャートである。
100 データ処理装置 101 部品データ入力部 102 部品データ記憶部 103 部品比重計算部 104 整列部 105 部品配列順番記憶部 106 クラスタ作成部 107 概略配置部 108 部品再配置部 109 部品配置コンパクション部 110 部品形状記憶部 111 初期クラスタ作成部 113 共通クラスタ作成部 114 階層別配置部 115 部品グラフデータ入力部 116 操作指令入力部 117 部品配置座標変換部 120 表示装置 130 入力装置
Claims (27)
- 【請求項1】 二次元空間に配置すべき部品のデータと
部品端子同士を接続するネットデータを入力し記憶する
ステップと、 全部品を第1の方向に一次元に配置する第1の一次元部
品配置を計算するステップにおいて、該第1の一次元部
品配置への未配置部品に関して、当該未配置部品に接続
されるネットのうち前記第1の一次元部品配置の既配置
部品と結ばれるネット数から該未配置部品がその他の部
品と結ばれるネット数を引き算した結果の値を該未配置
部品の面積で割り算する計算を行ない、その結果の値を
当該未配置部品の比重として得るステップと、 該未配置部品のうちから最大の比重の部品を選び順次に
第1の一次元部品配置に加えることにより第1の一次元
部品配置を計算するステップと、 第1の一次元部品配置の計算と同様の計算により、全部
品を第2の方向に一次元に配置する第2の一次元部品配
置を計算するステップと、 前記第1の一次元部品配置と第2の一次元部品配置を直
交座標系における部品の概略位置とし、部品の二次元平
面での概略部品位置を計算するステップと、 前記概略部品位置の部品配置をコンパクションすること
により部品同士を近接させた密集配置を得るステップ
と、を有する事を特徴とする自動部品配置方法。 - 【請求項2】 前記ネットデータを入力するステップ
が、部品端子のネット重みを記録したネットデータを入
力し、あるいは、部品同士の結合力あるいは反発力に応
じた重みを記録した部品グラフデータを入力するステッ
プを有し、前記部品の比重を計算するステップが、前記
ネットデータと前記部品グラフデータの総和の部品の比
重を計算する事を特徴とする請求項1記載の自動部品配
置方法。 - 【請求項3】 前記ネットデータを入力するステップ
が、部品(第1の部品)を印刷配線板上の指定位置に固
定し配置する指令を受け取り、該指定位置を新しい部品
(第2の部品)として作成し、該第1の部品と該第2の
部品名を記録した部品グラフデータを作成するステップ
を有し、前記部品の比重を計算するステップが、該印刷
配線板の指定位置の一次元方向の位置を該一次元方向の
印刷配線板の幅で割り算した値を全部品面積の値に掛け
算した値を計算し、該一次元方向における該値の位置を
該指定位置に対応させ、該第1の部品は一次元方向の該
位置に配置し、該第1の部品にネットで接続する部品の
比重を計算するステップを有する、事を特徴とする請求
項2記載の自動部品配置方法。 - 【請求項4】 前記ネットデータを入力するステップ
が、部品群名と、その部品群に属する部品名と、部品の
相対位置と、を記録する初期クラスタデータを入力し、
前記概略部品位置を計算するステップが、初期クラスタ
を一体の部品として扱い概略部品位置を計算し、前記部
品配置をコンパクションするステップが、初期クラスタ
を一体の部品として扱いコンパクションする事を特徴と
する請求項1記載の自動部品配置方法。 - 【請求項5】 前記ネットデータを入力し、記憶するス
テップが、部品同士を結ぶネット数が他の部品と結ぶネ
ット数よりも予め指定した値より大きい場合に、その部
品と相手の部品の集合の初期クラスタデータを、部品間
の相対位置を指定せずに、作成するステップを含む事を
特徴とする請求項4記載の自動部品配置方法。 - 【請求項6】 前記概略部品位置に部品を配置するステ
ップが、前記概略部品位置に部品の仮想形状を配置する
計算を行なうステップと、前記仮想形状同士の重なりを
有する部品配置を解消するコンパクション処理を行な
い、前記仮想形状同士を近接させた第2の概略部品位置
を計算するステップと、部品の実寸法に寸法換算係数を
掛けた値の寸法の部品形状を第2の概略部品位置に配置
するステップと、第2の概略部品位置に配置した部品形
状同士が重なり合う場合に、重なり合う部品を包含する
領域を計算し、該領域内の部品を再配置するステップ
と、を有する事を特徴とする、請求項1から5記載の自
動部品配置方法。 - 【請求項7】 前記第1の一次元部品配置及び前記第2
の一次元部品配置を計算するステップが、部品を比重の
順に一次元方向に配置した後に、該配置における部品の
比重を計算し、隣りあう部品の比重を比較し、後に配置
した部品の比重が先に配置した部品の比重より大きい場
合に両部品を合わせて1つのクラスタとし、該クラスタ
を部品に置き換え処理し、該クラスタ同士の一次元方向
の配置順を計算するステップと、該クラスタの要素の、
部品及びクラスタの該クラスタ内の配置順を計算するス
テップと、を有する事を特徴とする、請求項1から5記
載の自動部品配置方法。 - 【請求項8】 前記第1の一次元部品配置において部品
のクラスタを形成するステップと、前記第2の一次元部
品配置において部品のクラスタを形成するステップと、
両一次元部品配置に共通なクラスタを共通クラスタとし
て抽出するステップを有し、前記の仮想形状を投影する
ステップが、前記共通クラスタを部品と同様に仮想形状
で投影し、該共通クラスタと部品の配置を縮小した後に
前記共通クラスタを更に下位の階層の部品に展開するス
テップを有し、該ステップ内に前記部品概略位置に部品
を配置するステップと前記コンパクションするステップ
を包含し、前記部品形状を配置するステップが下位の階
層の共通クラスタを仮想形状で投影し部品を実部品形状
で投影し、その部品配置を再度縮小させ密集させること
を特徴とする、請求項7記載の自動部品配置方法。 - 【請求項9】 前記概略部品位置を表示手段に表示し、
操作者からの指令を受け取り、その指令により、部品群
を指定し、該部品群の位置変更を行なうステップと、操
作者の指令を受け取り、その指令により部品配置をコン
パクションするステップと、操作者の指令を受け取り、
その指令により、部品群の部品グラフデータあるいは初
期クラスタデータを作成する事で部品の配置の条件を入
力するステップと、該部品の配置の条件により前記概略
部品位置を計算するステップと、を有する事を特徴とす
る、請求項1から8記載の自動部品配置方法。 - 【請求項10】 部品データ記憶手段と、 二次元空間に配置すべき部品のデータと部品端子同士を
接続するネットデータを入力し、前記部品データ記録手
段に記憶する部品データ入力手段と、 全部品を第1の方向に一次元に配置する第1の一次元部
品配置への未配置部品に関して、当該未配置部品に接続
されるネットのうち前記第1の一次元部品配置の既配置
部品と結ばれるネット数から該未配置部品がその他の部
品と結ばれるネット数を引き算した結果の値を該未配置
部品の面積で割り算する計算を行ない、その結果の値を
当該未配置部品の比重として前記部品データ記憶手段に
記憶する部品比重計算手段と、 部品配置順番記憶手段と、 該未配置部品のうちから最大の比重の部品を選び順次に
第1の一次元部品配置に加えることにより第1の一次元
部品配置を計算して、前記部品配置順番記憶手段に記憶
する整列手段と、 第1の一次元部品配置の計算と同様の計算により、全部
品を第2の方向に一次元に配置する第2の一次元部品配
置を計算する手段と、 前記第1の一次元部品配置と前記第2の一次元部品配置
を直交座標系における部品の概略位置とし、部品の二次
元平面での概略部品位置を計算する概略部品配置手段
と、 前記概略部品位置に部品を配置する手段と、 該概略部品位置の部品配置をコンパクションすることに
より部品同士を近接させた密集配置を得るコンパクショ
ン手段と、を有する事を特徴とする自動部品配置システ
ム。 - 【請求項11】 前記部品データ入力手段が、部品端子
のネット重みを記録したネットデータを入力し、あるい
は、部品同士の結合力あるいは反発力に応じた重みを記
録した部品グラフデータを入力する部品グラフデータ入
力手段を有し、前記部品比重計算手段が、前記ネットデ
ータと前記部品グラフデータの総和の部品の比重を計算
する事を特徴とする請求項10記載の自動部品配置シス
テム。 - 【請求項12】 前記部品データ入力手段が、部品(第
1の部品)を印刷配線板上の指定位置に固定し配置する
指令を受け取り、該指定位置を新しい部品(第2の部
品)として作成し、該第1の部品と該第2の部品名を記
録した部品グラフデータを作成し、前記部品比重計算手
段が、該印刷配線板の指定位置の一次元方向の位置を該
一次元方向の印刷配線板の幅で割り算した値を全部品面
積の値に掛け算した値を計算し、該一次元方向における
該値の位置を該指定位置に対応させ、該第1の部品は一
次元方向の該位置に配置し、該第1の部品にネットで接
続する部品の比重を計算する、事を特徴とする請求項1
1記載の自動部品配置システム。 - 【請求項13】 前記部品データ入力手段が、部品群名
と、その部品群に属する部品名と、部品の相対位置と、
を記録する初期クラスタデータを入力する初期クラスタ
作成手段を有し、前記部品比重計算手段と整列手段と概
略部品配置手段が、初期クラスタを一体の部品として扱
い計算し、概略部品位置を計算し、前記コンパクション
手段が、初期クラスタを一体の部品として扱いコンパク
ションする、事を特徴とする請求項10記載の自動部品
配置システム。 - 【請求項14】 前記部品データ入力手段が、部品同士
を結ぶネット数が他の部品と結ぶネット数よりも予め指
定した値より大きい場合に、その部品と相手の部品の集
合の初期クラスタデータを、部品間の相対位置を指定せ
ずに、作成する初期クラスタ作成手段を有する事を特徴
とする請求項13記載の自動部品配置システム。 - 【請求項15】 前記概略部品配置手段が、前記概略部
品位置に部品の仮想形状を計算し配置する計算を行なう
部品形状投影手段と、前記仮想形状同士の重なりを有す
る部品配置を解消するコンパクション処理を行ない、前
記仮想形状同士を近接させた第2の概略部品位置を計算
するコンパクション手段と、部品の実寸法に寸法換算係
数を掛けた値の寸法の部品形状を第2の概略部品位置に
配置する部品形状投影手段と、第2の概略部品位置に配
置した部品形状同士が重なり合う場合に、重なり合う部
品を包含する領域を計算し、該領域内の部品を再配置す
る部品再配置手段と、を有する事を特徴とする、請求項
10から14記載の自動部品配置システム。 - 【請求項16】 前記第1の一次元部品配置及び前記第
2の一次元部品配置を計算する整列手段が、部品を比重
の順に一次元方向に配置した後に、該配置における部品
の比重を計算し、隣りあう部品の比重を比較し、後に配
置した部品の比重が先に配置した部品の比重より大きい
場合に両部品を合わせて1つのクラスタとし、該クラス
タを部品に置き換え処理し、該クラスタ同士の一次元方
向の配置順を計算し、該クラスタの要素の、部品及びク
ラスタの該クラスタ内の配置順を計算する、事を特徴と
する請求項10から14記載の自動部品配置システム。 - 【請求項17】 前記整列手段が、第1の一次元部品配
置において部品のクラスタを形成し、前記第2の一次元
部品配置において部品のクラスタを形成し、両一次元部
品配置に共通なクラスタを共通クラスタとして抽出する
共通クラスタ作成手段を有し、前記の仮想形状を投影す
る部品形状投影手段が、前記共通クラスタを部品と同様
に仮想形状で投影し、該共通クラスタと部品の配置を縮
小した後に前記共通クラスタを更に下位の階層の部品に
展開し、該展開処理において前記部品概略位置に部品を
配置する処理とコンパクション処理を行ない、前記部品
形状投影手段が下位の階層の共通クラスタを仮想形状で
投影し部品を実部品形状で投影し、コンパクション手段
がその部品配置を再度縮小させ密集させることを特徴と
する、請求項16記載の自動部品配置システム。 - 【請求項18】 前記概略部品位置を表示手段に表示
し、操作者からの指令を受け取り、その指令により、部
品群を指定し、該部品群の位置変更を行なう部品配置座
標変換手段と、操作者の指令を受け取り、その指令によ
り部品配置をコンパクションするコンパクション手段
と、操作者の指令を受け取り、その指令により部品群の
部品グラフデータあるいは初期クラスタデータを作成す
る事で部品の配置の条件を入力する部品データ入力手段
と、該部品の配置の条件により部品の比重を計算する部
品比重計算手段と、整列手段と、概略部品配置手段と、
を有する事を特徴とする、請求項10から17記載の自
動部品配置システム。 - 【請求項19】 二次元空間に配置すべき部品のデータ
と部品端子同士を接続するネットデータを読み込み、該
部品を二次元空間に配置する処理をコンピュータで実行
させるための自動部品配置プログラムを記録した記録媒
体であって、 二次元空間に配置すべき部品のデータと部品端子同士を
接続するネットデータを入力し記憶する処理と、 全部品を第1の方向に一次元に配置する第1の一次元部
品配置を計算するステップにおいて、該第1の一次元部
品配置への未配置部品に関して、当該未配置部品に接続
されるネットのうち前記第1の一次元部品配置の既配置
部品と結ばれるネット数から該未配置部品がその他の部
品と結ばれるネット数を引き算した結果の値を該未配置
部品の面積で割り算する計算を行ない、その結果の値を
当該未配置部品の比重として得る処理と、 該未配置部品のうちから最大の比重の部品を選び順次に
第1の一次元部品配置に加えることにより第1の一次元
部品配置を計算する処理と、 第1の一次元部品配置の計算と同様の計算により、全部
品を第2の方向に一次元に配置する第2の一次元部品配
置を計算する処理と、 前記第1の一次元部品配置と前記第2の一次元部品配置
を直交座標系における部品の概略位置とし、部品の二次
元平面での概略部品位置を計算する処理と、 前記概略部品位置の部品配置をコンパクションすること
により部品同士を近接させた密集配置を得る処理と、を
コンピュータに実行させる自動部品配置プログラムを記
録した記録媒体。 - 【請求項20】 前記ネットデータを入力する処理が、
部品端子のネット重みを記録したネットデータを入力
し、あるいは、部品同士の結合力あるいは反発力に応じ
た重みを記録した部品グラフデータを入力する処理を有
し、前記部品の比重を計算する処理が、前記ネットデー
タと前記部品グラフデータの総和の部分の比重を計算す
る処理を有する処理を記録した請求項19に記載の記録
媒体。 - 【請求項21】 前記ネットデータを入力する処理が、
部品(第1の部品)を印刷配線板上の指定位置に固定し
配置する指令を受け取り、該指定位置を新しい部品(第
2の部品)として作成し、該第1の部品と該第2の部品
名を記録した部品グラフデータを作成する処理を有し、
前記部品の比重を計算する処理が、該印刷配線板の指定
位置の一次元方向の位置を該一次元方向の印刷配線板の
幅で割り算した値を全部品面積の値に掛け算した値を計
算し、該一次元方向における該値の位置を該指定位置に
対応させ、該第1の部品は一次元方向の該位置に配置
し、該第1の部品にネットで接続する部品の比重を計算
する処理を有する、処理を記録した、請求項20に記載
の記録媒体。 - 【請求項22】 前記ネットデータを入力する処理が、
部品群名と、その部品群に属する部品名と、部品の相対
位置と、を記録する初期クラスタデータを入力し、前記
概略部品位置を計算する処理が、初期クラスタを一体の
部品として扱い概略部品位置を計算し、前記部品配置を
コンパクションする処理が、初期クラスタを一体の部品
として扱いコンパクションする、処理を記録した、請求
項19に記載の記録媒体。 - 【請求項23】 前記ネットデータを入力し、記憶する
処理が、部品同士を結ぶネット数が他の部品と結ぶネッ
ト数よりも予め指定した値より大きい場合に、その部品
と相手の部品の集合の初期クラスタデータを、部品間の
相対位置を指定せずに、作成する処理を記録した、請求
項22に記載の記録媒体。 - 【請求項24】 前記概略部品位置に部品を配置する処
理が、前記概略部品位置に部品の仮想形状を配置する計
算を行なう処理と、前記仮想形状同士の重なりを有する
部品配置を解消するコンパクション処理を行ない、前記
仮想形状同士を近接させた第2の概略部品位置を計算す
る処理と、部品の実寸法に寸法換算係数を掛けた値の寸
法の部品形状を第2の概略部品位置に配置する処理と、
第2の概略部品位置に配置した部品形状同士が重なり合
う場合に、重なり合う部品を包含する領域を計算し、該
領域内の部品を再配置する処理を記録した、請求項19
から23に記載の記録媒体。 - 【請求項25】 前記第1の一次元部品配置及び前記第
2の一次元部品配置を計算する処理が、部品を比重の順
に一次元方向に配置した後に、該配置における部品の比
重を計算し、隣りあう部品の比重を比較し、後に配置し
た部品の比重が先に配置した部品の比重より大きい場合
に両部品を合わせて1つのクラスタとし、該クラスタを
部品に置き換え処理し、該クラスタ同士の一次元方向の
配置順を計算する処理と、該クラスタの要素の部品及び
クラスタの該クラスタ内の配置順を計算する処理を記録
した、請求項19から23に記載の記録媒体。 - 【請求項26】 前記第1の一次元部品配置において部
品のクラスタを形成する処理と、前記第2の一次元部品
配置において部品のクラスタを形成する処理と、両一次
元部品配置に共通なクラスタを共通クラスタとして抽出
する処理を有し、前記の仮想形状を投影する処理が、前
記共通クラスタを部品と同様に仮想形状で投影し、該共
通クラスタと部品の配置を縮小した後に前記共通クラス
タを更に下位の階層の部品に展開する処理を有し、該処
理内に前記部品概略位置に部品を配置する処理と前記コ
ンパクションする処理を包含し、前記部品形状を配置す
る処理が下位の階層の共通クラスタを仮想形状で投影し
部品を実部品形状で投影し、その部品配置を再度縮小さ
せ密集させる処理との、処理を記録した、請求項25に
記載の記録媒体。 - 【請求項27】 前記概略部品位置を表示手段に表示
し、操作者からの指令を受け取り、その指令により、部
品群を指定し、該部品群の位置変更を行なう処理と、操
作者の指令を受け取り、その指令により部品配置をコン
パクションする処理と、操作者の指令を受け取り、その
指令により、部品群の部品グラフデータあるいは初期ク
ラスタデータを作成する事で部品の配置の条件を入力す
る処理と、該部品の配置の条件により前記概略部品位置
を計算する処理との、処理を記録した、請求項19から
26に記載の記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15339999A JP3178603B2 (ja) | 1998-06-10 | 1999-06-01 | 自動部品配置方法、システムおよび自動部品配置プログラムを記録した記録媒体 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16238798 | 1998-06-10 | ||
JP10-162387 | 1998-06-10 | ||
JP15339999A JP3178603B2 (ja) | 1998-06-10 | 1999-06-01 | 自動部品配置方法、システムおよび自動部品配置プログラムを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000067089A true JP2000067089A (ja) | 2000-03-03 |
JP3178603B2 JP3178603B2 (ja) | 2001-06-25 |
Family
ID=26482030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15339999A Expired - Fee Related JP3178603B2 (ja) | 1998-06-10 | 1999-06-01 | 自動部品配置方法、システムおよび自動部品配置プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3178603B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7412683B2 (en) | 2004-02-05 | 2008-08-12 | Matsushita Electric Industrial Co., Ltd. | Printed wiring board design method, program therefor, recording medium storing the program recorded therein, printed wiring board design device using them and CAD system |
JP2012069000A (ja) * | 2010-09-24 | 2012-04-05 | Fujitsu Ltd | 回路基板設計装置及び回路基板設計プログラム |
KR101331792B1 (ko) * | 2012-05-08 | 2013-11-21 | (주) 엔씨비 | 전극 소재 자동 배치 장치 및 방법 |
-
1999
- 1999-06-01 JP JP15339999A patent/JP3178603B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7412683B2 (en) | 2004-02-05 | 2008-08-12 | Matsushita Electric Industrial Co., Ltd. | Printed wiring board design method, program therefor, recording medium storing the program recorded therein, printed wiring board design device using them and CAD system |
JP2012069000A (ja) * | 2010-09-24 | 2012-04-05 | Fujitsu Ltd | 回路基板設計装置及び回路基板設計プログラム |
KR101331792B1 (ko) * | 2012-05-08 | 2013-11-21 | (주) 엔씨비 | 전극 소재 자동 배치 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP3178603B2 (ja) | 2001-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4028844B2 (ja) | グラフィックス・イメージ生成装置、及びその方法並びにプログラム | |
US6446239B1 (en) | Method and apparatus for optimizing electronic design | |
US6385758B1 (en) | System and method for compacting a graphic layout | |
JP3070678B2 (ja) | 図形レイアウト変更システム及び図形レイアウト変更方法 | |
JP2022024065A (ja) | マルチ解像度画像システム | |
Preas et al. | Automatic placement a review of current techniques | |
JPH08227428A (ja) | プリント基板cad装置 | |
CN103135982A (zh) | 在图形显示中实现焦点更改不变性的方法和系统 | |
JP3389875B2 (ja) | 自動部品配置システム並びに自動部品配置プログラムを記録した記録媒体 | |
KR20200134301A (ko) | 집적 회로를 위한 다중 계층 공동 배치 | |
CA2837983A1 (en) | Partition of a 3d scene into a plurality of zones processed by a computing resource | |
CN112989737A (zh) | 一种交互式模拟电路版图编辑方法及系统 | |
US6941528B2 (en) | Use of a layout-optimization tool to increase the yield and reliability of VLSI designs | |
JP3178603B2 (ja) | 自動部品配置方法、システムおよび自動部品配置プログラムを記録した記録媒体 | |
US20060066610A1 (en) | Method, device, and computer program product for displaying 3D grid in designing configuration model | |
JPH0844883A (ja) | 自動レイアウト装置 | |
Ono et al. | Free-form deformation with automatically generated multiresolution lattices | |
JPH1185819A (ja) | 部品配置装置 | |
JP3317201B2 (ja) | 情報表示装置および情報表示プログラムを記録した記録媒体 | |
TWI819989B (zh) | 三維物件的建模裝置及建模方法 | |
WO1998055950A1 (en) | Integrated circuit layout synthesis tool | |
JP3961493B2 (ja) | 三角形ポリゴンの頂点情報を算出するためのゲーム・プログラム、それを格納する記録媒体、及びゲーム装置 | |
Antoniuk | Generating layout for complex cave-like levels with schematic maps and Cellular Automata | |
JP3632127B2 (ja) | 有限要素メッシュの生成装置 | |
US20050050501A1 (en) | The use of a layout-optimization tool to increase the yield and reliability of vlsi designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |