(57)【要約】【課題】ＦＰＧＡの内部回路の動作状態を保持し、周辺回路へ影響を及ぼすことなく、内部回路の入出力動作をチェック可能とする。【解決手段】マルチプレクサ７とラッチ回路６は診断対象となる内部回路としてのＡＮＤ回路２の出力信号を診断前の状態に記憶保持しておく。マルチプレクサ４、５はＡＮＤ回路への入力信号を、信号Ｇ１，Ｇ２によって通常時の入力信号Ａ，Ｂから診断入力信号Ｋ，Ｈに切換えて入力する。ホストＣＰＵ３は、上記の信号発生と、診断入力に対する内部回路の出力信号が正常にあるか否かを信号Ｆから判定する。ホストＣＰＵの機能をＦＰＧＡ１の内部にコントロール部として設けることも含む。【選択図】  図１
2004302727.tif 000002
【特許請求の範囲】
【請求項１】
規則的な論理ブロック構造に形成したＦＰＧＡの内部回路を、その動作中に、入出力論理動作の正常／異常を診断するＦＰＧＡの動作チェック方式であって、
診断対象となる内部回路の出力信号を診断前の状態に記憶保持しておく出力信号保持手段と、
内部回路への入力信号を通常時の入力信号から診断入力信号に切換えて入力する入力信号切換手段と、
診断入力に対する内部回路の出力信号が正常にあるか否かの判定を行う判定手段とを備えたことを特徴とするＦＰＧＡの動作チェック方式。
【請求項２】
前記出力信号保持手段と入力信号切換手段を前記ＦＰＧＡの内部論理回路として構成し、
前記内部論理回路への入力信号発生手段と出力信号取り込み手段と切換制御信号発生手段および判定手段を外部のホストＣＰＵに設けたことを特徴とする請求項１に記載のＦＰＧＡの動作チェック方式。
【請求項３】
前記出力信号保持手段と入力信号切換手段と判定手段を前記ＦＰＧＡの内部論理回路として構成し、
前記内部論理回路への入力信号発生手段と出力信号取り込み手段と切換制御信号発生手段および判定手段を前記ＦＰＧＡの内部コントロール部として設けたことを特徴とする請求項１に記載のＦＰＧＡの動作チェック方式。
【請求項４】
前記ホストＣＰＵまたは内部コントロール部は、ＦＰＧＡの内部回路のチェックを通常動作と時分割で行うことを特徴とする請求項１〜３のいずれか１項に記載のＦＰＧＡの動作チェック方式。
【請求項５】
前記ホストＣＰＵまたは内部コントロール部は、前記ＦＰＧＡの内部回路の故障診断で、内部回路を再コンフィグレーションして修復する手段を備えたことを特徴とする請求項１〜４のいずれか１項に記載のＦＰＧＡの動作チェック方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＦＰＧＡの内部回路の動作チェック方式に関する。
【０００２】
【従来の技術】
近年、プリント板実装のデジタル回路には、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が欠かせない物となってきている。このＦＰＧＡは、規則的な論理ブロック構造を有するＬＳＩであり、その論理関係と接続関係をプログラミングすることで所期のデジタル処理機能を実現でき、雑ロジックや特定目的の回路をＦＰＧＡに構成することにより、部品点数の削減、プリント板面積の縮小などに役立っている。
【０００３】
ここで、ＦＰＧＡの内部回路の動作チェック方法には、開発ツール上でのシミュレーション、実機でのテストプログラムによる出荷検査、Ｆ／Ｗ（ファームウェア）によるバックグランドでのチェック等がある（例えば、特許文献１参照）。
【０００４】
・開発ツール上でのシミュレーションは、全ての入力、出力信号を動作させる事が可能なため、ＦＰＧＡの内部回路の論理動作確認には最適なものとなる。
【０００５】
・テストプログラムによる試験は、実機で行えるため、他の周辺回路ＩＣを含んだ試験が可能となる。また、異常動作等もテストプログラムにより発生させることが出来るので、システム稼働中には出来ない項目もチェックが可能となる。
【０００６】
・Ｆ／Ｗのバックグランドでのチェックは、システム稼働中に行われる為、プリント板に実装されているメモリへのデータ、ライト／リードチェックが主となる。
【０００７】
これらの動作チェック方法のうち、Ｆ／Ｗによるバックグランドでのチェックのみが、システム稼働中のＦＰＧＡ故障検出が可能になっている。
【０００８】
【特許文献１】
特開平０７−１９８７８４
【０００９】
【発明が解決しようとする課題】
前記のように，Ｆ／Ｗによるバックグランドでのチェックのみが、システム稼働中でのＦＰＧＡ故障検出が可能になっているため、システムの信頼性向上に関しては一番重要なチェック方法となっている。
【００１０】
Ｆ／Ｗのバックグランドでのチェックはシステム稼働中に行われる為、プリント板に実装されているメモリへのデータ、ライト／リードチエックが主となる。よって、メモリアクセスに関係する回路チェックは可能だが、それ以外の組み合わせ回路（論理回路）等のチェックは出来ない。特に、システムに影響を及ぼす出力はシステムの停止を引き起こす可能性があるため、出力を変化させることは出来ない。しかし、逆にこれらは誤出力防止のため論理回路のチェックの必要性は大きい。
【００１１】
ＦＰＧＡは、一度書き込んだデータを電源断時でも保持するものと、電源断時にはデータが失われ、電源を投入するたびにコンフィグレーション（ＲＯＭよりデータをＦＰＧＡに書き込む作業）するものとに分類される。
【００１２】
電源投入毎にコンフィグレーションするタイプは、コンフィグレーション終了後に外部からのノイズにより、内部データが壊される可能性もある。
【００１３】
本発明の目的は、上記の課題を解決したＦＰＧＡの動作チェック方式を提供することにある。
【００１４】
【課題を解決するための手段】
本発明は、ＦＰＧＡの内部回路の動作状態を保持し、周辺回路へ影響を及ぼすことなく、内部回路の入出力動作をチェック可能とするため、基本的には、診断対象となる内部回路の出力信号を診断前の状態に記憶保持しておく出力信号保持手段と、内部回路への入力信号を通常時の入力信号から診断入力信号に切換えて入力する入力信号切換手段と、診断入力に対する内部回路の出力信号が正常にあるか否かの判定を行う判定手段とを備えたもので、以下の構成を特徴とする。
【００１５】
（１）規則的な論理ブロック構造に形成したＦＰＧＡの内部回路を、その動作中に、入出力論理動作の正常／異常を診断するＦＰＧＡの動作チェック方式であって、
診断対象となる内部回路の出力信号を診断前の状態に記憶保持しておく出力信号保持手段と、
内部回路への入力信号を通常時の入力信号から診断入力信号に切換えて入力する入力信号切換手段と、
診断入力に対する内部回路の出力信号が正常にあるか否かの判定を行う判定手段とを備えたことを特徴とする。
【００１６】
（２）前記出力信号保持手段と入力信号切換手段を前記ＦＰＧＡの内部論理回路として構成し、
前記内部論理回路への入力信号発生手段と出力信号取り込み手段と切換制御信号発生手段および判定手段を外部のホストＣＰＵに設けたことを特徴とする。
【００１７】
（３）前記出力信号保持手段と入力信号切換手段と判定手段を前記ＦＰＧＡの内部論理回路として構成し、
前記内部論理回路への入力信号発生手段と出力信号取り込み手段と切換制御信号発生手段および判定手段を前記ＦＰＧＡの内部コントロール部として設けたことを特徴とする。
【００１８】
（４）前記ホストＣＰＵまたは内部コントロール部は、ＦＰＧＡの内部回路のチェックを通常動作と時分割で行うことを特徴とする。
【００１９】
（５）前記ホストＣＰＵまたは内部コントロール部は、前記ＦＰＧＡの内部回路の故障診断で、内部回路を再コンフィグレーションして修復する手段を備えたことを特徴とする。
【００２０】
【発明の実施の形態】
（実施形態１）ホストＣＰＵで直接制御するチェック方式。
【００２１】
本実施形態では、図１に示すように、ＦＰＧＡ１に内部回路として生成された２入力のＡＮＤ回路２の動作診断をホストＣＰＵ３の直接制御で行う場合である。
【００２２】
ＦＰＧＡ１には、そのＡＮＤ回路２の動作チェックのために、ＡＮＤ回路２の入力信号Ａ，Ｂの入力回路として、入力信号切換のためのマルチプレクサ４、５を設ける。また、ＡＮＤ回路２の出力信号を診断前の状態に記憶保持しておくラッチ回路６と、出力信号Ｃの入力信号切換えのためのマルチプレクサ７を設ける。
【００２３】
入力信号切換手段としてのマルチプレクサ４は、コントロール信号Ｇ１によって、入力信号Ａから診断入力信号Ｋに切換えてＡＮＤ回路２の一方の入力とする。同様に、マルチプレクサ５はコントロール信号Ｇ２によって入力信号Ｂから診断入力信号Ｈに切換えてＡＮＤ回路２の他方の入力とする。
【００２４】
出力信号保持手段としてのマルチプレクサ７とラッチ回路６は、コントロール信号Ｉによって、ＡＮＤ回路２の出力信号Ｆからラッチ回路６に一時記憶する信号に切換えて出力信号Ｃとして出力する。ラッチ回路６は、マルチプレクサ７の出力を一時記憶する。
【００２５】
以上のように、ＦＰＧＡ１には、ホストＣＰＵ３によるＡＮＤ回路２の診断用として、マルチプレクサ４、５、６およびラッチ回路６を備え、システムの稼動中でのＦＰＧＡ１内のＡＮＤ回路２の診断を可能とする。
【００２６】
この診断には、ホストＣＰＵ３は、自己診断コントロール信号Ｓが与えられることで、処理を開始する。図２にホストＣＰＵ３の処理フローを示す。この開始には、ホストＣＰＵ３は、まず、ＦＰＧＡ１の出力制御信号（信号Ｉ）から「Ｈ」を出力する（ステップＳ１）。この信号Ｉにより、ＦＰＧＡ１内部では、マルチプレクサ７の出力をラッチ回路６の出力に切換えておくことで、診断直前のＡＮＤ回路２の出力をそのまま出力信号Ｃとして保持しておく。そして、ホストＣＰＵ３は、コントロール信号Ｇ１、Ｇ２から共に「Ｌ」を出力する（ステップＳ２）。これら信号Ｇ１、Ｇ２により、ＦＰＧＡ１の内部では、マルチプレクサ４、５の入力を信号Ａ，Ｂからテストパターン信号Ｋ，Ｈに切換え、テストデータパターン信号Ｋ、信号Ｈをマルチプレクサ４、５を通してＡＮＤ回路２の入力とする。
【００２７】
次に、ホストＣＰＵ３は、自身が管理するビットパターン・真理値管理テーブル（下記の表１参照）から最初のビットパターン「Ｌ、Ｌ」を読み込み（ステップＳ３）、ビットパターンに対応したテストパターン信号Ｋ（＝Ｌ），Ｈ（＝Ｌ）を出力する（ステップＳ４）。
【００２８】
【表１】
2004302727.tif 000003
【００２９】
その後、ＦＰＧＡ１から信号「Ｆ」を取り込む（ステップＳ５）。そして、ビットパターン・真理値管理テーブルからビットパターン「Ｌ、Ｌ」でのＡＮＤ回路値を読み込み（ステップＳ６）、信号「Ｆ」の値とＡＮＤ回路値が一致するか否かを比較する（ステップＳ７）。
【００３０】
この比較結果が不一致であれば、ＦＰＧＡ１の異常と判定し、ホストＣＰＵ３から周辺回路へ信号Ｊ（例えば、異常をＨで示す）を出力し（ステップＳ８）、コントロール信号Ｇ１，Ｇ２から共に「Ｈ」を出力し（ステップＳ９）、ＦＰＧＡ１の出力制御信号（信号Ｉ）から「Ｌ」を出力し（ステップＳ１０）、処理を終了する。
【００３１】
ステップＳ６において、取得した信号Ｆの値とＡＮＤ回路出力値が一致している場合、ビットパターン真理値管理テーブル内のビットパターンを全てチェックしたか否かを判定し（ステップＳ１１）、チェック済みであれば、ＦＰＧＡ１の正常と判定し、ホストＣＰＵ３から周辺回路へ信号Ｊ（例えば、正常を「Ｌ」で示す）を出力し（ステップＳ１２）、ステップＳ９，Ｓ１０の終了シーケンスを実行し、処理を終了する。
【００３２】
また、ステップＳ１１において、ビットパターンにチェック残りがあれば、ビットパターン真理値管理テーブルから新たなビットパターンを読み込み（ステップＳ１３）、ステップＳ４へ処理を移す。
【００３３】
以上の診断制御を実行するタイミングは、入力Ａ，Ｂの変化が起きないタイミングをホストＣＰＵ３が認識して行う。そして、テストデータパターンにより信号Ｆは「Ｈ」又は「Ｌ」に変化するが、マルチプレクサ７の出力は前回値ラッチを選択しているので、出力Ｃを変化させない。
【００３４】
また、信号Ｇ１、Ｇ２の自己診断モードの期間に信号Ｋ，Ｈの変化に応じた信号Ｆ（ＡＮＤ回路２の出力）が期待値と不一致になるか否かで正常／異常の判定を行い、この判定結果は信号Ｊとして出力する。
【００３５】
なお、図１では、自己診断コントロール信号Ｓとして、外部からホストＣＰＵへ入力する例を示したが、図２の処理フローの起動はこれに限るものではなく、例えば、バックグラウンドで起動させるプログラムでもよい。また、ホストＣＰＵから各信号を発生させる手段については、例えば、ホストＣＰＵのメモリ（またはＩ／Ｏ）空間に入出力レジスタを設置し、そのレジスタをアクセスすることで成し遂げられる。
【００３６】
（実施形態２）ＦＰＧＡ内部のコントロール部で制御するチェック方式。
【００３７】
本実施形態は、図３に示すように、実施形態１におけるホストＣＰＵ３がもつ自己診断制御機能と同等の機能をもつコントロール部８をＦＰＧＡ１内に設けた点にある。図４は、コントロール部８の診断タイムチャートを示す。
【００３８】
ホストＣＰＵ３Ａからのチエック実行指示（入力Ｓ）を受け取ったコントロール部８は、入力クロックに同期してＦＰＧＡ１の出力制御（信号Ｉ）、入力制御（信号Ｇ１，Ｇ２）、テストデータパターン（信号Ｋ、信号Ｈ）を発生して自己診断コントロールをする。期待値（信号Ｆ）の判定もコントロール部８で行い、エラーが発生した場合はホストＣＰＵ３Ａに対してエラー信号Ｊ（出力Ｄ）を出力する。
【００３９】
本実施形態においても、テストデータパターンにより信号Ｆは「Ｈ」又は「Ｌ」に変化するが、マルチプレクサ７の出力には前回値ラッチを選択して出力Ｃを変化させない。
【００４０】
本実施形態の場合、ホストＣＰＵ３Ａは、チェック可能なタイミング時に入力ＳをＦＰＧＡに対して出した後は、チェックはすべてＦＰＧＡ内部のコントロール部８が行うため、チェック結果を待つことなく他の処理に移ることが可能となる。
【００４１】
（他の実施形態）
以上までの実施形態では、ＦＰＧＡの内部回路として、２入力のＡＮＤ回路の自己診断を行う場合を示すが、３入力以上のＡＮＤ回路、ＯＲ回路、フリップフロップ回路などの単体の論理回路構成の内部回路の自己診断を同様に行うことができる。また、複数の論理回路をアレー構成したブラックボックス化した回路においても、診断時にマルチプレクサによる１または複数の入力信号の切換えと、マルチプレクサとラッチ回路による１または複数の出力信号の保持をした診断を行うことができる。さらに、制御方式の変更、診断結果が異常の場合の内部回路の再コンフィグレーション機能を持たせることができる。
【００４２】
例えば、メモリチェックをＦＰＧＡ内部のコントロール部で制御するチェック方式とすることができる。この場合、実施形態２と同様にメモリに対するチェックもＦＰＧＡ内部コントロール部８が行う。メモリに対するコマンド信号もＦＰＧＡが作り出し、マルチプレクサにより実際の信号とテスト信号の選択を切り替えて実施する。この間も実施形態２と同様にホストＣＰＵは他の処理を並行して実行可能となる。
【００４３】
他の例としては、自己診断を一定周期に時分割で実施するチェック方式とすることができる。この場合、自己診断コントロール信号（入力Ｓ：信号レベルＨ：通常動作、信号レベルＬ：自己診断モード）を定周期のクロックとして通常動作と自己診断モードを時分割的に実施する。また、自己診断コントロール信号の周期を、システムの演算、データの更新に影響の無い周期とする事により、常にＦＰＧＡの診断が可能となる。
【００４４】
さらに、他の例としては、ＦＰＧＡ異常が発生した場合、再コンフィグレーションを実施するチェック方式とすることができる。この場合、ＦＰＧＡ異常が発生した場合、その内容、モジュール内の他の回路に与える影響を考慮し、再コンフィグレーションを行うかどうかを決め、ホストＣＰＵからの信号、もしくはＦＰＧＡ自身が作り出す信号によりＦＰＧＡを再コンフィグレーションする。これによりＦＰＧＡ内部の軽微な故障は自動修復できる。
【００４５】
【発明の効果】
以上のとおり、本発明によれば、以下の効果がある。
【００４６】
・ＦＰＧＡの出力を変化させずに内部回路のチェックが可能なため、今まで不可能だった組み合わせ回路のチェックをシステム稼働中に実施可能となる。
【００４７】
・システムの信頼性が向上する。
【００４８】
・チェック中にホストＣＰＵは他の処理が可能なため、性能が向上する。
【００４９】
・外部ノイズ等による偶発的な故障は、ＦＰＧＡを再コンフィグレーションすることにより、システムを止めずに修復することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施形態１を示す構成図。
【図２】実施形態１におけるホストＣＰＵの処理フローチャート。
【図３】本発明の実施形態２を示す構成図。
【図４】実施形態２における動作チェックのタイムチャート。
【符号の説明】
１…ＦＰＧＡ
２…ＡＮＤ回路
３、３Ａ…ホストＣＰＵ
４、５、７…マルチプレクサ
６…ラッチ回路
８…コントロール部
【図１】
2004302727.tif 000004
【図２】
2004302727.tif 000005
【図３】
2004302727.tif 000006
【図４】
2004302727.tif 000007