(57)【特許請求の範囲】
【請求項１】
発振信号端子に外部接続された外部発振器が発生する発振信号の信号状態を検出し、前記外部発振器の発振信号が正常の際には、前記外部発振器の発振信号に基づいて複数のシステムクロック信号を生成し、前記外部発振器の発振信号が異常の際には、内部発振信号に基づいてシステムクロック信号を生成するクロック発生部と、
前記システムクロック信号に応じて動作する中央処理装置とを備え、
前記中央処理装置は、前記内部発振信号に基づいたシステムクロック信号に応じて動作するとき、所定の処理を実行し、
前記クロック発生部は、
前記外部発振器を発振させる発振器と、
前記発振器を介して入力される前記外部発振器の発振信号の状態を検出し、その検出結果から、前記外部発振器が発生した発振信号、または内部発振信号のいずれか一方を選択して出力する発振修繕検出回路と、
前記発振修繕検出回路から出力された発振信号を逓倍して出力する位相同期ループ回路と、
前記位相同期ループ回路から出力された信号に基づいて、システムクロック信号を生成するクロック発生回路とを備え、
前記発振修繕検出回路は、
前記外部発振器の発振信号の状態を検出する検出回路と、
前記内部発振信号を生成する内部発振回路と、
リセット信号に応答し、前記検出回路の検出結果を取り込み、前記内部発振回路が発生した内部発振信号、または前記外部発振器が発生した発振信号のいずれか一方を選択する選択回路とを備え、
前記選択回路は、
リセット解除に応答して、前記検出回路の検出結果をラッチする検出結果ラッチ回路と、
前記検出結果ラッチ回路から出力されたラッチデータに基づいて、前記内部発振回路の内部発振信号、または前記外部発振器の発振信号のいずれか一方を選択するクロックソース選択回路とよりなることを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記中央処理装置は、前記クロックソース選択回路が、前記内部発振回路の内部発振信号を選択した際に、前記内部発振信号から生成されたシステムクロック信号により動作することを特徴とする半導体集積回路装置。
【請求項３】
請求項１または２記載の半導体集積回路装置において、
前記内部発振回路は、半導体集積回路装置内で発振信号を生成可能なリングオシレータよりなることを特徴とする半導体集積回路装置。
【請求項４】
請求項１〜３のいずれか１項に記載の半導体集積回路装置において、
前記選択回路が選択した選択結果が設定される設定レジスタを備え、
前記設定レジスタは、前記中央処理装置によって検出可能であり、
前記中央処理装置は、前記設定レジスタに設定された選択結果が、前記内部発振回路が発生した内部発振信号を選択している場合に異常終了処理を行うことを特徴とする半導体集積回路装置。
【請求項５】
請求項１〜４のいずれか１項に記載の半導体集積回路装置において、
前記発振信号端子に外部接続される前記外部発振器は、水晶振動子、または前記水晶振動子と発振回路とからなる水晶発振モジュールのいずれかであることを特徴とする半導体集積回路装置。
【請求項６】
請求項１〜５のいずれか１項に記載の半導体集積回路装置において、
前記ラッチデータに基づいて前記内部発振信号が選択されたとき、割り込み信号が出力されることを特徴とする半導体集積回路装置。
【請求項７】
請求項６に記載の半導体集積回路装置において、
前記中央処理装置は、前記割り込み信号の入力に応じて、所定の異常処理を実行することを特徴とする半導体集積回路装置。
【請求項８】
請求項１〜７のいずれか１項に記載の半導体集積回路装置において、
前記検出結果ラッチ回路が前記外部発振器の発振信号の状態が異常で有ることを保持したデータは、さらにリセット信号が入力されるまで保持されることを特徴とする半導体集積回路装置。
【請求項９】
発振信号端子に外部接続された外部発振器を発振させる発振器と、
前記発振器を介して入力される前記外部発振器の発振信号の状態を検出し、その検出結果から、前記外部発振器が発生した発振信号を出力するか否かを判断して出力する発振修繕検出回路と、
前記発振修繕検出回路から出力された発振信号を逓倍して出力する位相同期ループ回路と、
前記位相同期ループ回路から出力された信号に基づいて、システムクロック信号を生成するクロック発生回路とよりなるクロック発生部と、
前記生成されたシステムクロック信号に応じて動作する中央処理装置とを備え、
前記位相同期ループ回路は、
前記発振修繕検出回路から前記外部発振器の発振信号が出力されない場合に、前記位相同期ループ回路に備えられたリングオシレータが生成する発振信号を出力し、  前記中央処理装置は、前記外部発振器の発振信号が出力されないことが検出されたとき、割り込み信号を受け、
半導体集積回路装置のリセット解除タイミングに応答して、そのときの前記外部発振器の発振が異常状態であるかまたは正常状態であるかを保持する保持部と、前記発振状態が正常状態の場合、前記外部発振器の発振信号に応じて動作する中央処理装置とを有することを特徴とする半導体集積回路装置。
【請求項１０】
発振信号端子に外部接続された外部発振器を発振させる発振器と、
前記発振器を介して入力される前記外部発振器の発振信号の状態が正常であるか異常であるかを検出し、その検出結果に基づいて、前記外部発振器が発生した発振信号を出力するか否かを判断して出力する発振修繕検出回路と、
前記発振修繕検出回路から出力された発振信号を逓倍して出力する位相同期ループ回路と、
前記位相同期ループ回路から出力された信号に基づいて、システムクロック信号を生成するクロック発生回路とよりなるクロック発生部と、
前記生成されたシステムクロック信号に応じて動作する中央処理装置とを備え、
前記発振修繕検出回路は、前記位相同期ループ回路へ前記外部発振器の発振信号が異常の場合に、内蔵発振回路が生成する発振信号を出力し、
前記発振修繕検出回路は、前記外部発振器の発振が正常状態であるか、または異常状態であるかを保持するレジスタを有し、
前記位相同期ループ回路は、上記レジスタに保持される情報に応じて、上記外部発振器の発振信号もしくは、内蔵発振回路の発振信号を入力され、
前記レジスタは、前記外部発振器の発振が異常状態であることを検出したときに所定の情報が設定され、その情報に基づいて割り込み信号が出力されることを特徴とする半導体集積回路装置。
【請求項１１】
請求項９に記載の半導体集積回路装置において、
前記保持部が異常状態を保持したあと、リセット信号が入力されるまで前記発振修繕検出回路は、前記リングオシレータが生成する発振信号を出力することを特徴とする半導体集積回路装置。
【請求項１２】
請求項９〜１１のいずれか１項に記載の半導体集積回路装置において、
前記中央処理装置は、前記割り込み信号を受けた後、所定の異常処理を実行することを特徴とする半導体集積回路装置。
【請求項１３】
請求項１０記載の半導体集積回路装置において、
前記発振修繕検出回路は、前記レジスタに発振信号が正常であることが保持されているとき、前記外部発振器の発振信号を出力することを特徴とする半導体集積回路装置。
【請求項１４】
請求項１０または請求項１３に記載の半導体集積回路装置において、
前記レジスタは、前記所定の情報が設定された後、リセット信号が入力されるまで維持されることを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】  本発明は、半導体集積回路装置における誤動作の防止技術に適用して有効な技術に関するものである。
【背景技術】  半導体集積回路装置においては、内部システムクロックを生成する基の外部クロックを供給する基準発振源として水晶振動子や、該水晶振動子と発振回路とからなる水晶発振器などのクロック発振器が広く用いられている。
水晶振動子は、半導体集積回路装置に設けられた２つのクロック端子（ＥＸＴＡＬ端子、ＸＴＡＬ端子）に外部接続される。また、水晶発振器は、半導体集積回路装置に設けられた一方のクロック端子（ＥＸＴＡＬ端子）に外部接続される。
これらクロック発振器によって供給される外部クロックは、半導体集積回路装置に設けられたクロック発生器によってシステムクロックが生成され、各々の内部論理回路に供給される。
ところが、上記のような半導体集積回路装置における外部クロックの供給技術では、次のような問題点があることが本発明者により見い出された。
たとえば、はんだ接続の不良などによってクロック発振器の接続端子がはずれたり、該接続端子が他の信号端子との接触などが生じた場合、該クロック発振器の発振が停止してしまい、半導体集積回路装置の誤動作などを招いてしまう恐れがある。
本発明の目的は、外部接続されたクロック発振器に停止などの異常が発生しても誤動作などを確実に防止することのできる半導体集積回路装置を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【発明の開示】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の半導体集積回路装置は、発振信号端子に外部接続された外部発振器が発生する発振信号の信号状態を検出し、該外部発振器の発振信号が正常の際には、外部発振器の発振信号に基づいてクロック信号を生成し、外部発振器の発振信号が異常の際には、内部発振信号に基づいてシステムクロック信号を生成するクロック発生部を備えたものである。
また、本願のその他の発明の概要を簡単に示す。
本発明の半導体集積回路装置は、発振信号端子に外部接続された外部発振器を発振させる発振器と、該発振器を介して入力される外部発振器の発振信号の状態を検出し、その検出結果から、外部発振器が発生した発振信号を出力するか否かを判断して出力する発振修繕検出回路と、該発振修繕検出回路から出力された発振信号を逓倍して出力する位相同期ループ回路と、該位相同期ループ回路から出力された信号に基づいて、システムクロック信号を生成するクロック発生回路とよりなるクロック発生部を備え、該位相同期ループ回路は、発振修繕検出回路から外部発振器の発振信号が出力されない場合に、位相同期ループ回路に備えられたリングオシレータが生成する発振信号を出力するものである。
【図面の簡単な説明】  図１は、本発明の実施の形態１による半導体集積回路装置のブロック図、図２は、図１の半導体集積回路装置に設けられた発振器と外部接続されるクロック発振器との接続構成を示した説明図、図３は、図１の半導体集積回路装置に設けられたＰＬＬの構成を示すブロック図、図４は、図３のＰＬＬに設けられた発振検出修繕回路の一例を示す回路構成の説明図、図５は、図４の発振検出修繕回路における正常動作時の各部信号のタイミングチャート、図６は、図４の発振検出修繕回路におけるクロック発振器が電源投入時から停止している場合の各部信号のタイミングチャート、図７は、図４の発振検出修繕回路における動作中にクロック発振器が停止した際の各部信号のタイミングチャート、図８は、図４の発振検出修繕回路における動作処理の一例を示すフローチャートである。
【発明を実施するための最良の形態】  本発明を詳細に説明するために、添付の図面に従ってこれを説明する。なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
本実施の形態において、半導体集積回路装置１は、たとえば、自動車や家庭用電化製品などに用いられるシングルチップマイクロコンピュータである。半導体集積回路装置１は、図１に示すように、ＣＰＵ（中央処理装置：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４、割り込みコントローラ５、ＢＳＣ（Ｂｕｓ  Ｓｔａｔｅ  Ｃｏｎｔｒｏｌｌｅｒ）６、タイマ７、ＳＣＩ（Ｓｅｒｉａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｉｎｔｅｒｆａｃｅ）８、フラグ設定レジスタ（設定レジスタ）９、およびクロック発生器（クロック発生部）１０などのモジュールから構成されている。電源端子Ｖｃｃ，ＧＮＤを有し、電源端子Ｖｃｃにはたとえば５Ｖの電源が供給される。
また、ＣＰＵ２、ＲＡＭ３、ＲＯＭ４、割り込みコントローラ５、ＢＳＣ６、タイマ７、ＳＣＩ８、ならびにフラグ設定レジスタ９は、データバスＤＢ、およびアドレスバスＡＢを介して相互に接続されている。図示はしないが、ＣＰＵ２からの制御信号を伝達するための制御信号線が相互に接続されている。
ＣＰＵ２は、ＲＯＭ４に格納された制御プログラムに基づいて所定の処理を行う。ＲＡＭ３は、随時読み出し／書き込みが可能な揮発性メモリであり、入出力データや演算データなどのＣＰＵ２などで利用されるデータを一時的に格納する。
ＲＯＭ４は、不揮発性メモリであり、制御プログラムなどが格納されている。割り込みコントローラ５は、ＣＰＵ２や、その他の周辺回路（ＢＳＣ６、タイマ７、ＳＣＩ８など）からの割り込み処理の制御を行う。
ＢＳＣ６は、上記したアドレスバスＡＢやデータバスＤＢなどにおける信号の転送を制御するとともに、各々のバスの状態を制御する。タイマ７は、たとえば、８ビットのカウンタをベースとしたタイマである。ＳＣＩ８は、外部から入出力されるシリアルデータの通信制御を行う。フラグ設定レジスタ９は、クロック発生器１０からの発振状態検出フラグなどを格納する。
クロック発生器１０は、外部接続されたクロック発振器（外部発振器）から生成されたクロック信号に基づいて、システムクロックを生成する。このクロック発生器１０は、発振器（内部発振器）１０ａ、ＰＬＬ（位相同期ループ回路：Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）１０ｂ、およびＣＰＧ（クロック発生回路：Ｃｌｏｃｋ  Ｐｕｌｓｅ  Ｇｅｎｅｒａｔｏｒ）１０ｃから構成されている。
発振器１０ａは、外部接続されたクロック発振器を発振させてある周波数のクロック信号ｆｉｎを出力する。ＰＬＬ１０ｂは、発振器１０ａから出力されたクロック信号ｆｉｎを逓倍して出力する。このＰＬＬ１０ｂには、インバータなどによって外部から入力されるリセット信号ＲＥＳＮが反転されたリセット反転信号ＲＥＳ、およびフラグ設定レジスタ９に設定されているクロックソース切り替えイネーブル信号ＳＳＥがそれぞれ入力されるように接続されている。
また、ＰＬＬ１０ｂからは、発振状態フラグＳＦがフラグ設定レジスタ９に出力される。この発振状態フラグＳＦは、たとえば、’０’であれば、クロック信号ｆｉｎが正常であることを示し、’１’であれば、クロック信号ｆｉｎが異常（たとえば、発振停止など）であることを示す。ＣＰＧ１０ｃは、ＰＬＬ１０ｂによって逓倍されたクロック信号から各種システムクロックを生成し、各モジュールに適したシステムクロック信号をそれぞれ供給する。
図２は、半導体集積回路装置１の発振器１０ａとクロック発振器との接続構成を示した説明図である。
半導体集積回路装置１に外部接続されるクロック発振器として、たとえば、水晶振動子ＯＳＣ１、および水晶発振器ＯＳＣ２などがある。
水晶振動子ＯＳＣ１が発振器１０ａに接続される場合には、図２（ａ）に示すように、半導体集積回路装置１に設けられたＥＸＴＡＬ端子とＸＴＡＬ端子とからなる２つのクロック端子（発振信号端子）に接続される。
また、水晶振動子と発振回路とからなる水晶発振器ＯＳＣ２が発振器１０ａに接続される場合には、図２（ｂ）に示すように、半導体集積回路装置１に設けられたＥＸＴＡＬ端子（クロック端子、発振信号端子）に接続され、他方のＸＴＡＬ端子はオープン（ＮＣ：Ｎｏｎ  Ｃｏｎｎｅｃｔ）となる。
発振器１０ａは、ＥＸＴＡＬ端子とＸＴＡＬ端子との間に接続された抵抗、および否定論理和回路からなり、該発振器１０ａに電圧が供給されることによって、クロック端子を介して接続された水晶振動子ＯＳＣ１、または水晶発振器ＯＳＣ２が発振することになる。
図３は、ＰＬＬ１０ｂの構成を示すブロック図である。
ＰＬＬ１０ｂは、発振検出修繕回路１１、位相比較器１２、チャージポンプ１３、電圧制御発振器１４、分周器１５，１６、およびフィードバックディレイ回路１７から構成されている。
発振器１０ａから出力されたクロック信号ｆｉｎは、発振検出修繕回路１１に入力される。発振検出修繕回路１１は、クロック信号ｆｉｎの正常／異常を検出し、該クロック信号ｆｉｎの信号状態に応じた制御を行う。
発振検出修繕回路１１の出力部には、位相比較器１２に一方の入力部が接続されており、該入力部には、発振検出修繕回路１１から出力されたクロック信号ＣＤＲｏｕｔが入力される。
この位相比較器１２の他方の入力部には、分周回路１６によって分周された帰還クロックｆｂｃｌｋ２が入力されるように接続されている。位相比較器１２は、クロック信号ＣＤＲｏｕｔと分周された帰還クロックｆｂｃｌｋ２との位相差を時間差として検出し、その時間差と同じ程度のパルスを出力する。
位相比較器１２の出力部には、チャージポンプ１３が接続されている。チャージポンプ１３は、位相比較器１２のパルスに応じた電流を生成する。チャージポンプ１３の次段には、電圧制御発振器１４が接続されている。
電圧制御発振器１４は、チャージポンプ１３によって生成された電流を電圧に変換し、その電圧に基づいて発振周波数を変化させたクロック信号（たとえば、クロック信号ｆｉｎの１６倍）を出力する。
電圧制御発振器１４には、分周器１５が接続されている。分周器１５は、電圧制御発振器１４が生成したクロック信号を、たとえば、１／２分周して出力する。よって、分周器１５から出力されたクロック信号は、たとえば、クロック信号ｆｉｎの８倍の周波数となる。このクロック信号は、ＰＬＬ１０ｂの生成したクロック信号ｆｏｕｔとなってＣＰＧ１０ｃ（図１）に入力される。
ＰＬＬ１０ｂの出力部、すなわち分周器１５の出力部には、フィードバックディレイ回路１７の入力部が接続されている。フィードバックディレイ回路１７は、たとえば、複数のインバータを直列接続した構成からなるディレイ回路である。
フィードバックディレイ回路１７は、分周器１５から出力されたクロック信号をある時間だけ遅延（たとえば、半導体集積回路装置１におけるシステムクロックと同じ程度の遅延）させて位相を調整して帰還クロックｆｂｃｌｋ１として分周器１６に出力する。分周器１６は、分周器１５から出力されたクロック信号を１／８分周して位相比較器１２に出力する。
図４は、発振検出修繕回路１１における回路構成の説明図である。
発振検出修繕回路１１は、発振状態検出部（検出回路）１８、発振状態検出ラッチ部（選択回路、検出結果ラッチ回路）１９、選択信号生成部（選択回路）２０、クロックソース選択部（選択回路、クロックソース選択回路）２１、およびリングオシレータ部（内部発振回路）２２から構成されている。
発振状態検出部１８は、インバータＩｖ１〜Ｉｖ５、フィルタＦ１，Ｆ２、および排他的論理和回路ＥＯＲ１からなる。発振状態検出ラッチ部１９は、インバータＩｖ６〜Ｉｖ８、論理積回路ＡＤ１，ＡＤ２、および否定論理和回路ＮＯＲ１，ＮＯＲ２から構成されたラッチ回路である。
選択信号生成部２０は、否定論理積回路ＮＤ１、およびインバータＩｖ９から構成されている。クロックソース選択部２１は、否定論理和回路ＮＯＲ３、否定論理積回路ＮＤ２、排他的論理和回路ＥＯＲ２、およびインバータＩｖ１０〜Ｉｖ１２から構成されている。
リングオシレータ部２２は、複数のインバータがリング状に接続された発振回路からなり、クロック信号ＣＫｒを生成して出力する。
発振状態検出部１８において、インバータＩｖ１の入力部には、発振器１０ａから出力されたクロック信号ｆｉｎが入力されるように接続されている。インバータＩｖ１の出力部には、インバータＩｖ２の入力部が接続されており、該インバータＩｖ２の出力部には、フィルタＦ１，Ｆ２の入力部がそれぞれ接続されている。
フィルタＦ１は、クロック信号ｆｉｎのＨｉ信号期間の検出を行い、該Ｈｉ信号期間が正常の場合にはＬｏ信号を出力し、Ｈｉ信号期間が所定の期間よりも長い場合にはＨｉ信号を出力する。
フィルタＦ２は、クロック信号ｆｉｎのＬｏ信号期間の検出を行う。クロック信号ｆｉｎのＬｏ信号期間が正常の場合にはＨｉ信号を出力し、該Ｌｏ信号期間が所定の期間よりも長い場合にはＬｏ信号を出力する。
フィルタＦ１，Ｆ２の出力部には、排他的論理和回路ＥＯＲ１の入力部がそれぞれ接続されている。この排他的論理和回路ＥＯＲ１の出力部には、直列接続されたインバータＩｖ３〜Ｉｖ５が接続されており、最終段のインバータＩｖ５から出力された信号が検出信号ＫＳとなって発振状態検出ラッチ部１９のデータ端子に入力される。
検出信号ＫＳは、クロック信号ｆｉｎのＬｏ信号期間、およびＨｉ信号期間がいずれも正常の場合にはＬｏ信号となり、クロック信号ｆｉｎのＬｏ信号期間、またはＨｉ信号期間が少なくとも一方が異常の場合には、Ｈｉ信号となる。この構成により、クロック信号ｆｉｎが発振停止状態となっている場合だけでなく、発振が不安定（例えば、必要な周波数で発振していない場合、Ｈｉレベル／Ｌｏレベルが規定のレベルにならない場合、Ｈｉ幅／Ｌｏ幅が不安定な場合など）になっている場合においても異常を検出することが可能となる。
発振状態検出ラッチ部（発振状態保持手段）１９にはラッチ回路であり、リセット端子にＨｉ信号のリセット反転信号ＲＥＳが入力された際に、発振状態検出部１８から出力された検出信号ＫＳをラッチし、ラッチ信号ＲＴＣとして出力する。つまりリセット解除タイミングに応答し、そのときの発振状態がどのような状態（正常状態、異常状態）であるかをラッチしている。リセット反転信号ＲＥＳは、半導体集積回路装置１に入力されるリセット信号ＲＥＳＮの反転信号である。
発振状態検出ラッチ部１９のデータ出力端子ｑには、選択信号生成部２０における否定論理積回路ＮＤ１の一方の入力部が接続されている。この否定論理積回路ＮＤ１の出力部には、インバータＩｖ９の入力部が接続されている。
インバータＩｖ９から出力される信号は、選択信号ＳＬとしてクロックソース選択部２１における否定論理和回路ＮＯＲ３の他方の入力部、および否定論理積回路ＮＤ２の一方の入力部にそれぞれ入力されるように接続されている。
否定論理和回路ＮＯＲ３の一方の入力部には、クロック信号ｆｉｎが入力されるように接続されている。また、選択信号生成部２０は、フラグ設定レジスタ９にも接続されており、選択信号ＳＬは、発振状態フラグＳＦとして該フラグ設定レジスタ９に格納される。
リングオシレータ２２の出力部には、クロックソース選択部２１におけるインバータＩｖ１２の入力部が接続されており、該インバータＩｖ１２の出力部には、否定論理積回路ＮＤ２の他方の入力部が接続されている。
否定論理和回路ＮＯＲ３、および否定論理積回路ＮＤ２の出力部は、排他的論理和回路ＥＯＲ２の両方の入力部にそれぞれ接続されており、該排他的論理和回路ＥＯＲ２の出力部には、インバータＩｖ１０の入力部が接続される。
インバータＩｖ１０の出力部には、インバータＩｖ１１の入力部が接続されており、該インバータＩｖ１１の出力部から出力される信号が、クロック信号ＣＤＲｏｕｔとなる。
クロックソース選択部２１は、選択信号生成部２０から出力される選択信号ＳＬに基づいて、リングオシレータ２２から出力されるクロック信号ＣＫｒ、またはクロック発振器が生成したクロック信号ｆｉｎのいずれかを選択して出力する。
また、選択信号生成部２０において、否定論理積回路ＮＤ１の他方の入力部には、フラグ設定レジスタ９（図１）に設定されたクロックソース切り替えイネーブル信号ＳＳＥが入力されるように接続されている。
このクロックソース切り替えイネーブル信号ＳＳＥは、Ｈｉ信号が’有効’、Ｌｏ信号が’無効’となる。クロックソース切り替えイネーブル信号ＳＳＥが有効の場合、発振状態検出ラッチ部１９から出力されるラッチ信号ＲＴＣに応じて選択信号ＳＬが生成される。
また、クロックソース切り替えイネーブル信号ＳＳＥが無効の際には、ラッチ信号ＲＴＣの状態にかかわらず、選択信号ＳＬがＬｏ信号となり、クロックソース選択部２１がクロック信号ｆｉｎを出力する。
次に、本実施の形態１における半導体集積回路装置１に設けられた発振検出修繕回路１１の動作について、図５〜図７のタイミングチャート、および図８のフローチャートを用いて説明する。以下、フラグ設定レジスタ９に格納されたクロックソース切り替えイネーブル信号ＳＳＥは有効（Ｈｉ信号）になっているものとする。
図５〜７においては、上方から下方にかけて、半導体集積回路装置１に供給される電源電圧ＶＣＣ、半導体集積回路装置１のＥＸＴＡＬ端子に入力されるクロック信号ｆｉｎ、リングオシレータ部２２から出力されるクロック信号ＣＫｒ、半導体集積回路装置１に入力されるリセット信号ＲＥＳＮ、発振状態検出ラッチ部１９から出力されるラッチ信号ＲＴＣ、およびＰＬＬ１０ｂに入力されるクロックソース（クロック信号ｆｉｎまたはクロック信号ＣＫｒ）の信号タイミングをそれぞれ示している。
始めに、図５、および図８を用いて、外部接続されたクロック発振器が正常に動作している場合おける半導体集積回路装置１に対する電源投入時からパワーオンリセット処理の終了までの動作について説明する。
まず、電源投入後、電源電圧ＶＣＣのレベルが上昇する。それに伴って、クロック発振器（発振器１０ａ、水晶振動子ＯＳＣ１、水晶発振器ＯＳＣ２）が発振を開始する（ステップＳ１０１）。この期間（図５、期間ｔ１）では、クロック発振器から出力されるクロック信号ｆｉｎは安定していないために、発振状態検出部１８は、クロック信号ｆｉｎの異常を検出し、Ｈｉ信号の検出信号ＫＳを出力する。
また、発振状態検出ラッチ部１９には、リセット期間であるのでＨｉ信号のリセット反転信号ＲＥＳが入力されており、Ｈｉ信号の検出信号ＫＳをラッチせずにラッチ信号ＲＴＣ（Ｌｏ信号）として出力している。
よって、選択信号生成部２０は、Ｈｉ信号の選択信号ＳＬをクロックソース選択部２１に対して出力する。クロックソース選択部２１は、選択信号ＳＬを受けて、リングオシレータ２２が生成するクロック信号ＣＫｒを選択し、クロック信号ＣＤＲｏｕｔとして出力する（ステップＳ１０２）。
その後、電源電圧ＶＣＣレベルが上昇して安定すると、クロック発振器の発振も安定する（図５、期間ｔ２）。クロック発振器の発振が安定して正常なクロック信号ｆｉｎがＥＸＴＡＬ端子に入力されると、発振状態検出部１８は、クロック信号ｆｉｎが正常になったことを検出し（ステップＳ１０３）、発振状態検出ラッチ部１９にＬｏ信号の検出信号ＫＳを出力する。
この検出信号ＫＳは、発振状態検出ラッチ部１９を介してラッチ信号ＲＴＣとして選択信号生成部２０に出力される。これにより、選択信号生成部２０から出力される選択信号ＳＬが、Ｈｉ信号からＬｏ信号に遷移する。
クロックソース選択部２１は、Ｌｏ信号の選択信号ＳＬを受けて、クロックソースをクロック信号ＣＫｒからクロック信号ｆｉｎに切り替え、クロック信号ＣＤＲｏｕｔとして出力する（ステップＳ１０４）。また、リセット期間中はラッチ信号ＲＴＣをもとにクロック信号ｆｉｎが異常となればクロック信号ＣＫｒを選択し、クロック信号ｆｉｎが正常となればクロック信号ｆｉｎを選択し、クロック信号は固定的に選択されず、クロック信号に応じて適宜切り替えられるように制御される。
続いて、半導体集積回路装置１に入力されるリセット信号ＲＥＳＮがＬｏ信号からＨｉ信号に遷移してリセット解除になると（期間ｔ３）、発振状態検出ラッチ部１９は、入力されている検出信号ＫＳ（Ｌｏ信号）をラッチし（ステップＳ１０５）、そのラッチ信号から生成された選択信号ＳＬを発振状態フラグＳＦとしてフラグ設定レジスタ９に格納する（ステップＳ１０６）。つまり、リセット解除後、ＥＸＴＡＬが選択された状態がＰＬＬクロックソースとして発振状態検出ラッチ部１９にラッチされる（図６、期間ｔ６）。
続いて、ＣＰＵ２は、フラグ設定レジスタ９に格納された発振状態フラグＳＦをリードする（ステップＳ１０７）。そして、発振状態フラグＳＦが’０’の場合、すなわち、クロック信号ｆｉｎが正常発振の場合には、ＣＰＵ２がプログラムに基づいて、各レジスタ（たとえば、汎用レジスタなど）の初期化、および各種設定（たとえば、ポートの入出力設定やＲＡＭ３の初期化など）を行う（ステップＳ１０８）。以上により、初期化動作が終了となり、半導体集積回路装置１は、通常のプログラムによる動作を行う。
次に、図６、および図８を用いて、電源投入時から、外部接続されたクロック発振器が停止している場合の処理について説明する。
ここでは、電源投入（図６、期間ｔ４）から、クロック信号ＣＫｒを選択して出力し、その後、電源電圧ＶＣＣレベルが上昇して安定する（図６、期間ｔ５）までは、前記ステップＳ１０１，Ｓ１０２の処理と同様である。
そして、ステップＳ１０３の処理において、期間ｔ５では、クロック発振器の発振信号ｆｉｎが停止（たとえば、’０’または’１’固定状態）しているために、検出信号ＫＳがＨｉ信号から遷移せず、ラッチ信号ＲＴＣがＨｉ信号出力のままとなる。
よって、選択信号生成部２０から出力される選択信号ＳＬもＨｉ信号のままとなり、クロックソース選択部２１は、クロックソースを切り替えずにクロック信号ＣＫｒをクロック信号ＣＤＲｏｕｔとして出力する。
これにより、クロック発生器１０は、半導体集積回路装置１が動作するのに必要な最低限の周波数のシステムクロックを生成することが可能となる。
続いて、リセット信号ＲＥＳＮがＬｏ信号からＨｉ信号に遷移してリセット解除になると（図６、期間ｔ６）、発振状態検出ラッチ部１９は、入力されている検出信号ＫＳ（Ｈｉ信号）をラッチし（ステップＳ１０５）、そのラッチ信号から生成された選択信号ＳＬを発振状態フラグＳＦとしてフラグ設定レジスタ９に格納する（ステップＳ１０６）。つまり、リセット解除後、リングオシレータが選択された状態がＰＬＬクロックソースとして発振状態検出ラッチ部１９にラッチされる（図６、期間ｔ６）。
その後、ＣＰＵ２は、フラグ設定レジスタ９に格納された発振状態フラグＳＦをリードする（ステップＳ１０７）。ここでは、発振状態フラグＳＦが’１’、すなわち、クロック信号ｆｉｎが異常発振となっているので、ＣＰＵ２は、プログラムに基づいて、半導体集積回路装置１における各モジュールの動作を停止（たとえば、タイマ７のカウント停止、ＳＣＩ８の送受信停止など）させた後（ステップＳ１０９）、該ＣＰＵ２を停止させて（ステップＳ１１０）、半導体集積回路装置１を異常終了させる。これによって、半導体集積回路装置１を搭載した電子システムなどに該半導体集積回路装置１が異常であることを通知することができる。半導体集積回路装置１内で生成されるクロック信号は外部から供給されるクロック信号ｆｉｎに比べ周波数が遅いため、タイマ７のように一定時間を正確に計る必要のある回路、または、外部通信を行うために、一定の周波数が必要となるようなＳＣＩ８などの回路においては規定の周波数に基づいてカウントまたは通信されないため、上記のように異常終了させることが必要となる。
なお、この状態は、半導体集積回路装置１にリセット信号ＲＥＳが入力されるまで維持されることになる。
次に、図７、および図８を用いて、半導体集積回路装置１の動作中（リセット信号ＲＥＳＮ’１’入力状態）にクロック発振器が発振異常となった場合の処理について説明する。
まず、クロック発振器が正常に発振している場合（図７、期間ｔ７）、ＣＰＵ２は、割り込みコントローラ５による割り込みフラグが発生したか否かを判断する。これにより、プログラムによりＣＰＵ２が任意の間隔毎に発振状態フラグＳＦが発生したか否かをモニタすることを不要にすることができ、該ＣＰＵ２の負荷を低減することができる。
たとえば、クロック発振器が異常発振となると（図７、期間ｔ８）、発振状態検出部１８が該クロック発振器の異常を検出し、Ｈｉ信号のラッチ信号ＲＴＣがクロックソース選択部２１に出力される。
また、発振状態フラグＳＦが’１’となり、該発振状態フラグＳＦが、割り込み要求信号として割り込みコントローラ５に出力される。割り込みコントローラ５は、この割り込み要求信号を受けてＣＰＵ２に対して割り込みフラグを発生する。
この割り込みフラグを受けて、ＣＰＵ２はプログラムに基づき、ステップＳ１０９，Ｓ１１０の処理を実行し、半導体集積回路装置１を異常終了させる。
その後、何らかの理由によってクロック発振器が正常に発振しクロック信号ｆｉｎが正常状態になったとしても、発振状態検出ラッチ部１９のラッチ信号ＲＴＣは、遷移せずにＨｉ信号出力となるので（図７、期間ｔ９）、半導体集積回路装置１に対してリセット信号ＲＥＳＮが入力されるまで該クロック発振器の発振信号ｆｉｎは選択されないことになる。
それにより、本実施の形態によれば、リセット処理時において、クロック発振器に異常があっても、半導体集積回路装置１の異常処理を実行することができるので、該半導体集積回路装置１の誤動作を防止することができる。
また、半導体集積回路装置１を搭載した電子システムにおける誤動作も防止することができるので、該電子システムの信頼性を大幅に向上させることができる。
さらに、本実施の形態では、発振検出修繕回路１１にリングオシレータ部２２を設け、クロック発振器が異常の際には該リングオシレータ部２２が生成したクロック信号ＣＫｒを選択して出力する構成としたが、たとえば、該クロック発振器が異常の際には、ＰＬＬ１０ｂにおける電圧制御発振器１４を構成する既存のリングオシレータから出力される信号を用いるようにしてもよい。これにより、発振検出修繕回路１１のリングオシレータ部２２（図４）を不要にすることができる。
この場合、発振検出修繕回路１１は、クロック発振器が正常か否かを判断し、正常の場合にはクロック発振器のクロック信号ｆｉｎを出力し、異常の際にはクロック信号ｆｉｎを出力しない。
また、クロック発振器が異常の場合、チャージポンプ１３からは、電圧制御発振器１４のリングオシレータ１４ａが発振可能な電源電圧を供給することにより、リングオシレータ１４ａから発振信号が出力される。
リングオシレータ１４ａの発振信号は、分周器１５を介してＣＰＧ１０ｃ（図１）に出力され、半導体集積回路装置１のシステムクロックとして供給されることになる。
以上、本発明者によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
たとえば、半導体集積回路装置に搭載される回路モジュールは上記している回路に限定されることなく、必要に応じて適宜変更可能である。不揮発性メモリはＲＯＭに限定されることなく、フラッシュメモリなどの書き換え可能な不揮発性メモリであってもよい。
【産業上の利用可能性】  以上のように、本発明にかかる半導体集積回路装置の誤動作防止技術は、内部システムクロックを生成する基となる外部クロックを供給するクロック発振器が外部接続される半導体集積回路装置における誤動作回避技術に適している。
【図１】
0004216282.tif 000002
【図２】
0004216282.tif 000003
【図３】
0004216282.tif 000004
【図４】
0004216282.tif 000005
【図５】
0004216282.tif 000006
【図６】
0004216282.tif 000007
【図７】
0004216282.tif 000008
【図８】
0004216282.tif 000009