(57)【要約】【課題】オシレータ出力、又はＰＬＬ出力、又はリングオシレータ出力のいずれかに発振異常が発生しているか否かを判定できる半導体集積回路を提供する。【解決手段】本発明の半導体集積回路１は、第１の発振器（オシレータ２）と、第２の発振器（ＰＬＬ３）と、第３の発振器（リングオシレータ４）と、第１の発振器２のクロック、第２の発振器３のクロックを第３の発振器４のクロックに基づいて順に切り替えて出力するセレクタ６と、セレクタ６から出力されたクロックを、第３の発振器４のクロックに基づいてアップカウント又はダウンカウントし、アップカウント又はダウンカウントの結果に基づいて、セレクタ６から出力されたクロックと、第３の発振器４のクロックとの整合性を判定し、いずれかのクロックに発振異常が発生しているか否かを判定する判定回路７と、を備える。【選択図】図１
2011059851.tif 000002
【特許請求の範囲】
【請求項１】
第１の発振器と、
第２の発振器と、
第３の発振器と、
前記第１の発振器のクロック、前記第２の発振器のクロックを前記第３の発振器のクロックに基づいて順に切り替えて出力するセレクタと、
前記セレクタから出力されたクロックを、前記第３の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、前記セレクタから出力されたクロックと、前記第３の発振器のクロックとの整合性を判定し、いずれかの前記クロックに発振異常が発生しているか否かを判定する判定回路と、
を備える半導体集積回路。
【請求項２】
前記判定回路は、
前記セレクタから出力されたクロックを、前記第３の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、オーバーフロー信号又はアンダーフロー信号を出力するカウント部と、
前記アップカウントから前記ダウンカウントに切り替わる際のカウント値と、予め設定された第１の閾値とを比較して、前記カウント値が前記第１の閾値未満であると、発振異常信号を出力する第１の判定部と、
前記ダウンカウントから前記アップカウントに切り替わる際のカウント値と、予め設定された第２の閾値とを比較して、前記カウント値が前記第２の閾値以上であると、発振異常信号を出力する第２の判定部と、
を備えることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記カウント部は、前記第１の発振器のクロックが入力されるアップカウント部と、前記第２の発振器のクロックが入力されるダウンカウント部と、を備え、
前記アップカウント部のビット幅と前記ダウンカウント部のビット幅とは、前記第１の発振器のクロックと前記第２の発振器のクロックとの逓倍分だけ異なることを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記判定回路の判定結果が入力され、発振異常が生じたことを通知する異常通知部を備えることを特徴とする請求項１乃至３のいずれか１項に記載の半導体集積回路。
【請求項５】
前記異常通知部は、前記判定回路の判定結果に基づいてリセット信号又は異常検出割込み信号を生成することを特徴とする請求項４に記載の半導体集積回路。
【請求項６】
第１の発振器のクロック、第２の発振器のクロックを第３の発振器のクロックに基づいて順に切り替えて出力し、前記第１の発振器のクロック又は前記第２の発振器のクロックを、前記第３の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、前記第１の発振器のクロック又は前記第２の発振器のクロックと、前記第３の発振器のクロックとの整合性を判定する半導体集積回路の発振異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及び半導体集積回路の発振異常検出方法に関し、特に複数クロックを有する半導体集積回路のクロックモニタの技術に関する。
【背景技術】
【０００２】
近年、システムの高機能化／高性能化に伴い、半導体集積回路の高速化が進んでいる。半導体集積回路の高速化を、低消費電力で、且つ低価格に実現するため、オシレータは従来通りの構成としている。例えば、特許文献１の半導体集積回路は、オシレータのクロックを逓倍するＰＬＬ（位相同期回路：Ｐｈａｓｅ Ｌｏｃｋｅｄ Ｌｏｏｐ）を搭載し、ＰＬＬのクロックをマイクロコンピュータの動作クロックとして用いている。
【０００３】
図５は、特許文献１の半導体集積回路のブロック図である。当該半導体集積回路１００は、オシレータ２０１と、ＰＬＬ３０１と、発振異常検出部４０１と、ＦｌａｓｈＲＯＭ５０１と、ＣＰＵ（Central Processing Unit）６０１と、複数の周辺装置（７０１−１〜７０１−ｎ：ｎは自然数）と、を備えている。発振異常検出部４０１は、内部リセット信号生成回路８０１（リセットジェネレータ）と、クロックモニタ９０１と、を備えている。また、内部リセット信号生成回路８０１は、信号生成部１１１を備えている。
【０００４】
オシレータ２０１は、第１オシレータ入力端子１２１から供給される第１オシレータ出力信号と、第２オシレータ入力端子１３１から供給される第２オシレータ入力信号に応答して、クロック（オシレータ出力）２１を出力している。オシレータ２０１から出力されたオシレータ出力２１は、ＰＬＬ３０１とクロックモニタ９０１との各々に供給される。ＰＬＬ３０１は、オシレータ出力２１に応答して、クロック（ＰＬＬ出力）２３１を生成して当該ＰＬＬ出力２３１をＣＰＵ６０１に供給している。クロックモニタ９０１は、オシレータ出力２１と、ＦｌａｓｈＲＯＭ５０１から出力されるクロック（リングオシレータ出力）２２１とに基づいて発振異常検出信号２４１を生成して内部リセット信号生成回路８０１に出力している。内部リセット信号生成回路８０１は、端子リセット信号入力端子１４１から入力されるリセット信号２７１と、クロックモニタ９０１から入力される発振異常検出信号２４１とに基づいて内部リセット信号２５１を生成し、ＣＰＵ６０１に出力している。
【０００５】
これにより、オシレータ２０１から出力されるオシレータ出力２１に発振異常が発生した場合、その異常に対応して半導体集積回路１００の動作を適切に停止することができる。このとき、半導体集積回路１００は、クロックモニタ９０１において、ＦｌａｓｈＲＯＭ５０１から出力されるリングオシレータ出力２２１を用いてオシレータ出力２１のクロック周波数を計測する。計測されたクロック周波数を、予め保持された比較値と比較することで、オシレータ２０１の動作を監視している。この比較値は、所定の範囲（動作保証範囲）の周波数を示している。例えば、当該半導体集積回路１００が、５ＭＨｚ〜７ＭＨｚの範囲のオシレータ出力２１に対応して、動作するように設計されている場合、発振異常検出部４０１は、その比較値から外れる周波数（例えば、８ＭＨｚの周波数）を検出したときに、発振異常検出信号２４１を生成する。したがって、半導体集積回路１００は、通常時のクロックの周波数を超える高周波数成分（例えば、上述したような８ＭＨｚの周波数成分）を含んでいる信号がオシレータ２０１から出力される場合に、その高周波数成分を発振異常であると判定して、ＣＰＵ６０１や周辺装置（７０１−１〜７０１−ｎ）の動作を停止する。
【０００６】
また、特許文献２の半導体集積回路は、ＰＬＬ出力を分周器で分周して分周クロック周波数と、入力クロックとを用いて、ＰＬＬ出力に発振異常が発生していないか否かを判定している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１７２２０２号公報
【特許文献２】特開２００２−４１１７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１の半導体集積回路１００は、クロックモニタ９０１により発振異常を検出する構成であるが、クロックの発振異常検出が出来ない場合がある。つまり、リングオシレータ出力２２１に発振異常が発生した場合に、オシレータ出力２１の発振異常を検出できない。
その理由は、クロックモニタ９０１では、ＦｌａｓｈＲＯＭ５０１から供給されるリングオシレータ出力２２１をサンプリングクロックとして、オシレータ出力２１の計測を行っている。そのため、リングオシレータ出力２２１に発振異常が発生した場合や、リングオシレータ出力２２１が停止した場合には、オシレータ出力２１の計測が正常に行われず、発振異常検出信号２４１を生成することができないためである。
【０００９】
更に、クロックモニタ９０１は、オシレータ出力２１を計測する機能のみであり、リングオシレータ出力２２１の発振異常、ＰＬＬ出力２３１の発振異常を検出できない。
その理由は、リングオシレータ出力２２１は、オシレータ出力２１を計測するサンプリングクロックとしての役割のみで、リングオシレータ出力２２１自体を監視するクロック及び機能が無いためである。また、ＰＬＬ出力２３１の発振異常を検出するためのＰＬＬ出力２３１の計測手段を有していないためである。
【００１０】
特許文献２の半導体集積回路は、ＰＬＬ出力の発振異常を検出できる構成であるが、リングオシレータ出力の発振異常を検出できない。
【課題を解決するための手段】
【００１１】
本発明に係る半導体集積回路は、第１の発振器と、第２の発振器と、第３の発振器と、前記第1の発振器のクロック、前記第２の発振器のクロックを前記第３の発振器のクロックに基づいて順に切り替えて出力するセレクタと、前記セレクタから出力されたクロックを、前記第３の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、前記セレクタから出力されたクロックと、前記第３の発振器のクロックとの整合性を判定し、いずれかの前記クロックに発振異常が発生しているか否かを判定する判定回路と、を備える。これにより、第１の発振器のクロック、又は第２の発振器のクロック、又は第３の発振器のクロックのいずれかに発振異常が発生しているか否かを判定することができる。
【００１２】
本発明に係る半導体集積回路の発振異常検出方法は、第１の発振器のクロック、第２の発振器のクロックを第３の発振器のクロックに基づいて順に切り替えて出力し、前記第１の発振器のクロック又は前記第２の発振器のクロックを、前記第３の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、前記第１の発振器のクロック又は前記第２の発振器のクロックと、前記第３の発振器のクロックとの整合性を判定する。これにより、第１の発振器のクロック、又は第２の発振器のクロック、又は第３の発振器のクロックのいずれかに発振異常が発生しているか否かを判定することができる。
【発明の効果】
【００１３】
本発明によれば、オシレータ出力、又はＰＬＬ出力、又はリングオシレータ出力のいずれかに発振異常が発生しているか否かを判定できる半導体集積回路及び半導体集積回路の発振異常検出方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る第１の実施の形態の半導体集積回路を概略的に示したブロック図である。
【図２】本発明に係る第１の実施の形態の半導体集積回路において、発振異常検出を行う際のタイミング図である。
【図３】本発明に係る第２の実施の形態の半導体集積回路を概略的に示したブロック図である。
【図４】本発明に係る第３の実施の形態の半導体集積回路を概略的に示したブロック図である。
【図５】従来の半導体集積回路を概略的に示したブロック図である。
【発明を実施するための形態】
【００１５】
本発明に係る半導体集積回路及び半導体集積回路の発振異常検出方法の実施の形態について説明する。但し、本発明が以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【００１６】
＜第１の実施の形態＞
図１に第１の実施の形態の半導体集積回路１のブロック図を示す。
半導体集積回路１は、第１の発振器であるオシレータ２と、第２の発振器であるＰＬＬ３と、第３の発振器であるリングオシレータ４と、分周器５と、セレクタ６と、判定回路７と、を備えている。さらに半導体集積回路１は、クロック制御部８と、ＣＰＵ９と、異常通知部１０と、を備えている。すなわち、オシレータ２と、オシレータ出力２１を逓倍するＰＬＬ３と、リングオシレータ４とを備える半導体集積回路１において、ＰＬＬ出力２２とリングオシレータ出力２４が、クロック制御部８にて動作クロックとして選択されてＣＰＵ９に供給される。また、分周器５ではＰＬＬ出力２２が、ＰＬＬ３の逓倍率だけ分周される。
【００１７】
セレクタ６は、オシレータ出力２１と、分周器出力２３と、リングオシレータ出力２４と、が入力される。セレクタ６は、オシレータ出力２１、分周器出力２３をリングオシレータ出力２４に基づいて順に切り替えて判定回路７に出力する。
【００１８】
判定回路７は、当該セレクタ６から出力されたクロックを、リングオシレータ出力２４に基づいてアップカウント又はダウンカウントする。そして、判定回路７は、当該アップカウント又はダウンカウントの結果に基づいて、セレクタ６から出力されたクロックと、リングオシレータ出力２４との整合性を判定し、オシレータ出力２１、又はＰＬＬ出力２２、リングオシレータ出力２４のいずれかの発振異常を検出する。ここでの発振異常とは、クロック周波数の停止、高速発振、低速発振のことを示す。
【００１９】
すなわち、判定回路７は、カウント部１１と、第１の判定部１２と、第２の判定部１３と、を備えている。カウント部１１は、セレクタ６からクロックが入力される。カウント部１１は、例えばセレクタ６で選択された一方のクロックである、オシレータ出力２１をカウントクロックとしてアップカウントする。カウント部１１は、セレクタ６で選択された他方のクロックである、分周器出力２３をカウントクロックとしてダウンカウントする。カウント部１１は、リングオシレータ出力２４の立ち上がりに基づいて、アップカウント動作とダウンカウント動作とが切り替わる。但し、カウント部１１は、リングオシレータ出力２４のクロックの立ち下がりに基づいて、アップカウント動作とダウンカウント動作とが切り替わる構成でも良い。
【００２０】
カウント部１１には、アップカウント動作時の開始時の値が０（第１の設定値）に設定され、アップカウント動作からダウンカウント動作に切り替わる際の値が、正常時におけるリングオシレータ出力２４の１周期分のオシレータ出力２１（第２の設定値）に設定され、ダウンカウント動作時の終了時の値が０（第３の設定値）に設定されている。これにより、正常に動作している状態においては、オシレータ出力２１とＰＬＬ３の逓倍率だけ分周した分周器出力２３とは同一周波数である。つまり、オシレータ出力２１、ＰＬＬ出力２２、リングオシレータ出力２４が正常に動作している場合は、オシレータ出力２１をカウントクロックとするカウンタ値と、分周器出力２３をカウントクロックとするカウンタ値は同一となる。
【００２１】
具体的に云うと、図２において、ｔ１はカウント部１１がオシレータ出力２１をカウントクロックとしてカウントする期間、ｔ２はカウント部１１が分周器出力２３をカウントクロックとしてカウントする期間とする。このとき、ｔ１、ｔ２はそれぞれリングオシレータ出力２４の１周期分に当たるため、ｔ１＝ｔ２が成り立つ。そのため、カウント部１１は、ｔ１でオシレータ出力２１をカウントクロックとするアップカウント後、ｔ２で分周器出力２３をカウントクロックとするダウンカウントを行うと、カウント部１１のカウンタ値は０に戻ることになる。これにより、オシレータ出力２１、ＰＬＬ出力２２、リングオシレータ出力２４が正常に動作していることが判定できる。
【００２２】
一方、オシレータ出力２１が高速発振異常を発生しているか、又はリングオシレータ出力２４が低速発振異常を発生していると、カウント部１１が、オシレータ出力２１をアップカウントした際に、カウント値が第２の設定値をオーバーフローすることになる（図２のＣ）。そこで、カウント部１１は、当該オーバーフロー時にオーバーフロー信号２５を生成し、異常通知部１０に出力する。これにより、オシレータ出力２１又はリングオシレータ出力２４に発振異常が発生していることが判定できる。ちなみに、オシレータ出力２１に発振異常が発生していると、必然的にＰＬＬ出力２２も発振異常を発生していることになる。
【００２３】
また、分周器出力２３が高速発振異常を発生しているか、又はリングオシレータ出力２４が低速発振異常を発生していると、カウント部１１が、分周器出力２３をダウンカウントした際に、カウント値が第３の設定値をアンダーフローすることになる（図２のＡ）。そこで、カウント部１１は、当該アンダーフロー時にアンダーフロー信号２６を生成し、異常通知部１０に出力する。これにより、ＰＬＬ出力２２又はリングオシレータ出力２４に発振異常が発生していることが判定できる。
【００２４】
第１の判定部１２は、第１のコンペアレジスタ１２１と、第１の比較器１２２と、を備えている。第１のコンペアレジスタ１２１は、第１の比較器１２２に対して、予め設定された第１の閾値を出力する。当該第１の閾値としては、例えば上述の第２の設定値が設定される。但し、必ずしも第２の設定値を設定する必要はなく、アップカウントされたカウント値が発振異常とみなすことができる下限値を設定すれば良い。第１の比較器１２２は、当該入力された第１の閾値と、アップカウント動作からダウンカウント動作に切り替わる際のカウント値と、を比較して、当該カウント値が第１の閾値未満であると、発振異常信号２７を生成し、異常通知部１０に出力する。このとき、当該カウント値が第１の閾値未満であるということは、図２のＤの状態であり、オシレータ出力２１が低速発振異常を発生しているか、又はリングオシレータ出力２４が高速発振異常を発生していると判定できる。ちなみに、オシレータ出力２１が低速発振異常を発生している場合、必然的にＰＬＬ出力２２も低速発振異常を発生していることになる。
【００２５】
第２の判定部１３は、第２のコンペアレジスタ１３１と、第２の比較器１３２と、を備えている。第２のコンペアレジスタ１３１は、第２の比較器１３２に対して、予め設定された第２の閾値を出力する。当該第２の閾値としては、例えば上述の第３の設定値が設定される。但し、必ずしも第３の設定値を設定する必要はなく、ダウンカウントされたカウント値が発振異常とみなすことができる上限値を設定すれば良い。第２の比較器１３２は、当該入力された第２の閾値と、ダウンカウント動作からアップカウント動作に切り替わる際のカウント値と、を比較し、当該カウント値が第２の閾値以上であると、発振異常信号２８を生成し、異常通知部１０に出力する。このとき、当該カウント値が第２の閾値以上であるということは、図２のＢの状態であり、分周器出力２３が低速発振異常を発生しているか、又はリングオシレータ出力２４が高速発振異常を発生していると判定できる。
異常通知部１０は、判定回路７から入力される信号に基づいて、発振異常が生じたことを通知する信号を生成し、例えばＣＰＵ９に出力する。
【００２６】
このような半導体集積回路１及び当該半導体集積回路の発振異常検出方法は、リングオシレータ出力２４に基づいて、オシレータ出力２１をアップカウントし、分周器出力２３をダウンカウントしている。つまり、リングオシレータ出力２４の１周期分のオシレータ出力２１をカウントすることで、リングオシレータ出力２４とオシレータ出力２１との相対的な関係（整合性）を導くことができる。一方、リングオシレータ出力２４の１周期分の分周器出力２３をカウントすることで、リングオシレータ出力２４と分周器出力２３との相対的な関係を導くことができる。これにより、半導体集積回路１及び当該半導体集積回路の発振異常検出方法は、オシレータ出力２１、又はＰＬＬ出力２２、又はリングオシレータ出力２４のいずれかの発振異常が発生しているか否かを判定することができる。しかも、従来の半導体集積回路に比べて、大きな回路追加をする必要がなく、従来の半導体集積回路と同規模の回路で発振異常検出を行うことができる。
【００２７】
＜第２の実施の形態＞
本実施の形態の半導体集積回路３１は、図３に示すように、カウント部１１をアップカウント部（Ｕカウント部）１１１とダウンカウント部（Ｄカウント部）１１２とに分けた構成としている。なお、本実施の形態の半導体集積回路３１は、第１の実施の形態の半導体集積回路１と略同一の構成とされているため、重複する説明は省略するものとする。
【００２８】
アップカウント部１１１は、オシレータ出力２１と、リングオシレータ出力２４とが入力される。アップカウント部１１１は、リングオシレータ出力２４が次に立ち上がるまで、オシレータ出力２１をアップカウントする。このとき、オシレータ出力２１が高速発振異常を発生しているか、又はリングオシレータ出力２４が低速発振異常を発生していると、アップカウント部１１１が、オシレータ出力２１をアップカウントした際に、カウント値が第２の設定値をオーバーフローすることになる。そこで、アップカウント部１１１は、当該オーバーフロー時にオーバーフロー信号２５を生成し、異常通知部１０に出力する。
【００２９】
ダウンカウント部１１２は、ＰＬＬ出力２２と、リングオシレータ出力２４とが入力される。ここで、ダウンカウント部１１２のビット幅は、アップカウント部１１１のビット幅に対してＰＬＬ３の逓倍分だけ異なるように設定されている。その結果、第１の実施の形態のカウント部１１と略同様に、ＰＬＬ出力２２又はリングオシレータ出力２４に発振異常が発生しているか否かを判定できる。すなわち、ダウンカウント部１１２は、リングオシレータ出力２４が次に立ち上がるまで、ＰＬＬ出力２２をダウンカウントする。このとき、ＰＬＬ出力２２が高速発振異常を発生しているか、又はリングオシレータ出力２４が低速発振異常を発生していると、ダウンカウント部１１２が、ＰＬＬ出力２２をダウンカウントした際に、カウント値が第３の設定値をアンダーフローすることになる。そこで、ダウンカウント部１１２は、当該アンダーフロー時にアンダーフロー信号２６を生成し、異常通知部１０に出力する。これにより、ＰＬＬ出力２２又はリングオシレータ出力２４に発振異常が発生していることが判定できる。
このような半導体集積回路３１は、分周器５を省略することができる。そのため、半導体集積回路の小型化に寄与できる。
【００３０】
＜第３の実施の形態＞
本実施の形態の半導体集積回路３２は、図４に示すように、異常通知部１０がリセット信号２９及び異常検出割込み信号３０を生成する構成とされている。なお、本実施の形態の半導体集積回路３２は、第１の実施の形態の半導体集積回路１と略同一の構成とされているため、重複する説明は省略するものとする。
【００３１】
異常通知部１０は、判定回路７から出力されるオーバーフロー信号２５、アンダーフロー信号２６、発振異常信号２７、２８に基づいて、リセット信号２９又は異常検出割込み信号３０を生成する。例えば、オシレータ出力２１が高速発振異常を発生していると、半導体集積回路３２の動作規格を超える可能性があるため、異常通知部１０は、直ちにリセット信号２９を生成し、例えば後段のリセットジェネレータ（図示省略）に出力する。リセットジェネレータは、当該リセット信号２９をＣＰＵ９に出力する。
【００３２】
異常通知部１０は、その他の信号が入力されると、異常検出割込み信号３０を生成し、例えば後段の割込みコントローラ（図示省略）に出力する。割込みコントローラは、当該異常検出割込み信号をＣＰＵ９に出力する。
このような半導体集積回路３２は、リセット信号２９及び異常検出割込み信号３０を生成するので、適宜、クロックの発振異常発生後の処理を選択することができる。
【００３３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態では、オシレータ出力をアップカウントし、分周器出力（ＰＬＬ出力）をダウンカウントしているが、逆でも良い。
【符号の説明】
【００３４】
１  半導体集積回路
２  オシレータ
３  ＰＬＬ
４  リングオシレータ
５  分周器
６  セレクタ
７  判定回路
８  クロック制御部
９  ＣＰＵ
１０  異常通知部
１１  カウント部、１１１  アップカウント部、１１２  ダウンカウント部
１２  第１の判定部、１３  第２の判定部
２１  オシレータ出力
２２  ＰＬＬ出力
２３  分周器出力
２４  リングオシレータ出力
２５  オーバーフロー信号
２６  アンダーフロー信号
２７、２８  発振異常信号
２９  リセット信号
３０  発振異常検出信号
３１、３２  半導体集積回路
【図１】
2011059851.tif 000003
【図２】
2011059851.tif 000004
【図３】
2011059851.tif 000005
【図４】
2011059851.tif 000006
【図５】
2011059851.tif 000007