(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】学習装置、回路設計支援装置、学習方法、回路設計支援方法、学習プログラム、及び回路設計支援プログラム
(51)【国際特許分類】
G06F 30/36 20200101AFI20240730BHJP
G06N 20/00 20190101ALI20240730BHJP
G06F 30/27 20200101ALI20240730BHJP
【FI】
G06F30/36
G06N20/00 130
G06N20/00
G06F30/27
(21)【出願番号】P 2022017832
(22)【出願日】2022-02-08
【審査請求日】2023-05-15
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和3年度、国立研究開発法人科学技術振興機構、研究成果展開事業「AIによる回路トポロジー合成を実現する高度なアナログ回路設計プラットフォームの開発」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】504145364
【氏名又は名称】国立大学法人群馬大学
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】▲高▼井 伸和
(72)【発明者】
【氏名】齋藤 彰寛
【審査官】三沢 岳志
(56)【参考文献】
【文献】中国特許出願公開第113553794(CN,A)
【文献】特開2020-184123(JP,A)
【文献】特開2018-005436(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/36
G06N 20/00
G06F 30/27
(57)【特許請求の範囲】
【請求項1】
回路の特性を表す回路特性値と回路トポロジーを表す回路トポロジー情報との組み合わせを表す第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより予め生成された第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得する回路取得部と、
前記回路特性値と回路を構成する素子の素子値との組み合わせを表す第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより予め生成された第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成する初期値生成部と、
前記初期値生成部により取得された前記初期値を用いて、
強化学習を実行することにより、前記要求回路特性値に対応する前記素子値を生成する素子値生成部と、
前記回路取得部により取得された前記要求回路特性値に対応する前記回路トポロジー情報と、前記素子値生成部により生成された前記素子値とを対応付けて記憶部に格納する結果取得部と、
を含む回路設計支援装置。
【請求項2】
回路の特性を表す回路特性値と回路トポロジーを表す回路トポロジー情報との組み合わせを表す第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより予め生成された第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得する回路取得部と、
前記回路特性値と回路を構成する素子の素子値との組み合わせを表す第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより予め生成された第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成する初期値生成部と、
前記初期値生成部により取得された前記初期値を用いて、所定の最適化計算を実行することにより、前記要求回路特性値に対応する前記素子値を生成する素子値生成部と、
前記回路取得部により取得された前記要求回路特性値に対応する前記回路トポロジー情報と、前記素子値生成部により生成された前記素子値とを対応付けて記憶部に格納する結果取得部と
、を含み、
前記素子値生成部は、前記最適化計算を実行することにより離散化された前記素子値を生成した後に、前記離散化された前記素子値の結果を初期値として、前記最適化計算を再度実行することにより、連続化された前記素子値を生成する、
回路設計支援装置。
【請求項3】
回路の特性を表す回路特性値と回路トポロジーを表す回路トポロジー情報との組み合わせを表す第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより予め生成された第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得し、
前記回路特性値と回路を構成する素子の素子値との組み合わせを表す第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより予め生成された第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成し、
取得された前記初期値を用いて、
強化学習を実行することにより、前記要求回路特性値に対応する前記素子値を生成
し、
取得された前記要求回路特性値に対応する前記回路トポロジー情報と、生成された前記素子値とを対応付けて記憶部に格納する、
処理をコンピュータが実行する回路設計支援方法。
【請求項4】
回路の特性を表す回路特性値と回路トポロジーを表す回路トポロジー情報との組み合わせを表す第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより予め生成された第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得し、
前記回路特性値と回路を構成する素子の素子値との組み合わせを表す第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより予め生成された第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成し、
取得された前記初期値を用いて、所定の最適化計算を実行することにより、前記要求回路特性値に対応する前記素子値を生成
し、
前記素子値を生成する際には、最適化計算を実行することにより離散化された前記素子値を生成した後に、前記離散化された前記素子値の結果を初期値として、前記最適化計算を再度実行することにより、連続化された前記素子値を生成し、
取得された前記要求回路特性値に対応する前記回路トポロジー情報と、生成された前記素子値とを対応付けて記憶部に格納する、
処理をコンピュータが実行する回路設計支援方法。
【請求項5】
回路の特性を表す回路特性値と回路トポロジーを表す回路トポロジー情報との組み合わせを表す第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより予め生成された第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得し、
前記回路特性値と回路を構成する素子の素子値との組み合わせを表す第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより予め生成された第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成し、
取得された前記初期値を用いて、
強化学習を実行することにより、前記要求回路特性値に対応する前記素子値を生成
し、
取得された前記要求回路特性値に対応する前記回路トポロジー情報と、生成された前記素子値とを対応付けて記憶部に格納する、
処理をコンピュータに実行させるための回路設計支援プログラム。
【請求項6】
回路の特性を表す回路特性値と回路トポロジーを表す回路トポロジー情報との組み合わせを表す第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより予め生成された第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得し、
前記回路特性値と回路を構成する素子の素子値との組み合わせを表す第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより予め生成された第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成し、
取得された前記初期値を用いて、所定の最適化計算を実行することにより、前記要求回路特性値に対応する前記素子値を生成
し、
前記素子値を生成する際には、最適化計算を実行することにより離散化された前記素子値を生成した後に、前記離散化された前記素子値の結果を初期値として、前記最適化計算を再度実行することにより、連続化された前記素子値を生成し、
取得された前記要求回路特性値に対応する前記回路トポロジー情報と、生成された前記素子値とを対応付けて記憶部に格納する、
処理をコンピュータに実行させるための回路設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、回路設計支援装置、学習方法、回路設計支援方法、学習プログラム、及び回路設計支援プログラムに関する。
【背景技術】
【0002】
特許文献1には、回路性能が向上する回路素子の素子値を容易に決定する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
アナログ回路を設計する際には、回路仕様(以下、単に「要求仕様」と称する。)を決定する工程、要求仕様を満たす回路トポロジーを決定する工程、回路トポロジーのパラメータ(以下、単に「素子値」と称する。)を決定する工程、及びレイアウト設計の各工程を経て、回路設計が行われる。
【0005】
アナログ回路の設計には多くの時間を要するため、急速な電子機器の発展にはその回路設計のボトルネックを解消する必要がある。このボトルネックを解消するために、上記特許文献1に開示されているような、アナログ回路の素子値を自動的に決定する技術が知られている。
【0006】
上記特許文献1に開示されている技術は、強化学習を用いてアナログ回路の素子値を決定する。しかし、強化学習を含むさまざまな最適化アルゴリズムにおいては、初期値依存問題が必ずあるため、初期値に用いるパラメータに結果が大きく依存してしまう場合がある。
【0007】
本発明は、上記事情に鑑みてなされたものであり、要求仕様を満たす回路トポロジーとその素子値を精度良く決定することにある。
【課題を解決するための手段】
【0008】
上記した課題を解決すべく、本発明に係る学習装置は、回路の特性を表す回路特性値と、回路トポロジーを表す回路トポロジー情報と、回路を構成する素子の素子値とが対応付けられた複数の学習用データから、前記回路特性値と前記回路トポロジー情報との組み合わせを表す第1教師データを設定する第1設定部と、前記第1設定部により設定された前記第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより、第1学習済みモデルを生成する第1生成部と、前記複数の学習用データから、前記回路特性値と前記素子値との組み合わせを表す第2教師データを設定する第2設定部と、前記第2設定部により設定された前記第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより、第2学習済みモデルを生成する第2生成部と、を備える学習装置である。
【0009】
本発明に係る回路設計支援装置は、上記の学習装置によって生成された前記第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得する回路取得部と、上記の学習装置によって生成された前記第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成する初期値生成部と、前記初期値取得部により取得された前記初期値を用いて、所定の最適化計算を実行することにより、前記要求回路特性値に対応する前記素子値を生成する素子値生成部と、前記回路取得部により取得された前記要求回路特性値に対応する前記回路トポロジー情報と、前記素子値生成部により生成された前記素子値とを対応付けて記憶部に格納する結果取得部と、を含む回路設計支援装置である。
【0010】
本発明に係る学習方法は、回路の特性を表す回路特性値と、回路トポロジーを表す回路トポロジー情報と、回路を構成する素子の素子値とが対応付けられた複数の学習用データから、前記回路特性値と前記回路トポロジー情報との組み合わせを表す第1教師データを設定し、設定された前記第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより、第1学習済みモデルを生成し、前記複数の学習用データから、前記回路特性値と前記素子値との組み合わせを表す第2教師データを設定し、設定された前記第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより、第2学習済みモデルを生成する、処理をコンピュータが実行する学習方法である。
【0011】
本発明に係る回路設計支援方法は、上記の学習方法によって生成された前記第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得し、上記の学習方法によって生成された前記第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成し、取得された前記初期値を用いて、所定の最適化計算を実行することにより、前記要求回路特性値に対応する前記素子値を生成する、取得された前記要求回路特性値に対応する前記回路トポロジー情報と、生成された前記素子値とを対応付けて記憶部に格納する、処理をコンピュータが実行する回路設計支援方法である。
【0012】
本発明に係る学習プログラムは、回路の特性を表す回路特性値と、回路トポロジーを表す回路トポロジー情報と、回路を構成する素子の素子値とが対応付けられた複数の学習用データから、前記回路特性値と前記回路トポロジー情報との組み合わせを表す第1教師データを設定し、設定された前記第1教師データに基づいて、前記回路特性値から前記回路トポロジー情報を出力するための機械学習モデルを学習させることにより、第1学習済みモデルを生成し、前記複数の学習用データから、前記回路特性値と前記素子値との組み合わせを表す第2教師データを設定し、設定された前記第2教師データに基づいて、前記回路特性値から前記素子値を出力するための機械学習モデルを学習させることにより、第2学習済みモデルを生成する、処理をコンピュータに実行させるための学習プログラムである。
【0013】
本発明に係る回路設計支援プログラムは、上記の学習プログラムによって生成された前記第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、前記要求回路特性値に対応する前記回路トポロジー情報を取得し、上記の学習プログラムによって生成された前記第2学習済みモデルに対して、前記要求回路特性値を入力することにより、前記要求回路特性値に対応する回路の素子値の初期値を生成し、取得された前記初期値を用いて、所定の最適化計算を実行することにより、前記要求回路特性値に対応する前記素子値を生成し、取得された前記要求回路特性値に対応する前記回路トポロジー情報と、生成された前記素子値とを対応付けて記憶部に格納する、処理をコンピュータに実行させるための回路設計支援プログラムである。
【発明の効果】
【0014】
本発明によれば、要求仕様を満たす回路トポロジーとその素子値を精度良く決定することができる。
【図面の簡単な説明】
【0015】
【
図1】本実施形態の回路設計支援装置を示す機能ブロック図である。
【
図2】本実施形態の学習用データ記憶部に格納される複数の学習用データの一例を示す図である。
【
図3】回路トポロジー情報を説明するための図である。
【
図4】第1学習済みモデルと第2学習済みモデルとを説明するための図である。
【
図5】本実施形態の回路設計支援装置を構成するコンピュータの構成例を示す図である。
【
図6】回路設計支援装置が実行する学習処理ルーチンの一例を示す図である。
【
図7】回路設計支援装置が実行する素子値推定処理ルーチンの一例を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して実施形態を詳細に説明する。
【0017】
<回路設計支援装置のシステム構成>
【0018】
図1は、本実施形態の回路設計支援装置10を示す機能ブロック図である。
図1に示されるように、本実施形態の回路設計支援装置10は、機能的には、学習用データ記憶部12と、学習済みモデル記憶部14と、初期値記憶部16と、結果記憶部18と、第1設定部20と、第1生成部22と、第2設定部24と、第2生成部26と、回路取得部28と、初期値生成部30と、素子値生成部32と、結果取得部34と、を備えている。
【0019】
本実施形態の回路設計支援装置10は、要求仕様を満たすアナログ回路の回路トポロジーの素子値の初期値を自動的に生成する。そして、回路設計支援装置10は、生成した素子値の初期値を用いて、所定の最適化計算を実行することにより、アナログ回路の素子値を生成する。
【0020】
学習用データ記憶部12には、回路の特性を表す回路特性値と、回路トポロジーを表す回路トポロジー情報と、回路を構成する素子の素子値とが対応付けられた複数の学習用データが格納されている。
図2は、本実施形態の学習用データ記憶部12に格納される複数の学習用データの一例を示す図である。
図2に示されるように、学習用データ記憶部12には、所望の特性を有しているアナログ回路の各々についての、回路特性値と回路トポロジー情報と素子値とが対応付けられて格納される。例えば、データID「00001」の学習用データは、回路特性値P1と回路トポロジー情報C1と素子値E1とが対応付けられている。
【0021】
回路特性値は、アナログ回路の特性を表す情報であり、例えば、アナログ回路の消費電力、位相余裕、及び同相除去比等の値である。
【0022】
回路トポロジー情報は、アナログ回路のトポロジーを表す情報である。
図3に、回路トポロジー情報を説明するための図を示す。
図3には、3つの回路トポロジーが示されている。本実施形態では、合計12種類の回路トポロジーを利用する。なお、本実施形態では、1つの回路トポロジーにつき2つのパターンが予め用意されるため、合計24組の学習のデータ群が用意される。具体的には、1つの回路トポロジーにつき、アナログ回路を構成するトランジスタのゲート長が長いパターンを表すLarge_L(L=1.0μm)と、アナログ回路を構成するトランジスタのゲート長が短いパターンを表すSmall_L(L=0.2μm)とが用意されている。これら24パターンの回路トポロジーのうち、何れの回路トポロジーであるかを表す情報が回路トポロジー情報に相当する。例えば、回路トポロジー情報を表すベクトルが[0,1,0,・・・]であった場合には、当該回路トポロジー情報は
図3に示される2番目の回路トポロジー(b)を指し示していることになる。
【0023】
素子値は、アナログ回路を構成する回路素子のパラメータである。例えば、アナログ回路を構成するトランジスタの種類(例えば、ゲート長等)、アナログ回路を構成する抵抗の抵抗値、及びアナログ回路を構成するキャパシタの静電容量等である。
【0024】
学習済みモデル記憶部14には、回路特性値から回路トポロジー情報を出力する第1学習済みモデルと、回路特性値から素子値を出力する第2学習済みモデルとが格納されている。
【0025】
図4に、第1学習済みモデルと第2学習済みモデルとを説明するための図を示す。第1学習済みモデル及び第2学習済みモデルの各々は、例えば、ニューラルネットワークモデル等の機械学習モデルである。なお、学習済みモデルとしては、ニューラルネットワークモデルに限らずその他のモデルであってもよい。
【0026】
図4に示されるように、第1学習済みモデルは、回路特性値(又は、回路の要求特性を表す要求回路特性値)が入力されると、回路トポロジー情報を出力するように構成されている。
【0027】
例えば、ある所望の要求回路特性値として、アナログ回路の消費電力、位相余裕、及び同相除去比等の値が第1学習済みモデルへ入力されると、その要求回路特性値を満たすような確率を表す回路トポロジー情報が第1学習済みモデルから出力される。
【0028】
例えば、
図4に示されるように、第1学習済みモデルからは、トポロジー1の回路である確率、トポロジー2の回路である確率等が出力される。そして、例えば、第1学習済みモデルから出力された各確率のうち、最も高い確率のトポロジーに相当する回路が、要求回路特性を満たす回路として選択される。
【0029】
また、
図4に示されるように、第2学習済みモデルは、回路特性値(又は、回路の要求特性を表す要求回路特性値)が入力されると、アナログ回路を構成する回路素子の素子値を出力するように構成されている。
【0030】
例えば、ある所望の要求回路特性値として、アナログ回路の消費電力、位相余裕、及び同相除去比等の値が第2学習済みモデルへ入力されると、その要求回路特性値を満たすような素子値が第2学習済みモデルから出力される。例えば、第1学習済みモデルからは、素子値の初期値として、アナログ回路を構成するトランジスタの種類(例えば、ゲート長等)、アナログ回路を構成する抵抗の抵抗値、及びアナログ回路を構成するキャパシタの静電容量等が出力される。
【0031】
初期値記憶部16には、後述する最適化計算に用いられる素子値の初期値が格納される。
【0032】
結果記憶部18には、後述する最適化計算によって得られる素子値が格納される。
【0033】
第1設定部20は、学習用データ記憶部12に格納された複数の学習用データの中から、回路特性値と回路トポロジー情報との組み合わせを表す第1教師データを設定する。この第1教師データは、上述した第1学習済みモデルを機械学習させる際に用いられる。
【0034】
第1生成部22は、第1設定部20により設定された第1教師データに基づいて、回路特性値から回路トポロジー情報を出力するための機械学習モデルを教師学習させることにより、第1学習済みモデルを生成する。そして、第1生成部22は、生成した第1学習済みモデルを学習済みモデル記憶部14へ格納する。
【0035】
第2設定部24は、学習用データ記憶部12に格納された複数の学習用データから、回路特性値と素子値との組み合わせを表す第2教師データを設定する。この第2教師データは、上述した第2学習済みモデルを機械学習させる際に用いられる。
【0036】
第2生成部26は、第2設定部24により設定された第2教師データに基づいて、回路特性値から素子値を出力するための機械学習モデルを教師学習させることにより、第2学習済みモデルを生成する。そして、第2生成部26は、生成した第2学習済みモデルを学習済みモデル記憶部14へ格納する。
【0037】
回路取得部28は、学習済みモデル記憶部14に格納された第1学習済みモデルを読み出し、当該第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、要求回路特性値に対応する回路トポロジー情報を取得する。
【0038】
初期値生成部30は、学習済みモデル記憶部14に格納された第2学習済みモデルを読み出し、当該第2学習済みモデルに対して要求回路特性値を入力することにより、要求回路特性値に対応する回路の素子値の初期値を生成する。この初期値は、要求回路特性値を満たすような値となっているため、後述する最適化計算における繰り返しを低減させることができ、かつ適切な素子値を得ることができる。初期値生成部30は、生成した初期値を初期値記憶部16へ格納する。
【0039】
素子値生成部32は、初期値記憶部16により格納された初期値を用いて、所定の最適化計算の一例である強化学習を実行することにより、要求回路特性値を満たすような素子値を生成する。
【0040】
強化学習等の最適化計算を利用して計算をする際、その結果は初期値に大きく依存する。そこで、本実施形態の回路設計支援装置10は、第2学習済みモデルを用いて素子値の初期値を予測させる。この第2学習済みモデルの学習には、第1学習済みモデルを学習させる際に用いられるデータを利用することが可能であるため、新たなデータを収集することなく、初期値を設定することができる。
【0041】
なお、素子値生成部32は、例えば、上記特開2020‐187395号公報に開示されているような技術を利用して、強化学習を用いて素子値を生成する。
【0042】
結果取得部34は、回路取得部28により取得された要求回路特性値に対応する回路トポロジー情報から特定されるトポロジーと、素子値生成部32により生成された素子値とを対応付けて結果記憶部18へ格納する。
【0043】
これにより、要求回路特性値に対応する回路トポロジー情報から特定されるトポロジーと、そのトポロジーに相当するアナログ回路を構成する回路素子の素子値とが取得される。
【0044】
回路設計支援装置10は、例えば、
図5に示すコンピュータ50で実現することができる。コンピュータ50はCPU51、一時記憶領域としてのメモリ52、及び不揮発性の記憶部53を備える。また、コンピュータ50は、入出力装置等(図示省略)が接続される入出力interface(I/F)54、及び記録媒体に対するデータの読み込み及び書き込みを制御するread/write(R/W)部55を備える。また、コンピュータ50は、インターネット等のネットワークに接続されるネットワークI/F56を備える。CPU51、メモリ52、記憶部53、入出力I/F54、R/W部55、及びネットワークI/F56は、バス57を介して互いに接続される。
【0045】
記憶部53は、Hard Disk Drive(HDD)、solid state drive(SSD)、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部53には、コンピュータ50を機能させるためのプログラムが記憶されている。CPU51は、プログラムを記憶部53から読み出してメモリ52に展開し、プログラムが有するプロセスを順次実行する。
【0046】
<回路設計支援装置10の作用>
【0047】
次に、本実施形態の回路設計支援装置10の作用について説明する。ユーザが回路設計支援装置10を操作し、回路設計支援装置10が学習処理の指示信号を受け付けると、回路設計支援装置10は、
図6に示される学習処理ルーチンを実行する。
【0048】
ステップS100において、第1設定部20は、学習用データ記憶部12に格納された複数の学習用データの中から回路特性値と回路トポロジー情報とを読み出し、回路特性値と回路トポロジー情報との組み合わせを表す第1教師データを設定する。
【0049】
ステップS102において、第1生成部22は、上記ステップS100で設定された第1教師データに基づいて、回路特性値から回路トポロジー情報を出力するための機械学習モデルを教師学習させることにより、第1学習済みモデルを生成する。そして、第1生成部22は、生成した第1学習済みモデルを学習済みモデル記憶部14へ格納する。
【0050】
ステップS104において、第2設定部24は、学習用データ記憶部12に格納された複数の学習用データの中から回路特性値と素子値とを読み出し、回路特性値と素子値との組み合わせを表す第2教師データを設定する。
【0051】
ステップS106において、第2生成部26は、上記ステップS104で設定された第2教師データに基づいて、回路特性値から素子値を出力するための機械学習モデルを教師学習させることにより、第2学習済みモデルを生成する。そして、第2生成部26は、生成した第2学習済みモデルを学習済みモデル記憶部14へ格納する。
【0052】
図6に示される学習処理ルーチンが実行されると、第1学習済みモデルと第2学習済みモデルとが学習済みモデル記憶部14へ格納される。
【0053】
次に、ユーザが回路設計支援装置10を操作し、回路設計支援装置10が素子値推定処理の指示信号を受け付けると、回路設計支援装置10は、
図7に示される素子値推定処理ルーチンを実行する。
【0054】
ステップS200において、回路取得部28は、学習済みモデル記憶部14に格納された第1学習済みモデルを読み出す。
【0055】
ステップS202において、回路取得部28は、ステップS200で読み出された第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、要求回路特性値に対応する回路トポロジー情報を取得する。そして、回路取得部28は、第1学習済みモデルから出力された各回路トポロジーの確率のうち最も高い確率に相当する回路トポロジーを、要求回路特性値を満たすであろう回路として取得する。
【0056】
ステップS204において、初期値生成部30は、学習済みモデル記憶部14に格納された第2学習済みモデルを読み出す。
【0057】
ステップS206において、初期値生成部30は、上記ステップS204で読み出された第2学習済みモデルに対して要求回路特性値を入力することにより、要求回路特性値に対応する回路の素子値の初期値を生成する。そして、初期値生成部30は、生成した初期値を初期値記憶部16へ格納する。
【0058】
ステップS208において、素子値生成部32は、初期値記憶部16により格納された初期値を用いて、所定の最適化計算の一例である強化学習を実行することにより、要求回路特性値を満たすような素子値を生成する。
【0059】
ステップS210において、結果取得部34は、ステップS202で取得された要求回路特性値に対応する回路トポロジー情報から特定されるトポロジーと、ステップS208で生成された素子値とを対応付けて結果記憶部18へ格納する。
【0060】
以上説明したように、本実施形態に係る回路設計支援装置10は、回路の特性を表す回路特性値と、回路トポロジーを表す回路トポロジー情報と、回路を構成する素子の素子値とが対応付けられた複数の学習用データから、回路特性値と回路トポロジー情報との組み合わせを表す第1教師データを設定する。回路設計支援装置10は、設定された第1教師データに基づいて、回路特性値から回路トポロジー情報を出力するための機械学習モデルを学習させることにより、第1学習済みモデルを生成する。回路設計支援装置10は、複数の学習用データから、回路特性値と素子値との組み合わせを表す第2教師データを設定し、設定された第2教師データに基づいて、回路特性値から素子値を出力するための機械学習モデルを学習させることにより、第2学習済みモデルを生成する。これにより、回路特性値から回路トポロジー情報を出力する第1学習済みモデルと、回路特性値から回路トポロジー情報を出力する第2学習済みモデルとが別々に生成され、それらの学習済みモデルを用いることにより、要求回路特性値を満たすような回路のトポロジーとその特性値とを得ることができる。
【0061】
また、本実施形態に係る回路設計支援装置10は、第1学習済みモデルに対して、回路の要求特性を表す要求回路特性値を入力することにより、要求回路特性値に対応する回路トポロジー情報を取得する。そして、回路設計支援装置10は、第2学習済みモデルに対して、要求回路特性値を入力することにより、要求回路特性値に対応する回路の素子値の初期値を生成する。回路設計支援装置10は、取得された初期値を用いて、所定の最適化計算の一例である強化学習を実行することにより、要求回路特性値に対応する素子値を生成する。そして、回路設計支援装置10は、取得された要求回路特性値に対応する回路トポロジー情報と、生成された素子値とを対応付けて結果記憶部18に格納する。これにより、要求回路特性値を満たすような回路のトポロジーとその特性値とを得ることができる。
【実施例】
【0062】
次に、本実施形態に係る回路設計支援装置10の実施例について説明する。本実施例では、ある要求回路特性を満たすような回路トポロジー情報とその素子値とを自動生成する。
【0063】
本実施例では、まず、262,305個の学習用データを用いて第1学習済みモデル及び第2学習済みモデルを生成した。なお、第1学習済みモデルを生成する際の諸条件は以下の表1の通りである。以下の表1のLossは損失関数を表し、Optimizerは機械学習アルゴリズムを表す。
【0064】
【0065】
次に、以下の表2に示すような要求回路特性値を設定した。
【0066】
【0067】
上記表2に示される要求回路特性値を第1学習済みモデルへ入力したところ、
図8に示されるようなトポロジーが選択された。
【0068】
また、上記表2に示される要求回路特性値を第2学習済みモデルへ入力したところ、以下の表3に示されるような回路特性値を実現する素子値が得られた。表3に示される「第2学習済みモデルにより得られた素子値の素子を備えた回路が示す回路特性値」と、要求回路特性値との間の一致度の平均は84.1%であり比較的高いものの改善の余地がある。
【0069】
【0070】
そこで、第2学習済みモデルから出力された素子値を初期値として、強化学習により素子値を生成した。
図9は選択されたトポロジーに対して、第2学習済みモデルを用いて予測された素子値を初期値として、強化学習を用いて自動設計させた回路の素子値である。
図9に示される結果では、1つのトランジスタ(ゲート長L=2.0μm,ゲート幅W=6.0μm)を単位トランジスタとして、回路の各箇所には何個分の単位トランジスタが配置される必要があるのかが表されている。例えば、「M1~3:M=13」という結果は、回路図中のトランジスタM1,M2,M3は、単位トランジスタ13個分の大きさのトランジスタが配置されることを表している。また、
図9には、抵抗値及び静電容量等の素子値も示されている。
【0071】
以下の表4に、強化学習により得られた素子値の素子を備えた回路が示す特性値を示す。以下の表4に示されるように、強化学習により得られた素子値の素子を備えた回路が示す特性値と要求回路特性値との間の一致度の平均は94.6%であり、上記表3の結果よりも良い結果となっていることがわかる。
【0072】
【0073】
また、
図10に、強化学習の際のシミュレーションの回数と報酬との関係を表すグラフを示す。
図10の(A)は、第2学習済みモデルで得られた素子値を初期値として設定した後に、より良い評価値が得られた場合には、その素子値を初期値として強化学習を実行した場合の結果である。
図10の(B)は、ランダムに初期値を設定した後に、より良い評価値が得られた場合には、その素子値を初期値として強化学習を実行した場合の結果である。なお、
図10の(B)の実験では、素子値を探索するエピソードにおいて2回に1回は初期値をランダム化した。
図10の(C)は、ランダム探索を用いた場合の結果である。
【0074】
図10に示されるように、第2学習済みモデルを利用して初期値を設定した方が収束が速いことがわかる。具体的には、予測された初期値を用いることで、収束速度が従来の3000エピソードから1500エピソードへと半分となり、効率的かつ高速に強化学習が素子値探索可能となることがわかる。
【0075】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0076】
例えば、上記実施形態では、強化学習を実行する際には離散化された素子値を生成する場合を例に説明したがこれに限定されるものではない。例えば、上記実施例で説明したように、「M1~3:M=13」という結果は、回路図中のトランジスタM1,M2,M3は、単位トランジスタ13個分の大きさのトランジスタが配置されることを表すものであったが、連続値であってもよい。この場合には、トランジスタのゲート長及びゲート幅等が探索対象の素子値として設定される。
【0077】
また、素子値生成部32は、強化学習を実行することにより離散化された素子値を生成した後に、離散化された素子値の結果を初期値として、強化学習を再度実行することにより、連続化された素子値を生成するようにしてもよい。素子値を連続値とした場合には、探索空間が膨大となり計算コストが膨大になる。このため、まずは、素子値を離散値として強化学習を実行することにより素子値を探索した後に、その素子値を初期値として連続化された素子値を強化学習により探索するようにしてもよい。これにより、更に適切な素子値が得られる。
【0078】
また、上記実施形態では、回路設計支援装置10が、学習処理と素子値推定処理とを実行する場合を例に説明したがこれに限定されるものではない。例えば、学習装置が学習処理を実行し、学習装置とは異なる別の装置が素子値推定処理を実行するようにしてもよい。
【符号の説明】
【0079】
10 回路設計支援装置
12 学習用データ記憶部
14 学習済みモデル記憶部
16 初期値記憶部
18 結果記憶部
20 第1設定部
22 第1生成部
24 第2設定部
26 第2生成部
28 回路取得部
30 初期値生成部
32 素子値生成部
34 結果取得部
50 コンピュータ