(57)【要約】【課題】原子力プラント等の安全系装置の構成品を高効率かつ高水準の信頼性で試験・検証することができる検証方法を提供する。【解決手段】本発明に係る安全系装置の検証方法は、複数の機能要素を予め網羅的に実機検証する手順と、実機検証済の各機能要素を所定のハードウェア記述言語で生成する手順と、各機能要素を独立に論理合成し複数の第１のネットリストに変換する手順と、各機能要素間の接続機能を所定のハードウェア記述言語で生成する手順と、前記接続機能を論理合成し第２のネットリストに変換する手段と、第１のネットリストと第２のネットリストを合成し第３のネットリストを生成する手順と、第３のネットリストに基づいてプログラマブルロジック素子にロジック回路を書き込む手順と、前記プログラマブルロジック素子を実機で検証する実機検証手順とを備えたことを特徴とする。【選択図】  図３
2006236214.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能要素から構成されるプログラマブルロジック素子を具備した安全系装置の検証方法において、
前記複数の機能要素のそれぞれに対して、各機能要素の全ロジックパターン入力に対する全ロジックパターン出力が正常であることを予め網羅的に実機検証する手順と、
実機検証された前記各機能要素と同一の各機能要素を所定のハードウェア記述言語で生成する手順と、
前記生成された各機能要素を独立に論理合成し各機能要素に対応した複数の第１のネットリストに変換する手順と、
前記各機能要素間を接続する接続機能を所定のハードウェア記述言語で生成する手順と、
生成された前記接続機能を論理合成し前記接続機能に対応した第２のネットリストに変換する手段と、
前記複数の第１のネットリストと前記第２のネットリストとを合成し第３のネットリストを生成する手順と、
前記第３のネットリストに基づいて前記プログラマブルロジック素子にロジック回路を書き込む手順と、
ロジック回路を書き込んだ前記プログラマブルロジック素子の動作が正常であることを実機で検証する実機検証手順と、
を備えたことを特徴とする安全系装置の検証方法。
【請求項２】
生成された前記第３のネットリストに基づいて、前記各機能要素間の接続を検証する接続検証手順をさらに備えたことを特徴とする請求項１に記載の安全系装置の検証方法。
【請求項３】
前記接続検証手順は、
生成された前記第３のネットリストを構成するデータに基づいて、前記各機能要素および前記接続機能が実現されたロジック回路を可視化して表示し、表示されたロジック回路と前記接続機能を規定した仕様とに基づいて前記各機能要素間の接続が正しいことを検証する手順を含むことを特徴とする請求項２に記載の安全系装置の検証方法。
【請求項４】
前記接続検証手順は、
前記接続機能が実現された接続回路を可視化して表示し、表示された接続回路と前記所定のハードウェア記述言語で表現された接続機能とに基づいて前記各機能要素間の接続が正しいこと検証する手順を含むことを特徴とする請求項２に記載の安全系装置の検証方法。
【請求項５】
生成された前記第３のネットリストを構成するデータに基づいて前記プログラマブルロジック素子の動作をシミュレーションし、前記プログラマブルロジック素子の動作が正常であることを検証するシミュレーション検証手順をさらに備え、
前記シミュレーション検証手順は、
同一クロックで動作するフリップフロップ素子の間に設けられたロジック回路の遅延時間をシミュレーションで評価し、評価した前記遅延時間が、標準的な使用環境において前記クロックの周期の５０％以下であることを検証する手順を含むことを特徴とする請求項１に記載の安全系装置の検証方法。
【請求項６】
前記シミュレーション検証手順で用いる遅延時間のシミュレーションは、適宜の評価用ネットリストと、前記評価用のネットリストに基づいて書き込まれたプログラマブルロジック素子によって予めその有効性が実機検証されたシミュレーションであることを特徴とする請求項５に記載の安全系装置の検証方法。
【請求項７】
前記実機検証手順は、
同一クロックで動作するフリップフロップ素子の間に設けられたロジック回路の遅延時間をシミュレーションで評価し、評価した前記遅延時間が、標準的な使用環境において前記クロックの周期の５０％を越えると認められた場合おいて、前記遅延時間が最大となる使用環境を印加して前記プログラマブルロジック素子を実機で試験し、動作が正常であることを検証する手順を含むことを特徴とする請求項１に記載の安全系装置の検証方法。
【請求項８】
前記実機検証手順は、トグルカバレッジ試験を含む手順であり、
前記トグルカバレッジ試験は、
予め前記機能要素間を接続する接続線の総数を算定する総数算定手順と、
前記プログラマブルロジック素子に所定のロジックパターンを順次変化させて入力する手順と、
入力した前記ロジックパターンの変化に対応して前記機能要素間を接続する接続線の論理値が変化した接続線の数を算定する手順と、
前記接続線の総数に対する前記変化した接続線の数の比であるトグルカバレッジを求める手順と、
前記トグルカバレッジが所定値以上であることを検証する手順を備えた試験であることを
特徴とする請求項１に記載の安全系装置の検証方法。
【請求項９】
前記トグルカバレッジ試験は、
グランドおよび電源に接続される接続線を除いて前記接続線の総数を算定する試験であることを特徴とする請求項８に記載の安全系装置の検証方法。
【請求項１０】
前記トグルカバレッジ試験は、
入力の論理値にかかわらず出力の論理値が固定値となることが設計上明らかである場合は、固定値となるその接続線を除いて前記接続線の総数を算定する試験であることを特徴とする請求項８に記載の安全系装置の検証方法。
【請求項１１】
前記トグルカバレッジ試験は、
前記ロジックパターンを、前記プログラマブルロジック素子の実機および前記プログラマブルロジック素子の実機を模擬した模擬プログラマブルロジック素子に順次並列に入力するとともに、前記プログラマブルロジック素子の実機の出力が正常であることを監視する手順と、
模擬プログラマブルロジック素子の内部における接続線の論理値の変化をモニタして前記変化した接続線の数を算定する手順と、
前記トグルカバレッジを前記ロジックパターンの入力に応じて順次算出する手順と、
前記トグルカバレッジが所定値以上になったときに試験を終了する手順と、
を備えた試験であることを特徴とする請求項８に記載の安全系装置の検証方法。
【請求項１２】
前記トグルカバレッジ試験は、
任意の接続線を指定し、前記プログラマブルロジック素子の実機と前記模擬プログラマブルロジック素子の双方において前記指定した接続線の波形をモニタする手順を含む試験であることを特徴とする請求項１１に記載の安全系装置の検証方法。
【請求項１３】
複数の機能要素から構成されるプログラマブルロジック素子を具備した安全系装置において、
前記複数の機能要素のそれぞれに対して、各機能要素の全ロジックパターン入力に対する全ロジックパターン出力が正常であることを予め網羅的に実機検証する手順と、
実機検証された前記各機能要素と同一の各機能要素を所定のハードウェア記述言語で生成する手順と、
前記生成された各機能要素を独立に論理合成し各機能要素に対応した複数の第１のネットリストに変換する手順と、
前記各機能要素間を接続する接続機能を所定のハードウェア記述言語で生成する手順と、
生成された前記接続機能を論理合成し前記接続機能に対応した第２のネットリストに変換する手段と、
前記複数の第１のネットリストと前記第２のネットリストを合成し、第３のネットリストを生成する手順と、
前記第３のネットリストに基づいて前記プログラマブルロジック素子にロジック回路を書き込む手順と、
ロジック回路を書き込んだ前記プログラマブルロジック素子の動作が正常であることを実機で検証する実機検証手順と、
を備えた検証方法によって検証されたことを特徴とする安全系装置。
【請求項１４】
生成された前記第３のネットリストに基づいて、前記各機能要素間の接続を検証する接続検証手順をさらに備えたことを特徴とする請求項１３に記載の安全系装置。
【請求項１５】
前記接続検証手順は、
生成された前記第３のネットリストを構成するデータに基づいて、前記各機能要素および前記接続機能が実現されたロジック回路を可視化して表示し、表示されたロジック回路と前記接続機能を規定した仕様に基づいて前記各機能要素間の接続が正しいことを検証する手順を含むことを特徴とする請求項１４に記載の安全系装置。
【請求項１６】
前記接続検証手順は、
前記接続機能が実現された接続回路を可視化して表示し、表示された接続回路と前記所定のハードウェア記述言語で表現された接続機能とに基づいて前記各機能要素間の接続が正しいこと検証する手順を含むことを特徴とする請求項１４に記載の安全系装置。
【請求項１７】
生成された前記第３のネットリストを構成するデータに基づいて前記プログラマブルロジック素子の動作をシミュレーションし、前記プログラマブルロジック素子の動作が正常であることを検証するシミュレーション検証手順をさらに備え、
前記シミュレーション検証手順は、
同一クロックで動作するフリップフロップ素子の間に設けられたロジック回路の遅延時間をシミュレーションで評価し、評価した前記遅延時間が、標準的な使用環境において前記クロックの周期の５０％以下であることを検証する手順を含むことを特徴とする請求項１３に記載の安全系装置。
【請求項１８】
前記シミュレーション検証手順で用いる遅延時間のシミュレーションは、適宜の評価用ネットリストと、前記評価用のネットリストに基づいて書き込まれたプログラマブルロジック素子によって予めその有効性が実機検証されたシミュレーションであることを特徴とする請求項１７に記載の安全系装置。
【請求項１９】
前記実機検証手順は、
同一クロックで動作するフリップフロップ素子の間に設けられたロジック回路の遅延時間をシミュレーションで評価し、評価した前記遅延時間が、標準的な使用環境において前記クロックの周期の５０％を越えると認められた場合おいて、前記遅延時間が最大となる使用環境を印加して前記プログラマブルロジック素子を実機で試験し、動作が正常であることを検証する手順を含むことを特徴とする請求項１３に記載の安全系装置。
【請求項２０】
前記実機検証手順は、トグルカバレッジ試験を含む手順であり、
前記トグルカバレッジ試験は、
予め前記機能要素間を接続する接続線の総数を算定する総数算定手順と、
前記プログラマブルロジック素子に所定のロジックパターンを順次変化させて入力する手順と、
入力した前記ロジックパターンの変化に対応して前記機能要素間を接続する接続線の論理値が変化した接続線の数を算定する手順と、
前記接続線の総数に対する前記変化した接続線の数の比であるトグルカバレッジを求める手順と、
前記トグルカバレッジが所定値以上であることを検証する手順とを備えた試験であることを特徴とする請求項１３に記載の安全系装置。
【請求項２１】
前記トグルカバレッジ試験は、
グランドおよび電源に接続される接続線を除いて前記接続線の総数を算定する試験であることを特徴とする請求項２０に記載の安全系装置。
【請求項２２】
前記トグルカバレッジ試験は、
入力の論理値にかかわらず出力の論理値が固定値となることが設計上明らかである場合は、固定値となるその接続線を除いて前記接続線の総数を算定する試験であることを特徴とする請求項２０に記載の安全系装置。
【請求項２３】
前記トグルカバレッジ試験は、
前記ロジックパターンを、前記プログラマブルロジック素子の実機および前記プログラマブルロジック素子の実機を模擬した模擬プログラマブルロジック素子に順次並列に入力するとともに、前記プログラマブルロジック素子の実機の出力が正常であることを監視する手順と、
模擬プログラマブルロジック素子の内部における接続線の論理値の変化をモニタして前記変化した接続線の数を算定する手順と、
前記トグルカバレッジを前記ロジックパターンの入力に応じて順次算出する手順と、
前記トグルカバレッジが所定値以上になったときに試験を終了する手順と、
を備えた試験であることを特徴とする請求項２０に記載の安全系装置。
【請求項２４】
前記トグルカバレッジ試験は、
任意の接続線を指定し、前記プログラマブルロジック素子の実機と前記模擬プログラマブルロジック素子の双方において前記指定した接続線の波形をモニタする手順を含む試験であることを特徴とする請求項２３に記載の安全系装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全系装置の検証方法およびその検証方法で検証された安全系装置に係り、特に、原子力、火力、化学プラント等の制御に用いられ高い信頼性が要求される安全系装置の検証方法およびその検証方法で検証された安全系装置に関する。
【背景技術】
【０００２】
原子力プラントでは、プラントの安全性が損なわれるおそれのある異常が発生した場合、あるいは、異常の発生が予想される場合に、異常の発生を防止あるいは抑制するために安全系装置が設けられている。
【０００３】
安全保護系に関わる放射線計測装置（安全系装置）は、放射線量を計測し、何らかの原因によりプラント内の放射線量が上昇した場合に、プラント外への放射性物質の放出を抑制するため、放射線量が上昇している箇所を隔離したり、非常用のガス処理装置を動作させたりする条件となる情報を各作動回路に提供することを目的に設けられている。
【０００４】
近年の原子力プラントでは、このような安全保護系に関わる放射線計測装置（安全系装置）に、例えば、特許文献１に示すようにデジタル信号処理が適用され、デジタルフィルタや、複数の信号をひとつのＣＰＵでデジタル演算されている。
【０００５】
一方、ＣＰＵを用いずに、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）と呼ばれるハードウェアロジックを用いたシステムが、特許文献２等に開示されている。特許文献２が開示する技術は、ＣＰＵを使用せずにＡＳＩＣを用いて回路を構成し処理の手順を制御するものであるが、処理フローの単純化が可能となるとしている。
【０００６】
他方、安全系装置はその重要性から、機器の単一故障による全体の機能喪失を防止する等の要求がなされており、システム構成に冗長系を持たせる多重化構成としたり、各構成品の機能の独立化を行う構成としている。
【０００７】
しかしながら、ＣＰＵにソフトウェアを実行させる構成のデジタルシステムでは、冗長系に同一のソフトウェアを用いた場合、このソフトウェアの欠陥により冗長系の機能も併せて損なわれる可能性がある。
【０００８】
また、ソフトウェア処理を含めたデジタル処理は基本的には離散値処理であるため、ソフトウェアやハードウェアの欠陥により、ある特定の条件を満たした場合にだけ特異な出力が生じるなど、予期できない動作が実行される可能性がアナログ素子よりも高いと考えられる。
【０００９】
そこで、ソフトウェアを用いたデジタル処理では、設計・製作を通じて高品質を確保するための品質保証活動を行うとともに、ソフトウェア欠陥による共通要因故障の排除、管理外の変更に対しての適切な防護措置を講じることが要求されている。特に、ソフトウェアの共通要因故障を防止する方法として、検証及び健全性確認活動（以下、Ｖ＆Ｖ；Ｖｅｒｉｆｉｃａｔｉｏｎ  ＆  Ｖａｌｉｄａｔｉｏｎ）を実施している。Ｖ＆Ｖとは、デジタル型の安全系装置に要求される機能がソフトウェアの設計・製作の各過程において、上位の過程から下位の過程へ正しく反映されていることを確認する検証作業と、検証作業を経て製作されたシステムについて、要求機能が正しく実現されていることを確認する健全性確認作業からなる品質保証のための活動である。
【特許文献１】特許第２６５３５２２号公報
【特許文献２】米国特許第５８５９８８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
一方、ＣＰＵの代わりにＡＳＩＣ或いはＦＰＧＡを用いたシステムでは、最終的にはハードワイヤードなデジタルロジックとして構成されるため、ＣＰＵによるソフトウェア処理と異なり、処理フローが決定的であり、処理時間も設計により確定できる。従って、ＡＳＩＣ或いはＦＰＧＡを用いたシステムは、デジタルロジックの半導体ハードウェアとみなすことができる。
【００１１】
この結果、ＦＰＧＡ等ではその製作過程において一部ソフトウェアを用いているものの、実際に実装されているハードウェアと処理内容を同一視した検証が可能である。例えば、半導体素子の全入力、全内部状態に対する出力を仕様から算出した予測値と比較できれば、タイミングに起因する動的欠陥以外の、静的な機能の入出力特性は完全に検証できる。なお、このような検証を網羅的検証或いはｅｘｈａｕｓｔｉｖｅ  ｔｅｓｔｉｎｇと呼んでいる。
【００１２】
しかしながら、実際のＡＳＩＣ或いはＦＰＧＡなどでは、全入力ｂｉｔのパターン数と素子の全内部状態のパターン数の合計パターン数が膨大となり、全入力・全内部状態のパターンに応じた出力パターンをすべて予測値と比較することは困難であることが一般的に認められている。
【００１３】
そこで、欠陥を効率的に見つけられる入力パターン列を評価することが重要となり、たとえば素子内部のロジックパターンから評価し、内部のレジスタが１度は動作する入力パターン郡、或いは、特定の故障モードを想定し、この故障を検出可能な入力パターン群を故障シミュレーションを行い算出している。
【００１４】
しかしながら、これらはあくまでも一部の入力パターンを試験するものであるため、内部ロジックの組み合わせにより生じるような欠陥や、故障シミュレーションで想定しなかった故障は検出できない。
【００１５】
さらに、論理回路（デジタル回路）をＦＰＧＡなどのハードウェアに実装する過程では、ハードウェアの構成を記述するソフトウェアおよびこれらを実際のＦＰＧＡ上の論理回路に展開する論理合成ツールなどの汎用ソフトウェアツールが必要となる。この汎用ソフトウェアツール自体にも、特に新規に開発されたような場合には、欠陥が内在する可能性を完全には排除できない。従って、汎用ソフトウェアツールを含めて設計段階から総合的に高い信頼性を確保する必要がある。
【００１６】
前述の網羅的試験を性能検証に用いることができれば、静的な論理誤りはないことを示すことが可能であるが、網羅的試験が実施できない場合は、従来のソフトウェアと同等のＶ＆Ｖなどの検証が必要となる。
【００１７】
但し、ＦＰＧＡ等を用いたシステムは、ＣＰＵによるソフトウェア処理と異なり、処理が確定的であり、処理時間も一般に確定できる。また、単一ループで、単一の処理のみを実行可能で、信頼性の高いシステムを実現するための設計条件を満たしやすいという特長がある。
【００１８】
以上、検証性の観点からはＦＰＧＡ等のハードウェアロジックを用いて安全系装置を実装するメリットは高いが、課題として、前述の網羅的試験と実質的に同等な検証レベルで機能検証を効率よく実施する必要がある。即ち、入力に対する出力の特性が設計どおりであることを高い信頼性でかつ迅速に検証できる検証方法を構築すること要求されている。
【００１９】
また、前記の静的なロジックエラー以外にも、内部の動作タイミングに起因する動的エラーがある。例えば、温度等の環境条件や電源条件により内部ロジック間の伝送の遅延時間が変動した場合、雰囲気条件により誤動作する可能性がある。これらタイミングに起因するエラーを防止するには、設計段階でタイミングシミュレーションなどにより余裕をもった設計を行うとともに、必要に応じて想定される実環境のもとで高い信頼性で検証することができる検証方法も要求されている。
【００２０】
なお、以上の問題点、課題は、原子力プラント向けに説明を行ったが、その他、石油、化学プラントなど信頼性の高い制御システムが要求される分野においても、同様のデジタル装置の設計・製造における信頼性の確保、特に隠れた故障までも検出できる設計システムを構築することは重要である。
【００２１】
本発明は、上記事情に鑑みてなされたもので、原子力プラント等の安全系装置の構成品を高効率かつ高水準の信頼性で試験・検証することができる検証方法、およびその検証方法で検証された安全系装置を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上記課題を解決するため、本発明に係る安全系装置の検証方法は、請求項１に記載したように、複数の機能要素から構成されるプログラマブルロジック素子を具備した安全系装置の検証方法において、複数の機能要素のそれぞれに対して、各機能要素の全ロジックパターン入力に対する全ロジックパターン出力が正常であることを予め網羅的に実機検証する手順と、実機検証された各機能要素と同一の各機能要素を所定のハードウェア記述言語で生成する手順と、生成された各機能要素を独立に論理合成し各機能要素に対応した複数の第１のネットリストに変換する手順と、各機能要素間を接続する接続機能を所定のハードウェア記述言語で生成する手順と、生成された接続機能を論理合成し前記接続機能に対応した第２のネットリストに変換する手段と、複数の第１のネットリストと第２のネットリストとを合成し第３のネットリストを生成する手順と、第３のネットリストに基づいてプログラマブルロジック素子にロジック回路を書き込む手順と、ロジック回路を書き込んだプログラマブルロジック素子の動作が正常であることを実機で検証する実機検証手順と
を備えたことを特徴とする。
【００２３】
また、本発明に係る検証方法によって検証された安全系装置は、請求項１３に記載したように、複数の機能要素から構成されるプログラマブルロジック素子を具備した安全系装置において、複数の機能要素のそれぞれに対して、各機能要素の全ロジックパターン入力に対する全ロジックパターン出力が正常であることを予め網羅的に実機検証する手順と、実機検証された前記各機能要素と同一の各機能要素を所定のハードウェア記述言語で生成する手順と、生成された各機能要素を独立に論理合成し各機能要素に対応した複数の第１のネットリストに変換する手順と、各機能要素間を接続する接続機能を所定のハードウェア記述言語で生成する手順と、生成された前記接続機能を論理合成し前記接続機能に対応した第２のネットリストに変換する手段と、複数の第１のネットリストと前記第２のネットリストを合成し、第３のネットリストを生成する手順と、第３のネットリストに基づいて前記プログラマブルロジック素子にロジック回路を書き込む手順と、ロジック回路を書き込んだ前記プログラマブルロジック素子の動作が正常であることを実機で検証する実機検証手順とを備えた検証方法によって検証されたことを特徴とする。
【発明の効果】
【００２４】
本発明に係る安全系装置の検証方法およびその検証方法で検証された安全系装置によれば、原子力プラント等の安全系装置の構成品を高効率かつ高水準の信頼性で試験・検証することができる。
【発明を実施するための最良の形態】
【００２５】
本発明に係る安全系装置の検証方法およびその検証方法で検証された安全系装置の実施形態について添付図面を参照して説明する。
【００２６】
（１）安全系装置１の位置づけとシステム構成概念
図１は、本発明に係る安全系装置１の基本的な構成例を示したものであり、併せて安全系装置１の外部に接続される装置例を示している。
【００２７】
安全系装置１とは、例えば原子力プラント１００に設けられる原子炉１０１の内部の状態を監視し、異常が発生した場合或いは異常の発生が予測される場合には、原子炉１０１を停止させる或いは異常箇所を分離する等の安全保護動作を行うための信号、即ちトリップ信号を出力する装置である。
【００２８】
安全系装置１の入力端には、センサ２の出力が入力される。センサ２は、例えば原子炉１０１の内部に設置される放射線センサである。
【００２９】
安全系装置１の出力端からは、トリップ出力が出力される。トリップ信号は、センサ２の出力を基に原子炉１０１の安全性を判定し、原子炉１０１に異常が発生した場合或いは異常の発生が予測される場合に安全系装置１から出力されるもので、このトリップ信号を原子力プラント１００にフィードバックすることで、原子力プラント１００側では例えば原子炉１０１を停止させたり、異常箇所を分離させたり等の安全処置を行う。
【００３０】
安全系装置１は、入力されたセンサ２の信号を波形整形した後にデジタル値の変換するＡ／Ｄ変換器３を備えている。Ａ／Ｄ変換器３の出力はＦＰＧＡ（Field  Programmable  Gate  Array）４ａに入力される。
【００３１】
ＦＰＧＡとは、プログラム可能な高集積回路のことで、ＦＰＧＡ製造業者等から提供される汎用のＦＰＧＡ（データが書き込まれていないＦＰＧＡ）に、外部からユーザが所定のデータを書き込むことでユーザの仕様に応じた多種、多様な機能を実現可能とするものである。
【００３２】
ＦＰＧＡは、プログラマブルロジック素子（ＰＬＤとも呼ばれる。）の一種であり、ＰＬＤのうちでも特に近年普及してきている集積度の高いものをＦＰＧＡと呼んでいる。
【００３３】
デジタル量に変換されたセンサ２の出力は、ＦＰＧＡ４ａに書き込まれた機能、例えばデジタルフィルタ機能によって不要信号を除去した後、さらに後段のＦＰＧＡ４ｂに出力される。ＦＰＧＡ４ｂは、例えば適宜の設定値とセンサ２の出力を比較して異常の有無を判定し、異常と判定された場合にはトリップ信号を出力する機能を有するものである。
【００３４】
図１は、あくまで本発明に係る安全系装置１の産業上の利用における位置づけと、安全系装置１の主要な構成品がＦＰＧＡに代表されるプログラマブルロジック素子によって構成されることを示すものであり、安全系装置１の具体的な構成までを示すものではない。
【００３５】
従って、安全系装置１へ入力されるセンサの種類や数は複数であっても良いし、ＦＰＧＡの種類や数、或いはその実装形態も図１の例示に限定されるものではない。
【００３６】
安全系装置１に求められる高信頼性を確保するためには、安全系装置１を構成する各プログラマブルロジック素子の信頼性を検証することが極めて重要となる。
【００３７】
そこで、以下の説明ではプログラマブルロジック素子の検証方法に焦点を絞って説明する。また、プログラマブルロジック素子には、ＦＰＧＡの他、ＡＳＩＣ、ゲートアレイ、或いはＰＬＤと呼ばれるものも含まれるが、以下の説明ではＦＰＧＡを例として説明するものとする。
【００３８】
なお、本発明に係る完全系装置の検証方法とは、各プログラマブルロジック素子の検証方法をいうものである。
【００３９】
（２）ＦＰＧＡの検証方法の手順
図２は、図１に例示したＦＰＧＡの１つであるＦＰＧＡ４ａの内部構成例を示したものである。以下の説明ではＦＰＧＡ４ａを例として説明するが、ＦＰＧＡの検証方法としてはいずれの機能を有するＦＰＧＡであっても同じものである。
【００４０】
近年のＦＰＧＡ４ａは、総ゲート数が数百万を超える大規模なものも出現してきており、ＦＰＧＡ４ａ全体としては極めて集積度が高くかつ大規模なＬＳＩとして捉えることができるが、その内部は機能的に分割された複数の要素の集合となっている。
【００４１】
この機能の要素の単位を機能要素と呼んでいる。図２に例示したＦＰＧＡ４ａでは、機能要素５ａ、５ｂ、５ｃ、５ｄおよび５ｅの５種類の機能要素を備えて構成されている。
【００４２】
各機能要素５ａないし５ｅは、それぞれその内部に、例えばＡＮＤ回路、ＯＲ回路、フリップフロップ回路、加算回路、カウンタ回路等のロジック回路を備えており、これらのロジック回路の組み合わせによって所定の機能を実現している。
【００４３】
ＦＰＧＡ４ａ全体としては、各機能要素５ａないし５ｅを相互に接続線で接続することによってＦＰＧＡ４ａ全体の機能を実現することになる。
【００４４】
一般に、ＦＰＧＡを製作する流れは大きく次の段階によって構成される。
【００４５】
第１段階は、ＦＰＧＡで実現する機能を仕様として定める。
【００４６】
第２段階は、仕様で定めた機能を、ハードウェア記述言語とよばれるプログラム言語で記述する。ハードウェア記述言語は適宜のテキストエディタを用いて記述され、生成された機能データはコンピュータに記憶される。ハードウェア記述言語には、ＶＨＤＬ言語、Ｓｙｓｔｅｍ−Ｃ、Ｖｅｒｉｌｏｇ言語等種々有るが、本実施形態ではＶＨＤＬ言語を用いた形態のもので説明するが、他の言語であってもよい。
【００４７】
第３段階では、ハードウェア記述言語で記述された機能データを、論理合成ツールと呼ばれる汎用のソフトウェアを用いて、ネットリストと呼ばれるロジックデータに変換する。また、この変換を論理合成と呼んでいる。ネットリストとは、ロジック回路の構成に関するデータのことであり、ＡＮＤ回路、ＯＲ回路、フリップフロップ回路、加算回路、カウンタ回路等のロジック回路の要素とその相互の接続状態を表現したデータである。
【００４８】
また、ネットリストは、ロジック回路の要素間の接続関係だけでなく、物理的な配置関係もデータとして保有している。
【００４９】
第２段階においてハードウェア言語で記述された機能を実現するロジック回路は１つとは限らない。同一の機能を実現するロジック回路は複数存在しうる。例えば、処理時間を最短とすることを優先させる最適化や、ロジック回路の規模（素子数）を最小とする最適化が可能である。このため、一般に論理合成ツールでは、最適化実施の可否や、最適化の種類などをオプションとして選択可能となっている。
【００５０】
第４段階では、ネットリストが備えるロジックデータに基づいて、動作のシミュレーションを行い、正常に動作することを確認・検証する。回路規模によってはシミュレーションを省略することも可能である。
【００５１】
第５段階では、ネットリストデータに基づいてＦＰＧＡにデータを書き込み、実機としてのＦＰＧＡが完成する。この後、必要に応じて実機試験・検証が実施される。
【００５２】
以上は、一般的なＦＰＧＡの製作の基本的な流れを示したものであるが、本発明に係る安全系装置１の検証方法においては極めて高度の信頼性が要求されているため、信頼性の確保に重点が置かれた流れとしている。
【００５３】
図３は、本発明に係る安全系装置１が備えるＦＰＧＡの検証方法手順の実施形態を示したものである。
【００５４】
ステップＳＴ１では、各機能要素５ａないし５ｅに対応してＶＨＤＬで記述されたデータ（以下、機能要素（ＶＨＤＬ）と呼ぶ）を生成する。機能要素（ＶＨＤＬ）５０ａないし５０ｅは、予め実機のＦＰＧＡで十分に検証されたものをそのままの形態で生成する。ステップＳＴ１の細部手順を図４に示している。
【００５５】
図４は、１つの機能要素（ＶＨＤＬ）５０ａを生成する過程を示したものである。
【００５６】
まず、ステップＳＴ１０で、機能要素５ａの仕様に基づいて、ＶＨＤＬ言語を用いて記述することによって機能要素（ＶＨＤＬ）５０ａを生成する。
【００５７】
次にステップＳＴ１１で、汎用の論理合成ツールを用いて論理合成し、機能要素（ＶＨＤＬ）５０ａに対応したネットリスト５１ａを生成する。このとき、論理合成ツールのオプションとして、回路規模が最小となるように最適化オプションを選択することによって、機能要素５ａを実現する最小回路規模のロジック回路データを生成することができる。
【００５８】
次に、ネットリスト５１ａのデータをＦＰＧＡ（テスト用実機）に書き込む（ステップＳＴ１２）。なお、書き込み前に必要に応じてネットリスト５１ａデータを用いてシミュレーションを行い予め動作検証する手順を付加してもよい。
【００５９】
次に、ステップＳＴ１３で、ＦＰＧＡ（テスト用実機）に対して網羅的検証を行う。網羅的検証とは、全入力、全内部状態に対する出力を仕様から算出した予測値と比較し、正常動作を確認する検証方法である。
【００６０】
一般に、ＦＰＧＡ全体レベルのように大規模のデジタル回路になると、入力パターンや内部状態のパターン数が指数関数的に増加するため、網羅的検証は実効上不可能になってくると言われている。
【００６１】
しかしながら、ＦＰＧＡの内部を細部に分割した機能要素５ａのレベルにおいては網羅的検証が実現可能である。また、網羅的検証は総てのビットパターンを検証するものであるため、極めて特異な離散値データが入力された時に限り発生する異常動作についても予め検証することができる。このため、信頼性の観点からは最も有効な検証方法である。
【００６２】
テスト用実機による網羅的検証によって動作の正常が確認できたならば（ステップＳＴ１４のYes）、機能要素（ＶＨＤＬ）５０ａのデータは高い信頼性で保証されたことになる（ステップＳＴ１５）。
【００６３】
一方、網羅的検証で異常が発見された場合には、原因究明を行った後機能要素（ＶＨＤＬ）５０ａの修正を実施し（ステップＳＴ１６）、ステップＳＴ１１へ戻る。
【００６４】
なお、他の機能要素（ＶＨＤＬ）５０ｂないし５０ｅについても同様に網羅的検証を行う。
【００６５】
このようにして、図３のステップＳＴ１では、個々の機能要素（ＶＨＤＬ）５０ａないし５０ｅについて実機検証されたものが生成されることなる。
【００６６】
ステップＳＴ２では、論理合成ツールを用いて機能要素（ＶＨＤＬ）毎に独立に論理合成を行い、各機能要素（ＶＨＤＬ）５０ａないし５０ｅに対応したネットリスト（第１のネットリスト）５１ａないし５１ｅを生成する。この手順は、既に図４のフローで検証済のものであり、新たな不具合要因が混入する可能性は極めて少ない。論理合成ツールの有効性も既に図４のフローの中で検証済である。
【００６７】
他方、ＦＰＧＡ全体を構成するためには、各機能要素５ａないし５ｅの間を接続しなければならない。このために必要となるデータをステップＳＴ３および４で生成している。
【００６８】
ステップＳＴ３では、各機能要素５ａないし５ｅの間の接続を規定する仕様に基づいて接続機能をＶＨＤＬ言語で記述し、機能要素（ＶＨＤＬ）５０ａ等と同様に接続機能（ＶＨＤＬ）を生成する。
【００６９】
ステップＳＴ４で、論理合成ツールを用いて接続機能（ＶＨＤＬ）に対して論理合成を行い、機能要素間の接続のみを規定するネットリスト（第２のネットリスト）６１を生成する。
【００７０】
ステップＳＴ５では、各機能要素５ａないし５ｅに対応するネットリスト（第１のネットリスト）５１ａないし５１ｅと、これらの間の接続関係を示すネットリスト（第２のネットリスト）６１とを合成し、第３のネットリスト７０を生成する。この第３のネットリスト７０が、ＦＰＧＡ４ａの全体の接続状態を示すデータとなる。
【００７１】
ステップＳＴ６では、第３のネットリスト７０のデータに基づいてロジック回路の接続関係を検証する。接続関係の検証は、第３のネットリスト７０からロジック回路の接続図を出力し、目視等による人間系の検証が主体となる。
【００７２】
この際、図３に示した手順によれば、もっとも複雑である各機能要素のネットリスト５１ａないし５１ｅについては既にステップＳＴ１において検証済であるため基本的には検証不要であり、各機能要素間の接続のみを重点的に検証すれば十分である。このため、接続検証に要する時間が大幅に節約されることになり、効率的な接続検証が可能となる。
【００７３】
（３）他の形態との比較
図５は、本発明に係る実施形態（図３のフロー）との比較のために、同じＦＰＧＡ４ａを製作・検証する方法の他の形態について示したものである。図５に示した手順では、図３の手順と比べるとステップＳＴ２およびステップＳＴ４を省略した形態となっている。一見、図５の手順の方が効率よく見えるが、かならずしもそうはならない。その理由は以下のとおりである。
【００７４】
図５の手順および図３の手順ともいずれもステップＳＴ１では同様にして各機能要素毎に実機検証を行う。
【００７５】
図３の手順では、各機能要素（ＶＨＤＬ）毎に独立にネットリストを生成した後にネットリスト同士を合成する手順としているため、ステップＳＴ１で実機検証したネットリストの同一性が保証されていることになる。
【００７６】
一方、図５の手順では、各機能要素（ＶＨＤＬ）と接続機能とをステップＳＴ１００において一度に論理合成している。このため、せっかくステップＳＴ１で検証したネットリストの同一性が完全には保証できなくなる。
【００７７】
もっとも、論理合成ツールのオプションとして、ステップＳＴ１００の論理合成手順において回路規模最小等の最適化を制限すれば、かなりのレベルにおいてステップＳＴ１の検証時のネットリストとの同一性は確保できるものの完全な同一性の保証までには至らない。このため、ステップＳＴ６ａの接続確認においては、各機能要素の内部に一部入り込んで接続確認をせざるを得ず、結果的には接続検証に膨大な時間を費やすことになる。
【００７８】
また、ステップＳＴ１００の論理合成において最適化を制限しているため、回路規模が大きなものとなってしまうという問題点もある。
【００７９】
これに対して、図３に示した本発明に係る検証方法の実施形態では、ステップＳＴ２で生成されるネットリスト（第１のネットリスト）は、ステップＳＴ１で実機検証したネットリストと全く同一のものが生成されることになる。このため、ステップＳＴ６の接続検証では各機能要素の内部に入って検証する必要がなく、各機能要素間の接続のみを検証すれば十分である。このため、接続検証に要する時間が短縮され効率の高い接続検証が可能となる。
【００８０】
さらに、ステップＳＴ１におけるテスト用実機検証の際の論理合成手順において、回路規模を最小とする論理合成オプションを設定しておけば、全く同じ設定によってネットリスト５１ａないし５１ｅを生成することが可能であるため、ステップＳＴ１の実機検証と完全な同一性を維持しつつも回路規模の最小化を実現することが可能となる。
【００８１】
（４）接続検証
ステップＳＴ６の接続検証では各機能要素５ａ間の接続確認を行うことになるが、本実施形態に係る検証方法では、以下に示す２つの接続検証を行っている。
【００８２】
図６は、第１の接続検証の手順を示す図である。
【００８３】
ステップＳＴ６０では、ネットリスト（第３のネットリスト）７０のデータに基づいて対応するロジック回路図を可視化して表示させる。この結果、例えば、図２に例示したようなロジック回路図が表示、或いはプリントアウトされる。この際、各機能要素５ａないし５ｅの内部のロジック回路と、各機能要素５ａないし５ｅ間の接続を示す部分とを色分けし、視認容易に表示する形態でもよい。
【００８４】
ステップＳＴ６１では、可視化されたロジック回路と各機能要素間の接続を規定した仕様とを比較検証する。
【００８５】
比較検証の結果、各機能要素間の接続が正しいことが検証されれば（ステップＳＴ６２のYes）第１の接続検証は終了する。
【００８６】
各機能要素間の接続と仕様との間に不一致等があった場合には（ステップＳＴ６２のNo）原因究明を行った後、適宜対策、処置を行う（ステップＳＴ６３）。
【００８７】
第１の接続検証の手順によれば、ネットリスト（第３のネットリスト）７０がロジック回路図として可視化して提供されるため、接続検証を効率的に行うことができる。
【００８８】
なお、ステップＳＴ６１の比較検証は人間系が行うことも可能であるが、機能要素の数が多くなった場合などは、別途比較検証用のツール等を用いて比較検証作業を自動化する形態であっても良い。
【００８９】
図７は、第２の接続検証の手順を示したものである。第２の接続検証は、仕様に基づいて生成される接続機能（ＶＨＤＬ言語で記述されたもの）と、ネットリスト（第３のネットリスト）７０との間で機能要素間の接続を検証するものである。
【００９０】
まず、ステップＳＴ６５において、ネットリスト（第３のネットリスト）７０から機能要素間の接続回路を可視可能に表示させる。
【００９１】
図８は、ネットリスト（第３のネットリスト）７０のうち機能要素５ａおよび５ｂを含むグループＸＸの接続回路１２０を可視化して表示させた回路図を示したものである。図８では、機能要素５ａおよび５ｂをブラックボックスとして扱い、機能要素間の接続のみを表示させる表示形態としている。
【００９２】
図９は、グループＸＸの接続回路を生成する基となる接続機能を、ＶＨＤＬ言語で記述したデータ１１０を示したものである。
【００９３】
図９において、１行目ないし３行目はグループ「ＸＸ」の定義を記述している。また、４行目ないし７行目は機能要素「ＡＡ」（機能要素５ａに対応するもの）の入出力の定義を記述したものであり、「ＡＡＩ」が機能要素「ＡＡ」の入力であり、「ＡＡＯ」が機能要素「ＡＡ」の出力であることを示している。
【００９４】
同様に、８行目ないし１１行目は機能要素「ＢＢ」（機能要素５ｂに対応するもの）の入出力の定義を記述したものであり、「ＢＢＩ」が機能要素「ＢＢ」の入力であり、「ＢＢＯ」が機能要素「ＢＢ」の出力であることを示している。
【００９５】
１２行目は機能要素間の接続線Ｌ１、Ｌ２およびＬ３を定義したものである。
【００９６】
最後に、１３行目および１４行目においてグループＸＸ全体の接続機能を規定している。１３行目では、機能要素「ＡＡ」の入力「ＡＡＩ」は接続線Ｌ１に接続され、出力「ＡＡＯ」は接続線Ｌ２に接続されることを規定している。同様に１４行目では、機能要素「ＢＢ」の入力「ＢＢＩ」は接続線Ｌ２に接続され、出力「ＢＢＯ」は接続線Ｌ３に接続されることを規定している。
【００９７】
図９のＶＨＤＬ言語で記述したデータ１１０と、図８に示した接続回路１２０とを比較検証する（図７のステップＳＴ６７）ことによって、機能要素間の接続が確実にネットリスト（第３のネットリスト）７０上に実現されていることが検証できる。
【００９８】
なお、図８に示した接続回路１２０の信号名称は所定のルールに従って一部変更されている。具体的には、ＶＨＤＬ言語で記述したデータ１１０内の名称に上位のグループ名称「ＸＸ」を冠して名付けられる。例えば、「ＡＡＩ」が「ＸＸＡＡＩ」の如くに変更される。このため、図７のステップＳＴ６７の比較検証に先だって、ＶＨＤＬ言語で記述したデータ１１０内の名称を変換する手順（ステップＳＴ６６）を付加している。
【００９９】
本実施形態では、各機能要素の内部については、各々実機によって網羅的に検証されているため、ネットリスト（第３のネットリスト）７０の検証においてはブラックボックスとして扱っても信頼性は損なわれない。従って、機能要素間の接続のみをネットリスト（第３のネットリスト）７０上で十分に検証すれば高い信頼性を得ることができる。
【０１００】
本実施形態では、第１の接続検証および第２の接続検証を行うことによって機能要素間の接続検証を高い信頼性で実施することができる。
【０１０１】
（５）シミュレーション検証
各機能要素毎に行われる実機による網羅的検証（図３のステップＳＴ１）や、接続検証（図３のステップＳＴ６）によって、静的動作の機能・性能の検証は担保されるものの、信号の遅延時間の変化等微妙なタイミングのずれに起因する動的動作の検証としては必ずしも十分でない場合がある。
【０１０２】
そこで、本実施形態に係る安全系装置１の検証方法では、ネットリスト（第３のネットリスト）７０のデータを基にシミュレーションを行って遅延時間を求め、この遅延時間が所定値以下であるか否かを判断することによってタイミングのずれに起因する動的動作の検証を行う形態としている。
【０１０３】
図１０は、シミュレーション検証の手順を示したものである。
【０１０４】
また、シミュレーション検証の手順を具体的に示すために、図１１（ａ）に示したロジック回路を例にとって説明する。
【０１０５】
まず、図１０のステップＳＴ７０において、ネットリスト（第３のネットリスト）７０のデータと、遅延時間を求めるためのデータベースとから所定の部位の遅延時間をシミュレーションによって求める。
【０１０６】
本説明例では、ネットリスト（第３のネットリスト）７０は、図１１（ａ）に示したように機能要素５ｆおよび機能要素５ｇのふたつの機能要素を備えたものとしている。各機能要素の出力段にはそれぞれフリップフロップＱ１およびＱ２が設けられており、外部からのクロック信号ＣＬＫによって同期が取られて動作するようになっている。
【０１０７】
ここで機能要素５ｇの中で最も信号の遅延が大きくなるパスは、ＡＮＤ回路Ａ１をとおりさらにＡＮＤ回路Ａ２を介してフリップフロップＱ２へ至るパスである。
【０１０８】
機能要素５ｆおよび機能要素５ｇが正常に動作するためには、フリップフロップＱ１がクロック信号ＣＬＫに応じて信号を出力し、その出力が、ＡＮＤ回路Ａ１およびＡ２を介して、フリップフロップＱ２に伝達される時間Ｔｄが、クロックの周期ｔｃに対して十分小さいことが必要である。
【０１０９】
そこで、図１０のステップＳＴ７０では、フリップフロップＱ１の出力（図１１の（Ａ）点）からＡＮＤ回路Ａ１およびＡ２を介してフリップフロップＱ２の入力（図１１の（Ｂ）点）へ至るパスの遅延時間Ｔｄをシミュレーションによって求める。
【０１１０】
この際、ＡＮＤ回路Ａ１およびＡ２自体の遅延時間や、前記パスを構成する接続線の遅延時間が記憶されているデータベースを必要に応じて用いることができる。
【０１１１】
ところで、素子の遅延時間は、周囲温度や電源電圧等によって変化するが、その変化の割合は、標準的な使用環境即ち常温、定格電源電圧の状態に対して、約１．３倍から１．５倍程度であることが知られている。
【０１１２】
そこで、標準的な使用環境における遅延時間をシミュレーションで求め、その遅延時間Ｔｄがクロック１周期ｔｃの５０％以下であれば、周囲温度や電源電圧等が遅延時間を最大にする状態に変化したとしてもタイミングに起因する動的誤動作を防止できる。
【０１１３】
この判定を図１０のステップＳＴ７１の手順で行っている。
【０１１４】
シミュレーションによって求めた遅延時間Ｔｄがクロック周期ｔｃの５０％以下であれば（ステップＳＴ７１のYes）本シミュレーション検証は終了する。
【０１１５】
一方、遅延時間Ｔｄがクロック周期ｔｃの５０を越える場合には（ステップＳＴ７１のＮｏ）、設計変更を行うことになる。具体的には、クロック周期を長くするか、或いはパス中に、例えばＡＮＤ回路Ａ１とＡＮＤ回路Ａ２との間にあらたにフリップフロップを追加する等の設定変更を行う。
【０１１６】
その設計変更が実施可能であれば（ステップＳＴ７２のYes）、設定変更に基づいてネットリスト（第３のネットリスト）７０を再生成した後、再度シミュレーション（ステップＳＴ７０）を実施する。
【０１１７】
その設計変更が他の制約等によって実施不可能である場合には（ステップＳＴ７２のNo）ステップＳＴ７５へ進む。
【０１１８】
ステップＳＴ７５は、実機に厳しい環境を実際に印加して動作を検証する手順である。標準的な使用環境におけるシミュレーションによる遅延時間のマージンが５０％未満の場合であっても、実機に遅延時間が最も大きくなる温度や電源電圧等の環境を実際に印加して正常動作を保証すれば信頼性は損なわれない。
【０１１９】
ステップＳＴ７６で実機検証による正常動作が確認できれば本手順は終了する（ステップＳＴ７６のYes）。逆に実機検証で正常動作が確認できなかった場合（ステップＳＴ７６のNo）には、別途対策・処置を行う必要がある。
【０１２０】
なお、本シミュレーション試験の信頼性を担保するために、予めシミュレーション自体の検証を行っておくことが好ましい。具体的には、予め適宜の評価用のネットリストを生成し、このネットリストのデータと遅延時間算出用のデータベースとを用いてシミュレーションによって遅延時間を求めておき、前記評価用のネットリストを用いて製作した評価用の実機ＦＰＧＡによる実測遅延時間と、シミュレーションから求めた遅延時間とを比較検証しておけばよい。
【０１２１】
（６）実機検証（トグルカバレッジ試験）
図３に示した検証方法の手順では、ステップＳＴ６のシミュレーション検証の後、ネットリスト（第３のネットリスト）７０のデータを用いて実機のＦＰＧＡ４ａへ書き込む（ステップＳＴ８）。
【０１２２】
次に、書き込みの終了したＦＰＧＡ４ａを用いて実機検証を行う（ステップＳＴ９）。実機検証では、ＦＰＧＡ４ａが仕様通りの機能、性能等を実現できているか否かを実機を用いて検証する他、トグルカバレッジ試験と呼ばれる試験をさらに行うことによって高い信頼性を実現している。
【０１２３】
トグルカバレッジ試験とは、トグルカバレッジと呼ばれる検証の信頼性を表す指標が所定値以上、望ましくは１００％となるように行う試験である。
【０１２４】
ここで、「トグルする」とは、ロジック素子の接続線の論理値が「０」から「１」へ、或いは「１」から「０」へ変化することを言う。また、トグルカバレッジとは、所定のロジックパターンを順次変化させてＦＰＧＡ４ａに入力したときに、ＦＰＧＡ４ａ内の各ロジック素子の接続線がトグルした場合には「トグルした接続線」としてカウントし、ＦＰＧＡ４ａ内の各ロジック素子の「接続線の総数」に対する「トグルした接続線」の数の比を言う。
【０１２５】
従って、「トグルカバレッジ１００％で検証された」とは、ＦＰＧＡ４ａ内の総てのロジック素子の接続線がトグルしたことが網羅的に検証されたことを意味する。
【０１２６】
ところで、本実施形態に係る検証方法では、図３のステップＳＴ１において、各機能要素５ａないし５ｅは既に実機によって網羅的に検証されている。
【０１２７】
従って、ステップＳＴ９におけるトグルカバレッジ試験では、各機能要素の内部のトグルカバレッジを検証する必要はなく、機能要素間の接続線についてのみトグルカバレッジ試験を実施すれば十分であり、またこれによって検証時間の節約もできる。
【０１２８】
図１２は、実機検証（トグルカバレッジ試験）の手順を示したものである。
【０１２９】
まず、ステップＳＴ９０では機能要素間を接続する接続線の総数を算定する。接続線の総数は、例えば図１３に例示したＦＰＧＡ４ａの機能要素間の接続図から算定できる。図１３において丸印で示した点が接続線（ノードと呼ぶ場合もある）を示している。図１３の例では、接続線の総数は１０である。
【０１３０】
また、図１３では、トグルしたノードを黒丸で示し、トグルしなかったノードを白丸で表示している。図１３の状態は、総ノード数１０に対してトグルしたノードが８であるのでトグルカバレッジは８０％であることを表している。
【０１３１】
ところで、機能要素間の接続点においては、外部から入力されるロジックパターンの内容にかかわらず「トグルしない」ことが設計上明らかな場合がある。例えば、グランド線や電源がある機能要素に接続されている場合には、その接続線の論理値がトグルすることはあり得ない。このように設計上トグルしないことが明らかな接続線を総数としてカウントすることは徒にトグルカバレッジを低下させるだけで無意味である。
【０１３２】
そこで、図１２のステップＳＴ９１の手順では、設計上トグルしない接続線を接続線の総数から予め除いている。
【０１３３】
例えば、図１４の接続図では、機能要素５ｄの入力には電源が接続されており、機能要素５ｄの入力および出力はトグルしないことが明らかである場合の例を示している。このような接続線を除くことにより、トグルカバレッジ算定に用いる接続線の総数は８となる。図１４の例ではトグルしたノードの数は８でありトグルカバレッジは１００％となる。
【０１３４】
このように接続線の総数を算定した後、実際のトグルカバレッジ試験を開始する。
【０１３５】
図１５は、トグルカバレッジ試験の試験系統を示した図である。適宜のシグナルジェネレータ２００をＦＰＧＡ４ａの実機とＦＰＧＡ４ａを模擬した模擬ＦＰＧＡ２０１に接続する。模擬ＦＰＧＡ２０１は、例えばネットリスト（第３のネットリスト）７０から生成することができる。
【０１３６】
ＦＰＧＡ４ａの実機と模擬ＦＰＧＡ２０１の出力はそれぞれ信号記録器（１）２０２および信号記録器（２）２０３に接続されそれらの出力が記録されると共に、比較装置２０４によって一致しているか否かが判定される。
【０１３７】
このような試験系統において、シグナルジェネレータ２００を用いてロジックパターンを順次変化させて発生させ（図１２のステップＳＴ９２）、ＦＰＧＡ４ａの実機と模擬ＦＰＧＡ２０１に並列に入力する（ステップＳＴ９３）。
【０１３８】
模擬ＦＰＧＡ２０１では、各接続線のトグルの有無を判定し（ステップＳＴ９４）、トグルカバレッジを自動的に算出する（ステップＳＴ９５）。
【０１３９】
トグルカバレッジが所定値以上になったか否かを判定し（ステップＳＴ９６）、所定値以上となった場合には試験を停止する。
【０１４０】
その後、信号記録器（２）に記録された実機のＦＰＧＡ４ａの出力を確認し、総て正常の場合にはトグルカバレッジ試験を終了する。
【０１４１】
この他、模擬ＦＰＧＡ２０１は、図１３に例示した回路図とノードのトグル状態を表示する表示装置を備えた構成としてもよい。また、ロジックパターンを順次変化させて入力させるとトグルしたノードが例えば適宜の色分けで表示されるように構成してもよい。
【０１４２】
試験実施者は、模擬ＦＰＧＡ２０１の表示画面をモニタすることにより、トグルしていない接続線を容易に視認することができる。また、トグルカバレッジをリアルタイムに確認することができるため、トグルカバレッジが予め定めた所定値を越えた時点で試験を終了させることが可能となり、効率的な試験を実施することができる。さらに、トグルカバレッジが予め定めた所定値を越えた場合にシグナルジェネレータにフィードバックし、ロジックパターンの発生を自動的に停止させる形態としてもよい。このような構成によって、より自動計測が可能となり効率の高い試験が可能となる。
【０１４３】
また、ＦＰＧＡ４ａ内の任意の接続線を指定し、指定した接続線の波形を実機のＦＰＧＡ４ａと模擬ＦＰＧＡ２０１の双方からモニタする手順を適宜付加する形態としてもよい。トグルカバレッジ試験において何らかの異常が発生した場合等にその原因を究明する上で有効な手順となる。
【０１４４】
なお、上述した検証方法の説明では特定のＦＰＧＡ４ａを例として説明したが、本発明に係る検証方法は特定のＦＰＧＡに限定されるものではなく、広くプログラマブルロジック素子に適用できるものである。
【０１４５】
本発明に係る安全系装置の検証方法およびその検証方法によって検証された安全系装置によれば、安全系装置を構成するプログラマブルロジック素子（ＦＰＧＡ）を機能要素に分割し、各機能要素毎に最適化されたロジック回路を予め実機を用いて網羅的に検証を行った後に、検証された機能要素を独立に論理合成することで実機検証時と同一性を維持することができるため、ロジック回路の最適化による回路規模の小型化等を実現できるとともに高い信頼性が確保された検証方法、およびその検証方法によって検証された安全系装置を提供することができる。
【０１４６】
また、本発明に係る安全系装置の検証方法およびその検証方法によって検証された安全系装置によれば、各機能要素の結合後においては、各機能要素間の接続のみを重点的に検証すれば十分であるため、検証時間を短縮することが可能であり、効率の高い検証方法、およびその検証方法によって検証された安全系装置を提供することができる。
【０１４７】
また、静的な検証に加えて、タイミング回路のマージン等の動的機能・性能を予めシミュレーションによって検証する手順により十分なマージンを確保可能としているため、高い信頼性が実現される。
【０１４８】
さらに、本発明に係る安全系装置の検証方法およびその検証方法によって検証された安全系装置によれば、通常の仕様確認試験に加えて、実機検証においてトグルカバレッジ試験を行う手順と備えているため、機能要素内の網羅的検証に加えて各機能要素間の接続線についても未検証の接続線を見落とすことなく排除することが可能となり高い信頼性が得られる。その際、設計上トグルしない接続線を予め排除する手順を加えることによって試験時間の短縮が可能となり、高い効率化が図れる。
【０１４９】
なお、本発明は上記の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【０１５０】
【図１】本発明に係る安全系装置の一実施形態の構成モデルを示す図。
【図２】本発明に係る安全系装置の一実施形態が備えるプログラマブルロジック素子の構成モデルを示す図。
【図３】本発明に係る安全系装置の検証方法の一実施形態の手順を示す図。
【図４】プログラマブルロジック素子が備える機能要素の実機検証手順例を示す図。
【図５】本発明に係る安全系装置の検証方法の比較例を示す図。
【図６】本発明に係る安全系装置の検証方法における第１の接続検証の手順例を示す図。
【図７】本発明に係る安全系装置の検証方法における第２の接続検証の手順例を示す図。
【図８】第２の接続検証方法の具体例を説明する第１の説明図。
【図９】第２の接続検証方法の具体例を説明する第２の説明図。
【図１０】本発明に係る安全系装置の検証方法におけるシミュレーション検証の手順例を示す図。
【図１１】本発明に係る安全系装置の検証方法におけるシミュレーション検証の具体例を説明する図。
【図１２】本発明に係る安全系装置の検証方法における実機検証（トグルカバレッジ試験）の手順例を示す図。
【図１３】本発明に係る安全系装置の検証方法における実機検証（トグルカバレッジ試験）の具体例を説明する第１の説明図。
【図１４】本発明に係る安全系装置の検証方法における実機検証（トグルカバレッジ試験）の具体例を説明する第２の説明図。
【図１５】本発明に係る安全系装置の検証方法における実機検証（トグルカバレッジ試験）の試験系統図。
【符号の説明】
【０１５１】
１  安全系装置
４ａ、４ｂ、４ｃ、４ｄ、４ｅ  ＦＰＧＡ（プログラマブルロジック素子）
５ａ、５ｂ、５ｃ、５ｄ、５ｅ、５ｆ、５ｇ  機能要素
５０ａ、５０ｂ、５０ｃ、５０ｄ、５０ｅ  ＶＨＤＬで記述された実機検証済の機能要素
５１ａ、５１ｂ、５１ｃ、５１ｄ、５１ｅ  第１のネットリスト
６０  ＶＨＤＬで記述された接続機能
６１  第２のネットリスト
７０  第３のネットリスト
７０ａ  ネットリスト（比較例）
１００  原子力プラント
１０１  原子炉
２００  シグナルジェネレータ
２０１  模擬ＦＰＧＡ
２０２  信号記録装置（１）
２０３  信号記録装置（２）
２０４  比較装置
【図１】
2006236214.tif 000003
【図２】
2006236214.tif 000004
【図３】
2006236214.tif 000005
【図４】
2006236214.tif 000006
【図５】
2006236214.tif 000007
【図６】
2006236214.tif 000008
【図７】
2006236214.tif 000009
【図８】
2006236214.tif 000010
【図９】
2006236214.tif 000011
【図１０】
2006236214.tif 000012
【図１１】
2006236214.tif 000013
【図１２】
2006236214.tif 000014
【図１３】
2006236214.tif 000015
【図１４】
2006236214.tif 000016
【図１５】
2006236214.tif 000017