(57)【特許請求の範囲】
【請求項１】
直列接続された複数の保持部を有し、外部からのリセット要求を保持するリセット要求保持部と、
前記複数の保持部の出力のすべてを論理和演算して前記論理和演算の演算結果をリセット用クロックと非同期の非同期リセット要求とし、前記複数の保持部の最終段の保持部の出力を前記リセット用クロックと同期する同期リセット要求として、前記非同期リセット要求と前記同期リセット要求を論理和演算し当該論理和演算の演算結果を出力するとともに、同期リセットが選択されているときは前記非同期リセット要求をマスクするリセット切替部と、
前記リセット切替部より出力される演算結果に基づいてリセット信号を出力するリセット出力部と、
前記リセット信号がアサートされていないときは前記リセット要求保持部へ前記リセット用クロックとして供給される常時供給クロックの供給を遮断する第１ゲーテッドクロックバッファと、を備えることを特徴とする半導体装置。
【請求項２】
前記リセット信号がアサートされているときは前記リセット要求保持部へ前記リセット用クロックとして供給されるシステムクロックの供給を遮断する第２ゲーテッドクロックバッファをさらに備えることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記リセット信号がアサートされているときは常時供給クロックを前記リセット用クロックとして前記リセット要求保持部に供給し、前記リセット信号がアサートされていないときはシステムクロックを前記リセット用クロックとして前記リセット要求保持部に供給するよう切り替えるクロック切替部をさらに有し、
前記リセット要求保持部の前記複数の保持部は、前記クロック切替部から供給されるクロックを用いて動作することを特徴とする請求項１又は２に記載の半導体装置。
【請求項４】
前記システムクロックは、前記リセット信号がアサートされているときには停止されることを特徴とする請求項２又は３に記載の半導体装置。
【請求項５】
前記リセット要求保持部が有する保持部は、直列接続された２つのフリップフロップを有するクロック乗換え回路を含むことを特徴とする請求項１〜４の何れか１項に記載の半導体装置。
【請求項６】
前記リセット切替部は、組合せ回路で構成されていることを特徴とする請求項１〜５の何れか１項に記載の半導体装置。
【請求項７】
直列接続された複数の保持部を用いて、外部からのリセット要求を保持し、
前記複数の保持部の出力のすべてを論理和演算して前記論理和演算の演算結果をリセット用クロックと非同期の非同期リセット要求とし、前記複数の保持部の最終段の保持部の出力を前記リセット用クロックと同期する同期リセット要求として、かつ同期リセットが選択されているときは前記非同期リセット要求をマスクして、前記非同期リセット要求と前記同期リセット要求を論理和演算し当該論理和演算の演算結果を出力し、
出力される前記非同期リセット要求と前記同期リセット要求との論理和演算の演算結果に基づいてリセット信号を出力し、
前記リセット信号がアサートされていないときは常時供給クロックの供給を遮断することを特徴とする半導体装置におけるリセット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び半導体装置におけるリセット制御方法に関し、詳しくは半導体装置におけるリセット制御技術に関する。
【背景技術】
【０００２】
半導体集積回路に搭載されるクロックリセット生成回路（ＣＲＧ）は、発振クロックを入力としてチップ内部の各機能部に供給するシステムクロックを生成したり、内部又は外部からのリセット要求を受けて各機能部に供給する内部リセットを生成したりする機能を有している。従来のクロックリセット生成回路は、外部からのリセット要求等によって非同期に内部リセット信号がアサートされていた。
【０００３】
しかし、近年、チップ内部にシステムクロックが供給されている状態で外部からのリセット要求が入力された場合に、システムクロックに同期して内部リセット信号をアサートすることが必要とされるようになってきた。この理由の１つは、チップ内蔵のＲＡＭに記憶されているデータを保持するため（データを破損するのを防止するため）である。
【０００４】
システムクロックに同期した内部リセット信号のアサートは、一般的にリセット信号のアサートによってクロックがノイズとならないように、外部からのリセット要求をフリップフロップで同期させ、ゲーテッド・クロックバッファによりシステムクロックを制御することにより行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−１２４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、マイクロコントローラ用のクロックリセット生成回路は、動作ステートによってシステムクロックが供給されないことがある。この場合には、システムクロックに同期して内部リセット信号をアサートする機能のみでは、外部からのリセット要求に対応することができない。そのため、外部からのリセット要求が入力されたとき、クロックリセット生成回路がシステムクロックを供給されている動作ステートの場合には、同期して内部リセット信号をアサートし、クロックリセット生成回路がシステムクロックを供給されない動作ステートの場合には、非同期に内部リセット信号をアサートするように切り替える機構が必要となる。
【０００７】
この同期・非同期の切り替え機構は、その切り替え時にグリッチが発生しないようにするとともに、同期と非同期とを切り替えタイミングであっても外部からのリセット要求に応じて確実に内部リセット信号をアサートできなければならない。また、内部リセット信号がネゲートされるときに、クロックリセット生成回路内に外部からのリセット要求に基づくリセット要因が残ってしまうと、その後のシステムクロックの供給によって内部リセット信号がアサートされてしまう。そのため、内部リセット信号がネゲートされるときには、クロックリセット生成回路内に外部からのリセット要求に基づくリセット要因が残らないようにしなければならない。
【課題を解決するための手段】
【０００８】
本発明の一観点によれば、直列接続された複数の保持部を有し、外部からのリセット要求を保持するリセット要求保持部と、複数の保持部の出力のすべてを論理積演算して非同期リセット要求とするとともに複数の保持部の最終段の保持部の出力を同期リセット要求として非同期リセット要求と同期リセット要求を論理積演算し、その論理積演算の演算結果を出力するとともに、同期リセットモードでは非同期リセット要求をマスクするリセット切替部と、リセット切替部での演算結果に基づいてリセット信号を出力するリセット出力部とを備える半導体装置が提供される。
【発明の効果】
【０００９】
開示の半導体装置は、外部からのリセット要求が入力されたとき、同期してリセット信号を出力するか、非同期でリセット信号を出力するかを、動作ステートに応じて適切に切り替えることができる。
【図面の簡単な説明】
【００１０】
【図１】半導体装置が適用されたマイクロコントローラの構成例を示す図である。
【図２】本実施形態におけるクロックリセット生成回路の構成例を示す図である。
【図３】リセット生成部の構成例を示す図である。
【図４】動作ステートの遷移の一例を示す図である。
【図５】図３に示すリセット生成部の動作波形の一例を示す図である。
【図６】本実施形態におけるリセット生成部の構成例を示す図である。
【図７】本実施形態におけるリセット要求保持部、リセット切替部、及びリセット出力部の回路構成例を示す図である。
【図８】本実施形態におけるクロック切替部の回路構成例を示す図である。
【図９】本実施形態におけるリセット生成部の動作波形の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面に基づいて説明する。
【００１２】
図１は、半導体装置が適用されたマイクロコントローラの構成例を示す図である。図１において、１はマイクロコントローラが有する各機能部が搭載されたチップである。
【００１３】
３はＣＰＵであり、４はプログラムコード等が格納されたコード用メモリである。ＣＰＵ３及びコード用メモリ４は、バス２にそれぞれ接続されている。例えば、ＣＰＵ３は、コード用メモリ４からプログラムコードを読み出して実行することにより、所定の処理を実行したりマイクロコントローラ内の各機能部を統括的に制御したりする。
【００１４】
７はフラッシュメモリマクロである。フラッシュメモリマクロ７は、フラッシュメモリ用インタフェース５を介してバス２に接続されており、ＣＰＵ３等からの要求に応じて各種データ等の書き込み及び読み出しが行われる。また、フラッシュメモリ用インタフェース５を介して、フラッシュパラレルインタフェースがバス２に対して接続される。
【００１５】
８はバス２に接続される各種モジュールである。モジュール８の各々は、例えばチップ内蔵のＲＡＭ、マスタモジュール、スレーブモジュール、外部メモリインタフェース、外部デバイスインタフェースなどである。
【００１６】
９は、バス２とペリフェラルバス１０との間での各種信号の授受を制御するバスブリッジである。なお、バス２は、いわゆるハイパフォーマンスバスと呼ばれる比較的高速なバスであり、ペリフェラルバス１０はバス２よりも低速なバスである。
【００１７】
１１はクロックリセット生成回路である。クロックリセット生成回路１１は、発振クロックを入力としてチップ内部の各機能部に供給するシステムクロックを生成したり、内部又は外部からのリセット要求を受けて各機能部に供給する内部リセットを生成したりする。また、クロックリセット生成回路１１は、入力される発振クロックが停止していないか否かを検知する。
【００１８】
１２はハードウェアによるウォッチドッグタイマであり、１３はソフトウェアによるウォッチドッグタイマであり、１４はタイマである。クロックリセット生成回路１１、ウォッチドッグタイマ１２、１３、及びタイマ１４のそれぞれは、ペリフェラルバス１０に接続されている。
【００１９】
１５はＰＬＬ（Phase Locked Loop）回路であり、１６は高い周波数のクロックを発振するための高速ＣＲ発振回路であり、１７は低い周波数のクロックを発振するための低速ＣＲ発振回路である。ＰＬＬ回路１５、高速ＣＲ発振回路１６、低速ＣＲ発振回路１７の各々は、クロックリセット生成回路１１に発振クロックを供給する。１８はレギュレータであり、入力電圧を所定の出力電圧に変換し出力する。レギュレータ１８は、クロックリセット生成回路１１にパワーオンリセット要求を出力する。
【００２０】
図２は、図１に示したクロックリセット生成回路１１の構成例を示す図である。図２において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。図２に示すようにクロックリセット生成回路１１は、クロック生成部２１、クロック停止検知部２４、及びリセット生成部２５を有する。
【００２１】
クロック生成部２１は、セレクタ２２及び分周器２３を有し、発振クロックを入力としてシステムクロックを生成し出力する。セレクタ２２は、外部メイン発振器２７、外部サブ発振器２８、ＰＬＬ回路１５、高速ＣＲ発振回路１６、及び低速ＣＲ発振回路１７の各々から発振されたクロックが入力される。セレクタ２２は、入力された発振クロックを選択し、マスタークロックＭＳＣＬとして出力する。分周器２３は、セレクタ２２より出力されたマスタークロックＭＳＣＬが入力され、それを指定の分周比で分周してベースクロックＢＳＣＬとして出力する。クロック生成部２１からは、このベースクロックＢＳＣＬ（マスタークロックＭＳＣＬであっても良い）がシステムクロックとしてマイクロコントローラ内の各機能部（ＣＰＵやモジュール等）に供給される。
【００２２】
クロック停止検知部２４は、外部メイン発振器２７、外部サブ発振器２８、高速ＣＲ発振回路１６、及び低速ＣＲ発振回路１７の各々から発振されたクロックが入力され、クロックが停止していないか否かを検知する。
【００２３】
リセット生成部２５は、リセット発生部２６を有し、内部又は外部からのリセット要求を受けてリセット信号を生成し出力する。リセット発生部２６は、外部からのリセット要求（ＩＮＩＴ＿Ｎ）、及びクロック停止検知部２４からのクロック停止検知リセット要求が入力される。また、リセット発生部２６は、ウォッチドッグタイマ１２からのハードウェアウォッチドッグリセット要求、ウォッチドッグタイマ１３からソフトウェアウォッチドッグリセット要求、及びレギュレータ１８からのパワーオンリセット要求が入力される。リセット発生部２６は、これらリセット要求に応じてリセット信号を生成し、生成したリセット信号をマイクロコントローラ内の各機能部（ＣＰＵやモジュール等）に出力する。
【００２４】
図３は、リセット生成部の構成例を示す図である。図３に示すリセット生成部は、外部からのリセット要求が入力されたときに、同期して内部リセット信号をアサートする機構と、非同期に内部リセット信号をアサートする機構とを単純に組み合わせ、動作ステートに応じて切り替えるようにしたものである。
【００２５】
図３に示すリセット生成部は、動作ステートマシン３１、ＯＲ回路（論理和演算回路）３２、クロック乗換え回路３３、３４、３７、フリップフロップ３５、及びセレクタ３６を有する。
【００２６】
動作ステートマシン３１は、Ｔｉｍｅｒ／Ｓｔｏｐ遷移信号ＣＴＬ１、Ｗａｋｅｕｐ信号ＣＴＬ２、及び内部リセット信号ＲＳＴ２’等が入力され、これらに応じて動作ステートを制御する。図４に示すように、動作ステートマシン３１は、動作ステートが“ＩＮＩＴ”であるときに、発振クロックが安定したことを示す発振クロック安定化待ち完了信号が入力されると、動作ステートを“ＲＵＮ”に遷移させる。また、動作ステートマシン３１は、動作ステートが“ＲＵＮ”であるときに、内部リセット信号ＲＳＴ２’が入力されると動作ステートを“ＩＮＩＴ”に遷移させ、Ｔｉｍｅｒ／Ｓｔｏｐ遷移信号ＣＴＬ１が入力されると動作ステートを“ＰＷＤＮ”に遷移させる。また、動作ステートマシン３１は、動作ステートが“ＰＷＤＮ”であるときに、内部リセット信号ＲＳＴ２’が入力されると動作ステートを“ＩＮＩＴ”に遷移させ、Ｗａｋｅｕｐ信号ＣＴＬ２が入力されると動作ステートを“ＲＵＮ”に遷移させる。
【００２７】
ここで、動作ステート“ＩＮＩＴ”は初期状態に対応する動作ステートであり、このときシステムクロックは供給されない。動作ステート“ＲＵＮ”は、処理動作が実行可能な状態に対応する動作ステートであり、このときシステムクロックは供給されている。動作ステート“ＰＷＤＮ”は、いわゆるパワーダウンモードに対応する動作ステートである。
【００２８】
また、動作ステート“ＩＮＩＴ”及び“ＰＷＤＮ”は、外部からのリセット要求が入力されたときに非同期に内部リセット信号をアサートする非同期リセットモードであり、動作ステート“ＲＵＮ”は、外部からのリセット要求が入力されたときに同期して内部リセット信号をアサートする同期リセットモードである。動作ステートマシン３１は、非同期リセットモードのときには信号Ｓ３’をローレベル（“Ｌ”）にして出力し、同期リセットモードのときには信号Ｓ３’をハイレベル（“Ｈ”）にして出力する。
【００２９】
ＯＲ回路３２は、パワーオンリセット要求信号ＲＳＴ１’が反転して入力されるとともに、外部リセット要求信号ＲＳＴ０’が入力され、その演算結果を出力する。すなわち、ＯＲ回路３２は、パワーオンリセット要求信号ＲＳＴ１’がアサート（“Ｌ”）されておらず、かつ外部リセット要求信号ＲＳＴ０’がアサートされた場合に“Ｌ”を出力する。
【００３０】
クロック乗換え回路３３は、直列接続されたクリアプリセット付きのフリップフロップ３３Ａ、３３Ｂを有する。フリップフロップ３３Ａ、３３Ｂは、クリア端子にＯＲ回路３２の出力が入力され、プリセット端子にパワーオンリセット要求信号ＲＳＴ１’が入力される。また、クロック乗換え回路３４は、直列接続されたフリップフロップ３４Ａ、３４Ｂを有し、クロック乗換え回路３３の出力が入力される。フリップフロップ３４Ａ、３４Ｂには、パワーオンリセット要求信号ＲＳＴ１’も入力されている。フリップフロップ３５は、クロック乗換え回路３４の出力が入力されるとともに、パワーオンリセット要求信号ＲＳＴ１’が入力される。前述したフリップフロップ３３Ａ、３３Ｂ、３４Ａ、３４Ｂ、３５には、クロックとしてシステムクロックＣＬＫ１’が入力される。
【００３１】
セレクタ３６は、フリップフロップ３５から出力された信号Ｓ２’、外部リセット要求信号ＲＳＴ０’、及び動作ステートマシン３１から出力された信号Ｓ３’が入力される。セレクタ３６は、信号Ｓ３’に応じて、信号Ｓ２’又は外部リセット要求信号ＲＳＴ０’を出力する。すなわち、セレクタ３６は、信号Ｓ３’が“Ｈ”（同期リセットモード）のときには信号Ｓ２’を出力し、信号Ｓ３’が“Ｌ”（非同期リセットモード）のときには外部リセット要求信号ＲＳＴ０’を出力する。
【００３２】
クロック乗換え回路３７は、直列接続されたフリップフロップ３７Ａ、３７Ｂを有し、セレクタ３６の出力が入力される。フリップフロップ３７Ａ、３７Ｂは、動作ステートにかかわらず常時供給されるクロックＣＬＫ０’（例えば低速ＣＲ発振回路より発振されるクロック）がクロックとして入力される。クロック乗換え回路３７の出力が、内部リセット信号ＲＳＴ２’として出力される。
【００３３】
図３に示したリセット生成部は、外部リセット要求信号ＲＳＴ０’がアサートされたときの動作について説明する（ただし、パワーオンリセット要求信号ＲＳＴ１’がアサートされてないものとする）。外部リセット要求信号ＲＳＴ０’がアサートされると、非同期リセットモードの場合には、セレクタ３６及びクロック乗換え回路３７によって内部リセット信号ＲＳＴ２’がアサートされる。一方、同期リセットモードの場合には、図５に示すようにクロック乗換え回路３３、３４、フリップフロップ３５、セレクタ３６及びクロック乗換え回路３７を伝播することによって内部リセット信号ＲＳＴ２’がアサートされる。
【００３４】
ここで、図３に示したリセット生成部では、動作ステートの遷移時に入力された外部からのリセット要求がキャンセルされてしまう可能性がある。例えば、外部リセット要求信号ＲＳＴ０’が、システムクロックで動作する同期用のフリップフロップに保持され、すぐに外部リセット要求信号ＲＳＴ０’がディアサートされたとする。その後、この同期リセットの要求に基づいて内部リセット信号ＲＳＴ２’がアサートされる直前（セレクタ３６の伝播前）に動作ステートが遷移し同期リセットモードから非同期リセットモードに遷移すると、同期リセットの要求がキャンセルされてしまう。
【００３５】
また内部リセット信号ＲＳＴ２’がアサートされても、リセットにより動作ステートが“ＩＮＩＴ”に遷移してシステムクロックの供給が停止するため、同期用のフリップフロップにリセット要求に基づくリセット要因が残ってしまう。そのため、発振クロック安定化待ちが完了し、システムクロックの供給が開始すると再度内部リセット信号ＲＳＴ２’がアサートされてしまう（図５の時刻Ｔ５１参照）。また、セレクタ３６が、同期リセットモードと非同期リセットモードとの変化時にグリッチを出してしまい、不要に内部リセット信号ＲＳＴ２’をアサートしてしまう可能性もある。
【００３６】
以下に説明する本実施形態におけるリセット生成部は、前述のような不都合を解消するものである。図６は、本実施形態におけるリセット生成部の構成例を示す図である。本実施形態におけるリセット生成部は、図６に示すように動作ステートマシン６１、リセット要求保持部６２、リセット切替部６３、リセット出力部６４、及びクロック切替部６５を有する。
【００３７】
動作ステートマシン６１は、図３に示した動作ステートマシン３１に対応し、Ｔｉｍｅｒ／Ｓｔｏｐ遷移信号ＣＴＬ１、Ｗａｋｅｕｐ信号ＣＴＬ２、及び内部リセット信号ＲＳＴ２等が入力され、これらに応じて動作ステートを制御する。なお、動作ステートの遷移は、図４に示した動作ステートマシン３１での動作ステートの遷移と同様である。また、動作ステートマシン６１は、非同期リセットモードのときには信号Ｓ３を“Ｌ”とし、同期リセットモードのときには信号Ｓ３を“Ｈ”とする。
【００３８】
リセット要求保持部６２は、パワーオンリセット要求信号ＲＳＴ１、外部リセット要求信号ＲＳＴ０、及びリセット用クロックＣＬＫ２が入力される。リセット要求保持部６２は、外部リセット要求信号ＲＳＴ０がアサートされると、それをリセット用クロックＣＬＫ２で動作する同期用のフリップフロップを用いて保持する。そして、リセット要求保持部６２は、同期用のフリップフロップに外部リセット要求信号ＲＳＴ０に基づくリセットの要因が保持されている期間は、信号ＳＩＧ１をアサートする。また、リセット要求保持部６２は、外部リセット要求信号ＲＳＴ０がアサートされると、それに応じて非同期で信号ＳＩＧ２をアサートする。すなわち、信号ＳＩＧ１は同期リセット要求の有無を示し、信号ＳＩＧ２は非同期リセット要求の有無を示している。また、リセット要求保持部６２は、システムクロックＣＬＫ１の供給を停止させるためのクロックマスク信号ＣＬＫＭＳＫを出力する。
【００３９】
リセット切替部６３は、動作ステートマシン６１から出力された信号Ｓ３、及びリセット要求保持部６２から出力された信号ＳＩＧ１、ＳＩＧ２が入力される。リセット切替部６３は、信号Ｓ３が“Ｌ”（非同期リセットモード）の場合には、信号ＳＩＧ１、ＳＩＧ２の少なくとも一方がアサートされている期間において信号ＳＩＧ３をアサートする。一方、リセット切替部６３は、信号Ｓ３が“Ｈ”（同期リセットモード）の場合には、信号ＳＩＧ１がアサートされている期間において信号ＳＩＧ３をアサートする。
【００４０】
リセット出力部６４は、リセット切替部６３から出力された信号ＳＩＧ３、及び動作ステートにかかわらず常時供給される常時供給クロックＣＬＫ０が入力され、信号ＳＩＧ３に応じた内部リセット信号ＲＳＴ２を出力する。
【００４１】
クロック切替部６５は、リセット用クロックＣＬＫ２として常時供給クロックＣＬＫ０を供給するかシステムクロックＣＬＫ１を供給するかを切り替える。クロック切替部６５は、常時供給クロックＣＬＫ０、システムクロックＣＬＫ１、パワーオンリセット要求信号ＲＳＴ０、及び内部リセット信号ＲＳＴ２が入力される。クロック切替部６５は、内部リセット信号ＲＳＴ２がアサートされ、かつシステムクロックＣＬＫ１の供給が停止されている場合には、リセット用クロックＣＬＫ２として常時供給クロックＣＬＫ０を供給する。
【００４２】
図７は、本実施形態におけるリセット要求保持部６２、リセット切替部６３、及びリセット出力部６４の回路構成例を示す図である。
【００４３】
リセット要求保持部６２は、クロック乗換え回路７１、７２、フリップフロップ７３、７９、及びＯＲ回路７８を有する。ＯＲ回路７８は、パワーオンリセット要求信号ＲＳＴ１が反転して入力されるとともに、外部リセット要求信号ＲＳＴ０が入力され、その演算結果を出力する。すなわち、ＯＲ回路７８は、パワーオンリセット要求信号ＲＳＴ１がアサートされておらず、かつ外部リセット要求信号ＲＳＴ０がアサートされた場合に“Ｌ”を出力する。
【００４４】
クロック乗換え回路７１は、直列接続されたクリアプリセット付きのフリップフロップ７１Ａ、７１Ｂを有する。フリップフロップ７１Ａ、７１Ｂは、クリア端子にＯＲ回路７８の出力が入力され、プリセット端子にパワーオンリセット要求信号ＲＳＴ１が入力される。また、クロック乗換え回路７２は、直列接続されたフリップフロップ７２Ａ、７２Ｂを有し、クロック乗換え回路７１の出力が入力される。フリップフロップ７２Ａ、７２Ｂには、パワーオンリセット要求信号ＲＳＴ１も入力されている。フリップフロップ７３は、クロック乗換え回路７２の出力が入力されるとともに、パワーオンリセット要求信号ＲＳＴ１が入力される。前述したフリップフロップ７１Ａ、７１Ｂ、７２Ａ、７２Ｂ、７３には、クロックとしてリセット用クロックＣＬＫ２が入力される。
【００４５】
パワーオンリセット要求信号ＲＳＴ１がアサートされたとき、フリップフロップ７１Ａ、７１Ｂ、７２Ａ、７２Ｂ、７３はすべて“１”（“Ｈ”）を出力する。したがって、クロック乗換え回路７１、７２、及びフリップフロップ７３から出力される信号Ｓ０、Ｓ１、Ｓ２はすべて“Ｈ”となる。パワーオンリセット要求信号ＲＳＴ１がアサートされておらず、かつ外部リセット要求信号ＲＳＴ０がアサートされると、ＯＲ回路７８の出力が“Ｌ”になることで、フリップフロップ７１Ａ、７１Ｂはすべて“０”（“Ｌ”）を出力する。したがって、クロック乗換え回路７１から出力される信号Ｓ０が“Ｌ”となり、リセット用クロックＣＬＫ２に応じて、クロック乗換え回路７２、及びフリップフロップ７３へと順に伝播される。
【００４６】
フリップフロップ７９は、クリアプリセット付きのフリップフロップである。フリップフロップ７９は、パワーオンリセット要求信号ＲＳＴ１がアサートされたときに“１”（“Ｈ”）を出力する。また、フリップフロップ７９は、パワーオンリセット要求信号ＲＳＴ１がアサートされておらず、かつ外部リセット要求信号ＲＳＴ０がアサートされたときに“０”（“Ｌ”）を出力する。また、フリップフロップ７９は、外部リセット要求信号ＲＳＴ０及びパワーオンリセット要求信号ＲＳＴ１がともにアサートされていないとき、リセット用クロックＣＬＫ２に同期して信号Ｓ０を出力する。言い換えれば、フリップフロップ７９は、パワーオンリセット要求信号ＲＳＴ１がアサートされていないときに、外部リセット要求信号ＲＳＴ０がアサートされるか又は信号Ｓ０が“Ｌ”となると信号Ｓ４を“Ｌ”にする。
【００４７】
リセット切替部６３は、ＡＮＤ回路（論理積演算回路）７４、７６及びＯＲ回路７５を有する。ＡＮＤ回路７４は、リセット要求保持部６２から出力された信号Ｓ４、Ｓ１、Ｓ２、すなわちフリップフロップ７９、クロック乗換え回路７２、フリップフロップ７３の出力が入力される。ＡＮＤ回路７４は、信号Ｓ４、Ｓ１、Ｓ２の論理積演算を行い、その演算結果を信号Ｓ５として出力する。ＯＲ回路７５は、動作ステートマシン６１から出力された信号Ｓ３及びＡＮＤ回路７４から出力された信号Ｓ５が入力され、その演算結果を信号Ｓ６として出力する。また、ＡＮＤ回路７６は、リセット要求保持部６２から出力された信号Ｓ２及びＯＲ回路７５から出力された信号Ｓ６が入力され、その演算結果を信号Ｓ７として出力する。以上のようにリセット切替部６３を構成することで、信号Ｓ２が“Ｌ”のとき、又は信号Ｓ３が“Ｌ”かつ信号Ｓ４，Ｓ１，Ｓ２のいずれかが“Ｌ”のとき、“Ｌ”の信号Ｓ７が出力される。
【００４８】
このように、リセット切替部６３は、リセット要求保持部６２からのリセット要求に係るすべての信号をＡＮＤ演算したものを非同期のリセット要求信号とし、リセット要求保持部６２の最終段のフリップフロップ７３の出力Ｓ２を同期用のリセット要求信号として扱う。非同期のリセット要求信号は、動作ステートからの信号Ｓ３とのＯＲ演算を行い出力する。そしてその信号と同期用のリセット要求信号をＡＮＤ演算して内部リセット要求信号とするようにしている。
【００４９】
また、リセット切替部６３は、非同期リセット要求もアサートできるよう組合せ回路で構成している。この組合せ回路の構成は、同期と非同期との選択を切り替えた時でもグリッチを発生しない回路構成となっている。また、内部リセット信号ＲＳＴ２をアサートする直前に同期リセットモードから非同期リセットモードに変化しても、リセット要求保持部６２に保持されているリセット要求に係るすべての信号に基づいて内部リセット信号がアサートされるため、リセット要求がチャンセルされることもない。
【００５０】
リセット出力部６４は、クロック乗換え回路７７を有する。クロック乗換え回路７７は、直列接続されたフリップフロップ７７Ａ、７７Ｂを有し、リセット切替部６３から出力される信号Ｓ７が入力される。リセット出力部６４は、信号Ｓ７が“Ｌ”である期間及び“Ｌ”から“Ｈ”に変化した後の１クロックの期間において内部リセット信号ＲＳＴ２をアサートする。
【００５１】
図８は、本実施形態におけるクロック切替部６５の回路構成例を示す図である。クロック切替部６５は、図６（Ａ）に示すようにクロック乗換え回路８１、８６、フリップフロップ８２、８７、ＡＮＤ回路８３、８９、ゲーテッド・クロックバッファマクロ８４、インバータ８８、ゲーテッド・クロックバッファ９０、及びＯＲ回路９１を有する。ゲーテッド・クロックバッファマクロ８４は、図８（Ｂ）に示すようにラッチ９２及びＡＮＤ回路９３を有する。
【００５２】
パワーオンリセット要求信号ＲＳＴ１及び内部リセットＲＳＴ２がアサートされていないとき（システムクロックは供給されているものとする）、ＡＮＤ回路８５の出力Ｓ１３は“Ｌ”であるので、インバータ８８の出力Ｓ１６は“Ｈ”、ＡＮＤ回路８９の出力１７は“Ｌ”となる。また、インバータ８８の出力Ｓ１６が“Ｈ”であるので、ＡＮＤ回路８３の出力は“Ｈ”である。したがって、常時供給クロックＣＬＫ０はゲーテッド・クロックバッファ９０により遮断され、ＯＲ回路９１を介してシステムクロックＣＬＫ１がリセット用クロックＣＬＫ２として出力される。
【００５３】
この状態で内部リセットＲＳＴ２がアサートされると、ＡＮＤ回路８３の出力が“Ｌ”に変化するとともに、ＡＮＤ回路８５の出力Ｓ１３が“Ｈ”に変化する。ＡＮＤ回路８５の出力Ｓ１３が“Ｈ”に変化してから常時供給クロックＣＬＫ０での３クロック後にＡＮＤ回路８９の出力が“Ｈ”になる。したがって、ＯＲ回路９１を介して常時供給クロックＣＬＫ０がリセット用クロックＣＬＫ２として出力される。
【００５４】
その後、内部リセットＲＳＴ２がディアサートされると、ＡＮＤ回路８５の出力Ｓ１３が“Ｌ”に変化する。ＡＮＤ回路８５の出力Ｓ１３が“Ｌ”に変化してから常時供給クロックＣＬＫ０での２クロック後にＡＮＤ回路８９の出力が“Ｌ”になり、３クロック後にインバータ８８の出力Ｓ１６が“Ｈ”になる。そして、システムクロックＣＬＫ１の供給が開始されると、ＡＮＤ回路８３の出力が“Ｈ”に変化する。したがって、常時供給クロックＣＬＫ０はゲーテッド・クロックバッファ９０により遮断され、ＯＲ回路９１を介してシステムクロックＣＬＫ１がリセット用クロックＣＬＫ２として再び出力される。このようにクロック切替部６５によりクロック切替を行うことで、同期リセット時、グリッチが発生しないようにしてリセット用クロックＣＬＫ２の切替を行うことができる。
【００５５】
図９は、本実施形態におけるリセット生成部の動作波形の一例を示す図である。
動作ステートが“ＲＵＮ”（同期リセットモード：信号Ｓ３が“Ｈ”）の状態で、外部リセット要求信号ＲＳＴ０がアサートされると、クロック乗換え回路７１の出力Ｓ１が“Ｌ”になる。それに伴い、フリップフロップ７９の出力Ｓ４が“Ｌ”になり、ＡＮＤ回路７４の出力が“Ｌ”となるが、信号Ｓ３が“Ｈ”であるため、信号Ｓ６及びリセット切替部の出力Ｓ７は“Ｈ”を維持する。
【００５６】
そして、リセット要求信号ＲＳＴ０がアサートされてからリセット用クロックＣＬＫ２で３周期が経過すると、信号Ｓ２が“Ｌ”になる。これにより、リセット切替部の出力Ｓ７が“Ｌ”に変化し、内部リセットＲＳＴ２がアサートされる。また、システムクロックＣＬＫ１の供給が停止される。
【００５７】
続いて、内部リセットＲＳＴ２がアサートされてから常時供給クロックＣＬＫ０で３周期が経過すると、リセット用クロックＣＬＫ２として常時供給クロックＣＬＫ０の供給が開始される。これにより、リセット要求保持部６２内のフリップフロップ７１Ａ、７１Ｂ、７２Ａ、７２Ｂ、７３にクロックが供給され、リセット要求保持部６２に保持されていた外部リセット要求信号ＲＳＴに基づくリセットの要因がリセット要求保持部６２の外部に出力される。
【００５８】
そして、内部リセットＲＳＴ２によるリセットが完了し、システムクロックが安定して供給されるようになると、リセット用クロックＣＬＫ２としてシステムクロックＣＬＫ１の供給が開始されるとともに、再び動作ステートが“ＲＵＮ”（同期リセットモード）に遷移する。
【００５９】
以上説明した本実施形態によれば、単純に組み合わせた場合のような不都合を生じることなく、外部からのリセット要求が入力されたときに、クロックリセット生成回路がシステムクロックを供給されている動作ステートの場合には、同期して内部リセット信号をアサートし、クロックリセット生成回路がシステムクロックを供給されない動作ステートの場合には、非同期に内部リセット信号をアサートするように切り替えることができる。
【００６０】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６１】
６１  ステートマシン
６２  リセット要求保持部
６３  リセット切替部
６４  リセット出力部
６５  クロック切替部
【図１】
0005808097.tif 000002
【図２】
0005808097.tif 000003
【図３】
0005808097.tif 000004
【図４】
0005808097.tif 000005
【図５】
0005808097.tif 000006
【図６】
0005808097.tif 000007
【図７】
0005808097.tif 000008
【図８】
0005808097.tif 000009
【図９】
0005808097.tif 000010