(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
図1は、一実施形態の集積回路装置の構成を示すブロック図である。本実施形態の集積回路装置は、クロック生成回路として構成されており、2つの発振器1−1、1−2と、検出器2−1、2−2と、監視回路3−1、3−2と、ANDゲート4−1、4−2と、比較回路5と、セレクタ6とを備えている。
【0017】
当該クロック生成回路の各回路は、概略的には、下記のような動作を行う。発振器1−1、1−2は、それぞれ、クロック信号OSC1、OSC2を生成する。発振器1−1、1−2は、それぞれ独立に制御され、ほぼ同じ周波数になるように調整される。検出器2−1、監視回路3−1、及び、ANDゲート4−1は、クロック信号OSC1の周波数が、特定の許容周波数範囲(クロック生成回路の仕様から許容される周波数の範囲)に入っているかを監視する第1周波数監視部7−1を構成している。同様に、検出器2−2、監視回路3−2、及び、ANDゲート4−2は、クロック信号OSC2の周波数が、当該許容周波数範囲に入っているかを確認する第2周波数監視部7−2を構成している。比較回路5は、発振器1−1、1−2のクロック信号OSC1、OSC2の周波数を比較する。セレクタ6は、クロック信号OSC1、OSC2のうちの一方を選択し、選択したクロック信号を出力クロック信号CLKOUTとして出力する。
【0018】
後に詳細に説明するように、本実施形態では、発振器1−1、1−2が長時間の動作による劣化によって発振周波数(即ち、クロック信号OSC1、OSC2の周波数)が上昇するように構成されており、セレクタ6は、基本的には、劣化が小さい発振器によって生成されたクロック信号、即ち、周波数が低いクロック信号を選択する。ただし、セレクタ6は、クロック信号OSC1、OSC2の一方の周波数が許容周波数範囲に入っていない場合、他方のクロック信号を出力クロック信号CLKOUTとして選択する。また、クロック信号OSC1、OSC2の両方の周波数が許容周波数範囲に入っていない場合には、セレクタ6は、出力クロック信号CLKOUTを出力しない。この場合、セレクタ6は、出力クロック信号CLKOUTを出力する出力端子を、特定の状態(例えば、Lowレベルやハイインピーダンス状態)に固定する。
【0019】
このような構成の本実施形態のクロック生成回路は、クロック信号OSC1、OSC2の周波数の比較を行うと共に、それぞれの周波数を監視するように構成されるため、発振器の数を抑制した構成で(即ち、2つの発振器のみを用いた構成で)、異常の発生時のクロック信号の切り替えを行うことができる。このため、本実施形態のクロック生成回路は、発振器の数を低減させるという要求と、発振周波数の過度の変動に対応するという要求とを同時に満たすことができる。以下、本実施形態のクロック生成回路の各回路の構成と動作について詳細に説明する。
【0020】
図2は、発振器1−1、1−2の構成の例を示す回路図である。
図2には、発振器1−1の構成が図示されているが、発振器1−2も同一の構成を有している。本実施形態では、発振器1−1、1−2は、それぞれ、オペアンプ11と、遅延素子12と、抵抗素子13と、容量素子14とを備えている。遅延素子12と抵抗素子13とは、オペアンプ11の出力と反転入力の間に、直列に接続されており、容量素子14は、オペアンプ11の反転入力と接地端子の間に接続されている。オペアンプ11の非反転入力(正転入力)には、特定の電圧レベルを有する基準電位REFが入力される。このような構成の発振器1−1、1−2では、遅延素子12、抵抗素子13、及び、容量素子14によって正帰還ループが形成され、オペアンプ11の出力からクロック信号OSC1又はOSC2が出力されることになる。
図2の構成の発振器の発振周波数は、容量素子14の容量に依存しており、容量素子14の容量が大きいほど、発振周波数が低くなる。
【0021】
このような構成の発振器1−1、1−2は、長時間の動作によって発振周波数が上昇する。本実施形態のクロック生成回路が半導体装置に集積化される場合、容量素子14としては、一般に、MOS(metal oxide semiconductor)キャパシタ、より一般的には、MIS(metal insulator semiconductor)構造のキャパシタが用いられることになる。MOSキャパシタが容量素子14として用いられる場合、発振器1−1、1−2を長時間動作させると、容量素子14の容量が劣化により小さくなる。この結果、
図2の構成の発振器1−1、1−2は、長時間の動作によって発振周波数が上昇することになる。即ち、発振器1−1、1−2のうち、一方の発振周波数が低い場合、当該一方の発振器は、劣化が小さいことになる。
【0022】
検出器2−1は、クロック信号OSC1の周波数に依存した波形を有する検出信号DETL1、DETH1を生成し、検出器2−2は、クロック信号OSC2の周波数に依存した波形を有する検出信号DETL2、DETH2を生成する。
図3は、検出器2−1の構成の例を示す回路図である。なお、入出力される信号が異なるだけで、検出器2−2も同一の構成を有している。検出器2−1は、NMOSトランジスタ21と、定電流源22と、容量素子23と、比較器として用いられるオペアンプ24、25とを備えている。NMOSトランジスタ21は、そのソースが接地端子に接続され、そのドレインがノードN1に接続され、ゲートにはクロック信号OSC1が供給される。定電流源22は、電源端子とノードN1の間に接続される。容量素子23は、ノードN1と接地端子の間に接続される。オペアンプ24の非反転入力には基準電位REFLが供給され、反転入力はノードN1に接続されている。また、オペアンプ25の非反転入力はノードN1に接続され、反転入力には基準電位REFHが供給される。ここで、基準電位REFL、REFHは、基準電位REFLが基準電位REFHよりも高いように設定される。オペアンプ24の出力信号が、検出信号DETL1として用いられ、オペアンプ25の出力信号が、検出信号DETH1として用いられる。
【0023】
このような構成の検出器2−1は、クロック信号OSC1の周波数に依存した波形を有する検出信号DETL1、DETH1を生成する。ここで、検出信号DETL1は、クロック信号OSC1の周波数が、特定の下限周波数f
Lよりも高いか否かに依存した波形を有しており、検出信号DETH1は、クロック信号OSC1の周波数が、特定の上限周波数f
Hよりも高いか否かに依存した波形を有している。下限周波数f
Lから上限周波数f
Hまでの周波数範囲をクロック信号OSC1の許容周波数範囲として定めた場合、検出信号DETL1、DETH1の波形を監視することにより、クロック信号OSC1が許容周波数範囲内にあるか否かを判断することができる。
【0024】
ここで、下限周波数f
Lは、基準電位REFLに依存して決まり、上限周波数f
Hは、基準電位REFHに依存して決まる。これは、基準電位REFL、REFHを調節することにより、許容周波数範囲の下限周波数f
L、上限周波数f
Hを設定できることを意味している。
【0025】
図4A〜
図4Dは、
図3の構成の検出器2−1の動作を示すタイミングチャートであり、クロック信号OSC1の周波数と検出信号DETL1、DETH1の波形との関係を示している。ここで、
図4Aは、クロック信号OSC1の周波数が下限周波数f
Lより高く上限周波数f
Hより低い場合(即ち、許容周波数範囲にある場合)の検出器2−1の動作を示している。
図4Bは、クロック信号OSC1の周波数が上限周波数f
Hより高い場合の検出器2−1の動作を示しており、
図4Cは、クロック信号OSC1の周波数が下限周波数f
Lより低い場合の検出器2−1の動作を示している。更に、
図4Dは、クロック信号OSC1が接地レベルに固定された場合の検出器2−1の動作を示している。なお、
図4A〜
図4Dにおいて、V
CHGは、ノードN1の電位(即ち、容量素子23に充電されている電圧)を示している。
【0026】
クロック信号OSC1がHighレベルである期間には、NMOSトランジスタ21がオン状態になり、容量素子23が放電される。これにより、ノードN1の電位V
CHGは、接地レベルになる。この場合、ノードN1の電位V
CHGが基準電位REFLより低いので、オペアンプ24から出力される検出信号DETL1は、Highレベルになる。また、ノードN1の電位V
CHGが基準電位REFHより低いので、オペアンプ25から出力される検出信号DETL1は、Lowレベルになる。
【0027】
クロック信号OSC1がLowレベルである期間には、NMOSトランジスタ21がオフ状態になり、定電流源22から出力される定電流が、容量素子23に供給されて容量素子23が充電される。これにより、ノードN1の電位V
CHGが一定の速度で上昇する。即ち、電位V
CHGの波形は、ランプ波形になる。ノードN1の電位V
CHGが基準電位REFHを超えると、検出信号DETH1がLowレベルからHighレベルになる。ノードN1の電位V
CHGが、更に、基準電位REFLを超えると、検出信号DETL1がHighレベルからLowレベルになる。クロック信号OSC1がHighレベルに戻ると、ノードN1の電位V
CHGが接地レベルに戻り、検出信号DETH1はLowレベルに、検出信号DETL1はHighレベルに戻る。
【0028】
このような動作の結果、検出信号DETL1、DETH1は、クロック信号OSC1の周波数に依存した波形を有するように生成される。詳細には、検出信号DETL1は、クロック信号OSC1の周波数が下限周波数f
Lよりも高い場合にHighレベルに固定され、下限周波数f
Lよりも低い場合には、少なくとも一時的にLowレベルになる。検出信号DETL1がLowレベルになることは、クロック信号OSC1の周波数が下限周波数f
Lよりも低くなる異常が発生していることを意味している。
【0029】
また、検出信号DETH1は、クロック信号OSC1の周波数が上限周波数f
Hよりも高い場合には常にLowレベルになり、上限周波数f
Hよりも低い場合には特定の周波数でパルスが現れる信号(即ち、特定の周波数でHighレベルとLowレベルを繰り返す信号)になる。ここで、クロック信号OSC1の周波数が上限周波数f
Hよりも低い場合の検出信号DETH1の周波数は、クロック信号OSC1の周波数に一致している。また、クロック信号OSC1がLowレベルに固定される場合には、検出信号DETH1は、Highレベルに固定される信号になる。監視回路3−1、及び、ANDゲート4−1は、クロック信号OSC1の周波数に依存した波形を有する検出信号DETL1、DETH1から、クロック信号OSC1の周波数が許容周波数範囲にあるかを判断する機能を有している。
【0030】
検出器2−2が検出器2−1と同一の構成を有しているから、検出信号DETL2、DETH2も、同様に、クロック信号OSC2の周波数に依存した波形を有するように生成される。詳細には、検出信号DETL2は、クロック信号OSC2の周波数が下限周波数f
Lよりも高い場合にHighレベルに固定され、下限周波数f
Lよりも低い場合には、少なくとも一時的にLowレベルになる。また、検出信号DETH2は、クロック信号OSC2の周波数が上限周波数f
Hよりも高い場合には常にLowレベルになり、上限周波数f
Hよりも低い場合には特定の周波数でパルスが現れる信号(即ち、特定の周波数でHighレベルとLowレベルを繰り返す信号)になる。ここで、クロック信号OSC2の周波数が上限周波数f
Hよりも低い場合の検出信号DETH2の周波数は、クロック信号OSC2の周波数に一致している。また、クロック信号OSC2がLowレベルに固定される場合には、検出信号DETH2は、Highレベルに固定される信号になる。監視回路3−2、及び、ANDゲート4−2は、クロック信号OSC2の周波数に依存した波形を有する検出信号DETL2、DETH2から、クロック信号OSC2の周波数が許容周波数範囲にあるかを判断する機能を有している。
【0031】
監視回路3−1、3−2は、それぞれ、検出信号DETH1、DETH2を監視し、検出信号DETH1、DETH2に応答してクロック信号OSC1、OSC2が上限周波数f
Hよりも高いか否かを示すモニタ信号MON1、MON2を生成する。
図5は、監視回路3−1の構成を示すブロック図である。監視回路3−1は、カウンタ31と、一致回路32と、Dフリップフロップ33とを備えている。カウンタ31は、クロック信号OSC2のクロックパルスをカウントする。ここで、カウンタ31は、検出信号DETH1がHighレベルになるとリセットされる。一致回路32は、カウンタ31のカウント値が所定値になると、出力信号がHighレベルになるように構成されている。カウンタ31のカウント値が該所定値未満である場合には、一致回路32の出力信号はLowレベルになる。Dフリップフロップ33は、クロック信号OSC2に同期して一致回路32の出力信号をラッチする信号である。Dフリップフロップ33の反転出力/Qから出力される信号が、モニタ信号MON1として使用される。
【0032】
本実施形態では、カウンタ31として3ビットカウンタが使用され、一致回路32は、カウンタ31のカウンタ値が7(=「111」)となったとき、その出力信号をHighレベルにする。即ち、クロック信号OSC2の7周期の間、検出信号DETH1がHighレベルに維持されている場合、一致回路32の出力信号がHighレベルになり、モニタ信号MON1がLowレベルになる。モニタ信号MON1がLowレベルになることは、クロック信号OSC1の周波数が上限周波数f
Hよりも高くなる異常が発生していることを示している。なお、入出力される信号が異なるだけで、監視回路3−2も監視回路3−1と同一の構成を有しており、同様の動作を行う。
【0033】
ANDゲート4−1は、検出信号DETL1とモニタ信号MON1の論理積に対応する出力信号を生成する。ANDゲート4−1の出力信号が、クロック信号OSC1の周波数が許容周波数範囲にあるか否かを示すクロック正常信号OSC1GDとして使用される。クロック信号OSC1の周波数が許容周波数範囲から外れる異常が発生した場合、検出信号DETL1とモニタ信号MON1の少なくとも一方がLowレベルになるから、クロック正常信号OSC1GDが、常時にHighレベルに維持されることは、クロック信号OSC1の周波数が許容周波数範囲にあることを意味している。同様に、ANDゲート4−2は、検出信号DETL2とモニタ信号MON2の論理積に対応する出力信号を生成する。ANDゲート4−2の出力信号が、クロック信号OSC2の周波数が許容周波数範囲にあるか否かを示すクロック正常信号OSC2GDとして使用される。
【0034】
比較回路5は、クロック信号OSC1、OSC2の周波数を比較し、比較の結果に応じて選択信号SELを出力する。本実施形態では、クロック信号OSC1の周波数が、クロック信号OSC2の周波数と差異がないと検出された場合、又は、クロック信号OSC2の周波数よりも低いと検出された場合、選択信号SELがHighレベルに設定される。また、クロック信号OSC2の周波数が、クロック信号OSC1の周波数よりも低いと検出された場合、選択信号SELがLowレベルに設定される。
【0035】
図6は、比較回路5の構成の例を示すブロック図である。比較回路5は、カウンタ41−1、41−2と、一致回路42−1、42−2、43−1、43−2と、レジスタ44−1、44−2と、判定回路45とを備えている。
【0036】
カウンタ41−1は、検出器2−1から出力される検出信号DETH1のパルスをカウントする。同様に、カウンタ41−2は、検出器2−2から出力される検出信号DETH2のパルスをカウントする。本実施形態では、カウンタ41−1、41−2として、3ビットカウンタが使用される。ここで、カウンタ41−1、41−2は、一致回路43−1の出力信号がHighレベルである場合、検出信号DETH1の立ち上がりに同期してリセットされる。
【0037】
一致回路42−1、42−2は、それぞれ、クロック信号OSC1、OSC2の立ち下がりに同期してカウンタ41−1、41−2のカウント値をモニタする。一致回路42−1、42−2は、それぞれクロック信号OSC1、OSC2が立ち下がった時にカウンタ41−1、41−2のカウント値が所定の設定値(本実施形態では“4”(=「100」)である場合に、その出力信号をHighレベルに設定し、そうでない場合、出力信号をLowレベルに設定する。
【0038】
また、一致回路43−1、43−2は、それぞれ、クロック信号OSC1、OSC2に同期してカウンタ41−1、41−2のカウント値をモニタする。一致回路43−1、43−2は、カウンタ41−1、41−2のカウント値が所定の設定値(本実施形態では“7”(=「111」)である場合に、その出力信号をHighレベルに設定し、そうでない場合、出力信号をLowレベルに設定する。ここで、一致回路43−1、43−2の設定値は、一致回路42−1、42−2の設定値よりも大きくなるように定められる。
【0039】
レジスタ44−1は、一致回路42−2の出力信号の立ち上がりに同期してカウンタ41−1のカウンタ値をラッチする。以下では、レジスタ44−1がラッチしている値を、レジスタ値REG1という。ここで、レジスタ44−1は、検出信号DETH1に応じて生成されるカウンタ41−1のカウンタ値を、検出信号DETH2に応じて生成される一致回路42−2の出力信号に同期してラッチすることに留意されたい。同様に、レジスタ44−2は、一致回路42−1の出力信号の立ち上がりに同期してカウンタ41−2のカウンタ値をラッチする。以下では、レジスタ44−2がラッチしている値を、レジスタ値REG2という。レジスタ44−2についても、検出信号DETH2に応じて生成されるカウンタ41−2のカウンタ値を、検出信号DETH1に応じて生成される一致回路42−1の出力信号に同期してラッチすることに留意されたい。
【0040】
判定回路45は、一致回路43−1、43−2の少なくとも一方の出力信号がHighレベルになると、レジスタ値REG1、REG2を比較し、レジスタ値REG1、REG2の比較結果に対応する出力信号を生成する。判定回路45の出力信号が、クロック信号OSC1、OSC2の周波数の比較結果に対応する選択信号SELとして使用される。
【0041】
図7は、判定回路45の動作を示す真理値表である。REG1−REG2の値が、第1閾値、より具体的には2以上である場合、選択信号SELがLowレベルに設定される。一方、REG1−REG2の値が、該第1閾値よりも小さく第2閾値よりも大きい場合、より具体的には、REG1−REG2の値が−1以上且つ1以下である場合、選択信号SELがHighレベルに設定される。ここで、第2閾値は、該第1閾値よりも小さい値であり、本実施形態では、第2閾値が、第1閾値と絶対値が等しく、且つ、符号が反対であるように定められる。更に、REG1−REG2の値が、該第2閾値以下である場合、より具体的には、REG1−REG2の値が−2以下である場合も、選択信号SELがHighレベルに設定される。
【0042】
ここで、REG1−REG2の値が2以上である場合、これは、クロック信号OSC1の周波数がクロック信号OSC2の周波数よりも有意に高い(即ち、クロック信号OSC1を生成する発振器1−1の劣化が大きい)と検出されたことを意味している。また、REG1−REG2の値が−2以下である場合、これは、クロック信号OSC2の周波数がクロック信号OSC1の周波数よりも有意に高いと検出された(即ち、クロック信号OSC2を生成する発振器1−2の劣化が大きい)ことを意味している。また、REG1−REG2の値が−1以上、1以下である場合、クロック信号OSC1、OSC2に有意な差異がないと検出されたことを意味している。
【0043】
図8A、
図8B、
図9、
図10は、比較回路5の動作の例を示すタイミングチャートである。ここで、
図8A、
図8Bは、クロック信号OSC1、OSC2の周波数に有意な差がないと検出される場合の比較回路5の動作を示している。詳細には、
図8Aは、クロック信号OSC1の周波数がクロック信号OSC2の周波数よりも微小に高い場合、
図8Bは、クロック信号OSC1の周波数がクロック信号OSC2の周波数よりも微小に低い場合の比較回路5の動作を示している。また、
図9は、クロック信号OSC2の周波数がクロック信号OSC1の周波数より有意に高いと検出される場合の比較回路5の動作を示しており、また、
図10は、クロック信号OSC1の周波数がクロック信号OSC2の周波数より有意に高いと検出される場合の比較回路5の動作を示している。
【0044】
カウンタ41−1、41−2は、それぞれ検出信号DETH1、DETH2のパルスをカウントするカウント動作を行う。カウント動作により、カウンタ41−1、41−2の出力、即ち、カウンタ値は、逐次に増加していく。検出信号DETH1、DETH2の周波数は、クロック信号OSC1、OSC2の周波数が上限周波数f
H以下であれば、それぞれクロック信号OSC1、OSC2の周波数に一致しているので、クロック信号OSC1、OSC2の周波数が高いほど、それぞれカウンタ41−1、41−2のカウンタ値が速く増加することになる。比較回路5から出力される選択信号SELの値は、カウンタ41−1、41−2それぞれのカウンタ値の増加の速度に応じて決定される。
【0045】
図8Aの例では、カウンタ41−1のカウンタ値が“4”になると、クロック信号OSC1の立ち下がりに同期して一致回路42−1の出力信号がHighレベルになり、レジスタ44−2が、カウンタ41−2のカウンタ値をラッチする。
図8Aの例では、レジスタ値REG2として値“4”が設定されることになる。続いて、カウンタ41−2のカウンタ値が“4”になると、クロック信号OSC2の立ち下がりに同期して一致回路42−2の出力信号がHighレベルになり、レジスタ44−1が、カウンタ41−1のカウンタ値をラッチする。
図8Aの例では、レジスタ値REG1として値“5”が設定されることになる。その後、カウンタ41−1のカウンタ値が“7”になると、判定回路45により、レジスタ値REG1、REG2が比較される。
図8Aの例では、レジスタ値REG1、REG2の差(即ち、REG1−REG2)が“1”であるため、選択信号SELがHighレベルに設定されることになる。加えて、カウンタ41−1のカウンタ値が“7”になったことに応答して、カウンタ41−1、41−2がリセットされる。その後は、同様の動作が繰り返される。
【0046】
一方、
図8Bの例では、カウンタ41−2のカウンタ値が“4”になると、クロック信号OSC2の立ち下がりに同期して一致回路42−2の出力信号がHighレベルになり、レジスタ44−1が、カウンタ41−1のカウンタ値をラッチする。
図8Bの例では、レジスタ値REG1として値“4”が設定されることになる。続いて、カウンタ41−1のカウンタ値が“4”になると、クロック信号OSC1の立ち下がりに同期して一致回路42−1の出力信号がHighレベルになり、レジスタ44−2が、カウンタ41−2のカウンタ値をラッチする。
図8Bの例では、レジスタ値REG2として値“5”が設定されることになる。その後、カウンタ41−2のカウンタ値が“7”になると、判定回路45により、レジスタ値REG1、REG2が比較される。
図8Bの例では、レジスタ値REG1、REG2の差(即ち、REG1−REG2)が“−1”であるため、選択信号SELがHighレベルに設定されることになる。その後、カウンタ41−1のカウンタ値が7になると、カウンタ41−1、41−2がリセットされる。その後は、同様の動作が繰り返される。
【0047】
また、クロック信号OSC2の周波数がクロック信号OSC1の周波数より有意に高い
図9の例では、カウンタ41−2のカウンタ値が、カウンタ41−1のカウンタ値よりも速く“4”になる。カウンタ41−2のカウンタ値が“4”になると、クロック信号OSC2の立ち下がりに同期して一致回路42−2の出力信号がHighレベルになり、レジスタ44−1が、カウンタ41−1のカウンタ値をラッチする。
図9の例では、レジスタ値REG1として値“2”が設定されることになる。続いて、カウンタ41−1のカウンタ値が“4”になると、クロック信号OSC1の立ち下がりに同期して一致回路42−1の出力信号がHighレベルになり、レジスタ44−2が、カウンタ41−2のカウンタ値をラッチする。
図9の例では、レジスタ値REG2として値“7”が設定されることになる。更に、カウンタ41−2のカウンタ値が“7”になると、判定回路45により、レジスタ値REG1、REG2が比較される。
図9の例では、レジスタ値REG1、REG2の差(即ち、REG1−REG2)が“−5”であるため、選択信号SELがHighレベルに設定されることになる。その後、カウンタ41−1のカウンタ値が7になると、カウンタ41−1、41−2がリセットされる。その後は、同様の動作が繰り返される。
【0048】
一方、クロック信号OSC1の周波数がクロック信号OSC2の周波数より有意に高い
図10の例では、カウンタ41−1のカウンタ値が、カウンタ41−2のカウンタ値よりも速く“4”になる。カウンタ41−1のカウンタ値が“4”になると、クロック信号OSC1の立ち下がりに同期して一致回路42−1の出力信号がHighレベルになり、レジスタ44−2が、カウンタ41−2のカウンタ値をラッチする。
図10の例では、レジスタ値REG2として値“3”が設定されることになる。続いて、カウンタ41−2のカウンタ値が“4”になると、クロック信号OSC2の立ち下がりに同期して一致回路42−2の出力信号がHighレベルになり、レジスタ44−1が、カウンタ41−1のカウンタ値をラッチする。
図10の例では、レジスタ値REG1として値“5”が設定されることになる。その後、カウンタ41−1のカウンタ値が“7”になると、判定回路45により、レジスタ値REG1、REG2が比較される。
図10の例では、レジスタ値REG1、REG2の差(即ち、REG1−REG2)が2であるため、選択信号SELがLowレベルに設定されることになる。加えて、カウンタ41−1のカウンタ値が“7”になったことに応答して、カウンタ41−1、41−2がリセットされる。その後は、同様の動作が繰り返される。
【0049】
図1を再度に参照して、セレクタ6は、比較回路5から出力された選択信号SELに応答して、発振器1−1、1−2から出力されるクロック信号OSC1、OSC2の一方を、出力クロック信号CLKOUTとして選択する機能を有している。セレクタ6は、選択信号SELに加え、ANDゲート4−1、4−2から出力されるクロック正常信号OSC1GD、OSC2GDに応答して、クロック信号OSC1、OSC2のうちから出力クロック信号CLKOUTを選択する。ここで、クロック正常信号OSC1GDは、クロック信号OSC1の周波数が許容周波数範囲に入っているかを示す信号であり、クロック正常信号OSC2GDは、クロック信号OSC2の周波数が許容周波数範囲に入っているかを示す信号であることに留意されたい。セレクタ6は、更に、クロック正常信号OSC1GD、OSC2GDに応答して、発振器1−1、1−2が正常に動作しているかを示す発振器正常動作信号CLKGDを生成する。
【0050】
図11は、セレクタ6の動作を示す真理値表である。セレクタ6は、クロック正常信号OSC1GD、OSC2GDの両方がLowレベルである場合、選択信号SELの値に関わらず、クロック信号OSC1、OSC2のいずれも選択せず、出力クロック信号CLKOUTをLowレベルに固定し、更に、発振器正常動作信号CLKGDをLowレベルにする。また、クロック正常信号OSC1GDがLowレベルでクロック正常信号OSC2GDがHighレベルである場合、選択信号SELの値に関わらず、クロック信号OSC2を出力クロック信号CLKOUTとして選択し、更に、発振器正常動作信号CLKGDをLowレベルにする。一方、クロック正常信号OSC2GDがLowレベルでクロック正常信号OSC1GDがHighレベルである場合、選択信号SELの値に関わらず、クロック信号OSC1を出力クロック信号CLKOUTとして選択し、更に、発振器正常動作信号CLKGDをLowレベルにする。
【0051】
クロック正常信号OSC1GD、OSC2GDの両方がHighレベルである場合には、セレクタ6は、選択信号SELの値に応じてクロック信号OSC1、OSC2のいずれかを出力クロック信号CLKOUTとして選択する。詳細には、選択信号SELがHighレベルである場合、セレクタ6は、クロック信号OSC1を出力クロック信号CLKOUTとして選択する。一方、選択信号SELがLowレベルである場合、セレクタ6は、クロック信号OSC2を出力クロック信号CLKOUTとして選択する。ここで、クロック正常信号OSC1GD、OSC2GDの両方がHighレベルである場合には、セレクタ6は、発振器正常動作信号CLKGDをHighレベルに設定する。
【0052】
このような動作によれば、出力クロック信号CLKOUTが、下記のように選択されることになる。まず、クロック信号OSC1、OSC2の周波数が、いずれも、許容周波数範囲内にある場合には、クロック信号OSC1、OSC2のうち周波数が低いものを出力クロック信号CLKOUTとして選択する。より厳密には、クロック信号OSC1、OSC2のうちクロック信号OSC1の周波数が低いと検出された場合、クロック信号OSC1が出力クロック信号CLKOUTとして選択される。また、クロック信号OSC1、OSC2の周波数が同等であると検出された場合にも、クロック信号OSC1が出力クロック信号CLKOUTとして選択される。一方、クロック信号OSC1、OSC2のうちクロック信号OSC2の周波数が低いと検出された場合、クロック信号OSC2が出力クロック信号CLKOUTとして選択される。
【0053】
また、クロック信号OSC1、OSC2の一方が許容周波数範囲内にあり、他方が許容周波数範囲内にない場合には、許容周波数範囲内にあるクロック信号が、出力クロック信号CLKOUTとして選択される。更に、クロック信号OSC1、OSC2の両方が許容周波数範囲内にない場合には、クロック信号OSC1、OSC2のいずれも出力クロック信号CLKOUTとして選択されず、出力クロック信号CLKOUTが所定の状態(本実施形態では、Lowレベル)に固定される。
【0054】
更に、発振器正常動作信号CLKGDは、クロック信号OSC1、OSC2の少なくとも一方の周波数が、許容周波数範囲にない場合にLowレベルに設定され、クロック信号OSC1、OSC2の両方の周波数が、許容周波数範囲内である場合にHighレベルに設定される。
【0055】
以上に説明されているクロック生成回路の構成及び動作によれば、クロック信号OSC1、OSC2の周波数が比較され、その比較の結果に応じてクロック信号OSC1、OSC2のうちから出力クロック信号CLKOUTが選択される。このため、2つの発振器のみを有する構成でより適切なクロック信号を選択することができる。このとき、クロック信号OSC1、OSC2のそれぞれについて許容周波数範囲にあるかが判断されるため、クロック信号OSC1、OSC2の周波数の過度の変動に対応することができる。このように、本実施形態のクロック生成回路は、発振器の数を低減させるという要求と、発振周波数の過度の変動に対応するという要求とを同時に満たすことができる。
【0056】
ここで、本実施形態では、発振器1−1、1−2が長時間の動作による劣化によって発振周波数(即ち、クロック信号OSC1、OSC2の周波数)が上昇するように構成されている一方で、セレクタ6は、周波数が低いクロック信号を選択する。したがって、劣化が小さい発振器によって生成されたクロック信号を出力クロック信号CLKOUTとして出力することができる。
【0057】
上述の実施形態における集積回路装置、及び、監視回路3−1、3−2の構成(
図1、
図5参照)では、監視回路3−1が、検出信号DETH1に基づいて、クロック信号OSC2が上限周波数f
Hよりも高いか否かを監視し、監視回路3−2は、検出信号DETH2に基づいて、クロック信号OSC1が上限周波数fHよりも高いか否かを監視している。ここで、監視回路3−1が検出信号DETH1に基づいてクロック信号OSC1を監視し、監視回路3−2が検出信号DETH2に基づいてクロック信号OSC2を監視するように、集積回路装置、及び、監視回路3−1、3−2の構成を変更してもよい。
【0058】
図18は、
図1の集積回路装置の変形例を示すブロック図であり、
図19は、
図18の集積回路装置で使用される監視回路3−1、3−2の構成を示すブロック図である。本変形例では、監視回路3−1は、クロック信号OSC1に基づいて生成された検出信号DETH1によりクロック信号OSC1の周波数を監視し、監視回路3−2は、クロック信号OSC2に基づいて生成された検出信号DETH2によりクロック信号OSC2の周波数を監視する。つまり、一方のクロック信号OSC1が上限周波数f
Hよりも高いか否かを監視するために、他方のクロック信号OSC2を必要としない。逆も然りである。例えば、一方のクロック信号(OSC1又はOSC2)が停止していた場合、
図1および
図5の監視回路の構成によれば、他方のクロック信号が上限周波数f
Hよりも高い場合に、高い状態(異常)であることを検出できない可能性がある。しかし、
図18の集積回路装置及び
図19の監視回路の構成によれば、一方のクロック信号(OSC1又はOSC2)が停止した状態であっても、残ったクロック信号が上限周波数f
Hに達していないかどうかを監視できる。よって、出力クロック信号CLKOUTの信頼性を、より高めることができる。
【0059】
また、上述の実施形態において、発振器1−1、1−2として、長時間の動作による劣化によって発振周波数(即ち、クロック信号OSC1、OSC2の周波数)が低下するように構成された発振器が採用されてもよい。
図12は、長時間の動作による劣化によって発振周波数(即ち、クロック信号OSC1、OSC2の周波数)が低下する発振器の構成の例を示す回路図である。
図12の構成では、発振器1−1、1−2が、オペアンプ51と、NMOSトランジスタ52と、定電流源53と、容量素子54とを備えている。オペアンプ51は、その非反転入力がノードN2に接続され、反転入力には基準電位REFが供給される。NMOSトランジスタ52は、そのゲートがオペアンプ51の出力に接続され、ソースが接地端子に接続され、ドレインがノードN2に接続されている。定電流源53は、電源端子とノードN2の間に接続され、容量素子54は、ノードN2と接地端子に接続されている。このような構成の発振器が発振器1−1、1−2として使用される場合、オペアンプ51の出力信号が、クロック信号OSC1又はOSC2として使用される。
図12の構成の発振器の発振周波数は、容量素子54の容量値に加え、NMOSトランジスタ52のオフリーク電流や定電流源53の電流量にも依存している。劣化により、NMOSトランジスタ52のオフリーク電流が増大したり、定電流源53の電流量が減少したりし、それらの劣化の程度が容量素子54の劣化よりも支配的であれば、発振周波数が低くなる。即ち、
図12の構成の発振器では、長時間の動作による劣化によってNMOSトランジスタ52のオフリーク電流が増大したり、定電流源53の電流量が減少したりし、それに起因する発振周波数の減少の程度が、容量素子54の容量値の増大による発振周波数の増大の程度よりも大きければ、結果的に、発振周波数が低くなる。この場合には、出力するクロック信号の周波数が低い場合に発振器の劣化が進んでいることを意味している。
【0060】
このような構成の発振器が採用される場合、比較回路5の判定回路45における選択信号SELを生成するロジックが、周波数が高いクロック信号(劣化が小さい発振器によって生成されたクロック信号)がセレクタ6によって出力クロック信号CLKOUTとして選択されるように変更される。
【0061】
図13は、長時間の動作による劣化によって発振周波数が低下するように構成された発振器が発振器1−1、1−2として採用される場合の、判定回路45の動作を示す真理値表である。REG1−REG2の値が、第2閾値、より具体的には、−2以下である場合、選択信号SELがLowレベルに設定される。一方、REG1−REG2の値が、該第2閾値よりも大きく、第1閾値よりも小さい場合、より具体的には、REG1−REG2の値が−1以上且つ1以下である場合、選択信号SELがHighレベルに設定される。また、REG1−REG2の値が第1閾値以上である場合、より具体的には、REG1−REG2の値が2以上である場合、選択信号SELがHighレベルに設定される。
【0062】
ここで、REG1−REG2の値が2以上である場合、これは、クロック信号OSC1の周波数がクロック信号OSC2の周波数よりも有意に高い(即ち、クロック信号OSC1を生成する発振器1−1の劣化が小さい)と検出されたことを意味している。また、REG1−REG2の値が−2以下である場合、これは、クロック信号OSC2の周波数がクロック信号OSC1の周波数よりも有意に高いと検出された(即ち、クロック信号OSC2を生成する発振器1−2の劣化が小さい)ことを意味している。また、REG1−REG2の値が−1以上、1以下である場合、クロック信号OSC1、OSC2に有意な差異がないと検出されたことを意味している。セレクタ6は、選択信号SELに応じて、周波数が高いクロック信号、即ち、劣化が小さい発振器によって生成されたクロック信号を選択する。
【0063】
このような判定回路45の動作によれば、長時間の動作による劣化によって発振周波数が低下するように構成された発振器が使用される場合について、劣化が小さい発振器によって発生されたクロック信号を出力クロック信号CLKOUTとして選択することができる。
【0064】
他の変形例としては、
図14に図示されているように、比較回路5において、判定論理切替信号に応じて選択信号SELを生成するロジックを切り替え可能に構成された判定回路45Aが使用されてもよい。判定回路45Aは、判定論理切替信号の状態に応じて、
図7に図示されているロジック、
図13に図示されているロジックのいずれかで動作する。これにより、クロック信号OSC1の周波数とクロック信号OSC2の周波数との比較の結果と、選択信号SELによって選択されるクロック信号との対応関係を、判定論理切替信号の設定によって切り替えることができる。このような構成は、発振器1−1、1−2の劣化のモードが設計時には不明である場合に、実デバイスの信頼性試験等により把握された劣化のモードに応じて判定論理切替信号の状態を設定することで、劣化が小さい発振器によって発生されたクロック信号を出力クロック信号CLKOUTとして選択することを可能にする。
【0065】
更に他の変形例としては、
図15に図示されているように、比較回路5において、クロック信号OSC1、OSC2の周波数の変化(即ち、発振器1−1、1−2の劣化)を検出したことを発振器1−1、1−2に知らせる制御信号SW1、SW2を生成する判定回路45Bが使用されてもよい。この場合、発振器1−1、1−2は、発振動作に関連する回路素子のうち劣化しやすい回路素子を、制御信号SW1、SW2に応じて切り替え可能であるように構成される。
【0066】
図16は、制御信号SW1に応答して内部で使用する回路素子を切り替えるように構成された発振器1−1の構成の例を示す回路図である。
図16に図示された発振器1−1は、オペアンプ61と、NMOSトランジスタ62と、定電流源63、64と、PMOSトランジスタ65、66と、NMOSトランジスタ67、68と、インバータ69と、容量素子70、71とを備えている。オペアンプ61は、その非反転入力がノードN3に接続され、反転入力には基準電位REFが供給される。NMOSトランジスタ62は、そのゲートがオペアンプ61の出力に接続され、ソースが接地端子に接続され、ドレインがノードN3に接続されている。定電流源63とPMOSトランジスタ65とは、電源端子とノードN3の間に直列に接続され、定電流源64とPMOSトランジスタ66とは、定電流源63とPMOSトランジスタ65とは並列に、且つ、電源端子とノードN3の間に直列に接続されている。PMOSトランジスタ65、66は、いずれも、制御信号SW1に応答して動作するスイッチ素子として動作し、定電流源63、64を選択するセレクタとして機能する。また、NMOSトランジスタ67と容量素子70とは、ノードN3と接地端子との間に直列に接続され、NMOSトランジスタ68と容量素子71とは、NMOSトランジスタ67と容量素子70とは並列に、且つ、ノードN3と接地端子との間に直列に接続されている。NMOSトランジスタ67、68は、いずれも、制御信号SW1に応答して動作するスイッチ素子として動作し、容量素子70、71を選択するセレクタとして機能する。
【0067】
発振器1−1の動作を制御する制御信号SW1は、PMOSトランジスタ66のゲートとNMOSトランジスタ67のゲートとに供給されている。加えて、インバータ69によって制御信号SW1の反転信号が生成され、該反転信号が、PMOSトランジスタ65のゲートとNMOSトランジスタ68のゲートとに供給されている。制御信号SW1がHighレベルになると、PMOSトランジスタ65、NMOSトランジスタ67がオン状態になり、PMOSトランジスタ66、NMOSトランジスタ68がオフ状態になる。この結果、定電流源63、容量素子70がノードN3に電気的に接続され、オペアンプ61、NMOSトランジスタ62、定電流源63及び容量素子70により、発振動作が行われる。このとき、定電流源64及び容量素子71は、ノードN3から切り離され、発振器1−1の発振動作には寄与しない。一方、制御信号SW1がLowレベルになると、PMOSトランジスタ65、NMOSトランジスタ67がオフ状態になり、PMOSトランジスタ66、NMOSトランジスタ68がオン状態になる。この結果、定電流源64、容量素子71がノードN3に電気的に接続され、定電流源63及び容量素子70の代わりに定電流源64及び容量素子71が用いられて、発振器1−1の発振動作が行われる。即ち、
図16の構成の発振器1−1では、制御信号SW1によって定電流源63及び容量素子70の組、又は、定電流源64及び容量素子71の組のうち、発振動作に用いられる組を選択することができる。
【0068】
発振器1−2についても同様に、
図16の構成の発振器を用いることにより、制御信号SW2に応答して、定電流源63及び容量素子70の組、又は、定電流源64及び容量素子71の組のうち、発振動作に用いられる組を選択することができる。
【0069】
図17は、
図16に示された構成の発振器を用いる場合の比較回路5の判定回路45Bの動作を示す真理値表である。REG1−REG2の値が、第1閾値、より具体的には“2”以上である場合、これは、発振器1−1によって生成されるクロック信号OSC1の周波数が有意に高いと検出されたことを意味している。この場合、選択信号SELがLowレベルに設定されて発振器1−2によって生成されるクロック信号OSC2が選択される。加えて、制御信号SW1がLowレベルに設定されることで、発振器1−1において使用される定電流源及びキャパシタの組が切り換えられる。
【0070】
一方、REG1−REG2の値が、該第1閾値よりも小さく、第1閾値より小さい第2閾値より大きい場合、より具体的には、REG1−REG2の値が“−1”以上“1”以下である場合、これは、クロック信号OSC1、OSC2の周波数に差異がないと検出されたことを意味している。この場合、選択信号SELがHighレベルに設定されて発振器1−1によって生成されるクロック信号OSC1が選択される。
【0071】
また、REG1−REG2の値が、第2閾値以下である場合、より具体的には、REG1−REG2の値が“−2”以下である場合、これは、発振器1−2によって生成されるクロック信号OSC2の周波数が有意に高いと検出されたことを意味している。この場合、選択信号SELがHighレベルに設定されて発振器1−1によって生成されるクロック信号OSC1が選択される。加えて、制御信号SW2がLowレベルに設定されることで、発振器1−2において使用される定電流源及びキャパシタの組が切り換えられる。
【0072】
図17に示されている動作では、容量素子70、71の劣化による周波数の上昇に対応した動作を行うことができる。発振器1−1、1−2のうち周波数が高いクロック信号を生成する発振器に供給される制御信号(SW1又はSW2)がHighレベルからLowレベルに切り替えられ、これにより、容量素子及び定電流源が切り替えられる。これにより、発振器1−1、1−2のうち周波数が高い発振器を、正常な状態に戻すことが出来る。
【0073】
言い換えると、REG1−REG2の値が、“2”以上である場合、より正常なクロック信号OSC2を選択するべく、選択信号SELがLowレベルに設定されるとともに、クロック信号OSC1の周波数を下げるべく、制御信号SW1がLowレベルに設定され、発振器1−1において使用される定電流源及びキャパシタの組が切り替えられる。逆に、REG1−REG2の値が、“−2”以下である場合、より正常なクロック信号OSC1を選択するべく、選択信号SELがHighレベルに設定されるとともに、クロック信号OSC2の周波数を下げるべく、制御信号SW2がLowレベルに設定され、発振器1−2において使用される定電流源及びキャパシタの組が切り替えられる。つまり、周波数の正常な発振器を選択するとともに、周波数の高い発振器の容量素子及び定電流源を切り替え、正常な状態に近づけることで、寿命を延ばすことができる。なお、REG1−REG2の値が、“−1〜1”である場合、クロック信号OSC1及びOCS2の周波数はほぼ同じであるため、相対精度が高く、いずれも正常と判断できる。従って、容量素子及び定電流源の切り替えは不要であるため、制御信号SW1及びSW2はいずれもHighレベルのままで良い。また、クロック信号OSC1及びOCS2のいずれを選択しても良いが、この場合は、クロック信号OSC1を選択するとしたので、選択信号SELはHighレベルとなっている。
【0074】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。