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

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

Info

Publication number
JP2863550B2
JP2863550B2 JP14412389A JP14412389A JP2863550B2 JP 2863550 B2 JP2863550 B2 JP 2863550B2 JP 14412389 A JP14412389 A JP 14412389A JP 14412389 A JP14412389 A JP 14412389A JP 2863550 B2 JP2863550 B2 JP 2863550B2
Authority
JP
Japan
Prior art keywords
value
processor
circuit
arrangement
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP14412389A
Other languages
English (en)
Other versions
JPH0310378A (ja
Inventor
博 伊達
照峯 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は相関関係を有する複数の回路モジュールや回
路素子の最適配置を求める方法及び装置に関する。
〔従来の技術〕
相関関係を有する多数の回路モジュールを1枚のプリ
ント基板上に配置したり、相関関係を有する多数の回路
素子を同一の半導体基板上に作製してLSI等の半導体装
置を製造する場合、評価関数値が最適となるように、例
えば、回路モジュールや回路素子間の総配線長が最短と
なるように、あるいは交差する配線の混雑度が最小とな
るように各回路モジュールや回路素子の配置位置を求め
て、製造コストの低減や回路動作速度の向上を図る必要
がある。
第12図は、従来の反復改善法といわれる配置最適化方
法の手順を示すフローチャートである。この従来法で例
えばLSIの各回路素子の最適配置を求める場合、先ず、
繰り返し演算回数Nをステップ1で設定し、次に擬似乱
数により各回路素子の初期配置を設定する(ステップ
2)。次に、ある2つの回路素子のペア候補を選択し
(ステップ3)、その回路素子ペア候補の素子の位置を
交換したとして改善されるコストが幾らになるかを求め
る(ステップ4)。そして、ステップ5にてコストが改
善されるか否かを判定し、そのペア候補のコストが改善
される場合、例えば交換後のコストから交換前のコスト
を引いた差がマイナスになる場合にはステップ6に進ん
でそのペアの素子位置を交換し、ステップ3に戻る。ス
テップ5の判定でコストが改善されないと判定された場
合はステップ7に進み、カウンタCの内容を+1して、
次のステップ8でこのカウンタCの内容がステップ1で
設定した数値Nより大きいか否かを判定する。この判定
で、C>Nが成立しない場合にはステップ3に戻ってス
テップ3以降の処理を繰り返し、成立する場合には以上
の処理を終了しステップ9にてその改善された配置を出
力する。
上述した反復改善法を並列処理型計算機で行う従来技
術に関連するものとして、例えば、特開昭62-93760号,
特開昭62-243071号,特開昭63-121978号等がある。
〔発明が解決しようとする課題〕
従来の配置最適化法は、素子ペアの位置を交換してコ
ストが改善されるか否かを判定し最適配置を求めてい
る。しかし、「最適配置」とはいってもそれが最適配置
であるか否かは分からず、単に極値であることがわかる
にすぎない。つまり、まだ改善できる可能性が大きい場
合がある。
更に、従来法は、対象となるLSI等の規模が大きくな
ればなるほど、演算回数が指数的に増大し、高速処理が
不可能になってしまうという問題もある。
上述した問題を解決し相互に関連する素子の配置を他
の全ての素子の配置の影響を考慮して高速に求める場
合、ホップフィールド(Hopfield)の提案したニューラ
ル・ネットを使うことが考えられる。しかし、このニュ
ーラル・ネットを配置問題に適用する場合、エネルギー
関数をどのようにすればよいのかがよく分かっておら
ず、今だ実用化にまで至っていないのが現状である。
本発明の目的は、ニューラル・ネットを用いあるいは
このニューラル・ネットの考えを適用して配置問題を高
速且つ高性能に解くことができる配置最適化方法及び装
置並びにこの装置を備える半導体装置設計装置等を提供
することにある。
〔課題を解決するための手段〕
上記目的は、n2個の各プロセッサが各々自己及び他の
全てのプロセッサの出力値を入力値として取り込んで問
題を解くプロセッサネットワークを使用し、i(i=1
〜n)番目の回路をk(k=1〜n)番目の場所に配置
したときの制約条件変数値を座標(i,k)のプロセッサ
が回路評価関数値が最適値となるように且つ制約条件変
数値が制約条件に収束するまで演算し、出力値が制約条
件に収束したプロセッサの前記座標から該プロセッサに
割り振られた演算対象回路の配置位置を決定すること
で、達成される。
〔作用〕
座標(i,1〜n)のプロセッサが上記演算を行うこと
で、座標(i,k)のプロセッサの出力が“1"になると、
他のプロセッサ(i,1〜n(但しkを除く))の出力は
“0"になる。そこで、i番目の回路を場所kに配置する
と、最適配置となる。
〔実施例〕
以下、本発明の一実施例を図面を参照して説明する。
第1図は、本発明の一実施例に係る半導体装置設計装
置に備えられる配置最適化装置の全体構成図である。配
置最適化装置10は、ネットワーク初期化部11と、複数の
プロセッサを相互に結合した相互結合プロセッサネット
ワーク12と、配置座標変換部13を備える。ネットワーク
初期化部11は、各種データの初期値を設定して相互結合
プロセッサネットワーク12を起動し、該ネットワーク12
による演算結果が配置座標変換部13に出力され、該配置
座標変換部13はネットワーク12の演算結果に基づく各回
路素子の配置位置座標を出力する。
第2図は、ネットワーク初期化部11の詳細構成図であ
る。ネットワーク初期化部11は、接続テーブル11aと、
配置位置テーブル11bと、ネットワークの重み及び閾値
設定部11cと、出力値の初期値設定部11dを備える。接続
テーブル11aには、例えばLSIに搭載する回路素子間をど
の様に接続するかの情報、つまり、どの回路素子とどの
回路素子とを接続するのかの情報が格納されている。配
置位置テーブル11bには、LSI上の素子配置位置の各座標
値が格納されている。これらの接続テーブル11aと配置
位置テーブル11bの内容(格納データ)は、入力値によ
り更新され、その結果がネットワークの重み及び閾値設
定部11cに出力される。このネットワークの重み及び閾
値設定部11cは、各テーブルからの情報に基づいて、詳
細は後述する様に、重み及び閾値を設定し、相互結合プ
ロセッサネットワークを起動する。また、出力値の初期
値設定部11dは、出力値(ネットワーク12の各プロセッ
サは、最終的に、“0"か“1"を出力する。)の初期値を
例えば“0.5"に設定し、これを相互結合プロセッサネッ
トワーク12に出力する。
第3図は、相互結合プロセッサネットワーク12の説明
図である。このプロセッサネットワーク12は、プロセッ
サネットワーク部31と、出力部32から成る。プロセッサ
ネットワーク部31は、多数のプロセッサ31a〜31gで構成
されており、各プロセッサは、他の全てのプロセッサ及
び自己の出力値を入力値として取り込む様に接続されて
いる(全ての結合関係を図示すると繁雑になるので第3
図にはその一部のみ図示)。出力部32には、各プロセッ
サ対応の出力端子が設けられている。例えば、n個の回
路素子の配置位置(配置箇所もn個所となる)を演算す
る場合、本実施例では、n2個のプロセッサで演算する。
このとき、n2個のプロセッサをn×nの2次元マトリク
スとして並べたと仮定し、1行目の1列目のプロセッサ
31aには1番目の回路素子を1番目の配置箇所に割り振
ったときの演算を後述する演算式に基づいて行わせ、1
行目の2列目のプロセッサ31bには1番目の回路素子を
2番目の配置箇所に割り振ったときの演算を同様に行わ
せ、…、2行目の1列目のプロセッサ31dには2番目の
回路素子を1番目の回路素子を1番目の配置箇所に割り
振ったときの同様の演算を行わせ、…、n行目のn列目
のプロセッサ31gにはn番目の回路素子をn番目の配置
箇所に割り振ったときの演算を行わせる構成とする。つ
まり、i(i=1〜n)を回路素子の番号とし、k(k
=1〜n)を配置箇所とした場合、(i,k)で示される
回路素子と配置箇所との組み合わせに対する演算を、
(i,k)が示す座標のプロセッサに割り振る。
第4図は、第2図に示されるネットワークの重み及び
閾値設定部11cの構成図である。設定部11cは、評価関数
設定部41aと、制約条件設定部41bと、評価関数及び制約
条件の基でのエネルギー関数を求める関数設定部42と、
該エネルギー関数の各項の係数比を決定する係数比決定
部43と、該係数比から重みと閾値を決定する重み等決定
部44を備える。
重み及び閾値の決定方法を説明する前に、相互結合プ
ロセッサネットワークによる最適化手法の原理について
説明する。
この最適化手法では、重み付けがなされた相互結合プ
ロセッサネットワークの持つエネルギー関数Eの値が、
極小値をとる条件を求める。
E=(1/2)txTx+tbx ここで、x,bはn次元のベクトルであり、Tはn×n
の行列である。また、tx,tbは転置ベクトルを示す。こ
のエネルギー関数Eが極小となる条件つまり配置位置を
もとめるのであるが、ベクトルxの各成分xiは“0"か
“1"の値をとるという制約のもとで求める。ここで、T
がこのネットワークの重み行列であり、bが閾値ベクト
ルである。ここでいう「重み」とは、演算対象の素子ま
での距離に相当し、距離が長いほど重みが大となる。ま
た、「閾値」は、その配置箇所にその回路素子が置かれ
る可能性を示し、その配置箇所にその回路素子が置かれ
る可能性が高いほど閾値が高くなる。
このとき、各プロセッサは、次の微分方程式に従い変
数xの各成分xiの値を更新していき、最終的にエネルギ
ー関数Eの極小値を求める。
(du/dt)=−(∂E/∂x)−Tx−b xi=(1/2)・(1+tanh uj) 上述のエネルギー関数Eから最適配置を求めるのであ
るが、これを実際に求めるために、本実施例では、以下
の様に行う。
先ず、評価関数設定部41aが、例えば演算対象の回路
素子間の総配線長を最短にするという最適化問題の評価
関数を次の様に設定する。
評価関数: ここに、 dkl:配置場所kと配置場所lとの距離 dkp:配置場所kと素子pの固定配置場所との距離 Mm:素子間の接続関係を表すネット i,j:素子 p:配置位置が固定されている素子 uik,ujl:変数 次に、制約条件設定部41bが、本最適化問題の制約条
件を以下の様に設定する。
制約条件:uij∈{0,1} この制約条件は、複数の回路素子は1箇所に重複して
配置されないということを示す。
これらの評価関数(目的関数ともいう。)と制約条件
を、プロセッサネットワークのエネルギー関数Eに変換
すると、次式の様になる。
尚、上述した評価関数及びエネルギー関数は、配置対
象とする回路素子のうち、特定の回路素子の配置箇所が
経験的あるいは他の制約条件等で予め決まっている場合
の例であり、この様に配置箇所が固定される素子が無い
場合には、評価関数の第2項目及びエネルギー関数のう
ちのE1の第2項目は無くなる。
次に、係数比決定部43は、エネルギー関数EのE1項の
係数DとE2項の係数Aの比A/Dを決定する。この決定の
仕方を以下に説明する。
E2項が最小の状態つまり制約条件を満たしている状態
から、変数xikが“0"から“1"に変わった場合の各項E1,
E2の変化量ΔE1,ΔE2を調べる。ここで、ΔE1の上限値
は、回路素子のネットのうち一番大きいネットに含まれ
る数Nを用いて次のように表すことができる。
そして、ΔE1≦ΔE2となる様に、係数の比A/Dを決め
れば、制約条件が満たされる。更に、この係数の比A/D
の値が小さい程、質の良いより最適な素子配置構成が得
られる。よって、ΔE1=ΔE2とおいて、係数の比A/Dに
関する次式を得る。
以上の様にして求めたエネルギー関数と、最適化手法
の原理の説明で示したエネルギー関数の係数を比較する
ことで、決定部44では、次に様に重み行列Tと閾値ベク
トルbを夫々決定する。
相互結合プロセッサネットワークは、この重み行列T
と閾値ベクトルbを使用し、次の演算を行って、回路素
子の配置位置を求める。
座標(i,k)にあるプロセッサは、時刻tにおける演
算結果ujl(t)が分かっているとき、時刻t+1にお
ける演算で、uik(t+1)を演算する。
dxik(t)=−(ΣTikjlujl(t)−bik)×dt xik(t+1)=xik(t)+dxik(t) uik(t+1)=1/{1+exp(−xik(t+1))} ここで、dtは積分の刻み幅であり、これは実験的に決
定し、例えばdt=0.01とする。この演算において、初回
のuikの値つまり初期値としてuik(0)=0.5を与え、
t+1回目の演算でuikが“0"または“1"に収束しない
場合には、自己及び他のプロセッサのt+1回目の演算
結果を取り込んでdxik(t+1)を求め、t+2回目の
演算を行う。この演算を繰り返すことで、最終的に、二
次元マトリクス状に割り振られたプロセッサネットワー
クは、各行,各列において1つのプロセッサのみ“1"を
出力し、他のプロセッサは“0"を出力することになる。
“1"を出力したプロセッサの座標(i,k)により、i番
目の回路素子を場所kに配置すればよいことが分かる。
次に、相互結合プロセッサネットワークの出力信号の
処理について述べる。
第5図は、第1図に示す配置座標変換部13の構成図で
ある。配置座標変換部13は、相互結合プロセッサ12の出
力部32と信号線51で接続されたCPU部52と、判定部53
と、配置処理部54と配置プログラム55により成る。
相互結合プロセッサネットワーク12からは、演算実行
毎に、n2個の信号がCPU部52に出力される。この信号
は、“0",“1"に収束する前は、、“0.3"とか“0.9"と
かの0から1までの不確定な値をとり、収束したとき確
定した値となる。先ず、CPU部52は、ネットワーク12の
演算が収束したか否かを判定する。この判定は、n個の
“1"信号がネットワーク12から出力されたことで行う。
そして、ネットワーク12の演算が収束したとき、以下の
信号処理を行う。
ネットワーク12による演算は、係数比A/Dの値を前述
した式通りに決めれば、必ずn個のプロセッサから“1"
に収束した信号が出力され、この“1"を出力したプロセ
ッサの座標からどの回路素子をどこに配置すればようか
が分かる。しかし、係数比A/Dを前述した式とは別に設
定した場合には、ネットワーク12の出力は収束しなくな
る。A/Dを与える前記式の値は、A/Dの下限値を与えるも
のであるが、それよりも下の値や上の値を実験的に設定
することも、配置問題の種類によってある。この場合、
ネットワーク12はプロセッサのうち出力信号が収束しな
いものが出てくる虞がある。この様な場合は、ネットワ
ーク12による演算を途中で打ち切り、ネットワーク12の
出力信号から回路素子の配置を判定する必要が生じる。
CPU部52は、ネットワーク12の出力信号から判定部53
で必要な情報を後述する様に演算して求める。そして、
判定部53は、この情報から、回路素子の配置がネットワ
ーク12の出力通りにできるか否かを判定する。配置可能
(その素子の配置演算を請け負ったプロセッサの出力が
収束した場合)であれば、配置処理部54にて回路素子の
配置場所が決定される。配置不可能(その素子の配置演
算を請け負ったプロセッサの出力が収束しなかった場
合)と判定される回路素子がある場合には、配置可能な
回路素子のみ配置し、残された配置不可能な回路素子
は、配置プログラムにより例えば従来の反復改善法やシ
ミュレーテッドアニーリング法で配置位置を交換するこ
とで配置場所を求める。
第6図は、前記CPU部52の構成図である。配置対象の
回路素子数(=配置場所数)がn個の場合、ネットワー
ク12からはn2個の信号が出力される。本実施例では、CP
U部52はn2個のCPUつまり判定処理部61,62,63を備え、ネ
ットワーク12からの各出力信号は夫々対応する判定処理
部に入力される。各判定処理部は入力された信号が収束
したか否かを判定する情報を各々独立に計算する。そし
て、各計算結果を判定部53と加算器64とに出力する。加
算器64は、後述する様に入力信号を加算し、加算結果を
判定部53に出力する。なお、判定処理部をn2個設けたの
は、並列処理することで処理時間の短縮化を図るだめで
あり、勿論、高速処理可能な1個のCPUを使用して逐次
処理を行わせることも可能である。
第7図は、第6図に示す各判定処理部の説明図であ
る。先ず、処理71により、変数Cm(j)と変数PLACE
(j)(j=1〜n2)が“0"に初期化される。そして、
自己に対し信号を出力してくるプロセッサの座標が(i,
k)で、そのプロセッサの出力信号が“1"か否かを処理7
2にて判定し、“1"の場合には処理73に進み、変数C
m(i),Cm(k)の値を“1"にする。また処理75で変
数PLACE(i)の値を“k"にする。そして、これらの変
数の値を判定部53に出力する。処理72の判定で、プロセ
ッサの出力信号が“1"に収束していないとされた場合
は、処理74で、変数Cm(i),Cm(k)の値を“0"のま
まとする。処理73と処理74の結果が、加算器64に出力さ
れる。
第8図は、加算器64の説明図である。加算器64は、各
判定処理部61〜63から出力されてくる変数Cm(j)の値
を加算し、加算した値を変数COUNT(j)に設定し、 この変数COUNT(j)の値を判定部53に出力する。
第9図は、判定部53の説明図である。先ず、加算器64
から入力される変数COUNT(j)の値について説明す
る。今、ネットワーク12における各プロセッサのうち、
“1"の値を出力しているプロセッサの座標を(i,k)と
する。このとき、n×nの零マトリクスの対角成分(i,
i)と(k,k)の値を+1する。この作業を“1"を出して
いる全てのプロセッサについて行う。ネットワーク12の
全プロセッサの出力が収束した場合、このマトリックス
の対角成分は全て“2"となる。つまり、“2"となった対
角成分に対応する回路素子は配置可能なことを表す。
変数COUNT(i)の値は、対角成分(i,i)の値を示
す。従って、判定部53では、先ず処理91にてjの値が1
以上n2以下であることを判定し、jの値がこの範囲にあ
る場合にはその変数COUNT(j)の値が“2"であるか否
かを処理92で判定する。変数COUNT(j)が“2"の値を
示す素子jは配置可能であり、“2"以外の値を示す素子
は配置不可能である。判定部53は、この判定結果を配置
処理部53に出力する。
第10図は、配置処理部54の説明図である。判定部53か
らi番目の回路素子に対する配置可能か不可能かの判定
結果を取り込んだとき、配置不可能な素子数を表す変数
Cと、配置不可能であった素子番号を表す変数FAIL
(C)の値を初期化して0とする。次に、判定部53から
のn2個の判定結果全てに対して、以下の処理を行う。先
ず回路素子iに対する判定結果が配置可能を示すか否か
を判定し、配置可能を示せば、その回路素子iを、判定
処理部61〜63から入力した変数PLACE(i)が示す番号
の配置場所に配置する。また、配置不可能であれば、変
数Cの値を+1して変数FAIL(C)の値をiとする。こ
の処理を全ての回路素子について行い、配置できなかっ
た素子数つまり変数Cの値が“0"であれば、配置処理を
完了し、配置不可能な素子が残った場合には、その配置
不可能な素子に対して従来の反復改善法やシミュレーテ
ッドアニーリング法を適用して配置位置を決める。
第11図は、本発明の別の実施例に関する配置最適化装
置の全体構成図である。この実施例では第1図の実施例
に比べ、処理ステップ112を付加し、配置座標変換部13
の出力が最適配置でない場合に、上述した処理を繰り返
すことで、最適配置を求めるものである。以下、この実
施例について説明する。
相互結合プロセッサネットワークの出力信号が全て
“1"か“0"かに収束しなかった場合、収束しない出力信
号に対応する回路素子の配置位置は従来の交換方法やシ
ミュレーテッドアニーリング法でその配置位置を決定す
ることは前述した。しかし、この様にして全ての回路素
子の配置位置を決定した場合、その配置位置が最適配置
位置であるか否かは分からず、単にそれが極値を取るに
過ぎない場合がある。しかし、それが極値であるか、た
またま最適配置を与えるかは明確に分からない。しか
し、経験的にその配置位置が最適配置ではないと分かる
場合がある。その様な場合、前述した重み行列Tの対角
成分を増加させて、相互結合プロセッサネットワークの
演算を繰り返すことで、最適配置を求めることが可能で
ある。
前述した重み行列(Tikjl)は、i=j,k=lの成分、
つまり対角成分は全て“0"の値をとるように決めてあ
る。対角成分が全て“0"の場合に、この重み行列を使用
することで得られる回路素子の配置が極値をとること
は、数学的に判明しているからである。
配置不可能な回路素子iが出てきて、従来の交換法等
でその回路素子iの配置位置を決定した場合、当該配置
位置に対応するプロセッサの出力信号を“1"とし、その
回路素子iの他のプロセッサの出力信号を“0"として、
ネットワーク12の“1"を出力している座標に対応する重
み行列Tの対角成分の値を、各成分毎にオペレータが指
定する値例えば“0.1"とか“0.3"とかに増加する。そし
て、この様に対角成分を増加した重み行列Tを使用し
て、前述と同様にuikの値を“0"か“1"かに収束するま
でネットワーク12で演算する。この演算により求めた配
置位置が対角成分増加前に求めた配置位置と同じであれ
ばそれは最適配置を与えるものであり、前に求めた配置
位置が単に極値にすぎない場合には、異なる配置位置が
求まることになる。従って、第11図の処理11c,12,13,11
2を繰り返すことで、より最適な配置位置を求めること
が可能である。
尚、実施例は、LSIの回路素子配置に本発明を適用し
た例であるが、本発明はこれに限定されるものでなく、
例えば1枚のプリント基板に相互関係を有する多数の回
路モジュールを配置する場合にも適用できることはいう
までもない。
〔発明の効果〕
本発明によれば、質の高い回路配置のレイアウトを高
速に求めることができ、この回路配置方法を適用してレ
イアウトを設計し製造した半導体装置は、低コスト,高
速動作が可能になるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例に係る半導体装置設計装置に
備えられる配置最適化装置の全体構成図、第2図は第1
図に示すネットワーク初期化部の構成図、第3図は第1
図に示す相互結合プロセッサネットワークの構成図、第
4図は第2図に示すネットワークの重み及び閾値設定部
の構成図、第5図は第1図に示す配置座標交換部の構成
図、第6図は第5図に示すCPU部の構成図、第7図は第
6図に示す判定処理部の構成図、第8図は第6図に示す
加算器の構成図、第9図は第5図に示す判定部の構成
図、第10図は第5図に示す配置処理部の構成図、第11図
は本発明の別実施例に係る配置最適化装置の全体構成
図、第12図は従来における反復改善法の処理手順のフロ
ーチャートである。 10……配置最適化装置、11……ネットワーク初期化部、
12……相互結合プロセッサネットワーク、13……配置座
標変換部、11a……接続テーブル、11b……配置位置テー
ブル、11c……ネットワークの重み及び閾値設定部、11d
……出力値の初期値設定部、31a〜31g……プロセッサ、
41a……評価関数設定部、41b……制約条件設定部、42…
…エネルギー関数設定部、43……係数比設定部、44……
重み及び閾値決定部。

Claims (19)

    (57)【特許請求の範囲】
  1. 【請求項1】n2個の各プロセッサが各々自己及び他の全
    てのプロセッサの出力値を入力値として取り込んで問題
    を解くプロセッサネットワークを使用し、i(i=1〜
    n)番目の回路をk(k=1〜n)番目の場所に配置し
    たときの制約条件変数値を座標(i,k)のプロセッサが
    回路評価関数値が最適値となるように且つ制約条件変数
    値が制約条件に収束するまで演算し、出力値が制約条件
    に収束したプロセッサの前記座標から該プロセッサに割
    り振られた演算対象回路の配置位置を決定することを特
    徴とする配置最適化方法。
  2. 【請求項2】自己の出力及び他の全てのプロセッサの出
    力を取り込んで問題を解く神経回路網を構成するプロセ
    ッサネットワークを使用して、n個の回路の配置を回路
    配置評価関数値が最適値となるように演算して求める配
    置最適化方法において、エネルギ関数E ここで、x,b;n次元ベクトルt x,tb;上記の転置ベクトル、 dkl;配置場所k,l間の距離 dkp;配置場所kと素子pの固定配置場所との距離 (固定配置場所が無い場合はdkp=0) cijm;1(i,jがネットを構成するとき)or0(その他) xik,xjl;制約条件変数 A,D;係数 から求めた重み行列Tと閾値ベクトルbを とし、t回目の演算結果ujl(t)が分かっているとき
    に、t+1回目の演算を行ってuik(t+1)を、 dxik(t)=−(ΣTikjlujl(t)-bik)×dt …(1) xik(t+1)=xik(t)+dxik(t) …(2) uik(t+1)=1/{1+exp(−xik(t+1))}…(3)
    を演算して求め、該uikの値が 制約条件;uik∈{0,1} に収束するまで演算し、収束したときの各プロセッサの
    座標値から回路の配置箇所を決定することを特徴とする
    配置最適化方法。
  3. 【請求項3】請求項2において、係数A/Dの値を ここに、Nはネットに含まれる回路数として、請求項2
    に記載の重み行列Tと閾値ベクトルbとを決めることを
    特徴とする配置最適化方法。
  4. 【請求項4】請求項2において、係数A,Dの比A/Dの値と
    して請求項3記載のA/D値より小さい値を設定すること
    を特徴とする配置最適化方法。
  5. 【請求項5】請求項4において、演算結果が収束しない
    回路が出てきた場合には、該回路の配置位置を交換法あ
    るいはシミュレーテッドアニーリング法で決めることを
    特徴とする配置最適化方法。
  6. 【請求項6】請求項5において、最終的に求めた回路配
    置位置において回路を配置する箇所に相当する座標の前
    記重み行列における対角成分の値に0より大きく1より
    小さい任意の値を加算し、請求項2に記載の演算を再び
    行って配置箇所を求めることを特徴とする配置最適化方
    法。
  7. 【請求項7】請求項2乃至請求項6のいずれかにおい
    て、uikの初期値として0以上1以下の任意の値を与え
    ることを特徴とする配置最適化方法。
  8. 【請求項8】請求項7において、初期値として0.5を与
    えることを特徴とする配置最適化方法。
  9. 【請求項9】n2個のプロセッサの代わりに1〜n2−1個
    のうちの任意の個数のプロセッサを用意し、該プロセッ
    サにて請求項1乃至請求項8のいずれかに記載の演算を
    逐次処理させるに当り、各演算結果をメモリに格納し、
    該メモリに格納した演算結果を使用して次の演算を行わ
    せることで、請求項1乃至請求項8のいずれかに記載の
    n2個のプロセッサの演算と同等の演算を行わせることを
    特徴とする配置最適化方法。
  10. 【請求項10】自己及び他のプロセッサの出力値を入力
    値として取り込むn2個のプロセッサで成り、i番目の回
    路をk番目の場所に配置したときの制約条件変数値を座
    標(i,k)のプロセッサが回路評価関数値が最適値とな
    るように且つ制約条件変数値が制約条件に収束するまで
    演算する相互結合プロセッサトネットワークを備えるこ
    とを特徴とする配置最適化装置。
  11. 【請求項11】自己及び他のプロセッサの出力値を入力
    値として取り込む神経回路網を構成するn2個のプロセッ
    サで成るネットワークと、請求項2に記載の重み行列T
    と閾値ベクトルbの値を決定する手段と、前記ネットワ
    ークの座標(i,k)のプロセッサにi番目の回路をk番
    目の場所に配置したときの問題を割り振って請求項2記
    載の式(1)(2)(3)の演算を行わせる手段と、各
    プロセッサの出力値が制約条件に収束したときプロセッ
    サの座標値から回路の配置を決定する手段とを備えるこ
    とを特徴とする配置最適化装置。
  12. 【請求項12】請求項11において、重み行列T及び閾値
    ベクトルbを決定するに当り、係数比A/Dの値を請求項
    3記載の式に従って決定する手段を備えることを特徴と
    する配置最適化装置。
  13. 【請求項13】請求項11において、重み行列T及び閾値
    ベクトルbを決定するにあたり、係数比A/Dを請求項3
    記載の式で決まる値より小さい値として設定する手段を
    備えることを特徴とする配置最適化装置。
  14. 【請求項14】請求項13において、演算が収束しなかっ
    た回路の配置位置を交換法あるいはシミュレーテッドア
    ニーリング法で決定する手段を備えることを特徴とする
    配置最適化装置。
  15. 【請求項15】請求項13において、交換法あるいはシミ
    ュレーテッドアニーリング法で配置位置を求めた回路が
    ある場合に重み行列Tの回路を配置する位置に対応する
    対角成分の値を0より大きく1より小さい任意値として
    請求項2記載の式(1)(2)(3)を再演算させる手
    段を備えることを特徴とする配置最適化装置。
  16. 【請求項16】請求項11乃至請求項15のいずれかにおい
    て、請求項2記載の式(1)のujl値の初期値として0
    以上1以下の任意の値を設定する初期値設定手段を備え
    ることを特徴とする配置最適化装置。
  17. 【請求項17】請求項16において、初期値設定手段は初
    期値として0.5を設定することを特徴とする配置最適化
    装置。
  18. 【請求項18】請求項10乃至請求項17において、n2個の
    プロセッサの代わりに1〜n2−1個のうちの任意の個数
    のプロセッサと、該プロセッサの演算結果を格納するメ
    モリと、前記プロセッサにて請求項1乃至請求項8のい
    ずれかに記載の演算を逐次処理させるに当り各演算結果
    を前記メモリに格納し該格納データを使用して次の演算
    を行わせ請求項1乃至請求項8のいずれかに記載のn2
    のプロセッサの演算と同等の演算を行わせる手段とを備
    えることを特徴とする配置最適化装置。
  19. 【請求項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 JPH0310378A (ja) 1991-01-17
JP2863550B2 true 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 ニューラルネットワークを用いた配線方式
US5452400A (en) * 1991-08-30 1995-09-19 Mitsubishi Denki Kabushiki Kaisha Method of optimizing a combination using a neural network
JP2887969B2 (ja) * 1991-08-30 1999-05-10 三菱電機株式会社 ニューラルネットワークによる部品配置最適化方法
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
US5495419A (en) * 1994-04-19 1996-02-27 Lsi Logic Corporation Integrated circuit physical design automation system utilizing optimization process decomposition and parallel processing
US5557533A (en) * 1994-04-19 1996-09-17 Lsi Logic Corporation Cell placement alteration apparatus for integrated circuit chip 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
US5914887A (en) * 1994-04-19 1999-06-22 Lsi Logic Corporation Congestion based cost factor computing apparatus 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
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
US6155725A (en) * 1994-04-19 2000-12-05 Lsi Logic Corporation Cell placement representation and transposition for integrated circuit physical design automation system
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
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
US5812740A (en) * 1996-06-28 1998-09-22 Lsi Logic Corporation Advanced modular cell placement system with neighborhood system driven optimization
US6085032A (en) * 1996-06-28 2000-07-04 Lsi Logic Corporation Advanced modular cell placement system with sinusoidal optimization
US5971588A (en) * 1996-06-28 1999-10-26 Lsi Logic Corporation Advanced modular cell placement system with optimization of cell neighborhood system
US5844811A (en) * 1996-06-28 1998-12-01 Lsi Logic Corporation Advanced modular cell placement system with universal affinity driven discrete placement optimization
US6030110A (en) * 1996-06-28 2000-02-29 Lsi Logic Corporation Advanced modular cell placement system with median control and increase in resolution
US5867398A (en) * 1996-06-28 1999-02-02 Lsi Logic Corporation Advanced modular cell placement system with density driven capacity penalty system
US5835381A (en) * 1996-06-28 1998-11-10 Lsi Logic Corporation Advanced modular cell placement system with minimizing maximal cut driven affinity system
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
US5892688A (en) * 1996-06-28 1999-04-06 Lsi Logic Corporation Advanced modular cell placement system with iterative one dimensional preplacement optimization
US5808899A (en) * 1996-06-28 1998-09-15 Lsi Logic Corporation Advanced modular cell placement system with cell placement crystallization
US5914888A (en) * 1996-06-28 1999-06-22 Lsi Logic Corporation Advanced modular cell placement system with coarse overflow remover
US5870312A (en) * 1996-06-28 1999-02-09 Lsi Logic Corporation Advanced modular cell placement system with dispersion-driven levelizing system
US6067409A (en) * 1996-06-28 2000-05-23 Lsi Logic Corporation Advanced modular cell placement system
US6026223A (en) * 1996-06-28 2000-02-15 Scepanovic; Ranko Advanced modular cell placement system with overlap remover with minimal noise
US5872718A (en) * 1996-06-28 1999-02-16 Lsi Logic Corporation Advanced modular cell placement 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 주식회사 포스코 내화조성물 및 이를 이용한 턴디쉬의 상부노즐
AU2003207767A1 (en) * 2002-02-01 2003-09-02 California Institute Of Technology Hardware-assisted fast router
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
US5200908A (en) 1993-04-06
JPH0310378A (ja) 1991-01-17
KR0157415B1 (ko) 1998-11-16
DE69031197D1 (de) 1997-09-11
KR910001934A (ko) 1991-01-31
EP0401687A3 (en) 1993-01-27
EP0401687A2 (en) 1990-12-12
EP0401687B1 (en) 1997-08-06

Similar Documents

Publication Publication Date Title
JP2863550B2 (ja) 配置最適化方法及び配置最適化装置と回路設計装置
EP3669304B1 (en) Systolic neural network engine with crossover connection optimization
EP0581828B1 (en) Improvements in neural networks
US5627943A (en) Neural network processor including systolic array of two-dimensional layers
Vai et al. Reverse modeling of microwave circuits with bidirectional neural network models
KR20200136514A (ko) 인공 신경망 정방향 연산 실행용 장치와 방법
CN110837891B (zh) 基于simd架构的自组织映射方法及系统
CA2135857A1 (en) Neural network utilizing logarithmic function and method of using same
Fukunaga et al. Placement of circuit modules using a graph space approach
JPH076146A (ja) 並列データ処理システム
Wan et al. Introducing cost-sensitive neural networks
JPH0561846A (ja) ニユーラルネツトワークによる部品配置最適化アルゴリズム
CN110163352B (zh) 电路规划结果产生方法与系统
JPH03184173A (ja) 配置最適化方法及びその装置と回路設計装置
Venkateswaran et al. A hexagonal array machine for multilayer wire routing
Hiraiwa et al. Implementation of ANN on RISC processor array
Li et al. Machine learning-based VLSI cells shape function estimation
Cavalieri et al. On the design of a multiprocessor architecture for neural network simulation
Halgamuge et al. Fuzzy interpretable dynamically developing neural networks with FPGA based implementation
JP2766858B2 (ja) ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置
Saxena et al. Interconnection wire-length estimation in VLSI standard cell placement via neural network
EP0435208A2 (en) Neuro-computer
Brückner et al. Dimensionally homogeneous neural networks for system identification
Zhang et al. Neural Networks for Radio Frequency/Microwave Modeling
JPH04319784A (ja) 組合わせ最適解を求める方法及び装置