JP3791239B2 - グラフ表現変換方法及びその装置、並びに自動配置方法及びその装置 - Google Patents
グラフ表現変換方法及びその装置、並びに自動配置方法及びその装置 Download PDFInfo
- Publication number
- JP3791239B2 JP3791239B2 JP14795999A JP14795999A JP3791239B2 JP 3791239 B2 JP3791239 B2 JP 3791239B2 JP 14795999 A JP14795999 A JP 14795999A JP 14795999 A JP14795999 A JP 14795999A JP 3791239 B2 JP3791239 B2 JP 3791239B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- data
- circuit data
- attribute
- graph
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、構造を持った情報である回路データをグラフ表現に変換し、グラフ間のマッチングを行なうことで、回路マッチングを行うことにより、新規に作成した回路データを熟練者のように配置することができるグラフ表現変換方法及びその装置、並びに自動配置方法及びその装置に関するものである。
【0002】
【従来の技術】
CADの普及にともなって、専門家による設計事例(回路データと配置データを含む)はデータベースに蓄積されつつある。各々の設計事例は設計の専門家のノウハウを含んだ貴重な情報である。こうした設計事例データベースを有効利用できれば、ノウハウを共有することが可能となり、設計の効率化を促進できる。
【0003】
このような観点から、最近では、内容情報と属性情報のペアで構成される回路データとその対となる配置データ(部品の配置情報)とからなる設計事例を管理するためのシステムが開発されている。
【0004】
ここで、内容情報とは、回路そのものを表現した構造をもった情報であり、一般のCADにおいては、部品リストとネットリストから構成される。ここで、部品リストとは、回路を構成する個々の部品を番号付けしたリストである。このため、回路を構成する部品の数をNpで表すと、部品リストのリスト数はNpに一致する。各々の部品に対しては、抵抗やコンデンサなどの部品種類の情報や、ピン数の情報等が記述されている(実際のCADでは、部品リストを簡素化するために、マスタリストが使われる。このマスタリストは、部品種類を番号付けしたリストであり、各々の部品種類に対しては、部品の形状、ピン数、ピンの位置などの詳細な情報が記述されている。ここでは部品リスト中にピン数の情報を含めているが、実際には、部品リスト中の部品種類の情報から、マスタリストにアクセスすることによって得られる情報である。)。また、ネットリストとは、部品のピン間の結線であるネットを番号付けしたリストである。このため、回路中のネット数をNnで表すと、ネットリストのリスト数はNnに一致する。各々のネットに対しては、そのネットでつながる部品の番号やピン番号などの情報が記述されている。
【0005】
図3(a)に、Np=6個の部品とNn=3本のネットから構成される回路101、および、その回路101を部品リスト102とネットリスト103のペアで表現した例を示す。ここで、回路(図3(a))における斜線の四角形は部品を示し、内部の数字は部品番号を示す。また、部品内の円形はピンを示し、ピン内の数字はピン番号を示す。さらに、ピン間を結ぶ直線はネット、ネット上の数字はネット番号を示しており、1つのネットで結ばれているピンは同電位である。このように、部品リスト(図3(b))には、回路101を構成するNp=6個の部品の各々に対して、部品種類とピン数が、ネットリスト(図3(c))には、Nn=3本のネットの各々に対して、そのネットを構成する部品の番号とピン番号が記述されている。
【0006】
また、属性情報とは、設計者、設計日、対象製品(属性値としてはテレビやラジカセなどをとる)、実装する基板のサイズや材質、部品点数などを属性とした属性・属性値で表現される情報である。
【0007】
こうした内容情報と属性情報とのペアで構成される回路データ(と配置データを含む設計事例)を管理する管理システムは、その属性情報に基づいてリレーショナルデータベース化したものであり、内容情報は、属性情報に付随するかたちで蓄積されている。このため、管理システムでは、一般に、属性情報を頼りに、必要な回路データを検索する。例えば、テレビのプリント基板回路を設計したい場合、属性“対象製品”に属性値“テレビ”を入力することで、管理システム中のテレビに関わる回路データを引き出すことが可能となり、必要な回路データやその対となる配置データを参照できる。
【0008】
このように、リレーショナルデータベースを基本とした管理システムでは、回路データの属性情報を利用し、属性に対する属性値を入力することで過去に設計した回路データやその対となる配置データを検索する。
【0009】
【発明が解決しようとする課題】
しかしながら、管理システムが検索の頼りにしている属性情報には、専門家のノウハウという貴重な情報が充分には反映されていない。専門家のノウハウが豊かに反映されているのは、むしろ、内容情報であろうが、現状の管理システムでは、この内容情報を頼りにした検索を行なうことができない。これは、リレーショナルデータベースが扱うことのできる属性・属性値という単純な表現方法で、構造を持った内容情報を表現すると、検索する際に必要となる内容情報どうしのマッチングに問題が生じるためである。例えば、回路1のある抵抗部品は、回路2に含まれる多数の抵抗部品の内、どの抵抗部品に対応するかという問題が生じるためである。このため、内容情報を検索する際には、まず、属性情報で回路データの絞り込みを行ない、次に、絞り込まれた回路データの内容情報をユーザ自身が1つずつ眺め、必要な内容情報を見つけ出す必要がある。回路データが蓄積されつつある現状から今後を推察すると、たとえ、属性情報による絞り込みを行なっても、内容情報の検索には、莫大な労力と時間が払われることになるであろう。
【0010】
本発明は、構造を持った情報である回路データをグラフに変換し、グラフ間のマッチングを行なうことで、回路マッチングを行い、熟練者が作成した回路データとその配置データを記憶したデータベースからマッチング度の高い回路データを検索し、検索した回路データの対となる配置データに沿って、新規に作成した回路データを熟練者と同様な配置することができるグラフ表現変換方法及びその装置並びに自動配置方法及びその装置を提供することを目的とする。
【0011】
【課題を解決するための手段】
この目的を達成するために本発明は、部品リストとネットリストからなる回路データとその配置データをデータベースに記憶し、新規回路データと前記データベース中の回路データとをノードとエッジとからなるグラフにそれぞれ変換し、変換されたグラフ間のマッチングを行い、マッチング度の高い回路データを検索し、検索した回路データの対となる配置データに沿って、新規回路データを配置するようにしたものである。
【0012】
この発明によれば、構造を持った情報である回路データをグラフに変換し、グラフ間のマッチングを行なうことで、回路マッチングを行い、熟練者が作成した回路データとその配置データを記憶したデータベースからマッチング度の高い回路データを検索し、検索した回路データの対となる配置データに沿って、新規回路データを配置することができ、熟練者と同様な配置ができるものである。
【0050】
【発明の実施の形態】
請求項1に記載の発明は、部品リストとネットリストからなる回路データとその対となる配置データを記憶したデータベースと、新規回路データと前記データベース中の回路データとを各部品または各ネットに対応した属性と属性値とからなるノードおよび各ノードペアに対応した属性と属性値とからなるエッジの組からなるグラフに変換するグラフ変換手段と、前記変換されたグラフ間のマッチングをそれぞれ行い、マッチング度を求めるマッチング手段と、前記新規回路データから変換されたグラフと前記マッチング度の高い回路データを前記データベースから検索する検索手段と、前記検索した回路データの対となる配置データに沿って、前記新規回路データを配置する配置手段とを具備するもので、回路マッチングを高速に実行し、熟練者と同様な配置ができるという作用を有する。
【0051】
請求項2に記載の発明は、請求項1記載の自動配置装置において、前記グラフ変換手段は、新規回路データと前記データベース中の回路データとをノードとエッジとからなるグラフにそれぞれ変換する際に、前記ノードおよびエッジにおける属性として少なくとも部品種類毎の部品数を含み、その値を属性値とするグラフ表現にそれぞれ変換するもので、回路マッチングを高速に実行し、熟練者と同様な配置ができるという作用を有する。
【0052】
請求項3に記載の発明は、請求項1記載の自動配置装置において、前記グラフ変換手段は、新規回路データとデータベース中の回路データとをノードとエッジとからなるグラフにそれぞれ変換する際に、ノードにおける属性として少なくとも部品種類を含み、その部品種類の名称を属性値とし、前記エッジにおける属性として少なくとも配線本数を含み、その値を属性値とするグラフ表現にそれぞれ変換するもので、回路マッチングを高速に実行し、熟練者と同様な配置ができるという作用を有する。
【0053】
請求項4に記載の発明は、請求項1記載の自動配置装置において、
新規回路データとデータベース中の回路データとをノードとエッジとからなるグラフにそれぞれ変換する際に、前記新規回路データのネット数と前記データベース中の回路データのネット数との積と、前記新規回路データの部品数と前記データベース中の回路データの部品数との積とを比較して、前者の積が小さい場合、各ネットに対応した属性と属性値からなるノードとノードペアに対応した属性と属性値とからなるエッジとからグラフにそれぞれ変換し、後者の積が小さい場合、各部品に対応した属性と属性値とからなるノードと各ノードペアに対応した属性と属性値とからなるエッジからグラフにそれぞれ変換するもので、前記マッチング手段はノード数が少なくなった方のグラフ間でマッチングを行うとしたもので、回路マッチングを高速に実行し、熟練者と同様な配置ができるという作用を有する。
【0054】
請求項5に記載の発明は、請求項1乃至4のいずれかに記載の自動配置装置において、変換されたグラフ間のマッチングを行うマッチング手段は、ニューラルネットまたはシミュレーテッドアニーリング法を用いるとしたもので、回路マッチングを高速に実行し、熟練者と同様な配置ができるという作用を有する。
【0055】
請求項6に記載の発明は、請求項5記載の自動配置装置において、ニューラルネットを用いたマッチング手段は、ニューラルネットのパラメータや初期状態を設定し、設定されたパラメータに基づいて現在のマッチング状態を示すニューラルネットの状態を更新し、ニューラルネットの状態が収束しているかどうかを判定し、収束していない場合はニューラルネットの温度を更新し、ニューラルネットの状態を更新と収束判定を繰り返すものであり、回路マッチングを高速に実行し、熟練者と同様な配置ができるという作用を有する。
【0056】
請求項7に記載の発明は、請求項1乃至6のいずれかに記載の自動配置装置において、検索した回路データの対となる配置データに沿って、新規回路データを配置する配置手段は、シミュレーテッドアニーリング法を用いるものであり、熟練者と同様な配置ができるという作用を有する。
【0057】
請求項8に記載の発明は、請求項1乃至7のいずれかに記載の自動配置装置において、検索した回路データの対となる配置データに沿って、新規回路データを配置する配置手段は、前記回路データの部品と前記新規回路データの部品とを対応づけ、少なくともその対応関係と前記配置データを用いて新規回路データに対しての配置を評価するコスト関数を生成し、前記コスト関数を最小化するものであり、熟練者と同様な配置ができるという作用を有する。
【0058】
請求項9に記載の発明は、請求項8に記載の自動配置装置において、コスト関数の最小化を行なう際に、少なくとも初期配置を生成し、部品または部品群を移動または回転させることにより配置を更新するものであり、熟練者と同様な配置ができるという作用を有する。
【0085】
以下、本発明の実施の形態について、図1から図12を用いて説明する。
【0086】
(実施の形態1)
図1は、本発明の実施の形態1の自動配置システムのブロック図を示す。
図1において、10は回路データを自動的に配置データに変換する自動配置装置、11は回路データを設計するCAD、12は自動配置装置で配置した配置データを基に部品の実装を行う実装機、13はCPU、14はディスプレイ/キーボード、15はメモリ、16はプログラム等を読み込むためのFD(フロッピィディスク)ユニット、17はCAD11で作成された新規回路データ、18は回路データとその対となる配置データを記憶した回路データベース、19は新規回路データを自動配置したデータを記録した配置データ、20はバス、21〜23はI/Fユニット、24はCAD11、自動配置装置10および実装機12のデータを転送するネットワークで構成されている。
【0087】
前記のように構成された自動配置装置の動作について、図2のフローチャートを用いて説明する。
【0088】
ここで、本自動配置装置の動作説明に先立ち、回路データの表現方法として、ネット表現と部品表現について説明する。
【0089】
ネット表現とは、回路をグラフで表現する方法であり、ネットをノードに対応させ、ネットに付随する情報を対応するノードに反映させ、さらに、ノードペア、すなわち、ネットペアをエッジに対応させ、ネットペアが共有する情報を対応するエッジに反映させた、グラフによる回路の表現方法である。前記、ネットに付随する情報としては、ネットでつながる部品の部品種類の情報、ピンの情報、ネットの太さの情報など様々な情報が存在するが、以下では、簡単のため、部品種類(コンデンサやICなど)の情報のみを扱うこととする。ピンの情報、ネットの太さの情報など、他の情報も扱うことができるように拡張することは容易である。同様に、前記のネットペアが共有する情報としても、様々な情報が存在するが、以下では、簡単のため、部品種類の情報のみを扱うこととする。この場合においても同様に、その他の情報も扱うことができるように拡張することは容易である。
【0090】
次に、部品表現とは、回路をグラフで表現する方法であり、部品をノードに対応させ、部品に付随する情報を対応するノードに反映させ、さらに、ノードペア、すなわち、部品ペアをエッジに対応させ、部品ペアが共有する情報を対応するエッジに反映させた、グラフによる回路の表現方法である。前記、部品に付随する情報としては、その部品の部品種類の情報、ピンの情報など様々な情報が存在するが、以下では、簡単のため、部品種類(コンデンサやICなど)の情報のみを扱うこととする。ピンの情報など、他の情報も扱うことができるように拡張することは容易である。同様に、前記の部品ペアが共有する情報としても、結線の有無、種類、太さ、本数などの様々な情報が存在するが、以下では、簡単のため、結線の本数の情報のみを扱うこととする。この場合においても同様に、その他の情報も扱うことができるように拡張することは容易である。
【0091】
まず、新規回路データ17から新規の回路データ(以降、回路1と呼ぶ)を読み込む(S201)。
次に、回路データベース18中の回路データ(以降、回路2と呼ぶ)を読み込む(S202)。
【0092】
次に、表現選択処理(S203)は、回路データ1のネット数と回路2のネット数との積と、回路1の部品数と回路2の部品数との積とを比較し、前者の積が小さい場合にはネット表現を選択し、後者の積が小さい場合には部品表現を選択する(S203)。
【0093】
ネット表現を選択した場合、ネット表現用ノード生成処理(S204)とネット表現用エッジ生成処理(S205)で、2つの回路をネット表現に従ったグラフにそれぞれ変換する。部品表現を選択した場合、部品表現用ノード生成処理(S206)と部品表現用エッジ生成処理(S207)で、2つの回路を部品表現に従ったグラフにそれぞれ変換する。
【0094】
まず、ネット表現を選択した場合において、図3(a)に示す回路(部品リスト図3(b)とネットリスト図3(c))を受けた場合を例題とし、ネット表現用ノード生成処理(S204)とネット表現用エッジ生成処理(S205)を説明する。
【0095】
ネット表現用ノード生成処理(S204)は、回路(図3(a))を受けることにより、この回路のネット数はNn=3、部品種類数は5(フィルタ、レジスタ、トランジスタ、コンデンサ、IC)であることを認識する。これらの情報を利用し、ネット表現用ノード生成処理は、ネットi(i=1,...,Nn)に対応させてノードni(i=1,...,Nn)を生成する。したがって、Nn=3個のノードを生成することになる。各ノードniには、必要な数以上の属性・属性値ペアを用意しておく。なお、図3(a)の回路だけをグラフに変換する場合、部品種類数は5であることから、5つ以上の属性・属性値ペアを用意しておけばよく、以下では、5つの属性・属性値ペアを用意したものとして説明をする(実際には、回路1と回路2のノードの表現を一致させるため、2つの回路で使われている部品種類数以上の属性・属性値ペアを用意しておく必要がある。)。
【0096】
次に、各ノードniに対し、ネットiに属している部品を部品種類毎に分類する。部品種類毎に得られた部品数の実体(実現値、整数)が属性値となる。すなわち、各ノードにおける属性・属性値ペアは、部品種類での”部品数”を属性、その実体を属性値とした表現となる。図4は、図3(a)に示した回路をネット表現に従ったグラフで表したものであり、ノードniはネットiに対応している。例えば、ネット1は3つの部品1(フィルタ)、2(レジスタ)、3(トランジスタ)から構成されるため、ノードn1は{フィルタ数=1、レジスタ数=1、トランジスタ数=1、コンデンサ数=0、IC数=0}と表現される(S204)。
【0097】
ネット表現用エッジ生成処理(S205)は、各ノードペア{ni、nj}(i,j=1,...,Nn,i≠j)に対して、エッジeijを付加する。各エッジeijは、それを構成する2つのノードniおよびnj、すなわち、2つのネットiおよびjの共有部品の情報を反映する。例えば、図3(a)の回路において、ネット1と2は、部品3のトランジスタを共有している。よって、図4に示されるよう、ネット1と2のペアに対応するエッジe12は、{フィルタ数=0、レジスタ数=0、トランジスタ数=1、コンデンサ数=0、IC数=0}と表現される。すなわち、エッジeijにおける属性・属性値ペアは、2つのネットiおよびjが共有している部品種類毎での”部品数”を属性、その実体を属性値とした表現となる(S205)。
【0098】
このように、ネット表現用ノード生成処理(S204)とネット表現用エッジ生成処理(S205)をとおして、回路1(新規回路データ17)と回路2(回路データベース108中の回路データ)をネット表現に従ったグラフに変換する。
【0099】
以上は、回路データの表現方法としてネット表現を選択した場合を説明したが、次に、部品表現を選択した場合において、同じ回路(図3(a))を例題とし、部品表現用ノード生成処理(S206)と部品表現用エッジ生成処理(S207)を説明する。
【0100】
まず、部品表現用ノード生成処理(S206)は、(図3(a))の回路を受けることにより、この回路の部品数はNp=6であることを認識する。この情報を利用し、部品表現用ノード生成処理は、部品i(i=1,...,Np)に対応させてノードni(i=1,...,Np)を生成する。したがって、Np=6個のノードを生成することになる。各ノードniは、部品iの部品種類を属性とし、コンデンサやトランジスタなどのシンボリックな値を属性値とした属性・属性値ペアで表現される。図5は、図3(a)の回路を部品表現に従ったグラフで表したものであり、ノードniは部品iに対応していることがわかる(S206)。
【0101】
部品表現用エッジ生成処理(S207)は、各ノードペア{ni、nj}(i,j=1,...,Np,i≠j)に対して、エッジeijを付加する。各エッジeijは、それを構成する2つのノードniおよびnj、すなわち、2つの部品iおよびj間の結線本数の情報を反映する。例えば、図3(a)の回路において、部品1と2はネット1でつながっており、結線が1本存在する。したがって、図5に示されるよう、部品1と2のペアに対応するエッジe12は結線本数1と表現される。なお、図3(a)の回路においては、結線本数は1本以下なので、エッジに付加する情報として結線の有無の情報を扱う場合と等価の表現となる。この場合は、結線本数1のとき、結線有りと解釈し、結線本数0のとき、結線なしと解釈すればよい(S207)。
【0102】
このように、部品表現用ノード生成処理と部品表現用エッジ生成処理をとおして、回路1(新規回路データ17)と回路2(回路データベース108中の回路データ)を部品表現に従ったグラフに変換する。
【0103】
以上のように、回路(回路データ)は、ネット表現や部品表現を用いることにより、グラフで表現できる。したがって、以下で説明する回路マッチングは、グラフマッチングに帰着する。グラフマッチングにおいては、グラフの規模(ノード数)が少ない方が容易となる。したがって、ノード数が少なくなる方の表現方法(ネット表現または部品表現)を用いた方が良い。図3(a)の回路をネット表現で表すとノード数は3個となり、部品表現で表すとノード数は6個となる。よって、この場合は、ネット表現を用いた方がグラフマッチングを実行する上でよい。
【0104】
次に、グラフマッチング処理が、ニューラルネットである場合について説明する。以下では、マッチングを行なおうとする回路1(新規の回路データ。この回路を任意のブロックまたは機能ブロック毎に分割した部分回路データでもよい。)のグラフと回路2(データベース中の回路データであり、この回路を任意のブロックまたは機能ブロック毎に分割した部分回路データでもよい。)のグラフとをそれぞれ、G1(ns1,es1)とG2(ns2,es2)で表す。ここで、グラフGi(nsi,esi)(i=1,2)におけるノード数を|nsi|で表すことにすると、nsiとesiは、それぞれ、ノードの集合{nij|j=1,...,|nsi|}とエッジの集合{eijk|j=1,...,|nsi|,k=1,...,|nsi|,j≠k}を示す。
【0105】
まず、初期化処理(S208)は、このマッチング問題を解くために、|ns1| ×|ns2|個の素子から構成されるニューラルネットを生成する。素子ij(i=1,...,|ns1|,j=1,...,|ns2|)の出力xijは0から1までの値をとるものとし、その大きさに、グラフG1(ns1,es1)のノードn1iがG2(ns2,es2)のノードn2jに対応するという仮説の強さを反映させる。以下では、素子の出力xijをまとめてxと表し、ニューラルネットの状態と呼ぶ。なお、ここでは、前記の通り、素子の出力xijは0から1までの値をとる場合を説明するが、この制限は本質的なものではなく、他の実数値を取る場合にも、容易に拡張できる。
【0106】
初期化処理(S208)は、|ns1|×|ns2|個の素子から構成されるニューラルネットを生成した後に、各素子の出力xijに0から1までの値をとる乱数を与えることで、ニューラルネットの初期状態を設定する。さらに、後述の状態更新処理(S209)、収束判定処理(S210)、および、温度更新処理(S211)における様々なパラメータの値を設定する役割も持っている。
【0107】
さらに、この初期化処理(S208)は、ニューラルネットの素子間の重みや、素子の閾値を設定する。ここで、素子klから素子ijへの重みをw1ijklで表し、また、素子ijの閾値をw2ijで表すことにすると、例えば、
【0108】
【数1】
【0109】
【数2】
【0110】
【数3】
【0111】
と設定する。ここで、A、B、C、D、Eは正の定数である。また、dn(n1i,n2j)は、グラフG1(ns1,es1)のノードn1iとG2(ns2,es2)のノードn2jとの違いを反映したノード間距離を表しており、2つの回路のグラフがネット表現に従っている場合には、例えば、
【0112】
【数4】
【0113】
と設定する。ここで、vij(k)は、グラフGi(ni,ei)(i=1,2)のノードnij(j=1,...,|nsi|)における属性k(k=1,...,na)の属性値である。
【0114】
また、部品表現に従っている場合には、例えば、
【0115】
【数5】
【0116】
と設定する。また、de(e1ik、e2jl)はG1(ns1,es1)のエッジe1ikとG2(ns2,es2)のe2jlとの違いを反映したエッジ間距離を表しており、2つの回路のグラフがネット表現に従っている場合には、例えば、
【0117】
【数6】
【0118】
と設定する。ここで、vijk(l)はグラフGi(ni,ei)(i=1,2)のエッジeijk(j=1,...,|nsi|,k=1,...,|nsi|,j≠k)における属性l(l=1,...,na)の属性値である。また、部品表現に従っている場合には、例えば、
【0119】
【数7】
【0120】
と設定する(S208)。
【0121】
次に、状態更新処理(S209)は、初期化処理(S208)で設定されたパラメータ等に基づいて、ニューラルネットの状態xを更新する。例えば、素子をランダムに選択し、その出力xijを
【0122】
【数8】
【0123】
【数9】
【0124】
【数10】
【0125】
と更新することによって、状態xを更新する。ここで、Tは温度であり、正の実数値をとる。温度Tの初期値は初期化処理で設定され、また、後述の温度更新処理(S211)によって、更新される。この状態更新(S209)では、このような更新式に従った出力xijの更新を、Tを一定に保った下で、複数回繰り返すこととする。
【0126】
次に、収束判定処理(S210)は、状態更新処理(S209)で状態xを更新し続けるかどうかを判定する。例えば、更新前の状態x'と更新後の状態xとの差(距離)が、初期化処理(S208)で設定される収束判定パラメータの値以下であるとき(Y)、収束したと判定してマッチング結果を出力し、そうでない場合(N)、後述の温度更新処理(S211)で温度Tを更新した後に、状態更新処理(S209)で状態更新を続ける。
【0127】
次に、温度更新処理(S211)は温度Tを、例えば、
【0128】
【数11】
【0129】
のように更新する。ここで、βは、1より小さな正の実数とする。また、温度Tの初期値は0より大きな正の実数とする。なお、Tの初期値とβは初期化処理(S208)で設定されるものとする。
【0130】
状態更新処理(S209)、収束判定処理(S210)、および、温度更新処理(S211)とから構成されるループを繰り返すことで、ニューラルネットの状態xは収束する。ノード数|ns1|=3個のグラフG1(ns1,es1)とノード数|ns2|=6個のグラフG2(ns2,es2)のマッチング問題を解くための、|ns1|×|ns2|個の素子から構成させるニューラルネットが収束した状態xの一例を図6に示す。図6における円形は素子を表しており、1を出力している素子を黒丸で、0を出力している素子を白丸で示している。素子の出力xijが1のとき、グラフG1(ns1,es1)のノードn1iがG2(ns2,es2)のノードn2jに対応すると判断し、0のとき、対応しないと判断すれば良い。この例では、G1(ns1,es1)における3つのノードn11、n12、n13は、それぞれG2(ns2,es2)における3つのノードn22、n26、n24に対応すると解釈できる。
【0131】
部品数Np=11、ネット数Nn=5の回路1と、部品数Np=69、ネット数Nn=34の回路2との回路マッチング問題を例題に、ネット表現を用いた数値実験と、部品表現を用いた数値実験を行なった。ネット表現を用いた場合の実験結果と、部品表現を用いた場合の実験結果を、それぞれ、図7と図8に示す。縦軸は、(数9)(マッチングを評価する評価関数であり、この値が0に近いほど良いマッチングであることを示す。)の値を示しており、横軸は、繰り返し数を示している。この例題の場合、ネット表現を用いることにより、繰り返し数、すなわち、計算時間が短くなり、同じ回路マッチングを高速に実行することができた。
【0132】
これは、以下の理由による。ネット表現に従えば、回路1のグラフG1(ns1,es1)のノード数は|ns1|=5となり、回路2のグラフG2(ns2,es2)のノード数は|ns2|=34となることから、このマッチングを実行するためには、5×34個の素子からなるニューラルネットが必要となる。一方、部品表現に従うと、回路1のグラフG1(ns1,es1)のノード数は|ns1|=11となり、回路2のグラフG2(ns2,es2)のノード数は|ns2|=69となることから、このマッチングを実行するためには、11×69個の素子からなるニューラルネットが必要となる。したがって、本例題の場合、ネット表現を用いることにより、同じ回路マッチングを小さな規模のニューラルネットで実行することができ、この効果により、同じ回路マッチングを高速に行うことができたわけである。一般的には、ニューラルネットの規模が小さくなる方の表現方法(ネット表現または部品表現)を採用すればよい。
【0133】
なお、ネット表現を用いての回路マッチングで得られるものは、マッチング対象の2つの回路におけるネットどうしの対応関係であるため、部品どうしの対応関係を得たい場合には、これを得るための若干の計算時間が必要となる。この場合には、対応が取れている2つのネットにおける部品どうしの対応関係を求めればよく、一般に、ネットを構成する部品数は少ないため、総当たり的な手法を用いても、若干の計算量で済むことになる。
【0134】
なお、S208〜S211までのグラフマッチング処理に、ニューラルネットを用いた場合について説明したが、これに限定されるものではなく、平均場アニーリング、シミュレーテッドアニーリング法または遺伝的アルゴリズム等のいずれかを用いても良い。
【0135】
次に、結果処理(S212)で、グラフマッチング処理(S208からS211まで)で得られるマッチング結果(回路1の部品と回路2の部品との対応関係や、(数9)のF(x)の値など)を保存する。さらに、回路データベース18中に読み込むべき回路データが残っている場合には、S202に戻る。したがって、最終的には、結果処理(S212)で、回路データベース18中の読み込むべき回路データの各々と新規回路データ17とのマッチング結果が保存されることになる。
【0136】
次に、配置処理は、結果処理(S212)で保存されたマッチング結果を受け、回路データベース18中の回路データの内、新規回路データ17とのマッチング度の高い回路データの対となる配置データに沿って新規の回路データを配置する。ここで、マッチング度としては、例えば、マッチング結果の一部である(数9)の評価関数(マッチングを評価する評価関数であり、この値が小さいほど良いマッチングであることを示す。)の値の符号を反転させた値などを用いる。言い換えれば、本自動配置装置は、新規回路データ17に類似した回路データを回路データベース18から検索し、検索した回路データの対となる配置データ(見習い配置データ)を見習って、新規回路データ17を配置する。新規回路データ17の内、見習い配置データとのマッチングが取れている部分(部分回路)は見習い配置データの配置に見習って配置し、そうでない部分は仮想配線長を最短化するなどによって配置する。なお、見習って配置する場合は、見習い配置データにおける部品の配置位置のトポロジーを保存するように新規配置データを設計する。
【0137】
以上の配置処理を、シミュレーテッドアニーリング法を用いた場合について説明する。
【0138】
まず、対応づけ処理(S213)では、結果処理(S212)で保存されたマッチング結果を受け、新規回路データ17とのマッチング度が高い順で回路データを回路データベース18から引き出し、新規回路データ17の部品(Nc個)と引出してきた回路データの部品とを対応づける。この際、新規回路データ17のある一つの部品が複数の回路データの部品に対応づけられることを避けるため、新規回路データ17のある一つの部品がある回路データのある部品に対応づけられた時点で、以降の対応づけには、その新規回路データ17の部品を考慮しないこととする。つまり、マッチング度の高い回路データの部品を優先的に対応づけることとする。
【0139】
ここで、説明を簡略化するため、以下では、各回路データの全ての部品は新規回路データ17の部品に対応づけられているものとする(このようにしても、一般性は失われない。なぜならば、回路データの部品の内、新規回路データ17の部品に対応づけされなかった部品を無視すればよいからである)。また、新規回路データ17の部品に対応づけされた部品を2つ以上持つ回路データの数をNsで表し、回路データi(=1,...,Ns)の部品数をNiで表す。さらに、回路データiの部品j(=1,...,Ni)に対応する、新規回路データ17の部品をpi(j)で表す。
【0140】
つぎに、コスト関数生成処理(S214)では、配置のコスト関数を自動生成する。ここで、新規回路データ17の部品i(=1,...,Nc)の配置のX座標値、Y座標値、配置角度をそれぞれxi、yi、θiで表し、Nc個の部品のそれらをまとめて配置Sと呼ぶことにすると、たとえば、配置SのコストF(S)関数は
【0141】
【数12】
【0142】
と定義できる。ここで、A、B、Cはともに正の定数である。l(i,j,S)は、新規回路データ17の部品iとjの両者が同一の回路データ中のある2つの部品に対応づけられておらず、かつ、それらのピン間に結線がある場合、その結線の配置Sにおける仮想配線長を値にとり、それ以外の場合、0を値にとる関数である。したがって、(数12)の第1項は、同一の回路データ中の部品に対応づけられた新規回路データ17中の部品間の仮想配線長を除いた、総仮想配線長を評価していることになる。また、o(i,j,S)は、配置Sにおいて、新規回路データ17の部品iとjが重なり合っている場合に1をとり、そうでない場合に0をとる関数である。
【0143】
したがって、(数12)の第2項は、部品間の重なりの総数を評価していることになる。ここで、回路データiの部品jに対応する新規回路データ17の部品pi(j)と、部品kに対応する新規回路データ17の部品pi(k)との間の、配置Sにおける部品間距離(2つの部品の中心間の距離、2つの部品のピン間の距離など)をd(pi(j),pi(k),S)で表し、また、回路データiの対となる配置データiにおける部品jとkとの間の部品間距離をbijkで表すことにする。すると、fijk(d(pi(j),pi(k),S))は、配置Sにおける部品間距離d(pi(j),pi(k),S)と配置データiにおける部品間距離bijkとの差が大きくなるにしたがって、大きな値を取る関数であり、例えば、ガウス分布を利用して、
【0144】
【数13】
【0145】
のように実現できる。ここで、cijkは正の定数である。したがって、(数12)の第3項は、新規回路データ17の配置と見習っている回路データの対となる配置データとの違いを評価していることになる。
【0146】
つぎに、初期設定処理(S215)では、初期配置Sの自動生成や初期温度Tなどを設定する。例えば、見習う回路データの対となる配置データを利用して、初期配置を決定すればよい。また、部品の配置位置をランダムに決定してもよい。
【0147】
つぎに、配置更新処理(S216)を説明する。まず、現在の配置Sから、部品または部品群を適当に選択し、移動や回転などをさせることで、配置位置や配置角度が変更された配置候補S’を生成する。次に、配置候補S’を、シミュレーテッドアニーリング法に基づいて、以下の確率で受理する。
【0148】
【数14】
【0149】
受理された場合、配置Sを配置候補S’に更新する。受理されない場合には、配置Sを変更しない。
【0150】
つぎに、終了判定処理(S217)では、配置Sの更新を終了するか否かを判定する。例えば、配置Sのコスト関数の値の変化が非常に小さくなった時点で終了させるなどすればよい。また、配置の更新回数の上限をあらかじめ設定しておき、その上限を超えたら終了すると判定してもよい。
【0151】
つぎに、配置温度更新処理(S218)は、配置収束判定(S217)で配置Sの更新を終了しないと判断された場合、温度Tを更新する。例えば、適当な定数β(0<β<1)をあらかじめ設定しておき、温度更新処理(S211)と同様に、(数11)で更新すればよい。
【0152】
以上、配置処理を、シミュレーテッドアニーリング法を用いた場合について説明したが、配置処理の実現には、シミュレーテッドアニーリングに限らず、遺伝的アルゴリズムなどの他の最適化手法や、ニューラルネット(例えば、トポロジーを保存したマッピングを実現できるコホーネンのフィーチャーマップ(Kohonen,T.(1989).Self-Organization and associative memory. Berlin: Springer-Verlag))等を用いてもよい。
【0153】
最後に、配置データ処理(S214)は、配置処理(S211)で得られた新規配置データを配置データ19に保存し、終了する。
【0154】
(実施の形態2)
図9は、本発明の実施の形態2の自動配置システムのブロック図を示す。
図9において、901は回路データを自動的に配置データに変換する自動配置装置、901は回路データを設計するCAD、902は自動配置装置で配置した配置データを基に部品の実装を行う実装機、903はCPU、904はディスプレイ/キーボード、905はメモリ、906はプログラム等を読み込むためのFD(フロッピィディスク)ユニット、907はCADで作成された新規回路データ、908は回路データとその対となる配置データを記憶した回路データベース、909は新規回路データを自動配置したデータを記録した配置データ、910はバス、911〜913はI/Fユニット、914はCAD901、自動配置装置900および実装機902のデータを転送するネットワーク、915は獲得した知識を保存する知識ベースで構成されている。
【0155】
前記のように構成された自動配置装置の動作について、図10のフローチャートを用いて説明する。
【0156】
まず、融合回路生成処理では、回路データベース908中の回路データをベクトルに変換するために必要な融合回路を生成する。ここで、融合回路とは、回路データベース908中の回路データを、共通の部分回路を共有する形で融合した仮想的な回路である。つまり、回路データベース908中の回路データの各々は、融合回路の一部(部分回路)として表現される。
まず、融合回路を初期化する(S1001)。これにより、部品数0の融合回路となる。
【0157】
次に、回路データベース908中の回路データ(以降、回路と呼ぶ)を読み込む(S1002)。
【0158】
つぎに、回路マッチング処理(S1003)であるが、これは、前記の実施の形態1で説明した図2におけるS203からS211までの処理と同様である。つまり、融合回路と、S1002で読み込んだ回路との間のマッチングを行なう。これにより、融合回路の部品と回路の部品との間の対応関係、すなわち、共通の部分回路が抽出できることになる。
【0159】
つぎに、融合回路更新処理(S1004)では、回路マッチング処理(S1003)で得られた、融合回路の部品と回路の部品との間の対応関係(共通の部分回路)を保存すると同時に、融合回路と回路とに共通する部分回路を共有する形で融合し、それを新たな融合回路とする。回路データベース908に、融合回路に融合していない回路が存在すれば、S1002に戻る。
【0160】
以上の融合回路生成処理で融合回路が生成される過程を図11の融合回路の生成過程の欄に示す。これは、コード化対象の回路の欄に示す3つの回路(四角形は部品を、部品内のアルファベットは抵抗やコンデンサなどの部品種類を、部品間の直線は結線を示している。)を回路1、2、3の順で融合した場合の融合回路の生成過程である。4部品A、B、C、Eからなる部分回路は3つの回路に共通する部分回路であり、最終的な融合回路(回路1+2+3)を見ると、その部分回路が共有される形で融合されていることがわかる。さらに、3つの回路の各々は、最終的な融合回路(回路1+2+3)の部分回路になっていることがわかる。なお、最終的に生成された融合回路および、その部品と回路の部品との対応関係は、知識ベース915に保存される。
【0161】
つぎに、ベクトル生成処理(S1005)では、知識ベース915に保存されている融合回路および、その部品と回路の部品との間の対応関係とを読み込み、各々の回路に対するベクトルを生成する。このベクトル生成処理(S1005)を、図11を用いて説明すると、次のようになる。前記対応関係の情報から、図11の融合回路とのマッチングの欄に示すように、各々の回路の部品と融合回路の部品との対応関係がわかる。なお、図11の融合回路とのマッチングの欄には、融合回路の部品との対応がとれる回路の部品を太線で強調して表示している。
【0162】
この対応関係に基づいて、各々の回路をベクトルにコード化すればよい。融合回路の部品との対応が取れている回路の部品に例えば+1の値を、そうでない部品に例えば−1の値を割り当て、それらを要素として1列に並べることで、ベクトルに変換できる。図11のベクトルの欄には、3つの回路の各々をコード化した場合のベクトルが示されている。共通の部分回路が共通の部分ベクトルにコード化されており、回路間の類似性が保存されていることがわかる。
【0163】
つぎに、概念形成処理(S1006)では、ベクトル生成処理S1005で生成されたベクトルを受け、ベクトルに内在する概念ベクトルを自動形成し、回路の概念を自動獲得する。図11の3つのベクトルが入力されたとすると、前記共通の部分ベクトルが概念ベクトルとして自動形成されることになり、その概念ベクトルを前記融合回路と前記対応間関係(回路の部品と融合回路の部品との対応関係)とを用いて、回路に逆変換すれば、回路の概念を自動獲得できる。
【0164】
図11の例では、3つの回路に共通する、4部品A、B、C、Eからなる部分回路が回路の概念となる。この概念形成処理(S1006)における問題は、ベクトル生成処理(S1005)で生成されたベクトルから、どのようにして前記概念ベクトルを自動形成するかにあるが、これは、ニューラルネットなど(例えば、Hirahara,M., Kindo,T., Oka,N. (1997). Associative memory with a sparse encoding mechanisim for storing correlated patterns. Neural Networks, 10, 9, 1627−1636.)を利用すれば、容易に実現できる。なお、自動形成されたNs個の回路の概念i(=1,...,Ns)は、知識ベース915に登録される。
【0165】
つぎに、配置規則抽出処理(S1007)では、知識ベース915に保存される回路の概念i(=1,...,Ns)と、回路データベース908から、それらの元となった回路(回路データ)の対となる配置データを読み込み、回路の概念の各々に対して、その配置における規則性を自動抽出する。例えば、規則性として配置データの統計的情報を抽出すればよい。ここで、回路の概念iを構成する部品数をNiで表すことにすると、統計的情報としては、例えば、回路の概念iを構成する部品のペア[j,k](j,k=1,...,Ni|j≠k)の各々に対して、それと対応が取れる回路データ中の部品ペアの配置データにおける部品間距離の平均dijkや標準偏差σijkなどを抽出すればよい。
【0166】
この他にも、ピン間距離の平均や分散、部品間の配置角度の平均差異など、抽出できる情報は様々あるが、以下では、簡単のため、配置の規則性として、部品間距離の平均dijkと標準偏差σijkを抽出した場合を説明する。なお、回路の概念iに関して抽出された配置の規則性(この場合は部品間距離の平均を要素とした平均行列[dijk](j,k=1,...,Ni|j≠k)と分散を要素とした分散行列[σijk](j,k=1,...,Ni|j≠k))は、その回路の概念iと対になる形で知識ベース915に登録される。
【0167】
以下では、知識ベース915に登録された回路の概念とその対となる配置の規則性とを利用して、自動配置を行なう処理を説明する。
まず、新規回路データ907から新規の回路データを読み込む(S1008)。次に、知識ベース915から回路の概念を1つ読み込む(S1009)。
つぎに、回路マッチング処理(S1010)であるが、これは、前記のS1003や、前記の実施の形態1で説明した図2におけるS203からS211までの処理と同様である。つまり、新規の回路データと回路の概念との間のマッチングを行なう。これにより、新規の回路データと回路の概念の部品との間の対応関係が抽出できることになる。
【0168】
次に、結果処理(S1011)で、そのマッチング結果(新規の回路データと回路の概念の部品との間の対応関係や、(数9)のF(x)の値など)を保存する。さらに、知識ベース915中に読んでいない回路の概念が残っている場合には、S1009に戻る。したがって、最終的には、結果処理(S1011)で、知識ベース915中の回路の概念の各々と新規の回路データとのマッチング結果が保存されることになる。
【0169】
次に、配置処理(S1012)は、結果処理(S1011)で保存されたマッチング結果を受け、知識ベース915中の回路の概念の内、新規の回路データとのマッチング度の高い回路の概念と対になる配置の規則性を利用して、新規の回路データを配置する。ここで、マッチング度としては、例えば、マッチング結果の一部である(数9)の評価関数の値の符号を反転させた値などを用いる。新規の回路データの内、回路の概念とのマッチングが取れている部分(部分回路)はその概念と対になる配置の規則性を利用して配置し、そうでない部分は仮想配線長を最短化するなどによって配置する。
【0170】
以上の配置処理(S1012)は、前記実施の形態1の図2における配置処理(S214〜S218)と同様に実現できる。つまり、前記実施の形態1における配置処理では、Ns個の回路データの対となる配置データに見習って配置するが、ここでの配置処理(S1012)では、Ns個の回路の概念の対となる配置の規則性にしたがって配置するわけである。具体的には、(数12)の配置のコスト関数において、回路データiの対となる配置データiにおける部品jとkとの間の部品間距離であるbijkを、回路の概念iの対となる配置の規則性における部品jとkとの間の部品間距離の平均dijkに置き換える。
【0171】
これに加えて、(数12)の配置のコスト関数におけるパラメータcijkを、部品間距離の標準偏差σijkに置き換えればよい。これにより、規則性を満たした配置を実現することができる。
【0172】
最後に、配置データ処理(S1013)は、配置処理(S1012)で得られた新規配置データを配置データ909保存し、終了する。
【0173】
(実施の形態3)
図9に、本発明の実施の形態3の自動配置システムのブロック図を示すが、その構成は実施の形態2と同様であるので説明は省略する。
【0174】
上記のように構成された自動配置装置の動作について、図12のフローチャートを用いて説明する。
【0175】
回路概念生成処理(S2000〜S2002)について以下に説明する。
部品数の入力(S2000)は、配置規則抽出に必要な回路データに共通または類似する部分回路に含まれる部品数を設定するもので、設定した部品数が2であれば部品ペアであるし、3であれば3つの部品の組み合わせを部分回路となる。
また、設定できる部品数は1つではなく、部品数2と部品数3、あるいは部品数2、部品数4と部品数5という複数の部品数の組合せで設定しても良い。
【0176】
以下では簡単に説明するため、部品数2の場合で説明するが、2以上の整数あるいはその複数の組み合わせであれば良い。
【0177】
回路データベース908中の回路データ(以降、回路と呼ぶ)を読み込む(S2001)。
【0178】
つぎに、概念形成処理(S2002)であるが、部品表現において、各ノードの属性と属性値および各エッジの属性と属性値を求め、一致または類似している部品ペアを認識し、回路の概念を形成する。例えば、各ノードの属性を部品種類とし、各ノードの属性を配線本数とした場合、ICとコンデンサが配線数1で接続している場合、トランジスタとレジスタが配線数1で接続している場合等を回路の概念として形成する。
【0179】
つぎに、配置規則抽出処理(S2003)では、知識ベース915に保存される回路の概念i(=1,...,Ns)と、回路データベース908から、それらの元となった回路(回路データ)の対となる配置データを読み込み、回路の概念の各々に対して、その配置における規則性を自動抽出する。例えば、規則性として配置データの統計的情報を抽出すればよい。ここで、回路の概念iを構成する部品数をNiで表すことにすると、統計的情報としては、例えば、回路の概念iを構成する部品ペア[j,k](j,k=1,...,Ni|j≠k)の各々に対して、それと対応が取れる回路データ中の部品ペアの配置データにおける部品間距離の平均dijkや標準偏差σijkなどを抽出すればよい。
【0180】
この他にも、ピン間距離の平均や分散、部品間の配置角度の平均差異など、抽出できる情報は様々あるが、以下では、簡単のため、配置の規則性として、部品間距離の平均dijkと分散sijkを抽出した場合を説明する。なお、回路の概念iに関して抽出された配置の規則性は、その回路の概念iと対になる形式で知識ベース915に登録される。
【0181】
以下に、知識ベース915に登録された回路の概念とその対となる配置の規則性とを利用して、自動配置を行なう処理を説明する。
まず、新規回路データ907から新規の回路データを読み込む(S2004)。
【0182】
つぎに、知識ベース915から回路の概念を1つ読み込む(S2005)。
つぎに、回路マッチング処理(S2006)であるが、これは、新規の回路データに含まれる部品ペアと回路の概念との間のマッチングを行なう。これにより、新規の回路データと回路の概念の部品との間の対応関係が抽出できることになる。つまり、新規の回路データに含まれる部品ペアと回路の概念の部品ペアとの間のノードおよびエッジの属性値を比較することにより、新規の回路データに含まれる部品ペアと回路の概念との間のマッチングを行なうことができる。あるいは、前記の実施の形態1で説明した図2におけるS203からS211までの処理や、前記の実施の形態2で説明した図10におけるS1010と同様なマッチング処理をしても良い。
【0183】
次に、結果処理(S2007)で、そのマッチング結果(新規の回路データと回路の概念の部品との間の対応関係など)を保存する。さらに、知識ベース915中に読んでいない回路の概念が残っている場合には、S2005に戻る。したがって、最終的には、結果処理(S2007)で、知識ベース915中の回路の概念の各々と新規の回路データとのマッチング結果が保存されることになる。
【0184】
次に、配置処理(S2008)は、結果処理(S2007)で保存されたマッチング結果を受け、知識ベース915中の回路の概念の内、新規の回路データとのマッチング度の高い回路の概念と対になる配置の規則性を利用して、新規の回路データを配置する。新規の回路データの内、回路の概念とのマッチングが取れている部分(部分回路)はその概念と対になる配置の規則性を利用して配置し、そうでない部分は仮想配線長を最短化するなどによって配置する。
【0185】
前記実施の形態1における配置処理では、Ns個の回路データの対となる配置データに見習って配置するが、本実施の形態での配置処理(S2008)では、Ns個の回路の概念の対となる配置の規則性にしたがって配置するわけである。具体的には、(数12)の配置のコスト関数において、回路データiの対となる配置データiにおける部品jとkとの間の部品間距離であるbijkを、回路の概念iの対となる配置の規則性における部品jとkとの間の部品間距離の平均dijkに置き換えるものである。
【0186】
最後に、配置データ処理(S2009)は、配置処理(S2008)で得られた新規配置データを配置データ909保存し、終了する。
【0187】
なお、配置処理において、(数12)の配置のコスト関数におけるパラメータcijkを、部品間距離の分散sijkに置き換えても良く、これにより、規則性を満たした配置を実現することができる。
【0188】
なお、配置規則抽出処理(S2003)において、回路の概念iを構成する部品のペア[j,k](j,k=1,...,Ni|j≠k)の各々に対して、それと対応が取れる回路データ中の部品ペアの数があらかじめ設定した数よりも少ない場合は、(数12)の配置のコスト関数におけるパラメータcijkをは任意の定数としても良い。あるいは、回路の概念iを構成する部品のペアと対応が取れる回路データ中の部品ペアの数があらかじめ設定した数よりも少ない場合は、規則として考慮せず、仮想配線長を最短化するなどによって配置しても良い。
【0189】
本実施の形態では、配置規則抽出に必要な回路データに共通または類似する部分回路に含まれる部品数を設定することにより、実施の形態2で説明した図10におけるS1001からS1006の処理と比較して、概念形成が高速に行なえる。
【0190】
【発明の効果】
以上のように、本発明は、構造を持った情報である回路データをグラフに変換し、グラフ間のマッチングを行なうことで、回路マッチングを実行し、マッチング度の高い回路データを検索し、検索した回路データの対となる配置データに沿って、新規回路データを配置することができ、熟練者と同様な配置ができるもので、その効果は大きい。
【図面の簡単な説明】
【図1】本発明の実施の形態1における自動配置システムのブロック図
【図2】本発明の実施の形態1における自動配置装置の動作を示すフローチャート
【図3】(a)サンプル回路図
(b)サンプル回路の部品リストを示す図
(c)サンプル回路のネットリストを示す図
【図4】ネット表現に従ったグラフを示す図
【図5】部品表現に従ったグラフを示す図
【図6】ニューラルネットの収束時の状態を説明する図
【図7】ネット表現を利用した場合の数値実験の結果を示す図
【図8】部品表現を利用した場合の数値実験の結果を示す図
【図9】本発明の実施の形態2における自動配置システムのブロック図
【図10】本発明の実施の形態2における自動配置装置の動作を示すフローチャート
【図11】同自動配置装置のベクトル生成処理の各々の回路の部品と融合回路の部品との対応関係を説明する図
【図12】本発明の実施の形態3における自動配置装置の動作を示すフローチャート
【符号の説明】
10、900 自動配置装置
11、901 CAD
12、902 実装機
13、903 CPU
14、904 ディスプレイ/キーボード
15、905 メモリ
16、906 FD(フロッピィディスク)ユニット
17、907 新規回路データ
18、908 回路データベース
19、909 配置データ
20、910 バス
21〜23、911〜913 I/Fユニット
24、914 ネットワーク
915 知識ベース
Claims (9)
- 部品リストとネットリストからなる回路データとその対となる配置データを記憶したデータベースと、新規回路データと前記データベース中の回路データとを各部品または各ネットに対応した属性と属性値とからなるノードおよび各ノードペアに対応した属性と属性値とからなるエッジの組からなるグラフに変換するグラフ変換手段と、前記変換されたグラフ間のマッチングをそれぞれ行い、マッチング度を求めるマッチング手段と、前記新規回路データから変換されたグラフとマッチング度の高い回路データをデータベースから検索する検索手段と、前記検索した回路データの対となる配置データに沿って、前記新規回路データを配置する配置手段とを具備することを特徴とする自動配置装置。
- 前記グラフ変換手段は、新規回路データとデータベース中の回路データとをノードとエッジとからなるグラフにそれぞれ変換する際に、前記ノードおよびエッジにおける属性として少なくとも部品種類毎の部品数を含み、その値を属性値とするグラフ表現にそれぞれ変換することを特徴とする請求項1記載の自動配置装置。
- 前記グラフ変換手段は、新規回路データとデータベース中の回路データとをノードとエッジとからなるグラフにそれぞれ変換する際に、ノードにおける属性として少なくとも部品種類を含み、その部品種類の名称を属性値とし、前記エッジにおける属性として少なくとも配線本数を含み、その値を属性値とするグラフ表現にそれぞれ変換することを特徴とする請求項1記載の自動配置装置。
- 新規回路データとデータベース中の回路データとをノードとエッジとからなるグラフにそれぞれ変換する際に、前記新規回路データのネット数と前記データベース中の回路データのネット数との積と、前記新規回路データの部品数と前記データベース中の回路データの部品数との積とを比較して、前者の積が小さい場合、各ネットに対応した属性と属性値からなるノードとノードペアに対応した属性と属性値とからなるエッジとからグラフにそれぞれ変換し、後者の積が小さい場合、各部品に対応した属性と属性値とからなるノードと各ノードペアに対応した属性と属性値とからなるエッジからグラフにそれぞれ変換することを特徴とする請求項1記載の自動配置装置。
- 変換されたグラフ間のマッチングを行うマッチング手段は、ニューラルネットまたはシミュレーテッドアニーリング法を用いることを特徴とする請求項1乃至4のいずれかに記載の自動配置装置。
- ニューラルネットを用いたマッチング手段は、ニューラルネットのパラメータや初期状態を設定し、前記設定されたパラメータに基づいて現在のマッチング状態を示す前記ニューラルネットの状態を更新し、前記ニューラルネットの状態が収束しているかどうかを判定し、収束していない場合は前記ニューラルネットの温度を更新し、前記ニューラルネットの状態の更新と収束判定を繰り返すことを特徴とする請求項5記載の自動配置装置。
- 検索した回路データの対となる配置データに沿って前記新規回路データを配置する配置手段は、シミュレーテッドアニーリング法を用いることを特徴とする請求項1乃至6のいずれかに記載の自動配置装置。
- 検索した回路データの対となる配置データに沿って前記新規回路データを配置する配置手段は、前記回路データの部品と前記新規回路データの部品とを対応づけ、少なくともその対応関係と前記配置データを用いて前記新規回路データに対しての配置を評価するコスト関数を生成し、前記コスト関数を最小化することを特徴とする請求項1乃至7のいずれかに記載の自動配置装置。
- コスト関数の最小化を行なう際に、少なくとも初期配置を生成し、部品または部品群を移動または回転させることにより配置を更新することを特徴とする請求項8に記載の自動配置装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14795999A JP3791239B2 (ja) | 1998-06-09 | 1999-05-27 | グラフ表現変換方法及びその装置、並びに自動配置方法及びその装置 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16012098 | 1998-06-09 | ||
JP31290298 | 1998-11-04 | ||
JP10-312902 | 1998-11-04 | ||
JP10-160120 | 1998-11-04 | ||
JP14795999A JP3791239B2 (ja) | 1998-06-09 | 1999-05-27 | グラフ表現変換方法及びその装置、並びに自動配置方法及びその装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000200298A JP2000200298A (ja) | 2000-07-18 |
JP3791239B2 true JP3791239B2 (ja) | 2006-06-28 |
Family
ID=27319454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14795999A Expired - Fee Related JP3791239B2 (ja) | 1998-06-09 | 1999-05-27 | グラフ表現変換方法及びその装置、並びに自動配置方法及びその装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3791239B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI243488B (en) * | 2003-02-26 | 2005-11-11 | Osram Opto Semiconductors Gmbh | Electrical contact-area for optoelectronic semiconductor-chip and its production method |
US8136076B2 (en) | 2006-08-31 | 2012-03-13 | Fuji Xerox Co., Ltd. | Method and system for mounting circuit design on reconfigurable device |
US8866845B2 (en) | 2010-03-10 | 2014-10-21 | Empire Technology Development Llc | Robust object recognition by dynamic modeling in augmented reality |
JP5825122B2 (ja) | 2012-01-31 | 2015-12-02 | 富士通株式会社 | 生成プログラム、生成方法、および生成システム |
JP2015090628A (ja) * | 2013-11-07 | 2015-05-11 | 株式会社日立製作所 | 機器配置自動算出装置 |
WO2020229927A1 (ja) * | 2019-05-15 | 2020-11-19 | 株式会社半導体エネルギー研究所 | 検索方法、検索装置、および検索システム |
KR102417677B1 (ko) * | 2020-10-21 | 2022-07-07 | 펜타큐브 주식회사 | 회로 검증을 위한 유사 회로 검색 장치 및 방법 |
WO2023284088A1 (zh) * | 2021-07-12 | 2023-01-19 | 苏州贝克微电子股份有限公司 | 基于人工智能的电路设计方法与实现*** |
WO2024084672A1 (ja) * | 2022-10-21 | 2024-04-25 | 三菱電機株式会社 | 情報処理装置および情報処理方法 |
-
1999
- 1999-05-27 JP JP14795999A patent/JP3791239B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000200298A (ja) | 2000-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11017149B2 (en) | Machine-learning design enablement platform | |
Ma et al. | Understanding graphs in EDA: From shallow to deep learning | |
CN109933785A (zh) | 用于实体关联的方法、装置、设备和介质 | |
Kunal et al. | A general approach for identifying hierarchical symmetry constraints for analog circuit layout | |
Lu et al. | The law of attraction: Affinity-aware placement optimization using graph neural networks | |
Chen et al. | Universal symmetry constraint extraction for analog and mixed-signal circuits with graph neural networks | |
Palágyi et al. | Topology preserving parallel 3D thinning algorithms | |
JP3791239B2 (ja) | グラフ表現変換方法及びその装置、並びに自動配置方法及びその装置 | |
US20080244493A1 (en) | Pattern based elaboration of hierarchical l3go designs | |
Abouelyazid et al. | Accuracy-based hybrid parasitic capacitance extraction using rule-based, neural-networks, and field-solver methods | |
de Gusmao et al. | Scalable and order invariant analog integrated circuit placement with attention-based graph-to-sequence deep models | |
WO2022227171A1 (zh) | 关键信息提取方法、装置、电子设备及介质 | |
CN112800262A (zh) | 一种图像自组织聚类可视化方法及装置、存储介质 | |
US6968518B2 (en) | Method of resolving missing graphical symbols in computer-aided integrated circuit design | |
JP7006402B2 (ja) | クラスタリングプログラム、クラスタリング方法およびクラスタリング装置 | |
CN108491423B (zh) | 一种排序方法及装置 | |
Burns et al. | Machine Learning for Analog Layout | |
Riepe et al. | Transistor level micro-placement and routing for two-dimensional digital VLSI cell synthesis | |
Said et al. | Circuit design completion using graph neural networks | |
CN115470358A (zh) | 一种跨语言实体链接方法、***、设备及终端 | |
Islam | Early Stage DRC Prediction Using Ensemble Machine Learning Algorithms | |
Zhang et al. | Speeding up vlsi layout verification using fuzzy attributed graphs approach | |
Wu et al. | Circuit-GNN: A Graph Neural Network for Transistor-level Modeling of Analog Circuit Hierarchies | |
Zhang et al. | The subcircuit extraction problem | |
Jung et al. | Power distribution network optimization using HLA-GCN for routability enhancement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050621 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050922 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051228 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060216 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060314 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060327 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100414 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110414 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120414 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130414 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |