説明

半導体装置

【課題】
オシレータから出力されるクロックに発振異常が発生した場合、その異常に対応してマイクロコンピュータの動作を適切に停止させる。
【解決手段】
発振器と、発振異常検出部とを具備する半導体装置を構成する。発振異常検出部は、その発振器から出力されるクロックを計測して得られたカウント値に基づいてその発振器の周波数を特定する。そして、その周波数が所定の周波数範囲外のときに、発振異常信号を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置に関し、特に内蔵する発信器の発振異常を検出する機能を備える半導体装置に関する。
【背景技術】
【0002】
半導体技術の進歩に伴って、単一のチップ内部に複数の回路機能ブロック、特に、CPU(Central Processing Unit:中央演算処理装置)とメモリ(RAMまたはROM)とを有するマイクロコンピュータ(以下、シングルチップマイクロコンピュータと称する)が普及している。シングルチップマイクロコンピュータは、内部にオシレータ(発振器)を備えている。そのオシレータは、通常時には、一定周波数のクロックを出力している。シングルチップマイクロコンピュータ内部の回路ブロックは、そのクロックに同期して動作している。したがって、オシレータから出力されるクロックの周波数が、特定の範囲(動作補償がされている範囲)に含まれているときは、そのシングルチップマイクロコンピュータは、正常に動作する。しかしながら、その特定の範囲に含まれない周波数のクロックがオシレータから出力されると、シングルチップマイクロコンピュータが誤動作してしまう危険がある。
【0003】
オシレータの異常発振を検出することで、シングルチップマイクロコンピュータの誤動作を抑制する技術が知られている(例えば、特許文献1参照)。図1は特許文献1の技術におけるクロック発生回路の構成を示すブロック図である。従来のクロック発生回路101は、マイクロコンピュータ100に備えら、そのマイクロコンピュータのCPU(図示されず)や周辺装置(図示されず)にシステムクロックを供給している。図1に示されるように、そのクロック発生回路101は、内部バス121に対応して、サブ・クロック発振回路102と、メイン・クロック発振回路103と、タイマ104と、OR回路105と、クロック切替フラグ106と、発振制御フラグ107と、タイマ・リセット・フラグ108と、システム・クロック切替回路109とを備えて構成されている。
【0004】
従来のクロック発生回路101は、図1に示されるように、タイマ104に対するクロック信号入力としては、サブ・クロック発振回路102より出力されるサブ・クロック信号111が入力されており、OR回路105に対する入力としては、タイマ104より出力されるタイマ・キャリー信号116と、リセット制御回路より出力されるシステム・リセット信号113とが入力されている。フラグ・リセット信号117は、このOR回路105における、タイマ・キャリー信号116とシステム・リセット信号113との論理和出力である。
【0005】
システム・クロック切替え回路109は、メイン・クロック発振回路103の出力に応答してシステム・クロック信号を生成している。ここで、メイン・クロック発振回路103に故障等が発生した場合、メイン・クロック信号が生成されなくなる、その場合、マイクロコンピュータ100のCPUには、システム・クロック信号が供給されなくなる。そのため、CPUは動作を停止してしまう。従来のマイクロコンピュータ100は、CPUの動作が停止したときに、その動作停止を検出することで、メイン・クロック発振回路103の障害(発振異常)を検知している。従来のクロック発生回路101は、メイン・クロック発振回路103の発振異常が検出されたとき、サブ・クロック発振回路102の出力に応答してシステム・クロック信号を生成するように、自動的にクロック発振回路を切替えている。それによって、マイクロコンピュータ100の動作を継続させている。
【0006】
【特許文献1】特開平7−6155号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
図1に示されるように、クロック発生回路101は、外部に接続される端子(131〜134)を備えている。一般的に、チップ内部に備えられたオシレータは、チップ外部の入力端子に接続されている。その入力端子131〜134に所定の発振子を接続することにより、その発振子の固有周波数に対応するシステム・クロックが生成される。そのシステム・クロックは、マイクロコンピュータ100のCPU、メモリおよび周辺回路に対して供給される。換言すると、オシレータは、その入力端子から供給される信号に応答して上述の一定周波数のクロックを生成している。このとき、シングルチップマイクロコンピュータに外力が加わることで、この入力端子が変形して短絡(ショート)または半短絡(ハーフショート)が発生することがある。また、そのチップが基板に接続される場合に、基板との接触不良による短絡または半短絡が発生することもある。入力端子の短絡は、物理的な要因で発生することが多く、入力端子の短絡を回避することは極めて困難である。
【0008】
入力端子が短絡すると、そのオシレータからは一定周期のクロックが供給されなくなってしまう。オシレータから一定の周期のクロックが出力されなくなると、そのクロックを基準クロックとすることで正常動作が補償されている回路に、補償範囲外のクロックが供給されることになる。そのため、例えば、シングルチップマイクロコンピュータに備えられているCPUの暴走や、メモリのデータの読出し/書き込みエラーなどが発生してしまう。
【0009】
図2は、オシレータに発生する不具合の状態と、そのときのオシレータ出力の対応を示すテーブルである。図2に参照すると、領域201には、上述の不具合の状態が表されている。そして、領域202には、その不具合の状態に対応するようにオシレータ出力が表されている。さらに、そのテーブルは第1〜第13の小領域201−1〜201−13を含み、各小領域(201−1〜201−13)には、個々の発生する不具合の状態に対応させて、実際にオシレータから出力される電位が具体的に表されている。
【0010】
図2に示されているように、オシレータに接続される入力端子が短絡(または、半短絡)すると、一定周期のクロックが出力されず、電源電位VDDまたは設置電位GNDが出力されてしまう。
【0011】
ここで、第13の小領域201−13に示されている不具合の状態について説明を行う。第13の小領域201−13には、入力端子が短絡し、かつ、その短絡された入力端子からL成分(インダクタンス成分)が付加された信号が供給される場合と、そのときのオシレータ出力とが対応付けて表されている。
【0012】
図2の第13の小領域201−13に示されているように、このときにオシレータから出力される信号は、電源電位VDDまたは設置電位GNDにはならず、不定的なクロックが出力されてしまう。しかも、この不定的なクロックは、通常時にオシレータから出力されるクロックの周波数を超える高周波成分を含んでいることがある。従来の技術において、このような高周波成分を含む信号がオシレータから出力されるということは考慮されてはいなかった。したがって、上述した従来技術では、このような現象(高周波成分を含んだ不定周期のクロックが出力されてしまうという現象)に対応することが困難である。この課題は、本願の発明者が研究開発の過程で発見したものであり、早急に解決しなければならないものである。
【課題を解決するための手段】
【0013】
以下に、[発明を実施するための最良の形態]で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
【0014】
上記課題を解決するために、発振器(2)と、前記発振器(2)から出力されるクロック(21)を計測して得られたカウント値に基づいて前記発振器(2)の周波数を特定し、前記周波数が所定の周波数範囲外のときに、発振異常信号(24)を生成する発振異常検出部(4)とを具備する半導体装置(1)を構成する。
その半導体装置(1)において、さらに、CPU(中央演算処理装置)(6)を備える構成であっても良い、その場合、前記発振異常検出部(4)は、前記発振異常信号(24)を前記CPU(6)に供給する構成であることが好ましい。そして、前記CPU(6)は、前記発振異常信号(24)に応答して動作を停止する。
【0015】
また、上記課題がシングルチップマイクロコンピュータに生じるものである場合、発振器(2)と、CPU(中央演算処理装置)(6)と、複数のカウンタを備えるカウンタ群(30)と、発振異常信号を生成する異常検出回路(35)とを備えるシングルチップマイクロコンピュータを構成することが好ましい。
そのカウンタ群(30)は、第1計測期間(T12)において前記発振器(2)から出力されるクロック(21)を計測することで第1カウント値を得る第1カウンタ(32)と、前記第1計測期間(T12)に続く第2計測期間(T23)において前記クロック(21)を計測することで第2カウント値を得る第2カウンタ(33)と、前記第2計測期間(T23)に続く第3計測期間(T34)において前記クロック(21)を計測することで第3カウント値を得る第3カウンタ(34)とを備える構成であることが好ましい。
ここで、前記第1カウンタ(32)は、前記第2計測期間(T23)において前記第1カウント値と比較値(36)とを比較した結果に基づいて第1監視結果(45)を生成し、前記第3期間において、前記第1カウント値をリセットする。また、前記第2カウンタは、前記第3計測期間(T34)において前記第2カウント値と前記比較値(37)とを比較した結果に基づいて第2監視結果(46)を生成し、前記第3計測期間(T34)に続く新たな第1計測期間(T12)において、前記第2カウント値をリセットする。そして、前記第3カウンタは、前記第3計測期間(T34)に続く新たな第1計測期間(T45)において、前記第3カウント値と前記比較値(38)とを比較した結果に基づいて第3監視結果(47)を生成し、前記新たな第1計測期間(T45)に続く新たな第2計測期間(T56)において前記第3カウント値をリセットする。
このときに、前記異常検出回路(35)は、前記第1監視結果(45)、前記第2監視結果(46)および前記第3監視結果(47)のそれぞれが連続的に前記発振器(2)の発振異常を示すとき、前記発振異常信号(24)を生成する。そして、前記CPU(6)は前記発振異常信号(24)に応答して動作を停止する。
【発明の効果】
【0016】
本発明によると、オシレータから出力されるクロックに基づいてそのオシレータの発振異常が検出された場合、その異常に対応してマイクロコンピュータの動作を適切に停止させることが出来る。特に、本発明によると、通常のクロックの周波数を超える高周波成分を含んでいる信号がオシレータから出力される場合に、その高周波成分を異常発振であると判定してマイクロコンピュータの動作を停止することができる。
【発明を実施するための最良の形態】
【0017】
[実施の形態の構成]
以下に、図面を参照して本発明を実施するための形態について説明を行う。図3は、本実施の形態の半導体装置の構成を示す回路図である。以下の実施の形態において、その半導体装置がシングルチップマイクロコンピュータである場合を例示して説明を行う。なお、これは、本発明がシングルチップマイクロコンピュータのみに適用可能であることを示すものではない。図3を参照すると、本実施の形態のシングルチップマイクロコンピュータ1は、オシレータ(発振器)2と、PLL3(PLL:Phase Locked Loop)と、発振異常検出部4と、FlashROM5と、CPU6(CPU:Central Processing Unit)と、複数の周辺装置(7−1〜7−n:nは任意の自然数)とを含んで構成されている。図3に示されているように、発振異常検出部4は、内部リセット信号生成回路8(リセットジェネレータ)と、クロックモニタ9とを含んで構成されている。また、内部リセット信号生成回路8は、信号生成部11を含んで構成されている。
【0018】
図3に示されているように、シングルチップマイクロコンピュータ1は、第1オシレータ入力端子12と第2オシレータ入力端子13とを備えている。第1オシレータ入力端子12と第2オシレータ入力端子13との各々は、オシレータ2に接続されている。第1オシレータ入力端子12と第2オシレータ入力端子13とに所定の発振子(図示されず)を接続することにより、その発振子の固有周波数に対応するクロック(オシレータ出力21)が生成される。そのクロックは、PLL3に供給され、PLL3の出力(PLL出力23)がマイクロコンピュータ1のCPU6、メモリおよび周辺回路(7−1〜7−n)に対して供給される。また、シングルチップマイクロコンピュータ1は、端子リセット信号入力端子14を備えている。その端子リセット信号入力端子14は、内部リセット信号生成回路8に接続されている。第1オシレータ入力端子12、第2オシレータ入力端子13および端子リセット信号入力端子14は、シングルチップマイクロコンピュータ1の外部から供給される信号を受け取ることが可能なように設けられていることが好ましい。
【0019】
図3を参照すると、オシレータ2は、一定周波数のクロックを生成する回路である。そのオシレータ2は、例えばコルピッツ形発振回路で構成されている。PLL3は、入力信号や基準周波数と、出力信号との周波数を一致させる電子回路である。PLL3は、通常時にはオシレータ出力21とPLL出力23との位相差を検出し、VCO(電圧によって周波数を変化させる発振器)や回路のループを制御することで、正確に同期した周波数の信号をCPU6に供給している。
【0020】
発振異常検出部4は、オシレータ2が正常は周波数のクロックを供給しているかどうかを監視する回路ブロックである。FlashROM5は、データの消去・書き込みを自由に行なうことができ、電源を切っても内容が消えない半導体メモリである。FlashROM5は、データの読み出し/書き込み、消去に用いられるチャージポンプ(昇圧回路)を内部備えている。そのため、FlashROM5には、チャージポンプのスイッチング用にクロックを供給するリングオシレータが備えられている。FlashROM5は、そのリングオシレータから出力されるクロックを発振異常検出部4に供給している。
【0021】
CPU6は、シングルチップマイクロコンピュータ1の動作制御を行う演算処理装置である。また、複数の周辺装置(7−1〜7−n)は、シングルチップマイクロコンピュータ1の内部に備えられた複数の回路機能ブロックである。CPU6は、シングルチップマイクロコンピュータ1の外部から受け取ったデータを解釈して演算し、その演算結果を所定の装置(例えば、周辺装置7−1)に供給する。本実施の形態のCPU6は、内部リセット信号25に基づいて、周辺装置リセット信号26を生成し、複数の周辺装置(7−1〜7−n)に供給している。
【0022】
図3に示されているように、発振異常検出部4は、クロックモニタ9と内部リセット信号生成回路8とを含んで構成されている。クロックモニタ9は、オシレータ2から出力されるクロックを監視するクロック監視機能ブロックである。そのクロックモニタ9は、端子リセットを解除し、周辺装置へのリセットを解除したときに動作を開始する。内部リセット信号生成回路8は、発振異常検出信号24と、端子リセット信号入力端子14を介して供給される端子リセット信号27とに基づいて内部リセット信号25を生成する回路ブロックである。図3に示されているように、内部リセット信号生成回路8は内部に信号生成部11を備え、発振異常検出信号24と端子リセット信号27とに基づいて論理演算を実行して内部リセット信号25を生成している。その信号生成部11には、パワーオンクリア(図示されず)やウォッチドッグタイマ(図示されず)が供給される構成であっても良い。内部リセットを解除する場合において、信号生成部11は、供給される全ての信号の論理積に基づいて内部リセットを解除する構成であることが好ましい。
【0023】
図3に示されているようにシングルチップマイクロコンピュータ1内部において、オシレータ2は、PLL3とクロックモニタ9とに接続されている。そPLL3はCPU6に接続され、そのクロックモニタ9は、FlashROM5と内部リセット信号生成回路8とに接続されている。また、端子リセット信号入力端子14は、内部リセット信号生成回路8に接続され、その内部リセット信号生成回路8はCPU6に接続されている。またCPU6は複数の周辺装置(7−1〜7−n)に接続されている。
【0024】
図3を参照すると、オシレータ2は、第1オシレータ入力端子12から供給される第1オシレータ入力信号と、第2オシレータ入力端子13から供給される第2オシレータ入力信号とに応答して、オシレータ出力21を出力している。オシレータ2から出力されたオシレータ出力21は、PLL3とクロックモニタ9との各々に供給される。PLL3は、オシレータ出力21に応答して、PLL出力23を生成してCPU6に供給している。クロックモニタ9は、前述のオシレータ出力21と、FlashROM5から出力されるリングオシレータ出力22とに基づいて発振異常検出信号24を生成して内部リセット信号生成回路8に出力している。ここで、発振異常検出信号24を生成する動作に関する詳細な説明は後述する。
【0025】
内部リセット信号生成回路8から出力される内部リセット信号25は、CPU6に供給される。CPU6は、その内部リセット信号25に応答して動作を停止する。また、CPU6は、内部リセット信号25に応答して周辺装置リセット信号26を生成して複数の周辺装置(7−1〜7−n)に供給している。複数の周辺装置(7−1〜7−n)は、周辺装置リセット信号26に応答して動作を停止する。また、複数の周辺装置(7−1〜7−n)は、内部リセット信号生成回路8に接続され、その内部リセット信号生成回路8から出力される内部リセット信号25に応答してその動作を停止する構成であっても良い。
【0026】
図4は、クロックモニタ9の構成を示す回路図である。図4を参照すると、クロックモニタ9は、カウンタ群30と、タイミング生成ブロック31と、異常検出ブロック35とを含んで構成されている。そのカウンタ群30は、第1カウンタ32と、第2カウンタ33と、第3カウンタ34とを備えている。図4に示されているように、第1カウンタ32は、第1レジスタ36を含んで構成されている。同様に第2カウンタ33は第2レジスタ37を含んで構成され、第3カウンタ34は第3レジスタ38を含んで構成されている。
【0027】
タイミング生成ブロック31は、リングオシレータ出力22に基づいて、それの分周のクロックである分周クロック41を生成するクロック生成回路である。また、タイミング生成ブロック31は、オシレータ出力21とリングオシレータ出力22とに基づいて、第1カウンタサンプリングクロック42、第2カウンタサンプリングクロック43および第3カウンタサンプリングクロック44を生成している。
【0028】
第1カウンタ32は、第1カウンタサンプリングクロック42に同期してオシレータ出力21の周波数を計測するカウンタである。第1カウンタ32は、その計測結果に基づいて第1detect信号45を生成して異常検出ブロック35に供給している。
【0029】
第2カウンタ33および第3カウンタ34は、第1カウンタ32と同様の構成のカウンタである。第2カウンタ33は、第2カウンタサンプリングクロック43に同期してオシレータ出力21の周波数を計測し、その計測結果に基づいて第2detect信号46を生成している。第3カウンタ34は、第3カウンタサンプリングクロック44に同期してオシレータ出力21の周波数を計測し、その計測結果に基づいて第3detect信号47を生成している。
【0030】
異常検出ブロック35は、分周クロック41に同期して、第1detect信号45、第2detect信号46および第3detect信号47に基づいてオシレータ出力21を監視して発信異常を検出する回路ブロックである。
【0031】
図4に示されているように、タイミング生成ブロック31は、第1カウンタ32、第2カウンタ33および第3カウンタ34のそれぞれに接続されている。また、タイミング生成ブロック31は、異常検出ブロック35に接続されている。そして、第1カウンタ32、第2カウンタ33および第3カウンタ34は、異常検出ブロック35に接続されている。
【0032】
タイミング生成ブロック31は、前述のオシレータ出力21とリングオシレータ出力22とに基づいて、分周クロック41を生成している。タイミング生成ブロック31は、その分周クロック41を異常検出ブロック35に供給している。またタイミング生成ブロック31は、オシレータ出力21とリングオシレータ出力22とに基づいて第1カウンタサンプリングクロック42、第2カウンタサンプリングクロック43および第3カウンタサンプリングクロック44を生成している。図4に示されているように、タイミング生成ブロック31は第1カウンタサンプリングクロック42を第1カウンタ32に供給している。同様に、タイミング生成ブロック31は、第2カウンタサンプリングクロック43を第2カウンタ33に供給し、第3カウンタサンプリングクロック44を第3カウンタ34に供給している。
【0033】
第1カウンタ32は、第1カウンタサンプリングクロック42とオシレータ出力21とに基づいて第1detect信号45を生成している。第1カウンタ32は、その第1detect信号45を異常検出ブロック35に供給している。第2カウンタ33は、第2カウンタサンプリングクロック43とオシレータ出力21とに基づいて第2detect信号46を生成している。第2カウンタ33は、その第2detect信号46を異常検出ブロック35に供給している。そして、第3カウンタ34は、第3カウンタサンプリングクロック44とオシレータ出力21とに基づいて第3detect信号47を生成している。第3カウンタ34は、その第3detect信号47を異常検出ブロック35に供給している。
【0034】
異常検出ブロック35は、分周クロック41、第1detect信号45、第2detect信号46および第3detect信号47に基づいて発振異常検出信号24を生成して出力している。また、図4に示されているように、異常検出ブロック35は端子リセット信号27に応答して発振異常検出信号24の出力を停止する。
【0035】
図5は、異常検出ブロック35の構成を示す回路図である。図5を参照すると、異常検出ブロック35は、第1論理回路51と、シフトレジスタ52と、第2論理回路53と、記憶回路54とを含んで構成されている。また、シフトレジスタ52は、複数のフリップフロップ(52−1〜52−6)を含んで構成されている。なお、このシフトレジスタ52の構成は、本実施の形態におけるシフトレジスタ52を限定するものではない。シフトレジスタ52を構成するフリップフロップは任意であり、要求される信頼性に対応して構成することが可能である。
【0036】
第1論理回路51は、第1detect信号45、第2detect信号46および第3detect信号47に応答して、論理和67を生成する回路ブロックである。図5に示されているように、第1論理回路51はOR回路で構成されていることが好ましい。
【0037】
シフトレジスタ52は、所定の期間における、オシレータ出力21の状態を記憶する回路である。図5に示されているように、シフトレジスタ52は、複数のフリッピフロップを用いてオシレータ出力21の状態を記憶している。
【0038】
第2論理回路53は、そのシフトレジスタ52から供給される複数の内部信号(61〜66)に応答して論理積68を生成する回路ブロックである。図5に示されているように、第2論理回路53は、AND回路で構成されていることが好ましい。記憶回路54は、論理積68を保持する記憶回路である。
【0039】
図5を参照すると、第1論理回路51は、第1フロップフロップ52−1に接続されている。第1フロップフロップ52−1は、第2フロップフロップ52−2に接続され、その第2フロップフロップ52−2は、第3フロップフロップ52−3と第2論理回路53とに接続されている。以降、図5に示されているように、第3フロップフロップ52−3は、第4フロップフロップ52−4に接続され、第4フロップフロップ52−4は第5フロップフロップ52−5に接続され、第5フロップフロップ52−5は、第6フロップフロップ52−6に接続されている。また、図5に示されているように、シフトレジスタ52を構成する複数のフリップフロップ(52−1〜52−6)は、直列的に接続され、それぞれの出力端が第2論理回路53に接続されている。第2論理回路53は、記憶回路54に接続されている。また、複数のフリップフロップの各々には、分周クロック41が供給されている。
【0040】
第1論理回路51は、第1detect信号45、第2detect信号46および第3detect信号47に基づいて、論理演算を実行している。第1論理回路51は、その論理演算の結果である論理和67を第1フロップフロップ52−1に供給している。第1フロップフロップ52−1には、その論理和67と分周クロック41とが供給されている。第1フロップフロップ52−1は、その分周クロック41と論理和67とに基づいて第1内部信号61を生成する。第1フロップフロップ52−1は、その第1内部信号61を第2フロップフロップ52−2と第2論理回路53との各々に供給している。図5に示されているように、第2フロップフロップ52−2は、その第1内部信号61と分周クロック41とに基づいて第2内部信号62を生成している。第2フロップフロップ52−2は、その第2内部信号62を第3フロップフロップ52−3と第2論理回路53とに供給している。このように、各フリップフロップ(52−n)は、前段のフリップフロップ(52−x:x=n−1)から供給される内部信号(6x)と、分周クロック41とに基づいて内部信号(6n)を生成する。生成された内部信号は、後段のフリップフロップ(52−y:y=n+1)と第2論理回路53とに供給される。
【0041】
第2論理回路53には、各フリップフロップ(52−1〜52−6)から出力される第1〜第6内部信号(61〜66)の基づいて論理演算を実行している。第2論理回路53は、その論理演算の結果である論理積68を記憶回路54に供給している。記憶回路54は、電源線55から供給される信号と第2論理回路53から出力される信号(論理積68)とに基づいて、発振異常検出信号24を記憶し、その発振異常検出信号24を継続的に出力している。この場合において、電源線55からはHighレベルを示す信号が供給される構成であることが好ましい。記憶回路54に保持される値は、外部から入力される端子リセット信号27に応答してリセットされる。そのため、端子リセット信号27が入力されたときに、クロックモニタ9はその発振異常検出信号24の出力を停止する。
【0042】
[実施の形態の動作]
図6は、本実施の形態の動作を示すタイミングチャートである。図6に示されているように、本実施の形態における、複数のカウンタ(32〜34)は、『サンプリング』、『比較』、『リセット』の動作を順番に繰り返して実行している。なお、これは本発明の動作に関する理解を容易にするために例示したものである。本願発明は、このような動作以外、例えば、『サンプリング』、『比較・リセット』の動作を交互に繰り返して実行する場合に適用することも可能である。
【0043】
図6の(a)は、オシレータ2から出力されるクロックの波形を例示している。図6の(b)は、FlashROM5から出力されるリングオシレータ出力22に基づいて、タイミング生成ブロック31で生成される分周クロック41の波形を例示している。図6の(c)は、タイミング生成ブロック31から出力される第1カウンタサンプリングクロック42の波形を例示している。同様に、図6の(d)は第2カウンタサンプリングクロック43の波形を例示し、図6の(e)は、第3カウンタサンプリングクロック44の波形を例示している。
【0044】
さらに、図6の(f)〜図6の(h)は、第1カウンタ32から第3カウンタ34の動作を示している。図6の(f)〜図6の(h)に示されているように、各カウンタ(32〜34)は、サンプリング期間におけるオシレータ出力21の計測と、比較期間における比較動作と、リセット期間におけるリセット動作とを循環的に繰り返して動作している。
【0045】
図6の(i)は、第1カウンタ32から出力される第1detect信号45の波形を例示している。同様に、図6の(j)は、第2カウンタ33から出力される第2detect信号46の波形を示し、図6の(k)は、第3カウンタ34から出力される第3detect信号47の波形を例示している。さらに、図6の(l)から図6の(q)は、異常検出ブロック35の内部で生成される複数の内部信号(61〜66)の波形を例示している。また、図6の(r)は、異常検出ブロック35の内部に備えられている第2論理回路53の出力波形を例示している。そして、図6の(s)は、異常検出ブロック35から出力される発振異常検出信号24の波形を例示している。
【0046】
図6を参照すると、第1カウンタ32から第3カウンタ34の各カウンタは、分周クロック41に同期してサンプリング(オシレータ出力21の計測)動作、計測されたクロック数とレジスタ(36〜38)に格納されている比較値との比較動作およびサンプリングしたクロック数のリセット動作を順番に繰り返して実行している。図6に示されているように、分周クロック41の1周期において、第1カウンタ32から第3カウンタ34の各カウンタは、同じ動作を実行することがない。例えば、図6に示されている時刻t1から時刻t2までの期間を第1期間T12とすると、第1期間T12において、第1カウンタ32はサンプリングを実行している。このとき第2カウンタ33は、カウンタリセットを実行し、第3カウンタ34はカウンタ値の比較を実行している。
【0047】
第1カウンタ32から第3カウンタ34の各カウンタをこのように動作させることで、常時オシレータ出力21の監視を実行することができるようになる。
【0048】
ここで、図6の(i)から図6の(k)を参照すると、第2期間T23にエラーが検出された後、第7期間T78まで連続してエラーが検出された場合が例示されている。図6を参照すると、第2期間T23において、第1カウンタ32からエラーを示す第1detect信号45が出力される。異常検出ブロック35の第1論理回路51は、その第1detect信号45に対応する論理和67を第1フロップフロップ52−1に出力する。時刻t3において、第1フロップフロップ52−1は、分周クロック41に同期して、その論理和67に基づいてエラー発生を示す第1内部信号61を出力する。
【0049】
その後、第3期間T34において、第2カウンタ33からエラーを示す第2detect信号46が出力される。第1論理回路51は、その第2detect信号46に対応する論理和67を第1フロップフロップ52−1に出力する。時刻t4において、第1フロップフロップ52−1は、分周クロック41に同期して、その論理和67に基づいてエラー発生を示す第1内部信号61を出力する。また、時刻t4において、第2フロップフロップ52−2には、前段の第1フロップフロップ52−1からシフトされた値が供給される。そのため、第2フロップフロップ52−2は、第2期間T23にエラーが発生していたことを示す第2内部信号62を出力する。
【0050】
その後、第4期間T45〜第7期間T78まで連続でエラーが発生した場合、第1内部信号61から第6内部信号66の全てが、エラー発生を示す値になる(図6の時刻t3から時刻t8参照)。時刻t8において、第2論理回路53は、供給される複数の内部信号(61〜66)に応答して、オシレータの発振異常の発生を示す論理積68を記憶回路54に供給する。記憶回路54は、時刻t9において、保持している発振異常検出信号24を出力する。記憶回路54は、端子リセット信号27を受信するまで論理積68の値(発振異常検出信号24)を保持しつづける。そして、記憶回路54は、外部から端子リセット信号27が入力された場合のみ、出力している発振異常検出信号24の出力を停止する。
上述したように、クロックモニタ9は、端子リセット信号27が入力されると、現在出力している発振異常検出信号24の出力を停止する。例えば、本実施の形態において、通常時の端子リセット信号入力端子14がHighレベルに固定されているものとする。また、図6の(s)に示されているように、クロックモニタ9は、通常時にはHighレベルの信号を出力している。ここで、オシレータ2が異常発振をしていると判定されたとき、クロックモニタ9は、発振異常検出信号24としてLowレベルの信号を継続的に出力する。
このとき、端子リセット信号27としてリセットパルスが供給されると、その端子リセット信号27に応答して、クロックモニタ9の記憶回路54がリセットされ、クロックモニタ9からは再びHighレベルの信号が継続的に出力される。その後、信号生成部11には、端子リセット信号入力端子14からHighレベルが供給され、内部リセットは解除される。
【0051】
本発明のシングルチップマイクロコンピュータ1を上述したように構成し、そのシングルチップマイクロコンピュータ1を上述したように動作させることによって、オシレータ2から出力されるオシレータ出力21に発振異常が発生した場合、その異常に対応してマイクロコンピュータの動作を適切に停止させることが出来る。このとき、シングルチップマイクロコンピュータ1は、計測されたクロック周波数を、予め保持された比較値と比較することで、オシレータ2の動作を監視している。この比較値は、所定の範囲(動作補償範囲)の周波数を示している。例えば、本実施形態のシングルチップマイクロコンピュータ1が、5Mhz 〜7Mhzの範囲のオシレータ出力21に対応して動作するように設計されている場合、発振異常検出部4は、その比較値から外れる周波数(例えば、8MHzの周波数)を検出したときに、第1段間の発信異常信号(45〜47)を生成する。したがって、本発明のシングルチップマイクロコンピュータ1は、通常時のクロックの周波数を超える高周波成分(例えば、上述のしたような8MHzの周波数成分)を含んでいる信号がオシレータから出力される場合に、その高周波成分を異常発振であると判定してCPU6や周辺装置(7−1〜7−n)の動作を停止することができる。
【0052】
また、本願発明によると、オシレータ出力の異常を検出したときに、CPUを完全停止させ、停止解除の命令を受信するまで、停止動作を継続させることが可能になる。したがって、接触不良などにより、オシレータの入力端子が、短絡と非短絡(=正常接続)という状態(例えば、図2の第4小領域201−4や第5小領域201−5のような状態)を不安定的にとる場合に、一旦停止したCPUや周辺装置が再起動することを抑制することができる。
【0053】
オシレータ出力の発振異常が検出された後、そのオシレータから正常なクロックが供給された場合であっても、実際にはその発振異常の原因が解消されていないことがある。シングルチップマイクロコンピュータを搭載する機器にとって、機器の信頼性はそのシングルチップマイクロコンピュータの信頼性と対応する。オシレータの発振異常の原因が解消されていない状態で、マイクロコンピュータのCPUや周辺装置が再び動作を開始してしまうと、機器の信頼性は大幅に低下してしまう。本発明のシングルチップマイクロコンピュータは、一旦オシレータ出力の発振異常が検出された後は、外部から端子リセット信号27が入力された場合のみ、再起動を行っている。従って、本発明のシングルチップマイクロコンピュータの構成を採用することで、高い信頼性を有する機器を構成することができるようになる。
【0054】
また、例えば、瞬間的な電源電圧の変動が発生した場合を考える。このような場合、その電源電圧の変動に対応して、一時的に正常なクロックの周波数と異なる周波数のクロックが、オシレータから出力されることがある。このような瞬間的なクロック周波数の変動によって、マイクロコンピュータが誤動作する可能性は低い。本発明では、オシレータからの出力を所定の期間において監視を行っている。そして、その期間内に正常な周波数のクロックが検出されなかったとき、発信異常が発生していると判断している。そのため、本発明によると、瞬間的なクロック周波数の変動を、発信異常と判断することなく、実質的に問題となる周波数の変動のみを発信異常と判断することができる。
【図面の簡単な説明】
【0055】
【図1】図1は、従来技術のクロック発生回路の構成を示すブロック図である。
【図2】図2は、オシレータに発生する不具合の状態と、そのときのオシレータ出力の対応を示すテーブルである。
【図3】図3は、本実施の形態のシングルチップマイクロコンピュータの構成を示す回路図である。
【図4】図4は、発信異常検出部の構成を示す回路図である。
【図5】図5は、異常検出ブロックの構成を示す回路図である。
【図6】図6は、本実施の形態の動作を示すタイミングチャートである。
【符号の説明】
【0056】
1…シングルチップマイクロコンピュータ
2…オシレータ
3…PLL
4…発振異常検出部
5…FlashROM
6…CPU
7−1〜7−n…周辺装置
8…内部リセット信号生成回路
9…クロックモニタ
11…信号生成部
12…第1オシレータ入力端子
13…第2オシレータ入力端子
14…端子リセット信号入力端子
21…オシレータ出力
22…リングオシレータ出力
23…PLL出力
24…発振異常検出信号
25…内部リセット信号
26…周辺装置リセット信号
27…端子リセット信号
30…カウンタ群
31…タイミング生成ブロック
32…第1カウンタ
33…第2カウンタ
34…第3カウンタ
35…異常検出ブロック
36…第1レジスタ
37…第2レジスタ
38…第3レジスタ
41…分周クロック
42…第1カウンタサンプリングクロック
43…第2カウンタサンプリングクロック
44…第3カウンタサンプリングクロック
45…第1detect信号
46…第2detect信号
47…第3detect信号
51…第1論理回路
52…シフトレジスタ
52−1〜52−6…フリップフロップ
53…第2論理回路
54…記憶回路
55…電源線
61〜66…内部信号
67…論理和
68…論理積
101…クロック発生回路
102…サブ・クロック発振回路
103…メイン・クロック発振回路
104…タイマ
105…OR回路
106…クロック切替フラグ
107…発振制御フラグ
108…タイマ・リセット・フラグ
109…システム・クロック切替回路
121…内部バス
111…サブ・クロック信号
113…システム・リセット信号
116…タイマ・キャリー信号
117…フラグ・リセット信号
201、202…領域
201−1〜201−13…小領域

