IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-26
(45)【発行日】2025-01-10
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   G06F 30/30 20200101AFI20241227BHJP
【FI】
G06F30/30
【請求項の数】 14
(21)【出願番号】P 2024551167
(86)(22)【出願日】2022-10-21
(86)【国際出願番号】 JP2022039214
(87)【国際公開番号】W WO2024084672
(87)【国際公開日】2024-04-25
【審査請求日】2024-10-15
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】山梶 佑介
(72)【発明者】
【氏名】廣瀬 健二
(72)【発明者】
【氏名】福島 邦彦
【審査官】松浦 功
(56)【参考文献】
【文献】特開2021-089722(JP,A)
【文献】特開2000-200298(JP,A)
【文献】米国特許出願公開第2021/0334445(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/30 -30/398
G06F 16/00 -16/958
G06Q 50/04
(57)【特許請求の範囲】
【請求項1】
電気回路のネットリストを取得する取得部と、
前記ネットリストから、部品名リストおよび配線名リストを抽出し、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、前記更新した部品名リストにおける部品名から、前記更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストとを作成し、前記更新した部品名リストおよび前記組み合わせリストを出力する処理部と、を備えた
ことを特徴とする情報処理装置。
【請求項2】
前記処理部は、
3つ以上の配線に接続された部品を配線数と同数の2端子部品とみなして前記2端子部品を示す部品名を、前記更新した部品名リストに追加し、
前記2端子部品とみなす前の部品を示す部品名を、前記更新した部品名リストから除去し、
前記2端子部品の一方の端子に前記3つ以上の配線をそれぞれ接続し、
前記2端子部品の他方の端子間を新たな配線で接続し、
前記更新した配線名リストに前記新たな配線を示す配線名を追加し、
前記更新した部品名リストから、前記更新した配線名リストにおける配線名に対応する部品名を抽出し、
抽出した部品名を含む前記組み合わせリストを作成し、前記更新した部品名リストおよび前記組み合わせリストを出力する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
電気回路のネットリストを取得する取得部と、
前記ネットリストから、部品名リストおよび配線名リストを抽出し、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、前記更新した部品名リストにおける部品名から、前記更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名とこれに対応する配線名とを含む組み合わせリストとを作成し、前記更新した部品名リストおよび前記組み合わせリストを出力する処理部と、を備えた
ことを特徴とする情報処理装置。
【請求項4】
前記処理部は、
3つ以上の配線に接続された部品を配線数と同数の2端子部品とみなして前記2端子部品を示す部品名を、前記更新した部品名リストに追加し、
前記2端子部品とみなす前の部品を示す部品名を、前記更新した部品名リストから除去し、
前記2端子部品の一方の端子に前記3つ以上の配線をそれぞれ接続し、
前記2端子部品の他方の端子間を新たな配線で接続し、
前記更新した配線名リストに前記新たな配線を示す配線名を追加し、
前記更新した部品名リストから、前記更新した配線名リストにおける配線名に対応する部品名を抽出し、
抽出した部品名とこれに対応する配線名とを含む前記組み合わせリストとを作成し、前記更新した部品名リストおよび前記組み合わせリストを出力する
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記処理部は、部品の特徴ごとに共通した固有の識別番号で部品名を置き換えた、前記更新した部品名リストおよび前記組み合わせリストを出力する
ことを特徴とする請求項1から請求項4のいずれか1項に記載の情報処理装置。
【請求項6】
前記処理部は、部品の種類ごとに共通した固有の前記識別番号を定義する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記処理部は、部品の型式番号ごとに共通した固有の前記識別番号を定義する
ことを特徴とする請求項5に記載の情報処理装置。
【請求項8】
前記処理部は、前記更新した部品名リストにおける部品名を、部品の特徴をワンホット表現して得られる特徴量行列の行または列に置き換える
ことを特徴とする請求項5に記載の情報処理装置。
【請求項9】
前記処理部は、部品の回路定数を、対数を含む関数に代入して算出した関数値で、前記特徴量行列における受動回路に対応する要素を置き換える
ことを特徴とする請求項8に記載の情報処理装置。
【請求項10】
前記処理部は、前記関数値に対して正規化または標準化の両方または一方を行う
ことを特徴とする請求項に記載の情報処理装置。
【請求項11】
前記処理部は、前記2端子部品間を接続する配線に、自己ループまたは多重辺を発生させない限りにおいて、当該2端子部品からノードを除去する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項12】
前記部品名リストは、グラフネットワークにおけるノードであり、
前記配線名リストは、前記グラフネットワークにおけるエッジであり、
前記組み合わせリストは、前記グラフネットワークにおける隣接行列である
ことを特徴とする請求項1から請求項のいずれか1項に記載の情報処理装置。
【請求項13】
前記処理部は、ノードとエッジとの組み合わせをグラフニューラルネットワークの入力データとする
ことを特徴とする請求項12に記載の情報処理装置。
【請求項14】
情報処理装置が、
電気回路のネットリストを取得するステップと、
前記ネットリストから部品名リストおよび配線名リストを抽出するステップと、
グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストを作成するステップと、
グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストを作成するステップと、
前記更新した部品名リストにおける部品名から、前記更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストを作成するステップと、
前記更新した部品名リストおよび前記組み合わせリストを出力するステップと、を実行する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
CAD(Computer-Aided Design)を用いて設計された電気回路を示す回路図データは、部品に関する部品情報と部品間の配線に関する接続情報とを含むデータである。例えば、特許文献1には、電気回路を行列(マトリクス)で表現した回路マトリクスを用いて、回路図データが登録されたデータベースから、構成が類似した電気回路の回路図データを検索する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2007-128383号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
電気回路をノードおよびエッジで表すグラフネットワークは、電気回路のネットリストから抽出したリスト情報を用いて作成される。リスト情報とは、電気回路に含まれる部品および配線に関する情報であり、部品名リストおよび配線名リストがある。部品名リストには、電気回路に含まれる部品の部品名が設定される。配線名リストには、部品間を接続する配線の配線名が設定される。
【0005】
配線名リストに配線名が設定される配線には、電気回路におけるグラウンド配線、入力配線および出力配線が含まれる。一方、部品名リストには、構造的特徴を有した回路部品の部品名のみが設定され、構造的な特徴を有していない、グラウンド、入力および出力を示す要素は含まれない。このため、従来のリスト情報は、様々な種類のグラウンド、複数の入力および複数の出力を配線で定義する必要がある。
【0006】
一方、従来のリスト情報では、回路が固有なグラウンドまたは固有な入力および出力を有する場合、回路ごとに特別な機構を設けなければ、グラウンドまたは入力および出力を異なる回路情報として区別することができない。例えば、回路部品の入力には、回路部品に対する電力供給が含まれ、また外部信号の入力も含まれる。このように回路部品の入力は多様であり、配線名のみで定義すると両者が混同されてしまう。このため、電気回路をグラフネットワークに変換した後に、グラフネットワークのみで両者を分離することは困難であった。
【0007】
上記両者を分離するためには、部品の数またはグラフネットワークへの記載の順番などを取り決める必要があり、入力端子の数が予め決まっている場合でしか用いることができない。上記の取り決めをすることなく、回路部品におけるグラウンド、入力および出力の定義が適切でないリスト情報を用いてグラフネットワークを作成した場合、グラフネットワークに情報劣化が起こる可能性がある。情報劣化が起こると、グラフネットワークから元の回路図を復元することができない可能性がある。
【0008】
ところで、特許文献1に記載された従来の技術において、グラウンド、入力および出力の定義が適切でないリスト情報を用いて回路マトリクスが作成されると、上述したように回路マトリクスに情報劣化が起こると見込まれる。この場合、当該回路マトリクスを用いても、類似した電気回路の回路図データを正確に検索できない可能性がある。
【0009】
本開示は上記課題を解決するものであって、電気回路をグラフネットワークに変換することで発生する情報劣化を抑制可能なリスト情報を提供することができる、情報処理装置および情報処理方法を得ることを目的とする。
【課題を解決するための手段】
【0010】
本開示に係る情報処理装置は、電気回路のネットリストを取得する取得部と、ネットリストから、部品名リストおよび配線名リストを抽出し、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストとを作成し、更新した部品名リストおよび組み合わせリストを出力する処理部とを備える。
【発明の効果】
【0011】
本開示によれば、電気回路のネットリストから部品名リストおよび配線名リストを抽出し、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストを作成し、更新した部品名リストおよび組み合わせリストを出力する。これにより、本開示に係る情報処理装置は、電気回路におけるグラウンド、入力および出力が回路部品として定義されたリスト情報を出力するので、電気回路をグラフネットワークに変換することで発生する情報劣化を抑制可能なリスト情報を提供することが可能である。
【図面の簡単な説明】
【0012】
図1】実施の形態1に係る情報処理装置の構成例を示すブロック図である。
図2】実施の形態1における電気回路およびグラフネットワークの例(1)を示す概要図である。
図3】実施の形態1における電気回路およびグラフネットワークの例(2)を示す概要図である。
図4図4Aおよび図4Bは実施の形態1に係る情報処理装置の機能を実現するハードウェア構成を示すブロック図である。
図5】実施の形態1に係る情報処理方法を示すフローチャートである。
図6】電気回路の例(1)を示す回路図である。
図7】電気回路の例(2)を示す回路図である。
図8】電気回路の例(3)を示す回路図である。
図9】ノード間をエッジで接続したグラフネットワークを示す概要図である。
図10】配線ノードを経由してノード間を接続したグラフネットワークを示す概要図である。
図11】実施の形態1におけるグラフネットワークへのデータ入力処理(1)を示すフローチャートである。
図12】実施の形態1におけるグラフネットワークへのデータ入力処理(2)を示すフローチャートである。
図13】実施の形態1におけるグラフネットワークへのデータ入力処理(3)を示すフローチャートである。
図14】実施の形態1に係る情報処理装置による推論精度の算出結果の例(1)を示すグラフである。
図15】実施の形態1に係る情報処理装置による推論精度の算出結果の例(2)を示すグラフである。
図16】実施の形態2に係る情報処理装置の構成例を示すブロック図である。
図17】実施の形態2に係る情報処理方法を示すフローチャートである。
図18】電気回路の例(4)を示す回路図である。
図19】電気回路の例(5)を示す回路図である。
図20】実施の形態2における電気回路およびグラフネットワークの例(1)を示す概要図である。
図21】実施の形態2における電気回路およびグラフネットワークの例(2)を示す概要図である。
図22】実施の形態2における電気回路およびグラフネットワークの例(3)を示す概要図である。
図23】実施の形態2に係る情報処理装置による推論精度の算出結果の例を示すグラフである。
【発明を実施するための形態】
【0013】
実施の形態1.
図1は、実施の形態1に係る情報処理装置1の構成例を示すブロック図である。図1において、情報処理装置1は、電気回路のネットリストを取得し、取得したネットリストを用いて、電気回路のグラフネットワークにおける情報劣化を抑制可能なリスト情報を提供する。電気回路のグラフネットワークとは、部品を表すノードおよび配線を表すエッジを用いて当該電気回路を表した情報である。グラフネットワークにはノードの特徴量およびエッジの特徴量を示す情報も含まれる。
【0014】
電気回路の作成において、回路設計CADを用いて電気回路の回路図が設計され、回路図を示す情報が基板設計CADに受け渡され、基板設計CADを用いて基板回路パターンが設計される。回路設計CADから基板設計CADへ受け渡される回路図を示す情報が、電気回路のネットリストである。例えば、情報処理装置1は、回路設計CADからネットリストを取得し、取得したネットリストを用いて作成したリスト情報を含むネットリストを、基板設計CADが搭載されたコンピュータに出力する。当該コンピュータでは、基板設計CADを用いて、入力したネットリストが示す回路図についての基板回路パターンが設計される。
【0015】
ネットリストが示す回路図には、電気回路における、受動部品、能動部品、I/O部品および配線をそれぞれ示す情報が含まれる。受動部品は、例えば、コイル、コンデンサ、抵抗、またはダイオードなどの部品である。能動部品は、例えば、電源、プロセッサ、メモリまたはFPGA(Field Programmable Gate Array)などの部品である。I/O部品には、例えば、基板間コネクタ、電源コネクタおよび通信用コネクタがある。配線は、上記の部品間を接続するための配線である。
【0016】
回路図は、外部から電源が供給されるか、イーサネット(登録商標)などの制御信号、またはセンサから取得したアナログ信号が入力されて動作する電気回路を示すものであるため、電源自体は回路図には含まれない。電源は、バッテリまたは商用電源である。
なお、以下、回路図において、少なくとも、グラウンド配線、入力配線および出力配線が1つ以上の回路部品に接続されているものとする。また、ネットリストが示す回路図は、必ずしも動作するものである必要はなく、設計途中のものであってもよく、または全体の回路の一部の機能を実現する回路部分のみを抽出したものであってもよい。
【0017】
ネットリストには、TELESIS形式、PADS形式、またはSCICARDS形式といった数十種類の表現方法が知られているが、いずれの形式においても電気回路に含まれる部品および部品間を接続する配線を示す情報が含まれる。一般的に、回路図にはグラウンド配線、入力配線および出力配線が含まれる。しかしながら、配線を介さずに入力または出力される電磁波または熱などを扱う回路図には、入力配線または出力配線が存在しない場合がある。なお、電磁波または熱が電気信号に変換され、電気信号が電磁波または熱に変換される場合、回路図には、電磁波または熱から変換された電気信号が伝搬する入力配線が含まれ、電磁波または熱に変換される電気信号が伝搬する出力信号が含まれる。ネットリストには、このような配線に関する情報も含まれる。
【0018】
また、ネットリストには、部品名リストおよび配線名リストが含まれる。部品名リストには、ネットリストにおける全ての部品名が設定されている。配線名リストには、ネットリストにおける全ての配線名が設定されている。配線名リストには、電気回路における、グラウンド配線、入力配線および出力配線を示す配線名も設定されるが、部品名リストには、グラウンド、入力および出力を示す情報が設定されず、半導体素子(以下、単に半導体と記載する。)またはコンデンサなどの構造的な特徴を有した回路部品のみが設定される。このため、電気回路に複数種類のグラウンド、入力および出力が存在する場合であっても、部品名リストからは、これらを区別することができない。
【0019】
この場合、配線名リストにおいて、グラウンド、入力および出力の種類に応じて、グラウンド配線、入力配線および出力配線を、さらに分類して定義する必要がある。例えば、ある部品に複数種類のグラウンド、入力および出力がある場合、グラウンド、入力および出力の種類に応じて分類した複数種類の配線を、この部品と接続する部品との間でも定義する必要があり、配線名リストが複雑化する。複雑化した配線名リストを含むリスト情報を用いて電気回路をグラフネットワークに変換すると、グラフネットワークに情報劣化が起きる可能性が高くなる。
【0020】
これに対し、情報処理装置1は、部品名リストにグラウンド端子、入力端子および出力端子を示す部品名を追加し、配線名リストからグラウンド配線、入力配線および出力配線を示す配線名を除去する。そして、情報処理装置1は、上記部品名リストにおける部品名から、上記配線名リストにおける配線名に対応する部品名を抽出して、抽出した部品名を含む組み合わせリストを作成し、部品名リストおよび組み合わせリストを含むリスト情報を出力する。これにより、情報処理装置1では、電気回路に複数種類のグラウンド、入力および出力があっても、これらを、個々の部品として定義することができる。このため、複数種類の配線として定義する場合のようなリスト情報の複雑化が起こらず、電気回路のグラフネットワークにおける情報劣化を抑制可能なリスト情報を提供することができる。
【0021】
情報処理装置1は、図1に示すように、取得部11および処理部12を備える。
取得部11は、電気回路のネットリストを取得する第1プロセスを実行する。例えば、情報処理装置1が回路設計CADを搭載したコンピュータと接続されており、取得部11は、回路設計CADを用いて作成されたネットリストを当該コンピュータから取得する。
また、取得部11は、回路シミュレータで動作する電気回路の回路図モデルを取得し、この回路図モデルが示す回路図をネットリストに変換してもよい。
すなわち、取得部11によるネットリストの取得には、回路図を変換してネットリストを取得することも含まれる。
【0022】
処理部12は、ネットリストから、部品名リストおよび配線名リストを抽出し、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストとを作成し、更新した部品名リストおよび組み合わせリストを出力する。また、処理部12は、部品の特徴ごとに共通した固有の識別番号で部品名を置き換えた、更新した部品名リストおよび組み合わせリストを出力する。
【0023】
具体的には、処理部12が、第2プロセスから第6プロセスを実行する。
第2プロセスは、取得部11が取得したネットリストから、部品名リストおよび配線名リストを抽出する処理である。
第3プロセスは、部品名リストに対しグラウンド端子、入力端子および出力端子を示す部品名を追加する処理である。
第4プロセスは、配線名リストから、グラウンド配線、入力配線および出力配線を示す配線名を除去する処理である。
第5プロセスは、第3プロセスを施した部品名リストにおける部品名から、第4プロセスを施した配線名リストにおける配線名に対応する部品名を抽出して、抽出した部品名を含む組み合わせリストを作成する処理である。
第6プロセスは、部品の特徴ごとに共通した固有の識別番号で、第3プロセスを施した部品名リストにおける部品名と第5プロセスで得られた組み合わせリストにおける部品名とを置き換えて、識別番号で部品名を置き換えた部品名リストおよび組み合わせリストを含むリスト情報を出力する処理である。
【0024】
図2は、電気回路およびグラフネットワークの例(1)を示す概要図であって、図2の左側図が電気回路の一例を示しており、右側上下の図が、左側の電気回路のグラフネットワークを示している。図2に示す電気回路は、電源V、半導体X、インダクタL、コンデンサCおよび抵抗Rを有した回路である。当該電気回路において、電源V、半導体Xの一つの端子、コンデンサCおよび抵抗Rは、グラウンドGNDと接続されている。
【0025】
電源Vから供給(入力)される電力により動作する電気回路の回路図には、電源V自体は含まれない。このため、当該回路図を表すネットリストには、電源から電力供給される入力端子が回路部品として設定されていない。また、このネットリストに含まれる部品名リストには、機能的な構造を有する、半導体X、インダクタL、コンデンサCおよび抵抗Rといった電気回路部品は設定されるが、機能的な構造を有さない電源入力またはグラウンドGNDは設定されない。
【0026】
電源入力およびグラウンドGNDが設定されていない部品名リストを用いると、右側下のグラフネットワークが作成される。右側下のグラフネットワークには、半導体Xのノード、インダクタLのノード、コンデンサCのノードおよび抵抗Rのノードはあるが、電源Vからの電源入力のノードおよびグラウンドGNDのノードがない。右側下のグラフネットワークにおいては、電源Vからの電源入力およびグラウンドGNDが配線として定義される。
【0027】
例えば、左側の電気回路では、電源Vから、半導体Xの一つの端子に電源が供給(入力)されている。このため、右側下のグラフネットワークにおいて、半導体Xのノードに接続している太線の配線は、電源Vからの電源入力に関係する入力配線である。
また、左側の電気回路において、半導体X、コンデンサCおよび抵抗Rは、グラウンドGNDにそれぞれ接続されている。
【0028】
例えば、グラウンドGNDは、白線で示すように、半導体XとコンデンサCとの間のグラウンド配線、半導体Xと抵抗Rとの間のグラウンド配線、およびコンデンサCと抵抗Rとの間のグラウンド配線として定義される。すなわち、部品名リストに電源入力およびグラウンドGNDが設定されていない場合、ネットリストには、電源Vからの電源入力およびグラウンドGNDを示す4種類の配線が定義される。
【0029】
電気回路のネットリストをグラフネットワークに変換してから、変換したグラフネットワークをネットリストに逆変換した際に、逆変換したネットリストを用いて元の電気回路を特定できれば、上記グラフネットワークに情報劣化がないと判断される。
一般的に、ネットリストからグラフネットワークへの変換と、グラフネットワークからネットリストへの逆変換との間には可逆性がなく、逆変換した後のネットリストが、回路シミュレータによって計算可能なネットリストにならない可能がある。
【0030】
このため、グラフネットワークの情報劣化の判定は、グラフネットワークからネットリストへの逆変換を行わず、グラフネットワークをグラフニューラルネットワークに入力し、元の電気回路を推論するためのグラフニューラルネットワークの学習によって行うこととする。グラフニューラルネットワークを用いた情報劣化の判定は、グラフネットワークからネットリストを逆変換するプロセスを行わないため、上記の問題が発生しない効果がある。ただし、グラフニューラルネットワークには、推論結果のばらつきの問題が発生する。この場合、ネットワーク構造が共通のグラフニューラルネットワークの学習を複数回行い、学習結果のグラフニューラルネットワークによる推論結果のばらつきを確認することにより、推論結果のばらつきの影響を小さく抑えることができる。
このように、グラフニューラルネットワークを用いた情報劣化の判定は、グラフネットワークからネットリストへ逆変換を行う場合よりも安定した結果が得られる、優れた判定方法である。
ここで、グラフニューラルネットワークは、グラフネットワークが入力されると、グラフネットワークに対応する電気回路を推論する機械学習モデル(AI)である。
グラフニューラルネットワークが元の電気回路を推論する精度が高ければ、この電気回路のネットリストをグラフネットワークに変換したときに生じる情報劣化が少ないと判定する。
【0031】
電気回路に複数種類のグラウンドGND、入力および出力がある場合、この電気回路のネットリストを変換したグラフネットワークには、グラウンドGND、入力および出力を示す配線が、グラウンドGND、入力および出力の種類に応じて分類されて定義される。これらの配線は、分類された種類を示す情報に加え、接続している部品との関係性を含む複雑な条件で定義される。このため、グラフニューラルネットワークは、配線ごとの複雑な条件も含めて学習を行う必要があり、グラフニューラルネットワークが元の電気回路を推論する推論精度は低下する。
【0032】
これに対し、情報処理装置1は、左側の電気回路のネットリストに含まれる部品名リストにグラウンド端子、入力端子および出力端子を示す部品名を追加し、上記ネットリストに含まれる配線名リストから、グラウンド配線、入力配線および出力配線を示す配線名を除去する。そして、情報処理装置1は、部品名リストにおける部品名から、配線名リストにおける配線名に対応する部品名を抽出して、抽出した部品名を含む組み合わせリストを作成し、部品名リストおよび組み合わせリストを出力する。
【0033】
上記部品名リストおよび上記組み合わせリストには、左側の電気回路における電源Vの電源入力およびグラウンドGNDが部品として設定される。このため、上記部品名リストおよび上記組み合わせリストを含むネットリストは、右側上のグラフネットワークに変換される。右側上のグラフネットワークには、半導体Xのノード、インダクタLのノード、コンデンサCのノードおよび抵抗Rのノードに加え、電源Vからの電源入力のノードおよびグラウンドGNDのノードが設定されている。
【0034】
電源Vからの電源入力およびグラウンドGNDが部品として定義されるので、右側上のグラフネットワークにおいて、電源Vから半導体Xへの電源入力に関係する配線は、入力配線の種類分けが不要であり、ノード間の接続として定義される。
グラウンドGNDについてもグラウンド配線の種類分けが不要であり、ノード間の接続として定義される。すなわち、右側上のグラフネットワークでは、元の電気回路における全ての配線が、ノード間を接続する1種類の配線で定義される。
【0035】
このため、電気回路が有する複数種類のグラウンドGND、入力および出力がそれぞれ部品として区別される。すなわち、グラフニューラルネットワークは、電気回路におけるグラウンドGND、入力および出力を部品として学習することができ、グラフニューラルネットワークが元の電気回路を推論する精度が向上する。
【0036】
図3は、電気回路およびグラフネットワークの例(2)を示す概要図であって、図3の左側図が電気回路の一例を示しており、右側上下の両図が左側の電気回路のグラフネットワークを示している。図3に示す電気回路は、電源V、半導体X、インダクタL、コンデンサCおよび抵抗Rを有した回路である。左側の電気回路におけるグラウンドGNDが設定されていない部品名リストを用いた場合、上記電気回路は、右側下のグラフネットワークに変換される。
【0037】
右側下のグラフネットワークには、電源Vからの電源入力ノード、半導体Xのノード、インダクタLのノード、コンデンサCのノード、および抵抗Rのノードが設定されているが、グラウンドGNDは、白線で示すように、ノード間に設定されたグラウンド配線として定義される。一般に、電気回路に含まれる部品のうち、グラウンドGNDに繋がる部品は多いので、回路規模によっては、グラウンドGNDについて膨大な数のグラウンド配線を定義する必要がある。また、出力ノードは、抵抗Rの両端の電圧である。
今回、図3に示す回路図には、入力ノードとなる電源Vと出力ノードの負荷を意味する抵抗Rとを、説明の簡単のため記載したが、電気設計における通常の回路図には、電源Vまたは抵抗Rが記載されることはなく、開放端として表現される。
【0038】
また、右側下のグラフネットワークでは、グラウンドGNDに関して6本のグラウンド配線が設定されているが、グラウンドGND以外にノード間を接続する配線がさらに5本設定されている。すなわち、ネットリストには合計11本の配線を定義する必要がある。
【0039】
これに対し、情報処理装置1は、グラウンドGNDが部品として設定されたリスト情報を提供する。このリスト情報は、右側上のグラフネットワークに変換することができる。右側上のグラフネットワークには、図3に示すように、電源Vからの電源入力ノード、半導体Xのノード、インダクタLのノード、コンデンサCのノード、および、抵抗Rのノードに加えて、グラウンドGNDのノードが設定されている。
なお、半導体には、トランジスタ、ダイオード、MOS FET(Metal-Oxide-Semiconductor Field-Effect Transistor)、またはIGBT(Insulated Gate Bipolar Transistor)などの単機能半導体だけでなく、ICまたはLSIなどの大規模集積回路、例えばCPU、GPU、メモリまたはASICも含まれる。
実施の形態1では、内部の回路素子が未知(ブラックボックス)である大規模集積回路を含めてノードと定義することができるため、全ての半導体を同様に扱うことができる。 内部の回路素子が既知である場合においても、高周波または半導体が対象としている周波数以外の帯域の信号を扱う回路は、寄生容量、残留インダクタンスまたは残留抵抗などの影響によって回路計算の結果と実測とが合わない、すなわち、等価回路となっていない場合が多い。このため、内部の回路素子を特定できたとしても役に立たないことが多く、ブラックボックスとして扱うことができる本実施の形態は、特別な効果を有する。
ただし、集積回路の内部の回路素子が未知な場合においても、CPUまたはメモリなどの集積回路自体が有する属性情報は、多くの場合、把握できるため、集積回路の持つ属性情報を、半導体ノードの属性情報として入力することは望ましいことである。
なお、属性情報は、例えば、製造メーカ、部品の種類、部品の型式番号、製品ロット、部品の端子数、部品への入力信号の周波数、入力信号の電圧、入力信号の電流、入力信号の電力、部品からの出力信号の周波数、出力信号の電圧、出力信号の電流、出力信号の電力または寸法などの仕様書(スペックシートとも呼ばれる)に記載された各種情報を組み合わせた情報である。
【0040】
グラウンドGNDを部品として定義することによって、右側上のグラフネットワークでは、9つのノード間をそれぞれ接続する9本の配線を設定すればよい。このため、ネットリストには、合計9本の配線のみを定義すればよく、グラウンドGNDが部品として定義しない場合に比べてネットリストに定義すべき配線数を削減することが可能である。配線数が減ることにより計算量を減らすことができ、計算性能が高くないコンピュータまたはエッジコンピューティングによっても、大規模な回路を扱うことが可能である。
【0041】
次に、情報処理装置1の機能を実現するハードウェア構成について説明する。
情報処理装置1は、例えば、情報ネットワークに接続されたコンピュータである。
当該コンピュータは、情報ネットワークを経由してクラウド等に接続することが可能なサーバまたはクライアン卜であってもよいし、情報ネットワークに接続されていないスタンドアロンのコンピュータであってもよい。また、エッジコンピューティングと呼ばれる工場内で閉じたネットワーク環境で使用されるコンピュータであってもよい。
また、情報処理装置1は、スマートフォン、タブレット端末、PC(Personal Computer)またはマイクロコンピュータであってもよい。
【0042】
情報処理装置1は、SaaS(Software as a Service)の形態で提供される情報処理サービスを利用する装置であってもよい。すなわち、実施の形態1における情報処理サービスを提供するための専用アプリケーションは、情報処理装置1が情報ネットワークを経由して接続しているサーバが実行し、情報処理装置1は、当該専用アプリケーションをインストールすることなく、Webブラウザ上で情報処理サービスの提供を受けることもできる。
【0043】
情報処理装置1が備える取得部11および処理部12の機能は、処理回路によって実現される。すなわち、情報処理装置1は、後述する図5に示すステップST1からステップST9の処理を実行するための処理回路を備える。処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するCPU(Central Processing Unit)であってもよい。
【0044】
図4Aは、情報処理装置1の機能を実現するハードウェア構成を示すブロック図である。図4Aにおいて、入力インタフェース100、出力インタフェース101および処理回路102は、バス配線を介して相互に接続されている。また、図4Bは、情報処理装置1の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。図4Bにおいて、入力インタフェース100、出力インタフェース101、プロセッサ103およびメモリ104は、バス配線を介して相互に接続されている。図4Aおよび図4Bにおいて、入力インタフェース100は、例えば情報処理装置1が取得したネットリストを中継するインタフェースである。出力インタフェース101は、情報処理装置1から外部装置へ出力されるリスト情報を中継するインタフェースである。
【0045】
処理回路が図4Aに示す専用のハードウェアの処理回路102である場合、処理回路102は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)またはこれらを組み合わせたものが該当する。
情報処理装置1が備える取得部11および処理部12の機能を、別々の処理回路で実現してもよく、これらの機能をまとめて一つの処理回路で実現してもよい。
【0046】
処理回路が図4Bに示すプロセッサ103である場合、情報処理装置1が備える取得部11および処理部12の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせによって実現される。なお、ソフトウェアまたはファームウェアは、プログラムとして記述されてメモリ104に記憶される。
【0047】
プロセッサ103は、メモリ104に記憶されたプログラムを読み出して実行することにより、情報処理装置1が備える取得部11および処理部12の機能を実現する。
例えば、情報処理装置1は、プロセッサ103によって実行されるときに、図5に示すステップST1からステップST9の処理が結果的に実行されるプログラムを記憶するためのメモリ104を備える。これらのプログラムは、取得部11および処理部12が行う処理の手順または方法をコンピュータに実行させる。メモリ104は、コンピュータを、取得部11および処理部12として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。
【0048】
メモリ104は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically-EPROM)などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVDなどが該当する。
【0049】
情報処理装置1が備える取得部11および処理部12の機能の一部を、専用のハードウェアで実現し、一部を、ソフトウェアまたはファームウェアで実現してもよい。例えば、取得部11の機能は、専用のハードウェアである処理回路102が実現し、処理部12の機能は、プロセッサ103がメモリ104に記憶されたプログラムを読み出して実行することによって実現してもよい。このように、処理回路は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせにより上記機能を実現することができる。
【0050】
プロセッサ103が実行するプログラムは、複数のハードウェア間を有線または無線のいずれか一方または両方を介して接続するWWW(World Wide Web)等のシステム(Comport)から受信したものであってもよい。
また、情報処理装置1が後述するグラフニューラルネットワークの学習を行った際に、学習によって得られたパラメータ、特にニューラルネットワークにおいては重み行列を、上記システムにおいて送受信してもよい。
【0051】
情報処理装置1は、機械学習を行う学習装置として機能してもよい。
なお、学習装置は、CPU以外に、GPU(Graphics Processing Unit)等の並列演算を得意とする汎用のハードウェアを有する装置であってもよい。また、情報処理装置1は、通信ポートを経由して接続されている複数台のコンピュータで構成されていてもよい。
【0052】
以下の説明では、情報処理装置1が学習と推論の両方を行うものとしたが、学習と推論は、互いに独立して動作する別個の装置が行ってもよい。この場合、これらの装置の一方が情報処理装置1であってもよいし、両方が情報処理装置1であってもよい。
また、情報処理装置1は、1つのハードウェア内に複数の仮想ハードウェア環境を提供し、個々の仮想ハードウェアが個別のハードウェアとして仮想的に扱われる装置であってもよい。
【0053】
次に、実施の形態1に係る情報処理装置1の動作について説明する。
図5は実施の形態1に係る情報処理方法を示すフローチャートであり、情報処理装置1による一連の動作を示している。
まず、取得部11がネットリストを取得する(ステップST1)。例えば、取得部11は、図4Bに示したメモリ104から回路図モデルを読み出し、回路図モデルが示す回路図をネットリストに変換する。ネットリストの表記形式には、部品名を記載した後、配線名を記載するものがある。例えば、Telesis、PADS、Allegro、Express PCB、IntergraphおよびScicardsといった形式がある。
【0054】
また、ネットリストの表記形式には、配線名を記載した後に、部品名を記載する形式もある。例えば、Calay、MentorまたはVectronがある。
さらに、ネットリストの表記形式には、部品名と配線名を同時に記載する形式もある。例えば、ComputerVision、AlgorexまたはMultiwireなどがある。
【0055】
いずれの表記方法においても、グラウンド、入力および出力は配線として定義される。下記のネットリストは、スイッチング電源を動作させる電気回路に関するネットリストをTelesisの形式で表現したものである。
$PACKAGES
lt3489! LT3489;U1
ind! 2.2u;L1
schottky! 1N5818;D1
cap! 20u;C1
res! 28.7K;R1
res! 5.23K;R2
cap! .001u;C2
$NETS
N002; U1.1 U1.7
N003; U1.2 R1.2 R2.1
IN; U1.3 U1.6 L1.1
0; U1.4 C1.2 R2.2 C2.2
N001; U1.5 L1.2 D1.1
N004; U1.8 C2.1
OUT; D1.2 C1.1 R1.1
$END
【0056】
処理部12は、ネットリストから部品名リストを抽出し(ステップST2-1)、当該ネットリストから配線名リストを抽出する(ステップST2-2)。例えば、処理部12は、ネットリストに含まれる全ての部品名を部品名リストに格納し、当該ネットリストに含まれる全ての配線名を配線名リストに格納する。
なお、ステップST2-1の処理とステップST2-2の処理は、どちらが先に実行されてもよいし、同時に実行されてもよい。
【0057】
部品名リストには、半導体またはコンデンサといった構造的な特徴を有した部品が格納されており、グラウンド端子、入力端子および出力端子は含まれていない。一方、配線名リストには、配線の一部であるグラウンド配線、入力配線および出力配線が含まれる。
処理部12は、ネットリストに含まれるグラウンド配線、入力配線および出力配線を、グラウンド端子、入力端子および出力端子として部品名リストに追加する(ステップST3-1)。処理部12は、配線名リストからグラウンド配線、入力配線および出力配線を除去する(ステップST3-2)。これにより、部品名リストに、グラウンド端子、入力端子および出力端子を示す情報が部品情報として残るため、部品名リスト含むリスト情報を用いて電気回路をグラフネットワークに変換するときの情報劣化を抑制できる。
なお、ステップST3-1の処理とステップST3-2の処理は、どちらが先に実行されてもよいし、同時に実行されてもよい。
【0058】
上記ネットリストにおける「$PACKAGES」に続く行は、部品名を表しており、「$NETS」に続く行は、配線名を表している。このネットリストから抽出した部品名「U1、L1、D1、C1、R1、R2、C2」が部品名リストである。
また、ネットリストから抽出した配線名「N002、N003、IN、0、N001、N004、OUT」が配線名リストである。入力配線は「IN」と定義され、出力配線は「OUT」と定義される。ネットリストによっては、入力および出力に名前が定義されていない場合があるが、どのようなネットリストであっても、電気回路の入力および出力にそれぞれ対応する配線は含まれる。「0」は、グラウンド配線を示す配線名であり、例えば、半導体が実装された基板には必ず存在する。
なお、この場合、N001、N002、N003およびN004は、設計者が意図的に配線名を付与しなかった配線に対してCADが機械的に付与した配線名である。
【0059】
処理部12は、部品名リストに対し、グラウンド(GND)、入力(IN)および出力(OUT)を追加する。例えば、グラウンド(GND)、入力(IN)および出力(OUT)を追加した部品名リストが「U1、L1、D1、C1、R1、R2、C2、GND、IN、OUT」である。グラウンド(GND)、入力(IN)および出力(OUT)は、回路部品と異なり構造的な特徴を有さないため、部品名リストには設定されていないが、処理部12は、グラウンド(GND)、入力(IN)および出力(OUT)を回路部品として処理する。
【0060】
ネットリストにおいて、グラウンド(GND)、入力(IN)および出力(OUT)は一つである必要はなく、複数あってもよい。例えば、グラウンドは、システムグラウンドとフレームグラウンドに分けることもあり、電気回路によっては、両者をコンデンサ、抵抗またはインダクタ等で接続することがある。これらのグラウンドは、異なるグラウンドとして定義してもよい。
【0061】
電気回路には、商用電源またはバッテリに繋がる電源端子だけでなく、外部信号の入力端子など、複数種類の入力端子がある。
また、電気回路には、例えば、モータ等の回転機に繋がる信号を出力するための出力端子に加え、回転機の回転数を示す信号を出力するための出力端子など、複数の出力端子がある。
【0062】
処理部12は、配線名リストから、グラウンド配線(0)、入力配線(IN)および出力配線(OUT)を除去する。上記配線名リストは、「N002、N003、N001、N004」となる。これにより、グラウンド、入力および出力が、配線ではなく、部品として定義され、その結果、電気回路からグラフネットワークへ変換するときの情報劣化を低減することができる。
【0063】
例えば、ネットリストの他の表記形式である「PADS」を用いて同じ電気回路を表すと、以下のようになり、この場合も同様に部品名リストと配線名リストを作成できる。
なお、ネットリストのいずれの表記形式であっても、部品および配線がないと電気回路が成立しないため、部品名リストおよび配線名リストは必ず作成することができる。
*PART*
U1 LT3489
L1 2.2u
D1 1N5818
C1 20u
R1 28.7K
R2 5.23K
C2 .001u
*NET*
*SIGNAL*N002
U1.1 U1.7
*SIGNAL*N003
U1.2 R1.2 R2.1
*SIGNAL*IN
U1.3 U1.6 L1.1
*SIGNAL*0
U1.4 C1.2 R2.2 C2.2
*SIGNAL*N001
U1.5 L1.2 D1.1
*SIGNAL*N004
U1.8 C2.1
*SIGNAL*OUT
D1.2 C1.1 R1.1
*END*
【0064】
次に、処理部12は、部品名リストにおける部品名から、配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストを作成する(ステップST4)。例えば、処理部12は、ネットリストから、配線名リストにおける配線名に対応する、部品名リストにおける部品名をリスト順に抽出し、抽出した部品名を含む組み合わせリストを作成する。ここで、処理部12は、組み合わせリストに、部品名リストに追加したグラウンド端子、入力端子および出力端子を含める。
なお、「配線名に対応する部品名」は、配線名が示す配線が接続する部品を示す部品名である。
【0065】
組み合わせリストにグラウンド端子を含めることによって、組み合わせリストの情報量を軽減することができる。一般的に、電気回路における多くの部品は、グラウンドGNDに接続している。例えば、N個の部品がグラウンドGNDに接続している場合、組み合わせリストには、グラウンドGNDと部品との組み合わせがN個分含まれる。
なお、グラウンドGNDが定義されていない場合は、グラウンドGNDと部品との組み合わせを、Nの2乗に比例する数だけ作成する必要がある。
【0066】
部品間を配線で接続しないと電気回路は成立しないため、正常に機能する電気回路であれば、必ず組み合わせリストを作成することが可能である。
図6は、電気回路の例(1)を示す回路図である。図6に示す電気回路のネットリストは、下記のようになる。
#部品




