JPH0310378A - 配置最適化方法及び配置最適化装置と回路設計装置 - Google Patents

配置最適化方法及び配置最適化装置と回路設計装置

Info

Publication number
JPH0310378A
JPH0310378A JP1144123A JP14412389A JPH0310378A JP H0310378 A JPH0310378 A JP H0310378A JP 1144123 A JP1144123 A JP 1144123A JP 14412389 A JP14412389 A JP 14412389A JP H0310378 A JPH0310378 A JP H0310378A
Authority
JP
Japan
Prior art keywords
value
placement
circuit
processors
processor
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
JP1144123A
Other languages
English (en)
Other versions
JP2863550B2 (ja
Inventor
Hiroshi Date
博 伊達
Terumine Hayashi
林 照峯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP14412389A priority Critical patent/JP2863550B2/ja
Priority to KR1019900007744A priority patent/KR0157415B1/ko
Priority to EP90110373A priority patent/EP0401687B1/en
Priority to DE69031197T priority patent/DE69031197D1/de
Priority to US07/533,540 priority patent/US5200908A/en
Publication of JPH0310378A publication Critical patent/JPH0310378A/ja
Application granted granted Critical
Publication of JP2863550B2 publication Critical patent/JP2863550B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE
    • Y10S706/921Layout, e.g. circuit, construction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Architecture (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は相関関係を有する複数の回路モジュールや回路
素子の最適配置を求める方法及び装置に関する。
〔従来の技術〕
相関関係を有する多数の回路モジュールを1枚のプリン
ト基板上に配置したり、相関関係を有する多数の回路素
子を同一の半導体基板上に作製してLSI等の半導体装
置を製造する場合、評価関数値が最適となるように、例
えば、回路モジュールや回路素子間の総配線長が最短と
なるように、あるいは交差する配線の混雑度が最小とな
るように各回路モジュールや回路素子の配置位置を求め
− て、製造コストの低減や回路動作速度の向上を図る必要
がある。
第12図は、従来の反復改善法といわれる配置最適化方
法の手順を示すフローチャー1・である。この従来法で
例えばLSIの各回路素子の最適配置を求める場合、先
ず、繰り返し演算回数Nをステップ1で設定し、次に擬
似乱数により各回路素子の初期配置を設定する(ステッ
プ2)。次に、ある2つの回路素子のペア候補を選択し
くステップ3)、その回路素子ペア候補の素子の位置を
交換したとして改善されるコス1〜が幾らになるかを求
める(ステップ4)。そして、ステップ5にてコスI・
が改善されるか否かを判定し、そのペア候補のコストが
改善される場合、例えば交換後のコストから交換前のコ
ストを引いた差がマイナスになる場合にはステップ6に
進んでそのペアの素子位置を交換し、ステップ3に戻る
。ステップ5の判定でコストが改善されないと判定され
た場合はステップ7に進み、カウンタCの内容を+1し
て、次のステップ8でこのカウンタCの内容がステラプ
1で、設定した数値Nより大きいか否かを判定する。こ
の判定で、C)Nが成立しない場合にはステップ3に戻
ってステップ3以降の処理を繰り返し、成立する場合に
は以上の処理を終了しステップ9にてその改善された配
置を出力する。
上述した反復改善法を並列処理型計算機で行う従来技術
に関連するものとして、例えば、特開昭62−9376
0号、特開昭62−24.3071号、特開昭63−1
21978号等がある。
〔発明が解決しようとする課題〕
従来の配置最適化法は、素子ペアの位置を交換してコス
トが改善されるか否かを判定し最適配置を求めている。
しかし、「最適配置」とはいってもそれが最適配置であ
るか否かは分からず、単に極値であることがわかるにす
ぎない。つまり、まだ改善できる可能性が大きい場合が
ある。
更に、従来法は、対象となるLSI等の規模が大きくな
ればなるほど、演算回数が指数的に増太し、高速処理が
不可能になってしまうという問題もある。
上述した問題を解決し相互に関連する素子の配置を他の
全ての素子の配置の影響を考慮して高速に求める場合、
ホップフィールド(l(opfield)の提案したニ
ューラル・ネットを使うことが考えられる。しかし、こ
のニューラル・ネッ+−を配置問題に適用する場合、エ
ネルギー関数をどのようにすればよいのかがよく分かっ
ておらず、今だ実用化にまで至っていないのが現状であ
る。
本発明の目的は、ニューラル・ネッl−を用いあるいは
このニューラル・ネットの考えを適用して配置問題を高
速且つ高性能に解くことができる配置最適化方法及び装
置並びにこの装置を備える半導体装置設計装置等を提供
することにある。
〔課題を解決するための手段〕
上記目的は、n2個の各プロセッサが各々自己及び他の
全てのプロセッサの出力値を入力値として取り込んで問
題を解くプロセッサネットワークを使用し、i  (i
=1〜n)番目の回路をk(k=1〜n)番目の場所に
配置したときの制約条件変数値を座標(j、k)のプロ
セッサが回路評価関数値が最適値となるように旧っ制約
条件変数値が制約条件に収束するまで演算し、出力値が
制約条件に収束したプロセッサの前記座標から該プロセ
ッサに割り振られた演算対象回路の配置位置を決定する
ことで、達成される。
〔作用〕
座標(l、1〜n)のプロセッサが上記演算を行うこと
で、座標(i、k)のプロセッサの出力が“J”になる
と、他のプロセッサ(j、]〜n(但しkを除く))の
出力はII OIIになる。そこで、j番目の回路を場
所kに配置すると、最適配置となる。
〔実施例〕
以下、本発明の一実施例を図面を参照して説明する。
第1図は、本発明の一実施例に係る半導体装置設計装置
に備えられる配置最適化装置の全体構成図である。配置
最適化装置10は、ネットワーク初期化部11と、複数
のプロセッサを相互に結合した相互結合プロセッサネッ
トワーク12と、配置座標変換部13を備える。ネット
ワーク初期化部11は、1 2 各種データの初期値を設定して相互結合プロセッサネッ
トワーク12を起動し、該ネットワーク12による演算
結果が配置座標変換部13に出力され、該配置座標変換
部13はネットワーク12の演算結果に基づく各回路素
子の配置位置座標を出力する。
第2図は、ネットワーク初期化部11の詳細構成図であ
る。ネットワーク初期化部11は、接続テーブルlla
と、配置位置テーブルllbと、ネットワークの重み及
び閾値設定部11cと、出力値の初期値設定部11dを
備える。接続テーブル1、naには、例えばLSIに搭
載する回路素子間をどの様に接続するかの情報、つまり
、どの回路素子とどの回路素子とを接続するのかの情報
が格納されている。
配置位置テーブルllbには、LSI上の素子配置位置
の各座標値が格納されている。これらの接続テーブルl
laと配置位置テーブルllbの内容(格納データ)は
、入力値により更新され、その結果がネットワークの重
み及び閾値設定部11cに出力される。このネットワー
クの重み及び閾値設定部]、1cは、各テーブルからの
情報に基づいて、詳細は後述する様に、重み及び閾値を
設定し、相互結合プロセッサネジ1〜ワークを起動する
。また、出力値の初期値設定部lidは、出力値(ネッ
トワーク12の各プロセッサは、最終的に、110”か
“1″を出力する。)の初期値を例えばLL Q 、 
5 IIに設定し、これを相互結合プロセッサネットワ
ーク12に出力する。
第3図は、相互結合プロセッサネットワーク12の説明
図である。このプロセッサネットワーク12は、プロセ
ッサネットワーク部31と、出力部32から成る。プロ
セッサネッl〜ワーク部31は、多数のプロセッサ31
a〜31gで構成されており、各プロセッサは、他の全
てのプロセッサ及び自己の出力値を入力値として取り込
む様に接続されている(全ての結合関係を図示すると繁
雑になるので第3図にはその一部のみ図示)。出力部3
2には、各プロセッサ対応の出力端子が設けられている
。例えば、n個の回路素子の配置位置(配置箇所もn個
所となる)を演算する場合、本実施例では、02個のプ
ロセッサで演算する。このとき、02個のプロセッサを
nXnの2次元7トリクスとして並べたと仮定し、1−
行目の1列目のプロセッサ31aには1番目の回路素子
を1番目の配置箇所に割り振ったときの演算を後述する
演算式に基づいて行わせ、1行目の2列目のプロセッサ
31bには1番目の回路素子を2番目の配置箇所に割り
振ったときの演算を同様に行わせ、・、2行目の1列目
のプロセッサ31dには2番目の回路素子を1番目の回
路素子を1番目の配置箇所に割り振ったときの同様の演
算を行わせ、・・、n行目のn列目のプロセッサ31g
にはn番目の回路素子をn番目の配置箇所に割り振った
ときの演算を行わせる構成とする。
つまり、1(i=1〜n)を回路素子の番号とし、k(
k1〜n)を配置箇所とした場合、(i、 k)で示さ
れる回路素子と配置箇所との組み合わせに対する演算を
、(i、k)が示す座標のプロセッサに割り振る。
第4図は、第2図に示されるネットワークの重み及び閾
値設定部11cの構成図である。設定部用Cは、評価関
数設定部41aと、制約条件設定部41bと、評価関数
及び制約条件の基でのエネルギー関数を求める関数設定
部42と、該エネルギー関数の各項の係数比を決定する
係数比決定部43と、該係数比から重みと閾値を決定す
る重み等決定部44を備える。
重み及び閾値の決定方法を説明する前に、相互結合プロ
セッサネットワークによる最適化手法の原理について説
明する。
この最適化手法では、重み付けがなされた相互結合プロ
セッサネットワークの持つエネルギー関数Eの値が、極
小値をとる条件を求める。
E=(1/2)  txTx+tbx ここで、x、bはn次元のベクトルであり、TはnXn
の行列である。また、tX、tbは転置ベクトルを示す
。このエネルギー関数Eが極小となる条件つまり配置位
置をもとめるのであるが、ベクトルXの各成分X、は′
0″かLL I I+の値をとるという制約のもとで求
める。ここで、Tがこのネットワークの重み行列であり
、bが閾値ベクトルである。ここでいう「重み」とは、
演算対象の素子までの距離に相当し、距離が長いほど重
みが5 16 大となる。また、「閾値Jは、その配置箇所にその回路
素子が置かれる可能性を示し、その配置箇所にその回路
素子が置かれる可能性が高いほど閾値が高くなる。
このとき、各プロセッサは、次の微分方程式に従い変数
Xの各成分X、の値を更新していき、最終的にエネルギ
ー関数Eの極小値を求める。
(du/dt)=−(aE/ax)=−Tx−bxr=
 (1/2)  ・ (1+tanh uJ)上述のエ
