説明

半導体集積回路及び半導体集積回路の発振異常検出方法

【課題】オシレータ出力、又はPLL出力、又はリングオシレータ出力のいずれかに発振異常が発生しているか否かを判定できる半導体集積回路を提供する。
【解決手段】本発明の半導体集積回路1は、第1の発振器(オシレータ2)と、第2の発振器(PLL3)と、第3の発振器(リングオシレータ4)と、第1の発振器2のクロック、第2の発振器3のクロックを第3の発振器4のクロックに基づいて順に切り替えて出力するセレクタ6と、セレクタ6から出力されたクロックを、第3の発振器4のクロックに基づいてアップカウント又はダウンカウントし、アップカウント又はダウンカウントの結果に基づいて、セレクタ6から出力されたクロックと、第3の発振器4のクロックとの整合性を判定し、いずれかのクロックに発振異常が発生しているか否かを判定する判定回路7と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路及び半導体集積回路の発振異常検出方法に関し、特に複数クロックを有する半導体集積回路のクロックモニタの技術に関する。
【背景技術】
【0002】
近年、システムの高機能化/高性能化に伴い、半導体集積回路の高速化が進んでいる。半導体集積回路の高速化を、低消費電力で、且つ低価格に実現するため、オシレータは従来通りの構成としている。例えば、特許文献1の半導体集積回路は、オシレータのクロックを逓倍するPLL(位相同期回路:Phase Locked Loop)を搭載し、PLLのクロックをマイクロコンピュータの動作クロックとして用いている。
【0003】
図5は、特許文献1の半導体集積回路のブロック図である。当該半導体集積回路100は、オシレータ201と、PLL301と、発振異常検出部401と、FlashROM501と、CPU(Central Processing Unit)601と、複数の周辺装置(701−1〜701−n:nは自然数)と、を備えている。発振異常検出部401は、内部リセット信号生成回路801(リセットジェネレータ)と、クロックモニタ901と、を備えている。また、内部リセット信号生成回路801は、信号生成部111を備えている。
【0004】
オシレータ201は、第1オシレータ入力端子121から供給される第1オシレータ出力信号と、第2オシレータ入力端子131から供給される第2オシレータ入力信号に応答して、クロック(オシレータ出力)21を出力している。オシレータ201から出力されたオシレータ出力21は、PLL301とクロックモニタ901との各々に供給される。PLL301は、オシレータ出力21に応答して、クロック(PLL出力)231を生成して当該PLL出力231をCPU601に供給している。クロックモニタ901は、オシレータ出力21と、FlashROM501から出力されるクロック(リングオシレータ出力)221とに基づいて発振異常検出信号241を生成して内部リセット信号生成回路801に出力している。内部リセット信号生成回路801は、端子リセット信号入力端子141から入力されるリセット信号271と、クロックモニタ901から入力される発振異常検出信号241とに基づいて内部リセット信号251を生成し、CPU601に出力している。
【0005】
これにより、オシレータ201から出力されるオシレータ出力21に発振異常が発生した場合、その異常に対応して半導体集積回路100の動作を適切に停止することができる。このとき、半導体集積回路100は、クロックモニタ901において、FlashROM501から出力されるリングオシレータ出力221を用いてオシレータ出力21のクロック周波数を計測する。計測されたクロック周波数を、予め保持された比較値と比較することで、オシレータ201の動作を監視している。この比較値は、所定の範囲(動作保証範囲)の周波数を示している。例えば、当該半導体集積回路100が、5MHz〜7MHzの範囲のオシレータ出力21に対応して、動作するように設計されている場合、発振異常検出部401は、その比較値から外れる周波数(例えば、8MHzの周波数)を検出したときに、発振異常検出信号241を生成する。したがって、半導体集積回路100は、通常時のクロックの周波数を超える高周波数成分(例えば、上述したような8MHzの周波数成分)を含んでいる信号がオシレータ201から出力される場合に、その高周波数成分を発振異常であると判定して、CPU601や周辺装置(701−1〜701−n)の動作を停止する。
【0006】
また、特許文献2の半導体集積回路は、PLL出力を分周器で分周して分周クロック周波数と、入力クロックとを用いて、PLL出力に発振異常が発生していないか否かを判定している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−172202号公報
【特許文献2】特開2002−41178号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1の半導体集積回路100は、クロックモニタ901により発振異常を検出する構成であるが、クロックの発振異常検出が出来ない場合がある。つまり、リングオシレータ出力221に発振異常が発生した場合に、オシレータ出力21の発振異常を検出できない。
その理由は、クロックモニタ901では、FlashROM501から供給されるリングオシレータ出力221をサンプリングクロックとして、オシレータ出力21の計測を行っている。そのため、リングオシレータ出力221に発振異常が発生した場合や、リングオシレータ出力221が停止した場合には、オシレータ出力21の計測が正常に行われず、発振異常検出信号241を生成することができないためである。
【0009】
更に、クロックモニタ901は、オシレータ出力21を計測する機能のみであり、リングオシレータ出力221の発振異常、PLL出力231の発振異常を検出できない。
その理由は、リングオシレータ出力221は、オシレータ出力21を計測するサンプリングクロックとしての役割のみで、リングオシレータ出力221自体を監視するクロック及び機能が無いためである。また、PLL出力231の発振異常を検出するためのPLL出力231の計測手段を有していないためである。
【0010】
特許文献2の半導体集積回路は、PLL出力の発振異常を検出できる構成であるが、リングオシレータ出力の発振異常を検出できない。
【課題を解決するための手段】
【0011】
本発明に係る半導体集積回路は、第1の発振器と、第2の発振器と、第3の発振器と、前記第1の発振器のクロック、前記第2の発振器のクロックを前記第3の発振器のクロックに基づいて順に切り替えて出力するセレクタと、前記セレクタから出力されたクロックを、前記第3の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、前記セレクタから出力されたクロックと、前記第3の発振器のクロックとの整合性を判定し、いずれかの前記クロックに発振異常が発生しているか否かを判定する判定回路と、を備える。これにより、第1の発振器のクロック、又は第2の発振器のクロック、又は第3の発振器のクロックのいずれかに発振異常が発生しているか否かを判定することができる。
【0012】
本発明に係る半導体集積回路の発振異常検出方法は、第1の発振器のクロック、第2の発振器のクロックを第3の発振器のクロックに基づいて順に切り替えて出力し、前記第1の発振器のクロック又は前記第2の発振器のクロックを、前記第3の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、前記第1の発振器のクロック又は前記第2の発振器のクロックと、前記第3の発振器のクロックとの整合性を判定する。これにより、第1の発振器のクロック、又は第2の発振器のクロック、又は第3の発振器のクロックのいずれかに発振異常が発生しているか否かを判定することができる。
【発明の効果】
【0013】
本発明によれば、オシレータ出力、又はPLL出力、又はリングオシレータ出力のいずれかに発振異常が発生しているか否かを判定できる半導体集積回路及び半導体集積回路の発振異常検出方法を提供することができる。
【図面の簡単な説明】
【0014】
【図1】本発明に係る第1の実施の形態の半導体集積回路を概略的に示したブロック図である。
【図2】本発明に係る第1の実施の形態の半導体集積回路において、発振異常検出を行う際のタイミング図である。
【図3】本発明に係る第2の実施の形態の半導体集積回路を概略的に示したブロック図である。
【図4】本発明に係る第3の実施の形態の半導体集積回路を概略的に示したブロック図である。
【図5】従来の半導体集積回路を概略的に示したブロック図である。
【発明を実施するための形態】
【0015】
本発明に係る半導体集積回路及び半導体集積回路の発振異常検出方法の実施の形態について説明する。但し、本発明が以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【0016】
<第1の実施の形態>
図1に第1の実施の形態の半導体集積回路1のブロック図を示す。
半導体集積回路1は、第1の発振器であるオシレータ2と、第2の発振器であるPLL3と、第3の発振器であるリングオシレータ4と、分周器5と、セレクタ6と、判定回路7と、を備えている。さらに半導体集積回路1は、クロック制御部8と、CPU9と、異常通知部10と、を備えている。すなわち、オシレータ2と、オシレータ出力21を逓倍するPLL3と、リングオシレータ4とを備える半導体集積回路1において、PLL出力22とリングオシレータ出力24が、クロック制御部8にて動作クロックとして選択されてCPU9に供給される。また、分周器5ではPLL出力22が、PLL3の逓倍率だけ分周される。
【0017】
セレクタ6は、オシレータ出力21と、分周器出力23と、リングオシレータ出力24と、が入力される。セレクタ6は、オシレータ出力21、分周器出力23をリングオシレータ出力24に基づいて順に切り替えて判定回路7に出力する。
【0018】
判定回路7は、当該セレクタ6から出力されたクロックを、リングオシレータ出力24に基づいてアップカウント又はダウンカウントする。そして、判定回路7は、当該アップカウント又はダウンカウントの結果に基づいて、セレクタ6から出力されたクロックと、リングオシレータ出力24との整合性を判定し、オシレータ出力21、又はPLL出力22、リングオシレータ出力24のいずれかの発振異常を検出する。ここでの発振異常とは、クロック周波数の停止、高速発振、低速発振のことを示す。
【0019】
すなわち、判定回路7は、カウント部11と、第1の判定部12と、第2の判定部13と、を備えている。カウント部11は、セレクタ6からクロックが入力される。カウント部11は、例えばセレクタ6で選択された一方のクロックである、オシレータ出力21をカウントクロックとしてアップカウントする。カウント部11は、セレクタ6で選択された他方のクロックである、分周器出力23をカウントクロックとしてダウンカウントする。カウント部11は、リングオシレータ出力24の立ち上がりに基づいて、アップカウント動作とダウンカウント動作とが切り替わる。但し、カウント部11は、リングオシレータ出力24のクロックの立ち下がりに基づいて、アップカウント動作とダウンカウント動作とが切り替わる構成でも良い。
【0020】
カウント部11には、アップカウント動作時の開始時の値が0(第1の設定値)に設定され、アップカウント動作からダウンカウント動作に切り替わる際の値が、正常時におけるリングオシレータ出力24の1周期分のオシレータ出力21(第2の設定値)に設定され、ダウンカウント動作時の終了時の値が0(第3の設定値)に設定されている。これにより、正常に動作している状態においては、オシレータ出力21とPLL3の逓倍率だけ分周した分周器出力23とは同一周波数である。つまり、オシレータ出力21、PLL出力22、リングオシレータ出力24が正常に動作している場合は、オシレータ出力21をカウントクロックとするカウンタ値と、分周器出力23をカウントクロックとするカウンタ値は同一となる。
【0021】
具体的に云うと、図2において、t1はカウント部11がオシレータ出力21をカウントクロックとしてカウントする期間、t2はカウント部11が分周器出力23をカウントクロックとしてカウントする期間とする。このとき、t1、t2はそれぞれリングオシレータ出力24の1周期分に当たるため、t1=t2が成り立つ。そのため、カウント部11は、t1でオシレータ出力21をカウントクロックとするアップカウント後、t2で分周器出力23をカウントクロックとするダウンカウントを行うと、カウント部11のカウンタ値は0に戻ることになる。これにより、オシレータ出力21、PLL出力22、リングオシレータ出力24が正常に動作していることが判定できる。
【0022】
一方、オシレータ出力21が高速発振異常を発生しているか、又はリングオシレータ出力24が低速発振異常を発生していると、カウント部11が、オシレータ出力21をアップカウントした際に、カウント値が第2の設定値をオーバーフローすることになる(図2のC)。そこで、カウント部11は、当該オーバーフロー時にオーバーフロー信号25を生成し、異常通知部10に出力する。これにより、オシレータ出力21又はリングオシレータ出力24に発振異常が発生していることが判定できる。ちなみに、オシレータ出力21に発振異常が発生していると、必然的にPLL出力22も発振異常を発生していることになる。
【0023】
また、分周器出力23が高速発振異常を発生しているか、又はリングオシレータ出力24が低速発振異常を発生していると、カウント部11が、分周器出力23をダウンカウントした際に、カウント値が第3の設定値をアンダーフローすることになる(図2のA)。そこで、カウント部11は、当該アンダーフロー時にアンダーフロー信号26を生成し、異常通知部10に出力する。これにより、PLL出力22又はリングオシレータ出力24に発振異常が発生していることが判定できる。
【0024】
第1の判定部12は、第1のコンペアレジスタ121と、第1の比較器122と、を備えている。第1のコンペアレジスタ121は、第1の比較器122に対して、予め設定された第1の閾値を出力する。当該第1の閾値としては、例えば上述の第2の設定値が設定される。但し、必ずしも第2の設定値を設定する必要はなく、アップカウントされたカウント値が発振異常とみなすことができる下限値を設定すれば良い。第1の比較器122は、当該入力された第1の閾値と、アップカウント動作からダウンカウント動作に切り替わる際のカウント値と、を比較して、当該カウント値が第1の閾値未満であると、発振異常信号27を生成し、異常通知部10に出力する。このとき、当該カウント値が第1の閾値未満であるということは、図2のDの状態であり、オシレータ出力21が低速発振異常を発生しているか、又はリングオシレータ出力24が高速発振異常を発生していると判定できる。ちなみに、オシレータ出力21が低速発振異常を発生している場合、必然的にPLL出力22も低速発振異常を発生していることになる。
【0025】
第2の判定部13は、第2のコンペアレジスタ131と、第2の比較器132と、を備えている。第2のコンペアレジスタ131は、第2の比較器132に対して、予め設定された第2の閾値を出力する。当該第2の閾値としては、例えば上述の第3の設定値が設定される。但し、必ずしも第3の設定値を設定する必要はなく、ダウンカウントされたカウント値が発振異常とみなすことができる上限値を設定すれば良い。第2の比較器132は、当該入力された第2の閾値と、ダウンカウント動作からアップカウント動作に切り替わる際のカウント値と、を比較し、当該カウント値が第2の閾値以上であると、発振異常信号28を生成し、異常通知部10に出力する。このとき、当該カウント値が第2の閾値以上であるということは、図2のBの状態であり、分周器出力23が低速発振異常を発生しているか、又はリングオシレータ出力24が高速発振異常を発生していると判定できる。
異常通知部10は、判定回路7から入力される信号に基づいて、発振異常が生じたことを通知する信号を生成し、例えばCPU9に出力する。
【0026】
このような半導体集積回路1及び当該半導体集積回路の発振異常検出方法は、リングオシレータ出力24に基づいて、オシレータ出力21をアップカウントし、分周器出力23をダウンカウントしている。つまり、リングオシレータ出力24の1周期分のオシレータ出力21をカウントすることで、リングオシレータ出力24とオシレータ出力21との相対的な関係(整合性)を導くことができる。一方、リングオシレータ出力24の1周期分の分周器出力23をカウントすることで、リングオシレータ出力24と分周器出力23との相対的な関係を導くことができる。これにより、半導体集積回路1及び当該半導体集積回路の発振異常検出方法は、オシレータ出力21、又はPLL出力22、又はリングオシレータ出力24のいずれかの発振異常が発生しているか否かを判定することができる。しかも、従来の半導体集積回路に比べて、大きな回路追加をする必要がなく、従来の半導体集積回路と同規模の回路で発振異常検出を行うことができる。
【0027】
<第2の実施の形態>
本実施の形態の半導体集積回路31は、図3に示すように、カウント部11をアップカウント部(Uカウント部)111とダウンカウント部(Dカウント部)112とに分けた構成としている。なお、本実施の形態の半導体集積回路31は、第1の実施の形態の半導体集積回路1と略同一の構成とされているため、重複する説明は省略するものとする。
【0028】
アップカウント部111は、オシレータ出力21と、リングオシレータ出力24とが入力される。アップカウント部111は、リングオシレータ出力24が次に立ち上がるまで、オシレータ出力21をアップカウントする。このとき、オシレータ出力21が高速発振異常を発生しているか、又はリングオシレータ出力24が低速発振異常を発生していると、アップカウント部111が、オシレータ出力21をアップカウントした際に、カウント値が第2の設定値をオーバーフローすることになる。そこで、アップカウント部111は、当該オーバーフロー時にオーバーフロー信号25を生成し、異常通知部10に出力する。
【0029】
ダウンカウント部112は、PLL出力22と、リングオシレータ出力24とが入力される。ここで、ダウンカウント部112のビット幅は、アップカウント部111のビット幅に対してPLL3の逓倍分だけ異なるように設定されている。その結果、第1の実施の形態のカウント部11と略同様に、PLL出力22又はリングオシレータ出力24に発振異常が発生しているか否かを判定できる。すなわち、ダウンカウント部112は、リングオシレータ出力24が次に立ち上がるまで、PLL出力22をダウンカウントする。このとき、PLL出力22が高速発振異常を発生しているか、又はリングオシレータ出力24が低速発振異常を発生していると、ダウンカウント部112が、PLL出力22をダウンカウントした際に、カウント値が第3の設定値をアンダーフローすることになる。そこで、ダウンカウント部112は、当該アンダーフロー時にアンダーフロー信号26を生成し、異常通知部10に出力する。これにより、PLL出力22又はリングオシレータ出力24に発振異常が発生していることが判定できる。
このような半導体集積回路31は、分周器5を省略することができる。そのため、半導体集積回路の小型化に寄与できる。
【0030】
<第3の実施の形態>
本実施の形態の半導体集積回路32は、図4に示すように、異常通知部10がリセット信号29及び異常検出割込み信号30を生成する構成とされている。なお、本実施の形態の半導体集積回路32は、第1の実施の形態の半導体集積回路1と略同一の構成とされているため、重複する説明は省略するものとする。
【0031】
異常通知部10は、判定回路7から出力されるオーバーフロー信号25、アンダーフロー信号26、発振異常信号27、28に基づいて、リセット信号29又は異常検出割込み信号30を生成する。例えば、オシレータ出力21が高速発振異常を発生していると、半導体集積回路32の動作規格を超える可能性があるため、異常通知部10は、直ちにリセット信号29を生成し、例えば後段のリセットジェネレータ(図示省略)に出力する。リセットジェネレータは、当該リセット信号29をCPU9に出力する。
【0032】
異常通知部10は、その他の信号が入力されると、異常検出割込み信号30を生成し、例えば後段の割込みコントローラ(図示省略)に出力する。割込みコントローラは、当該異常検出割込み信号をCPU9に出力する。
このような半導体集積回路32は、リセット信号29及び異常検出割込み信号30を生成するので、適宜、クロックの発振異常発生後の処理を選択することができる。
【0033】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態では、オシレータ出力をアップカウントし、分周器出力(PLL出力)をダウンカウントしているが、逆でも良い。
【符号の説明】
【0034】
1 半導体集積回路
2 オシレータ
3 PLL
4 リングオシレータ
5 分周器
6 セレクタ
7 判定回路
8 クロック制御部
9 CPU
10 異常通知部
11 カウント部、111 アップカウント部、112 ダウンカウント部
12 第1の判定部、13 第2の判定部
21 オシレータ出力
22 PLL出力
23 分周器出力
24 リングオシレータ出力
25 オーバーフロー信号
26 アンダーフロー信号
27、28 発振異常信号
29 リセット信号
30 発振異常検出信号
31、32 半導体集積回路

