(57)【要約】【課題】ＣＰＵを介在させることなく、使用するクロック信号の切替え制御をハードウェアで行うことができるようにする。【解決手段】外部発振検出カウンタ２により外部クロック信号ＯＣＬＫの周期数をカウントし、内部発振検出カウンタ３により内部クロック信号ＩＣＬＫの周期数をカウントして、外部発振検出カウンタ２がオーバーフローした場合には、外部クロック信号ＯＣＬＫが正常であると判断して、オーバーフロー信号ＯＦＡに基づいて、外部クロック信号ＯＣＬＫを動作クロックＨＣＫＯとして出力するように切替え回路８を制御するようにして、ＣＰＵが何ら処理を行うことなく、ハードウェアのみの制御で、出力するクロック信号を切替えることができるようにする。【選択図】  図１
2004178105.tif 000002
【特許請求の範囲】
【請求項１】
入力される第１のクロック信号の周期数をカウントするとともに、オーバーフローが発生した際に第１のオーバーフロー信号を出力する第１のカウンタ回路と、
上記第１のクロック信号及び上記第１のクロック信号とは異なる第２のクロック信号が入力され、上記第１及び第２のクロック信号の何れか一方を選択的に出力する切替え回路とを備え、
上記切替え回路は、上記第１のオーバーフロー信号に応じて、出力するクロック信号を上記第２のクロック信号から上記第１のクロック信号に切替えることを特徴とするクロック切替え装置。
【請求項２】
上記第２のクロック信号の周期数をカウントするとともに、オーバーフローが発生した際に第２のオーバーフロー信号を出力する第２のカウンタ回路をさらに備え、
上記第１のカウンタ回路は、カウント値の最大値が上記第２のカウンタ回路のカウント値の最大値より小さく、上記第２のオーバーフロー信号により初期化されることを特徴とする請求項１に記載のクロック切替え装置。
【請求項３】
高周波信号を除去するフィルタ回路をさらに備え、
上記フィルタ回路を介して上記第１のクロック信号を上記第１のカウンタ回路に入力することを特徴とする請求項１又は２に記載のクロック切替え装置。
【請求項４】
上記第１のクロック信号は、複数のクロック信号であり、
上記複数のクロック信号にそれぞれ対応する上記第１のカウンタ回路を備えるることを特徴とする請求項１〜３の何れか１項に記載のクロック切替え装置。
【請求項５】
上記切替え回路は、上記第２のクロック信号から上記第１のクロック信号に出力するクロック信号を切替える際、信号レベルを固定したハイレベルまたはロウレベルの信号を出力し、上記第１のクロック信号の信号レベルが固定した信号レベルと同じレベルになった後、クロック信号を切替えることを特徴とする請求項１〜４の何れか１項に記載のクロック切替え装置。
【請求項６】
上記切替え回路から何れのクロック信号が出力されているかを判別可能なレジスタを備えることを特徴とする請求項１〜５の何れか１項に記載のクロック切替え装置。
【請求項７】
上記第１のクロック信号の発振停止を検出する発振停止検出回路をさらに備え、
上記切替え回路は、上記発振停止検出回路の検出結果に応じて、出力するクロック信号を上記第１のクロック信号から上記第２のクロック信号に切替えることを特徴とする請求項１〜６の何れか１項に記載のクロック切替え装置。
【請求項８】
上記発振停止検出回路は、互いに異なる時点での上記第１のカウンタ回路のカウント値を比較判定する判定回路と、
上記判定回路での判定結果に応じて動作するとともに、オーバーフローが発生した際に第３のオーバーフロー信号を出力する第３のカウンタ回路とを備え、
上記切替え回路は、上記第３のオーバーフロー信号に応じて、出力するクロック信号を上記第１のクロック信号から上記第２のクロック信号に切替えることを特徴とする請求項７に記載のクロック切替え装置。
【請求項９】
上記発振停止検出回路は、上記第１のクロック信号の発振停止を検出した際、外部に出力可能な検出信号、内部リセット信号、及び割込み信号のうち少なくとも１つの信号を出力することを特徴とする請求項７又は８に記載のクロック切替え装置。
【請求項１０】
上記第１のクロック信号は、当該クロック切替え装置を有する半導体演算装置に外部から入力端子を介して供給される外部クロック信号であり、
上記第２のクロック信号は、上記半導体演算装置が内部に有する発振回路で生成される内部クロック信号であることを特徴とする請求項１〜９の何れか１項に記載のクロック切替え装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クロック切替え装置に関し、例えば、基準となる第１のクロック信号及び上記第１のクロック信号とは異なる第２のクロック信号が供給される半導体集積回路にて、第２のクロック信号に応じて使用するクロック信号を切替えるためのクロック切替え装置に用いて好適なものである。
【０００２】
【従来の技術】
半導体集積回路等においては、供給される複数のクロック信号の中から、用途や使用状況等に応じて内部回路等の動作に使用する適切なクロック信号を選択可能なものがある。例えば、半導体集積回路内部にクロック信号の発生源（発振子や発振回路）を内蔵するとともに、外部からクロック信号を入力可能なクロック入力端子を設けて、内部で生成したクロック信号と外部から供給されるクロック信号とを選択的に適宜切替え可能なものがある。
【０００３】
【特許文献１】
特開平１１−９５８５９号公報
【特許文献２】
特開２０００−１２２７４９号公報
【特許文献３】
特開２００１−１４２５５９号公報
【特許文献４】
特開平７−６１５５号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の半導体集積回路等では、上記特許文献１〜特許文献４等に記載されているように、複数のクロック信号の中からの適切なクロック信号の選択は、クロック信号の選択制御のためのレジスタへのソフトウェア制御によるＣＰＵからのデータの書き込みや、ソフトウェア制御によるＣＰＵからの指示により行われていた。つまり、使用するクロック信号の選択及び切替えには、常にＣＰＵが介在する必要があり、ＣＰＵの処理負荷が増大するという問題があった。
【０００５】
本発明は、このような問題に鑑みて成されたものであり、ＣＰＵを介在させることなく、使用するクロック信号の切替え制御をハードウェアで行うことができるようにすることを目的とする。
【０００６】
【課題を解決するための手段】
本発明のクロック切替え装置は、第１のカウンタ回路と切替え回路とを備え、入力される第１のクロック信号の周期数を第１のカウンタ回路によりカウントして、第１のカウンタ回路にてオーバーフローが発生した際に出力される第１のオーバーフロー信号に応じて、出力するクロック信号を上記第２のクロック信号から上記第１のクロック信号に切替え回路にて切替えて出力する。これにより、何らＣＰＵに処理を行わせることなく、出力するクロック信号を切替えて出力することができるようになる。
【０００７】
また、第１のクロック信号の発振停止を検出する発振停止検出回路をさらに備え、発振停止検出回路の検出結果に応じて、出力するクロック信号を上記第１のクロック信号から上記第２のクロック信号に切替え回路にて切替えて出力するようにした場合には、第１のクロック信号の発振が停止しても、ＣＰＵが介在する処理を行うことなく、出力するクロック信号を切替えて出力することができるようになる。
【０００８】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態によるクロック切替え装置の一構成例を示すブロック図である。
【０００９】
図１に示すクロック切替え装置は、当該クロック切替え装置を備える半導体集積回路等の入力端子を介して外部から供給される外部クロック信号ＯＣＬＫ、又は当該半導体集積回路等の内部で常時生成され基準クロックである内部クロック信号ＩＣＬＫの一方を当該半導体集積回路等の動作クロックＨＣＫＯとして出力する。外部クロックＯＣＬＫ及び内部クロック信号ＩＣＬＫは、図示しない発振子（例えば、水晶発振子やセラミック発振子等）や発振回路により生成される。
【００１０】
図１において、１はノイズフィルタであり、外部クロック信号ＯＣＬＫから所定の周波数より高い周波数の信号を除去し、外部クロック信号ＨＣＬＫＮとして出力する。つまり、ノイズフィルタ１は、異常発振等による高い周波数の外部クロック信号ＯＣＬＫや高周波ノイズを除去（遮断）する。
【００１１】
２は外部発振検出カウンタであり、外部クロック信号ＨＣＬＫＮが入力され、当該外部クロック信号ＨＣＬＫＮの周期数をカウント（計数）する２ビットカウンタである。また、外部発振検出カウンタ２は、カウント値のオーバーフローが発生した際、オーバーフロー信号ＯＦＡを出力する。
【００１２】
３は内部発振検出カウンタであり、入力される内部クロック信号ＩＣＬＫの周期数をカウントする６ビットカウンタである。内部発振検出カウンタ３は、カウント値のオーバーフローが発生した際、オーバーフロー信号ＯＦＢを出力する。
【００１３】
４は外部から入力されるリセット信号ＲＳＴが活性化される際のリセット信号ＲＳＴのエッジを検出するエッジ検出回路である。５は論理和演算回路（ＯＲ回路）であり、エッジ検出回路４の出力と内部発振検出カウンタ３から出力されるオーバーフロー信号ＯＦＢとの論理和演算を行い、演算結果を外部発振検出カウンタ２にリセット信号として出力する。
【００１４】
６は外部発振検出カウンタ２から出力されるオーバーフロー信号ＯＦＡのエッジを検出して、検出結果をセット信号ＨＣＵＮＴとして出力するエッジ検出回路である。７はレジスタであり、エッジ検出回路６から出力されるセット信号ＨＣＵＮＴに応じてレジスタ値“１”を設定し保持するとともに、レジスタ値に応じたクロック選択信号ＸＴＡＬを出力する。
【００１５】
８は切替え回路であり、外部クロック信号ＯＣＬＫ、内部クロック信号ＩＣＬＫ及びクロック選択信号ＸＴＡＬが入力され、クロック選択信号ＸＴＡＬに応じて、外部クロック信号ＯＣＬＫ又は内部クロック信号ＩＣＬＫの一方を選択的に動作クロック信号ＨＣＫＯとして出力する。
【００１６】
ここで、内部発振検出カウンタ３及びレジスタ７は、外部から供給されるリセット信号ＲＳＴにより、カウンタ値“０”、レジスタ値“０”にリセット（初期化）される。また、外部発振検出カウンタ２は、外部クロック信号ＨＣＬＫＮ（ＯＣＬＫ）に同期して動作し、エッジ検出回路４、６、内部発振検出カウンタ３、及びレジスタ７は、内部クロック信号ＩＣＬＫに同期して動作する。
【００１７】
次に、動作について説明する。
図２は、上記図１に示したクロック切替え装置の動作の概要を説明するためのフローチャートである。
【００１８】
まず、クロック切替え装置は、入力されるリセット信号ＲＳＴ等に応じて、上記図１に示した各回路の初期化動作を行う（ステップＳ１）。この初期化動作によりレジスタ７のレジスタ値は“０”になるので、切替え回路８は、レジスタ７から出力されるクロック選択信号ＸＴＡＬに基づいて、内部クロック信号ＩＣＬＫを動作クロック信号ＨＣＫＯとして出力する。
【００１９】
上記初期化動作が終了すると、外部発振検出カウンタ２及び内部発振検出カウンタ３は、外部クロック信号ＨＣＬＫＮ（ＯＣＬＫ）及び内部クロック信号ＩＣＬＫの周期数のカウントをそれぞれ開始する。
その後、クロック切替え装置は、外部発振検出カウンタ２にてカウント値のオーバーフローが発生したか否かを判定する（ステップＳ２）。
【００２０】
上記判定の結果、外部発振検出カウンタ２にてカウント値のオーバーフローが発生した場合（外部発振検出カウンタ２が、内部発振検出カウンタ３よりも前にオーバーフローした場合）には、レジスタ７にレジスタ値“１”が設定される（ステップＳ３）。これにより、切替え回路８は、クロック選択信号ＸＴＡＬに基づいて、外部クロック信号ＯＣＬＫを選択して動作クロック信号ＨＣＫＯとして出力する。
【００２１】
一方、上記判定の結果、外部発振検出カウンタ２にてカウント値のオーバーフローが発生していない場合（外部発振検出カウンタ２よりも前に内部発振検出カウンタ３がオーバーフローすることにより外部発振検出カウンタ２がリセットされた場合）には、レジスタ７はレジスタ値“０”を保持する（ステップＳ４）。したがって、動作クロック信号ＨＣＫＯの切替えは行われず、切替え回路８は、内部クロック信号ＩＣＬＫを動作クロック信号ＨＣＫＯとして出力する。
【００２２】
上述した第１の実施形態によるクロック切替え装置の動作を、図３、図４、図５に基づいて詳細に説明する。まず、外部クロック信号ＯＣＬＫが正常である場合について図３に基づいて説明し、次に外部クロック信号ＯＣＬＫが異常な場合について図４、図５に基づいて説明する。
図３は、供給される外部クロック信号ＯＣＬＫが正常（適切な周波数範囲）であるときのクロック切替え装置の動作を示すタイミングチャートである。
【００２３】
時刻Ｔ３１において、外部から入力されるリセット信号ＲＳＴがロウレベル（以下、“Ｌ”と記す。）に活性化されると、内部発振検出カウンタ３及びレジスタ７がリセットされる。また、リセット信号ＲＳＴの変化がエッジ検出回路４にて検出され、この検出結果に基づいて外部発振検出カウンタ２がリセットされる。
【００２４】
上記時刻Ｔ３１において、外部発振検出カウンタ２及び内部発振検出カウンタ３のカウント値がそれぞれ“０”になるとともに、レジスタ７のレジスタ値が“０”（図３においては、クロック選択信号ＸＴＡＬで示している。）になる。したがって、切替え回路８は、クロック選択信号ＸＴＡＬに基づいて、動作クロック信号ＨＣＫＯとして内部クロック信号ＩＣＬＫを選択して出力する。
【００２５】
時刻Ｔ３１における初期化動作が終了すると、外部発振検出カウンタ２及び内部発振検出カウンタ３は、外部クロック信号ＨＣＬＫＮ（ＯＣＬＫ）及び内部クロック信号ＩＣＬＫの周期数のカウントをそれぞれ開始する。これにより、時間の経過とともに、外部発振検出カウンタ２及び内部発振検出カウンタ３のカウント値がそれぞれ増加していく。ここで、例えば、外部クロック信号ＨＣＬＫＮ（ＯＣＬＫ）と内部クロック信号ＩＣＬＫとがほぼ等しい周波数の場合には、それぞれのカウント値はほぼ等しい速さで増加する。
【００２６】
そして、時刻Ｔ３２において、内部発振検出カウンタ３に比べて、カウント値の最大値が小さい外部発振検出カウンタ２がオーバーフローすると、外部発振検出カウンタ２は、オーバーフロー信号ＯＦＡをハイレベル（以下、“Ｈ”と記す。）にして出力する。上記オーバーフロー信号ＯＦＡは、周波数が外部クロック信号ＨＣＬＫＮとは異なる場合があり得る内部クロック信号ＩＣＬＫを用いて検出するために、例えば外部クロック信号ＨＣＬＫＮの４周期の期間中“Ｈ”にする。
【００２７】
次に、時刻Ｔ３３において、オーバーフロー信号ＯＦＡの“Ｌ”から“Ｈ”への変化が、エッジ検出回路６にて検出されることによりセット信号ＨＣＵＮＴが“Ｈ”になる。さらに、時刻Ｔ３４において、セット信号ＨＣＵＮＴに基づいてレジスタ７のレジスタ値に“１”が設定され、レジスタ７から出力されるクロック選択信号ＸＴＡＬが“Ｈ”になる。
【００２８】
クロック選択信号ＸＴＡＬが“Ｈ”になることにより、切替え回路８は出力するクロック信号の切替えを行う。このとき、外部クロック信号ＯＣＬＫ及び内部クロック信号ＩＣＬＫの位相に関わらず、クロック選択信号ＸＴＡＬが“Ｈ”になった時点でクロック信号の切替えを行うと、動作クロックＨＣＫＯとして高い周波数の信号が一時的に出力されたり、ヒゲと呼ばれるノイズが発生したりすることがある。
【００２９】
そこで、切替え回路８は、クロック選択信号ＸＴＡＬが“Ｈ”になると、動作クロック信号ＨＣＫＯをまず“Ｈ”に固定し、外部クロック信号ＯＣＬＫが“Ｈ”になるのを待ってクロック信号の切替えを行う（時刻Ｔ３５）。このようにしてクロック信号の切替えを行い、切替え回路８は動作クロック信号ＨＣＫＯとして外部クロック信号ＯＣＬＫを選択して出力する。
【００３０】
図４は、供給される外部クロック信号ＯＣＬＫが異常（低周波あるいはクロックなし）であるときのクロック切替え装置の動作を示すタイミングチャートである。
【００３１】
時刻Ｔ４１において、入力されるリセット信号ＲＳＴが“Ｌ”に活性化されると、上記図３に示した時刻Ｔ３１と同様にして、外部発振検出カウンタ２、内部発振検出カウンタ３及びレジスタ７がリセットされる。これにより、内部クロック信号ＩＣＬＫが、動作クロック信号ＨＣＫＯとして切替え回路８から出力される。
【００３２】
時刻Ｔ４１における初期化動作が終了した後、外部発振検出カウンタ２及び内部発振検出カウンタ３は、外部クロック信号ＨＣＬＫＮ及び内部クロック信号ＩＣＬＫの周期数のカウントをそれぞれ開始する。しかしながら、供給される外部クロック信号ＯＣＬＫが異常な低周波の場合には、図４に示すように外部発振検出カウンタ２のカウント値が増加する速さは、内部発振検出カウンタ３のカウント値が増加する速さと比較して著しく遅くなる。
【００３３】
その結果、時刻Ｔ４２において、外部発振検出カウンタ２にてオーバーフローが発生する前に、内部発振検出カウンタ３がオーバーフローし、オーバーフロー信号ＯＦＢが“Ｈ”になる。さらに、オーバーフロー信号ＯＦＢが“Ｈ”になることで、外部発振検出カウンタ２はリセットされ、カウンタ値が“０”になる。
【００３４】
時刻Ｔ４３において、内部発振検出カウンタ３は、オーバーフロー信号ＯＦＢを“Ｌ”にする。以降、外部発振検出カウンタ２がオーバーフローする前に、内部発振検出カウンタ３がオーバーフローするので、動作クロック信号ＨＣＫＯの切替えは行われず、内部クロック信号ＩＣＬＫが動作クロック信号ＨＣＫＯとして切替え回路８から出力され続ける。
【００３５】
図５は、供給される外部クロック信号ＯＣＬＫが異常（高周波）であるときのクロック切替え装置の動作を示すタイミングチャートである。
時刻Ｔ５１において、入力されるリセット信号ＲＳＴが“Ｌ”に活性化されると、上記図３に示した時刻Ｔ３１と同様にして、外部発振検出カウンタ２、内部発振検出カウンタ３及びレジスタ７がリセットされる。これにより、内部クロック信号ＩＣＬＫが、動作クロック信号ＨＣＫＯとして切替え回路８から出力される。
【００３６】
ここで、供給される外部クロック信号ＯＣＬＫが異常な高周波の場合には、外部クロック信号ＯＣＬＫがノイズフィルタ１にて遮断され、外部クロック信号ＨＣＬＫＮは信号レベルが固定された信号になる。したがって、外部発振検出カウンタ２のカウント値は“０”を保持し、増加しない。
【００３７】
その結果、外部発振検出カウンタ２にてオーバーフローが発生することはなく、時間の経過とともにカウンタ値が増加する内部発振検出カウンタ３のみオーバーフローする。したがって、上記図４に示した場合と同様に、動作クロック信号ＨＣＫＯの切替えは行われず、内部クロック信号ＩＣＬＫが動作クロック信号ＨＣＫＯとして切替え回路８から出力され続ける。
【００３８】
以上、詳しく説明したように本実施形態によれば、外部発振検出カウンタ２により外部クロック信号ＯＣＬＫの周期数をカウントし、内部発振検出カウンタ３により内部クロック信号ＩＣＬＫの周期数をカウントする。そして、外部発振検出カウンタ２がオーバーフローした場合には、外部クロック信号ＯＣＬＫが正常な周波数範囲にあると判断して、オーバーフロー信号ＯＦＡに基づいて、動作クロックＨＣＫＯとして外部クロック信号ＯＣＬＫを出力するように切替え回路８を切替え制御する。
【００３９】
一方、内部発振検出カウンタ３が外部発振検出カウンタ２よりも前にオーバーフローした場合には、外部クロック信号ＯＣＬＫが異常であると判断して、外部発振検出カウンタ２をリセットする。これにより、動作クロック信号ＨＣＫＯとして出力されるクロック信号が、異常である外部クロック信号に切替えられることを防止することができる。
【００４０】
したがって、何らＣＰＵに処理を行わせることなく、ハードウェアのみの制御により、供給される外部クロック信号ＯＣＬＫの状態に応じて、動作クロックＨＣＫＯとして出力するクロック信号の切替え制御を行うことができ、ＣＰＵの処理負荷を軽減することができる。
【００４１】
なお、上述した第１の実施形態において、切替え回路８が内部クロック信号ＩＣＬＫから外部クロック信号ＯＣＬＫに動作クロック信号ＨＣＫＯとして出力するクロック信号を切替えるタイミングが外部から制御可能なように入力端子等を設けるようにしても良い。このようにした場合には、より適切なクロック信号の選択及び切替えタイミングの制御を行うことができるようになる。
【００４２】
また、上述した第１の実施形態において、切替え回路８は、図３に示したように動作クロック信号ＨＣＫＯをまず“Ｈ”に固定し、外部クロック信号ＯＣＬＫが“Ｈ”になるのを待ってクロック信号の切替えを行っている（時刻Ｔ３５）が、動作クロック信号ＨＣＫＯを“Ｌ”に固定し、外部クロック信号ＯＣＬＫが“Ｌ”になるのを待ってクロック信号の切替えを行うようにしても良い。このようにしても、クロック信号切替え時に、動作クロックＨＣＫＯとして高い周波数の信号が一時的に出力されたり、ヒゲと呼ばれるノイズが発生したりすることを防止することができる。
【００４３】
（第２の実施形態）
次に、第２の実施形態について説明する。
図６は、本発明の第２の実施形態によるクロック切替え装置の一構成例を示すブロック図である。この図６において、上記図１に示したブロック等と同一の機能を有するブロック等には同一の符号を付し、重複する説明は省略する。
【００４４】
図６に示すように第２の実施形態によるクロック切替え装置は、上記図１に示した第１の実施形態によるクロック切替え装置に、外部クロック信号ＯＣＬＫの発振停止を検出するための外部発振停止検出回路１４をさらに備えるものである。
外部発振停止検出回路１４は、第１及び第２のラッチ回路９、１０、判定回路１１、論理和演算回路（ＯＲ回路）１２及び外部発振停止検出カウンタ１３を有し、内部クロック信号ＩＣＬＫで動作する。
【００４５】
第１のラッチ回路９は、内部クロック信号ＩＣＬＫに同期して、外部発振検出カウンタ２（第２の実施形態においては３ビットカウンタとする。）からのカウント値ＣＮＴを取り込んで保持するとともに、保持している、つまり１周期前に保持したカウント値を出力する。同様に、第２のラッチ回路１０は、内部クロック信号ＩＣＬＫに同期して、第１のラッチ回路９の出力（カウント値）を取り込んで保持するとともに、保持しているカウント値を出力する。ここで、第１及び第２のラッチ回路９、１０は、レジスタ７から出力されるクロック選択信号ＸＴＡＬによりリセット（初期化）される。
【００４６】
判定回路１１は、第１のラッチ回路９の出力と第２のラッチ回路１０の出力とが一致するか否かを判定する。また、判定回路１１は、判定結果に基づいて、信号ＳＡ（一致）あるいは信号ＳＢ（不一致）の一方を生成し出力する。ＯＲ回路１２は、判定回路１１から出力される信号ＳＢとレジスタ７から出力されるクロック選択信号ＸＴＡＬとの論理和演算を行い、演算結果を外部発振停止検出カウンタ１３にリセット信号として出力する。
【００４７】
外部発振停止検出カウンタ１３は、判定回路１１から出力される信号ＳＡに応じて内部クロック信号ＩＣＬＫの周期数をカウントする４ビットカウンタである。外部発振停止検出カウンタ１３は、カウント値のオーバーフローが発生した際、クリア信号ＸＴＡＬＣＬＲをレジスタ７に出力し、レジスタ７のレジスタ値を“０”にリセットする。
【００４８】
なお、図６において点線により示すように、外部発振停止検出カウンタ１３は、カウント値のオーバーフローが発生した際、外部クロック信号ＯＣＬＫの発振停止を通知するための外部に出力可能な発振停止検出信号ＤＴＣ、割込み処理の実行等を要求するための割込み信号ＩＮＴ、及び内部リセット信号ＩＲＳＴの少なくとも１つの信号を出力するようにしても良い。
【００４９】
また、制御回路１５を設け、ＣＰＵ等による設定に応じて内部クロック信号ＩＣＬＫの発振が停止されている場合には、動作禁止信号ＯＤＳにより外部発振停止検出回路１４（外部発振停止検出カウンタ１３）の動作を禁止するようにしても良い。なお、制御回路１５は、図６に示したように外部発振停止検出回路１４内に設けても良いし、外部発振停止検出回路１４とは別に（外部に）設けても良い。
【００５０】
次に、動作について説明する。
図７は、上記図６に示したクロック切替え装置の動作の概要を説明するためのフローチャートである。なお、図７において、ステップＳ１１、Ｓ１２、Ｓ１３、Ｓ１４は、上記図２に示したステップＳ１、Ｓ２、Ｓ４、Ｓ３にそれぞれ対応し、外部クロック信号ＯＣＬＫの状態に応じて上記図３〜図５に示した動作と同様の動作を行うので説明は省略する。
【００５１】
ステップＳ１４において、レジスタ７にレジスタ値“１”が設定されると、外部発振停止検出回路１４内の第１及び第２のラッチ回路９、１０、外部発振停止検出カウンタ１３は、リセット状態が解除されそれぞれ動作を開始する。これにより、第１及び第２のラッチ回路９、１０の出力が一致するか否かの判定が判定回路１１により行われ、外部発振停止検出カウンタ１３は、判定結果（信号ＳＡ）に応じて内部クロック信号ＩＣＬＫの周期数をカウントする。
【００５２】
次に、クロック切替え装置は、外部発振停止検出カウンタ１３にてカウント値のオーバーフローが発生したか否かを判定する（ステップＳ１５）。
上記判定の結果、外部発振停止検出カウンタ１３にてカウント値のオーバーフローが発生した場合（所定の期間、連続して外部発振検出カウンタ２のカウント値が同じである場合）には、クロック切替え装置は、内部リセット信号等を生成し各回路の初期化動作を行う（ステップＳ１１）。これにより、動作クロック信号ＨＣＫＯの切替えが行われ、切替え回路８は、内部クロック信号ＩＣＬＫを動作クロック信号ＨＣＫＯとして出力する。
【００５３】
なお、クロック切替え装置内の各回路の初期化動作は行わずに、クリア信号ＸＴＡＬＣＬＲによりレジスタ７のレジスタ値を“０”にリセットするだけでも良く、動作クロック信号ＨＣＫＯの切替えが行われて、動作クロック信号ＨＣＫＯとして内部クロック信号ＩＣＬＫを出力することが可能である。
【００５４】
一方、上記判定の結果、外部発振停止検出カウンタ１３にてカウント値のオーバーフローが発生していない場合、例えば図９に示すように外部クロック信号ＯＣＬＫ（ＨＣＬＫＮ）が発振し、外部発振停止検出カウンタ１３がリセットされた（時刻Ｔ９２参照。）場合には、ステップＳ１４に戻り、レジスタ７はレジスタ値“１”を保持する。したがって、動作クロック信号ＨＣＫＯの切替えは行われず、切替え回路８は、外部クロック信号ＯＣＬＫを動作クロック信号ＨＣＫＯとして出力する。
【００５５】
上述した第２の実施形態によるクロック切替え装置における外部クロック信号ＯＣＬＫの発振停止時の動作を、図８に基づいて詳細に説明する。
図８は、外部クロック信号ＯＣＬＫの発振停止により外部クロック信号ＯＣＬＫが供給されなくなった際のクロック切替え装置の動作を示すタイミングチャートである。なお、図８においては、初期化動作終了後に動作クロック信号ＨＣＫＯの切替えが行われ、外部クロック信号ＯＣＬＫが動作クロック信号ＨＣＫＯとして切替え回路８から出力されているものとする。
【００５６】
時刻Ｔ８１において、供給される外部クロック信号ＯＣＬＫの発振が停止すると、外部発振検出カウンタ２による外部クロック信号ＯＣＬＫの周期数のカウントが停止し、カウンタ値ＣＮＴは所定の値に固定する（図８においては“３”（１６進数表示））。
【００５７】
このとき、内部クロック信号ＩＣＬＫで動作するとともに、レジスタ７のレジスタ値（クロック選択信号ＸＴＡＬ）が“１”（“Ｈ”）であるので、外部発振停止検出回路１４にてカウント値ＣＮＴの比較による外部発振停止検出動作が行われている。
【００５８】
具体的には、内部クロック信号ＩＣＬＫに同期して、カウント値ＣＮＴが第１のラッチ回路９に取り込まれ、次の（１周期後の）クロックで、取り込まれたカウント値が第２のラッチ回路１０に取り込まれるとともに、新たなカウント値ＣＮＴが第１のラッチ回路９に取り込まれる。また、取り込まれたカウント値ＣＮＴは、第１及び第２のラッチ回路９、１０から判定回路１１にそれぞれ出力され、それらカウント値ＣＮＴが一致するか否かが判定回路１１にて判定される。
【００５９】
判定の結果、カウント値ＣＮＴが一致しない場合には、判定回路１１より信号ＳＢが出力され、外部発振停止検出カウンタ１３のカウンタ値がリセットされる。一方、判定の結果、カウント値ＣＮＴが一致する場合には、判定回路１１より図８に示すような信号ＳＡ（例えば、カウント値ＣＮＴが一致する期間“Ｈ”になる。）が出力される。上記信号ＳＡに応じて、外部発振停止検出カウンタ１３は、内部クロック信号ＩＣＬＫの周期数をカウントし、外部発振停止検出カウンタ１３のカウンタ値が増加していく。
【００６０】
図８において、時刻Ｔ８１以降は、外部発振検出カウンタ２のカウンタ値ＣＮＴが変化しないので、外部発振停止検出カウンタ１３のカウンタ値は増加していく。そして、時刻Ｔ８２において、外部発振停止検出カウンタ１３のカウンタ値が最大値に達すると（オーバーフローすると）、外部発振停止検出カウンタ１３は、内部クロック信号ＩＣＬＫの立下りに同期して、クリア信号ＸＴＡＬＣＬＲを１周期の期間だけ“Ｌ”にする。
【００６１】
さらに、時刻Ｔ８３において、クリア信号ＸＴＡＬＣＬＲに基づいて、レジスタ７のレジスタ値が“０”になり、レジスタ７から出力されるクロック選択信号ＸＴＡＬが“Ｌ”になる。これにより、動作クロック信号ＨＣＫＯの切替えが行われ、内部クロック信号ＩＣＬＫが動作クロック信号ＨＣＫＯとして切替え回路８から出力される。また、クロック選択信号ＸＴＡＬが“Ｌ”になることにより、外部発振停止検出回路１４は動作が停止する。
【００６２】
一方、図９に示すように、時刻Ｔ９１において外部発振停止カウンタ１３による内部クロック信号ＩＣＬＫの周期数のカウントが開始された後、外部クロック信号ＯＣＬＫが発振された場合（時刻Ｔ９２）には、外部発振検出カウンタ２のカウンタ値ＣＮＴが変化する。これにより、異なる（一致しない）カウンタ値ＣＮＴがラッチ回路９、１０から判定回路１１にそれぞれ出力され、判定回路１１は、判定結果として信号ＳＢを出力する（信号ＳＡを“Ｌ”にし、信号ＳＢを“Ｈ”にする。）。したがって、外部発振停止カウンタ１３のカウンタ値はリセットされ、“０”になる。その後、外部発振停止カウンタ１３は、再び内部クロック信号ＩＣＬＫの周期数のカウントを開始する。
【００６３】
以上、説明したように第２の実施形態によれば、上述した第１の実施形態により得られる効果に加え、外部発振停止検出回路１４を設けることで、外部クロック信号ＯＣＬＫの発振が停止したとしても、外部発振停止検出カウンタ１３からのクリア信号ＸＴＡＬＣＬＲにより、動作クロックＨＣＫＯとして内部クロック信号ＩＣＬＫを出力するように切替え制御することができる。したがって、外部クロック信号ＯＣＬＫの発振が停止したとしても、ＣＰＵが介在する処理を何ら行うことなく、ハードウェアのみの制御により、動作クロックＨＣＫＯとして出力するクロック信号の切替え制御を行うことができ、ＣＰＵの処理負荷を軽減することができる。
【００６４】
また、上記特許文献２のような従来の充放電アナログ回路とは異なり、第２の実施形態ではデジタル回路で外部クロック信号ＯＣＬＫの発振を検出するので、従来の充放電アナログ回路を用いた場合と比較して、回路の消費電流及び消費電力を低減することができる。
また、ハードウェアのみの制御で外部クロック信号ＯＣＬＫの発振停止を確実に検出でき、従来の充放電アナログ回路を用いた場合よりも、回路が停止してから復帰するまでに要する時間を短縮することができる。
【００６５】
なお、上述した第１及び第２の実施形態では、外部クロックＯＣＬＫと内部クロックＩＣＬＫとを一例として、クロック切替え装置について説明したが、本発明は外部クロックＯＣＬＫと内部クロックＩＣＬＫとに限らず、クロック切替え装置が動作している際に常に発振される基準となる基準クロック信号と、上記基準クロックとは異なる他の任意のクロック信号との切替え制御に適用することができる。
【００６６】
また、他の任意のクロック信号（外部クロック信号ＯＣＬＫ）は、１つのに限らず、複数のクロック信号であっても良い。この場合には、複数のクロック信号に優先度（プライオリティ）をつけておき、優先度も参照して切替え回路８にて動作クロック信号ＨＣＫＯとして出力するクロック信号の切替え制御を行えば良い。
【００６７】
また、上述した第１及び第２の実施形態では、クロック切替え装置が有するカウンタは、すべてカウンタ値が１ずつ増加するインクリメントカウンタであったが、カウンタ値が１ずつ減少するデクリメントカウンタを用いても同様に構成することができる。また、上述した第１及び第２の実施形態に示した各カウンタのサイズ（ビット数）は一例であり、要求される互いのカウンタ間の大小関係等を満足すれば、カウンタのサイズは任意である。
【００６８】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００６９】
（付記１）入力される第１のクロック信号の周期数をカウントするとともに、オーバーフローが発生した際に第１のオーバーフロー信号を出力する第１のカウンタ回路と、
上記第１のクロック信号及び上記第１のクロック信号とは異なる第２のクロック信号が入力され、上記第１及び第２のクロック信号の何れか一方を選択的に出力する切替え回路とを備え、
上記切替え回路は、上記第１のオーバーフロー信号に応じて、出力するクロック信号を上記第２のクロック信号から上記第１のクロック信号に切替えることを特徴とするクロック切替え装置。
（付記２）上記第２のクロック信号の周期数をカウントするとともに、オーバーフローが発生した際に第２のオーバーフロー信号を出力する第２のカウンタ回路をさらに備え、
上記第１のカウンタ回路は、カウント値の最大値が上記第２のカウンタ回路のカウント値の最大値より小さく、上記第２のオーバーフロー信号により初期化されることを特徴とする付記１に記載のクロック切替え装置。
（付記３）高周波信号を除去するフィルタ回路をさらに備え、
上記フィルタ回路を介して上記第１のクロック信号を上記第１のカウンタ回路に入力することを特徴とする付記１又は２に記載のクロック切替え装置。
（付記４）上記第１のクロック信号は、複数のクロック信号であり、
上記複数のクロック信号にそれぞれ対応する上記第１のカウンタ回路を備えるることを特徴とする付記１〜３の何れか１項に記載のクロック切替え装置。
（付記５）上記第１のクロック信号の複数のクロック信号に、互いに異なる優先度を付与し、
上記切替え回路は、上記第１のオーバーフロー信号及び上記優先度に応じて、上記第１のクロック信号を出力することを特徴とする付記４に記載のクロック切替え装置。
（付記６）上記第１のカウンタ回路は、上記第１のクロック信号での複数周期の期間、上記第１のオーバーフロー信号を出力することを特徴とする付記１〜５の何れか１項に記載のクロック切替え装置。
（付記７）上記切替え回路は、上記第２のクロック信号から上記第１のクロック信号に出力するクロック信号を切替える際、信号レベルを固定したハイレベルまたはロウレベルの信号を出力し、上記第１のクロック信号の信号レベルが固定した信号レベルと同じレベルになった後、クロック信号を切替えることを特徴とする付記１〜６の何れか１項に記載のクロック切替え装置。
（付記８）上記切替え回路から何れのクロック信号が出力されているかを判別可能なレジスタを備えることを特徴とする付記１〜７の何れか１項に記載のクロック切替え装置。
（付記９）上記レジスタは、上記第１のオーバーフロー信号に基づいて、値が設定されることを特徴とする付記８に記載のクロック切替え装置。
（付記１０）上記切替え回路から出力するクロック信号を、上記第２のクロック信号から上記第１のクロック信号に切替えるタイミングを制御するための信号を入力する入力端子を有することを特徴とする付記１〜９の何れか１項に記載のクロック切替え装置。
（付記１１）上記第１及び第２のカウンタ回路は、インクリメントカウンタであることを特徴とする付記２に記載のクロック切替え装置。
（付記１２）上記第１及び第２のカウンタ回路は、デクリメントカウンタであることを特徴とする付記２に記載のクロック切替え装置。
（付記１３）上記第２のクロック信号は、当該クロック切替え装置が動作している際には、常に発振されていることを特徴とする付記１〜１２の何れか１項に記載のクロック切替え装置。
（付記１４）上記第１のクロック信号の発振停止を検出する発振停止検出回路をさらに備え、
上記切替え回路は、上記発振停止検出回路の検出結果に応じて、出力するクロック信号を上記第１のクロック信号から上記第２のクロック信号に切替えることを特徴とする付記１〜１３の何れか１項に記載のクロック切替え装置。
（付記１５）上記発振停止検出回路は、互いに異なる時点での上記第１のカウンタ回路のカウント値を比較判定する判定回路と、
上記判定回路での判定結果に応じて動作するとともに、オーバーフローが発生した際に第３のオーバーフロー信号を出力する第３のカウンタ回路とを備え、
上記切替え回路は、上記第３のオーバーフロー信号に応じて、出力するクロック信号を上記第１のクロック信号から上記第２のクロック信号に切替えることを特徴とする付記１４に記載のクロック切替え装置。
（付記１６）上記判定回路は、時系列に連続して出力される上記第１のカウンタ回路の隣接する期間のカウンタ値が一致するか否かを比較判定することを特徴とする付記１５に記載のクロック切替え装置。
（付記１７）上記発振停止検出回路は、上記第１のクロック信号の発振停止を検出した際、外部に出力可能な検出信号、内部リセット信号、及び割込み信号のうち少なくとも１つの信号を出力することを特徴とする付記１４〜１６の何れか１項に記載のクロック切替え装置。
（付記１８）上記発振停止検出回路の動作を禁止する制御回路をさらに備えることを特徴とする付記１４〜１７の何れか１項に記載のクロック切替え装置。
（付記１９）上記第１のクロック信号は、複数のクロック信号であり、
上記複数のクロック信号にそれぞれ対応する上記発振停止検出回路を備えることを特徴とする付記１４〜１８の何れか１項に記載のクロック切替え装置。
（付記２０）上記第１のクロック信号は、当該クロック切替え装置を有する半導体演算装置に外部から入力端子を介して供給される外部クロック信号であり、
上記第２のクロック信号は、上記半導体演算装置が内部に有する発振回路で生成される内部クロック信号であることを特徴とする付記１〜１９の何れか１項に記載のクロック切替え装置。
【００７０】
【発明の効果】
以上、説明したように本発明によれば、入力される第１のクロック信号の周期数を第１のカウンタ回路によりカウントし、第１のクロック信号及び第１のクロック信号とは異なる第２のクロック信号が入力される切替え回路は、第１のカウンタ回路から出力される第１のオーバーフロー信号に応じて、出力するクロック信号を第２のクロック信号から第１のクロック信号に切替える。これにより、ＣＰＵは何ら処理を行うことなく、ハードウェアの制御のみで、出力するクロック信号を切替えて出力することができ、ＣＰＵの処理負荷を軽減することができる。
【図面の簡単な説明】
【図１】第１の実施形態によるクロック切替え装置の一構成例を示すブロック図である。
【図２】第１の実施形態によるクロック切替え装置の動作の概要を示すフローチャートである。
【図３】外部クロック信号が正常であるときのクロック切替え装置の動作を示すタイミングチャートである。
【図４】外部クロック信号が異常（低周波）であるときのクロック切替え装置の動作を示すタイミングチャートである。
【図５】外部クロック信号が異常（高周波）であるときのクロック切替え装置の動作を示すタイミングチャートである。
【図６】第２の実施形態によるクロック切替え装置の一構成例を示すブロック図である。
【図７】第２の実施形態によるクロック切替え装置の動作の概要を示すフローチャートである。
【図８】外部クロック信号の発振が停止したときのクロック切替え装置の動作を示すタイミングチャートである。
【図９】外部発振停止検出動作を示すタイミングチャートである。
【符号の説明】
１  ノイズフィルタ
２  外部発振検出カウンタ
３  内部発振検出カウンタ
４、６  エッジ検出回路
５、１２  論理和演算回路
７  レジスタ
８  切替え回路
９、１０  ラッチ回路
１１  判定回路
１３  外部発振停止検出カウンタ
１４  外部発振停止検出回路
【図１】
2004178105.tif 000003
【図２】
2004178105.tif 000004
【図３】
2004178105.tif 000005
【図４】
2004178105.tif 000006
【図５】
2004178105.tif 000007
【図６】
2004178105.tif 000008
【図７】
2004178105.tif 000009
【図８】
2004178105.tif 000010
【図９】
2004178105.tif 000011