(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-18
(45)【発行日】2024-09-27
(54)【発明の名称】訓練データ生成プログラム、訓練データ生成方法および情報処理装置
(51)【国際特許分類】
G06F 30/27 20200101AFI20240919BHJP
G06F 30/398 20200101ALI20240919BHJP
H05K 3/00 20060101ALI20240919BHJP
G06F 119/10 20200101ALN20240919BHJP
G06F 115/12 20200101ALN20240919BHJP
【FI】
G06F30/27
G06F30/398
H05K3/00 D
G06F119:10
G06F115:12
(21)【出願番号】P 2020181670
(22)【出願日】2020-10-29
【審査請求日】2023-07-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】山根 昇平
(72)【発明者】
【氏名】山田 広明
(72)【発明者】
【氏名】山▲崎▼ 崇史
(72)【発明者】
【氏名】巨智部 陽一
(72)【発明者】
【氏名】大原 敏靖
【審査官】松浦 功
(56)【参考文献】
【文献】特開2020-060877(JP,A)
【文献】特開2009-146271(JP,A)
【文献】特開2012-155489(JP,A)
【文献】国際公開第2020/095362(WO,A1)
【文献】国際公開第2020/112025(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 -30/398
H05K 3/00
G01R 29/08
G01R 31/28 -31/3193
H01L 21/82
(57)【特許請求の範囲】
【請求項1】
第1の回路データに含まれる第1の層を示す第1のパターンを特定し、
前記第1の層に隣接する第2の層を示す第2のパターンに含まれる第1の配線と、前記第1のパターンに含まれるスリットとに基づいて、前記第1のパターンが、前記第1の配線に応じた第2の配線を含む第3のパターンに変更された第2の回路データを生成し、
前記第2の回路データに基づいて、
電子回路の電磁波放射を推定するための機械学習モデルを訓練する機械学習に用いられる訓練データを生成する、
処理をコンピュータに実行させることを特徴とする訓練データ生成プログラム。
【請求項2】
前記第2の回路データを生成する処理は、前記第1の配線に電流が流れた場合に前記第1の層に流れるリターン電流の経路を判定し、前記リターン電流の経路を示すように前記第2の配線を決定する処理を含む、
ことを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項3】
前記第2の回路データを生成する処理は、前記第1のパターンにおいて前記第1の配線に対応する位置の線と前記スリットとの交点を検出し、前記スリットを迂回して前記交点の両隣の点を結合する迂回経路を示すように前記第2の配線を決定する処理を含む、
ことを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項4】
前記第1の層は、前記スリットの外の空き領域が導体で覆われたグラウンド層である、
ことを特徴とする請求項1に記載の訓練データ生成プログラム。
【請求項5】
第1の回路データに含まれる第1の層を示す第1のパターンを特定し、
前記第1の層に隣接する第2の層を示す第2のパターンに含まれる第1の配線と、前記第1のパターンに含まれるスリットとに基づいて、前記第1のパターンが、前記第1の配線に応じた第2の配線を含む第3のパターンに変更された第2の回路データを生成し、
前記第2の回路データに基づいて、
電子回路の電磁波放射を推定するための機械学習モデルを訓練する機械学習に用いられる訓練データを生成する、
処理をコンピュータが実行することを特徴とする訓練データ生成方法。
【請求項6】
第1の層を示す第1のパターンと、前記第1の層に隣接する第2の層を示す第2のパターンとを含む第1の回路データを記憶する記憶部と、
前記第2のパターンに含まれる第1の配線と、前記第1のパターンに含まれるスリットとに基づいて、前記第1のパターンが、前記第1の配線に応じた第2の配線を含む第3のパターンに変更された第2の回路データを生成し、前記第2の回路データに基づいて、
電子回路の電磁波放射を推定するための機械学習モデルを訓練する機械学習に用いられる訓練データを生成する制御部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は訓練データ生成プログラム、訓練データ生成方法および情報処理装置に関する。
【背景技術】
【0002】
電子回路に電流が流れると、電子回路から電磁波が放射される。電子回路を有する製品は、放射される電磁波の強度が閾値未満であるという規制を受けることがある。そのため、電子回路は、電磁波の規制に抵触しないように設計される。電磁波の強度の指標として、例えば、EMI(Electromagnetic Interference)が用いられる。
【0003】
設計中に電磁波の強度を推定する方法として、コンピュータが、電磁波の放射態様を解析する物理シミュレーションを行うことがある。しかし、物理シミュレーションは計算負荷が高く、長時間を要することがあるという問題がある。そこで、他の方法として、コンピュータが、機械学習によって生成されたモデルを用いて、回路データから電磁波の強度を推定することがある。モデルは、例えば、深層学習(DL:Deep Learning)によって生成されるニューラルネットワークである。モデルによる推定は物理シミュレーションよりも計算負荷が低く、短時間で推定結果が得られる。
【0004】
なお、プリント基板の設計の際に、配線に対応するリターン電流が流れる経路を検出するリターン経路チェックシステムが提案されている。また、プリント基板データから電流ループ経路を検出し、電流ループ経路の面積に基づいて、プリント基板から放射される電磁的ノイズを推定する基板設計装置が提案されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2007-11629号公報
【文献】特開2009-151363号公報
【文献】特開2020-60877号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
電磁波放射を推定するためのモデルは、訓練データを用いた機械学習により生成される。モデルの精度は、モデルへの入力として使用されるデータの種類に依存する。そのため、機械学習では、訓練データとしてどの様なデータを使用するかが重要となる。
【0007】
ここで、電子回路は、複数の層を含むことがある。ある層が、電流が流れる配線を含む配線層であることがある。配線層に隣接する層が、広い導体領域を含む層であることがある。広い導体領域を含む層は、例えば、ベタグラウンド(GND)層である。配線層の配線に電流が流れると、隣接する層の導体領域の一部にリターン電流が流れる。リターン電流は、電子回路が放射する電磁波に影響を与える。そのため、訓練データがリターン電流に関する情報を含まない場合、モデルの精度が低下する可能性がある。
【0008】
1つの側面では、本発明は、電磁波放射の推定の精度を向上させることを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、第1の回路データに含まれる第1の層を示す第1のパターンを特定し、第1の層に隣接する第2の層を示す第2のパターンに含まれる第1の配線と、第1のパターンに含まれるスリットとに基づいて、第1のパターンが、第1の配線に応じた第2の配線を含む第3のパターンに変更された第2の回路データを生成し、第2の回路データに基づいて、機械学習用の訓練データを生成する、処理をコンピュータに実行させることを特徴とする訓練データ生成プログラムが提供される。また、1つの態様では、訓練データ生成方法が提供される。また、1つの態様では、記憶部と制御部とを有することを特徴とする情報処理装置が提供される。
【発明の効果】
【0010】
1つの側面では、電磁波放射の推定の精度が向上する。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態の情報処理装置を説明するための図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図3】機械学習を利用した電磁波強度の推定例を示す図である。
【
図4】GND層におけるリターン電流の第1の発生例を示す図である。
【
図5】GND層におけるリターン電流の第2の発生例を示す図である。
【
図7】ニューラルネットワークの入出力データの例を示す図である。
【
図8】第2の実施の形態の情報処理装置の機能例を示すブロック図である。
【
図9】モデル生成の手順例を示すフローチャートである。
【
図10】電磁波推定の手順例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本実施の形態を、図面を参照して説明する。まず、第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置を説明するための図である。第1の実施の形態の情報処理装置10は、機械学習に用いられる訓練データを生成する。情報処理装置10は、生成された訓練データを用いて機械学習を実行してもよい。また、情報処理装置10は、他の情報処理装置に機械学習を実行させてもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、訓練データ生成装置または機械学習装置と呼ばれてもよい。
【0013】
情報処理装置10は、記憶部11および制御部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよい。また、記憶部11は、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。制御部12は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサでもよい。また、制御部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、メモリ(例えば、記憶部11)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0014】
記憶部11は、電子回路の物理設計を示す回路データ13を記憶する。回路データ13は、複数の層それぞれのパターンを含む。パターンは、配線、ビア、スリット、導体領域、非導体領域などの面の構造を示す。層の集合は、配線層、グラウンド層(GND層)および電源層を含むことがある。配線層は、導体で形成された配線を含む。配線には電流が流れ得る。配線層の空き領域は、非導体で覆われている。GND層および電源層の空き領域は、導体で覆われている。広い導体領域をもつGND層は、ベタGND層と呼ばれることがある。GND層および電源層は、スリットを含むことがある。スリットは、導体で覆われていない。矩形のスリットは、3辺または4辺で導体と接する。
【0015】
一例として、回路データ13は、パターン15,16を含む。パターン15は、広い導体領域をもつ。パターン15は、例えば、ベタGND層を示す。パターン15は、スリット15aを含む。スリット15aは、3辺で導体と接している。パターン16は、パターン15が示す層と隣接する配線層を示す。例えば、パターン16が第1層を示し、パターン15が第2層を示す。パターン16は、配線16aを含む。ここで、パターン16の配線16aに電流が流れると、パターン15の導体領域の一部にリターン電流が流れる。リターン電流が流れるリターン経路は、原則として、配線16aに対応する位置に形成される。ただし、スリット15aがリターン電流を阻害することがある。その場合、リターン経路は、スリット15aを迂回する迂回経路をとる。
【0016】
制御部12は、回路データ13に基づいて、機械学習用の訓練データ18を生成する。訓練データ18は、モデルへの入力に相当する特徴データと、モデルの出力の正解に相当する教師データとを含む。特徴データが説明変数と呼ばれることがあり、教師データが目的変数と呼ばれることがある。訓練データ18から生成されるモデルは、回路構造の特徴から、電子回路が放射する電磁波を推定する電磁波推定モデルである。モデルはニューラルネットワークであってもよい。機械学習は深層学習であってもよい。モデルの出力は、例えば、電子回路から所定の距離だけ離れた位置の電磁波の強度である。正解の電磁波の強度は、回路データ13に基づいて実装された電子回路を用いて測定されてもよい。また、正解の電磁波の強度は、物理シミュレーションによって算出されてもよい。
【0017】
訓練データ18を生成するにあたり、制御部12は、回路データ13に含まれる1つの層を示すパターン15を特定する。例えば、制御部12は、ベタGND層など、空き領域が導体で覆われた層のパターンを特定する。また、制御部12は、上記1つの層に隣接する他の1つの層を示すパターン16を特定する。制御部12は、パターン16に含まれる配線16aと、パターン15に含まれるスリット15aとに基づいて、パターン15がパターン17に変更された回路データ14を生成する。回路データ14は、例えば、第1層に相当するパターン16と、第2層に相当するパターン17とを含む。
【0018】
パターン17は、配線16aに応じた配線17aを含む。配線17aは、配線16aに電流が流れることで発生するリターン電流のリターン経路を示してもよい。パターン17内での配線17aの位置は、パターン16内での配線16aの位置と同じでもよい。ただし、配線16aと同じ配線がスリット15aを跨ぐ場合、配線17aはスリット15aを迂回する。パターン15の導体領域の電気特性(例えば、抵抗値)は、均一であることが多い。一方、リターン電流は、電気抵抗が最小になる経路を流れることが多い。そのため、スリット15aを迂回する区間は最短経路をとってもよい。
【0019】
例えば、制御部12は、配線16aと同じ形状および同じ位置の線をパターン15に対して引く。引かれた線の一部区間がスリット15aと重なる場合、制御部12は、引かれた線とスリット15aの辺との交点に相当する2つの端点を検出する。制御部12は、2つの端点を結ぶ経路であって、スリット15aを迂回する迂回経路を探索する。ここで制御部12が探索する迂回経路は、距離が最小の最短経路である。配線17aは、スリット15aと重ならない区間の線と迂回経路を示す線とから形成される。
【0020】
制御部12は、回路データ14に基づいて訓練データ18を生成する。例えば、制御部12は、パターン16,17それぞれを二次元ビットマップ画像に変換する。例えば、制御部12は、パターン16に対応する二次元ビットマップ画像を、配線16aが通る位置の要素が「1」であり他の要素が「0」であるように生成する。また、例えば、制御部12は、パターン17に対応する二次元ビットマップ画像を、配線17aが通る位置の要素が「1」であり他の要素が「0」であるように生成する。
【0021】
各パターンに対応する画像は、例えば、縦100×横100のサイズをもつ。訓練データ18に含まれる入力データは、層数に相当するチャネル数をもつテンソルであってもよい。よって、訓練データ18に含まれる入力データは、例えば、縦100×横100×2チャネルのテンソルである。なお、制御部12は、モデルの精度が向上するように各パターンに対応する画像を編集してもよい。
【0022】
例えば、制御部12は、配線16aが通る位置の要素を、配線16aの長さを表す数値に変更してもよい。同様に、制御部12は、配線17aが通る位置の要素を、配線17aの長さを表す数値に変更してもよい。このように加工された画像は、配線16aが長いほど近傍の電磁波の強度が大きいという物理特性を反映している。また、制御部12は、配線16aの周辺の要素を、配線16aから遠ざかるにつれて段階的に減衰する数値に変更してもよい。同様に、制御部12は、配線17aの周辺の要素を、配線17aから遠ざかるにつれて段階的に減衰する数値に変更してもよい。このように加工された画像は、配線16aの近傍の電磁波の放射態様を反映している。
【0023】
このように、情報処理装置10は、回路構造の特徴から電磁波放射を推定するモデルを生成するための訓練データ18を生成する。これにより、情報処理システムは、機械学習によって生成されたモデルを用いて、設計中の電子回路の電磁波放射を推定することができる。このとき、電子回路の設計者は、設計中の電子回路を実装して電磁波強度を測定しなくてもよい。また、情報処理システムは、計算量の大きい電磁波シミュレーションを実行しなくてもよい。よって、設計者は、電磁波放射の情報を迅速に入手できる。
【0024】
また、訓練データ18は、配線層に隣接する層(例えば、GND層または電源層)に流れるリターン電流に関する情報を含む。リターン電流を表現するため、情報処理装置10は、回路データ13に対して仮想的な配線を追加する。よって、訓練データ18から生成されるモデルの精度が向上する。また、隣接する層がスリットを含む場合、情報処理装置10は、スリットを迂回するように仮想的な配線を決定する。よって、仮想的な配線が実際のリターン経路を精度よく表現することができる。
【0025】
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。情報処理装置100は、CPU101、RAM102、HDD103、画像インタフェース104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。CPU101は、第1の実施の形態の制御部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0026】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータの少なくとも一部をRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0027】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類のメモリを有してもよく、複数のメモリを有してもよい。
【0028】
HDD103は、OS(Operating System)、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを有してもよく、複数のストレージを有してもよい。
【0029】
画像インタフェース104は、CPU101からの命令に従って、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなど他の種類の出力デバイスが接続されてもよい。
【0030】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネル、またはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0031】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0032】
なお、記録媒体113は可搬型記録媒体であってもよく、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0033】
通信インタフェース107は、ネットワーク114に接続される。通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよい。また、通信インタフェース107は、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0034】
情報処理装置100は、電子回路の設計を支援する。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100は、機械学習によってモデルを生成する。モデルは、電子回路から所定の距離(例えば、10メートル)だけ離れた位置における電磁波の強度を、その電子回路の回路データから推定する。距離は、例えば、電磁波放射に関する各国の規制に応じて設定される。情報処理装置100は、モデルを用いて、設計中の電子回路が放射する電磁波の強度を推定する。
【0035】
第2の実施の形態では、情報処理装置100が、訓練データの生成、モデルの生成および電磁波強度の推定の3つを全て行っている。ただし、複数の情報処理装置が、訓練データの生成、モデルの生成および電磁波強度の推定を分散して実行してもよい。以下、機械学習を利用した電磁波強度の推定の流れを説明する。
【0036】
図3は、機械学習を利用した電磁波強度の推定例を示す図である。情報処理装置100は、機械学習のために回路データ131を生成する。回路データ131は、配線の位置および形状を示すパターンを含む。回路データ131が示す配線は、比較的単純な配線でもよい。情報処理装置100は、回路データ131に対して電磁波シミュレーション132を実行し、電磁波データ133を生成する。電磁波シミュレーション132は、回路データ131が示す電子回路に電流が流れた場合に、電子回路から放射される電磁波の強度を算出する物理シミュレーションである。電磁波シミュレーション132の計算量は大きく、実行時間が長くなることがある。
【0037】
電磁波シミュレーション132は、三次元有限要素法シミュレーションであってもよい。例えば、情報処理装置100は、電子回路が配置された空間を三次元小領域である要素に細分化し、要素の節点に変数を割り当てる。情報処理装置100は、電磁波の物理法則を示す基礎方程式に基づいて、変数間の関係を示す係数行列を生成する。情報処理装置100は、係数行列を用いた行列演算を反復することで、変数の解を求める。
【0038】
電磁波データ133は、電子回路から所定の距離だけ離れた位置における電磁波強度を示す。電磁波データ133は、異なる周波数に対する電磁波強度を示す。例えば、0GHzから1GHzまでの周波数区間から、0.01GHz間隔で100個の周波数が抽出される。電磁波データ133は、例えば、100個の周波数に対応する100個の電磁波強度の数値を列挙したベクトルデータである。
【0039】
情報処理装置100は、回路データ131に応じた入力データと、電磁波データ133に応じた教師データとを含む訓練データを生成する。入力データはモデルの説明変数に相当し、教師データはモデルの目的変数に相当する。入力データは、電子回路の配線の特徴を表す特徴データである。情報処理装置100は、電子回路の配線を変更することで、回路データ131と電磁波データ133のペアを複数通り生成する。これにより、情報処理装置100は、十分な量のレコードを含む訓練データを生成する。
【0040】
情報処理装置100は、生成された訓練データを用いて機械学習134を実行する。機械学習134は、モデル135を生成する深層学習(ディープラーニング)である。モデル135は、ニューラルネットワークであり、例えば、畳み込み演算を含む畳み込みニューラルネットワークである。機械学習134は、誤差逆伝播法を含む。
【0041】
例えば、情報処理装置100は、訓練データからレコードを選択し、レコードに含まれる入力データをモデル135に入力し、モデル135の出力とレコードに含まれる教師データとの間の誤差を算出する。誤差は、例えば、100個の電磁波強度をそれぞれ列挙したベクトル2つの間の平均二乗誤差である。情報処理装置100は、誤差が小さくなるように、モデル135に含まれるパラメータを更新する。パラメータは、ニューラルネットワークのエッジの重みを含む。情報処理装置100は、モデル135の出力層から入力層に向かって順にエッジの重みの誤差勾配を算出し、誤差勾配に基づいて重みを更新する。これにより、モデル135が生成される。
【0042】
情報処理装置100は、設計中の電子回路を示す回路データ136をユーザから受け付ける。回路データ136は、配線の位置および形状を示すパターンを含む。回路データ136が示す配線は、回路データ131より複雑な配線でもよい。情報処理装置100は、回路データ136に応じた入力データを生成し、生成された入力データをモデル135に入力して電磁波データ137を生成する。
【0043】
回路データ136に対応する入力データは、設計中の電子回路の配線の特徴を表す特徴データである。電磁波データ137は、設計中の電子回路が放射する電磁波であって、その電子回路から所定の距離だけ離れた位置における電磁波の強度の推定値を示す。電磁波データ137は、例えば、0GHzから1GHzまでの間の100個の周波数に対応する100個の電磁波強度の数値を列挙したベクトルデータである。
【0044】
これにより、電子回路の設計者は、電磁波強度を測定するためだけに回路データ136に基づいて電子回路を実装しなくてもよい。また、情報処理装置100は、回路データ136に対して、計算量の大きい電磁波シミュレーション132を実行しなくてもよい。よって、設計者は、様々な設計候補に対して電磁波データを迅速に入手できる。次に、モデル135の精度を向上させるための訓練データの加工について説明する。
【0045】
図4は、GND層におけるリターン電流の第1の発生例を示す図である。電子回路の物理構造は、複数の層を含むことがある。配線を含む配線層に隣接する層が、空き領域が導体で覆われたGND層であるベタGND層であることがある。例えば、第1層が配線層であり、第2層がベタGND層であることがある。
【0046】
パターン141は、配線層を示す。パターン141は、配線142を含む。パターン143は、配線層に隣接するベタGND層を示す。パターン143は、配線を含まない。配線142に電流が流れた場合、配線層に隣接するベタGND層にリターン電流が流れる。よって、パターン143の上にリターン経路144が形成される。リターン経路144の位置および形状は、原則として配線142と同一である。すなわち、原則として、配線142の真下または真上にリターン電流が流れる。
【0047】
図5は、GND層におけるリターン電流の第2の発生例を示す図である。ここでは、パターン143のベタGND層に代えて、パターン145のベタGND層がパターン141の配線層に隣接している。パターン145は、スリット146を含む。スリット146は、導体で覆われていない領域である。スリット146が矩形である場合、通常、スリット146の3辺または4辺が導体領域と接している。
【0048】
配線142に電流が流れた場合、パターン145の上にリターン経路147が形成される。前述のように、リターン経路の位置および形状は、原則として配線142と同一である。ただし、パターン145では、配線142と同じ線はスリット146を跨ぐ。スリット146には電流が流れないため、リターン経路147はスリット146を迂回する。このように、リターン経路の位置および形状が、配線142と同一でないことがある。
【0049】
障害物を迂回する場合、リターン電流は抵抗が小さい経路を流れようとする。これに対し、パターン145におけるスリット146の周辺は、抵抗値などの電気特性が均一な導体で覆われている。よって、リターン経路147は、最小距離でスリット146を迂回する。具体的には、配線142と同一の線とスリット146の辺とが交差する2つの端点を、最小距離で結ぶように、迂回経路が形成される。
図5の例では、スリット146の北側を通る迂回経路と、スリット146の南側を通る迂回経路が存在する。この2つの迂回経路のうち、距離が短い後者の迂回経路が選択される。
【0050】
ここで、情報処理装置100は、電子回路の層毎に配線を示す画像データを生成し、画像データの集合をモデルへの入力データとして定義する方法が考えられる。しかし、リターン経路は、隣接する配線層の配線に電流が流れたときに出現する動的な電流経路であり、回路データの中に配線として記載されていない。また、リターン経路の位置および形状は、隣接する配線層の配線と同一であるとは限らない。このため、配線を示す画像データの集合のみでは、リターン電流に関する情報が欠落する。一方、リターン電流は、電子回路から放射される電磁波の強度に影響を与える。その結果、モデルの精度が低下するおそれがある。そこで、情報処理装置100は、ベタGND層の画像データを編集する。
【0051】
図6は、リターン経路の計算例を示す図である。画像データ151は、配線を含む配線層のパターンから生成される。画像データ152は、配線層に隣接するベタGND層のパターンから生成される。情報処理装置100は、パターンを直交格子状の小領域に分割する。例えば、情報処理装置100は、パターンを縦100×横100の小領域に分割する。情報処理装置100は、導体を含む小領域に対して、導体を示す値を要素として割り当てる。また、情報処理装置100は、導体を含まない小領域に対して、非導体を示す値を要素として割り当てる。
【0052】
画像データ151,152は、このようにして割り当てられた要素を二次元平面に並べた行列データである。画像データ151では、配線が存在する位置の要素が導体を示し、それ以外の要素が非導体を示す。画像データ152では、スリットが存在する位置の要素が非導体を示し、それ以外の要素が導体を示す。
【0053】
次に、情報処理装置100は、ベタGND層に対応する画像データ152を加工する。情報処理装置100は、画像データ151から導体を示す要素を検出し、画像データ152から同じ位置の要素を抽出する。抽出した要素が導体を示す場合、情報処理装置100は、抽出した要素の値をリターン経路を示す値に書き換える。抽出した要素が非導体を示す場合、情報処理装置100は、抽出した要素の値を書き換えない。また、情報処理装置100は、リターン経路を示す要素のうち非導体を示す要素に隣接する要素の値を、端点を示す値に書き換える。これにより、画像データ152が画像データ153に変換される。画像データ153は、導体を示す要素および非導体を示す要素に加えて、リターン経路を示す要素および端点を示す要素を含む。
【0054】
次に、情報処理装置100は、画像データ153において、端点を示す2つの要素を結ぶ最短経路であって、導体を示す要素のみを通る迂回経路を探索する。最短経路の探索には、例えば、ダイクストラ法などの経路探索アルゴリズムが使用される。情報処理装置100は、探索された最短経路に属する要素の値を、リターン経路を示す値に書き換える。これにより、画像データ153が画像データ154に変換される。画像データ154は、導体を示す要素と非導体を示す要素とリターン経路を示す要素とを含む。
【0055】
そして、情報処理装置100は、画像データ154に含まれる導体を示す要素の値を、非導体を示す値に書き換える。また、情報処理装置100は、画像データ154に含まれるリターン経路を示す要素の値を、導体を示す値に書き換える。これにより、画像データ154が画像データ155に変換される。画像データ155は、導体を示す要素と非導体を示す要素とを含む。導体を示す要素は、電流が流れ得る小領域を示し、リターン経路を形成する。非導体を示す要素は、電流が流れない小領域を示す。この点で、画像データ155の要素の意味は、画像データ151と整合する。
【0056】
情報処理装置100は、例えば、導体を示す要素を「1」で表現し、非導体を示す要素を「0」で表現する。情報処理装置100は、画像データ151,155を含む入力データを生成する。例えば、情報処理装置100は、縦100×横100×2チャネルのテンソルを、モデルへの入力データとして生成する。
【0057】
図7は、ニューラルネットワークの入出力データの例を示す図である。ニューラルネットワーク160は、前述のモデル135の一例である。ニューラルネットワーク160は、入力層と出力層と1以上の中間層とを含む多層ニューラルネットワークである。各層は複数のノードを含む。入力層のノードは、1つ後ろの中間層のノードとの間にエッジをもつ。出力層のノードは、1つ前の中間層のノードとの間にエッジをもつ。中間層は、前後の層のノードとの間にエッジをもつ。エッジには、重みを示すパラメータが割り当てられる。重みは、機械学習を通じて決定される。また、ニューラルネットワーク160は、畳み込み演算を実装した畳み込みニューラルネットワークである。畳み込み演算は、入力テンソルの上でカーネルと呼ばれるフィルタ行列をスライドさせながら積和演算を繰り返し、特徴マップと呼ばれるテンソルを生成する。
【0058】
ニューラルネットワーク160には、テンソル161が入力される。テンソル161のサイズは、縦100×横100×2チャネルである。テンソル161は、前述の画像データ151,155を含む。また、ニューラルネットワーク160からは、テンソル162が出力される。テンソル162のサイズは、縦100×横1×1チャネルである。よって、テンソル162は列ベクトルに相当する。テンソル162は、100個の周波数に対応する100個の電磁波強度を示す数値を含む。
【0059】
ニューラルネットワーク160のエッジの重みを決定する機械学習は、誤差逆伝播法によって行われる。誤差逆伝播法は、フォワードフェーズ、バックワードフェーズおよびアップデートフェーズを含む。フォワードフェーズは、訓練データに含まれる入力データを入力層に入力し、入力値に重みを乗じて出力値を算出する計算を入力層から出力層に向かう順方向に行い、出力データを生成する。バックワードフェーズは、出力データと訓練データに含まれる教師データとの間の誤差を算出し、誤差情報を出力層から入力層に向かう逆方向に伝播して、各エッジの重みの誤差勾配を算出する。アップデートフェーズは、誤差勾配と所定の学習率に基づいて重みを更新する。上記のフォワードフェーズ、バックワードフェーズおよびアップデートフェーズが繰り返し実行される。
【0060】
なお、情報処理装置100は、要素の値が0または1である二値画像データを更に編集してもよい。例えば、情報処理装置100は、配線またはリターン経路を示す値を、その配線またはリターン経路の長さを表す数値に置換してもよい。また、情報処理装置100は、配線またはリターン経路の周辺の要素の値を、配線またはリターン経路から離れるほど段階的に減衰する数値に変換してもよい。このように加工された画像データは、配線またはリターン経路の近傍における電磁波強度を近似する。
【0061】
次に、情報処理装置100の機能および処理手順を説明する。
図8は、第2の実施の形態の情報処理装置の機能例を示すブロック図である。情報処理装置100は、回路データ記憶部121、電磁波データ記憶部122、訓練データ記憶部123およびモデル記憶部124を有する。上記の記憶部は、例えば、RAM102またはHDD103の記憶領域を用いて実装される。また、情報処理装置100は、回路データ生成部125、シミュレーション部126、訓練データ生成部127、モデル生成部128および電磁波推定部129を有する。上記の処理部は、例えば、プログラムを用いて実装される。
【0062】
回路データ記憶部121は、機械学習に用いられる回路データのサンプルを記憶する。また、回路データ記憶部121は、設計中の電子回路の回路データを記憶する。電磁波データ記憶部122は、回路データ記憶部121に記憶された回路データのサンプルと対応させて、電子回路から所定の距離だけ離れた位置における電磁波強度を示す電磁波データを記憶する。この電磁波データは、教師データに相当する。
【0063】
訓練データ記憶部123は、機械学習に用いられる訓練データを記憶する。訓練データは、回路構造を示す入力データと電磁波強度を示す教師データとをそれぞれ対応付けた複数のレコードを含む。モデル記憶部124は、機械学習によって訓練データから生成されたモデルを記憶する。モデルは、ニューラルネットワークである。
【0064】
回路データ生成部125は、回路データのサンプルを生成して回路データ記憶部121に格納する。回路データ生成部125は、所定の規則に基づいて、配線を含む配線層とスリットを含むベタGND層とを含む回路データを生成する。回路データ生成部125は、配線の位置および形状と、スリットの位置および大きさを変更することで、様々な回路データを生成する。配線の位置、配線の形状、スリットの位置およびスリットの大きさはそれぞれ、予め用意された複数の候補の中から選択される。
【0065】
シミュレーション部126は、回路データ記憶部121に記憶された回路データのサンプルそれぞれに対して電磁波シミュレーションを実行する。電磁波シミュレーションは、例えば、電子回路の周辺の電磁波強度を算出する三次元有限要素法シミュレーションである。シミュレーション部126は、電子回路から所定の距離だけ離れた位置における電磁波強度を示す電磁波データを生成して電磁波データ記憶部122に格納する。
【0066】
訓練データ生成部127は、回路データ記憶部121に記憶された回路データのサンプルから、各層の画像データを含む入力テンソルを生成する。また、訓練データ生成部127は、電磁波データ記憶部122に記憶された電磁波データから、複数の周波数に対応する複数の電磁波強度を列挙した出力テンソルを生成する。訓練データ生成部127は、入力テンソルと出力テンソルとをそれぞれ対応付けた複数のレコードを含む訓練データを生成し、訓練データを訓練データ記憶部123に格納する。
【0067】
モデル生成部128は、訓練データ記憶部123に記憶された訓練データを用いて、機械学習によってモデルを生成し、生成されたモデルをモデル記憶部124に格納する。モデルはニューラルネットワークであり、機械学習は深層学習である。機械学習では、誤差逆伝播法によってニューラルネットワークに含まれる重みが決定される。
【0068】
電磁波推定部129は、回路データ記憶部121から設計中の電子回路の回路データを読み出す。電磁波推定部129は、訓練データ生成部127と同様の方法で、回路データから入力テンソルを生成する。電磁波推定部129は、モデル記憶部124に記憶されたモデルに入力テンソルを入力し、電磁波強度を示す出力テンソルを取得する。電磁波推定部129は、推定された電磁波強度を示す電磁波データを出力する。電磁波推定部129は、推定の電磁波データを表示装置111に表示してもよい。また、電磁波推定部129は、推定の電磁波データを電磁波データ記憶部122に保存してもよい。また、電磁波推定部129は、推定の電磁波データを他の情報処理装置に送信してもよい。
【0069】
図9は、モデル生成の手順例を示すフローチャートである。回路データ生成部125は、配線層およびベタGND層を含む回路データを、配線およびスリットを変えながら複数通り生成する(S10)。シミュレーション部126は、ステップS10で生成された回路データそれぞれに対して、三次元有限要素法の電磁波シミュレーションを実行する。これにより、シミュレーション部126は、各回路データに対して、電子回路から所定の距離だけ離れた位置における電磁波強度を示す電磁波データを生成する(S11)。
【0070】
訓練データ生成部127は、ステップS10で生成された回路データを1つ選択する。訓練データ生成部127は、選択した回路データが示す複数の層それぞれのパターンを、導体領域を示す画像データに変換する。訓練データ生成部127は、ベタGND層の画像データ上で、隣接する配線層の配線と同じ位置に線を引く(S12)。
【0071】
訓練データ生成部127は、ベタGND層の画像データ上で、スリットによって分断されたステップS12の線の端点を検出する(S13)。訓練データ生成部127は、同一のスリットを挟む2つの端点の間で、スリットを迂回する最短経路を探索する。これにより、訓練データ生成部127は、ベタGND層の画像データ上で、配線層の配線に電流が流れたときにリターン電流が流れるリターン経路を判定する(S14)。
【0072】
訓練データ生成部127は、ベタGND層の画像データがリターン経路を示すように画像データを変換する。訓練データ生成部127は、配線層の画像データおよびベタGND層の画像データを含むテンソルを生成する。訓練データ生成部127は、回路画像のテンソルと、選択した回路データからステップS11で生成された電磁波データとを対応付けて訓練データに追加する(S15)。訓練データ生成部127は、ステップS12で全ての回路データを選択したか判断する。全ての回路データを選択した場合はステップS17に進み、未選択の回路データがある場合はステップS12に戻る(S16)。
【0073】
モデル生成部128は、訓練データから回路画像のテンソルと電磁波データのペアを抽出する。モデル生成部128は、回路画像のテンソルをモデルに入力し、モデルが出力する推定電磁波強度を取得する。モデル生成部128は、訓練データから抽出した電磁波データが示す正解の電磁波強度と推定電磁波強度との間の誤差を算出する(S17)。モデル生成部128は、誤差が小さくなるようにモデルのパラメータを更新する(S18)。
【0074】
モデル生成部128は、ステップS17,S18のイテレーションが所定回数に達したか判断する。イテレーションが所定回数に達した場合、モデル生成部128は、モデルを保存して機械学習を終了する。イテレーションが所定回数に達していない場合、ステップS17に戻る(S19)。なお、イテレーション回数以外の停止条件が設定されてもよい。例えば、誤差が閾値未満に低下したことが停止条件であってもよい。
【0075】
図10は、電磁波推定の手順例を示すフローチャートである。電磁波推定部129は、設計中の電子回路の回路データであって、配線層およびベタGND層を含む回路データを取得する(S20)。電磁波推定部129は、取得した回路データが示す複数の層それぞれのパターンを、導体領域を示す画像データに変換する。電磁波推定部129は、ベタGND層の画像データ上で、隣接する配線層の配線と同じ位置に線を引く(S21)。
【0076】
電磁波推定部129は、ベタGND層の画像データ上で、スリットによって分断されたステップS21の線の端点を検出する(S22)。電磁波推定部129は、同一のスリットを挟む2つの端点の間で、スリットを迂回する最短経路を探索する。これにより、電磁波推定部129は、ベタGND層の画像データ上で、配線層の配線に電流が流れたときにリターン電流が流れるリターン経路を判定する(S23)。
【0077】
電磁波推定部129は、ベタGND層の画像データがリターン経路を示すように画像データを変換する。電磁波推定部129は、配線層の画像データおよびベタGND層の画像データを含むテンソルを生成する(S24)。電磁波推定部129は、回路画像のテンソルをモデルに入力して電磁波強度を推定する(S25)。電磁波推定部129は、推定電磁波強度を示す推定電磁波データを生成して出力する。例えば、電磁波推定部129は、推定電磁波データを表示装置111に表示する(S26)。
【0078】
このように、第2の実施の形態の情報処理装置100は、機械学習により、電子回路のパターンを示す画像データから電磁波強度を推定するためのモデルを生成する。そして、情報処理装置100は、生成されたモデルを用いて、設計中の電子回路の電磁波強度を推定する。これにより、電子回路の設計者は、設計中の電子回路を実装して電磁波強度を測定しなくてもよい。また、情報処理装置100は、設計中の電子回路に対して、計算量の大きい電磁波シミュレーションを実行しなくてもよい。よって、設計者は、電磁回路の様々な設計に対して、電磁波強度の情報を迅速に入手することができる。
【0079】
また、モデルへの入力のうちベタGND層に対応する画像データは、リターン電流が流れるリターン経路を示す仮想的な配線を含む。よって、モデルは、リターン電流が電磁波強度に与える影響を考慮することができ、電磁波強度の推定精度が向上する。また、ベタGND層がスリットを含む場合、情報処理装置100は、スリットを迂回する最短経路を画像データ上で探索して、仮想的な配線を決定する。よって、ベタGND層の画像データはリターン経路を精度よく表現でき、モデルの精度が向上する。
【符号の説明】
【0080】
10 情報処理装置
11 記憶部
12 制御部
13,14 回路データ
15,16,17 パターン
15a スリット
16a,17a 配線
18 訓練データ