(57)【要約】【課題】半導体集積回路装置上で発生する誤動作状態を効率的に再現し、その誤動作状態による影響の効率的な解析を実現する。【解決手段】ＦＰＧＡ１１００の開発は、ＨＤＬベースで行われることに着目し、誤動作状態の検証を行う為の誤動作挿入論理を自動的に付与し、ＦＰＧＡ１１００上での動作が可能となる仕組みを構成する。また、検証の総数を、ＦＰＧＡ１１００と誤動作挿入論理を動的に制御する言語と制御機能によって削減する。【選択図】図１
2010283102.tif 000002
【特許請求の範囲】
【請求項１】
エミュレーションにより半導体集積回路装置の動作検証を行う検証評価システムであって、
複数の回路要素により構成される再構成可能な半導体集積回路装置と、
再構成可能な前記半導体集積回路装置の内部もしくは外部に設けられた、前記エミュレーションを実行する為の制御プログラムが格納されるメモリを有し、前記制御プログラムを実行するプロセッサを備えるホストコンピュータとを備え、
再構成可能な前記半導体集積回路装置は、
前記複数の回路要素中の任意の回路要素を前記ホストコンピュータの要求に応じて接続し、前記エミュレーションの対象となる半導体装置の回路を再構成する制御モジュールと、
再構成可能な前記半導体集積回路装置に含まれる任意の回路要素の出力信号を検出し、当該出力信号を前記ホストコンピュータに伝送する観測モジュールとを備え、
前記ホストコンピュータは、
前記半導体装置の回路中の構成された論理の所定箇所に誤動作状態として前記の論理を任意の値に変更する、誤動作再現の論理を挿入することにより、誤動作再現可能な再現用半導体集積回路を生成し、誤動作再現の論理と前記半導体装置の対応表を予めユーザの指定した指標に従って生成し、
前記半導体回廊装置について予めユーザが指定した観測と誤動作状態の再現を必要とするデータ情報を用いて、前記対応表で所定の箇所を指定して前記観測モジュールに伝送し、前記観測モジュールから伝送される、前記対応表によって特定された箇所に対応する回路の出力信号を用いて誤動作検証を実行することを特徴とする検証評価システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置、および半導体集積回路装置上で動作するソフトウェアにおいて半導体集積回路装置上で発生した誤動作による影響を検証する技術に関し、特に、半導体装置上で発生する誤動作状態による影響の解析に有効な技術に関する。
【背景技術】
【０００２】
近年、半導体装置における回路構成のプロセス技術の微細化が進歩している。プロセス技術の微細化により、省電力且つ省コストによる半導体装置の製造が期待されている。一方で、中性子線やアルファ線や宇宙線が半導体装置に照射された場合には、ソフトエラーと呼ばれる誤動作状態に動作状態が遷移することが知られている。
【０００３】
特に、微細化が進むことにより、ソフトエラーの発生が半導体装置の正常動作に対して脅威になることから、様々な観点で脅威の数値化やソフトエラーに対する対策が検討されている（たとえば、非特許文献１参照）。
【０００４】
これらは、自然界で発生する現象に端を発する誤動作であり、自然発生的に半導体装置が意図しない動作を起こすことを意味しており、脅威である。
【０００５】
一方で、近年、ＩＣカードに代表されるセキュリティモジュールにおいては、その内部に搭載された半導体装置のリバースエンジニアリングの困難性と暗号解読の計算量的困難性により、セキュリティを保証してきた。
【０００６】
これらのセキュリティモジュール内部における秘匿情報の解析方法として、誤動作解析アタックが存在する。この方法では、故意に半導体装置上に誤りを起こさせ、正しい計算結果と誤った計算結果の差分を用いてかぎ情報を推定する手法である。
【０００７】
このアタック手法の特徴は、アタックに必要な時間が非常に少ない点である。たとえば、ＣＲＴ演算法を用いたＲＳＡ暗号に対する誤動作解析アタック手法では、鍵長にかかわらず、たった１回の演算誤りが得られれば、正しい値と誤った値の差分と公開鍵のモジュロＮとの最大公約数から、秘密素数ｐが得られ、その結果から秘密鍵を推定できることが知られている（たとえば、非特許文献２参照）。
【０００８】
また、半導体集積回路上の動作に誤りを引き起こす具体的方法としては、故意に発生させた強い光の照射によって内部データを意図した値以外に書き換えが可能であることが、Ｓ．  Ｓｋｏｒｏｂｏｇａｔｏｖらによって報告されている（たとえば、非特許文献３）。光照射を用いることで、故意に半導体装置を誤動作させ、意図しない情報が悪意のあるユーザによって読み取られる可能性が考えられる。
【０００９】
上記から、自然界で発生する現象や故意に引き起こす現象によって、半導体装置が誤動作を引き起こし、意図しない動作や秘匿情報が漏洩するといった脅威がある。
【００１０】
また、フォルトトレラントシステム上の誤動作状態に対する耐性を検証するために、半導体装置上の論理構成をＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上に擬似的に再現し、それらに誤動作挿入を行う論理を付与し組み合わせることで、半導体装置上で誤動作状態を解析する手法が、非特許文献４によって示されている（非特許文献４）。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】Ｔ．Ｎａｋａｕｃｈｉ，  et  al．，“Ａ  Ｎｏｖｅｌ  Ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  Ｍｉｔｉｇａｔｉｎｇ  Ｎｅｕｔｒｏｎ−Ｉｎｄｕｃｅｄ  Ｍｕｌｔｉ−Ｃｅｌｌ  Ｕｐｓｅｔ  ｂｙ  ｍｅａｎｓ  ｏｆ  Ｂａｃｋ  Ｂｉａｓ”，  ＩＰＲＳ  ２００８，  Ｐｈｏｅｎｉｘ，  Ａｒｉｚｏｎａ，  Ａｐｒｉｌ  ２７−Ｍａｙ  １，  ２００８，  Ｎｏ．２Ｆ．２，  ｐｐ．１８７−１９１（２００８）
【非特許文献２】Ｄ．Ｂｏｎｅｈ，  Ｒ．Ａ．  ＤｅＭｉｌｌｏ，  ａｎｄ  Ｒ．Ｊ．  Ｌｉｐｔｏｎ：Ｏｎ  ｔｈｅ  Ｉｍｐｏｒｔａｎｃｅ  ｏｆ  Ｃｈｅｃｋｉｎｇ  Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｐｒｏｔｏｃｏｌｓ  ｆｏｒ  Ｆａｕｌｔｓ，  ＥＵＲＯＣＲＹＰＴ  ’９７，  ｖｏｌｕｍｅ  １２３３  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，  ｐａｇｅｒ  ３７−５１，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  １９９７
【非特許文献３】Ｓ．Ｓｋｏｒｏｂｏｇａｔｏｖ，  Ｒ．  Ａｎｄｅｒｓｏｎ，  “Ｏｐｔｉｃａｌ  Ｆａｕｌｔ  Ｉｎｄｕｃｔｉｏｎ  Ａｔｔａｃｋｓ”，  ＣＨＥＳ２００２，ＬＮＣＳ２５２３，Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，ＩＳＢＮ３−５４０−００４０９−２，ｐｐ２−１２
【非特許文献４】Ｍａｒｉｏ  Ｇａｒｃｉａ−Ｖａｌｄｅｒａｓ，  ａｎｄ  Ｇｅｌｉａ  Ｌｏｐｅｚ−Ｏｎｇｉｌ，  “Ｔｒａｎｓｉｅｎｔ  Ｆａｕｌｔ  Ｅｍｕｌａｔｉｏｎ  ｏｆ  Ｈａｒｄｅｎｄ  Ｃｉｒｃｕｉｔｓ  ｉｎ  ＦＰＧＡ  Ｐｌａｔｆｏｒｍｓ，”  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｎ−Ｌｉｎｅ  Ｔｅｓｔｉｎｇ  Ｓｙｍｐｏｓｉｕｍ  （ＩＰＬＴＳ’０４）
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上記のように非特許文献４によって、ＦＰＧＡ上において誤動作状態を擬似的に再現する方法が示された。この方法では、半導体装置中の特定箇所に、誤動作状態時に発生するデータを挿入することで、誤動作状態を再現する。
【００１３】
この誤動作状態を再現する論理を用いることで、半導体装置上で論理的に観測が可能な誤動作の再現が可能であり、且つ半導体装置の動作に及ぼす影響の検証が擬似的な再現によって可能となる。即ち、半導体装置内部に明示的に値が保持される誤動作に関して再現可能であり、且つ半導体装置の動作に及ぼす影響の検証が擬似的な再現によって可能となる。
【００１４】
非特許文献４の方法では、ＦＰＧＡ上に搭載される半導体装置の論理記述に対して、誤動作状態を再現する為の論理を必要箇所に付与する。ここで、必要箇所はレジスタに代表される静的に内部に値を保持する機能を指す。しかしながら、誤動作状態を再現する為の論理は手動による付与、もしくは全ての内部レジスタに対する付与を想定されており、効率的な方法とは言えない。
【００１５】
また、半導体装置上で動作するソフトウェアに応じて影響の調査結果は異なることが想定される。ソフトウェアの論理記述に応じて、半導体装置内で利用される論理は異なる。このため、想定されるソフトウェアの動作に応じて、検証の精度や検証範囲が異なることとなる。
【００１６】
すなわち、ソフトウェアの論理記述に依存して、検証結果が異なることが想定される。また、ソフトウェアの論理記述の規模は大小様々な形態が想定される。特に大規模なソフトウェアを用いた検証の場合には、ソフトウェアの動作に必要とされるクロック数の増大に比例して、検証時間が増大するといった懸念が挙げられる。
【００１７】
本発明の目的は、半導体装置上で発生する誤動作状態を効率的に再現し、その誤動作状態による影響の効率的な解析を実現することのできる技術を提供することにある。
【００１８】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１９】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００２０】
本発明は、エミュレーションにより半導体集積回路装置の動作検証を行う検証評価システムであって、複数の回路要素により構成される再構成可能な半導体集積回路装置と、再構成可能な半導体集積回路装置の内部もしくは外部に設けられた、該エミュレーションを実行する為の制御プログラムが格納されるメモリを有し、該制御プログラムを実行するプロセッサを備えるホストコンピュータとを備え、再構成可能な半導体集積回路装置は、複数の回路要素中の任意の回路要素をホストコンピュータの要求に応じて接続し、エミュレーションの対象となる半導体装置の回路を再構成する制御モジュールと、再構成可能な半導体集積回路装置に含まれる任意の回路要素の出力信号を検出し、当該出力信号をホストコンピュータに伝送する観測モジュールとを備え、該ホストコンピュータは、半導体装置の回路中の構成された論理の所定箇所に誤動作状態としての論理を任意の値に変更する、誤動作再現の論理を挿入することにより、誤動作再現可能な再現用半導体集積回路を生成し、誤動作再現の論理と半導体装置の対応表を予めユーザの指定した指標に従って生成し、半導体回廊装置について予めユーザが指定した観測と誤動作状態の再現を必要とするデータ情報を用いて、該対応表で所定の箇所を指定して観測モジュールに伝送し、該観測モジュールから伝送される、対応表によって特定された箇所に対応する回路の出力信号を用いて誤動作検証を実行するものである。
【００２１】
また、本願のその他の発明の概要を簡単に示す。
【００２２】
本発明では、半導体集積回路装置（ＦＰＧＡ）上に搭載する半導体装置の設計情報がＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）によって記述される点に着目し、ＨＤＬの内部構造を、ＨＤＬ解析機能を有するソフトウェアによって解析し、解析結果に基づいて誤動作挿入論理をＨＤＬに、付与することを実現する。
【００２３】
また、本発明では、誤動作挿入論理やＦＰＧＡの動作を制御するユーザ言語を定義し、ＦＰＧＡ内部の信号の遷移に応じて検証内容を動的に遷移させることで、検証総数の削減を実現する。
【００２４】
ここで、従来のＨＤＬとＦＰＧＡを用いた誤動作に対する検証方法について、概略を示す。
（１−１）半導体装置のＨＤＬを記述し、ＦＰＧＡ上で動作可能とする。
（１−２）ＨＤＬ中で検証が必要な箇所に誤動作状態を再現する論理を記述。
（１−３）ＦＰＧＡを稼動させ、誤動作状態の再現を試み、結果を観測。
（１−４）（１−３）を検証に必要な数だけ繰り返す。
（１−５）検証結果に応じて、再設計を行い（１−１）に戻る。
【００２５】
本発明では、（１−２）を自動化することで、検証環境の構築は（１−１）のみとすることで、効率化を計る。また、（１−３）及び（１−４）に関しても、動的な検証環境とすることで、検証の効率化を計る。
【００２６】
これらによって、半導体集積回路装置の設計とＨＤＬ実装以外における手動による検証の手間を省力化することが、本発明の目指す所である。
【発明の効果】
【００２７】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２８】
（１）半導体装置の設計変更や実装変更時に、自動的に検証環境を構築することが可能となる。
【００２９】
（２）上記（１）により、検証に要する時間を大幅に削減することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施の形態による検証評価システムの一例を示すブロック図である。
【図２】図１におけるハードウェア論理を示した説明図である。
【図３】フリップフロップを対象とした割り込み信号の付与の一例を示す説明図である。
【図４】Ｖｅｒｉｌｏｇ−ＨＤＬ記述によるハードウェアの論理を一例として示す説明図である。
【図５】図４の記述に対して図３の割り込み信号を付与した際のＶｅｒｉｌｏｇ−ＨＤＬ記述の一例を示す説明図である。
【図６】図１の制御フロー解析機能が作成する状態遷移表を説明する状態遷移図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００３２】
図１は、本発明の一実施の形態による検証評価システムの一例を示すブロック図、図２は、図１におけるハードウェア論理を示した説明図、図３は、フリップフロップを対象とした割り込み信号の付与の一例を示す説明図、図４は、Ｖｅｒｉｌｏｇ−ＨＤＬ記述によるハードウェアの論理を一例として示す説明図、図５は、図４の記述に対して図３の割り込み信号を付与した際のＶｅｒｉｌｏｇ−ＨＤＬ記述の一例を示す説明図、図６は、図１の制御フロー解析機能が作成する状態遷移表を説明する状態遷移図である。
【００３３】
本実施の形態において、検証評価システム１００は、図１に示すように、半導体集積回路装置であるＦＰＧＡ１１００、およびホストコンピュータとなる電子システム１１０２から構成される。
【００３４】
ＦＰＧＡ１１００内部は、再現用半導体集積回路となるハードウェア論理１１０１と、制御モジュール、および観測モジュールとなる検証対象制御論理１１０７とから構成される。また、電子システム１１０２は、通常のパーソナルコンピュータが保有する機能に加えて、制御フロー１１０３、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｉｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）生成プログラム１１１０、ならびに制御フロー解析機能１１０６を内部に保有している。
【００３５】
ユーザは、予め定義した記述言語に従って制御フロー１１０３を記述する。この記述言語を制御フロー解析機能１１０６によって解析を行い、ＦＰＧＡ１１００内で解釈実行が可能な形式に変換し、該ＦＰＧＡ１１００に転送１１０４する。
【００３６】
ＦＰＧＡ１１００では、検証対象制御論理が制御フロー解析機能１１０６によって出力された解析情報を元にハードウェア論理１１０１を制御する。具体的には、ＦＰＧＡ１１００内に格納される解析情報を元に、検証対象制御論理は制御信号１１０８を発し、ハードウェア論理１１０１を制御する。
【００３７】
検証対象となるハードウェア論理１１０１は、制御信号１１０８に応じて、データ１１０９を出力する。検証対象制御論理１１０７は、データ１１０９の結果と、制御フロー解析機能１１０６の出力結果に応じて、次の制御となる制御信号１１０８を決定する。
【００３８】
制御フロー１１０３に記述された全ての状態を検証対象制御論理１１０７が実行した後に、検証対象制御論理１１０７は最終結果データ転送１１０５を電子システム１１０２に対して行う。
【００３９】
また、電子システム１１０２内部のＨＤＬ生成プログラム１１１０は、ハードウェア論理１１０１に誤動作状態を再現する機能を付与する機能を有する。また、生成したハードウェア論理１１０１をＨＤＬ転送１１１１することよってＦＰＧＡ１１００に転送する。
【００４０】
図２は、図１におけるハードウェア論理１１０１について示した説明図である。
【００４１】
ハードウェア論理１１０１は、検証対象となる半導体装置であるハードウェア論理（ＨＤＬ）１２０２と誤動作再現の論理（ＨＤＬ）１２０１から構成される。
【００４２】
図２の誤動作再現の論理の構成は次のように行う。検証対象となるハードウェア論理１２０２中に静的に値を保持する信号線、もしくはフリップフロップや内部ラッチに対して、割り込み信号を付与し、割り込み信号によって、検証対象となるハードウェア論理１２０２の値を自由に書き変える。
【００４３】
図３は、上記の中でフリップフロップ１３０１を対象とした、非特許文献４に示された割り込み信号の付与の方法を示した説明図である。
【００４４】
フリップフロップ１３０１には、正常データと誤動作種別と誤動作値から生成される値とクロック信号ＣＬＫが入力される。正常データは、正常データであることが期待されるデータ信号であり、データ信号線にＡＮＤ回路１３０２とＸＯＲ回路１３０３を付与し、それぞれ誤動作種別と誤動作値の組み合わせを付与することで、誤動作データを生成する。図１のＨＤＬ生成プログラム１１１０は、図３に示したような割り込み信号の付与を自動的に行う。
【００４５】
以降では、ＨＤＬ生成プログラム１１１０について示す。
【００４６】
まず、図４にＶｅｒｉｌｏｇ−ＨＤＬと呼ばれるＨＤＬ記述言語の記述によるハードウェアの論理を一例として示す。また、図５に、図４の記述に対して図３の割り込み信号を付与した場合を示す。
【００４７】
図４との相違点は図４の１行目で入力となる信号が３種であったのに対し、図５の１行目では５種となっている。増加した信号線は図３の誤動作値がｆａｕｌｔ＿ｖａｌｕｅとなり、図３の誤動作種がｆａｕｌｔ＿ｋｉｎｄである。
【００４８】
これに伴い、図５の３行目と４行目のようにｉｎｐｕｔ宣言が１行目に増加した分だけ増加する。
【００４９】
また、この例ではフリップフロップにおいて誤動作状態を再現することを試みている。従って、図４の４行目、および図５の６行目でｒｅｇ宣言によって宣言したフリップフロップ４ｂｉｔが誤動作状態の再現を試みる対象となる。
【００５０】
これに伴い、図４の８行目もしくは１０行目で行われるｑの値の更新に対して、図５の１０行目もしくは１２行目で行われるｑの値の更新のような構文による値の更新を記述する。
【００５１】
これによって、図３の誤動作再現の論理を図４の論理に付与できたこととなる。この手続きを自動化し、任意のＨＤＬに対して誤動作再現の論理を付与する機能が図１のＨＤＬ生成プログラム１１１０である。
【００５２】
本実施の形態においては、全てのＨＤＬ中に誤動作再現の論理を自動的に付与する場合の、ＨＤＬ生成プログラム１１１０の構成について示す。ＨＤＬ生成プログラム１１１０は、以下の処理手順によって、誤動作再現の論理を付与する。
（０−１）全てのＨＤＬから全てのｍｏｄｕｌｅ宣言を抽出する。
（０−２）ユーザが指定したオプションに従い、信号線もしくはフリップフロップの宣言と、信号線本数またはフリップフロップ数を抽出する。
（０−３）（０−２）で抽出した信号線もしくはフリップフロップの値が更新される箇所を抽出する。
（０−４）（０−１）で抽出したｍｏｄｕｌｅ宣言に図５の１行目のように誤動作種と誤動作値に相当する変数名を付与する。
（０−５）（０−４）と同様に、入力信号線として誤動作種と誤動作値の変数名を宣言し、宣言する信号線の総数は、（０−２）で抽出した信号線本数またはフリップフロップ数とする。
（０−６）（０−３）で抽出した信号線もしくはフリップフロップが更新される箇所において、更新される信号線もしくフリップフロップの数に応じて、図５の１０行目のような様式で誤動作種と誤動作値の記述を挿入する。また、この時、挿入された信号線またはフリップフロップと誤動作種と誤動作値の信号線の対応表を別に作成する。
【００５３】
上記のような方法によって、ＨＤＬ生成プログラム１１１０は構成される。
【００５４】
また、上記の（０−６）における対応表は、図１の検証対象制御論理において、誤動作の再現を起こしたい対象の信号線もしくはフリップフロップを特定し、誤動作状態の再現をコントロールする為に用いる。この方法によって、誤動作再現の論理を自動的に付与することが可能となる。また、この表は以降で述べる制御フロー１１０３や制御フロー解析機能１１０６において用いられる。
【００５５】
次に、図１における制御フロー１１０３と制御フロー解析機能１１０６と検証対象制御論理について図を交えて示す。
【００５６】
まず、図１の制御フロー１１０３について述べる。
【００５７】
制御フロー１１０３は、誤動作状態の再現や誤動作状態に関わる観測制御を行う為の記述言語のことである。制御フロー１１０３では、大きく以下の３つの制御論理から構成される。
（１−１）図１のハードウェア論理の動作に関する制御論理。
（１−２）誤動作状態の再現と、状態観測及びＦＰＧＡに関する制御論理。
（１−３）上記の（１−１）と（１−２）を論理的に制御する制御論理。
【００５８】
上記の（１−３）は、通常のプログラミング言語で用いられる論理である。以下に挙げる論理構造がある。
（２−１）言語内で用いる変数の宣言及び変数の代入。
（２−２）変数に関する四則演算及び大小比較及び変数の参照。
（２−３）条件分岐及び条件分岐のネスト。
（２−４）繰り返し実行及び繰り返し実行のネスト及び停止。
【００５９】
上記の（１−１）に関しては、以下に挙げる論理構造がある。
（３−１）信号線もしくはフリップフロップの値参照。
（３−２）ハードウェア論理が実行したクロック数の観測。
（３−３）ハードウェア論理を一定クロックの間、強制実行。
【００６０】
上記の（１−２）に関しては、以下に挙げる論理構造がある。
（４−１）ＦＰＧＡの動作の停止制御。
（４−２）ハードウェア論理へのメモリイメージの転送。
（４−３）ハードウェア論理のメモリイメージの記録。
（４−４）信号線もしくはフリップフロップの値の変更（誤動作種と誤動作値の操作）。
（４−５）ユーザが予め設定したメッセージや値の表示。
【００６１】
上記の論理構造を持つ言語によって記述を行ったものが、図１における制御フロー１１０３である。
【００６２】
続いて、図１の制御フロー解析機能１１０６について述べる。制御フロー解析機能１１０６では、次のように解析を行う。
（５−１）制御フローの記述から、上記の（２−１）〜（２−４）に該当する記述形式を抽出し、論理条件に基づく状態遷移表を作成。
（５−２）上記の（３−１）〜（３−３）および（４−１）〜（４−５）に該当する記述形式を抽出し、上記の状態遷移表の各状態において実行する変数代入や、信号線もしくはフリフロップの値参照と値変更を状態遷移に追加。
【００６３】
ここで、上記の（５−１）と（５−２）で作成する状態遷移表を説明する状態遷移図を一例として図６に示す。図６においては、各状態として状態１と状態２と状態３とがそれぞれ存在する。
【００６４】
状態１は初期状態である。初期状態で、処理列１内部の各処理を実行し、実行の後に条件評価１を実行する。条件評価１の結果の論理値が真であれば状態２へ遷移する。
【００６５】
また、論理値が偽であれば状態３へ遷移する。状態２では、処理列２内部の各処理を実行し、実行の後に条件評価２を実行する。状態２では、同様に、処理列２内部の各処理を実行し、実行の後に条件評価２を実行する。
【００６６】
条件評価２の結果の論理値が真であれば状態１へ遷移する。また、論理値が偽であれば状態３へ遷移する。状態３では、同様に、処理列３内部の各処理を実行し、実行の後に条件評価３を実行する。条件評価３の結果の論理値が真であれば状態１へ遷移する。
【００６７】
また、論理値が偽であれば状態３へ遷移する。図６の状態遷移図はあくまで一例であるが、状態遷移の意味することは明らかになるであろう。また、上記の処理列１〜処理列３では、（３−１）〜（３−３）および（４−１）〜（４−５）を任意の組み合わせで実行する。
【００６８】
上記の状態遷移表をＦＰＧＡ内の検証対象制御論理に転送し、検証対象制御論理は、状態遷移表を逐次解釈しながら、ハードウェア論理の動作制御を行う。
【００６９】
また、ＨＤＬ生成プログラム１１１０では、対象となりうる全ての信号線もしくはフリップフロップに対して誤動作再現の論理を付与していたが、ユーザが予め指定する引数を引き渡すことで、付与の範囲を制御することもできる。
【００７０】
Ｖｅｒｉｌｏｇ−ＨＤＬに着目した場合、構文中のｍｏｄｕｌｅ間もしくはファイル間で階層構造が明示的に存在する。この点に着目し、ユーザは以下の二点について引数を引き渡す。
（６−１）最上位階層を示すモジュールもしくはファイル。
（６−２）階層構造の上位から付与するか、下位から付与するか。
（６−３）付与する階層はどの階層までとするか。
【００７１】
この階層構造を指定することで、全ての信号線やフリップフロップに対して誤動作再現の論理を付与する必要はなくなる。これを実現する為のＨＤＬ生成プログラム１１１０における処理手順を以下に示す。
（７−１）全ファイルもしくは全モジュールを抽出し、（６−１）で指定したモジュールもしくはファイルから、信号線やフリップフロップとモジュールの呼び出しの相関を解析し、その解析結果から階層構造を導く。
（７−２）（７−１）で導いた階層構造から、（６−２）と（６−３）で指定された範囲で論理を付与すべき範囲を指定する。
（７−３）（０−１）〜（０−６）で示した手順で論理を付与する。
【００７２】
上記の方法に加えて、（７−１）で割り出したモジュール単位やファイル単位、更には特定の信号線やフリップフロップに対してのみ、ユーザが指標となる引数で指定することで、限定的に論理が付与できる。
【００７３】
それにより、本実施の形態によれば、誤動作挿入論理の自動付与機能により、ハードウェア論理１２０２の構成、即ちＨＤＬにおける誤動作対策機能を行った場合においても、自動的に誤動作挿入論理を付与する機能によって、ユーザはＨＤＬの内部や詳細についての解析を行わずとも誤動作状態の再現が可能となる。
【００７４】
また、ＦＰＧＡ１１１０の内部状態に応じて、誤動作挿入や観測が可能となる独自言語とその言語の解析によって、動的な解析が実現可能となる。この結果、不要な検証を回避することが可能となる。
【００７５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００７６】
本発明は、半導体集積装置の開発システムに適している。
【符号の説明】
【００７７】
１００  検証評価システム
１１００  ＦＰＧＡ
１１０１  ハードウェア論理
１１０２  電子システム
１１０３  制御フロー
１１０４  転送
１１０５  最終結果データ転送
１１０６  制御フロー解析機能
１１０７  検証対象制御論理
１１０８  制御信号
１１０９  データ
１１１０  ＨＤＬ生成プログラム
１１１１  ＨＤＬ転送
１２０１  論理
１２０２  ハードウェア論理
１３０１  フリップフロップ
１３０２  ＡＮＤ回路
１３０３  ＸＯＲ回路
【図１】
2010283102.tif 000003
【図２】
2010283102.tif 000004
【図３】
2010283102.tif 000005
【図４】
2010283102.tif 000006
【図５】
2010283102.tif 000007
【図６】
2010283102.tif 000008