#配線
(1);IN,A
(2);A,B
(3);B,C,D
(4);D,OUT
GND;A,B,C
【0067】
上記のネットリストから抽出された部品名リストは、「IN」、「OUT」および「GND」を追加することにより、「A,B,C,D,IN,OUT,GND」となる。
配線名リストは、「IN」、「OUT」および「GND」を除去することにより、「(1),(2),(3),(4)」となる。
【0068】
グラウンド端子に繋がる配線が定義されていないネットリストには、グラウンドと部品との間に配線を設けて、その配線に名前を付与する。
すなわち、図6に示す電気回路のネットリストにおける「GND;A,B,C」から、例えば、グラウンドを「G」で表し、部品名を繋げて、「G-A」、「G-B」および「G-C」という配線名を付与する。その結果、配線名リストは、「(1),(2),(3),(4),G-A,G-B,G-C」となる。
【0069】
部品名リスト「A,B,C,D,IN,OUT,GND」のうち、配線名リスト「(1),(2),(3),(4),G-A,G-B,G-C」における、配線名に対応する部品名をネットリストから順に抽出したものが、下記の組み合わせリストである。
(1);IN,A
(2);A,B
(3);B,C,D
(4);D,OUT
G-A;GND,A
G-B;GND,B
G-C;GND,C
【0070】
続いて、処理部12は、組み合わせリストにおける部品名のうち、一つの配線名に対応する部品名が3つ以上あるか否かを判定する(ステップST5)。ここで、組み合わせリストに一つの配線名に対応する部品名が3つ未満であると判定した場合(ステップST5;NO)、処理部12は、組み合わせリストにおける部品名を識別番号に置き換える(ステップST6)。
【0071】
一方、組み合わせリストに一つの配線名に対応する部品名が3つ以上であると判定した場合(ステップST5;YES)、処理部12は、2つの部品名の組み合わせに分解する(ステップST7)。例えば、ある配線名が保持する部品名、すなわち、一つの配線名に対応する部品名が[コンデンサ、コイル、抵抗]である場合、処理部12は、[コンデンサ、コイル]、[コイル、抵抗]および[抵抗、コンデンサ]という3つの組み合わせに分解する。同様に、部品名が[コンデンサ、コイル、抵抗、半導体]である場合、処理部12は、[コンデンサ、コイル]、[コンデンサ、抵抗]、[コンデンサ、半導体]、[コイル、抵抗]、[コイル、半導体]および[抵抗、半導体]という6つの組み合わせに分解する。
【0072】
処理部12は、2つずつの部品名の組み合わせに分解したものを、組み合わせにリストに追加し、分解前の3つ以上の部品名を有する組み合わせを、組み合わせリストから除去する。ただし、この処理は、グラフネットワークにおける隣接行列を作成するための処理であり、組み合わせリストから直接、隣接行列を作成できるのであれば、分解しなくてもよい。
【0073】
例えば、処理部12は、上記ネットリストにおいて、(3);B,C,Dが3つ以上の部品名の組み合わせに該当するので、(B,C)、(C,D)および(D,B)と分解する。その結果、図6に示す回路図について下記の組み合わせリストが得られる。
(1);(IN,A)
(2);(A,B)
(3);(B,C),(C,D),(D,B)
(4);(D,OUT)
G-A;(GND,A)
G-B;(GND,B)
G-C;(GND,C)
【0074】
図7は、電気回路の例(2)を示す回路図である。図7に示す回路図は、下記のネットリストとなる。
#部品





