JP7756590B2 - Function estimation method and function estimation program - Google Patents
Function estimation method and function estimation programInfo
- Publication number
- JP7756590B2 JP7756590B2 JP2022058108A JP2022058108A JP7756590B2 JP 7756590 B2 JP7756590 B2 JP 7756590B2 JP 2022058108 A JP2022058108 A JP 2022058108A JP 2022058108 A JP2022058108 A JP 2022058108A JP 7756590 B2 JP7756590 B2 JP 7756590B2
- Authority
- JP
- Japan
- Prior art keywords
- estimation
- node
- function
- netlist
- clustering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Description
本開示は、グラフ構造を有するネットワークであるGNN(Graph Neural Network)を用いて、LSIの論理設計で使用されるネットリストに基づいて機能推定を行う機能推定方法および機能推定プログラムに関する。 This disclosure relates to a function estimation method and program that uses a GNN (Graph Neural Network), a network with a graph structure, to perform function estimation based on a netlist used in the logic design of an LSI.
半導体集積回路(以後、LSIと称す)の設計技術として、開発効率がよく、半導体ベンダにとらわれないハードウェア記述言語(HDL:Hardware Descripti-on Language)が用いられる場合がある。 As a design technology for semiconductor integrated circuits (hereafter referred to as LSIs), hardware description languages (HDLs) are sometimes used, as they are highly efficient in development and are not tied to semiconductor vendors.
この場合には、HDLにより回路設計が行われた後に、回路に実装する部品の接続関係を表現するネットリストへ自動で変換する論理合成が用いられている。ここで、いわゆる論理合成が可能なHDL記述レベルは、レジスタトランスファレベル(以下、RTLと称す)と呼ばれる。 In this case, logic synthesis is used to automatically convert a circuit design created using HDL into a netlist that describes the connections between components to be implemented in the circuit. The HDL description level at which logic synthesis is possible is called the register transfer level (RTL).
これに対し、RTLの存在しない過去の設計資産を活用する目的で、ネットリストに実装されている機能の抽出、あるいはネットリストをRTLへ変換する要望がある。しかしながら、半導体ベンダ毎に異なるネットリストを、単純な言語変換ではなく、記述を自動で抽象化し変換する技術までは確立されておらず、主に人手により、ドキュメントを参考にしながらネットリストの読解が行われていた。 In response to this, there is a demand for extracting functions implemented in netlists or converting netlists to RTL, with the aim of utilizing past design assets for which RTL does not exist. However, there is no established technology to automatically abstract and convert the descriptions of netlists, which differ from one semiconductor vendor to another, rather than simply converting the language, and so netlists have mainly been interpreted manually, referring to documentation.
この問題に対して、RTLに実装された機能を推定する方法がある(例えば、特許文献1参照)。特許文献1では、ニューラルネットワーク(以後、NNと称す)を用いて、判定機能の学習後に機能推定を行い、一致した機能の回路データを差し替える方法が紹介されている。 To address this issue, there is a method for estimating functions implemented in RTL (see, for example, Patent Document 1). Patent Document 1 introduces a method that uses a neural network (hereafter referred to as NN) to learn a judgment function, then estimates the function and replaces the circuit data for matching functions.
しかしながら、特許文献1では、変換ルールとして学習した機能の推定、および回路置き換えを対象にしている。従って、学習した機能が組み合わされた機能に対しての機能推定を行う仕組みはない。そのため、判定したい機能毎に、すべて手作業で学習させる必要がある。 However, Patent Document 1 focuses on the estimation of functions learned as conversion rules and circuit replacement. Therefore, there is no mechanism for estimating functions that combine learned functions. As a result, it is necessary to manually train each function that needs to be judged.
このような課題を解決するために、本出願人は、LSIのネットリストに対して、機能推定を効率的に実行することができる機能推定方法および機能推定プログラムを提案した(例えば、特許文献2参照)。 To solve these problems, the present applicant has proposed a function estimation method and program that can efficiently perform function estimation on LSI netlists (see, for example, Patent Document 2).
特許文献2では、ゲートレベルのネットリストをグラフ化し、R-GCNに入力することによる回路の機能推定手法を提案し、単純な算術演算機能であるadder、subtractor、multiplier、multiplexer等で構成された組み合わせ回路における機能推定を実現した。 Patent document 2 proposes a circuit function estimation method that graphs gate-level netlists and inputs them into an R-GCN, achieving function estimation for combinational circuits composed of simple arithmetic operation functions such as adders, subtractors, multipliers, and multiplexers.
ここで、R-GCN(Relational Graph Convolutional Network)は、GNNの1種であり、ノードとエッジで構成されたグラフ構造を対象とした畳み込みニューラルネットワークモデルの一種であり、有向グラフが入力可能であるという特徴がある。 Here, R-GCN (Relational Graph Convolutional Network) is a type of GNN, a type of convolutional neural network model that targets graph structures made up of nodes and edges, and is characterized by its ability to accept directed graphs as input.
しかしながら、このような特許文献2に係る手法については、より複雑な回路に対しても機能推定を行うことができるように推定性能の向上を図ることが望まれている。 However, with regard to the technique described in Patent Document 2, it is desirable to improve the estimation performance so that function estimation can be performed on more complex circuits.
本開示は、このような課題を解決するためになされたものであり、従来技術と比較して、LSIのネットリストに対する機能推定の汎化性向上を図ることができる機能推定方法および機能推定プログラムを得ることを目的とする。 The present disclosure has been made to solve these problems, and aims to provide a function estimation method and function estimation program that can improve the generalizability of function estimation for LSI netlists compared to conventional techniques.
本開示に係る機能推定方法は、グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定方法であって、ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程とを備え、第2推定工程は、第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を第2のGNNに対する入力データとして生成し、第2の機能推定を行い、第1推定工程は、ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、ネットリスト内の各ノードにおける接続関係を表現する隣接行列と、を生成する第2ステップと、特徴行列および隣接行列を第1のGNNに入力し、ノードおよびエッジの接続関係を用いた演算を実行することで、第1の機能推定を実行し、グラフ化したネットリスト内の各ノードについて第1の機能推定の結果によるノード分類を反映した出力グラフを推定結果として生成する第3ステップとを有し、第2推定工程は、推定結果である出力グラフの各ノードについてクラスタリングを行い、第2のGNNに入力するための入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係を表現する新たな隣接行列とを生成する第4ステップと、新たな特徴行列および新たな隣接行列を第2のGNNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いた演算を実行することで、第2の機能推定を実行する第5ステップとを有するものである。
また、本開示に係る機能推定方法は、グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定方法であって、ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程とを備え、第2推定工程は、第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を第2のGNNに対する入力データとして生成し、第2の機能推定を行い、GNNとしてグラフ構造を畳み込んだネットワークであるR-GCNを用いた場合には、ネットリストに基づいて第1のGNNとして第1のR-GCNを用いることで第1の機能推定を行う第1推定工程は、ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列と、を生成する第2ステップと、特徴行列および3種の隣接行列を第1のR-GCNに入力し、ノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、第1の機能推定を実行し、グラフ化したネットリスト内の各ノードについて第1の機能推定の結果によるノード分類を反映した出力グラフを推定結果として生成する第3ステップとを有し、第1推定工程の推定結果に基づいて第2のGNNとして第2のR-GCNを用いることで第2の機能推定を行う第2推定工程は、推定結果である出力グラフの各ノードについてクラスタリングを行い、第2のR-GCNに入力するための入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係および入出力関係を表現する新たな3種の隣接行列とを生成する第4ステップと、新たな特徴行列および新たな3種の隣接行列を第2のR-GCNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、第2の機能推定を実行する第5ステップとを有し、第2ステップで生成される3種の隣接行列は、グラフ化したネットリスト内の各ノードにおけるノード間の入力に関する接続関係を示す第1の隣接行列と、グラフ化したネットリスト内の各ノードを要素とする単位行列を示す第2の隣接行列と、グラフ化したネットリスト内の各ノードにおけるノード間の出力に関する接続関係を示す第3の隣接行列とで構成され、第5ステップで生成される新たな3種の隣接行列は、クラスタリング後の各ノードにおけるノード間の入力に関する接続関係を示す新たな第1の隣接行列と、クラスタリング後の各ノードを要素とする単位行列を示す新たな第2の隣接行列と、クラスタリング後の各ノードにおけるノード間の出力に関する接続関係を示す新たな第3の隣接行列とで構成されるものである。
また、本開示に係る機能推定方法は、グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定方法であって、ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程とを備え、第2推定工程は、第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を第2のGNNに対する入力データとして生成し、第2の機能推定を行い、コンピュータは、第1推定工程において、ネットリストに含まれる算術演算機能を第1の機能推定として推定し、第2推定工程において、算術演算機能の推定結果に基づいて上位階層の回路機能を第2の機能推定として推定するものである。
A function estimation method according to the present disclosure is a function estimation method executed by a computer to estimate a function based on a netlist used in the logic design of an LSI using a GNN, which is a network having a graph structure, and includes a first estimation step of performing a first function estimation by using a first GNN based on the netlist, and a second estimation step of performing a second function estimation by using a second GNN based on the estimation result of the first estimation step, wherein the second estimation step performs clustering on each node of an output graph that is the estimation result of the first estimation step, generates a matrix representing the type of each node after clustering as input data for the second GNN, and performs the second function estimation, and the first estimation step includes a first step of generating a graphed netlist by converting the netlist into a graph representation consisting of nodes and edges, a feature matrix representing the type of each node in the graphed netlist, and a feature matrix representing the type of each node in the netlist. the second step of generating an adjacency matrix that expresses the connection relationships at each node; a third step of inputting the feature matrix and the adjacency matrix into a first GNN and executing a calculation using the connection relationships between the nodes and edges to perform a first function estimation, and generating, as an estimation result, an output graph that reflects the node classification according to the result of the first function estimation for each node in the graphed netlist; the second estimation process includes a fourth step of clustering each node in the output graph that is the estimation result, and generating, as input data to be input to the second GNN, a new feature matrix that expresses the type of each node after clustering and a new adjacency matrix that expresses the connection relationships at each node after clustering; and a fifth step of inputting the new feature matrix and new adjacency matrix into the second GNN and executing a calculation using the connection relationships between the nodes and edges after clustering to perform a second function estimation .
Further, a function estimation method according to the present disclosure is a function estimation method executed by a computer to estimate a function based on a netlist used in the logic design of an LSI using a GNN, which is a network having a graph structure, and includes a first estimation step of performing a first function estimation by using a first GNN based on the netlist, and a second estimation step of performing a second function estimation by using a second GNN based on the estimation result of the first estimation step, in which the second estimation step performs clustering for each node of an output graph, which is the estimation result of the first estimation step, generates a matrix representing the type of each node after clustering as input data for the second GNN, performs the second function estimation, and estimates the function by using an R-GC, which is a network in which the graph structure is folded as the GNN. When N is used, the first estimation step of performing the first function estimation by using the first R-GCN as the first GNN based on the netlist includes a first step of generating a graphed netlist by converting the netlist into a graph representation consisting of nodes and edges, a second step of generating a feature matrix representing the type of each node in the graphed netlist and three types of adjacency matrices representing the connection relationships and input/output relationships at each node in the netlist, and a second step of inputting the feature matrix and the three types of adjacency matrices to the first R-GCN and performing a graph convolution operation using the connection relationships of the nodes and edges to perform the first function estimation, and a second step of generating a graph representation of each node in the graphed netlist by reflecting the node classification according to the result of the first function estimation. The second estimation step performs a second function estimation by using a second R-GCN as a second GNN based on the estimation result of the first estimation step, and includes a fourth step of clustering each node of the output graph, which is the estimation result, and generating, as input data to be input to the second R-GCN, a new feature matrix representing the type of each node after clustering and three new types of adjacency matrices representing the connection relationships and input/output relationships of each node after clustering; and a fifth step of inputting the new feature matrix and the new three types of adjacency matrices to the second R-GCN and performing a graph convolution operation using the connection relationships of the nodes and edges after clustering, thereby performing the second function estimation. The three types of adjacency matrices generated in the second step are composed of a first adjacency matrix indicating the connection relationships regarding inputs between nodes at each node in the graphed netlist, a second adjacency matrix indicating a unit matrix with each node in the graphed netlist as an element, and a third adjacency matrix indicating the connection relationships regarding outputs between nodes at each node in the graphed netlist, and the three new types of adjacency matrices generated in the fifth step are composed of a new first adjacency matrix indicating the connection relationships regarding inputs between nodes at each node after clustering, a new second adjacency matrix indicating a unit matrix with each node after clustering as an element, and a new third adjacency matrix indicating the connection relationships regarding outputs between nodes at each node after clustering.
Furthermore, a function estimation method according to the present disclosure is a function estimation method executed by a computer to estimate a function based on a netlist used in the logic design of an LSI using a GNN, which is a network having a graph structure, and includes a first estimation step of performing a first function estimation by using a first GNN based on the netlist, and a second estimation step of performing a second function estimation by using a second GNN based on the estimation result of the first estimation step, in which the second estimation step performs clustering on each node of an output graph that is the estimation result of the first estimation step, generates a matrix representing the type of each node after clustering as input data for the second GNN, and performs the second function estimation, in which the computer estimates an arithmetic operation function included in the netlist as the first function estimation, and in the second estimation step estimates a circuit function of a higher hierarchy as the second function estimation based on the estimation result of the arithmetic operation function.
また、本開示に係る機能推定プログラムは、グラフ構造を有するネットワークであるGNNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定プログラムであって、コンピュータをネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定手段と、第1推定手段の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定手段として機能させ、第1推定手段は、ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、ネットリスト内の各ノードにおける接続関係を表現する隣接行列と、を生成する第2ステップと、特徴行列および隣接行列を第1のGNNに入力し、ノードおよびエッジの接続関係を用いた演算を実行することで、第1の機能推定を実行し、グラフ化したネットリスト内の各ノードについて第1の機能推定の結果によるノード分類を反映した出力グラフを推定結果として生成する第3ステップとを有し、第2推定手段は、推定結果である出力グラフの各ノードについてクラスタリングを行い、第2のGNNに入力するための入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係を表現する新たな隣接行列とを生成する第4ステップと、新たな特徴行列および新たな隣接行列を第2のGNNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いた演算を実行することで、第2の機能推定を実行する第5ステップとを有するものである。 The function estimation program according to the present disclosure is a function estimation program executed by a computer to estimate functions based on a netlist used in the logic design of an LSI using a GNN, which is a network having a graph structure, and causes the computer to function as a first estimation means that performs a first function estimation by using a first GNN based on the netlist, and a second estimation means that performs a second function estimation by using a second GNN based on the estimation result of the first estimation means. The first estimation means performs a first step of generating a graphed netlist by converting the netlist into a graph representation consisting of nodes and edges, a second step of generating a feature matrix that represents the type of each node in the graphed netlist and an adjacency matrix that represents the connection relationships at each node in the netlist, and a second step of generating a feature matrix and an adjacency matrix that represents the connection relationships at each node in the netlist. The second estimation means has a fourth step of clustering each node in the output graph, which is the estimation result, and generating, as input data to be input to the second GNN, a new feature matrix that expresses the type of each node after clustering and a new adjacency matrix that expresses the connectivity of each node after clustering; and a fifth step of inputting the new feature matrix and new adjacency matrix to the second GNN and executing a calculation using the connectivity of the nodes and edges after clustering, thereby performing a second function estimation.
本開示によれば、従来技術と比較して、LSIのネットリストに対する機能推定の汎化性向上を図ることができる機能推定方法および機能推定プログラムを得ることができる。 This disclosure provides a function estimation method and program that can improve the generalizability of function estimation for LSI netlists compared to conventional techniques.
以下、本開示の機能推定方法および機能推定プログラムの好適な実施の形態につき、図面を用いて説明する。本開示は、グラフを扱う深層学習全般に関する技術であり、GNNにおいて、ノードレベルでの分類を行うことを特徴とするものである。 Preferred embodiments of the function estimation method and function estimation program of the present disclosure are described below with reference to the accompanying drawings. This disclosure relates to deep learning technology that handles graphs in general, and is characterized by performing classification at the node level in a GNN.
なお、以下の実施の形態1では、GNNの具体例として、グラフ構造を畳み込んだネットワークであるGCNとしてR-GCNを用いて、LSIの論理設計で使用されるネットリストに基づいて機能を推定するために、コンピュータにより実行される機能推定手法について説明する。本開示によれば、特に、前段の機能推定結果を利用して、さらなる機能推定を後段で行う手法を備えており、LSIのネットリストに対する機能推定の汎化性向上を図ることができるものである。 In the following first embodiment, a function estimation method executed by a computer is described, using an R-GCN as a GCN, a network with a folded graph structure, as a specific example of a GNN, to estimate functions based on a netlist used in LSI logic design. This disclosure, in particular, provides a method for using the results of function estimation in a previous stage to perform further function estimation in a later stage, thereby improving the generalizability of function estimation for LSI netlists.
実施の形態1.
図1は、本開示の実施の形態1に係る機能推定方法による処理の流れを示した説明図である。図1を用いて本実施の形態1におけるR-GCNを用いたアプリケーションのネットリストの機能推定手法について説明する。図1では、アプリケーションのネットリストから、最終的にそのアプリケーションの機能を推定するまでの一連の流れが示されている。
Embodiment 1.
1 is an explanatory diagram showing a processing flow of a function estimation method according to a first embodiment of the present disclosure. A function estimation method for an application netlist using an R-GCN according to the first embodiment will be described with reference to FIG. 1. FIG. 1 shows a series of steps from an application netlist to finally estimating the function of the application.
図1に示すように、本実施の形態1に係る機能推定方法は、大別すると、第1推定工程10と、第1推定工程10による推定結果を利用する第2推定工程20を備えている。第1推定工程10は、ネットリストに基づいて第1のR-GCNを用いることで第1の機能推定を行う。より具体的には、第1推定工程10は、以下のようなステップを有している。 As shown in FIG. 1, the function estimation method according to the first embodiment can be broadly divided into a first estimation process 10 and a second estimation process 20 that uses the estimation results from the first estimation process 10. The first estimation process 10 performs a first function estimation by using a first R-GCN based on a netlist. More specifically, the first estimation process 10 includes the following steps:
第1ステップ:ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成するステップ。
第2ステップ:グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列とを生成するステップ。
First step: generating a graphed netlist by converting the netlist into a graph representation consisting of nodes and edges.
Second step: A step of generating a feature matrix that represents the type of each node in the graphed netlist, and three types of adjacency matrices that represent the connection relationships and input/output relationships at each node in the netlist.
第3ステップ:特徴行列および3種の隣接行列を第1のR-GCNに入力し、ノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、第1の機能推定を実行し、グラフ化したネットリスト内の各ノードについて第1の機能推定の結果によるノード分類を反映した出力グラフを推定結果として生成するステップ。 Third step: Input the feature matrix and three types of adjacency matrices into the first R-GCN, and perform a graph convolution operation using the node and edge connectivity relationships to perform a first function estimation, generating an output graph as an estimation result that reflects the node classification based on the results of the first function estimation for each node in the graphed netlist.
なお、この第1推定工程10における詳細な処理内容は、特許文献2に開示されており、ここでは詳細な説明を省略する。 The detailed processing content of this first estimation step 10 is disclosed in Patent Document 2, and a detailed explanation will be omitted here.
第2推定工程20は、第1推定工程10の推定結果に基づいて第2のR-GCNを用いることで第2の機能推定を行う。この第2推定工程20は、機能推定の汎化性向上を図るために本開示において新たに追加された工程であり、以下のようなステップを有している。 The second estimation process 20 performs a second function estimation using a second R-GCN based on the estimation results of the first estimation process 10. This second estimation process 20 is a new process added in this disclosure to improve the generalizability of function estimation, and includes the following steps:
第4ステップ:推定結果である出力グラフの各ノードについてクラスタリングを行い、第2のR-GCNに入力するための入力データとして、新たな特徴行列と、新たな3種の隣接行列とを生成するステップ。
第5ステップ:新たな特徴行列および新たな3種の隣接行列を第2のR-GCNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、第2の機能推定を実行するステップ。
Fourth step: A step of performing clustering for each node of the output graph, which is the estimation result, and generating a new feature matrix and three new adjacency matrices as input data to be input to the second R-GCN.
Fifth step: A step of performing second function estimation by inputting the new feature matrix and the new three types of adjacency matrices into a second R-GCN and performing a graph convolution operation using the node and edge connectivity relationships after clustering.
なお、新たな特徴行列とは、クラスタリング後の各ノードにおける種別を表現する行列であり、新たな3種の隣接行列とは、クラスタリング後の各ノードにおける接続関係および入出力関係を表現する行列であり、詳細は後述する。 The new feature matrix is a matrix that represents the type of each node after clustering, and the three new adjacency matrices are matrices that represent the connection relationships and input/output relationships of each node after clustering; details will be given later.
図1では、第1推定工程10において、ネットリストに含まれる算術演算機能を第1の機能推定として推定し、第2推定工程20において、算術演算機能の推定結果に基づいて上位階層の回路機能としてのアプリケーション機能を第2の機能推定として推定する場合を例示している。なお、第1推定工程10により推定される機能、および第2推定工程20により推定される機能は、この例示に限定されるものではない。 Figure 1 illustrates an example in which, in the first estimation process 10, arithmetic operation functions included in the netlist are estimated as the first function estimation, and in the second estimation process 20, application functions as higher-level circuit functions are estimated as the second function estimation based on the results of arithmetic operation function estimation. Note that the functions estimated in the first estimation process 10 and the functions estimated in the second estimation process 20 are not limited to this example.
図2は、本開示の実施の形態1に係る機能推定方法による2通りの処理の流れによる全体フローを示した図である。なお、図1および図2において、R-GCN1という表記は、第1推定工程10で用いられる第1のR-GCNを意味しており、R-GCN2という表記は、第2推定工程20で用いられる第2のR-GCNを意味している。 Figure 2 is a diagram showing the overall flow of two different processing flows using the function estimation method according to embodiment 1 of the present disclosure. Note that in Figures 1 and 2, the notation R-GCN1 refers to the first R-GCN used in the first estimation process 10, and the notation R-GCN2 refers to the second R-GCN used in the second estimation process 20.
図1および図2に示した本実施の形態1に係る機能推定方法によれば、R-GCNを複数個直列に接続することで,従来技術では不可能であった、より複雑で大規模なLSIのネットリストの機能推定を実施することができる。 According to the function estimation method of the first embodiment shown in Figures 1 and 2, by connecting multiple R-GCNs in series, it is possible to perform function estimation for more complex and large-scale LSI netlists, which was not possible with conventional technology.
なお、図2においては、R-GCN1とR-GCN2とを直列に接続するにあたり、インスタンス有りの場合とインスタンス無しの場合の2通りの処理の流れが示されている。ここで、インスタンス有りとは、既に機能がモジュール単位で区切られている状態を意味している。つまり、クラスタリング処理としては、あくまでゲートレベルのネットリストに記載されているインスタンス名に従って境界を判別しているにすぎない。 Note that Figure 2 shows two processing flows for connecting R-GCN1 and R-GCN2 in series: with and without instances. Here, "with instances" means that functions have already been separated into modules. In other words, the clustering process simply determines boundaries according to the instance names written in the gate-level netlist.
一方、インスタンス無しとは、機能がモジュール単位で区切られていない状態を意味している。従って、ネットリストを見ただけでは機能の境界を判別することはできない。 On the other hand, no instances means that functions are not separated into modules. Therefore, it is not possible to determine the boundaries of functions just by looking at the netlist.
本実施の形態1に係る機能推定方法においては、前段のR-GCN1の推定結果を後段のR-GCN2に入力する際に,機能の境界を自動的に判別(クラスタリング)することを特徴としている。そこで、まず始めに、R-GCNを2個直列に接続した場合のメリットを説明し、その後、インスタンス有りの場合のクラスタリング処理を含む一連処理、およびインスタンス無しの場合のクラスタリング処理を含む一連処理について説明する。 The function estimation method according to the first embodiment is characterized by automatically determining the boundaries of functions (clustering) when the estimation results of the preceding R-GCN1 are input to the succeeding R-GCN2. Therefore, we will first explain the advantages of connecting two R-GCNs in series, and then explain a series of processes including clustering when instances are present, and a series of processes including clustering when instances are not present.
<R-GCNを2個直列に接続した場合のメリットについて>
図3は、本開示の実施の形態1においてR-GCNを2個直列に接続した場合の、R-GCN2に関する入力、処理、出力を示した説明図である。図3(A)では、第1段階のR-GCN1による算術演算機能の推定結果に対してクラスタリングを施すことで、R-GCN2への入力グラフに変換処理された状態が示されている。この変換処理の詳細については、後述する。
<Advantages of connecting two R-GCNs in series>
3A and 3B are explanatory diagrams showing the input, processing, and output of the R-GCN2 when two R-GCNs are connected in series in the first embodiment of the present disclosure. Fig. 3A shows the state after conversion processing into an input graph to the R-GCN2 by applying clustering to the results of the estimation of the arithmetic operation function by the R-GCN1 in the first stage. Details of this conversion processing will be described later.
図3(A)では、第1段階のR-GCN1により3つの算術演算機能としてADD、MUL、FFが推定され、その推定結果をクラスタリングして得られた入力グラフが示されている。具体的には、クラスタリングの結果として、13個のノードおよび接続関係に集約された状態が示されている。 Figure 3(A) shows the input graph obtained by clustering the three arithmetic operation functions ADD, MUL, and FF estimated by the first-stage R-GCN1. Specifically, the clustering results are summarized into 13 nodes and their connections.
図3(B)では、第2段階のR-GCN2に対して図3(A)に示した入力グラフが入力され、算術演算機能の推定結果に基づいて上位階層の回路機能としてのアプリケーション機能が推定され、出力としてResult2が得られた状態を示している。具体的には、13個のノードについて、3つのアプリケーション機能として、FIR、IIR、FFTが推定された状態を示している。 Figure 3(B) shows the state in which the input graph shown in Figure 3(A) is input to the second-stage R-GCN2, application functions are estimated as circuit functions in the upper layer based on the results of the arithmetic operation function estimation, and Result2 is obtained as the output. Specifically, it shows the state in which FIR, IIR, and FFT are estimated as three application functions for 13 nodes.
図3(C)では、図3(B)に示したResult2における13個のノードに対して多数決を取ることで、最終的に、上位階層の回路機能としてFIRが推定結果として得られた状態を示している。 Figure 3(C) shows the state in which a majority vote is taken for the 13 nodes in Result 2 shown in Figure 3(B), resulting in FIR being the estimated circuit function for the upper layer.
図3に示したように、2つのR-GCNを直列接続することで、階層的な機能推定が行えるメリットがある。さらに、推定精度の観点においても、R-GCNを直列につなげることによるメリットがあり、図4を用いて説明する。 As shown in Figure 3, connecting two R-GCNs in series has the advantage of enabling hierarchical function estimation. Furthermore, connecting R-GCNs in series also has the advantage of improving estimation accuracy, as will be explained using Figure 4.
図4は、本開示の実施の形態1においてR-GCNを2個直列に接続した場合の、推定精度に関するメリットを示した説明図である。図4(A)では、第1段階のRーGCN1による推定結果であるResult1が示されている。また、図4(B)では、図4(A)に示したResult1をクラスタリングした結果が示されている。 Figure 4 is an explanatory diagram showing the advantages in terms of estimation accuracy when two R-GCNs are connected in series in embodiment 1 of the present disclosure. Figure 4(A) shows Result 1, which is the estimation result by R-GCN1 in the first stage. Figure 4(B) also shows the results of clustering Result 1 shown in Figure 4(A).
図4(B)においては、13個のノードのうち、ノードn1が本来はMULであるがADDとしてクラスタリングされ、ノードn2が本来はADDであるがMULとしてクラスタリングされ、クラスタリングされて得られた入力グラフにおいて、2ヶ所で誤判定が生じている場合を例示している。 Figure 4(B) shows an example where, of the 13 nodes, node n1 is originally MUL but is clustered as ADD, and node n2 is originally ADD but is clustered as MUL, resulting in two incorrectly determined input graphs.
図4(C)では、図4(B)に示したクラスタリング後のResult1における13個のノードによる入力グラフを入力として、第2段階のR-GCN2による推定結果として得られたResult2を示している。具体的には、入力グラフに含まれている誤判定された結果ごとに第2段階のR-GCN2による学習を行うことで、Result2が推定結果として得られた状態を示している。 Figure 4(C) shows Result2, which is the estimation result obtained by the second-stage R-GCN2 using the input graph of 13 nodes in Result1 after clustering shown in Figure 4(B) as input. Specifically, it shows the state in which Result2 is obtained as the estimation result by performing learning by the second-stage R-GCN2 for each misclassified result included in the input graph.
図4に示したとおり、前段の推定結果(Result1)では、MULおよびADDといった算術演算機能の推定に一部の誤判定が発生していた。しかしながら、その誤判定された結果を後段のR-GCN2において学習させることで、最終的なアプリケーション機能の推定精度が向上することが期待できる。 As shown in Figure 4, the estimation result (Result 1) in the first stage contained some misjudgments in the estimation of arithmetic operation functions such as MUL and ADD. However, by learning these misjudgments in the R-GCN2 in the second stage, it is expected that the accuracy of the final estimation of application functions will improve.
換言すると、各階層の出力と上位階層のラベルとを紐付けることで、前段の第1段階での機能推定手法のクセを考慮して、後段の第2段階において学習させることが可能となる。この結果、R-GCNを多段に直列接続することで、前段での推定結果が間違っていた場合にも、間違ったまま後段の学習データに使うことで、End-to-Endで精度を向上させることが可能となる。 In other words, by linking the output of each layer with the label in the higher layer, it is possible to take into account the quirks of the function estimation method used in the first stage and train it in the second stage. As a result, by connecting R-GCNs in multiple stages in series, even if the estimation result in the previous stage is incorrect, the incorrect result can be used as training data in the subsequent stage, making it possible to improve accuracy end-to-end.
<インスタンス有りの場合の第二推定工程による一連処理について>
次に、インスタンス有りの場合において、R-GCN1を用いた第1推定工程10の推定結果に基づいて、R-GCN2を用いることで第2の機能推定を行う第2推定工程20について詳細に説明する。
<Regarding the series of processes in the second estimation step when there are instances>
Next, a detailed description will be given of the second estimation step 20, which performs a second function estimation using the R-GCN 2 based on the estimation result of the first estimation step 10 using the R-GCN 1 when an instance is present.
図5は、本開示の実施の形態1において、インスタンス有りの場合にR-GCN2で用いる行列の基となる入力グラフを生成する手法を示した説明図である。図5(A)では、ゲートレベルのネットリストにおいて、各算術演算回路の範囲がインスタンス名として記載されている状態が示されている。 Figure 5 is an explanatory diagram showing a method for generating an input graph that serves as the basis for the matrix used in R-GCN2 when instances are present, in embodiment 1 of the present disclosure. Figure 5(A) shows a gate-level netlist in which the range of each arithmetic operation circuit is written as an instance name.
図5(B)では、ネットリスト内のインスタンス名に基づいて、論理ゲートをノードとして7つのインスタンスに分類された状態が示されている。具体的には、図5(B)では、R-GCN1の推定結果として、FF1、FF2、MUL1、MUL2、MUL3、ADD1、ADD2の7つの回路がインスタンスとして推定され、それぞれのインスタンス内に論理ゲートとして複数のノードが含まれている状態が示されている。 Figure 5(B) shows the state in which logic gates are classified into seven instances as nodes based on the instance names in the netlist. Specifically, Figure 5(B) shows that the seven circuits FF1, FF2, MUL1, MUL2, MUL3, ADD1, and ADD2 are estimated as instances as the estimation results of R-GCN1, and each instance contains multiple nodes as logic gates.
図5(C)では、図5(B)に示したR-GCN1による推定結果に対してクラスタリングを実施することで、算術演算回路をノードとする入力グラフが得られた状態が示されている。具体的には、図5(C)では、2つのFF、3つのMUL、2つのADDからなる7つのノードにクラスタリングされた入力グラフが示されている。 Figure 5(C) shows the state in which an input graph with arithmetic operation circuits as nodes is obtained by performing clustering on the estimation results by R-GCN1 shown in Figure 5(B). Specifically, Figure 5(C) shows an input graph clustered into seven nodes consisting of two FFs, three MULs, and two ADDs.
なお、図5(B)における各インスタンス内に含まれているそれぞれのノードは、1つの種類に統一されているとは限らない。そこで、各インスタンス内に分類されているノードに関して多数決を取り、各インスタンス内の全てのノードに対して同一の分類を割り当てることで、図5(C)に示した入力グラフを得ることができる。 Note that the nodes contained within each instance in Figure 5(B) are not necessarily unified into a single type. Therefore, by taking a majority vote regarding the nodes classified within each instance and assigning the same classification to all nodes within each instance, the input graph shown in Figure 5(C) can be obtained.
そこで、多数決を取るイメージについて、図6を用いて説明する。図6は、本開示の実施の形態1において、R-GCN1によってノード分類された推定結果に対して、各インスタンス内で多数決を取るイメージを示した説明図である。 The concept of taking a majority vote will now be explained using Figure 6. Figure 6 is an explanatory diagram showing the concept of taking a majority vote within each instance for the estimation results obtained by node classification using R-GCN1 in embodiment 1 of the present disclosure.
図6(A)では、ネットリストに記載されたインスタンス名から、ADD1、ADD2、MUL1、SUB1、FF1の5つの回路にノード分類され、MUL1に分類された3つのノードであるノード3~ノード5に関して、ノード3、ノード4がMULとして推定され、ノード5がADDとして推定された状態を示している。 Figure 6(A) shows that the nodes are classified into five circuits, ADD1, ADD2, MUL1, SUB1, and FF1, based on the instance names listed in the netlist. Of the three nodes classified as MUL1, nodes 3 to 5, nodes 3 and 4 are estimated as MUL, and node 5 is estimated as ADD.
図6(B)では、インスタンスMUL1に分類された3つのノードについて多数決を取ることで、ノード5がADDからMULに変わった状態が示されている。このような多数決処理を行うことで、R-GCN1によってノード分類された推定結果におけるそれぞれのインスタンス内のノードは、同機能を有する1つの算術演算として統一されることとなる。 Figure 6(B) shows that node 5 has changed from ADD to MUL by taking a majority vote among the three nodes classified as instance MUL1. By performing this majority vote process, the nodes within each instance in the estimation results classified by R-GCN1 are unified as a single arithmetic operation with the same function.
次に、R-GCN2で用いられる3種の行列として、新隣接行列A’、新特徴行列X’、新正解行列Y’を生成する手法を説明する。ここでは、先の図6(B)に示した多数決処理後のグラフに基づいて3種の行列を生成する場合を具体例として説明する。 Next, we will explain how to generate the three matrices used in R-GCN2: the new adjacency matrix A', the new feature matrix X', and the new correct answer matrix Y'. Here, we will explain as a specific example the case where the three matrices are generated based on the graph after the majority voting process shown in Figure 6(B) above.
図7は、本開示の実施の形態1において、新隣接行列A’を算出する前段としてインスタンス行列Sを生成する手法を示した説明図である。ここで、インスタンス行列Sとは、各ノードの属するインスタンスを記述する行列に相当する。図7(A)では、先の図6(B)に示した多数決処理後のグラフが示されている。具体的には、5個のインスタンスであるADD1、ADD2、MUL1、SUB1、FF1について、合計9個のノードが分類されたグラフが示されている。 Figure 7 is an explanatory diagram showing a method for generating an instance matrix S as a precursor to calculating a new adjacency matrix A' in embodiment 1 of the present disclosure. Here, the instance matrix S corresponds to a matrix that describes the instance to which each node belongs. Figure 7(A) shows the graph after the majority voting process shown in Figure 6(B) above. Specifically, the graph shows a total of nine nodes classified for five instances: ADD1, ADD2, MUL1, SUB1, and FF1.
図7(B)では、列を5個のインスタンス、行を9個のノードとするインスタンス行列Sが示されている。例えば、ADD1には、ノード1、2が含まれているため、インスタンス行列Sの1列目では、1行目と2行目が1として設定され、その他の行は0として設定されている。 Figure 7(B) shows an instance matrix S with five instances in the columns and nine nodes in the rows. For example, ADD1 contains nodes 1 and 2, so in the first column of instance matrix S, the first and second rows are set to 1, and the other rows are set to 0.
次に、新隣接行列A’を生成する手法について説明する。図8は、本開示の実施の形態1において、インスタンス行列Sを用いて新隣接行列A’を生成する手法を示した説明図である。図8(A)では、第1段階のR-GCN1で用いられた出力側の隣接行列Aoutと、先の図7(B)に示したインスタンス行列Sを用いて、
ST×Aout×S
の演算結果として得られた行列に基づいて、新隣接行列Aout’、新隣接行列Ain’、新隣接行列Aown’を得る手法が示されている。ここで、新隣接行列Ain’は新たな第1の隣接行列に相当し、新隣接行列Aown’は新たな第2の隣接行列に相当し、新隣接行列Aout’は新たな第3の隣接行列に相当する。
Next, a method for generating a new adjacency matrix A' will be described. FIG. 8 is an explanatory diagram showing a method for generating a new adjacency matrix A' using the instance matrix S in the first embodiment of the present disclosure. In FIG. 8(A), the output side adjacency matrix Aout used in the R-GCN1 in the first stage and the instance matrix S shown in FIG. 7(B) are used to generate a new adjacency matrix A'.
S T × A out × S
The method for obtaining new adjacency matrices Aout', Ain', and Aown' based on the matrices obtained as a result of the calculation of (a) above is shown. Here, the new adjacency matrix Ain' corresponds to a new first adjacency matrix, the new adjacency matrix Aown' corresponds to a new second adjacency matrix, and the new adjacency matrix Aout' corresponds to a new third adjacency matrix.
具体的には、図8(A)では、ST×Aout×Sの演算結果として得られた行列に対して、対角成分を0とし、対角成分以外の成分で0以外の成分を1とする書き換えを行うことで、新隣接行列Aout’が生成される。また、新隣接行列Aout’を転置することで、新隣接行列Ain’が生成される。さらに、対角成分のみを1とした単位行列とすることで、新隣接行列Aown’が生成される。 8A, the matrix obtained as a result of the operation S T ×Aout ×S is rewritten so that the diagonal elements are set to 0 and all non-diagonal elements other than 0 are set to 1, thereby generating a new adjacent matrix Aout'. Furthermore, the new adjacent matrix Ain' is generated by transposing the new adjacent matrix Aout'. Furthermore, the new adjacent matrix Aown' is generated by setting only the diagonal elements to 1, thereby generating a unit matrix.
図8(B)では、先の図6(B)および先の図7(A)に示した多数決処理後のグラフが示されている。また、図8(C)では、図8(A)に示した新隣接行列Aout’、新隣接行列Ain’、および新隣接行列Aown’に対応するグラフとして、図8(B)のグラフからクラスタリング後のグラフが得られた状態を示している。このように、図7および図8に示した処理を行うことで、新隣接行列Aout’、新隣接行列Ain’、および新隣接行列Aown’の3つの行列からなる新隣接行列A’が生成される。 Figure 8(B) shows the graph after the majority voting process shown in Figure 6(B) and Figure 7(A). Also, Figure 8(C) shows the state in which a graph obtained after clustering from the graph in Figure 8(B) corresponds to the new adjacency matrix Aout', new adjacency matrix Ain', and new adjacency matrix Aown' shown in Figure 8(A). In this way, by performing the processes shown in Figures 7 and 8, a new adjacency matrix A' consisting of the three matrices, new adjacency matrix Aout', new adjacency matrix Ain', and new adjacency matrix Aown', is generated.
次に、新特徴行列X’を生成する手法について説明する。図9は、本開示の実施の形態1において、クラスタリング後のグラフから新特徴行列X’を生成する手法を示した説明図である。図9(A)では、先の図8(C)に示したクラスタリング後のグラフが示されている。 Next, a method for generating a new feature matrix X' will be described. Figure 9 is an explanatory diagram showing a method for generating a new feature matrix X' from a graph after clustering in embodiment 1 of the present disclosure. Figure 9 (A) shows the graph after clustering shown in Figure 8 (C) above.
図9(B)では、図9(A)に示したクラスタリング後のグラフから、新特徴行列X’が生成された状態を示している。具体的には、列を5つの算術演算ADD、SUB、MUL、MUX、FFとし、行をクラスタリング後のグラフにおける5つのノードであるノード1’~ノード5’として、図9(A)に示したクラスタリング後のグラフに対応する要素に対して1を設定することで、新特徴行列X’が生成される。 Figure 9(B) shows the state in which new feature matrix X' has been generated from the clustered graph shown in Figure 9(A). Specifically, the columns are the five arithmetic operations ADD, SUB, MUL, MUX, and FF, and the rows are the five nodes in the clustered graph, Node 1' to Node 5', and new feature matrix X' is generated by setting 1 to the elements corresponding to the clustered graph shown in Figure 9(A).
次に、正解行列Y’を生成する手法について説明する。図10は、本開示の実施の形態1において、クラスタリング後のグラフに示された回路のアプリケーションから新正解行列Y’を生成する手法を示した説明図である。図10(A)では、先の図8(C)に示したクラスタリング後のグラフが示されている。 Next, we will explain the method for generating the correct matrix Y'. Figure 10 is an explanatory diagram showing the method for generating a new correct matrix Y' from the application of the circuit shown in the graph after clustering in embodiment 1 of the present disclosure. Figure 10 (A) shows the graph after clustering shown in Figure 8 (C) above.
図10(B)では、図9(A)に示したクラスタリング後のグラフに示された回路のアプリケーションから、FIRとして新正解行列Y’が生成された状態を示している。なお、新正解行列Y’の具体的な生成方法に関しては、特許文献2に開示されており、詳細な説明を省略する。 Figure 10(B) shows the state in which a new correct matrix Y' has been generated as an FIR from the application of the circuit shown in the graph after clustering in Figure 9(A). The specific method for generating the new correct matrix Y' is disclosed in Patent Document 2, and a detailed description will be omitted here.
以上のように、コンピュータは、図5~図10を用いて説明した一連処理を実行することで、インスタンス有りの場合の第二推定工程を実行することができる。具体的には、第1推定工程10による推定結果に基づいて、新たな特徴行列X’および新たな3種の隣接行列Aout’、Ain’、Aown’を第2のR-GCNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、第2の機能推定を実行することができる。 As described above, the computer can execute the second estimation step in the case where instances are present by executing the series of processes described using Figures 5 to 10. Specifically, based on the estimation results from the first estimation step 10, a new feature matrix X' and three new adjacency matrices Aout', Ain', and Aown' are input to the second R-GCN, and a graph convolution operation is performed using the connection relationships between nodes and edges after clustering, thereby enabling second function estimation.
<インスタンス無しの場合の第二推定工程による一連処理について>
次に、インスタンス無しの場合において、R-GCN1を用いた第1推定工程10の推定結果に基づいて、R-GCN2を用いることで第2の機能推定を行う第2推定工程20について詳細に説明する。
<Regarding the series of processes in the second estimation step when there are no instances>
Next, a detailed description will be given of the second estimation step 20, which performs a second function estimation using the R-GCN 2 based on the estimation result of the first estimation step 10 using the R-GCN 1 in the case where there is no instance.
インスタンス無しの場合には、R-GCN1によって得られたノード分類結果である出力グラフに基づいてクラスタリング処理を行うことで、R-GCN2の入力となる入力グラフを生成し、入力グラフに基づいて、R-GCN2で用いられる3種の行列である新隣接行列A’、新特徴行列X’、新正解行列Y’を生成することとなる。換言すると、クラスタリング後の各ノードにおける種別を表現する行列として、新隣接行列A’、新特徴行列X’、新正解行列Y’が生成されることとなる。 When there are no instances, clustering processing is performed based on the output graph, which is the node classification result obtained by R-GCN1, to generate an input graph that serves as input for R-GCN2. Based on the input graph, three matrices used by R-GCN2 are generated: new adjacency matrix A', new feature matrix X', and new correct answer matrix Y'. In other words, new adjacency matrix A', new feature matrix X', and new correct answer matrix Y' are generated as matrices that represent the types of each node after clustering.
図11は、本開示の実施の形態1において、インスタンス無しの場合にR-GCN2に対する入力グラフを生成する手法を示した説明図である。なお、図11では、説明を簡略化するために、ノード間を無向グラフとして示しているが、有向グラフの場合にも、以下に説明する平滑化処理およびマージ処理を適用することができる。 Figure 11 is an explanatory diagram showing a method for generating an input graph for R-GCN2 when there are no instances in embodiment 1 of the present disclosure. Note that in Figure 11, for simplicity of explanation, the nodes are shown as an undirected graph, but the smoothing and merging processes described below can also be applied to directed graphs.
インスタンス無しの場合にR-GCN2に対する入力グラフを生成するためには、R-GCN1によって得られたノード分類結果である出力グラフに対して、前処理としての平滑化処理を実施し、さらに、平滑化処理後のグラフに対してクラスタリング処理を行うこととなる。 To generate an input graph for R-GCN2 when there are no instances, a smoothing process is performed as preprocessing on the output graph, which is the node classification result obtained by R-GCN1, and then a clustering process is performed on the graph after the smoothing process.
図11(A)では、R-GCN1によって得られたノード分類結果である出力グラフの一例が示されており、12個のノードが4種の算術演算のいずれかに分類されている状態が示されている。さらに、図11(A)では、いずれの隣接ノードとも算術演算が異なり、周囲とは孤立した算術演算として分類された3つのノードn1~n3が、□印を用いることで孤立ノードとして識別表示されている。 Figure 11(A) shows an example of an output graph that is the node classification result obtained by R-GCN1, showing that 12 nodes are classified into one of four types of arithmetic operations. Furthermore, in Figure 11(A), three nodes n1 to n3, which have a different arithmetic operation from any of their neighboring nodes and are classified as isolated arithmetic operations, are identified as isolated nodes by using squares.
図11(B)では、図11(A)に示したグラフに含まれている3つの孤立ノードに対して、平滑化処理を実施した後のグラフが示されている。平滑化処理は、隣接ノードの機能比較に基づいて孤立したノードを削除する処理に相当し、以下の2つのルール1、2に従って実行される。
ルール1:自身に隣接するノードについて分類結果に関する多数決を取ることで、孤立ノードの分類を最も多かった分類に書き換えることで平滑化を行う。
ルール2:ルールによって、多数決により同機能を有する1つの分類に特定できない場合には、孤立ノードの分類をそのままの分類とする。
Fig. 11B shows the graph after smoothing processing has been performed on the three isolated nodes included in the graph shown in Fig. 11A. The smoothing processing corresponds to a process of removing isolated nodes based on a comparison of the functions of adjacent nodes, and is performed according to the following two rules 1 and 2.
Rule 1: By taking a majority vote on the classification results of the nodes adjacent to itself, the classification of the isolated node is rewritten to the most popular classification, thereby performing smoothing.
Rule 2: If the rule does not allow a single classification having the same function to be identified by majority vote, the classification of the isolated node will remain as it is.
図11(B)においては、ノードn1に関してはルール1が成立するため、ノード分類を書き換える平滑化処理が実行され、ノードn2、n3に関しては、ルール2が成立するため、ノード分類がそのまま維持されている。 In Figure 11 (B), rule 1 holds for node n1, so a smoothing process is performed to rewrite the node classification, but rule 2 holds for nodes n2 and n3, so the node classification remains unchanged.
図11(C)では、図11(B)に示した平滑化処理を実行後のグラフに対して、同機能を有するノードに関してマージ処理を実施した後のグラフが示されている。マージ処理は、以下のルール3に従って実行される。
ルール3:隣接するノードにおいて、同一の機能に分類されているノード同士をマージする。
11C shows the graph after the smoothing process shown in FIG. 11B has been performed and the merge process has been performed on the nodes having the same function. The merge process is performed in accordance with Rule 3 below.
Rule 3: Adjacent nodes that are classified into the same function are merged.
図11(C)においては、図11(B)における平滑化処理後の12個のノードに対して、ルール3に従ったマージ処理が実行されることで、6個のノードからなるグラフに集約されている。 In Figure 11(C), the 12 nodes after the smoothing process in Figure 11(B) are merged according to Rule 3, resulting in a graph consisting of 6 nodes.
マージ処理について、図12を用いて補足説明する。図12は、本開示の実施の形態1におけるマージ処理に関する説明図である。マージ処理は、以下の手順1~4に従って実行される。 The merge process will be further explained using Figure 12. Figure 12 is an explanatory diagram of the merge process in embodiment 1 of the present disclosure. The merge process is performed according to steps 1 to 4 below.
手順1:隣接するノードに関して、同一分類を有するノードペアを1つ求める。
手順2:手順1で求めた同一分類を有する1つのノードペアに関して同等のノードを1つ加えるとともに、同一分類を有する1つのノードペアにおける隣接ノードとの接続関係を追記する。
手順3:手順1で求めた同一分類を有する1つのノードペアを削除する。
手順4:隣接するノードに関して、同一分類を有するノードペアがなくなるまで、手順1~3を繰り返す。
Step 1: Find one pair of adjacent nodes that have the same classification.
Step 2: Add one equivalent node to one node pair having the same classification found in step 1, and add a connection relationship with an adjacent node in one node pair having the same classification.
Step 3: Delete one node pair having the same classification obtained in step 1.
Step 4: Repeat steps 1 to 3 for adjacent nodes until there are no more node pairs with the same classification.
図12(A)では、R-GCN1によって得られたノード分類結果である出力グラフの一例として、先の図11(A)に示したものと同じグラフが示されており、12個のノードを識別するための番号として1~12の数字が付記されている。さらに、図12(A)では、手順1が実施されることで、ノード1とノード2が同一分類を有するノードペアとして求まった場合が示されている。 Figure 12(A) shows an example of an output graph, which is the node classification result obtained by R-GCN1, similar to the graph shown in Figure 11(A) above, with the numbers 1 through 12 added to identify the 12 nodes. Furthermore, Figure 12(A) shows the case where, by performing procedure 1, node 1 and node 2 are determined to be a node pair with the same classification.
図12(B)では、手順2が実行されることで、ノードペアと同等のノード1’を追記した状態が示されている。 Figure 12(B) shows the state in which step 2 has been executed, resulting in the addition of node 1', which is equivalent to the node pair.
図12(C)では、手順3が実行されることで、ノード1とノード2による同一分類を有するノードペアが削除され、ノード1’に置き換わった状態が示されている。 Figure 12(C) shows the state in which step 3 is performed, resulting in the deletion of the node pair with the same classification, node 1 and node 2, and their replacement with node 1'.
図12(D)では、手順4に従って手順1~3によるマージ処理を繰り返すことで、最終的に6個のノードに集約された状態が示されており、先の図11(C)に示したグラフと同一内容となっている。 Figure 12(D) shows the final state, where the merge process of steps 1 to 3 is repeated according to step 4, resulting in six nodes, which is the same as the graph shown in Figure 11(C).
手順1~4を繰り返した結果、図12(D)に示すように、ノード1~4がノード4’としてマージされ、ノード5、6がノード6’としてマージされ、ノード7、8がノード7’としてマージされ、ノード9、10がノード9’としてマージされる一方で、ノード11、12は、隣接するノードとの間で同一分類を有するノードペアとならなかったため、そのまま残っている。 As a result of repeating steps 1 to 4, as shown in Figure 12(D), nodes 1 to 4 are merged as node 4', nodes 5 and 6 are merged as node 6', nodes 7 and 8 are merged as node 7', and nodes 9 and 10 are merged as node 9'. However, nodes 11 and 12 remain as they are because they do not form a node pair with the same classification as their adjacent nodes.
以上のように、実施の形態1によれば、1段目である第1推定工程において第1のR-GCNを用いることで第1の機能推定を行い、後段の第2推定工程において第1推定工程の推定結果に基づいて第2のR-GCNを用いることで第2の機能推定を行う構成を備えている。このような構成を備えることで、より上位階層の回路機能の推定を行うことができ、階層的な機能推定を実現できる。 As described above, according to the first embodiment, a first function estimation is performed using a first R-GCN in the first estimation step, which is the first stage, and a second function estimation is performed using a second R-GCN in the second estimation step, which is the subsequent stage, based on the estimation results of the first estimation step. This configuration makes it possible to estimate circuit functions at higher levels, thereby achieving hierarchical function estimation.
さらに、各階層の出力と上位階層のラベルとを紐付けることで、前段の第1段階での機能推定手法のクセを考慮して、後段の第2段階において学習させることが可能となる。換言すると、R-GCNを多段に直列接続する構成を採用することで、前段での推定結果が間違っていた場合にも、間違ったまま後段の学習データに使うことで、End-to-Endで精度向上を図ることが可能となる。 Furthermore, by linking the output of each layer with the label in the higher layer, it is possible to take into account the quirks of the function estimation method used in the first stage and train it in the second stage. In other words, by adopting a configuration in which R-GCNs are connected in series in multiple stages, even if the estimation result in the first stage is incorrect, the incorrect result can be used as training data in the subsequent stage, thereby improving accuracy in an end-to-end manner.
すなわち、R-GCNを複数個直列に接続することで,従来技術では不可能であった、より複雑で大規模なLSIのネットリストの機能推定を実施することが可能となる。 In other words, by connecting multiple R-GCNs in series, it becomes possible to perform functional estimation of more complex and large-scale LSI netlists, which was not possible with conventional technology.
さらに、本開示に係る機能推定方法によれば、ネットリストからクラスターの境界が既知であるインスタンス有りの場合、およびネットリストからクラスターの境界が未知であるインスタンス無しの場合のいずれにおいても、第1推定工程による推定結果に対してクラスタリング処理を実行することができる。特に、インスタンス無しの場合においても、前段の出力グラフに基づいて機能の境界を自動的に判別してクラスタリングを行うことが可能である。 Furthermore, according to the function estimation method disclosed herein, clustering processing can be performed on the estimation results from the first estimation step, both when there are instances whose cluster boundaries are known from the netlist, and when there are no instances whose cluster boundaries are unknown from the netlist. In particular, even when there are no instances, it is possible to automatically determine the boundaries of functions based on the output graph from the previous stage and perform clustering.
従って、実施の形態1によれば、従来技術と比較して、LSIのネットリストに対する機能推定の汎化性向上を図ることができる機能推定方法および機能推定プログラムを実現することができる。 Therefore, according to the first embodiment, it is possible to realize a function estimation method and a function estimation program that can improve the generalizability of function estimation for LSI netlists compared to conventional techniques.
なお、上述した実施の形態1では、R-GCNを2つ直列接続した2階層の接続構成について説明したが、本開示に係る機能推定方法および機能推定プログラムは、2階層の接続構成に限定されるものではない。図13は、本開示の実施の形態1における接続構成の第1の具体例を示した図である。 Note that, in the above-described first embodiment, a two-tier connection configuration in which two R-GCNs are connected in series was described, but the function estimation method and function estimation program according to the present disclosure are not limited to a two-tier connection configuration. Figure 13 is a diagram showing a first specific example of a connection configuration according to the first embodiment of the present disclosure.
図13では、2階層を3以上のn階層に拡張した場合の直列接続構成例を示している。図13に示した具体例では、階層1~階層nが順次積層されたn階層の構成を有している。そして、iを2以上の整数とした場合に、(i-1)階層目のR-GCNの出力から、i階層目のR-GCNの入力データセットを作成することで、2階層の接続構成で得られる上述した効果と同等の効果を実現できる。 Figure 13 shows an example of a serial connection configuration when two layers are expanded to n layers (three or more layers). The specific example shown in Figure 13 has an n-layer configuration in which layers 1 to n are stacked in order. When i is an integer greater than or equal to two, creating an input data set for the i-th layer R-GCN from the output of the (i-1)-th layer R-GCN can achieve the same effect as that obtained with a two-layer connection configuration.
図14は、本開示の実施の形態1における接続構成の第2の具体例を示した図である。図14に示すように、階層化された直列接続構成を、複数、並列接続した直並列構成を採用した場合にも、2階層の接続構成で得られる上述した効果と同等の効果を実現できる。 Figure 14 is a diagram showing a second specific example of a connection configuration according to the first embodiment of the present disclosure. As shown in Figure 14, even when a series-parallel configuration is adopted in which multiple hierarchical series connection configurations are connected in parallel, it is possible to achieve the same effect as that obtained with the two-tier connection configuration.
また、上述した実施の形態1では、第1推定工程と第2推定工程とを備えた機能推定方法について詳細に説明したが、コンピュータを、ネットリストに基づいて第1のR-GCNを用いることで第1の機能推定を行う第1推定手段と、第1推定手段の推定結果に基づいて第2のR-GCNを用いることで第2の機能推定を行う第2推定手段として機能させる機能推定プログラムを実現することも可能である。 In addition, in the above-mentioned first embodiment, a function estimation method including a first estimation step and a second estimation step was described in detail, but it is also possible to realize a function estimation program that causes a computer to function as a first estimation means that performs a first function estimation by using a first R-GCN based on a netlist, and a second estimation means that performs a second function estimation by using a second R-GCN based on the estimation result of the first estimation means.
また、上述した実施の形態1では、グラフ構造を畳み込んだネットワークであるGCNとしてR-GCNを用いる場合を具体例として説明した。しかしながら、本開示は、グラフを扱う深層学習全般に適用可能であり、GCNを含む上位概念であるGNNにおいて、ノードレベルでの分類を行うことに特徴を有するものである。 Furthermore, in the above-described first embodiment, a specific example was described in which an R-GCN is used as a GCN, which is a network with a folded graph structure. However, the present disclosure is applicable to deep learning in general that deals with graphs, and is characterized by performing classification at the node level in a GNN, which is a higher-level concept that includes a GCN.
10 第1推定工程、20 第2推定工程、S インスタンス行列、Ain’ 新隣接行列(新たな第1の隣接行列)、Aown’ 新隣接行列(新たな第2の隣接行列)、Aout’ 新隣接行列(新たな第3の隣接行列)。 10 First estimation step, 20 Second estimation step, S Instance matrix, Ain' New adjacency matrix (new first adjacency matrix), Aown' New adjacency matrix (new second adjacency matrix), Aout' New adjacency matrix (new third adjacency matrix).
Claims (9)
前記ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、
前記第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程と
を備え、
前記第2推定工程は、
前記第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を前記第2のGNNに対する入力データとして生成し、前記第2の機能推定を行い、
前記第1推定工程は、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、
前記グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、前記ネットリスト内の各ノードにおける接続関係を表現する隣接行列と、を生成する第2ステップと、
前記特徴行列および前記隣接行列を前記第1のGNNに入力し、前記ノードおよび前記エッジの接続関係を用いた演算を実行することで、前記第1の機能推定を実行し、前記グラフ化したネットリスト内の各ノードについて前記第1の機能推定の結果によるノード分類を反映した出力グラフを前記推定結果として生成する第3ステップと
を有し、
前記第2推定工程は、
前記推定結果である前記出力グラフの各ノードについてクラスタリングを行い、前記第2のGNNに入力するための前記入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係を表現する新たな隣接行列とを生成する第4ステップと、
前記新たな特徴行列および前記新たな隣接行列を前記第2のGNNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いた演算を実行することで、前記第2の機能推定を実行する第5ステップと
を有する機能推定方法。 A function estimation method executed by a computer for estimating a function based on a netlist used in an LSI logic design using a GNN, which is a network having a graph structure, comprising:
a first estimation step of performing a first function estimation by using a first GNN based on the netlist;
a second estimation step of performing a second function estimation by using a second GNN based on the estimation result of the first estimation step,
The second estimation step
Clustering is performed on each node of the output graph that is the estimation result of the first estimation step, a matrix representing the type of each node after clustering is generated as input data for the second GNN, and the second function estimation is performed;
The first estimation step includes:
a first step of generating a graphed netlist by converting the netlist into a graph representation consisting of nodes and edges;
a second step of generating a feature matrix representing the type of each node in the graphed netlist and an adjacency matrix representing the connection relationship of each node in the netlist;
a third step of inputting the feature matrix and the adjacency matrix into the first GNN, and executing a calculation using the connection relationships between the nodes and the edges to execute the first function estimation, and generating, as the estimation result, an output graph that reflects node classification according to the result of the first function estimation for each node in the graphed netlist;
and
The second estimation step
A fourth step of performing clustering on each node of the output graph, which is the estimation result, and generating, as the input data to be input to the second GNN, a new feature matrix representing the type of each node after clustering and a new adjacency matrix representing the connection relationship of each node after clustering;
a fifth step of inputting the new feature matrix and the new adjacency matrix into the second GNN and performing an operation using the connection relationships of the nodes and edges after clustering, thereby performing the second function estimation;
A function estimation method having the following.
前記第4ステップにおいて、
前記出力グラフのノード分類結果に対して前記ネットリストに基づくクラスターごとに各ノードの推定結果の多数決を取ることで各クラスター内の全てのノードに対して同一の分類を割り当てることで前記クラスタリングを行い、前記新たな隣接行列を生成し、前記行列内の各ノードにおける種別を表現する新たな特徴行列を生成する
請求項1に記載の機能推定方法。 When the boundaries of the clusters are known from the netlist, the computer:
In the fourth step,
2. The function estimation method according to claim 1, wherein the clustering is performed by assigning the same classification to all nodes in each cluster by taking a majority vote of the estimation results of each node for each cluster based on the netlist for the node classification results of the output graph, thereby generating the new adjacency matrix, and generating a new feature matrix expressing the type of each node in the matrix.
前記第4ステップにおいて、
前記出力グラフの各ノードについて、隣接ノードの機能比較に基づいて孤立したノードを削除する平滑化処理を実行し、
前記平滑化処理を実行後の出力グラフの各ノードについて隣接する同機能のノードについてマージ処理を実行することにより前記クラスタリングを行い、
前記クラスタリング後の各ノードにおける種別を表現する前記新たな特徴行列と、前記クラスタリング後の各ノードにおける接続関係を表現する前記新たな隣接行列とを生成する
請求項1に記載の機能推定方法。 If the boundaries of the clusters are unknown from the netlist, the computer:
In the fourth step,
For each node in the output graph, perform a smoothing process that removes isolated nodes based on a functional comparison of adjacent nodes;
The clustering is performed by performing a merge process on adjacent nodes with the same function for each node of the output graph after the smoothing process is performed;
The function estimation method according to claim 1 , further comprising generating the new feature matrix representing the type of each node after the clustering, and the new adjacency matrix representing the connection relationship of each node after the clustering.
前記ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、
前記第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程と
を備え、
前記第2推定工程は、
前記第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を前記第2のGNNに対する入力データとして生成し、前記第2の機能推定を行い、
前記GNNとしてグラフ構造を畳み込んだネットワークであるR-GCNを用いた場合には、
前記ネットリストに基づいて前記第1のGNNとして第1のR-GCNを用いることで前記第1の機能推定を行う前記第1推定工程は、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、
前記グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、前記ネットリスト内の各ノードにおける接続関係および入出力関係を表現する3種の隣接行列と、を生成する第2ステップと、
前記特徴行列および前記3種の隣接行列を前記第1のR-GCNに入力し、前記ノードおよび前記エッジの接続関係を用いたグラフ畳み込み演算を実行することで、前記第1の機能推定を実行し、前記グラフ化したネットリスト内の各ノードについて前記第1の機能推定の結果によるノード分類を反映した出力グラフを前記推定結果として生成する第3ステップと
を有し、
前記第1推定工程の推定結果に基づいて前記第2のGNNとして第2のR-GCNを用いることで前記第2の機能推定を行う前記第2推定工程は、
前記推定結果である前記出力グラフの各ノードについてクラスタリングを行い、前記第2のR-GCNに入力するための前記入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係および入出力関係を表現する新たな3種の隣接行列とを生成する第4ステップと、
前記新たな特徴行列および前記新たな3種の隣接行列を前記第2のR-GCNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いたグラフ畳み込み演算を実行することで、前記第2の機能推定を実行する第5ステップと
を有し、
前記第2ステップで生成される前記3種の隣接行列は、前記グラフ化したネットリスト内の各ノードにおけるノード間の入力に関する接続関係を示す第1の隣接行列と、前記グラフ化したネットリスト内の各ノードを要素とする単位行列を示す第2の隣接行列と、前記グラフ化したネットリスト内の各ノードにおけるノード間の出力に関する接続関係を示す第3の隣接行列とで構成され、
前記第5ステップで生成される前記新たな3種の隣接行列は、前記クラスタリング後の各ノードにおけるノード間の入力に関する接続関係を示す新たな第1の隣接行列と、前記クラスタリング後の各ノードを要素とする単位行列を示す新たな第2の隣接行列と、前記クラスタリング後の各ノードにおけるノード間の出力に関する接続関係を示す新たな第3の隣接行列とで構成される
機能推定方法。 A function estimation method executed by a computer for estimating a function based on a netlist used in an LSI logic design using a GNN, which is a network having a graph structure, comprising:
a first estimation step of performing a first function estimation by using a first GNN based on the netlist;
a second estimation step of performing a second function estimation by using a second GNN based on the estimation result of the first estimation step,
The second estimation step
Clustering is performed on each node of the output graph that is the estimation result of the first estimation step, a matrix representing the type of each node after clustering is generated as input data for the second GNN, and the second function estimation is performed;
When an R-GCN, which is a network with a folded graph structure, is used as the GNN,
The first estimation step of performing the first function estimation by using a first R-GCN as the first GNN based on the netlist includes:
a first step of generating a graphed netlist by converting the netlist into a graph representation consisting of nodes and edges;
a second step of generating a feature matrix representing the type of each node in the graphed netlist, and three types of adjacency matrices representing the connection relationships and input/output relationships of each node in the netlist;
a third step of inputting the feature matrix and the three types of adjacency matrices into the first R-GCN, and executing a graph convolution operation using the connection relationships between the nodes and the edges to execute the first function estimation, and generating an output graph as the estimation result, which reflects node classification according to the result of the first function estimation for each node in the graphed netlist;
and
The second estimation step of performing the second function estimation by using a second R-GCN as the second GNN based on the estimation result of the first estimation step includes:
a fourth step of clustering each node of the output graph, which is the estimation result, and generating, as the input data to be input to the second R-GCN, a new feature matrix representing the type of each node after clustering and three new adjacency matrices representing the connection relationship and input/output relationship of each node after clustering;
a fifth step of inputting the new feature matrix and the new three types of adjacency matrices into the second R-GCN and performing a graph convolution operation using the connection relationships of the nodes and edges after clustering, thereby performing the second function estimation;
and
the three types of adjacency matrices generated in the second step are composed of a first adjacency matrix indicating a connection relationship between nodes in the graphed netlist with respect to inputs, a second adjacency matrix indicating an identity matrix with each node in the graphed netlist as an element, and a third adjacency matrix indicating a connection relationship between nodes in the graphed netlist with respect to outputs,
The three new adjacency matrices generated in the fifth step are composed of a new first adjacency matrix indicating the connection relationships between nodes regarding inputs at each node after the clustering, a new second adjacency matrix indicating an identity matrix with each node after the clustering as an element, and a new third adjacency matrix indicating the connection relationships between nodes regarding outputs at each node after the clustering.
Functional estimation methods.
前記第4ステップにおいて、
前記出力グラフのノード分類結果に対して前記ネットリストに基づくクラスターごとに各ノードの推定結果の多数決を取ることで各クラスター内の全てのノードに対して同一の分類を割り当て、
各ノードの属するインスタンスを記述するインスタンス行列Sを生成し、前記第2ステップで生成された前記第3の隣接行列Aoutを用いて、下式
ST×Aout×S
による行列を生成することで前記クラスタリングを行い、
前記行列に関して、対角成分を0とし、対角成分以外の成分で0以外の成分を1に書き換えることで前記新たな第3の隣接行列を生成し、前記新たな第3の隣接行列を転置することで前記新たな第1の隣接行列を生成し、対角成分をすべて1とし対角成分以外をすべて0とすることで前記新たな第2の隣接行列を生成し、前記行列内の各ノードにおける種別を表現する新たな特徴行列を生成する
請求項4に記載の機能推定方法。 When the boundaries of the clusters are known from the netlist, the computer:
In the fourth step,
assigning the same classification to all nodes in each cluster by taking a majority vote of the estimation results of each node for each cluster based on the netlist for the node classification results of the output graph;
An instance matrix S describing the instances to which each node belongs is generated, and the third adjacency matrix Aout generated in the second step is used to calculate the following equation: S T ×Aout×S
The clustering is performed by generating a matrix according to
5. The function estimation method according to claim 4, further comprising: generating the new third adjacency matrix by setting diagonal elements to 0 and rewriting non-diagonal elements other than 0 to 1; generating the new first adjacency matrix by transposing the new third adjacency matrix; generating the new second adjacency matrix by setting all diagonal elements to 1 and all non-diagonal elements to 0 ; and generating a new feature matrix representing the type of each node in the matrix.
前記第4ステップにおいて、
前記出力グラフの各ノードについて、隣接ノードの機能比較に基づいて孤立したノードを削除する平滑化処理を実行し、
前記平滑化処理を実行後の出力グラフの各ノードについて隣接する同機能のノードについてマージ処理を実行することにより前記クラスタリングを行い、
前記クラスタリング後の各ノードにおける種別を表現する前記新たな特徴行列と、前記クラスタリング後の各ノードにおける接続関係および入出力関係を表現する前記新たな3種の隣接行列とを生成する
請求項4に記載の機能推定方法。 If the boundaries of the clusters are unknown from the netlist, the computer:
In the fourth step,
For each node in the output graph, perform a smoothing process that removes isolated nodes based on a functional comparison of adjacent nodes;
The clustering is performed by performing a merge process on adjacent nodes with the same function for each node of the output graph after the smoothing process is performed;
The function estimation method according to claim 4 , further comprising generating the new feature matrix representing the type of each node after the clustering, and the new three types of adjacency matrices representing the connection relationships and input/output relationships of each node after the clustering.
前記第1推定工程において、前記ネットリストに含まれる算術演算機能を前記第1の機能推定として推定し、
前記第2推定工程において、前記算術演算機能の推定結果に基づいて上位階層の回路機能を前記第2の機能推定として推定する
請求項1から6のいずれか1項に記載の機能推定方法。 The computer
In the first estimation step, an arithmetic operation function included in the netlist is estimated as the first function estimation;
The function estimation method according to claim 1 , wherein in the second estimation step, a circuit function of an upper layer is estimated as the second estimated function based on a result of estimation of the arithmetic operation function.
前記ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定工程と、
前記第1推定工程の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定工程と
を備え、
前記第2推定工程は、
前記第1推定工程の推定結果である出力グラフの各ノードについてクラスタリングを行い、クラスタリング後の各ノードにおける種別を表現する行列を前記第2のGNNに対する入力データとして生成し、前記第2の機能推定を行い、
前記コンピュータは、
前記第1推定工程において、前記ネットリストに含まれる算術演算機能を前記第1の機能推定として推定し、
前記第2推定工程において、前記算術演算機能の推定結果に基づいて上位階層の回路機能を前記第2の機能推定として推定する
機能推定方法。 A function estimation method executed by a computer for estimating a function based on a netlist used in an LSI logic design using a GNN, which is a network having a graph structure, comprising:
a first estimation step of performing a first function estimation by using a first GNN based on the netlist;
a second estimation step of performing a second function estimation by using a second GNN based on the estimation result of the first estimation step,
The second estimation step
Clustering is performed on each node of the output graph that is the estimation result of the first estimation step, a matrix representing the type of each node after clustering is generated as input data for the second GNN, and the second function estimation is performed;
The computer
In the first estimation step, an arithmetic operation function included in the netlist is estimated as the first function estimation;
In the second estimation step, a circuit function of an upper layer is estimated as the second function estimation based on the estimation result of the arithmetic operation function.
Functional estimation methods.
前記コンピュータを
前記ネットリストに基づいて第1のGNNを用いることで第1の機能推定を行う第1推定手段と、
前記第1推定手段の推定結果に基づいて第2のGNNを用いることで第2の機能推定を行う第2推定手段と
して機能させ、
前記第1推定手段は、
前記ネットリストをノードおよびエッジから構成されるグラフ表現に変換することでグラフ化したネットリストを生成する第1ステップと、
前記グラフ化したネットリスト内の各ノードにおける種別を表現する特徴行列と、前記ネットリスト内の各ノードにおける接続関係を表現する隣接行列と、を生成する第2ステップと、
前記特徴行列および前記隣接行列を前記第1のGNNに入力し、前記ノードおよび前記エッジの接続関係を用いた演算を実行することで、前記第1の機能推定を実行し、前記グラフ化したネットリスト内の各ノードについて前記第1の機能推定の結果によるノード分類を反映した出力グラフを前記推定結果として生成する第3ステップと
を有し、
前記第2推定手段は、
前記推定結果である前記出力グラフの各ノードについてクラスタリングを行い、前記第2のGNNに入力するための入力データとして、クラスタリング後の各ノードにおける種別を表現する新たな特徴行列と、クラスタリング後の各ノードにおける接続関係を表現する新たな隣接行列とを生成する第4ステップと、
前記新たな特徴行列および前記新たな隣接行列を前記第2のGNNに入力し、クラスタリング後のノードおよびエッジの接続関係を用いた演算を実行することで、前記第2の機能推定を実行する第5ステップと
を有する機能推定プログラム。 A function estimation program executed by a computer to estimate a function based on a netlist used in the logic design of an LSI using a GNN, which is a network having a graph structure, comprising:
a first estimation means for performing a first function estimation by using a first GNN based on the netlist;
a second estimation means for performing a second function estimation by using a second GNN based on the estimation result of the first estimation means;
The first estimation means
a first step of generating a graphed netlist by converting the netlist into a graph representation consisting of nodes and edges;
a second step of generating a feature matrix representing the type of each node in the graphed netlist and an adjacency matrix representing the connection relationship of each node in the netlist;
a third step of inputting the feature matrix and the adjacency matrix into the first GNN, and executing a calculation using the connection relationships between the nodes and the edges to execute the first function estimation, and generating, as the estimation result, an output graph that reflects node classification according to the result of the first function estimation for each node in the graphed netlist;
The second estimation means
A fourth step of clustering each node of the output graph, which is the estimation result, and generating a new feature matrix representing the type of each node after clustering and a new adjacency matrix representing the connection relationship of each node after clustering as input data to be input to the second GNN;
a fifth step of inputting the new feature matrix and the new adjacency matrix into the second GNN and performing an operation using the connection relationships of the nodes and edges after clustering, thereby performing the second function estimation.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022058108A JP7756590B2 (en) | 2022-03-31 | 2022-03-31 | Function estimation method and function estimation program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2022058108A JP7756590B2 (en) | 2022-03-31 | 2022-03-31 | Function estimation method and function estimation program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2023149501A JP2023149501A (en) | 2023-10-13 |
| JP7756590B2 true JP7756590B2 (en) | 2025-10-20 |
Family
ID=88288930
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022058108A Active JP7756590B2 (en) | 2022-03-31 | 2022-03-31 | Function estimation method and function estimation program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7756590B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119990033B (en) * | 2025-01-19 | 2025-09-12 | 广东工业大学 | Integrated circuit software and hardware collaborative design optimization method based on graph neural network analysis |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000200298A (en) | 1998-06-09 | 2000-07-18 | Matsushita Electric Ind Co Ltd | Graph representation conversion method and apparatus, and automatic arrangement method and apparatus |
| US20150268300A1 (en) | 2013-03-14 | 2015-09-24 | Bae Systems Information And Electronic Systems Integration Inc. | System and automated method for mixed-signal circuit functional analysis |
| JP2021089722A (en) | 2019-11-26 | 2021-06-10 | 三菱電機エンジニアリング株式会社 | Function estimation method, function estimation device, and function estimation program |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04199369A (en) * | 1990-11-29 | 1992-07-20 | Toshiba Corp | Circuit optimization system |
| JP2977422B2 (en) * | 1992-10-05 | 1999-11-15 | 松下電器産業株式会社 | Product specification estimation method, logic circuit classification / evaluation device, product specification database creation device, product specification estimation device, and automatic logic circuit hierarchy generation device |
-
2022
- 2022-03-31 JP JP2022058108A patent/JP7756590B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000200298A (en) | 1998-06-09 | 2000-07-18 | Matsushita Electric Ind Co Ltd | Graph representation conversion method and apparatus, and automatic arrangement method and apparatus |
| US20150268300A1 (en) | 2013-03-14 | 2015-09-24 | Bae Systems Information And Electronic Systems Integration Inc. | System and automated method for mixed-signal circuit functional analysis |
| JP2021089722A (en) | 2019-11-26 | 2021-06-10 | 三菱電機エンジニアリング株式会社 | Function estimation method, function estimation device, and function estimation program |
Non-Patent Citations (1)
| Title |
|---|
| 藤城裕一郎 外5名,R-GCNを用いたゲートレベルネットリスト機能分類手法,電子情報通信学会技術研究報告,2019年11月06日,Vol. 119, No. 283,pp. 7-12 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2023149501A (en) | 2023-10-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115204076B (en) | Logic optimization method and device of integrated circuit, electronic equipment and readable medium | |
| Ren et al. | Why are graph neural networks effective for eda problems? | |
| CN116050311B (en) | A method and system for verifying the equivalence of combined computing circuits based on complete simulation | |
| JP2009238209A (en) | Circuit verification apparatus, circuit verification program and method of circuit verification | |
| JP2003502736A (en) | Circuit simulation using dynamic partitioning and on-demand evaluation | |
| CN110941931A (en) | Method and system for judging correlation between integrated circuit performance and complex network characteristics thereof | |
| CN114239083A (en) | Efficient state register identification method based on graph neural network | |
| US20030105785A1 (en) | Method and apparatus for verification of digital arithmetic circuits by means of an equivalence comparison | |
| JP7756590B2 (en) | Function estimation method and function estimation program | |
| Bairamkulov et al. | Graphs in vlsi circuits and systems | |
| CN116883746B (en) | A graph node classification method based on partitioned pooling hypergraph neural network | |
| CN115293078B (en) | Method and device for rewriting nodes of integrated circuit, electronic equipment and medium | |
| CN115563912B (en) | Signal driving and load verification method and system | |
| CN101317179A (en) | Timing Constraints Incorporated into SOC Hierarchical Design | |
| CN116976248A (en) | Circuit design adjustment using redundant nodes | |
| CN120197566B (en) | A logic synthesis method based on Alliance tool chain with multiple logic domains | |
| Gaurav et al. | RTL to GDSII implementation of RADIX-4 booth multiplier | |
| Khvatov et al. | Development of an IP-cores Libraries as Part of the Design Flow of Integrated Circuits on FPGA | |
| Shrestha et al. | Graph representation learning for parasitic impedance prediction of the interconnect | |
| CN109583006B (en) | A Dynamic Optimization Method for Field Programmable Gate Array Convolutional Layers Based on Loop Cutting and Reordering | |
| US7117465B2 (en) | Application of the retimed normal form to the formal equivalence verification of abstract RTL descriptions for pipelined designs | |
| CN118734750A (en) | A method for evaluating the size of modular combinational logic | |
| US7472371B2 (en) | Description style conversion method, program, and system of logic circuit | |
| CN115204077B (en) | Node optimization method and device for integrated circuit, electronic equipment and readable medium | |
| CN120822470B (en) | Combinational logic circuit optimization method, apparatus, device, medium and program product |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240917 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250411 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250507 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250605 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20250909 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20251007 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7756590 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |