(57)【要約】【課題】組み合わせ回路での演算に使ってよい時間を見かけ上増やすことが可能で、セットアップ時間エラーとホールド時間エラーの両方を検査できる半導体装置を提供する。【解決手段】第１のラッチ１１２と、データ処理回路の出力データの入力に対して第１のラッチと並列に接続された第２のラッチ１１２と、基準クロックｃｌｋと基準クロックより位相を進めた第２のクロックｃｌｋ−δを供給する第１のクロックコントローラ１１５と、第１のラッチのラッチデータと第２のラッチのラッチデータとを比較し、比較結果に応じたエラー信号を生成する第１のコンパレータ１１４と、コントローラ１７０と、を有し、第１のラッチ１１２は、第２のクロックに同期して入力データをラッチし、ラッチデータをデータパスおよびコンパレータに出力し、第２のラッチ１１３は、基準クロックに同期して入力データをラッチし、ラッチデータをコンパレータ１１４に出力する。【選択図】図４
2010071750.tif 000002
【特許請求の範囲】
【請求項１】
送信すべきデータを出力するデータ処理回路と、
上記データ処理回路の出力データをラッチする第１のラッチと、
上記データ処理回路の出力データの入力に対して上記第１のラッチと並列に接続された第２のラッチと、
基準クロックと当該基準クロックより位相を進めた第２のクロックを供給するクロックコントローラと、
上記第１のラッチのラッチデータと上記第２のラッチのラッチデータとを比較し、比較結果に応じたエラー信号を生成するコンパレータと、
上記エラー信号に応じて、上記データ処理回路または上記第１のラッチおよび上記第２のラッチの少なくともいずれかの動作状態を制御するコントローラと、を有し、
上記第１のラッチは、
上記第２のクロックに同期して入力データをラッチし、ラッチデータをデータパスおよび上記コンパレータに出力し、
上記第２のラッチは、
上記基準クロックに同期して入力データをラッチし、ラッチデータを上記コンパレータに出力する
半導体装置。
【請求項２】
少なくとも上記第１のラッチおよび上記第２のラッチに、制御信号に応じて値を変更可能な動作電圧を供給する電源を有し、
上記コントローラは、
上記制御信号により上記電源から供給する通常の動作電圧より低い動作電圧に設定したときに、上記エラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記動作電圧を、少なくとも上記設定した低動作電圧より高い電圧になるように、上記制御信号を上記電源に出力する
請求項１記載の半導体装置。
【請求項３】
上記クロックコントローラは、
上記基準クロックを上記データ処理回路に供給し、
上記データ処理回路は、
上記基準クロックに同期してデータ処理および出力を行い、
上記コントローラは、
上記エラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記クロックコントローラに一旦上記基準クロックの上記データ処理回路への供給を停止し、上記動作電圧を、少なくとも上記設定した低動作電圧より高い電圧になるように、上記制御信号を上記クロックコントローラおよび上記電源に出力する
請求項２記載の半導体装置。
【請求項４】
上記コントローラは、
上記エラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記動作電圧を、上記通常の動作電圧になるように、上記制御信号を上記電源に出力する
請求項２または３記載の半導体装置。
【請求項５】
送信データをデータパスに送出する送信側半導体回路と、
上記データパスを伝搬された送信データを受信する受信側半導体回路と、
コントローラと、を有し、
上記送信側半導体回路は、
送信すべきデータを出力する第１のデータ処理回路と、
上記第１のデータ処理回路の出力データをラッチする第１のラッチと、
上記第１のデータ処理回路の出力データの入力に対して上記第１のラッチと並列に接続された第２のラッチと、
第１の基準クロックと当該第１の基準クロックより位相を進めた第２のクロックを供給する第１のクロックコントローラと、
上記第１のラッチのラッチデータと上記第２のラッチのラッチデータとを比較し、比較結果に応じた第１のエラー信号を生成する第１のコンパレータと、を含み、
上記第１のラッチは、
上記第２のクロックに同期して入力データをラッチし、ラッチデータをデータパスおよび上記第１のコンパレータに出力し、
上記第２のラッチは、
上記第１の基準クロックに同期して入力データをラッチし、ラッチデータを上記第１のコンパレータに出力し、
上記送信側半導体回路は、
上記データパスを伝搬された上記送信データをラッチする第３のラッチと、
上記送信データの入力に対して上記第３のラッチと並列に接続された第４のラッチと、
上記第３のラッチデータに対する処理を行う第２のデータ処理回路と、
第２の基準クロックを供給する第２のクロックコントローラと、
上記第３のラッチデータと上記第４のラッチデータとを比較し、比較結果に応じた第２のエラー信号を生成する第２のコンパレータと、を含み、
上記第３のラッチは、
上記第２の基準クロックに同期して入力データをラッチし、ラッチデータを上記第２のデータ処理回路に出力し、
上記第４のラッチは、
上記第２の基準クロックに同期して入力データをラッチし、ラッチデータを上記第２のコンパレータに出力し、
上記コントローラは、
少なくとも上記第１のエラー信号に応じて、上記第１のデータ処理回路または上記第１のラッチおよび上記第２のラッチの少なくともいずれかの動作状態を制御する
半導体装置。
【請求項６】
少なくとも上記第１のラッチおよび上記第２のラッチに、第１の制御信号に応じて値を変更可能な動作電圧を供給する第１の電源を有し、
上記コントローラは、
上記第１の制御信号により上記第１の電源から供給する通常の動作電圧より低い動作電圧に設定したときに、上記第１のエラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記動作電圧を、少なくとも上記設定した低動作電圧より高い電圧になるように、上記第１の制御信号を上記第１の電源に出力する
請求項５記載の半導体装置。
【請求項７】
上記第１のクロックコントローラは、
上記第１の基準クロックを上記第１のデータ処理回路に供給し、
上記第１のデータ処理回路は、
上記第１の基準クロックに同期してデータ処理および出力を行い、
上記コントローラは、
上記第１のエラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記第１のクロックコントローラに一旦上記第１の基準クロックの上記第１のデータ処理回路への供給を停止し、上記動作電圧を、上記通常の動作電圧になるように、上記第１の制御信号を上記第１のクロックコントローラおよび上記第１の電源に出力する
請求項６記載の半導体装置。
【請求項８】
上記第１のクロックコントローラは、
上記第１の基準クロックを上記第１のデータ処理回路に供給し、
上記第１のデータ処理回路は、
上記第１の基準クロックに同期してデータ処理および出力を行い、
上記第２のクロックコントローラは、
上記第２の基準クロックを上記第２のデータ処理回路に供給し、
上記第２のデータ処理回路は、
上記第２の基準クロックに同期してデータ処理を行い、
上記コントローラは、
上記第１のエラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、
上記第１のクロックコントローラに一旦上記第１の基準クロックの上記第１のデータ処理回路への供給を停止し、
上記第２のクロックコントローラに一旦上記第２の基準クロックの上記第２のデータ処理回路への供給を停止し、
上記動作電圧を、少なくとも上記設定した低動作電圧より高い電圧になるように、上記第１の制御信号を上記第１のクロックコントローラおよび上記第１の電源に出力し、上記第２の制御信号を上記第２のクロックコントローラに出力する
請求項６記載の半導体装置。
【請求項９】
上記コントローラは、
上記第１のエラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記動作電圧を、上記通常の動作電圧になるように、上記第１の制御信号を上記第１の電源に出力する
請求項７または８記載の半導体装置。
【請求項１０】
少なくとも上記第３のラッチおよび上記第４のラッチに、第２の制御信号に応じて値を変更可能な動作電圧を供給する第２の電源を有し、
上記コントローラは、
上記第２の制御信号により上記第２の電源から供給する通常の動作電圧より低い動作電圧に設定したときに、上記第２のエラー信号が上記第３のラッチの出力データと上記第４のラッチの出力データが相違することを示した場合には、上記動作電圧を、少なくとも上記設定した低動作電圧より高い電圧になるように、上記第２の制御信号を上記第２の電源に出力する
請求項６から９のいずれか一に記載の半導体装置。
【請求項１１】
上記コントローラは、
上記第２のエラー信号が上記第３のラッチの出力データと上記第４のラッチの出力データが相違することを示した場合には、上記動作電圧を、上記通常の動作電圧になるように、上記第２の制御信号を上記第２の電源に出力する
請求項１０記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば低消費電力化に適応した半導体装置に関するものである。
【背景技術】
【０００２】
最近、半導体装置の低消費電力化技術として、Razor−FF回路技術やCanary-FF回路技術などが提案されている（非特許文献２、３参照）。
【０００３】
電源電圧を動作時に低下させた時、動作保証するための設計マージンを設けると、半導体回路の性能を落とすことになる。
そこで、上記技術では、低消費電力動作時（電源電圧低下時）のエラーを実際のチップ上で検知することにより、動作保証するための設計マージンを考慮しなくて良い設計手法が提案されている。
【０００４】
上記回路は、同期回路で用いられるフリップフロップＦＦにより形成されるラッチ（latch）と並列により安定に動作するフリップフロップＦＦにより形成されるラッチを接続する並列ラッチ構成を有する。
【０００５】
図１は、一般的に用いられているラッチの概略図とタイミングを示す図である。
【０００６】
Ｄ型フリップフロップＤＦＦにより形成されるラッチ１は、クロックＣＬＫに同期して信号を送り出す機能を有し、入力（INPUT）Ｄ、クロック（CLOCK）ＣＬＫ、出力（OUTPUT）Ｑの３つの端子を有している。
端子Ｄへの入力INPUTは、クロックＣＬＫが基準となるセットアップ時間ＴＳＵＰよりも早くラッチ１に到達する必要がある。
また、入力INPUTはクロックＣＬＫが入力されてきてからホールド時間ＴＨＬＤの間はそのデータ値を維持している必要がある。
高い周波数で動作する場合、セットアップ時間ＴＳＵＰよりも早くデータが入力（INPUT）Ｄに到達できるかどうか、重要な懸念点となる。
【０００７】
＜並列ラッチ＞
図２（Ａ）および（Ｂ）は、非特許文献１に開示されているラッチを並列に接続した半導体装置を示す図である。
【０００８】
この半導体装置１０は、基本的に、組み合わせ回路１１、第１のラッチ１２、第２のラッチ１３、およびコンパレータ１４を有する。
【０００９】
このように、半導体装置１０，１０Ａは、データパスそのものになる第１のラッチ（Output latch）１２と、データの検査を行うための第２のラッチ（Extra latch）１３を有している。
【００１０】
図２（Ａ）の半導体装置１０は、組み合わせ回路１２の出力データに遅延時間δを加えて第２のラッチ（Extra latch）１３に入力する場合である。
図２（Ｂ）の半導体装置１０Ａは、クロックＣｌｋに遅延時間δを加えて第２のラッチ（Extra latch）に入力する場合である。
【００１１】
図３は、図２（Ｂ）の半導体装置１０Ａのタイミング例を示す図である。
【００１２】
消費電力を動的に最適化する半導体装置では、電源電圧Ｖｄｄを低下させてＡＣパワーを削減させる。
このとき、製品の周波数は一定であるため、クロックに対してデータが到達する余裕がなくなりセットアップ時間エラーが第１のラッチ（Output latch）１２で生じやすくなる。
そこで、半導体装置１０Ａにおいては、第２のラッチ（Extra latch）１３に遅延時間δを加えたクロックを供給することにより、より安定なラッチ動作を実現している。
【００１３】
電源電圧Ｖｄｄを下げて、第１のラッチ（output latch）１２と第２のラッチ（extra latch）１３の出力をコンパレータ１４で比較し、差分があれば、第１のラッチ１２で誤った信号が出力されたと判断してエラー信号を出力する。
そして、半導体装置１０Ａでは、このエラー信号が発生した場合、誤って送信した信号を差し戻し、電源電圧をもとに戻して再処理を行う。
このように、並列ラッチは片方のラッチで起きた不具合を検査するために使われる。
【非特許文献１】2002 IEEE Design & Test of Computers, iRoC Technologies
【非特許文献２】2004 IEEE Computer Society, Michigan/ARM、Razor-FF
【非特許文献３】2007 International Symposium of Quality Design, A Simple Flip-Flop Circuit for Typical Case Design for DFM
【特許文献１】特開平９−１３９７３１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上述したように、組み合わせ回路からラッチ（ＦＦ）に到達した信号が、同期回路として動作するためにラッチ（ＦＦ）のタイミングマージンに合致するかどうかを検査するRazor-FFやCanary-FFなどが提案されている。
【００１５】
しかしながら、上記した回路は、信号のタイミング妥当性を検査する機能は持つが、組み合わせ回路で処理される時間を改善しラッチ（ＦＦ）におけるタイミングそのものを改善することはできない。
【００１６】
本発明は、組み合わせ回路での演算に使ってよい時間を見かけ上増やすことが可能な半導体装置を提供することにある。
【課題を解決するための手段】
【００１７】
本発明の第１の観点の半導体装置は、送信すべきデータを出力するデータ処理回路と、上記データ処理回路の出力データをラッチする第１のラッチと、上記データ処理回路の出力データの入力に対して上記第１のラッチと並列に接続された第２のラッチと、基準クロックと当該基準クロックより位相を進めた第２のクロックを供給するクロックコントローラと、上記第１のラッチのラッチデータと上記第２のラッチのラッチデータとを比較し、比較結果に応じたエラー信号を生成するコンパレータと、上記エラー信号に応じて、上記データ処理回路または上記第１のラッチおよび上記第２のラッチの少なくともいずれかの動作状態を制御するコントローラと、を有し、上記第１のラッチは、上記第２のクロックに同期して入力データをラッチし、ラッチデータをデータパスおよび上記コンパレータに出力し、上記第２のラッチは、上記基準クロックに同期して入力データをラッチし、ラッチデータを上記コンパレータに出力する。
【００１８】
本発明の第２の観点の半導体装置は、送信データをデータパスに送出する送信側半導体回路と、上記データパスを伝搬された送信データを受信する受信側半導体回路と、コントローラと、を有し、上記送信側半導体回路は、送信すべきデータを出力する第１のデータ処理回路と、上記第１のデータ処理回路の出力データをラッチする第１のラッチと、上記第１のデータ処理回路の出力データの入力に対して上記第１のラッチと並列に接続された第２のラッチと、第１の基準クロックと当該第１の基準クロックより位相を進めた第２のクロックを供給する第１のクロックコントローラと、上記第１のラッチのラッチデータと上記第２のラッチのラッチデータとを比較し、比較結果に応じた第１のエラー信号を生成する第１のコンパレータと、を含み、上記第１のラッチは、上記第２のクロックに同期して入力データをラッチし、ラッチデータをデータパスおよび上記第１のコンパレータに出力し、上記第２のラッチは、上記第１の基準クロックに同期して入力データをラッチし、ラッチデータを上記第１のコンパレータに出力し、上記送信側半導体回路は、上記データパスを伝搬された上記送信データをラッチする第３のラッチと、上記送信データの入力に対して上記第３のラッチと並列に接続された第４のラッチと、上記第３のラッチデータに対する処理を行う第２のデータ処理回路と、第２の基準クロックを供給する第２のクロックコントローラと、上記第３のラッチデータと上記第４のラッチデータとを比較し、比較結果に応じた第２のエラー信号を生成する第２のコンパレータと、を含み、上記第３のラッチは、上記第２の基準クロックに同期して入力データをラッチし、ラッチデータを上記第２のデータ処理回路に出力し、上記第４のラッチは、上記第２の基準クロックに同期して入力データをラッチし、ラッチデータを上記第２のコンパレータに出力し、上記コントローラは、少なくとも上記第１のエラー信号に応じて、上記第１のデータ処理回路または上記第１のラッチおよび上記第２のラッチの少なくともいずれかの動作状態を制御する。
【００１９】
好適には、少なくとも上記第１のラッチおよび上記第２のラッチに、第１の制御信号に応じて値を変更可能な動作電圧を供給する第１の電源を有し、上記コントローラは、上記第１の制御信号により上記第１の電源から供給する通常の動作電圧より低い動作電圧に設定したときに、上記第１のエラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記動作電圧を、少なくとも上記設定した低動作電圧より高い電圧になるように、上記第１の制御信号を上記第１の電源に出力する。
【００２０】
好適には、上記第１のクロックコントローラは、上記第１の基準クロックを上記第１のデータ処理回路に供給し、上記第１のデータ処理回路は、上記第１の基準クロックに同期してデータ処理および出力を行い、上記コントローラは、上記第１のエラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記第１のクロックコントローラに一旦上記第１の基準クロックの上記第１のデータ処理回路への供給を停止し、上記動作電圧を、上記通常の動作電圧になるように、上記第１の制御信号を上記第１のクロックコントローラおよび上記第１の電源に出力する。
【００２１】
好適には、上記第１のクロックコントローラは、上記第１の基準クロックを上記第１のデータ処理回路に供給し、上記第１のデータ処理回路は、上記第１の基準クロックに同期してデータ処理および出力を行い、上記第２のクロックコントローラは、上記第２の基準クロックを上記第２のデータ処理回路に供給し、上記第２のデータ処理回路は、上記第２の基準クロックに同期してデータ処理を行い、上記コントローラは、上記第１のエラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記第１のクロックコントローラに一旦上記第１の基準クロックの上記第１のデータ処理回路への供給を停止し、上記第２のクロックコントローラに一旦上記第２の基準クロックの上記第２のデータ処理回路への供給を停止し、上記動作電圧を、少なくとも上記設定した低動作電圧より高い電圧になるように、上記第１の制御信号を上記第１のクロックコントローラおよび上記第１の電源に出力し、上記第２の制御信号を上記第２のクロックコントローラに出力する。
【００２２】
好適には、上記コントローラは、上記第１のエラー信号が上記第１のラッチの出力データと上記第２のラッチの出力データが相違することを示した場合には、上記動作電圧を、上記通常の動作電圧になるように、上記第１の制御信号を上記第１の電源に出力する。
【００２３】
好適には、少なくとも上記第３のラッチおよび上記第４のラッチに、第２の制御信号に応じて値を変更可能な動作電圧を供給する第２の電源を有し、上記コントローラは、上記第２の制御信号により上記第２の電源から供給する通常の動作電圧より低い動作電圧に設定したときに、上記第２のエラー信号が上記第３のラッチの出力データと上記第４のラッチの出力データが相違することを示した場合には、上記動作電圧を、少なくとも上記設定した低動作電圧より高い電圧になるように、上記第２の制御信号を上記第２の電源に出力する。
【００２４】
本発明によれば、データ処理回路の出力データが基準クロックより位相を進めた第２のクロックに同期して第１のラッチにラッチされる。第２のラッチのラッチデータは、データパスおよびコンパレータに出力される。
また、データ処理回路の出力データが基準クロックに同期して第２のラッチにラッチされる。第２のラッチのラッチデータはコンパレータに出力される。
コンパレータでは、第１のラッチのラッチデータと第２のラッチのラッチデータとが比較され、比較結果に応じたエラー信号がコントローラに供給される。
そして、コントローラでは、エラー信号に応じて、データ処理回路あるいは第１のラッチおよび第２のラッチとの少なくともいずれかの動作状態が制御される。
【発明の効果】
【００２５】
本発明によれば、組み合わせ回路での演算に使ってよい時間を見かけ上増やすことができる。
【発明を実施するための最良の形態】
【００２６】
以下に本発明の実施形態を図面に関連付けて説明する。
【００２７】
図４は、本発明の一実施形態に係る半導体装置の構成例を示す図である。
【００２８】
本半導体装置１００は、送信側半導体回路１１０、受信側半導体回路１２０、第１の電源１３０、第２の電源１４０、第１のクロック生成部１５０、第２のクロック生成部１６０、およびコントローラ１７０を有する。
【００２９】
送信側半導体回路１１０は、第１の電源１３０から動作電圧Ｖｄｄ１の供給を受け、第１のクロック生成部１５０で生成された所定周波数のクロックｃｌｋの供給を受けて動作する。
送信側半導体回路１１０は、第１のデータ処理回路としての第１のロジック回路１１１、第１のラッチ１１２、第３のラッチ１１３、第１のコンパレータ１１４、および第１のクロックコントローラ１１５を有している。
【００３０】
第１のロジック回路１１１は、第１のクロックコントローラ１１５ら供給される第１の基準クロックｃｌｋに同期して論理演算を行い、演算結果を第１のラッチ１１２および第２のラッチ１１３に出力する。
第１のロジック回路１１１は、第１のクロックコントローラ１１５からの第１の基準クロックｃｌｋの供給が停止されると、その停止期間中、演算および出力動作を停止する。
【００３１】
第１のラッチ１１２は、Ｄ型フリップフロップ（ＦＦ１）により形成され、入力Ｄ、クロックＣＬＫ、出力Ｑの３つの端子を有している。
第１のラッチ１１２は、第１のクロックコントローラ１１５により第２のラッチ１１３に供給される、第１の基準クロックｃｌｋより位相がδだけ早めた第２のクロックｃｌｋ−δに同期して信号を送り出す機能を有する。
第１のラッチ１１２は、基本的に、端子Ｄへの第１のロジック回路１１１からの入力データＦＦ１ ｉｎを、第２のクロックｃｌｋ−δが基準となるセットアップ時間ＴＳＵＰよりも早く第１のラッチ１１２に到達する必要がある。
また、第１のラッチ１１２は、端子Ｄから取り込まれた入力データＦＦ１ ｉｎを第２のクロックｃｌｋ−δが入力されてきてからホールド時間ＴＨＬＤの間はそのデータ値を維持している必要がある。
第１のラッチ１１２は、ラッチデータを端子ＱからデータＦＦ１ ｏｕｔを第１のコンパレータ１１４およびデータパスＤＰを介して受信側半導体回路１２０に出力する。
【００３２】
第２のラッチ１１３は、Ｄ型フリップフロップ（ＦＦ１´）により形成され、入力Ｄ、クロックＣＬＫ、出力Ｑの３つの端子を有している。
第２のラッチ１１３は、第１のクロックコントローラ１１５により第２のラッチ１１３に供給される、第１の基準クロックｃｌｋに同期して信号を送り出す機能を有する。
第２のラッチ１１３は、基本的に、端子Ｄへの第１のロジック回路１１１からの入力データＦＦ１ ｉｎを、第１の基準クロックｃｌｋが基準となるセットアップ時間ＴＳＵＰよりも早く第２のラッチ１１３に到達する必要がある。
また、第２のラッチ１１３は、端子Ｄから取り込まれた入力データＦＦ１ ｉｎを第１の基準クロックｃｌｋが入力されてきてからホールド時間ＴＨＬＤの間はそのデータ値を維持している必要がある。
第２のラッチ１１３は、ラッチデータを端子ＱからデータＦＦ１´ ｏｕｔを第１のコンパレータ１１４に出力する。
【００３３】
第１のコンパレータ１１４は、第１のラッチ１１２の出力データＦＦ１ ｏｕｔと第２のラッチ１１３の出力データＦＦ１´ ｏｕｔとを比較し、両データが一致しているときは、エラー信号ｃ１ ｏｕｔをローレベルに設定し、不一致のときはハイレベルに設定する。
第１のコンパレータ１１４は、第１のエラー信号ｃ１ ｏｕｔをコントローラ１７０に出力する。
【００３４】
第１のクロックコントローラ１１５は、第１のクロック生成部１５０により供給されるクロックｃｌｋを受けて、第１の基準クロックｃｌｋとして第１のロジック回路１１１に供給する。
また、第１のクロックコントローラ１１５は、第２のラッチ１１３にクロックｃｌｋを供給し、第１のラッチ１１２に第１の基準クロックｃｌｋの位相をδだけ進めた第２のクロックｃｌｋ−δを供給する。
第１のクロックコントローラ１１５は、コントローラ１７０の第１の制御信号ＣＴＬ１２に応じて第１のロジック回路１１１に対する第１の基準クロックｃｌｋの供給を所定期間停止することが可能である。
【００３５】
図５（Ａ）および（Ｂ）は、第１のクロック生成部１４０の第１の基準クロックｃｌｋおよび位相をδだけ進めた第２のクロックｃｌｋ−δの生成回路例を示す図である。
【００３６】
図５（Ａ）は、第１の基準クロックｃｌｋは標準のしきい値電圧Ｖｔｈを有するトランジスタにより形成されるバッファＢＦ２を伝搬させ、位相δだけ早い第２のクロックｃｌｋ−δは標準より低しきい値を有するトランジスタにより形成されるバッファＢＦ１を伝搬させる例である。
バッファＢＦ１，ＢＦ２は、たとえばＣＭＯＳインバータを２つ直列に接続されて構成される。
ＭＯＳトランジスタのしきい値は、たとえばシリコンプロセスで調整可能である。
このように、クロックをしきい値の異なるバッファＢＦ１、ＢＦ２を伝搬させることにより、遅延時間差を実現することができる。
あるいは、第２のクロックｃｌｋ−δの生成に用いられるトランジスタの基板バイアスをコントロールすることによりしきい値Ｖｔｈを変化させることにより、早い位相のクロックを形成することが可能である。
【００３７】
図５（Ｂ）は、クロックｃｌｋ分配時に必要以上の遅延時間を加え位相を遅らせたクロックを標準クロックとして用いて、最小限の遅延時間を有するクロックを第２のクロックｃｌｋ-δとして用いる例である。
なお、この例では、バッファＢＦ３、ＢＦ３−１〜ＢＦ３−４を形成するＭＯＳトランジスタのしきい値は同じしきい値に設定される。
【００３８】
図６は、本実施形態に係る送信側半導体回路１１０の特徴的構成および機能を説明するための図である。
【００３９】
本実施形態に係る送信側半導体回路１１０は、第１のラッチ１１２に位相の早い第２のクロックｃｌｋ−δを与え、データをいわゆるフライングさせて送り出す。
データの入力ラインに対して第１のラッチ１１２と並列に配置された第２のラッチ１１３には通常の第１の基準クロックｃｌｋを与え安定した出力を得る。
第１のラッチ１１２と第２のラッチ１１３の出力を第１のコンパレータ１１４で比較し、第１のラッチ１１２から送り出したデータが正しいか否かを検査する。
検査の結果、間違った信号が送り出されていれば、信号の差し戻し、あるいは差し替えを行う。特に送り出した信号が、次のラッチに到達するまでに組み合わせ回路での処理を行ったデータパス（ＤＰ）を通過する為に許容される時間を見かけ上ながくする効果があるので、ブロック間、チップ間、など長い距離を、信号を伝搬さるときに有効である。
この検査および検査結果に応じた制御はコントローラ１７０によって行われる。この制御については、後で詳述する。
【００４０】
受信側半導体回路１２０は、第２の電源１４０から動作電圧Ｖｄｄ２の供給を受け、第２のクロック生成部１６０で生成された所定周波数の第２の基準クロックｃｌｋの供給を受けて動作する。
受信側半導体回路１２０は、第２のデータ処理回路としての第２のロジック回路１２１、第３のラッチ１２２、第４のラッチ１２３、第２のコンパレータ１２４、第２のクロックコントローラ１２５、および遅延部１２６を有している。
【００４１】
第２のロジック回路１２１は、第２のクロックコントローラ１２５から供給される第２の基準クロックｃｌｋに同期して第３のラッチ１２２の出力データＦＦ２ ｏｕｔに対して論理演算を行う。
第２のロジック回路１２１は、第２のクロックコントローラ１２５からの第２の基準クロックｃｌｋの供給が停止されると、その停止期間中、演算および出力動作を停止する。
【００４２】
第３のラッチ１２２は、Ｄ型フリップフロップ（ＦＦ２）により形成され、入力Ｄ、クロックＣＬＫ、出力Ｑの３つの端子を有している。
第３のラッチ１２２は、第２のクロックコントローラ１２５により供給される、第２の基準クロックｃｌｋに同期して信号を送り出す機能を有する。
第３のラッチ１２２は、基本的に、端子ＤへのデータパスＤＰを伝搬した入力データＦＦ２ ｉｎを、第２の基準クロックｃｌｋが基準となるセットアップ時間ＴＳＵＰよりも早く第３のラッチ１２２に到達する必要がある。
また、第３のラッチ１２２は、端子Ｄから取り込まれた入力データＦＦ２ ｉｎを第２の基準クロックｃｌｋが入力されてきてからホールド時間ＴＨＬＤの間はそのデータ値を維持している必要がある。
第３のラッチ１２２は、ラッチデータを端子ＱからデータＦＦ２ ｏｕｔを第２のロジック回路１２１および第２のコンパレータ１２４に出力する。
【００４３】
第４のラッチ１２３は、Ｄ型フリップフロップ（ＦＦ２´）により形成され、入力Ｄ、クロックＣＬＫ、出力Ｑの３つの端子を有している。
第４のラッチ１２３は、第２のクロックコントローラ１２５により第４のラッチ１２３に供給される、第２の基準クロックｃｌｋに同期して信号を送り出す機能を有する。
第４のラッチ１２３は、基本的に、端子ＤへのデータパスＤＰを伝搬した入力データＦＦ２ ｉｎが遅延１２６を通過したＦＦ２´＿ｉｎを、第２の基準クロックｃｌｋが基準となるセットアップ時間ＴＳＵＰよりも早く第４のラッチ１２３に到達する必要がある。
また、第４のラッチ１２３は、端子Ｄから取り込まれた入力データＦＦ２ ｉｎを第２の基準クロックｃｌｋが入力されてきてからホールド時間ＴＨＬＤの間はそのデータ値を維持している必要がある。
第４のラッチ１２３は、ラッチデータを端子ＱからデータＦＦ２´ ｏｕｔを第２のコンパレータ１２４に出力する。
【００４４】
第２のコンパレータ１２４は、第３のラッチ１２２の出力データＦＦ２ ｏｕｔと第４のラッチ１２３の出力データＦＦ２´ ｏｕｔとを比較し、両データが一致しているときは、エラー信号ｃ２ ｏｕｔをローレベルに設定し、不一致のときはハイレベルに設定する。
第２のコンパレータ１２４は、第２のエラー信号ｃ２ ｏｕｔをコントローラ１７０に出力する。
【００４５】
第２のクロックコントローラ１２５は、第１のクロック生成部１４０により供給されるクロックｃｌｋを受けて、第２のロジック回路１２１、第３のラッチ１２２、および第４のラッチ１２３に供給する。
第２のクロックコントローラ１２５は、コントローラ１７０の第２の制御信号ＣＴＬ２２に応じて第２のロジック回路１２１に対するクロックｃｌｋの供給を所定期間停止することが可能である。
【００４６】
第１の電源１３０は、送信側半導体回路１１０に動作電圧Ｖｄｄ１を供給する。
第１の電源１３０は、コントローラ１７０の第１の制御信号ＣＴＬ１１により送信側半導体回路１１０に供給する動作電圧Ｖｄｄ１を変更可能に構成されている。
第１の電源１３０は、通常、電圧Ｖｄｄ１をたとえば１．０Ｖで供給し、第１の制御信号ＣＴＬ１１の指示に従って、電圧Ｖｄｄ１を０．８Ｖ等の低電圧に設定して供給することが可能である。
また、第１の電源１３０は、コントローラ１７０の第１の制御信号ＣＴＬ１１により、電圧Ｖｄｄ１を、たとえば０．０５Ｖを１ステップとして昇降させることが可能である。
第１の電源１３０は、コントローラ１７０の第１の制御信号ＣＴＬ１１により、一旦０．８Ｖ等の低電圧に設定した電圧Ｖｄｄ１を、１ステップずつの昇降ではなく、元の１．０Ｖに直接的に戻すことも可能である。
【００４７】
第２の電源１４０は、受信側半導体回路１２０に動作電圧Ｖｄｄ２を供給する。
第２の電源１４０は、コントローラ１７０の第２の制御信号ＣＴＬ２１により受信側半導体回路１２０に供給する動作電圧Ｖｄｄ２を変更可能に構成されている。
第２の電源１４０は、通常、電圧Ｖｄｄ２をたとえば１．０Ｖで供給し、第２の制御信号ＣＴＬ２１の指示に従って、電圧Ｖｄｄ２を０．８Ｖ等の低電圧に設定して供給することが可能である。
第２の電源１４０は、コントローラ１７０の第２の制御信号ＣＴＬ２１により、一旦０．８Ｖ等の低電圧に設定した電圧Ｖｄｄ２を、１ステップずつの昇降ではなく、元の１．０Ｖに直接的に戻すことも可能である。
また、第２の電源１４０は、コントローラ１７０の第２の制御信号ＣＴＬ２１により、電圧Ｖｄｄ２を、たとえば０．０５Ｖを１ステップとして昇降させることが可能である。
【００４８】
第１のクロック生成部１５０は、所定周波数のクロックｃｌｋを送信側半導体回路１１０の第１のクロックコントローラ１１５に供給する。
【００４９】
第２のクロック生成部１６０は、所定周波数のクロックｃｌｋを受信側半導体回路１２０の第２のクロックコントローラ１２５に供給する。
【００５０】
なお、第１の電源１３０による動作電圧Ｖｄｄ１と第２の電源１４０による動作電圧Ｖｄｄ２は、通常時の値が同じ値であってもよいし、異なる値であってもよい。
同様に、第１のクロック生成部１５０によるクロックｃｌｋの周波数と第２のクロック生成部１６０によるクロックｃｌｋの周波数は、同じ周波数であってもよいし、異なる周波数であってもよい。
【００５１】
コントローラ１７０は、送信側半導体回路１１０の第１のコンパレータ１１４のエラー信号ｃ１ ｏｕｔおよび受信側半導体回路１２０のコンパレータ１１２４のエラー信号ｃ２ ｏｕｔの供給レベルに応じて動作電圧Ｖｄｄ１，Ｖｄｄ２の値の制御等を行う。
【００５２】
コントローラ１７０は、通常電圧１．０Ｖで動作させて、エラー信号ｃ１ ｏｕｔ、ｃ２ ｏｕｔがローレベルの場合、低消費電力化動作を実現するために、動作電圧Ｖｄｄ１をたとえば０．８Ｖに設定するように第１の制御信号ＣＴＬ１１を第１の電源１３０に出力する。
コントローラ１７０は、第１のエラー信号ｃ１ ｏｕｔをハイレベルで受けると、送信側半導体回路１１０の第１のロジック回路１１１へのクロックｃｌｋの供給を１クロック分停止するように、制御信号ＣＴＬ１２を第１のクロックコントローラ１１５に出力する。
コントローラ１７０は、第１のエラー信号ｃ１ ｏｕｔをハイレベルで受けると、受信側半導体回路１２０の第２のロジック回路１２１へのクロックｃｌｋの供給を１クロック分停止するように、制御信号ＣＴＬ２２を第２のクロックコントローラ１２５に出力する。
コントローラ１７０は、第１のエラー信号ｃ１ ｏｕｔをハイレベルで受けると、第１のラッチ１１２と第２のラッチ１１３のデータが異なりエラーが発生したものとして、動作電圧Ｖｄｄ１を１．０Ｖに戻すように制御信号ＣＴＬ１１を第１の電源１３０に出力する。
コントローラ１７０は、第２のエラー信号ｃ２ ｏｕｔをハイレベルで受けると、実不良ではないが、事前に不良検知をしたものとして、動作電圧Ｖｄｄ１を１．０Ｖに戻すように第１の制御信号ＣＴＬ１１を第１の電源１３０に出力する。
【００５３】
また、コントローラ１７０は、エラー信号ｃ１ ｏｕｔ、ｃ２ ｏｕｔがローレベルの場合、低消費電力化動作を実現するために、動作電圧Ｖｄｄ２をたとえば０．８Ｖに設定するように第２の制御信号ＣＴＬ２１を第２の電源１４０に出力する。
この場合、コントローラ１７０は、第２のエラー信号ｃ２ ｏｕｔをハイレベルで受けると、実不良ではないが、事前に不良検知をしたものとして、動作電圧Ｖｄｄ２を１．０Ｖに戻すように第２の制御信号ＣＴＬ２１を第２の電源１４０に出力する。
【００５４】
次に、上記図４の構成による動作を図７および図８に関連付けて説明する。
図７は、本実施形態に係る半導体装置の動作を説明するためのタイミングチャートである。
図８は、本実施形態に係る半導体装置の動作を説明するためのフローチャートである。
【００５５】
まず、コントローラ１７０が、通常電圧１．０Ｖで動作させるために、第１の制御信号ＣＴＬ１１を第１の電源１３０に供給し、第２の制御信号ＣＴＬ２１が第２の電源１４０に供給する。
これにより、第１の電源１３０が通常の１．０Ｖの動作電圧Ｖｄｄ１を送信側半導体回路１１０に供給する。同様に、第２の電源１４０が通常の１．０Ｖの動作電圧Ｖｄｄ２を受信側半導体回路１２０に供給する。
【００５６】
コントローラ１７０が、送信側半導体回路１１０の第１のクロックコントローラ１１５にクロックの供給を行うように、第１の制御信号ＣＴＬ１２を出力する。
これにより、第１のクロックコントローラ１１５は、第１のロジック回路１１１および第２のラッチ１１３に第１の基準クロックｃｌｋを供給し、第１のラッチ１１２にクロックｃｌｋより位相がδだけ進んだ(早い)第２のクロックｃｌｋ−δを供給する。
【００５７】
また、コントローラ１７０が、受信側半導体回路１２０の第２のクロックコントローラ１２５にクロックの供給を行うように、第２の制御信号ＣＴＬ２２を出力する。
これにより、第２のクロックコントローラ１２５は、第２のロジック回路１２１、第３のラッチ１２２、および第４のラッチ１２３に第２の基準クロックｃｌｋを供給する。
【００５８】
この状態で、送信側半導体回路１１０において、第１のロジック回路１１１がクロックｃｌｋに同期して論理演算を行い、その結果が第１のラッチ１１２および第２のラッチ１１３に出力される。
第１のラッチ１１２は、入力データＦＦ１ ｉｎを第１の基準クロックｃｌｋより位相がδだけ早い第２のクロックｃｌｋ−δに同期してラッチし、ラッチデータをデータ信号ＦＦ１ ｏｕｔとしてデータパスＤＰおよび第１のコンパレータ１１４に出力する。
第２のラッチ１１３は、入力データＦＦ１ ｉｎを第１の基準クロックｃｌｋに同期してラッチし、ラッチデータを、データ信号ＦＦ１´ ｏｕｔとして第１のコンパレータ１１４に出力する。
第１のコンパレータ１１４は、第１のラッチ１１２の出力データＦＦ１ ｏｕｔと第２のラッチ１１３の出力データＦＦ１´ ｏｕｔを比較する。そして、コンパレータ１１４は、両データの比較結果をエラー信号ｃ１ ｏｕｔとしてコントローラ１７０に出力する。
【００５９】
また、第１のラッチ１１２から出力されたデータ信号ＦＦ１ ｏｕｔは、データパスＤＰを伝搬され、受信側半導体回路１２０にデータ信号ＦＦ２ ｉｎとして入力される。
【００６０】
受信側半導体回路１２０においては受信状態が監視される。
第３のラッチ１２２は、入力データＦＦ２ ｉｎを第２の基準クロックｃｌｋに同期してラッチ、ラッチデータをデータ信号ＦＦ２ ｏｕｔとして第２のロジック回路１２１および第２のコンパレータ１２４に出力する。
第４のラッチ１２３は、入力データＦＦ２ ｉｎを遅延部１２６で遅延されたデータＦＦ２´ ｉｎを第２の基準クロックｃｌｋに同期してラッチし、ラッチデータをデータ信号ＦＦ２´ ｏｕｔとして第２のコンパレータ１２４に出力する。
第２のコンパレータ１２４は、第３のラッチ１２２の出力データＦＦ２ ｏｕｔと第４のラッチ１２３の出力データＦＦ２´ ｏｕｔを比較する。そして、コンパレータ１２４は、両データの比較結果をエラー信号ｃ２ ｏｕｔとしてコントローラ１７０に出力する。
【００６１】
コントローラ１７０は、通常電圧１．０Ｖで動作させて、エラー信号ｃ１ ｏｕｔ、ｃ２ ｏｕｔがローレベルの場合、図８に示すような制御を行う。
【００６２】
コントローラ１７０が、低消費電力化動作を実現するために、動作電圧Ｖｄｄ１をたとえば０．８Ｖに設定するように第１の制御信号ＣＴＬ１１を第１の電源１３０に出力する（ＳＴ１）。
そして、送信側半導体回路１１０は動作電圧０．８Ｖ下において、第１のロジック回路１１１がクロックｃｌｋに同期して論理演算を行い、その結果が第１のラッチ１１２および第２のラッチ１１３に出力される。
第１のラッチ１１２は、入力データＦＦ１ ｉｎをクロックｃｌｋより位相がδだけ早いクロックｃｌｋ−δに同期してラッチし、ラッチデータをデータ信号ＦＦ１ ｏｕｔとしてデータパスＤＰおよび第１のコンパレータ１１４に出力する。
第２のラッチ１１３は、入力データＦＦ１ ｉｎをクロックｃｌｋに同期してラッチし、ラッチデータを、データ信号ＦＦ１´ ｏｕｔとして第１のコンパレータ１１４に出力する。
第１のコンパレータ１１４は、第１のラッチ１１２の出力データＦＦ１ ｏｕｔと第２のラッチ１１３の出力データＦＦ１´ ｏｕｔを比較する。そして、コンパレータ１１４は、両データの比較結果をエラー信号ｃ１ ｏｕｔとしてコントローラ１７０に出力する。
【００６３】
ここで、コントローラ１７０が、第１のエラー信号ｃ１ ｏｕｔをハイレベルで受けたか否かを判断する（ＳＴ２）。
コントローラ１７０が、エラー信号ｃ１ ｏｕｔをハイレベルで受けると、送信側半導体回路１１０の第１のロジック回路１１１へのクロックｃｌｋの供給を１クロック分停止するように、第１の制御信号ＣＴＬ１２を第１のクロックコントローラ１１５に出力する（ＳＴ３）。
同様に、コントローラ１７０が、エラー信号ｃ１ ｏｕｔをハイレベルで受けると、受信側半導体回路１２０の第２のロジック回路１２１へのクロックｃｌｋの供給を１クロック分停止するように、第２の制御信号ＣＴＬ２２を第２のクロックコントローラ１２５に出力する（ＳＴ４）。
また、コントローラ１７０は、エラー信号ｃ１ ｏｕｔをハイレベルで受けると、エラーが発生したものとして、動作電圧Ｖｄｄ１を１．０Ｖの戻すように第１の制御信号ＣＴＬ１１を第１の電源１３０に出力する（ＳＴ５）。
【００６４】
このように、クロックｃｌｋの第１のロジック回路１１１への供給することを１回停止し、動作電圧Ｖｄｄ１を元の通常電圧に戻すと、第１のラッチ１１２は、第１のロジック回路１１１からの出力データを、余裕をもってラッチすることができる（ＳＴ６）。
すなわち、動作電圧Ｖｄｄ１を下げる前の状態で、かつ送信側半導体回路１１０の第１のロジック回路１１１からのデータは確実に到達しているので、第１のラッチ１１２は確実に動作する。
【００６５】
また、クロックｃｌｋの第２のロジック回路１２１への供給することを１回停止すると、第３のラッチ１２２は、送信側半導体回路１１０の第１のラッチ１１２からのデータを、ラッチし、第２のロジック回路１２１に送出することができる（ＳＴ７）。
【００６６】
なお、以上の処理でエラーが発生する場合は、動作電圧Ｖｄｄ１を通常動作時より上げる等の制御を行うことも可能である。
【００６７】
また、コントローラ１７０が、第２のエラー信号ｃ２ ｏｕｔをハイレベルで受けると（ＳＴ８）、実不良ではないが、事前に不良検知をしたものとして、動作電圧Ｖｄｄ１を１．０Ｖの戻すように第１の制御信号ＣＴＬ１１を第１の電源１３０に出力する（ＳＴ９）。
【００６８】
また、コントローラ１７０が、エラー信号ｃ１ ｏｕｔ、ｃ２ ｏｕｔがローレベルの場合、動作電圧Ｖｄｄ２をたとえば０．８Ｖに設定するように第２の制御信号ＣＴＬ２１を第２の電源１４０に出力することも可能である（ＳＴ１０）。
この場合、コントローラ１７０は、第２のエラー信号ｃ２ ｏｕｔをハイレベルで受けると（ＳＴ１１）、実不良ではないが、事前に不良検知をしたものとして、動作電圧Ｖｄｄ２を１．０Ｖの戻すように第２の制御信号ＣＴＬ２１を第２の電源１４０に出力する（ＳＴ１２）。
【００６９】
図７のタイミングチャートでは、正常な動作からVdd1を下げ（ＳＴ１）、コンパレータ１１４がエラー信号Ｃ１＿ＯＵＴを受け取り（ＳＴ２）、さらにコンパレータ１２４でもエラー信号Ｃ２＿ＯＵＴを受け取った（ＳＴ８）様子を示す。
【００７０】
以上説明した本実施形態によれば、第１のラッチ１１２は、第１のクロックコントローラ１１５により第２のラッチ１１３に供給される、第１の基準クロックｃｌｋより位相がδだけ早めた第２のクロックｃｌｋ−δに同期して信号を送り出す機能を有する。
第２のラッチ１１３は、第１のクロックコントローラ１１５により第２のラッチ１１３に供給される、クロックｃｌｋに同期して信号を送り出す機能を有する。
第１のコンパレータ１１４は、第１のラッチ１１２の出力データＦＦ１ ｏｕｔと第２のラッチ１１３の出力データＦＦ１´ ｏｕｔとを比較し両データが一致しているときはエラー信号ｃ１ ｏｕｔをローレベルに設定し、不一致のときはハイレベルに設定する。
そして、コントローラ１７０は、エラー信号ｃ１ ｏｕｔに応じて動作電圧Ｖｄｄ１の制御、ロジック回路へのクロックの供給の制御を行う。
すなわち、本実施形態によれば、位相を進めたクロックとラッチの並列化を組み合わせることにより、信号の妥当性を検査することができ、以下の機能を有する形態を実現することができる。
（１）第１のラッチから組み合わせ回路にフライングで信号を送り出し、組み合わせ回路での演算に使ってよい時間を見かけ上増やす。
【００７１】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【００７２】
【図１】一般的に用いられているラッチの概略図とタイミングを示す図である。
【図２】非特許文献に開示されているラッチを並列に接続した半導体装置を示す図である。
【図３】図２（Ｂ）の半導体装置のタイミング例を示す図である。
【図４】本発明の一実施形態に係る半導体装置の構成例を示す図である。
【図５】第１のクロック生成部０のクロックｃｌｋおよび位相をδだけ進めたクロックｃｌｋ−δの生成回路例を示す図である。
【図６】本実施形態に係る送信側半導体回路の特徴的構成および機能を説明するための図である。
【図７】本実施形態に係る半導体装置の動作を説明するためのタイミングチャートである。
【図８】本実施形態に係る半導体装置の動作を説明するためのフローチャートである。
【符号の説明】
【００７３】
１００・・・半導体装置、１１０・・・送信側半導体回路、１１１・・・ロジック回路、１１２・・・第１のラッチ、１１３・・・第３のラッチ、１１４・・・コンパレータ、１１５・・・クロックコントローラ、１２０・・・受信側半導体回路、１２１・・・ロジック回路、１２２・・・第３のラッチ、１２３・・・第４のラッチ、１２４・・・コンパレータ、１２５・・・クロックコントローラ、１２６・・・遅延部、１３０・・・第１の電源、１４０・・・第２の電源、１５・・・第１のクロック生成部、１６０・・・第２のクロック生成部、１７０・・・コントローラ。
【図１】
2010071750.tif 000003
【図２】
2010071750.tif 000004
【図３】
2010071750.tif 000005
【図４】
2010071750.tif 000006
【図５】
2010071750.tif 000007
【図６】
2010071750.tif 000008
【図７】
2010071750.tif 000009
【図８】
2010071750.tif 000010