(57)【要約】【課題】ＰＬＤ等の電子機器に関して、ソフトエラー等のエラー耐性の検証を高効率化することができる技術を提供する。【解決手段】ＰＬＤ２のソフトエラー耐性を検証する検証装置１であって、ＰＬＤ２のメモリ（ＣＭ３）に構成されるユーザロジック（ＵＬ）に対し、エラー耐性の検証のためのエラー挿入情報（ｄ２１）を書き込むエラー挿入部（２０）と、ＵＬでの演算結果とその期待値とを比較する比較部（１３）と、比較結果とエラー挿入情報とを含むエラー情報（ｄ１４）を履歴として記録する記録部（１４）と、ＵＬの情報（ｄ０）を入力する入力部（１１，１２）と、エラー情報（ｄ１４）をもとに、ＵＬの部位のエラー検出ミス率を含む情報を解析する解析部（１５）とを有し、エラー挿入部（２０）は、ＵＬの情報（ｄ０）、エラー情報（ｄ１４）、及び解析結果（ｄ１５）をもとに、次の回のエラー挿入情報（ｄ２１）を決定する。【選択図】図１
2014134842.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルデバイスを含む電子機器のエラー耐性を検証する検証装置であって、
前記電子機器のユーザロジック回路の構成情報を格納するメモリに対しデータをリード及びライトする制御部と、
前記電子機器のメモリに構成されるユーザロジック回路に対し、前記エラー耐性の検証のためのエラー挿入情報を書き込むエラー挿入部と、
前記電子機器のメモリに構成されるユーザロジック回路での動作実行による演算結果とその期待値とを比較してチェックする比較部と、
前記比較結果と前記エラー挿入情報とを含むエラー情報を履歴として記録する記録部と、
前記電子機器のメモリに構成されるユーザロジック回路の情報を入力する入力部と、
前記エラー情報をもとに、前記ユーザロジック回路の部位のエラー検出ミス率を含む情報を解析して解析結果を出力する解析部と、を有し、
前記エラー挿入部は、前記ユーザロジック回路の情報、前記エラー情報、及び前記解析結果をもとに、次の回の前記エラー挿入情報を決定すること、を特徴とする検証装置。
【請求項２】
請求項１記載の検証装置において、
前記エラー挿入部は、
ランダムなエラー挿入パターンを生成するランダムパターン生成部と、
前記ユーザロジック回路の情報、前記エラー情報、及び前記解析結果をもとに、エラー挿入パターンを新規に生成するエラー挿入パターン生成部と、を有し、
前記エラー挿入部は、前記ランダムなエラー挿入パターンと、前記新規に生成したエラー挿入パターンとから、次の回に使用するエラー挿入パターン及びそれに対応するエラー挿入箇所を選択し、前記エラー挿入情報として決定すること、を特徴とする検証装置。
【請求項３】
請求項１記載の検証装置において、
前記入力部は、
前記ユーザロジック回路の論理情報の入力により、当該ユーザロジック回路を構成するブロック間または回路部間の論理接続情報を解析する論理解析部と、
前記ユーザロジック回路の実装情報の入力により、当該ユーザロジック回路を構成するブロックまたは回路部の物理配置情報を解析する実装解析部と、を有し、
前記エラー挿入部は、前記論理接続情報及び物理配置情報を用いて、次の回の前記エラー挿入情報を決定すること、を特徴とする検証装置。
【請求項４】
請求項３記載の検証装置において、
前記解析部は、前記エラー情報と、前記論理接続情報及び物理配置情報とを用いて、前記ユーザロジック回路を構成するブロックないし回路部の単位でのエラー検出ミス率を推定する計算を行うこと、を特徴とする検証装置。
【請求項５】
請求項２記載の検証装置において、
前記記録部は、前記エラー情報として、前記比較結果と、前記電子機器から出力される当該電子機器のエラー検出機構による検出エラー情報と、前記エラー挿入パターン及びエラー挿入箇所を含むエラー挿入情報と、を記録すること、を特徴とする検証装置。
【請求項６】
請求項１記載の検証装置において、
前記電子機器のメモリに構成されるユーザロジック回路の全部もしくは一部を対象とした論理シミュレーション結果データを入力し保持する論理シミュレーション結果入力部を有し、
前記エラー挿入部は、前記論理シミュレーション結果データを用いて、前記エラー挿入情報を決定すること、を特徴とする検証装置。
【請求項７】
請求項１記載の検証装置において、
前記電子機器のメモリに構成されるユーザロジック回路の全部もしくは一部または対応するテスト回路を対象として予め実施された放射線照射実験結果データを入力し保持する照射実験結果入力部を有し、
前記エラー挿入部は、前記放射線照射実験結果データを用いて、前記エラー挿入情報を決定すること、を特徴とする検証装置。
【請求項８】
請求項１記載の検証装置において、
前記電子機器のメモリは、前記ユーザロジック回路内の任意の対象のノードのデータを外部に出力して検証するために、当該ノードに接続される検証用出力回路を含む検証用ポートが構成され、
前記比較部は、前記検証用ポートから出力される検証用データと、その期待値とを比較してチェックし、
前記記録部は、前記比較結果を前記エラー情報として保持し、
前記解析部は、前記検証用データを用いて、前記エラー検出ミス率を計算すること、を特徴とする検証装置。
【請求項９】
請求項１記載の検証装置において、
前記プログラマブルデバイスを含む電子機器のメモリの内部における前記検証の対象のユーザロジック回路の領域とは別の領域に、前記エラー挿入部を含む処理部が検証回路として構成されていること、を特徴とする検証装置。
【請求項１０】
請求項１記載の検証装置において、
前記解析部は、前記ユーザロジック回路のブロックまたは回路部の物理配置情報を利用して、単一のエラー挿入の結果のエラー情報をもとに、複数ビットエラー発生時のエラー検出ミス率を解析すること、を特徴とする検証装置。
【請求項１１】
請求項１記載の検証装置において、
前記エラー挿入部は、前記エラー挿入情報の内容として、
エラー挿入位置として単一ビットにエラーを挿入する第１のエラー挿入パターンと、
エラー挿入位置として複数ビットにエラーを挿入する第２のエラー挿入パターンと、を有すること、を特徴とする検証装置。
【請求項１２】
請求項１記載の検証装置において、
ユーザにより情報を入力可能とする画面を出力する画面処理部を有し、
前記画面では、前記検証のためのパラメータをユーザにより入力可能とする項目と、前記検証の結果または途中の状態を出力する項目と、前記エラー挿入情報の詳細内容を出力する項目と、を有すること、を特徴とする検証装置。
【請求項１３】
請求項１記載の検証装置において、
前記エラー挿入部は、前記電子機器のメモリに構成されるユーザロジック回路の領域全体における複数のブロックまたは回路部の単位ごとに、エラーの現れ方の類似度を計算し、当該類似度が高い複数のブロックまたは回路部を抽出した場合、当該抽出したブロックまたは回路部のうちの一部を、次の回のエラー挿入の対象として選択すること、を特徴とする検証装置。
【請求項１４】
請求項１〜１３のいずれか一項に記載の検証装置において、
前記電子機器はＦＰＧＡであること、を特徴とする検証装置。
【請求項１５】
検証装置を用いてプログラマブルデバイスを含む電子機器のエラー耐性を検証する検証方法であって、
前記検証のためのパラメータ及び前記電子機器のユーザロジック回路の構成情報を格納するメモリに構成されるユーザロジック回路の情報をユーザにより入力する第１のステップと、
前記電子機器のメモリに構成されるユーザロジック回路に対する前記エラー耐性の検証のためのエラー挿入情報を決定する第２のステップと、
前記電子機器のメモリに構成されるユーザロジック回路に対して前記エラー挿入情報のデータを書き込む第３のステップと、
前記電子機器のメモリに構成されるユーザロジック回路での動作実行による演算結果及び検出エラー情報を出力する第４のステップと、
前記演算結果とその期待値とを比較してチェックする第５のステップと、
前記比較結果と前記検出エラー情報と前記エラー挿入情報とを含むエラー情報を履歴として記録する第６のステップと、
前記エラー情報をもとに、前記ユーザロジック回路の部位のエラー検出ミス率を含む情報を解析して解析結果を出力する第７のステップと、
前記検証の終了の条件を判定して当該条件を満たす場合は終了し、満たさない場合は前記第２のステップに戻る第８のステップと、を有し、
前記第２のステップでは、
ランダムなエラー挿入パターンを生成するステップと、
前記ユーザロジック回路の情報、前記エラー情報、及び前記解析結果をもとに、エラー挿入パターンを新規に生成するステップと、を有し、
前記第２のステップでは、前記ユーザロジック回路の情報、前記エラー情報、及び前記解析結果をもとに、前記ランダムなエラー挿入パターンと、前記新規に生成したエラー挿入パターンとから、次の回に使用するエラー挿入パターン及びそれに対応するエラー挿入箇所を選択し、前記エラー挿入情報として決定すること、を特徴とする検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器のソフトエラー耐性などの信頼性の検証技術に関する。
【背景技術】
【０００２】
半導体デバイスの微細化・高集積化に伴い、環境放射線（地上における宇宙線中性子やα線など）に起因するソフトエラーの問題が、各種の電子機器、特にＳＲＡＭや論理ゲートやクロック系などの回路について顕在化している。電子機器のソフトエラー耐性などの信頼性を検証する技術が必要とされている。
【０００３】
環境放射線に起因するソフトエラーのメカニズムについては例えば以下のように説明されている。極めて高いエネルギーを有する中性子が、デバイスを構成する原子核内に突入すると、核内の核子（中性子、陽子）が衝突を繰り返し、特に高いエネルギーを持った核子が核外に放出される。核子が核外に飛び出すだけの運動エネルギーを持ち得ない状態になると、励起状態にある残留原子核から、陽子、中性子、重陽子、α粒子などの軽粒子が蒸発する過程が続く。そして最終的に残留核も反挑エネルギーを持つため、これらの２次粒子は、全てその飛程に見合った距離、デバイスの中を飛ぶことになる。
【０００４】
半導体パッケージなどに含まれる放射性同位元素から発生するα線や、核反応の結果発生する電荷を持った２次イオンが、例えばＳＲＡＭの“high”状態にあるストレージノードの空乏層を通過すると、電子はノードに吸収され正孔は反対方向に流れイオンの飛跡に沿って電荷収集領域が広がるファネリングメカニズムによってストレージノードに電荷が収集される。臨界電荷量以上の電荷が収集されると、“high”状態が“low”状態に推移し、ソフトエラーになる。上記が環境放射線に起因するソフトエラーのメカニズムとして考えられてきた典型的なメカニズムであり、ＳＥＵ（Single Event Upset）とも称する。
【０００５】
メモリデバイスのＳＥＵについて、複数のセルが同時にエラーになるケースをＭＣＵ（Multi Cell Upset）と呼んで、ＳＢＵ（Single Bit Upset：単一ビットエラー）とは区別する。ＭＣＵは、同一ワードに発生した場合、ＭＢＵ（Multiple Bit Upset）と呼び、通常のＥＣＣ（Error Correction Code）では修復困難であるため、システムダウンに至る可能性がある。
【０００６】
上記ＳＥＵを含むソフトエラーは、ハードエラー（ハードウェアの固定故障）とは異なり、エラー発生後も、新たなデータに更新され、再起動などによって正常に復帰してしまうために、エラーの要因特定が困難といった問題もある。このように電子機器の論理回路に発生するソフトエラーの影響とは、コンピュータのプロセッサやＡＳＩＣや制御用デジタル回路などでの誤作動を引き起こすことを意味し、電子システムとしての誤作動の要因となることが懸念される。
【０００７】
近年では、様々な電子システムの制御用ロジック回路などとして、プログラマブル・デバイスないしプログラマブル・ロジック・デバイス（以下適宜ＰＬＤと略称）が多用されている。ＰＬＤはプログラム可能な論理回路ないしメモリを含んで成り、ユーザがＰＬＤを購入後に所望の機能（ユーザロジック）を当該論理回路にプログラムすることで専用ロジック回路として利用可能となる。ＰＬＤの中でも特にＦＰＧＡ（Field Programmable Gate Array）の利用は増大している。ＦＰＧＡは、ロジック回路情報（ユーザロジック回路の構成情報）をデバイス内部のメモリ（コンフィギュレーションメモリ、以下適宜ＣＭと略称）に格納することで、演算回路や制御回路を構築する。
【０００８】
しかしながら上記ＦＰＧＡのメモリに格納されたデータないしロジックが、ソフトエラーにより破壊されることで、電子システムの誤作動を引き起こす可能性があることが問題視されつつある。通常、電子機器・電子システムとして誤動作による影響が出ないように設計で考慮されているが、消費電力、開発・検証の工数、コスト等の増大を招く要因となっている。
【０００９】
ＦＰＧＡ等の回路デバイスのソフトエラー対策の有効性（ソフトエラー耐性）を検証する手法としては、対象デバイス（そのメモリないし論理回路にプログラムされたデータ）に対して意図的にエラー（エラーデータ）を挿入した時の当該デバイスの動作を検証する手法、いわゆるエラー挿入手法がある。
【００１０】
上記技術に関して、例えば特表２０１０−５０７１７０号公報（特許文献１）（「ソフトウェア試験のために過渡ハードウェア故障を注入する方法及び装置」）がある。特許文献１では、「本発明は動的故障を回路デバイスに注入するための方法及び装置を含む。装置は、回路デバイスの複数の出力部のうちの選択されたもの及び回路デバイスの複数のエラーレジスタのうちの選択されたものの少なくとも１つを識別する選択データを受信するように適合された第１のレジスタ、出力部のうちの選択されたもの及びエラーレジスタのうちの選択されたものの少なくとも１つに向けた伝達のための動的故障データを受信するよう適合された第２のレジスタ、及び出力部のうちの選択されたものの各々及びエラーレジスタのうちの選択されたものの各々の少なくとも１つに動的故障を供給するように、選択データを第１のレジスタに、及び動的故障データを第２のレジスタに適用するためのコントローラを含む。」等と記載されている。即ち、エラー検出レジスタを変化させエラー挿入を模擬しソフトウェアの動作を評価する品質評価手法に関して記載されている。
【００１１】
また、エラー耐性の検証において故障・欠陥総数を推定する手法として、時系列データ（言い換えると履歴情報）を使用する手法がある。例えば特開平５−３２４３０９号公報（特許文献２）（「ソフトウェア品質評価装置」等）がある。特許文献２では、「本発明の目的は高い信頼度で完成度評価を可能にすることにある。」「テストケース(T.Cs)に従って評価対象ソフトウェア(S.W)を実行させる実行手段と、該実行に使用したT.Cs数の情報とS.Wに対するテストカバレッジ情報と検出バグ数とをデータ収集する収集手段と、該収集データをもとにT.Csの有する能力を推定する能力推定手段と、該T.Csの能力について所定の規則に従って補正し、テストカバレッジの情報を用いてT.Csの良さを求める手段と、収集手段の収集デ−タをもとにS.W信頼性成長モデルに基づいてS.W潜在のバグ総数推定値を得る第１推定手段と、収集手段の収集デ−タのうち、T.Cs数の情報と検出バグ数とを用い信頼性成長モデルに基づいてS.W潜在のバグ総数推定値を得る第２推定手段と、第１，２推定手段による各推定値に対し所定の規則に従って処理してバグ総数推定結果を得る総合判断手段とより構成する。」等と記載されている。即ち、テストケースの全てを評価する前の途中段階で、テストケースを使って評価した時系列データを使い、故障と欠陥総数を推定する検証手法に関して記載されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特表２０１０−５０７１７０号公報
【特許文献２】特開平５−３２４３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述のように、半導体デバイスの微細化・高集積化に伴い、電子機器における環境放射線を起因とするソフトエラーの影響が拡大している。中でもＦＰＧＡ等のＰＬＤでのソフトエラーの頻度が増大し、ＦＰＧＡ等のＰＬＤの利用が増えている電子システムへの影響が増大する可能性がある。
【００１４】
このような状況に対して、従来のＰＬＤの対策としては、ＥＣＣ（誤り訂正符号）によるエラー検出・訂正機構などに対応したエラー検出器の搭載や、ＴＭＲ（三重冗長化）等の、エラー耐性向上技術を採用した設計が行われている。またＰＬＤを搭載した電子システムでは、ハードウェアの二重化などの冗長構成による対策などが行われている。
【００１５】
しかしながら、これらエラー耐性技術を施した電子機器（ＰＬＤ）・電子システムにおけるソフトエラー等の一過性エラーの耐性を検証（ないし試験など）することは容易ではない。
【００１６】
例えば、従来、中性子によるソフトエラーの耐性検証方法として、中性子照射実験による検証が行われてきた。この方法では、実機の実測による検証が可能であるが、粒子加速器などを使用する大掛かりな実験が必要であり、実験時間が制限され、高コストである。即ち電子機器・電子システムの設計時には手軽に利用できないという課題がある。
【００１７】
また実機によるエミュレーションでソフトエラー耐性を検証する方法として、前述のエラー挿入手法がある。例えばＦＰＧＡベンダからエラー挿入機能が提供されている。この手法及び機能では、対象デバイス（ＦＰＧＡ）におけるユーザ側で決定する部位（メモリ内の所望の箇所）に対してエラーを挿入した時の演算結果とそれに対応する演算期待値とを比較することで、ソフトエラー耐性の有無を検証する。
【００１８】
しかしながら、上記エラー挿入箇所の決定手法については考慮されていない。効果的な検証のためには上記エラー挿入箇所を効果的に選択する必要があると考えられるが、そのような手法及び機能については考慮されていない。先行技術文献でも上記エラー挿入箇所の決定手法については言及されていない。
【００１９】
またＦＰＧＡ等のＰＬＤの大容量化と共に、エラー挿入対象箇所及び候補が増加する。そのため、従来手法のままでは、検証時間が増大化してしまう課題がある。従って、ＰＬＤのメモリ領域全体におけるエラー挿入対象箇所の増大に対応できる、高効率なエミュレーション等による検証手法の確立が必須である。
【００２０】
本発明の目的は、ＰＬＤ等の電子機器に関して、ソフトエラー等のエラー耐性の検証を高効率化することができる技術を提供することである。
【課題を解決するための手段】
【００２１】
上記目的を達成するため、例えば特許請求の範囲に記載の構成を採用する。
【００２２】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、「プログラマブルデバイスを含む電子機器のエラー耐性を検証する検証装置であって、前記電子機器のユーザロジック回路の構成情報を格納するメモリに対しデータをリード及びライトする制御部と、前記電子機器のメモリに構成されるユーザロジック回路に対し、前記エラー耐性の検証のためのエラー挿入情報を書き込むエラー挿入部と、前記電子機器のメモリに構成されるユーザロジック回路での動作実行による演算結果とその期待値とを比較してチェックする比較部と、前記比較結果と前記エラー挿入情報とを含むエラー情報を履歴として記録する記録部と、前記電子機器のメモリに構成されるユーザロジック回路の情報を入力する入力部と、前記エラー情報をもとに、前記ユーザロジック回路の部位のエラー検出ミス率を含む情報を解析して解析結果を出力する解析部と、を有し、前記エラー挿入部は、前記ユーザロジック回路の情報、前記エラー情報、及び前記解析結果をもとに、次の回の前記エラー挿入情報を決定すること」を特徴とする。
【００２３】
また「前記エラー挿入部は、ランダムなエラー挿入パターンを生成するランダムパターン生成部と、前記ユーザロジック回路の情報、前記エラー情報、及び前記解析結果をもとに、エラー挿入パターンを新規に生成するエラー挿入パターン生成部と、を有し、前記エラー挿入部は、前記ランダムなエラー挿入パターンと、前記新規に生成したエラー挿入パターンとから、次の回に使用するエラー挿入パターン及びそれに対応するエラー挿入箇所を選択し、前記エラー挿入情報として決定すること」を特徴とする。
【発明の効果】
【００２４】
本発明のうち代表的な形態によれば、ＰＬＤ等の電子機器に関して、ソフトエラー等のエラー耐性の検証を高効率化することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態１の検証システムの構成を示す図である。
【図２】実施の形態１で、エラー情報記録部内のデータ構成例を示す図である。
【図３】実施の形態１で、エラー情報解析部の構成例を示す図である。
【図４】実施の形態１で、エラー挿入パターン生成部の構成例を示す図である。
【図５】実施の形態１で、エラー挿入手法について示す図である。
【図６】実施の形態１で、エラー挿入パターン決定方法の例を示す説明図である。
【図７】実施の形態１で、エラー耐性の検証に関する表示画面例を示す図である。
【図８】実施の形態１で、検証装置及び検証方法の処理フロー例を示す図である。
【図９】本発明の実施の形態２の検証システムの構成を示す図である。
【図１０】本発明の実施の形態３の検証システムの構成を示す図である。
【図１１】本発明の実施の形態４の検証システムの要部の構成を示す図である。
【図１２】本発明の実施の形態５の検証システムの要部の構成を示す図である。
【図１３】本実施の形態の動的な制御のイメージを示す図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。なお図面中に示す処理部間の矢印などの線は一部の線のみ図示している。
【００２７】
＜概要等＞
本実施の形態は、ＰＬＤを対象とした環境放射線に起因するソフトエラーの耐性を検証する手法に適用した場合を説明する。本検証装置及び対応する検証方法は、ＰＬＤのコンフィギュレーションメモリ（ＣＭ）のソフトエラー耐性を検証する手法として、前述のエラー挿入手法を用い、これに対応するエラー挿入機能及び検証機能などを有する。本機能では、検証（ないし試験）の際、前述のように、ＰＬＤ（ＣＭ）に対してエラー（エラー挿入パターン）を挿入し、ＰＬＤ（ＣＭ）での演算結果と演算期待値とを比較してエラーチェックし、当該エラー情報を履歴（時系列データ）として記録する。そして、エラー情報（履歴）を用いて解析などを行い、次の回のエラー挿入内容（エラー挿入パターン及びエラー挿入箇所など）を動的に変更・決定するという機能を有する。言い換えると過去のエラー情報ないし検証結果をもとに、未来のエラー挿入内容を効果的に決定するようにフィードバック制御を行う。この機能で、対象メモリ領域全体の中から次の回のエラー挿入箇所を効果的に選択する。特に、エラー挿入箇所を縮減するように選択し、これにより検証を高効率化する。ＰＬＤの容量の増大に対しても実用的時間で検証可能となる。
【００２８】
本検証装置は、検証時のエラー挿入（エラー挿入パターン）情報を生成しエラー挿入を制御する手段と、当該エラー挿入（エラー挿入パターン）に対応してＰＬＤのＣＭを直接リード及びライトする手段と、ＰＬＤのＣＭに構築されるユーザロジックでの当該エラー挿入に対応した演算結果とその期待値との比較を行う手段と、当該比較結果とエラー挿入パターン情報とを含む情報をエラー情報（履歴）として記録する手段と、当該エラー情報（履歴）をもとに、対象ユーザブロックのエラー検出ミス率などのエラー耐性の指標値を解析する手段と、ユーザロジックの回路情報を解析する手段（例えば回路論理データからユーザブロックのブロック間接続情報などを含む論理情報を解析する手段、及び回路実装データからユーザブロックの物理的配置情報などを解析する手段）と、上記エラー情報（履歴）、指標値の解析結果、及びユーザロジックの解析情報をもとに、次の回の前記エラー挿入（エラー挿入パターン）情報を生成または選択して前記ＰＬＤに対するエラー挿入を実行する手段と、を有する構成である。上記構成での動作・処理例として、エラー挿入パターンに従いＣＭにエラーを挿入してユーザロジックを動作させ、その出力をエラーチェックし、エラー発生の有無、及びエラー挿入パターン等が記録される。そしてこの蓄積記録情報（エラー情報）と、ＰＬＤの論理情報及び実装情報から得られるユーザブロック間接続情報及び物理配置情報などとから、次の回のエラー挿入箇所及びパターン等が決定される。
【００２９】
＜実施の形態１＞
図１〜図８を用いて、本発明の実施の形態１について説明する。
【００３０】
［システム］
図１に、実施の形態１のシステムである、プログラマブルデバイス（ＰＬＤ）のソフトエラー耐性の検証システムの全体の構成を示す。本システムは、検証装置１、及びプログラマブルデバイス（ＰＬＤ）２等を含んで成る。ＰＬＤ２と検証装置１が接続されている。検証装置１は、ＰＤＬ２の環境放射線起因ソフトエラー耐性検証装置であり、ＰＬＤ２のＣＭ３のソフトエラー（ＳＥ）耐性を検証する機能を有する。また検証装置１に対してユーザ（検証者）Ｕの端末１００が接続されている。
【００３１】
ＰＬＤ２は、コンフィギュレーションメモリ（ＣＭ）３と、コンフィギュレーションメモリ・リード／ライト（ＣＭＲ／Ｗ）回路４とを含んで成る。ＰＬＤ２は例えばＦＰＧＡである。なおＰＬＤ２に類するデバイスであれば本システムに適用可能である。ＣＭ３は、ユーザロジック回路の構成情報を格納するメモリであり、メモリ素子ないし論理素子のアレイを含んで成り、入力データ（Ｄ０）に従い、所望の機能（ユーザロジック：ＵＬ）を実現する回路情報（ユーザロジック回路の構成情報）を格納する（言い換えるとＵＬがプログラムされる）。ＣＭＲ／Ｗ回路４は、ＣＭ３内の指定位置のデータを直接リード／ライトする機能を有するメモリ制御部である。またＰＬＤ２はＥＣＣ等によるエラー検出機構を備えている。
【００３２】
ユーザ（検証者）Ｕの端末１００は、例えばＰＣ等であり、画面処理部１０１、ディスプレイ１０２等を備える。画面処理部１０１は、ディスプレイ１０２にＧＵＩ（グラフィカルユーザインタフェース）となる画面を表示する処理などを行う。ユーザ（検証者）Ｕは、本画面で各種データ情報の確認や検証装置１に対する指示入力などが可能である（後述）。画面処理部１０１は、検証装置１の解析結果（ｄ１５）やエラー情報（ｄ１４）等の各種データ情報を取得する。
【００３３】
検証装置１は、エラー挿入部２０（エラー挿入パターン生成部２１、ランダムパターン生成部２２）、論理情報解析部１１、実装情報解析部１２、演算期待値比較部１３、エラー情報記録部１４、エラー情報解析部１５、等を有する構成である。検証装置１は、ＵＬ情報（ｄ０）、演算期待値データ（ｄ６）等の必要なデータ情報を入力または記憶する。またユーザＵはこれらのデータ情報を検証装置１または端末１００で入力・出力することができる。
【００３４】
論理情報解析部１１は、ＵＬ情報（ｄ０）のうちの回路論理データ（ｄ１）を入力して解析処理し、その結果であるＵＬの論理情報（ｄ１１）を取得し記憶及び出力する。ＵＬの論理情報（ｄ１１）は、ＰＬＤ２のＣＭ３（ＵＬ）における回路間の論理的接続情報を含む。実装情報解析部１２は、ＵＬ情報（ｄ０）のうちの回路実装データ（ｄ２）を入力して解析処理し、その結果であるＵＬの実装情報（ｄ１２）を取得し記憶及び出力する。ＵＬの実装情報（ｄ１２）は、ＰＬＤ２のＣＭ３（ＵＬ）における物理的回路配置情報を含む。上記１１，１２では、ＵＬ情報（ｄ０）を参照・解析することで、ＵＬとしてＣＭ３内のどの領域を使用しているか等がわかる。エラー挿入部２０ではその情報（ｄ１１，ｄ１２）を用いてエラー挿入箇所などを決定する。なおＵＬ情報（ｄ０）は入力データ（Ｄ０）と対応する。上記１１及び１２は言い換えるとＵＬ入力部ないし解析部である。
【００３５】
演算期待値比較部１３は、ＰＬＤ２のＣＭ３の出力から入力するＵＬ演算結果データ（ｄ５）と、演算期待値データ（ｄ６）とを比較してその比較結果（ｄ１３）を出力する。ＵＬ演算結果データ（ｄ５）は、エラー挿入部２０（２１）から入力するデータ（ｄ２１）に基づくＰＬＤ２のＣＭ３のＵＬでの演算結果のデータである。演算期待値データ（ｄ６）は、予めエラー挿入の実行前に検証装置１等で計算された、ＰＬＤ２のＣＭ３のＵＬの演算（ｄ５）の期待値データであり、エラー挿入を行わずにＵＬを動作させた演算結果のデータ（ソフトエラーが発生しない場合の正常な演算結果データ）である。もしくは、演算期待値データ（ｄ６）は、後述（実施の形態２）の論理シミュレーションの結果データを用いてもよい。
【００３６】
エラー情報記録部１４は、ＰＬＤ２での上記ｄ２１の入力及びｄ５の出力に伴い、ＰＬＤ２のＥＣＣ等のエラー検出機構で検出されたエラーを示す検出エラー情報（ｄ８）と、演算期待値比較部１３の出力である比較結果の情報（ｄ１３）と、エラー挿入パターン生成部２１の出力のエラー挿入パターン（ｄ２１）とを入力し、それらを組み合わせて、エラー情報（ｄ１４）として記録・蓄積する。即ちエラー情報（ｄ１４）は、ＵＬ動作時のエラーデータ及びエラー履歴情報である。エラー情報記録部１４は、後述図２のエラー情報記録テーブルＴ１及び期待値エラービット位置一覧テーブルＴ２などを管理する。
【００３７】
エラー情報解析部１５は、エラー情報記録部１４で蓄積されたエラー情報（ｄ１４）をもとに、解析処理により、ソフトエラー耐性の検証結果ないし解析結果（ｄ１５）を生成・出力する。端末１００は解析結果（ｄ１５）を入力して画面表示処理などを行う。
【００３８】
なお端末１００では、検証装置１で扱うその他の各種のデータ情報（ｄ１１，ｄ１２，ｄ６，ｄ１４，ｄ２１等）を同様に画面で表示してユーザにより確認や編集を可能としてもよい。
【００３９】
エラー挿入部２０において、ランダムパターン生成部２２は、ＵＬの実装情報（ｄ１２）を用いて、ＣＭ３の物理的な領域全体に対するランダムな位置に対するエラー挿入のためのランダムパターン（ランダムエラー挿入パターン）（ｄ２２）を生成する。ランダムパターン（ｄ２２）は、エラー挿入パターン（ｄ２１）の生成のために用いる。なお２２と２１を統合して１つにしても構わない。
【００４０】
エラー挿入パターン生成部２１は、エラー情報（ｄ１４）と、解析結果（ｄ１５）と、論理情報（ｄ１１）と、実装情報（ｄ１２）と、ランダムパターン（ｄ２２）とを用いて、ＣＭ３に与えるためのエラー挿入パターン（ｄ２１）を生成・決定し、当該エラー挿入パターン（ｄ２１）を用いてＣＭＲ／Ｗ回路４を制御する。そしてＣＭＲ／Ｗ回路４により当該エラー挿入パターン（ｄ２１）に応じてＣＭ３の指定された箇所（位置）に対し当該エラー挿入パターン（ｄ２１）のデータがライトされる（即ちエラー挿入される）。なおエラー挿入パターン（ｄ２１）は、ＵＬの入力（Ｄ０）は含まれず、ＣＭ３領域におけるエラー挿入箇所（位置）の情報とその挿入のタイミングの情報とを含む。
【００４１】
実施の形態１のシステムでは、検証装置１は、ＰＬＤ２（ＣＭ３）の外部の専用回路ないし専用装置として設けられ接続されている。なお検証装置１とユーザの端末１００とを分けた構成に限らず、１つに統合した形態としてもよい。なお後述の他の形態として、検証装置１は、ＰＬＤ２（ＣＭ３）の一部として設けることもできる。
【００４２】
［エラー情報］
図２の（ａ）は、エラー情報記録部１４におけるエラー情報（ｄ１４）を履歴として記録し保持するエラー情報記録テーブルＴ１の構成一例を示す。エラー情報記録テーブルＴ１は、左端の項目から順に、（ａ）識別番号、（ｂ）エラー挿入パターン、（ｃ）エラー検出情報、（ｄ）期待値エラー情報を有する。（ａ）識別番号は、エラー挿入イベント（言い換えると各回の検証ないし試験）を識別するための番号である。（ｂ）エラー挿入パターンは、エラー挿入パターン生成部２１で生成・出力したエラー挿入パターン（ｄ２１）の情報（例えばビット列）であり、エラー挿入箇所ないし位置情報（例えばエラービットを書き込むメモリセル）、及びタイミング情報を含む。（ｃ）エラー検出情報は、ＰＬＤ２のエラー検出機構で検出された検出エラー情報（ｄ８）であり、例えば前述のＥＣＣの情報である。なおＥＣＣに限らず適用可能である。（ｄ）期待値エラー情報は、演算期待値比較部１３での比較結果（ｄ１３）の情報であり、例えば一致／不一致を示すフラグである。演算結果（ｄ５）と演算期待値（ｄ６）との比較で反転していたビットがある場合、不一致のフラグとして記録される共に、下記テーブルＴ２の期待値エラービット位置として記録される。なお（ｄ）の情報としては、フラグに限らず、例えば不一致の箇所（ＣＭ３内の位置）の情報を同時に記録する構成としてもよい。
【００４３】
図２の（ｂ）は、後述の期待値エラービット位置一覧を格納するテーブルＴ２の一構成例である。なおテーブルＴ２はエラー挿入部２０などの他の場所で記録するようにしてもよい。
【００４４】
［エラー情報解析部］
図３は、エラー情報解析部１５の構成例を示す。エラー情報解析部１５は、エラー挿入回数カウント部３１と、エラー事象重み付け部３２と、エラー数加算部３３と、エラー検出ミス率計算部３４とを有する構成である。エラー情報解析部１５は、概要としては、エラー情報（ｄ１４）及び必要に応じてＵＬ情報（ｄ０）等を用いて、エラー検出ミス率（ｄ３４）を推定する計算を行う。
【００４５】
エラー挿入回数カウント部３１は、入力のエラー情報（ｄ１４）から、エラー挿入回数をカウントする。エラー事象重み付け部３２は、エラー情報（ｄ１４）に、エラー事象としての情報の重み付けを行う。エラー数加算部３３は、３２による重み付けに従い、エラー数（エラー事象数）を加算する。エラー検出ミス率計算部３４は、３１によるエラー挿入回数と、３３による重み付きエラー事象数から、エラー検出ミス率（ｄ３４）を計算する。エラー検出ミス率（ｄ３４）は、エラー耐性の指標値（ソフトエラー発生可能性が高い部位（例えばブロックや回路部など）を判断するための値）であり、出力の解析結果（ｄ１５）の中に含まれる。特に、エラー情報解析部１５は、ＵＬ情報（論理接続情報及び物理配置情報）を用いて、ＵＬを構成するブロックまたは回路部の単位でのエラー検出ミス率（ｄ３４）を推定計算する。
【００４６】
本実施の形態では、ＳＥ耐性の検証のため、エラー情報（ｄ１４）に基づきエラー挿入箇所及び対応するエラー挿入パターン（ｄ２１）を動的に変更する制御を行うが、そのために、本エラー情報解析部１５の構成例では、エラー検出ミス率（ｄ３４）を計算（言い換えると推定）し、同時にその演算誤差を計算する。この際、例えば重点的サンプリング法などの、エラー挿入パターンの実現確率で重み付けをしたモンテカルロ法（ランダム法）によって上記エラー検出ミス率（ｄ３４）及び演算誤差を計算する。
【００４７】
他の実施の形態として、エラー情報解析部１５等では、ユーザロジックのブロックまたは回路部の物理配置情報（ｄ１２に含まれる）を利用して、単一のエラー挿入の結果のエラー情報（ｄ１４）をもとに、複数ビットエラー発生時のエラー検出ミス率（ｄ３４）を解析してもよい。
【００４８】
［エラー挿入パターン生成部］
図４は、エラー挿入パターン生成部２１の構成例を示す。エラー挿入パターン生成部２１は、エラー出現確率計算部４１と、エラー挿入パターン生成部４２と、エラー挿入パターン選択部４３とを有する構成である。
【００４９】
エラー出現確率計算部４１は、ある試験の回（エラー挿入イベント）におけるＣＭ３に発生したエラーが演算結果として外部に出現する確率（エラー出現確率：ｄ４１）を、前述のＵＬの論理情報（ｄ１１）と、ＵＬの実装情報（ｄ１２）と、エラー情報（ｄ１４）と、解析結果（ｄ１５）とに基づき計算する。
【００５０】
エラー挿入パターン生成部４２は、上記４１で求めたエラー出現確率（ｄ４１）に基づき、次の試験の回の候補のためのエラー挿入パターン（ｄ４２）を生成する。
【００５１】
エラー挿入パターン選択部４３は、上記４２で作成したエラー挿入パターン（ｄ４２）と、前述のランダムパターン（ｄ２２）とから、１つを選択して、次の試験の回に使用するエラー挿入パターン（ｄ２１）を決定し、ＰＬＤ２（ＣＭＲ／Ｗ回路４）へ出力する。
【００５２】
上記４３におけるエラー挿入パターンの選択方法として、例えば、エラー情報（ｄ１４）の履歴が少ない時（まだ試験の回数が少ない時）は、ランダムパターン（ｄ２２）を選択し、そうでない場合（ある程度の試験の回数を実施した時）は、上記４２で生成したエラー挿入パターン（ｄ４２）を選択する。なお必ずしも決定的に選択する必要は無く、両者のうち一方を確率的に選択する方法などを用いてもよい。
【００５３】
［エラー挿入手法］
図５は、補足としてエラー挿入手法について簡単に示す。（ａ）は、ＰＬＤ２のＣＭ３領域内のある位置（複数のメモリセル）におけるＵＬのビット状態を示す。メモリセルのアレイにおいてＸを列、Ｙを行とする。ある位置として例えばＹ１行のＸ１〜Ｘｍ列の複数ビットに着目する。例えば００１１０……０といった並びである。（ａ）は正常な演算期待値（ｄ６）のデータに対応する。例えばＳＢＵのソフトエラー発生を想定して、位置（Ｙ１，Ｘ２）のビットをエラー挿入箇所とする。その場合、（ｂ）のようなエラー挿入パターン（上書きの場合）となり、位置（Ｙ１，Ｘ２）は反転ビットとなる。（ｃ）は（ｂ）に対応する反転ビット位置指示の場合のパターン情報である。エラー挿入パターン生成部２１から上記のようなエラー挿入パターン情報（ｄ２１）をＣＭＲ／Ｗ回路４へ与え、ＣＭＲ／Ｗ回路４からＣＭ３の該当位置の領域へ当該パターンのデータがライト（上書き）される。演算の結果、上記エラー挿入位置（Ｙ１，Ｘ２）のビットでエラーが検出された場合、「演算期待値エラー」とし、「期待値エラービット位置」（図２（ｂ））を記録する。即ち、演算結果（ｄ５）と演算期待値（ｄ６）とを比較して、演算結果（ｄ５）の中で差異として反転していたビットの位置を、「期待値エラービット位置」として、図２（ｂ）のように記録する。
【００５４】
［エラー挿入パターン決定方法］
図６は、エラー挿入パターン生成部２１におけるエラー挿入パターン（ｄ２１）の決定方法の例を示す。前提（初期段階）として、ランダムパターン生成部２２で生成したランダムパターン（ｄ２２）によるエラー挿入パターン（ｄ２１）を、ＣＭ３領域へ一定回数挿入し、その結果のエラー情報（ｄ１４）をエラー情報記録部１４に蓄積しておく。
【００５５】
まず図６（ａ）のように、本実施の形態（エラー挿入パターン生成部２１）では、ＣＭ３（ＵＬ）の対象領域の全体を、仮想的に複数のブロック（ユーザブロック）に区切って考える。即ち分割されたブロック領域の単位を取り扱う。図６（ａ）は、ＣＭ３（ＵＬ）の領域のブロック（ｂとする）への分割の例を示している。例えばブロックｂ１１〜ｂ４４がある。
【００５６】
次に、エラー挿入パターン生成部２１は、上記蓄積されたエラー情報（ｄ１４）をもとに、ＣＭ３領域の複数のブロックｂにおける、ブロックｂ単位の演算エラーの現れ方の類似度を計算し、当該類似度が高いブロックｂを抽出する。
【００５７】
上記演算エラーの現れ方の定性的基準の例として、図２（ｂ）の期待値エラービット位置一覧テーブルＴ２を示している。本テーブルＴ２では、前述の演算期待値エラーが起きた時に値が反転していたビットの位置を、期待値エラービット位置として記録している。Ｔ２は言い換えるとエラー発生実績情報を示す。
【００５８】
図２（ｂ）のテーブルＴ２で、左列はエラー挿入回数、右列はＣＭ３（ＵＬ）領域の各ブロックｂごとの期待値エラービット位置を示す。例えば１回目のエラー挿入時、図６のブロックｂ１１内の期待値エラービット位置が、ブロック内先頭ビットからの換算で１０ビット目及び３１ビット目であることを示す。エラー挿入パターン生成部２１は、上記テーブルＴ２などに基づき、上記ブロックｂ単位の演算エラーの現れ方の類似度を計算する。
【００５９】
また、上記類似度の高いブロックの抽出方法として、例えば、質的変数を対象に類似性の高いものを抽出できる公知の対応分析法（ＡＦＣ）などを利用した抽出方法が適用できる。上記類似度の高いブロックは、ＵＬのデータフロー上の関連性の高い回路部や、同一のバスを構成している回路部など、演算出力への影響が似ている回路部で構成される（当該ＵＬ内容はＵＬ情報（ｄ０）からも解析可能である）。よって、類似（ほぼ同じ）のエラー具現化率（エラー出現確率ともいう）になると考えられる。そのため本システムでは、上記抽出した類似度の高いブロック群（２つ以上のブロック）のうち１つのブロックを選び、当該ブロックでエラー具現化率を計算し、その結果を残りのブロックの計算結果として使用する。これにより、エラー具現化率の計算を簡略化・削減して、高速化できる。従って、ＣＭ３領域に対するエラー挿入回数を削減でき、検証の高効率化ができる。
【００６０】
図６（ｂ）は、上記エラー具現化率の計算の簡略化の例である。ブロックｂのエラー具現化率をｅとする。例えばブロックｂ１１とブロックｂ２２の（演算エラーの現れ方の）類似度が高いので、類似のブロックとして抽出し、それらのエラー具現化率ｅ１１＝ｅ２２として近似し、一方のブロックｂ２２で代表する場合である。次回以降の試験では、一方のブロックｂ２２を対象箇所としてエラー挿入をすれば効率的である。結果としてブロックｂ１１へのエラー挿入が必要無くなる。よって、前述のエラー率（エラー検出ミス率ｄ３４、エラー出現確率ｄ４１など）の計算に必要なエラー挿入回数を削減でき、エラー率を高速に計算できる。エラー挿入パターン生成部２１からの各回のエラー挿入時に、エラー情報（ｄ１４）をもとに上記のような計算を採り入れ、エラー挿入箇所及びエラー挿入パターンを効率化する。
【００６１】
なお上記ブロック分割の手法に限らず類似の手法を適用可能である。例えばＵＬ情報（ｄ０）ないしその解析情報を用いて、ＵＬ回路部などの単位で柔軟に分割してもよい。またブロック（矩形）に限らず所望の形状の単位（例えば縦または横のライン単位）で分割してもよい。
【００６２】
また本実施の形態では上記エラー挿入パターン（ｄ２１）のエラー挿入回数（総数）については特に限定しない。例えば、単一エラーであるＳＥＵに対する耐性の検証を目的とする場合は、１つのエラーを挿入し、複数ビットエラーであるＭＣＵに対する耐性の検証を目的とする場合は、複数のエラーを挿入する。ＭＣＵの耐性検証においては、放射線により電子が広がる範囲を考慮してエラーを挿入する。なお基本的にはエラー挿入回数を多くすれば検証精度が高くなるが、その分時間を要する。本実施の形態では、前述の機能によりある程度以上の検証精度を達成しつつ、回数及び時間を少なくすることができる。
【００６３】
［画面例］
図７は、実施の形態１におけるソフトエラー耐性検証時の画面（ユーザ操作画面）５１の例を示す。例えば前述のユーザＵの端末１００のディスプレイ１０２で本画面５１を表示する。本画面５１に、ＰＬＤ２（ＣＭ３）のソフトエラー耐性検証の操作ウィンドウ５２を表示する。本操作ウィンドウ５２において、情報として、検証パラメータ５３、検証結果５４、エラー挿入結果一覧５５等を有する。
【００６４】
検証パラメータ５３では、検証装置１のＳＥ耐性検証の動作のためのパラメータを表示して、ユーザＵにより入力・設定が可能である。パラメータの例として、「エラー挿入数」、「演算有意水準」、「目標演算誤差」などがある。尚その他のパラメータを表示してもよい。「エラー挿入数」は、ここでは、本検証におけるエラー挿入の動的な変更の制御におけるフィードバック情報数に相当し、エラー挿入パターン（ｄ２１）を生成する時に使用する過去のエラー挿入情報数を示す。「演算有意水準」は、前述のエラー検出ミス率（ｄ３４）の推定の演算時（図３，１５）における有意水準を示す。「目標演算誤差」は、上記有意水準を仮定したときの目標演算誤差範囲を示す。
【００６５】
検証結果５４では、ＰＬＤ２のＣＭ３のＵＬの領域の全体、及び前述の各ブロックｂごとの、検証結果の各項目の情報と、５５のエラー挿入結果一覧とを表示する。検証結果の各項目の情報として、「エラー挿入数」、「エラー検出数」、「期待値エラー数」、「エラー検出ミス率」、「演算誤差」を有する。「エラー挿入数」は、総数であり、図２（ｂ）のテーブルＴ２のエラー挿入回数に対応する。「エラー検出数」は、ｄ８で検出したものを含む全エラーの検出数を示す。「期待値エラー数」は、全エラーのうち前述の期待値エラービットとして検出したものを示す。「エラー検出ミス率」は、前述の解析結果（ｄ１５）のエラー検出ミス率（ｄ３４）に対応する。「演算誤差」は、本検証（試験）の処理の収束条件（後述図８）となる演算誤差を示す。
【００６６】
５５のエラー挿入結果一覧では、前述の図２（ａ）のテーブルＴ１をもとにした各情報として、識別番号、「挿入箇所」、「エラー検出」、「期待値比較」、等を表示する。「挿入箇所」はＣＭ３内のエラー挿入パターンの挿入箇所ないし位置を示す。「エラー検出」は、エラー検出の有無やその内容（ＥＣＣ等）を示す。「期待値比較」は、一致／不一致を示す。
【００６７】
その他、本画面で前述のブロック（ｂ）の分割の仕方に関する設定項目などを設けてもよい。
【００６８】
［検証処理］
図８は、実施の形態１の検証装置１によるＰＬＤ２のＣＭ３のソフトエラー耐性の検証方法の処理フロー例を示す。ユーザＵにより本検証装置１を起動して本検証処理を開始する。
【００６９】
ステップＳ６１では、ユーザＵにより検証パラメータ（エラー挿入回数などを含む）を前述の画面（図７）で入力する。また、ＣＭ３に構成されるＵＬの情報（ｄ０）などをユーザＵにより同画面で入力するようにしてもよい。
【００７０】
ステップＳ６２では、ある回の試験（検証）の開始として、エラー挿入パターン生成部２１においてエラー挿入パターン（ｄ２１）を生成する。言い換えるとエラー挿入内容（エラー挿入箇所及びパターンを含む）を決定する。
【００７１】
ステップＳ６３では、エラー挿入パターン生成部２１からＣＭＲ／Ｗ回路４へ、Ｓ６２で生成したエラー挿入パターン（ｄ２１）を入力し、ＣＭＲ／Ｗ回路４からＣＭ３内のＵＬに対して当該エラー挿入パターン（ｄ２１）によるエラーを挿入する。
【００７２】
ステップＳ６４では、ＰＬＤ２のＣＭ３内のＵＬを動作させ、即ち所定の演算を実行させる。
【００７３】
ステップＳ６５では、演算期待値比較部１３で、ＣＭ３からの演算結果データ（ｄ５）と対応する演算期待値データ（ｄ６）とを比較する期待値エラーチェック処理を行う。
【００７４】
ステップＳ６６では、エラー情報記録部１４で、各入力情報（ｄ１３，ｄ８，ｄ２１）をもとに、前述のエラー情報（ｄ１４）をテーブルＴ１（及びＴ２）に記録する。
【００７５】
ステップＳ６７では、エラー情報解析部１５で、エラー情報（ｄ１４）等を用いた解析処理を行い、この際、検証の収束条件として、演算誤差を計算する。この時、必要であれば、前述の画面（図７）の操作ウィンドウ５２に、エラー挿入結果情報、及び演算結果の両方または一方を表示する（他のタイミングで同様に表示してもよい）。
【００７６】
ステップＳ６８では、エラー情報解析部１５での収束条件判定処理として、上記Ｓ６７で計算した演算誤差を、目標演算誤差範囲（前記ユーザ入力による設定値）と比較する。演算誤差が目標演算誤差範囲以下となる場合（Ｓ６８−Ｙ）は本処理を終了し、そうでない場合（Ｎ）はエラー挿入パターン生成（Ｓ６２）に戻り次の回のエラー挿入による試験（検証）を同様に繰り返す。
【００７７】
［制御イメージ］
図１３は、補足として本実施の形態の動的な制御のイメージを示す。（ａ）で、初期段階として、（１）まずＰＬＤ２のＣＭ３（ＵＬ）内における例えば図６同様のブロックｂ群に対し、主にランダムなエラー挿入パターン（ｄ２２，ｄ２１）によるランダムなエラー挿入箇所への試験を実行する。例えばｂ１１，ｂ２２等がエラー挿入領域となる各ブロックｂである。（２）そして上記試験の結果のエラー情報（ｄ１４）を解析する。
【００７８】
（ｂ）で、フィードバック制御として、（３）上記解析結果などをもとに、次回以降の試験における効果的なエラー挿入内容を決定する。即ち、各ブロックｂ等のエラー出現確率を考慮して次回のエラー挿入箇所を選択し、かつ、エラー挿入箇所や回数が縮減ないし削減されるように（前述のブロック類似度など）、新規に生成したエラー挿入パターン（ｄ４２，ｄ２１）を用いて、対応する対象の箇所への試験を行う。（４）そして上記試験の結果のエラー情報（ｄ１４）を解析する。（５）以降同様に繰り返しフィードバック制御すると共に収束判定により終了する。
【００７９】
［効果等］
実施の形態１のシステムによれば、各種電子システムに用いられるＰＬＤ２（特にＦＰＧＡ）のＣＭ３を対象とした、中性子などの環境放射線に起因するソフトエラー耐性の試験（検証）の際に、エラー挿入パターン・箇所を動的に変更する機能などを有する。これによりソフトエラー耐性を検証する時間を短縮することができ、検証の高効率化ができる。これにより耐性設計・検証工数を削減すると共に、ＳＤＣ（Silent Data Corruption）などの演算エラーの検証精度を上げ、電子機器・電子システムの信頼性を向上させることができる。
【００８０】
本実施の形態では、ＦＰＧＡ等のＰＬＤ２のＣＭ３領域全体におけるエラー挿入対象箇所を縮減させる高効率なエミュレーション等による検証手法を実現している。
【００８１】
＜実施の形態２＞
次に図９を用いて実施の形態２について説明する。図９は、実施の形態２の検証システムの構成を示す。実施の形態２の検証システムは、論理シミュレーション結果を利用したソフトエラー耐性検証を行う機能を有する。実施の形態２は、実施の形態１と多くの要素は共通であるが、異なる部分として、検証装置１Ｂは、論理シミュレーション結果データ（ｄ３）の入力、シミュレーション結果蓄積部１７、エラー挿入部２０Ｂ（エラー挿入パターン生成部２１Ｂ）などがある。実施の形態２の検証装置１Ｂでは、予め実施したＵＬの論理シミュレーションの結果（ｄ３）を用いて、エラー挿入部２０Ｂでエラー挿入数の削減効率を向上させる。
【００８２】
検証装置１Ｂは、図１の検証装置１に対し、シミュレーション結果蓄積部１７が追加されており、エラー挿入部２０Ｂの処理内容が異なる。シミュレーション結果蓄積部１７は、ＵＬの論理シミュレーション結果データ（ｄ３）を入力・蓄積する。論理シミュレーション結果データ（ｄ３）は、コンピュータ上でのＵＬの論理シミュレーションの結果である。なお別に論理シミュレーション実行及びその結果データ（ｄ３）を生成する処理部を有するが（例えば端末１００内）、当該処理部を検証装置１Ｂ内に設けた形態としてもよい。
【００８３】
エラー挿入パターン生成部２１Ｂは、エラー情報（ｄ１４）、解析結果（ｄ１５）、論理情報（ｄ１１）、実装情報（ｄ１２）、論理シミュレーション結果（ｄ１７）、及びランダムパターン（ｄ２２）をもとに、エラー挿入パターン（ｄ２１）を生成・決定し、ＣＭＲ／Ｗ部４を制御する。
【００８４】
エラー挿入パターン生成部２１Ｂの機能として、前述のエラー挿入パターン生成部２１（図４等）の機能に加え、エラー挿入による期待値比較結果（ｄ１３）と論理シミュレーション結果（ｄ１７）とを用いて、もしくは論理シミュレーション結果（ｄ１７）のみを用いて、前述の分割ブロック（ｂ）間の類似度の計算（図６等）を行う機能を有する。
【００８５】
またエラー情報解析部１５は、論理シミュレーション結果（ｄ１７）を用いて、前述のエラー検出ミス率（ｄ３４）を計算してもよい。
【００８６】
実施の形態２によれば、論理シミュレーション結果（ｄ１７）を用いてブロック（ｂ）間の類似度の計算（図６）を効率的に行うことができ、エラー挿入箇所・数を削減でき、即ち検証の高効率化ができる。
【００８７】
＜実施の形態３＞
次に図１０を用いて実施の形態３について説明する。図１０は、実施の形態３の検証システムの構成を示す。実施の形態３の検証システムは、中性子照射実験結果（背景技術）を利用したソフトエラー耐性検証を行う機能を有する。実施の形態３の検証装置１Ｃは、予め実施したＵＬ（その全体もしくは一部、または対応するテスト回路）の放射線照射実験結果を用いて、エラー挿入数の削減効率を向上させる。
【００８８】
実施の形態３の検証装置１Ｃは、検証装置１に対して、ＵＬもしくはテスト回路の放射線の照射実験結果データ（ｄ４）を蓄積する照射実験結果蓄積部１８が追加されている。また、エラー挿入パターン生成部２１Ｃは、エラー情報（ｄ１４）、解析結果（ｄ１５）、論理情報（ｄ１１）、実装情報（ｄ１２）、照射実験結果（ｄ１８）、及びランダムパターン（ｄ２２）をもとに、エラー挿入パターン（ｄ２１）を生成・決定し、ＣＭＲ／Ｗ回路４を制御する。
【００８９】
エラー挿入パターン生成部２１Ｃの機能に関しては、前述（図４等）の機能に加え、エラー挿入による期待値比較結果（ｄ１３）と照射実験結果（ｄ１８）とを用いて、もしくは、照射実験結果（ｄ１８）のみを用いて、前述の分割ブロック（ｂ）間の類似度の計算（図６等）を行う機能を有する。
【００９０】
またエラー情報解析部１５は、照射実験結果（ｄ１８）を用いて、前述のエラー検出ミス率（ｄ３４）を計算してもよい。
【００９１】
実施の形態３によれば、照射実験結果（ｄ１８）を用いてブロック（ｂ）間の類似度の計算を効率的に行うことができ、エラー挿入箇所・数を削減でき、即ち検証の高効率化ができる。
【００９２】
＜実施の形態４＞
次に図１１を用いて実施の形態４について説明する。図１１は、実施の形態４の検証システムの要部の構成を示す。実施の形態４では、エラー挿入数削減効率向上を目的に、ＰＬＤ２のＣＭ３のＵＬ内の任意部分のデータを外部に出力する検証用ポート（９０１）を設置した構成例を示す。図１１で、ＰＬＤ２内のＣＭ３に構成されたＵＬの任意部分９１について、部分９１内のノード９２（対象箇所）のデータを検証に使用する例を示している。なお９００はＣＭ３（ＵＬ）内の一部拡大であるが、他の部分についても同様に構成可能である。ノード９２のデータを検出すなわち外部に出力するために、ＣＭ３内に新規に検証用出力回路９３を構成している。そして、検証用出力回路９３から出力される検証用データ９４（前記ｄ５に対応する）を、検証用出力ポート９０１を通じて外部へ出力する。外部へ出力された検証用データ９４は、前述の演算期待値比較部１３に対応する処理部である検証データ期待値比較部９６に入力される。検証データ期待値比較部９６では、検証用データ９４と検証データ期待値９５（前記ｄ６に対応する）とを比較する。その比較結果（９７）を、前述の演算期待値比較結果（ｄ１３）の一部として、エラー情報記録部１４に記録する。またエラー情報解析部１５は、上記検証用データ（９４）を含むデータを用いて、エラー検出ミス率（ｄ３４）を計算する。
【００９３】
上記検証用出力回路９３及びポート９０１は、ＰＬＤ２のＣＭ３の一部としてプログラムによる論理的な要素として設けることができる。
【００９４】
実施の形態４によれば、上記追加要素を用いて更に検証を高効率化ができる。
【００９５】
＜実施の形態５＞
次に図１２を用いて実施の形態５について説明する。図１２は、実施の形態５の検証システムの要部の構成を示す。実施の形態５は、前述の検証装置１に相当する機能を、検証回路のロジックとして、ＰＬＤ２のＣＭ３内に一部（ＵＬとは別）として構成する形態である。図１２で、ＰＬＤ２は、ＣＭ３内におけるＵＬが構成される部分である３０１と、検証回路が構成される部分である３０２とを有する。検証回路３０２は、前述の検証装置１の機能を持つ回路部と、ＣＭＲ／Ｗ回路４とを含んだ構成である。検証回路３０２からは検証結果ｄ３０（前述のｄ１５に対応）を出力し、前述同様に利用可能である。ＣＭ３内に設ける検証回路３０２は、ハードマクロもしくはソフトマクロのどちらで設けてもよい。
【００９６】
なお本実施の形態５では、ＣＭ３内に前述の検証装置１の機能の全てを持つ検証回路３０２を設けた場合である。他の実施の形態として、検証装置１の機能の一部のみをＣＭ３内に３０２として設け、その他の機能を、ＰＬＤ２の外部に設けて接続・連携する形態としてもよい。あるいは、ＰＬＤ２内のＣＭ３外部に当該機能の回路を設ける形態としてもよい。
【００９７】
実施の形態５では、検証装置１相当の検証回路３０２をプログラムとして実現でき、実施の形態１等と同様の効果と共に、装置構成を簡略化できる。
【００９８】
＜その他＞
本実施の形態のシステムの利用により、例えばＰＬＤ２の開発・設計段階においてもソフトエラー耐性の見積もりが高効率に可能である。なおその場合、ＣＭ３に構成（プログラム）されるユーザロジックとしては、所定のロジックを構成して検証をすればよい。
【００９９】
本実施の形態では、ＵＬ情報（ｄ０）における論理情報（ｄ１１）及び実装情報（ｄ１２)を用いて、各回のエラー挿入内容（箇所及びパターン）を決定するようにフィードバック制御を行っている。次回の挿入対象ブロックを縮減する等、時系列上でエラー挿入内容を効率化できる。ＣＭ３（ＵＬ）の領域全体に対し、最初は例えばランダムパターン（ｄ２２）を用いて試行する。これによりいくつかの箇所（ブロックｂ等）でエラーを検出した場合、その箇所やその周辺を対象として、次回以降、同様にエラー挿入により試行する。従来手法では、次回以降にエラー挿入する対象（候補）が多いため、領域全体の検証に時間を要する。一方、本実施の形態では、エラー情報履歴をもとに次回以降にエラー挿入する対象（候補）を削減して決定できるため、領域全体の検証の時間を削減できる。
【０１００】
なお本実施の形態で検証の際にランダムパターン（ｄ２２）を用いたが、特定のパターンを用いてもよい。例えば設計時や製造時に応じた特定のパターンを用いてもよい。
【０１０１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。例えば本発明の検証装置１等は、ソフトウェアプログラムでも実現可能である。本発明は、放射線起因のソフトエラーに限らず、一過性のエラーの検証（ないし試験、評価など）に関して適用可能である。また本発明は、ＰＬＤ２に類するデバイス（ＣＭ３のようなプログラム可能なメモリを含んで成るシステムＬＳＩ等）であれば適用可能である。例えばＦＰＧＡに他の要素を追加して成るＬＳＩも適用可能である。またエラー種類としてＳＥＵやＭＣＵに限らず適用可能である。
【符号の説明】
【０１０２】
１…検証装置、２…プログラマブルデバイス（ＰＬＤ）、３…コンフィギュレーションメモリ（ＣＭ）、４…コンフィギュレーションメモリ・リード／ライト回路（ＣＭＲ／Ｗ回路）、１１…論理情報解析部、１２…実装情報解析部、１３…演算期待値比較部、１４…エラー情報記録部、１５…エラー情報解析部、２０…エラー挿入部、２１…エラー挿入パターン生成部、２２…ランダムパターン生成部、１００…端末。
【図１】
2014134842.tif 000003
【図２】
2014134842.tif 000004
【図３】
2014134842.tif 000005
【図４】
2014134842.tif 000006
【図５】
2014134842.tif 000007
【図６】
2014134842.tif 000008
【図７】
2014134842.tif 000009
【図８】
2014134842.tif 000010
【図９】
2014134842.tif 000011
【図１０】
2014134842.tif 000012
【図１１】
2014134842.tif 000013
【図１２】
2014134842.tif 000014
【図１３】
2014134842.tif 000015