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

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

▶ 三菱電機エンジニアリング株式会社の特許一覧 ▶ 国立大学法人 熊本大学の特許一覧

特許7541902機能推定方法、機能推定装置、および機能推定プログラム
<>
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図1
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図2
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図3
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図4
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図5
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図6
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図7
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図8
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図9
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図10
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図11
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図12
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図13
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図14
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図15
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図16
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図17
  • 特許-機能推定方法、機能推定装置、および機能推定プログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-21
(45)【発行日】2024-08-29
(54)【発明の名称】機能推定方法、機能推定装置、および機能推定プログラム
(51)【国際特許分類】
   G06F 30/32 20200101AFI20240822BHJP
   G06F 30/27 20200101ALI20240822BHJP
   G06N 20/00 20190101ALI20240822BHJP
【FI】
G06F30/32
G06F30/27
G06N20/00 130
【請求項の数】 9
(21)【出願番号】P 2020188448
(22)【出願日】2020-11-12
(65)【公開番号】P2021089722
(43)【公開日】2021-06-10
【審査請求日】2023-08-31
(31)【優先権主張番号】P 2019213015
(32)【優先日】2019-11-26
(33)【優先権主張国・地域又は機関】JP
【新規性喪失の例外の表示】特許法第30条第2項適用 平成30年12月5日 サテライトキャンパスひろしま(広島県広島市中区大手町1丁目5-3)にて開催された、電子情報通信学会 VLSI設計技術研究会において公開
【新規性喪失の例外の表示】特許法第30条第2項適用 平成30年11月28日 ウェブサイト:https://www.ieice.org/ken/paper/20181205F1IC/にて公開された電子情報通信学会の信学技報において「グラフ畳み込みネットワークを用いたネットリスト機能推定の検討」として公開
(73)【特許権者】
【識別番号】591036457
【氏名又は名称】三菱電機エンジニアリング株式会社
(73)【特許権者】
【識別番号】504159235
【氏名又は名称】国立大学法人 熊本大学
(74)【代理人】
【識別番号】100110423
【弁理士】
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【弁理士】
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100147566
【弁理士】
【氏名又は名称】上田 俊一
(74)【代理人】
【識別番号】100161171
【弁理士】
【氏名又は名称】吉田 潤一郎
(74)【代理人】
【識別番号】100188514
【弁理士】
【氏名又は名称】松岡 隆裕
(72)【発明者】
【氏名】安田 紘晃
(72)【発明者】
【氏名】飯田 全広
(72)【発明者】
【氏名】尼崎 太樹
(72)【発明者】
【氏名】小山 大輝
(72)【発明者】
【氏名】藤城 裕一郎
(72)【発明者】
【氏名】伊藤 寛人
【審査官】松浦 功
(56)【参考文献】
【文献】特開平04-199369(JP,A)
【文献】特開平06-203106(JP,A)
【文献】特開2000-200298(JP,A)
【文献】藤城裕一郎 外5名,R-GCNを用いたゲートレベルネットリスト機能分類手法,電子情報通信学会技術研究報告,一般社団法人電子情報通信学会,2019年11月06日,Vol. 119, No. 283,pp. 7-12
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 -30/398
G06N 20/00 -20/20
G06N 3/02 - 3/10
Google Scholar
(57)【特許請求の範囲】
【請求項1】
グラフ構造を畳み込んだネットワークであるGCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出するために、コンピュータ上で実行される機能推定方法であって、
GCN構成用パラメータ情報から前記ネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理工程と、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築した前記GCNクラス構成情報に応じてクラス分けを行うクラスタリング工程と、
前記クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換工程と、
前記管理工程および前記変換工程の処理結果に基づいて、前記機能の学習および推論を行う学習・推論工程と
を有する機能推定方法。
【請求項2】
前記変換工程において、
前記ネットリスト内の各ノードにおける複合ゲートの種別を表現する特徴ベクトル行列と、
前記ネットリスト内の各ノードにおける接続関係を表現する隣接行列と、
前記ネットリスト内の各ノードにおけるGCNの判定結果を表現する正解ラベル行列と
を作成し、
前記学習・推論工程において、
前記変換工程で作成された前記特徴ベクトル行列、前記隣接行列、および前記正解ラベル行列に基づいて前記学習を行う
請求項1に記載の機能推定方法。
【請求項3】
前記学習・推論工程において、
前記管理工程で管理されていない新規ラベルが入力された場合には、新たなGCN機能を生成し、新たに生成したそれぞれのGCN機能を組み合わせることで新たなGCNを自動生成する
請求項1または2に記載の機能推定方法。
【請求項4】
前記管理工程において、
前記GCN2分木構成を利用して、前記機能が学習済みであるか否かを判別する
請求項1から3のいずれか1項に記載の機能推定方法。
【請求項5】
グラフ構造を畳み込んだネットワークであるGCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出する機能推定装置であって、
GCN構成用パラメータ情報から前記ネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理部と、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築した前記GCNクラス構成情報に応じてクラス分けを行うクラスタリング部と、
前記クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換部と、
前記管理部および前記変換部の処理結果に基づいて、前記機能の学習および推論を行う学習・推論部と
を有する機能推定装置。
【請求項6】
グラフ構造を畳み込んだネットワークであるGCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出するために、コンピュータ上で実行される機能推定プログラムであって、
前記コンピュータを、
GCN構成用パラメータ情報から前記ネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理手段と、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築した前記GCNクラス構成情報に応じてクラス分けを行うクラスタリング手段と、
前記クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換手段と、
前記管理手段および前記変換手段の処理結果に基づいて、前記機能の学習および推論を行う学習・推論手段と
して機能させる機能推定プログラム。
【請求項7】
グラフ構造を畳み込んだネットワークであるGCNとしてR-GCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出するために、コンピュータ上で実行される機能推定方法であって、
GCN構成用パラメータ情報から前記ネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理工程と、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築した前記GCNクラス構成情報に応じてクラス分けを行うクラスタリング工程と、
前記クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換工程と、
前記管理工程および前記変換工程の処理結果に基づいて、前記機能の学習および推論を行う学習・推論工程と
を有する機能推定方法であって、
前記変換工程において、
前記ネットリスト内の各ノードにおける複合ゲートの種別を表現する特徴ベクトル行列と、
前記ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列と、
前記ネットリスト内の各ノードにおけるGCNの判定結果を表現する正解ラベル行列と
を作成し、
前記学習・推論工程において、
前記変換工程で作成された前記特徴ベクトル行列、前記3種の隣接行列、および前記正解ラベル行列に基づいて前記学習を行い、
前記3種の隣接行列は、前記各ノードにおけるノード間の入力に関する接続関係を示す第1の隣接行列と、各ノードを要素とする単位行列を示す第2の隣接行列と、前記各ノードにおけるノード間の出力に関する接続関係を示す第3の隣接行列とで構成される
機能推定方法。
【請求項8】
グラフ構造を畳み込んだネットワークであるGCNとしてR-GCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出する機能推定装置であって、
GCN構成用パラメータ情報から前記ネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理部と、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築した前記GCNクラス構成情報に応じてクラス分けを行うクラスタリング部と、
前記クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換部と、
前記管理部および前記変換部の処理結果に基づいて、前記機能の学習および推論を行う学習・推論部と
を有する機能推定装置であって、
前記変換部は、
前記ネットリスト内の各ノードにおける複合ゲートの種別を表現する特徴ベクトル行列と、
前記ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列と、
前記ネットリスト内の各ノードにおけるGCNの判定結果を表現する正解ラベル行列と
を作成し、
前記学習・推論部は、
前記変換部で作成された前記特徴ベクトル行列、前記3種の隣接行列、および前記正解ラベル行列に基づいて前記学習を行い、
前記3種の隣接行列は、前記各ノードにおけるノード間の入力に関する接続関係を示す第1の隣接行列と、各ノードを要素とする単位行列を示す第2の隣接行列と、前記各ノードにおけるノード間の出力に関する接続関係を示す第3の隣接行列とで構成される
機能推定装置。
【請求項9】
グラフ構造を畳み込んだネットワークであるGCNとしてR-GCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出するために、コンピュータ上で実行される機能推定プログラムであって、
前記コンピュータを、
GCN構成用パラメータ情報から前記ネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理手段と、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築した前記GCNクラス構成情報に応じてクラス分けを行うクラスタリング手段と、
前記クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換手段と、
前記管理手段および前記変換手段の処理結果に基づいて、前記機能の学習および推論を行う学習・推論手段と
して機能させる機能推定プログラムであって、
前記変換手段は、
前記ネットリスト内の各ノードにおける複合ゲートの種別を表現する特徴ベクトル行列と、
前記ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列と、
前記ネットリスト内の各ノードにおけるGCNの判定結果を表現する正解ラベル行列と
を作成し、
前記学習・推論手段は、
前記変換手段で作成された前記特徴ベクトル行列、前記3種の隣接行列、および前記正解ラベル行列に基づいて前記学習を行い、
前記3種の隣接行列は、前記各ノードにおけるノード間の入力に関する接続関係を示す第1の隣接行列と、各ノードを要素とする単位行列を示す第2の隣接行列と、前記各ノードにおけるノード間の出力に関する接続関係を示す第3の隣接行列とで構成される
機能推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、LSIの論理設計に係り、主にネットリストから設計情報およびハードウェア言語を生成するための搭載機能を備えた機能推定方法、機能推定装置、および機能推定プログラムに関する。
【背景技術】
【0002】
半導体集積回路(以後、LSIと称す)の設計技術として、開発効率がよく、半導体ベンダにとらわれないハードウェア記述言語(HDL:Hardware Descripti-on Language)が用いられる場合がある。この場合には、HDLにより回路設計が行われた後に、回路に実装する部品の接続関係を表現するネットリストへ自動で変換する論理合成が用いられている。ここで、いわゆる論理合成が可能なHDL記述レベルは、レジスタトランスファレベル(以下、RTLと称す)と呼ばれる。
【0003】
これに対し、RTLの存在しない過去の設計資産を活用する目的で、ネットリストに実装されている機能の抽出、あるいはネットリストをRTLへ変換する要望がある。しかしながら、半導体ベンダ毎に異なるネットリストを、単純な言語変換ではなく、記述を自動で抽象化し変換する技術までは確立されておらず、主に人手により、ドキュメントを参考にしながらネットリストの読解が行われていた。
【0004】
この問題に対して、RTLに実装された機能を推定する方法がある(例えば、特許文献1参照)。特許文献1では、ニューラルネットワーク(以後、NNと称す)を用いて、判定機能の学習後に機能推定を行い、一致した機能の回路データを差し替える方法が紹介されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平4-199369号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1では、変換ルールとして学習した機能の推定、および回路置き換えを対象にしている。従って、学習した機能が組み合わされた機能に対しての機能推定を行う仕組みはない。そのため、判定したい機能毎に、すべて手作業で学習させる必要がある。
【0007】
本発明は、前記のような課題を解決するためになされたものであり、LSIのネットリストに対して、機能推定を効率的に実行することができる機能推定方法、機能推定装置、および機能推定プログラムを得ることを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る機能推定方法は、グラフ構造を畳み込んだネットワークであるGraph Convolutional Networks(以降、GCNと称す)を用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出するために、コンピュータ上で実行される機能推定方法であって、GCN構成用パラメータ情報からネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理工程と、ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築したGCNクラス構成情報に応じてクラス分けを行うクラスタリング工程と、クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換工程と、管理工程および変換工程の処理結果に基づいて、機能の学習および推論を行う学習・推論工程とを有するものである。
【0009】
本発明に係る機能推定装置は、グラフ構造を畳み込んだネットワークであるGCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出する機能推定装置であって、GCN構成用パラメータ情報からネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理部と、ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築したGCNクラス構成情報に応じてクラス分けを行うクラスタリング部と、クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換部と、管理部および変換部の処理結果に基づいて、機能の学習および推論を行う学習・推論部とを有するものである。
【0010】
本発明に係る機能推定プログラムは、グラフ構造を畳み込んだネットワークであるGCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出するために、コンピュータ上で実行される機能推定プログラムであって、コンピュータを、GCN構成用パラメータ情報からネットリストのGCNクラス構成情報を構築し、構築したGCNクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する管理手段と、ネットリストをノードおよびエッジから構成されるグラフ表現に変換し、計測したノード数および構築したGCNクラス構成情報に応じてクラス分けを行うクラスタリング手段と、クラス分けが行われた各クラスのノード数を一致させるための補完処理を実行する変換手段と、管理手段および変換手段の処理結果に基づいて、機能の学習および推論を行う学習・推論手段として機能させるものである。
【発明の効果】
【0011】
本発明により、大規模で複雑なネットリスト、またはドキュメントの存在しないネットリストにおいても、機能推定が効率的に実行できる。
【図面の簡単な説明】
【0012】
図1】本発明の実施の形態1におけるLSIネットリスト用の搭載機能を推定するためのプログラムが備える機能構成を示した図である。
図2】本発明の実施の形態1における、ネットリストの回路規模によるGCNクラス構成構築方法を示した図である。
図3】本発明の実施の形態1における、GCNでの機能推定時に機能判定の順序を決定する2分木構成を示した図である。
図4】本発明の実施の形態1における、ネットリストをグラフ表現として変換した図である。
図5】本発明の実施の形態1におけるGCN構成管理部で実行される一連処理を示したフローチャートである。
図6】本発明の実施の形態1における、GCN構成用パラメータ情報によるGCNクラス構成の違いを示した図である。
図7】本発明の実施の形態1におけるノード数クラスタリング部で実行される一連処理を示したフローチャートである。
図8】本発明の実施の形態1におけるネットリスト行列変換部で実行される一連処理を示したフローチャートである。
図9】本発明の実施の形態1における特徴ベクトル行列Xの変換例を示した図である。
図10】本発明の実施の形態1における接続行列Aの変換例を示した図である。
図11】本発明の実施の形態1における正解ラベル行列Yの変換例を示した図である。
図12】本発明の実施の形態1における学習・推論部で実行される一連処理を示したフローチャートである。
図13】本発明の実施の形態1における学習データの追加例を示した図である。
図14】本発明の実施の形態1における学習データの追加例を示した図である。
図15】本発明の実施の形態1における学習・推論部による学習用行列自動生成の例を示した図である。
図16】本発明の実施の形態1ですでに説明したGCNによる、ノードとノードの接続関係を表すためのグラフ表現および隣接行列を示した図である。
図17】本発明の実施の形態2で説明するR-GCNによる、ノードとノードの接続関係を表すためのグラフ表現および隣接行列を示した図である。
図18】本発明の実施の形態2におけるネットリスト行列変換部で実行される一連処理を示したフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の機能推定方法、機能推定装置、および機能推定プログラムの好適な実施の形態につき、図面を用いて説明する。特に、本発明は、NNの一種であり、グラフ構造を畳み込んだネットワークである、GCN、またはRelational Graph Convolutional Networks(以降、R-GCNと称す)を用いて、LSIネットリストに実装されている機能の推定を効率的に行うことを特徴としている。GCNを用いる場合について、実施の形態1で詳述し、R-GCNを用いる場合について、実施の形態2で詳述する。
【0014】
実施の形態1.
図1は、本発明の実施の形態1におけるLSIネットリスト用の搭載機能を推定するためのプログラムが備える機能構成を示した図である。図1に示すように、入力データとして、GCN構成用パラメータ情報1と、学習または推論用のネットリスト2と、学習時にネットリストの機能識別タグとして入力し、推論時に推論候補となる機能ラベル情報3と、学習用または推論用のLSIデバイス固有のスタンダードセル情報4がある。
【0015】
本実施の形態1に係るプログラムは、図1に示したように、GCN構成用パラメータ情報1より、GCNクラス構成および各クラス内のGCN2分木構成を管理するGCN構成管理部5と、ネットリスト内の複合ゲートおよびその接続関係をノードとエッジとして置き換えて、ネットリスト内のノード数に応じてクラス分類を行うノード数クラスタリング部6と、GCN内部演算用のネットリスト行列変換部7と、機能を学習する学習・推論部8にて構成されている。そして、本実施の形態1に係るプログラムは、推論時に一致した機能ラベル名または機能なしを推論結果9として出力するように、コンピュータ上で実行される。
【0016】
次に、図1に示した各機能構成について個別に説明する。
GCN構成管理部5は、入力されたGCN構成用パラメータ情報1からネットリストの回路規模よるクラスを構築する。また、GCN構成管理部5は、構築したクラス毎にクラス内で保有するGCNの機能ラベルと、推論時のGCN推論順序を決定するGCN2分木構成とを管理する。なお、GCN構成管理部5は、ネットリスト入力時に、機能ラベル情報3が入力されれば学習処理として動作し、機能ラベル情報3が入力されなければ推論処理として動作する。
【0017】
まず、クラス管理について説明する。図2は、本発明の実施の形態1における、ネットリストの回路規模によるGCNクラス構成構築方法を示した図である。GCN構成用パラメータ情報1は、3種のパラメータを指定することで、図2に示すとおり、最下位クラス11、上位クラス12および13として、GCNのクラス階層を構築する。ネットリストの回路規模により、推論処理するGCNを分類するために、パラメータP1(以後、P1と称す)として、管理するクラスの数が入力される。
【0018】
また、下位クラスの機能ラベルを組み合わせた機能ラベルを自動生成する機能を有しており、自動生成を行うために、パラメータP2(以後、P2と称す)として、最下位クラス11の最大ノード数、パラメータP3(以後、P3と称す)として、最下位クラス11の機能の組み合わせ数が入力される。
【0019】
次に、機能ラベルについて説明する。機能ラベルは、学習時にユーザにより正解情報として与えられる場合と、学習・推論部8にて自動生成されて通知される場合とがある。機能ラベルは、GCNが推論する機能として、1つのGCNにつき、1つの機能を定義する。
【0020】
次に、2分木構成管理について説明する。図3は、本発明の実施の形態1における、GCNでの機能推定時に機能判定の順序を決定する2分木構成を示した図である。GCNのクラス内で複数の機能ラベルを保有する場合には、各機能ラベルを判定するGCNが機能ラベルの数だけ存在する。そのため、GCN構成管理部5は、推論時においては、これら複数のGCNの判定順序を管理する必要がある。
【0021】
そこで、GCN構成管理部5は、GCNを2分木として管理する。具体的には、GCN構成管理部5は、木の頂点に位置するGCNから機能推定を行い、機能ありと判定した場合には推定終了とし、機能なしと判定した場合には子のGCNで機能推定を行う構成として、GCNを2分木として管理する。
【0022】
そして、GCN構成管理部5は、学習時には、ユーザより与えられた機能ラベルが新規ラベルか否かの判定を行う。判定の結果、機能ラベルが新規ラベルであった場合、または学習・推論部8からGCNの自動生成通知が入力された場合には、GCN構成管理部5は、GCN2分木構成の頂点にGCNを追加する。
【0023】
一方、推論時には、GCN構成管理部5は、学習・推論部8へ該当クラスのGCN2分木構成情報を出力する。学習・推論部8は、機能ありと判定した場合には、その時点の機能ラベル一致として推論終了し、機能なしと判定した場合には、子に位置するGCNへ切り替えて機能推定を行う。
【0024】
ノード数クラスタリング部6は、ネットリスト2をノードおよびエッジから構成されるグラフ表現に変換する。また、ノード数クラスタリング部6は、計測したノード数と、GCN構成管理部5からのGCNクラス構成情報から、クラス分類判定を行う。
【0025】
図4は、本発明の実施の形態1における、ネットリストをグラフ表現として変換した図である。図4に示すように、ノード数クラスタリング部6は、ネットリスト内の複合ゲートをノードとして、各複合ゲート間の接続をエッジとして、グラフ表現する。
【0026】
ノードは、RTLからネットリストへの論理合成時に使用するスタンダードセル情報から作成される。このとき、回路構成が等しく、ドライブ能力のみが異なるものは、同一機能であるため、同じノード種類として扱われる。
【0027】
ノード数クラスタリング部6は、スタンダードセル情報から分類されるノードの種類情報と、グラフ表現したネットリストとを、ネットリスト行列変換部7へ出力する。また、ノード数クラスタリング部6は、GCN構成管理部5から取得したクラス階層情報から、クラス分けを行い、判定結果を学習・推論部8へ通知する。
【0028】
ネットリスト行列変換部7は、ノード数クラスタリング部6から入力したグラフ表現より、特徴ベクトル行列X、隣接行列A、正解ラベル行列Yを作成する。
【0029】
ネットリスト行列変換部7は、ネットリスト内の各ノードにおける複合ゲートの種別を特徴ベクトル行列Xとして表現する。具体的には、ネットリスト行列変換部7は、ノードを行、複合ゲートを列として表現し、行数は各クラスの最大ノード数、列数は複合ゲート数として作成する。
【0030】
また、ネットリスト行列変換部7は、ネットリスト内の各ノードにおける接続関係を隣接行列Aとして表現する。具体的には、ネットリスト行列変換部7は、ノードを行、列として表現し、接続関係にあるノードを1、それ以外を0として表現する。
【0031】
さらに、ネットリスト行列変換部7は、ネットリスト内の各ノードにおけるGCNの判定結果をラベルデータ行列Yとして表現する。具体的には、ネットリスト行列変換部7は、GCN構成管理部5より学習時と通知された場合にはラベルデータ行列Yを作成し、推論時と通知された場合にはラベルデータ行列Yを作成しない。
【0032】
学習・推論部8は、機能の学習および推論を行う。学習時において、GCN構成管理部5から既存機能の通知があった場合には、学習・推論部8は、通知されたGCNに対して、特徴ベクトル行列X、隣接行列A、正解ラベル行列Yを入力して、GCN内部の重みパラメータを更新する。
【0033】
また、GCN構成管理部5から新規機能の通知があった場合には、学習・推論部8は、新規のGCNを作成する。学習後にノード数クラスタリング部6で分類されたクラス内の既存機能との組み合わせ機能として、新たなGCNを作成可能であった場合には、学習・推論部8は、GCNを自動生成し、機能ラベル情報をGCN構成管理部5へ通知する。
【0034】
また、学習・推論部8は、推論時には、特徴ベクトル行列X、隣接行列Aを入力して機能の判定結果である出力行列Zを得る。具体的には、学習・推論部8は、ノードを行として表現し、機能あり、機能なしの判定結果を列として表現し、
{機能ありの判定結果を持つノード数 ≧ 機能ありの判定結果を持つノード数}
が成立した場合、判定した機能ありとする。
【0035】
一方、判定した機能なしの場合、学習・推論部8は、クラス内のGCN2分木構成に従い判定を継続し、全て一致しない場合に該当機能なしを出力する。
【0036】
次に、図1の各ブロックに対する処理フローを用いて、ここまで説明したプログラム内の処理を説明する。
【0037】
図5は、本発明の実施の形態1におけるGCN構成管理部5で実行される一連処理を示したフローチャートである。この図5を用いて、図1のGCN構成管理部5の処理の流れを説明する。
【0038】
ステップS100において、GCN構成管理部5は、ネットリストの機能ラベル情報3、またはクラスのGCN構成用パラメータ情報1を入力する。
【0039】
次に、ステップS101において、GCN構成管理部5は、GCNクラス構成を更新するとともに、ステップS100で入力された各クラスのノード数情報からクラスを設定し、ノード数クラスタリング部6へ、クラス設定を通知する。
【0040】
図6は、本発明の実施の形態1における、GCN構成用パラメータ情報によるGCNクラス構成の違いを示した図である。図6に示した各クラスは、ノード数でクラス分類を行っている。GCNで演算を行うためには、ノード数を一致させる必要がある。そこで、ネットリスト行列変換部7は、入力したネットリストのノード数から、分類されたクラスの最大ノード数まで、行列の補完処理を行う。
【0041】
また、学習・推論部8は、下位クラスの機能ラベルを組み合わせた機能ラベルを自動生成する機能を有している。そして、学習・推論部8は、組み合わせる機能のノードを再度ナンバリングすることで、機能ラベルの自動生成を実現する。
【0042】
そのため、自動生成する行列の最大ノード数は、
{最下位クラスの最大ノード数(P2)×組み合わせ機能数(P3)}
となる。そこで、GCN構成管理部5は、上位クラスでGCNの演算を行うために、GCN構成用パラメータ情報1を入力する。
【0043】
次に、ステップS102において、GCN構成管理部5は、学習または推論の判定を行う。GCN構成管理部5は、ステップS100で機能ラベル情報3が入力された場合には、学習と判定し、何も入力されない場合には、推論と判定する。GCN構成管理部5は、学習と判定した場合には、ネットリスト行列変換部7へ学習処理を実行すべきことを通知する。
【0044】
ステップS102において、GCN構成管理部5は、学習と判定した場合にはステップS103の処理に進み、推論と判定したにはステップS108の処理に進む。
【0045】
ステップS103に進んだ場合には、GCN構成管理部5は、ノード数クラスタリング部6によって入力されたクラス分類結果に基づくクラスごとの機能ラベルと、ステップS100で取得済みの機能ラベル情報3により特定される機能ラベルとの比較結果に基づいて、新規機能判定を行う。
【0046】
GCN構成管理部5は、両者の機能ラベルが一致しない比較結果を得た場合には、新規機能であると判定し、ステップS104の処理に進む。一方、GCN構成管理部5は、両者の機能ラベルが一致する比較結果を得た場合には、新規機能でないと判定し、ステップS107の処理に進む。
【0047】
ステップS104に進んだ場合には、GCN構成管理部5は、学習・推論部8へ学習指示および新規機能の通知を行う。
【0048】
次に、ステップS105において、GCN構成管理部5は、学習・推論部8で追加されたGCNの情報を、学習・推論部8から取得する。
【0049】
次に、ステップS106において、GCN構成管理部5は、追加したGCNを2分木構成の頂点の位置に反映する。GCN構成管理部5は、機能のあり/なしを判定するGCNを2分木構成で持つことにより、推論で入力した機能が学習済みの機能として存在しないことが判定可能となる。この場合には、入力した機能の学習データを用意することで、容易に判定機能の追加が可能となる。
【0050】
一方、ステップS103からステップS107に進んだ場合には、GCN構成管理部5は、学習・推論部8へ機能ラベルの学習指示を通知する。
【0051】
また、ステップS102からステップS108に進んだ場合には、GCN構成管理部5は、ノード数クラスタリング部6より入力されたクラス情報をもとに、該当クラスのGCNクラス構成情報の通知を行う。
【0052】
次に、図1のノード数クラスタリング部6の処理の流れを説明する。図7は、本発明の実施の形態1におけるノード数クラスタリング部6で実行される一連処理を示したフローチャートである。
【0053】
ノード数クラスタリング部6は、ユーザに指定された学習または推論用のネットリスト2、LSIデバイス固有のスタンダードセル情報4、およびGCN構成管理部5よりクラス単位でのノード数情報を指定したGCN構成情報を入力する。ノード数クラスタリング部6は、使用するスタンダードセル情報により複合ゲートの構成が異なりノード数が変化することも考慮して、ノード数を指示することにより、適切に分類を行うことが可能となる。
【0054】
ステップS200において、ノード数クラスタリング部6は、回路データのネットリスト2における複合ゲートをノードとして表現し、各複合ゲート間の接続をエッジとして表現するように、ノード変換を行う。
【0055】
ノードは、論理合成に用いるスタンダードセル情報4から作成することができる。スタンダードセル情報4には、複合ゲート種別の他に、回路のドライブ能力によって識別番号が与えられている。機能推定にあたっては、回路のドライブ能力は不要である。そこで、ノード数クラスタリング部6は、同一の入出力を持ち、ドライブ能力が異なる複合ゲートを、同一のノードとする変換テーブルを作成する。
【0056】
さらに、ノード数クラスタリング部6は、変換テーブルに従い、複合ゲート単位でノードに変換し、各ノード間をエッジとしてナンバリングを行う。
【0057】
次に、ステップS201において、ノード数クラスタリング部6は、ナンバリングしたノード数の計測を行う。
【0058】
次に、ステップS202において、ノード数クラスタリング部6は、計測したノード数と、GCN構成管理部5より入力されたクラス単位でのノード数情報とから、クラス判定を行うことでクラス分けを行う。同時に、ノード数クラスタリング部6は、該当クラスの最大ノード数を取得し、ネットリスト行列変換部7およびGCN構成管理部5に最大ノード数を通知する。
【0059】
次に、図1のネットリスト行列変換部7の処理の流れを説明する。図8は、本発明の実施の形態1におけるネットリスト行列変換部7で実行される一連処理を示したフローチャートである。
【0060】
ステップS300において、ネットリスト行列変換部7は、ノード数クラスタリング部6から通知されたクラスの最大ノード数を行として、スタンダードセル情報4から生成した変換テーブル上の複合ゲート種類数に該当なしを表現する1列を追加した数を列として、特徴ベクトル行列Xを作成する。
【0061】
図9は、本発明の実施の形態1における特徴ベクトル行列Xの変換例を示した図である。特徴ベクトル行列Xは、ノード毎の複合ゲート種別を表現する。そこで、ネットリスト行列変換部7は、特徴ベクトル行列Xを作成するに当たり、図9に示すとおり、行列内の各行においては、1つだけ1を設定し、残りの要素は0を設定することになる。また、ネットリスト行列変換部7は、列要素の該当なしについては、分類したクラスにおいて入力したネットリストのノード数以上のノード数番号に対して、1を設定する。
【0062】
次に、ステップS301において、ネットリスト行列変換部7は、ノード数クラスタリング部6から通知されたクラスの最大ノード数を行および列として、隣接行列Aを作成する。
【0063】
図10は、本発明の実施の形態1における接続行列Aの変換例を示した図である。ネットリスト行列変換部7は、接続行列Aを作成するに当たり、図10に示すとおり、各行に対して接続されるノード番号の要素に対して1を設定し、残りの要素は0を設定することになる。接続行列Aは、特徴ベクトル行列Xとは異なり、接続関係を表現するので、2つ以上の要素を1とする場合もある。
【0064】
次に、ステップS302において、ネットリスト行列変換部7は、GCN構成管理部5から通知された学習指示または推論指示に従った処理を行う。学習指示を通知された場合には、ステップS303に進み、ネットリスト行列変換部7は、ラベルデータ行列Yを作成する。
【0065】
ラベルデータ行列Yは、ノード数クラスタリング部6から通知されたクラスの最大ノード数を行として、各ノード単位で機能あり/なしを列として、表現される。図11は、本発明の実施の形態1における正解ラベル行列Yの変換例を示した図である。図11に示すとおり、機能単位でネットリストを学習するため、ネットリスト行列変換部7は、全ノードに対して機能ありの正解ラベルをもつラベルデータ行列Yを作成する。
【0066】
次に、図1の学習・推論部8の処理の流れを説明する。図12は、本発明の実施の形態1における学習・推論部8で実行される一連処理を示したフローチャートである。
【0067】
ステップS400において、学習・推論部8は、GCN構成用パラメータ情報1を取得する。
【0068】
次に、ステップS401において、学習・推論部8は、GCN構成管理部5から通知された指示が、学習指示または推論指示のいずれであるかを判定する。そして、学習・推論部8は、学習指示が通知された場合には、ステップS402に進み、推論指示が通知された場合には、ステップS406に進む。
【0069】
ステップS402に進んだ場合には、学習・推論部8は、GCN構成管理部5から通知された学習データが新規機能であるか否かを判定する。新規機能と判定した場合にはステップS403に進み、学習・推論部8は、GCNを新規追加する。
【0070】
図13および図14は、本発明の実施の形態1における学習データの追加例を示した図である。具体的には、図13および図14では、GCN構成管理部5がGCN構成用パラメータ情報1を、P1=2、P2=100、P3=2として、クラスを構成している場合を例示している。
【0071】
図13の具体例に示したように、管理していないクラス1内のノード数をもつ新規の機能ラベルAが入力された場合には、学習・推論部8は、ステップS403で新たなGCN機能Aを作成する。学習・推論部8は、新たな機能ラベルAをもつネットリストをユーザが用意した数だけ繰り返し学習を行う。また、クラス1内の機能は、機能ラベルAの1つだけであり、学習・推論部8は、上位クラスであるクラス2でGCNの自動生成は行わない。
【0072】
次に、管理していないクラス1内のノード数をもつ新規の機能ラベルBが入力された場合には、学習・推論部8は、ステップS403で新たなGCN機能Bを作成する。学習・推論部8は、新たな機能ラベルBをもつネットリストをユーザが用意した数だけ繰り返し学習を行う。また、クラス1内の機能は、機能ラベルA、Bの2つとなり、学習・推論部8は、上位クラスであるクラス2で組み合わせ機能ラベルABを持つGCNの自動生成を行う。
【0073】
このように、学習・推論部8は、ユーザが用意した機能ラベルA、機能ラベルBの学習データから、新たな行列を作成し、繰り返し学習を行う。図15は、本発明の実施の形態1における学習・推論部8による学習用行列自動生成の例を示した図である。学習・推論部8は、ネットリスト行列変換部7で作成された機能ラベルA、機能ラベルBの行列のうち、機能ラベルBのノード番号nB0~nB99を、nAB100~nAB199に変換して、各行列を作成する。
【0074】
図14の具体例において、GCN構成管理部5が管理していない新規の機能ラベルCが入力された場合には、学習・推論部8は、ステップS403で新たなGCN機能Cを作成する。学習・推論部8は、新たな機能ラベルCをもつネットリストをユーザが用意した数だけ繰り返し学習を行う。また、クラス1内の機能は、機能ラベルA、B、Cの3つとなり、学習・推論部8は、上位クラスであるクラス2で組み合わせ機能ラベルAC、BCを持つGCNの自動生成を行う。
【0075】
学習・推論部8は、ステップS403でGCNを新規追加した後には、ステップS404において、追加したGCNの機能ラベル情報をGCN構成管理部5へ通知する。
【0076】
また、先のステップS402において、既存ラベルへの学習指示であると判定した場合には、ステップS405に進み、学習・推論部8は、追加のGCNの学習を実施する。
【0077】
また、先のステップS401において、推論指示であると判定した場合には、ステップS406に進み、学習・推論部8は、GCN構成管理部5から通知された推論用のGCNを用意する。
【0078】
先の図3に示したように、GCN構成管理部5は、クラスごとにGCNを2分木構成として管理している。そして、ステップS406において、学習・推論部8は、2分木の頂点のGCNの機能ラベルのあり/なしを選択する。
【0079】
次に、ステップS407において、2分木の頂点のGCNの機能ラベルがあると判定した場合には、ステップS409に進み、学習・推論部8は、判定に用いたGCNの機能ラベルを推論結果として出力する。
【0080】
一方、ステップS407において、2分木の頂点のGCNの機能ラベルがないと判定した場合には、ステップS408に進み、学習・推論部8は、GCNの更新可否の判定を行う。ステップS400で取得したGCNの2分木構成で、一階層下のGCNがある場合には、学習・推論部8は、GCN更新可能と判断し、ステップS406に戻り、GCNを更新する。
【0081】
一方、ステップS400で取得したGCNの2分木構成で、更新する下位階層のGCNが存在しない場合には、学習・推論部8は、GCN更新不可と判断し、ステップS409に進み、判定に用いたGCNの機能ラベルを推論結果として出力する。
【0082】
以上のように、実施の形態1によれば、NNの一種であるGraph Convolutional Networks(GCN)を用いて機能推定が行われる。この手法で取り扱うグラフとは、ノード、エッジ、重みなどで構成されているグラフ理論に基づくデータ構造のことである。インターネット、交通網、SNSのつながりといった身近にある様々のものが、このようなデータ構造の例として挙げられる。
【0083】
GCNでは、そのようなグラフに対してノードおよびエッジの接続関係による畳み込み演算を用いてNNを構築し、グラフの特徴量を抽出することで、グラフの分類を行っている。先行技術文献では、ノード毎の特徴量を抽出し、抽出した特徴量をノードの分類のために用いている。
【0084】
これに対して、本実施の形態1は、抽出した特徴量をグラフ全体で1つの機能を持つネットリストへ適用し、学習した機能があるかないかの判定を行う。これらのGCNを機能の判別器として2分木構成とすることで、未学習機能の抽出が可能となる。これにより、未学習機能の誤分類が抑制される。
【0085】
さらに、本実施の形態1は、ネットリストの回路規模によるクラス分けを行い、それぞれのクラスでGCNを管理する。これにより、回路規模の小さいクラスの機能を組み合わせて、上位クラスのGCNを自動生成でき、組み合わせ機能の判定候補として利用可能となる。また、推論時において判定対象とするGCNを選別可能となるため、効率化も図ることができる。
【0086】
実施の形態2.
先の実施の形態では、グラフ構造を畳み込んだネットワークであるGCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出するために、コンピュータ上で実行される機能推定方法、機能推定装置、および機能推定プログラムについて説明した。
【0087】
これに対して、本実施の形態2では、GCNの代わりに、R-GCNを用いて、LSIの論理設計で使用されるネットリストに実装されている機能を抽出するために、コンピュータ上で実行される機能推定方法、機能推定装置、および機能推定プログラムについて説明する。
【0088】
まず、GCNとR-GCNとの違いについて、図16および図17を用いて説明する。図16は、本発明の実施の形態1ですでに説明したGCNによる、ノードとノードの接続関係を表すためのグラフ表現および隣接行列を示した図である。一方、図17は、本発明の実施の形態2で説明するR-GCNによる、ノードとノードの接続関係を表すためのグラフ表現および隣接行列を示した図である。
【0089】
図16および図17では、ノードとして、n0~n4の5つを用いた場合の接続関係が例示されている。先の実施の形態1で説明したGCNでは、図16(a)に示すように、ネットリストの入出力関係が保持されない無向グラフを使用している。すなわち、GCNでは、どのノードと、どのノードとが接続されているかは表現されているが、どのノードからどのノードに対して信号が出力されるかを示す入出力関係の情報までは、表現されていなかった。
【0090】
従って、図16(a)に示したGCNでのグラフ表現に対応する隣接行列Aは、図16(b)に示すように、各ノード間で接続関係を有する場合が1、接続関係を有さない場合が0として、表現されていた。
【0091】
これに対して、本実施の形態2で説明するR-GCNでは、図17(a)に示すように、ネットリストの入出力関係を保持した有向グラフを使用している。すなわち、R-GCNでは、どのノードと、どのノードとが接続されているかが表現されているとともに、どのノードからどのノードに対して信号が出力されるかを示す入出力関係の情報も、矢印として表現されている。
【0092】
従って、図17(a)に示したR-GCNでのグラフ表現に対応する隣接行列Aは、図17(b)に示した隣接行列(入力側)Ain、図17(c)に示した隣接行列(自分)Aown、および図17(d)に示した隣接行列(出力側)Aout、の3種類を用いて表現できる。
【0093】
換言すると、本実施の形態2では、ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列として、各ノードにおけるノード間の入力に関する接続関係を示す第1の隣接行列Ainと、各ノードを要素とする単位行列を示す第2の隣接行列Aownと、各ノードにおけるノード間の出力に関する接続関係を示す第3の隣接行列Aoutとから構成される。
【0094】
図17(b)に示した第1の隣接行列に相当する隣接行列(入力側)Ainでは、行側が入力側のノードを示しており、列側が出力側のノードを示しており、各ノード間で入力関係を有する場合が1、入力関係を有さない場合が0として表現されている。例えば、ノードn1に着目すると、ノードn0からの信号を受け取るため、隣接行列(入力側)Ainにおける2行1列目の要素が「1」となっている。
【0095】
また、図17(c)に示した第2の隣接行列に相当する隣接行列(自分)Aownでは、行と列の同じノードの要素が「1」となる単位行列となっている。
【0096】
さらに、図17(d)に示した第3の隣接行列に相当する隣接行列(出力側)Aoutでは、行側が出力側のノードを示しており、列側が入力側のノードを示しており、各ノード間で出力関係を有する場合が1、出力関係を有さない場合が0として表現されている。例えば、ノードn0に着目すると、ノードn1へ信号を出力するため、隣接行列(出力側)Aoutにおける1行2列目の要素が「1」となっている。
【0097】
このように、GCNにおける1つの隣接行列Aを用いた場合には、ノード間の接続関係のみの情報が得られ、入出力関係の情報までは得られなかった。従って、図16(a)、図16(b)からも明らかなように、例えば、ノードn0とノードn1とが接続されている情報は得られるものの、ノードn0からノードn1への信号であるか、ノードn1からノードn0への信号であるかの情報までは得ることができない。
【0098】
換言すると、ノードn0からノードn1へ信号が出力されている場合と、ノードn1からノードn0へ信号が出力されている場合とで、両方とも同一のグラフ表現、および同一の隣接行列Aが得られてしまい、両者を区別することはできなかった。
【0099】
これに対して、R-GCNにおける3つの隣接行列(入力)Ain、隣接行列(自分)Aown、および隣接行列(出力側)Aoutを用いた場合には、ノード間の接続関係の情報とともに、入出力関係の情報まで得られる。
【0100】
従って、図17(a)~図17(d)からも明らかなように、例えば、ノードn0とノードn1とが接続されている情報とともに、ノードn0からノードn1へ信号が出力されている情報も、得ることができる。
【0101】
換言すると、ノードn0からノードn1へ信号が出力されている場合と、ノードn1からノードn0へ信号が出力されている場合とで、グラフ表現、および3種の隣接行列により、両者を区別することが可能となる。このため,R-GCNを用いることで、GCNを用いる場合と比較して、より汎用的かつ高精度の機能推定を実現することが可能となる。
【0102】
本実施の形態2における機能推定装置の構成は、GCNを用いる場合の、先の実施の形態1における図1で説明した構成と基本的には変わらない。ただし、本実施の形態2におけるネットリスト行列変換部7の処理は、図16に示したような1種の隣接行列Aを生成する代わりに、図17に示したような3種の隣接行列(入力)Ain、隣接行列(自分)Aown、および隣接行列(出力側)Aoutを生成する点で相違している。
【0103】
そこで、本実施の形態2におけるネットリスト行列変換部7の処理の流れについて、次に説明する。図18は、本発明の実施の形態2におけるネットリスト行列変換部7で実行される一連処理を示したフローチャートである。
【0104】
図18に示したフローチャートは、先の実施の形態1における図8に示したフローチャートと比較すると、ステップS301において隣接行列を作成する処理が、3種の隣接行列(入力)Ain、隣接行列(自分)Aown、および隣接行列(出力側)Aoutを生成するように変更されている。そこで、変更されているステップS301の処理を中心に、以下に説明する。
【0105】
本実施の形態2におけるステップS301は、3つのステップS301-1、S301-2、S301-3として構成されている。ネットリスト行列変換部7は、ステップS300で特徴ベクトル行列Xを作成した後、ステップS301-1において、ノード数クラスタリング部6から通知されたクラスの最大ノード数を行および列として、隣接行列(入力)Ainを作成する。
【0106】
次に、ネットリスト行列変換部7は、ステップS301-2において、ノード数クラスタリング部6から通知されたクラスの最大ノード数を行および列として、隣接行列(自分)Aownを作成する。
【0107】
さらに、ネットリスト行列変換部7は、ステップS301-3において、ノード数クラスタリング部6から通知されたクラスの最大ノード数を行および列として、隣接行列(出力)Aoutを作成する。
【0108】
その後、ネットリスト行列変換部7は、ステップS302、ステップS303の処理を実行する。
【0109】
以上のように、実施の形態2によれば、NNの一種であるRelational Graph Convolutional Networks(R-GCN)を用いて機能推定が行われる。この手法で取り扱うグラフとは、GCNを用いて機能推定が行われる先の実施の形態1と同様に、ノード、エッジ、重みなどで構成されているグラフ理論に基づくデータ構造のことである。インターネット、交通網、SNSのつながりといった身近にある様々のものが、このようなデータ構造の例として挙げられる。
【0110】
R-GCNでは、そのようなグラフに対してノードおよびエッジの接続関係による畳み込み演算を用いてNNを構築するとともに、ノード間の入出力関係を考慮したグラフの特徴量を抽出することで、グラフの分類を行っている。先行技術文献では、ノード毎の特徴量を抽出し、抽出した特徴量をノードの分類のために用いている。
【0111】
これに対して、本実施の形態2は、抽出した特徴量をグラフ全体で1つの機能を持つネットリストへ適用し、学習した機能があるかないかの判定を行う。これらのR-GCNを機能の判別器として2分木構成とすることで、未学習機能の抽出が可能となる。これにより、未学習機能の誤分類が抑制される。
【0112】
さらに、本実施の形態2は、ネットリストの回路規模によるクラス分けを行い、それぞれのクラスでR-GCNを管理する。これにより、回路規模の小さいクラスの機能を組み合わせて、上位クラスのR-GCNを自動生成でき、組み合わせ機能の判定候補として利用可能となる。また、推論時において判定対象とするR-GCNを選別可能となるため、効率化も図ることができる。
【0113】
さらに、本実施の形態2は、R-GCNを用いることで、有向グラフ表現、および3種の隣接行列に基づく機能推定が可能となる。この結果、GCNを用いる場合と比較して、より汎用的かつ高精度の機能推定を実現することが可能となる。
【符号の説明】
【0114】
1 GCN構成用パラメータ情報、2 ネットリスト、3 機能ラベル情報、4 スタンダードセル情報、5 GCN構成管理部(管理工程、管理部、管理手段)、6 ノード数クラスタリング部(クラスタリング工程、クラスタリング部、クラスタリング手段)、7 ネットリスト行列変換部(変換工程、変換部、変換手段)、8 学習・推論部(学習・推論工程、学習・推論手段)、9 推論結果、11 最下位クラス、12、13 上位クラス。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18