ネルギー関数Eから最適配置を求めるのであるが、これ
を実際に求めるために1本実施例では、以下の様に行う
先ず、評価関数設定部41aが、例えば演算対象の回路
素子間の総配線長を最短にするという最適化問題の評価
関数を次の様に設定する。
評価関数: (1/2)Σ  Σ    dkQcijmuikuj
g、十ΣΣΣdkPci Pmui km(ink)≠
(j+A)ikm ここに、 dkl:配置場所にと配置場所Qとの距離dkp:配置
場所にと素子Pの固定配置場所との距離Mm:素子間の
接続関係を表すネット 1、j:素子 P:配置位置が固定されている素子 uik+uj見:変数 次に、制約条件設定部41bが、本最適化問題の制約条
件を以下の様に設定する。
制約条件: u4jE (Q、 l )Σ u4に=1
      (Vk) Σ u +に= 1      (V i )この制約
条件は、複数の回路素子は1箇所に重複して配置されな
いということを示す。
これらの評価関数(目的関数ともいう。)と制約条件を
、プロセッサネットワークのエネルギー関数Eに変換す
ると、次式の様になる。
E=EI十E2 El −(1/2)D 五jb、X dkg、aB、、
x(kxH1尚、」二連した評価関数及びエネルギー関
数は、配置対象とする回路素子のうち、特定の回路素子
の配置箇所が経験的あるいは他の制約条件等で予め決ま
っている場合の例であり、この様に配置箇所が固定され
る素子が無い場合には、評価関数の第2項目及びエネル
ギー関数のうちのE、の第2項目は無くなる。
次に、係数比決定部43は、エネルギー関数EのE1項
の係数りとEZ項の係数Aの比A/Dを決定する。この
決定の仕方を以下に説明する。
E2項が最小の状態つまり制約条件を満たしている状態
から、変数XikがII O+1から11”に変わった
場合の各項EI+E2の変化量へE l +へE2を調
べる。ここで、ΔE1の上限値は、回路素子のネットの
うち一番犬きいネットに含まれる数Nを用いて次のよう
に表すことができる。
ΔEz=2A そして、ΔE1≦八E2へなる様に、係数の比A/Dを
決めれば、制約条件が満たされる。更に、この係数の比
A/Dの値が小さい程、質の良いより最適な素子配置構
成が得られる。よって、ΔEI=ΔE2とおいて、係数
の比Δ/Dに関する次式を得る。
以」二の様にして求めたエネルギー関数と、最適化手法
の原理の説明で示したエネルギー関数の係数を比較する
ことで、決定部44では、次に様に重み行列Tと閾値ベ
クトルbを夫々決定する。
T= (T=z) b= (bik) bik=−2A+DΣ dkPQiPm   (Vj)
相互結合プロセッサネットワークは、この重み行列Tと
閾値バク1〜ルbを使用し、次の演算を行って、回路素
子の配置位置を求める。
座標(i、k)にあるプロセッサは、時刻tにおける演
算結果uja(t)が分かっているとき、時9− 刻t+1における演算で、u4k(t+1)を演算する
dx+h(t)=  (ΣT、kJxuj9.(t) 
 bik) Xdtxtk(t”l)= x+k(t)
 +dXtk(t)u 、k(t+1)= 1/(1+
e x p (−x+k(t+1)))ここで、dtは
積分の刻み幅であり、これは実験的に決定し、例えばd
 t =0.01とする。この演算において、初回のu
ikの値つまり初期値としてuik(0)= 0.5を
与え、t+1回目の演算でuikがLL OIIまたは
“1″に収束しない場合には、自己及び他のプロセッサ
のt+1回目の演算結果を取り込んでdX、k(t+1
)を求め、t+2回目の演算を行う。この演算を繰り返
すことで、最終的に、二次元マトリクス状に割り振られ
たプロセッサネットワークは、各行、各列において1つ
のプロセッサのみ“1″を出力し、他のプロセッサはI
IQ”を出力することになる。″1ノ′を出力したプロ
セッサの座標(j、、k)により、1番目の回路素子を
場所kに配置すればよいことが分かる。
次に、相互結合プロセッサネットワークの出力0 信号の処理について述べる。
第5図は、第1図に示す配置座標変換部13の構成図で
ある。配置座標変換部13は、相互結合プロセッサ12
の出力部32と信号線51で接続されたCPU部5部上
2判定部53と、配置処理部54と配置プログラム55
により成る。
相互結合プロセッサネットワーク12からは、演算実行
毎に、n2個の信号がCPU部5部上2力される。この
信号は、II Q II 、  LL I IIに収束
する前は1、”0.3”とか”0.9”とかのOから1
までの不確定な値をとり、収束したとき確定した値とな
る。先ず、CPU部5部上2ネッ1−ワーク12の演算
が収束したか否かを判定する。この判定は、n個のrr
 1 u信号がネットワーク12から出力されたことで
行う。そして、ネットワーク12の演算が収束したとき
、以下の信号処理を行う。
ネットワーク12による演算は、係数比A/Dの値を前
述した武道りに決めれば、必ずn個のプロセッサから1
”に収束した信号が出力され、この“1”を出力したプ
ロセッサの座標からどの回路素子をどこに配置すればよ
うかが分かる。しかし、係数比A/Dを前述した式とは
別に設定した場合には、ネットワーク12の出力は収束
しなくなる。A/Dを与える前記式の値は、A/Dの下
限値を与えるものであるが、それよりも下の値や上の値
を実験的に設定することも、配置問題の種類によっであ
る。この場合、ネッ1〜ワーク12はプロセッサのうち
出力信号が収束しないものが出てくる虞がある。この様
な場合は、ネジ1ヘワーク12による演算を途中で打ち
切り、ネットワーク12の出力信号から回路素子の配置
を判定する必要が生じる。
CPU部52は、ネッ1〜ワーク12の出力信号から、
判定部53で必要な情報を後述する様に演算して求める
。そして、判定部53は、この情報から、回路素子の配
置がネジ1−ワーク12の出力通りにできるか否かを判
定する。配置可能(その素子の配置演算を請は負ったプ
ロセッサの出力が収束した場合)であれば、配置処理部
54にて回路素子の配置場所が決定される。配置不可能
(その素子の配置演算を請は負ったプロセッサの出力が
収束しなかった場合)と判定される回路素子がある場合
には、配置可能な回路素子のみ配置し、残された配置不
可能な回路素子は、配置プログラムにより例えば従来の
反復改善法やシミュレーテッドアニーリング法で配置位
置を交換することで配置場所を求める。
第6図は、前記CPU部52の構成図である。配置対象
の゛回路素子数(=配置場所数)がn個の場合、ネット
ワーク12からはn2個の信号が出力される。本実施例
では、CPU部52はrlQ個のCPUつまり判定処理
部61.62.63を備え、ネットワーク12からの各
出力信号は夫々対応する判定処理部に入力される。各判
定処理部は入力された信号が収束したか否かを判定する
情報を各々独立に計算する。そして、各計算結果を判定
部53と加算器64とに出力する。加算器64は、後述
する様に入力信号を加算し、加算結果を判定部53に出
力する。
なお、判定処理部をn2個設けたのは、並列処理するこ
とで処理時間の短縮化を図るだめであり、勿論、高速処
理可能な1個のCPUを使用して逐3 4 次処理を行わせることも可能である。
第7図は、第6図に示す各判定処理部の説明図である。
先ず、処理71により、変数C1(J)と変数PLAC
E(j)(j= 1− n l+)がII OIIに初
期化される。
そして、自己に対し信号を出力してくるプロセッサの座
標が(i、k)で、そのプロセッサの出力信号がII 
I IIか否かを処理72にて判定し、LL I II
の場合には処理73に進み、変数Cm(i)、Cm(k
)の値を“1″にする。また処理75で変数PLACE
(i)の値を”k”にする。そして、これらの変数の値
を判定部53に出力する。処理72の判定で、プロセッ
サの出力信号がLL I IIに収束していないとされ
た場合は、処理74で、変数C□(1)、Cm(k)の
値を“O”のままとする。処理73と処理74の結果が
、加算器64に出力される。
第8図は、加算器64の説明図である。加算器64は、
各判定処理部61〜63から出力されてくる変数Cm(
j)の値を加算し、加算した値を変数couNr(j)
に設定し、 couNr(j) =ΣCm(j) m=1 この変数couNr(j)の値を判定部53に出力する
第9図は、判定部53の説明図である。先ず、加算器6
4から入力される変数C0UNT(j)の値について説
明する。今、ネットワーク12における各プロセッサの
うち、′1”の値を出力しているプロセッサの座標を(
i、k)とする。このとき、nXnの零マトリクスの対
角成分(i、i)と(k、k)の値を+1する。この作
業をII I IIを出している全てのプロセッサにつ
いて行う。ネットワーク12の全プロセッサの出力が収
束した場合、このマトリクスの対角成分は全て“2″と
なる。つまり、II 2 IIとなった対角成分に対応
する回路素子は配置可能なことを表す。
変数C0UNT (i)の値は、対角成分(i、j)の
値を示す。従って、判定部53では、先ず処理91にて
jの値が1以上02以下であることを判定し、jの値が
この範囲にある場合にはその変数C0UNT(j)の値
が“2”であるか否かを処理92で判定する。
変数couNr(j)が2″′の値を示す素子Jは配置
可能であり、2”以外の値を示す素子は配置不可能であ
る。判定部53は、この判定結果を配置処理部54に出
力する。
第10図は、配置処理部54の説明図である。判定部5
3から1番目の回路素子に対する配置可能か不可能かの
判定結果を取り込んだとき、配置不可能な素子数を表す
変数Cと、配置不可能であった素子番号を表す変数FA
IL(C)の値を初期化してOとする。次に、判定部5
3からのn2個の判定結果全てに対して、以下の処理を
行う。先ず回路素子]に対する判定結果が配置可能を示
すか否かを判定し、配置可能を示せば、その回路素子l
を、判定処理部61〜63から入力した変数PLACE
(i)が示す番号の配置場所に配置する。また、配置不
可能であれば、変数Cの値を+1して変数FAIL(C
)の値をiとする。この処理を全ての回路素子について
行い、配置できなかった素子数つまり変数Cの値が(L
 O++であれば、配置処理を完了し、配置不可能な素
子が残った場合には、その配置不可能な素子に対して従
来の反復改善法やシミュレーテッドアニーリング法を適
用して配置位置を決める。
第11図は、本発明の別の実施例に関する配置最適化装
置の全体構成図である。この実施例では第1図の実施例
に比べ、処理ステップ112を付加し、配置座標変換部
13の出力が最適配置でない場合に、上述した処理を繰
り返すことで、最適配置を求めるものである。以下、こ
の実施例について説明する。
相互結合プロセッサネッ1ヘワークの出力信号が全て“
1″か“0”かに収束しなかった場合、収束しない出力
信号に対応する回路素子の配置位置は従来の交換方法や
シミュレーテッドアニーリング法でその配置位置を決定
することは前述した。
しかし、この様にして全ての回路素子の配置位置を決定
した場合、その配置位置が最適配置位置であるか否かは
分からず、単にそれが極値を取るに過ぎない場合がある
。しかし、それが極値であるか、たまたま最適配置を与
えるかは明確に分からない。しかし、経験的にその配置
位置が最適配置ではないと分かる場合がある。その様な
場合、前述した重み行列Tの対角成分を増加させて、相
互7− 結合プロセッサネットワークの演算を繰り返すことで、
最適配置を求めることが可能である。
前述した重み行列(T’+kj悲)は、i=j,kQの
成分、つまり対角成分は全て′0″の値をとるように決
めである。対角成分が全て“0”の場合に、この重み行
列を使用することで得られる回路素子の配置が極値をと
ることは、数学的に判明しているからである。
配置不可能な回路素子iが出てきて、従来の交換法等で
その回路素子主の配置位置を決定した場合、当該配置位
置に対応するプロセッサの出力信号を1”とし、その回
路素子主の他のプロセッサの出力信号を0”として、ネ
ットワーク12の1″′を出力している座標に対応する
重み行列Tの対角成分の値を、各成分毎にオペレータが
指定する値例えば”0、n’″とか”0.3”とかに増
加する。そして、この様に対角成分を増加した重み行列
Tを使用して、前述と同様にuikの値を110”か1
”かに収束するまでネットワーク12で演算する。この
演算により求めた配置位置が対角成分増加前に求めた配
置位置と同じであればそれは最適配置を与えるものであ
り、前に求めた配置位置が単に極値にすぎない場合には
、異なる配置位置が求まることになる。従って、第11
図の処理11c 、 12, 13, 11.2を繰り
返すことで、より最適な配置位置を求めることが可能で
ある。
尚、実施例は、LSIの回路素子配置に本発明を適用し
た例であるが、本発明はこれに限定されるものでなく、
例えば1枚のプリント基板に相互関係を有する多数の回
路モジュールを配置する場合にも適用できることはいう
までもない。
〔発明の効果〕
本発明によれば、質の高い回路配置のレイアウトを高速
に求めることができ、この回路配置方法を適用してレイ
アウトを設計し製造した半導体装置は、低コスl− 、
高速動作が可能になるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例に係る半導体装置設計装置に
備えられる配置最適化装置の全体構成図、第2図は第1
図に示すネッ1〜ワーク初期化部の構成図、第3図は第
1図に示す相互結合プロセッサネッ1へワークの構成図
、第4図は第2図に示すネットワークの重み及び閾値設
定部の構成図、第5図は第1図に示す配置座標交換部の
構成図、第6図は第5図に示すCPU部の構成図、第7
図は第6図に示す判定処理部の構成図、第8図は第6図
に示す加算器の構成図、第9図は第5図に示す判定部の
構成図、第10図は第5図に示す配置処理部の構成図、
第11図は本発明の別実施例に係る配置最適化装置の全
体構成図、第12図は従来における反復改善法の処理手
順のフローチャートである。 10・・配置最適化、装置、11  ネッI・ワーク初
期化部、12・・・相互結合プロセッサネットワーク、
13配置座標変換部、lla・・・接続テーブル、ll
b・・配置位置テーブル、llc・・・ネットワークの
重み及び閾値設定部、lid・・出力値の初期値設定部
、31a〜31g・・・プロセッサ、41a・・評価関
数設定部、41b・・・制約条件設定部、42・・エネ
ルギー関数設定部、43・・・係数比設定部、44・・
・重み及び閾値決定部。 1− 集 3 図 第 図 罵 苓 図 第 図 集 7 図 察 図 纂 10 図 察 1 図

Claims (1)

  1. 【特許請求の範囲】 1、n^2個の各プロセッサが各々自己及び他の全ての
    プロセッサの出力値を入力値として取り込んで問題を解
    くプロセッサネットワークを使用し、i(i=1〜n)
    番目の回路をk(k=1〜n)番目の場所に配置したと
    きの制約条件変数値を座標(i、k)のプロセッサが回
    路評価関数値が最適値となるように且つ制約条件変数値
    が制約条件に収束するまで演算し、出力値が制約条件に
    収束したプロセッサの前記座標から該プロセッサに割り
    振られた演算対象回路の配置位置を決定することを特徴
    とする配置最適化方法。 2、自己の出力及び他の全てのプロセッサの出力を取り
    込んで問題を解く神経回路網を構成するプロセッサネッ
    トワークを使用して、n個の回路の配置を回路配置評価
    関数値が最適値となるように演算して求める配置最適化
    方法において、エネルギ関数E ▲数式、化学式、表等があります▼ ▲数式、化学式、表等があります▼ ▲数式、化学式、表等があります▼ ここで、x、b;n次元ベクトル t_x、t_b;上記の転置ベクトル、 d_k_l;配置場所k、l間の距離 d_k_p;配置場所kと素子pの固定配置場所との距
    離(固定配置場所が無い場合はd_k_p=0)c_i
    _j_m;1(i、jがネットを構成するとき)or0
    (その他)x_i_k、x_j_l;制約条件変数 A、D:係数 から求めた重み行列Tと閾値ベクトルbを ▲数式、化学式、表等があります▼ b_i_k=−2A+DΣd_k_pc_i_p_m(
    ∀i)とし、t回目の演算結果u_j_l(t)が分か
    っているときに、t+1回目の演算を行ってu_i_k
    (t+1)を、dX_i_k(t)=−(ΣT_i_k
    _j_l(t)−b_i_k)×dt…(1)x_i_
    k(t+1)= x_i_k(t)+dx_i_k(t
    )…(2)u_i_k(t+1)=1/{1+exp(
    −x_i_k(t+1))}…(3)を演算して求め、
    該u_i_kの値が 制約条件;u_i_k∈{0、1} ▲数式、化学式、表等があります▼ ▲数式、化学式、表等があります▼ に収束するまで演算し、収束したときの各プロセッサの
    座標値から回路の配置箇所を決定することを特徴とする
    配置最適化方法。 3、請求項2において、係数A/Dの値を ▲数式、化学式、表等があります▼ ここに、Nはネットに含まれる回路数 として、請求項2に記載の重み行列Tと閾値ベクトルb
    とを決めることを特徴とする配置最適化方法。 4、請求項2において、係数A、Dの比A/Dの値とし
    て請求項3記載のA/D値より小さい値を設定すること
    を特徴とする配置最適化方法。 5、請求項4において、演算結果が収束しない回路が出
    てきた場合には、該回路の配置位置を交換法あるいはシ
    ミュレーテッドアニーリング法で決めることを特徴とす
    る配置最適化方法。 6、請求項5において、最終的に求めた回路配置位置に
    おいて回路を配置する箇所に相当する座標の前記重み行
    列における対角成分の値に0より大きく1より小さい任
    意の値を加算し、請求項2に記載の演算を再び行って配
    置箇所を求めることを特徴とする配置最適化方法。 7、請求項2乃至請求項6のいずれかにおいて、u_i
    _kの初期値として0以上1以下の任意の値を与えるこ
    とを特徴とする配置最適化方法。 8、請求項7において、初期値として0.5を与えるこ
    とを特徴とする配置最適化方法。 9、n^2個のプロセッサの代わりに1〜n^2−1個
    のうちの任意の個数のプロセッサを用意し、該プロセッ
    サにて請求項1乃至請求項8のいずれかに記載の演算を
    逐次処理させるに当り、各演算結果をメモリに格納し、
    該メモリに格納した演算結果を使用して次の演算を行わ
    せることで、請求項1乃至請求項8のいずれかに記載の
    n^2個のプロセッサの演算と同等の演算を行わせるこ
    とを特徴とする配置最適化方法。 10、自己及び他のプロセッサの出力値を入力値として
    取り込むn^2個のプロセッサで成り、i番目の回路を
    k番目の場所に配置したときの制約条件変数値を座標(
    i、k)のプロセッサが回路評価関数値が最適値となる
    ように且つ制約条件変数値が制約条件に収束するまで演
    算する相互結合プロセッサトネットワークを備えること
    を特徴とする配置最適化装置。 11、自己及び他のプロセッサの出力値を入力値として
    取り込む神経回路網を構成するn^2個のプロセッサで
    成るネットワークと、請求項2に記載の重み行列Tと閾
    値ベクトルbの値を決定する手段と、前記ネットワーク
    の座標(i、k)のプロセッサにi番目の回路をk番目
    の場所に配置したときの問題を割り振って請求項2記載
    の式(1)(2)(3)の演算を行わせる手段と、各プ
    ロセッサの出力値が制約条件に収束したときプロセッサ
    の座標値から回路の配置を決定する手段とを備えること
    を特徴とする配置最適化装置。 12、請求項11において、重み行列T及び閾値ベクト
    ルbを決定するに当り、係数比A/Dの値を請求項3記
    載の式に従って決定する手段を備えることを特徴とする
    配置最適化装置。 13、請求項11において、重み行列T及び閾値ベクト
    ルbを決定するにあたり、係数比A/Dを請求項3記載
    の式で決まる値より小さい値として設定する手段を備え
    ることを特徴とする配置最適化装置。 14、請求項13において、演算が収束しなかった回路
    の配置位置を交換法あるいはシミュレーテッドアニーリ
    ング法で決定する手段を備えることを特徴とする配置最
    適化装置。 15、請求項13において、交換法あるいはシミュレー
    テッドアニーリング法で配置位置を求めた回路がある場
    合に重み行列Tの回路を配置する位置に対応する対角成
    分の値を0より大きく1より小さい任意値として請求項
    2記載の式(1)(2)(3)を再演算させる手段を備
    えることを特徴とする配置最適化装置。 16、請求項11乃至請求項15のいずれかにおいて、
    請求項2記載の式(1)のu_j_l値の初期値として
    0以上1以下の任意の値を設定する初期値設定手段を備
    えることを特徴とする配置最適化装置。 17、請求項16において、初期値設定手段は初期値と
    して0.5を設定することを特徴とする配置最適化装置
    。 18、請求項10乃至請求項17において、n^2個の
    プロセッサの代わりに1〜n^2−1個のうちの任意の
    個数のプロセッサと、該プロセッサの演算結果を格納す
    るメモリと、前記プロセッサにて請求項1乃至請求項8
    のいずれかに記載の演算を逐次処理させるに当り各演算
    結果を前記メモリに格納し該格納データを使用して次の
    演算を行わせ請求項1乃至請求項8のいずれかに記載の
    n^2個のプロセッサの演算と同等の演算を行わせる手
    段とを備えることを特徴とする配置最適化装置。 19、半導体集積回路の回路設計を行う半導体装置設計
    装置において、請求項10乃至請求項18のいずれかに
    記載の配置最適化装置を備えることを特徴とする半導体
    装置設計装置。
JP14412389A 1989-06-08 1989-06-08 配置最適化方法及び配置最適化装置と回路設計装置 Expired - Lifetime JP2863550B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP14412389A JP2863550B2 (ja) 1989-06-08 1989-06-08 配置最適化方法及び配置最適化装置と回路設計装置
KR1019900007744A KR0157415B1 (ko) 1989-06-08 1990-05-29 배치 최적화 방법과 장치 및 반도체 장치 설계장치
EP90110373A EP0401687B1 (en) 1989-06-08 1990-05-31 Placement optimizing method/apparatus for designing semiconductor devices
DE69031197T DE69031197D1 (de) 1989-06-08 1990-05-31 Plazierungs-Optimierungsverfahren /-vorrichtung für den Entwurf von Halbleiterbausteinen
US07/533,540 US5200908A (en) 1989-06-08 1990-06-05 Placement optimizing method/apparatus and apparatus for designing semiconductor devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14412389A JP2863550B2 (ja) 1989-06-08 1989-06-08 配置最適化方法及び配置最適化装置と回路設計装置

Publications (2)

Publication Number Publication Date
JPH0310378A true JPH0310378A (ja) 1991-01-17
JP2863550B2 JP2863550B2 (ja) 1999-03-03

Family

ID=15354731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14412389A Expired - Lifetime JP2863550B2 (ja) 1989-06-08 1989-06-08 配置最適化方法及び配置最適化装置と回路設計装置

Country Status (5)

Country Link
US (1) US5200908A (ja)
EP (1) EP0401687B1 (ja)
JP (1) JP2863550B2 (ja)
KR (1) KR0157415B1 (ja)
DE (1) DE69031197D1 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990009636A1 (en) * 1989-02-10 1990-08-23 Hitachi, Ltd. Data processing unit for obtaining solution for optimal combination solution and method thereof
US5361214A (en) * 1990-07-09 1994-11-01 Kabushiki Kaisha Toshiba Method for automatically determining wiring routes
JPH04130968A (ja) * 1990-09-21 1992-05-01 Toshiba Corp ニューラルネットワークを用いた配線方式
JP2887969B2 (ja) * 1991-08-30 1999-05-10 三菱電機株式会社 ニューラルネットワークによる部品配置最適化方法
US5452400A (en) * 1991-08-30 1995-09-19 Mitsubishi Denki Kabushiki Kaisha Method of optimizing a combination using a neural network
JPH05128085A (ja) * 1991-11-08 1993-05-25 Toshiba Corp システム制御の学習方法
JP3479538B2 (ja) * 1991-12-26 2003-12-15 テキサス インスツルメンツ インコーポレイテツド 半導体集積回路を製作する方法
JP3220250B2 (ja) * 1992-01-09 2001-10-22 株式会社東芝 セル自動配置方法
JP3201156B2 (ja) * 1993-08-30 2001-08-20 トヨタ自動車株式会社 設計を支援する方法と装置
JP3192057B2 (ja) * 1994-03-18 2001-07-23 富士通株式会社 配線プログラム生成方法及びその装置
US5691913A (en) * 1994-03-28 1997-11-25 Matsushita Electric Ind. Co. Layout designing apparatus for circuit boards
US5557533A (en) * 1994-04-19 1996-09-17 Lsi Logic Corporation Cell placement alteration apparatus for integrated circuit chip physical design automation system
US6155725A (en) * 1994-04-19 2000-12-05 Lsi Logic Corporation Cell placement representation and transposition for integrated circuit physical design automation system
US5875117A (en) * 1994-04-19 1999-02-23 Lsi Logic Corporation Simultaneous placement and routing (SPAR) method for integrated circuit physical design automation system
US6493658B1 (en) 1994-04-19 2002-12-10 Lsi Logic Corporation Optimization processing for integrated circuit physical design automation system using optimally switched fitness improvement algorithms
US5495419A (en) * 1994-04-19 1996-02-27 Lsi Logic Corporation Integrated circuit physical design automation system utilizing optimization process decomposition and parallel processing
US5815403A (en) * 1994-04-19 1998-09-29 Lsi Logic Corporation Fail-safe distributive processing method for producing a highest fitness cell placement for an integrated circuit chip
US5914887A (en) * 1994-04-19 1999-06-22 Lsi Logic Corporation Congestion based cost factor computing apparatus for integrated circuit physical design automation system
US5963975A (en) * 1994-04-19 1999-10-05 Lsi Logic Corporation Single chip integrated circuit distributed shared memory (DSM) and communications nodes
US5535134A (en) * 1994-06-03 1996-07-09 International Business Machines Corporation Object placement aid
US5590063A (en) * 1994-07-05 1996-12-31 Motorola, Inc. Optimization method using parallel processors
US5740071A (en) * 1995-06-07 1998-04-14 International Business Machines Corporation Method and apparatus for selective shape adjustment of hierarchical designs
US5740067A (en) * 1995-10-19 1998-04-14 International Business Machines Corporation Method for clock skew cost calculation
US5745735A (en) * 1995-10-26 1998-04-28 International Business Machines Corporation Localized simulated annealing
US5892688A (en) * 1996-06-28 1999-04-06 Lsi Logic Corporation Advanced modular cell placement system with iterative one dimensional preplacement optimization
US5844811A (en) * 1996-06-28 1998-12-01 Lsi Logic Corporation Advanced modular cell placement system with universal affinity driven discrete placement optimization
US5835381A (en) * 1996-06-28 1998-11-10 Lsi Logic Corporation Advanced modular cell placement system with minimizing maximal cut driven affinity system
US5870311A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with fast procedure for finding a levelizing cut point
US5831863A (en) * 1996-06-28 1998-11-03 Lsi Logic Corporation Advanced modular cell placement system with wire length driven affinity system
US5963455A (en) * 1996-06-28 1999-10-05 Lsi Logic Corporation Advanced modular cell placement system with functional sieve optimization technique
US5872718A (en) * 1996-06-28 1999-02-16 Lsi Logic Corporation Advanced modular cell placement system
US5914888A (en) * 1996-06-28 1999-06-22 Lsi Logic Corporation Advanced modular cell placement system with coarse overflow remover
US5971588A (en) * 1996-06-28 1999-10-26 Lsi Logic Corporation Advanced modular cell placement system with optimization of cell neighborhood system
US5808899A (en) * 1996-06-28 1998-09-15 Lsi Logic Corporation Advanced modular cell placement system with cell placement crystallization
US6026223A (en) * 1996-06-28 2000-02-15 Scepanovic; Ranko Advanced modular cell placement system with overlap remover with minimal noise
US5870312A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with dispersion-driven levelizing system
US6085032A (en) * 1996-06-28 2000-07-04 Lsi Logic Corporation Advanced modular cell placement system with sinusoidal optimization
US6067409A (en) * 1996-06-28 2000-05-23 Lsi Logic Corporation Advanced modular cell placement system
US6030110A (en) * 1996-06-28 2000-02-29 Lsi Logic Corporation Advanced modular cell placement system with median control and increase in resolution
US5812740A (en) * 1996-06-28 1998-09-22 Lsi Logic Corporation Advanced modular cell placement system with neighborhood system driven optimization
US5867398A (en) * 1996-06-28 1999-02-02 Lsi Logic Corporation Advanced modular cell placement system with density driven capacity penalty system
US5980093A (en) * 1996-12-04 1999-11-09 Lsi Logic Corporation Integrated circuit layout routing using multiprocessing
US5953518A (en) * 1997-03-14 1999-09-14 Lsi Logic Corporation Yield improvement techniques through layout optimization
US6993186B1 (en) * 1997-12-29 2006-01-31 Glickman Jeff B Energy minimization for classification, pattern recognition, sensor fusion, data compression, network reconstruction and signal processing
US6324436B1 (en) 1998-09-14 2001-11-27 Fujitsu Limited Method for optimizing cost of manufacturing memory arrays
KR100352603B1 (ko) * 1998-12-21 2002-10-19 주식회사 포스코 내화조성물 및 이를 이용한 턴디쉬의 상부노즐
US7342414B2 (en) * 2002-02-01 2008-03-11 California Institute Of Technology Fast router and hardware-assisted fast routing method
JP2003249591A (ja) * 2002-02-26 2003-09-05 Nec Electronics Corp エリアio型半導体装置の配線基板の設計方法
US7210112B2 (en) * 2002-08-21 2007-04-24 California Institute Of Technology Element placement method and apparatus
US7285487B2 (en) * 2003-07-24 2007-10-23 California Institute Of Technology Method and apparatus for network with multilayer metalization
US9061119B2 (en) 2008-05-09 2015-06-23 Edwards Lifesciences Corporation Low profile delivery system for transcatheter heart valve
US10192016B2 (en) * 2017-01-17 2019-01-29 Xilinx, Inc. Neural network based physical synthesis for circuit designs
CN113722853B (zh) * 2021-08-30 2024-03-05 河南大学 一种面向智能计算的群智能进化式工程设计约束优化方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3629843A (en) * 1970-05-11 1971-12-21 Bell Telephone Labor Inc Machine process for assigning interconnected components to locations in a planar matrix
US3702003A (en) * 1970-10-09 1972-10-31 Marathon Oil Co Algorithm to minimize iterative computation in a process for the analysis or design of a physical system
US3681782A (en) * 1970-12-02 1972-08-01 Honeywell Inf Systems Machine process for positioning interconnected components to minimize interconnecting line length
US4580228A (en) * 1983-06-06 1986-04-01 The United States Of America As Represented By The Secretary Of The Army Automated design program for LSI and VLSI circuits
US4593363A (en) * 1983-08-12 1986-06-03 International Business Machines Corporation Simultaneous placement and wiring for VLSI chips
US4577276A (en) * 1983-09-12 1986-03-18 At&T Bell Laboratories Placement of components on circuit substrates
JPS6293760A (ja) * 1985-10-18 1987-04-30 Nec Corp 配置改良装置
US4719591A (en) * 1985-11-07 1988-01-12 American Telephone And Telegraph Company, At&T Bell Labs. Optimization network for the decomposition of signals
US4754408A (en) * 1985-11-21 1988-06-28 International Business Machines Corporation Progressive insertion placement of elements on an integrated circuit
USH354H (en) * 1986-04-04 1987-10-06 The United States Of America As Represented By The Secretary Of The Army Linear algorithm for non-linear interpolation for computer aided designs
JPS62243071A (ja) * 1986-04-16 1987-10-23 Fujitsu Ltd 並列配置改善方式
JPS63121978A (ja) * 1986-11-11 1988-05-26 Fujitsu Ltd 大規模組合せ問題の最適化処理装置

Also Published As

Publication number Publication date
EP0401687A2 (en) 1990-12-12
KR0157415B1 (ko) 1998-11-16
US5200908A (en) 1993-04-06
DE69031197D1 (de) 1997-09-11
KR910001934A (ko) 1991-01-31
JP2863550B2 (ja) 1999-03-03
EP0401687A3 (en) 1993-01-27
EP0401687B1 (en) 1997-08-06

Similar Documents

Publication Publication Date Title
JPH0310378A (ja) 配置最適化方法及び配置最適化装置と回路設計装置
Veluswami et al. The application of neural networks to EM-based simulation and optimization of interconnects in high-speed VLSI circuits
EP0504932A2 (en) A parallel data processing system
EP0631254A2 (en) Neural network and method of using same
JPH0760428B2 (ja) 線形微分方程式を用いて接続の重みが生成されるような分散並列処理ネットワーク
JPH05505268A (ja) デイジーチェーン制御付ニューラルネットワーク
US11481618B2 (en) Optimization apparatus and method for controlling neural network
US5627943A (en) Neural network processor including systolic array of two-dimensional layers
EP0377221A2 (en) Neuro-computer
CN108734281A (zh) 处理装置、处理方法、芯片及电子装置
Phua et al. Parallel nonlinear optimization techniques for training neural networks
EP0557997A2 (en) Information processing apparatus and information processing system
Yang et al. A neural network-based prediction model for fine pitch stencil-printing quality in surface mount assembly
Hirahara et al. Automatic placement using static and dynamic groupings
JP2810170B2 (ja) 多層型ネットワークの学習装置
Viredaz et al. MANTRA I: A systolic neuro-computer
Date et al. LSI module placement methods using neural computation networks
JPH04182769A (ja) デジタル・ニューロプロセッサ
Watanabe et al. Flute-a floorplanning agent for full custom VLSI design
Tong et al. Using a neural network-based approach to predict the wafer yield in integrated circuit manufacturing
Aiken et al. A parallel neural network simulator
TWI659324B (zh) 電路規劃結果產生方法與系統
Ghorbani et al. Incremental communication for multilayer neural networks
JPH03184173A (ja) 配置最適化方法及びその装置と回路設計装置
Chakraborty et al. Branching process analysis of linear ranking and binary tournament selection in genetic algorithms