#配線
’ ;IN,A
’ ;A,D
’ ;C,D,E
(4A);E,F
(5A);F,OUT
GND;A,C,E
【0075】
上記のネットリストに含まれる部品名リストは、「A,C,D,E,F,GND,IN,OUT」であり、配線名リストは、「(1A),(2A),(3A),(4A),(5A),G-A,G-C,G-E」である。処理部12は、配線名リストにおける各配線名に対応する部品名を、ネットリストから抽出することにより、下記の組み合わせリストを作成する。
(1A);IN,A
(2A);A,D
(3A);C,D,E
(4A);E,F
(5A);F,OUT
G-A;GND,A
G-C;GND,B
G-E;GND,E
【0076】
続いて、処理部12が、各組合せリストが3つ以上の部品名を有する場合、これを分解する。例えば、処理部12は、組み合わせ「(3A);C,D,E」を2つずつの部品名の組み合わせに分解することにより、下記の組み合わせリストを作成する。
(1A);(IN,A)
(2A);(A,D)
(3A);(C,D),(D,E),(E,C)
(4A);(E,F)
(5A);(F,OUT)
G-A;(GND,A)
G-C;(GND,B)
G-E;(GND,E)
【0077】
これまで、同一の部品以外の部品名は一致しないことを前提に説明したが、別の機能を有する回路部品で同一の部品名が用いられている場合、処理部12は部品名を変更する。
逆に、同一の回路部品で別の部品名が用いられている場合、処理部12は部品名を変更する。部品名の数が多く、統一が難しい場合は、各部品メーカーの型式番号を用いると、統一が容易である。
【0078】
処理部12は、部品名リストにおける各部品名が示す部品の種類または部品の型式番号ごとに共通した固有の識別番号を定義し(ステップST8)、部品名リストにおける各部品番号を識別番号に置き換える(ステップST9)。
処理部12は、部品名リストおよび組み合わせリストに含まれる各部品名を識別番号に置き換える。このようにして得られた部品名リストおよび組み合わせリストがリスト情報として出力される。
【0079】
部品名を識別番号に置き換えた部品名リストおよび組み合わせリストを含むリスト情報を用いることにより、数値で回路情報を表現でき、上述したようにグラフネットワークの情報劣化が低減されるため、このグラフネットワークを用いることにより元の電気回路を作成することができる。
【0080】
また、識別番号は、部品の特徴である部品の種類ごとに定義してもよい。
部品の種類は、例えば、コンデンサ、コイル、電源ICまたはダイオードといった情報で表現できる。部品の種類は、分類の仕方にもよるが概ね100種類以下である。このように部品の種類は比較的少ない。例えば、処理部12は、部品の種類ごとに設定した通し番号を、識別番号として用いて、部品名を置き換える。
【0081】
さらに、識別番号は、部品の型式番号ごとに定義してもよい。
電気回路に使用される部品の数が限られている場合、部品の型式番号ごとの識別番号は比較的少なくなる。この場合、部品の型式番号で定義した識別番号を用いることにより、リスト情報からグラフネットワークへの変換したときの情報劣化を防ぐことができる。
【0082】
ステップST8において、処理部12は、下記の方法によって識別番号を定義し、定義した識別番号を部品名に付与する。
図6に示した電気回路に関する部品名リストは、上述したように、「A,B,C,D,IN,OUT,GND」であり、図7に示した電気回路に関する部品名リストは、上述したように、「A,C,D,E,F,GND,IN,OUT」である。
【0083】
処理部12は、これらの部品名リストを結合することにより、「A,A,B,C,C,D,D,E,F,GND,GND,IN,IN,OUT,OUT」という部品名リストを作成する。この部品名リストには、同一の部品名が複数含まれている。
処理部12は、部品名の重複を除去することで、「A,B,C,D,E,F,GND,IN,OUT」という部品名リストを作成する。
続いて、処理部12は、部品名リストにおける各部品が、別々の識別番号となるように識別番号を付与する。識別番号として自然数を用いると、部品名を識別番号に置き換えた部品名リストは、下記のようになる。なお、識別番号は、連続した数字である必要はなく文字または記号を用いてもよい。
A→1
B→2
C→3
D→4
E→5
F→6
GND→7
IN→8
OUT→9
【0084】
部品名「GND」の識別番号を「0」とし、部品名「IN」の識別番号を「1」とし、部品名「OUT」の識別番号を「2」として、順番は任意に入れ替えて構わない。
また、識別番号は、部品の回路定数、部品の型式番号、部品のメーカー、部品の耐圧に応じた番号であってもよい。例えば、電源、メモリ、CPUなどの機能が同じ部品には、同一の識別番号が付与される。
【0085】
例えば、スイッチング電源において絶縁電源と非絶縁電源とを分けたときに、絶縁電源に対して同一の識別番号を付与し、非絶縁電源に対して同一の識別番号を付与する。
また、昇圧、降圧または昇降といった動作に対して同一の識別番号を付与してもよい。
さらに、受動素子の回路定数に応じて識別番号を付与してもよい。
例えば、容量が1.0μFのコンデンサに同一の識別番号を付与し、容量が1.0μFから3.3μFまでの範囲のコンデンサに同一の識別番号を付与してもよい。
さらに、ユーザの要求に合わせて識別番号の定義を変更してもよい。
さらに、部品メーカーが部品に設定した型式番号ごとに識別番号を付与してもよい。
識別番号の定義方法は、取り扱う電気回路に応じて変更してもよい。
【0086】
例えば、部品の種類(コンデンサ、コイル、抵抗、半導体など)ごとの識別番号で部品名を置き換えると、図6に示した電気回路に関する部品名リストが「1,2,3,4,7,8,9」となり、組み合わせリストは、「(8,1),(1,2),(2,3),(3,4),(4,2),(4,9),(7,1),(7,2),(7,3)」となる。
また、図7に示した電気回路に関する部品名リストは、「1,3,4,5,6,7,8,9」となり、組み合わせリストは、「(8,1),(1,4),(3,4),(4,5),(5,3),(5,6),(6,9),(7,1),(7,2),(7,5)」となる。
【0087】
処理部12が、上述した一連の処理を繰り返すことにより、全ての回路図に関する部品名リストおよび組み合わせリストが作成される。識別番号の定義は任意であるため、注目している部品の特徴に合わせて識別番号を決めることにより、回路の使用目的に合わせて回路の使用法を変更することができる。例えば、部品の種類を予測する問題において、型式番号は、識別番号として用いるには冗長な情報である一方、部品の製造メーカを識別番号として用いると、情報が足らず、正しい予測ができない虞がある。そのため、使用目的に応じた識別番号の選択が必要であり、識別番号が正しく選択された場合、部品の種類を予測する際の計算量が小さくかつ予測精度を向上させることができる。
【0088】
また、一つの部品名に対して複数の識別番号を付与してもよい。
例えば、部品の型式番号、部品の種類および部品の回路定数にそれぞれ対応する識別番号を付与してもよい。この場合に、例えば、図7に示した電気回路の部品名リストは、「(1,3,0),(3,3,7),(4,5,3),(5,2,0),(6,8,1),(7,1,0),(8,1,0),(9,1,0)」となる。
部品名である「IN」、「OUT」および「GND」の部品の種類は、いずれも配線であるので、識別番号を「1」と定義し、半導体に付与した識別番号「1」と、別の半導体に付与した識別番号「5」と、部品名「IN」、「OUT」および「GND」が示す部品は、入力端子、出力端子およびグラウンドであり、回路定数がない.この場合、例えば、識別番号を「0」と定義する。
例えば、半導体内部の特性を考慮して半導体にも回路定数を設けてもよいし、「IN」、「OUT」および「GND」が示す部品の種類に異なる識別番号を付与してもよい。
識別番号の付与の方法は、回路間で共通のルールに基づくものであれば、任意であって構わない。
【0089】
識別番号は、実数であればよく、必ずしも自然数でなくてもよい。
部品の回路定数をそのまま識別番号として入力してもよい。
例えば、一般的な回路で用いられる回路定数の範囲は、最大数f(フェムト)から数100G(ギガ)と10の20乗程度の範囲がある。このため、回路定数をそのままの形で識別番号として用いると大きい数字が支配的になってしまう。
また、計算誤差によって小さな値は丸め込まれたり、異なる値に変化することがある。それらを回避するため、回路定数に対数を含む関数を用いてもよい。例えば、関数をf(x)=log10(x)+15とする。このとき、+15は、-log10(f=1フェムト)である。これにより、f(x)は0以上の実数として変換することが可能である。また、1fが入ったときに0となり、どの部品が入っているかの判断ができなくなることを避けるために、log10(x)+16としたり、log10(x)+15+(0より大きく1未満の微小量)としても構わない。また、説明の簡単のため、対数の底が10である場合を説明したが、10でなくてもよい。
【0090】
部品定数が1桁以下の精度で十分な場合も多く存在するので、その場合、下記のように値を丸め込んでオーダーによって識別番号を定義してもよい。
1f→1,10f→2,100f→3,1n→4,10n→5,100n→6,1u→7,10u→8,100u→9,1m→10,10m→11,100m→12,1→13,10→14,100→15,1k→16,10k→17,100k→18,1M→19,10M→20,100M→21,1G→22,10G→23,100G→24。
【0091】
上述した一連の処理により、回路図をネットリストに変換し、ネットリストを、部品名リストおよび組み合わせリストに変換することができる。部品名リストおよび組み合わせリストを用いると、グラフ理論におけるグラフネットワークが作成することができる。
グラフネットワークは、ネットリストでは困難な、類似回路の検索に用いることが可能である。
【0092】
例えば、処理部12が、組み合わせリストを用いて作成される隣接行列を順番に探索していくことで、半導体、コンデンサ、コイル、グラウンドおよび半導体というループ経路の探索が可能である。特に、特定の回路部品を使った電気回路において、回路を構成する部品それぞれの識別番号を順番に探索する。
【0093】
例えば、処理部12は、ノイズ源である半導体と半導体の端子番号とを含むデータベースを参照し、電気回路から、端子番号に対応する端子を始点として、同じ部品を2回以上通らない条件で、隣接した部品を連続的に探索する探索プロセスを行い、半導体を表す電流ループを抽出して探索プロセスを終える。
具体的には、探索対象の半導体の端子を探索の開始点として、開始点から隣接する1つ以上の部品を探索し、その部品に隣接する1つ以上の回路部品を探索する処理を連続的に行う。ただし、探索の開始点となった半導体以外の部品は2回以上通らない条件で探索する。これにより、電流が元に戻る、または電流が途中で止まるといった物理現象に反する探索を避けることができる。
【0094】
処理部12は、探索開始点となった半導体のうち、探索の開始点となった端子を除く、いずれかの端子に終端したとき、探索プロセスを終了する。
この探索プロセスによって作られた経路を上記「電流ループ」と呼ぶ。すなわち、上述の処理は、キルヒホッフの法則である電流則(キルヒホッフの第1法則)における電流ループ経路を抽出する処理と同等である。
終端は、どのような端子でも構わない。例えば、グラウンド端子が最も多いが、差動線路であれば、差動信号のいずれかの端子が始点であり、反対の端子が終点となる。
これにより、例えば、ノイズフィルタの抽出などをアルゴリズムに基づいて検出することが可能であり、または、電流が流れ得る伝搬経路のインピーダンスを推定し、どの電流ループに最も電流が流れやすいかを回路から予測することが可能となる。
これにより、処理部12は、1つ以上の半導体を含む1つまたは複数の電気回路から、探索対象の半導体の特徴と半導体を示す電流ループの特徴とを抽出し、抽出した半導体の特徴と電流ループの特徴とを用いて、探索対象の半導体と類似した半導体を探索することができる。
【0095】
また、処理部12は、電流ループに、ノイズフィルタを示す部品があるか否かを判定してもよい。一例として、半導体の電源入力端子から対地間コンデンサ(Yコンデンサ)とグラウンドとを経由して半導体のグラウンド端子に戻る経路を検出する場合を説明する。本実施の形態においては、対地間コンデンサおよびグラウンドは、グラフネットワークのノードとして定義される。このため、スタートとなるノード(半導体)から2つのノードを経由してスタートと同じノードに戻る経路の有無を判定することにより当該経路を検出できる。この検出のためには、2つのノードを経由する全ての電流ループを抽出し、抽出した電流ループの一方のノードがコンデンサであり、もう一つのノードがグラウンドであるものを抽出すれば、ノイズフィルタがある電流ループを抽出することができる。
さらに、ノイズ対策部品となる型式番号を有するデータベースを情報処理装置1に予め作成しておく。処理部12は、抽出したコンデンサが上記データベースに含まれるか否かを確認することにより、含まれる場合に、電流ループにノイズフィルタがある場合と判定することができる。
さらに、ノイズ源となり得るノードを限定し、計算量を減らすために、ノイズ源となりうる回路部品の型式番号を有するデータベースを、情報処理装置1に予め作成しておく。処理部12があてはまるノードのみを探索の始点とすることにより探索対象を減らすことができる。
上述の説明では対地間コンデンサの例を示したが、T型フィルタまたはπ型フィルタ等であっても、同様にして抽出することができる。
また、同様にして任意の部品間の接続の有無を確かめることができる。
さらに、各ノードが持つ属性情報を用いることで、部品間のインピーダンス、電流量、または電圧降下などの周波数特性または時間波形を予測することが可能である。
処理部12は、半導体の端子ごとに電流ループを作成し、電流ループが経由する回路部品を分析することで、類似の回路を抽出することができる。
処理部12は、上記の探索処理によって、電気回路における部品の数または配線の数、グラウンドまたは入出力ポートの数などに依存することなく、ノイズフィルタ回路の探索または類似回路の探索が可能である。これにより、ノイズフィルタが設けられるノイズ源となる半導体、入力コネクタまたは出力コネクタに隣接した経路を探すことにより、探索の誤りを低減できる。
【0096】
なお、ノイズ源となる半導体は、ネットリストから部品の型式番号をテキストデータとして抽出できる。また、回路図において、入力および出力は、入力記号および出力記号で記載されることが多いが、コネクタの型式番号が付与された入力コネクタおよび出力コネクタとして記載されることもある。このため、ノイズ源となる半導体、ノイズ対策部品、入力コネクタまたは出力コネクタが登録された、上述のデータベースを用意しておき、このデータベースを参照してテキストデータのみを抽出することにより探索の漏れを抑えることができる。
【0097】
また、ノイズ源またはノイズフィルタの探索だけでなく、ノードおよびエッジに抵抗成分または遅延成分を持たせることにより、処理部12は、2つの部品間のインピーダンスを計算して最も電流が流れる経路または最も早くパルス信号が到来する経路の推定などを行うことも可能である。
【0098】
電気回路が一つの配線に並列に接続された複数の部品を有する場合、これまでの処理では、組み合わせリストにおける部品の組み合わせ数が増大してしまう。図8は、電気回路の例(3)を示す回路図である。図8に示す電気回路は、入力端子INと出力端子OUTとの間に一本の配線Line1が接続され、この配線Line1に対しコンデンサC1、コンデンサC2および抵抗Rがそれぞれ並列に接続された回路である。グラウンド、入力および出力を部品として扱う情報処理装置1は、上記電気回路が下記の図9に示すグラフネットワークに変換されるリスト情報を作成する。
【0099】
図9は、ノード間をエッジで接続したグラフネットワークを示す概要図である。図9に示すグラフネットワークは、図8に示した電気回路における部品をノードで表し、これらの部品間をエッジで接続したものである。情報処理装置1は、グラウンド、入力および出力を部品として扱うリスト情報を作成する。このため、情報処理装置1が作成したリスト情報は、例えば、半導体X、コンデンサC1、コンデンサC2、抵抗R、および出力端子OUTがそれぞれノードとして表され、これら全てのノード間がエッジでそれぞれ接続されたグラフネットワークに変換される。図9においては、説明の簡単のために、入力端子INを示すノードおよびグラウンドを示すノードの記載を省略している。
なお、当該グラフネットワークは、部品名がノードとなり、任意のノードに隣接しているノードは、部品名のノードであるという特徴を有する。
【0100】
電気回路が一つの配線に並列に接続された複数の部品を有すると、組み合わせリストにおける互いに対応する部品の組み合わせは、上記配線に並列に接続された部品の数の約2乗に比例して増加する。図9においては、一本の配線Line1に対して3つの部品(コンデンサC1、コンデンサC2および抵抗R)が並列に接続されているため、3の2乗である9個の組み合わせが生じている。例えば、大規模な回路には、一本の配線に対し10個以上のバイパスコンデンサが並列に接続されたものがある。このような回路は組み合わせ数が大幅に増加する。このため、電流ループの探索に要する計算量が指数関数的に増大し、探索時間も増大する。
【0101】
なお、図9に示したグラフネットワークにおいても、特定の部品名ノードを始点として全ての電流のループを探索する際に、一度通ったノードを2度通らない条件を満たすようにノードを網羅的に探索することができる。しかしながら、部品名ノードが隣接する場合には、上述したように、一本の配線に並列に接続された部品の数の約2乗に比例する数の成分を含める必要がある。例えば、図9に示すように、並列に接続された部品の数が3個である場合、3個の部品のそれぞれの部品名に対応するノードを経由して始点と同じ部品名のノードに戻る経路を算出することは困難である。
【0102】
そこで、情報処理装置1は、上述のように一本の配線に複数の部品が並列に接続された大規模な回路についての部品名の組み合わせ数の増加が抑制されるように、配線名と部品名とを含む組み合わせリストを作成してもよい。例えば、処理部12が、上記電気回路のネットリストから部品名リストおよび配線名リストを抽出し、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名とこれに対応する配線名とを含む組み合わせリストとを作成し、更新した部品名リストおよび組み合わせリストを出力する。
【0103】
図10は、配線ノードを経由してノード間を接続したグラフネットワークを示す概要図である。処理部12は、図10に示すように、配線名リストにおける各配線名が示す配線により接続される部品に対応する部品名と、上記各配線名と、の組み合わせを組み合わせリストとして抽出する。このリスト情報から変換されたグラフネットワークは、部品名と配線名とがノードで表され、任意の部品名のノードに隣接するノードは、配線名のノードになる特徴を有する。これにより、組み合わせ数を、部品の数の1乗に比例する数にすることができる。
【0104】
図10に示したグラフネットワークにおいても、特定の部品名ノードを始点として全ての電流のループを探索する際に、一度通ったノードを2度通らない条件を満たすように、ノードを網羅的に探索することができる。
一方、当該グラフネットワークでは、部品名ノードと配線名ノードとが隣接し、3個の回路部品(コンデンサC1、コンデンサC2および抵抗R)であるノードの代わりに4つの配線名ノードと3つの部品名ノードを経由して始点に戻る経路を探索することになる。 ただし、個々のノードに繋がる配線は1次比例であるため、探索に要する計算量が指数関数的に大きくなることはない。
【0105】
実験の一例として、同じ計算機環境で部品数が1,000個以上の大規模な回路の電流ループを探索したところ、グラフネットワークにおいて部品名ノードが隣接する場合は、10分間かかったの対し、部品名ノードと配線名ノードとを隣接させた場合は、1秒以内で探索が完了した。この例を見ても、電流ループ探索においては特に大きな効果を得られる。
【0106】
ただし、部品名ノードが隣接する場合に比べて、部品名ノードと配線名ノードとが隣接する場合、一本の配線に並列して接続された部品の数が多数である場合に有利だが、配線名ノードが増えるため、並列に接続された部品の数が少ない場合には、不利になる。
そのため、回路の規模または一本の配線に対して並列に接続された部品の数に応じて、2つの方法を使い分けるのが望ましい。例えば、概ね100個程度の部品数を有した回路の電流ループを探索するのであれば、部品名ノードが隣接するグラフネットワークを用いた方がよい場合が多い。
なお、配線名ノードを含む、含まないに関わらず、上述した両方法では、ループ経路が同じで向きが逆の経路が得られる。このため、後処理で、一方の経路のみを残し、他方を除去して構わない。ただし、電流の向きが分かり、有向グラフである場合は、一方の経路のみが抽出されるため、上記の後処理は実施しなくてもよい。
【0107】
処理部12は、部品の回路定数を、対数を含む関数に代入して算出した関数値で、特徴量行列における受動回路に対応する要素を置き換えてもよい。
回路定数を有する部品において、回路定数に対して対数を含む関数を施して得られる関数値で、特徴量行列における受動回路に対応する要素を変更することにより、回路定数を含めてグラフネットワークに変換することができる。
回路定数を有する部品は、抵抗器、コンデンサまたはコイルであるが、オペアンプなどの小信号回路であってもよい。特定の条件下で、抵抗器、コンデンサおよびコイルで構成される部品に変換できるのであれば、抵抗器、コンデンサおよびコイル以外の部品も回路定数を有する回路部品としてもよい。
【0108】
また、物理寸法を有する部品は、浮遊容量、残留インダクタンスまたは残留抵抗などの寄生成分を有する。このため、処理部12は、寄生成分を有する1つの部品を、2つ以上の抵抗、コンデンサまたはコイルのみを有する部品に分解する。分解は、インピーダンス測定から等価回路を予測し、等価回路の回路定数を決めることによって実現できる。これにより、複雑な部品特性の回路であってもグラフネットワークで表現することができる。
1つの特性のみを有する部品の回路定数を、部品名リストにおける部品名に付与する。回路定数は、特殊な例を除いて多くの場合、1pから1Gまでの20桁以上の幅を有するので、回路定数に対数を施してもよい。回路定数に対数を施すことにより、例えば1pFとなるコンデンサが計算誤差で埋もれてしまうことを防止できる。
【0109】
処理部12は、関数値に対して正規化または標準化の両方または一方を行ってもよい。
例えば、回路定数に対数を施した結果に対して正規化を施す。
グラフネットワークをグラフニューラルネットワークに入力するときに、グラフニューラルネットワークにおける活性化関数は0から1の実数に反応する。
回路定数に対数を施した結果に対して正規化を施し、0以上1以下、または0より大きく1以下の実数に全単射することにより、回路定数に対数を施した結果を、実数の活性化関数に対応付けることができる。
【0110】
回路定数に対数を施した結果に対して標準化を施してもよい。
例えば、電気回路に使用されるコンデンサの回路定数に対数を施した結果の分布において、100μF以下のコンデンサが多い場合に、100Fのようなコンデンサが一つでもあると、回路定数に対数を施した結果の分布がばらついて、コンデンサごとの回路定数に対数を施した結果の差が小さく見積もられてしまう。
そこで、回路定数に対数を施した結果に対して標準化を施すことにより、分布のばらつきを低減することができる。
また、回路部品の種類ごとに回路定数が持っているレンジが異なるため、回路部品の種類ごとに異なる正規化または標準化を行ってもよい。例えば、100Fのコンデンサは、コンデンサの中で大きな部類に入るのに対して、100Ωの抵抗は、抵抗の中では小さな部類に入るため、レンジが大きくなる。そのため、例えば、コンデンサの場合、1μFが中心となるように分布を調整し、抵抗の場合は、100Ωが中心となるように分布を調整するなどして、丸め込み誤差を低減し、回路定数に対数を施した結果の見積もりの精度が向上する。
【0111】
また、処理部12は、回路定数に対数を施した結果に対して正規化の後に標準化を行ってもよく、または、標準化の後に正規化を行ってもよい。このように正規化と標準化とを組み合わせることにより、両方の効果が得られる。
【0112】
回路定数を持たない回路部品は、識別番号として「0」または「1」などの同一の数値を付与することで情報とはならない。このため、付加情報で作られる特徴量リストを行列で表現することができる。
例えば、コンデンサまたはコイルであれば、回路定数で分類でき、2端子であるため、グラフネットワークから電気回路に変換するときに情報劣化を起こすことはない。
一方、一つの電気回路に2つ以上の半導体が含まれており、同一の型式番号の半導体が2つ以上含まれる場合に、グラフネットワークから電気回路に変換するときに情報劣化を起こす。そのため、半導体に対する部品名リストに対して、異なる部品であることを示す付加情報を付与してもよい。
【0113】
例えば、0より大きく1以下の実数を半導体の数で分割し、半導体ごとに異なる実数を付加情報として割り当てる。
1つの電気回路に同一の型式番号を有する半導体が2つ存在する場合、一方の半導体には0.3を割り当て、他方の半導体に0.6というように異なる実数を割り当てる。
また、電気回路における部品が半導体であることのみが分かっていて、当該電気回路が10個の半導体によって構成された回路であれば、0.1刻みで0.1から1.0までを付加情報として割り当ててもよい。
なお、付加情報は、数値が異なっていればよく、どのような順番で実数を割り当てても構わない。
【0114】
なお、識別番号を用いない場合、処理部12は、部品名を識別番号に置き換えず、部品名リストおよび組み合わせリストをリスト情報としてそのまま出力してもよい。
【0115】
変形例1.
変形例1に係る情報処理装置1においては、処理部12が、部品名リストをグラフネットワークにおけるノードとし、配線名リストをグラフネットワークにおけるエッジとし、組み合わせリストをグラフネットワークにおける隣接行列として、グラフネットワークを用いて、グラフニューラルネットワークの学習を行うものである。
グラフニューラルネットワークの学習は、学習データのデータセットがノードとエッジのみである場合、教師なし学習となる。
一方、回路シミュレーションまたは実験によって正解データが得られる場合は、処理部12は、ノード、エッジおよび正解データを学習データのデータセットとして、グラフニューラルネットワークの学習を行う。
また、処理部12は、エッジの周波数特性などをエッジの属性情報(edge attribute)を含めて、グラフニューラルネットワークの学習を行う。
さらに、処理部12は、回路定数ごとまたは半導体ごとの部品の特性を、ノードの属性情報(node attribute)として、グラフニューラルネットワークの学習を行う。
【0116】
図11は、実施の形態1におけるグラフネットワークへのデータ入力処理例(1)を示すフローチャートである。電気回路の数をn個とすると、電気回路の数と同じn個のネットリストができるので、処理部12は、n個のネットリストを処理対象に設定する(ステップST1A)。処理部12は、パラメータiとして「1」を設定する(ステップST2A)。
【0117】
処理部12は、関数g[i]=[[node],[edge]]に、パラメータiの値を設定する(ステップST3A)。処理部12は、取得部11が取得したi番目のネットリストから、部品名リストおよび配線名リストを抽出する。
【0118】
処理部12は、i番目のネットリストから抽出した部品名リストをグラフネットワークのノードとして読み込み、配線名リストをグラフネットワークのエッジとして読み込む(ステップST4A)。処理部12は、i番目のネットリストに関するノードとエッジを1つのデータセットとし、関数g[i]と紐付けてメモリ104等の記憶領域に格納する(ステップST5A)。
【0119】
処理部12は、パラメータiがn以下であるか否かを判定する(ステップST6A)。パラメータiがn以下であれば(ステップST6A;YES)、処理部12は、パラメータiに「1」を加算して(ステップST7A)、ステップST4Aの処理に戻る。
一方、パラメータiがnよりも大きいと判定すると(ステップST6A;NO)、処理部12は、g[1]~g[n]にそれぞれ紐付くデータセットを出力する(ステップST8A)。
【0120】
ノードは、(各回路の部品の数+グラウンド端子+入力端子+出力端子)×(ノードの特徴量の数)の行列となる。例えば、図6に示した電気回路では、ノードは7×1の行列となる。なお、これまで入力端子および出力端子は1つの電気回路を示したが、1つ以上の端子を有していればよく、この場合、行列の列は大きくなる。
【0121】
また、ノードの特徴量の数をワンホットとして入力してもよく、その場合は、ノードの特徴量の数を、M個(例えば、図6に示した電気回路のように、部品の種類として、コンデンサ、コイル、第1の半導体、第2の半導体を有する場合、M=4)とすると、ノードは、7×Mの行列となる。エッジは、2×(エッジの数)の行列となる。ここで、(エッジの数)に乗算される「2」は、部品名リストにおける任意の2つの部品を意味し、エッジは、これら2つの部品間をエッジの数分だけ接続することを示す行列となる。
なお、電流の向きが分かっている場合などは、有向グラフであってもよい。有向グラフにおいて、組み合わせリストにおける部品の電流が流れる順番を例えば(1,2)と表現した場合、定義により1から2の向き、または2から1の向きを意味する。無向グラフのように双方向であるエッジが存在してもよく、その場合、(1,2)に対し(2,1)をさらに追加すればよい。双方向のエッジを考慮すると、無向グラフが2×(エッジの数)の行列の場合、有向グラフでは最大4×(エッジの数)の行列となる。
【0122】
図6に示した電気回路の場合、組み合わせリストにおける組み合わせが(8,1),(1,2),(2,3),(3,4),(4,2),(4,9),(7,1),(7,2),(7,3)の9個であるため、ノードは2×9の行列となる。この行列の要素は、ノードとなる部品名リストに含まれている識別番号である。これは、ある回路に含まれる部品が、他の回路に含まれる部品とエッジを形成することがないことを意味している。
【0123】
グラフニューラルネットワークでは個々の回路を順番に処理していくこともできるが、GPUなどの専用のハードウェアを用いると並列化できる。
特に、回路の数が数1,000個以上と大きくなってくると、個々の回路を順番に計算するよりも、まとめて処理する方が計算速度または計算効率の点で望ましい。そのため、全部または一度にメモリに格納できるノードとエッジの組み合わせをまとめて入力する。
この例においては、正解データを持たないため教師なし学習となる。
【0124】
図12は、実施の形態1におけるグラフネットワークへのデータ入力処理例(2)を示すフローチャートである。電気回路の数をn個とすると、電気回路の数と同じn個のネットリストができるので、処理部12は、n個のネットリストを処理対象に設定する(ステップST1B)。処理部12は、パラメータiとして「1」を設定する(ステップST2B)。
【0125】
処理部12は、関数g[i]=[[node],[edge],[正解データ]]に、パラメータiの値を設定する(ステップST3B)。処理部12は、取得部11が取得したi番目のネットリストから、部品名リストおよび配線名リストを抽出し、事前に求められた正解データを取得する。
【0126】
処理部12は、i番目のネットリストから抽出した部品名リストをグラフネットワークのノードとして読み込むとともに、配線名リストをグラフネットワークのエッジとして読み込み、さらに正解データを読み込む(ステップST4B)。処理部12は、i番目のネットリストに関するノード、エッジおよび正解データを1つのデータセットとし、関数g[i]と紐付けてメモリ104等の記憶領域に格納する(ステップST5B)。
【0127】
処理部12は、パラメータiがn以下であるか否かを判定する(ステップST6B)。パラメータiがn以下であれば(ステップST6B;YES)、処理部12は、パラメータiに「1」を加算して(ステップST7B)、ステップST4Bの処理に戻る。
一方、パラメータiがnよりも大きいと判定すると(ステップST6B;NO)、処理部12は、g[1]~g[n]にそれぞれ紐付くデータセットを出力する(ステップST8B)。
【0128】
図13は、実施の形態1におけるグラフネットワークへのデータ入力処理例(3)を示すフローチャートである。電気回路の数をn個とすると、電気回路の数と同じn個のネットリストができるので、処理部12は、n個のネットリストを処理対象に設定する(ステップST1C)。処理部12はパラメータiとして「1」を設定する(ステップST2C)。
【0129】
処理部12は、関数g[i]=[[node],[edge],[edge attribute],[正解データ]]に、パラメータiの値を設定する(ステップST3C)。処理部12は、取得部11が取得したi番目のネットリストから、部品名リストおよび配線名リストを抽出し、事前に求められたエッジの属性および正解データを取得する。
【0130】
処理部12は、i番目のネットリストから抽出した部品名リストをグラフネットワークのノードとして読み込むとともに、配線名リストをグラフネットワークのエッジとして読み込み、さらに、エッジの属性および正解データを読み込む(ステップST4C)。処理部12は、i番目のネットリストに関するノード、エッジ、エッジ属性および正解データを1つのデータセットとし、関数g[i]と紐付けて、メモリ104等の記憶領域に格納する(ステップST5C)。
【0131】
処理部12は、パラメータiがn以下であるか否かを判定する(ステップST6C)。パラメータiがn以下であれば(ステップST6C;YES)、処理部12は、パラメータiに「1」を加算して(ステップST7C)、ステップST4Cの処理に戻る。
一方、パラメータiがnよりも大きいと判定すると(ステップST6C;NO)、処理部12は、g[1]~g[n]にそれぞれ紐付くデータセットを出力する(ステップST8C)。
【0132】
上述のようにして得たデータセットは、例えば、クラスタリング、オートエンコーダ、対照学習(Contrastive Learning)の一つである自己教師あり学習に用いることができる。クラスタリングは、ノードの種類の分類またはエッジの種類の分類に用いることができる。
オートエンコーダは、グラフニューラルネットワークを通した後に、入力データと同じ出力データを得ることを目標としたグラフニューラルネットワークの学習である。オートエンコーダでは、複数の回路を抽象化して保持することが可能である。
また、自己教師あり学習は、クラスタリングと似ているが、例えば各入力データを分類し、類似する回路を任意の個数の集合に分類することができる。
これらは一例であり、複数の技術を組み合わせて、ノード間のエッジの有無を予測すること、または、ノードの有無を予測することもできる。
【0133】
なお、グラフネットワークとした電気回路のデータを扱うニューラルネットワークは、グラフニューラルネットワークの他、グラフ畳み込みニューラルネットワーク、グラフアテンションネットワークなど、非常に多くのものが知られている。
例えば、大規模なモデルに適したもの、エッジを用いて作成られる隣接行列が疎なものを得意とするもの等、データの特性または正解データの特性によって、どのようなものを用いても構わない。
【0134】
処理部12は、回路図の種類を正解データとしてこれを教師データとし、学習データとして、回路シミュレータが取り扱う、例えば3,362個のサンプル回路の種類を用いることにより、グラフニューラルネットワークの学習を行う。
サンプル回路は、半導体を動作させるための回路である、Switch回路(89個)、Reference回路(59個)、ADC回路(27個)、DAC回路(29個)、コンパレータ回路(40個)、フィルタ回路(25個)、電源回路(2272個)、およびオペアンプ回路(665個)の9種類が含まれる。
【0135】
処理部12は、グラフネットワークと、複数の電気回路のそれぞれに付与された回路分類データと、を組み合わせたデータセットを学習データとして、電気回路を分類するためのグラフニューラルネットワークの学習を行い、当該学習に用いていないグラフネットワークをグラフニューラルネットワークに入力することにより、電気回路を分類する。
例えば、上記9種類に電気回路を分類する分類問題を解くグラフニューラルネットワークの学習を行う。ここで、ランダムに取得した2,300個のデータを学習データとし、残りの897個のデータを学習に用いないテストデータとした。学習結果のグラフニューラルネットワークがランダムに分類し、学習データとテストデータとの分類問題の分布は類似となるようにした。また、実施の形態で示す全てのグラフニューラルネットワークの計算で、学習データとテストデータは同じものを用いた。
【0136】
なお、上記の条件において部品定数または部品の型式番号のノードは用いず、各ノードは、半導体、コンデンサまたはコイルといった部品の種類ごとの識別番号のみとした。
これは、回路の分類問題では回路部品間の接続情報から予測することを期待するものであり、部品の型式番号をデータに入れると、型式番号から回路を分類できてしまうため、それを防ぐためである。
さらに、エッジについても各識別番号を接続する情報のみを入力した。このとき、電流の向きを考慮しない無向グラフとしたため、隣接行列は対称行列となる。
【0137】
図14は、実施の形態1に係る情報処理装置1による推論精度の算出結果の例(1)を示すグラフである。図11において、横軸は、学習データを用いてグラフニューラルネットワークの学習行い、グラフニューラルネットワークのパラメータを更新したときの反復回数(エポック)である。縦軸は、学習済のグラフニューラルネットワークによる、学習に用いていないテストデータに対する推論精度を示している。
図11に示すように、反復回数が増えていくに連れて、テストデータに対する推論精度が向上していき、4,000回の反復で最大の推論精度は96.26%になった。
【0138】
なお、図14に示す推論結果の計算に用いたグラフニューラルネットワークは、6層の隠れ層とRelu(Rectified Linear Unit)との組み合わせを持ち、グラフニューラルネットワークとReluとで得られた特徴量を、2層の全結合層で9種類の出力のいずれかに分類している。
【0139】
また、損失関数にはクロスエントロピーを用い、最適化関数にはAdam(Adaptive Moment Estimation)を使用した。バッチサイズは、500とし、損失関数を0に近づけるように、グラフニューラルネットワークの学習を行った。
このように、部品の種類とそれぞれの部品の接続関係だけのグラフニューラルネットワークの学習により、学習済のグラフニューラルネットワークによる推論精度が90%程度となった。
なお、テストデータが示す回路を、人の77%が、電源回路であるという先入観なしでグラフネットワークから回路を分類すると、人による推論精度は50%前後であった。
この結果より、今回の手法に基づく推論精度は、人よりも大幅に高くなっていることが分かる。
【0140】
図15は、実施の形態1に係る情報処理装置1による推論精度の算出結果の例(2)を示すグラフであり、図14の推論結果を算出する際に用いたノードである受動素子に部品定数を付与したものを学習データとして、グラフニューラルネットワークの学習を行った結果を示している。受動素子は、例えば、抵抗器、コンデンサまたはコイルである。受動素子の値が取り得るダイナミックレンジは大きいため、受動素子の種類に応じた識別番号に対して底10の対数を取り、0以上1以下となるように正規化して、実数として入力した。
【0141】
例えば、処理部12は、ノードの情報が(C1,0.33uF)、(L2,10uH)であり、C1の識別番号が1,L2の識別番号が2である場合、(1,-6.48),(2,-5.00)と変換する。全ての変換が終わった後に、処理部12は、最大値と最小値を利用して正規化処理をし、ノード情報としてグラフニューラルネットワークに入力する。能動素子(半導体)の種類(電源回路用またはオペアンプ回路用など)の情報は、正解データと同じになってしまうため入力せず、能動素子の部品情報は0とした。
ただし、能動回路の部品情報は0でなくてもよく、適切なものを選択して構わない。
また、GNDとINとOUTについても能動素子と同じように0とした。
これ以外の条件は、図14を算出したときと変更せずに推論計算すると、同じ反復回数でテストデータに対する推論精度が98.90%になることが確認できた。
【0142】
処理部12によるグラフニューラルネットワークの学習により、回路をリンク情報だけから回路の種類を分類することができる。なお、半導体素子には、共通の識別番号を付与した。半導体素子の種類を識別番号とすると、回路の種類と一致するため、リンク情報を学習しなくても推論精度が高くなる。このため、半導体素子が持つ情報を捨てて、半導体素子以外の情報は含めなかった。処理部12は、このように各部品名に付与した識別番号により、部品名リストと組み合わせリストの部品名を更新する。
【0143】
変形例2.
処理部12は、グラフネットワークと、複数の電気回路のそれぞれに付与した当該電気回路の特性の正解データと、を組み合わせたデータセットを学習データとして、敵対的生成ネットワークにおける生成ネットワークと識別ネットワークとの学習を同時に行い、正解データに類似した特性を示すデータを生成ネットワークに入力することにより、新たなグラフネットワークを生成してもよい。グラフニューラルネットワークに対し敵対的生成ネットワークを組み合わせることにより、所望の出力信号波形などの回路仕様から回路図を生成することができる。
【0144】
処理部12は、敵対的生成ネットワークにおける、回路を生成する側(Generator)のニューラルネットワークである生成ネットワークと、回路を判断する側(Discriminator)のニューラルネットワークである識別ネットワークとを、同時に学習させる。そして、処理部12は、生成する側の性能を上げ、教師データとなる回路または回路の出力と、生成する側の回路または回路の出力との差が小さくなるようにグラフニューラルネットワークの学習を行う。これにより、正解データから入力データを作り出すことができる。すなわち、要求された設計要求を正解データとしたとき、正解データを満たす入力データ、すなわちノードとエッジとの組み合わせを生成することができる。
【0145】
さらに、出力信号だけでなく、発熱または部品のコストなどの複数のデータを正解データとして敵対的生成ネットワークを学習させてもよい。
この場合、各エッジを流れる信号波形、各ノードでの発熱、各ノードでの電力、または回路全体のコストなどを同時に最適化する回路を生成することができる。
また、短時間で回路を設計できるため、設計初期段階で要求仕様の見直しまたはコストの見直しをすることができる。
【0146】
回路部品であるノードで特定の波形を作り出すため、特性または種類が未知のノードを与え、その部品の特性または種類を予測し、波形を最適化してもよい。
部品の特性の予測は、グラフニューラルネットワークにおけるノード属性を敵対的生成ネットワークで生成することで実現可能である。
部品の種類の予測は、グラフニューラルネットワークにおけるノードを分類する技術で実現可能である。
また、学習用データの正解データであるノードの種類の一部をブラックボックスとし、自己教師あり学習としてノードの種類を予測するようにグラフニューラルネットワークに学習させる。これによっても、学習済のグラフニューラルネットワークを用いてノードの種類を予測することが可能である。
また、情報処理装置1は、大規模な回路図についての計算が完了しているデータを用いてグラフニューラルネットワークの学習を行い、学習済のグラフニューラルネットワークを用いて部品に印加される電圧または電圧の周波数特性を予測してもよい。
これは、グラフニューラルネットワークにおけるノードの属性情報を敵対的生成ネットワークで生成する既存の技術で実現可能である。ただし、物理制約となるキルヒホッフの法則に反してはいけないため、制約付きの敵対的生成ネットワークで実現できる。
または、学習用データの正解データである電圧または電圧の周波数特性の一部をブラックボックスとし、自己教師あり学習として電圧または電圧の周波数特性を予測するようにグラフニューラルネットワークに学習させる。これによっても、学習済のグラフニューラルネットワークを用いて電圧または電圧の周波数特性を予測することが可能である。
さらに、情報処理装置1は、回路内の配線となるエッジに対して特定の波形を作り出すために既存のノード間の接続を予測することで、設計目的に応じた回路を作り出すことが可能である。
これは、グラフニューラルネットワークにおけるエッジ予測(Link prediction)に相当し、本実施の形態に基づいてグラフネットワークを作成した後、グラフニューラルネットワークを用いて既存の技術を用いて予測することができる。
または、学習用データの正解データであるノード間のエッジの有無の一部をブラックボックスとし、自己教師あり学習としてノード間のエッジの有無を予測するようにグラフニューラルネットワークに学習させる。これによっても、学習済のグラフニューラルネットワークを用いて未知の回路(グラフネットワーク)のノード間のエッジの有無を予測することが可能である。
【0147】
例えば、回路シミュレーションが困難な大規模な回路図に対して計算済みの結果を用いて学習したグラフニューラルネットワークを用いて、部品に印加される電流および電流の周波数特性を予測することも、グラフニューラルネットワークにより実現可能である。
具体的には、上述したノード属性を敵対的生成ネットワークで生成する場合と同様に、処理部12は、グラフネットワークと、グラフネットワークにおける各ノードに電圧または電圧の周波数特性を付与して得られた特徴量をノード属性の要素とする行列である正解データとを組み合わせたデータセットを学習データとして、ノードに付与する。そして、電圧または電圧の周波数特性を予測するための敵対的生成ネットワークとして、回路図から生成されるグラフネットワークと、電圧または電圧の周波数特性の関係をグラフニューラルネットワークで学習し、当該グラフニューラルネットワークを用いて、当該学習に用いていないグラフネットワークにおける一部または全部のノードにおける電圧または電圧の周波数特性を予測してもよい。
敵対的生成ネットワークは、学習用データである計算済みの結果を伏せ、電圧または電圧の周波数特性を予測する生成ネットワークと、生成した予測の正しさを識別する識別ネットワークとによって構成される。敵対的生成ネットワークにおいては、識別結果が学習用データである計算済みの結果との差分を小さくなるように、生成ネットワークと識別ネットワークとを同時に学習させるものである。
または、学習用データの正解データである電流および電流の周波数特性の一部をブラックボックスとし、自己教師あり学習として電流および電流の周波数特性を予測するようにグラフニューラルネットワークに学習させる。これによっても、学習済のグラフニューラルネットワークを用いて未知の回路(グラフネットワーク)の電流および電流の周波数特性を予測することが可能となる。
【0148】
また、処理部12は、グラフネットワークと、グラフネットワークにおける各ノードに対応する部品の種類を含むデータと、を組み合わせたデータセットを学習データとして部品の種類を予測するためのグラフニューラルネットワークの学習を行い、グラフニューラルネットワークを用いて、学習に用いていないグラフネットワークにおける一部または全部のノードである部品の種類を予測してもよい。これは、グラフニューラルネットワークの入力データを回路図から作成するグラフネットワークと、出力データをノードに対応する部品の種類とした学習用データとを作成し、この学習用データを教師データとして教師あり学習を行う。これにより、学習済のグラフニューラルネットワークを用いて、任意のグラフネットワークに使われる部品の種類を予測することが可能となる。
【0149】
さらに、処理部12は、グラフネットワークと、グラフネットワークの各エッジにおける電流または電流の周波数特性を示す特徴量を要素とする行列である正解データと、を組み合わせたデータセットを学習データとして、エッジにおける電流または電流の周波数特性を予測するためのグラフニューラルネットワークの学習を行い、グラフニューラルネットワークを用いて、学習に用いていないグラフネットワークの一部または全部のエッジにおける電流または電流の周波数特性を予測してもよい。
これは、グラフニューラルネットワークの入力データを回路から作成したグラフネットワークと、出力データをエッジに対応する電流または電流の周波数特性とした学習用データとを作成し、この学習用データを教師データとして教師あり学習を行う。これにより、学習済のグラフニューラルネットワークを用いて、任意のグラフネットワークでの電流または電流の周波数特性を予測することが可能となる。
また、学習用データが十分にある場合、上述したノード属性を敵対的生成ネットワークで生成する場合と同様に、敵対的生成ネットワークまたは自己教師あり学習などを用いて、任意のグラフネットワークでの電流または電流の周波数特性を予測することができる。 任意のグラフネットワークでの電流または電流の周波数特性の予測は、教師あり学習、敵対的生成ネットワークまたは自己教師あり学習などの方法によって実現できる。
ここで、教師あり学習は、ラベル誤りが少ないデータセットであり、データセット全体のバイアス(偏り)とバリアンス(分散)が小さい場合に有効である。敵対的生成ネットワークは、データセットが大きく、かつ回路全体の最適化を行うときなど、逆問題の解法としての解が必要な場合に有効である。自己教師あり学習は、計算量が大きくなるため、ラベルを付けることが困難な場合、ラベル誤りが多い場合、あるいは、さらに潤沢な計算リソースが得られる場合に有効である。
また、自己教師学習して得られたグラフニューラルネットワークの結果、すなわち学習によって得られた重み行列を転移学習またはファインチューニングして、データセットが十分でない問題で教師あり学習するなど、組み合わせて用いても構わない。このように、情報処理装置1は、与えられた条件、または求められる結果によってグラフニューラルネットワークの構造または学習方法、教師データの与え方などを変更しても構わない。
【0150】
さらに、処理部12は、グラフネットワークと、グラフネットワークが有する一部または全部のノードまたはエッジの少なくとも一方における電力または電力の周波数特性を示す特徴量を要素とする行列である正解データと、を組み合わせたデータセットを学習データとして、ノードまたはエッジの少なくとも一方における電力または電力の周波数特性を予測するためのグラフニューラルネットワークの学習を行い、グラフニューラルネットワークを用いて、学習に用いていないグラフネットワークが有する一部または全部のノードまたはエッジの少なくとも一方における電力または電力の周波数特性を予測してもよい。
この場合においても、入力をグラフネットワークとし、出力を電力または電力の周波数特性とした、グラフニューラルネットワークの教師あり学習を行う。これにより得られた学習済のグラフニューラルネットワークの未知の入力によって電力または電力の周波数特性を推論することができる。
また、入力をグラフネットワークとし、生成ネットワークから電力または電力の周波数特性を予測し、識別ネットワークで予測結果と正解データとの差を小さくしていくようにグラフニューラルネットワークの学習を行う。これにより得られた学習済のグラフニューラルネットワークの未知の入力によって電力または電力の周波数特性を推論することができる。
さらに、入力をグラフネットワークとし、出力を電力または電力の周波数特性の一部を隠し、隠した値を予測するように学習するグラフニューラルネットワークの自己教師あり学習を行う。これにより得られた学習済のグラフニューラルネットワークの未知の入力によって電力または電力の周波数特性を推論することができる。
【0151】
従来、長時間を要する予測計算であっても、グラフニューラルネットワークによる推論を用いることで、回路シミュレータを通さずに、リアルタイムに出力を予測することができる。例えば、グラフニューラルネットワークを用いて大まかに推論をした後に、回路シミュレータの計算で予測を補間することにより、予測計算時間および計算コストを要する回路シミュレータの使用回数を減らすことができる。さらに、回路シミュレータを用いて計算した結果、または、実測した結果を、教師データとして再度利用してもよい。
【0152】
変形例3.
変形例3では、配線に電流の向きを持たせられること、部品名リストに特定の周波数の電圧または電圧の周波数特性を持たせることができること、さらに、組み合わせリストに特定周波数の電流または電流の周波数特性を持たせられることを説明する。
電流の向きにおいては、図6に示した電気回路のネットリストから、下記の組み合わせリストが得られる。
(1);(IN,A)
(2);(A,B)
(3);(B,C),(C,D),(D,B)
(4);(D,OUT)
G-A;(GND,A)
G-B;(GND,B)
G-C;(GND,C)
【0153】
例えば、(IN,A)においては、書く順番を考慮し、(IN,A)と書いた場合は、IN端子からA端子への電流の向きと定義することができる。
部品名リストおよび配線名リストをグラフ理論に当てはめると、部品名リストはノードであり、配線名リストはエッジである。電流の向きを考慮していない場合、グラフネットワークは、無向グラフとなる。
一方、書く順番を定義することにより、グラフネットワークを有向グラフとして考えることができる。なお、交流を含む回路の場合、回路図だけでは電流の向きを正しく定義することができない。
【0154】
有向グラフの場合、回路シミュレーションまたは実測で回路を動作状態にし、この動作に影響がないパルス状信号を重畳し、測定対象となる配線上の複数点を同時に電圧プローブまたは電流プローブで観測することで到来時間差から電流の向きを把握することが可能である。ただし、回路シミュレーションにおいては配線上に時間差が生じないため検出が困難である。
【0155】
この場合、処理部12は、配線の残留インダクタンス(約1nH/mm)程度の小さなインダクタンスを配線上に仮想的に配置し、インダクタンスの両端の電圧、または電流の変化の時間差から電流の向きを推測することができる。
また、通信においては信号が双方向に流れることがある。そのような場合においては、組み合わせリストに(A,B)だけでなく(B,A)を含めることにより、双方向に信号が流れるものとして処理することができる。
【0156】
グラフ理論においては、組み合わせリストは、隣接行列として定義することができる。
隣接行列にするためには、組み合わせリストの要素の最大値と同じだけの行と列を持つ正方行列を用意し、正方行列の行と列を組み合わせリストに対応させ、該当箇所に例えば1を入力し、該当しない箇所は全て0とすることで隣接行列を作ることができる。
例えば(5,3)が組み合わせリストに入っているとき、5行3列を1とすることで、隣接行列を作ることができる。電気回路における電流の流れを考慮しない場合、この隣接行列が対称行列となるため、上記(5,3)が組み合わせリストにある場合には5行3列と、3行5列に1が入力される。
【0157】
一方、回路における電流の向きを考慮する場合は、5行3列と3行5列のいずれか一方のみを1にして、他方を0とする。その結果、電流の向きを考慮しない場合は、対称行列になるのに対し、電流の向きを考慮する場合は、非対称行列となる。
電流の向きを考慮しない場合と電流の向きを考慮する場合の両方において、隣接行列は上三角行列または下三角行列となる。
特に、後述する実施の形態2では自己ループが存在しないので、隣接行列は、対角成分が0となる上三角行列または対角成分が0となる下三角行列となる。
ただし、回路内に双方向、すなわちアンテナまたは通信信号のように受信および送信の両方を一つの配線で行う信号が回路内に1つでもある場合、上三角行列または下三角行列にはならず、非対称行列になる。
【0158】
また、部品名リストには、部品定数などと同様に、電気回路における特定周波数の電圧または電圧の周波数特性を設定することができる。
部品名リストに周波数特性を設定する場合、周波数特性を離散値に変換し、離散的な周波数での振幅として信号を入力する必要がある。
例えば1MHz~10MHzの周波数特性を入れたい場合は、1MHz刻みで各部品に付随する10個の要素として設定すればよい。
この場合、部品の数と同じ行数で、かつ、周波数の刻み(1MHz~10MHzまで1MHz刻みの10列)分の列数を有する行列として設定する。
ただし、周波数帯域または刻みは処理に用いる全ての回路図と、回路図内の全ての部品に対して等しい条件にする必要がある。
【0159】
なお、1MHz~10MHzで1MHz刻みを示したが、全ての部品に対して共通であれば、周波数の刻みの間隔は、例えば対数など、どのようなものでもよく、均一でなくてもよい。
さらに、周波数の順番が異なっていてもよく、部品の種類または部品の型番などにより定義される識別番号と周波数特性とが異なる列となるように結合して、一つの行列として部品名リストを構成しても構わない。
【0160】
さらに、組み合わせリストに特定周波数の電流または電流の周波数特性を付与することができる。この場合においても電圧の周波数特性と同様に考えることができる。
組み合わせリストは、全ての回路図と、全ての配線に同一の周波数帯域、周波数刻みであれば、縦軸が、この組み合わせリストにおける組み合わせの数分の行を有し、横軸が周波数の刻み(1MHz~10MHzまで1MHz刻みの10列)分の数の列を有した行列として入力できる。
ただし、組み合わせリストは、組み合わせ自体に意味があり、部品名リストと同じように組み合わせリストに電流情報を付与することは望ましくない。そのため、これらの周波数特性は、単独の行列として定義し、配線の属性情報(グラフ理論おけるedge attribute)として、組み合わせリストに付与するのが望ましい。
【0161】
組み合わせリストは、組み合わせの数分の行を持つため、有向グラフに対しても用いることができ、出ていく方の電流の周波数特性と入ってくる方の電流の周波数特性が異なった場合においても、異なるものとして処理することが可能である。
また、組み合わせリストは、電流または電流の周波数特性以外の情報、例えば、配線の長さまたは配線の太さを異なる列の情報として、上記単独の行列に入力しても構わない。
【0162】
以上のように、実施の形態1に係る情報処理装置1は、電気回路のネットリストを取得する取得部11と、ネットリストから部品名リストおよび配線名リストを抽出し、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストとを作成し、更新した部品名リストおよび組み合わせリストを出力する処理部12を備える。
これにより、情報処理装置1は、電気回路をグラフネットワークに変換することで発生する情報劣化を抑制可能なリスト情報を提供することができる。
【0163】
実施の形態1に係る情報処理装置1は、電気回路のネットリストを取得する取得部11と、ネットリストから、部品名リストおよび配線名リストを抽出し、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名とこれに対応する配線名とを含む組み合わせリストとを作成し、更新した部品名リストおよび組み合わせリストを出力する処理部12と、を備える。
これにより、情報処理装置1は、電気回路をグラフネットワークに変換することで発生する情報劣化を抑制可能なリスト情報を提供することができる。さらに、情報処理装置1は、部品の組み合わせ数の増加を抑制できるので、当該組み合わせリストを含むリスト情報を用いたグラフニューラルネットワークの処理に要する計算量および計算時間の増加を低減できる。
【0164】
実施の形態1に係る情報処理装置1において、処理部12は、部品の特徴ごとに固有な識別番号で部品名を置き換えた、更新した部品名リストおよび組み合わせリストを出力する。これにより、情報処理装置1は、リスト情報を数値で表すことで情報量を軽減することができ、リスト情報からグラフネットワークへ変換したときに発生する情報劣化を防ぐことができる。これは、部品の特徴を数値に変換した定義を逆に用いると、数値から部品の特徴を判定できること、すなわち部品の特徴と数値が全単射になるためである。
【0165】
実施の形態1に係る情報処理装置1において、処理部12は、部品の種類ごとに固有な識別番号を定義する。これにより、情報処理装置1は、リスト情報を数値で表すことで情報量を軽減することができ、リスト情報からグラフネットワークへ変換したときに発生する情報劣化を防ぐことができる。これは、部品の種類を数値に変換した定義を逆に用いると、数値から部品の種類を判定できること、すなわち部品の種類と数値が全単射になるためである。
【0166】
実施の形態1に係る情報処理装置1において、処理部12は、部品の型式番号ごとに固有な識別番号を定義する。これにより、情報処理装置1は、リスト情報を数値で表すことで情報量を軽減することができ、リスト情報からグラフネットワークへ変換したときに発生する情報劣化を防ぐことができる。これは、部品の型式番号を数値に変換した定義を逆に用いると、数値から部品の型式番号を判定できること、すなわち、部品の種類と数値が全単射になるためである。
【0167】
実施の形態1に係る情報処理装置1において、処理部12は、部品名リストにおける部品名を、部品の特徴をワンホット表現して得られる特徴量行列の行または列に置き換える。これにより、情報処理装置1は、部品名リストにおける部品名を、部品の特徴を行列計算することができる。これは、部品の特徴をワンホット表現に変換した定義を逆に用いると、ワンホット表現から部品の特徴を判定できるためである。
【0168】
実施の形態1に係る情報処理装置1において、処理部12は、電気回路が2つ以上の半導体を含む場合、特徴量行列における半導体に対応する要素を、半導体ごとに異なる値に変更する。これにより、情報処理装置1は、リスト情報からグラフネットワークへ変換したときに発生する情報劣化を防ぐことができる。これは、半導体を各半導体に対応する要素に変換した定義を逆に用いると、半導体に対応する要素から半導体を判定できるためである。
【0169】
実施の形態1に係る情報処理装置1において、処理部12は、部品の回路定数を、対数を含む関数に代入して算出した関数値で、特徴量行列における受動回路に対応する要素を置き換える。これにより、情報処理装置1は、リスト情報を数値で表すことで情報量を軽減することができ、リスト情報からグラフネットワークへ変換したときに発生する情報劣化を防ぐことができる。これは、回路定数は0よりも大きい実数であり、対数を含む関数とは全単射の関係になっているため、対数を含む関数から関数を施した後の数値から、元の回路定数の数値を算出できるためである。
【0170】
実施の形態1に係る情報処理装置1において、処理部12は、関数値に対して正規化または標準化の両方または一方を行う。これにより、情報処理装置1は、リスト情報を数値で表すことで情報量を軽減することができ、リスト情報からグラフネットワークへ変換したときに発生する情報劣化を防ぐことができる。これは、正規化または標準化においても正規化または標準化を施す前の値と、施した後の値とは全単射になっているため、双方向に変換できるためである。
【0171】
実施の形態1に係る情報処理装置1において、処理部12は、組み合わせリストに一つの配線名に対応する部品名の組み合わせが3つ以上ある場合、2つの組み合わせにそれぞれ分解する。これにより、情報処理装置1は、組み合わせリストから、グラフネットワークの隣接行列を容易に作成することができる。
【0172】
実施の形態1に係る情報処理装置1において、処理部12は、組み合わせリストが3つ以上の部品名を有する場合、2つの部品名を有するリストにそれぞれ分解する。
これにより、情報処理装置1は、リスト情報からグラフネットワークへ変換したときに発生する情報劣化を防ぐことができる。
【0173】
実施の形態1に係る情報処理装置1において、取得部11は、2つ以上の電気回路のネットリストをそれぞれ取得する。処理部12は、それぞれのネットリストから部品名リストを抽出し、抽出した部品名リストを1つの部品名リストに結合し、結合した1つの部品名リストから、重複した部品名を除去する。これにより、情報処理装置1は、部品名リストの情報量の増加を抑えることができる。
【0174】
実施の形態1に係る情報処理装置1において、部品名リストは、グラフネットワークにおけるノードであり、配線名リストは、グラフネットワークにおけるエッジであり、組み合わせリストは、グラフネットワークにおける隣接行列である。これにより、情報処理装置1は、リスト情報をグラフネットワークとして利用することができる。
【0175】
実施の形態1に係る情報処理装置1において、処理部12は、ノイズ源である半導体と半導体の端子番号とを含むデータベースを参照し、電気回路から、端子番号に対応する端子を始点として、同じ部品を2回以上通らない条件で、隣接した部品を連続的に探索する探索プロセスを行い、半導体を表す電流ループを抽出して探索プロセスを終える。これにより、情報処理装置1は、半導体、コンデンサ、コイル、グラウンドおよび半導体というループ経路の探索が可能である。
【0176】
実施の形態1に係る情報処理装置1において、処理部12は、電流ループに、ノイズフィルタを示す部品があるか否かを判定する。これにより、情報処理装置1は、電流が流れる経路である電流ループに設けられたノイズフィルタを抽出することが可能である。
【0177】
実施の形態1に係る情報処理装置1において、処理部12は、1つ以上の半導体を含む1つまたは複数の電気回路から、探索対象の半導体の特徴と半導体を示す電流ループの特徴とを抽出し、抽出した半導体の特徴と電流ループの特徴とを用いて、探索対象の半導体と類似した半導体を探索する。これにより、情報処理装置1は、類似回路の探索が可能となる。
【0178】
実施の形態1に係る情報処理装置1において、処理部12は、電流の流れる向きに合わせた組み合わせリストを抽出し、抽出した組み合わせリストから非対称行列の隣接行列を生成する。これにより、情報処理装置1は、電流の流れる向きが分かっている回路についても情報劣化の発生を抑制することができる。
【0179】
実施の形態1に係る情報処理装置1において、処理部12は、隣接行列において、互いに接続された部品間では、電流の振幅を実数とし、接続がない配線間では、電流の振幅を0とする。これにより、情報処理装置1は、電流の流れる向きが分かっている回路についても情報劣化の発生を抑制することができる。
【0180】
実施の形態1に係る情報処理装置1において、処理部12は、ノードとエッジとの組み合わせをグラフニューラルネットワークの入力データとする。これにより、情報処理装置1は、グラフネットワークを用いたグラフニューラルネットワークの学習が可能である。
【0181】
実施の形態1に係る情報処理装置1において、処理部12は、グラフネットワークと、複数の電気回路のそれぞれに付与された回路分類データと、を組み合わせたデータセットを学習データとして、電気回路を分類するためのグラフニューラルネットワークの学習を行い、当該学習に用いていないグラフネットワークをグラフニューラルネットワークに入力することにより、電気回路を分類する。これにより、情報処理装置1は電気回路を分類することができる。
【0182】
実施の形態1に係る情報処理装置1において、処理部12は、グラフネットワークと、複数の電気回路のそれぞれに付与した当該電気回路の特性の正解データと、を組み合わせたデータセットを学習データとして、敵対的生成ネットワークにおける生成ネットワークと識別ネットワークとの学習を同時に行い、正解データに類似した特性を示すデータを生成ネットワークに入力することにより、新たなグラフネットワークを生成する。
これにより、情報処理装置1は、新たなグラフネットワークに対応する電気回路を自動設計することができる。
【0183】
実施の形態1に係る情報処理装置1において、処理部12は、グラフネットワークと、グラフネットワークにおける各ノードに電圧または電圧の周波数特性を付与して得られた特徴量を要素とする行列である正解データと、を組み合わせたデータセットを学習データとして、ノードに付与する電圧または電圧の周波数特性を予測するためのグラフニューラルネットワークの学習を行い、当該グラフニューラルネットワークを用いて、当該学習に用いていないグラフネットワークにおける一部または全部のノードにおける電圧または電圧の周波数特性を予測する。これにより、情報処理装置1は、回路シミュレーションを実行しなくても、未知の回路の出力電圧または出力電圧の周波数特性を予測することができる。
【0184】
実施の形態1に係る情報処理装置1において、処理部12は、グラフネットワークと、グラフネットワークにおける各ノードに対応する部品の種類を含むデータと、を組み合わせたデータセットを学習データとして部品の種類を予測するためのグラフニューラルネットワークの学習を行い、グラフニューラルネットワークを用いて、学習に用いていないグラフネットワークにおける一部または全部のノードである部品の種類を予測する。これにより、情報処理装置1は、部品の種類を予測することができる。
【0185】
実施の形態1に係る情報処理装置1において、処理部12は、グラフネットワークと、グラフネットワークの各エッジにおける電流または電流の周波数特性を示す特徴量を要素とする行列である正解データと、を組み合わせたデータセットを学習データとして、エッジにおける電流または電流の周波数特性を予測するためのグラフニューラルネットワークの学習を行い、グラフニューラルネットワークを用いて、学習に用いていないグラフネットワークの一部または全部のエッジにおける電流または電流の周波数特性を予測する。
これにより、情報処理装置1は、回路シミュレーションを実行しなくても、未知の回路の出力電流または出力電流の周波数特性を予測することができる。
【0186】
実施の形態1に係る情報処理装置1において、処理部12は、グラフネットワークと、グラフネットワークが有する一部または全部のノードまたはエッジの少なくとも一方における電力または電力の周波数特性を示す特徴量を要素とする行列である正解データと、を組み合わせたデータセットを学習データとして、ノードまたはエッジの少なくとも一方における電力または電力の周波数特性を予測するためのグラフニューラルネットワークの学習を行い、グラフニューラルネットワークを用いて、学習に用いていないグラフネットワークが有する一部または全部のノードまたはエッジの少なくとも一方における電力または電力の周波数特性を予測する。これにより、情報処理装置1は、回路シミュレーションを実行しなくても、未知の回路の出力電力または出力電力の周波数特性を予測することができる。
【0187】
実施の形態1に係る情報処理装置1において、処理部12は、グラフネットワークを学習データとして、グラフネットワークにおけるノード間のエッジの有無を予測するためのグラフニューラルネットワークの学習を行い、グラフニューラルネットワークを用いて、学習に用いていないグラフネットワークにおけるノード間のエッジの有無を予測する。
これにより、情報処理装置1は、学習に用いていないグラフネットワークにおけるノード間のエッジの有無を予測することができる。
【0188】
実施の形態1に係る情報処理装置1において、処理部12は、グラフネットワークを学習データとして、電気回路をその特性に応じて有限個にクラスタリングするためのグラフニューラルネットワークの学習を行い、グラフニューラルネットワークを用いて、学習に用いていないグラフネットワークをクラスタリングすることにより、類似した電気回路群に分類する。これにより、情報処理装置1は、類似した電気回路群の分類を行うことができる。
【0189】
実施の形態1に係る情報処理方法は、情報処理装置1が、電気回路のネットリストを取得するステップと、ネットリストから部品名リストおよび配線名リストを抽出するステップと、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストを作成するステップと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストを作成するステップと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストを作成するステップとを実行する。これにより、電気回路をグラフネットワークに変換することで発生する情報劣化を抑制可能なリスト情報を提供することができる。
【0190】
実施の形態1に係る情報処理方法は、情報処理装置1が、電気回路のネットリストを取得するステップと、ネットリストから部品名リストおよび配線名リストを抽出するステップと、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストを作成するステップと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストを作成するステップと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名とこれに対応する配線名とを含む組み合わせリストとを作成するステップと、更新した部品名リストおよび組み合わせリストを出力するステップと、を実行する。これにより、電気回路をグラフネットワークに変換することで発生する情報劣化を抑制可能なリスト情報を提供することができる。さらに、部品の組み合わせ数の増加を抑制できるので、当該組み合わせリストを含むリスト情報を用いたグラフニューラルネットワークの処理に要する計算量および計算時間の増加を低減できる。
【0191】
実施の形態2.
図16は、実施の形態2に係る情報処理装置1Aの構成例を示すブロック図である。図16において、情報処理装置1Aは、電気回路のネットリストを取得し、取得したネットリストを用いて、電気回路をグラフネットワークに変換したときに発生する情報劣化を抑制可能なリスト情報を提供する。電気回路のグラフネットワークとは、部品を表すノードおよび配線を表すエッジを用いて当該電気回路を表した情報である。グラフネットワークにはノードの特徴量およびエッジの特徴量を示す情報も含まれる。
【0192】
情報処理装置1Aは、図16に示すように、取得部11および処理部12Aを備える。
取得部11は、電気回路のネットリストを取得する第1プロセスを実行する。例えば、情報処理装置1が回路設計CADを搭載したコンピュータと接続されており、取得部11は、回路設計CADを用いて作成されたネットリストを当該コンピュータから取得する。
また、取得部11は、回路シミュレータで動作する電気回路の回路図モデルを取得し、この回路図モデルが示す回路図をネットリストに変換してもよい。
すなわち、取得部11によるネットリストの取得には、回路図を変換してネットリストを取得することも含まれる。
【0193】
処理部12Aは、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストとを用いて、3つ以上の配線に接続された部品を配線数と同数の2端子部品とみなして2端子部品を示す部品名を、更新した部品名リストに追加し、2端子部品とみなす前の部品を示す部品名を、更新した部品名リストから除去し、2端子部品の一方の端子に3つ以上の配線をそれぞれ接続し、2端子部品の他方の端子間を新たな配線で接続し、更新した配線名リストに新たな配線を示す配線名を追加し、更新した部品名リストから、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストを作成し、更新した部品名リストおよび組み合わせリストを出力する。また、処理部12Aは、識別番号で部品名を置き換えた、更新した部品名リストおよび組み合わせリストを出力してもよい。
【0194】
情報処理装置1Aは、例えば、情報ネットワークに接続されたコンピュータである。
当該コンピュータは、情報ネットワークを経由してクラウド等に接続することが可能なサーバまたはクライアン卜であってもよいし、情報ネットワークに接続されていないスタンドアロンのコンピュータであってもよい。また、エッジコンピューティングと呼ばれる工場内で閉じたネットワーク環境で使用されるコンピュータであってもよい。
また、情報処理装置1Aは、スマートフォン、タブレット端末、PCまたはマイクロコンピュータであってもよい。
【0195】
図17は、実施の形態2に係る情報処理方法を示すフローチャートであり、情報処理装置1Aによる一連の動作を示している。取得部11がネットリストを取得する(ステップST1D)。処理部12Aは、ネットリストから部品名リストを抽出し(ステップST2D-1)、当該ネットリストから配線名リストを抽出する(ステップST2D-2)。
例えば、処理部12Aは、ネットリストに含まれる全ての部品名を部品名リストに格納し、当該ネットリストに含まれる全ての配線名を配線名リストに格納する。
なお、ステップST2D-1の処理とステップST2D-2の処理は、どちらが先に実行されてもよいし、同時に実行されてもよい。
【0196】
処理部12Aは、ネットリストに含まれるグラウンド配線、入力配線および出力配線を、グラウンド端子、入力端子および出力端子として部品名リストに追加する(ステップST3D-1)。処理部12Aは、配線名リストから、グラウンド配線、入力配線および出力配線を除去する(ステップST3D-2)。これにより、部品名リストに、グラウンド端子、入力端子および出力端子を示す情報が部品情報として残るため、部品名リスト含むリスト情報を用いて電気回路をグラフネットワークに変換するときの情報劣化を抑制できる。なお、ステップST3D-1の処理とステップST3D-2の処理は、どちらが先に実行されてもよいし、同時に実行されてもよい。
【0197】
処理部12Aは、部品名リストと配線名リストとを用いて、3つ以上の配線に接続された部品があるか否かを判定する(ステップST4D)。3つ以上の配線に接続された部品がない場合(ステップST4D;NO)、ステップST5Dの処理に移行する。図17において、ステップST5D、ステップST6D、ステップST7D、ステップST12D、ステップST13DおよびステップST14Dの処理は、図5におけるステップST4、ステップST5、ステップST6、ステップST7、ステップST8およびステップST9と同様であるので説明を省略する。
【0198】
3つ以上の配線に接続された部品がある場合(ステップST4D;YES)、処理部12Aは、3つ以上の配線に接続された部品を、配線の数と同数の2端子部品とみなす(ステップST8D)。続いて、処理部12Aは、2端子部品に新しい部品名を付与する(ステップST9D)。そして、処理部12Aは、2端子部品の一方の端子に対し3つ以上の配線をそれぞれ接続し、2端子部品の他方の端子同士を、新たな配線を追加してそれぞれ接続する(ステップST10D)。処理部12Aは、新たな配線に付与した配線名を配線名リストに追加する(ステップST11D)。
【0199】
このように、処理部12Aは、1つの部品から分解した2端子部品間をそれぞれ接続し、それぞれの接続に用いた配線に新たな配線名を付与する。そして、それぞれの2端子部品の他方の端子は、3つ以上の配線と同じ数あるため、それぞれの端子と上記配線を接続する。このように変換することで、自己ループまたは多重辺になることを防ぐことができ、電気回路からグラフネットワークへの変換、およびグラフネットワークから電気回路への変換の際の情報劣化を防ぐことができる。
【0200】
例えば自己ループは、半導体の端子から回路部品の経由無しで同じ半導体の異なる端子に配線する際に生じるが、このような配線は半導体の動作を定義するために必要な場合があり、そのような場合に生じる。実施の形態1では、そのような条件は捨てられてしまうため情報劣化が起きているが、実施の形態2のように2端子部品に分割することで、そのような情報を保持したまま、グラフネットワークに変換することができる。
【0201】
また、多重辺は電源などで電流容量を確保するため、複数の入力端子を持つ場合、1つの半導体から他の半導体へバス配線する際に生じる。
この場合においても、実施の形態1では、そのような条件は捨てられてしまうため情報劣化が起きているが、実施の形態2のように2端子部品に分割することで、そのような情報を保持したまま、グラフネットワークに変換することができる。
【0202】
ステップST11Dで更新された配線名リストに対して、実施の形態1と同様に各配線名が保有する部品名を抽出し部品名の組み合わせリストを抽出する。
実施の形態1と同様に、1つの配線名が3つ以上の部品名を保持する場合には、1つの配線に対して2つずつの部品の組み合わせに分解する。
また、更新された部品名リストを用いて各部品名に識別番号を付与し、その識別番号を用いて組み合わせリスト内の各部品名に対応する識別番号に置き換える。
さらに、部品名リストを識別番号に置き換え、この識別番号に置き換えられた部品名リストと識別番号に置き換えられた組み合わせリストとを出力して処理が完了する。
【0203】
図18は、電気回路の例(4)を示す回路図である。図19は、電気回路の例(5)を示す回路図である。図18において、部品Aは、入力端子「IN」と部品Aとの間の(1)と、部品Bと部品Aとの間の(2)、GNDと部品Aとの間の3つの配線が接続されている。部品Aを3つの2端子部品に分解し、それぞれを例えばA1、A2、A3と名前を付与する。分解した部品の一方の端子を、それ以外の分解した部品の端子に接続するため、A1とA2、A2とA3、A3とA1間をそれぞれ接続することになる。それぞれを、例えばA1-A2,A1-A3,A2-A3と名前を付与する。また、A3とGNDとの間にもG-A3という名前を付与する。同様にして部品Bについても分解し、分解された部品と部品間の配線に名前を付与することで、電気回路は、図18に示す構造となる。
【0204】
図19についても同様であり、図18で3つ以上の配線を保持している部品は、部品Aと部品Eであることから、それぞれの部品を分解し、分解された部品と部品との間の配線に名前を付与する。なお、説明の簡単のため回路図を処理対象としたが、ネットリストであっても同様に処理することが可能である。
【0205】
実施の形態1で示したネットリストを以下に示す。ネットリスト中の#配線において、部品Aを探すと、(1)、(2)、GNDという配線に保持されていることが分かる。
そのため、部品Aには、3つの配線が接続されているものと判断することができ、2端子部品に分解することができる。
#部品




