(57)【要約】【課題】従来の半導体装置では、クロック信号の異常の検出に複数のクロックを必要とする問題があった。【解決手段】一実施の形態によれば、半導体装置は、クロック信号が供給されるデータ保持回路に入力される入力データのエッジを検出し、エッジ検出回数をカウントした第１のカウント値をクロック信号でリセットし、エッジ検出回数をカウントした第２のカウント値を反転クロック信号でリセットし、第１のカウント値と第２のカウント値とのいずれか一方の値がオーバーフロー状態となったことに応じてクロック信号の異常を検出する。【選択図】図２
2017033325.tif 000002
【特許請求の範囲】
【請求項１】
入力データのエッジを検出するエッジ検出回路と、
データ保持回路において前記入力データの取り込みに用いられるクロック信号によりリセットされ、前記エッジ検出回路のエッジ検出回数をカウントする第１のカウンタと、
前記クロック信号と反転する反転クロック信号によりリセットされ、前記エッジ検出回路のエッジ検出回数をカウントする第２のカウンタと、
前記第１のカウンタと前記第２のカウンタとの一方がオーバーフロー状態となったことに応じてクロック停止検出信号を出力するクロック停止判定回路と、
を有する半導体装置。
【請求項２】
前記第２のカウンタは、オーバーフロー状態となるカウント値が前記第１のカウンタよりも３以上大きい請求項１に記載の半導体装置。
【請求項３】
前記エッジ検出回路は、前記データ保持回路の入力と出力との間の信号に論理レベルの差が生じたことに応じて前記入力データのエッジを検出する請求項１に記載の半導体装置。
【請求項４】
前記第１のカウンタ及び前記第２のカウンタは、カウント値がオーバーフロー状態となった場合に前記クロック停止検出信号の論理レベルを前記クロック信号の供給が再開するまで保持する請求項１に記載の半導体装置。
【請求項５】
前記第１のカウンタは、
前記クロック信号が第１の論理レベルの期間に前記エッジ検出回路が出力する入力エッジ検出信号を出力する第１のゲーティング回路と、
前記第１の論理レベルとは逆の論理レベルの第２の論理レベルの前記クロック信号により出力を前記第１の論理レベルにリセットし、前記第１のゲーティング回路の出力が前記第２の論理レベルとなったことに応じて出力を前記第２の論理レベルとする第１のセットリセットフリップフロップと、
前記入力エッジ検出信号を反転した反転入力エッジ検出信号が前記第２の論理レベルの期間に前記第１のセットリセットフリップフロップの出力を後段回路に出力する第２のゲーティング回路と、
前記第２のゲーティング回路の出力が前記第２の論理レベルとなったことに応じて出力を前記第２の論理レベルとし、前記クロック信号が前記第２の論理レベルになったことに応じて出力を前記第１の論理レベルにリセットする第２のセットリセットフリップフロップと、を有し、
前記第２のカウンタは、
前記クロック信号が前記第２の論理レベルの期間に前記エッジ検出回路が出力する入力エッジ検出信号を出力する第３のゲーティング回路と、
前記第１の論理レベルの前記クロック信号により出力を前記第１の論理レベルにリセットし、前記第３のゲーティング回路の出力が前記第２の論理レベルとなったことに応じて出力を前記第２の論理レベルとする第３のセットリセットフリップフロップと、
前記反転入力エッジ検出信号が前記第２の論理レベルの期間に前記第３のセットリセットフリップフロップの出力を後段回路に出力する第４のゲーティング回路と、
前記第４のゲーティング回路の出力が前記第２の論理レベルとなったことに応じてカウント動作を開始し、前記第４のゲーティング回路の出力のエッジに応じてカウント値を増加させ、前記クロック信号が前記第１の論理レベルとなったことに応じて前記カウント値をリセットするウェイトカウンタと、
前記ウェイトカウンタの最終段の出力が前記第２の論理レベルとなったことに応じて出力を前記第２の論理レベルとし、前記クロック信号が前記第１の論理レベルになったことに応じて出力を前記第１の論理レベルにリセットする第４のセットリセットフリップフロップと、を有する請求項１に記載の半導体装置。
【請求項６】
前記ウェイトカウンタは、
前記第１の論理レベルの前記クロック信号でリセットされ、前記第２の論理レベルの前記反転入力エッジ検出信号に応じて出力を入力される信号の論理レベルとする第１のトグルフリップフロップと、
前記第１の論理レベルの前記クロック信号でリセットされ、前記第１の論理レベルの前記反転入力エッジ検出信号に応じて出力を入力される信号の論理レベルとする第２のトグルフリップフロップと、を有し、
前記第１のトグルフリップフロップと前記第２のトグルフリップフロップとが交互に直列に接続され、かつ、最終段の出力が初段の入力にループ接続される請求項５に記載の半導体装置。
【請求項７】
前記データ保持回路、前記エッジ検出回路、前記第１のカウンタ、前記第２のカウンタ及び前記クロック停止判定回路を有し、
前記データ保持回路によりレジスタを構成し、前記データ保持回路の入力データと前記データ保持回路に入力される前記クロック信号に基づき、前記エッジ検出回路、前記第１のカウンタ、前記第２のカウンタ及び前記クロック停止判定回路が前記クロック信号の停止を検出する請求項１に記載の半導体装置。
【請求項８】
前記データ保持回路、前記エッジ検出回路、前記第１のカウンタ、前記第２のカウンタ及び前記クロック停止判定回路を有し、
前記データ保持回路から後段回路にＰＷＭ信号を出力し、前記データ保持回路の入力データと前記データ保持回路に入力される前記クロック信号に基づき、前記エッジ検出回路、前記第１のカウンタ、前記第２のカウンタ及び前記クロック停止判定回路が前記クロック信号の停止を検出する請求項１に記載の半導体装置。
【請求項９】
前記データ保持回路は、前記クロック信号に同期して前記入力データの値を保持するＤフリップフロップである請求項１に記載の半導体装置。
【請求項１０】
第１のクロック信号を伝達するメインクロック配線と、
前記第１のクロック信号の異常を検出するクロック監視回路と、
前記クロック監視回路の動作に用いられる第２のクロック信号を伝達するサブクロック配線と、
前記第１のクロック信号を複数の回路に同期クロック信号として振り分けるクロック分配網と、
前記同期クロック信号に基づき入力データの値を保持するデータ保持回路と、
前記入力データに基づき前記データ保持回路に与えられる前記同期クロック信号の停止を検出するクロック信号停止検出回路と、を有し、
前記クロック信号停止検出回路は、
前記入力データのエッジを検出するエッジ検出回路と、
前記データ保持回路に入力される前記同期クロック信号によりリセットされ、前記エッジ検出回路のエッジ検出回数をカウントする第１のカウンタと、
前記同期クロック信号と反転する反転同期クロック信号によりリセットされ、前記エッジ検出回路のエッジ検出回数をカウントする第２のカウンタと、
前記第１のカウンタと前記第２のカウンタとの一方がオーバーフロー状態となったことに応じてクロック停止信号を出力するクロック停止判定回路と、
を有する半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、例えば、クロック信号に同期して入力データを保持するデータ保持回路を有する半導体装置に関する。
【背景技術】
【０００２】
近年、半導体装置では、故障が生じた場合であっても、半導体装置が搭載されるシステムの安全性を確保する機能安全性が求められている。機能安全の一例として、半導体装置内で用いられるクロック信号の健全性を確保するクロック安全機能がある。クロック安全機能では、クロック信号の状態を監視する必要がある。そこで、クロック信号の状態を監視する技術の一例が特許文献１に開示されている。
【０００３】
特許文献１に記載のクロック信号源の監視装置は、複数のクロック信号源と、複数のカウンタと、を備え、第１から第３のクロック信号源からのクロック信号を第１から第３のカウンタに夫々クリア信号として与える。また、特許文献１のクロック信号源の監視回路では、第１のクロック信号源からのクロック信号を第２、第３のカウンタにカウント入力として与え、第２のクロック信号源からのクロック信号を第１のカウンタにカウント入力として与える。従って、特許文献１のクロック信号源の監視装置では、いずれかのクロック信号源が故障すればカウント値が設定値までアップするので警報信号が発せられる。また電源投入直後には、カウント値設定部からのプリセット信号によりカウント値を警報状態に設定しておく。こうすることで複数のクロック信号源が故障しても電源投入時に警報信号が消失しないので、故障を検出できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２９２９２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載の技術では、クロック信号の異常を検出するために複数のクロック信号源を必要とする。そのため、特許文献１に記載の技術を用いた場合、クロック信号が１系統しか供給されない部分におけるクロック信号の異常を検出できない問題がある。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、クロック信号が供給されるデータ保持回路に入力される入力データのエッジを検出し、エッジ検出回数をカウントした第１のカウント値をクロック信号でリセットし、エッジ検出回数をカウントした第２のカウント値を反転クロック信号でリセットし、第１のカウント値と第２のカウント値とのいずれか一方の値がオーバーフロー状態となったことに応じてクロック信号の異常を検出する。
【発明の効果】
【０００８】
前記一実施の形態によれば、半導体装置は、１系統のクロック信号によりクロック信号の異常を検出することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる半導体装置のブロック図である。
【図２】実施の形態１にかかるクロック信号停止検出回路のブロック図である。
【図３】実施の形態１にかかるクロック信号停止検出回路の回路図である。
【図４】クロック信号が停止していない状態での実施の形態１にかかるクロック信号停止検出回路の動作の第１の例を示すタイミングチャートである。
【図５】クロック信号がハイレベルで停止する場合の実施の形態１にかかるクロック信号停止検出回路の動作の第１の例を示すタイミングチャートである。
【図６】クロック信号がロウレベルで停止する場合の実施の形態１にかかるクロック信号停止検出回路の動作の第１の例を示すタイミングチャートである。
【図７】クロック信号が停止していない状態での実施の形態１にかかるクロック信号停止検出回路の動作の第２の例を示すタイミングチャートである。
【図８】クロック信号がハイレベルで停止する場合の実施の形態１にかかるクロック信号停止検出回路の動作の第２の例を示すタイミングチャートである。
【図９】クロック信号がロウレベルで停止する場合の実施の形態１にかかるクロック信号停止検出回路の動作の第２の例を示すタイミングチャートである。
【図１０】実施の形態２にかかる半導体装置のブロック図である。
【図１１】実施の形態３にかかる半導体装置のブロック図である。
【図１２】実施の形態４にかかる半導体装置のブロック図である。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
実施の形態１にかかる半導体装置１は、クロックに同期してデータを保持するデータ保持回路（例えば、Ｄフリップフロップ）を有する。半導体装置１では、クロック信号源から供給されるクロック信号を分配した同期クロックをデータ保持回路に供給する。また、実施の形態１にかかる半導体装置１は、データ保持回路に対してクロック信号停止検出回路を設け、当該クロック信号停止検出回路により、データ保持回路に供給される同期クロックの異常を検出する。実施の形態１にかかるクロック信号停止検出回路は、データ保持回路とクロック信号停止検出回路とを１つの回路セルとしたクロック信号停止検出セルとして配置することが好ましい。クロック信号停止検出セルを用いてクロック信号停止検出回路を半導体装置に組み込むことで、例えば、論理設計、タイミング設計、レイアウト設計等の簡易化を実現することができる。
【００１２】
実施の形態１にかかる半導体装置１のブロック図を図１に示す。図１に示すように、実施の形態１にかかる半導体装置１は、第１のクロック生成回路１０、メインクロック配線１１、第２のクロック生成回路１２、サブクロック配線１３、クロック信号監視回路１４、クロック分配網１５、機能回路１６１〜１６３を有する。また、図１に示した半導体装置１は、上位システムにＣＰＵ（Central Processing Unit）等の演算装置が設けられ、当該演算装置からクロックの動作する状態と停止した状態との切替、起動開始タイミングの指示等の制御を受けるものとする。
【００１３】
また、図１では、半導体装置１内に第１のクロック生成回路１０及び第２のクロック生成回路１２を示したが、第１のクロック生成回路１０及び第２のクロック生成回路１２は、外付けの装置とすることもできる。
【００１４】
第１のクロック生成回路１０は、機能回路１６１〜１６３を動作させる第１のクロック信号を生成する。メインクロック配線１１は、第１のクロック信号を伝達する。第２のクロック生成回路１２は、クロック信号監視回路１４の動作に用いられる第２のクロック信号を生成する。サブクロック配線１３は、第２のクロック信号を伝達する。クロック信号監視回路１４は、第１のクロック信号と第２のクロック信号とを用いて第１のクロック信号の異常を検出する。クロック信号監視回路１４は、第１のクロック信号の異常を検出した場合、メインクロックエラー信号ＳＣＬＫｅをＣＰＵに通知する。クロック信号監視回路１４は、複数のクロック信号を用いることでクロック信号の異常を検出する回路である。
【００１５】
クロック分配網１５は、第１のクロック信号を複数の回路に同期クロック信号として振り分ける。図１に示す例では、クロック分配網１５は、分周回路１５１、逓倍回路１５２、クロック選択回路１５３〜１５５を有する。なお、クロック分配網１５は、これら回路ブロックに加えて、クロック信号が回路に到達するタイミングを整えるＣＴＳ（Clock Tree Synthesis）バッファ回路を有していても良く、また、ＣＴＳバッファ回路のみで構成されていても良い。
【００１６】
分周回路１５１は、第１のクロック信号を分周した同期クロック信号を生成する。逓倍回路１５２は、第１のクロック信号を逓倍した同期クロック信号を生成する。クロック選択回路１５３〜１５５は、分周回路１５１が出力する同期クロック信号と、逓倍回路１５２が出力する同期クロック信号と、のいずれか一方を選択して機能回路１６１〜１６３に出力する。
【００１７】
機能回路１６１〜１６３は、仕様に基づく各種機能を実現するための回路である。機能回路１６１には、クロック選択回路１５３が選択した同期クロック信号が供給される。機能回路１６２には、クロック選択回路１５４が選択した同期クロック信号が供給される。機能回路１６３には、クロック選択回路１５５が選択した同期クロック信号が供給される。そして、機能回路１６１〜１６３には、それぞれクロック信号停止検出回路２０が設けられる。クロック信号停止検出回路２０は、対応する機能回路に供給される同期クロック信号が停止状態となった場合にクロック停止検出信号ＣＬｅを出力する。クロック停止検出信号ＣＬｅは、ＣＰＵに通知される。
【００１８】
実施の形態１にかかる半導体装置１では、演算装置がメインクロックエラー信号ＳＣＬＫｅとクロック停止検出信号ＣＬｅといずれによりエラーが通知されたかに基づき、クロック信号の信号源と、クロック分配経路と、のいずれで故障が発生したかを認識することができる。そのため、実施の形態１にかかる半導体装置１では、故障の発生箇所に応じて対処の方式を切り替えることができる。例えば、メインクロックエラー信号ＳＣＬＫｅによりエラーが通知された場合には、システムに重大な影響を与える可能性があるため、システムを安全に停止する処理を演算装置に行わせることができる。一方、クロック停止検出信号ＣＬｅによりエラーが通知された場合には、エラーが発生した箇所の機能回路の当該処理を代替できる機能ブロックに切り替える等の処理を演算装置に行わせることができる。また、実施の形態１にかかる半導体装置１では、分周回路１５１或いは逓倍回路１５２の一部で故障が発生した場合には、故障が発生していない回路を選択して動作を継続することができる。
【００１９】
続いて、実施の形態１にかかるクロック信号停止検出回路２０について詳細に説明する。そこで、図２に実施の形態１にかかるクロック信号停止検出回路２０のブロック図を示す。図２では、クロック信号停止検出回路２０をより詳しく説明するために、クロック信号停止検出回路２０とクロック信号停止検出回路２０によるクロックエラーの検出対象であるフリップフロップ２１とを含むクロック信号停止検出セル２のブロックを示した。
【００２０】
図２に示すように、クロック信号停止検出回路２０は、フリップフロップ２１に供給される同期クロック信号（以下、単にクロック信号ＣＬＫと称す。）の異常を、フリップフロップ２１に入力される入力データＩＮとフリップフロップ２１に入力されるクロック信号ＣＬＫとに基づき検出する。
【００２１】
フリップフロップ２１は、データ保持回路の１つの例であり、クロック信号ＣＬＫの立ち上がりエッジに応じて入力データＩＮの論理レベルを保持し、出力データＯＵＴを保持した論理レベルとする、Ｄフリップフロップである。また、フリップフロップ２１は、リセット信号ＲＳＴがロウレベルとなると出力を第１の論理レベル（例えば、ロウレベル）とするリセット状態となる。このリセット信号ＲＳＴは、例えば、上位システム上に設けられた演算装置、或いは、半導体装置１内のリセット回路（不図示）から供給されるものである。
【００２２】
クロック信号停止検出回路２０は、エッジ検出回路３０、インバータ回路３１、第１のカウンタ４０ａ、第２のカウンタ４０ｂ、クロック停止判定回路５０を有する。なお、クロック停止検出回路２０は、リセット信号ＲＳを反転させた反転リセット信号を出力するインバータを有するが、図２に示す例では省略した。クロック停止検出回路２０では、当該反転リセット信号により第１のカウンタ４０ａ及び第２のカウンタ４０ｂをリセットする。図２に関する説明では、反転リセット信号によるリセット動作の説明は省略する。
【００２３】
エッジ検出回路３０は、入力データＩＮのエッジを検出して、検出結果を入力エッジ検出信号ＥＤとして出力する。入力エッジ検出信号ＥＤは、入力データＩＮにエッジ変化が生じ出力データＯＵＴが入力データＩＮの論理レベルと同一の論理レベルとなるまでの期間に第２の論理レベル（例えば、ハイレベル）となる信号である。インバータ回路３１は、クロック信号ＣＬＫを反転して、反転クロック信号を出力する。
【００２４】
第１のカウンタ４０ａは、フリップフロップ２１において入力データＩＮの取り込みに用いられるクロック信号ＣＬＫによりリセットされ、エッジ検出回路３０のエッジ検出回数をカウントする。また、第１のカウンタ４０ａは、カウント値がオーバーフロー状態となるカウント値に達したときにＬレベル停止検出信号ＬＳＤをハイレベルとし、クロック信号の供給が再開されるまでの期間、Ｌレベル停止検出信号ＬＳＤをハイレベルに維持する。第２のカウンタ４０ｂは、インバータ回路３１から出力される反転クロック信号によりリセットされ、エッジ検出回路３０のエッジ検出回数をカウントする。また、第２のカウンタ４０ｂは、カウント値がオーバーフロー状態となるカウント値に達したときにＨレベル停止検出信号ＨＳＤをハイレベルとし、クロック信号の供給が再開されるまでの期間、Ｈレベル停止検出信号ＨＳＤをハイレベルに維持する。また、詳しくは後述するが、第１のカウンタ４０ａがオーバーフロー状態となるカウント値と第２のカウンタ４０ｂがオーバーフロー状態となるカウント値とは同一でも良く、第２のカウンタ４０ｂが第１のカウンタ４０ａよりも３以上大きくても良い。
【００２５】
クロック停止判定回路５０は、第１のカウンタ４０ａと第２のカウンタ４０ｂとの一方がオーバーフロー状態となったことに応じてクロック停止検出信号ＣＬｅを出力する。
【００２６】
続いて、実施の形態１にかかるクロック信号停止検出回路２０の詳細な回路について説明する。そこで、図３に実施の形態１にかかるクロック信号停止検出回路２０の回路図を示す。図３に示した回路図では、エッジ検出回路３０、第１のカウンタ４０ａ、第２のカウンタ４０ｂについて、詳細な回路図を示した。また、図３では、第１のカウンタ４０ａ及び第２のカウンタ４０ｂに反転リセット信号を与えるインバータを示した。
【００２７】
図３に示すように、エッジ検出回路３０は、排他的論理和回路（ＥｘＯＲ回路）により構成される。エッジ検出回路３０は、フリップフロップ２１の入力と出力との間の信号に論理レベルの差が生じたことに応じて入力データのエッジを検出する。具体的には、エッジ検出回路３０は、フリップフロップ２１の入力データＩＮのエッジ変化から出力データＯＵＴのエッジ変化までの期間にハイレベルとなる入力エッジ検出信号ＥＤを出力する。なお、エッジ検出回路３０としては、ＥｘＯＲ回路と遅延回路とを組み合わせた回路を用いることもできる。この場合、入力データＩＮを分岐させ、分岐させた一方の入力データＩＮをＥｘＯＲ回路の一方の入力端子に入力し、分岐させた他方の入力データＩＮを遅延回路を介してＥｘＯＲ回路の他方の入力端子に入力する。
【００２８】
第１のカウンタ４０ａは、ＯＲ回路４１ａ、第１のゲーティング回路（例えば、ゲーティング回路４２ａ）、第１のセットリセットフリップフロップ（例えば、ＲＳＦＦ４３ａ）、第２のゲーティング回路（例えば、ゲーティング回路４４ａ）、第２のセットリセットフリップフロップ（例えば、ＲＳＦＦ４５ａ）を有する。
【００２９】
ＯＲ回路４１ａは、一方の入力にクロック信号ＣＬＫが入力され、他方の入力に反転リセット信号が入力される。ＯＲ回路４１ａは、クロック信号ＣＬＫと反転リセット信号のいずれか一方がハイレベルとなったことに応じて出力をハイレベルとする。ＯＲ回路４１ａは、クロック信号ＣＬＫと反転リセット信号のいずれか一方がハイレベルとなったことに応じて第１のカウンタ４０ａのカウント値をリセットする。
【００３０】
ゲーティング回路４２ａは、ＯＲ回路４１ａの出力がロウレベルの期間にエッジ検出回路３０が出力する入力エッジ検出信号ＥＤを通過させる。つまり、ゲーティング回路４２ａは、クロック信号ＣＬＫ又はリセット信号ＲＳＴがハイレベルの期間に入力エッジ検出信号ＥＤをマスクする。ゲーティング回路４２ａは、一方の入力が反転入力となる論理積回路（ＡＮＤ回路）である。ゲーティング回路４２ａは、一方の入力（反転入力側）にＯＲ回路４１ａの出力が入力され、他方の入力に入力エッジ検出信号ＥＤが入力される。
【００３１】
ＲＳＦＦ４３ａは、ハイレベルのクロック信号ＣＬＫ又はロウレベルのリセット信号ＲＳＴにより出力をロウレベルにリセットし、ゲーティング回路４２ａの出力がハイレベルとなったことに応じて出力をハイレベルとする。ＲＳＦＦ４３ａは、セット端子Ｓにゲーティング回路４２ａの出力が入力され、リセット端子ＲにＯＲ回路４１ａの出力が入力される。以下では、ＲＳＦＦ４３ａの出力をエッジ保持信号ＥＨＨＣと称す。
【００３２】
ゲーティング回路４４ａは、入力エッジ検出信号ＥＤを反転した反転入力エッジ検出信号ＥＤｂがハイレベルの期間にＲＳＦＦ４３ａの出力を後段回路に出力する。ゲーティング回路４４ａは、一方の入力にＲＳＦＦ４３ａの出力が入力され、他方の入力に反転入力エッジ検出信号ＥＤｂが入力される。この反転入力エッジ検出信号ＥＤｂは、入力エッジ検出信号ＥＤをインバータ３２により反転したものである。
【００３３】
ＲＳＦＦ４５ａは、ゲーティング回路４４ａの出力がハイレベルとなったことに応じて出力をハイレベルとし、クロック信号ＣＬＫがハイレベル又はリセット信号ＲＳＴがロウレベルになったことに応じて出力をロウレベルにリセットする。ＲＳＦＦ４５ａは、セット端子Ｓにゲーティング回路４４ａの出力が入力され、リセット端子ＲにＯＲ回路４１ａの出力が入力される。また、ＲＳＦＦ４５ａの出力信号は、Ｌレベル停止検出信号ＬＳＤである。
【００３４】
第２のカウンタ４０ｂは、ＯＲ回路４１ｂ、第３のゲーティング回路（例えば、ゲーティング回路４２ｂ）、第３のセットリセットフリップフロップ（例えば、ＲＳＦＦ４３ｂ）、第４のゲーティング回路（例えば、ゲーティング回路４４ｂ）、第４のセットリセットフリップフロップ（例えば、ＲＳＦＦ４５ｂ）、ウェイトカウンタ４６を有する。
【００３５】
ＯＲ回路４１ｂは、一方の入力に反転クロック信号ＣＬＫが入力され、他方の入力に反転リセット信号が入力される。反転クロック信号は、インバータ３１によりクロック信号ＣＬＫを反転した信号である。ＯＲ回路４１ｂは、反転クロック信号と反転リセット信号のいずれか一方がハイレベルとなったことに応じて出力をハイレベルとする。ＯＲ回路４１ｂは、反転クロック信号と反転リセット信号のいずれか一方がハイレベルとなったことに応じて第２のカウンタ４０ｂのカウント値をリセットする。
【００３６】
ゲーティング回路４２ｂは、クロック信号ＣＬＫがハイレベル（つまり、反転クロック信号がロウレベル）かつリセット信号がハイレベル（つまり、反転リセット信号がロウレベル）の期間にエッジ検出回路３０が出力する入力エッジ検出信号ＥＤを通過させる。つまり、ゲーティング回路４２ｂは、反転クロック信号又は反転リセット信号がハイレベルの期間に入力エッジ検出信号ＥＤをマスクする。ゲーティング回路４２ｂは、一方の入力が反転入力となる論理積回路（ＡＮＤ回路）である。ゲーティング回路４２ｂは、一方の入力（反転入力側）にＯＲ回路４１ｂの出力が入力され、他方の入力に入力エッジ検出信号ＥＤが入力される。
【００３７】
ＲＳＦＦ４３ｂは、ロウレベルのクロック信号ＣＬＫ（つまり、ハイレベルの反転クロック信号）又はロウレベルのリセット信号ＲＳＴ（つまり、ハイレベルの反転リセット信号）により出力をロウレベルにリセットし、ゲーティング回路４２ｂの出力がハイレベルとなったことに応じて出力をハイレベルとする。ＲＳＦＦ４３ｂは、セット端子Ｓにゲーティング回路４２ｂの出力が入力され、リセット端子ＲにＯＲ回路４１ｂの出力が入力される。以下では、ＲＳＦＦ４３ｂの出力をエッジ保持信号ＥＨＬＣと称す。
【００３８】
ゲーティング回路４４ｂは、入力エッジ検出信号ＥＤを反転した反転入力エッジ検出信号ＥＤｂがハイレベルの期間にＲＳＦＦ４３ｂの出力を後段回路に出力する。ゲーティング回路４４ｂは、一方の入力にＲＳＦＦ４３ｂの出力が入力され、他方の入力に反転入力エッジ検出信号ＥＤｂが入力される。この反転入力エッジ検出信号ＥＤｂは、入力エッジ検出信号ＥＤをインバータ３２により反転したものである。
【００３９】
ウェイトカウンタ４６は、ゲーティング回路４４ｂの出力がハイレベルとなったことに応じてカウント動作を開始し、ゲーティング回路４４ｂの出力のエッジに応じてカウント値を増加させ、クロック信号がロウレベル（つまり、反転クロック信号がハイレベル）又はリセット信号ＲＳＴがロウレベル（つまり、反転リセット信号がハイレベル）となったことに応じてカウント値をリセットする。
【００４０】
このウェイトカウンタ４６は、２つの第１のトグルフリップフロップと、１つの第２のトグルフリップフロップを有し、第１のトグルフリップフロップと第２のトグルフリップフロップとが交互に直列に接続され、かつ、最終段の出力が初段の入力にループ接続される。第１のトグルフリップフロップは、ロウレベルのクロック信号ＣＬＫ（つまり、ハイレベルの反転クロック信号）又はロウレベルのリセット信号ＲＳＴ（つまり、ハイレベルの反転リセット信号）でリセットされ、ハイレベルの反転入力エッジ検出信号ＥＤｂに応じて出力を入力される信号の論理レベルとする。図３では、ＲＳＦＦ４７、４９を含むトグルフリップフロップが第１のトグルフリップフロップに相当する。第２のトグルフリップフロップは、ロウレベルのクロック信号ＣＬＫ（つまり、ハイレベルの反転クロック信号）又はロウレベルのリセット信号ＲＳＴ（つまり、ハイレベルの反転リセット信号）でリセットされ、ロウレベルの反転入力エッジ検出信号ＥＤｂに応じて出力を入力される信号の論理レベルとする。図３では、ＲＳＦＦ４８を含むトグルフリップフロップが第２のトグルフリップフロップに相当する。
【００４１】
ここで、ウェイトカウンタ４６を構成するトグルフリップフロップについて説明する。図３に示すように、ウェイトカウンタ４６では、２つのＡＮＤ回路、１つのＯＲ回路、及び、１つのＲＳＦＦにより、１つのトグルフリップフロップを構成する。以下では、場合に応じて、このトグルフリップフロップをカウント単位回路と称す。ウェイトカウンタ４６では、初段カウント単位回路と、３段目カウント単位回路のＡＮＤ回路の一方の入力にゲーティング回路４４ｂの出力を入力する。つまり、初段カウント単位回路と、３段目カウント単位回路は、ハイレベルのゲーティング回路４４ｂの出力によりカウント値を増加させる。２段目カウント単位回路のＡＮＤ回路の一方の入力にゲーティング回路４４ｂの出力の反転信号を入力する。つまり、２段目カウント単位回路は、ロウレベルのゲーティング回路４４ｂの出力によりカウント値を増加させる。そして、ウェイトカウンタ４６では、初段カウント単位回路、２段目カウント単位回路、３段目カウント単位回路の順でカウント単位回路を直列接続し、かつ、３段目カウント単位回路の出力を初段カウント単位回路の入力にループ接続することでカウンタ回路を構成する。また、初段カウント回路の出力信号にはＣＮＴ１の符号を付し、２段目カウント回路の出力信号にはＣＮＴ２の符号を付し、３段目カウント回路の出力信号にはＣＮＴ３の符号を付した。
【００４２】
ＲＳＦＦ４５ｂは、ウェイトカウンタ４６の３段目カウント単位回路の出力がハイレベルとなったことに応じて出力をハイレベルとし、クロック信号ＣＬＫがロウレベル（つまり、反転クロック信号がハイレベル）又はリセット信号ＲＳＴがロウレベル（つまり、反転リセット信号がハイレベル）になったことに応じて出力をロウレベルにリセットする。ＲＳＦＦ４５ｂは、セット端子Ｓにウェイトカウンタ４６の出力が入力され、リセット端子ＲにＯＲ回路４１ｂの出力が入力される。また、ＲＳＦＦ４５ｂの出力信号は、Ｈレベル停止検出信号ＨＳＤである。
【００４３】
続いて、実施の形態１にかかるクロック信号停止検出回路２０の動作について説明する。そこで、図４〜図９に実施の形態１にかかるクロック信号停止検出回路２０の動作を示すタイミングチャートを示す。なお、図４〜図６は、クロック信号ＣＬＫの立ち上がりエッジが入力されるタイミングよりも前に入力データＩＮのエッジ変化が変化し、クロック信号ＣＬＫの立ち上がりエッジが入力されるタイミングと、入力データＩＮのエッジ変化のタイミングとの間にフリップフロップ２１のセットアップ時間を確保できる程度の時間が確保されている場合を示す例である。また、図７〜図９は、クロック信号ＣＬＫの立ち上がりエッジが入力されるタイミングよりも後に入力データＩＮのエッジ変化が変化し、クロック信号ＣＬＫの立ち上がりエッジが入力されるタイミングと、入力データＩＮのエッジ変化のタイミングとの間にフリップフロップ２１のホールド時間を確保できる程度の時間が確保されている場合を示す例である。
【００４４】
図４に示すタイミングチャートは、クロック信号が停止していない状態での実施の形態１にかかるクロック信号停止検出回路の動作のタイミングチャートである。図４に示すように、実施の形態１にかかるクロック信号停止検出回路２０では、エッジ検出回路３０が入力データＩＮのエッジ変化とフリップフロップ２１が出力データＯＵＴのエッジ変化との期間にハイレベルとなる入力エッジ検出信号ＥＤを出力する。そして、この入力エッジ検出信号ＥＤがハイレベルとなっている期間に、エッジ保持信号ＥＨＨＣとエッジ保持信号ＥＨＬＣとが立ち上がる。エッジ保持信号ＥＨＨＣは、ハイレベルとなった後、クロック信号ＣＬＫがハイレベルとなることに応じてロウレベルにリセットされる。エッジ保持信号ＥＨＬＣは、ハイレベルとなった後、クロック信号ＣＬＫがロウレベルとなることに応じてロウレベルにリセットされる。
【００４５】
また、第２のカウンタ４０ｂでは、エッジ保持信号ＥＨＬＣがハイレベルになり、かつ、反転入力エッジ検出信号ＥＤｂがハイレベルとなったことに応じてウェイトカウンタ４６の初段カウンタ単位回路のカウント値がカウントアップされる。しかし、クロック信号ＣＬＫが正常に供給されている場合、ウェイトカウンタ４６をカウントアップさせる反転入力エッジ検出信号ＥＤｂの次の立ち上がりエッジがウェイトカウンタ４６に入力される前にクロック信号ＣＬＫがロウレベルとなるため、ウェイトカウンタ４６のカウント値がこのロウレベルのクロック信号ＣＬＫによりロウレベルにリセットされる。これにより、クロック信号ＣＬＫが正常にフリップフロップ２１に供給されている場合、Ｈレベル停止検出信号ＨＳＤはロウレベルを維持する。
【００４６】
また、Ｌレベル停止検出信号ＬＳＤは、エッジ保持信号ＥＨＨＣがハイレベル、かつ、反転入力エッジ検出信号ＥＤｂがハイレベルとなったときにハイレベルとなるが、図４に示す例では、反転入力エッジ検出信号ＥＤｂがハイレベルとなる前にエッジ保持信号ＥＨＨＣがクロック信号ＣＬＫによりリセットされる。そのため、クロック信号ＣＬＫが正常にフリップフロップ２１に供給されている場合、Ｌレベル停止検出信号ＬＳＤはロウレベルを維持する。このように、クロック信号ＣＬＫがフリップフロップ２１に正常に供給されている場合、Ｌレベル停止検出信号ＬＳＤ及びＨレベル停止検出信号ＨＳＤがともにロウレベルを維持するため、クロック信号停止検出回路２０はクロック停止検出信号ＣＬｅによりエラーを通知する状態（例えば、クロック停止検出信号ＣＬｅがハイレベルとなる状態）となることはない。
【００４７】
図５に、クロック信号がハイレベルで固定されてしまう異常状態が発生した場合における実施の形態１にかかるクロック信号停止検出回路の動作を説明するタイミングチャートを示す。図５に示すように、クロック信号ＣＬＫがハイレベルの状態で停止してしまった場合、エッジ保持信号ＥＨＬＣがクロック信号ＣＬＫによりリセットされず、ハイレベルを維持する。また、入力エッジ検出信号ＥＤ及びＥＤｂは入力信号のレベル変化に応じて論理レベルが遷移する。そのため、ウェイトカウンタ４６のカウント値が入力データＩＮのエッジ変化に応じてカウントアップされる。そして、ＲＳＦＦ４９の出力がハイレベルとなったことに応じてＲＳＦＦ４５ｂが出力するＨレベル停止検出信号ＨＳＤがハイレベルとなる。また、Ｈレベル停止検出信号ＨＳＤがハイレベルとなったことに応じてクロック停止検出信号ＣＬｅがハイレベルとなる。また、図５に示すように、クロック停止検出信号ＣＬｅによりクロック信号ＣＬＫの異常が通知されるタイミングは、クロック信号ＣＬＫのエラーが発生した後に入力データＩＮの二度目のエッジ変化タイミングと同じになる。
【００４８】
なお、図５に示す例の場合、エッジ保持信号ＥＨＨＣは、ロウレベルを維持する。これは、ゲーティング回路４２ａの反転入力側に入力されるクロック信号ＣＬＫがハイレベルで固定され入力エッジ検出信号ＥＤがゲーティング回路４２ａでマスクされるためである。
【００４９】
図６に、クロック信号がロウレベルで固定されてしまう異常状態が発生した場合における実施の形態１にかかるクロック信号停止検出回路の動作を説明するタイミングチャートを示す。図６に示すように、クロック信号ＣＬＫがロウレベルの状態で停止してしまった場合、エッジ保持信号ＥＨＨＣがクロック信号ＣＬＫによりリセットされず、ハイレベルを維持する。また、入力エッジ検出信号ＥＤ及びＥＤｂは入力信号のレベル変化に応じて論理レベルが遷移する。そのため、入力データＩＮがクロック停止後に初めて変化するタイミングで、ＲＳＦＦ４５ａが出力するＬレベル停止検出信号ＬＳＤの論理レベルがエッジ保持信号ＥＨＨＣの論理レベルに合わせてハイレベルになる。また、Ｌレベル停止検出信号ＬＳＤがハイレベルとなったことに応じてクロック停止検出信号ＣＬｅがハイレベルとなる。また、図６に示すように、クロック停止検出信号ＣＬｅによりクロック信号ＣＬＫの異常が通知されるタイミングは、クロック信号ＣＬＫのエラーが発生した後に入力データＩＮの最初のエッジ変化タイミングと同じになる。
【００５０】
なお、図６に示す例の場合、エッジ保持信号ＥＨＬＣは、ロウレベルを維持する。これは、ゲーティング回路４２ｂの反転入力側に入力されるクロック信号ＣＬＫがロウレベル（つまり、反転クロック信号がハイレベル）で固定され入力エッジ検出信号ＥＤがゲーティング回路４２ｂでマスクされるためである。
【００５１】
図７に示すタイミングチャートは、クロック信号が停止していない状態での実施の形態１にかかるクロック信号停止検出回路の動作のタイミングチャートである。図７に示す動作では、ウェイトカウンタ４６の初段カウント単位回路にカウント値がセットされるまでの動作は図４に示した例と同じである。そこで、ここでは図７の例において、図４の例と異なる部分について説明する。
【００５２】
図７に示す例では、クロック信号ＣＬＫの立ち上がりエッジが入力された後で入力データＩＮのエッジ変化が生じる。そのため、入力エッジ検出信号ＥＤｂがハイレベルとなるタイミングがクロック信号ＣＬＫのエッジタイミングの後であって、かつ、その期間の長さが図４に示す例よりも短い。これにより、ウェイトカウンタ４６の初段にカウント値がセットされた後にウェイトカウンタ４６がリセットされる前に反転入力エッジ検出信号ＥＤｂがロウレベルとなる。そのため、図７に示す例では、ウェイトカウンタ４６の２段目カウント単位回路までカウント値のカウントアップが進む。しかしながら、ウェイトカウンタ４６は、３段のカウンタ単位回路を有するため、Ｈレベル停止検出信号ＨＳＤ及びクロック停止検出信号ＣＬｅはロウレベルを維持する。なお、図７に示す例では、ウェイトカウンタ４６のカウント動作開始後に反転入力エッジ検出信号ＥＤｂのエッジが入力される前にクロック信号ＣＬＫがロウレベルとなる。そのため、ウェイトカウンタ４６は、３段目のカウンタ単位回路までカウントアップを進めることなくリセットされる。
【００５３】
図８に、クロック信号がハイレベルで固定されてしまう異常状態が発生した場合における実施の形態１にかかるクロック信号停止検出回路の動作を説明するタイミングチャートを示す。図８に示す動作では、ウェイトカウンタ４６の初段カウント単位回路にカウント値がセットされるまでの動作は図５に示した例と同じである。そこで、ここでは図８の例において、図５の例と異なる部分について説明する。
【００５４】
図８に示す例では、クロック信号ＣＬＫがハイレベルで固定された時点でウェイトカウンタ４６のカウントが２段目のカウンタ単位回路まで進んでいる。そのため、クロック信号ＣＬＫの異常が発生した後の入力データＩＮの立ち下がりに応じた反転入力エッジ検出信号ＥＤｂの立ち上がりエッジでウェイトカウンタ４６のカウントが３段目のカウンタ単位回路まで進み、Ｈレベル停止検出信号ＨＳＤがハイレベルとなる。そして、Ｈレベル停止検出信号ＨＳＤがハイレベルになったことに応じてクロック停止検出信号ＣＬｅがハイレベルになる。
【００５５】
図９に、クロック信号がロウレベルで固定されてしまう異常状態が発生した場合における実施の形態１にかかるクロック信号停止検出回路の動作を説明するタイミングチャートを示す。以下では、図６に示した動作と図９に示した動作との間で異なる動作のみ説明する。
【００５６】
図９に示す例では、クロック信号ＣＬＫがロウレベルで固定された時点でウェイトカウンタ４６及びＲＳＦＦ４３ｂがリセット状態となっている。そのため、ウェイトカウンタ４６のカウントはクロックに異常が発生した後は進まない。一方、クロック信号ＣＬＫがロウレベルで固定された時点でエッジ保持信号ＥＨＨＣはハイレベルとなっているため、その後はリセットされない。つまり、エッジ保持信号ＥＨＨＣは、クロック信号ＣＬＫの異常発生後はハイレベルを維持する。そして、クロック信号ＣＬＫの異常発生後の最初の入力データＩＮのエッジ変化に応じて反転入力エッジ検出信号ＥＤｂがハイレベルとなる。この反転入力エッジ検出信号ＥＤｂのハイレベルへの切り替わりに応じてＬレベル停止検出信号ＬＳＤはハイレベルとなる。そして、Ｌレベル停止検出信号ＬＳＤがハイレベルになったことに応じてクロック停止検出信号ＣＬｅがハイレベルになる。
【００５７】
上記説明より、実施の形態１にかかる半導体装置１では、クロック信号停止検出回路２０を有することで、１系統のクロック信号とフリップフロップ２１への入力データＩＮとを用いてクロック信号ＣＬＫが停止したことを検出することができる。これにより、実施の形態１にかかる半導体装置は、クロック信号停止検出回路２０用いることで、クロック信号を分配した先でのクロック信号の停止を検出することができる。
【００５８】
また、実施の形態１にかかる半導体装置１では、クロック信号停止検出回路２０がクロック信号ＣＬＫの異常を検出する際にフリップフロップ２１に入力される入力データＩＮ及びクロック信号ＣＬＫをモニタするのみである。そのため、実施の形態１にかかる半導体装置１は、クロック信号停止検出回路２０が機能回路中でデータ処理に用いられるフリップフロップ２１の動作に影響を与えることなくクロック信号ＣＬＫの停止を検出することができる。
【００５９】
また、実施の形態１にかかる半導体装置１では、クロック信号停止検出回路２０により、実際にデータ処理に用いられているフリップフロップ２１に与えられるクロック信号ＣＬＫを直接的に観測することができる。これにより、実施の形態１にかかる半導体装置１は、半導体装置の信頼性を高めることができる。
【００６０】
また、実施の形態１にかかる半導体装置１では、クロック信号停止検出回路２０内の第１のカウンタ４０ａの最小カウント数を２、第２のカウンタ４０ｂの最小カウント数を３としても誤動作を防ぐことができる。これにより、実施の形態１にかかる半導体装置１では、クロック信号ＣＬＫの異常発生を迅速に検出することができる。
【００６１】
また、実施の形態１にかかる半導体装置１では、クロック信号停止検出回路２０が１つのクロック信号ＣＬＫでクロック信号ＣＬＫの異常を検出する。これにより、実施の形態１にかかる半導体装置１では、クロック信号停止検出回路２０は複数の場所に配置して、半導体装置１の信頼性を高めることができる。また、実施の形態１にかかる半導体装置１では、クロック信号停止検出回路２０をクロック分配先の複数の場所に配置することで、クロックエラーの発生時に取り得る対応策の柔軟性を高めることができる。
【００６２】
また、実施の形態１にかかる半導体装置１では、第１のカウンタ４０ａ及び第２のカウンタ４０ｂがエラー検出後にＬレベル停止検出信号ＬＳＤ及びＨレベル停止検出信号ＨＳＤの論理レベルを維持する。これにより、実施の形態１にかかる半導体装置１では、エラー通知を受ける演算装置においてエラー通知要因が解消するまでエラー通知を維持するレベル割り込み処理を実施することができる。このレベル割り込みをすることでも、半導体装置１は、エラー発生後の対応処理の柔軟性を高めることができる。なお、図３に示した構成の他に、ＲＳＦＦ４５ａ、４５ｂのリセット端子に反転リセット信号を直接入力することで、反転リセット信号をハイレベルにするまでＬレベル停止検出信号ＬＳＤ及びＨレベル停止検出信号ＨＳＤの論理レベルを維持することもできる。
【００６３】
また、実施の形態１にかかる半導体装置１では、第２のカウンタ４０ｂがオーバーフローするカウント値を第１のカウンタ４０ａよりも３以上大きくした。これにより、実施の形態１にかかる半導体装置１では、クロック信号のエッジタイミングと入力データＩＮの論理レベルの遷移タイミングとの時間関係によらず誤動作を防止することができる。なお、クロック信号のエッジタイミングと入力データＩＮの論理レベルの遷移タイミングとの時間関係が図４に示したタイミングチャートのような関係であることが保証できるのであれば、第２のカウンタ４０ｂがオーバーフローするカウント値と第１のカウンタ４０ａがオーバーフローするカウント値とを同一値とすることもできる。
【００６４】
実施の形態２
実施の形態２では、クロック信号停止検出回路２０を用いた半導体装置の別の例について説明する。そこで、実施の形態２にかかる半導体装置３のブロック図を図１０に示す。なお、実施の形態２の説明において、実施の形態１と同じ構成要素については、実施の形態１と同じ符号を付して説明を省略する。
【００６５】
図１０に示すように、実施の形態２にかかる半導体装置３は、ＰＷＭ信号を出力するＰＷＭ生成回路６１の出力段フリップフロップとして、クロック信号停止検出セル２を用いるものである。ＰＷＭ信号生成回路６１は、ＣＰＵ等の演算装置からＰＷＭ信号の周波数とＰＷＭ信号のデューティ比を指示するＰＷＭ制御信号に基づきＰＷＭ信号を出力する。ＰＷＭ信号生成回路６１は、例えば、演算装置と共に１チップに納められていても良い。ＰＷＭ信号生成回路６１では、クロック信号停止検出セル２のフリップフロップ２１を出力段フリップフロップとして用いる。また、フリップフロップ２１に付随させる形態でクロック信号停止検出回路２０を設ける。出力バッファ回路６２は、ＰＷＭ信号生成回路６１の出力を後段回路に伝達させるための増幅回路である。
【００６６】
実施の形態３にかかる半導体装置３では、クロック信号停止検出回路２０が出力するクロック停止検出信号ＣＬｅをＣＰＵ等の演算装置と、ＰＷＭ信号生成回路６１に通知する。これにより、クロックエラーの異常が通知された演算装置では、システムへの影響を考慮した対応を取ることができる。また、ＰＷＭ信号生成回路６１では、クロックエラーの通知に合わせて、ＣＰＵ等の演算装置の処理を介さずに、出力インピーダンスをハイインピーダンスにする、或いは、所定の値に制御することが可能になる。
【００６７】
上記説明より、実施の形態２にかかる半導体装置３では、供給された１系統のクロックに基づき動作する出力段フリップフロップに供給されるクロック信号の異常を検出することができる。そして、異常を検出した場合に、実施の形態２にかかる半導体装置３では、ＰＷＭ信号生成回路６１の出力状態の切り換え、外部の演算装置におけるエラー対応処理を行うことができる。
【００６８】
実施の形態３
実施の形態３では、ＦＩＦＯメモリ内のレジスタとしてクロック信号停止検出セル２を用いた例について説明する。図１１に実施の形態３にかかる半導体装置４のブロック図を示す。なお、実施の形態３の説明において、実施の形態１と同じ構成要素については、実施の形態１と同じ符号を付して説明を省略する。
【００６９】
図１１に示すように、実施の形態３にかかる半導体装置４は、ＦＩＦＯ制御回路７０と、ＦＩＦＯステージ７１１〜７１ｎを有する。ＦＩＦＯステージは、各ステージが１段のＦＩＦＯメモリとなっている。図１１に示す例は、ｎ段のＦＩＦＯメモリの例である。そして、ＦＩＦＯステージ７１１〜７１ｎは、それぞれ、ステージ内のレジスタとしてクロック信号停止検出セル２を用いている。図１１では、クロック信号停止検出セル２内のクロック信号停止検出回路２０を図示した。
【００７０】
実施の形態３にかかる半導体装置４では、ＦＩＦＯ制御回路７０がいずれのステージを用いるかを制御すると共にいずれのＦＩＦＯステージまでデータが格納されているかを管理する。ＦＩＦＯ制御回路７０及びＦＩＦＯステージ７１１〜７１ｎは、いずれも図示しないクロック生成回路から供給されるクロック信号ＣＬＫに基づき動作する。
【００７１】
また、実施の形態３にかかる半導体装置４では、各ステージ内のクロック信号停止検出回路２０がそれぞれクロック停止検出信号ＣＬｅを出力する。そして、ＦＩＦＯ制御回路７０は、クロック停止検出信号ＣＬｅによりエラーが通知されたＦＩＦＯステージを無効化する等の不具合回避処理を行う。
【００７２】
実施の形態３にかかる半導体装置４では、ＦＩＦＯステージ毎にエラーの有無を判断出来るため、エラーが発生したＦＩＦＯステージを無効化して動作を継続する等のエラー回復処理を柔軟に行うことができる。また、実施の形態３にかかる半導体装置４では、一部回路の故障により全体が使用できなくなる事態を避けることができるため、故障耐性を高めることができる。
【００７３】
実施の形態４
実施の形態４では、実施の形態２で説明したＰＷＭ信号生成回路を複数個用いて、モータドライバ回路８０で駆動信号の生成に用いられるＰＷＭ信号を生成する例について説明する。そこで、図１２に実施の形態４にかかる半導体装置５のブロック図を示す。なお、実施の形態４の説明において、実施の形態１、２と同じ構成要素については、実施の形態１、２と同じ符号を付して説明を省略する。
【００７４】
図１２に示すように、実施の形態４にかかる半導体装置５は、ＰＷＭ信号生成回路と出力バッファ回路６２とを２組み備える。図１２では、ＰＷＭ信号生成回路及び出力バッファ回路を区別するために、同一の組になるブロックの符号の末尾に同じアルファベットを付した。実施の形態４にかかる半導体装置５では、ＰＷＭ信号生成回路６１ａ、６１ｂが異なる位相のＰＷＭ信号を出力することでモータドライバ回路８０を駆動する。そして、モータドライバ回路８０が入力されたＰＷＭ信号に基づきモータ８１を回転させる駆動信号を出力する。
【００７５】
上述した実施の形態４にかかる半導体装置５では、ＰＷＭ信号生成回路６１ａ、６１ｂから出力するＰＷＭ信号が交互にハイレベルとなるように制御することでモータ８１を回転させる。一方、実施の形態４にかかる半導体装置５では、ＰＷＭ信号生成回路６１ａ、６１ｂから出力するＰＷＭ信号を共にハイレベルとすることでモータ８１にブレーキをかける。実施の形態４にかかる半導体装置５では、ＰＷＭ信号生成回路６１ａ、６１ｂから出力するＰＷＭ信号を共にロウレベルとなるように制御することでモータ８１を停止させる。
【００７６】
ここで、ＰＷＭ信号生成回路６１ａ、６１ｂのクロック信号停止検出回路２０からエラーが通知された場合、実施の形態４にかかる半導体装置５では、クロック停止検出信号ＣＬｅにより出力バッファ６２ａ、６２ｂの出力を強制的に制御してモータ８１を停止させることを即座に行うことができる。これにより、実施の形態４にかかる半導体装置５では、半導体装置５内のクロック異常に起因する意図しない回転を防ぐことができる。また、実施の形態４にかかる半導体装置５では、クロック停止検出信号ＣＬｅがＣＰＵ等にも通知されるため、不具合が片方のＰＷＭ信号生成回路で起きた場合であっても、正常なＰＷＭ信号生成回路に対して不具合発生時の動作をさせることができる。
【００７７】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００７８】
１、３〜５  半導体装置
２  クロック信号停止検出セル
１０  第１のクロック生成回路
１１  メインクロック配線
１２  第２のクロック生成回路
１３  サブクロック配線
１４  クロック信号監視回路
１５  クロック分配網
１５１  分周回路
１５２  逓倍回路
１５３〜１５５  クロック選択回路
１６１〜１６３  機能回路
２０  クロック信号停止検出回路
２１  フリップフロップ
３０  エッジ検出回路
３１  インバータ回路
４０ａ  第１のカウンタ
４０ｂ  第２のカウンタ
４１ａ、４１ｂ  ＯＲ回路
４２ａ、４２ｂ、４４ａ、４４ｂ  ゲーティング回路
４３ａ、４３ｂ、４５ａ、４５ｂ、４７〜４９  ＲＳＦＦ
４６  ウェイトカウンタ
５０  クロック停止判定回路
６１  ＰＷＭ信号生成回路
６２  出力バッファ回路
７０  ＦＩＦＯ制御回路
７１１〜７１ｎ  ＦＩＦＯステージ
８０  モータドライバ回路
８１  モータ
ＳＣＬＫｅ  メインクロックエラー信号
ＣＬｅ  クロック停止検出信号
ＣＬＫ  クロック信号
ＩＮ  入力データ
ＯＵＴ  出力データ
ＲＳＴ  リセット信号
ＥＤ  入力エッジ検出信号
ＥＤｂ  反転入力エッジ検出信号
ＥＨＨＣ  エッジ保持信号
ＥＨＬＣ  エッジ保持信号
ＨＳＤ  Ｈレベル停止検出信号
ＬＳＤ  Ｌレベル停止検出信号
【図１】
2017033325.tif 000003
【図２】
2017033325.tif 000004
【図３】
2017033325.tif 000005
【図４】
2017033325.tif 000006
【図５】
2017033325.tif 000007
【図６】
2017033325.tif 000008
【図７】
2017033325.tif 000009
【図８】
2017033325.tif 000010
【図９】
2017033325.tif 000011
【図１０】
2017033325.tif 000012
【図１１】
2017033325.tif 000013
【図１２】
2017033325.tif 000014