(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-17
(45)【発行日】2022-01-14
(54)【発明の名称】回路適正化装置及び回路適正化方法
(51)【国際特許分類】
G06F 30/337 20200101AFI20220106BHJP
G06F 30/27 20200101ALI20220106BHJP
【FI】
G06F30/337
G06F30/27
(21)【出願番号】P 2019045473
(22)【出願日】2019-03-13
【審査請求日】2020-07-13
(73)【特許権者】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】100090169
【氏名又は名称】松浦 孝
(74)【代理人】
【識別番号】100074147
【氏名又は名称】本田 崇
(74)【代理人】
【識別番号】100124497
【氏名又は名称】小倉 洋樹
(72)【発明者】
【氏名】安宅 哲也
(72)【発明者】
【氏名】渡辺 幸治
【審査官】松浦 功
(56)【参考文献】
【文献】国際公開第2018/128653(WO,A1)
【文献】特開平03-296171(JP,A)
【文献】特開平04-124775(JP,A)
【文献】特開平04-021072(JP,A)
【文献】特開2007-140877(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/30 -30/398
(57)【特許請求の範囲】
【請求項1】
設計すべき回路の仕様情報に基づき作成された回路情報と、前記回路の機能検証に用いる制約情報と、前記回路をカスタマイズさせる方向性を示すカスタマイズ方向性情報とが与えられ、これらの情報に基づき前記カスタマイズ方向性情報の方向性に最も合致した結論としての回路情報を生成する強化学習部
であって、前記回路の入力端子から出力端子までの間のどの範囲について回路生成を行うかを指示する適用範囲指示部が備えられている強化学習部を、
具備することを特徴とする回路適正化装置。
【請求項2】
前記回路情報は、回路図情報であることを特徴とする請求項1に記載の回路適正化装置。
【請求項3】
前記回路情報は、回路の真理値表情報であることを特徴とする請求項1に記載の回路適正化装置。
【請求項4】
前記回路情報は、回路の論理式レベルの情報であることを特徴とする請求項1に記載の回路適正化装置。
【請求項5】
前記回路情報は、回路のゲート・レベルのネットリスト情報であることを特徴とする請求項1に記載の回路適正化装置。
【請求項6】
前記カスタマイズ方向性情報は、回路素子が少ないことであることを特徴とする請求項1乃至5のいずれか1項に記載の回路適正化装置。
【請求項7】
前記カスタマイズ方向性情報は、論理回路とフリップフロップの比率が所定値であることを特徴とする請求項1乃至5のいずれか1項に記載の回路適正化装置。
【請求項8】
前記カスタマイズ方向性情報は、回路の入力から出力までの速度が速いことであることを特徴とする請求項1乃至5のいずれか1項に記載の回路適正化装置。
【請求項9】
設計すべき回路の仕様情報に基づき作成された回路情報と、前記回路の機能検証に用いる制約情報と、前記回路をカスタマイズさせる方向性を示すカスタマイズ方向性情報とを強化学習部へ
与えると共に、前記強化学習部に前記回路の入力端子から出力端子までの間のどの範囲について回路生成を行うかを指示して強化学習を行わせ、前記回路情報と前記制約情報と前記カスタマイズ方向性情報とに基づき前記カスタマイズ方向性情報の方向性に最も合致した結論としての回路情報を生成させることを特徴とする回路適正化方法。
【請求項10】
前記回路情報は、回路図情報であることを特徴とする
請求項9に記載の回路適正化方法。
【請求項11】
前記回路情報は、回路の真理値表情報であることを特徴とする
請求項9に記載の回路適正化方法。
【請求項12】
前記回路情報は、回路の論理式レベルの情報であることを特徴とする
請求項9に記載の回路適正化方法。
【請求項13】
前記回路情報は、回路のゲート・レベルのネットリスト情報であることを特徴とする
請求項9に記載の回路適正化方法。
【請求項14】
前記カスタマイズ方向性情報は、回路素子が少ないことであることを特徴とする請求項
9乃至13のいずれか1項に記載の回路適正化方法。
【請求項15】
前記カスタマイズ方向性情報は、論理回路とフリップフロップの比率が所定値であることを特徴とする請求項
9乃至13のいずれか1項に記載の回路適正化方法。
【請求項16】
前記カスタマイズ方向性情報は、回路の入力から出力までの速度が速いことであることを特徴とする請求項
9乃至13のいずれか1項に記載の回路適正化方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、回路適正化装置及び回路適正化方法に関するものである。
【背景技術】
【0002】
近年、半導体に搭載される回路は高性能化及び多機能化の要請から回路規模が大きくなる傾向にある。このため、設計の段階において回路の適正化を図り、回路規模を縮小しても高機能で多機能である半導体の開発が求められている。このような回路規模の縮小は機能検証後の論理合成時に行われるのが通例である。
【0003】
従来の回路規模縮小を含む回路設計の手順は
図1のフローチャートのようになる。即ち、開発すべき回路の機能仕様情報を入力し(S1)、機能設計を行う(S2)。機能設計を行った後に機能・論理検証を行う(S3)。このステップS3の処理の一環としてフォーマル機能検証を行う(S4)。
【0004】
ステップS4も含めた機能・論理検証の後に、論理合成を行って(S5)、その結果について回路規模の確認を行い(S6)、更に回路規模縮小のための回路修正を行って(S7)、再びステップS3による機能・論理検証へと進む処理を行っていた。このように、ステップS7の処理では機能的に不要な回路の削除が行われることから、回路設計の見直しが行われ、再度の機能検証による動作確認及び論理合成が必要となるものであった。
【0005】
上記のように論理合成の後に回路規模の縮小を行う方法によると、論理的に不要な回路の削減を図ることができるが、機能的に不要な回路については論理的に不要でなければ削減されないことになる。また、論理的に不要な回路の検索は従来、人手によることが多く、作業者のスキルに頼るものであった。このため、回路修正において人為的ミスが生じる可能性があり、万全なものとならない可能性があった。更に、人のスキルが論理回路の削減量に影響を受け易く、適切な回路量の削減達成が保証できない可能性があった。
【0006】
特許文献1には、人手介入を排除して判断ミスなくフォールス・パスを設定し、LSI記述に含まれる冗長性を削除してチップ・サイズを縮小し開発コストを低減することを目的とした論理合成適正化方法が開示されている。この論理合成適正化方法では、LSIのハードウェア記述のうち解析非対象パス設定、及び冗長部分について、リグレッション・テスト結果からフォールス・パス及び不活性な記述ブロックをソフトウェアで自動抽出し、削除する。
【0007】
より具体的には、ハードウェア記述言語で設計されたLSI回路の機能を検証するテスト・ベンチが存在する場合に、このテスト・ベンチによる上記LSI回路の回路機能の検証結果から、上記LSI回路のハードウェア記述における活性化情報を自動抽出する第1のステップ、この自動抽出された活性化情報からフォールス・パスを自動検出する第2のステップを備える。更に、この自動検出されたフォールス・パスをタイミング適正化のためのフォールス・パス設定スクリプトとして自動生成する第3のステップと、を有する、というものである。
【0008】
また、特許文献2には、挿入回路の挿入場所によらず任意に論理等価性検証を実行可能にする論理等価性検証システムが開示されている。この論理等価性検証システムは、論理等価性検証部、RTL/ゲートレベル回路記述、及びライブラリを備える。そして、この論理等価性検証システムは、半導体集積回路としてのシステムLSIやSoCなどの論理機能の等価性検証を挿入回路の挿入場所によらず任意に実行するというものである。
【0009】
更に、特許文献3には、回路の仕様に関する各々の特徴情報について、前記回路を内部に構成可能な集積回路に前記回路を構成させる場合に用いる複数のパラメータの各々のパラメータに設定可能な複数の値の各々の値と、前記各々の値の使用に関する指標値と、を対応付けた第1対応情報を記憶する記憶部を有するコンピュータによって実行される設計支援方法が開示されている。
【0010】
この設計支援方法では、設計の対象回路の仕様に関する特徴情報を受け付け、上記第1対応情報を参照して、上記複数のパラメータの各々に設定可能な値の複数の組み合わせの各々の組み合わせについて、受け付けた上記特徴情報についての上記組み合わせに含まれる上記複数のパラメータの各々に設定する値に対応付けられた指標値の合計値を算出し、算出した上記合計値に基づいて、上記複数の組み合わせのうち、上記複数のパラメータに設定する値の候補の組み合わせを出力するというものである。
【先行技術文献】
【特許文献】
【0011】
【文献】2000-222452号公報
【文献】2007-140877号公報
【文献】2018-77595号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明は、修正と修正結果の適正性確認の繰り返しを避けることができ、時間短縮と人為的ミスの発生を防止することが可能な回路適正化装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本実施形態に係る回路適正化装置は、設計すべき回路の仕様情報に基づき作成された回路情報と、前記回路の機能検証に用いる制約情報と、前記回路をカスタマイズさせる方向性を示すカスタマイズ方向性情報とが与えられ、これらの情報に基づき前記カスタマイズ方向性情報の方向性に最も合致した結論としての回路情報を生成する強化学習部であって、前記回路の入力端子から出力端子までの間のどの範囲について回路生成を行うかを指示する適用範囲指示部が備えられている強化学習部を、を具備することを特徴とする。
【図面の簡単な説明】
【0014】
【
図1】従来例に係る回路適正化装置の動作を示すフローチャート。
【
図2】実施形態に係る回路適正化装置を実現するコンピュータシステムのブロック図。
【
図3】実施形態に係る回路適正化装置のブロック図。
【
図4】実施形態に係る回路適正化装置の要部ブロック図。
【
図5】実施形態に係る回路適正化装置による動作を示すフローチャート。
【
図6】実施形態に係る回路適正化装置によって強化学習を行う前の一例の回路図。
【
図8】実施形態に係る回路適正化装置によって所定程度の強化学習を行った後の一例に係る回路図。
【
図10】実施形態に係る回路適正化装置によって最終段階まで強化学習を行った後の一例に係る回路図。
【
図12】実施形態に係る回路適正化装置によって、「n個の組合せ回路より、1つのFFの方が「価値」が高い」というカスタマイズ方向性情報を設定して強化学習を行った場合の回路図の変化を示す図。
【
図13】実施形態に係る回路適正化装置によって、回路情報を回路の真理値表情報として強化学習を行った場合(ケース1)の真理値表と回路図の変化を示す図。
【
図14】実施形態に係る回路適正化装置によって、回路情報を回路の真理値表情報として強化学習を行った場合(ケース1)の真理値表と回路図の変化を示す図。
【発明を実施するための形態】
【0015】
以下添付図面を参照して本発明の実施形態に係る、回路適正化装置及び回路適正化方法を説明する。各図において同一の構成要素には、同一の符号を付し、重複する説明を省略する。本発明の実施形態に係る回路適正化装置は、例えば
図2に示されるようなパーソナルコンピュータやワークステーション、その他のコンピュータシステムにより構成することができる。このコンピュータシステムは、CPU10が主メモリ11に記憶されている或いは主メモリ11に読み込んだプログラムやデータに基づき各部を制御し、必要な処理を実行することにより状態変動検出装置として動作を行うものである。
【0016】
CPU10には、バス12を介して外部記憶インタフェース13、入力インタフェース14、表示インタフェース15、データ入力インタフェース16が接続されている。外部記憶インタフェース13には、回路適正化用プログラム等のプログラムと必要なデータ等が記憶されている外部記憶装置23が接続されている。入力インタフェース14には、コマンドやデータを入力するための入力装置としてのキーボードなどの入力装置24とポインティングデバイスとしてのマウス22が接続されている。
【0017】
表示インタフェース15には、LEDやLCDなどの表示画面を有する表示装置25が接続されている。このコンピュータシステムには、他の構成が備えられていても良く、また、
図2の構成は一例に過ぎない。
【0018】
CPU10は、回路適正化用プログラムによって
図3に示される回路適正化装置30を実現する。即ち、機能設計部31、機能・論理検証部32、論理合成部33である。上記機能設計部31は、
図3のように機能仕様情報が与えられる。機能仕様情報は、設計しようとする半導体回路の仕様情報であり、機能ライブラリやテスト・ベンチとして与えるようにすることができる。機能設計部31は、これらの機能ライブラリやテスト・ベンチに基づき機能設計を行い回路情報を得るもので公知の構成とすることができる。
【0019】
機能・論理検証部32は、機能設計部31による設計結果について機能検証と論理検証とを行うものである。このうち、論理検証については、予め用意された期待値とシミュレーションを行って得られた結果との比較を行うものなど公知の手法が採用される。機能・論理検証部32には、フォーマル機能検証部32Aが備えられており、このフォーマル機能検証部32Aが機能・論理検証部32における機能検証を行う。フォーマル機能検証部32Aは、公知の手法により機能検証を行うものである。
【0020】
機能・論理検証部32には、強化学習部37が備えられている。強化学習部37は、設計すべき回路の仕様情報に基づき作成された回路情報と、上記回路の機能検証に用いる制約情報と、上記回路をカスタマイズさせる方向性を示すカスタマイズ方向性情報とが与えられ、これらの情報に基づき上記カスタマイズ方向性情報の方向性に最も合致した結論としての回路情報を生成するものである。強化学習部37において採用するアルゴリズムとしては、制限がなく、Q学習、Sarsa、モンテカルロ法等適宜なものを採用しても良い。
【0021】
上記強化学習部37によって生成された回路情報は、機能・論理検証部32の出力として論理合成部33へ送られる。論理合成部33は、論理回路の実装設計を行うもので、公知の手法による手法が採用される。論理合成部33には、回路規模検出部34が含まれていても良い。回路規模検出部34は、例えば、ゲート数や論理回路数、また、ゲートや論理回路を構成するトランジスタ数などを検出する等の各種の手法を採用することができる。
【0022】
図4には、フォーマル機能検証部32Aと強化学習部37とに対する入力情報と出力情報が示されている。フォーマル機能検証部32Aへ与えられている回路情報は、前述の通り、機能設計部31による設計結果である。検証後の回路情報については、機能・論理検証部32が論理検証を行った結果の回路情報であり、且つフォーマル機能検証部32Aが機能検証を行った結果の回路情報とすることができる。
【0023】
制約情報は、フォーマル機能検証部32Aが機能検証を行ったときに用いた制約情報である。即ち制約情報は、設計すべき回路の仕様として求められる機能の制約であり、回路が実現すべき機能の情報であり、後に具体的に説明する。
【0024】
更に、強化学習部37による強化学習に必要な「状態」、「行動」、「報酬」の設定について説明する。ここで、「状態」は強化学習の対象である回路について、現状の回路(つまり、機能・論理検証部32が論理検証を行った結果の回路情報であり、且つフォーマル機能検証部32Aが機能検証を行った結果の回路情報)を設定する。「行動」としては、回路の変更を設定する。
【0025】
更に、「報酬」については、本実施形態では即時的なものではなく、より将来を見据えた「価値」が最大化する学習が必要であるので、「価値」と呼ばれるものにする。そして、本実施形態では、「価値」としては回路中のFF(フリップフロップ)の数と論理回路の数を設定し、それらの数が少ないほど「価値」が高いものと設定する。また、「価値」としては、フォーマル機能検証部32Aにおいて使用した「制約情報」に反する場合には、最低の「価値」であることを設定する。また、強化学習部37による強化学習に必要な回路の評価基準情報は、強化学習の上記の「報酬」や「価値」と同一の情報であり、初期状態の「価値」よりも学習後の「価値」が高くなっていれば、強化学習による回路規模の縮小が行われたことになる。本実施形態では、これら「評価基準情報」、「報酬」、「価値」をカスタマイズ方向性情報とすることができる。
【0026】
なお、本実施形態では、回路規模の縮小を狙って「価値」に上記のような設定を行ったが、カスタマイズ方向性情報としては、回路の入力から出力までの速度が速いことを狙って「価値」に速度や経過時間等に関する情報を設定するようにしても良い。回路規模の縮小或いは回路適正化の場合において、回路の入力端子から出力端子までの間とするのではなく、その途中の位置まで、つまり、回路の入力端子から出力端子までの間のどの範囲について回路生成を行うかを指示するようにしても良く、このような指示する適用範囲指示部を設けることができる。この適用範囲指示部は、
図2の入力装置24によって構成することができる。
【0027】
以下、回路の具体例を用いて、本発明の実施形態に係る回路適正化装置によって適正化(回路規模の縮小)を行った場合の動作と結果を示す。
図5のフローチャートに示すように、設計しようとする半導体回路の仕様情報が入力され(S11)、この仕様情報に基づき機能設計が実行される(S12)。
【0028】
次に、機能設計された回路情報に対し機能・論理検証が行われ、特に機能検証としてはフォーマル機能検証がなされる(S13)。次に、機能検証した回路情報について強化学習により回路規模の縮小を行う(S14)。当初の回路情報が回路図であり、
図6に示されるようであるとする。
【0029】
即ち、FFが3個、インバータが4個、ANDゲートが4個、ORゲートが3個である。上記
図6の回路を数式に置き換えると、次の(式1)ようになる。
【数1】
【0030】
上記において、FFのラッチによるクロック(Clock)経過については、t+1とt+2とによって示している。上記(式1)を強化学習に適応させるために、強化学習の状況をENVとINPUTで、次のように定義する。
【数2】
【0031】
上記のENVを示す(式2)は、有効な信号の組合せを示す行列である。強化学習により上記(式2)のENVの内容が変更されることにより回路が変更される。また、上記のINPUTを示す(式3)は、回路内の全信号の組合せパターンの行列である。各信号の組合せに使用するOR/AND/NOTにより、それぞれの組合せのゲートサイズを計算することができ、ENVにより有効となった変数に使用したゲートの合計値が回路全体のゲート数となる。この回路の真理値表は、
図7に示す通りである。
【0032】
ここで本実施形態では、フォーマル機能検証における制約情報としての入力制約(Formal Assume)を「M0とM1は同時に使用されることはなく、どちらかが必ず使用される(M0=~M1)」と定義設定し、カスタマイズ方向性情報である報酬として「ゲートサイズが小さいほど報酬が高い」ことを設定する。これにより強化学習を行うと、学習結果によりENVが次のように変更されて得られる。INPUTを示す(式3)は、回路内の全信号の組合せパターンの行列であるから変化しない。
【数3】
【0033】
上記の学習後の回路を
図8に示す。
図6と
図8とを比較してみると明らかなように、NOT回路が2個少なくなっていることが判る。
図9に
図8の回路の真理値表を示す。
図8の回路は、M0=notM1の行に対応するゲートを削除することを、真理値表において、他の行と背景色を変えて(背景色を白のままとして)示したものである。
【0034】
この
図8の結果が得られた以降も、カスタマイズ方向性情報などを前述と同様に設定した状態において更にゲートサイズを少なくすることを狙って強化学習部37による強化学習を続けると、ENVが次のように変更されて得られる。INPUTを示す(式3)は、回路内の全信号の組合せパターンの行列であるから変化しない。
【数4】
【0035】
上記の学習後の回路を
図10に示す。この
図10に明らかなように、端子Aの入力信号を保持するためのFF、端子Bの入力信号を保持するためのFF、上記2つのFFの出力を入力とするOR回路、このOR回路の出力信号を保持するためのFFであって出力信号が出力端子Fに接続されているFFのみが残った回路となっていることが判る。
【0036】
図11に上記回路に対応する真理値表を示す。
図10の回路は、M0とM1の値に拘わらず、出力端子Fに現れる値は入力端子Aまたは入力端子Bの値となるようにゲートを削除することを、真理値表において、他の部分と背景色を変えて(背景色を白のままで)示したものである。
【0037】
再び、
図5のフローチャートに戻って説明する。上記のように強化学習を適当な回数続けて結果を得た後、論理合成を実行し、結果を出力する(S15)。このステップS15には、回路規模検出処理が含まれていても良い。回路規模検出処理では、例えば、ゲート数や論理回路数、また、ゲートや論理回路を構成するトランジスタ数などを検出する等を行い、結果を表示する等の出力を行っても良い。
【0038】
以上のように本実施形態によれば、機能を損なうことなく、回路規模の縮小が可能となるメリットがある。なお、フォーマル機能検証を行っていない部分については適正化から除外する設定を強化学習部37に行っても良い。つまり、学習対象外とする回路を指定して強化学習を行っても良い。また、信号線の組合せに使用しているFFの出力の個数を学習結果の評価内容に含ませる設定を行っても良い。例えば、FF出力個数が少ない回路を、「価値」が高いものと設定しても良い。これによって、既存の回路よりもFFの数を削減する適正化を行うことが可能である。INPUTに対し、初期の回路には存在していないFFを含ませた記述とすることで、新規に追加したFFを含む回路を強化学習の対象として適正化を実行することができる。このような手法によって、場合によっては設計する組合せ回路に新たなFFを含ませることがゲート数の大きな削減につながるような設計を行うことが可能である。また、中間に新たなFFを設けることが、全体の回路の小型化簡略化につながるような設計を行うことが可能である。
【0039】
また、カスタマイズ方向性情報は、回路素子が少ないことであることを設定しても良い。また、カスタマイズ方向性情報は、論理回路とフリップフロップの比率が所定値であることを設定しても良い。先に述べたことではあるが、カスタマイズ方向性情報は、回路の入力から出力までの速度が速いことであることを設定しても良い。
【0040】
例えば、
図12には、「n個の組合せ回路より、1つのFFの方が「価値」が高い」というカスタマイズ方向性情報を設定して強化学習を行った場合の例が示されている。
図12(A)は強化学習前の回路図であり、n個の組合せ回路nC-1、nC-C、nC-2を備えるものである。この場合に、設定されたカスタマイズ方向性情報に基づき上記3個の組合せ回路中の2つの組合せ回路nC-1、nC-2に代えてFF-1、FF-2を用いるようにしたものである。つまり、
図12(B)は強化学習後の回路図を示す。1つの組合せ回路nC-Cについては、機能或いは論理の制約からFFに代えることができていない。このように、設定されたカスタマイズ方向性情報に沿った適正化を実現することができる。
【0041】
更に上記では、回路情報は、回路図情報であることを例としたが、回路情報を回路の真理値表情報であるものとして強化学習を行っても良い。その一例を示す。ケース1として
図13(A)に示すように、入力信号がIN1、IN2、出力信号がOUTであり、AND回路を用いる回路が初期回路情報である。真理値表は
図13(A)の中央に示され、回路図が
図13(A)の右側に回路図が示されている。
【0042】
上記の場合に、
図13(B)左側に示すように、入力制約(制約情報)がIN1=IN2が設定されて強化学習を行うと、真理値表は
図13(B)中央に示すような表が得られる。この真理値表に基づき、入力信号IN1または入力信号IN2がそのまま出力信号OUTとなる
図13(B)の右側の回路図が得られる。入力信号IN1=IN2であるから、入力信号IN1または入力信号IN2がそのまま出力信号OUTとなる回路である。
【0043】
上記
図13(A)の場合に、
図13(C)左側に示すように、入力制約(制約情報)がIN1!=IN2(!は、イコールでないという意味)が設定されて強化学習を行うと、真理値表は
図13(C)中央に示すような表が得られる。この真理値表に基づき、入力信号IN1またはIN2に関係なく、出力信号OUTが常に0となる
図13(C)の右側の回路図が得られる。入力信号IN1!=IN2であるから、入力信号0がそのまま出力信号OUTとなる回路である。
【0044】
次に他の一例を示す。ケース2として
図14(A)に示すように、入力信号がIN1、IN2、出力信号がOUTであり、OR回路を用いる回路が初期回路情報である。真理値表は
図14(A)の中央に示され、回路図が
図14(A)の右側に回路図が示されている。
【0045】
上記の場合に、
図14(B)左側に示すように、入力制約(制約情報)がIN1=IN2が設定されて強化学習を行うと、真理値表は
図14(B)中央に示すような表が得られる。この真理値表に基づき、入力信号IN1または入力信号IN2がそのまま出力信号OUTとなる
図14(B)の右側の回路図が得られる。入力信号IN1=IN2であるから、入力信号IN1または入力信号IN2がそのまま出力信号OUTとなる回路である。
【0046】
上記
図14(A)の場合に、
図14(C)左側に示すように、入力制約(制約情報)がIN1!=IN2(!は、イコールでないという意味)が設定されて強化学習を行うと、真理値表は
図14(C)中央に示すような表が得られる。この真理値表に基づき、入力信号IN1またはIN2に関係なく、出力信号OUTが常に1となる
図14(C)の右側の回路図が得られる。入力信号IN1!=IN2であるから、入力信号1がそのまま出力信号OUTとなる回路である。
【0047】
以上のように本実施形態の回路適正化装置は、回路情報を回路の真理値表情報として強化学習を行うものであり、修正と修正結果の適正性確認の繰り返しを避けることができ、時間短縮と人為的ミスの発生を防止することが可能な回路適正化装置を提供することができる。
【0048】
上記実施形態の回路適正化装置は、回路情報を回路の真理値表情報として強化学習を行うことを示したが、回路情報を回路の論理式レベルの情報として強化学習を行うようにしてもよい。回路情報を回路の論理式レベルの情報として扱う1例としては、入力A、B、C、Dがあり、出力Q1の場合に、当初の論理式が、Q1=AC+BC+AD+BDである場合に、これを、Q1=(A+B)*(C+D)へと最適化するような場合をいう。このような実施形態によっても、上記各実施形態と同様の効果を奏することは明らかである。
【0049】
更に、回路情報を回路のゲート・レベルのネットリスト情報として強化学習を行うようにしてもよい。ゲート・レベルのネットリスト情報とは、論理式Q1=A・B+B・C+C・Aについては、例えば3つのANDゲートと、この3つのANDゲートの出力を1つのORゲートで受けて出力するものとして当初のネットリスト情報を考えることができる。この場合、3つのANDゲートと1つのORゲートを、2入力のORゲートをいくつかと、2入力のNANDゲートをいくつかと、いくつかのインバータ回路による構成に変えるなど、ゲート・レベルで回路構成を変更する際に強化学習を行う。このような実施形態によっても、上記各実施形態と同様の効果を奏することは明らかである。
【符号の説明】
【0050】
10 CPU
11 主メモリ
12 バス
13 外部記憶インタフェース
14 入力インタフェース
15 表示インタフェース
16 データ入力インタフェース
22 マウス
23 外部記憶装置
24 入力装置
25 表示装置
30 回路適正化装置
31 機能設計部
32 機能・論理検証部
32A フォーマル機能検証部
33 論理合成部
34 回路規模検出部
37 強化学習部