(57)【特許請求の範囲】
【請求項１】
第１クロックで動作する第１ブロックと、
可変に制御される可変電源電圧が供給され第２クロックで動作する第２ブロックと、
前記第１クロックおよび前記第２クロックに基づいて、前記第１ブロックと前記第２ブロックとの間でデータの受け渡しが正常に行われるか否かを検出するモニタ回路と、
スキュー調整動作選択信号に応じて、前記モニタ回路での前記データの受け渡しが正常に行われるように前記第１クロックと前記第２クロックとの間のスキュー量を調整する調整回路と
を備え、
前記モニタ回路は、
前記第１ブロックから前記第１クロックに基づいて出力された前記データが前記第２ブロックにおいて前記第２クロックに基づいて正常に受信されたか否かを検出する第１データ伝送路と、
前記第２ブロックから前記第２クロックに基づいて出力された前記データが前記第１ブロックにおいて前記第１クロックに基づいて正常に受信されたか否かを検出する第２データ伝送路と
を備えることを特徴とする半導体装置。
【請求項２】
前記調整回路は、前記第１クロックに対して前記モニタ回路の検出結果に応じた遅延時間を付与したクロックを前記第２クロックとして出力する
ことを特徴とする請求項１に記載の半導体装置。
【請求項３】
第１クロックで動作する第１ブロックと、
可変に制御される可変電源電圧が供給され第２クロックで動作する第２ブロックとを備える半導体装置の制御方法において、
前記第１クロックに基づいて前記第１ブロックから前記第２ブロックへ出力されたデータが前記第２ブロックにおいて前記第２クロックに基づいて正常に受信されたか否かを検出し、
前記第２クロックに基づいて前記第２ブロックから前記第１ブロックへ出力されたデータが前記第１ブロックにおいて前記第１クロックに基づいて正常に受信されたか否かを検出し、
前記第１ブロックから前記第２ブロックへ出力された前記データが前記第２ブロックにおいて正常に受信され、前記第２ブロックから前記第１ブロックへ出力された前記データが前記第１ブロックにおいて正常に受信されるように前記第１クロックと前記第２クロックとの間のスキュー量を調整する
ことを特徴とする半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置および半導体装置の制御方法に関し、特に電源電圧が変更される場合においても、クロックスキュー量をタイミングエラーが発生しない値に調整することが可能な半導体装置および半導体装置の制御方法に関するものである。
【背景技術】
【０００２】
図１７に、特許文献１に開示されている、従来の携帯機器用の半導体集積回路２０１の構成例を示す。半導体集積回路２０１は、クロック生成回路２０２と、電源電圧供給回路２２０と、コアＡと、コアＢとを備えて構成されている。コアＢには１．２５Ｖの電源電圧が供給されるとともに、コアＡには電源電圧供給回路２２０から１．２５Ｖ又は１．００Ｖの電源電圧が供給される。コアＡを１．００Ｖで動作させる場合、制御信号ＣＴＬを「０」にする。この場合、セレクタＣ２２は、ＰＬＬ回路２１０から直接出力されたクロック信号を出力することとなる。そこで、ＰＬＬ回路２１０からセレクタＣ２２を通り、コアＡ内部のフリップフロップ回路に到達するまでのクロック信号の伝搬遅延と、ＰＬＬ回路２１０からバッファＣ２１を通り、コアＢ内部のフリップフロップ回路に到達するまでのクロック信号の遅延時間とが、互いに等しくなるようにクロック信号系統を設計する。これに対して、コアＡを１．２５Ｖで動作させる場合、制御信号ＣＴＬを「１」にする。この場合、セレクタＣ２２は、バッファＣ２０から出力されたクロック信号を出力することとなる。そこで、ＰＬＬ回路２１０からバッファＣ２０とセレクタＣ２２を通り、コアＡ内部のフリップフロップ回路に到達するまでのクロック信号の伝搬遅延と、ＰＬＬ回路２１０からバッファＣ２１を通り、コアＢ内部のフリップフロップ回路に到達するまでのクロック信号の遅延時間とが、互いに等しくなるようにクロック信号系統を設計する。
【０００３】
尚、上記の関連技術として特許文献２ないし特許文献７が開示されている。
【特許文献１】特開２００５−１００２６９号公報
【特許文献２】特開平１１−１６８３７６号公報
【特許文献３】特開２０００−９１５０６号公報
【特許文献４】特開２００１−１５６２５８号公報
【特許文献５】特開２００５−５１５３４号公報
【特許文献６】特開平１１−３１７０８０号公報
【特許文献７】特許第３９０８４９３号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし従来の半導体集積回路２０１では、コアＡとコアＢとの間のクロックスキューを低減するための遅延時間を、コアＡの電源電圧ごとに予め求めている。そしてコアＡの電源電圧を切り替えることに応じて、遅延時間量を切り替えている。すなわちクロックスキュー自体をモニタしていない。すると温度変化や半導体集積回路２０１の製造ばらつき等に起因してクロックスキューが変化した場合に対応できない。よってクロックスキューを十分に低減する事ができないため問題である。
【０００５】
また従来の半導体集積回路２０１では、コアＡとコアＢとの間のクロックスキューを、コアＡの電源電圧ごとに予め求める必要がある。しかしクロックスキューは電源電圧分布などの様々な要因によって決まるため、事前にクロックスキューを求めることは難しく、設計が困難であるため問題である。また電源電圧が変化されるコアが多数になる方式や、クロック生成回路２０２からクロックが供給されるコア数が多数になる方式では、クロックスキューを考慮すべきクロック線の数が増加する。この場合、全てのクロック線についてスキューを考慮したクロック信号系統を設計することは困難であるため問題である。
【０００６】
本発明は前記背景技術の課題を解消するためになされたものであり、電源電圧が変更される場合においても、クロックスキュー量をタイミングエラーが発生しない値に調整することが可能な半導体装置および半導体装置の制御方法を提供することを提案する。
【課題を解決するための手段】
【０００７】
前記目的を達成するために、開示の半導体装置では、第１クロックで動作する第１ブロックと、可変に制御される可変電源電圧が供給され第２クロックで動作する第２ブロックとを備える。さらに、第１クロックおよび第２クロックに基づいて、第１ブロックと第２ブロックとの間でデータの受け渡しが正常に行われるか否かを検出するモニタ回路と、スキュー調整動作選択信号に応じて、モニタ回路でのデータの受け渡しが正常に行われるように第１クロックと第２クロックとの間のスキュー量を調整する調整回路とを備える。モニタ回路は、第１ブロックから第１クロックに基づいて出力されたデータが第２ブロックにおいて第２クロックに基づいて正常に受信されたか否かを検出する第１データ伝送路と、第２ブロックから第２クロックに基づいて出力されたデータが第１ブロックにおいて第１クロックに基づいて正常に受信されたか否かを検出する第２データ伝送路とを備えることを特徴とする。
【０００８】
また開示の半導体装置の制御方法では、第１クロックで動作する第１ブロックと、可変に制御される可変電源電圧が供給され第２クロックで動作する第２ブロックとを備える半導体装置の制御方法において、第１クロックに基づいて第１ブロックから第２ブロックへ出力されたデータが第２ブロックにおいて第２クロックに基づいて正常に受信されたか否かを検出し、第２クロックに基づいて第２ブロックから第１ブロックへ出力されたデータが第１ブロックにおいて第１クロックに基づいて正常に受信されたか否かを検出し、第１ブロックから第２ブロックへ出力されたデータが第２ブロックにおいて正常に受信され、第２ブロックから第１ブロックへ出力されたデータが第１ブロックにおいて正常に受信されるように第１クロックと第２クロックとの間のスキュー量を調整することを特徴とする。
【０００９】
第２ブロックには可変に制御される可変電源電圧が供給される。また第１ブロックは第１クロックで動作し、第２ブロックは第２クロックで動作する。第１ブロックと第２ブロックとの間では、第１クロックおよび第２クロックに基づいて、互いにデータの受け渡しが行われる。モニタ回路は、データ受け渡しが正常に行われるか否かを検出する。
【００１０】
第１クロックと第２クロックとの間には、スキューが存在する。調整回路は、モニタ回路でのデータの受け渡しが正常に行われるようにスキュー量を調整する。そして調整回路は、スキュー調整動作選択信号が入力されることに応じてスキュー量の調整を行う。スキュー調整動作選択信号は、第２ブロックの動作モード変更や動作環境変化に応じてスキュー調整動作を選択する信号であり、例えばＣＰＵ等から入力される。
【００１１】
作用を説明する。第２ブロックに供給される電源電圧が変化されると、第２クロックの第２ブロック内の伝搬遅延も変化する。よって第１クロックと第２クロックとの間のスキューも変化する。そしてスキューが大きくなると、第１ブロックと第２ブロックとの間でのデータの受け渡しにおいて、クロックスキューによるタイミングエラーが発生する。
【００１２】
しかし本開示の半導体装置および半導体装置の制御方法によれば、可変電源電圧の値が変更されることに応じて、調整回路が第１クロックと第２クロックとの間のスキュー量を調整する。よって可変電源電圧が変更される場合においても、スキュー量をタイミングエラーが発生しない値に保つ事が可能となる。よって可変電源電圧の変更の影響を排除することができるため、半導体装置の安定した動作を確保することができる。
【００１３】
また本開示の半導体装置および半導体装置の制御方法によれば、第１ブロックと第２ブロックとの間でのデータ受け渡しの成否を、モニタ回路において検出している。よって温度変化などによりスキュー量が変化する場合にも、当該スキュー量の変化をモニタ回路によって検出することができる。そして検出結果に応じて、スキュー量をタイミングエラーが発生しない値に設定する事が可能となる。よって温度変化等の外乱の影響を排除することができるため、半導体装置の安定動作を確保することができる。またモニタ回路を用いているため、事前にスキューを考慮したクロック信号系統を設計する必要がない。よって半導体装置の設計を簡略化することができる。
【００１４】
またデータ受け渡し時にタイミングエラーが発生しないようにスキュー量を調整する際に、スキュー量の検出結果に基づいて調整を行う方式では、間接的にタイミングエラーを検出することになる。よって検出結果に誤差が存在する。しかし本開示の半導体装置および半導体装置の制御方法によれば、データ受け渡しの成否結果に基づいて調整を行うため、直接的にタイミングエラーを検出している。よってより正確な検出結果が得られるため、より高精度にスキュー量の調整を行うことが可能となる。
【発明の効果】
【００１５】
本開示の半導体装置および半導体装置の制御方法によれば、電源電圧が変更される場合においても、クロックスキュー量をタイミングエラーが発生しない値に調整することが可能になる。
【発明を実施するための最良の形態】
【００１６】
動的電圧・周波数制御（Dynamic Voltage and Frequency Scaling : DVFS）技術について説明する。ＤＶＦＳでは、半導体装置内が複数のブロックに分けられる。そして各ブロックの処理負荷に応じて、ブロックごとに最適な電圧を供給し、ブロックごとに必要十分な動作周波数で動作させる。これにより、動的に電源電圧と動作周波数を最適化することができるため、消費エネルギーを削減することが可能となる。
【００１７】
図１を用いて、ＤＶＦＳでの電源電圧および動作周波数の切替の具体例を説明する。半導体装置６０は、ビデオコーデックや静止画コーデックを搭載するＬＳＩである。半導体装置６０の内部は、第１ブロックＢＫ１と第２ブロックＢＫ２とに分けられている。第１ブロックＢＫ１には不図示の電源供給部から電源電圧ＶＤＤ１が供給され、第２ブロックＢＫ２には不図示の電源供給部から電源電圧ＶＤＤ２が供給される。本実施例では、電源電圧ＶＤＤ１が１．０（Ｖ）であり、電源電圧ＶＤＤ２が１．０（Ｖ）から１．２（Ｖ）の範囲内で可変制御される場合を説明する。また第２ブロックＢＫ２の動作周波数ｆは、電源電圧ＶＤＤ２の値に応じて可変に制御される。
【００１８】
半導体装置６０の第２ブロックＢＫ２では、（１）ＨＤ解像度（High Density Resolution）を Ｈ２６４規格で 録画・視聴するアプリケーション、（２）ＳＤ解像度（Standard Density Resolution）を Ｍｐｅｇ２規格で録画・視聴するアプリケーション、（３）静止画画像をデコードし視聴するアプリケーション、の３つのアプリケーションの何れかが動作する。ここで（２）のＳＤ解像度では、７２０×４８０のピクセル数のピクセル数を有し、処理するデータ量が（３）よりも多くなる。また（１）のＨＤ解像度では、１９２０×１０８０のピクセル数を有し、処理するデータ量が（２）よりも多くなる。また（１）のＨ２６４規格は、（２）のＭｐｅｇ２規格に比して、データ圧縮率は高いがより複雑な処理が必要とされる。よって、（３）から（１）に行くに従って、処理するデータ量が増加し、またコーデックの処理の複雑度も高くなる。そして（３）から（１）に行くに従って、第２ブロックＢＫ２はより高速な動作が必要となる。
【００１９】
よって図１に示すように、第２ブロックＢＫ２において（１）のアプリケーションを動作させる場合には、動作周波数ｆ＝１６２（ＭＨｚ）、電源電圧ＶＤＤ２＝１．２（Ｖ）とされ、高スピード状態とされる。また（２）のアプリケーションを動作させる場合には、動作周波数ｆ＝８１（ＭＨｚ）、電源電圧ＶＤＤ２＝１．１（Ｖ）とされ、中スピード状態とされる。また（３）のアプリケーションを動作させる場合には、動作周波数ｆ＝５４（ＭＨｚ）、電源電圧ＶＤＤ２＝１．０（Ｖ）とされ、低スピード状態とされる。これにより、第２ブロックＢＫ２で動作されるアプリケーションの種類に応じて、第２ブロックＢＫ２の動作周波数ｆおよび電源電圧ＶＤＤ２を最適化することができる。よって半導体装置６０の低消費電力化を図ることが可能となる。
【００２０】
本実施形態に係る半導体装置１の回路図を、図２に示す。半導体装置１は、第１ブロックＢＫ１と第２ブロックＢＫ２とを備える。第１ブロックＢＫ１には電源電圧ＶＤＤ１が供給され、第２ブロックＢＫ２には電源電圧ＶＤＤ２が供給される。半導体装置１は、制御回路２、クロック遅延調整回路３、モニタ回路４、ＰＬＬ回路５、内部接続回路６、第１ブロック内部回路７、第２ブロック内部回路８を備える。制御回路２、モニタ回路４、内部接続回路６は、第１ブロックＢＫ１および第２ブロックＢＫ２にまたがって備えられる。またクロック遅延調整回路３、ＰＬＬ回路５、第１ブロック内部回路７は第１ブロックＢＫ１に備えられる。また第２ブロック内部回路８は第２ブロックＢＫ２に備えられる。
【００２１】
ＰＬＬ回路５からはクロックＣＬＫ１が出力される。制御回路２にはバッファ段を介してクロックＣＬＫ１が入力されると共に、信号ｍｏｎ１２、ｍｏｎ２１が入力される。また制御回路２から出力される制御信号ＳＩＧ１＿１、ＳＩＧ１＿２、ＳＩＧ２＿１、ＳＩＧ２＿２はモニタ回路４へ入力される。クロック遅延調整回路３にはクロックＣＬＫ１および設定信号Ｄ１ないしＤ８が入力され、クロックＣＬＫ２が出力される。また第１ブロック内部回路７にはバッファ段を介してクロックＣＬＫ１が入力される。第２ブロック内部回路８にはバッファ段を介してクロックＣＬＫ２が入力される。内部接続回路６にはバッファ段を介して、クロックＣＬＫ１およびＣＬＫ２が入力される。
【００２２】
図３に、制御回路２の詳細回路図を示す。制御回路２は、第１制御信号生成部１１、第２制御信号生成部１２、判定結果保持部１４、コード変換部１５、クロック遅延テストコード生成部１６、セレクタ１７、クロック遅延設定保持部１８、第３制御信号生成部２０、第４制御信号生成部１０を備える。第２制御信号生成部１２は第２ブロックＢＫ２に備えられる。またモニタ回路４は第１ブロックＢＫ１と第２ブロックＢＫ２とをまたぐように備えられる。その他の回路は第１ブロックＢＫ１に備えられる。第４制御信号生成部１０にはスタート信号ＳＴＳおよびクロックＣＬＫ１が入力され、パルス信号ＳＩＧ００が出力される。第１制御信号生成部１１にはクロックＣＬＫ１およびパルス信号ＳＩＧ００が入力され、制御信号ＳＩＧ１＿１ないしＳＩＧ１＿４が出力される。第２制御信号生成部１２にはクロックＣＬＫ２およびパルス信号ＳＩＧ００が入力され、制御信号ＳＩＧ２＿１およびＳＩＧ２＿２が出力される。
【００２３】
判定結果保持部１４には信号ｍｏｎ１２およびｍｏｎ２１、制御信号ＳＩＧ１＿３およびＳＩＧ１＿４が入力され、判定信号Ｊ１ないしＪ８が出力される。コード変換部１５には判定信号Ｊ１ないしＪ８が入力され、コード信号Ｃ１ないしＣ８が出力される。またクロック遅延テストコード生成部１６にはクロックＣＬＫ１が入力され、テストコード信号Ｔ１ないしＴ８が出力される。第３制御信号生成部２０には不図示のＣＰＵからモード切替信号ＭＳが入力され、またクロックＣＬＫ１が入力される。モード切替信号ＭＳは、第２ブロックＢＫ２の動作モード変更や動作環境変化に応じてスキュー調整動作を選択する信号である。第３制御信号生成部２０からはコードセット信号ＣＤＳおよびスタート信号ＳＴＳが出力される。セレクタ１７にはコード信号Ｃ１ないしＣ８、テストコード信号Ｔ１ないしＴ８、モード切替信号ＭＳが入力され、セレクタ信号Ｂ１ないしＢ８が出力される。クロック遅延設定保持部１８にはセレクタ信号Ｂ１ないしＢ８が入力され、設定信号Ｄ１ないしＤ８が出力される。
【００２４】
図４に、第４制御信号生成部１０、第１制御信号生成部１１および第２制御信号生成部１２の詳細回路図を示す。第４制御信号生成部１０はＤフリップフロップである。Ｄ端子にはスタート信号ＳＴＳが入力され、クロック端子にはクロックＣＬＫ１が入力され、Ｑ端子からはパルス信号ＳＩＧ００が出力される。
【００２５】
第１制御信号生成部１１はフリップフロップＦＦ１１ないしＦＦ１４、インバータＩＮＶ１を備える。インバータＩＮＶ１にはクロックＣＬＫ１が入力され、逆相クロック／ＣＬＫ１が出力される。フリップフロップＦＦ１１ないしＦＦ１４のクロック端子には、逆相クロック／ＣＬＫ１が共通に入力される。またフリップフロップＦＦ１１のＤ端子には、第４制御信号生成部１０のＱ端子が接続され、パルス信号ＳＩＧ００が入力される。フリップフロップＦＦ１１ないしＦＦ１４は、前段のフリップフロップのＱ端子が次段のＤ端子に接続されるように、互いに直列接続される。フリップフロップＦＦ１１ないしＦＦ１４のＱ端子からは、制御信号ＳＩＧ１＿１ないしＳＩＧ１＿４が各々出力される。よってフリップフロップＦＦ１１ないしＦＦ１４によりシフトレジスタが構成される。
【００２６】
第２制御信号生成部１２はフリップフロップＦＦ２１およびＦＦ２２、インバータＩＮＶ２を備える。インバータＩＮＶ２にはクロックＣＬＫ２が入力され、逆相クロック／ＣＬＫ２が出力される。フリップフロップＦＦ２１およびＦＦ２２のクロック端子には、逆相クロック／ＣＬＫ２が共通に入力される。またフリップフロップＦＦ２１のＤ端子には、第４制御信号生成部１０のＱ端子が接続され、パルス信号ＳＩＧ００が入力される。フリップフロップＦＦ２１およびＦＦ２２は、前段のフリップフロップのＱ端子が次段のＤ端子に接続されるように、互いに直列接続される。フリップフロップＦＦ２１およびＦＦ２２のＱ端子からは、制御信号ＳＩＧ２＿１およびＳＩＧ２＿２が各々出力される。よってフリップフロップＦＦ２１およびＦＦ２２によりシフトレジスタが構成される。
【００２７】
図５に、モニタ回路４の詳細回路図を示す。モニタ回路４はフリップフロップＦＦ１ないしＦＦ４、オアゲート４１および４２、クロック生成回路４３および４４、セレクタ４５および４６、エクスクルーシブオアゲート４７および４８を備える。オアゲート４１、クロック生成回路４３、フリップフロップＦＦ１およびＦＦ３、セレクタ４５、エクスクルーシブオアゲート４７および４８は、第１ブロックＢＫ１に備えられる。その他の回路は第２ブロックＢＫ２に備えられる。
【００２８】
オアゲート４１には制御信号ＳＩＧ１＿１およびＳＩＧ１＿２が入力される。クロック生成回路４３のＥＮ端子にはオアゲート４１の出力端子が接続され、クロック端子にはクロックＣＬＫ１が入力される。クロック生成回路４３からはクロックＦＦＣＫ１が出力される。同様にして、オアゲート４２には制御信号ＳＩＧ２＿１およびＳＩＧ２＿２が入力される。クロック生成回路４４のＥＮ端子にはオアゲート４２の出力端子が接続され、クロック端子にはクロックＣＬＫ２が入力される。クロック生成回路４４からはクロックＦＦＣＫ２が出力される。
【００２９】
フリップフロップＦＦ１のＤ端子には制御信号ＳＩＧ１＿２が入力され、クロック端子にはクロックＦＦＣＫ１が入力され、Ｑ端子からはデータＦＦ１Ｑが出力される。セレクタ４６の端子４６Ａには接地電圧が入力され、端子４６ＢにはデータＦＦ１Ｑが入力される。またセレクタ４６には制御信号ＳＩＧ２＿２が入力される。セレクタ４６からはデータＦＦ２Ｄが出力される。フリップフロップＦＦ２のＤ端子にはデータＦＦ２Ｄが入力され、クロック端子にはクロックＦＦＣＫ２が入力され、Ｑ端子からはデータＦＦ２Ｑが出力される。
【００３０】
フリップフロップＦＦ４のＤ端子には制御信号ＳＩＧ２＿２が入力され、クロック端子にはクロックＦＦＣＫ２が入力され、Ｑ端子からはデータＦＦ４Ｑが出力される。セレクタ４５の端子４５Ａには接地電圧が入力され、端子４５ＢにはデータＦＦ４Ｑが入力される。またセレクタ４５には制御信号ＳＩＧ１＿２が入力される。セレクタ４５からはデータＦＦ３Ｄが出力される。フリップフロップＦＦ３のＤ端子にはデータＦＦ３Ｄが入力され、クロック端子にはクロックＦＦＣＫ１が入力され、Ｑ端子からはデータＦＦ３Ｑが出力される。
【００３１】
エクスクルーシブオアゲート４８にはデータＦＦ１ＱおよびＦＦ２Ｑが入力され、信号ｍｏｎ１２が出力される。またエクスクルーシブオアゲート４７にはデータＦＦ３ＱおよびＦＦ４Ｑが入力され、信号ｍｏｎ２１が出力される。
【００３２】
図６に、判定結果保持部１４の詳細回路図を示す。判定結果保持部１４はシフトレジスタ５０、フリップフロップＦＦ５およびＦＦ６、アンドゲート５１、クロック生成回路５３および５４を備える。クロック生成回路５３のＥＮ端子には制御信号ＳＩＧ１＿３が入力され、クロック端子にはクロックＣＬＫ１が入力される。クロック生成回路５３からはパルス信号ＰＳ３が出力される。シフトレジスタ５０はフリップフロップＦＦ７＿１ないしＦＦ７＿８を備える。フリップフロップＦＦ５のＤ端子には信号ｍｏｎ１２が入力され、クロック端子にはパルス信号ＰＳ３が入力され、Ｑ端子からはデータＦＦ５Ｑが出力される。フリップフロップＦＦ６のＤ端子には信号ｍｏｎ２１が入力され、クロック端子にはパルス信号ＰＳ３が入力され、Ｑ端子からはデータＦＦ６Ｑが出力される。アンドゲート５１にはデータＦＦ５ＱおよびＦＦ６Ｑが入力され、ジャッジ信号ＪＤが出力される。
【００３３】
クロック生成回路５４のＥＮ端子には制御信号ＳＩＧ１＿４が入力され、クロック端子にはクロックＣＬＫ１が入力される。クロック生成回路５４からはパルス信号ＰＳ４が出力される。フリップフロップＦＦ７＿１ないしＦＦ７＿８のクロック端子には、パルス信号ＰＳ４が共通に入力される。フリップフロップＦＦ７＿１のＤ端子にはジャッジ信号ＪＤが入力される。フリップフロップＦＦ７＿１ないしＦＦ７＿８は、前段のフリップフロップのＱ端子が次段のＤ端子に接続されるように、互いに直列接続される。フリップフロップＦＦ７＿１ないしＦＦ７＿８のＱ端子からは、判定信号Ｊ１ないしＪ８が各々出力される。
【００３４】
図７に、第３制御信号生成部２０の詳細回路図を示す。第３制御信号生成部２０は、リングカウンタ６１、フリップフロップＦＦ４９およびＦＦ５０、インバータＩＮＶ４、ノアゲートＮＲ４３、オアゲートＯＲ４２を備える。フリップフロップＦＦ４９のクロック端子にはクロックＣＬＫ１が入力され、Ｄ端子にはインバータＩＮＶ４で反転されたモード切替信号ＭＳが入力され、逆相モード切替信号ｘＭＳが出力される。ノアゲートＮＲ４３には逆相モード切替信号ｘＭＳおよびモード切替信号ＭＳが入力され、信号Ｍｅｎｄが出力される。フリップフロップＦＦ５０のクロック端子にはクロックＣＬＫ１が入力され、Ｄ端子には信号Ｍｅｎｄが入力される。オアゲートＯＲ４２の入力端子にはフリップフロップＦＦ５０の出力端子およびフリップフロップＦＦ４１の出力端子が接続される。そしてオアゲートＯＲ４２からはコードセット信号ＣＤＳが出力される。
【００３５】
リングカウンタ６１のアンドゲートＡＤ４１には、モード切替信号ＭＳおよび逆相モード切替信号ｘＭＳが入力され、パルス信号Ｍｓｅｔが出力される。アンドゲートＡＤ４２には、モード切替信号ＭＳおよびパルス信号Ｍ８が入力され、パルス信号Ｍｆｂが出力される。オアゲートＯＲ４１にはパルス信号Ｍｓｅｔおよびパルス信号Ｍｆｂが入力され、パルス信号Ｍ０が出力される。フリップフロップＦＦ４１ないしＦＦ４８によりシフトレジスタが構成される。フリップフロップＦＦ４１ないしＦＦ４８のクロック端子には、クロックＣＬＫ１が共通に入力される。またフリップフロップＦＦ４１のＤ端子にはパルス信号Ｍ０が入力される。フリップフロップＦＦ４１ないしＦＦ４８は、前段のフリップフロップのＱ端子が次段のＤ端子に接続されるように、互いに直列接続される。フリップフロップＦＦ４１ないしＦＦ４８のＱ端子からは、パルス信号Ｍ１ないしＭ８が各々出力される。またパルス信号Ｍ２はスタート信号ＳＴＳとされる。
【００３６】
図８に、クロック遅延設定保持部１８の詳細回路図を示す。クロック遅延設定保持部１８は、フリップフロップＦＦ８＿１ないしＦＦ８＿８を備える。フリップフロップＦＦ８＿１ないしＦＦ８＿８の各Ｄ端子には、セレクタ信号Ｂ１ないしＢ８が各々入力される。フリップフロップＦＦ８＿１ないしＦＦ８＿８のクロック端子には、コードセット信号ＣＤＳが共通に入力される。フリップフロップＦＦ８＿１ないしＦＦ８＿８の各Ｑ端子からは、設定信号Ｄ１ないしＤ８が各々出力される。
【００３７】
図９に、クロック遅延調整回路３の詳細回路図を示す。クロック遅延調整回路３はインバータＩＮＶ３、ナンドゲートＮＤ１ないしＮＤ８、遅延タップＴＰ１ないしＴＰ８を備える。インバータＩＮＶ１にはクロックＣＬＫ１が入力され、逆相クロック／ＣＬＫ１が出力される。ナンドゲートＮＤ１ないしＮＤ８の一方の入力端子には、逆相クロック／ＣＬＫ１が共通に入力される。またナンドゲートＮＤ１ないしＮＤ８の他方の入力端子には、設定信号Ｄ１ないしＤ８が各々入力される。
【００３８】
遅延タップＴＰ１はナンドゲートＮＤ１１およびＮＤ１２を備える。ナンドゲートＮＤ１１には電源電圧ＶｃｃとナンドゲートＮＤ１の出力信号が入力される。またナンドゲートＮＤ１２には電源電圧ＶｃｃとナンドゲートＮＤ１１の出力信号が入力される。ナンドゲートＮＤ１２の出力端子は、遅延タップＴＰ２に接続される。ナンドゲートＮＤ１１およびＮＤ１２は、入力端子の一方がハイレベルに固定されるため、インバータの２段直列接続が構成され、遅延段の動作を行う。なお遅延タップＴＰ２ないしＴＰ８も同様の構成を備えるため、ここでは詳細な説明は省略する。そして遅延タップＴＰ８からはクロックＣＬＫ２が出力される。
【００３９】
半導体装置１でのスキュー調整動作の概略を説明する。第２ブロックＢＫ２に供給される電源電圧ＶＤＤ２が変化すると、クロックＣＬＫ２の第２ブロックＢＫ２内での伝搬遅延も変化する。よってクロックＣＬＫ１とクロックＣＬＫ２との間のスキューも変化する。スキューが大きくなると、第１ブロックＢＫ１と第２ブロックＢＫ２との間でのデータの受け渡しにおいて、クロックスキューによるタイミングエラーが発生する。
【００４０】
そこで第１ブロックＢＫ１と第２ブロックＢＫ２とをまたぐようにモニタ回路４を置き、モニタ回路４において第１ブロックＢＫ１と第２ブロックＢＫ２との間のデータ受け渡しが正常に行われるか否かの判定を行う。このときクロック遅延調整回路３において、クロックＣＬＫ２のＣＬＫ１に対する遅延量を、予め定めた８段階に変化させる。そして８段階の遅延量を有するクロックＣＬＫ２のそれぞれにおいて、モニタ回路４におけるデータ受け渡しが正常に行われるか否かがテストされる。そして８段階の遅延量の中から、モニタ回路４でのデータ受け渡しが正常に行われる１の遅延量を選択する。これにより、クロックスキューによるタイミングエラーの発生を防止することができる。
【００４１】
半導体装置１の詳細な動作を、図１０のフローチャートを用いて説明する。Ｓ１（ステップ、以下Ｓと略する）においては、通常動作が行われている。このとき不図示のＣＰＵは、ローレベルのモード切替信号ＭＳを出力する。セレクタ１７（図３）は、ローレベルのモード切替信号ＭＳに応じてコード信号Ｃ１ないしＣ８を選択した上で、セレクタ信号Ｂ１ないしＢ８としてクロック遅延設定保持部１８へ出力する。
【００４２】
Ｓ２においてモード変更が行われる。図１１のタイミングチャートを用いて説明する。時刻ｔ４１において、不図示のＣＰＵから、第２ブロックＢＫ２のモード変更に応じてハイレベルのモード切替信号ＭＳが入力される。モード変更では、第２ブロックＢＫ２での処理負荷量に合わせて、第２ブロックＢＫ２の動作周波数および電源電圧ＶＤＤ２が変更される。またハイレベルのモード切替信号ＭＳが入力されることに応じて、半導体装置１の動作が通常動作からクロックスキュー調整動作へ切り替えられる。クロックスキュー調整動作では、セレクタ１７（図３）は、ハイレベルのモード切替信号ＭＳに応じてテストコード信号Ｔ１ないしＴ８を選択した上で、セレクタ信号Ｂ１ないしＢ８としてクロック遅延設定保持部１８へ出力する。
【００４３】
またクロックスキュー調整動作へ切り替えられることに応じて、第３制御信号生成部２０からコードセット信号ＣＤＳおよびスタート信号ＳＴＳが出力される。第３制御信号生成部２０の動作を、図１２のタイミングチャートを用いて説明する。モード切替信号ＭＳの立ち上がりエッジに応じて、パルス信号Ｍｓｅｔが出力される（矢印Ａ５１）。リングカウンタ６１にパルス信号Ｍｓｅｔが入力され、パルス信号Ｍ０が生成される（矢印Ａ５２）。パルス信号Ｍ０は、クロックＣＬＫ１の１クロックごとに、パルス信号Ｍ８までシフトする。そしてパルス信号Ｍ１に応じてコードセット信号ＣＤＳが出力される（矢印Ａ５３）。またパルス信号Ｍ２はスタート信号ＳＴＳとして出力される。そしてパルス信号Ｍ０がパルス信号Ｍ８までシフトすると、一つの判定期間ＪＴ１が終了する。
【００４４】
パルス信号Ｍ０がパルス信号Ｍ８までシフトした時刻ｔ５１の時点においてモード切替信号ＭＳがハイレベルであるため、パルス信号Ｍｆｂによってパルス信号Ｍ０がハイレベルとされる（矢印Ａ５４）。よってパルス信号Ｍ８がリングカウンタ６１にフィードバックされることでリングカウンタ動作が行われる。そして次の判定期間ＪＴ２が開始される。以後、上記動作が、判定期間ＪＴ８まで繰り返される。そして判定期間ＪＴ８の時刻ｔ５２において、モード切替信号ＭＳがローレベルに遷移すると、アンドゲートＡＤ４２によってパルス信号Ｍ８が遮断され、パルス信号Ｍｆｂはローレベルのままとなり、リングカウンタ動作が終了する。これにより、パルス信号Ｍ１からのコードセット信号ＣＤＳの生成とパルス信号Ｍ２からのスタート信号ＳＴＳの生成が終了する。これに並行して、判定期間ＪＴ８の時刻ｔ５２において、モード切替信号ＭＳがローレベルに遷移すると、パルス信号Ｍｅｎｄが発生する。このパルス信号Ｍｅｎｄ発生に応じて、コードセット信号ＣＤＳが生成される。このパルス信号Ｍｅｎｄ発生に応じて生成されたコードセット信号ＣＤＳによって、コード変換部１５の出力Ｊ１ないしＪ８がクロック遅延設定保持部１８に取り込まれる。
【００４５】
これにより第３制御信号生成部２０は、モード切替信号ＭＳがハイレベルの期間において、クロックＣＬＫ１の８クロック周期ごとにコードセット信号ＣＤＳおよびスタート信号ＳＴＳを出力する動作を行う。ここでコードセット信号ＣＤＳは、クロックＣＬＫ２に付与される遅延量を切り替えるためのトリガ信号である。またスタート信号ＳＴＳは、スキュー試験を開始するためのトリガ信号である。そして第３制御信号生成部２０により、判定期間ＪＴ１ないしＪＴ８が定められる。
【００４６】
判定期間ＪＴ１の詳細動作について、図１１のタイミングチャートを用いて説明する。判定期間ＪＴ１は、さらに、期間ＣＴ１１（コードセット）、期間ＣＴ１２（プリペア）、期間ＣＴ１３（スタート）、期間ＣＴ１４（セット）、期間ＣＴ１５（テスト）、期間ＣＴ１６（チェック）、期間ＣＴ１７（ジャッジ）、期間ＣＴ１８（エンド）の８つの期間を備える。これら８つの期間は、ＣＬＫ１の１クロック周期ごとに切り替えられる。
【００４７】
Ｓ３（図１０）において、クロックＣＬＫ２の遅延量の調整が行われる。遅延量の調整は、期間ＣＴ１１において行われる。期間ＣＴ１１の前半部では、クロック遅延テストコード生成部１６（図３）からはテストコード信号Ｔ［８：１］＝”０００００００１”が出力されている。出力されたテストコード信号Ｔ［８：１］＝”０００００００１”はセレクタ１７へ入力される。セレクタ１７は、ハイレベルのモード切替信号ＭＳに応じて選択したテストコード信号Ｔ［８：１］＝”０００００００１”を、セレクタ信号Ｂ［８：１］＝”０００００００１”としてクロック遅延設定保持部１８へ出力する。
【００４８】
クロック遅延設定保持部１８のフリップフロップＦＦ８＿１ないしＦＦ８＿８（図８）は、コードセット信号ＣＤＳに応じて、セレクタ信号Ｂ［８：１］＝”０００００００１”の各々をラッチする（図１１、矢印Ａ６１）。ラッチされたセレクタ信号は、設定信号Ｄ［８：１］＝”０００００００１”としてクロック遅延調整回路３へ出力される。また期間ＣＴ１１の後半部では、コードセット信号ＣＤＳに応じてテストコード信号Ｔ［８：１］＝”０００００００１”が１インクリメントされ、Ｔ［８：１］＝”００００００１０”とされる。
【００４９】
クロック遅延調整回路３（図９）では、設定信号Ｄ［８：１］＝”０００００００１”に応じて、ナンドゲートＮＤ２ないしＮＤ８の出力はハイレベルで固定され、ナンドゲートＮＤ１のみが動作状態とされる。よってインバータＩＮＶ３からナンドゲートＮＤ１、遅延タップＴＰ１ないしＴＰ８を経由する遅延経路が形成される。よって逆相クロック／ＣＬＫ１に、遅延タップＴＰ１ないしＴＰ８の８段分の遅延が与えられた信号が、クロックＣＬＫ２とされる。すなわちクロックＣＬＫ２に最大の遅延時間が与えられる。そしてクロックＣＬＫ１に対するＣＬＫ２の立ち上がりエッジの位置は、図１３のエッジＥ１の位置になる。
【００５０】
次に図１１の期間ＣＴ１２において、プリペアが行われる。プリペアでは、ハイレベルのスタート信号ＳＴＳが第４制御信号生成部１０に入力される。
【００５１】
Ｓ４（図１０）において、第１ブロックＢＫ１と第２ブロックＢＫ２との間のデータ受け渡しが正常に行われるか否かが判定される。Ｓ４は、判定期間ＣＴ１３ないしＣＴ１７によって構成される。
【００５２】
期間ＣＴ１３（図１１）において、スタートが行われる。スタートでは、第４制御信号生成部１０から、ハイレベルのパルス信号ＳＩＧ００が出力される（矢印Ａ６２）。パルス信号ＳＩＧ００は第１制御信号生成部１１のフリップフロップＦＦ１１（図４）に入力される。第１制御信号生成部１１では、逆相クロック／ＣＬＫ１の立ち上がりエッジに応じて、ハイレベルのパルス信号が制御信号ＳＩＧ１＿１ないしＳＩＧ１＿４にシフトする（図１１、領域Ｒ１）。
【００５３】
期間ＣＴ１４（セット）、期間ＣＴ１５（テスト）、期間ＣＴ１６（チェック）においては、モニタ回路４および判定結果保持部１４においてデータ受け渡しが正常に行われるか否かが判定される。具体的には、フリップフロップＦＦ１からＦＦ２への第１データ伝送路ＤＰ１でのデータ受け渡しと、フリップフロップＦＦ４からＦＦ３への第２データ伝送路ＤＰ２でのデータ受け渡しとが共に正常に行われるか否かが判定される。
【００５４】
クロックＣＬＫ２のエッジの位置が図１３のエッジＥ１の位置にある場合の、モニタ回路４における判定動作を説明する。この場合は、クロックＣＬＫ１よりもＣＬＫ２の方が遅い場合である。よって、クロックＣＬＫ１からＣＬＫ２への乗り継ぎパスでデータの受け渡しが正常に行われるか否かが重要となる。言い換えると、データ受信に必要なホールド時間にマージンがあるか否かが重要となる。
【００５５】
図１４を用いて、期間ＣＴ１４ないしＣＴ１６における詳細な動作を説明する。期間ＣＴ１４においてセットが行われる。セットでは、信号ＳＩＧ１＿１がハイレベルとされる。また、モニタ回路４内のフリップフロップＦＦ１ないしＦＦ４の出力信号が全てローレベルにセットされる。具体的には、図１４において、ハイレベルの信号ＳＩＧ１＿１に応じてクロックＦＦＣＫ１が出力される。そしてクロックＦＦＣＫ１の立ち上がりエッジに応じて、データＦＦ１Ｑがローレベルにセットされる（図１４、矢印Ａ１１）。
【００５６】
期間ＣＴ１５においてテストが行われる。テストでは、信号ＳＩＧ１＿２がハイレベルとされる。そして、第１データ伝送路ＤＰ１および第２データ伝送路ＤＰ２でのデータ受け渡しが試験される。具体的には、図１４において、信号ＳＩＧ２＿２がハイレベルとなることに応じて、セレクタ４６は端子４６Ｂ（図５）を選択する。よってデータＦＦ１ＱがデータＦＦ２Ｄとして出力される（矢印Ａ１２）。クロックＦＦＣＫ１の２つ目の立ち上がりエッジに応じて、ハイレベルの信号ＳＩＧ１＿２がフリップフロップＦＦ１に取り込まれ、データＦＦ１Ｑがハイレベルにされる（矢印Ａ１３）。そしてフリップフロップＦＦ１からＦＦ２への第１データ伝送路ＤＰ１でのデータ受け渡しが行われる。クロックＦＦＣＫ２の２つ目の立ち上がりエッジに応じて、データＦＦ２ＤがフリップフロップＦＦ２に取り込まれ、データＦＦ２Ｑがハイレベルにされる（矢印Ａ１４）。このときスキューが大きいため、時刻ｔ１１におけるフリップフロップＦＦ１のローレベルのデータＦＦ１Ｑが、フリップフロップＦＦ２に正確に受け渡しできていない。よって、クロックＣＬＫ１からＣＬＫ２への乗り継ぎパスでデータ受け渡しが正常に行われないことが検出される。
【００５７】
エクスクルーシブオアゲート４８からは、ハイレベルのデータＦＦ１ＱとハイレベルのデータＦＦ２Ｑに応じて、データ受け渡しが正常に行われなかった旨を報知するローレベルの信号ｍｏｎ１２が出力される（図１４、矢印Ａ１５）。
【００５８】
期間ＣＴ１６においてチェックが行われる。チェックでは、信号ＳＩＧ１＿３がハイレベルとされる。判定結果保持部１４のクロック生成回路５３（図６）からは、ハイレベルの信号ＳＩＧ１＿３に応じてパルス信号ＰＳ３が出力される。パルス信号ＰＳ３の立ち上がりエッジに応じて、ローレベルの信号ｍｏｎ１２がフリップフロップＦＦ５に取り込まれ、データＦＦ５Ｑがローレベルにされる（図１４、矢印Ａ１７）。
【００５９】
図１１に戻り、期間ＣＴ１７においてジャッジが行われる。ジャッジでは、信号ＳＩＧ１＿４がハイレベルとされる。判定結果保持部１４（図６）では、フリップフロップＦＦ５は信号ｍｏｎ１２を保持し、フリップフロップＦＦ６は信号ｍｏｎ２１を保持する。判定結果保持部１４のクロック生成回路５４からは、ハイレベルの制御信号ＳＩＧ１＿４に応じて、ハイレベルのパルス信号ＰＳ４が生成される。アンドゲート５１からは、信号ｍｏｎ１２とｍｏｎ２１とのアンド結果であるローレベルのジャッジ信号ＪＤが出力される。ジャッジ信号ＪＤがローレベルのときは、第１データ伝送路ＤＰ１または第２データ伝送路ＤＰ２の少なくとも何れか一方において、データ受け渡しが正常に行われなかったことを表している。ジャッジ信号ＪＤはパルス信号ＰＳ４に応じてフリップフロップＦＦ７＿１にラッチされる。
【００６０】
Ｓ５（図１０）において、判定期間ＪＴ１ないしＪＴ８の全期間でスキュー判定が行われたか否かが判断される。Ｓ５は、期間ＣＴ１８のエンドのステートで行われる。エンドのステートにおいて、モード切替信号ＭＳがハイレベルの場合には、全ての判定期間においてスキュー判定が行われていないと判断され、Ｓ３へ戻る。一方、モード切替信号ＭＳがローレベルの場合には、全ての判定期間においてスキュー判定が完了したと判断され、Ｓ６へ進む。本実施形態では、時刻ｔ４２においてモード切替信号ＭＳがハイレベルであるため、Ｓ３へ戻る。そして次の判定期間ＪＴ２が行われる。
【００６１】
判定期間ＪＴ２の期間ＣＴ２１では、クロックＣＬＫ２に付与される遅延時間が遅延タップの１タップ分減少される。具体的には、コードセット信号ＣＤＳに応じて、設定信号Ｄ［８：１］＝”０００００００１”がＤ［８：１］＝”００００００１０”に切り替えられる（矢印Ａ６３）。よって、逆相クロック／ＣＬＫ１に、遅延タップＴＰ２ないしＴＰ８の７段分の遅延が与えられた信号が、クロックＣＬＫ２とされる。
【００６２】
以後、Ｓ３およびＳ４が、判定期間ＪＴ１ないしＪＴ８の８つの期間分繰り返される。これにより、クロックＣＬＫ２に付与される遅延時間が、遅延タップ８段分から遅延タップ１段分まで１段分づつ減少される。そして８段階の遅延量を有するクロックＣＬＫ２のそれぞれにおいて、モニタ回路４におけるデータ受け渡しが正常に行われるか否かがテストされる。よって図１３において、クロックＣＬＫ２のエッジＥ１からＥ８までにおけるデータ受け渡しが順次テストされる。
【００６３】
また図１３のエッジＥ５における、スキュー判定の動作を説明する。この場合は、クロックＣＬＫ１とＣＬＫ２とのスキューが合っている場合である。図１５を用いて、モニタ回路４における、第１ブロックＢＫ１のフリップフロップＦＦ１から第２ブロックＢＫ２のフリップフロップＦＦ２へのデータ受け渡しの詳細動作を説明する。期間ＣＴ１４においてセットが行われる。クロックＦＦＣＫ１の立ち上がりエッジに応じて、データＦＦ１Ｑがローレベルにセットされる（矢印Ａ２１）。
【００６４】
期間ＣＴ１５においてテストが行われる。クロックＦＦＣＫ１の２つ目の立ち上がりエッジに応じて、ハイレベルの信号ＳＩＧ１＿２がフリップフロップＦＦ１に取り込まれ、データＦＦ１Ｑがハイレベルにされる（矢印Ａ２３）。そして第１データ伝送路ＤＰ１でのデータ受け渡しが行われる。クロックＦＦＣＫ２の２つ目の立ち上がりエッジに応じて、データＦＦ２ＤがフリップフロップＦＦ２に取り込まれ、データＦＦ２Ｑがローレベルにされる（矢印Ａ２４）。このときスキューが合っているため、時刻ｔ２１におけるフリップフロップＦＦ１のローレベルのデータＦＦ１Ｑが、フリップフロップＦＦ２に正確に受け渡しされる。よって、クロックＣＬＫ１からＣＬＫ２への乗り継ぎパスでデータ受け渡しが正常に行われることが検出される。エクスクルーシブオアゲート４８からは、データ受け渡しが正常に行われた旨を報知するハイレベルの信号ｍｏｎ１２が出力される（矢印Ａ２５）。
【００６５】
期間ＴＣＴ１６においてチェックが行われる。ハイレベルの信号ｍｏｎ１２がフリップフロップＦＦ５（図６）に取り込まれ、データＦＦ５Ｑがハイレベルにされる（矢印Ａ２７）。
【００６６】
また図１６を用いて、モニタ回路４における、第２ブロックＢＫ２のフリップフロップＦＦ４から第１ブロックＢＫ１のフリップフロップＦＦ３へのデータ受け渡しの詳細動作を説明する。期間ＣＴ１４においてセットが行われる。クロックＦＦＣＫ２の立ち上がりエッジに応じて、データＦＦ４Ｑがローレベルにセットされる（矢印Ａ３１）。期間ＣＴ１５においてテスト期間が行われる。第２データ伝送路ＤＰ２でのデータ受け渡しが行われる。クロックＦＦＣＫ１の２つ目の立ち上がりエッジに応じて、データＦＦ３ＤがフリップフロップＦＦ３に取り込まれ、データＦＦ３Ｑがローレベルにされる（矢印Ａ３４）。このときスキューが合っているため、時刻ｔ３１におけるフリップフロップＦＦ４のローレベルのデータＦＦ４Ｑが、フリップフロップＦＦ３に正確に受け渡しされる。よって、クロックＣＬＫ２からＣＬＫ１への乗り継ぎパスでデータ受け渡しが正常に行われることが検出される。エクスクルーシブオアゲート４７からは、ハイレベルのデータＦＦ４ＱとローレベルのデータＦＦ３Ｑに応じて、データ受け渡しが正常に行われた旨を報知するハイレベルの信号ｍｏｎ２１が出力される（矢印Ａ３５）。期間ＣＴ１６においてチェックが行われる。ハイレベルの信号ｍｏｎ２１がフリップフロップＦＦ６（図６）に取り込まれ、データＦＦ６Ｑがハイレベルにされる（矢印Ａ３７）。
【００６７】
アンドゲート５１からは、信号ｍｏｎ１２とｍｏｎ２１とのアンド結果であるハイレベルのジャッジ信号ＪＤが出力される。ジャッジ信号ＪＤがハイレベルのときは、第１データ伝送路ＤＰ１および第２データ伝送路ＤＰ２の両方において、データ受け渡しが正常に行われたことを表している。
【００６８】
クロックスキュー調整モードの終了動作について説明する。図１１の判定期間ＪＴ８の期間ＣＴ８８（エンド）において、モード切替信号ＭＳがローレベルとされる（時刻ｔ４３）。よって全ての判定期間においてスキュー判定が完了したと判断され、Ｓ６へ進む。このとき判定結果保持部１４には、クロックＣＬＫ２の８段階の全ての遅延量に対するスキュー試験結果が保持されている。本実施形態では、図１３の領域Ｒ３に示すように、エッジＥ４ないしＥ６のみにおいてジャッジ信号ＪＤがハイレベルとなるため、判定結果保持部１４には、判定信号Ｊ［８：１］＝”００１１１０００”が保持されている。
【００６９】
Ｓ６では、コード変換部１５（図３）において、判定結果保持部１４から出力される判定信号Ｊ１ないしＪ８が、クロックＣＬＫ２の遅延設定値を定めるコード信号Ｃ１ないしＣ８に変換される。この変換動作では、判定信号Ｊ１ないしＪ８のうちでハイレベルの信号が複数ある場合に、何れか１つの信号が選択される。このとき判定信号Ｊ１ないしＪ８のうちで、ハイレベルの信号が連続する場合には、その中央に位置する信号が選択されることで、遅延設定値のマージンが確保される。本実施形態では判定信号Ｊ［８：１］＝”００１１１０００”であり、判定信号Ｊ４ないしＪ６が連続してハイレベルである。よって中央に位置する判定信号Ｊ５が選択される。そしてコード変換部１５からは、コード信号Ｃ［８：１］＝”０００１００００”が出力される。そしてＳ７に進む。
【００７０】
Ｓ７では、クロックスキュー調整モードから通常モードへ切り替わる。この切替は、時刻ｔ４３においてモード切替信号ＭＳがローレベルとされることで行われる。セレクタ１７は、ローレベルのモード切替信号ＭＳに応じて、コード変換部１５の出力をクロック遅延設定保持部１８に接続する。よってコード信号Ｃ［８：１］＝”０００１００００”がセレクタ信号Ｂ［８：１］＝”０００１００００”として選択された上で、クロック遅延設定保持部１８に入力される。クロック遅延設定保持部１８はセレクタ信号Ｂ［８：１］＝”０００１００００”を設定信号Ｄ［８：１］＝”０００１００００”としてクロック遅延調整回路３へ出力する（矢印Ａ６４）。クロック遅延調整回路３では、設定信号Ｄ［８：１］＝”０００１００００”に応じて、クロックＣＬＫ２に遅延タップＴＰ５ないしＴＰ８の４段分の遅延が与えられる。これによりクロックＣＬＫ１に対するＣＬＫ２の立ち上がりエッジの位置は、図１３のエッジＥ５の位置になる。よってクロックスキューが最適に調整される。
【００７１】
以上詳細に説明したとおり、本実施形態に係る半導体装置１では、電源電圧ＶＤＤ２の値が変更されることに応じて、クロック遅延調整回路３がクロックＣＬＫ１とクロックＣＬＫ２との間のスキュー量を調整する。よって電源電圧ＶＤＤ２が変更される場合においても、モニタ回路４でタイミングエラーが発生しない値にスキュー量を保つ事が可能となる。よって電源電圧ＶＤＤ２の変更の影響を排除することができるため、半導体装置１の安定した動作を確保することができる。
【００７２】
また本実施形態に係る半導体装置１では、第１ブロックＢＫ１と第２ブロックＢＫ２との間でのデータ受け渡しの成否を、モニタ回路４において検出している。よって温度変化などによりスキュー量が変化する場合にも、当該スキュー量の変化をモニタ回路４によって検出することができる。そして検出結果に応じて、スキュー量をタイミングエラーが発生しない値に設定する事が可能となる。よって温度変化等の外乱の影響を排除することができるため、半導体装置１の安定動作を確保することができる。
【００７３】
またデータ受け渡し時にタイミングエラーが発生しないようにスキュー量を調整する際に、スキュー量の検出結果に基づいて調整を行う場合には、間接的にタイミングエラーを検出することになる。よって検出結果に誤差が存在する。しかし本実施形態に係る半導体装置１によれば、モニタ回路４でのデータ受け渡しの成否結果に基づいて調整を行うため、直接的にタイミングエラーを検出している。よってより正確な検出結果が得られるため、より高精度にスキュー量の調整を行うことが可能となる。
【００７４】
尚、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良、変形が可能であることは言うまでもない。本実施形態では、クロックＣＬＫ２に付与される全ての遅延時間の各々についてスキュー試験を行い、全試験が終了した後に最適な遅延時間を決定するとしたが、この形態に限られない。一つ前のスキュー試験結果に応じて、次のスキュー試験においてクロックＣＬＫ２に付与する遅延時間を決定する形態であってもよい。例えば図１３において、ますエッジＥ３でのスキュー試験が行われ、ジャッジ信号ＪＤが０（ＮＧ）の結果が得られる。そしてこの結果に基づいてエッジＥ４を選択する。次にエッジＥ４でのスキュー試験を行い、得られたジャッジ信号ＪＤ＝１（ＯＫ）の結果に基づいてエッジＥ５を選択する。次にエッジＥ５でのスキュー試験を行い、得られたジャッジ信号ＪＤ＝１（ＯＫ）の結果に基づいてエッジＥ６を選択する。次にエッジＥ６でのスキュー試験を行い、得られたジャッジ信号ＪＤ＝１（ＯＫ）の結果に基づいてエッジＥ７を選択する。次にエッジＥ７でのスキュー試験を行い、得られたジャッジ信号ＪＤ＝０（ＮＧ）の結果に基づいて試験を終了する。そして、中央値であるエッジＥ５を、最適な遅延時間が与えられたエッジとして選択する。これにより、試験時間を短縮することが可能となる。
【００７５】
また本実施形態では、モード切替信号ＭＳが入力されることに応じて、通常動作からクロックスキュー調整動作へ切り替えられ、スキュー調整が行われるとしたが、この形態に限られない。定期的に通常動作からクロックスキュー調整動作へ切り替えられるとしてもよいことは言うまでもない。これにより、温度変化等によりスキューが経時変化する場合においても、当該経時変化に追従してスキュー調整を行うことができる。よってより高精度にスキュー量の調整を行うことが可能となる。
【００７６】
また本実施形態では、電源電圧ＶＤＤ１およびＶＤＤ２は、半導体装置１の外部に存在する電源供給部から供給されるとしたが、この形態に限られない。半導体装置１の内部に電源供給部を備える形態としてもよいことは言うまでもない。
【００７７】
また本実施形態では、クロック遅延調整回路３が遅延タップＴＰ１ないしＴＰ８を備えることで、クロックＣＬＫ２に付与される遅延時間が８段階に調整される場合を説明したが、この形態に限られない。遅延時間の調整段数は任意の段数でよいことは言うまでもない。遅延時間の調整段数を多くするほど遅延時間の微調整が可能となるため、より高精度にスキュー量の調整を行うことが可能となる。
【００７８】
なお、クロックＣＬＫ１は第１クロックの一例、クロックＣＬＫ２は第２クロックの一例、電源電圧ＶＤＤ２は可変電源電圧の一例、モード切替信号ＭＳはスキュー調整動作選択信号の一例、クロック遅延調整回路３は調整回路のそれぞれ一例である。
【００７９】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
第１クロックで動作する第１ブロックと、
可変に制御される可変電源電圧が供給され第２クロックで動作する第２ブロックとを備える半導体装置において、
前記第１クロックおよび前記第２クロックに基づいて、前記第１ブロックと前記第２ブロックとの間でデータ受け渡しが正常に行われるか否かを検出するモニタ回路と、
スキュー調整動作選択信号に応じて、前記モニタ回路での前記データの受け渡しが正常に行われるように前記第１クロックと前記第２クロックとの間のスキュー量を調整する調整回路と
を備えることを特徴とする半導体装置。
（付記２）
前記調整回路は、
調整を行う旨の信号が定期的に入力されることに応じて、前記スキュー量の調整を行う
ことを特徴とする付記１に記載の半導体装置。
（付記３）
前記調整回路は、前記第１クロックに対して前記モニタ回路の検出結果に応じた遅延時間を付与したクロックを前記第２クロックとして出力する
ことを特徴とする付記１または付記２に記載の半導体装置。
（付記４）
前記調整回路は接続段数が可変に制御される複数の遅延段を備え、前記モニタ回路の検出結果に応じて前記接続段数を制御する
ことを特徴とする付記１ないし３に記載の半導体装置。
（付記５）
前記モニタ回路は、
前記第１ブロックから前記第１クロックに基づいて出力された前記データが前記第２ブロックにおいて前記第２クロックに基づいて正常に受信されたか否かを検出する第１データ伝送路と、
前記第２ブロックから前記第２クロックに基づいて出力された前記データが前記第１ブロックにおいて前記第１クロックに基づいて正常に受信されたか否かを検出する第２データ伝送路と
を備えることを特徴とする付記１に記載の半導体装置。
（付記６）
前記第１データ伝送路は、
前記第１ブロックに備えられ、前記第１クロックに応じてデータを出力する第１フリップフロップと、
前記第２ブロックに備えられ、前記第２クロックに応じて前記第１フリップフロップの出力データを受け渡しする第２フリップフロップとを備え、
前記第２データ伝送路は、
前記第２ブロックに備えられ、前記第２クロックに応じてデータを出力する第３フリップフロップと、
前記第１ブロックに備えられ、前記第１クロックに応じて前記第３フリップフロップの出力データを受け渡しする第４フリップフロップと
を備えることを特徴とする付記５に記載の半導体装置。
（付記７）
第１電源電圧が供給され第１クロックで動作する第１ブロックと、
可変に制御される可変電源電圧が供給され第２クロックで動作する第２ブロックとを備える半導体装置の制御方法において、
前記第１ブロックと前記第２ブロックとの間のデータ受け渡しが正常に行われるか否かを検出するモニタ回路と、
前記モニタ回路の検出結果に応じて前記第１クロックと前記第２クロックとの間のスキュー量を調整する調整回路と
を備えることを特徴とする半導体装置の制御方法。
（付記８）
第１クロックで動作する第１ブロックと、
可変に制御される可変電源電圧が供給され第２クロックで動作する第２ブロックとを備える電子機器において、
前記第１クロックおよび前記第２クロックに基づいて、前記第１ブロックと前記第２ブロックとの間でデータ受け渡しが正常に行われるか否かを検出するモニタ回路と、
スキュー調整動作選択信号に応じて、前記モニタ回路での前記データの受け渡しが正常に行われるように前記第１クロックと前記第２クロックとの間のスキュー量を調整する調整回路と
を備えることを特徴とする電子機器。
【図面の簡単な説明】
【００８０】
【図１】半導体装置６０のＤＶＦＳの説明図
【図２】半導体装置１の回路図
【図３】制御回路２の詳細回路図
【図４】第１制御信号生成部１１等の詳細回路図
【図５】モニタ回路４の詳細回路図
【図６】判定結果保持部１４の詳細回路図
【図７】第３制御信号生成部２０の詳細回路図
【図８】クロック遅延設定保持部１８の詳細回路図
【図９】クロック遅延調整回路３の詳細回路図
【図１０】半導体装置１の動作フローチャート
【図１１】半導体装置１のタイミングチャート
【図１２】第３制御信号生成部２０のタイミングチャート
【図１３】クロックスキューの概略図
【図１４】モニタ回路４のタイミングチャート（その１）
【図１５】モニタ回路４のタイミングチャート（その２）
【図１６】モニタ回路４のタイミングチャート（その３）
【図１７】従来の携帯機器用の半導体集積回路２０１の構成例
【符号の説明】
【００８１】
１  半導体装置
２  制御回路
３  クロック遅延調整回路
４  モニタ回路
１０  第４制御信号生成部
１１  第１制御信号生成部
１２  第２制御信号生成部
１４  判定結果保持部
１５  コード変換部
１６  クロック遅延テストコード生成部
１７  セレクタ
１８  クロック遅延設定保持部
２０  第３制御信号生成部
ＳＩＧ１＿１ないしＳＩＧ１＿４、ＳＩＧ２＿１ないしＳＩＧ２＿３  制御信号
ＳＩＧ００  パルス信号
ＣＤＳ  コードセット信号
ＳＴＳ  スタート信号
ＣＬＫ１、ＣＬＫ２  クロック
ＶＤＤ１およびＶＤＤ２  電源電圧
【図１】
0005119986.tif 000002
【図２】
0005119986.tif 000003
【図３】
0005119986.tif 000004
【図４】
0005119986.tif 000005
【図５】
0005119986.tif 000006
【図６】
0005119986.tif 000007
【図７】
0005119986.tif 000008
【図８】
0005119986.tif 000009
【図９】
0005119986.tif 000010
【図１０】
0005119986.tif 000011
【図１１】
0005119986.tif 000012
【図１２】
0005119986.tif 000013
【図１３】
0005119986.tif 000014
【図１４】
0005119986.tif 000015
【図１５】
0005119986.tif 000016
【図１６】
0005119986.tif 000017
【図１７】
0005119986.tif 000018