(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-08-18
(54)【発明の名称】平坦化されたネットリストからの挙動設計回復
(51)【国際特許分類】
G06F 30/323 20200101AFI20220810BHJP
【FI】
G06F30/323
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021573186
(86)(22)【出願日】2020-06-10
(85)【翻訳文提出日】2022-01-28
(86)【国際出願番号】 US2020036903
(87)【国際公開番号】W WO2020251966
(87)【国際公開日】2020-12-17
(32)【優先日】2019-06-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】591072086
【氏名又は名称】バテル メモリアル インスティチュート
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(72)【発明者】
【氏名】キムラ, アダム ジー.
(72)【発明者】
【氏名】エリオット, アンドリュー エス.
(72)【発明者】
【氏名】パーキンス, ダニエル エー.
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146DL02
5B146DL08
5B146GA01
(57)【要約】
レジスタ転送レベル(RTL)表現が、集積回路(IC)を表すネットリストから回復される。ネットリストは、ノードタイプのセットに属するノードと、ノードを接続するエッジとを含むグラフに転換される。ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプとを含む。グラフは、グラフのサブグラフを標準化されたサブグラフと置換することによって、標準化されたグラフに転換される。標準化されたグラフのRTL表現が、標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと、標準化されるグラフのインスタンスノードからHDLにおいて信号割当を構築することとを含む動作によって、発生される。
【特許請求の範囲】
【請求項1】
レジスタ転送レベル(RTL)表現回復方法を実施するための、電子プロセッサによって読取可能かつ実行可能である命令を記憶する非一過性記憶媒体であって、前記命令は、
集積回路(IC)設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続するエッジとを含むグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令であって、前記ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプとを含む、命令と、
前記グラフのサブグラフを標準化されたサブグラフと置換することによって前記グラフを標準化されたグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと、前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、前記標準化されたグラフのRTL表現を発生させるための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、非一過性記憶媒体。
【請求項2】
前記ワイヤノードタイプは、単一の入力信号と、1つ以上の出力信号とを有し、各出力信号の値は、前記単一の入力信号の値に等しい、請求項1に記載の非一過性記憶媒体。
【請求項3】
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有する、請求項2に記載の非一過性記憶媒体。
【請求項4】
前記ノードタイプのセットは、前記ネットリストの入力端末を表す入力ノードタイプと、前記ネットリストの出力端末を表す出力ノードタイプと、定数信号源を表す定数ノードタイプとをさらに含む、請求項3に記載の非一過性記憶媒体。
【請求項5】
前記グラフのサブグラフを標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である、前記命令は、
IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、請求項1~4のいずれか1項に記載の非一過性記憶媒体。
【請求項6】
前記LUTノードを含む前記サブグラフは、前記LUTノードに関する真理値表を発生させ、前記真理値表をブール式に転換し、前記ブール式を表すためのLUTノードを含まない前記標準化されたサブグラフを発生させることによって、置換される、請求項5に記載の非一過性記憶媒体。
【請求項7】
前記IC設計を表す前記ネットリストを前記グラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、前記ネットリストを解析して抽象構文木(AST)を生成するための、前記電子プロセッサによって読取可能かつ実行可能である命令を含む、請求項1~6のいずれか1項に記載の非一過性記憶媒体。
【請求項8】
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと
をさらに含む動作によって、発生される、請求項1~7のいずれか1項に記載の非一過性記憶媒体。
【請求項9】
集積回路(IC)設計を表すネットリストからレジスタ転送レベル(RTL)表現を回復させるためのデバイスであって、前記デバイスは、
電子プロセッサと、
RTL表現回復方法を実施するための、前記電子プロセッサによって読取可能かつ実行可能である命令を記憶する非一過性記憶媒体であって、前記命令は、
IC設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続するエッジとを含むグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令であって、前記ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、単一の入力信号を有するワイヤノードタイプと、各出力信号の値が前記単一の入力信号の値に等しい1つ以上の出力信号とを含む、命令と、
前記グラフのサブグラフを標準化されたサブグラフと置換することによって、前記グラフを標準化されたグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
前記標準化されたグラフのRTL表現を発生させるための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、非一過性記憶媒体と
を備える、デバイス。
【請求項10】
前記標準化されたグラフの前記RTL表現は、前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと、前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、発生される、請求項9に記載のデバイス。
【請求項11】
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと
をさらに含む動作によって、発生される、請求項10に記載のデバイス。
【請求項12】
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有し、前記ノードタイプのセットは、前記ネットリストの入力端末を表す入力ノードタイプと、前記ネットリストの出力端末を表す出力ノードタイプと、定数信号源を表す定数ノードタイプとをさらに含む、請求項9~11のいずれか1項に記載のデバイス。
【請求項13】
前記グラフのサブグラフを標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、
IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、請求項9~12のいずれか1項に記載のデバイス。
【請求項14】
前記LUTノードを含む前記サブグラフは、前記LUTノードに関する真理値表を発生させ、前記真理値表をブール式に転換し、前記ブール式を表すためのLUTノードを含まない前記標準化されたサブグラフを発生させることによって、置換される、請求項13に記載のデバイス。
【請求項15】
前記IC設計を表す前記ネットリストを前記グラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、前記ネットリストを解析して抽象構文木(AST)を生成するための、前記電子プロセッサによって読取可能かつ実行可能である命令を含む、請求項9~14のいずれか1項に記載のデバイス。
【請求項16】
レジスタ転送レベル(RTL)表現回復方法であって、
集積回路(IC)設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続するエッジとを含むグラフに転換することであって、前記ノードタイプは、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプとを含む、ことと、
前記グラフのサブグラフを標準化されたサブグラフと置換することによって、前記グラフを標準化されたグラフに転換することと、
前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、前記標準化されたグラフのRTL表現を発生させることと
を含む、RTL表現回復方法。
【請求項17】
前記ワイヤノードタイプは、単一の入力信号と、1つ以上の出力信号とを有し、前記各出力信号の値は、前記単一の入力信号の値に等しく、
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有する、請求項16に記載のRTL表現回復方法。
【請求項18】
前記標準化されたサブグラフとの前記グラフのサブグラフの置換は、
IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換することと、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換することと
を含む、請求項16~17のいずれか1項に記載のRTL表現回復方法。
【請求項19】
前記グラフへの前記IC設計を表す前記ネットリストの転換は、前記ネットリストを解析して抽象構文木(AST)を生成することを含む、請求項16~18のいずれか1項に記載のRTL表現回復方法。
【請求項20】
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと、
をさらに含む動作によって、発生される、請求項16~19のいずれか1項に記載のRTL表現回復方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2019年6月10日に出願され、「BEHAVIORAL DESIGN RECOVERY FROM FLATTENED NETLIST」と題された米国仮出願第62/859,466号の利益を主張する。2019年6月10日に出願された米国仮出願第62/859,466号は、参照によりその全体が本明細書に援用される。
【0002】
以下は、集積回路(IC)技術分野、IC置換技術分野、ICハードウェア信頼/保証技術分野、IC検証技術分野、IC分解模倣技術分野、特定用途向け集積回路(ASIC)および/またはフィールドプログラマブルゲートアレイ(FPGA)デバイスへの前述のものの適用、ならびに同等物に関する。
【背景技術】
【0003】
典型的なIC設計ワークフローでは、システムレベルにおいて規定された設計が、(IEEE 1364として規格化される)Verilog、(IEEE 1800として規格化される)SystemVerilog、VHDL、または別のハードウェア記述言語(HDL)において表されるレジスタ転送レベル(RTL)表現に転換される。RTL表現は、IC論理の階層的な関数表現または挙動表現である。RTL表現は、次いで、ICおよび接続ノード内の電子コンポーネントのリストであるネットリストとして表されるゲートレベル表現に転換される。ネットリストを発生させることにおいて、RTLの階層的構造は、再帰的に平坦化され、階層的な挙動RTL表現のコンテンツを完全に捕捉する平坦なネットリストをもたらす。ネットリスト内に述べられているような電子コンポーネントおよびそれらの相互接続の物理的レイアウトが、次いで、ICの加工を可能にするように設計される。この転換は、ICのタイプに依存し、ASICの場合には、電子コンポーネントは、直接加工される一方で、FPGAでは、電子コンポーネントは、構成可能な論理ブロックのアレイを構成することと、論理ブロック間の相互接続をプログラムすることとを用いて、実装される。FPGAの論理ブロックは、典型的には、ルックアップテーブル(LUT)、フリップフロップ(FF)、マルチプレクサ、および他の電子コンポーネントを含む。IC加工タスクは、RTLまたはネットリストのいずれかを供給することによって、外部委託されることができる。ネットリストを提供することは、通常、ネットリスト表現のみが与えられた状態ではICの機能挙動を分解模倣することが困難または不可能であるため、より安全であると見なされる。
【0004】
しかしながら、ICの機能挙動表現を回復させる(すなわち、RTL表現を回復させる)ことを所望するための正当な理由が、存在し得る。1つの状況では、システムのコンポーネントとしての役割と果たすICは、陳腐化したまたは他の態様で利用不可能な状態になり、再度加工される必要がある。別の状況では、エンティティが、ハードウェア保証を必要とする、すなわち、ICコンポーネントが悪意ある挙動を伴うことなく意図されるように実施するという信頼を開発する必要があり得る。この状況において、RTL回復は、高度な検証および実証技法が、臨界システムの中への挿入に先立って、ハードウェア内において高信頼度を確立するために適用されることを可能にする。
【0005】
ある改良点が、本明細書に開示される。
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書に開示されるいくつかの例証的実施形態によると、非一過性記憶媒体は、レジスタ転送レベル(RTL)表現回復方法を実施するための、電子プロセッサによって読取可能かつ実行可能である命令を記憶する。命令は、集積回路(IC)設計を表すネットリストを、ノードタイプのセットに属するノードとノードを接続するエッジとを含むグラフに転換するための、電子プロセッサによって読取可能かつ実行可能である命令であって、ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプとを含む、命令と、グラフのサブグラフを標準化されたサブグラフと置換することによって、グラフを標準化されたグラフに転換するための、電子プロセッサによって読取可能かつ実行可能である命令と、標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと、標準化されたグラフのインスタンスノードからHDLにおいて信号割当を構築することとを含む動作によって、標準化されたグラフのRTL表現を発生させるための、電子プロセッサによって読取可能かつ実行可能である命令とを含む。
【0007】
本明細書に開示されるいくつかの例証的実施形態によると、IC設計を表すネットリストからRTL表現を回復させるためのデバイスが、開示される。これは、電子プロセッサと、RTL表現回復方法を実施するための、電子プロセッサによって読取可能かつ実行可能である命令を記憶する非一過性記憶媒体とを備える。命令は、IC設計を表すネットリストを、ノードタイプのセットに属するノードとノードを接続するエッジとを含むグラフに転換するための、電子プロセッサによって読取可能かつ実行可能である命令であって、ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、単一の入力信号を有するワイヤノードタイプと、各出力信号の値が単一の入力信号の値に等しい1つ以上の出力信号とを含む、命令と、グラフのサブグラフを標準化されたサブグラフと置換することによって、グラフを標準化されたグラフに転換するための、電子プロセッサによって読取可能かつ実行可能である命令と、標準化されたグラフのRTL表現を発生させるための、電子プロセッサによって読取可能かつ実行可能である命令とを含む。
【図面の簡単な説明】
【0008】
図面に示されるいかなる定量的寸法も、非限定的な例証的実施例として理解されるべきである。他の態様で示されない限り、図面は、縮尺通りではなく、図面の任意の側面が縮尺通りであるものとして示される場合、図示される縮尺は、非限定的な例証的実施例として理解されるべきである。
【0009】
【
図1】
図1および2は、ネットリスト表現からICのRTL表現を回復させるための装置およびプロセスを図式的に図示する。
【
図2】
図1および2は、ネットリスト表現からICのRTL表現を回復させるための装置およびプロセスを図式的に図示する。
【0010】
【
図3】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図4】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図5】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図6】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図7】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図8】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図9】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図10】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図11】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図12】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【
図13】
図3~13は、本明細書に説明されるように、
図1および2のプロセスの種々の動作の実施形態および実施例を図式的に図示する。
【発明を実施するための形態】
【0011】
図1および2を参照すると、電子プロセッサ10は、非一過性記憶媒体12上に記憶される命令によってプログラムされ、レジスタ転送レベル(RTL)表現回復方法を実施する。換言すると、非一過性記憶媒体12は、RTL表現回復方法を実施するための、電子プロセッサ10によって読取可能かつ実行可能である命令を記憶する。例証的な電子プロセッサ10は、デスクトップまたはノート型パソコンを含む。より一般的には、電子プロセッサ10は、デスクトップコンピュータ、サーバコンピュータ、サーバコンピュータのクラスタ、コンピュータのアドホックネットワークを備えるクラウドコンピューティングリソース、または同等物であってもよい。非一過性記憶媒体は、(随意に、コンピュータ10に内蔵される)ハードディスクドライブまたは他の磁気記憶媒体、ソリッドステートドライブ(SSD)、フラッシュメモリ、または他の電子記憶媒体、光ディスク/ドライブまたは他の光学記憶媒体、それらの種々の組み合わせ、あるいは同等物であってもよい。ディスプレイ14が、電子プロセッサ10と動作可能に接続され、RTL表現回復方法によって発生される結果を表示する。これらの結果は、例えば、ハードウェア記述言語におけるRTL表現(またはそれらの選択される部分)のリスト化、および/または、選定された試験入力に関してRTL表現によって発生される出力を含む試験結果を含んでもよい。1つ以上のユーザ入力デバイス(例えば、例証的キーボード16、マウス18、ディスプレイ14のタッチセンサ式オーバーレイ、それらの種々の組み合わせ、および/または同等物)が、提供され、これを介して、ユーザは、例えば、グラフィカルユーザインターフェース(GUI)を動作させることによって、RTL表現回復方法と相互作用し、グラフィカルユーザインターフェースを介して、ネットリスト20が、RTL表現回復方法への入力として提供され(それによって、RTL表現回復方法が、ネットリストのRTL表現を発生させる)、および/または、グラフィカルユーザインターフェースを介して、ユーザが、ディスプレイ14上で閲覧するためのRTL表現の一部を選択する、または同等物を行う。
【0012】
RTL表現回復方法の中への入力としての役割を果たすネットリスト20が、種々の方法において発生され得る。一般に、それからネットリストが発生された元のRTLが、利用不可能である(RTL表現回復方法が適用されている理由である)ことが、仮定される。むしろ、FPGAの場合には、ネットリスト20は、試験入力に応答してFPGAによって発生される出力に基づいて、分解模倣され得る。例えば、Benz et al.の「BIL: A Tool-Chain for Bitstream Reverse-Engineering」, 22nd International Conference on Field Programmable Logic and Applications (FPL) (Aug. 29 31, 2012)、Ding et al.の「Deriving an NCD file from an FPGA bitstream: Methodology, architecture and evaluation」, Microprocessors and Microsystems vol. 37, pp. 299-312 (2013)、Jean-Baptist Note & Eric Rannaudの「From The bitstream to The netlist」, in Proc. of The 16th International ACM/SIGDA Symposium on Field Programmable Gate Arrays, Monterey, California, Feb. 24 26, 2008を参照されたい。ASICの場合には、ネットリスト20は、随意に、試験入力に応答してASICによって発生される出力の分析に加えて、ASICの走査電子顕微鏡(SEM)撮像および/または他の法医学的分析によって発生され得る。ネットリスト20は、典型的には、階層を伴わない平坦なネットリストである。
【0013】
図3を手短に参照すると、2ビットカウンタのための例証的なネットリスト20
1が、対応するRTL表現22に加えて、示される。
図3に見られるように、ネットリストは、電子コンポーネントおよびそれらの接続をリスト化するテキストファイルである。これは、階層を伴わない平坦なリストであり、コンポーネントの機能性についての情報を提供するものではない。これは、最も原始的なかつ基本的な回路ブロック(例えば、NAND、NOR、INV、DFF等のゲート)の接続性のみを含有する。RTL表現はまた、例証的RTL22における、IEEE 1164 VHDL規格を具体的には採用するHDLにおけるテキストファイルでもある。RTL表現は、高レベルの階層的機能説明である。
【0014】
図1に戻って参照すると、RTL表現回復方法は、テキスト解析および削除動作30から開始し、ネットリスト20を前処理する。これは、例えば、ネットリスト20内のコメント、ヘッダ、および他の無関係な情報を除去することを伴ってもよい。前処理は、構文的に有効なVerilog(または他の採用されるHDL)として認識されない任意の部分を解決する。ネットリストのいくつかの手動の前処理も、考えられる。
【0015】
図1を継続して参照し、さらに
図4および5を参照すると、前処理されたネットリストは、次いで、複数に種別化されたグラフに転換される。これを達成するために、動作34において、前処理されたネットリストが、抽象構文木(AST)36に転換される。
図4は、前処理されたネットリスト20
2および対応するAST36
2の例証的実施例を提示する。この例示的実施例では、ASTのルートは、「ネットリスト」ノードであり、「ネットリスト」ノードから「タイムスケール」および「モジュール」ノードが分岐し、コンポーネントおよびそれらの接続が、「モジュール」ノードから分岐するノードによって表される。AST36は、次いで、動作38において、複数に種別化されたグラフ40に転換される。
図5は、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプと、ネットリストの入力端末を表す入力ノードタイプと、ネットリストの出力端末を表す出力ノードタイプと、定数信号源を表す定数ノードタイプ(例えば、V
ccまたは接地、あるいは、代替的には、理論「1」または理論「0」、あるいは2進法の定数値の別の適した表現)とを含むノードタイプのセットを含む、複数に種別化されたグラフ40のための例証的な種別化オントロジを示す。
【0016】
インスタンスノードタイプは、1つ以上の入力信号に関する動作を実施して出力信号を駆動するコンポーネントを表す。典型的には、インスタンスノードは、1つ以上の入力信号と、単一の出力信号とを有する(但し、インスタンスノードタイプのノードからの2つ以上の出力もまた、考えられる)。例えば、ANDゲートが、2つの(または2つより多い)入力信号と、その値が2つの(または2つより多い)入力信号の論理ANDである単一の出力信号とを伴うインスタンスノードによって表されてもよい。別の実施例として、バッファを表すインスタンスノードは、単一の入力信号と、その値が入力信号のものに等しい単一の出力信号とを有する。LUTを表すインスタンスノードは、1つ以上の入力信号と、入力信号のためのLUTの出力に対応する出力信号とを有する。フリップフロップ(FF)を表すインスタンスノードは、1つ以上の入力と、その値が入力およびFFの内部状態に依存する出力とを有する。
【0017】
ワイヤノードタイプは、単一の入力信号と、1つ以上の出力信号とを有し、各出力信号の値は、単一の入力信号の値に等しい。ワイヤノードは、したがって、信号がワイヤノードタイプの単一のノードを用いて複数の他のコンポーネントの中にフィードされる可能性を効率的に捕捉する。このように、ワイヤノードは、後に、RTLにおいて信号宣言に直接転換され、インスタンスノードへのワイヤノード接続から取得される信号割当が、続くことができる。
【0018】
図1を継続して参照し、さらに、
図6および7参照すると、動作38において、グラフ40が、木表現を通過し、AST36が横断されるにつれて、種々のノードタイプのノード名のリストを発生させることによって、AST36から発生される。標準的な専門用語によって指定されるコンポーネントおよび信号に関して、グラフ40のノードを接続するエッジの指向性が、割り当てられる。しかしながら、いくつかのノードまたは信号が、指向性がAST36のみから判定されることができないように、製造特有の専門用語を採用してもよく、これらの曖昧性は、次の段階において解決される。AST36は、ネットリストのコンポーネントのリスト、および容易に横断可能である方法におけるそれらの間の接続を提供するデータ構造である。グラフ40は、AST36内にリスト化される各コンポーネントを、グラフ内のノードとしてインスタンス化し、ASTからの接続情報に基づいて、これらのノード間の接続を生成することによって、生成される。非限定的な例証的実施例として、
図6は、単純な2つの入力論理ゲート(例えば、2入力ANDゲート、2入力ORゲート、または同等物)に関するグラフを図示する。一般に、インスタンスノードと、端末ノードと、定数ノードとから成る群からのノードの各対が、介在ワイヤノードを用いて相互接続される。これは、再び、RTL回復プロセスにおいて後に、RTL信号宣言へのワイヤノードの転換を促進する。
図7は、RISCプロセッサ(5段階パイプライン)からの32ビットの単精度浮動小数点ユニット(FPU)に関するグラフの図式表現を示す。
図7のグラフは、ノードタイプを区別することなく、ノードを点として示すが、より複雑なIC設計のためのネットリストのグラフ表現の高度な複雑性を図示し、このように観察されると、平坦化されるネットリスト内に観察されることができる本来の階層が存在することを示す。
【0019】
継続して
図1を参照し、さらに
図8を参照すると、動作38は、好ましくは、未使用または冗長ノード(例えば、未接続のデバイス、バッファ、バッファとして作用するLUT、二重インバータ、二重接続ワイヤ、または同等物)を除去するためのグラフ削除をさらに含む。処理時間およびグラフ可読性は、そのような削除によって改良されることができる。
図8は、削除動作の2つの実施例(すなわち、冗長ワイヤの除去(左図)、および、冗長なバッファの除去(右図))を図示する。
【0020】
結果として生じるグラフ40は、本明細書に説明されるような、RTLにより容易に転換されるフォーマットにおいて、ネットリスト20のコンポーネントおよび接続を有利に捕捉する。標準的な専門用語によって指定されるコンポーネントおよび信号に関して、グラフ40のノードを接続するエッジの指向性が、動作38において割り当てられる。しかしながら、いくつかのノードまたは信号が、製造特有の専門用語を採用し得る(すなわち、ノードおよび信号の専門用語は、IC製造業者に特有であり得る)。そのような場合では、指向性は、動作38において判定されることはできない。同様に、異なる製造業者およびデバイス群は、異なるプリミティブを使用する。異なる製造業者によるプリミティブの機能性は、同じであってもよいが、ポート情報およびプリミティブ名称は、典型的には、変動する。
【0021】
したがって、継続して
図1を参照し、さらに
図9を参照すると、動作42において、ノード標準化が、実施される。これは、IC専門用語データベース44を使用して、グラフ40のノードを、標準化されたノードと置換することを伴う。
図9は、この動作42のある実施例を示す。一般に、ノードは、製造業者特有の命名規則を採用し得、そのために、ポート(故に、グラフエッジ)指向性は、不明であり、インスタンスノードの機能性は、規定されていない。これは、製造業者特有の専門用語を伴うノードの2つの実施例によって、図式的に示される(
図9の上部の2つの図は、それぞれ、ノード名「GFG LUT3-L」および「X_LUT3」を伴い、製造業者特有の信号名は、
図9の上図に示されている通りである)。IC専門用語データベース44は、これらの製造業者特有のノードおよび信号名を標準化された名称に解決するように、この製造業者特有の専門用語を提供する(例えば、
図9の上図のノードは、「LUT_3」と名付けられる標準化されたノードに解決され、標準化された信号名は、
図9の下図に示される通りである)。加えて、ノード「LUT_3」の解決(または、より一般的には、同等の標準化されたノードとの製造特有のノードの置換)は、ノードポートの指向性が解決されることを可能にする。故に、動作42の出力は、完全に指向性のグラフである。
【0022】
継続して
図1を参照し、さらに
図10を参照すると、動作46において、LUTおよびプリミティブが、分解される。一般に、LUT等のより高いレベルのコンポーネントおよびより高いレベルのプリミティブは、構造情報を圧縮し、パターン認識および構造識別をより困難にする。プリミティブの場合には、IC専門用語およびプリミティブデータベース44は、製造業者特有のプリミティブ、および、論理ゲートとFF(および、また可能性としてLUT)とから成るそれらの分解された同等物を識別するために参照されてもよい。LUTを分解するために、
図10に示されるようなプロセスが、好適に採用される。(入力の任意の組み合わせのためのLUT出力を定義する)LUT初期化ベクトルが、入力に対応する列と、LUT出力に対応する最終列とを有する真理値表として表される。真理値表は、共通の出力値を伴う入力の群を識別および融合すること等の標準的な最小限化技法によって最小限化される同等の簡略化されたブール式に拡張される。簡略化されたブール式は、次いで、ブール式の論理ゲートを表すインスタンスノードを伴うサブグラフとして表される。LUTノードを含むサブグラフが、それによって、LUTノードを含まない標準化されたサブグラフと置換される。
図10の例証的LUT分解が、FPGAのためのものであることに留意されたい。ASICの場合には、LUT分解は、典型的には、実施されない一方で、FPGAに関して、LUT分解は、ネットリストから有用なグラフを取得することを促進する。より一般的には、より高次の機能性が、典型的には、FPGAセルのオンボードハードウェア(加算器または乗算器等)が、この機能性を論理セルに合成することの代わりに使用されるとき、(ASICと比較すると)FPGAネットリストからより迅速に回復されることができる。
【0023】
動作46の出力は、標準化されたグラフ50であり、これは、完全に指向性のグラフであり、標準化された専門用語を採用し、LUT、および、論理ゲートインスタンスノードと(通常)FFインスタンスノードとから成るサブグラフに分解されるより高いレベルのプリミティブを有する。標準化されたグラフ50は、入力端末ノードおよび出力端末ノードならびに定数信号源ノード(
図5参照)に加えて、基本論理ノード(例えば、AND、OR、NOT)と、FFノードとから成る。
【0024】
図2を参照すると、標準化されたグラフ50は、ネットリスト20のRTL表現を回復させるために使用される。標準化されたグラフ50の構造は、それ自体が、各ワイヤノードが、VHDL「信号」(あるいは、同等に、VerilogまたはSystemVerilog「信号」)に類似するように、かつ、1つの駆動部と、限定されない出力(すなわち、単一の入力信号および1つ以上の出力信号であり、各出力信号の値は、単一の入力信号の値に等しい)とを有するように、VHDLコードまたは別のHDL(例えば、VerilogまたはSystemVerilog)においてRTL表現を生成することに非常に役立つ。故に、動作60は、標準化されたグラフ50のワイヤノードからVHDL信号宣言を構築する。すなわち、信号は、ワイヤノード毎に宣言される。動作62は、インスタンスノードから信号割当を構築する。信号状態は、他の信号および設計入力に関する論理動作に割り当てられる。
【0025】
しかしながら、いくつかの標準的セルおよびFPGAプリミティブは、単純なゲートレベルの同等物を有していない。いくつかの実施例は、乗法ステージ、RAM、ROM、または同等物を含む。これらのプリミティブの使用は、階層を判定するために有用であるが、シミュレーションのためには有利ではない。加えて、フリップフロップのような単純なコンポーネントの多くのわずかな変形例(例えば、アクティブハイ対アクティブロー、バス幅、セット/リセットポートの包含、非同期/同期性のセット/リセット等)が、存在する。
【0026】
これらの状況に対処するために、動作64は、テンプレートから同期デバイスを定義する。例証的実施形態では、あらゆる場合に関して、コードシミュレーションプリミティブではなく、モジュール式テンプレートシステムが、採用され、これは、VHDL「Generics」のテンプレートVHDLライブラリ66を使用し、所与の標準的セルまたはFPGAプリミティブに関して、適宜、機能性を有効化または無効化する。テンプレートVHDLライブラリ66からの情報が、分類の間にノード内に記憶される。コンポーネントからテンプレートへのマップ68が、そのRTL表現が回復されている具体的なICのために適切なVHDLテンプレート標準的セルまたはFPGAプリミティブへの修正に関する製造業者特有またはデバイス群特有の情報を提供する。動作70が、同期論理をインスタンス化し、接続する。標準化されたグラフ50内の標準的セルまたはFPGAプリミティブに対応する各ノードは、標準化されたグラフ50内のそのノードの周囲の回路網への接続とともに、動作64内で定義される同期デバイスプリミティブのインスタンスによって、VHDLコードにおいて表される。これは、RTL表現の中にある階層を導入する。動作72は、次いで、繰り返される構造のためにRTLに(さらなる)階層を導入する。動作74は、RTLをVHDLファイル76に書き込み、したがって、RTL回復プロセスを完了する。VHDLが、
図2において、例証的なハードウェア記述言語(HDL)として採用されるが、RTLが、それぞれ、コーディング動作60、62において選定されるHDLのための適切な宣言表記と、例証的なテンプレートVHDLライブラリ66およびマッピング68の代わりに選定されるHDLのためのテンプレートライブラリおよびマッピングとを採用することによって、VerilogまたはSystemVerilog等の別のHDLに従って、コーディングされ得ることに留意されたい。
【0027】
継続して
図2を参照し、さらに
図11~13を参照すると、繰り返される構造のためにRTLに(さらなる)階層を導入する動作72は、種々の方法において実装されることができる。標準化されたグラフ50の構造は、それ自体が、コンポーネントの構造的識別に非常に役立つ。識別された繰り返される構造が、HDLにおける、単一のより高いレベルの構造的宣言によって置換されることができ、次いで、構造のインスタンスが、宣言されたより高いレベル構造のインスタンス化によって置換されることができる。
図11は、8ビットカウンタのグラフが中央処理ユニット(CPU)集積回路のグラフのサブグラフとして識別(すなわち、合致)されるこのアプローチのある実施例を図示する。特に、ここでは、8ビットカウンタグラフが、フリップフロップ依存度(8ビットカウンタに関するグラフにおいてより濃い線で示される)の外側ループを含むことに注目されたい。このグラフのトポロジ特徴は、CPUグラフ(
図11の右下図においてより薄い線で描写されるサブグラフ)内の8ビットカウンタサブグラフを識別することにおいて活用されることができる。
【0028】
継続して
図2を参照し、さらに
図12を参照すると、動作72において階層的構造を識別するために標準化されたグラフ50を活用するための別の方法は、シミュレーションを用いたものである。組み合わせ論理処理が、選択されるワイヤノードに信号値を割り当てて結果をシミュレートすることによって、シミュレートされることができる。このように、加算器等のコンポーネントは、フリップフロップ間で組み合わせ論理チャンクをシミュレートすることによって、識別されることができる。より一般的には、グラフマイニングから識別される頻繁なパターンが、シミュレートされ、既知のコンポーネントのリストと比較されることができる。再び、フリップフロップ相互依存性を識別することは、繰り返されるパターンを識別することにおいて有用であることができる。
図12は、パターンマイニングのためのフリップフロップ相互依存性の縮小されたグラフ82を生成するために使用されることができるフリップフロップ依存性を識別するための方法80のフローチャートを図示する。方法80によって生産される縮小されたグラフ82は、頂点として表されるネットリスト内の各フリップフロップを含有する。(存在する場合)各フリップフロップから他のものへの論理経路が、エッジとして表される。フリップフロップ依存性の縮小されたグラフ82は、状態機械等のパターンを識別するために要求される算出を縮小するために有用である。例えば、前述のように、
図11の8ビットカウンタは、カウンタの8つのフリップフロップの循環依存性を検索することによって、識別されることができる。
図12の方法80は、これらのフリップフロップ相互依存性を隔離する縮小されたグラフ82を有利に提供する。より一般的には、状態機械は、組み合わせ論理を通してフリップフロップ入力にフィードバックする出力を伴うフリップフロップのセットを含有する。状態機械入力に加えて、フィードバック経路内の組み合わせ論理は、次の状態式を構成する。縮小されたフリップフロップグラフ82は、グラフ検索技法と併用され、これらの基準を充足するフリップフロップのセットを迅速に識別することができる。
【0029】
継続して
図2および12を参照し、さらに
図13を参照すると、
図12の方法によって出力された縮小されたフリップフロップグラフを使用して、指向性グラフ(すなわち、フリップフロップ依存性の縮小されたグラフの頂点間のエッジが、指向性を有する)において、相互に集合的にフィードバックするフリップフロップのセット全てを識別する強連結コンポーネント検索が、実施されることができる。これらのフリップフロップは、多くの場合、結合し、状態機械の状態変数を記憶するメモリを構成する。
図13は、このアプローチによる、ASICネットリスト20からの状態機械抽出のための方法のフロー図を図示する。(
図13では、フリップフロップが「レジスタ」と称されることに留意されたい。)
図13では、
図13の左の分枝部に示される標準化されたグラフ50を生産するために
図1を参照して説明される処理が、
図13においてブロック90、92によって表される一方で、フリップフロップ(すなわち、レジスタ)依存性の縮小されたグラフを生産するためのプロセス80が、
図13の右の分枝部に示される。動作94は、「強連結コンポーネント」検索である。ループ96が、可能性として考えられる状態機械として、縮小されたフリップフロップグラフ82内に1~100個のコンポーネント頂点を伴う強連結コンポーネントを選択する。(1~100のこの範囲は、例証的にすぎず、RTL回復を受ける特定のICの群のための性能を最大限化するように調整されてもよい。)可能性として考えられる状態機械(すなわち、縮小されたグラフ82の各サブグラフ)毎に、プロセス98は、標準化されたグラフ50の対応するサブグラフを読み出し(このサブグラフは、可能性として考えられる状態機械の組み合わせ論理を相互接続することを含む)、標準化されたグラフ50のサブグラフのための状態遷移テーブルを発生させ、状態遷移テーブルを表す挙動レベルHDLコードを生産する。
【0030】
例証的なRTL回復方法が、種々のタイプのIC分析ツールに組み込まれることができる。例えば、
図1および2に戻って参照すると、グラフィカルユーザインターフェース(GUI)が、提供され得、グラフィカルユーザインターフェースを介して、例えば、マウス18を使用してネットリストを含有するテキストファイルを選択し、ファイルマネージャをナビゲートし、ネットリストファイルを選択することによって、ネットリスト20が、RTL表現回復方法への入力として提供される。RTL表現回復方法は、次いで、ネットリストのRTL表現76を発生させ、ユーザは、ディスプレイ14上で閲覧するためにRTL表現76の一部を選択する。IC性能シミュレーションソフトウェアもまた提供される場合、ユーザは、ネットリスト20およびRTL表現76に関するシミュレーションを実施し、それらが同一の機能性を呈することを検証してもよい。ICから抽出されるネットリストは、単純な設計のための数万行の長さから、合理的に複雑な設計のための数百万行までの範囲に及び得る。したがって、平坦なネットリストを通してナビゲートし、保証懸念の領域を識別することは、人間にとって実施することは実践的ではない。本設計の機能性を理解することまたは本設計の一部を位置特定することもまた、現実的または実行可能ではない。ネットリストを、階層を伴う回復されたRTLとして表し、かつ、より濃縮された読取可能なフォーマットにおいて表すことによって、ユーザは、着目領域をより容易に識別および理解し、設計が設計機能性を改変するように修正されたかどうかを判定することができる。別の用途では、旧来の部品問題に対処している技師が、これを現代的技術ノードに再製造するために、設計を抽出することを必要とする場合がある。例えば、今日では容易に利用可能ではない陳腐化した技術である500ナノメートル技術ノードにおいて加工された設計が、90または45ナノメートル技術に加工され得る。これを実施するために、設計のRTL表現が、設計者が現代のノードサイズに再合成するために、開示されるRTL回復を使用して取得される。ネットリストは、典型的には、再製造されることはできず、故に、抽出された旧来のネットリストは、概して、ICを再製造するためには十分ではない。対照的に、開示されるRTL回復は、旧来のネットリストが、現代のノードへの再合成を可能にするフォーマットに転換されることを可能にし、したがって、コンポーネントの完全な再設計に関する大量のリソースを節約する。
【0031】
好ましい実施形態が、例証され、説明されている。明白なこととして、修正および改変が、前述の詳細な説明を熟読および理解することに応じて、当業者に想起される。本発明が、添付の請求項またはそれらの均等物の範囲内に該当する限りにおいて、そのような修正および改変全てを含むものとして解釈されることが意図される。
【手続補正書】
【提出日】2022-02-14
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
レジスタ転送レベル(RTL)表現回復方法を実施するための、電子プロセッサによって読取可能かつ実行可能である命令を記憶する非一過性記憶媒体であって、前記命令は、
集積回路(IC)設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続
しかつ前記ノード間を流れる信号を表すエッジとを含むグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令であって、前記ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプとを含む、命令と、
IC専門用語データベースを使用して前記グラフのサブグラフを標準化されたサブグラフと置換することによって前記グラフを標準化されたグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと、前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、前記標準化されたグラフのRTL表現を発生させるための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、非一過性記憶媒体。
【請求項2】
前記ワイヤノードタイプは、単一の入力信号と、1つ以上の出力信号とを有し、各出力信号の値は、前記単一の入力信号の値に等しい、請求項1に記載の非一過性記憶媒体。
【請求項3】
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有する、請求項2に記載の非一過性記憶媒体。
【請求項4】
前記ノードタイプのセットは、前記ネットリストの入力端末を表す入力ノードタイプと、前記ネットリストの出力端末を表す出力ノードタイプと、定数信号源を表す定数ノードタイプとをさらに含む、請求項3に記載の非一過性記憶媒体。
【請求項5】
前記グラフのサブグラフを標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能であ
る前記命令は、
前記IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、請求項1~4のいずれか1項に記載の非一過性記憶媒体。
【請求項6】
前記LUTノードを含む前記サブグラフは、前記LUTノードに関する真理値表を発生させ、前記真理値表をブール式に転換し、前記ブール式を表すためのLUTノードを含まない前記標準化されたサブグラフを発生させることによって、置換される、請求項5に記載の非一過性記憶媒体。
【請求項7】
前記IC設計を表す前記ネットリストを前記グラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、前記ネットリストを解析して抽象構文木(AST)を生成するための、前記電子プロセッサによって読取可能かつ実行可能である命令を含む、請求項1~6のいずれか1項に記載の非一過性記憶媒体。
【請求項8】
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと
をさらに含む動作によって、発生される、請求項1~7のいずれか1項に記載の非一過性記憶媒体。
【請求項9】
集積回路(IC)設計を表すネットリストからレジスタ転送レベル(RTL)表現を回復させるためのデバイスであって、前記デバイスは、
電子プロセッサと、
RTL表現回復方法を実施するための、前記電子プロセッサによって読取可能かつ実行可能である命令を記憶する非一過性記憶媒体であって、前記命令は、
IC設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続
しかつ前記ノード間を流れる信号を表すエッジとを含むグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令であって、前記ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、単一の入力信号を有するワイヤノードタイプと、各出力信号の値が前記単一の入力信号の値に等しい1つ以上の出力信号とを含む、命令と、
IC専門用語データベースを使用して前記グラフのサブグラフを標準化されたサブグラフと置換することによって、前記グラフを標準化されたグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
前記標準化されたグラフのRTL表現を発生させるための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、非一過性記憶媒体と
を備える、デバイス。
【請求項10】
前記標準化されたグラフの前記RTL表現は、前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと、前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、発生される、請求項9に記載のデバイス。
【請求項11】
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと
をさらに含む動作によって、発生される、請求項10に記載のデバイス。
【請求項12】
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有し、前記ノードタイプのセットは、前記ネットリストの入力端末を表す入力ノードタイプと、前記ネットリストの出力端末を表す出力ノードタイプと、定数信号源を表す定数ノードタイプとをさらに含む、請求項9~11のいずれか1項に記載のデバイス。
【請求項13】
前記グラフのサブグラフを標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、
IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、請求項9~12のいずれか1項に記載のデバイス。
【請求項14】
前記LUTノードを含む前記サブグラフは、前記LUTノードに関する真理値表を発生させ、前記真理値表をブール式に転換し、前記ブール式を表すためのLUTノードを含まない前記標準化されたサブグラフを発生させることによって、置換される、請求項13に記載のデバイス。
【請求項15】
前記IC設計を表す前記ネットリストを前記グラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、前記ネットリストを解析して抽象構文木(AST)を生成するための、前記電子プロセッサによって読取可能かつ実行可能である命令を含む、請求項9~14のいずれか1項に記載のデバイス。
【請求項16】
レジスタ転送レベル(RTL)表現回復方法であって、
集積回路(IC)設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続
しかつ前記ノード間を流れる信号を表すエッジとを含むグラフに転換することであって、前記ノードタイプ
のセットは、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプとを含む、ことと、
IC専門用語データベースを使用して前記グラフのサブグラフを標準化されたサブグラフと置換することによって、前記グラフを標準化されたグラフに転換することと、
前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、前記標準化されたグラフのRTL表現を発生させることと
を含む、RTL表現回復方法。
【請求項17】
前記ワイヤノードタイプは、単一の入力信号と、1つ以上の出力信号とを有し、前記各出力信号の値は、前記単一の入力信号の値に等しく、
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有する、請求項16に記載のRTL表現回復方法。
【請求項18】
前記標準化されたサブグラフとの前記グラフのサブグラフの置換は、
IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換することと、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換することと
を含む、請求項16~17のいずれか1項に記載のRTL表現回復方法。
【請求項19】
前記グラフへの前記IC設計を表す前記ネットリストの転換は、前記ネットリストを解析して抽象構文木(AST)を生成することを含む、請求項16~18のいずれか1項に記載のRTL表現回復方法。
【請求項20】
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと、
をさらに含む動作によって、発生される、請求項16~19のいずれか1項に記載のRTL表現回復方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
本明細書に開示されるいくつかの例証的実施形態によると、IC設計を表すネットリストからRTL表現を回復させるためのデバイスが、開示される。これは、電子プロセッサと、RTL表現回復方法を実施するための、電子プロセッサによって読取可能かつ実行可能である命令を記憶する非一過性記憶媒体とを備える。命令は、IC設計を表すネットリストを、ノードタイプのセットに属するノードとノードを接続するエッジとを含むグラフに転換するための、電子プロセッサによって読取可能かつ実行可能である命令であって、ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、単一の入力信号を有するワイヤノードタイプと、各出力信号の値が単一の入力信号の値に等しい1つ以上の出力信号とを含む、命令と、グラフのサブグラフを標準化されたサブグラフと置換することによって、グラフを標準化されたグラフに転換するための、電子プロセッサによって読取可能かつ実行可能である命令と、標準化されたグラフのRTL表現を発生させるための、電子プロセッサによって読取可能かつ実行可能である命令とを含む。
本発明は、例えば、以下を提供する。
(項目1)
レジスタ転送レベル(RTL)表現回復方法を実施するための、電子プロセッサによって読取可能かつ実行可能である命令を記憶する非一過性記憶媒体であって、前記命令は、
集積回路(IC)設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続するエッジとを含むグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令であって、前記ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプとを含む、命令と、
前記グラフのサブグラフを標準化されたサブグラフと置換することによって前記グラフを標準化されたグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと、前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、前記標準化されたグラフのRTL表現を発生させるための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、非一過性記憶媒体。
(項目2)
前記ワイヤノードタイプは、単一の入力信号と、1つ以上の出力信号とを有し、各出力信号の値は、前記単一の入力信号の値に等しい、項目1に記載の非一過性記憶媒体。
(項目3)
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有する、項目2に記載の非一過性記憶媒体。
(項目4)
前記ノードタイプのセットは、前記ネットリストの入力端末を表す入力ノードタイプと、前記ネットリストの出力端末を表す出力ノードタイプと、定数信号源を表す定数ノードタイプとをさらに含む、項目3に記載の非一過性記憶媒体。
(項目5)
前記グラフのサブグラフを標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である、前記命令は、
IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、項目1~4のいずれか1項に記載の非一過性記憶媒体。
(項目6)
前記LUTノードを含む前記サブグラフは、前記LUTノードに関する真理値表を発生させ、前記真理値表をブール式に転換し、前記ブール式を表すためのLUTノードを含まない前記標準化されたサブグラフを発生させることによって、置換される、項目5に記載の非一過性記憶媒体。
(項目7)
前記IC設計を表す前記ネットリストを前記グラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、前記ネットリストを解析して抽象構文木(AST)を生成するための、前記電子プロセッサによって読取可能かつ実行可能である命令を含む、項目1~6のいずれか1項に記載の非一過性記憶媒体。
(項目8)
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと
をさらに含む動作によって、発生される、項目1~7のいずれか1項に記載の非一過性記憶媒体。
(項目9)
集積回路(IC)設計を表すネットリストからレジスタ転送レベル(RTL)表現を回復させるためのデバイスであって、前記デバイスは、
電子プロセッサと、
RTL表現回復方法を実施するための、前記電子プロセッサによって読取可能かつ実行可能である命令を記憶する非一過性記憶媒体であって、前記命令は、
IC設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続するエッジとを含むグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令であって、前記ノードタイプのセットは、電子コンポーネントを表すインスタンスノードタイプと、単一の入力信号を有するワイヤノードタイプと、各出力信号の値が前記単一の入力信号の値に等しい1つ以上の出力信号とを含む、命令と、
前記グラフのサブグラフを標準化されたサブグラフと置換することによって、前記グラフを標準化されたグラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
前記標準化されたグラフのRTL表現を発生させるための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、非一過性記憶媒体と
を備える、デバイス。
(項目10)
前記標準化されたグラフの前記RTL表現は、前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと、前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、発生される、項目9に記載のデバイス。
(項目11)
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと
をさらに含む動作によって、発生される、項目10に記載のデバイス。
(項目12)
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有し、前記ノードタイプのセットは、前記ネットリストの入力端末を表す入力ノードタイプと、前記ネットリストの出力端末を表す出力ノードタイプと、定数信号源を表す定数ノードタイプとをさらに含む、項目9~11のいずれか1項に記載のデバイス。
(項目13)
前記グラフのサブグラフを標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、
IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換するための、前記電子プロセッサによって読取可能かつ実行可能である命令と
を含む、項目9~12のいずれか1項に記載のデバイス。
(項目14)
前記LUTノードを含む前記サブグラフは、前記LUTノードに関する真理値表を発生させ、前記真理値表をブール式に転換し、前記ブール式を表すためのLUTノードを含まない前記標準化されたサブグラフを発生させることによって、置換される、項目13に記載のデバイス。
(項目15)
前記IC設計を表す前記ネットリストを前記グラフに転換するための、前記電子プロセッサによって読取可能かつ実行可能である前記命令は、前記ネットリストを解析して抽象構文木(AST)を生成するための、前記電子プロセッサによって読取可能かつ実行可能である命令を含む、項目9~14のいずれか1項に記載のデバイス。
(項目16)
レジスタ転送レベル(RTL)表現回復方法であって、
集積回路(IC)設計を表すネットリストを、ノードタイプのセットに属するノードと前記ノードを接続するエッジとを含むグラフに転換することであって、前記ノードタイプは、電子コンポーネントを表すインスタンスノードタイプと、コンポーネント間での信号転送を表すワイヤノードタイプとを含む、ことと、
前記グラフのサブグラフを標準化されたサブグラフと置換することによって、前記グラフを標準化されたグラフに転換することと、
前記標準化されたグラフのワイヤノードからハードウェア記述言語(HDL)において信号宣言を構築することと前記標準化されたグラフのインスタンスノードから前記HDLにおいて信号割当を構築することとを含む動作によって、前記標準化されたグラフのRTL表現を発生させることと
を含む、RTL表現回復方法。
(項目17)
前記ワイヤノードタイプは、単一の入力信号と、1つ以上の出力信号とを有し、前記各出力信号の値は、前記単一の入力信号の値に等しく、
前記インスタンスノードタイプは、1つ以上の入力信号と、単一の出力信号とを有する、項目16に記載のRTL表現回復方法。
(項目18)
前記標準化されたサブグラフとの前記グラフのサブグラフの置換は、
IC専門用語データベースを使用して、前記グラフのノードを標準化されたノードと置換することと、
ルックアップテーブル(LUT)ノードを含むサブグラフを、LUTノードを含まない標準化されたサブグラフと置換することと
を含む、項目16~17のいずれか1項に記載のRTL表現回復方法。
(項目19)
前記グラフへの前記IC設計を表す前記ネットリストの転換は、前記ネットリストを解析して抽象構文木(AST)を生成することを含む、項目16~18のいずれか1項に記載のRTL表現回復方法。
(項目20)
前記標準化されたグラフの前記RTL表現は、
テンプレートRTLライブラリを使用して、前記標準化されたグラフの同期デバイスサブグラフに関して、前記HDLにおいて同期デバイス宣言を構築することと、
前記標準化されたグラフの前記同期デバイスサブグラフに対応する、前記HDLにおいて前記宣言された同期デバイスのインスタンスをインスタンス化することと、
をさらに含む動作によって、発生される、項目16~19のいずれか1項に記載のRTL表現回復方法。
【国際調査報告】