【特許請求の範囲】
【請求項1】
第1の発振器と、
第2の発振器と、
第3の発振器と、
前記第1の発振器のクロック、前記第2の発振器のクロックを前記第3の発振器のクロックに基づいて順に切り替えて出力するセレクタと、
前記セレクタから出力されたクロックを、前記第3の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、前記セレクタから出力されたクロックと、前記第3の発振器のクロックとの整合性を判定し、いずれかの前記クロックに発振異常が発生しているか否かを判定する判定回路と、
を備える半導体集積回路。
【請求項2】
前記判定回路は、
前記セレクタから出力されたクロックを、前記第3の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、オーバーフロー信号又はアンダーフロー信号を出力するカウント部と、
前記アップカウントから前記ダウンカウントに切り替わる際のカウント値と、予め設定された第1の閾値とを比較して、前記カウント値が前記第1の閾値未満であると、発振異常信号を出力する第1の判定部と、
前記ダウンカウントから前記アップカウントに切り替わる際のカウント値と、予め設定された第2の閾値とを比較して、前記カウント値が前記第2の閾値以上であると、発振異常信号を出力する第2の判定部と、
を備えることを特徴とする請求項1に記載の半導体集積回路。
【請求項3】
前記カウント部は、前記第1の発振器のクロックが入力されるアップカウント部と、前記第2の発振器のクロックが入力されるダウンカウント部と、を備え、
前記アップカウント部のビット幅と前記ダウンカウント部のビット幅とは、前記第1の発振器のクロックと前記第2の発振器のクロックとの逓倍分だけ異なることを特徴とする請求項2に記載の半導体集積回路。
【請求項4】
前記判定回路の判定結果が入力され、発振異常が生じたことを通知する異常通知部を備えることを特徴とする請求項1乃至3のいずれか1項に記載の半導体集積回路。
【請求項5】
前記異常通知部は、前記判定回路の判定結果に基づいてリセット信号又は異常検出割込み信号を生成することを特徴とする請求項4に記載の半導体集積回路。
【請求項6】
第1の発振器のクロック、第2の発振器のクロックを第3の発振器のクロックに基づいて順に切り替えて出力し、前記第1の発振器のクロック又は前記第2の発振器のクロックを、前記第3の発振器のクロックに基づいてアップカウント又はダウンカウントし、前記アップカウント又はダウンカウントの結果に基づいて、前記第1の発振器のクロック又は前記第2の発振器のクロックと、前記第3の発振器のクロックとの整合性を判定する半導体集積回路の発振異常検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−59851(P2011−59851A)
【公開日】平成23年3月24日(2011.3.24)
【国際特許分類】
【出願番号】特願2009−206878(P2009−206878)
【出願日】平成21年9月8日(2009.9.8)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】