(57)【要約】【課題】ユーザシステムに搭載された状態でクロック信号の異常検出機能の故障診断を可能とする。【解決手段】第１クロック信号が正常の場合には第１クロック信号に基づいてシステムクロック信号を生成し、上記第１クロック信号が異常の場合には第２クロック信号に基づいてシステムクロック信号を生成するクロック発生部（１０）を設ける。そして、演算処理を実行可能なＣＰＵ（２）と、上記外部発振器の状態を示す発振状態フラグに基づいて上記ＣＰＵに対する割り込み要求信号を形成可能なフラグ設定レジスタ部（９）とを設ける。上記フラグ設定レジスタ部は、疑似発振停止状態イネーブルビット保持部と、上記疑似発振停止状態イネーブルビットがイネーブル状態にされた場合に、上記割り込み要求信号をアサートする制御論理とを含む。上記割り込み要求信号がアサートされることで疑似的な発振停止状態を形成する。【選択図】図１
2010003199.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック信号を得るための第１回路と、上記第１クロック信号とは別に第２クロック信号を得るための第２回路とを備え、上記第１クロック信号が正常の場合には上記第１クロック信号に基づいてシステムクロック信号を生成し、上記第１クロック信号が異常の場合には上記第２クロック信号に基づいてシステムクロック信号を生成するクロック発生部と、
上記システムクロック信号に同期して演算処理を実行可能なＣＰＵと、
上記外部発振器の状態を示す発振状態フラグに基づいて上記ＣＰＵに対する割り込み要求信号を形成可能なフラグ設定レジスタ部と、を含み、
上記フラグ設定レジスタ部は、疑似発振停止状態の有効性を示す疑似発振停止状態イネーブルビットを保持可能な疑似発振停止状態イネーブルビット保持部と、
上記疑似発振停止状態イネーブルビットがイネーブル状態にされた場合に、上記割り込み要求信号をアサートすることで疑似的な発振停止状態を形成可能な制御論理と、を含むことを特徴とする半導体集積回路装置。
【請求項２】
上記制御論理は、上記発振状態フラグの論理状態にかかわらず、上記割り込み要求信号をアサートするための論理ゲートを含む請求項１記載の半導体集積回路装置。
【請求項３】
上記疑似発振停止状態イネーブルビットは、所定時間間隔で定期的にイネーブル状態にされる請求項２記載の半導体集積回路装置。
【請求項４】
上記疑似発振停止状態イネーブルビットは、上記半導体集積回路装置への電源投入に起因するパワーオンリセット処理が終了した後にイネーブル状態にされる請求項２記載の半導体集積回路装置。
【請求項５】
上記疑似発振停止状態イネーブルビットをイネーブル状態に設定可能な外部端子を含む請求項１記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置、さらには、それにおける誤動作の防止技術に関し、例えばマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
半導体集積回路装置の中でも特に重要なシステムでは、同一命令に関する論理演算を行う演算回路を二重化し、双方の演算回路の出力を比較した結果が一致するときにのみ演算結果を正しい値としてデータ処理を続行し、一致しないときにはデータ処理を停止する故障検出回路が設けられる。そのような二重化システムでは、データ処理が停止した場合に、その原因が演算回路の実際の故障によるものか、或いは、故障検出回路自身の不良によるものかを判別することが困難とされる。そこで、二つの演算回路の出力が不一致であると比較回路に判定させるための疑似信号を、装置電源の立上げ時ごとに比較回路に与える疑似信号出力回路を備え、疑似信号により比較回路及び故障検出回路の診断を行うことによって、故障検出回路自身に発生する故障の検出精度を向上させるための技術が知られている（例えば特許文献１参照）。
【０００３】
【特許文献１】特開２０００−２５９４４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
半導体集積回路装置における外部クロックの供給技術では、例えば、はんだ接続の不良などによってクロック発振器の接続端子がはずれたり、該接続端子が他の信号端子との接触などが生じた場合、該クロック発振器の発振が停止してしまい、半導体集積回路装置の誤動作などを招いてしまう虞れがある。このような誤動作を回避するため、例えば発振信号端子に外部接続された外部発振器が発生する発振信号の信号状態を検出し、該外部発振器の発振信号が正常の際には、外部発振器の発振信号に基づいてシステムクロック信号を生成し、外部発振器の発振信号が異常の際には、内部発振信号に基づいてシステムクロック信号を生成するクロック発生部を設けることが考えられる。
【０００５】
しかしそのような技術について本願発明者が検討したところ、クロック信号の異常検出機能が正常に動作するか否かの判断は、当該半導体集積回路装置の出荷前のベンダーテストにおいては可能とされるが、当該半導体集積回路装置がユーザシステムに搭載された状態で行うことはできない。
【０００６】
また、上記特許文献１に記載されているように、二つの演算回路の出力が不一致であると比較回路に判定させるための疑似信号を装置電源の立上げ時ごとに比較回路に与える技術を採用しても、外部発振器の発振信号が異常の際に内部発振信号に基づいてシステムクロック信号を生成する機能が正常に働くか否かの確認を、当該半導体集積回路装置がユーザシステムに搭載された状態で行うことはできない。
【０００７】
例えば自動車の制御系においては従来より安全への要求が高く、さらなる安全性向上の要求、安全基準の標準化が進んでいる。このような安全性の要求のもとで、自動車メーカ、部品メーカからは、出荷前の不良検出の従来技術に加え、ユーザシステムに搭載された状態でクロック信号の異常検出機能の故障診断の要求がなされている。
【０００８】
本発明の目的は、ユーザシステムに搭載された状態でクロック信号の異常検出機能の故障診断を可能とする半導体集積回路装置を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１１】
すなわち、第１クロック信号が正常の場合には第１クロック信号に基づいてシステムクロック信号を生成し、上記第１クロック信号が異常の場合には第２クロック信号に基づいてシステムクロック信号を生成するクロック発生部を設ける。そして、上記システムクロック信号に同期して演算処理を実行可能なＣＰＵと、上記外部発振器の状態を示す発振状態フラグに基づいて上記ＣＰＵに対する割り込み要求信号を形成可能なフラグ設定レジスタ部とを設ける。上記フラグ設定レジスタ部は、疑似発振停止状態イネーブルビット保持部と、上記疑似発振停止状態イネーブルビットがイネーブル状態にされた場合に、上記割り込み要求信号をアサートする制御論理とを含む。上記割り込み要求信号がアサートされることで疑似的な発振停止状態を形成する。このことが、ユーザシステムに搭載された状態でクロック信号の異常検出機能の故障診断を可能とする。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１３】
すなわち、ユーザシステムに搭載された状態でクロック信号の異常検出機能の故障診断を可能とする半導体集積回路装置を提供することができる。
【発明を実施するための最良の形態】
【００１４】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕本発明の代表的な実施の形態に係る半導体集積回路装置（１）は、第１クロック信号を得るための第１回路（１０Ａ）と、上記第１クロック信号とは別に第２クロック信号を得るための第２回路（２２）とを備え、上記第１クロック信号が正常の場合には上記第１クロック信号に基づいてシステムクロック信号を生成し、上記第１クロック信号が異常の場合には上記第２クロック信号に基づいてシステムクロック信号を生成するクロック発生部（１０）が設けられる。また、上記システムクロック信号に同期して演算処理を実行可能なＣＰＵ（２）と、上記外部発振器の状態を示す発振状態フラグに基づいて上記ＣＰＵに対する割り込み要求信号を形成可能なフラグ設定レジスタ部（９）とが設けられる。このとき、上記フラグ設定レジスタ部は、疑似発振停止状態の有効性を示す疑似発振停止状態イネーブルビットを保持可能な疑似発振停止状態イネーブルビット保持部（９２）と、上記疑似発振停止状態イネーブルビットがイネーブル状態にされた場合に、上記割り込み要求信号をアサートすることで疑似的な発振停止状態を形成可能な制御論理（２００）とを含む。
【００１６】
上記の構成によれば、上記疑似発振停止状態イネーブルビットがイネーブル状態にされた場合に、上記割り込み要求信号がアサートされることで疑似的な発振停止状態が形成され、このことが、ユーザシステムに搭載された状態でクロック信号の異常検出機能の故障診断を可能とする。
【００１７】
〔２〕上記〔１〕において、上記制御論理は、上記発振状態フラグの論理状態にかかわらず、上記割り込み要求信号をアサートするための論理ゲート（９６）を含んで構成することができる。
【００１８】
〔３〕上記〔２〕において、上記疑似発振停止状態イネーブルビットは、所定時間間隔で定期的にイネーブル状態にされるように構成することができる。このようにすることで、上記マイクロコンピュータを含む制御システムの信頼性を向上させることができる。
【００１９】
〔４〕上記〔２〕において、上記疑似発振停止状態イネーブルビットは、上記半導体集積回路装置への電源投入に起因するパワーオンリセット処理が終了した後にイネーブル状態にされるように構成することができる。このようにすることで、上記マイクロコンピュータを含む制御システムの信頼性を向上させることができる。
【００２０】
〔５〕上記〔１〕において、上記疑似発振停止状態イネーブルビットをイネーブル状態に設定可能な外部端子を半導体集積回路装置に設けることができる。
【００２１】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２２】
図１には、本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータ（マイクロプロセッサ、データプロセッサ、あるいはデータ処理装置などと称されることもある）が示される。図１に示されるマイクロコンピュータ１は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００２３】
マイクロコンピュータ１は、例えば、自動車や家庭用電化製品などに用いられるシングルチップマイクロコンピュータである。マイクロコンピュータ１は、図１に示されるように、ＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）２、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）３、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）４、割り込みコントローラ５、ＢＳＣ（Ｂｕｓ Ｓｔａｔｅ Ｃｏｎｔｒｏｌｌｅｒ）６、タイマ７、ＳＣＩ（Ｓｅｒｉａｌ Ｃｏｍｍｕｎｉｃａｔｉｏｎ Ｉｎｔｅｒｆａｃｅ）８、フラグ設定レジスタ（設定レジスタ）９、およびクロック発生器（クロック発生部）１０などのモジュールから構成されている。電源端子Ｖｃｃ，ＧＮＤを有し、電源端子Ｖｃｃには例えば５Ｖの電源が供給される。
【００２４】
また、ＣＰＵ２、ＲＡＭ３、ＲＯＭ４、割り込みコントローラ５、ＢＳＣ６、タイマ７、ＳＣＩ８、ならびにフラグ設定レジスタ部９は、データバスＤＢ、およびアドレスバスＡＢを介して相互に接続されている。図示はしないが、ＣＰＵ２からの制御信号を伝達するための制御信号線が相互に接続されている。
【００２５】
ＣＰＵ２は、ＲＯＭ４に格納された制御プログラムに基づいて所定の処理を行う。ＲＡＭ３は、随時読み出し／書き込みが可能な揮発性メモリであり、入出力データや演算データなどのＣＰＵ２などで利用されるデータを一時的に格納する。
【００２６】
ＲＯＭ４は、不揮発性メモリであり、制御プログラムなどが格納されている。割り込みコントローラ５は、ＣＰＵ２や、その他の周辺回路（ＢＳＣ６、タイマ７、ＳＣＩ８など）からの割り込み処理の制御を行う。
【００２７】
ＢＳＣ６は、上記したアドレスバスＡＢやデータバスＤＢなどにおける信号の転送を制御するとともに、各々のバスの状態を制御する。タイマ７は、例えば、８ビットのカウンタをベースとしたタイマである。ＳＣＩ８は、外部から入出力されるシリアルデータの通信制御を行う。フラグ設定レジスタ部９は、クロック発生器１０からの発振状態検出フラグなどを格納する。
【００２８】
クロック発生器１０は、特に制限されないが、外部接続されたクロック発振器で生成されたクロック信号に基づいて、システムクロック信号を生成する。このクロック発生器１０は、発振器１０Ａ、ＰＬＬ（位相同期ループ回路：Ｐｈａｓｅ Ｌｏｃｋｅｄ Ｌｏｏｐ）１０Ｂ、およびＣＰＧ（クロック発生回路：Ｃｌｏｃｋ Ｐｕｌｓｅ Ｇｅｎｅｒａｔｏｒ）１０Ｃから構成されている。
【００２９】
発振器１０Ａは、外部接続されたクロック発振器で発振させて、所定周波数のクロック信号ｆｉｎを出力する。ＰＬＬ１０Ｂは、発振器１０Ａから出力されたクロック信号ｆｉｎを逓倍して出力する。このＰＬＬ１０Ｂには、インバータなどによって外部から入力されるリセット信号ＲＥＳＮが反転されたリセット反転信号ＲＥＳ、およびフラグ設定レジスタ部９に設定されているクロックソース切り替えイネーブル信号ＳＳＥがそれぞれ入力されるように接続されている。
【００３０】
また、ＰＬＬ１０Ｂからは、発振状態フラグＳＦがフラグ設定レジスタ部９に出力される。この発振状態フラグＳＦは、例えば、論理値“０”であれば、クロック信号ｆｉｎが正常であることを示し、論理値“１”であれば、クロック信号ｆｉｎが異常（例えば、発振停止など）であることを示す。ＣＰＧ１０Ｃは、ＰＬＬ１０Ｂによって逓倍されたクロック信号から各種システムクロック信号を生成し、各モジュールに適したシステムクロック信号をそれぞれ供給する。
【００３１】
マイクロコンピュータ１に外部接続されるクロック発振器として、例えば、水晶振動子、および水晶発振器などがある。水晶振動子が発振器１０Ａに接続される場合には、マイクロコンピュータ１に設けられたＥＸＴＡＬ端子とＸＴＡＬ端子とからなる２つのクロック端子（発振信号端子）に接続される。また、水晶振動子と発振回路とからなる水晶発振器が発振器１０Ａに接続される場合には、半導体集積回路装置に設けられたＥＸＴＡＬ端子（クロック端子、発振信号端子）に接続され、他方のＸＴＡＬ端子はオープン（ＮＣ：Ｎｏｎ Ｃｏｎｎｅｃｔ）となる。
【００３２】
図７には、上記ＰＬＬ１０Ｂの構成例が示される。
【００３３】
図７に示されるように、上記ＰＬＬ１０Ｂは、発振検出修繕回路１１、位相比較器１２、チャージポンプ１３、電圧制御発振器１４、分周器１５，１６、およびフィードバックディレイ回路１７を含んで成る。
【００３４】
発振器１０Ａから出力されたクロック信号ｆｉｎは、発振検出修繕回路１１に入力される。発振検出修繕回路１１は、クロック信号ｆｉｎの正常／異常を検出し、該クロック信号ｆｉｎの信号状態に応じた制御を行う。
【００３５】
発振検出修繕回路１１の出力部には、位相比較器１２に一方の入力部が接続されており、該入力部には、発振検出修繕回路１１から出力されたクロック信号ＣＤＲｏｕｔが入力される。この位相比較器１２の他方の入力部には、分周回路１６によって分周された帰還クロックｆｂｃｌｋ２が入力されるように接続されている。位相比較器１２は、クロック信号ＣＤＲｏｕｔと分周された帰還クロックｆｂｃｌｋ２との位相差を時間差として検出し、その時間差と同じ程度のパルスを出力する。
【００３６】
位相比較器１２の出力部には、チャージポンプ１３が接続されている。このチャージポンプ１３は、位相比較器１２のパルスに応じた電流を生成する。チャージポンプ１３の次段には、電圧制御発振器１４が接続されている。
【００３７】
電圧制御発振器１４は、チャージポンプ１３によって生成された電流を電圧に変換し、その電圧に基づいて発振周波数を変化させたクロック信号（例えば、クロック信号ｆｉｎの１６倍）を出力する。
【００３８】
電圧制御発振器１４には、分周器１５が接続されている。分周器１５は、電圧制御発振器１４が生成したクロック信号を、例えば、１／２分周して出力する。よって、分周器１５から出力されたクロック信号は、例えば、クロック信号ｆｉｎの８倍の周波数となる。このクロック信号は、ＰＬＬ１０Ｂの生成したクロック信号ｆｏｕｔとなってＣＰＧ１０Ｃ（図１）に入力される。
ＰＬＬ１０Ｂの出力部、すなわち分周器１５の出力部には、フィードバックディレイ回路１７の入力部が接続されている。フィードバックディレイ回路１７は、例えば、複数のインバータを直列接続した構成からなるディレイ回路である。
【００３９】
フィードバックディレイ回路１７は、分周器１５から出力されたクロック信号をある時間だけ遅延（例えば、マイクロコンピュータ１におけるシステムクロック信号と同じ程度の遅延）させて位相を調整して帰還クロックｆｂ＿ｃｌｋ１として分周器１６に出力する。分周器１６は、分周器１５から出力されたクロック信号を１／８分周して位相比較器１２に出力する。
【００４０】
図８には、上記発振検出修繕回路１１の構成例が示される。
【００４１】
発振検出修繕回路１１は、特に制限されないが、発振状態検出部１８、発振状態検出ラッチ部１９、選択信号生成部２０、クロックソース選択部２１、およびリングオシレータ部２２を含んで成る。
【００４２】
発振状態検出部１８は、クロック信号ｆｉｎを取り込んで検出信号ＫＳを出力する。検出信号ＫＳは、クロック信号ｆｉｎのＬｏ（ロー）信号期間、およびＨｉ（ハイ）信号期間がいずれも正常の場合にはＬｏ信号となり、クロック信号ｆｉｎのＬｏ信号期間、またはＨｉ信号期間が少なくとも一方が異常の場合には、Ｈｉ信号となる。この構成により、クロック信号ｆｉｎが発振停止状態となっている場合だけでなく、発振が不安定（例えば、必要な周波数で発振していない場合、Ｈｉレベル／Ｌｏレベルが規定のレベルにならない場合、Ｈｉ幅／Ｌｏ幅が不安定な場合など）になっている場合においても異常を検出することが可能となる。
【００４３】
上記発振状態検出ラッチ部１９は、リセット端子にＨｉ信号のリセット反転信号ＲＥＳが入力された際に、発振状態検出部１８から出力された検出信号ＫＳをラッチし、ラッチ信号ＲＴＣとして出力する。つまりリセット解除タイミングに応答し、そのときの発振状態がどのような状態（正常状態、異常状態）であるかをラッチしている。リセット反転信号ＲＥＳは、マイクロコンピュータ１に入力されるリセット信号ＲＥＳＮの反転信号である。
【００４４】
発振状態検出ラッチ部１９のデータ出力端子には、選択信号生成部２０の入力部が接続されている。
【００４５】
選択信号生成部２０は、フラグ設定レジスタ部９にも接続されており、選択信号ＳＬは、発振状態フラグＳＦとして該フラグ設定レジスタ部９に格納される。
【００４６】
上記リングオシレータ２０は、偶数個のインバータがリング状に結合されて成り、発振動作により、クロック信号ＣＫｒを生成する。このリングオシレータ２２の出力部は、クロックソース選択部２１の入力部に接続されている。
【００４７】
クロックソース選択部２１は、選択信号生成部２０から出力される選択信号ＳＬに基づいて、リングオシレータ２２から出力されるクロック信号ＣＫｒと、クロック発振器が生成したクロック信号ｆｉｎとを選択的に出力する。この出力は、クロック信号ＣＤＲｏｕｔとなる。
【００４８】
選択信号生成部２０には、フラグ設定レジスタ部９に設定されたクロックソース切り替えイネーブル信号ＳＳＥが入力されるように接続されている。このクロックソース切り替えイネーブル信号ＳＳＥは、論理値“１”が有効とされ、論理値“０”が無効とされる。クロックソース切り替えイネーブル信号ＳＳＥが有効の場合、発振状態検出ラッチ部１９から出力されるラッチ信号ＲＴＣに応じて選択信号ＳＬが生成される。また、クロックソース切り替えイネーブル信号ＳＳＥが無効の際には、ラッチ信号ＲＴＣの状態にかかわらず、選択信号ＳＬがＬｏ信号となり、クロックソース選択部２１がクロック信号ｆｉｎを出力する。
【００４９】
図２には、上記フラグ設定レジスタ部９の構成例が示される。
【００５０】
上記フラグ設定レジスタ部９は、図２に示されるように、外部発振停止検出イネーブル（ＩＮＯＳＣＥ）ビットを保持するＩＮＯＳＣＥ保持部９１、疑似発振停止状態イネーブルビットを保持する疑似発振停止状態イネーブルビット保持部９２、外部発振停止検出割り込みイネーブル（ＯＳＣＩＥ）ビットを保持するＯＳＣＩＥ保持部９３、外部発振の状態フラグ（ＯＳＣＥＲＲ）を保持するＯＳＣＥＲＲ保持部９４、アンドゲート９７、及び制御論理２００を含んで成る。外部発振の状態フラグ（ＯＳＣＥＲＲ）は、制御論理２００の出力によって設定される。ＩＮＯＳＣＥ保持部９１の外部発振停止検出イネーブル（ＩＮＯＳＣＥ）ビットは、ＣＰＵ２によって設定可能とされる。このビットは、クロックソース切り替えイネーブル信号ＳＳＥとして、発振検出修繕回路１１内の選択信号生成部２０に伝達される（図８参照）。クロック切り替えイネーブル信号ＳＳＥ、疑似発振停止状態イネーブルビット保持部９２の疑似発振停止状態イネーブルビット、ＯＳＣＩＥ保持部９３の外部発振停止検出割り込みイネーブル（ＯＳＣＩＥ）ビットは、ＣＰＵ２によって設定することができる。ＩＮＯＳＣＥ保持部９１の外部発振停止検出イネーブル（ＩＮＯＳＣＥ）ビットは、として発振検出修繕回路１１における選択信号生成部２０に伝達される。上記アンドゲート９７は、外部発振停止検出割り込みイネーブル（ＯＳＣＩＥ）ビットと、外部発振の状態フラグ（ＯＳＣＥＲＲ）とのアンド論理を得る。この上記アンドゲート９７の出力は、割り込み要求信号として図１における割り込みコントローラ５に伝達される。上記制御論理２００は、上記疑似発振停止状態イネーブルビットがイネーブル状態（例えば論理値“１”）にされた場合に、発振器１０Ａからのクロック信号ｆｉｎの状態にかかわらず、外部発振の状態フラグ（ＯＳＣＥＲＲ）を論理値“１”に設定して上記割り込み要求信号をイネーブル状態にすることで疑似的な発振停止状態を形成することができる。割り込みコントローラ５は、入力された割り込み要求信号に基づいて、ＣＰＵ２に対する割り込み制御を行う。上記制御論理２００は、疑似発振停止状態イネーブルビットと、クロックソース切り替えイネーブル信号ＳＳＥとのアンド論理を得るアンドゲート９５と、このアンドゲート９５の出力と発振状態フラグＳＦとのオア論理を得るオアゲート９６とを含んで成る。
【００５１】
次に、図３及び図４のフローチャート、図５及び図６のタイミング図を用いて、上記構成の動作を説明する。
【００５２】
先ず、外部接続されたクロック発振器が正常に動作している場合において、マイクロコンピュータ１に対する電源投入時からパワーオンリセット処理の終了までの動作について説明する。
【００５３】
電源投入後、電源電圧ＶＣＣのレベルが上昇する。それに伴って、クロック発振器が発振を開始する。また、発振状態検出ラッチ部１９には、リセット期間であるのでＨｉ信号のリセット反転信号ＲＥＳが入力されており、Ｈｉ信号の検出信号ＫＳをラッチせずにラッチ信号ＲＴＣ（Ｌｏ信号）として出力している。よって、選択信号生成部２０は、Ｈｉ信号の選択信号ＳＬをクロックソース選択部２１に対して出力する。クロックソース選択部２１は、選択信号ＳＬを受けて、リングオシレータ２２が生成するクロック信号ＣＫｒを選択し、クロック信号ＣＤＲｏｕｔとして出力する。クロック発振器の発振が安定して正常なクロック信号ｆｉｎがＥＸＴＡＬ端子に入力されると、発振状態検出部１８は、クロック信号ｆｉｎが正常になったことを検出し、発振状態検出ラッチ部１９にＬｏ信号の検出信号ＫＳを出力する。この検出信号ＫＳは、発振状態検出ラッチ部１９を介してラッチ信号ＲＴＣとして選択信号生成部２０に出力される。これにより、選択信号生成部２０から出力される選択信号ＳＬが、Ｈｉ信号からＬｏ信号に遷移する。クロックソース選択部２１は、Ｌｏ信号の選択信号ＳＬを受けて、クロックソースをクロック信号ＣＫｒからクロック信号ｆｉｎに切り替え、クロック信号ＣＤＲｏｕｔとして出力する。また、リセット期間中はラッチ信号ＲＴＣをもとにクロック信号ｆｉｎが異常となればクロック信号ＣＫｒを選択し、クロック信号ｆｉｎが正常となればクロック信号ｆｉｎを選択し、クロック信号は固定的に選択されず、クロック信号に応じて適宜切り替えられるように制御される。続いて、マイクロコンピュータ１に入力されるリセット信号ＲＥＳＮがＬｏ信号からＨｉ信号に遷移してリセット解除になると、発振状態検出ラッチ部１９は、入力されている検出信号ＫＳ（Ｌｏ信号）をラッチし、そのラッチ信号から生成された選択信号ＳＬを発振状態フラグＳＦとしてフラグ設定レジスタ９に格納する。つまり、リセット解除後、ＥＸＴＡＬが選択された状態がＰＬＬクロックソースとして発振状態検出ラッチ部１９にラッチされる。続いて、ＣＰＵ２は、フラグ設定レジスタ９に格納された発振状態フラグＳＦをリードする。そして、発振状態フラグＳＦが論理値“０”の場合、すなわち、クロック信号ｆｉｎが正常発振の場合には、ＣＰＵ２がプログラムに基づいて、各レジスタ（たとえば、汎用レジスタなど）の初期化、および各種設定（たとえば、ポートの入出力設定やＲＡＭ３の初期化など）を行う。以上により、初期化動作が終了となり、半導体集積回路装置１は、通常のプログラムによる動作を行う。
【００５４】
次に、電源投入時から、外部接続されたクロック発振器が停止している場合の処理について説明する。
【００５５】
クロック発振器の発振信号ｆｉｎが停止（たとえば、論理値“０”または論理値“１”固定状態）している場合には、検出信号ＫＳがＨｉ信号から遷移せず、ラッチ信号ＲＴＣがＨｉ信号出力のままとなる。よって、選択信号生成部２０から出力される選択信号ＳＬもＨｉ信号のままとなり、クロックソース選択部２１は、クロックソースを切り替えずにクロック信号ＣＫｒをクロック信号ＣＤＲｏｕｔとして出力する。これにより、クロック発生器１０は、半導体集積回路装置１が動作するのに必要な最低限の周波数のシステムクロックを生成することが可能となる。続いて、リセット信号ＲＥＳＮがＬｏ信号からＨｉ信号に遷移してリセット解除になると、発振状態検出ラッチ部１９は、入力されている検出信号ＫＳ（Ｈｉ信号）をラッチし、そのラッチ信号から生成された選択信号ＳＬを発振状態フラグＳＦとしてフラグ設定レジスタ９に出力する。つまり、リセット解除後、リングオシレータが選択された状態がＰＬＬクロックソースとして発振状態検出ラッチ部１９にラッチされる。その後、ＣＰＵ２は、ＯＳＣＥＲＲ保持部９４に設定されている外部発振の状態フラグ（ＯＳＣＥＲＲ）をリードする。ここでは、発振状態フラグＳＦが論理値“１”により、外部発振の状態フラグ（ＯＳＣＥＲＲ）が論理値“１”に設定されている（クロック信号ｆｉｎが異常発振となっている）ので、ＣＰＵ２は、プログラムに基づいて、マイクロコンピュータ１における各モジュールの動作を停止（たとえば、タイマ７のカウント停止、ＳＣＩ８の送受信停止など）させた後、該ＣＰＵ２を停止させて、マイクロコンピュータ１を異常終了させる。これによって、マイクロコンピュータ１を搭載した電子システムなどに該マイクロコンピュータ１が異常であることを通知することができる。マイクロコンピュータ１内で生成されるクロック信号は外部から供給されるクロック信号ｆｉｎに比べ周波数が遅いため、タイマ７のように一定時間を正確に計る必要のある回路、または、外部通信を行うために、一定の周波数が必要となるようなＳＣＩ８などの回路においては規定の周波数に基づいてカウントまたは通信されないため、上記のように異常終了させることが必要となる。なお、この状態は、マイクロコンピュータ１にリセット信号ＲＥＳが入力されるまで維持されることになる。
【００５６】
次に、マイクロコンピュータ１の動作中（リセット信号ＲＥＳＮ論理値“１”入力状態）にクロック発振器が発振異常となった場合の処理について説明する。
【００５７】
まず、クロック発振器が正常に発振している場合、ＣＰＵ２は、割り込みコントローラ５による割り込みフラグが発生したか否かを判断する。これにより、プログラムによりＣＰＵ２が任意の間隔毎に発振状態フラグＳＦが発生したか否かをモニタすることを不要にすることができ、該ＣＰＵ２の負荷を低減することができる。ここで、クロック発振器の異常動作によって、図５に示されるように、発振器１０Ａからのクロック信号ｆｉｎが存在しなくなると（０スタック）、発振状態検出部１８が該クロック発振器の異常を検出し、Ｈｉ信号のラッチ信号ＲＴＣがクロックソース選択部２１に出力される。そして選択信号生成部２０の出力（選択信号ＳＬ）によって、リングオシレータ２２によるクロック信号ＣＫｒがクロックソース選択部２１を介して位相比較器１２に供給される。また、発振状態フラグＳＦが論理値“１”となり、該発振状態フラグＳＦが、割り込み要求信号として割り込みコントローラ５に出力される。割り込みコントローラ５は、この割り込み要求信号を受けてＣＰＵ２に対して割り込みフラグを発生する。この割り込みフラグを受けて、ＣＰＵ２は所定の割り込み処理を実行し、マイクロコンピュータ１を異常終了させる。その後、何らかの理由によってクロック発振器が正常に発振しクロック信号ｆｉｎが正常状態になったとしても、発振状態検出ラッチ部１９のラッチ信号ＲＴＣは、遷移せずにＨｉ信号出力となるので、マイクロコンピュータ１に対してリセット信号ＲＥＳＮが入力されるまで該クロック発振器の発振信号ｆｉｎは選択されないことになる。
【００５８】
次に、上記のようなクロック信号異常検出機能が正常に働くか否かの診断について説明する。この診断は、マイクロコンピュータ１への電源投入に起因するパワーオンリセット処理が終了した直後に、ＣＰＵ２によりクロックソース切り替えイネーブル信号ＳＳＥが論理値“１”に設定され、疑似発振停止状態イネーブルビットが論理値"１"に設定される（Ｓ３１）ことで実行される。すなわち、図３に示されるように、疑似発振停止状態イネーブルビットが論理値“１”に設定されると（Ｓ３１）、そのときの発振状態フラグＳＦの状態にかかわらず、外部発振の状態フラグ（ＯＳＣＥＲＲ）が論理値“１”に設定される（Ｓ３２）。そして、ＯＳＣＩＥ保持部９３の外部発振停止検出割り込みイネーブル（ＯＳＣＩＥ）ビットが論理値“１”に設定されることで外部発振停止検出割り込みがイネーブル状態とされるとき、割り込み要求信号が発生され、ＣＰＵ２において、発振停止検出故障診断における所定の割り込み処理が行われる（Ｓ３４）。この割り込み処理は、図４に示されるように、疑似発振停止状態イネーブルビットが、論理値“１”に設定されているか否かによって処理の内容が異なる。疑似発振停止状態イネーブルビットが、論理値“１”に設定されていない場合には、ステップＳ３４１の判別で「Ｎ」と判断され、その場合には、図５において５０１で示されるように、リングオシレータ２２によるクロック信号ＣＫｒがクロックソース選択部２１を介して位相比較器１２に供給される。しかし、図６に示されるように、疑似発振停止状態イネーブルビットが、論理値“１”に設定されている場合には、図６において６０１で示されるように、ＥＸＴＡＬ選択からリングオシレータ選択への切り替えは行われない。この場合、ステップＳ３４１の判別で「Ｙ」と判断され、その場合には、先ずＣＰＵ２により、外部発振停止検出イネーブル（ＩＮＯＳＣＥ）ビット、外部発振の状態フラグ（ＯＳＣＥＲＲ）、及び疑似発振停止状態イネーブルビットがそれぞれ初期状態（論理値“０”）に戻され（Ｓ３４２，Ｓ３４３，Ｓ３４４）、各種ユーザ処理が行われる（Ｓ３４５）。この各種ユーザ処理では、上記マイクロコンピュータ１の動作中（リセット信号ＲＥＳＮ論理値“１”入力状態）にクロック発振器が発振異常となった場合の処理と同様の処理、例えばＣＰＵ２は、プログラムに基づいて、マイクロコンピュータ１における各モジュールの動作を停止させた後、該ＣＰＵ２を停止させて、マイクロコンピュータ１を異常終了させることもできる。しかし、ＣＰＵ２によって疑似発信停止状態イネーブルビットが設定された場合の割り込み要求に対しては、実際にクロック発振器が発振異常となった場合の処理と同様の処理に比べて簡素化された割り込み処理とし、割り込み要求が発生されることで、クロック信号の異常検出機能は正常に動作すると判断しても良い。クロック信号の異常検出機能は正常に動作すると判断された場合には、異常検出機能の故障診断が終了され、通常の制御動作に遷移される。
【００５９】
上記の例によれば、以下の作用効果を得ることができる。
【００６０】
（１）マイクロコンピュータ１への電源投入に起因するパワーオンリセット処理が終了した直後に、疑似発振停止状態イネーブルビットが論理値“１”に設定されると（Ｓ３１）、そのときの発振状態フラグＳＦの状態にかかわらず、外部発振の状態フラグ（ＯＳＣＥＲＲ）が論理値“１”に設定される（Ｓ３２）。そして、ＯＳＣＩＥ保持部９３の外部発振停止検出割り込みイネーブル（ＯＳＣＩＥ）ビットが論理値“１”に設定されている状態で割り込み要求信号がアサートされ（Ｓ３４）、ＣＰＵ２において、発振停止検出故障診断における所定の割り込み処理が行われる（Ｓ３４）。このように、実際にはクロック信号ｆｉｎが正常であるにもかかわらず、外部発振の状態フラグ（ＯＳＣＥＲＲ）が論理値“１”に設定されて割り込み要求が発生されることから、クロック信号の異常検出機能が正常に動作するか否かの診断を行うことができる。
【００６１】
（２）上記（１）の作用効果により、マイクロコンピュータ１を含む制御システムの信頼性の向上を図ることができる。
【００６２】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６３】
例えば、ＣＰＵによって所定時間（例えば１時間）間隔で疑似発振停止状態イネーブルビットを論理値“１”に設定することにより、クロック信号の異常検出機能が正常に動作するか否かの診断を所定時間間隔で定期的に行うことができ、それによってシステムの信頼性をさらに向上させることができる。
【００６４】
また、疑似発振停止状態イネーブルビットを、マイクロコンピュータ１における適宜の外部端子を介して当該マイクロコンピュータ１の外部から与えるようにしても良い。
【００６５】
さらに、上記の例では、疑似発振停止状態イネーブルビットが論理値“１”に設定されると、そのときの発振状態フラグＳＦの状態にかかわらず、外部発振の状態フラグ（ＯＳＣＥＲＲ）が論理値“１”に設定され、それによって、割り込み要求信号がアサートされる構成としたが、疑似発振停止状態イネーブルビットが論理値“１”に設定されることで、発振状態フラグＳＦが論理値“１”になるように構成しても良い。例えば、図１において発振器１０ＡとＰＬＬ１０Ｂとの間にオアゲートなどの論理回路を介在し、発振器１０Ａの出力（ｆｉｎ）と疑似発振停止状態イネーブルビットとのオア論理をとり、それを後段のＰＬＬ１０Ｂへ供給するようにする。かかる構成によれば、疑似発振停止状態イネーブルビットが論理値“１”に設定されることで疑似発振停止状態イネーブルビットが論理値“１”に設定されることで、発振器１０ＡからＰＬＬ１０Ｂへのクロック信号ｆｉｎの供給が強制的に遮断されるため、発振状態検出部１８により検出信号ＫＳがＬｏ信号となり、実際にクロック発振器１０が発振異常となった場合と等価な状態を作り出すことができ、図５において５０１で示されるようにリングオシレータ２２が選択され、発振状態フラグＳＦが論理値“１”に設定される。かかる構成においては、発振検出修繕回路１１の故障診断をも併せて行うことができる。
【００６６】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路装置に適用することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明にかかる半導体集積回路装置の一例であるマイクロコンピュータの構成例ブロック図である。
【図２】上記マイクロコンピュータにおけるフラグ設定レジスタ部の構成例回路図である。
【図３】上記マイクロコンピュータにおける主要動作のフローチャートである。
【図４】上記マイクロコンピュータにおける主要動作のフローチャートである。
【図５】上記マイクロコンピュータにおける主要動作のタイミング図である。
【図６】上記マイクロコンピュータにおける主要動作のタイミング図である。
【図７】上記マイクロコンピュータにおけるＰＬＬの構成例ブロック図である。
【図８】上記マイクロコンピュータにおける発信検出修繕回路の構成例ブロック図である。
【符号の説明】
【００６８】
１  マイクロコンピュータ
２  ＣＰＵ
３  ＲＡＭ
４  ＲＯＭ
５  割り込みコントローラ
６  ＢＳＣ
７  タイマ
８  ＳＣＩ
９  フラグ設定レジスタ部
１０  クロック発生器
１０Ａ  発振器
１０Ｂ  ＰＬＬ
１０Ｃ  ＣＰＧ
１８  発振状態検出部
１９  発振状態検出ラッチ部
２０  選択信号生成部
２１  クロックソース選択部
２２  リングオシレータ
９１  ＩＮＯＳＣＥ保持部
９２  疑似発振停止状態イネーブルビット保持部
９３  ＯＳＣＩＥ保持部
９４  ＯＳＣＥＲＲ保持部
９５，９７  アンドゲート
９６  オアゲート
２００  制御論理
【図１】
2010003199.tif 000003
【図２】
2010003199.tif 000004
【図３】
2010003199.tif 000005
【図４】
2010003199.tif 000006
【図５】
2010003199.tif 000007
【図６】
2010003199.tif 000008
【図７】
2010003199.tif 000009
【図８】
2010003199.tif 000010