(57)【要約】【課題】電源電圧が第一閾値電圧以下の落ちた後に動作クロックを止め、第一閾値電圧以上に電源電圧が復帰した場合に動作クロックの供給の再開をした際に、半導体集積回路装置内のデータが破壊されて不適切な動作をする恐れがある。【解決手段】電源電圧が第一閾値電圧よりも低下した場合に、中央演算装置に対する動作クロックの供給を止め、電源電圧が第一閾値電圧よりも高い状態に復帰した際、動作クロックの供給が再開されて動作が継続される。電源電圧を受ける参照回路の参照値を確認しこの参照値に基づいてシステムリセットを行う半導体集積回路装置。【選択図】図２
2014038465.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに従って各種制御を行う中央演算装置と、前記中央演算装置のためのクロックを供給するクロック生成回路と、参照回路とを有し、
前記中央演算装置、前記クロック生成回路、及び前記参照回路に供給される電源電圧が第一閾値電圧よりも低くなった場合、前記クロックの前記中央演算装置に対する供給が止められ、
前記電源電圧が前記第一閾値電圧よりも低い状態から高い状態に復帰した場合、前記クロックの前記中央演算装置に対する供給が再開され、
前記参照回路に格納された参照値に基づいて、前記電源電圧が前記第一閾値電圧よりも低い状態の時に、前記中央演算装置、前記クロック生成回路及び前記参照回路を初期状態にする半導体集積回路装置。
【請求項２】
前記電源電圧の低下を検出する低電圧検出回路を有し、
前記低電圧検出回路は、前記電源電圧が前記第一閾値電圧よりも低くなった場合、前記クロックの前記中央演算装置に対する供給が止めるための信号を出力し、前記電源電圧が前記第一閾値電圧よりも低い第二閾値電圧よりも低くなった場合、前記クロック生成回路及び前記参照回路を初期状態にするためのシステムリセット信号を出力するための信号を出力する請求項１に記載の半導体集積回路装置。
【請求項３】
前記プログラムが格納されている不揮発性メモリと、前記不揮発性メモリの前記プログラムを読み出すためのカウンタ値としてのアドレスを指し示すプログラムカウンタと、格納された第一レジスタ値に従って内部制御を行う第一レジスタと、前記カウンタ値を保持する第一バッファと、前記第一レジスタ値を保持する第二バッファとを有し、
前記クロックが前記プログラムカウンタと、前記第一レジスタと、前記第一バッファと、前記第二バッファに供給されており、
前記クロックが１クロック入力されるごとに、前記第一バッファは格納している前記カウンタ値を前記プログラムカウンタに出力して書き込ませつつ新たな前記カウンタ値に更新し、前記第二バッファは格納している前記第一レジスタ値を前記第一レジスタに出力して書き込ませつつ新たな前記第一レジスタ値に更新し、
前記電源電圧が前記第一閾値電圧よりも低くなった場合、前記クロックの前記プログラムカウンタと、前記第一レジスタと、前記第一バッファと、前記第二バッファに対する供給が止められ、
前記電源電圧が前記第一閾値電圧よりも低い状態から高い状態に復帰した場合、前記クロックの前記プログラムカウンタと、前記第一レジスタと、前記第一バッファと、前記第二バッファに対する供給が再開され、前記プログラムカウンタの前記カウンタ値及び前記第一レジスタの前記第一レジスタ値は、前記電源電圧が前記第一閾値電圧よりも低い状態になる前の値が前記第一バッファ及び前記第二バッファにより設定される請求項１に記載の半導体集積回路装置。
【請求項４】
入出力ポートと、前記入出力ポートを制御するポート設定レジスタと、ポーズ制御回路とを更に有し、
前記電源電圧が前記第一閾値電圧よりも低くなった場合、前記ポーズ制御回路に格納された値を前記ポート設定レジスタに格納する請求項１に記載の半導体集積回路装置。
【請求項５】
前記ポーズ制御回路は、前記電源電圧が前記第一閾値電圧よりも低い状態から高い状態に復帰した場合、前記電源電圧が前記第一閾値電圧よりも低い状態になる前に前記ポート設定レジスタに格納されていた値を前記ポート設定レジスタが用いるか、前記ポーズ制御回路に格納された値を前記ポート設定レジスタが用い続けるかを選択可能とするフラグ格納領域を持つ請求項４に記載の半導体集積回路装置。
【請求項６】
前記クロック生成回路は発振回路を有し、前記電源電圧が前記第一閾値電圧よりも低くなった場合は前記発振回路の発振動作が停止される請求項４に記載の半導体集積回路装置。
【請求項７】
前記電源電圧が前記第一閾値電圧よりも低い状態から高い状態に復帰したことを示すフラグ格納領域を持つポーズ制御回路を有する請求項１に記載の半導体集積回路装置。
【請求項８】
前記電源電圧が前記第一閾値電圧より低い第一電圧にて前記参照回路の参照値が反転し、前記電源電圧が前記第一電圧より低い第二電圧にて前記中央演算装置の内部の値が反転する請求項１に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、半導体集積回路装置に関し、特に中央演算装置を有する半導体集積回路装置に関する。
【背景技術】
【０００２】
特許文献１及び特許文献２には、供給されている電源電圧が第一閾値電圧よりも低下したことを検出した際は、中央演算装置（Central Processing Unit）に対する動作クロックの供給を止め、この電源電圧が第一閾値電圧よりの高い電圧値に回復した場合は、この動作クロックの供給を再開する発明が開示されている。更にこの電源電圧が第一閾値電圧よりも低い第二閾値電圧よりも低下したことを検出した場合は、システムリセットを行う発明が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６０−２２１８１６号公報
【特許文献２】特開２００８−１０２７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
これら２つの特許文献における半導体集積回路装置は、供給される電源電圧が第一閾値電圧と第二閾値電圧の間に低下してから、第一閾値電圧以上の電圧に復帰した場合、動作クロックの供給が再開されて動作が継続される。このような電圧低下があった場合は半導体集積回路装置内に保持されていたデータが破壊されている可能性もあり、第一閾値電圧以上の電圧に復帰した場合に動作クロックの供給が再開されて動作が継続されると動作のエラーを引き起こす可能性がある。
【課題を解決するための手段】
【０００５】
電源電圧が第一閾値電圧よりも低下した場合に、中央演算装置に対する動作クロックの供給を止め、電源電圧が第一閾値電圧よりも高い状態に復帰した際、動作クロックの供給が再開されて動作が継続される。電源電圧が第一閾値電圧よりも低下したときに、電源電圧を受ける参照回路の参照値を確認しこの参照値に基づいてシステムリセットを行う半導体集積回路装置。
【発明の効果】
【０００６】
本発明によれば、参照回路の参照値に基づいてシステムリセットを行うことで、半導体集積回路装置の動作の信頼性を上げることができる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１の半導体集積回路装置の全体図である。
【図２】実施の形態１の半導体集積回路装置の電源電圧が低下した際の回路の動作、及びこの動作に関わる主な構成要素に関して説明する図である。
【図３】参照回路REFの構成及び動作を表す図である。
【図４】半導体集積回路の、電源電圧と動作クロックの関係を表したグラフである。
【図５】実施の形態２の半導体集積回路装置の一部の構成、及びこの半導体集積回路装置のタイミングチャートを表す図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら、実施の形態について詳細に説明する。
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素（動作、タイミングチャート、要素ステップ、動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
なお、実施の形態を説明するための全図において、同一の機能を有する部位や部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
また、実施の形態で用いる図面においては、断面図であっても図面を見易くするためにハッチングを省略する場合もある。また、平面図であっても図面を見易くするためにハッチングを付す場合もある。
【０００９】
（実施の形態１．）
図１は実施の形態１の半導体集積回路装置の全体図である。
半導体集積回路装置ICは、中央演算装置CPUと、ランダムアクセスメモリRAMと不揮発性メモリROMと、タイマーTIMと、シリアル入出力回路SI/Oと、ポート制御レジスタPSREGと、ポート入出力回路PI/Oと、バスBUSと、クロック生成回路CPGと、低電圧検出回路LVDCと、参照回路REFとを有する。更に半導体集積回路装置ICの外側には水晶発振に基づいたクロックを生成して半導体集積回路装置ICにクロック信号を届ける水晶発振回路CRYOSCがある。
【００１０】
中央演算装置CPUはプログラムに従って半導体集積回路装置IC全体を制御する。ランダムアクセスメモリRAMは中央演算装置CPUのワークエリアとして用いられ、各種データや命令等を記憶する記憶領域である。不揮発性メモリROMは中央演算装置CPUにて用いられる各種プログラムが記憶されている。タイマーTIMは各種のタイマ値を生成する。シリアル入出力回路SI/Oはシリアルポートの入出力制御を行う回路である。ポート制御レジスタPSREGはポート入出力回路PI/Oの各種制御値を記憶する。ポート入出力回路PI/Oはポート制御レジスタPSREGの設定値に従って、各種入出力ポートの入出力制御を行う回路である。バスBUSは中央演算装置CPU、ランダムアクセスメモリRAM、不揮発性メモリROM、タイマーTIM、ポート制御レジスタPSREG、シリアル入出力回路SI/O、及びクロック生成回路CPGとの間にて各種データ、コマンド、及びアドレスを互いにやり取りするための複数の信号線である。クロック生成回路CPGは水晶発振回路CRYOSCから出力されたクロック信号に基づいて、中央演算装置CPU、ランダムアクセスメモリRAM、不揮発性メモリROM、タイマーTIM、ポート制御レジスタPSREG、シリアル入出力回路SI/O、クロック生成回路CPG、及び低電圧検出回路LVDCにて用いられる内部クロック信号STCKを生成する。低電圧検出回路LVDCは、中央演算装置CPU、ランダムアクセスメモリRAM、不揮発性メモリROM、タイマーTIM、ポート制御レジスタPSREG、シリアル入出力回路SI/O、クロック生成回路CPG、及び参照回路REFにて用いられる電源電圧VDDが所定の値以下になるか否かを検出し、その結果をクロック生成回路CPGに出力する。電源電圧VDDは半導体集積回路装置ICの外部から受ける形でもよく、外部からの電源電圧に従って半導体集積回路装置ICの内部の図示しない電源回路が生成してもよい。参照回路REFは電源電圧VDDを供給されることにより所定の参照値を保持し、この保持している参照値をクロック生成回路CPGに出力する。尚、クロック生成回路CPGは水晶発振回路CRYOSCからのクロックに基づいて、内部クロック信号STCKを生成する発振回路OSCと、発振回路OSCからの内部クロック信号STCKを半導体集積回路装置ICの各種内部回路に供給するか否かを制御するクロックコントローラCKCがある。
【００１１】
図２は実施の形態１の半導体集積回路装置の電源電圧が低下した際の回路の動作、及びこの動作に関わる主な構成要素に関して説明する図である。
【００１２】
図２の（A）には、半導体集積回路装置の一部の構成要素が描写されている。クロックコントローラCKCはクロック制御スイッチCKC-SWと、参照値検出制御部RVDCを持つ。
【００１３】
図２の（B）には、半導体集積回路装置の電源電圧が低下した際の回路の動作を示すタイミングチャートが示されている。
【００１４】
まずは電源電圧VDDが徐々に低下していき、時刻T1にて第一閾値電圧となる電圧値VDET1に達する。この場合、低電圧検出回路LVDCがこのことを検出して低電圧検出信号LVD1がハイレベルとなり、この信号が参照値検出制御部RVDCに出力される。この低電圧検出信号LVD1を受け参照値検出制御部RVDCはクロック制御スイッチCKC-SWを制御することで、発振回路OSCから出力された内部クロック信号STCKがクロック制御スイッチCKC-SWにて止められ、半導体集積回路装置ICの各種内部回路に対する内部クロック信号STCKの供給が止められる。その後、更に電源電圧VDDが低下してから上昇を初め、時刻T2にてまた電圧値VDET1に達する。この場合、低電圧検出回路LVDCがこのことを検出して低電圧検出信号LVD1がローレベルとなり、この信号が参照値検出制御部RVDCに出力される。この信号を受け参照値検出制御部RVDCはクロック制御スイッチCKC-SWを制御することで、発振回路OSCから出力された内部クロック信号STCKがクロック制御スイッチCKC-SWを通り、半導体集積回路装置ICの各種内部回路に対する内部クロック信号STCKの供給が再開される。このように、電源電圧VDDが電圧値VDET1以下になってから、電圧値VDET2に達することなく、電圧値VDET1以上の状態に復帰した場合、内部クロック信号STCKの供給を止められる前の状態で半導体集積回路装置の動作が再開される。
【００１５】
低電圧検出回路LVDCに基づく内部クロック信号STCKの出力停止動作以外にも、参照回路REFが保持している参照値RVの反転を参照値検出制御部RVDCが受けることにより、システムリセット信号RSTが参照値検出制御部RVDCより出力されて、半導体集積回路装置ICが初期化される場合もある。基本的には電源電圧VDDが電圧値VDET1以下に下がった程度ではシステムリセット信号RSTが出力されることはないが、電源電圧VDDが低下して参照回路REFがリセット時等に設定された参照値RVを保持できなくなり、この参照値RVが反転された場合はシステムリセット信号RSTが出力される。この場合は点線にて示すように、システムリセット信号RSTがハイレベルになる。この参照値RVが反転するような場合は、半導体集積回路装置IC内の中央演算装置CPUやランダムアクセスメモリRAM等の各種内部回路がラッチ等に保持されたデータを内部クロック信号STCKが止められていたとしても保持できない恐れがあることを示している。参照値RVの反転は少なくとも電源電圧VDDが電圧値VDET1よりも低くならないと発生しないので、この参照値RVの反転に基づいたシステムリセット信号は、電源電圧VDDが電圧値VDET1以下になった時に出力される。
【００１６】
図２の（C）には、半導体集積回路装置の電源電圧と動作状態とを表す図である。
【００１７】
電源電圧VDDが電圧値VDET1よりも上の場合は、半導体集積回路装置ICは通常動作状態となる。通常動作状態とは、半導体集積回路装置ICの各種内部回路に内部クロック信号STCKが供給されて、各種内部回路が信号処理を行っている状態である。電源電圧VDDが電圧値VDET1と電圧値VDET2との間にある場合は、低電圧検出回路LVDCが電源電圧VDDが電圧値VDET1と電圧値VDET2の間にあることを検出して低電圧検出信号LVD1をハイレベルにする。第二閾値電圧が電圧値VDET2となる。低電圧検出回路LVDCからの低電圧検出信号LVD1がハイレベルになることに基づいて、参照値検出制御部RVDCがクロック制御スイッチCKC-SWを制御して内部クロック信号STCKが半導体集積回路装置ICの各種内部回路に供給されないようにする。この状態をマイコンポーズ状態とする。このマイコンポーズ状態は、中央演算装置CPU等の各種内部回路のラッチ等のデータは保持された状態ではあるが、内部クロック信号STCKが供給されていないために、動作が止まっている状態である。電源電圧VDDが電圧値VDET2よりも下の場合は、半導体集積回路装置ICはシステムリセット状態となる。低電圧検出回路LVDCは電源電圧VDDが電圧値VDET2よりも低いことを検出して低電圧検出信号LVD2をハイレベルにする。低電圧検出回路LVDCからの低電圧検出信号LVD2がハイレベルになることに基づいて、参照値検出制御部RVDCがシステムリセット信号RSTを半導体集積回路装置ICの各種内部回路に出力する。このことで半導体集積回路装置ICが初期化される。
【００１８】
図３は参照回路REFの構成及び動作を表す図である。
【００１９】
図３の（A）は参照回路REFの構成を表している。入力端子INと、出力端子OUTと、入力端子INと入力が接続され、出力端子OUTと出力が接続されたインバータINV1と、入力端子INと出力が接続され、出力端子OUTと入力が接続されたインバータINV2とで構成されている。よって参照回路REF全体として、インバータINV1の入力とインバータINV2の出力が接続され、インバータINV1の出力とインバータINV2の入力が接続されたラッチ回路となっている。リセット時等に入力端子INに入力を受けることで、参照値RVが出力端子OUTから出力されるように設定される。
【００２０】
図３の（B）は参照回路REFの更に詳細な構成を表している。インバータINV1は電源電圧VDDの供給端子と、電源電圧VDDよりも低い電源電圧であるグランド電圧GNDの供給端子との間にPMOSトランジスタP1とNMOSトランジスタN1が直列に接続された状態で配置されている。PMOSトランジスタP1のソースは電源電圧VDDの供給端子に接続され、PMOSトランジスタP1のドレインは出力端子OUTに接続され、NMOSトランジスタN1のドレインは出力端子OUTに接続され、NMOSトランジスタN1のソースはグランド電圧GNDの供給端子に接続されている。PMOSトランジスタP1とNMOSトランジスタN1のゲートは入力端子INに接続されている。インバータINV2は電源電圧VDDの供給端子と、電源電圧VDDよりも低い電源電圧であるグランド電圧GNDの供給端子との間にPMOSトランジスタP2とNMOSトランジスタN2が直列に接続された状態で配置されている。PMOSトランジスタP2のソースは電源電圧VDDの供給端子に接続され、PMOSトランジスタP2のドレインは入力端子INに接続され、NMOSトランジスタN2のドレインは入力端子INに接続され、NMOSトランジスタN2のソースはグランド電圧GNDの供給端子に接続されている。PMOSトランジスタP2とNMOSトランジスタN2のゲートは出力端子OUTに接続されている。
【００２１】
図３の（C）は参照回路を構成するトランジスタの特性及び参照値と電源電圧との関係を示す表である。
【００２２】
Wをトランジスタのゲート幅、Lをトランジスタのゲート長とすると表の（１）にあるように、PMOSトランジスタP1のW/L＞PMOSトランジスタP2のW/Lとなっている。同じくNMOSトランジスタN1のW/L＜NMOSトランジスタN2のW/Lとなっている。この結果、表の（２）にあるように、PMOSトランジスタP1の電流駆動力＞PMOSトランジスタP2の電流駆動力となる。同じくNMOSトランジスタN1の電流駆動力＜NMOSトランジスタN2の電流駆動力となる。よって出力端子OUTはPMOSトランジスタP1から電源電圧VDDをより供給されやすくなっており、NMOSトランジスタN1により電流を引き抜かれずらくなっている。参照回路REFの参照値RVはハイレベル状態になりやすくなっている。表の（３）にあるように電源電圧VDDが低下すると各種内部回路に保持されている信号が反転する場合が出てくる。参照値RVは上述のようにハイレベル状態になりやすいために、リセット時等に参照値RVにローレベルが設定されていた際、ローレベルからハイレベルに反転する電源電圧VDDは電圧値VDD1となる。中央演算装置CPUやランダムアクセスメモリRAM等の各種内部回路に保持されている信号が反転する電源電圧VDDは電圧値VDD2となり、各種内部回路はその保持信号がローレベルからハイレベルに反転しやすくされているわけではないので、この電圧値VDD2は電圧値VDD1よりも低いものとなる。電圧値VDET1は電圧値VDET2より高く、電圧値VDET2は電圧値VDD1と同じがそれより若干高く、電圧値VDD1は電圧値VDD2よりも高い。この理由は後述する。
【００２３】
尚、参照回路ＲＥＦは図３にて示されたものに限定されず、電圧値VDD1にて参照値ＲＶが反転すればその構成は特に限定されない。
【００２４】
図４は半導体集積回路の、電源電圧と動作クロックの関係を表したグラフである。
【００２５】
特性境界ラインCBLは、トランジスタが動作マージンを確保できたポイント同士を結んだものである。この線よりも上側は正常動作が可能な領域となり、この線よりも下側は誤動作を引き起こしかねない領域となる。グラフに示すように、電源電圧VDDが低いと当然に誤動作を引き起こしやすくなる。更に同じ電源電圧VDDであれば、内部クロック信号STCKの周波数が高い領域ほど誤動作を引き起こしやすくなる。これは電源電圧VDDが低ければ回路が信号値を保持することができないからであり、内部クロック信号STCKの周波数が高いと回路が動作の追従ができなくなり、誤動作となるからである。例えば内部クロック信号STCKが１０MHｚであれば電源電圧VDDが２V程度であれば正常動作が可能となり、内部クロック信号STCKが１MHｚであれば電源電圧VDDが１．１V程度であれば正常動作が可能となる。このような特性を鑑みて電圧値VDET1、電圧値VDET2を設定する。例えば内部クロック信号STCKが１０MHｚの半導体集積回路装置ICであれば、電圧値VDET1は内部クロック信号STCKの供給を受けても十分に正常な動作が各種内部回路できるような電圧となりそうな２．２V程度を電圧値VDET1として定めればよい。電圧値VDET2は内部クロック信号STCKを止めれば各種内部回路が誤動作とならないような１．１V程度を電圧値VDET2として定めればよい。更に電圧値VDD1は電圧値VDET2と同じがそれより若干低くなるようにWやLを定め、内部クロック信号STCKを止めても各種内部回路が誤動作を引き起こしかねない状態となったらシステムリセット信号RSTが参照値RVの反転に基づいて出力されるようにすればよい。参照回路REFは各種内部回路と同じ製造プロセスを経て作成される。当然ウエハ内やウエハ間でも製造ばらつきは存在し、離れたチップ間や異なるウエハ間では製造ばらつきは大きくなることになる。同一チップの参照回路REFと各種内部回路は１つのウエハから作り出されたものであり、その距離も非常に近いため参照回路REFと各種内部回路との間の製造ばらつきも小さくなる。製造ばらつきにより特性境界ラインCBLは変わってくる。電圧値VDET2を製造ばらつきまで考慮して定めるのは難しい。電圧値VDD1を電圧値VDET2と同じがそれより若干低くなるようにしたとしても、場合によっては電圧値VDET2が電圧値VDD1よりも高くなってしまうこともある。同一チップ内に参照回路REFと各種内部回路が形成されるために、製造プロセスのばらつきによる悪影響を参照値RVの反転特性はあまり内包しないこととなるために、より確実に誤動作を防ぐためのシステムリセット信号RSTを出力できる。よって基本的には、電圧値VDET1は電圧値VDET2より高く、電圧値VDET2は電圧値VDD1と同じがそれより若干高く、電圧値VDD1は電圧値VDD2よりも高い。
【００２６】
電源電圧VDDが第一閾値電圧となる電圧値VDET1よりも低下した場合に、中央演算装置CPUに対する内部クロック信号STCKの供給を止め、電源電圧VDDが第一閾値電圧となる電圧値VDET1よりも高い状態に復帰した際、内部クロック信号STCKの供給が再開されて動作が継続される。参照回路REFの参照値RVを確認しこの参照値RVに基づいてシステムリセット信号RSTの出力を行っている。このようにすることで、製造プロセスのばらつきによる悪影響を参照値RVの反転特性はあまり内包しないこととなるために、より確実に誤動作を防ぐためのシステムリセット信号RSTを出力でき、電源電圧VDDが第一閾値電圧となる電圧値VDET1よりも高い状態に復帰した際、内部クロック信号STCKの供給が再開されて動作が継続された場合の半導体集積回路装置ICの暴走を食い止めることができる。
【００２７】
電源電圧VDDが電圧値VDET1と電圧値VDET2との間に低下した場合、中央演算装置CPUに対する内部クロック信号STCKの供給を止められる。さらに電圧値VDET2以下になることなく、電圧値VDET1に復帰した場合、内部クロック信号STCKの供給を止められる前の状態から動作が復帰する。このことで、電源電圧VDDが電圧値VDET1になることにより内部回路の動作不良が引き起こされることを防ぐ。更に電圧値VDET2以下になることなく、電圧値VDET1に復帰した場合、システムリセットも掛けないで動作が復帰するために、半導体集積回路装置ICが速やかに電圧値VDET1に低下する前の状態からの動作を継続でき、まわりのシステムに悪影響を与えるのを防ぐことができる。電源電圧VDDが電圧値VDET1以下になった場合に何らの対策を施さないのは最悪である。しかしながら、電源電圧VDDが電圧値VDET1以下になった場合にすぐにシステムリセットされる場合、例えば炊飯器用の半導体集積回路装置であった場合は、ご飯を炊いている途中でシステムリセットがかかり、適切な調理ができないようなことも起こりえる。このような事態をある程度は防ぐことができる。別の例としてエアコン用の半導体集積回路装置で、タイマー等で予め部屋を空冷しておく場合にシステムリセットがかかり、適切な部屋温度にならないようなことが起こりえる。このような事態もある程度は避けられる。
【００２８】
電源電圧VDDが電圧値VDET2以下に低下した場合は、システムリセット信号RSTが出力されるようになっている。このことで、内部クロック信号STCKを止めても動作不良となりえる場合は、システムリセットを実行でき、半導体集積回路装置が暴走するような事態を避けることが出来る。
【００２９】
（実施の形態２）
図５は実施の形態２の半導体集積回路装置の一部の構成、及びこの半導体集積回路装置のタイミングチャートを表す図である。
【００３０】
図５の（A）にて示される実施の形態２の半導体集積回路装置IC1は実施の形態１の半導体集積回路装置ICと比べて以下の異なる構成要素を有している。中央演算装置CPUの代わりに中央演算装置CPU1を有しており、クロックコントローラCKCの代わりにクロックコントローラCKC1を有している。
【００３１】
中央演算装置CPU1は、プログラムカウンタP-COUNTと、演算器ALUと、フラグレジスタF-REGと、バッファBUF1と、バッファBUF2と、バッファBUF3とを有する。プログラムカウンタP-COUNTは不揮発性メモリROMのアドレスを内部クロック信号STCKに従ったカウントアップやカウントダウン等に従ってカウンタ値として指定し、その指定されたアドレスに格納されたプログラムの内容を読み出す。演算器ALUは各種データに対して内部クロック信号STCKに従って演算を行う。フラグレジスタF-REGは内部クロック信号STCKに従って各種制御のためのフラグを格納する。バッファBUF1はプログラムカウンタP-COUNTにて用いられる不揮発性メモリROMのカウンタ値を格納する。内部クロック信号STCKに従って、このカウンタ値としての格納データはプログラムカウンタP-COUNTに書き込まれ、バッファBUF1内の格納データは更新される。バッファBUF2は演算器ALUにて用いられる各種データを格納する。内部クロック信号STCKに従って、この各種データは演算器ALUに書き込まれ、バッファBUF2内の各種データは更新される。バッファBUF3はフラグレジスタF-REGにて用いられるフラグを格納する。内部クロック信号STCKに従って、このフラグはフラグレジスタF-REGに書き込まれ、バッファBUF3内のフラグは更新される。
【００３２】
クロックコントローラCKC1は、クロックコントローラCKCの有する構成要素に加えて更に、バッファコントローラBUFCと、ポーズ制御回路PCCとを有する。バッファコントローラBUFCは、マイコンポーズ状態となり、その後システムリセットが実行されることなく通常状態（電源電圧VDDが電圧値VDET1以上となる。）に復帰した際、バッファBUF1、バッファBUF2、及びバッファBUF3それぞれに格納されたデータを、プログラムカウンタP-COUNT、演算器ALU、及びフラグレジスタF-REGそれぞれに格納させる。ポーズ制御回路PCCは、ポーズ時ポート設定レジスタP-PSREGと、ポーズ時ポート選択フラグ格納部P-PSF、ポーズ実行フラグ格納部PIFとを有する。ポーズ時ポート設定レジスタP-PSREGは、マイコンポーズ状態となった場合、ポート設定レジスタPSREGに格納すべきレジスタ値を格納する。ポーズ時ポート選択フラグ格納部P-PSFは、マイコンポーズ状態となり、その後通常状態（電源電圧VDDが電圧値VDET1以上となる。）に復帰した際、ポーズ時ポート設定レジスタP-PSREGに格納された値をポート設定レジスタPSREGが用いるのか、マイコンポーズ状態となる前にポート設定レジスタPSREGに格納されていたレジスタ値をポート設定レジスタPSREGが用いるのかを選択するためのフラグを格納する。ポーズ実行フラグ格納部PIFは、マイコンポーズ状態となり、その後システムリセットが実行されることなく通常状態（電源電圧VDDが電圧値VDET1以上となる。）に復帰した際、値が変更となるフラグを格納する。
【００３３】
図５の（B）は実施の形態２の半導体集積回路装置IC1の電源電圧が低下した際のタイミングチャートである。
【００３４】
プログラムカウンタP-COUNTのカウント値をPC+N（ここでNは整数）とする。このカウント値は内部クロック信号STCKが１クロック入るたびに１ずつカウントアップされる。更にポート設定レジスタPSREGに格納されているレジスタ値をXXXXとする。まずは電源電圧VDDが徐々に低下していき、カウント値がPCとなった後、時刻T1にて電圧値VDET1に達する。この場合、低電圧検出回路LVDCがこのことを検出して低電圧検出信号LVD1がハイレベルとなり、この信号がバッファコントローラBUFC及び参照値検出制御部RVDCに出力される。この信号を受け参照値検出制御部RVDCはクロック制御スイッチCKC-SWを制御することで、発振回路OSCから出力された内部クロック信号STCKがクロック制御スイッチCKC-SWにて止められ、半導体集積回路装置ICの各種内部回路に対する内部クロック信号STCKの供給が止められる。更に低電圧検出信号LVD1が発振回路OSCに出力されており、低電圧検出信号LVD1がハイレベルとなることで、発振回路OSCの動作が止まり、 消費電流低減を図っている。このことでマイコンポーズ状態となる。更にこのハイレベルとなった低電圧検出信号LVD1を受けてバッファコントローラBUFCはポーズ制御回路PCCを制御し、ポーズ時ポート設定レジスタP-PSREGに格納しているレジスタ値であるYYをポート設定レジスタPSREGに格納する。その後、更に電源電圧VDDが低下してから上昇を初め、時刻T2にてまた電圧値VDET1に達する。時刻T1から時刻T2に至るまでの間はカウント値は更新されない。この場合、低電圧検出回路LVDCがこのことを検出して低電圧検出信号LVD1がローレベルとなり、この信号がバッファコントローラBUFC及び参照値検出制御部RVDCに出力される。更に低電圧検出信号LVD1が発振回路OSCに出力されており、低電圧検出信号LVD1がローレベルとなることで、発振回路OSCの動作が開始し、内部クロック信号STCKの出力が再開される。ただ直ぐには発振回路OSCの動作は始まらないので、クロック制御スイッチCKC-SWにて内部クロック信号STCKを一定時間止めて他の各種内部回路が不十分な内部クロック信号STCKに基づく動作をしないようにしてもよい。このローレベルの低電圧検出信号LVD1を受け参照値検出制御部RVDCはクロック制御スイッチCKC-SWを制御することで、発振回路OSCから出力された内部クロック信号STCKがクロック制御スイッチCKC-SWを通り、半導体集積回路装置ICの各種内部回路に対する内部クロック信号STCKの供給が再開される。時刻T2の後、初めに内部クロック信号STCKを受けたときに、バッファコントローラBUFCの制御に基づいて、プログラムカウンタP-COUNTにバッファBUF1に格納されていたカウンタ値が格納され、演算器ALUにバッファBUF2に格納されていた各種データが格納され、フラグレジスタF-REGにバッファBUF3に格納されていたフラグが格納される。よってプログラムカウンタP-COUNTのカウンタ値は電源電圧VDDが電圧値VDET1になる前の最新の値であるPCとなり、このカウンタ値から内部クロックSTCKの１クロックごとにカウントアップされる形となる。同じく演算器ALUの各種データは電源電圧VDDが電圧値VDET1になる前の最新の値となり、この各種データは内部クロックSTCKの１クロックごとに更新される形となる。同じくフラグレジスタF-REGのフラグは電源電圧VDDが電圧値VDET1になる前の最新の値となり、このフラグは内部クロックSTCKの１クロックごとに更新される形とな��。ポーズ時ポート選択フラグ格納部P-PSFのフラグが第一の状態であるときは、（１）にて表されており、時刻T2の後、初めに内部クロック信号STCKを受けたときに、バッファコントローラBUFCの制御に基づいて、電源電圧VDDが電圧値VDET1となる直前のポート設定レジスタPSREGの値を、ポート設定レジスタPEREGに書き込む。ポーズ時ポート選択フラグ格納部P-PSFのフラグが第二の状態であるときは、（２）にて表されており、時刻T2の後もバッファコントローラBUFCの制御に基づいて、ポーズ時ポート設定レジスタP-PSREGに格納していたレジスタ値であるYYをポート設定レジスタPEREGにて引き続き用いる。この後ポート設定レジスタPSREGのレジスタ値をどのようにするのかは不揮発性メモリROM等に格納されたプログラムに依存する。電源電圧VDDが電圧値VDET1以下となった後、電圧値VDET2以下とならないで電圧値VDET1よりも高い状態に復帰した場合、低電圧検出信号LVD1がローレベルになったことに従って、ポーズ実行フラグ格納部PIFのフラグの状態が変わる（図５ではハイレベルとなる）。このように、電源電圧VDDが電圧値VDET1以下になってから、電圧値VDET2に達することなく、電圧値VDET1以上の状態に復帰した場合、内部クロック信号STCKの供給を止められる前の状態で半導体集積回路装置IC1の動作が再開される。
【００３５】
尚、電源電圧VDDが電圧値VDET1以下になってから、電圧値VDET2に達することなく、電圧値VDET1以上の状態に復帰した場合、電源電圧VDDが電圧値VDET1になる前の最新の値を必ずしも、プログラムカウンタP-COUNT、演算器ALU、及びフラグレジスタF-REGが用いる必要は無く、内部クロックSTCKの何クロック前のものかを設定できるような専用のレジスタを設けておいてもよい。この場合はバッファBUF1、バッファBUF2、バッファBUF3は設定可能なクロック数分のデータ格納領域を持つ形となる。
【００３６】
バッファBUF1と、バッファBUF2と、バッファBUF3とを持ち、電源電圧VDDが電圧値VDET1以下になってから、電圧値VDET2に達することなく、電圧値VDET1以上の状態に復帰した場合、電源電圧VDDが電圧値VDET1になる前にプログラムカウンタP-COUNT、演算器ALU、及びフラグレジスタF-REGが用いていた値を、プログラムカウンタP-COUNT、演算器ALU、及びフラグレジスタF-REGが、バッファBUF1、バッファBUF2、及びバッファBUF3から読み出すことで用いるようになっている。このことで、電源電圧VDDが電圧値VDET1以下に下がる前の状態から半導体集積回路装置IC1の動作をやり直すことができ、動作の安全性を高めることができる。
【００３７】
ポーズ時ポート設定レジスタP-PSREGがあり、電源電圧VDDが電圧値VDET1以下になった場合は、ポーズ時ポート設定レジスタP-PSREGに格納されていたレジスタ値であるYYをポート設定レジスタPSREGに格納するようにしている。このことで、電源電圧VDDが電圧値VDET1と電圧値VDET2との間である状態が、長期間となった場合、入出力ポートP-I/Oが不適切な動作をする事態を避けることが出来る。この不適切な動作とは例えば、半導体集積回路装置IC1が炊飯器に用いられており、入出力ポートP-I/Oがトライアックを制御して電流を流しっぱなしにするようなことである。別の例としては、半導体集積回路装置IC1が高機能な携帯電話に用いられており、入出力ポートP-I/Oがカメラのシャッターボタンを制御してシャッター音を出しっぱなしにするようなことである。
【００３８】
ポーズ時ポート選択フラグ格納部P-PSFを設けたことで、時刻T2の後、初めに内部クロック信号STCKを受けたときに、ポート設定レジスタPSREGをどのようにするのかを選択できる。このことで、半導体集積回路装置IC1が組み込まれるシステムに合わせて柔軟に、時刻T2の後に初めに内部クロック信号STCKを受けたときのポート設定レジスタPSREGのレジスタ値を選択でき、半導体集積回路装置IC1が組み込まれるシステムの安全性を上げることができる。
【００３９】
電源電圧VDDが電圧値VDET1以下となった後、電圧値VDET2以下とならないで電圧値VDET1よりも高い状態に復帰した場合、ポーズ実行フラグ格納部PIFのフラグが変わるようになっている。このことで、中央演算装置CPUや半導体集積回路装置IC1の外部のシステムがマイコンポーズ状態となったことを認識でき、半導体集積回路装置IC1が組み込まれたシステムの安全性を高めることができる。
【００４０】
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【００４１】
IC  半導体集積回路装置
CPU  中央演算装置
CPG  クロック生成回路
REF  参照回路
VDD  電源電圧
VDET1  電圧値
VDET2  電圧値
STCK  内部クロック信号
RV  参照値
RST  システムリセット信号
LVDC  低電圧検出回路
【図１】
2014038465.tif 000003
【図２】
2014038465.tif 000004
【図３】
2014038465.tif 000005
【図４】
2014038465.tif 000006
【図５】
2014038465.tif 000007