【特許請求の範囲】
【請求項1】
発振器と、
前記発振器から出力されるクロックを計測して得られたカウント値に基づいて前記発振器の周波数を特定し、前記周波数が所定の周波数範囲外のときに、発振異常信号を生成する発振異常検出部と
を具備する
半導体装置。
【請求項2】
請求項1に記載の半導体装置において、さらに、
CPU(中央演算処理装置)を備え、
前記発振異常検出部は、
前記発振異常信号を前記CPUに供給し、
前記CPUは、前記発振異常信号に応答して動作を停止する
半導体装置。
【請求項3】
請求項2に記載の半導体装置において、
前記カウント値は、
第1期間において前記発振器から出力されるクロックを計測して得られた第1カウント値と、
前記第1期間に続く第2期間において前記クロックを計測して得られた第2カウント値とを含み、
前記発振異常検出部は、
前記第1カウント値と前記所定の周波数範囲を示す比較値とを比較して得られた第1比較結果が、前記発振器の発振異常を示し、かつ、
前記第2カウント値と前記比較値とを比較して得られた第2比較結果が、前記発振器の発振異常を示すとき、前記発振異常信号を生成する
半導体装置。
【請求項4】
請求項3に記載の半導体装置において、
前記発振異常検出部は、クロックモニタを備え、
前記クロックモニタは、
カウンタ群と、
前記第1比較結果と前記第2比較結果とに基づいて前記異常発振信号を生成する異常検出回路と
を具備し、
前記カウンタ群は、
前記第1カウント値を計測する第1カウンタと、
前記第2カウント値を計測する第2カウンタと
を含み、
前記第1カウンタは、
前記第2期間において前記第1カウント値と前記比較値とを比較した結果に基づいて前記第1比較結果を生成し、
前記第2カウンタは、
前記第2期間に続く新たな第1期間において前記第2カウント値と前記比較値とを比較した結果に基づいて前記第2比較結果を生成する
半導体装置。
【請求項5】
請求項4に記載の半導体装置において、
前記異常検出回路は、前記発振異常信号を保持する発振異常信号保持回路を備え、
前記発振異常信号保持回路に保持する前記発振異常信号を継続して出力する
半導体装置。
【請求項6】
請求項5に記載の半導体装置において、
前記第1カウンタと前記第2カウンタとの少なくとも一方は、前記比較値を保持する記憶回路を備え、
前記記憶回路を参照して前記第1比較結果と前記第2比較結果とを生成する
半導体装置。
【請求項7】
請求項6に記載の半導体装置において、
前記クロックモニタは、さらに
前記第1期間と前記第2期間とを特定する特定クロックを生成するタイミング生成回路
を備え、
前記タイミング生成回路は、前記特定クロックを前記カウンタ群に供給し、
前記第1カウンタは、前記特定クロックに同期して前記第1期間を特定し、
前記第2カウンタは、前記特定クロックに同期して前記第2期間を特定する
半導体装置。
【請求項8】
請求項7に記載の半導体装置において、
前記タイミング生成回路は、異常検出用クロックを生成して前記異常検出回路に供給し、
前記異常検出回路は、
前記第1比較結果と前記第2比較結果とに基づいて所定の論理演算を実行して合計比較結果を出力する第1論理演算回路と、
前記異常検出用クロックに同期して、前記合計比較結果に基づいて、複数の内部信号を生成するシフトレジスタと、
前記複数の内部信号が供給され、複数の前記複数の内部信号に基づいて所定の論理演算を実行して前記発振異常信号を生成し、前記発振異常信号を前記発振異常信号保持回路に出力する第2論理演算回路と
を含み、
前記シフトレジスタは、複数のフリップフロップを有し、前記複数のフリップフロップのそれぞれの出力端は、前記第2論理演算回路に接続される
半導体装置。
【請求項9】
請求項7または8に記載の半導体装置において、さらに、
チャージポンプ回路のスイッチング用クロックを供給するリングオシレータを有する不揮発性メモリを具備し、
前記タイミング生成回路は、前記不揮発性メモリから出力されるスイッチング用クロックに基づいて前記特定クロックまたは前記異常検出用クロックを生成する
半導体装置。
【請求項10】
請求項9に記載の半導体装置において、
前記発振異常信号保持回路は、解除信号受信端子を備え、
前記解除信号受信端子を介して供給される保持解除信号に応答して、前記発振異常信号の保持を終了する
半導体装置。
【請求項11】
請求項10に記載の半導体装置において、
前記記憶回路は、外部から供給される比較値更新命令に応答して、前記記憶回路内部に保持される前記比較値を、新たな比較値に更新する
半導体装置。
【請求項12】
発振器と、
CPU(中央演算処理装置)と、
第1計測期間において前記発振器から出力されるクロックを計測して第1カウント値を得る第1カウンタと、
前記第1計測期間に続く第2計測期間において前記クロックを計測して第2カウント値を得る第2カウンタと、
前記第2計測期間に続く第3計測期間において前記クロックを計測して第3カウント値を得る第3カウンタと、
発振異常信号を生成する異常検出回路と
を具備し、
前記第1カウンタは、
前記第2計測期間において前記第1カウント値と比較値とを比較した結果に基づいて第1監視結果を生成し、前記第3期間において、前記第1カウント値をリセットし、
前記第2カウンタは、
前記第3計測期間において前記第2カウント値と前記比較値とを比較した結果に基づいて第2監視結果を生成し、前記第3計測期間に続く新たな第1計測期間において、前記第2カウント値をリセットし、
前記第3カウンタは、
前記第3計測期間に続く新たな第1計測期間において、前記第3カウント値と前記比較値とを比較した結果に基づいて第3監視結果を生成し、前記新たな第1計測期間に続く新たな第2計測期間において前記第3カウント値をリセットし、
前記異常検出回路は、
前記第1監視結果、前記第2監視結果および前記第3監視結果のそれぞれが連続的に前記発振器の発振異常を示すとき、前記発振異常信号を生成し、
前記CPUは前記発振異常信号に応答して動作を停止する
半導体装置。
【請求項13】
請求項12に記載の半導体装置において、
前記異常検出回路は、前記発振異常信号を保持する発振異常信号保持回路を備え、
前記発振異常信号保持回路に保持する前記発振異常信号を継続して出力する
半導体装置。
【請求項14】
請求項13に記載の半導体装置において、
前記第1カウンタ、前記第2カウンタおよび前記第3カウンタのそれぞれは、前記比較値を保持する記憶回路を備え、
前記記憶回路を参照して前記発振器の異常を監視する
半導体装置。
【請求項15】
請求項14に記載の半導体装置において、さらに、
チャージポンプ回路のスイッチング用クロックを供給するリングオシレータを有する不揮発性メモリと、
前記不揮発性メモリから出力されるスイッチング用クロックに基づいて前記異常検出用クロックを生成して前記異常検出回路に供給するタイミング生成回路と
を具備し、
前記異常検出回路は、
前記第1監視結果、前記第2監視結果および前記第3監視結果に基づいて所定の論理演算を実行して合計監視結果を出力する第1論理演算回路と、
複数のフリップフロップを有するシフトレジスタと、
前記シフトレジスタから出力される複数の内部信号に基づいて、所定の論理演算を実行して前記発振異常信号を生成し、前記発振異常信号を前記発振異常信号保持回路に出力する第2論理演算回路と
を備え、
前記複数のフリップフロップのそれぞれは、前記第2論理演算回路に接続される出力端を含み、前記異常検出用クロックに同期して、前記合計監視結果に基づいて、前記内部信号を生成し、前記出力端を介して出力する
半導体装置。
【請求項16】
単一のチップで構成される
請求項1乃至14の何れか1項に記載の半導体装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−172202(P2006−172202A)
【公開日】平成18年6月29日(2006.6.29)
【国際特許分類】
【出願番号】特願2004−364771(P2004−364771)
【出願日】平成16年12月16日(2004.12.16)
【出願人】(302062931)NECエレクトロニクス株式会社 (8,021)
【Fターム(参考)】