#配線
(1);IN,A
(2);A,B
(3);B,C,D
(4);D,OUT
GND;A,B,C
【0206】
図18に示すように部品を2端子部品に分解することで、部品名リストは、「A1,A2,A3,B1,B2,B3,C,D,GND,IN,OUT」となり、配線名リストは、「(1),(2),(3),(4),A1-A2,A2-A3,A1-A3,B1-B2,B2-B3,B1-B3,G-A3,G-B3,G-C」となる。
処理部12Aは、実施の形態1と同様に、部品名リストに対して「IN」、「OUT」および「GND」を追加し、配線名リストから、「IN」、「OUT」および「GND」を除去する。
【0207】
同様に、図19のように部品を2端子部品に分解することにより、部品名リストは、「A1,A2,A3,C,D,E1,E2,E3,F,GND,IN,OUT」となり、配線名リストは、「(1A),(2A),(3A),(4A),(5A),A1-A2,A2-A3,A1-A3,E1-E2,E2-E3,E1-E3,G-A3,G-E3,G-C」となる。
【0208】
3端子以上の部品については、更新した配線名リストから作った組み合わせリストと、2端子部品の組み合わせリストとにより、図18に示した電気回路の組み合わせリストは以下のようになる。(1)~(4)、G-C、G-A3、G-B3は、ネットリストから作られたものであり、A1-A2,A1-A3,A1-A3,B1-B2,B2-B3,B1-B3は、更新された配線名リストから作られた組み合わせリストである。
(1);IN,A1
(2);A2,B1
(3);B2,C,D
(4);D,OUT
A1-A2;A1,A2
A2-A3;A2,A3
A1-A3;A1,A3
B1-B2;B1,B2
B2-B3;B2,B3
B1-B3;B1,B3
G-A3;GND,A3
G-B3;GND,B3
G-C;GND,C
【0209】
同様に、図19に示した回路図についても、下記の組み合わせリストを抽出することができる。
(1A);IN,A1
(2A);A2,D
(3A);D,C,E1
(4A);E2,F
(5A);F,OUT
A1-A2;A1,A2
A2-A3;A2,A3
A1-A3;A1,A3
E1-E2;E1,E2
E2-E3;E2,E3
E1-E3;E1,E3
G-A3;GND,A3
G-E3;GND,E3
G-C;GND,C
【0210】
このように3端子以上の回路部品が分解された後は、実施の形態1と同様である。
図18に示した回路に関する部品名リストは、「A1,A2,A3,B1,B2,B3,C,D,GND,IN,OUT」であり、図19に示した回路に関する部品名リストは、「A1,A2,A3,C,D,E1,E2,E3,F,GND,IN,OUT」である。これら両者を結合し、重複を除去すると、「A1,A2,A3,B1,B2,B3,C,D,E1,E2,E3,F,GND,IN,OUT」となる。部品名ごとに異なる識別番号を付与すると、結合後のリストは、例えば以下のようになる。
A1→1
A2→2
A3→3
B1→4
B2→5
B3→6
C→7
D→8
E1→9
E2→10
E3→11
F→12
GND→13
IN→14
OUT→15
【0211】
識別番号を用いると、図18に示した回路に関する部品名リストは、「1,2,3,4,5,6,7,8,13,14,15」となり、図19に示した回路に関する部品名リストは、「1,2,3,7,8,9,10,11,12,13,14,15」となる。
また、組み合わせリストにおいても、3つ以上の部品名を持つものは2つに分解して、各部品名を識別番号に置き替えることによって、図18に示した回路に関する組み合わせリストは、以下のようになる。
(1);(14,1)
(2);(2,4)
(3);(5,7),(7,8),(8,5)
(4);(8,15)
A1-A2;(1,2)
A2-A3;(2,3)
A1-A3;(1,3)
B1-B2;(4,5)
B2-B3;(5,6)
B1-B3;(4,6)
G-A3;(13,3)
G-B3;(13,3)
G-C;(13,7)
【0212】
また、図19に示した回路に関する組み合わせリストは、以下のようになる。
(1A);(15,1)
(2A);(2,8)
(3A);(8,7)(8,9),(7,9)
(4A);(10,12)
(5A);(12,15)
A1-A2;(1,2)
A2-A3;(2,3)
A1-A3;(1,3)
E1-E2;(9,10)
E2-E3;(10,11)
E1-E3;(9,11)
G-A3;(13,3)
G-E3;(13,11)
G-C;(13,7)
【0213】
処理部12Aの出力結果として、図18に示した回路に関する部品名リストは、「1,2,3,4,5,6,7,8,13,14,15」となり、組み合わせリストは、「(14,1)(2,4)(5,7)(7,8)(8,5)(8,15)(1,2)(2,3)(1,3)(4,5)(5,6)(4,6)(13,3)(13,3)(13,7)」となる。また、図19に示した回路に関する部品名リストは、「1,2,3,7,8,9,10,11,12,13,14,15」となり、組み合わせリストは、「(15,1)(2,8)(8,7)(8,9),(7,9)(10,12)(12,15)(1,2)(2,3)(1,3)(9,10)(10,11)(9,11)(13,3)(13,11)(13,7)」となる。
【0214】
回路の部品、特に半導体においては、半導体の一つの端子と同じ半導体の異なる端子との間を配線で短絡することで動作を制御することがある。この構造を有した電気回路は、配線が自分自身から出て自分自身に戻ってくる自己ループを有することになる。
しかし、自己ループを有する電気回路に関するネットリストから、組み合わせリストを作成することは可能であるが、自己ループを有する組み合わせリストから、元のネットリストに変換することはできない。これは、ネットリストから組み合わせリストに変換したときに情報劣化が起こることによる。これに対して、上述のように3素子以上の部品への分解を行うことにより、自己ループとなる配線を無くすことができる。このため、実施の形態2に係る情報処理装置1Aは、自己ループを有する電気回路に関するネットリストを用いて、自己ループを持たない電気回路に関する組み合わせリストを作成することが可能である。その結果、情報劣化を起こすことなく組み合わせリストからネットリストに変換することできる。
【0215】
例えば、電流量が大きい電源が接続された電気回路では、同一の電源に繋がった配線を半導体の複数の端子に接続して電流を分散させることがある。
また、プルアップ用の電源または制御用の信号を複数の端子に接続した半導体を有する電気回路がある。
これらの接続関係は多重辺となるので、多重辺が組み合わせリストに含まれる場合は、自己ループと同様に、各辺の情報は残らず、組み合わせリストをネットリストに戻すことができない。このため、情報劣化が起こったとみなされる。
これに対して、実施の形態2に係る情報処理装置1Aでは、多重辺を有する電気回路であっても組み合わせリストを元のネットリストに戻すことができる。そのため、情報劣化を起こすことなく、ネットリストを組み合わせリストに変換し、かつ組み合わせリストをネットリストに逆変換することができる。
【0216】
図20は、実施の形態2における電気回路およびグラフネットワークの例(1)を示す概要図である。図20に示す電気回路は、スイッチング電源U1を備えており、入力端子とグラウンドGNDとの間に電圧をかけると、出力端子とグラウンドGNDとの間に異なる電圧が出力される。この電気回路に関するネットリストから部品リストおよび組み合わせリストを抽出した結果を、グラフと呼ぶ。図20に示す電気回路においては、グラフを、回路図に変換することはできない。特に、図20上部の回路図の灰色で示す配線の情報が欠落するため、グラフを変換したときに情報劣化が起こったとみなされる。
【0217】
図21は、実施の形態2における電気回路およびグラフネットワークの例(2)を示す概要図である。図21に示すグラフは、実施の形態1に示したように、部品名リストに入力端子、出力端子およびグラウンド端子を設けて構成したものである。図20と似た構造の回路図となることが分かる。
しかしながら、図21の下図のグラフにおける「IN」と「U1」との間の線が多重辺となっており、さらに「U1」から「OUT」に至る線において、L1を通る線とL1を通らない線とが存在し、回路図とグラフとが同一にならないことが分かる。グラフを活用する多くの場合、多少の情報劣化は許容されるため、実施の形態1の手法は従来と比べると効果がある。しかし、グラフから回路図が完全な可逆変換になっていない。
【0218】
図22は、実施の形態2における電気回路およびグラフネットワークの例(3)を示す概要図である。処理部12Aが、電気回路内の3端子以上の部品を2端子部品に分解することにより、図22に示すように、当該電気回路は、個々の配線に2端子部品が接続された構造を有するものとなる。すなわち、電気回路における2端子部品間が全て接続された構造となるため、グラフと回路図とを可逆的に変換することが可能となる。
【0219】
上述したように部品を分解することは、グラフと回路図とを可逆的に変換できる利点がある一方で、分解した部品間を接続する配線を考慮する必要がある。すなわち、分解した部品間を接続する配線が増えることにより必要な情報または計算量が増えるため、実施の形態1に比べて必ずしもよいとは限らない。そのため、グラフニューラルネットワークに必要な推論精度または許容可能な計算量に応じて実施の形態1に係る情報処理方法または実施の形態2に係る情報処理方法を選択して使うのが望ましい。
【0220】
実施の形態2においても、自己ループまたは多重辺を発生させない限りにおいて、処理部12Aは、分解したノードと、当該ノードに繋がる配線とを除去してもよい。例えば、多重辺または自己ループ自体に情報がないと判断できる場合には、ノードと当該ノードに繋がる配線とを除去しても構わない。このように除去することにより処理を高速化できるだけでなく、不要な情報が含まれないため、グラフニューラルネットワークの推論精度を向上させることができる。
【0221】
図23は、実施の形態2に係る情報処理装置1Aによる推論精度の算出結果の例を示すグラフであり、3端子以上の部品を分解した場合の結果を示している。
推論精度が最も高くなった図15に示した結果と比較するため、ノードには、部品の識別番号のみを付与し、エッジには、識別番号間の接続情報のみを入力した。正解データは、図15と同様に、9つの回路を種類ごとに分類する分類問題とした。
【0222】
図15に示した結果を得たグラフニューラルネットワークと同じグラフニューラルネットワークで回路定数を含めて学習し、学習後のグラフニューラルネットワークで上記分類の推論を行った。これにより、推論精度は、95.32%となり、図15に示した結果と比べると、3.58%低下した。これは、分解で得られた2端子部品間の関係性を含めて学習しており、それらの未知数を決めるには学習データが少ないことが原因であると予想される。このように、実施の形態2における情報処理方法は、ネットリストとグラフとの間での高い可逆変換が必要な場合に適した方法であるが、実施の形態1における情報処理方法の方が優れている場合も存在する。
【0223】
一方、回路シミュレーションなどにより正解となる情報が事前に得られる場合、グラフニューラルネットワークの学習において、計算済みのエッジの重みを学習させず、更新を止めてしまってもよい。この場合、3端子以上の部品を2端子部品に分解する処理を施しても、グラフニューラルネットワークの推論精度を向上させることが可能である。
このように、用意できるデータまたは目的に合わせて、実施の形態1に係る情報処理方法と実施の形態2に係る情報処理方法とを使い分けることが望ましい。
【0224】
上記の例では正解データを回路の種類としたが、回路シミュレータで得られる出力波形または出力波形の周波数特性などを学習データとしてもよい。この場合、回路シミュレータを活用することで、教師データを学習に必要なだけ作成することが可能である。
また、出力波形に限定せず、回路内の特定の配線の信号波形を予測すること、信号波形のアイパターンの面積を予測すること、回路の特定の部位の発熱を予測すること、回路を構成するために必要な部品のコストを予測すること、あるいは、入力端子に出てくる電磁ノイズの周波数特性を予測することにより、正解データを変更すれば、グラフニューラルネットワークを目的に合わせて自由に学習させることが可能である。
【0225】
また、回路シミュレーションと組み合わせて、エッジの属性情報データを作成して使用することにより、電流の方向性を含めた有向グラフにおいても、上記と同様の計算をすることができる。
【0226】
電圧の周波数特性をノードに付与すること、または、電流の周波数特性をエッジに付与することも可能である。ただし、変形例3に示したように、周波数データをグラフニューラルネットワークのノードまたはエッジの属性情報の列に1周波数ずつ入力していくと、大きな行列となり、学習に多くの計算時間と計算量が必要となる。そのような場合、大きなメモリを持つ高性能の計算機を用意して学習を行ってもよいが、例えば、周波数特性をグラフ埋め込み(Graph Embedding)でベクトル量に変換した情報の学習を行うことで、大規模な回路で周波数特性を含む大きな行列を有する入力データであっても、その計算量を低減でき、高性能な計算機を用いずにグラフニューラルネットワークの学習を行うことが可能である。
【0227】
また、一つの配線に並列に接続された複数の部品を有する電気回路は、上述した実施の形態2に係る情報処理方法であっても部品の組み合わせ数が増大してしまう。すなわち、電気回路が一つの配線に並列に接続された複数の部品を有する場合、組み合わせリストにおける互いに対応する部品の組み合わせは、配線に並列に接続された部品の数の約2乗に比例して増加する。このため、電流ループの探索に要する計算量が指数関数的に増大し、探索時間も増大する。
【0228】
そこで、情報処理装置1Aは、一本の配線に複数の部品が並列に接続された大規模な回路についての部品名の組み合わせ数の増加が抑制されるように、配線名と部品名とを含む組み合わせリストを作成してもよい。例えば、処理部12Aが、実施の形態1と同様に、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストを作成し、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストを作成する。そして、処理部12Aは、上述のように、3つ以上の配線に接続された部品を配線数と同数の2端子部品とみなして2端子部品を示す部品名を、更新した部品名リストに追加し、2端子部品とみなす前の部品を示す部品名を更新した部品名リストから除去する。さらに、処理部12Aは、2端子部品の一方の端子に3つ以上の配線をそれぞれ接続し、2端子部品の他方の端子間を新たな配線で接続した接続関係を定義し、更新した配線名リストに新たな配線を示す配線名を追加する。この後、処理部12Aは、更新した部品名リストから、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名とこれに対応する配線名とを含む組み合わせリストとを作成して、更新した部品名リストおよび組み合わせリストを出力する。すなわち、組み合わせリストには、更新した配線名リストにおける配線名に対応する部品名とこれに対応する配線名とが含まれる。この組み合わせリストを含むリスト情報から変換されたグラフネットワークは、部品名と配線名とがノードで表され、図10に示したように、任意の部品名のノードに隣接するノードが配線名のノードになる特徴を有する。これにより、組み合わせ数を、部品の数の1乗に比例する数にすることができる。
【0229】
以上のように、実施の形態2に係る情報処理装置1Aにおいて、処理部12Aが、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストとを用いて、3つ以上の配線に接続された部品を配線数と同数の2端子部品とみなして2端子部品を示す部品名を、更新した部品名リストに追加し、2端子部品とみなす前の部品を示す部品名を、更新した部品名リストから除去し、2端子部品の一方の端子に3つ以上の配線を接続し、2端子部品の他方の端子間を新たな配線でそれぞれ接続し、更新した配線名リストに新たな配線を示す配線名を追加し、更新した部品名リストから、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストを作成し、更新した部品名リストおよび組み合わせリストを出力する。
これにより、情報処理装置1Aは、電気回路をグラフネットワークに変換するときに発生する情報劣化を抑制可能なリスト情報を提供することが可能である。また、2端子部品を定義することにより、自己ループまたは多重辺になることを防ぐことができ、電気回路からグラフネットワークへ変換およびグラフネットワークから電気回路へ変換したときに発生する情報劣化を抑制することができる。
【0230】
実施の形態2に係る情報処理装置1Aにおいて、処理部12Aが、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストと、を作成し、3つ以上の配線に接続された部品を配線数と同数の2端子部品とみなして2端子部品を示す部品名を、更新した部品名リストに追加し、2端子部品とみなす前の部品を示す部品名を、更新した部品名リストから除去する。2端子部品の一方の端子に3つ以上の配線をそれぞれ接続し、2端子部品の他方の端子間を新たな配線で接続した接続関係を定義し、更新した配線名リストに新たな配線を示す配線名を追加し、更新した部品名リストから、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名とこれに対応する配線名とを含む組み合わせリストとを作成し、更新した部品名リストおよび組み合わせリストを出力する。これにより、情報処理装置1Aは、電気回路をグラフネットワークに変換するときに発生する情報劣化を抑制可能なリスト情報を提供することが可能である。さらに、情報処理装置1Aは、部品の組み合わせ数の増加を抑制できるので、当該組み合わせリストを含むリスト情報を用いたグラフニューラルネットワークの処理に要する計算量および計算時間を低減できる。
【0231】
実施の形態2に係る情報処理装置1Aにおいて、処理部12Aは、部品の特徴ごとに固有な識別番号で部品名を置き換えた、更新した部品名リストおよび組み合わせリストを出力する。これにより、情報処理装置1Aは、リスト情報を数値で表すことで情報量を軽減することができ、リスト情報からグラフネットワークへ変換したときに発生する情報劣化を防ぐことができる。
【0232】
実施の形態2に係る情報処理方法は、情報処理装置1Aが、3つ以上の配線に接続された部品を配線の数と同数の2端子部品とみなして2端子部品を示す部品名を、更新した部品名リストに追加するステップと、2端子部品とみなす前の部品を示す部品名を、更新した部品名リストから除去するステップと、2端子部品の一方の端子に対し3つ以上の配線をそれぞれ接続し、2端子部品の他方の端子間を新たな配線でそれぞれ接続し、更新した配線名リストに新たな配線を示す配線名を追加するステップと、更新した部品名リストから、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストを作成するステップと、更新した部品名リストおよび組み合わせリストを出力するステップと、を実行する。これにより、2端子部品を定義することにより、自己ループまたは多重辺になることを防ぐことができ、電気回路からグラフネットワークへの変換、およびグラフネットワークから電気回路への変換の際の情報劣化を防ぐことができる。
【0233】
実施の形態2に係る情報処理装置1Aにおいて、処理部12Aは、2端子部品同士を接続する配線に、自己ループまたは多重辺を発生させない限りにおいて、当該2端子部品からノードを除去する。これにより、情報処理装置1Aは、電気回路のグラフ情報を作成するときの情報劣化を抑制可能なリスト情報を提供することが可能である。
【0234】
実施の形態2に係る情報処理方法は、情報処理装置1Aが、グラウンド端子、入力端子および出力端子を示す部品名を追加して更新した部品名リストと、グラウンド配線、入力配線および出力配線を示す配線名を除去して更新した配線名リストとを作成し、3つ以上の配線に接続された部品を配線の数と同数の2端子部品とみなして2端子部品を示す部品名を、更新した部品名リストに追加するステップと、2端子部品とみなす前の部品を示す部品名を、更新した部品名リストから除去するステップと、2端子部品の一方の端子に対し3つ以上の配線をそれぞれ接続し、2端子部品の他方の端子間を新たな配線でそれぞれ接続し、更新した配線名リストに新たな配線を示す配線名を追加するステップと、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名を含む組み合わせリストとを作成するステップと、更新した部品名リストおよび組み合わせリストを出力するステップと、を実行する。
これにより、電気回路をグラフネットワークに変換するときに発生する情報劣化を抑制可能なリスト情報を提供することが可能である。
さらに、2端子部品を定義することにより、自己ループまたは多重辺になることを防ぐことができ、電気回路からグラフネットワークへ変換およびグラフネットワークから電気回路へ変換したときに発生する情報劣化を抑制することができる。
【0235】
実施の形態2に係る情報処理方法は、情報処理装置1Aが、更新した部品名リストにおける部品名から、更新した配線名リストにおける配線名に対応する部品名を抽出し、抽出した部品名とこれに対応する配線名とを含む組み合わせリストとを作成するステップと、更新した部品名リストおよび組み合わせリストを出力するステップと、を実行する。これにより、電気回路をグラフネットワークに変換するときに発生する情報劣化を抑制可能なリスト情報を提供することが可能である。さらに部品の組み合わせ数の増加を抑制できるので、当該組み合わせリストを含むリスト情報を用いたグラフニューラルネットワークの処理に要する計算量および計算時間の増加を低減できる。
【0236】
なお、各実施の形態の組み合わせまたは実施の形態のそれぞれの任意の構成要素の変形もしくは実施の形態のそれぞれにおいて任意の構成要素の省略が可能である。
【産業上の利用可能性】
【0237】
本開示に係る情報処理装置は、例えば、回路設計CADと基板設計CADを用いた回路の設計に利用可能である。
【符号の説明】
【0238】
1,1A 情報処理装置、11 取得部、12,12A 処理部、100 入力インタフェース、101 出力インタフェース、102 処理回路、103 プロセッサ、104 メモリ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23