(57)【要約】【課題】ロジックブロックの信頼性を向上させたプログラマブルロジックデバイスを得る。【解決手段】それぞれ独立に同一のデータ処理を行うロジックブロックＡ１１、Ｂ１２は、起動時の内部データをそれぞれ格納する初期データメモリＡ３１、Ｂ３２と、この初期データメモリＡ３１、Ｂ３２に格納されたデータと、対応するロジックブロックＡ１１、Ｂ１２の任意の時点の内部データを比較し、一致するかどうかによりロジックブロックＡ１１、Ｂ１２の正常、異常の判定を行う比較回路Ａ４１、Ｂ４２とに接続されるとともに、出力選択回路５は、比較回路Ａ４１、Ｂ４２の判定結果を用いて、ロジックブロックＡ１１、Ｂ１２の出力を保持する出力選択バッファＡ６１、Ｂ６２のいずれかを選択して、異常と判定されたロジックブロックからの出力を行わないようにして、ロジックブロックの信頼性を向上させる。【選択図】図1
2013219473.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、
起動時の上記各ロジックブロックの内部データをそれぞれ格納する複数の初期データメモリ、
この各初期データメモリに格納されたデータと、対応する上記ロジックブロックの内部データとを予め決められたタイミングで比較し、一致するかどうかにより上記各ロジックブロックの正常、異常の判定を行う複数の比較回路、
及びこの複数の比較回路の判定結果が入力され、この入力された判定結果に応じて、上記ロジックブロックの出力を選択する出力選択回路を備えたことを特徴とするプログラマブルロジックデバイス。
【請求項２】
それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、
起動時の上記各ロジックブロックの内部データのパリティビットをそれぞれ格納する複数のパリティメモリ、
この各パリティメモリに格納されたパリティビットと、対応する上記ロジックブロックの内部データとを用いて、予め決められたタイミングでパリティチェックを行い、上記各ロジックブロックの正常、異常の判定を行う複数のパリティ判定回路、
及びこの複数のパリティ判定回路の判定結果が入力され、この入力された判定結果に応じて、上記ロジックブロックの出力を選択する出力選択回路を備えたことを特徴とするプログラマブルロジックデバイス。
【請求項３】
それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、
上記各ロジックブロックに対応して設けられるとともに、対応するロジックブロックによりクリアされるカウンタを有し、上記カウンタがクリアされないために上記カウンタのカウント値がしきい値を超えた場合に、当該ロジックブロックの異常を判定する複数のタイマ、
及びこの複数のタイマの判定結果が入力され、この入力された判定結果に応じて、上記ロジックブロックの出力を選択する出力選択回路を備えたことを特徴とするプログラマブルロジックデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＳＲＡＭ構造のＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）／ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）を使用した回路の信頼性向上を行うプログラマブルロジックデバイスに関するものである。
【背景技術】
【０００２】
ＳＲＡＭ構造のＦＰＧＡ／ＣＰＬＤを使用した場合に、ＦＰＧＡ／ＣＰＬＤにて異常（データビット化け）が発生した際には、ＦＰＧＡ／ＣＰＬＤのロジックブロックが正常状態で０のデータを出力する場合では、ロジックブロックの故障発生時には出力データが、異常の１になる場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００１−５１３２３６号公報（第６〜８頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のとおり、従来のＦＰＧＡ／ＣＰＬＤを使用した回路では、ロジックブロックに異常（データビット化け）が発生した場合は出力が異常となる。そのため１箇所の故障でも回路の動作が継続することができないという問題があった。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、ロジックブロックの信頼性を向上させたプログラマブルロジックデバイスを得ることを目的にする。
【課題を解決するための手段】
【０００６】
この発明に係わるプログラマブルロジックデバイスにおいては、それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、起動時の各ロジックブロックの内部データをそれぞれ格納する複数の初期データメモリ、この各初期データメモリに格納されたデータと、対応するロジックブロックの内部データとを予め決められたタイミングで比較し、一致するかどうかにより各ロジックブロックの正常、異常の判定を行う複数の比較回路、及びこの複数の比較回路の判定結果が入力され、この入力された判定結果に応じて、ロジックブロックの出力を選択する出力選択回路を備えたものである。
【発明の効果】
【０００７】
この発明によれば、それぞれ独立に同一のデータ処理を行い、出力を行う複数のロジックブロック、起動時の各ロジックブロックの内部データをそれぞれ格納する複数の初期データメモリ、この各初期データメモリに格納されたデータと、対応するロジックブロックの内部データとを予め決められたタイミングで比較し、一致するかどうかにより各ロジックブロックの正常、異常の判定を行う複数の比較回路、及びこの複数の比較回路の判定結果が入力され、この入力された判定結果に応じて、ロジックブロックの出力を選択する出力選択回路を備えたので、いずれかのロジックブロックが異常となっても正常動作の継続が可能となり、信頼性が向上する。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１によるプログラマブルロジックデバイスを示す構成図である。
【図２】この発明の実施の形態１によるプログラマブルロジックデバイスの異常発生時を説明する図である。
【図３】この発明の実施の形態２によるプログラマブルロジックデバイスを示す構成図である。
【図４】この発明の実施の形態２によるプログラマブルロジックデバイスのパリティ動作を説明する図である。
【図５】この発明の実施の形態３によるプログラマブルロジックデバイスを示す構成図である。
【図６】この発明の実施の形態３によるプログラマブルロジックデバイスのタイマ動作を示すフローチャートである。
【図７】この発明の実施の形態４によるプログラマブルロジックデバイスを示す構成図である。
【図８】この発明の実施の形態５によるプログラマブルロジックデバイスを示す構成図である。
【図９】この発明の実施の形態６によるプログラマブルロジックデバイスを示す構成図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、この発明の実施の形態１を図に基づいて説明する。
図１は、この発明の実施の形態１によるプログラマブルロジックデバイスを示す構成図である。
図１において、ＳＲＡＭ構造のＦＰＧＡ／ＣＰＬＤを使用したプログラマブルロジックデバイスは、次のように構成されている。
ロジックブロックＡ１１、Ｂ１２は、それぞれ独立に同一のデータ処理を行う。
ロジックブロックＡ１１は、初期データメモリＡ３１と比較回路Ａ４１とに接続され、ロジックブロックＢ１２は、初期データメモリＢ３２と比較回路Ｂ４２とに接続される。
初期データメモリＡ３１は、動作開始時（起動時）にロジックブロックＡ１１のロジック状態をリードし、格納する。初期データメモリＢ３２は、動作開始時（起動時）にロジックブロックＢ１２のロジック状態をリードし、格納する。
この初期状態のロジック状態は、動作開始時にロジックブロックとして機能させるためにロードする元のデータと同じであり、初期データメモリＡ３１、Ｂ３２は、この元のデータをリードし、格納する。
ロジックブロックＡ１１の出力結果Ａ２１と、ロジックブロックＢ１２の出力結果Ｂ２２の値はいずれも０となり、それぞれ、出力選択バッファＡ６１、出力選択バッファＢ６２に保持される。
【００１０】
比較回路Ａ４１及び比較回路Ｂ４２は、それぞれ対応する初期データメモリＡ３１、Ｂ３２のデータと、予め決められたタイミングのロジックブロックＡ１１、Ｂ１２の内部データ（ロジック状態）をリードし、データが一致しているかどうかを判定する。また、出力選択回路５と接続されて、判定結果を出力選択回路５に通知する。
出力選択回路５は、比較回路Ａ４１及び比較回路Ｂ４２の判定結果を受けて、出力選択バッファＡ６１、出力選択バッファＢ６２のいずれかを有意にして出力選択を行う。
図１では、出力選択回路５は、両ロジックブロックＡ１１、Ｂ１２が正常動作時の選択として、出力選択バッファＡ６１を有意にしている。このとき出力結果２は、ロジックブロックＡ１１の出力結果Ａ２１の値０となる。
【００１１】
図２は、この発明の実施の形態１によるプログラマブルロジックデバイスの異常発生時を説明する図である。
図２において、２、５、１１、１２、２１、２２、３１、３２、４１、４２、６１、６２は図１におけるものと同一のものである。
図２は、ロジックブロックＡ１１の異常発生時の動作を示すもので、出力選択回路５は、出力選択バッファＢ６２を有意にしている。
【００１２】
次に、動作について説明する。
初期データメモリＡ３１は、動作開始時（起動時）にロジックブロックＡ１１のロジック状態をリードし、格納する。同様に、初期データメモリＢ３２は、動作開始時（起動時）にロジックブロックＢ１２のロジック状態をリードし、格納する。
比較回路Ａ４１は、予め決められたタイミングで、初期データメモリＡ３１のデータと、ロジックブロックＡ１１の内部データをそれぞれリードし、データが一致しているかどうかを確認する。一致した場合は、正常判定を出力選択回路５に通知し、一致しない場合は異常判定を通知する。
同様に、比較回路Ｂ４２は、予め決められたタイミングで、初期データメモリＢ３２のデータとロジックブロックＢ１２の内部データをそれぞれリードし、データが一致しているかどうかを確認する。一致した場合は、正常判定を出力選択回路５に通知し、一致しない場合は異常判定を通知する。
【００１３】
出力選択回路５は、比較回路Ａ４１及び比較回路Ｂ４２の判定結果を受けて、出力選択バッファＡ６１、出力選択バッファＢ６２のいずれかを有意にして、出力選択を行う。
図１に示すように、両ロジックブロックが正常の場合は、いずれを有意としても問題ないが、説明のため、図１では出力選択バッファＡ６１を選択するものとする。
【００１４】
図２に示すように、ロジックブロックＡ１１に異常が発生した場合は、比較回路Ａ４１は、異常判定を行う。異常判定を受けた出力選択回路５は、出力選択バッファＡ６１を無意とし、出力選択バッファＢ６２を有意とする。
これにより、出力結果Ａ２１が正しくない値１となった場合に、正しい結果である出力結果Ｂ２２の値０が選択される。その結果、出力結果２は正しい値０となる。
【００１５】
実施の形態１によれば、上記の動作により、いずれかのロジックブロックが異常となっても正常動作の継続が可能となり、ＦＰＧＡ／ＣＰＬＤ回路の動作の信頼性が向上する。
【００１６】
実施の形態２．
図３は、この発明の実施の形態２によるプログラマブルロジックデバイスを示す構成図である。
図３において、２、５、１１、１２、２１、２２、６１、６２は図１におけるものと同一のものである。図３では、ロジックブロックＡ１１、Ｂ１２のそれぞれの初期状態の内部データに対応するパリティビットを格納するパリティメモリＡ７１、Ｂ７２を設け、さらに、パリティメモリＡ７１、Ｂ７２のパリティデータと、ロジックブロックＡ１１、Ｂ１２の内部データとを用いて、正常、異常の判定を行うパリティ判定回路Ａ８１、Ｂ８２が設けられている。
【００１７】
図４は、この発明の実施の形態２によるプログラマブルロジックデバイスのパリティ動作を説明する図である。
図４において、初期状態のロジックブロックの８ビットデータに対し、パリティメモリにパリティビット１ビットを付加している。適宜ロジックブロックの内部データとパリティメモリのパリティデータを読み出して、パリティビットを含めて内部データの１の数が偶数であれば正常、奇数の場合は異常とする。
【００１８】
実施の形態２は、図３に示すように実施の形態１の初期データメモリＡ３１、初期データメモリＢ３２をパリティメモリＡ７１、パリティメモリＢ７２に変更し、さらに比較回路Ａ４１、比較回路Ｂ４２を、パリティ判定回路Ａ８１、パリティ判定回路Ｂ８２に変更したものである。
【００１９】
次に、変更箇所の動作について説明する。
パリティ判定回路Ａ８１は、予め決められたタイミングで、ロジックブロックＡ１１から内部データ、パリティメモリＡ７１からパリティデータをリードし、パリティチェックした結果で正常／異常の判定を行う。このパリティチェックについては後述する。
同様に、パリティ判定回路Ｂ８２は、予め決められたタイミングで、ロジックブロックＢ１２から内部データ、パリティメモリＢ７２からパリティデータをリードし、パリティチェックした結果で正常／異常の判定を行う。
【００２０】
それ以外の動作は、実施の形態１と同様である。
これにより、ＦＰＧＡ／ＣＰＬＤを用いた回路の動作の信頼性が向上する。
【００２１】
パリティチェック機構は既知の技術であるが、念のため説明を行う。ここでは偶数パリティで説明する。
図４に示すように、初期状態のロジックブロックの８ビットデータに対し、パリティメモリにパリティビット１ビットを付加しておく。そして、予め決められたタイミングでロジックブロックの８ビットデータと、これに対応するパリティデータを読み出し、パリティビットを含めて１の数が偶数であれば正常、奇数の場合は異常とする。
図４では、ロジックブロックのいずれかのデータが化けた場合のもので、１の数が奇数となっていて、この場合異常となる。
なお、パリティ機構を応用したＥＣＣ等も同様の考え方であり、同様の効果を奏することができる。
【００２２】
実施の形態２によれば、ＦＰＧＡ／ＣＰＬＤを使用した回路の動作の信頼性が向上するとともに、実施の形態１と比べて、メモリのデータ量、比較／判定の計算時間が削減できるというメリットがある。
【００２３】
実施の形態３．
図５は、この発明の実施の形態３によるプログラマブルロジックデバイスを示す構成図である。
図５において、２、５、１１、１２、２１、２２、６１、６２は図１におけるものと同一のものである。図５では、ロジックブロックＡ１１、Ｂ１２にそれぞれタイマクリア回路Ａ１０１、Ｂ１０２を設け、タイマクリア回路Ａ１０１、Ｂ１０２により、周期的に、ロジックブロックＡ１１、Ｂ１２にそれぞれ対応して設けられたタイマＡ９１、Ｂ９２をクリアする。
【００２４】
実施の形態３は、図５に示すように、実施の形態１の比較回路に替えてタイマＡ９１、Ｂ９２とし、初期データメモリを削除し、さらに、ロジックブロックＡ１１、Ｂ１２の内部にタイマクリア回路Ａ１０１、Ｂ１０２を設けたものである。
【００２５】
次に、変更箇所の動作について説明する。
タイマＡ９１は、内部のカウンタを持ち、内部のカウンタがある値（しきい値）を超えた場合に異常の判定となる。カウンタの値は、タイマクリア回路Ａ１０１がタイマクリア動作を行うことで、クリアされる。
この動作が継続している場合は、正常が継続するが、ロジックブロックＡ１１が異常となった場合はタイムクリア回路Ａ１０１も異常となり、本動作が継続しないことで、ロジックブロックＡ１１が異常となったことを判別できる。タイマＡ９１、Ｂ９２の判定結果は、それぞれ出力選択回路５に出力される。
ロジックブロックＢ１２についても同様の動作となる。それ以外の動作は、実施の形態１と同様となり、ＦＰＧＡ／ＣＰＬＤを使用した回路の動作の信頼性が向上する。実施の形態１と比べた場合、初期状態を確認しなくて良い点にメリットがある。
【００２６】
次に、タイマＡ９１、Ｂ９２の動作を図６に基づき説明する。
タイマＡ９１、Ｂ９２は、動作開始時に初期化を行う（ステップＳ１００）。タイマＡ９１、Ｂ９２のカウンタ値が設定上限（しきい値）であるかどうかを判定し（ステップＳ１０１）、上限となった場合は、異常判定とする。
上限となっていない場合は、当該タイマをカウントアップする（ステップＳ１０２）。次いで、タイマクリア回路Ａ１０１、Ｂ１０２のいずれかからタイマクリア指令があるかどうかの判定を行い（ステップＳ１０３）、タイマクリア指令があった場合は、タイマ初期化（ステップＳ１００）に戻って、対応するタイマを初期化し、無い場合は、タイマが設定上限であるかどうかの判定（ステップＳ１０１）に戻る。
これらの一連のフローを繰り返すことで、異常検出を行う。
【００２７】
実施の形態３によれば、ＦＰＧＡ／ＣＰＬＤを使用した回路の動作の信頼性が向上するとともに、実施の形態１と比べた場合、初期状態を確認しなくて良い点にメリットがある。
【００２８】
実施の形態４．
図７は、この発明の実施の形態４によるプログラマブルロジックデバイスを示す構成図である。
図７において、２、５、１１、１２、２１、２２、３１、３２、４１、４２、６１、６２は図１におけるものと同一のものである。図７のプログラマブルロジックデバイスには、ロジックブロックＣ１３と、動作開始時（起動時）にロジックブロックＣ１３のロジック状態をリードし格納する初期データメモリＣ３３と、初期データメモリＣ３３のデータと、ロジックブロックＣ１３の内部データとを比較する比較回路Ｃ４３と、ロジックブロックＣ１３の出力である出力結果２３と、出力結果を保持する出力選択バッファＣ６３とが設けられている。つまり、図１の２つのロジックブロックが３つのロジックブロックの構成になっている。
【００２９】
実施の形態４は、図７に示すように実施の形態１にロジックブロックＣ１３、初期データメモリＣ３３、比較回路Ｃ４３、出力選択バッファＣ６３を追加したものである。基本的な動作は実施の形態１と同様となる。実施の形態４においては、ロジックブロックＡ１１、ロジックブロックＢ１２が異常となった場合も動作が継続可能となり、実施の形態１よりも信頼性が向上する。
なお、同一の回路を複数個設けた場合は、その数量に応じて信頼性が向上する。
【００３０】
実施の形態４によれば、さらにＦＰＧＡ／ＣＰＬＤを使用した回路の冗長度を増したので、実施の形態１よりも信頼性が向上する。
【００３１】
実施の形態５．
図８は、この発明の実施の形態５によるプログラマブルロジックデバイスを示す構成図である。
図８において、２、５、１１、１２、２１、２２、６１、６２、７１、７２、８１、８２は図３におけるものと同一のものである。図８のプログラマブルロジックデバイスでは、さらにロジックブロックＣ１３と、ロジックブロックＣ１３のパリティを格納したパリティメモリＣ７３と、ロジックブロックＣ１３の内部データと、パリティメモリＣ７３のパリティデータから正常、異常を判定するパリティ判定回路Ｃ８３と、ロジックブロックＣ１３の出力を保持する出力選択バッファＣ６３とを設けている。
【００３２】
実施の形態５は、図８に示すように、実施の形態２にロジックブロックＣ１３、パリティメモリＣ７３、パリティ判定回路Ｃ８３、出力選択バッファＣ６３を追加したものである。
実施の形態５の基本的な動作は、実施の形態２と同様となる。本実施の形態５においては、ロジックブロックＡ１１、ロジックブロックＢ１２が異常となった場合も動作が継続可能となり、実施の形態２よりも信頼性が向上する。
なお、同一の回路を複数個設けた場合は、その数量に応じて信頼性が向上する。
【００３３】
実施の形態５によれば、さらにＦＰＧＡ／ＣＰＬＤを使用した回路の冗長度を増したので、実施の形態２よりも信頼性が向上する。
【００３４】
実施の形態６．
図９は、この発明の実施の形態６によるプログラマブルロジックデバイスを示す構成図である。
図９において、２、５、１１、１２、２１、２２、６１、６２、９１、９２、１０１、１０２は図５におけるものと同一のものである。図９のプログラマブルロジックデバイスでは、さらにロジックブロックＣ１３と、ロジックブロックＣ１３内に配置されたタイマクリア回路Ｃ１０３と、タイマクリア回路Ｃ１０３によりクリアされ、内部にカウンタを有するタイマＣ９３と、ロジックブロックＣ１３の出力を格納する出力選択バッファＣ６３とが設けられている。
【００３５】
実施の形態６は、図９に示すように、実施の形態３にロジックブロックＣ１３、タイマＣ９３、ロジックブロックＣ１３内部のタイマクリア回路Ｃ１０３、出力選択バッファＣ６３を追加したものである。
実施の形態６の基本的な動作は、実施の形態３と同様である。本実施の形態６においては、ロジックブロックＡ１１、ロジックブロックＢ１２が異常となった場合も動作が継続可能となり、実施の形態３よりも信頼性が向上する。
なお、同一の回路を複数個設けた場合は、その数量に応じて信頼性が向上する。
【００３６】
実施の形態６によれば、さらにＦＰＧＡ／ＣＰＬＤを使用した回路の冗長度を増したので、実施の形態３よりも信頼性が向上する。
【００３７】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００３８】
１１  ロジックブロックＡ
１２  ロジックブロックＢ
１３  ロジックブロックＣ
２  出力結果
２１  出力結果Ａ
２２  出力結果Ｂ
２３  出力結果Ｃ
３１  初期データメモリＡ
３２  初期データメモリＢ
３３  初期データメモリＣ
４１  比較回路Ａ
４２  比較回路Ｂ
４３  比較回路Ｃ
５  出力選択回路
６１  出力選択バッファＡ
６２  出力選択バッファＢ
６３  出力選択バッファＣ
７１  パリティメモリＡ
７２  パリティメモリＢ
７３  パリティメモリＣ
８１  パリティ判定回路Ａ
８２  パリティ判定回路Ｂ
８３  パリティ判定回路Ｃ
９１  タイマＡ
９２  タイマＢ
９３  タイマＣ
１０１  タイマクリア回路Ａ
１０２  タイマクリア回路Ｂ
１０３  タイマクリア回路Ｃ
【図１】
2013219473.tif 000003
【図２】
2013219473.tif 000004
【図３】
2013219473.tif 000005
【図４】
2013219473.tif 000006
【図５】
2013219473.tif 000007
【図６】
2013219473.tif 000008
【図７】
2013219473.tif 000009
【図８】
2013219473.tif 000010
【図９】
2013219473.tif 000011