(57)【要約】【課題】被監視回路の動作を監視し故障している可能性がある場合にアラーム信号を出力する構成とする場合に、監視機能の喪失を招来する共通原因故障が発生しにくい監視回路を備えた半導体集積回路を提供すること。【解決手段】処理経路に少なくとも１つ以上のフリップフロップ回路が存在する被監視回路と、処理経路に前記被監視回路のフリップフロップ回路に対応するフリップフロップ回路を有し、前記被監視回路の動作を模擬する模擬回路、および前記被監視回路の出力と前記模擬回路の出力とを比較し、比較結果に基づきアラーム信号を出力する比較回路を有する監視回路とを備え、前記被監視回路および前記模擬回路において互いに対応する前記各フリップフロップ回路は、同一のタイミングで動作するとともに、互いに論理を反転した信号をそれぞれ対応する後続回路へ出力するように制御されることを特徴とする。【選択図】        図１
2011188115.tif 000002
【特許請求の範囲】
【請求項１】
処理経路に少なくとも１つ以上のフリップフロップ回路が存在する被監視回路と、
処理経路に前記被監視回路のフリップフロップ回路に対応するフリップフロップ回路を有し、前記被監視回路の動作を模擬する模擬回路、および前記被監視回路の出力と前記模擬回路の出力とを比較し、比較結果に基づきアラーム信号を出力する比較回路を有する監視回路と
を備え、
前記被監視回路および前記模擬回路において互いに対応する前記各フリップフロップ回路は、同一のタイミングで動作するとともに、互いに論理を反転した信号をそれぞれ対応する後続回路へ出力するように制御される
ことを特徴とする半導体集積回路。
【請求項２】
前記被監視回路と前記模擬回路とにおける前記各フリップフロップ回路は、同一の入力信号、同一のリセット信号或いは同一のセット信号が入力され、一方のフリップフロップ回路の正相出力と、他方のフリップフロップ回路の逆相出力とが対応する前記各後続回路でそれぞれ使用されることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記被監視回路と前記模擬回路とにおける前記各フリップフロップ回路は、互いに論理を反転した信号が入力され、一方のフリップフロップ回路はリセット端子にリセット信号が入力され、他方のフリップフロップ回路はセット端子にリセット信号が入力され、それぞれの正相出力が対応する前記各後続回路で使用されることを特徴とする請求項１に記載の半導体集積回路。
【請求項４】
前記被監視回路と前記模擬回路とにおける前記各フリップフロップ回路は、互いに論理を反転した信号が入力され、一方のフリップフロップ回路はリセット端子にリセット信号が入力され、他方のフリップフロップ回路はセット端子にリセット信号が入力され、それぞれの逆相出力が対応する前記各後続回路で使用されることを特徴とする請求項１に記載の半導体集積回路。
【請求項５】
前記被監視回路と前記模擬回路は、一方が正論理で構成され、他方が負論理で構成されていることを特徴とする請求項１に記載の半導体集積回路。
【請求項６】
前記被監視回路と前記模擬回路は、一方が否定論理和回路を含まない論理回路で構成され、他方が否定論理積回路を含まない論理回路で構成されていることを特徴とする請求項１に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関するものである。
【背景技術】
【０００２】
半導体集積回路は、一般に、或る機能を実現する回路（機能ブロック）の異常動作を検出する監視回路が組み込まれている。この監視回路は、監視対象回路（被監視回路）の動作を模擬する模擬回路と、被監視回路の動作と模擬回路の動作とを比較して故障有無の判定結果を出力する比較回路とを備えている。
【０００３】
ところで、近年、機能安全（Functional Safety）を規定する国際規格ＩＥＣ６１５０８が制定され、それに伴い、種々の提案がなされている（例えば、特許文献１，２等）。しかし、国際規格ＩＥＣ６１５０８では、「監視回路と被監視回路とが同時に故障を引き起こして監視機能の喪失を招来する共通原因故障に対して十分な検出能力を持つこと」を要求しているが、この要求に応えるには、不十分な提案になっている。なお、共通原因故障の端的な例としては、模擬回路を被監視回路のコピーで構成した場合のように、模擬回路で生じた故障動作と被監視回路で生じた故障動作とが同じになる場合を挙げることができる。
【０００４】
国際規格ＩＥＣ６１５０８では、被監視回路を危険な状態に陥れるランダム・ハードウェア故障の確率λＤに対し、共通原因故障を評価するためにβ−ファクタを導入し、危険な共通原因故障の確率をλＤβと定義し（IEC61508-6:2000 Annex-D, Sec.D5）、β−ファクタ値を決定するための複数のチェック項目が記載されている（IEC61508-6:2000 Annex-D, Sec.D6,Table D.1）。
【０００５】
各チェック項目は、共通原因故障の発生を避けるために必要な対策がどの程度採用されているかを各種の観点から評価するもので、評価結果は、対策の程度に応じた点数で示される。高い評価を受けた場合は高い点数が得られ、低い評価を受けた場合は低い点数となる。そして、該規格のTable D.4に、点数の総和に応じたβ−ファクタ値が定義され、総和点数が高いほどβ−ファクタ値は小さい値となり、危険な共通原因故障の確率λＤβを引き下げることがきる仕組みになっている。
【０００６】
要するに、国際規格ＩＥＣ６１５０８が要求している「監視回路と被監視回路とが同時に故障を引き起こして監視機能の喪失を招来する共通原因故障に対して十分な検出能力を持つこと」に応えるには、監視回路を、β−ファクタ値を小さくでき、危険な共通原因故障の確率λＤβを下げることができるように構成する必要がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２５８７７５号公報
【特許文献２】特開２００３−２４８５９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上記に鑑みてなされたものであり、被監視回路の動作を監視し故障している可能性がある場合にアラーム信号を出力する構成とする場合に、監視機能の喪失を招来する共通原因故障が発生しにくい監視回路を備えた半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願発明の一態様によれば、処理経路に少なくとも１つ以上のフリップフロップ回路が存在する被監視回路と、処理経路に前記被監視回路のフリップフロップ回路に対応するフリップフロップ回路を有し、前記被監視回路の動作を模擬する模擬回路、および前記被監視回路の出力と前記模擬回路の出力とを比較し、比較結果に基づきアラーム信号を出力する比較回路を有する監視回路とを備え、前記被監視回路および前記模擬回路において互いに対応する前記各フリップフロップ回路は、同一のタイミングで動作するとともに、互いに論理を反転した信号をそれぞれ対応する後続回路へ出力するように制御されることを特徴とする半導体集積回路が提供される。
【発明の効果】
【００１０】
本発明によれば、被監視回路の動作を監視し故障している可能性がある場合にアラーム信号を出力する構成とする場合に、監視機能の喪失を招来する共通原因故障が発生しにくい監視回路を備えた半導体集積回路を実現できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の第１の実施の形態に係る半導体集積回路に組み込まれる監視回路の構成および被監視回路との関係を示すブロック図である。
【図２】図２は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路の制御方法（その１）を説明する図である。
【図３】図３は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路の制御方法（その２）を説明する図である。
【図４】図４は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路の制御方法（その３）を説明する図である。
【図５】図５は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路の制御方法（その４）を説明する図である。
【図６】図６は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路の制御方法（その５）を説明する図である。
【図７】図７は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路の制御方法（その６）を説明する図である。
【図８】図８は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路へのデータ供給経路に対応して存在する２つのセレクタの制御方法（その１）を説明する図である。
【図９】図９は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路へのデータ供給経路に対応して存在する２つのセレクタの制御方法（その２）を説明する図である。
【図１０】図１０は、図１に示す被監視回路と模擬回路とにおいてクロック信号や制御信号の供給経路をブランチ・ツリー構造にする場合の例を示す図である。
【図１１】図１１は、本発明の第２の実施の形態として、図１に示す被監視回路および監視回路の具体的な構成例を示す回路図である。
【図１２】図１２は、図１１に示す被監視回路および監視回路の模擬回路が２ビットカウンタである場合の動作を説明するタイミングチャートである。
【図１３】図１３は、図１１に示す被監視回路（３２ビットアップカウンタ）の基本構成例を示す回路図である。
【図１４】図１４は、図１３に示す半加算器の真理値表を示す図である。
【図１５】図１５は、図１１に示す模擬回路（３２ビットダウンカウンタ）の基本構成例（その１）を示す回路図である。
【図１６】図１６は、図１５に示す半減算器の真理値表を示す図である。
【図１７】図１７は、図１１に示す模擬回路（３２ビットダウンカウンタ）の基本構成例（その２）を示す回路図である。
【図１８】図１８は、図１７に示す負論理半加算器の真理値表を示す図である。
【図１９】図１９は、図１１に示す一致検出回路の構成例を示す回路図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明の実施の形態に係る半導体集積回路を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
【００１３】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係る半導体集積回路に組み込まれる監視回路の構成および被監視回路との関係を示すブロック図である。図２〜図７は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路の制御方法を説明する図である。図８と図９は、図１に示す被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路へのデータ供給経路に対応して存在する２つのセレクタの制御方法を説明する図である。図１０は、図１に示す被監視回路と模擬回路とにおいてクロック信号や制御信号の供給経路をブランチ・ツリー構造にする場合の例を示す図である。
【００１４】
図１の被監視回路１は、図示しない半導体集積回路において或る機能を実現する回路（機能ブロック）である。監視回路２は、模擬回路３と比較回路４とを備えている。模擬回路３は、被監視回路１に入力されるデータ信号と同一のデータ信号に基づき被監視回路１の動作を模擬する回路である。比較回路４は、被監視回路１と模擬回路３の各動作を比較し、その結果が故障している可能性を示すときにアラーム信号を出力する。なお、図１では、被監視回路１の出力データ信号は、後段の処理系へ出力されるとしてあるが、それに代えて、模擬回路３の出力データ信号を後段の処理系が用いる形態を取ることもできる。
【００１５】
但し、本実施の形態では、模擬回路３は、被監視回路１のコピーではなく、被監視回路１の対応する処理経路に存在するフリップフロップ回路に対応するフリップフロップ回路を有し、被監視回路１の対応する処理経路を構成する組み合わせ論理回路とは異なる組み合わせ論理回路となるように構成される。
【００１６】
そして、被監視回路１と模擬回路３とにおいて、対応する２つのフリップフロップ回路は、共通のクロック供給線５から供給される同一のクロック信号により、同一のタイミングで動作するようになっている。一方、対応する２つのフリップフロップ回路は、図１（ａ）に示すように、共通の制御信号線６から、セット信号やリセット信号が供給される場合と、図１（ｂ）に示すように、互いに異なる制御信号線７，８から、セット信号やリセット信号が供給される場合とがある。
【００１７】
ここで、本発明の理解を容易にするため、機能安全を規定する国際規格ＩＥＣ６１５０８における本発明に関わる部分について説明する。前記したEC61508-6:2000 Annex-D, Sec.D6,Table D.1に記載されているβ−ファクタ値を決定するための複数のチェック項目では、（１）分離性／隔離性と、（２）多様性／冗長性とについてチェックされる。
【００１８】
（１）分離性／隔離性では、監視回路と被監視回路とにおける全ての信号配線は分離、隔離されているか否かがチェックされる。
（２）多様性／冗長性では、（ａ）監視回路と被監視回路は、異なった電気的技術を用いているか、例えば、一方がハードワイヤード回路による構成であり、他方がプログラマブル電子回路による構成であるか、（ｂ）監視回路と被監視回路は、全くコミュニケーションのない技術者が設計し、異なった検証手段で異なった検証者が異なった時期に行っているか、（ｃ）監視回路は、同じ技術の診断回路を用いる低い多様性を持つものか、あるいは、異なる技術の診断回路を用いる中程度の多様性を持つものか、などがチェックされる。なお、「異なった設計者、異なった検証時期」を要求するのは、同じ設計になる可能性や、同じ検証ミスを犯す可能性といった共通原因故障の可能性を排除するためである。
【００１９】
そこで、本実施の形態では、（１）分離性／隔離性と（２）多様性／冗長性とを充足できるようにするため、被監視回路１と模擬回路３とにおいて対応する２つのフリップフロップ回路を例えば図２〜図７に示すように制御し、データ供給経路に対応して存在する２つのセレクタを例えば図８、図９に示すように制御し、供給するクロック信号や制御信号（リセット信号、セット信号）の供給ラインを例えば図１０に示すようにブランチ・ツリー構造とする。
【００２０】
まず、図２〜図７を参照して対応する２つのフリップフロップ回路の制御方法について説明する。図２、図３は、入出力のインターフェース部でも使用する制御態様を示し、図４〜図７は、入出力のインターフェース部を除いた内部回路での制御態様を示している。２つのフリップフロップ回路１０（ａ，ｂ）、〜、１５（ａ、ｂ）は、それぞれ同一のクロック信号ＣＬＫにより同一のタイミングで動作する。各２つのフリップフロップ回路における、ａ，ｂの表記は、一方が被監視回路１側に配置され、他方が模擬回路３側に配置されているものを示している。
【００２１】
図２のフリップフロップ回路１０ａ，１０ｂは、リセット端子Ｒ付きである。この場合、それぞれのデータ入力端子Ｄに対応する前段回路から同一のデータ信号ＤＩが入力されるようにする。そして、フリップフロップ回路１０ａ，１０ｂの出力を受ける後続回路は、フリップフロップ回路１０ａ，１０ｂの各リセット端子Ｒに、同一のリセット信号Ｒ＿ｎを入力して同時に正相出力端子Ｑをビット“０”にリセットした後の互いに反転関係にある出力データ信号を取り込むようにする。
【００２２】
図２に示す例では、フリップフロップ回路１０ａの出力を受ける後続回路はフリップフロップ回路１０ａの正相出力端子Ｑから出力されるデータ信号ＤＯを使用し、フリップフロップ回路１０ｂの出力を受ける後続回路はフリップフロップ回路１０ｂの逆相出力端子Ｑｎから出力されるデータ信号ＤＯ＿ｎを使用する。これにより、対応する２つの後続回路は、互いに論理を反転した関係にあるデータ信号を用いて処理動作を行うことになる。すなわち、対応する２つの後続回路は、互いに異なる組み合わせ論理回路になる。
【００２３】
図３のフリップフロップ回路１１ａ，１１ｂは、セット端子Ｓ付きである。この場合、それぞれのデータ入力端子Ｄに、対応する前段回路から同一のデータ信号ＤＩが入力されるようにする。そして、フリップフロップ回路１１ａ，１１ｂの出力を受ける後続回路は、フリップフロップ回路１１ａ，１１ｂのセット端子Ｓに、同一のセット信号Ｓ＿ｎを入力して同時に正相出力端子Ｑをビット“１”セットした後の互いに反転関係にある出力データ信号を取り込むようにする。
【００２４】
図３に示す例では、フリップフロップ回路１１ａの出力を受ける後続回路はフリップフロップ回路１１ａの正相出力端子Ｑから出力されるデータ信号ＤＯを使用し、フリップフロップ回路１１ｂの出力を受ける後続回路はフリップフロップ回路１１ｂの逆相出力端子Ｑｎから出力されるデータ信号ＤＯ＿ｎを使用する。これにより、対応する２つの後続回路は、互いに論理を反転した関係にあるデータ信号を用いて処理動作を行うことになる。すなわち、対応する２つの後続回路は、互いに異なる組み合わせ論理回路になる。
【００２５】
図４のフリップフロップ回路１２ａはリセット端子Ｒ付きで、フリップフロップ回路１２ｂはセット端子Ｓ付きである。この場合、フリップフロップ回路１２ａ，１２ｂそれぞれのデータ入力端子Ｄに、対応する前段回路から互いに論理を反転した関係にあるデータ信号ＤＩが入力されるようにする。そして、フリップフロップ回路１２ａの出力を受ける後続回路は、リセット端子Ｒにリセット信号Ｒ＿ｎを入力した後の正相出力端子Ｑから出力されるデータ信号ＤＯを使用する。また、フリップフロップ回路１２ｂの出力を受ける後続回路は、セット端子Ｓにリセット信号Ｒ＿ｎを入力した後のフリップフロップ回路１２ｂの正相出力端子Ｑから出力されるデータ信号ＤＯを使用する。
【００２６】
これにより、対応する２つの後続回路は、互いに論理を反転した関係にあるデータ信号ＤＯを用いて処理動作を行うことになる。すなわち、対応する２つの後続回路は、互いに異なる組み合わせ論理回路になる。
【００２７】
図５のフリップフロップ回路１３ａはセット端子Ｓ付きで、フリップフロップ回路１３ｂはリセット端子Ｒ付きである。この場合、それぞれのデータ入力端子Ｄに、対応する前段回路から互いに論理を反転した関係にあるデータ信号ＤＩが入力されるようにする。そして、フリップフロップ回路１３ａの出力を受ける後続回路は、セット端子Ｓにセット信号Ｓ＿ｎを入力した後の正相出力端子Ｑから出力されるデータ信号ＤＯを使用する。また、フリップフロップ回路１３ｂの出力を受ける後続回路は、リセット端子Ｒにセット信号Ｓ＿ｎを入力した後の正相出力端子Ｑから出力されるデータ信号ＤＯを使用する。
【００２８】
これにより、対応する２つの後続回路は、互いに論理を反転した関係にあるデータ信号ＤＯを用いて処理動作を行うことになる。すなわち、対応する２つの後続回路は、互いに異なる組み合わせ論理回路になる。
【００２９】
図６のフリップフロップ回路１４ａはリセット端子Ｒ付きで、フリップフロップ回路１４ｂはセット端子Ｓ付きである。この場合、それぞれのデータ入力端子Ｄに、対応する前段回路から互いに論理を反転した関係にあるデータ信号ＤＩが入力されるようにする。そして、フリップフロップ回路１４ａの出力を受ける後続回路は、リセット端子Ｒにリセット信号Ｒ＿ｎを入力した後の逆相出力端子Ｑｎから出力されるデータ信号ＤＯ＿ｎを使用する。また、フリップフロップ回路１４ｂの出力を受ける後続回路は、セット端子Ｓにリセット信号Ｒ＿ｎを入力した後の逆相出力端子Ｑｎから出力されるデータ信号ＤＯ＿ｎを使用する。
【００３０】
これにより、対応する２つの後続回路は、互いに論理を反転した関係にあるデータ信号ＤＯを用いて処理動作を行うことになる。すなわち、対応する２つの後続回路は、互いに異なる組み合わせ論理回路になる。
【００３１】
図７のフリップフロップ回路１５ａはセット端子Ｓ付きで、フリップフロップ回路１５ｂはリセット端子Ｒ付きである。この場合、それぞれのデータ入力端子Ｄに、対応する前段回路から互いに論理を反転した関係にあるデータ信号ＤＩが入力されるようにする。そして、フリップフロップ回路１５ａの出力を受ける後続回路は、セット端子Ｓにセット信号Ｓ＿ｎを入力した後の逆相出力端子Ｑｎから出力されるデータ信号ＤＯ＿ｎを使用する。また、フリップフロップ回路１５ｂの出力を受ける続回路は、逆相出力端子Ｑｎから出力されるデータ信号ＤＯ＿ｎを使用する。
【００３２】
これにより、対応する２つの後続回路は、互いに論理を反転した関係にあるデータ信号ＤＯを用いて処理動作を行うことになる。すなわち、対応する２つの後続回路は、互いに異なる組み合わせ論理回路になる。
【００３３】
次に、図８と図９では、被監視回路と模擬回路とにおいて対応する２つのフリップフロップ回路へのデータ供給経路に対応して存在する２つのセレクタが、１ビットの制御入力により２入力のいずれか一方を選択出力するタイプである場合が示されている。
【００３４】
図８と図９のセレクタ１８ａ，１８ｂ，１９ａ，１９ｂは、それぞれ、制御ポートｄに入力される１ビットの選択信号ＳＥＬが、ビット“０”である場合は入力ポートａと出力ポートｃとを接続し、ビット“１”である場合は入力ポートｂと出力ポートｃとを接続する。
【００３５】
図８に示すように、被監視回路と模擬回路とにおいて、セレクタ１８ａ，１８ｂが、２つのデータ信号のいずれか一方を１ビットの選択信号ＳＥＬにより選択する場合、セレクタ１８ａ，１８ｂの各制御ポートｄに選択信号ＳＥＬを直接印加する。そして、セレクタ１８ａの２入力ポートａ，ｂには、入力データＤａｔａＡ，Ｂをこの順に接続し、セレクタ１８ｂの２入力ポートａ，ｂには、逆順に入力データＤａｔａＢ，Ａと接続する。
【００３６】
これによって、同一内容の選択信号ＳＥＬにより対応するセレクタ１８ａ，１８ｂから互いに異なるデータ信号が出力されるので、２つの後続回路は、互いに異なるデータ信号を処理することになる。換言すれば、対応する２つの後続回路は、互いに異なる組み合わせ論理回路になる。
【００３７】
また、図９に示すように、被監視回路と模擬回路とにおける対応するセレクタ１９ａ，１９ｂにおいて、１ビットの選択信号により選択される２入力ポートａ，ｂに接続される入力データは、共に、ＤａｔａＡ，Ｂの順序とし、セレクタ１９ａの制御ポートｄには、選択信号ＳＥＬを直接印加し、セレクタ１９ｂの制御ポートｄには、選択信号ＳＥＬをインバータ回路２０により論理を反転して印加する。
【００３８】
これによって、互いに論理を反転した選択信号ＳＥＬにより対応するセレクタ１９ａ，１９ｂから、互いに異なるデータ信号が出力されるので、２つの後続回路では、互いに異なるデータ信号を処理することになる。換言すれば、対応する２つの後続回路は、互いに異なる組み合わせ論理回路になる。
【００３９】
次に、図１０は、（ａ）クロック信号供給経路のブランチ・ツリー構造例と、（ｂ）リセット信号供給経路のブランチ・ツリー構造例である。セット信号供給経路のブランチ・ツリー構造例は示してないが、同様の形態である。
【００４０】
図１０（ａ）において、クロック生成回路２４が出力するクロック信号ＣＬＫを被監視回路１と監視回路２とに供給する場合、クロック信号ＣＬＫを受けるルートバッファ２６の出力端子の近傍位置から２分岐し、バッファ２７を介して被監視回路１に接続されるブランチ・クロック・ツリー２８と、バッファ２９，３０を介して監視回路２に接続されるブランチ・クロック・ツリー３１とを形成する。なお、タイミング調整を考慮して、ブランチ・クロック・ツリー３１では２つのバッファ２９，３０を設けてある。
【００４１】
また、図１０（ｂ）において、リセット信号生成回路３４が出力するリセット信号Ｒｅｓｅｔ＿ｎを被監視回路１と監視回路２とに供給する場合、リセット信号Ｒｅｓｅｔ＿ｎを受けるルートバッファ３６の出力端子の近傍位置から２分岐し、バッファ３７を介して被監視回路１に接続されるブランチ・リセット信号・ツリー３８と、バッファ３９，４０を介して監視回路２に接続されるブランチ・リセット信号・ツリー４１とを形成する。なお、タイミング調整を考慮して、ブランチ・リセット信号・ツリー４１では２つのバッファ２９，３０を設けてある。
【００４２】
ここで、分岐位置を、ルートバッファ２６，３６の出力端子の近傍とする理由は、共通原因故障の発生領域を極力小さくするためである。図１０に例示するブランチ・ツリー構造は、ルートバッファを介して分岐させることで、「分離性／隔離性」を確保し、被監視回路１と監視回路２に供給されるクロック信号やリセット信号、セット信号が同時に故障するという共通原因故障に対する効果的な対策を意図している。したがって、ルートバッファの出力端子と分岐位置との間隔が長い場合には、対策の効果が薄れしまうため、実際の設計では、分岐位置をルートバッファの出力端子にできるだけ近い位置に指定することが望ましい。
【００４３】
このように、被監視回路１と監視回路２とにおいて、同一のタイミングで動作する対応する２つのフリップフロップ回路に、同一のデータ信号、或いは、論理を反転したデータ信号を入力し、該対応する２つのフリップフロップ回路をリセット信号やセット信号を用いて制御し、互いに論理を反転した出力信号が後続回路で使用されるようにした。
【００４４】
また、対応する２つのフリップフロップ回路への各データ供給経路に対応して存在するセレクタにおいて、データ入力ポートの接続関係を異ならせる、或いは、互いに印加する選択信号の論理を反転させることで、各後続回路へ異なるデータ信号が供給されるようにした。
【００４５】
さらに、被監視回路１と監視回路２とにおいて共通に用いるクロック信号、リセット信号、セット信号の供給経路をブランチ・ツリー構造とし、分離して供給するようにした。
【００４６】
その結果、被監視回路１と監視回路２とにおいて、フリップフロップ回路の出力を受ける各後続回路は、互いに異なる組み合わせ論理回路となる。同様に、セレクタの出力を受ける各後続回路も、互いに異なる組み合わせ論理回路となる。したがって、同一の動作を行う回路やノードは非常に少ない構成となる。
【００４７】
これにより、一方の組み合わせ論理回路で生ずるショート不良（ブリッジ不良）、比較回路４へ入力される信号間のショート不良（ブリッジ不良）、一方の組み合わせ論理回路が他方の組み合わせ論理回路の値に与える影響（信号間のカップリング、グリッチ、クロストークなど）が、出力回路のインターフェース部でのフリップフロップ回路に取り込まれる不正データとなって現れるので、比較回路４は、高い確率で故障を検出することができる。
【００４８】
そして、ＲＴＬ設計やＣ言語設計から論理合成ツールにおける最適化後も、対応する２つのフリップフロップ回路や対応する２つのセレクタに対する上記した関係が守られている限り、対応する２つの後続回路が互いに異なる組み合わせ論理回路となるので、本発明の目的を果たすことができる。
【００４９】
したがって、本実施の形態では、監視回路内の信号と被監視回路内の信号との間にショートや干渉があり、２つの信号が同一の動きをしてしまった場合に、監視回路と被監視回路とは、互いに異なった動きをするので、比較回路は該故障を検出可能である。これによって、国際規格ＩＥＣ６１５０８における「多様性／冗長性」のチェック項目に対し、「監視回路と被監視回路とは、互いに論理回路が異なり、設計思想的に本質的に分離、隔離されている」ので、高い評価を受けることができる。加えて、クロック信号や制御信号（リセット信号、セット信号）の供給経路はブランチ・ツリー構造にしてあるので、さらに高い評価を得ることがきる。
【００５０】
また、本実施の形態では、監視回路と被監視回路とは、異なった電気的技術を用いていないが、監視回路の模擬回路と被監視回路とは、互いに異なった動きをするので、異なった設計および検証方法が必要であり、動作周波数余裕や電気的特性も異なるものとなっている。その結果、国際規格ＩＥＣ６１５０８における「多様性／冗長性」のチェック項目に対し、総じて中程度の多様性を達成できているとの高い評価を受けることができる。
【００５１】
以上のように、本第１の実施の形態によれば、分離性と多様性を設計段階から織り込むことができるので、β−ファクタ値を小さくでき、その結果、危険な共通原因故障の確率λＤβを小さくすることができる。斯くして、監視回路と被監視回路の両方に同時に故障を引き起こす共通原因故障の発生しにくい回路構造の監視回路が実現できる。
【００５２】
（第２の実施の形態）
第２の実施の形態では、半導体集積回路内の監視される機能ブロックがカウンタ（例えば３２ビットカウンタ）である場合の被監視回路および監視回路の構成例を示す。
第１の実施の形態にて説明したように、本発明では、半導体集積回路内の或る機能ブロックの異常動作を、被監視回路と監視回路内の模擬回路とを互いに異なる組み合わせ論理回路に構成して検出する。したがって、３２ビットカウンタの異常動作を監視する場合、被監視回路と模擬回路のいずれか一方が３２ビットアップカウンタとして構成され、いずれか他方が３２ビットダウンカウンタとして構成される。
【００５３】
図１１は、本発明の第２の実施の形態として、図１に示す被監視回路および監視回路の具体的な構成例を示す回路図である。機能ブロック５０は被監視回路であり、機能ブロック５１は監視回路内の模擬回路であり、一致検出回路５２は監視回路内の比較回路である。第２の実施の形態では、被監視回路５０は、３２ビットアップカウンタであり、模擬回路５１は、３２ビットダウンカウンタであるとしている。図１１では、その３２ビットカウンタ内の１ビットをカウントする構成と付随する回路要素とが示されている。一致検出回路５２は、例えば図１９に示すように構成される。
【００５４】
すなわち、図１１において、被監視回路５０は、カウンタ値を保存するフリップフロップ回路５５とそのカウンタ値に対して「＋１」する半加算器５６とで構成される。それらの間に、３つのセレクタ５７〜５９が配置され、制御信号に対して論理操作を行う要素として、インバータ回路６０と、ＡＮＤ回路６１とを備えている。セレクタ５７〜５９は、それぞれ１ビット（２値のレベル信号）の制御入力により２入力のいずれか一方を選択出力する。
【００５５】
また、模擬回路５１は、カウンタ値を保存するフリップフロップ回路６５とそのカウンタ値に対して「−１」する半減算器６６とで構成される。それらの間に、３つのセレクタ６７〜６９が配置され、制御信号に対して論理操作を行う要素として、インバータ回路７０と、ＯＲ回路７１と、インバータ回路７２，７３とを備えている。セレクタ６７〜６９は、それぞれ１ビット（２値のレベル信号）の制御入力により２入力のいずれか一方を選択出力する。
【００５６】
被監視回路５０の各要素の接続関係を示す。フリップフロップ回路５５は、クロック端子にクロック信号ＣＬＫが入力され、リセット端子Ｒにリセット信号Ｒｅｓｅｔ＿ｎが入力され、データ入力端子Ｄにセレクタ５７の出力が入力される。フリップフロップ回路５５の正相出力端子Ｑは、セレクタ５９の入力ポートａと、半加算器５６を介してセレクタ５９の入力ポートｂに接続されている。３２個のフリップフロップ回路５５の並列出力データは、カウンタ値ｃｎｔ０［３１：０］として後続回路へ出力されるとともに、一致検出回路５２に入力される。
【００５７】
セレクタ５９は、制御ポートｄに入力されるＡＮＤ回路６１の出力が高レベルのときに入力ポートｂと出力ポートｃとを接続し、ＡＮＤ回路６１の出力が低レベルのときに入力ポートａと出力ポートｃとを接続する。ＡＮＤ回路６１は、動作指示信号ｒｕｎとカウントイネーブル信号ｃｎｔｅｎ０とが入力される。つまり、セレクタ５９は、動作指示信号ｒｕｎとカウントイネーブル信号ｃｎｔｅｎ０とが共に高レベルであるときに、半加算器５６の出力を選択し、その他の場合に、フリップフロップ回路５５の出力を選択し、セレクタ５８に出力する。
【００５８】
セレクタ５８は、入力ポートａにプリセットデータｐｒｅｄａｔａ［３１：０］が入力され、入力ポートｂにセレクタ５９の出力が入力される。セレクタ５８は、制御ポートｄに入力されるインバータ回路６０の出力が高レベルのときに入力ポートｂと出力ポートｃとを接続し、インバータ回路６０の出力が低レベルのときに入力ポートａと出力ポートｃとを接続する。インバータ回路６０にはプリセット制御信号ｐｒｅｗｒｉｔｅ０が入力される。つまり、セレクタ５８は、プリセット制御信号ｐｒｅｗｒｉｔｅ０が低レベルであるときにセレクタ５９の出力を選択し、高レベルであるときにプリセットデータｐｒｅｄａｔａ［３１：０］を選択し、セレクタ５７に出力する。
【００５９】
セレクタ５７は、入力ポートａに外部からビット“０”（３２ｈ“００００＿００００”）が入力され、入力ポートｂにセレクタ５８の出力が入力される。セレクタ５７は、制御ポートｄに入力される動作指示信号ｒｕｎが高レベルであるときに入力ポートｂと出力ポートｃとを接続し、動作指示信号ｒｕｎが低レベルであるときに入力ポートａと出力ポートｃとを接続する。つまり、セレクタ５７は、動作指示信号ｒｕｎが高レベルであるときにセレクタ５８の出力を選択し、低レベルであるときにビット“０”を選択し、フリップフロップ回路５５に出力する。
【００６０】
次に、模擬回路５１の各要素の接続関係を示す。フリップフロップ回路６５は、クロック端子にクロック信号ＣＬＫが入力され、セット端子Ｓにリセット信号Ｒｅｓｅｔ＿ｎが入力され、データ入力端子Ｄにセレクタ６７の出力が入力される。フリップフロップ回路６５の正相出力端子Ｑは、半減算器６６を介してセレクタ６９の入力ポートａと、セレクタ６９の入力ポートｂとに接続されている。３２個のフリップフロップ回路５５の並列出力データは、カウンタ値ｃｎｔ１［３１：０］として一致検出回路５２に入力される。
【００６１】
セレクタ６９は、制御ポートｄに入力されるＯＲ回路７１の出力が高レベルのときに入力ポートｂと出力ポートｃとを接続し、ＯＲ回路７１の出力が低レベルのときに入力ポートａと出力ポートｃとを接続する。ＯＲ回路７１は、動作指示信号ｒｕｎをインバータ回路７２にて論理を反転した反転動作指示信号ｒｕｎ＿ｎと、カウントイネーブル信号ｃｎｔｅｎ０をインバータ回路７３にて論理を反転した反転カウントイネーブル信号ｃｎｔｅｎ０＿ｎとが入力とされる。つまり、セレクタ６９は、動作指示信号ｒｕｎとカウントイネーブル信号ｃｎｔｅｎ０とが共に高レベルでないときにフリップフロップ回路６５の出力を選択し、その他の場合に、半減算器６６の出力を選択し、セレクタ６８に出力する。
【００６２】
セレクタ６８は、入力ポートａにセレクタ６９の出力が入力され、入力ポートｂにプリセットデータｐｒｅｄａｔａ［３１：０］が入力される。セレクタ６８は、制御ポートｄに入力されるインバータ回路７０の出力が高レベルのときに入力ポートｂと出力ポートｃとを接続し、低レベルのときに入力ポートａと出力ポートｃとを接続する。インバータ回路７０は、プリセット制御信号ｐｒｅｗｒｉｔｅ１が入力される。つまり、セレクタ６８は、プリセット制御信号ｐｒｅｗｒｉｔｅ１が、高レベルであるときにセレクタ６９の出力を選択し、低レベルであるときにプリセットデータｐｒｅｄａｔａ［３１：０］を選択し、セレクタ６７に出力する。
【００６３】
セレクタ６７は、入力ポートａにセレクタ６８の出力が入力され、入力ポートｂに外部からビット“１”（３２ｈ“ＦＦＦＦ＿ＦＦＦＦ”）が入力される。セレクタ６７は、制御ポートｄに入力される反転動作指示信号ｒｕｎ＿ｎが高レベルであるとき入力ポートｂと出力ポートｃとを接続し、低レベルであるとき入力ポートａと出力ポートｃとを接続する。つまり、セレクタ５７は、動作指示信号ｒｕｎが高レベルであるときにセレクタ６８の出力を選択し、動作指示信号ｒｕｎが低レベルであるときにビット“１”を選択し、フリップフロップ回路６５に出力する。
【００６４】
以上の構成において、被監視回路５０は、フリップフロップ回路５５が、リセット信号Ｒｅｓｅｔ＿ｎが低レベルである期間において正相出力端子Ｑがビット“０”にリセットされた後のクロック信号ＣＬＫの立ち上がりで、セレクタ５７の出力を取り込むことで、半加算器５６の出力が入力される。そして、フリップフロップ回路５５の正相出力端子Ｑにカウンタ値が値１ずつカウントアップされていく。
【００６５】
つまり、動作指示信号ｒｕｎが低レベルであるときにセレクタ５７からビット“０”が出力され、クロック信号ＣＬＫの立ち上がりで、フリップフロップ回路５５に取り込まれる。そして、動作指示信号ｒｕｎが高レベルになり、かつ、カウントイネーブル信号ｃｎｔｅｎ０も高レベルであると、セレクタ５９は、半加算器５６の出力を選択するので、プリセット制御信号ｐｒｅｗｒｉｔｅ０が低レベルであると、３２ビットのカウンタ値に値１ずつカウントアップした値が、クロック信号ＣＬＫの立ち上がりで、フリップフロップ回路５５に取り込まれる。
【００６６】
なお、カウントイネーブル信号ｃｎｔｅｎ０は、クロック信号ＣＬＫの１周期をパルス幅とするパルス信号であり、クロック信号ＣＬＫに同期して生起する。それ故、そのカウントイネーブル信号ｃｎｔｅｎ０のパルス生成の頻度、つまり、周波数を変更することにより、クロック信号ＣＬＫよりも遅い周波数でのカウントアップ動作を可能にすることができる。
【００６７】
動作指示信号ｒｕｎが高レベルである動作過程で、プリセット制御信号ｐｒｅｗｒｉｔｅ０が高レベルになると、セレクタ５８は、プリセットデータｐｒｅｄａｔａ［３１：０］を選択する。このとき、セレクタ５７が出力するプリセットデータｐｒｅｄａｔａ［３１：０］が、クロック信号ＣＬＫの立ち上がりで、フリップフロップ回路５５に取り込まれる。
【００６８】
次に、模擬回路５１は、フリップフロップ回路６５が、リセット信号Ｒｅｓｅｔ＿ｎが低レベルである期間において正相出力端子Ｑがビット“１”にセットされた後のクロック信号ＣＬＫの立ち上がりで、セレクタ６７の出力を取り込むことにより、半減算器６６の出力が入力される。そして、フリップフロップ回路６５にカウンタ値が値１ずつカウントダウンされていく。
【００６９】
つまり、動作指示信号ｒｕｎが低レベルであるときに、セレクタ６７からビット“１”が出力され、クロック信号ＣＬＫの立ち上がりで、フリップフロップ回路６５に取り込まれる。そして、動作指示信号ｒｕｎが高レベルになり、かつ、カウントイネーブル信号ｃｎｔｅｎ０も高レベルであると、セレクタ６９は、半減算器６６の出力を選択するので、プリセット制御信号ｐｒｅｗｒｉｔｅ１が高レベルであると、３２ビットのカウンタ値に値１ずつカウントダウンした値が、クロック信号ＣＬＫの立ち上がりで、フリップフロップ回路６５に取り込まれる。
【００７０】
なお、被監視回路５０と同様に、カウントイネーブル信号ｃｎｔｅｎ０のパルス生成の頻度、つまり、周波数を変更することにより、クロック信号ＣＬＫよりも遅い周波数でのカウントダウン動作を可能にすることができる。
【００７１】
動作指示信号ｒｕｎが高レベルである動作過程で、プリセット制御信号ｐｒｅｗｒｉｔｅ１が低レベルになると、セレクタ６８は、プリセットデータｐｒｅｄａｔａ［３１：０］を選択する。このとき、セレクタ６７が出力するプリセットデータｐｒｅｄａｔａ［３１：０］が、クロック信号ＣＬＫの立ち上がりで、フリップフロップ回路６５に取り込まれる。
【００７２】
次に、図１２を参照して、図１１の被監視回路と模擬回路が２ビットカウンタである場合の動作について説明する。図１２は、図１１に示す被監視回路および監視回路の模擬回路が２ビットカウンタである場合の動作を説明するタイミングチャートである。なお、図１２では、理解を容易にするため、カウントイネーブル信号ｃｎｔｅｎ０の周波数がクロック信号ＣＬＫの１／３とする。
【００７３】
図１２において、被監視回路５０は、アップカウンタであるから、カウントイネーブル信号ｃｎｔｅｎ０が高レベルである期間に、カウンタ値が「＋１」される。そして、カウントイネーブル信号ｃｎｔｅｎ０が立ち下がる直前に、クロック信号ＣＬＫの立ち上がりで、そのカウンタ値がフリップフロップ回路５５に取り込まれる。２ビットのアップカウンタなので、値「０ｘ０」から増加して値「０ｘ３」までを繰り返しカウントする。
【００７４】
一方、模擬回路５１は、反転カウントイネーブル信号ｃｎｔｅｎ０＿ｎが低レベルである期間に、カウンタ値が「−１」され、反転カウントイネーブル信号ｃｎｔｅｎ０＿ｎが立ち上がる直前に、クロック信号ＣＬＫの立ち上がりエッジで、そのカウンタ値がフリップフロップ回路６５に取り込まれる、２ビットのダウンカウンタなので、値「０ｘ３」から減少して値「０ｘ０」までを繰り返しカウントする。
【００７５】
次に、３２ビットアップカウンタ（被監視回路５０）と、３２ビットダウンカウンタ（模擬回路５１）との各全体構成について簡単に説明する。図１３は、被監視回路（３２ビットアップカウンタ）の基本構成例を示す回路図である。図１５および図１７は、模擬回路（３２ビットダウンカウンタ）の基本構成例（その１）（その２）を示す回路図であり、図１５は正論値で構成され、図１７は負論理で構成されている。なお、理解を容易にするため、図１３では、図１１の被監視回路５０におけるセレクタ５７〜５９と、インバータ回路６０と、ＡＮＤ回路６１は、図示を省略した。また、図１５と図１７では、図１１の模擬回路５１におけるセレクタ６７〜６９と、インバータ回路７０と、ＯＲ回路７１と、インバータ回路７２，７３は、図示を省略した。
【００７６】
図１３は、図１１のフリップフロップ回路５５と半加算器５６であり、各回路は１対１対応で、それぞれ３２個で構成されている。フリップフロップ回路５５＿０〜５５＿３１は、リセット信号Ｒｅｓｅｔ＿ｎにより同一のタイミングでリセットされ、クロック信号ＣＬＫにより同一のタイミングで動作する。半加算器５６＿０〜５６＿３１は、それぞれ、２つのインバータ回路８０，８１と、３つのＡＮＤ回路８２，８３，８４と、ＯＲ回路８５とを備えている。
【００７７】
フリップフロップ回路５５＿０と半加算器５６＿０との関係で言えば、半加算器５６＿０では、外部からのキャリー入力（固定値“１”）が、ＡＮＤ回路８２，８４の一方の入力端子に直接入力され、ＡＮＤ回路８３の一方の入力端子にインバータ回路８１を介して入力される。また、フリップフロップ回路５５＿０の正相出力端子Ｑに送出されるデータは、ＡＮＤ回路８３，８４の他方の入力端子に直接入力され、ＡＮＤ回路８２の他方の入力端子にインバータ回路８０を介して入力される。ＡＮＤ回路８２，８３の各出力は、ＯＲ回路８５を介して半加算器５６＿０の出力Ｓ０となり、フリップフロップ回路５５＿０のデータ入力端子Ｄに入力される。ＡＮＤ回路８４の出力Ｃ１は、キャリー出力であり、次段の半加算器５６＿１のキャリー入力となる。各段において同様に、前段のキャリー出力が後段のキャリー入力となり、対応するフリップフロップ回路の正相出力端子Ｑに加算されたカウンタ値が出力される。
【００７８】
半加算器５６＿０〜５６＿３１はそれぞれ、図１４に示す真理値表に従った動作が行われる。図１４において、Ａは対応するフリップフロップ回路からの入力、Ｃｎはキャリー入力、Ｓは加算出力、Ｃｎ＋１はキャリー出力である。
【００７９】
次に図１５は、図１１のフリップフロップ回路６５と半減算器６６であり、各回路は１対１対応で、それぞれ３２個で構成されている。フリップフロップ回路６５＿０〜６５＿３１は、リセット信号Ｒｅｓｅｔ＿ｎにより同一のタイミングでセットされ、クロック信号ＣＬＫにより同一のタイミングで動作する。半減算器６６＿０〜６６＿３１は、それぞれ、２つのインバータ回路９０，９１と、２つのＡＮＤ回路９２，９３と、ＯＲ回路９４とを備えている。
【００８０】
フリップフロップ回路６５＿０と半減算器６６＿０との関係で言えば、半減算器６６＿０では、外部からのボロー入力（固定値“１”）が、ＡＮＤ回路９２の一方の入力端子にインバータ回路９０を介して入力され、ＡＮＤ回路９３の一方の入力端子に直接入力される。また、フリップフロップ回路６５＿０が正相出力端子Ｑに送出されるデータは、ＡＮＤ回路９２の他方の入力端子に直接入力され、ＡＮＤ回路９３の他方の入力端子にインバータ回路９１を介して入力される。ＡＮＤ回路９２，９３の各出力は、ＯＲ回路９４を介して半減算器６６＿０の出力Ｄ０となり、フリップフロップ回路６５＿０のデータ入力端子Ｄに入力される。また、ＡＮＤ回路９３の出力Ｂ１は、ボロー出力であり、次段の半減算器６６＿１のボロー入力となる。各段において同様に、前段のボロー出力が後段のボロー入力となり、対応するフリップフロップ回路の正相出力端子Ｑに減算されたカウンタ値が出力される。
【００８１】
半減算器６６＿０〜６６＿３１はそれぞれ、図１６に示す真理値表に従った動作が行われる。図１６において、Ａは対応するフリップフロップ回路からの入力、Ｂｎはボロー入力、Ｄは減算出力、Ｂｎ＋１はボロー出力である。
【００８２】
次に、図１７は、図１１の模擬回路における半減算器６６を、負論理半加算器で構成した場合が示されている。図１７の負論理半加算器９８＿０〜９８＿３１は、図１３の半加算器５６＿０〜５６＿３１をそれぞれ負論理で構成したものである。
フリップフロップ回路６５＿０と負論理半加算器９８＿０との関係で言えば、負論理半加算器９８＿０では、外部から負論理のキャリー（固定値“０”）が入力され、負論理の出力Ｓ０＿ｎがフリップフロップ回路６５＿０のデータ入力端子Ｄに入力される。また、フリップフロップ回路６５＿０の正相出力端子Ｑに送出されるデータは負論理半加算器９８＿０に入力される。負論理半加算器９８＿０が生成する負論理のキャリー出力Ｃ１＿ｎは、次段の負論理半加算器９８＿１の負論理キャリー入力となる。各段において同様に、前段の負論理キャリー出力が後段の負論理キャリー入力となり、対応するフリップフロップ回路の正相出力端子Ｑに減算されたカウンタ値が出力される。
【００８３】
負論理半加算器９８＿０〜９８＿３１はそれぞれ、図１８に示す真理値表に従った動作が行われる。図１８において、Ａは対応するフリップフロップ回路からの入力である。Ｃｎはキャリー入力、Ｓは加算出力、Ｃｎ＋１はキャリー出力であり、それぞれ図１４に示したキャリー入力Ｃｎ、加算出力Ｓ、キャリー出力Ｃｎ＋１を論理反転した関係になっている。
【００８４】
図１９は、図１１に示す一致検出回路の構成例を示す回路図である。一致検出回路５２は、排他的論理和回路９９＿０〜９９＿３１と、ＮＡＮＤ回路１００とで構成される。排他的論理和回路９９＿０〜９９＿３１のそれぞれには、被監視回路５０が出力する３２ビットのカウンタ値ｃｎｔ０［３１：０］と、模擬回路５１が出力する３２ビットのカウンタ値ｃｎｔ１［３１：０］との対応する２ビットが入力される。ＮＡＮＤ回路１００は、３２個の排他的論理和回路９９＿０〜９９＿３１の各出力が全て高レベル（ビット“１”）であるとき、出力（アラーム信号Ａｌａｒｍ）を低レベルにして故障無しを外部に報知し、その他の場合に、出力（アラーム信号Ａｌａｒｍ）を高レベルにして故障発生を外部に報知する。
【００８５】
つまり、一致検出回路５２では、被監視回路５０が出力するカウンタ値ｃｎｔ０［３１：０］と、模擬回路５１が出力するカウンタ値ｃｎｔ１［３１：０］とが、対応するビット毎に比較され、故障が無く全てが不一致であればアラーム信号Ａｌａｒｍは低レベルとなり、故障が有って１ビットでも一致すればアラーム信号Ａｌａｒｍは高レベルとなる。
【００８６】
なお、図１１では、カウンタ値ｃｎｔ０［３１：０］を後段回路へ出力するとしてあるが、代わりに、模擬回路５１が出力する３２ビットのカウンタ値ｃｎｔ１［３１：０］を後段回路へ出力する構成とする場合は、後段回路において論理の一致を取る必要があることは言うまでもない。
【００８７】
以上のように、第２の実施の形態によれば、半導体集積回路内の３２ビットカウンタの異常動作を、被監視回路と模擬回路のいずれか一方を３２ビットアップカウンタとして構成し、いずれか他方を３２ビットダウンカウンタとして構成して検出するので、監視回路と被監視回路の両方に同時に故障を引き起こす共通原因故障が発生しにくい形で、３２ビットカウンタの異常動作を監視することができる。
【００８８】
そのとき、被監視回路と模擬回路では、互いに異なる２つのプリセット制御信号を用いて、被監視回路内のフリップフロップ回路と、模擬回路内のフリップフロップ回路とは、独立にプリセットデータを設定することができる。この場合、被監視回路と模擬回路でのプリセットデータの設定は、２つのプリセット制御信号を、互いの論理を反転させて行うので、被監視回路と模擬回路とが互いに異なる組み合わせ論理回路の動作を行うという本発明の趣旨を損なうことはない。
【００８９】
図示はしないが、被監視回路と模擬回路の組み合わせ論理回路において、一方をＮＡＮＤ（否定論理積）回路を含まずＮＯＲ（否定論理和）回路を含む論理回路で構成し他方をＮＯＲ（否定論理和）回路を含まずＮＡＮＤ（否定論理積）回路を含む論理回路で構成しても、一方を正論理で構成し他方を負論理で構成することと、多様性の観点から同じ効果が得られる。なぜなら、ＮＡＮＤ（否定論理積）回路とＮＯＲ（否定論理和）回路は、それぞれ完全系を構成しているので、例えば、ＮＯＲ回路を使用しなくてもＮＡＮＤ（否定論理積）回路があれば任意の論理関数を構成できるので、同じ機能を持ちながらも異なった回路構成が実現できるからである。
【符号の説明】
【００９０】
１  被監視回路、２  監視回路、３  比較回路、１０ａ，１０ｂ，１１ａ，１１ｂ，１２ａ，１２ｂ，１３ａ，１３ｂ，１４ａ、１４ｂ、１５ａ、１５ｂ  フリップフロップ回路、１８ａ，１８ｂ，１９ａ，１９ｂ  セレクタ、５０  被監視回路（３２ビットアップカウンタ）、５１  模擬回路（３２ビットダウンカウンタ）、５５，６５  フリップフロップ回路、５６  半加算器、５７〜５９，６７〜６９  セレクタ、６６  半減算器。
【図１】
2011188115.tif 000003
【図２】
2011188115.tif 000004
【図３】
2011188115.tif 000005
【図４】
2011188115.tif 000006
【図５】
2011188115.tif 000007
【図６】
2011188115.tif 000008
【図７】
2011188115.tif 000009
【図８】
2011188115.tif 000010
【図９】
2011188115.tif 000011
【図１０】
2011188115.tif 000012
【図１１】
2011188115.tif 000013
【図１２】
2011188115.tif 000014
【図１３】
2011188115.tif 000015
【図１４】
2011188115.tif 000016
【図１５】
2011188115.tif 000017
【図１６】
2011188115.tif 000018
【図１７】
2011188115.tif 000019
【図１８】
2011188115.tif 000020
【図１９】
2011188115.tif 000021