(57)【特許請求の範囲】
【請求項１】
カウント値が変更可能であるとともに検知用クロックで動作するカウンター部と、
前記カウンター部の出力に応じて、出力する信号の信号レベルを反転させるレベル出力部と、
前記レベル出力部より出力される信号を検知対象クロックで動作することによって通過させるクロック検知部と、
前記レベル出力部より出力される信号の信号レベルと、前記クロック検知部より出力される信号の信号レベルとを比較し比較結果を出力するレベル比較部と、
所定のタイミングにおける前記レベル比較部の出力に基づいて前記検知対象クロックが停止しているか否かを判定する判定部とを有することを特徴とする半導体装置。
【請求項２】
前記クロック検知部は、前記検知対象クロックがクロックとして供給されるクロック乗換え回路を含むことを特徴とする請求項１記載の半導体装置。
【請求項３】
前記レベル出力部は、前記カウンター部でのカウント完了時に出力する信号の信号レベルを反転し、
前記判定部は、前記レベル出力部で信号レベルを反転した後における次の前記カウンター部でのカウント完了時に前記検知対象クロックが停止しているか否かを判定することを特徴とする請求項１又は２記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、詳しくは半導体装置で使用するクロックの停止検知技術に関する。
【背景技術】
【０００２】
一般に半導体集積回路は、外部から入力される水晶発振クロックで動作する。しかし、水晶発振器はボード上に取り付けられているなどの理由から故障しやすく、半導体集積回路の動作中にクロックの供給が停止してしまうことがある。このため、多くのマイクロコントローラは、チップ内に搭載した発振回路の発振クロックを使用して、外部から入力されるクロックが停止していないか検知を行っている。
【０００３】
クロック停止を検知する手法として、検知対象クロックが供給され、検知対象クロックのエッジを検出することによって所定の出力が設定されるフリップフロップに、検知用クロックを用いて定期的にリセット（クリア）を入力し、リセット入力時にフリップフロップの出力が変化していないことでクロックの停止を検出する方法が提案されている（例えば、特許文献１参照）。なお、特許文献１に記載された技術は、検知対象クロックの周波数が、検知用クロックの周波数よりも高いことを前提としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−６３４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のクロック停止の検知方法では、検知対象クロックと検知用クロックとの周波数比を回路で調整することが容易ではなく、使用できるケースが限定されてしまう。また、リセットを用いてクロック停止を検知しているために、クロック停止検知部をソフトマクロ（ソフトウェアマクロ）として提供した場合に、非同期検証等の回路チェックツールに対応することができない。
【課題を解決するための手段】
【０００６】
本発明の一観点によれば、検知用クロックで動作するカウント値が変更可能なカウンター部と、その出力に応じて出力信号の信号レベルを反転させるレベル出力部と、レベル出力部の出力信号を検知対象クロックで動作することによって通過させるクロック検知部と、レベル出力部の出力信号とクロック検知部の出力信号の信号レベルを比較するレベル比較部と、その比較結果に基づいて所定のタイミングで検知対象クロックが停止しているか否かを判定する判定部とを有する半導体装置が提供される。
【発明の効果】
【０００７】
開示の半導体装置は、カウンター部の出力に応じて検知期間が規定されるため、検知対象クロックと検知用クロックの周波数比を容易に調整することができる。また、リセットを用いずに、レベル出力部の出力信号のレベル変化が検知対象クロックで動作するクロック検知部を通過し伝播するか否かで検知対象クロックが停止しているか否か判断するので回路チェックツールにも対応することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】半導体装置が適用されたマイクロコントローラの構成例を示す図である。
【図２】本実施形態におけるクロックリセット生成回路の構成例を示す図である。
【図３】本実施形態におけるクロック停止検知部の構成例を示す図である。
【図４】本実施形態におけるクロック停止検知部の回路構成例を示す図である。
【図５】本実施形態におけるクロック停止検知部の動作波形の一例を示す図である。
【図６】本実施形態におけるクロック停止検知部の動作波形の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を図面に基づいて説明する。
【００１０】
図１は、半導体装置が適用されたマイクロコントローラの構成例を示す図である。図１において、１はマイクロコントローラが有する各機能部が搭載されたチップである。
【００１１】
３はＣＰＵであり、４はプログラムコード等が格納されたコード用メモリである。ＣＰＵ３及びコード用メモリ４は、バス２にそれぞれ接続されている。例えば、ＣＰＵ３は、コード用メモリ４からプログラムコードを読み出して実行することにより、所定の処理を実行したりマイクロコントローラ内の各機能部を統括的に制御したりする。
【００１２】
７はフラッシュメモリマクロである。フラッシュメモリマクロ７は、フラッシュメモリ用インタフェース５を介してバス２に接続されており、ＣＰＵ３等からの要求に応じて各種データ等の書き込み及び読み出しが行われる。また、フラッシュメモリ用インタフェース５を介して、フラッシュパラレルインタフェースがバス２に対して接続される。
【００１３】
８はバス２に接続される各種モジュールである。モジュール８の各々は、例えばチップ内蔵のＲＡＭ、マスタモジュール、スレーブモジュール、外部メモリインタフェース、外部デバイスインタフェースなどである。
【００１４】
９は、バス２とペリフェラルバス１０との間での各種信号の授受を制御するバスブリッジである。なお、バス２は、いわゆるハイパフォーマンスバスと呼ばれる比較的高速なバスであり、ペリフェラルバス１０はバス２よりも低速なバスである。
【００１５】
１１はクロックリセット生成回路である。クロックリセット生成回路１１は、発振クロックを入力としてチップ内部の各機能部に供給するシステムクロックを生成したり、内部又は外部からのリセット要求を受けて各機能部に供給する内部リセットを生成したりする。また、クロックリセット生成回路１１は、入力される発振クロックが停止していないか否かを検知する。
【００１６】
１２はハードウェアによるウォッチドッグタイマであり、１３はソフトウェアによるウォッチドッグタイマであり、１４はタイマである。クロックリセット生成回路１１、ウォッチドッグタイマ１２、１３、及びタイマ１４のそれぞれは、ペリフェラルバス１０に接続されている。
【００１７】
１５はＰＬＬ（Phase Locked Loop）回路であり、１６は高い周波数のクロックを発振するための高速ＣＲ発振回路であり、１７は低い周波数のクロックを発振するための低速ＣＲ発振回路である。ＰＬＬ回路１５、高速ＣＲ発振回路１６、低速ＣＲ発振回路１７の各々は、クロックリセット生成回路１１に発振クロックを供給する。１８はレギュレータであり、入力電圧を所定の出力電圧に変換し出力する。レギュレータ１８は、クロックリセット生成回路１１にパワーオンリセット要求を出力する。
【００１８】
図２は、図１に示したクロックリセット生成回路１１の構成例を示す図である。図２において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付している。図２に示すようにクロックリセット生成回路１１は、クロック生成部２１、クロック停止検知部２４、及びリセット生成部２５を有する。
【００１９】
クロック生成部２１は、セレクタ２２及び分周器２３を有し、発振クロックを入力としてシステムクロックを生成し出力する。セレクタ２２は、外部メイン発振器２７、外部サブ発振器２８、ＰＬＬ回路１５、高速ＣＲ発振回路１６、及び低速ＣＲ発振回路１７の各々から発振されたクロックが入力される。セレクタ２２は、入力された発振クロックを選択し、マスタークロックＭＳＣＬとして出力する。分周器２３は、セレクタ２２より出力されたマスタークロックＭＳＣＬが入力され、それを指定の分周比で分周してベースクロックＢＳＣＬとして出力する。クロック生成部２１からは、このベースクロックＢＳＣＬ（マスタークロックＭＳＣＬであっても良い）がシステムクロックとしてマイクロコントローラ内の各機能部（ＣＰＵやモジュール等）に供給される。
【００２０】
クロック停止検知部２４は、外部メイン発振器２７、外部サブ発振器２８、高速ＣＲ発振回路１６、及び低速ＣＲ発振回路１７の各々から発振されたクロックが入力され、クロックが停止していないか否かを検知する。
【００２１】
リセット生成部２５は、リセット発生部２６を有し、内部又は外部からのリセット要求を受けてリセット信号を生成し出力する。リセット発生部２６は、外部からのリセット要求（ＩＮＩＴ＿Ｎ）、及びクロック停止検知部２４からのクロック停止検知リセット要求が入力される。また、リセット発生部２６は、ウォッチドッグタイマ１２からのハードウェアウォッチドッグリセット要求、ウォッチドッグタイマ１３からのソフトウェアウォッチドッグリセット要求、及びレギュレータ１８からのパワーオンリセット要求が入力される。リセット発生部２６は、これらリセット要求に応じてリセット信号を生成し、生成したリセット信号をマイクロコントローラ内の各機能部（ＣＰＵやモジュール等）に出力する。
【００２２】
図３は、本実施形態におけるクロック停止検知部２４の構成例を示す図である。本実施形態におけるクロック停止検知部２４は、図３に示すようにカウンター部３１、レベル出力部３２、クロック検知部３３、レベル比較部３４、及びクロック判定部３５を有する。なお、図３においては、リセット信号ＲＳＴ０を図示しているが、クロック停止検知部２４におけるクロック停止の検知動作では用いられず、クロック停止の検知動作時においてリセット信号ＲＳＴ０はハイレベルに固定されている（ネゲートされている）。
【００２３】
カウンター部３１は、検知用クロックＣＬＫ１で動作するカウンターであって、カウント完了時に出力信号ＣＯＵＴをパルス状にアサートする。また、カウンター部３１は、カウントが完了すると、再び初期値からのカウント動作を開始する。ここで、カウンター部３１のカウント値は変更可能であり、例えば検知対象クロックＣＬＫ０と検知用クロックＣＬＫ１の周波数比に応じて適宜設定可能である。レベル出力部３２は、検知用クロックＣＬＫ１で動作し、カウンター部３１の出力信号ＣＯＵＴがアサートされると出力信号ＳＩＧ１の信号レベルを反転する。
【００２４】
クロック検知部３３は、検知対象クロックＣＬＫ０で動作し、検知対象クロックＣＬＫ０を用いてレベル出力部３２の出力信号ＳＩＧ１と同じ信号レベルの出力信号ＳＩＧ２を出力する。言い換えれば、検知対象クロックＣＬＫ０が停止していない場合には出力信号ＳＩＧ１はクロック検知部３３を通過して出力信号ＳＩＧ２として出力され、検知対象クロックＣＬＫ０が停止している場合には出力信号ＳＩＧ１はクロック検知部３３を通過しない。
【００２５】
レベル比較部３４は、レベル出力部３２の出力信号ＳＩＧ１の信号レベルと、クロック検知部３３の出力信号ＳＩＧ２の信号レベルとを比較する。レベル比較部３４は、出力信号ＳＩＧ１及び出力信号ＳＩＧ２の信号レベルが同じである場合には出力信号ＳＩＧ３をアサートし、そうでない場合には出力信号ＳＩＧ３をアサートしない。
【００２６】
クロック判定部３５は、カウンター部３１の出力信号ＣＯＵＴ及びレベル比較部３４の出力信号ＳＩＧ３に基づいて検出対象クロックＣＬＫ０が停止しているか否かを判定する。クロック判定部３５は、カウンター部３１の出力信号ＣＯＵＴがアサートされたときに、レベル比較部３４の出力信号ＳＩＧ３をモニターし、出力信号ＳＩＧ３がアサートされていない場合には検出対象クロックＣＬＫ０が停止していると判定する。クロック判定部３５は、例えば検出対象クロックＣＬＫ０が停止していると判定した場合には、リセット生成部２５に対してクロック停止検知リセット要求を出力するようにしても良い。
【００２７】
図４は、本実施形態におけるクロック停止検知部２４の回路構成例を示す図である。
カウンター部３１は、検知用クロックＣＬＫ１で動作し、カウント完了時に出力信号Ｓ０をパルス状にハイレベル（“Ｈ”）にする。
レベル出力部３２は、クロックとして検知用クロックＣＬＫ１が供給されるフリップフロップ４１と、セレクタ４２とを有する。フリップフロップ４１は、入力信号としてセレクタ４２の出力信号Ｓ１が入力され、出力信号Ｓ２を出力する。セレクタ４２は、フリップフロップ４１の出力信号Ｓ２が入力されるとともに、カウンター部３１の出力信号Ｓ０が選択信号として入力される。セレクタ４２は、出力信号Ｓ０がローレベル（“Ｌ”）の場合には出力信号Ｓ１としてフリップフロップ４１の出力信号Ｓ２を出力し、出力信号Ｓ０が“Ｈ”の場合には出力信号Ｓ１としてフリップフロップ４１の出力信号Ｓ２を反転して出力する。したがって、レベル出力部３２は、カウンター部３１の出力信号Ｓ０が“Ｌ”のときには出力信号の信号レベルを維持し、カウンター部３１の出力信号Ｓ０が“Ｈ”のときには出力信号の信号レベルを反転させる。
【００２８】
クロック検知部３３は、クロックとして検知対象クロックＣＬＫ０が供給されるクロック乗換え回路４３と、クロックとして検知用クロックＣＬＫ１が供給されるクロック乗換え回路４４とを有する。クロック乗換え回路４３は、直列接続されたフリップフロップ４３Ａ、４３Ｂを有し、レベル出力部３２のフリップフロップ４１の出力信号Ｓ２がフリップフロップ４３Ａに入力され、フリップフロップ４３Ｂの出力が出力信号Ｓ３として出力される。また、クロック乗換え回路４４は、直列接続されたフリップフロップ４４Ａ、４４Ｂを有し、クロック乗換え回路４３の出力信号Ｓ３がフリップフロップ４４Ａに入力され、フリップフロップ４４Ｂの出力が出力信号Ｓ４として出力される。
【００２９】
レベル比較部３４は、ＡＮＤ回路（論理積演算回路）４５、４６及びＯＲ回路（論理和演算回路）４７を有する。ＡＮＤ回路４５は、レベル出力部３２のフリップフロップ４１の出力信号Ｓ２が反転入力されるとともに、クロック検知部３３のクロック乗換え回路４４の出力信号Ｓ４が反転入力され、その論理積演算結果を出力信号Ｓ５として出力する。また、ＡＮＤ回路４６は、レベル出力部３２のフリップフロップ４１の出力信号Ｓ２及びクロック検知部３３のクロック乗換え回路４４の出力信号Ｓ４が入力され、その論理積演算結果を出力信号Ｓ６として出力する。ＯＲ回路４７は、ＡＮＤ回路４５の出力信号Ｓ５及びＡＮＤ回路４６の出力信号Ｓ６が入力され、その論理和演算結果を出力信号Ｓ７として出力する。すなわち、レベル比較部３４は、レベル出力部３２のフリップフロップ４１の出力信号Ｓ２及びクロック検知部３３のクロック乗換え回路４４の出力信号Ｓ４の信号レベルが同じ場合、“Ｈ”の出力信号Ｓ７を出力する。出力信号Ｓ７は、図３に示した出力信号ＳＩＧ３に相当する。
【００３０】
図５及び図６は、本実施形態におけるクロック停止検知部２４の動作波形の一例を示す図である。図５には、検知対象クロックＣＬＫ０の周波数が検知用クロックＣＬＫ１の周波数より低い場合を示している。また、図６には、検知対象クロックＣＬＫ０の周波数が検知用クロックＣＬＫ１の周波数より高い場合を示している。
【００３１】
検知用クロックＣＬＫ１で動作するカウンター部３１は、カウント完了時に出力信号Ｓ０を“Ｈ”にする。出力信号Ｓ０が“Ｈ”であるとき、レベル出力部３２のフリップフロップ４１には、出力信号Ｓ２を反転した信号Ｓ１が入力される。そして、検知用クロックＣＬＫ１での次のクロックエッジで、レベル出力部３２の出力信号Ｓ２の信号レベルが反転する。なお、出力信号Ｓ０が“Ｌ”であるとき、レベル出力部３２の出力信号Ｓ２の信号レベルは維持される。
【００３２】
出力信号Ｓ２の信号レベルが変化（“Ｈ”から“Ｌ”、又は“Ｌ”から“Ｈ”）し、かつ検知対象クロックＣＬＫ０が停止していない場合には、出力信号Ｓ２は検知対象クロックＣＬＫ０で動作するクロック乗換え回路４３を通過し、クロック乗換え回路４３の出力信号Ｓ３が出力信号Ｓ２と同じ信号レベルに変化する。仮に、検知対象クロックＣＬＫ０が停止している場合には、出力信号Ｓ２の信号レベルはクロック乗換え回路４３を通過しない（図５の破線円５１、図６の破線円６１の部分参照）。出力信号Ｓ３は、検知用クロックＣＬＫ１で動作するクロック乗換え回路４４を通過し、クロック乗換え回路４４の出力信号Ｓ４は出力信号Ｓ３と同じ信号レベルとなる。
【００３３】
そして、出力信号Ｓ４と出力信号Ｓ２は、レベル比較部３４で信号レベルが比較される。出力信号Ｓ４と出力信号Ｓ２がともに“Ｌ”の場合にはＡＮＤ回路４５の出力信号Ｓ５が“Ｈ”となり、出力信号Ｓ４と出力信号Ｓ２がともに“Ｈ”の場合にはＡＮＤ回路４６の出力信号Ｓ６が“Ｈ”となる。したがって、出力信号Ｓ４と出力信号Ｓ２の信号レベルが一致した場合にはＯＲ回路４７の出力信号Ｓ７が“Ｈ”になり、出力信号Ｓ４と出力信号Ｓ２の信号レベルが一致しない場合にはＯＲ回路４７の出力信号Ｓ７が“Ｌ”になる。
【００３４】
カウンター部３１が再びカウントを完了し、出力信号Ｓ０が“Ｈ”となったとき、ＯＲ回路４７の出力信号Ｓ７が“Ｈ”であれば、検知対象クロックＣＬＫ１は停止していないと判定される。一方、出力信号Ｓ０が“Ｈ”となったとき、ＯＲ回路４７の出力信号Ｓ７が“Ｌ”であれば、検知対象クロックＣＬＫ１は停止していると判定される。
【００３５】
本実施形態によれば、検知用クロックＣＬＫ１で動作するカウンター部３１がカウント完了するときに、レベル出力部３２の出力信号の信号レベルを反転させる。そして、この信号レベルの変化が、検知対象クロックＣＬＫ０で動作するクロック乗換え回路４３を有するクロック検知部３３を通過し、レベル比較部３４まで伝播しているか否かに応じて検知対象クロックＣＬＫ０が停止していないかを検知する。本実施形態では、カウンター部３１を用いて検知期間を決めるため、検知対象クロックと検知用クロックの周波数比は、カウンター部３１におけるカウンターのビット幅を変更することで調整できる。例えば、本実施形態におけるクロック停止検知部をソフトマクロで提供する場合には、カウンターのビット幅の変更は容易であり、検知対象クロックと検知用クロックの周波数比を容易に調整することができる。また、レベル出力部３２の信号レベルの変化を基点とし、信号レベルの伝播が検知対象クロックＣＬＫ０で動作するクロック乗換え回路を通過するか否かでクロックの停止を判断している。ここで、非同期乗換え回路は、一般的な順序回路の構成であるため非同期検証等の回路チェックツールにも対応することが可能となる。
【００３６】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００３７】
３１  カウンター部
３２  レベル出力部
３３  クロック検知部
３４  レベル比較部
３５  クロック判定部
ＣＬＫ０  検知対象クロック
ＣＬＫ１  検知用クロック
【図１】
0005589787.tif 000002
【図２】
0005589787.tif 000003
【図３】
0005589787.tif 000004
【図４】
0005589787.tif 000005
【図５】
0005589787.tif 000006
【図６】
0005589787.tif 000007