JP2010283102A - 検証評価システム - Google Patents
検証評価システム Download PDFInfo
- Publication number
- JP2010283102A JP2010283102A JP2009134688A JP2009134688A JP2010283102A JP 2010283102 A JP2010283102 A JP 2010283102A JP 2009134688 A JP2009134688 A JP 2009134688A JP 2009134688 A JP2009134688 A JP 2009134688A JP 2010283102 A JP2010283102 A JP 2010283102A
- Authority
- JP
- Japan
- Prior art keywords
- malfunction
- logic
- verification
- integrated circuit
- semiconductor integrated
- 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.)
- Pending
Links
Images
Landscapes
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】半導体集積回路装置上で発生する誤動作状態を効率的に再現し、その誤動作状態による影響の効率的な解析を実現する。
【解決手段】FPGA1100の開発は、HDLベースで行われることに着目し、誤動作状態の検証を行う為の誤動作挿入論理を自動的に付与し、FPGA1100上での動作が可能となる仕組みを構成する。また、検証の総数を、FPGA1100と誤動作挿入論理を動的に制御する言語と制御機能によって削減する。
【選択図】図1
【解決手段】FPGA1100の開発は、HDLベースで行われることに着目し、誤動作状態の検証を行う為の誤動作挿入論理を自動的に付与し、FPGA1100上での動作が可能となる仕組みを構成する。また、検証の総数を、FPGA1100と誤動作挿入論理を動的に制御する言語と制御機能によって削減する。
【選択図】図1
Description
本発明は、半導体集積回路装置、および半導体集積回路装置上で動作するソフトウェアにおいて半導体集積回路装置上で発生した誤動作による影響を検証する技術に関し、特に、半導体装置上で発生する誤動作状態による影響の解析に有効な技術に関する。
近年、半導体装置における回路構成のプロセス技術の微細化が進歩している。プロセス技術の微細化により、省電力且つ省コストによる半導体装置の製造が期待されている。一方で、中性子線やアルファ線や宇宙線が半導体装置に照射された場合には、ソフトエラーと呼ばれる誤動作状態に動作状態が遷移することが知られている。
特に、微細化が進むことにより、ソフトエラーの発生が半導体装置の正常動作に対して脅威になることから、様々な観点で脅威の数値化やソフトエラーに対する対策が検討されている(たとえば、非特許文献1参照)。
これらは、自然界で発生する現象に端を発する誤動作であり、自然発生的に半導体装置が意図しない動作を起こすことを意味しており、脅威である。
一方で、近年、ICカードに代表されるセキュリティモジュールにおいては、その内部に搭載された半導体装置のリバースエンジニアリングの困難性と暗号解読の計算量的困難性により、セキュリティを保証してきた。
これらのセキュリティモジュール内部における秘匿情報の解析方法として、誤動作解析アタックが存在する。この方法では、故意に半導体装置上に誤りを起こさせ、正しい計算結果と誤った計算結果の差分を用いてかぎ情報を推定する手法である。
このアタック手法の特徴は、アタックに必要な時間が非常に少ない点である。たとえば、CRT演算法を用いたRSA暗号に対する誤動作解析アタック手法では、鍵長にかかわらず、たった1回の演算誤りが得られれば、正しい値と誤った値の差分と公開鍵のモジュロNとの最大公約数から、秘密素数pが得られ、その結果から秘密鍵を推定できることが知られている(たとえば、非特許文献2参照)。
また、半導体集積回路上の動作に誤りを引き起こす具体的方法としては、故意に発生させた強い光の照射によって内部データを意図した値以外に書き換えが可能であることが、S. Skorobogatovらによって報告されている(たとえば、非特許文献3)。光照射を用いることで、故意に半導体装置を誤動作させ、意図しない情報が悪意のあるユーザによって読み取られる可能性が考えられる。
上記から、自然界で発生する現象や故意に引き起こす現象によって、半導体装置が誤動作を引き起こし、意図しない動作や秘匿情報が漏洩するといった脅威がある。
また、フォルトトレラントシステム上の誤動作状態に対する耐性を検証するために、半導体装置上の論理構成をFPGA(Field Programmable Gate Array)上に擬似的に再現し、それらに誤動作挿入を行う論理を付与し組み合わせることで、半導体装置上で誤動作状態を解析する手法が、非特許文献4によって示されている(非特許文献4)。
T.Nakauchi, et al.,"A Novel Technique for Mitigating Neutron−Induced Multi−Cell Upset by means of Back Bias", IPRS 2008, Phoenix, Arizona, April 27−May 1, 2008, No.2F.2, pp.187−191(2008)
D.Boneh, R.A. DeMillo, and R.J. Lipton:On the Importance of Checking Cryptographic Protocols for Faults, EUROCRYPT ’97, volume 1233 of Lecture Notes in Computer Science, pager 37−51, Springer−Verlag, 1997
S.Skorobogatov, R. Anderson, "Optical Fault Induction Attacks", CHES2002,LNCS2523,Springer−Verlag,ISBN3−540−00409−2,pp2−12
Mario Garcia−Valderas, and Gelia Lopez−Ongil, "Transient Fault Emulation of Hardend Circuits in FPGA Platforms," IEEE International On−Line Testing Symposium (IPLTS’04)
上記のように非特許文献4によって、FPGA上において誤動作状態を擬似的に再現する方法が示された。この方法では、半導体装置中の特定箇所に、誤動作状態時に発生するデータを挿入することで、誤動作状態を再現する。
この誤動作状態を再現する論理を用いることで、半導体装置上で論理的に観測が可能な誤動作の再現が可能であり、且つ半導体装置の動作に及ぼす影響の検証が擬似的な再現によって可能となる。即ち、半導体装置内部に明示的に値が保持される誤動作に関して再現可能であり、且つ半導体装置の動作に及ぼす影響の検証が擬似的な再現によって可能となる。
非特許文献4の方法では、FPGA上に搭載される半導体装置の論理記述に対して、誤動作状態を再現する為の論理を必要箇所に付与する。ここで、必要箇所はレジスタに代表される静的に内部に値を保持する機能を指す。しかしながら、誤動作状態を再現する為の論理は手動による付与、もしくは全ての内部レジスタに対する付与を想定されており、効率的な方法とは言えない。
また、半導体装置上で動作するソフトウェアに応じて影響の調査結果は異なることが想定される。ソフトウェアの論理記述に応じて、半導体装置内で利用される論理は異なる。このため、想定されるソフトウェアの動作に応じて、検証の精度や検証範囲が異なることとなる。
すなわち、ソフトウェアの論理記述に依存して、検証結果が異なることが想定される。また、ソフトウェアの論理記述の規模は大小様々な形態が想定される。特に大規模なソフトウェアを用いた検証の場合には、ソフトウェアの動作に必要とされるクロック数の増大に比例して、検証時間が増大するといった懸念が挙げられる。
本発明の目的は、半導体装置上で発生する誤動作状態を効率的に再現し、その誤動作状態による影響の効率的な解析を実現することのできる技術を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
本発明は、エミュレーションにより半導体集積回路装置の動作検証を行う検証評価システムであって、複数の回路要素により構成される再構成可能な半導体集積回路装置と、再構成可能な半導体集積回路装置の内部もしくは外部に設けられた、該エミュレーションを実行する為の制御プログラムが格納されるメモリを有し、該制御プログラムを実行するプロセッサを備えるホストコンピュータとを備え、再構成可能な半導体集積回路装置は、複数の回路要素中の任意の回路要素をホストコンピュータの要求に応じて接続し、エミュレーションの対象となる半導体装置の回路を再構成する制御モジュールと、再構成可能な半導体集積回路装置に含まれる任意の回路要素の出力信号を検出し、当該出力信号をホストコンピュータに伝送する観測モジュールとを備え、該ホストコンピュータは、半導体装置の回路中の構成された論理の所定箇所に誤動作状態としての論理を任意の値に変更する、誤動作再現の論理を挿入することにより、誤動作再現可能な再現用半導体集積回路を生成し、誤動作再現の論理と半導体装置の対応表を予めユーザの指定した指標に従って生成し、半導体回廊装置について予めユーザが指定した観測と誤動作状態の再現を必要とするデータ情報を用いて、該対応表で所定の箇所を指定して観測モジュールに伝送し、該観測モジュールから伝送される、対応表によって特定された箇所に対応する回路の出力信号を用いて誤動作検証を実行するものである。
また、本願のその他の発明の概要を簡単に示す。
本発明では、半導体集積回路装置(FPGA)上に搭載する半導体装置の設計情報がHDL(Hardware Description Language)によって記述される点に着目し、HDLの内部構造を、HDL解析機能を有するソフトウェアによって解析し、解析結果に基づいて誤動作挿入論理をHDLに、付与することを実現する。
また、本発明では、誤動作挿入論理やFPGAの動作を制御するユーザ言語を定義し、FPGA内部の信号の遷移に応じて検証内容を動的に遷移させることで、検証総数の削減を実現する。
ここで、従来のHDLとFPGAを用いた誤動作に対する検証方法について、概略を示す。
(1−1)半導体装置のHDLを記述し、FPGA上で動作可能とする。
(1−2)HDL中で検証が必要な箇所に誤動作状態を再現する論理を記述。
(1−3)FPGAを稼動させ、誤動作状態の再現を試み、結果を観測。
(1−4)(1−3)を検証に必要な数だけ繰り返す。
(1−5)検証結果に応じて、再設計を行い(1−1)に戻る。
(1−1)半導体装置のHDLを記述し、FPGA上で動作可能とする。
(1−2)HDL中で検証が必要な箇所に誤動作状態を再現する論理を記述。
(1−3)FPGAを稼動させ、誤動作状態の再現を試み、結果を観測。
(1−4)(1−3)を検証に必要な数だけ繰り返す。
(1−5)検証結果に応じて、再設計を行い(1−1)に戻る。
本発明では、(1−2)を自動化することで、検証環境の構築は(1−1)のみとすることで、効率化を計る。また、(1−3)及び(1−4)に関しても、動的な検証環境とすることで、検証の効率化を計る。
これらによって、半導体集積回路装置の設計とHDL実装以外における手動による検証の手間を省力化することが、本発明の目指す所である。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
(1)半導体装置の設計変更や実装変更時に、自動的に検証環境を構築することが可能となる。
(2)上記(1)により、検証に要する時間を大幅に削減することができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1は、本発明の一実施の形態による検証評価システムの一例を示すブロック図、図2は、図1におけるハードウェア論理を示した説明図、図3は、フリップフロップを対象とした割り込み信号の付与の一例を示す説明図、図4は、Verilog−HDL記述によるハードウェアの論理を一例として示す説明図、図5は、図4の記述に対して図3の割り込み信号を付与した際のVerilog−HDL記述の一例を示す説明図、図6は、図1の制御フロー解析機能が作成する状態遷移表を説明する状態遷移図である。
本実施の形態において、検証評価システム100は、図1に示すように、半導体集積回路装置であるFPGA1100、およびホストコンピュータとなる電子システム1102から構成される。
FPGA1100内部は、再現用半導体集積回路となるハードウェア論理1101と、制御モジュール、および観測モジュールとなる検証対象制御論理1107とから構成される。また、電子システム1102は、通常のパーソナルコンピュータが保有する機能に加えて、制御フロー1103、HDL(Hardware Discription Language)生成プログラム1110、ならびに制御フロー解析機能1106を内部に保有している。
ユーザは、予め定義した記述言語に従って制御フロー1103を記述する。この記述言語を制御フロー解析機能1106によって解析を行い、FPGA1100内で解釈実行が可能な形式に変換し、該FPGA1100に転送1104する。
FPGA1100では、検証対象制御論理が制御フロー解析機能1106によって出力された解析情報を元にハードウェア論理1101を制御する。具体的には、FPGA1100内に格納される解析情報を元に、検証対象制御論理は制御信号1108を発し、ハードウェア論理1101を制御する。
検証対象となるハードウェア論理1101は、制御信号1108に応じて、データ1109を出力する。検証対象制御論理1107は、データ1109の結果と、制御フロー解析機能1106の出力結果に応じて、次の制御となる制御信号1108を決定する。
制御フロー1103に記述された全ての状態を検証対象制御論理1107が実行した後に、検証対象制御論理1107は最終結果データ転送1105を電子システム1102に対して行う。
また、電子システム1102内部のHDL生成プログラム1110は、ハードウェア論理1101に誤動作状態を再現する機能を付与する機能を有する。また、生成したハードウェア論理1101をHDL転送1111することよってFPGA1100に転送する。
図2は、図1におけるハードウェア論理1101について示した説明図である。
ハードウェア論理1101は、検証対象となる半導体装置であるハードウェア論理(HDL)1202と誤動作再現の論理(HDL)1201から構成される。
図2の誤動作再現の論理の構成は次のように行う。検証対象となるハードウェア論理1202中に静的に値を保持する信号線、もしくはフリップフロップや内部ラッチに対して、割り込み信号を付与し、割り込み信号によって、検証対象となるハードウェア論理1202の値を自由に書き変える。
図3は、上記の中でフリップフロップ1301を対象とした、非特許文献4に示された割り込み信号の付与の方法を示した説明図である。
フリップフロップ1301には、正常データと誤動作種別と誤動作値から生成される値とクロック信号CLKが入力される。正常データは、正常データであることが期待されるデータ信号であり、データ信号線にAND回路1302とXOR回路1303を付与し、それぞれ誤動作種別と誤動作値の組み合わせを付与することで、誤動作データを生成する。図1のHDL生成プログラム1110は、図3に示したような割り込み信号の付与を自動的に行う。
以降では、HDL生成プログラム1110について示す。
まず、図4にVerilog−HDLと呼ばれるHDL記述言語の記述によるハードウェアの論理を一例として示す。また、図5に、図4の記述に対して図3の割り込み信号を付与した場合を示す。
図4との相違点は図4の1行目で入力となる信号が3種であったのに対し、図5の1行目では5種となっている。増加した信号線は図3の誤動作値がfault_valueとなり、図3の誤動作種がfault_kindである。
これに伴い、図5の3行目と4行目のようにinput宣言が1行目に増加した分だけ増加する。
また、この例ではフリップフロップにおいて誤動作状態を再現することを試みている。従って、図4の4行目、および図5の6行目でreg宣言によって宣言したフリップフロップ4bitが誤動作状態の再現を試みる対象となる。
これに伴い、図4の8行目もしくは10行目で行われるqの値の更新に対して、図5の10行目もしくは12行目で行われるqの値の更新のような構文による値の更新を記述する。
これによって、図3の誤動作再現の論理を図4の論理に付与できたこととなる。この手続きを自動化し、任意のHDLに対して誤動作再現の論理を付与する機能が図1のHDL生成プログラム1110である。
本実施の形態においては、全てのHDL中に誤動作再現の論理を自動的に付与する場合の、HDL生成プログラム1110の構成について示す。HDL生成プログラム1110は、以下の処理手順によって、誤動作再現の論理を付与する。
(0−1)全てのHDLから全てのmodule宣言を抽出する。
(0−2)ユーザが指定したオプションに従い、信号線もしくはフリップフロップの宣言と、信号線本数またはフリップフロップ数を抽出する。
(0−3)(0−2)で抽出した信号線もしくはフリップフロップの値が更新される箇所を抽出する。
(0−4)(0−1)で抽出したmodule宣言に図5の1行目のように誤動作種と誤動作値に相当する変数名を付与する。
(0−5)(0−4)と同様に、入力信号線として誤動作種と誤動作値の変数名を宣言し、宣言する信号線の総数は、(0−2)で抽出した信号線本数またはフリップフロップ数とする。
(0−6)(0−3)で抽出した信号線もしくはフリップフロップが更新される箇所において、更新される信号線もしくフリップフロップの数に応じて、図5の10行目のような様式で誤動作種と誤動作値の記述を挿入する。また、この時、挿入された信号線またはフリップフロップと誤動作種と誤動作値の信号線の対応表を別に作成する。
(0−1)全てのHDLから全てのmodule宣言を抽出する。
(0−2)ユーザが指定したオプションに従い、信号線もしくはフリップフロップの宣言と、信号線本数またはフリップフロップ数を抽出する。
(0−3)(0−2)で抽出した信号線もしくはフリップフロップの値が更新される箇所を抽出する。
(0−4)(0−1)で抽出したmodule宣言に図5の1行目のように誤動作種と誤動作値に相当する変数名を付与する。
(0−5)(0−4)と同様に、入力信号線として誤動作種と誤動作値の変数名を宣言し、宣言する信号線の総数は、(0−2)で抽出した信号線本数またはフリップフロップ数とする。
(0−6)(0−3)で抽出した信号線もしくはフリップフロップが更新される箇所において、更新される信号線もしくフリップフロップの数に応じて、図5の10行目のような様式で誤動作種と誤動作値の記述を挿入する。また、この時、挿入された信号線またはフリップフロップと誤動作種と誤動作値の信号線の対応表を別に作成する。
上記のような方法によって、HDL生成プログラム1110は構成される。
また、上記の(0−6)における対応表は、図1の検証対象制御論理において、誤動作の再現を起こしたい対象の信号線もしくはフリップフロップを特定し、誤動作状態の再現をコントロールする為に用いる。この方法によって、誤動作再現の論理を自動的に付与することが可能となる。また、この表は以降で述べる制御フロー1103や制御フロー解析機能1106において用いられる。
次に、図1における制御フロー1103と制御フロー解析機能1106と検証対象制御論理について図を交えて示す。
まず、図1の制御フロー1103について述べる。
制御フロー1103は、誤動作状態の再現や誤動作状態に関わる観測制御を行う為の記述言語のことである。制御フロー1103では、大きく以下の3つの制御論理から構成される。
(1−1)図1のハードウェア論理の動作に関する制御論理。
(1−2)誤動作状態の再現と、状態観測及びFPGAに関する制御論理。
(1−3)上記の(1−1)と(1−2)を論理的に制御する制御論理。
(1−1)図1のハードウェア論理の動作に関する制御論理。
(1−2)誤動作状態の再現と、状態観測及びFPGAに関する制御論理。
(1−3)上記の(1−1)と(1−2)を論理的に制御する制御論理。
上記の(1−3)は、通常のプログラミング言語で用いられる論理である。以下に挙げる論理構造がある。
(2−1)言語内で用いる変数の宣言及び変数の代入。
(2−2)変数に関する四則演算及び大小比較及び変数の参照。
(2−3)条件分岐及び条件分岐のネスト。
(2−4)繰り返し実行及び繰り返し実行のネスト及び停止。
(2−1)言語内で用いる変数の宣言及び変数の代入。
(2−2)変数に関する四則演算及び大小比較及び変数の参照。
(2−3)条件分岐及び条件分岐のネスト。
(2−4)繰り返し実行及び繰り返し実行のネスト及び停止。
上記の(1−1)に関しては、以下に挙げる論理構造がある。
(3−1)信号線もしくはフリップフロップの値参照。
(3−2)ハードウェア論理が実行したクロック数の観測。
(3−3)ハードウェア論理を一定クロックの間、強制実行。
(3−1)信号線もしくはフリップフロップの値参照。
(3−2)ハードウェア論理が実行したクロック数の観測。
(3−3)ハードウェア論理を一定クロックの間、強制実行。
上記の(1−2)に関しては、以下に挙げる論理構造がある。
(4−1)FPGAの動作の停止制御。
(4−2)ハードウェア論理へのメモリイメージの転送。
(4−3)ハードウェア論理のメモリイメージの記録。
(4−4)信号線もしくはフリップフロップの値の変更(誤動作種と誤動作値の操作)。
(4−5)ユーザが予め設定したメッセージや値の表示。
(4−1)FPGAの動作の停止制御。
(4−2)ハードウェア論理へのメモリイメージの転送。
(4−3)ハードウェア論理のメモリイメージの記録。
(4−4)信号線もしくはフリップフロップの値の変更(誤動作種と誤動作値の操作)。
(4−5)ユーザが予め設定したメッセージや値の表示。
上記の論理構造を持つ言語によって記述を行ったものが、図1における制御フロー1103である。
続いて、図1の制御フロー解析機能1106について述べる。制御フロー解析機能1106では、次のように解析を行う。
(5−1)制御フローの記述から、上記の(2−1)〜(2−4)に該当する記述形式を抽出し、論理条件に基づく状態遷移表を作成。
(5−2)上記の(3−1)〜(3−3)および(4−1)〜(4−5)に該当する記述形式を抽出し、上記の状態遷移表の各状態において実行する変数代入や、信号線もしくはフリフロップの値参照と値変更を状態遷移に追加。
(5−1)制御フローの記述から、上記の(2−1)〜(2−4)に該当する記述形式を抽出し、論理条件に基づく状態遷移表を作成。
(5−2)上記の(3−1)〜(3−3)および(4−1)〜(4−5)に該当する記述形式を抽出し、上記の状態遷移表の各状態において実行する変数代入や、信号線もしくはフリフロップの値参照と値変更を状態遷移に追加。
ここで、上記の(5−1)と(5−2)で作成する状態遷移表を説明する状態遷移図を一例として図6に示す。図6においては、各状態として状態1と状態2と状態3とがそれぞれ存在する。
状態1は初期状態である。初期状態で、処理列1内部の各処理を実行し、実行の後に条件評価1を実行する。条件評価1の結果の論理値が真であれば状態2へ遷移する。
また、論理値が偽であれば状態3へ遷移する。状態2では、処理列2内部の各処理を実行し、実行の後に条件評価2を実行する。状態2では、同様に、処理列2内部の各処理を実行し、実行の後に条件評価2を実行する。
条件評価2の結果の論理値が真であれば状態1へ遷移する。また、論理値が偽であれば状態3へ遷移する。状態3では、同様に、処理列3内部の各処理を実行し、実行の後に条件評価3を実行する。条件評価3の結果の論理値が真であれば状態1へ遷移する。
また、論理値が偽であれば状態3へ遷移する。図6の状態遷移図はあくまで一例であるが、状態遷移の意味することは明らかになるであろう。また、上記の処理列1〜処理列3では、(3−1)〜(3−3)および(4−1)〜(4−5)を任意の組み合わせで実行する。
上記の状態遷移表をFPGA内の検証対象制御論理に転送し、検証対象制御論理は、状態遷移表を逐次解釈しながら、ハードウェア論理の動作制御を行う。
また、HDL生成プログラム1110では、対象となりうる全ての信号線もしくはフリップフロップに対して誤動作再現の論理を付与していたが、ユーザが予め指定する引数を引き渡すことで、付与の範囲を制御することもできる。
Verilog−HDLに着目した場合、構文中のmodule間もしくはファイル間で階層構造が明示的に存在する。この点に着目し、ユーザは以下の二点について引数を引き渡す。
(6−1)最上位階層を示すモジュールもしくはファイル。
(6−2)階層構造の上位から付与するか、下位から付与するか。
(6−3)付与する階層はどの階層までとするか。
(6−1)最上位階層を示すモジュールもしくはファイル。
(6−2)階層構造の上位から付与するか、下位から付与するか。
(6−3)付与する階層はどの階層までとするか。
この階層構造を指定することで、全ての信号線やフリップフロップに対して誤動作再現の論理を付与する必要はなくなる。これを実現する為のHDL生成プログラム1110における処理手順を以下に示す。
(7−1)全ファイルもしくは全モジュールを抽出し、(6−1)で指定したモジュールもしくはファイルから、信号線やフリップフロップとモジュールの呼び出しの相関を解析し、その解析結果から階層構造を導く。
(7−2)(7−1)で導いた階層構造から、(6−2)と(6−3)で指定された範囲で論理を付与すべき範囲を指定する。
(7−3)(0−1)〜(0−6)で示した手順で論理を付与する。
(7−1)全ファイルもしくは全モジュールを抽出し、(6−1)で指定したモジュールもしくはファイルから、信号線やフリップフロップとモジュールの呼び出しの相関を解析し、その解析結果から階層構造を導く。
(7−2)(7−1)で導いた階層構造から、(6−2)と(6−3)で指定された範囲で論理を付与すべき範囲を指定する。
(7−3)(0−1)〜(0−6)で示した手順で論理を付与する。
上記の方法に加えて、(7−1)で割り出したモジュール単位やファイル単位、更には特定の信号線やフリップフロップに対してのみ、ユーザが指標となる引数で指定することで、限定的に論理が付与できる。
それにより、本実施の形態によれば、誤動作挿入論理の自動付与機能により、ハードウェア論理1202の構成、即ちHDLにおける誤動作対策機能を行った場合においても、自動的に誤動作挿入論理を付与する機能によって、ユーザはHDLの内部や詳細についての解析を行わずとも誤動作状態の再現が可能となる。
また、FPGA1110の内部状態に応じて、誤動作挿入や観測が可能となる独自言語とその言語の解析によって、動的な解析が実現可能となる。この結果、不要な検証を回避することが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明は、半導体集積装置の開発システムに適している。
100 検証評価システム
1100 FPGA
1101 ハードウェア論理
1102 電子システム
1103 制御フロー
1104 転送
1105 最終結果データ転送
1106 制御フロー解析機能
1107 検証対象制御論理
1108 制御信号
1109 データ
1110 HDL生成プログラム
1111 HDL転送
1201 論理
1202 ハードウェア論理
1301 フリップフロップ
1302 AND回路
1303 XOR回路
1100 FPGA
1101 ハードウェア論理
1102 電子システム
1103 制御フロー
1104 転送
1105 最終結果データ転送
1106 制御フロー解析機能
1107 検証対象制御論理
1108 制御信号
1109 データ
1110 HDL生成プログラム
1111 HDL転送
1201 論理
1202 ハードウェア論理
1301 フリップフロップ
1302 AND回路
1303 XOR回路
Claims (1)
- エミュレーションにより半導体集積回路装置の動作検証を行う検証評価システムであって、
複数の回路要素により構成される再構成可能な半導体集積回路装置と、
再構成可能な前記半導体集積回路装置の内部もしくは外部に設けられた、前記エミュレーションを実行する為の制御プログラムが格納されるメモリを有し、前記制御プログラムを実行するプロセッサを備えるホストコンピュータとを備え、
再構成可能な前記半導体集積回路装置は、
前記複数の回路要素中の任意の回路要素を前記ホストコンピュータの要求に応じて接続し、前記エミュレーションの対象となる半導体装置の回路を再構成する制御モジュールと、
再構成可能な前記半導体集積回路装置に含まれる任意の回路要素の出力信号を検出し、当該出力信号を前記ホストコンピュータに伝送する観測モジュールとを備え、
前記ホストコンピュータは、
前記半導体装置の回路中の構成された論理の所定箇所に誤動作状態として前記の論理を任意の値に変更する、誤動作再現の論理を挿入することにより、誤動作再現可能な再現用半導体集積回路を生成し、誤動作再現の論理と前記半導体装置の対応表を予めユーザの指定した指標に従って生成し、
前記半導体回廊装置について予めユーザが指定した観測と誤動作状態の再現を必要とするデータ情報を用いて、前記対応表で所定の箇所を指定して前記観測モジュールに伝送し、前記観測モジュールから伝送される、前記対応表によって特定された箇所に対応する回路の出力信号を用いて誤動作検証を実行することを特徴とする検証評価システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009134688A JP2010283102A (ja) | 2009-06-04 | 2009-06-04 | 検証評価システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009134688A JP2010283102A (ja) | 2009-06-04 | 2009-06-04 | 検証評価システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010283102A true JP2010283102A (ja) | 2010-12-16 |
Family
ID=43539604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009134688A Pending JP2010283102A (ja) | 2009-06-04 | 2009-06-04 | 検証評価システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010283102A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015511768A (ja) * | 2011-03-02 | 2015-04-20 | ノコミス,インコーポレイテッド | 電磁エネルギー異常検出部及び処理部を有する集積回路 |
US10475754B2 (en) | 2011-03-02 | 2019-11-12 | Nokomis, Inc. | System and method for physically detecting counterfeit electronics |
-
2009
- 2009-06-04 JP JP2009134688A patent/JP2010283102A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015511768A (ja) * | 2011-03-02 | 2015-04-20 | ノコミス,インコーポレイテッド | 電磁エネルギー異常検出部及び処理部を有する集積回路 |
US9887721B2 (en) | 2011-03-02 | 2018-02-06 | Nokomis, Inc. | Integrated circuit with electromagnetic energy anomaly detection and processing |
US10475754B2 (en) | 2011-03-02 | 2019-11-12 | Nokomis, Inc. | System and method for physically detecting counterfeit electronics |
US11450625B2 (en) | 2011-03-02 | 2022-09-20 | Nokomis, Inc. | System and method for physically detecting counterfeit electronics |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hu et al. | Hardware information flow tracking | |
US10719631B2 (en) | Method and system for detecting hardware trojans and unintentional design flaws | |
Tiwari et al. | Execution leases: A hardware-supported mechanism for enforcing strong non-interference | |
Pilato et al. | Tainthls: High-level synthesis for dynamic information flow tracking | |
Jin et al. | A proof-carrying based framework for trusted microprocessor IP | |
Jin et al. | Data secrecy protection through information flow tracking in proof-carrying hardware IP—Part I: Framework fundamentals | |
US10289873B2 (en) | Generating hardware security logic | |
JP2006048525A (ja) | シミュレーション方法 | |
Gao et al. | FENL: an ISE to mitigate analogue micro-architectural leakage | |
Pundir et al. | Secure high-level synthesis: Challenges and solutions | |
Hepp et al. | Tapeout of a RISC-V crypto chip with hardware trojans: a case-study on trojan design and pre-silicon detectability | |
Pundir et al. | Analyzing security vulnerabilities induced by high-level synthesis | |
Lai et al. | Understanding multidimensional verification: Where functional meets non-functional | |
Antognazza et al. | Metis: An integrated morphing engine CPU to protect against side channel attacks | |
Qin et al. | Theorem proof based gate level information flow tracking for hardware security verification | |
Qin et al. | A formal model for proving hardware timing properties and identifying timing channels | |
Kiaei et al. | SoC Root Canal! Root cause analysis of power side-channel leakage in system-on-chip designs | |
Goli et al. | ATLaS: Automatic detection of timing-based information leakage flows for SystemC HLS designs | |
Kwon et al. | Proving flow security of sequential logic via automatically-synthesized relational invariants | |
Goli et al. | Early SoCs Information Flow Policies Validation using SystemC-based Virtual Prototypes at the ESL | |
Farahmandi et al. | SoC security verification using property checking | |
JP2010283102A (ja) | 検証評価システム | |
Goli et al. | VIP-VP: Early validation of SoCs information flow policies using SystemC-based virtual prototypes | |
Feldtkeller et al. | Challenges and opportunities of security-aware EDA | |
Muttaki et al. | Secure by construction: Addressing security vulnerabilities introduced during high-level synthesis |