(57)【要約】【課題】フォルト検出回路において、回路規模を低減し、故障や誤動作がどの部分で起こっているのかを明らかにできるようにする。【解決手段】論理回路２０を自己双対関数によって設計し、外部から同じ内容のデータを２回入力する。論理回路２０では、転送１回目のデータが反転されずに演算され、この結果が第４フリップフロップ３２に保持され、転送２回目のデータが反転されて演算され、この結果が第３フリップフロップ３１に保持される。これにより、出力側エラー検出回路３４によって、第４フリップフロップ３２に保持されたデータと、第３フリップフロップ３１に保持されたデータとが比較され、各データが異なるときにはエラーが出力される。【選択図】図１
2010073083.tif 000002
【特許請求の範囲】
【請求項１】
外部から同じ内容のデータが２回入力されるようになっており、１回目に入力されたデータと２回目に入力されたデータとに基づいてデータ転送のエラー検出を行うフォルト検出回路であって、
変数で表現された論理関数において前記変数の否定をとり、かつ、論理関数全体の否定をとると前記変数で表現された論理関数と等しいという自己双対関数に従って演算を行い、その結果を出力する論理回路（２０）と、
前記データを保持する第１フリップフロップ（１１）と、クロックに従って前記第１フリップフロップ（１１）に保持されたデータを保持する第２フリップフロップ（１２）と、前記第１フリップフロップ（１１）に保持されたデータを前記論理回路（２０）に入力する一方、前記第２フリップフロップ（１２）に保持されたデータを反転させて前記論理回路（２０）に入力する入力側選択回路（１３）と、前記第１フリップフロップ（１１）に保持されたデータおよび前記第２フリップフロップ（１２）に保持されたデータを入力し、前記各データが異なる値であるとき、エラーを出力する入力側エラー検出回路（１４）とを備えたデータ入力回路（１０）と、
前記論理回路（２０）から出力された演算結果を保持する第３フリップフロップ（３１）と、前記クロックに従って前記第３フリップフロップ（３１）に保持された前記演算結果を保持する第４フリップフロップ（３２）と、前記第３フリップフロップ（３１）に保持されたデータを外部に出力する一方、前記第４フリップフロップ（３２）に保持されたデータを反転させて外部に出力する出力側選択回路（３３）と、前記第３フリップフロップ（３１）に保持されたデータおよび前記第４フリップフロップ（３２）に保持されたデータを入力し、前記各データが異なる値であるとき、エラーを出力する出力側エラー検出回路（３４）とを備えたデータ出力回路（３０）とを備えており、
前記データ入力回路（１０）の前記第１フリップフロップ（１１）に外部から１回目のデータの入力がなされたとき、前記クロックに従って、前記１回目のデータは前記第１フリップフロップ（１１）から前記入力側選択回路（１３）を介して前記論理回路（２０）に入力されて演算され、前記論理回路（２０）の１回目の演算結果が前記第３フリップフロップ（３１）に保持され、
前記データ入力回路（１０）の前記第１フリップフロップ（１１）に外部から２回目のデータの入力がなされたとき、前記クロックに従って、前記第３フリップフロップ（３１）に保持された前記１回目の演算結果が前記第４フリップフロップ（３２）に保持されると共に、前記第１フリップフロップ（１１）に入力された前記２回目のデータが前記第２フリップフロップ（１２）に入力されて保持され、さらに前記第２フリップフロップ（１２）から前記入力側選択回路（１３）を介して反転されて前記論理回路（２０）に入力されて演算され、前記論理回路（２０）の２回目の演算結果が前記第３フリップフロップ（３１）に保持されるようになっており、
前記入力側エラー検出回路（１４）は、前記第１フリップフロップ（１１）に保持された前記１回目のデータと前記第２フリップフロップ（１２）に保持された前記２回目のデータとを比較し、前記各データが等しいときにはエラーを出力しない一方、前記各データが異なるときにはエラーを出力し、
前記出力側エラー検出回路（３４）は、前記第４フリップフロップ（３２）に保持された前記１回目の演算結果と前記第３フリップフロップ（３１）に保持された前記２回目の演算結果とを比較し、前記１回目のデータが反転されずに演算された前記１回目の演算結果と前記２回目のデータが反転されて演算された結果とが前記自己双対関数の性質から等しいときにはエラーを出力しない一方、異なるときにはエラーを出力することを特徴とするフォルト検出回路。
【請求項２】
前記入力側エラー検出回路（１４）の出力と前記出力側エラー検出回路（３４）の出力とをそれぞれ入力し、前記各出力すべてがエラーを示すものでないときにはエラーを出力しない一方、前記各出力のうち少なくとも１つがエラーを示すものであるときエラーを出力する中継回路（４０）と、
前記クロックを入力し、該クロックを２分周した２分周信号を生成して出力する２分周用フリップフロップ（４５）と、
前記２分周用フリップフロップ（４５）から入力される前記２分周信号に従って、前記中継回路（４０）の出力を前記２回目のデータの転送ごとに外部に出力するエラー出力回路（５０）とを備えていることを特徴とする請求項１に記載のフォルト検出回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送のエラーを検出するフォルト検出回路に関する。
【背景技術】
【０００２】
近年では半導体プロセスの微細化が進み、半導体パッケージ内に存在する微量な放射線物質が放射性崩壊して放射されるアルファ線（α線）によってデジタル回路の誤動作が懸念されている。そこで、特許文献１にて提案された多数決回路のように、計算機の信頼性を高める手法が知られている。
【０００３】
図３は、フリップフロップ（以下、ＦＦと記す）を用いてデータ転送のエラーを検出するフォルト検出回路の従来回路図を示したものである。この図に示されるように、ＦＦ６０およびＦＦ６１が並列に配置され、ＦＦ６２およびＦＦ６３が並列に配置されており、各ＦＦ６０〜６３にそれぞれ同じデータ（ＤＡＴＡ）が入力される。このように、データを入力する回路が冗長化されている。
【０００４】
そして、ＦＦ６０の出力が一方の論理回路６４に入力され、ＦＦ６１の出力が他方の論理回路６５に入力される。また、ＦＦ６２の出力が一方の論理回路６４に入力され、ＦＦ６３の出力が他方の論理回路６５に入力される。各論理回路６４、６５は同じ関数Ｆ（Ｘ）を元に処理を行う回路である。したがって、フォルト検出回路は二重化されている。
【０００５】
ＦＦ６０の出力をＥ、ＦＦ６１の出力をＥ’、ＦＦ６２の出力をＦ、ＦＦ６３の出力をＦ’とすると、一方の論理回路６４では関数Ｆ（Ｅ，Ｆ）に従った演算が行われる。また、他方の論理回路６５では関数Ｆ（Ｅ’，Ｆ’）に従った演算が行われる。そして、一方の論理回路６４の演算結果はＦＦ６６に入力され、他方の論理回路６５の演算結果はＦＦ６７に入力される。ＦＦ６６の出力はフォルト検出回路の出力（ＯＵＴ）ともなる。
【０００６】
また、ＦＦ６０およびＦＦ６１の出力はＸＯＲ回路６８に入力され、ＦＦ６２およびＦＦ６３の出力はＸＯＲ回路６９に入力される。さらに、ＦＦ６６およびＦＦ６７の出力はＸＯＲ回路７０に入力される。そして、ＸＯＲ回路６８〜７０の出力がＯＲ回路７１に入力される。
【０００７】
このようなフォルト検出回路では、ＦＦ６０、ＦＦ６１、論理回路６４、およびＦＦ６６が回路の一系統となり、ＦＦ６２、ＦＦ６３、論理回路６５、およびＦＦ６７が回路の一系統となる。すなわち、図３に示されるフォルト検出回路は二系統となるように構成され、クロック（ＣＬＫ）に従って、フォルト検出回路に入力されたデータが同時に処理されていく。
【０００８】
そして、ＦＦ６０およびＦＦ６１の出力Ｅおよび出力Ｅ’が同じであれば、ＸＯＲ回路６８の出力は「０」となり、異なれば出力は「１」となる。同じく、ＦＦ６２およびＦＦ６３の出力Ｆおよび出力Ｆ’が同じであれば、ＸＯＲ回路６９の出力は「０」となり、異なれば出力は「１」となる。さらに、一方の論理回路６４の結果である出力Ｇと他方の論理回路６５の結果である出力Ｇ’とが同じであれば、ＸＯＲ回路７０の出力は「０」となり、異なれば出力は「１」となる。
【０００９】
ここで、各ＦＦ６０〜６３、６６、６７や各論理回路６４、６５に誤動作や故障が生じ、各ＸＯＲ回路６８〜７０において２つの入力が異なることになると、ＸＯＲ回路６８〜７０から「１」が出力される。このため、ＯＲ回路７１からエラー（ＥＲＲＯＲ）を示す「１」が出力される。これにより、フォルト検出回路の誤作動や故障を検出できるようになっている。
【特許文献１】特開平６−３４２３８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来の技術では、フォルト検出回路が二系統で構成されているため、フォルト検出回路の回路規模が一系統の場合の２倍以上に増加してしまうという問題があった。また、回路の誤動作は、同時に同じ値に誤動作しやすい。このため、フォルト検出回路を２重化しても、各系統が同時に誤動作してしまい、どちらの系統が誤動作を起こしているのかを検出できないという問題があった。
【００１１】
本発明は、上記点に鑑み、フォルト検出回路において、回路規模を低減し、故障や誤動作がどの部分で起こっているのかを明らかにできるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、請求項１に記載の発明では、外部から同じ内容のデータが２回入力されるようになっており、１回目に入力されたデータと２回目に入力されたデータとに基づいてデータ転送のエラー検出を行うフォルト検出回路であって、変数で表現された論理関数において変数の否定をとり、かつ、論理関数全体の否定をとると変数で表現された論理関数と等しいという自己双対関数に従って演算を行い、その結果を出力する論理回路（２０）と、データを保持する第１フリップフロップ（１１）と、クロックに従って第１フリップフロップ（１１）に保持されたデータを保持する第２フリップフロップ（１２）と、第１フリップフロップ（１１）に保持されたデータを論理回路（２０）に入力する一方、第２フリップフロップ（１２）に保持されたデータを反転させて論理回路（２０）に入力する入力側選択回路（１３）と、第１フリップフロップ（１１）に保持されたデータおよび第２フリップフロップ（１２）に保持されたデータを入力し、各データが異なる値であるとき、エラーを出力する入力側エラー検出回路（１４）とを備えたデータ入力回路（１０）と、論理回路（２０）から出力された演算結果を保持する第３フリップフロップ（３１）と、クロックに従って第３フリップフロップ（３１）に保持された演算結果を保持する第４フリップフロップ（３２）と、第３フリップフロップ（３１）に保持されたデータを外部に出力する一方、第４フリップフロップ（３２）に保持されたデータを反転させて外部に出力する出力側選択回路（３３）と、第３フリップフロップ（３１）に保持されたデータおよび第４フリップフロップ（３２）に保持されたデータを入力し、各データが異なる値であるとき、エラーを出力する出力側エラー検出回路（３４）とを備えたデータ出力回路（３０）とを備えており、各データ入力回路（１０）の第１フリップフロップ（１１）に外部から１回目のデータの入力がなされたとき、クロックに従って、１回目のデータは第１フリップフロップ（１１）から入力側選択回路（１３）を介して論理回路（２０）に入力されて演算され、論理回路（２０）の１回目の演算結果が第３フリップフロップ（３１）に保持され、各データ入力回路（１０）の第１フリップフロップ（１１）に外部から２回目のデータの入力がなされたとき、クロックに従って、第３フリップフロップ（３１）に保持された１回目の演算結果が第４フリップフロップ（３２）に保持されると共に、第１フリップフロップ（１１）に入力された２回目のデータが第２フリップフロップ（１２）に入力されて保持され、さらに第２フリップフロップ（１２）から入力側選択回路（１３）を介して反転されて論理回路（２０）に入力されて演算され、論理回路（２０）の２回目の演算結果が第３フリップフロップ（３１）に保持されるようになっており、入力側エラー検出回路（１４）は、第１フリップフロップ（１１）に保持された１回目のデータと第２フリップフロップ（１２）に保持された２回目のデータとを比較し、各データが等しいときにはエラーを出力しない一方、各データが異なるときにはエラーを出力し、出力側エラー検出回路（３４）は、第４フリップフロップ（３２）に保持された１回目の演算結果と第３フリップフロップ（３１）に保持された２回目の演算結果とを比較し、１回目のデータが反転されずに演算された１回目の演算結果と２回目のデータが反転されて演算された結果とが自己双対関数の性質から等しいときにはエラーを出力しない一方、異なるときにはエラーを出力することを特徴とする。
【００１３】
このように、論理回路（２０）は自己双対関数によって設計されているため、故障や誤作動が起こらなければ、反転させないデータによる演算結果と反転させたデータによる演算結果とが等しくなることを利用することができる。すなわち、外部から同じ内容のデータを１回目と２回目とに分けて入力し、各データを論理回路（２０）で演算してその結果を出力側エラー検出回路（３４）にて比較することにより、エラーを検出することができる。
【００１４】
したがって、同じ内容の論理回路を２つ用意する必要がなく、フォルト検出回路を二重化しなくてもデータ転送のエラーを検出することができるため、回路規模を低減できる。また、入力側エラー検出回路（１４）および出力側エラー検出回路（３４）それぞれでエラーを検出することができるため、どの部分で故障や誤作動が起こっているのかを明らかにすることができる。
【００１５】
請求項２に記載の発明では、入力側エラー検出回路（１４）の出力と出力側エラー検出回路（３４）の出力とをそれぞれ入力し、各出力すべてがエラーを示すものでないときにはエラーを出力しない一方、各出力のうち少なくとも１つがエラーを示すものであるときエラーを出力する中継回路（４０）と、クロックを入力し、該クロックを２分周した２分周信号を生成して出力する２分周用フリップフロップ（４５）と、２分周用フリップフロップ（４５）から入力される２分周信号に従って、中継回路（４０）の出力を２回目のデータの転送ごとに外部に出力するエラー出力回路（５０）とを備えていることを特徴とする。
【００１６】
これにより、入力側エラー検出回路（１４）の出力と出力側エラー検出回路（３４）の出力とを集約でき、フォルト検出回路のエラーとして該エラーを２回目のデータの転送ごとに外部に出力することができる。
【００１７】
なお、上記各手段の括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示すものである。
【発明を実施するための最良の形態】
【００１８】
（第１実施形態）
以下、本発明の第１実施形態について図を参照して説明する。本実施形態で示されるフォルト検出回路は、例えばデジタル回路においてデータを転送する際にデータが正しく転送されたか否かを検出するものである。
【００１９】
図１は、本発明の一実施形態に係るフォルト検出回路の全体回路図である。この図に示されるように、フォルト検出回路は、複数のデータ入力回路１０と、論理回路２０と、データ出力回路３０と、中継回路４０と、２分周用フリップフロップ４５（以下、２分周用ＦＦ４５という）と、エラー出力回路５０とを備えている。
【００２０】
複数のデータ入力回路１０それぞれは、第１フリップフロップ１１（以下、第１ＦＦ１１という）と、第２フリップフロップ１２（以下、第２ＦＦ１２という）と、入力側選択回路１３と、入力側エラー検出回路１４とを備えている。
【００２１】
第１ＦＦ１１および第２ＦＦ１２は、入力されたデータを保持するものである。第１ＦＦ１１の入力端子には外部からデータ（ＤＡＴＡ）が入力される。本実施形態では、第１ＦＦ１１の出力端子が第２ＦＦ１２の入力端子に接続されている。そして、第１ＦＦ１１にクロック（ＣＬＫ）が入力されると第１ＦＦ１１に保持されたデータが第２ＦＦ１２に入力され第２ＦＦ１２にて保持されるようになっている。第１ＦＦ１１および第２ＦＦ１２は、例えばＤフリップフロップである。
【００２２】
入力側選択回路１３は、第１ＦＦ１１に保持されたデータを論理回路２０に入力する一方、第２ＦＦ１２に保持されたデータを反転させて論理回路２０に入力するものである。このため、入力側選択回路１３の非反転入力端子が第１ＦＦ１１の出力端子に接続され、反転入力端子が第２ＦＦ１２の出力端子に接続されている。また、入力側選択回路１３の出力端子が論理回路２０に接続されている。
【００２３】
入力側エラー検出回路１４は、排他的論理和を演算するものであり、いわゆるＸＯＲ回路である。すなわち、入力側エラー検出回路１４は、第１ＦＦ１１に保持されたデータおよび第２ＦＦ１２に保持されたデータをそれぞれ入力し、各データが異なる値であるとき、エラーを出力する。「エラー」とはエラーを示す信号である。エラーでなければ、エラーではないことを示す信号が出力される。このため、入力側エラー検出回路１４の一方の入力端子が第１ＦＦ１１の出力端子に接続され、他方の入力端子が第２ＦＦ１２の出力端子に接続されている。また、入力側エラー検出回路１４の出力端子が中継回路４０に接続されている。
【００２４】
本実施形態では、データ入力回路１０はフォルト検出回路に２つ設けられ、一方は通常の回路とされ、他方は検査用の回路とされる。いずれのデータ入力回路１０も同じ構成であり、データ転送に冗長性を持たせている。
【００２５】
論理回路２０は、自己双対関数で設計された回路である。自己双対関数とは、変数で表現された論理関数において変数の否定をとり、かつ、論理関数全体の否定をとると変数で表現された論理関数と等しくなる関数である。論理回路２０は、この自己双対関数に従って演算を行い、その結果を出力する。この自己双対関数の具体的な関係式を図２に示す。
【００２６】
図２に示された式（１）がいわゆる自己双対関数を簡潔に表した関係式である。変数Ｘの否定をとって関数全体の否定をとると元の関数Ｆ（Ｘ）と同じになることを表している。
【００２７】
そして、図２中の式（２）が本実施形態に係る自己双対関数である。ここで、図２の式（２）における各項をＡ〜Ｄの記号で置き換えると、図２中の式（３）として表現できる。以下では、式（２）の各項についてはＡ〜Ｄという記号で表現する。
【００２８】
例えば、変数ｘｎ＋１＝１とすると、Ａ＝１、Ｃ＝０であるから、図２中の式（２）からＧ（Ｘ，ｘｎ＋１）＝Ｂという結果が得られる。一方、変数ｘｎ＋１＝０とすると、Ａ＝０、Ｃ＝１であるから、図２中の式（２）からＧ（Ｘ，ｘｎ＋１）＝Ｄという結果が得られる。このとき、Ｄは、Ｂの変数Ｘの否定をとって関数全体の否定をとると図２中の式（１）に基づいてＢと等しくなる。
【００２９】
したがって、データを論理回路２０に入力することで得られた演算結果と、反転させたデータを論理回路２０に入力することで得られた演算結果とは、図２中の式（１）の関係から等しいということになる。すなわち、フォルト検出回路は同じ内容のデータを２回受け取り、一方のデータを反転させて論理回路２０で処理し、他方のデータを反転させないで論理回路２０で処理し、その結果を後述する出力側エラー検出回路３４によって比較する。これにより、各演算結果が等しいか否かを判定することでデータが正しく転送されているか否かを判定できるようになっている。
【００３０】
論理回路２０には、複数のデータ入力回路１０からデータが入力されるが、基本的には論理回路２０は通常の回路としてのデータ入力回路１０から入力されたデータを処理する。なお、これは一例であり、複数のデータ入力回路１０から入力したデータを論理回路２０にてどのように扱うかは自由に設定すれば良い。
【００３１】
データ出力回路３０は、第３フリップフロップ３１（以下、第３ＦＦ３１という）と、第４フリップフロップ３２（以下、第４ＦＦ３２という）と、出力側選択回路３３と、出力側エラー検出回路３４とを備えている。
【００３２】
第３ＦＦ３１および第４ＦＦ３２は、第１ＦＦ１１および第２ＦＦ１２と同様に、入力されたデータを保持するものである。具体的には、第３ＦＦ３１の入力端子が論理回路２０に接続されており、出力端子が第４ＦＦ３２の入力端子に接続されている。そして、第３ＦＦ３１にクロックが入力されると第３ＦＦ３１に保持されたデータが第４ＦＦ３２に入力され第４ＦＦ３２にて保持されるようになっている。第３ＦＦ３１および第４ＦＦ３２は、第１ＦＦ１１および第２ＦＦ１２と同様に、例えばＤフリップフロップである。
【００３３】
出力側選択回路３３は、第３ＦＦ３１に保持されたデータを外部に出力する一方、第４ＦＦ３２に保持されたデータを反転させて外部に出力するものである。このため、出力側選択回路３３の非反転入力端子が第３ＦＦ３１の出力端子に接続され、反転入力端子が第４ＦＦ３２の出力端子に接続されている。また、出力側選択回路３３の出力端子が外部の回路に接続されている。
【００３４】
出力側エラー検出回路３４は、入力側エラー検出回路１４と同様に排他的論理和を演算するものであり、ＸＯＲ回路である。すなわち、出力側エラー検出回路３４は、第３ＦＦ３１に保持されたデータおよび第４ＦＦ３２に保持されたデータをそれぞれ入力し、各データが異なる値であるとき、エラーを出力する。このため、出力側エラー検出回路３４の一方の入力端子が第３ＦＦ３１の出力端子に接続され、他方の入力端子が第４ＦＦ３２の出力端子に接続されている。また、出力側エラー検出回路３４の出力端子が中継回路４０に接続されている。
【００３５】
中継回路４０は、論理和を演算するものであり、いわゆるＯＲ回路である。このような中継回路４０は、各入力側エラー検出回路１４の各出力と出力側エラー検出回路３４の出力とをそれぞれ入力する。そして、中継回路４０は、各出力すべてがエラーを示すものでないときにはエラーを出力しない一方、各出力のうち少なくとも１つがエラーを示すものであるときエラーを出力する。
【００３６】
２分周用ＦＦ４５は、クロック（ＣＬＫ）を２分周した信号でエラー出力回路５０をマスクするものである。具体的には、図１に示されるように、２分周用ＦＦ４５はクロック（ＣＬＫ）を入力し、該クロックを２分周すなわちクロックの周期を１／２倍した２分周信号を生成し、該２分周信号をＦＦ出力として出力する。これは、２回目のデータの転送ごとにエラー出力回路５０からエラー信号を出力させるためである。
【００３７】
エラー出力回路５０は、論理積を演算するものであり、いわゆるＡＮＤ回路である。このエラー出力回路５０は、２分周用ＦＦ４５からＦＦ出力が入力されるタイミングで、中継回路４０から入力される信号をエラー信号（ＥＲＲＯＲ）として外部に出力するものである。この場合、エラー出力回路５０は、中継回路４０からエラーを示す信号が入力されなければエラーではないことを示す信号を外部に出力し、中継回路４０からエラーを示す信号が入力されれば、エラーを示す信号をエラー信号として外部に出力する。以上が、フォルト検出回路の全体構成である。
【００３８】
次に、上記のフォルト検出回路の作動について説明する。フォルト検出回路は、外部から同じ内容のデータを２回入力するようになっており、１回目に入力されたデータと２回目に入力されたデータとに基づいてデータ転送のエラー検出を行う。
【００３９】
まず、クロックに従って、外部から各データ入力回路１０の第１ＦＦ１１にデータの転送１回目の入力がそれぞれ行われる。そして、クロックに従って、転送１回目のデータは第１ＦＦ１１から出力されると共に入力側選択回路１３を介して論理回路２０に入力され、論理回路２０にて処理される。こうして論理回路２０で処理された１回目の演算結果は、第３ＦＦ３１に入力されて保持される。
【００４０】
例えばデータが「１」の場合、転送１回目のデータは「１」として論理回路２０に入力されて処理される。したがって、上述のように、図２中の式（２）によってＢという演算結果が第３ＦＦ３１に保持される。
【００４１】
続いて、クロックに従って、外部から各データ入力回路１０の第１ＦＦ１１にデータの転送２回目の入力がそれぞれ行われる。これにより、第３ＦＦ３１に保持された１回目の演算結果が第４ＦＦ３２に保持される。また、第１ＦＦ１１に入力された２回目のデータが第２ＦＦ１２に入力されて保持され、さらに第２ＦＦ１２から入力側選択回路１３を介して反転されて論理回路２０に入力されて演算される。
【００４２】
すなわち、「１」だったデータが、転送２回目では入力側選択回路１３で反転されて「０」として論理回路２０に入力されて処理される。そして、論理回路２０の２回目の演算結果が第３ＦＦ３１に保持される。
【００４３】
このように、データの転送１回目および２回目が行われることにより、第４ＦＦ３２には転送１回目のデータの演算結果が保持され、第３ＦＦ３１には転送２回目の反転データの演算結果が保持される。
【００４４】
第３ＦＦ３１および第４ＦＦ３２に保持されたデータは、出力側選択回路３３を介して外部に出力される。第３ＦＦ３１に保持された転送２回目のデータは、出力側選択回路３３からそのまま外部に出力される。一方、第４ＦＦ３２に保持された転送１回目のデータは、出力側選択回路３３にて反転されて出力される。
【００４５】
また、各データ入力回路１０では、データを２回入力した際に、第１ＦＦ１１に保持された転送１回目のデータと第２ＦＦ１２に保持された転送２回目のデータとを入力側エラー検出回路１４にて比較する。これにより、転送１回目のデータと転送２回目のデータとが等しいか否かが判定され、各データ入力回路１０の故障や誤作動が検出される。そして、各データが異なるときにはエラーを示す信号が中継回路４０に入力され、各データが等しいときにはエラーを示さない信号が中継回路４０に入力される。
【００４６】
さらに、第４ＦＦ３２に保持された転送１回目のデータの演算結果と第３ＦＦ３１に保持された転送２回目のデータの演算結果とが出力側エラー検出回路３４にて比較される。すなわち、転送１回目のデータが反転されずに演算された結果と転送２回目のデータが反転されて演算された結果とが自己双対関数の性質から等しいか否かが判定される。そして、各データが異なるときにはエラーを示す信号が中継回路４０に入力され、各データが等しいときにはエラーを示さない信号が中継回路４０に入力される。
【００４７】
各入力側エラー検出回路１４および出力側エラー検出回路３４からエラーを示す信号が少なくとも１つ入力されれば、中継回路４０から該エラーを示す信号がエラー出力回路５０に入力される。そして、エラー出力回路５０では、２分周用ＦＦ４５から入力されるＦＦ出力のタイミングに従って、つまり２回目のデータの転送ごとのタイミングで、エラー出力回路５０からエラー信号が出力される。もちろん、各入力側エラー検出回路１４および出力側エラー検出回路３４からエラーを示す信号が中継回路４０に入力されない場合には、エラー出力回路５０からはエラーを示す信号は出力されない。
【００４８】
以上説明したように、本実施形態では、論理回路２０は自己双対関数によって設計されていることが特徴となっている。これによると、故障や誤作動が起こらなければ、同じ内容のデータにおいて、反転させないデータによる論理回路２０の演算結果と反転させたデータによる論理回路２０の演算結果とが等しくなることを利用することができる。すなわち、図２中の式（１）に示される関係を利用することができる。
【００４９】
そして、反転させたデータの演算結果と反転させないデータの演算結果とを出力側エラー検出回路３４にて比較することにより、論理回路２０の故障や誤作動を検出することができ、ひいてはエラーとして外部に出力することができる。
【００５０】
このように、フォルト検出回路に備える論理回路２０は１つで済むため、フォルト検出回路を二重化しなくても良く、回路規模を低減できる。また、出力側エラー検出回路３４だけでなく、論理回路２０にデータが入力される前の段階で入力側エラー検出回路１４によってエラーを検出することができる。このため、フォルト検出回路のどの部分で故障や誤作動が起こっているのかを明らかにすることができる。
【００５１】
（他の実施形態）
上記実施形態では、データ入力回路１０が複数設けられているが、これは冗長性を高めるためであり、１つだけでも良いし、３つ以上設けられていても良い。
【００５２】
上記実施形態では、フォルト検出回路に中継回路４０やエラー出力回路５０が備えられた構成が示されているが、これはフォルト検出回路の構成の一例であって、中継回路４０やエラー出力回路５０が備えられていなくても良い。すなわち、各入力側エラー検出回路１４や出力側エラー検出回路３４の各出力をそのまま外部に出力する構成であっても良い。もちろん、中継回路４０やエラー出力回路５０が備えられていれば、各入力側エラー検出回路１４の出力や出力側エラー検出回路３４の出力を集約して外部にエラーを出力することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態に係るフォルト検出回路の全体回路図である。
【図２】自己双対関数の数式を示した図である。
【図３】従来のフォルト検出回路の回路図である。
【符号の説明】
【００５４】
１０  データ入力回路
１１  第１フリップフロップ
１２  第２フリップフロップ
１３  入力側選択回路
１４  入力側エラー検出回路
２０  論理回路
３０  データ出力回路
３１  第３フリップフロップ
３２  第４フリップフロップ
３３  出力側選択回路
３４  出力側エラー検出回路
４０  中継回路
５０  エラー出力回路
【図１】
2010073083.tif 000003
【図２】
2010073083.tif 000004
【図３】
2010073083.tif 000005