(57)【要約】【課題】回路規模を増大させずにクロック監視回路の自己診断が可能な半導体装置を提供すること。【解決手段】一実施の形態によれば、半導体装置１は、第１発振回路１１と、クロック監視回路１３１と、クロック監視回路１３１の動作モードを第１乃至第３モードの何れかに周期的に切り替えるタイミング信号生成回路１３４と、を備え、クロック監視回路１３１は、第１モードではクロック信号ＣＬＫ１の発振回数をカウントするように構成され、第３モードでは正常時に入力信号のパルスが出力信号までシフトするように構成されたクロックカウンタＣＣ１と、第２モードにおいて、クロックカウンタＣＣ１による所定周期当たりのカウント値が期待値の範囲内であるか否かを比較する比較回路ＣＰ１と、第３モードにおいて、クロックカウンタＣＣ１の出力信号まで入力信号のパルスがシフトしているか否かを検出するエッジ検出回路ＥＤ１２と、を有する。【選択図】図２
2020047989.tif 000002
【特許請求の範囲】
【請求項１】
内部クロック信号を生成する第１発振回路と、
第１クロック監視回路と、
前記第１クロック監視回路の動作モードを第１乃至第３モードの何れかのモードに周期的に切り替えるモード切替回路と、を備え、
前記第１クロック監視回路は、
前記第１モードでは、前記内部クロック信号の発振回数をカウントするように構成され、前記第３モードでは、正常時に入力信号のパルスが出力信号までシフトするように構成された、第１クロックカウンタと、
前記第２モードにおいて、前記第１クロックカウンタによる所定周期当たりのカウント値が期待値の範囲内であるか否かを比較する第１比較回路と、
前記第３モードにおいて、前記第１クロックカウンタの出力信号まで入力信号のパルスがシフトしているか否かを検出する第１検出回路と、を有する、
半導体装置。
【請求項２】
前記第１クロックカウンタは、
縦続接続された複数のフリップフロップと、
前記複数のフリップフロップのそれぞれに入力される信号を動作モードに応じて切り替える複数のセレクタと、を少なくとも備え、
前記第１クロックカウンタは、前記第１モードでは、前記複数のフリップフロップを用いることによってバイナリカウンタを構成し、かつ、前記第３モードでは、前記複数のフリップフロップを用いることによってシフトレジスタを構成する、
請求項１に記載の半導体装置。
【請求項３】
第２クロック監視回路をさらに備え、
前記モード切替回路は、さらに、前記第２クロック監視回路の動作モードを前記第１乃至前記第３モードの何れかのモードに周期的に切り替えるように構成され、
前記第２クロック監視回路は、
前記第１モードでは、前記内部クロック信号の発振回数をカウントするように構成され、前記第３モードでは、正常時に入力信号のパルスが出力信号までシフトするように構成された、第２クロックカウンタと、
前記第２モードにおいて、前記第２クロックカウンタによる所定周期当たりのカウント値が期待値の範囲内であるか否かを比較する第２比較回路と、
前記第３モードにおいて、前記第２クロックカウンタの出力信号まで入力信号のパルスがシフトしているか否かを検出する第２検出回路と、を有する、
請求項１に記載の半導体装置。
【請求項４】
前記第１及び前記第２クロックカウンタの各々は、
縦続接続された複数のフリップフロップと、
前記複数のフリップフロップのそれぞれに入力される信号を動作モードに応じて切り替える複数のセレクタと、を少なくとも備え、
前記第１クロックカウンタは、前記第１モードでは、前記複数のフリップフロップを用いることによってバイナリカウンタを構成し、かつ、前記第３モードでは、前記複数のフリップフロップを用いることによってシフトレジスタを構成する、
請求項３に記載の半導体装置。
【請求項５】
前記モード切替回路は、第１期間では、前記第１及び前記第２クロック監視回路のそれぞれの動作モードを何れも前記第３モードに切り替え、第１期間後の第２期間では、前記第１及び前記第２クロック監視回路のそれぞれの動作モードが前記第１及び前記第２モードのうち互いに異なるモードとなるように、前記第１及び前記第２クロック監視回路のそれぞれの動作モードを周期的に切り替えるように構成されている、
請求項３に記載の半導体装置。
【請求項６】
前記第３モードにおいて、前記第１及び前記第２クロックカウンタの入力信号のパルスは、前記内部クロック信号に同期して動作する周辺回路、を初期化するためのリセット信号を用いることによって生成される、
請求項５に記載の半導体装置。
【請求項７】
第３クロック監視回路をさらに備え、
前記モード切替回路は、さらに、前記第３クロック監視回路の動作モードを前記第１乃至前記第３モードの何れかのモードに周期的に切り替えるように構成され、
前記第３クロック監視回路は、
前記第１モードでは、前記内部クロック信号の発振回数をカウントするように構成され、前記第３モードでは、正常時に入力信号のパルスが出力信号までシフトするように構成された、第３クロックカウンタと、
前記第２モードにおいて、前記第３クロックカウンタによる所定周期当たりのカウント値が期待値の範囲内であるか否かを比較する第３比較回路と、
前記第３モードにおいて、前記第３クロックカウンタの出力信号まで入力信号のパルスがシフトしているか否かを検出する第３検出回路と、を有する、
請求項３に記載の半導体装置。
【請求項８】
前記第１乃至前記第３クロックカウンタの各々は、
縦続接続された複数のフリップフロップと、
前記複数のフリップフロップのそれぞれに入力される信号を動作モードに応じて切り替える複数のセレクタと、を少なくとも備え、
前記第１クロックカウンタは、前記第１モードでは、前記複数のフリップフロップを用いることによってバイナリカウンタを構成し、かつ、前記第３モードでは、前記複数のフリップフロップを用いることによってシフトレジスタを構成する、
請求項７に記載の半導体装置。
【請求項９】
前記モード切替回路は、前記第１乃至前記第３クロック監視回路のそれぞれの動作モードが互いに異なるモードとなるように、前記第１乃至前記第３クロック監視回路のそれぞれの動作モードを周期的に切り替えるように構成されている、
請求項７に記載の半導体装置。
【請求項１０】
前記第１クロックカウンタによって前記内部クロック信号の発振回数がカウントされている期間中に、前記第２クロックカウンタによる所定周期当たりのカウント値と、前記第３クロックカウンタによる所定周期当たりのカウント値と、を比較し、
前記第２クロックカウンタによって前記内部クロック信号の発振回数がカウントされている期間中に、前記第３クロックカウンタによる所定周期当たりのカウント値と、前記第１クロックカウンタによる所定周期当たりのカウント値と、を比較し、かつ、
前記第３クロックカウンタによって前記内部クロック信号の発振回数がカウントされている期間中に、前記第１クロックカウンタによる所定周期当たりのカウント値と、前記第２クロックカウンタによる所定周期当たりのカウント値と、を比較する、カウント値比較回路をさらに備えた、
請求項７に記載の半導体装置。
【請求項１１】
前記第２及び前記第３クロックカウンタのそれぞれによる所定周期当たりのカウント値の差分である第１差分値と、前記第３及び前記第１クロックカウンタのそれぞれによる所定周期当たりのカウント値の差分である第２差分値と、前記第１及び前記第２クロックカウンタのそれぞれによる所定周期当たりのカウント値の差分である第３差分値と、のうち、何れかの差分値と、前記何れかの差分値の直前に出力された差分値と、の差が所定値より大きい場合に、警告信号を出力するように構成されている、
請求項７に記載の半導体装置。
【請求項１２】
内部クロック信号を生成する第１発振回路と、
第１クロック監視回路と、
前記第１クロック監視回路の動作モードを第１乃至第３モードの何れかに周期的に切り替えるモード切替回路と、を備えた半導体装置の制御方法であって、
前記第１モードにおいて、前記第１クロック監視回路に設けられた論理回路によってカウンタを構成したうえで、当該カウンタを用いて前記内部クロック信号の発振回数をカウントし、
前記第２モードにおいて、前記カウンタによる所定周期当たりのカウント値が期待値の範囲内であるか否かを比較し、
前記第３モードにおいて、前記第１クロック監視回路に設けられた前記論理回路によってシフトレジスタを構成したうえで、当該シフトレジスタの出力信号まで入力信号のパルスがシフトしているか否かを検出する、
半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及びその制御方法に関し、例えば回路規模を増大させることなくクロック監視回路の自己診断を実施するのに適した半導体装置及びその制御方法に関する。
【背景技術】
【０００２】
例えば車両に搭載される半導体装置には、安全性確保のため、正常に動作することが求められており、関連する技術が特許文献１に開示されている。
【０００３】
特許文献１に開示された半導体装置は、発振器と、発振異常検出部と、を備える。発振異常検出部は、発振器から出力されるクロックを計測して得られたカウント値に基づいてそのクロックの周波数を特定する。そして、発振異常検出部は、その周波数が所定周波数の範囲外である場合に発振異常信号を出力する。それにより、この半導体装置は、発振器が正常に動作しているか否かを判定することができる。
【０００４】
しかしながら、特許文献１に開示された構成は、発振異常検出部に異常があるか否かを判定する機能を有していないため、発振異常検出部に異常があった場合、発振器が正常に動作しているか否かを判定することができないという問題があった。
【０００５】
このような問題に対する解決策が特許文献２に開示されている。特許文献２に開示されたパルス周期計測装置は、内部クロック発生回路と、フリーランカウンタと、代用クロック発生回路と、メモリと、検証用フリーランカウンタと、演算器と、を少なくとも備えている。
【０００６】
まず、計測開始前では、このパルス周期計測装置は、代用クロック発生回路によって生成された代用クロックを内部クロックの代わりにフリーランカウンタに供給する。そして、このパルス周期計測装置は、フリーランカウンタによる代用クロックの計数値と、メモリに逐次記憶される代用クロックの積算値と、を比較することによってフリーランカウンタの故障を検出している。
【０００７】
また、計測期間中では、このパルス周期計測装置は、内部クロック発生回路によって生成された内部クロックをフリーランカウンタ及び検証用フリーランカウンタのそれぞれに供給する。そして、このパルス周期計測装置は、フリーランカウンタによる内部クロックの計数値と、検証用フリーランカウンタによる内部クロックの計数値と、を比較することによってフリーランカウンタの故障を検出している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−１７２２０２号公報
【特許文献２】特開平７−１５３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２の構成では、計測期間中に内部クロック発生回路（発振器）によって生成された内部クロックの計測を行うフリーランカウンタに加えて、フリーランカウンタと並行して内部クロックの計測を行う検証用フリーランカウンタをさらに備える必要があるため、回路規模が増大してしまうという問題があった。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態によれば、半導体装置は、内部クロック信号を生成する第１発振回路と、第１クロック監視回路と、前記第１クロック監視回路の動作モードを第１乃至第３モードの何れかのモードに周期的に切り替えるモード切替回路と、を備え、前記第１クロック監視回路は、前記第１モードでは、前記内部クロック信号の発振回数をカウントするように構成され、前記第３モードでは、正常時に入力信号のパルスが出力信号までシフトするように構成された、第１クロックカウンタと、前記第２モードにおいて、前記第１クロックカウンタによる所定周期当たりのカウント値が期待値の範囲内であるか否かを比較する第１比較回路と、前記第３モードにおいて、前記第１クロックカウンタの出力信号まで入力信号のパルスがシフトしているか否かを検出する第１検出回路と、を有する。
【００１１】
他の実施の形態によれば、半導体装置の制御方法は、内部クロック信号を生成する第１発振回路と、第１クロック監視回路と、前記第１クロック監視回路の動作モードを第１乃至第３モードの何れかに周期的に切り替えるモード切替回路と、を備えた半導体装置の制御方法であって、前記第１モードにおいて、前記第１クロック監視回路に設けられた論理回路によってカウンタを構成したうえで、当該カウンタを用いて前記内部クロック信号の発振回数をカウントし、前記第２モードにおいて、前記カウンタによる所定周期当たりのカウント値が期待値の範囲内であるか否かを比較し、前記第３モードにおいて、前記第１クロック監視回路に設けられた前記論理回路によってシフトレジスタを構成したうえで、当該シフトレジスタの出力信号まで入力信号のパルスがシフトしているか否かを検出する。
【発明の効果】
【００１２】
前記一実施の形態によれば、回路規模を増大させることなくクロック監視回路の自己診断を実施することが可能な半導体装置及びその制御方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかる半導体装置の構成例を示すブロック図である。
【図２】図１に示す半導体装置に設けられた発振異常検出部の具体的な構成例を示すブロック図である。
【図３】図２に示す発振異常検出部に設けられたタイミング信号生成回路の具体的な構成例を示すブロック図である。
【図４】図２に示す発振異常検出部に設けられたクロック監視回路の具体的な構成例を示す図である。
【図５】図２に示す発振異常検出部に設けられた異常検出回路の構成例を示す図である。
【図６】図１に示す半導体装置の動作を示すタイミングチャートである。
【図７】実施の形態２にかかる半導体装置の構成例を示すブロック図である。
【図８】図７に示す半導体装置に設けられた発振異常検出部の構成例を示すブロック図である。
【図９】図８に示す発振異常検出部に設けられた異常検出回路の構成例を示す図である。
【図１０】図７に示す半導体装置の動作を示すタイミングチャートである。
【図１１】実施の形態３にかかる半導体装置に設けられた異常検出回路の構成例を示す図である。
【発明を実施するための形態】
【００１４】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１５】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１６】
＜実施の形態１＞
図１は、実施の形態１にかかる半導体装置１の構成例を示すブロック図である。本実施の形態にかかる半導体装置１では、各クロック監視回路１３１〜１３３が、動作モードに応じて、発振回路によって生成されたクロック信号の発振回数をカウントするカウンタを構成したり、入力信号のパルスが出力信号までシフトしているか否かを検出するためのシフトレジスタを構成したりする。つまり、本実施の形態にかかる半導体装置１では、各クロック監視回路１３１〜１３３が、クロック信号の監視を行うだけでなく、クロック信号の監視を行っていない期間を利用して自己診断を行っている。それにより、本実施の形態にかかる半導体装置１は、関連技術の場合と異なり、検証用のクロック監視回路を追加で設ける必要が無いため、回路規模を増大させることなく各クロック監視回路１３１〜１３３の自己診断を実施することができる。以下、具体的に説明する。
【００１７】
図１に示すように、半導体装置１は、第１発振回路１１と、第２発振回路１２と、発振異常検出部１３と、リセット制御回路１４と、周辺回路１５＿１〜１５＿ｎ（ｎは１以上の任意の整数）と、を備える。
【００１８】
第１発振回路１１は、クロック信号（内部クロック信号）ＣＬＫ１を生成する。周辺回路１５＿１〜１５＿ｎは、クロック信号ＣＬＫ１に同期して動作する。また、第２発振回路１２は、クロック信号ＣＬＫ２を生成する。
【００１９】
発振異常検出部１３は、第１発振回路１１によって生成されたクロック信号ＣＬＫ１の異常を検出する。例えば、発振異常検出部１３は、クロック信号ＣＬＫ１の異常を検出した場合、検出信号Ｄ１をアクティブ（Ｈレベル）にする。
【００２０】
リセット制御回路１４は、半導体装置１の外部から供給されたリセット信号ＲＳＴ、及び、発振異常検出部１３から供給された検出信号Ｄ１のそれぞれに応じた内部リセット信号ｉＲＳＴを出力する。内部リセット信号ｉＲＳＴは、周辺回路１５＿１〜１５＿ｎに入力される。
【００２１】
例えば、リセット制御回路１４は、リセット信号ＲＳＴがアクティブ（Ｌレベル）になったことに応じて内部リセット信号ｉＲＳＴをアクティブ（Ｌレベル）にする。また、リセット制御回路１４は、検出信号Ｄ１がアクティブになった場合（即ち、発振異常検出部１３によってクロック信号ＣＬＫ１の異常が検出された場合）、リセット信号ＲＳＴに関わらず内部リセット信号ｉＲＳＴをアクティブ（Ｌレベル）にする。それにより、周辺回路１５＿１〜１５＿ｎは初期化される。
【００２２】
（発振異常検出部１３の具体的な構成例）
図２は、発振異常検出部１３の具体的な構成例を示すブロック図である。
図２に示すように、発振異常検出部１３は、クロック監視回路１３１〜１３３と、タイミング信号生成回路（モード切替回路）１３４と、異常検出回路１３５と、を備える。
【００２３】
クロック監視回路１３１〜１３３は、何れも第１発振回路１１によって生成されたクロック信号ＣＬＫ１を監視する回路である。
【００２４】
タイミング信号生成回路１３４は、クロック監視回路１３１〜１３３のそれぞれの動作モードを周期的に切り替える回路である。
【００２５】
例えば、タイミング信号生成回路１３４は、クロック監視回路１３１の動作モードを、クロック信号ＣＬＫ１の発振回数をカウントするカウントモード（第１モード）と、カウント値と期待値とを比較する比較モード（第２モード）と、クロック監視回路１３１の自己診断を行う自己診断モード（第３モード）と、のうち何れかのモードに周期的に切り替える。また、タイミング信号生成回路１３４は、クロック監視回路１３２の動作モードを、クロック信号ＣＬＫ１の発振回数をカウントするカウントモードと、カウント値と期待値とを比較する比較モードと、クロック監視回路１３２の自己診断を行う自己診断モードと、のうち何れかのモードに周期的に切り替える。さらに、タイミング信号生成回路１３４は、クロック監視回路１３３の動作モードを、クロック信号ＣＬＫ１のカウントを行うカウントモードと、カウント値と期待値とを比較する比較モードと、クロック監視回路１３３の自己診断を行う自己診断モードと、のうち何れかのモードに周期的に切り替える。
【００２６】
本実施の形態では、タイミング信号生成回路１３４は、クロック監視回路１３１〜１３３のそれぞれの動作モードが互いに異なるモードとなるように、クロック監視回路１３１〜１３３のそれぞれの動作モードを周期的に切り替えている。それにより、クロック監視回路１３１〜１３３は、そのうちの何れかを用いて常にクロック信号ＣＬＫ１の監視を行うことができる。他方、クロック信号ＣＬＫ１の監視を行っていない他のクロック監視回路は、カウント値と期待値との比較や、自己診断を行う。
【００２７】
具体的には、タイミング信号生成回路１３４は、クロック信号ＣＬＫ２の立ち上がりに同期してサンプリング信号Ｓ１〜Ｓ３及び比較信号Ｃ１〜Ｃ３を出力する。
【００２８】
（タイミング信号生成回路１３４の具体的な構成例）
図３は、タイミング信号生成回路１３４の具体的な構成例を示す図である。
図３に示すように、タイミング信号生成回路１３４は、ダウンカウンタＤＣ１と、論理回路ＣＴ１と、セレクタＳＬ１１，ＳＬ１２と、フリップフロップＦＦ１１，ＦＦ１２と、を備える。
【００２９】
ダウンカウンタＤＣ１は、例えば６ビットカウンタであって、クロック信号ＣＬＫ２の立ち上がりに同期してカウント値をカウントダウンさせる。本実施の形態では、ダウンカウンタＤＣ１は、カウント値を最大値“２Ｆｈ”（１６進数表記；１０進数表記では４７）から最小値“００ｈ”まで一つずつカウントダウンさせる。カウント値は、最小値“００ｈ”に達すると最大値“２Ｆｈ”に戻る。
【００３０】
ダウンカウンタＤＣ１は、カウント値を構成する６ビットの値のうち最上位ビットの値をサンプリング信号Ｓ１として出力する。
【００３１】
論理回路ＣＴ１は、ダウンカウンタＤＣ１のカウント値に基づいて選択信号Ａ１〜Ａ３及び比較信号Ｃ１〜Ｃ３を出力する。具体的には、論理回路ＣＴ１は、ダウンカウンタＤＣ１のカウント値が“００ｈ”の場合に選択信号Ａ１を一時的にＨレベルにし、カウント値が“１０ｈ”の場合に選択信号Ａ２を一時的にＨレベルにし、カウント値が“２０ｈ”の場合に選択信号Ａ３を一時的にＨレベルにする。また、論理回路ＣＴ１は、ダウンカウンタＤＣ１のカウント値が“０８ｈ”の場合に比較信号Ｃ２を一時的にＨレベルにし、カウント値が“１８ｈ”の場合に比較信号Ｃ１を一時的にＨレベルにし、カウント値が“２８ｈ”の場合に比較信号Ｃ３を一時的にＨレベルにする。
【００３２】
セレクタＳＬ１１は、選択信号Ａ２，Ａ３に基づいて、Ｈレベルの信号、Ｌレベルの信号、及び、セレクタＳＬ１１の出力信号、の何れかを選択して出力する。具体的には、セレクタＳＬ１１は、選択信号Ａ２，Ａ３が何れもＬレベルを示す場合、セレクタＳＬ１１の出力信号を選択して出力する（即ち、出力信号の値を維持する）。また、セレクタＳＬ１１は、選択信号Ａ２がＬレベル、選択信号Ａ３がＨレベルを示す場合、Ｈレベルの信号を選択して出力する。さらに、セレクタＳＬ１１は、選択信号Ａ２がＨレベルを示す場合、選択信号Ａ３に関わらずＬレベルの信号を選択して出力する。
【００３３】
フリップフロップＦＦ１１は、セレクタＳＬ１１の出力信号をクロック信号ＣＬＫ２の立ち上がりに同期して取り込み、サンプリング信号Ｓ２として出力する。
【００３４】
セレクタＳＬ１２は、選択信号Ａ１，Ａ２に基づいて、Ｈレベルの信号、Ｌレベルの信号、セレクタＳＬ１２の出力信号、の何れかを選択して出力する。具体的には、セレクタＳＬ１２は、選択信号Ａ１，Ａ２が何れもＬレベルを示す場合、セレクタＳＬ１１の出力信号を選択して出力する（即ち、出力信号の値を維持する）。また、セレクタＳＬ１１は、選択信号Ａ１がＬレベル、選択信号Ａ２がＨレベルを示す場合、Ｈレベルの信号を選択して出力する。さらに、セレクタＳＬ１１は、選択信号Ａ１がＨレベルを示す場合、選択信号Ａ２に関わらずＬレベルの信号を選択して出力する。
【００３５】
フリップフロップＦＦ１２は、セレクタＳＬ１２の出力信号をクロック信号ＣＬＫ２の立ち上がりに同期して取り込み、サンプリング信号Ｓ３として出力する。
【００３６】
このような構成により、タイミング信号生成回路１３４は、サンプリング信号Ｓ１〜Ｓ３を順番に一定期間Ｈレベルにするとともに、比較信号Ｃ１〜Ｃ３を、それぞれサンプリング信号Ｓ１〜Ｓ３がＨレベルを示す期間の経過後に一時的にＨレベルにする。
【００３７】
なお、タイミング信号生成回路１３４は、上記した構成と同等の機能を有する他の構成に適宜変更可能である。
【００３８】
（クロック監視回路１３１の具体的な構成例）
図４は、クロック監視回路１３１の具体的な構成例を示す図である。
図４に示すように、クロック監視回路１３１は、エッジ検出回路ＥＤ１１と、論理回路（クロックカウンタ）ＬＣ１と、エッジ検出回路ＥＤ１２と、期待値格納レジスタＲＧ１１と、計測値格納レジスタＲＧ１２と、比較回路ＣＰ１と、を備える。
【００３９】
エッジ検出回路ＥＤ１１は、サンプリング信号Ｓ３の立ち上がりエッジを検出してパルス信号を出力する。
【００４０】
論理回路ＬＣ１は、縦続接続されたｍ個（ｍは２以上の整数）のフリップフロップと、ｍ個のセレクタと、その他の組み合わせ回路と、を備える。ｍ個のセレクタは、それぞれ、ｍ個のフリップフロップの前段に設けられ、動作モード（具体的には、サンプリング信号Ｓ１及び自己診断成功信号Ｋ１の論理積）に応じてｍ個のフリップフロップに入力される信号を選択的に出力する。
【００４１】
例えば、サンプリング信号Ｓ１がＬレベルを示す場合、又は、自己診断成功信号Ｋ１がＬレベルを示す場合、初段のセレクタは、初段のフリップフロップに対して、エッジ検出回路ＥＤ１１から出力されたパルス信号を選択して出力する。２段目以降のｋ（ｋは２〜ｍの任意の整数）段目のセレクタは、ｋ段目のフリップフロップに対して、前段（ｋ−１段目）のフリップフロップの出力信号を選択して出力する。つまり、サンプリング信号Ｓ１がＬレベルを示す場合、又は、自己診断成功信号Ｋ１がＬレベルを示す場合、論理回路ＬＣ１によってシフトレジスタが構成される。このシフトレジスタは、正常時には、エッジ検出回路ＥＤ１１から出力されたパルス信号を出力信号までシフトさせる（伝搬させる）。
【００４２】
また、例えば、サンプリング信号Ｓ１がＨレベルを示し、かつ、自己診断成功信号Ｋ１がＨレベルを示す場合、初段のセレクタは、初段のフリップフロップに対して、当該初段のフリップフロップの出力信号を反転させた信号を選択して出力する。２段目以降のｋ段目のセレクタは、ｋ段目のフリップフロップに対して、当該ｋ段目のフリップフロップの出力信号と、１段目からｋ−１段目までのフリップフロップのそれぞれの出力信号の論理積と、の排他的論理和を選択して出力する。つまり、サンプリング信号Ｓ１がＨレベルを示し、かつ、自己診断成功信号Ｋ１がＨレベルを示す場合、論理回路ＬＣ１によってバイナリカウンタが構成される。このバイナリカウンタは、複数のフリップフロップのそれぞれの出力信号を、バイナリカウンタのカウント値（計測値）として出力する。
【００４３】
エッジ検出回路ＥＤ１２は、論理回路ＬＣ１によって構成されたシフトレジスタの出力信号まで入力信号のパルス（エッジ検出回路ＥＤ１１から出力されたパルス信号）が正常にシフトしているか否かを検出する。
【００４４】
例えば、エッジ検出回路ＥＤ１２は、シフトレジスタの出力信号まで入力信号のパルスがシフトしているのを検出した場合、自己診断成功信号Ｋ１をＨレベルにする。これは、論理回路ＬＣ１が故障していないことを意味する。また、エッジ検出回路ＥＤ１２は、シフトレジスタの出力信号まで入力信号のパルスがシフトしているのを検出しない場合、自己診断成功信号Ｋ１をＬレベルにする。これは、論理回路ＬＣ１が故障していることを意味する。
【００４５】
計測値格納レジスタＲＧ１２には、論理回路ＬＣ１によって構成されたバイナリカウンタの所定周期当たりのカウント値（計測値）Ｆ１が格納される。また、期待値格納レジスタＲＧ１１には、期待値の最大値及び最小値が予め格納されている。
【００４６】
比較回路ＣＰ１は、例えば比較信号Ｃ１の立ち上がりに同期して、計測値格納レジスタＲＧ１２に格納されたカウント値が期待値格納レジスタＲＧ１１に格納された期待値の範囲内であるか否かを比較し、比較結果をクロック信号ＣＬＫ１の監視結果Ｍ１として出力する。例えば、比較回路ＣＰ１は、カウント値が期待値の範囲内である場合、Ｌレベルの監視結果Ｍ１を出力し、カウント値が期待値の範囲外である場合、Ｈレベルの監視結果Ｍ１を出力する。
【００４７】
なお、クロック監視回路１３１の構成は、上記した構成と同等の機能を有する他の構成に適宜変更可能である。
【００４８】
クロック監視回路１３２の具体的な構成については、クロック監視回路１３１の場合と同様であるため、その説明を省略する。但し、クロック監視回路１３２では、サンプリング信号Ｓ３の代わりにサンプリング信号Ｓ１が入力され、サンプリング信号Ｓ１の代わりにサンプリング信号Ｓ２が入力され、比較信号Ｃ１に同期して監視結果Ｍ１が出力される代わりに比較信号Ｃ２に同期して監視結果Ｍ２が出力され、カウント値Ｆ１の代わりにカウント値Ｆ２が出力され、自己診断成功信号Ｋ１の代わりに自己診断成功信号Ｋ２が生成される。また、クロック監視回路１３２には、論理回路ＬＣ１に相当する論理回路ＬＣ２が設けられている。
【００４９】
クロック監視回路１３３の具体的な構成については、クロック監視回路１３１の場合と同様であるため、その説明を省略する。但し、クロック監視回路１３２では、サンプリング信号Ｓ３の代わりにサンプリング信号Ｓ２が入力され、サンプリング信号Ｓ１の代わりにサンプリング信号Ｓ３が入力され、比較信号Ｃ１に同期して監視結果Ｍ１が出力される代わりに比較信号Ｃ３に同期して監視結果Ｍ３が出力され、カウント値Ｆ１の代わりにカウント値Ｆ３が出力され、自己診断成功信号Ｋ１の代わりに自己診断成功信号Ｋ３が生成される。また、クロック監視回路１３３には、論理回路ＬＣ１に相当する論理回路ＬＣ３が設けられている。
【００５０】
異常検出回路１３５は、クロック監視回路１３１〜１３３から出力された監視結果Ｍ１〜Ｍ３及び計測値Ｆ１〜Ｆ３に基づいて、第１発振回路１１によって生成されたクロック信号ＣＬＫ１の異常を検出する。例えば、第１発振回路１１によって生成されたクロック信号ＣＬＫ１の異常を検出しない場合、Ｌレベルの検出信号Ｄ１を出力し、異常を検出した場合、Ｈレベルの検出信号Ｄ１を出力する。さらに、異常検出回路１３５は、監視結果Ｍ１〜Ｍ３及び計測値Ｆ１〜Ｆ３に基づいて、クロック監視回路１３１〜１３３の故障も検出する。
【００５１】
（異常検出回路１３５の具体的な構成例）
図５は、異常検出回路１３５の具体的な構成例を示す図である。
図５に示すように、異常検出回路２３５は、比較回路ＣＭＰ１〜ＣＭＰ３と、論理和回路ＯＲ１〜ＯＲ３と、セレクタＳＬ１３と、フリップフロップＦＦ１３と、を備える。
【００５２】
比較回路ＣＭＰ１は、比較信号Ｃ１の立ち上がりに同期して、クロック監視回路１３１のクロックカウンタによってカウントされた所定周期当たりのカウント値（計測値）Ｆ１と、クロック監視回路１３３のクロックカウンタによってカウントされた所定周期当たりのカウント値（計測値）Ｆ３と、を比較する。
【００５３】
比較回路ＣＭＰ２は、比較信号Ｃ２の立ち上がりに同期して、クロック監視回路１３１のクロックカウンタによってカウントされた所定周期当たりのカウント値（計測値）Ｆ１と、クロック監視回路１３２のクロックカウンタによってカウントされた所定周期当たりのカウント値（計測値）Ｆ２と、を比較する。
【００５４】
比較回路ＣＭＰ３は、比較信号Ｃ３の立ち上がりに同期して、クロック監視回路１３２のクロックカウンタによってカウントされた所定周期当たりのカウント値（計測値）Ｆ２と、クロック監視回路１３３のクロックカウンタによってカウントされた所定周期当たりのカウント値（計測値）Ｆ３と、を比較する。
【００５５】
論理和回路ＯＲ１は、クロック監視回路１３１〜１３３のそれぞれによる監視結果Ｍ１〜Ｍ３の論理和を出力する。論理和回路ＯＲ２は、比較回路ＣＭＰ１〜ＣＭＰ３のそれぞれによる比較結果の論理和を出力する。論理和回路ＯＲ３は、論理和回路ＯＲ１，ＯＲ２のそれぞれの出力の論理和を出力する。セレクタＳＬ１３は、論理和回路ＯＲ３の出力信号に応じて、フリップフロップＦＦ１３の出力信号及びＨレベルの信号の何れかを選択して出力する。フリップフロップＦＦ１３は、セレクタＳＬ１３の出力信号をクロック信号ＣＬＫ２の立ち上がりに同期して取り込み、検出信号Ｄ１として出力する。
【００５６】
なお、異常検出回路１３５の構成は、上記した構成と同等の機能を有する他の構成に適宜変更可能である。
【００５７】
（半導体装置１の動作）
続いて、図６を用いて半導体装置１の動作について説明する。
図６は、半導体装置１の動作を示すタイミングチャートである。
【００５８】
図６に示すように、クロック監視回路１３１〜１３３は、それぞれの動作モードが互いに異なるように制御されている。
【００５９】
具体的には、まず、時刻ｔ１１〜ｔ１２の期間では、クロック監視回路１３１がクロック信号ＣＬＫ１の発振回数のカウント（サンプリング）を行い、クロック監視回路１３２が自己診断を行い、クロック監視回路１３３が、直前の期間でカウントされたクロック信号ＣＬＫ１の所定周期当たりのカウント値と、期待値と、の比較を行っている。
【００６０】
その後、時刻ｔ１２〜ｔ１３の期間では、クロック監視回路１３１が、直前の期間でカウントされたクロック信号ＣＬＫ１の所定周期当たりのカウント値と、期待値と、の比較を行い、クロック監視回路１３２がクロック信号ＣＬＫ１の発振回数のカウント（サンプリング）を行い、クロック監視回路１３３が自己診断を行っている。
【００６１】
その後、時刻ｔ１３〜ｔ１４の期間では、クロック監視回路１３１が自己診断を行い、クロック監視回路１３２が、直前の期間でカウントされたクロック信号ＣＬＫ１の所定周期当たりのカウント値と、期待値と、の比較を行い、クロック監視回路１３３がクロック信号ＣＬＫ１の発振回数のカウント（サンプリング）を行っている。
【００６２】
ここで、クロック監視回路１３１〜１３３は、そのうちの何れかを用いて常にクロック信号ＣＬＫ１の監視を行っている。他方、クロック信号ＣＬＫ１の監視を行っていない他のクロック監視回路は、カウント値と期待値との比較や、自己診断を行う。
【００６３】
以下、半導体装置１の動作について、さらに詳細に説明する。なお、以下では、クロック監視回路１３１〜１３３のうち主にクロック監視回路１３１の動作について説明するが、クロック監視回路１３２、１３３の動作についても、動作タイミングが異なる以外は基本的にはクロック監視回路１３１の動作と同様である。
【００６４】
まず、ダウンカウンタＤＣ１のカウント値が“００ｈ”から“２Ｆｈ”に初期化されると（即ち、カウント値の最上位ビットの値が“０”から“１”に変化すると）、サンプリング信号Ｓ１はＬレベルからＨレベルに切り替わる（時刻ｔ１１）。それにより、クロック監視回路１３１は、クロック信号ＣＬＫ１の発振回数のカウント動作を開始する（時刻ｔ１１）。
【００６５】
このとき、クロック監視回路１３１では、サンプリング信号Ｓ１がＨレベルを示し、かつ、自己診断成功信号Ｋ１がＨレベルを示すため、論理回路ＬＣ１によってバイナリカウンタが構成される。
【００６６】
その後、ダウンカウンタＤＣ１のカウント値がカウントダウンして“１Ｆｈ”になると（即ち、カウント値の最上位ビットの値が“１”から“０”に変化すると）、サンプリング信号Ｓ１がＨレベルからＬレベルに切り替わる（時刻ｔ１２）。それにより、論理回路ＬＣ１によって構成されたバイナリカウンタによるクロック信号ＣＬＫ１の計測は終了し、その計測値は、計測値格納レジスタＲＧ１２に格納される。
【００６７】
その後、ダウンカウンタＤＣ１のカウント値がカウントダウンして“１８ｈ”になると、比較信号Ｃ１が一時的にＨレベルになる（時刻ｔ１２ａ）。
【００６８】
それにより、クロック監視回路１３１に設けられた比較回路ＣＰ１は、例えば比較信号Ｃ１の立ち上がりに同期して、計測値格納レジスタＲＧ１２に格納された計測値Ｆ１と、期待値格納レジスタＲＧ１１に格納された期待値と、の比較を行う（時刻ｔ１２ａ）。図６の例では、比較回路ＣＰ１は、計測値Ｆ１が期待値の範囲内であることを表すＬレベルの監視結果Ｍ１を出力している。
【００６９】
なお、このとき、異常検出回路１３５に設けられた比較回路ＣＭＰ１は、比較信号Ｃ１の立ち上がりに同期して、クロック監視回路１３１から出力された計測値Ｆ１と、クロック監視回路１３３から出力された計測値Ｆ３と、の比較を行う。例えば、計測値Ｆ１と計測値Ｆ３とが一致している場合、比較回路ＣＭＰ１は、Ｌレベルの比較結果を出力する。図６の例では、監視結果Ｍ１だけでなく監視結果Ｍ２，Ｍ３もＬレベルを示し、比較回路ＣＭＰ１〜ＣＭＰ３のそれぞれの比較結果がＬレベルを示すため、異常検出回路１３５は、クロック信号ＣＬＫ１に異常がない（かつ、クロック監視回路１３１〜１３３に故障がない）ことを表すＬレベルの検出信号Ｄ１を出力している。
【００７０】
その後、比較信号Ｃ１の立ち下がりに同期して、論理回路ＬＣ１によって構成されたバイナリカウンタのカウント値は“０”に初期化され、かつ、自己診断成功信号Ｋ１はＨレベルからＬレベルに切り替わる（時刻ｔ１２ｂ）。
【００７１】
なお、クロック監視回路１３１において計測値Ｆ１が期待値の範囲外である場合、比較回路ＣＰ１は、例えば比較信号Ｃ１の立ち上がりに同期してＨレベルの監視結果Ｍ１を出力する。このとき、異常検出回路１３５は、クロック信号ＣＬＫ１に異常があることを表すＨレベルの検出信号Ｄ１を出力する。
【００７２】
また、異常検出回路１３５において計測値Ｆ１と計測値Ｆ３とが一致していない場合、比較回路ＣＭＰ１は、比較信号Ｃ１の立ち上がりに同期してＨレベルの比較結果を出力する。このとき、異常検出回路１３５は、クロック信号ＣＬＫ１に異常があることを表すＨレベルの検出信号Ｄ１を出力する。
【００７３】
その後、ダウンカウンタＤＣ１のカウント値がカウントダウンして“１０ｈ”になると、選択信号Ａ２が一時的にＨレベルになるため、サンプリング信号Ｓ３がＬレベルからＨレベルに切り替わる（時刻ｔ１３）。それにより、クロック監視回路１３１は、自己診断動作を開始する（時刻ｔ１３）。
【００７４】
このとき、クロック監視回路１３１では、サンプリング信号Ｓ１がＬレベルを示しているため、論理回路ＬＣ１によってシフトレジスタが構成される。このシフトレジスタは、サンプリング信号Ｓ３の立ち上がりエッジを検出することによってエッジ検出回路ＥＤ１１から出力されたパルス信号を、出力信号までシフトさせる（時刻ｔ１３〜ｔ１３ａ）。
【００７５】
図６の例では、論理回路ＬＣ１によって構成されたシフトレジスタの出力信号まで入力信号のパルスが正常にシフトしているため、エッジ検出回路ＥＤ１２は、自己診断成功信号Ｋ１をＬレベルからＨレベルに切り替える（時刻ｔ１３ａ）。
【００７６】
その後、ダウンカウンタＤＣ１のカウント値がカウントダウンして“０８ｈ”になると、比較信号Ｃ２が一時的にＨレベルになる。例えば、比較信号Ｃ２の立ち上がりに同期して、自己診断成功信号Ｋ１は外部に出力される（時刻ｔ１３ｂ）。その後、比較信号Ｃ２の立ち下がりに同期して、論理回路ＬＣ１によって構成されたシフトレジスタの出力信号の値は“０”に初期化される（時刻ｔ１３ｃ）。
【００７７】
その後、ダウンカウンタＤＣ１のカウント値は“００ｈ”に達すると“２Ｆｈ”に初期化される（時刻ｔ１４）。その後は、時刻ｔ１１〜ｔ１４の動作が繰り返される。
【００７８】
なお、クロック監視回路１３１において、論理回路ＬＣ１によって構成されたシフトレジスタの出力信号まで入力信号のパルスが正常にシフトしなかった場合、エッジ検出回路ＥＤ１２は、自己診断成功信号Ｋ１をＬレベルに維持する。この場合、その後のカウントモードにおいて、サンプリング信号Ｓ１がＬレベルからＨレベルに切り替わっても、論理回路ＬＣ１はバイナリカウンタの構成に切り替わることなくシフトレジスタの構成を維持する。つまり、クロック監視回路１３１は、カウントモードにおいて、クロック信号ＣＬＫ１の発振回数のカウント動作を行わない。それにより、その後の比較モードにおいて、計測値Ｆ１が期待値の範囲外になるため、クロック監視回路１３１は、比較回路ＣＰ１からＨレベルの監視結果Ｍ１を出力する。このとき、異常検出回路１３５は、クロック監視回路１３１に故障があることを表すＨレベルの検出信号Ｄ１を出力する。
【００７９】
このように、本実施の形態にかかる半導体装置１では、各クロック監視回路１３１〜１３３が、動作モードに応じて、第１発振回路１１によって生成されたクロック信号ＣＬＫ１の発振回数をカウントするカウンタを構成したり、入力信号のパルスが出力信号までシフトしているか否かを検出するためのシフトレジスタを構成したりする。つまり、本実施の形態にかかる半導体装置１では、各クロック監視回路１３１〜１３３が、クロック信号ＣＬＫ１の監視を行うだけでなく、クロック信号ＣＬＫ１の監視を行っていない期間を利用して自己診断を行っている。それにより、本実施の形態にかかる半導体装置１は、関連技術の場合と異なり検証用のクロック監視回路を追加で設ける必要が無いため、回路規模を増大させることなく各クロック監視回路１３１〜１３３の自己診断を実施することができる。
【００８０】
また、本実施の形態では、タイミング信号生成回路１３４が、クロック監視回路１３１〜１３３のそれぞれの動作モードが互いに異なるモードとなるように、クロック監視回路１３１〜１３３のそれぞれの動作モードを周期的に切り替えている。それにより、クロック監視回路１３１〜１３３は、そのうちの何れかを用いて常にクロック信号ＣＬＫ１の監視を行うことができる。
【００８１】
さらに、本実施の形態にかかる半導体装置１は、クロック監視回路１３１〜１３３による監視結果同士を比較することによっても、クロック信号ＣＬＫ１の監視を行うことができる。ただし、クロック監視回路１３１〜１３３による監視結果同士の比較は省略されても良い。その場合、異常検出回路１３５は、クロック監視回路１３１〜１３３による監視結果Ｍ１〜Ｍ３のみに基づいて検出信号Ｄ１を出力するように構成される。
【００８２】
なお、本実施の形態では、３つのクロック監視回路１３１〜１３３が設けられた場合を例に説明したが、これに限られない。クロック信号ＣＬＫ１が常に監視される必要がなく定期的に監視されるので良いのであれば、１つのクロック監視回路１３１のみが設けられても良い。
【００８３】
＜実施の形態２＞
図７は、実施の形態２にかかる半導体装置２の構成例を示すブロック図である。
半導体装置２は、半導体装置１の場合と比較して、発振異常検出部１３の代わりに発振異常検出部２３を備える。
【００８４】
（発振異常検出部２３の具体的な構成例）
図８は、発振異常検出部２３の具体的な構成例を示すブロック図である。
図８に示すように、発振異常検出部２３は、発振異常検出部１３の場合と比較して、タイミング信号生成回路１３４の代わりにタイミング信号生成回路２３４を備え、異常検出回路１３５の代わりに異常検出回路２３５を備え、かつ、３個のクロック監視回路１３１〜１３３のうち２個のクロック監視回路１３１，１３２のみを備える。
【００８５】
タイミング信号生成回路２３４は、クロック監視回路１３１，１３２のそれぞれの動作モードを周期的に切り替える。具体的には、タイミング信号生成回路２３４は、クロック信号ＣＬＫ２の立ち上がりに同期してサンプリング信号Ｓ１，Ｓ２及び比較信号Ｃ１，Ｃ２を出力する。
【００８６】
ここで、タイミング信号生成回路２３４に設けられたダウンカウンタＤＣ１は、例えば５ビットカウンタであって、クロック信号ＣＬＫ２の立ち上がりに同期してカウント値をカウントダウンさせる。本実施の形態では、ダウンカウンタＤＣ１は、カウント値を最大値“１Ｆｈ”（１６進数表記；１０進数表記では３１）から最小値“００ｈ”まで一つずつカウントダウンさせる。カウント値は、最小値“００ｈ”に達すると最大値“１Ｆｈ”に戻る。
【００８７】
そして、タイミング信号生成回路２３４は、ダウンカウンタＤＣ１のカウント値を構成する５ビットの値のうち最上位ビットの値をサンプリング信号Ｓ１として出力するように構成されている。また、タイミング信号生成回路２３４は、ダウンカウンタＤＣ１のカウント値が“０Ｆｈ”になったタイミングでサンプリング信号Ｓ２を立ち上げるように構成されている。さらに、タイミング信号生成回路２３４は、ダウンカウンタＤＣ１のカウント値が“０８ｈ”、“１８ｈ”になったタイミングでそれぞれ比較信号Ｃ１，Ｃ２を一時的にＨレベルにするように構成されている。
【００８８】
また、クロック監視回路１３１には、サンプリング信号Ｓ３の代わりにリセット信号ＲＳＴが入力されている。そのため、クロック監視回路１３１に設けられたエッジ検出回路ＥＤ１１は、サンプリング信号Ｓ３の代わりにリセット信号ＲＳＴの立ち上がりエッジを検出してパルス信号（Ｐ１）を出力する。
【００８９】
さらに、クロック監視回路１３２には、サンプリング信号Ｓ１の代わりにリセット信号ＲＳＴが入力されている。そのため、クロック監視回路１３２に設けられたエッジ検出回路（エッジ検出回路ＥＤ１１に相当する回路）は、サンプリング信号Ｓ１の代わりにリセット信号ＲＳＴの立ち上がりエッジを検出してパルス信号（Ｐ１）を出力する。
【００９０】
したがって、リセット信号ＲＳＴによって初期化が行われる期間では、クロック監視回路１３１，１３２のそれぞれの動作モードが自己診断モードに設定される。その後は、クロック監視回路１３１，１３２のそれぞれの動作モードが、カウントモード及び比較モードのうち互いに異なるモードとなるように周期的に切り替わる。
【００９１】
異常検出回路２３５は、クロック監視回路１３１，１３２のそれぞれによる監視結果Ｍ１，Ｍ２及び計測値Ｆ１，Ｆ２に基づいて、第１発振回路１１によって生成されたクロック信号ＣＬＫ１の異常を検出する。例えば、第１発振回路１１によって生成されたクロック信号ＣＬＫ１が正常である場合、Ｌレベルの検出信号Ｄ１を出力し、クロック信号ＣＬＫ１の異常を検出した場合、Ｈレベルの検出信号Ｄ１を出力する。さらに、異常検出回路２３５は、監視結果Ｍ１，Ｍ２及び計測値Ｆ１，Ｆ２に基づいて、クロック監視回路１３１，１３２の故障も検出する。
【００９２】
（異常検出回路２３５の具体的な構成例）
図９は、異常検出回路２３５の具体的な構成例を示す図である。
図９に示すように、異常検出回路２３５は、比較回路ＣＭＰ１と、論理和回路ＯＲ１，ＯＲ３と、セレクタＳＬ１３と、フリップフロップＦＦ１３と、を備える。
【００９３】
比較回路ＣＭＰ１は、比較信号Ｃ１及び比較信号Ｃ２の立ち上がりに同期して、クロック監視回路１３１のクロックカウンタによってカウントされた所定周期当たりのカウント値（計測値）Ｆ１と、クロック監視回路１３２のクロックカウンタによってカウントされた所定周期当たりのカウント値（計測値）Ｆ２と、を比較する。
【００９４】
論理和回路ＯＲ１は、クロック監視回路１３１，１３２のそれぞれによる監視結果Ｍ１，Ｍ２の論理和を出力する。論理和回路ＯＲ３は、論理和回路ＯＲ１の出力と、比較回路ＣＭＰ１による比較結果と、の論理和を出力する。セレクタＳＬ１３は、論理和回路ＯＲ３の出力信号に応じて、フリップフロップＦＦ１３の出力信号及びＨレベルの信号の何れかを選択して出力する。フリップフロップＦＦ１３は、セレクタＳＬ１３の出力信号をクロック信号ＣＬＫ２の立ち上がりに同期して取り込み、検出信号Ｄ１として出力する。
【００９５】
なお、異常検出回路２３５の構成は、上記した構成と同等の機能を有する他の構成に適宜変更可能である。
【００９６】
発振異常検出部２３のその他の構成については、発振異常検出部１３の場合と同様であるため、その説明を省略する。
【００９７】
（半導体装置２の動作）
続いて、図１０を用いて半導体装置２の動作について説明する。
図１０は、半導体装置２の動作を示すタイミングチャートである。
【００９８】
図１０に示すように、まず、時刻ｔ２１〜ｔ２２の期間では、クロック監視回路１３１，１３２が何れも自己診断を行っている。その後、時刻ｔ２２以降では、クロック監視回路１３１，１３２は、交互にクロック信号ＣＬＫ１の発振回数のカウント（サンプリング）を行っている。そして、クロック監視回路１３１，１３２の一方がクロック信号ＣＬＫ１の発振回数のカウントを行っている期間中、他方は、直前にカウントされたクロック信号ＣＬＫ１の所定周期当たりのカウント値と期待値との比較を行っている。
【００９９】
以下、半導体装置２の動作について、さらに詳細に説明する。なお、以下では、クロック監視回路１３１，１３２のうち主にクロック監視回路１３１の動作について説明するが、クロック監視回路１３２の動作についても、動作タイミングが異なる以外は基本的にはクロック監視回路１３１の動作と同様である。
【０１００】
まず、初期状態では、サンプリング信号Ｓ１，Ｓ２が何れもＬレベルを示している（時刻ｔ２１）。そのため、クロック監視回路１３１，１３２は、何れも自己診断動作を行う（時刻ｔ２１〜ｔ２２）。
【０１０１】
このとき、クロック監視回路１３１では、サンプリング信号Ｓ１がＬレベルを示しているため、論理回路ＬＣ１によってシフトレジスタが構成される。このシフトレジスタは、リセット信号ＲＳＴの立ち上がりエッジを検出することによってエッジ検出回路ＥＤ１１から出力されたパルス信号（Ｐ１）を、出力信号までシフトさせる（時刻ｔ２１ａ〜ｔ２１ｂ）。
【０１０２】
図１０の例では、論理回路ＬＣ１によって構成されたシフトレジスタの出力信号まで入力信号のパルスが正常にシフトしているため、エッジ検出回路ＥＤ１２は、自己診断成功信号Ｋ１をＬレベルからＨレベルに切り替えている（時刻ｔ２１ｂ）。
【０１０３】
また、このとき、クロック監視回路１３２では、サンプリング信号Ｓ２がＬレベルを示しているため、論理回路ＬＣ２によってシフトレジスタが構成される。このシフトレジスタは、リセット信号ＲＳＴの立ち上がりエッジを検出することによってエッジ検出回路（エッジ検出回路ＥＤ１１に相当する回路）から出力されたパルス信号（Ｐ１）を出力信号までシフトさせる（時刻ｔ２１ａ〜ｔ２１ｂ）。
【０１０４】
図１０の例では、論理回路ＬＣ２によって構成されたシフトレジスタの出力信号まで入力信号のパルスが正常にシフトしているため、エッジ検出回路ＥＤ１２に相当する回路は、自己診断成功信号Ｋ２をＬレベルからＨレベルに切り替えている（時刻ｔ２１ｂ）。
【０１０５】
なお、クロック監視回路１３１において、論理回路ＬＣ１によって構成されたシフトレジスタの出力信号まで入力信号のパルスが正常にシフトしなかった場合、エッジ検出回路ＥＤ１２は、自己診断成功信号Ｋ１をＬレベルに維持する。この場合、その後のカウントモードにおいて、サンプリング信号Ｓ１がＬレベルからＨレベルに切り替わっても、論理回路ＬＣ１はバイナリカウンタの構成に切り替わることなくシフトレジスタの構成を維持する。つまり、クロック監視回路１３１は、カウントモードにおいて、クロック信号ＣＬＫ１の発振回数のカウント動作を行わない。それにより、その後の比較モードにおいて、計測値Ｆ１が期待値の範囲外になるため、クロック監視回路１３１は、Ｈレベルの監視結果Ｍ１を出力する。このとき、異常検出回路２３５は、クロック監視回路１３１に故障があることを表すＨレベルの検出信号Ｄ１を出力する。
【０１０６】
同様に、クロック監視回路１３２において、論理回路ＬＣ２によって構成されたシフトレジスタの出力信号まで入力信号のパルスが正常にシフトしなかった場合、エッジ検出回路ＥＤ１２に相当する回路は、自己診断成功信号Ｋ２をＬレベルに維持する。この場合、その後のカウントモードにおいて、サンプリング信号Ｓ２がＬレベルからＨレベルに切り替わっても、論理回路ＬＣ２はバイナリカウンタの構成に切り替わることなくシフトレジスタの構成を維持する。つまり、クロック監視回路１３２は、カウントモードにおいて、クロック信号ＣＬＫ１の発振回数のカウント動作を行わない。それにより、その後の比較モードにおいて、計測値Ｆ２が期待値の範囲外になるため、クロック監視回路１３２は、Ｈレベルの監視結果Ｍ２を出力する。このとき、異常検出回路２３５は、クロック監視回路１３２に故障があることを表すＨレベルの検出信号Ｄ１を出力する。
【０１０７】
その後、ダウンカウンタＤＣ１のカウント値が最大値“１Ｆｈ”に設定されると（即ち、カウント値の最上位ビットの値が“１”に設定されると）、サンプリング信号Ｓ１がＬレベルからＨレベルに切り替わる（時刻ｔ２２）。それにより、クロック監視回路１３１は、クロック信号ＣＬＫ１の発振回数のカウント動作を開始する（時刻ｔ２２）。
【０１０８】
このとき、クロック監視回路１３１では、サンプリング信号Ｓ１がＨレベルを示し、かつ、自己診断成功信号Ｋ１がＨレベルを示すため、論理回路ＬＣ１によってバイナリカウンタが構成される。
【０１０９】
その後、ダウンカウンタＤＣ１のカウント値がカウントダウンして“０Ｆｈ”になると（即ち、カウント値の最上位ビットの値が“１”から“０”に変化すると）、サンプリング信号Ｓ１はＨレベルからＬレベルに切り替わる（時刻ｔ２３）。それにより、論理回路ＬＣ１によって構成されたバイナリカウンタによるクロック信号ＣＬＫ１の計測は終了し、その計測値は、計測値格納レジスタＲＧ１２に格納される。
【０１１０】
その後、ダウンカウンタＤＣ１のカウント値がカウントダウンして“０８ｈ”になると、比較信号Ｃ１が一時的にＨレベルになる（時刻ｔ２３ａ）。
【０１１１】
それにより、クロック監視回路１３１に設けられた比較回路ＣＰ１は、例えば比較信号Ｃ１の立ち上がりに同期して、計測値格納レジスタＲＧ１２に格納された計測値Ｆ１と、期待値格納レジスタＲＧ１１に格納された期待値と、の比較を行う（時刻ｔ２３ａ）。図１０の例では、比較回路ＣＰ１は、計測値Ｆ１が期待値の範囲内であることを表すＬレベルの監視結果Ｍ１を出力している。
【０１１２】
その後、比較信号Ｃ１の立ち下がりに同期して、論理回路ＬＣ１によって構成されたバイナリカウンタのカウント値は“０”に初期化される（時刻ｔ２３ｂ）。
【０１１３】
なお、クロック監視回路１３１において計測値Ｆ１が期待値の範囲外である場合、比較回路ＣＰ１は、例えば比較信号Ｃ１の立ち上がりに同期してＨレベルの監視結果Ｍ１を出力する。このとき、異常検出回路２３５は、クロック信号ＣＬＫ１に異常があることを表すＨレベルの検出信号Ｄ１を出力する。
【０１１４】
クロック監視回路１３１が計測値Ｆ１と期待値との比較を行っている期間中、クロック監視回路１３２は、クロック信号ＣＬＫ１の発振回数をカウントする（時刻ｔ２３〜ｔ２４）。
【０１１５】
その後、ダウンカウンタＤＣ１のカウント値は“００ｈ”に達すると“２Ｆｈ”に初期化される（時刻ｔ２４）。その後は、時刻ｔ２２〜ｔ２４の動作が繰り返される。
【０１１６】
異常検出回路２３５に設けられた比較回路ＣＭＰ１は、比較信号Ｃ１及び比較信号Ｃ２の立ち上がりに同期して、クロック監視回路１３１から出力された計測値Ｆ１と、クロック監視回路１３２から出力された計測値Ｆ２と、の比較を行う。例えば、計測値Ｆ１と計測値Ｆ２とが一致している場合、Ｌレベルの比較結果を出力する。図１０の例では、監視結果Ｍ１，Ｍ２がＬレベルを示し、比較回路ＣＭＰ１の比較結果がＬレベルを示すため、異常検出回路２３５は、クロック信号ＣＬＫ１に異常がなく、かつ、クロック監視回路１３１，１３２に故障がないことを表すＬレベルの検出信号Ｄ１を出力している。
【０１１７】
なお、異常検出回路２３５において計測値Ｆ１と計測値Ｆ３とが一致していない場合、比較回路ＣＭＰ１は、比較信号Ｃ１の立ち上がりに同期してＨレベルの比較結果を出力する。このとき、異常検出回路２３５は、クロック信号ＣＬＫ１に異常があることを表すＨレベルの検出信号Ｄ１を出力する。
【０１１８】
このように、本実施の形態にかかる半導体装置２では、各クロック監視回路１３１，１３２が、動作モードに応じて、第１発振回路１１によって生成されたクロック信号ＣＬＫ１の発振回数をカウントするカウンタを構成したり、入力信号のパルスが出力信号までシフトしているか否かを検出するためのシフトレジスタを構成したりする。つまり、本実施の形態にかかる半導体装置２では、各クロック監視回路１３１，１３２が、クロック信号ＣＬＫ１の監視を行うだけでなく、クロック信号ＣＬＫ１の監視を行っていない期間を利用して自己診断を行っている。それにより、本実施の形態にかかる半導体装置２は、半導体装置１の場合よりもさらに小さな回路規模で、クロック監視回路１３１，１３２の自己診断を実施することができる。
【０１１９】
また、本実施の形態では、リセット信号ＲＳＴによる初期化後の所定期間では、クロック監視回路１３１，１３２のそれぞれの動作モードが自己診断モードに設定され、その後は、クロック監視回路１３１，１３２のそれぞれの動作モードが、カウントモード及び比較モードのうち互いに異なるモードとなるように周期的に切り替わる。それにより、クロック監視回路１３１，１３２は、自己診断実行後、そのうちの何れかを用いて常にクロック信号ＣＬＫ１の監視を行うことができる。
【０１２０】
さらに、本実施の形態にかかる半導体装置２は、クロック監視回路１３１，１３２による監視結果同士を比較することによっても、クロック信号ＣＬＫ１の監視を行うことができる。ただし、クロック監視回路１３１，１３２による監視結果同士の比較は省略されても良い。その場合、異常検出回路２３５は、クロック監視回路１３１，１３２による監視結果Ｍ１，Ｍ２のみに基づいて検出信号を出力するように構成される。
【０１２１】
＜実施の形態３＞
図１１は、実施の形態３にかかる半導体装置３に設けられた異常検出回路３３５の具体的な構成例を示す図である。異常検出回路３３５は、異常検出回路１３５の場合と比較して、セレクタＳＬ３１、差分値格納レジスタＲＧ３１、比較回路ＣＰ３１、及び、フリップフロップＦＦ３１をさらに備える。
【０１２２】
セレクタＳＬ３１は、比較信号Ｃ１〜Ｃ３に応じて、比較回路ＣＭＰ１により比較された計測値Ｆ１と計測値Ｆ３との差分値、比較回路ＣＭＰ２により比較された計測値Ｆ１と計測値Ｆ２との差分値、及び、比較回路ＣＭＰ３により比較された計測値Ｆ２と計測値Ｆ３との差分値、の何れかを選択して出力する。例えば、セレクタＳＬ３１は、比較信号Ｃ１がＨレベルの場合に比較結果ＣＭＰ１から出力された差分値を選択して出力し、比較信号Ｃ２がＨレベルの場合に比較結果ＣＭＰ２から出力された差分値を選択して出力し、比較信号Ｃ３がＨレベルの場合に比較結果ＣＭＰ３から出力された差分値を選択して出力する。
【０１２３】
差分値格納レジスタＲＧ３１には、セレクタＳＬ３１から出力された差分値が順次格納される。
【０１２４】
比較回路ＣＰ３１は、差分値格納レジスタＲＧ３１に格納された最新の差分値と、その直前に格納された差分値と、を比較する。ここで、最新の差分値と、その直前の差分値と、の差が所定値より大きい場合、比較回路ＣＰ３１は、第１発振回路１１によって生成されたクロック信号ＣＬＫ１の発振周波数が許容範囲外になる可能性があることを示す比較結果を出力する。フリップフロップＦＦ３１は、比較回路ＣＰ３１による比較結果をクロック信号ＣＬＫ２の立ち上がりに同期して取り込み、警告信号として出力する。この警告信号は、例えば、第１発振回路１１の故障の前兆を示す割り込み信号として用いられる。
【０１２５】
半導体装置３のその他の構成については、半導体装置１の場合と同様であるため、その説明を省略する。
【０１２６】
このように、本実施の形態にかかる半導体装置３は、半導体装置１と同等程度の効果を奏することができるとともに、クロック信号ＣＬＫ１の発振回数の計測値の変化量を監視することにより、第１発振回路１１に故障の前兆があることを検出することができる。
【０１２７】
以上のように、上記実施の形態１〜３にかかる半導体装置では、各クロック監視回路が、動作モードに応じて、発振回路によって生成されたクロック信号の発振回数をカウントするカウンタを構成したり、入力信号のパルスが出力信号までシフトしている否かを検出するためのシフトレジスタを構成したりする。つまり、上記実施の形態１〜３にかかる半導体装置では、各クロック監視回路が、クロック信号の監視を行うだけでなく、クロック信号の監視を行っていない期間を利用して自己診断を行っている。それにより、上記実施の形態１〜３にかかる半導体装置は、関連技術の場合と異なり、検証用のクロック監視回路を追加で設ける必要が無いため、回路規模を増大させることなくクロック監視回路の自己診断を実施することができる。
【０１２８】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１２９】
１  半導体装置
２  半導体装置
３  半導体装置
１１  第１発振回路
１２  第２発振回路
１３  発振異常検出部
１４  リセット制御回路
１５＿１〜１５＿ｎ  周辺回路
２３  発振異常検出部
１３１  クロック監視回路
１３２  クロック監視回路
１３３  クロック監視回路
１３４  タイミング信号生成回路
１３５  異常検出回路
２３４  タイミング信号生成回路
２３５  異常検出回路
３３５  異常検出回路
ＣＣ１  クロックカウンタ
ＣＭＰ１  比較回路
ＣＭＰ２  比較回路
ＣＭＰ３  比較回路
ＣＰ１  比較回路
ＣＰ３１  比較回路
ＣＴ１  論理回路
ＤＣ１  ダウンカウンタ
ＥＤ１１  エッジ検出回路
ＥＤ１２  エッジ検出回路
ＦＦ１１  フリップフロップ
ＦＦ１２  フリップフロップ
ＦＦ１３  フリップフロップ
ＦＦ３１  フリップフロップ
ＬＣ１  論理回路
ＬＣ２  論理回路
ＬＣ３  論理回路
ＯＲ１  論理和回路
ＯＲ２  論理和回路
ＯＲ３  論理和回路
ＲＧ１１  期待値格納レジスタ
ＲＧ１２  計測値格納レジスタ
ＲＧ３１  差分値格納レジスタ
ＳＬ１１  セレクタ
ＳＬ１２  セレクタ
ＳＬ１３  セレクタ
ＳＬ３１  セレクタ
【図１】
2020047989.tif 000003
【図２】
2020047989.tif 000004
【図３】
2020047989.tif 000005
【図４】
2020047989.tif 000006
【図５】
2020047989.tif 000007
【図６】
2020047989.tif 000008
【図７】
2020047989.tif 000009
【図８】
2020047989.tif 000010
【図９】
2020047989.tif 000011
【図１０】
2020047989.tif 000012
【図１１】
2020047989.tif 000013