(57)【要約】【課題】低コストで電流ピークを効果的に抑制することができる半導体装置を得る。【解決手段】ステップＳＴ１において、モジュールＡ２１とモジュールＢ２２とのクロック位相を一致させた後、ステップＳＴ２において、モジュールＡ２１からモジュールＢ２２にデータ転送を行う。その後、ステップＳＴ３において、モジュールＡ２１のクロックＣＬＫＡとモジュールＢ２２のクロックＣＬＫＢとのクロック位相差を所定の大きさに設定した後、ステップＳＴ４において、モジュールＡ２１とモジュールＢ２２とがそれぞれ独立に所定の演算処理を行う。そして、ステップＳＴ５において、モジュールＡ２１のクロックＣＬＫＡとＣＰＵ２５のクロックＣＬＫＰとの位相を一致させた後、ステップＳＴ６においてモジュールＡ２１の演算結果をＣＰＵ２５で読み取る。【選択図】図１６
2008102797.tif 000002
【特許請求の範囲】
【請求項１】
基板上に配置され複数のクロックに同期して動作する複数のモジュールと、
前記複数のモジュールに前記複数のクロックを供給するクロック供給手段とを備え、前記複数のクロックは互いに位相が異なるように供給され、
前記複数のモジュールは、前記基板上において第１の距離を隔てて配置される第１のモジュール対と、前記基板上において前記第１の距離より長い第２の距離を隔てて配置される第２のモジュール対とを含み、
前記クロック供給手段は、前記第１のモジュール対間のクロックの位相差が、前記第２のモジュール対間のクロック信号の位相差より小さくなるように、前記複数のクロックを供給することを特徴する、
半導体装置。
【請求項２】
基板上に配置され複数のクロックに同期して動作する複数のモジュールと、
前記複数のモジュールに前記複数のクロックを供給するクロック供給手段とを備え、
前記複数のモジュールはデータ転送対象となる第１及び第２のモジュールを含み、前記複数のクロックは前記第１及び第２のモジュールに供給する第１及び第２のクロックを含み、
前記クロック供給手段は、前記第１及び第２のモジュール間のデータ転送時に前記第１及び第２のクロックの位相を一致させ、前記データ転送をしない時に前記第１及び第２のクロック間に所定の位相差を設けることを特徴とする、
半導体装置。
【請求項３】
基板上に配置され複数のクロックに同期して動作する複数のモジュールと、
前記複数のモジュールに前記複数のクロックを供給するクロック供給手段とを備え、
前記複数のモジュールは共通に接続されるバスを介して互いにデータ転送を行う第１及び第２のモジュールを含み、前記複数のクロックは前記第１及び第２のモジュールに供給する第１及び第２のクロックを含み、前記バスを介したデータ転送時のクロックであるバスクロックが予め設定され、
前記クロック供給手段は、前記第１及び第２のモジュール間のデータ転送時に前記第１及び第２のクロックを前記バスククロックの位相に一致させ、前記データ転送をしない時に前記第１及び第２のクロック間に所定の位相差を設けることを特徴する、
半導体装置。
【請求項４】
基板上に配置され複数のクロックに同期して動作する複数のＣＰＵと、
前記複数のＣＰＵに前記複数のクロックを供給するクロック供給手段とを備え、
前記複数のＣＰＵは各々が内部に１次キャッシュを有し、共通に接続される２次キャッシュにアクセスし、
前記クロック供給手段は、前記複数のＣＰＵに供給される複数のクロックを互いに異なる位相差に設定し、前記２次キャッシュへのアクセス時のみ前記２次キャッシュへのアクセスを所望するＣＰＵのクロックと前記２次キャッシュのクロックとの位相を一致させることを特徴とする、
半導体装置。
【請求項５】
基板上に配置され複数のクロックに同期して動作する複数のモジュールと、
前記複数のモジュールに前記複数のクロックを供給するクロック供給手段とを備え、前記複数のクロックは互いに位相が異なるように供給され、
前記複数のクロック間の基準となる基準クロックが予め設定され、
前記クロック供給手段は、前記複数のモジュールそれぞれの動作状態に基づき、動作状態がより高速動作になるに従い、前記複数のクロックの位相を前記基準クロックの位相に近づけるように、前記複数のクロックを供給することを特徴する、
半導体装置。
【請求項６】
請求項２記載の半導体装置であって、
前記クロック供給手段は、前記第１及び第２のモジュールのデータ転送時に前記第１及び第２のクロックの位相を一致させる際、前記第１及び第２のモジュールのうち低速動作状態のモジュールのクロックの位相を変更して行うことを特徴する、
半導体装置。
【請求項７】
請求項１ないし請求項６のうち、いずれか１項に記載の半導体装置であって、
スキャンテスト時において前記複数のクロックの位相を強制的に一致させる位相設定回路をさらに備える、
半導体装置。
【請求項８】
請求項１ないし請求項６のうち、いずれか１項に記載の半導体装置であって、
前記複数のモジュールはスキャンテスト対象となり、スキャンテスト時にデータ転送を行う第１及び第２のテスト対象モジュールを含み、
スキャンテストにおいて実際に前記複数のモジュールを動作させ、その動作結果を取り込むキャプチャ時において、前記第１及び第２のテスト対象モジュールに供給されるクロックの位相差を強制的に最大にする位相設定回路をさらに備える、
半導体装置。
【請求項９】
基板上に配置され複数のクロックに同期して動作する複数のモジュールと、
前記複数のモジュールに前記複数のクロックを供給するクロック供給手段とを備え、前記複数のクロックは互いに位相が異なるように供給され、
前記複数のモジュールはデータ転送対象となる第１及び第２のモジュールを含み、前記複数のクロックは前記第１及び第２のモジュールに供給する第１及び第２のクロックを含み、
前記クロック供給手段は前記第１及び第２のクロック間に所定の位相差を設け、
前記半導体装置は、
前記第１及び第２のモジュール間に設けられ、前記第１及び第２のモジュール間のデータ転送動作を、前記第１あるいは第２のクロックによって決定される遅延時間で遅延させる遅延手段をさらに備える、
半導体装置。
【請求項１０】
請求項９記載の半導体装置であって、
前記遅延手段はスキャンテスト時において遅延機能が強制的に無効化される遅延無効機能を有する、
半導体装置。
【請求項１１】
請求項１ないし請求項１０のうち、いずれか１項に記載の半導体装置であって、
前記クロック供給手段は、
各々が基準クロックを遅延させて前記複数のクロックを得る複数の遅延手段と、
前記複数の遅延手段それぞれの遅延時間を制御する遅延時間制御手段とを備え、
前記複数の遅延手段はそれぞれ遅延段数が可変制御可能な複数の遅延素子を含む、
半導体装置。
【請求項１２】
請求項１ないし請求項１１のうち、いずれか１項に記載の半導体装置の前記クロック供給手段と等価な回路を有する第１のチップと、
前記第１のチップと異なる第２のチップとを備え、前記第２のチップは前記第１のチップの前記クロック供給手段により供給される複数のクロックのうち一のクロックを第２チップ用クロックとして受ける、
半導体集積回路装置。
【請求項１３】
請求項１２記載の半導体集積回路装置であって、
前記第２のチップは
各々が前記第２チップ用クロックを遅延させて複数のクロックを得る複数の遅延手段と、
前記複数の遅延手段それぞれの遅延時間を制御する遅延時間制御手段とを備える、
半導体集積回路装置。
【請求項１４】
基板上に配置された複数のモジュールに複数のクロックを供給するクロック供給手段を有する半導体装置の許容位相差測定回路であって、前記複数のモジュールはデータ転送対象となる第１及び第２のモジュールを含み、前記複数のクロックは前記第１及び第２のモジュールに供給する第１及び第２のクロックを含み、前記クロック供給手段は前記第１及び第２のクロック間に所定の位相差を設け、
前記許容位相差測定回路は、
第１及び第２の試験用クロックに同期して前記第１及び第２のモジュールと等価なデータ転送動作が可能な第１及び第２の試験用回路と、
前記第１及び第２の試験用回路のデータ転送経路上に設けられ前記第１及び第２の試験用回路間のデータ転送に所定の遅延時間が設定可能な試験用遅延部とを備える、
許容位相差測定回路。
【請求項１５】
請求項１４記載の許容位相差測定回路であって、
前記所定の遅延時間は前記半導体装置のクリティカルパスの遅延時間を含む、
許容位相差測定回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のモジュールにクロックを供給するクロック供給手段を有する半導体装置（半導体集積回路を含む概念）に関し、特にクロック供給手段によるクロックスキュー（位相）調整内容に関する。
【背景技術】
【０００２】
従来、各モジュールのクロックの位相は、チップごとに固定であり、モジュール間のクロック位相差はできるだけ小さくするように作られていた。ＬＳＩ内部のクロックスキューを低減するために、H-Treeや等長配線によるクロックツリー、メッシュ構造のクロック配線などの技術があり、日々研究されている。
【０００３】
また、ＣＡＤツールではCTS(Clock tree synthesis)ツールなどにより、クロックスキューを“０”に近づけるようクロック回路を挿入する技術も研究されている。
【０００４】
マイコン等のＬＳＩ内部回路はクロック同期で設計されているものが多く、クロックのエッジに合わせて多くの回路が動作する。特に最先端の微細プロセスを使用したＬＳＩでは、ＬＳＩの周囲条件や製造によるばらつきが大きいため、それらの変動に対してマージンを持つ必要がある。したがって、ＬＳＩ内部回路の一般的な動作において、クロックのエッジ直後の時間帯に大半の回路が動作する一方、エッジ直後から比較的時間が経過し次のエッジに近づく頃はほとんどの回路は動作しない傾向が強い。
【０００５】
したがって、ＬＳＩで消費される電力の多くはクロックエッジ直後に消費されるため、電源電流のピーク値は平均電流に対してかなり大きくなる。
【０００６】
電流ピークが大きいと、ＬＳＩ内部の電源供給配線の抵抗により電圧降下が生じ、回路の誤動作や、動作速度の低下が起こるという問題がある。また、電流ピークが大きいと、ＥＭＩ（Electromagnetic Interference；電磁妨害）ノイズも大きくなり、ＬＳＩ外部への影響も懸念される。
【０００７】
上記問題を解決する一般的な方法として、低インピーダンスな電源配線により、電流ピークでも電圧降下が起きないようにする方法がある。しかしこの方法は電源配線を太く配線する必要があるため、ＬＳＩのダイ面積（チップ面積）が大きくなるという問題がある。また、ＥＭＩは低インピーダンスな電源配線では解決しない。
【０００８】
上記問題を解決する一般的な別の方法として、パイパスコンデンサ(パスコン)を使用する方法がある。ＬＳＩ内部にゲート酸化膜でコンデンサを作る方法がある。しかしながら、ＬＳＩ内蔵パスコンを挿入すると、その分ＬＳＩダイ面積が大きくなるという問題がある。またゲート酸化膜など限られた材質で作られるため、様々な周波数成分に対応するのは難しく、実際はそれほど効果は高くない。
【０００９】
上記問題点を解決するための技術として、各々がクロックに同期して所定の動作を行う複数のモジュールに対し、モジュールごとに位相をずらしたクロックを供給する位相シフト型クロックドライバーが例えば特許文献１に開示されている。上記位相シフト型クロックドライバーの上述したクロック供給により、スイッチング電流のピークを分散させ、電源ノイズを低減している。また、特許文献１では、位相をずらした場合の、各モジュール出力の位相ずれを吸収する回路にも言及している。
【００１０】
【特許文献１】特開２００２−１４７４２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
モジュールごとに位相(スキュー)を変えた場合、その位相差をどこかで吸収する必要がある。そうしないとモジュール間の信号転送がクロック位相差より短かった場合、レーシングにより回路は誤動作する(ホールドエラー（hold error）)。レーシングによる誤動作を防ぐため、モジュール間の信号転送にはモジュール間のクロックスキュー以上の遅延が必ず付くように遅延バッファを挿入する必要があるが、この方法では遅延バッファによる回路増により、面積と電力が増大する問題点があった。
【００１２】
特許文献１では位相吸収マクロを設けてクロック位相差の吸収を行っているが、位相吸収マクロを設けることによる回路増により、面積と電力が増大する問題点が生じてしまう。
【００１３】
また、クロック位相差分だけ実際のクロック周期より短い時間間隔で信号転送を行う必要があるため、モジュール間転送がクリティカルパスになっている場合、動作周波数を下げることになり、性能が劣化してしまう問題点もあった。
【００１４】
このように、パスコンや電源配線の低インピーダンス化による電流ピーク対策は、面積増を招き高コストとなる問題点があり、特許文献１に開示された位相シフト型クロックドライバーによりモジュールごとに固定の位相差をつけた場合も、回路増による高コスト化と動作周波数低下による性能劣化の問題点があった。
【００１５】
この発明は上記問題点を解決するためになされたもので、その目的は、低コストで電流ピークを効果的に抑制することができるクロック供給手段を有する半導体装置を提供することである。この発明の他の目的は、電流ピークを効果的に抑制しながら誤動作を効果的に抑制することができるクロック供給手段を有する半導体装置を得ることである。
【課題を解決するための手段】
【００１６】
本願発明の一実施の形態のＬＳＩは、複数のクロックを供給するクロック供給手段と基板上に配置され上記複数のクロックに同期して動作する複数のモジュールを備えている。
【００１７】
そして、クロック供給手段は、データ転送対象となるモジュール間のデータ転送時に互いのクロックの位相を一致させ、データ転送をしない時に互いのクロックに位相差を設けている。
【発明の効果】
【００１８】
上記構成により、上記一実施の形態のＬＳＩは、低コストで電流ピークを効果的に抑制し、データ転送時においても誤動作が生じることはない。
【発明を実施するための最良の形態】
【００１９】
＜基本構成＞
（第１のＬＳＩ）
図１は本願発明の半導体装置であるＬＳＩを実現するための第１のＬＳＩの基本構成を示す説明図である。
【００２０】
同図に示すように、第１のＬＳＩはクロックＣＬＫ２０を供給するＰＬＬ回路２０と、モジュールＡ２１、モジュールＢ２２及びＣＰＵ２５から構成されている。モジュールＡ２１はクロックＣＬＫ２０が可変遅延回路３１を介して得られるクロックＣＬＫＡを受け、クロックＣＬＫＡに同期して動作する。モジュールＢ２２はクロックＣＬＫ２０が可変遅延回路３２を介して得られるクロックＣＬＫＢを受け、クロックＣＬＫＢに同期して動作を行う。ＣＰＵ２５はクロックＣＬＫ２０が可変遅延回路３３を介して得られるクロックＣＬＫＰを受け、クロックＣＬＫＰに同期して動作する。なお、モジュールＡ２１，モジュールＢ２２等のモジュールは、クロックに同期して動作する回路全般を意味する。
【００２１】
ＣＰＵ２５は可変遅延回路３１〜３３に与える制御信号ＳＣＴ１〜ＳＣＴ３によって、可変遅延回路３１〜３３の遅延時間をそれぞれ個別に制御する。このように、可変遅延回路３１〜３３の遅延時間をＣＰＵ２５によって制御することにより、モジュールＡ２１、モジュールＢ２２及びＣＰＵ２５に供給されるクロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＰ間の位相を可変制御することができる。
【００２２】
上記のように、第１のＬＳＩのクロック供給手段（ＰＬＬ回路２０、ＣＰＵ２５、可変遅延回路３１〜３３）は可変遅延回路３１〜３３それぞれの遅延時間をＣＰＵ２５によって制御することにより、ＰＬＬ回路２０から発生する１つの基準クロックＣＬＫ２２から、互いに位相の異なる複数のクロック（クロックＣＬＫＡ，クロックＣＬＫＢ及びクロックＣＬＫＰ）を比較的簡単な回路構成で得ることができる。
【００２３】
（可変遅延回路）
図２は可変遅延回路３１（３２，３３）の内部構成の第１の例を示す回路図である。同図に示すように、可変遅延回路３１の入力信号ＩＮを受ける信号線５６がｎ個のマルチプレクサＭＸ１〜ＭＸｎの一方入力に接続される。遅延バッファＤＢ１〜ＤＢｎはマルチプレクサＭＸ１〜ＭＸｎの出力信号を入力部に受け、遅延バッファＤＢ１〜ＤＢ（ｎ−１）の出力がマルチプレクサＭＸ２〜ＭＸｎの他方入力に接続される。遅延用バッファＤＢｎの出力信号が可変遅延回路３１の出力信号ＯＵＴとなる。
【００２４】
そして、マルチプレクサＭＸ１〜ＭＸｎはそれぞれ制御信号ＣＴ１〜ＣＴｎの従い、一方入力及び他方入力より得られる信号のうち、一の信号を出力信号として出力する。制御信号ＣＴ１〜ＣＴｎが図１で示した第１のＬＳＩにおけるＣＰＵ２５から可変遅延回路３１〜３３に付与される制御信号ＳＣＴ１〜ＳＣＴ３それぞれに相当する。
【００２５】
このような構成の可変遅延回路３１の第１の例は、制御信号ＣＴ１〜ＣＴｎに基づき、１段（遅延用バッファＤＢｎ）〜ｎ段（遅延バッファＤＢ１〜ＤＢｎ）を適宜選択することにより、可変遅延回路３１による遅延時間を可変制御することができる。
【００２６】
図３は可変遅延回路３１（３２，３３）の内部構成の第２の例を示す回路図である。同図に示すように、ｎ個の遅延用バッファＢＦ１〜ＢＦｎが直列に接続され、初段の遅延用バッファＢＦ１の入力部に可変遅延回路３１の入力信号ＩＮを受ける。遅延用バッファＢＦ１〜ＢＦｎの出力はマルチプレクサ３４に入力される。マルチプレクサ３４は制御信号ＣＴＬを受け、制御信号ＣＴＬに従い、遅延用バッファＢＦ１〜ＢＦｎのうち、いずれか一の遅延用バッファＢＦより得られる出力信号を選択して出力信号ＯＵＴをして出力する。制御信号ＣＴＬが図１で示した第１のＬＳＩにおけるＣＰＵ２５から可変遅延回路３１〜３３に付与される制御信号ＳＣＴ１〜ＳＣＴ３それぞれに相当する。
【００２７】
このように、可変遅延回路３１の第２の例は、制御信号ＣＴＬに基づき、１段（遅延用バッファＤＢ１）〜ｎ段（遅延バッファＤＢ１〜ＤＢｎ）を適宜選択することにより、可変遅延回路３１による遅延時間を可変制御することができる。
【００２８】
図４は可変遅延回路３１（３２，３３）の内部構成の第３の例を示す回路図である。同図に示すように、バッファ３５は入力信号ＩＮを入力部に受け、その出力部が信号線５７を介してバッファ３６の入力部に電気的に接続され、バッファ３６の出力信号が出力信号ＯＵＴとなる。
【００２９】
そして、バッファ３５，バッファ３６間の信号線５７にｎ個のＮ型の選択トランジスタＳＱ１〜ＳＱｎのドレインが電気的に共通に接続され、選択トランジスタＳＱ１〜ＳＱｎのソースはキャパシタＣＰ１〜ＣＰｎを介して接地されるとともに、ゲートに制御信号ＣＴ１〜ＣＴｎを受ける。これら制御信号ＣＴ１〜ＣＴｎが図１で示した第１のＬＳＩにおけるＣＰＵ２５から可変遅延回路３１〜３３に付与される制御信号ＳＣＴ１〜ＳＣＴ３それぞれに相当する。
【００３０】
このように、可変遅延回路３１の第３の例は、制御信号ＣＴ１〜ＣＴｎに基づき、選択トランジスタＳＱ１〜ＳＱｎを選択的にｋ（ｋ＝１〜ｎ）個分オン状態にしてｋ個のキャパシタＣＰによる負荷容量を信号線５７に与えることにより、可変遅延回路３１による遅延時間を可変制御することができる。
【００３１】
可変遅延回路３１の第１及び第２の例（図２及び図３）は第３の例（図４）に比べ以下の利点を有する。第３の例はキャパシタＣＰ１〜ＣＰｎに対応して選択トランジスタＳＱ１〜ＳＱｎを設けることにより、各々単独のトランジスタを用いて負荷容量を調整しているため、近年よく用いられているセルライブラリを使った設計手法が使えない。このため、アナログ回路の場合と同じく、回路の検証が非常に手間がかかり、またＬＳＩに組み込む際に特別なライブラリの形にする必要があるなど、手間を要し特別な技術が必要なる。
【００３２】
一方、第１及び第２の例では、遅延段数が可変制御可能な複数の遅延素子（遅延バッファＤＢ１〜ＤＢｎ，遅延用バッファＢＦ１〜ＢＦｎ）を用いているため、一般的に使われるスタンダードセルで構成できるため、セルライブラリを使った設計手法が適用でき、容易に設計できるという利点を有する。
【００３３】
（システム構成例）
図５は図１で示した第１のＬＳＩのバス上での接続状況を含む第１のシステム構成例を示すブロック図である。同図に示すように、モジュールＡ２１、ＣＰＵ２５及び位相制御レジスタ２４がバス４０に信号授受可能に接続され、モジュールＢ２２がバス４０に接続されていない。なお、モジュールＡ２１，モジュールＢ２２間のデータ転送はバス４０を介することなく直接行われる。
【００３４】
位相制御レジスタ２４にはモジュールＡ２１、モジュールＢ２２及びＣＰＵ２５のクロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＰの位相決定用の制御情報が格納されている。ＣＰＵ２５はバス４０を介して位相制御レジスタ２４にアクセスすることにより得られる制御情報に基づき、図１で示した可変遅延回路３１〜３３に付与する制御信号ＳＣＴ（ＳＣＴ１〜ＳＣＴ３）を出力する。なお、位相制御レジスタ２４に付与されるクロックＣＬＫ２４の位相差決定用の制御情報を位相制御レジスタ２４自身が格納し、ＣＰＵ２５によってクロックＣＬＫ２４用の可変遅延回路（図示せず）の遅延時間を制御する構成も考えられる。
【００３５】
図６は図１で示した第１のＬＳＩのバス上での接続状況を含む第２のシステム構成例を示すブロック図である。同図に示すように、モジュールＡ２１及びＣＰＵ２５がバス４０に信号授受可能に接続され、モジュールＢ２２がバス４０に接続されていない。そして、ＣＰＵ２５内に位相制御レジスタ２６が設けられる。なお、モジュールＡ２１，モジュールＢ２２間のデータ転送はバス４０を介することなく直接行われる。
【００３６】
位相制御レジスタ２６にはモジュールＡ２１、モジュールＢ２２及びＣＰＵ２５のクロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＰ決定用の制御情報が格納されている。ＣＰＵ２５は内部の位相制御レジスタ２６から得られる制御情報に基づき、図１で示した可変遅延回路３１〜３３に付与する制御信号ＳＣＴを出力する。
【００３７】
（位相制御レジスタ）
図７は位相制御レジスタ２４（２６）のＣＰＵ２５から見たメモリマップを示す説明図である。同図に示すように、アドレス００００＿１０００〜アドレス００００＿１ＦＦＣが位相制御レジスタ２４のアドレスとして割り当てられ、モジュールＡ２１用としてアドレス００００＿１０００（〜１００３）が割り当てられ、モジュールＢ２２用としてアドレス００００＿１００４（〜１００７）が割り当てられ、ＣＰＵ２５用としてアドレス００００＿１１００（〜１１０３）が割り当てられる。１アドレス当たり８ビットの情報が格納可能であるため、モジュールＡ２１、モジュールＢ２２及びＣＰＵ２５用の制御情報としてそれぞれ４アドレス分の３２ビットの情報が格納可能にマッピングされている。
【００３８】
図８は位相制御レジスタ２４（２６）の内部構成例を示す説明図である。同図に示すように、位相制御レジスタ２４は３２ビット（ｂ０〜ｂ３１）の制御情報が格納可能あり、同図に例ではビットｂ１６〜ｂ３１を制御情報用ビットとして格納している。
【００３９】
図９は図８で示した位相制御レジスタ２４の格納内容と制御情報との関係を表形式で示す説明図である。同図に示すように、ビットｂ１６〜ｂ３１が制御情報として認識されており、ビットｂ１６〜ｂ３１において、“１”が設定される箇所によって、「遅延無し」〜ディレイライン１５段分遅延までの遅延時間が決定する。図８の例示ではビットｂ１６〜ｂ３１が“1100_0000_0000_0000”となっており、図９によって「遅延無し」が制御情報であることが認識できる。
【００４０】
このように、ＣＰＵ２５は位相制御レジスタ２４（２６）内の制御情報を認識して、可変遅延回路３１〜３３に制御信号ＳＣＴ１〜ＳＣＴ３を与えることにより、可変遅延回路３１〜３３の遅延時間を可変制御することができる。
【００４１】
なお、図９で示した制御情報では、図２で示す可変遅延回路３１の仕様としてディレイライン（遅延用バッファＤＢ）の段数を指示すべく、ビットｂ１６〜ｂ３１のうち最大２箇所を“１”にする仕様になっている。しかし、この仕様でなくても、例えば１６段階の遅延時間を設定する場合、４ビットのレジスタで０〜１５を指定する仕様とし、ＣＰＵ２５で認識して制御信号ＳＣＴを生成する構成も考えられる。
【００４２】
また、図３及び図４で示した構成の可変遅延回路３１に対しては、それぞれ異なる最適なビットアサインがあるので、それぞれに合った仕様にすればよい。ユーザーが使いやすいように、例えば１６段階の場合４ビットのレジスタで０〜１５を指定する仕様とするのもよい。また、図９の例では１６段階の遅延時間を調整可能にしたが、調整段階は１６より多くても少なくても構わない。搭載するＬＳＩに最適な調整幅を持たせればよい。
【００４３】
したがって、上記した第１のＬＳＩに対して、ユーザーはプログラムに位相制御レジスタ２４（２６）に書き込み内容（制御情報）を記述して、それぞれのモジュールごとに、その時の使用状況に応じた最適な位相差を設定することにより、電源ノイズ低減、ＥＭＩ低減を行うことができる。
【００４４】
第１のＬＳＩによって以下の効果が期待できる。複数のクロックに位相差を設けることにより、電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる。
【００４５】
ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる。
【００４６】
（第２のＬＳＩ）
図１０は本願発明のＬＳＩを実現するための第２のＬＳＩの構成例を示す説明図である。
【００４７】
同図に示すように、第２のＬＳＩはクロックＣＬＫを供給するＰＬＬ回路２７と、モジュールＡ２１、モジュールＢ２２及びＣＰＵ２８から構成されている。モジュールＡ２１は選択回路４１を介して得られるクロックＣＬＫＡを受け、クロックＣＬＫＡに同期して動作する。モジュールＢ２２は選択回路４２を介して得られるクロックＣＬＫＢを受け、クロックＣＬＫＢに同期して所定の動作を行う。ＣＰＵ２８は選択回路４３を介して得られるクロックＣＬＫＰを受け、クロックＣＬＫＰに同期して動作する。
【００４８】
図１１はＰＬＬ回路２７より生成されるクロックＣＬＫ２１，ＣＬＫ２２の波形を示すタイミング図である。同図に示すように、クロックＣＬＫ２１とクロックＣＬＫ２２とは位相差ΔＴが生じている。
【００４９】
図１２はＰＬＬ回路２７の第１の構成例におけるオッシレータ部２９の構成を示す説明図である。なお、ＰＬＬ回路２７の全体構成は通常のＰＬＬ回路の構成を呈している。
【００５０】
同図に示すように、オッシレータ部２９は５段のインバータのループ接続により構成され、４段目のインバータの出力をクロックＣＬＫ２１、最終段の出力をクロックＣＬＫ２２とすることにより、クロックＣＬＫ２１，ＣＬＫ２２間にインバータ１段分の位相差を設けている。なお、周波数制御入力ｆｉｎはオッシレータ部２９の発振周波数制御用の電圧信号である。
【００５１】
図１３はＰＬＬ回路２７の第２の構成例を示すブロック図である。同図に示すように、ＰＬＬ回路２７より基準となるクロックＣＬＫ２０を分周期２７ｂが受け、ＰＬＬ回路２７よりクロックＣＬＫ２０を分周してクロックＣＬＫ２１を得る。
【００５２】
Ｄフリップフロップ２７ｃはＤ入力にクロックＣＬＫ２１を受け、ＣＬＫ入力にクロックＣＬＫ２０を受ける。Ｄフリップフロップ２７ｃのＱ出力より得られる信号をクロックＣＬＫ２２として出力する。
【００５３】
このような構成において、クロックＣＬＫ２０の立ち上がりエッジに同期してクロックＣＬＫ２１を生成し、クロックＣＬＫ２０の立ち上がりエッジに同期してＤフリップフロップ２７ｃにＤ入力をラッチさせた場合、クロックＣＬＫ２１，ＣＬＫ２２間において、分周期２７ｂの処理時間及びＤフリップフロップ２７ｃの処理時間に基づく位相差を設けることができる。
【００５４】
図１０に戻って、上述したように、ＰＬＬ回路２７は位相が異なる２種類のクロックＣＬＫ２１，ＣＬＫ２２を生成して、選択回路４１〜４３それぞれに付与する。ＣＰＵ２８は選択回路４１〜４３に制御信号ＳＣＴ１１〜ＳＣＴ１３を付与し、選択回路４１〜４３は制御信号ＳＣＴ１１〜ＳＣＴ１３に基づきクロックＣＬＫ２１，ＣＬＫ２２のうちの一方をクロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＰとして出力する。
【００５５】
このように、ＣＰＵ２８は制御信号ＳＣＴ１１〜ＳＣＴ１３によって、選択回路４１〜４３の選択内容をそれぞれ個別に制御することにより、モジュールＡ２１、モジュールＢ２２及びＣＰＵ２８に供給されるクロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＰ間の位相を可変制御することができる。
【００５６】
なお、図１０で示した第２のＬＳＩでは、２種類のクロックＣＬＫ２１，ＣＬＫ２２のいずれかを選択する例を示したが、３つのクロックまたはそれ以上の位相の違うクロックを選択する構成に拡張することもも勿論可能である。
【００５７】
また、制御信号ＳＣＴ１１〜ＳＣＴ１３の内容は、第１のＬＳＩと同様に位相制御レジスタ２４に格納された制御情報に基づき決定することができる。
【００５８】
このような構成の第２のＬＳＩにおいて、第１のＬＳＩと同様、ユーザーはプログラムから、それぞれのモジュールごとに、その時の使用状況に応じた最適な位相差をつけることにより、電源ノイズ低減、ＥＭＩ低減を行うことができる。
【００５９】
上述したように、第２のＬＳＩは、電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【００６０】
加えて、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【００６１】
（第３のＬＳＩ）
図１４は本願発明のＬＳＩを実現するための第３のＬＳＩの基本構成を示す説明図である。
【００６２】
同図に示すように、ＬＳＩはクロックＣＬＫ２０を供給するＰＬＬ回路２０と、モジュールＡ２１、モジュールＢ２２、ＣＰＵ３０及びクロック制御回路３７から構成されている。モジュールＡ２１はクロックＣＬＫ２０が可変遅延回路３１を介して得られるクロックＣＬＫＡを受け、クロックＣＬＫＡに同期して動作する。モジュールＢ２２はクロックＣＬＫ２０が可変遅延回路３２を介して得られるクロックＣＬＫＢを受け、クロックＣＬＫＢに同期して動作する。ＣＰＵ３０はクロックＣＬＫ２０が可変遅延回路３３を介して得られるクロックＣＬＫＰを受け、クロックＣＬＫＰに同期して動作する。クロック制御回路３７はＣＰＵ３０とは別途に設けられ、クロックＣＬＫ２０が遅延回路３８を介して得られるクロックＣＬＫＸに同期して動作する。
【００６３】
クロック制御回路３７は可変遅延回路３１〜３３に与える制御信号ＳＣＴ２１〜ＳＣＴ２３を出力することにより、可変遅延回路３１〜３３の遅延時間をそれぞれ個別に制御する。このように、可変遅延回路３１〜３３の遅延時間を、ＣＰＵ３０とは独立して設けられたクロック制御回路３７によって制御することにより、モジュールＡ２１、モジュールＢ２２及びＣＰＵ３０に供給されるクロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＰ間の位相を可変制御することができる。
【００６４】
なお、ＣＰＵ３０からクロック制御回路３７の活性／非活性を制御することができる。 またＣＰＵ３０から強制的にクロック制御回路３７を制御可能にすることにより、第１及び第２のＬＳＩと同様に、にユーザーがプログラムから制御することも可能にすることも考えられる。
【００６５】
また、クロック制御回路３７に供給されるクロックＣＬＫＸを生成する遅延回路３８を可変に構成し、その可変制御をクロック制御回路３７自身が行うことも考えられる。また、ＣＰＵ３０等の別の回路が遅延回路３８を制御してクロックＣＬＫＸの位相を変更する方法も考えられる。また、クロック制御回路３７のクロックＣＬＫＸの位相は制御できないように構成することも考えられる。
【００６６】
このような構成の第３のＬＳＩは、 クロック制御回路３７により、それぞれのモジュールごとに、その時の使用状況に応じた最適な位相差をつけることにより、電源ノイズ低減、ＥＭＩ低減を行うことができる。
【００６７】
上述したように、第３のＬＳＩは、第１及び第２のＬＳＩと同様、 電源ピークノイズ低減により、局所的な電圧降下が緩和されることにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能なる効果を奏する。
【００６８】
さらに、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【００６９】
＜実施の形態１＞
上述した第１〜第３のＬＳＩでは、互いに位相が異なる複数のクロックを供給するクロック供給手段（図１で示す第１のＬＳＩではＰＬＬ回路２０、ＣＰＵ２５及び可変遅延回路３１〜３３が相当、図１０で示す第２のＬＳＩではＰＬＬ回路２７、ＣＰＵ２８及び選択回路４１〜４３が相当、図１４で示す第３のＬＳＩではＰＬＬ回路２０、クロック制御回路３７、可変遅延回路３１〜３３が相当）の回路構成について述べた。
【００７０】
上記第１〜第３のＬＳＩのクロック供給手段は、複数のクロックを互いに位相が異なるように供給するため、低コストで電流ピークを効果的に抑制することができる効果を基本的に有している。
【００７１】
しかし、上記クロック供給手段によりモジュールごとのクロックの位相を変えているため、位相の違うクロックが供給されているモジュール間のデータ転送で、モジュール間の信号転送がクロック位相差より短かい間隔で行われた場合、レーシングにより回路は誤動作する可能性がある(ホールドエラー（hold error))。そこで、誤動作が生じないようにしたのが、実施の形態１のＬＳＩのクロック供給手段におけるクロックスキュー調整方法である。
【００７２】
図１５は実施の形態１のＬＳＩの物理的なレイアウトを概念的に示す説明図である。同図に示すように、基板５８上において、バス１６に信号授受可能にモジュールＡ１１、モジュールＢ１２、モジュールＣ１３及びＣＰＵ１が配置されている。モジュールＡ１１、モジュールＢ１２、モジュールＣ１３及びＣＰＵ１はクロックＣＬＫＡ、クロックＣＬＫＢ、クロックＣＬＫＣ及びクロックＣＬＫＰに同期して動作し、これらのクロックＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ及びＣＬＫＰは、上述した第１〜第３のＬＳＩのような回路構成を呈することにより、位相が可変制御される。
【００７３】
同図に示すように、基板５８上のレイアウト構成において、モジュールＡ１１とモジュールＢ１２（第１のモジュール対）とは、物理的に距離（ｄ１２（第１の距離））が比較的近い関係にあり、モジュールＣ１３とモジュールＡ１１（第２のモジュール対）とはレイアウト構成上において物理的に距離（ｄ１３（第１の距離）＞ｄ１２）が比較的遠い関係を呈して配置されている。したがって、モジュールＡ１１からモジュールＢ１２へのデータ転送の際の遅延時間（ｔ１２）が、モジュールＡ１１からモジュールＣ１３へのデータ転送の際の遅延時間（ｔ１３＞ｔ１２）より長くなる。遅延時間が短いと、前述のレーシングによる誤動作の危険性が高まるため、モジュールＡ１１から見て、モジュールＢ１２は位相制御による誤動作の危険性が高く、また、モジュールＣ１３は誤動作の危険性が低い。
【００７４】
上述したモジュール間距離の長短による誤動作を考慮して、レイアウト構成上物理的に近いモジュールＡ１１とモジュールＢ１２とのクロック位相差は“０”または比較的小さな位相差（Δ１２）とし、モジュールＡ１１とモジュールＣ１３とのクロック位相差（Δ１３＞Δ１２）を相対的に大きくするように、クロック位相差を制御するのが実施の形態１のＬＳＩにおけるクロック供給手段によるクロックスキュー調整方法である。
【００７５】
また、一般的に、緊密な関係にあるモジュールを物理的に近くに配置する傾向が強いため、比較的距離が近いモジュール間の方が、比較的距離が遠いモジュール間よりも（信号）配線数が多い。したがって、実施の形態１のＬＳＩのレイアウト構成の場合、モジュールＡ１１とモジュールＢ１２との間の配線数はモジュールＡ１１とモジュールＣ１３との間の配線数より多くなる傾向が強い。
【００７６】
モジュール間のクロック位相差をデータ転送時間以上に設定する場合、データ転送時間を遅らせるため、モジュール間のデータ転送パス上にバッファなどを挿入する必要が生じる。
【００７７】
しかしながら、実施の形態１のクロックスキュー調整方法では、物理的に近いモジュールＡ１１，モジュールＢ１２間のクロック位相差を予め小さく設定することにより、データ転送時間遅延用の挿入バッファ数を必要最小限に抑えることができる。したがって、モジュールＡ１１，モジュールＢ１２間の配線数が多さが挿入バッファ数の大きな増加をもたらすことはない。
【００７８】
（効果）
実施の形態１のＬＳＩにおけるクロック供給手段により、複数のクロックが互いに位相が異なるように供給されるため、低コストで電流ピークを効果的に抑制することができる。
【００７９】
さらに、実施の形態１のクロック供給手段は、基板５８上に比較的短い第１の距離を隔てて配置される第１のモジュール対間のクロックの位相差が、上記第１の距離より長い第２の距離を隔てて配置される第２のモジュール対間のクロック信号の位相差より小さくなるように、複数のクロックを供給している。図１５において、モジュールＡ１１，モジュールＢ１２が上記第１のモジュール対に相当し、モジュールＡ１１，モジュールＣ１３が上記第２のモジュール対に相当し、クロックＣＬＫＡ，クロックＣＬＫＢ，クロックＣＬＫＣが上記複数のクロックに相当する。
【００８０】
このように、実施の形態１のＬＳＩにおけるクロック供給手段は、モジュール間の信号転送時間に正の相関があるモジュール間距離が長くなるに従い、モジュール対間のクロック位相差を長くすることにより、モジュール間の信号転送時間がクロック位相差より短かい間隔で行われた場合に生じる可能性のある誤動作を効果的に抑制することができるという効果を奏する。
【００８１】
加えて、実施の形態１のクロックスキュー調整方法では、モジュール間の物理的な位置を考慮してクロック位相差を制御することにより、遅延時間設定用の挿入バッファ数の削減を図ることができるため、少ないゲート追加で、電流ピークやＥＭＩを低減させることができる効果を奏する。
【００８２】
したがって、電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる。
【００８３】
また、 ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果も奏する。
【００８４】
＜実施の形態２＞
図１６はこの発明の実施の形態２であるＬＳＩのクロック供給手段によるクロックスキュー調整方法を示すフローチャートである。図１６で示すフローは例えば上述した第１のＬＳＩにおける図５あるいは図６で示したシステム構成において実行される。
【００８５】
図１６を参照して、ステップＳＴ１において、モジュールＡ２１とモジュールＢ２２とのクロック位相を一致させた後、ステップＳＴ２において、モジュールＡ２１からモジュールＢ２２にデータ転送を行う。
【００８６】
このように、ステップＳＴ２のデータ転送時には、モジュールＡ２１及びモジュールＢ２２用のクロックＣＬＫＡ及びクロックＣＬＫＢの位相が一致しているため、誤動作なくモジュールＡ２１，モジュールＢ２２間のデータ転送が行える。なお、モジュールＡ２１，モジュールＢ２２間のデータ転送の終了タイミングの認識方法として、(1)ＣＰＵ２５側で把握する、(2)転送元あるいは転送先のモジュール(モジュールＡ２１あるいはモジュールＢ２２)で把握する、(3)バス調停回路やDMAコントローラなど別の回路で把握する、等が考えられる。上記(1)の場合はＣＰＵ２５にモジュールから終了報告、バス調停回路やDMAコントローラ等から終了報告がなされることで認識される。
【００８７】
その後、ステップＳＴ３において、モジュールＡ２１のクロックＣＬＫＡとモジュールＢ２２のクロックＣＬＫＢとのクロック位相差を所定の大きさに設定した後、ステップＳＴ４において、モジュールＡ２１とモジュールＢ２２とがそれぞれ独立に所定の演算処理を行う。
【００８８】
このように、ステップＳＴ４の実行時には、モジュールＡ２１及びモジュールＢ２２用のクロックＣＬＫＡ及びクロックＣＬＫＢ間に所定の位相差が設定されているため、モジュールＢ１２及びモジュールＢ２２がフルに動作することにより生じる電流ピークノイズやＥＭＩノイズを低減することができる。また、ステップＳＴ４では、モジュールＡ２１とモジュールＢ２２は、他のモジュール、ＣＰＵ等の外部との通信はしないので、クロックＣＬＫＡ，クロックＣＬＫＢ間にクロック位相差があっても誤動作の問題は生じない。
【００８９】
そして、ステップＳＴ５において、モジュールＡ２１のクロックＣＬＫＡとＣＰＵ２５のクロックＣＬＫＰとの位相を一致させた後、ステップＳＴ６においてモジュールＡ２１の演算結果をＣＰＵ２５で読み取る。
【００９０】
このように、ステップＳＴ６のデータ転送時には、モジュールＡ２１及びＣＰＵ２５用のクロックＣＬＫＡ及びクロックＣＬＫＰの位相が一致しているため、誤動作なくモジュールＡ２１，ＣＰＵ２５間のデータ転送が行える。
【００９１】
（効果）
実施の形態２のＬＳＩにおけるクロック供給手段により、データ転送をしない時に原則的に複数のクロックが互いに位相が異なるように供給されるため、低コストで電流ピークを効果的に抑制することができる。
【００９２】
さらに、実施の形態１のＬＳＩのクロック供給手段が行うクロックスキュー調整方法は、モジュール間のデータ転送時に互いにクロックの位相を一致させ、データ転送をしない時に互いのクロックに所定の位相差を設けるため、電流ピークを抑制しながらモジュール間のデータ転送を誤動作なく行うことができる。
【００９３】
このように、実施の形態２のクロックスキュー調整方法では、プログラム内容によって動的にクロック位相を制御することで、より効果的に電流ピークやＥＭＩを低減させることができる。
【００９４】
そして、電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【００９５】
さらに、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【００９６】
＜実施の形態３＞
図１７は実施の形態３のＬＳＩに関しバスを中心としたレイアウト構成を示す説明図である。同図に示すように、バス１６に信号授受可能にモジュールＡ１１、モジュールＢ１２、モジュールＣ１３及びＣＰＵ１が接続されている。モジュールＡ１１、モジュールＢ１２、モジュールＣ１３及びＣＰＵ１はクロックＣＬＫＡ、クロックＣＬＫＢ、クロックＣＬＫＣ及びクロックＣＬＫＰに同期して動作し、これらのクロックＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ及びＣＬＫＰは、上述した第１〜第３のＬＳＩのような回路構成を呈することにより、位相が可変制御される。
【００９７】
図１７に示すように、各モジュール１１〜１３がバス１６に共通に接続されている場合、バス１６にかかる負荷が大きいため消費電力は大きくなる。したがって、可能な限り、各モジュール１１〜１３のクロックの位相は、バス１６のクロックと位相差をつける方が望ましい。
【００９８】
そこで、実施の形態３のクロック供給手段が実行するクロックスキュー調整方法は、モジュール１１〜１３がそれぞれバス１６にアクセスをする場合は、バスクロックと位相を合わせ、バスアクセスが終わると、再びバスクロックと位相差をつけている。なお、バスクロックとはバスアクセス時において各モジュール１１〜１３及びＣＰＵ１に要求されるクロックを意味し、以下では「バスクロックＣＫＢＳ」と称する場合がある。
【００９９】
図１８はこの発明の実施の形態３であるＬＳＩのクロック供給手段におけるクロックスキュー調整方法を示すフローチャートである。以下、同図を参照して実施の形態３の処理手順を説明する。なお、初期状態として、クロックＣＬＫＡ、クロックＣＬＫＢ、クロックＣＬＫＣ及びクロックＣＬＫＰは互いに異なる位相に設定されている。
【０１００】
まず、ステップＳＴ１１において、モジュールＡ１１及びモジュールＢ１２のクロッククロックＣＬＫＡ及びクロックＣＬＫＢの位相をバスクロックＣＫＢＳに一致させた後、ステップＳＴ１２において、モジュールＡ１１からモジュールＢ１２にバス１６を介したデータ転送を行う。
【０１０１】
このように、ステップＳＴ１２のデータ転送時には、モジュールＡ１１及びモジュールＢ１２用のクロックＣＬＫＡ及びクロックＣＬＫＢの位相がバスクロックＣＫＢＳに一致しているため、誤動作なくモジュールＡ１１，モジュールＢ１２間のバス１６を介したデータ転送が行える。
【０１０２】
その後、ステップＳＴ１３において、クロックＣＬＫＡ及びクロックＣＬＫＢを初期状態に戻し、クロックＣＬＫＡ及びクロックＣＬＫＢとバスクロックＣＫＢＳとの間に位相差をつける。その後、ステップＳＴ１４において、モジュールＡ１１，モジュールＢ１２及びＣＰＵ１がバス１６を使用しない独立の演算処理を行う。
【０１０３】
このように、ステップＳＴ１４の実行時には、モジュールＡ１１及びモジュールＢ１２用のクロックＣＬＫＡ及びクロックＣＬＫＢとバスクロックＣＫＢＳとの間には所定の位相差が設定されているため、モジュールＢ１２及びモジュールＢ１２がフルに動作することにより生じるバス１６上の電流ピークノイズやＥＭＩノイズを低減することができる。また、ステップＳＴ１４では、モジュールＡ１１及びモジュールＢ１２は、バス１６を介したデータ転送動作は行わないので、クロックＣＬＫＡ及びクロックＣＬＫＢとバスクロックＣＫＢＳとのクロック位相差があっても誤動作の問題は生じない。
【０１０４】
そして、ステップＳＴ１５において、モジュールＡ１１及びＣＰＵ１のクロックＣＬＫＡ及びクロックＣＬＫＰの位相をバスクロックＣＫＢＳに一致させた後、ステップＳＴ１６において、モジュールＡ１１の演算結果をバス１６を介してＣＰＵ１に転送する。
【０１０５】
このように、ステップＳＴ１６のデータ転送時には、モジュールＡ１１及びＣＰＵ１用のクロックＣＬＫＡ及びクロックＣＬＫＰの位相がバスクロックＣＫＢＳに一致しているため、誤動作なくモジュールＡ１１，ＣＰＵ１間のデータ転送が行える。なお、図１８では示していないが、ステップＳＴ１６の実行後はクロックＣＬＫＡ及びクロックＣＬＫＰを初期状態に戻し、両者の間に所定のクロック位相差が設定される。
【０１０６】
（効果）
実施の形態３のＬＳＩにおけるクロック供給手段により、バスを介したデータ転送時に以外は、複数のクロックが互いに位相が異なるように供給されるため、低コストで電流ピークを効果的に抑制することができる。
【０１０７】
さらに、実施の形態３のＬＳＩにおけるクロック供給手段は、データ転送時に転送対象となるモジュールのクロックをバスククロックの位相に合わせ、データ転送をしない時にモジュール間のクロックに所定の位相差を設けることにより、バス上の電流ピークを抑制しながらバスを介したモジュール間のデータ転送を誤動作なく行うことができる。
【０１０８】
このように、実施の形態３のクロックスキュー調整方法では、プログラム内容によって動的にクロック位相を制御することで、より効果的に電流ピークやＥＭＩを低減させることができる。
【０１０９】
そして、電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【０１１０】
さらに、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０１１１】
＜実施の形態４＞
図１９は実施の形態４のＬＳＩにおけるＬＳＩのバスを中心としたレイアウト構成を示す説明図である。同図に示すように、バス５９に信号授受可能にＣＰＵ１〜３及び２次キャッシュ６が接続されている。ＣＰＵ１〜３はクロックＣＬＫＰ１〜ＣＬＫＰ３に同期して動作し、２次キャッシュ６はクロックＣＬＫ６に同期して動作する。これらのクロックＣＬＫＰ１〜ＣＬＫＰ３及びクロックＣＬＫ６は、上述した第１〜第３のＬＳＩのような回路構成を呈することにより、位相が可変制御される。
【０１１２】
図１９に示すように、３個のＣＰＵ１〜３からなるマルチプロセッサシステムを構成する実施の形態４のＬＳＩでは、各々内部にキャッシュ（１次キャッシュ（図示せず））を有するとともに、ＣＰＵ１〜３間で共有されるバス５９に接続された２次キャッシュ６もキャッシュとして利用可能な構成を呈している。
【０１１３】
このように、ＣＰＵ１〜３がバス５９に共有に接続されている場合、ＣＰＵ１〜３におけるクロックＣＬＫＰ１〜ＣＬＫＰ３間に位相差を設けた方が、バス５９上における電流ピークノイズやＥＭＩノイズを低減できる。
【０１１４】
しかしながら、ＣＰＵ１〜３は内部の１次キャッシュへのアクセスをミスした後、２次キャッシュ６にアクセスをする場合は、２次キャッシュ６のクロックＣＬＫ６と、２次キャッシュ６にアクセスするＣＰＵのクロックの位相を合わせる方が望ましい。
【０１１５】
図２０はこの発明の実施の形態４であるＬＳＩのクロック供給手段におけるクロックスキュー調整方法を示すフローチャートである。以下、同図を参照して実施の形態４のクロックスキュー調整方法の処理手順を説明する。
【０１１６】
まず、ステップＳＴ２１において、ＣＰＵ１〜３それぞれのクロックＣＬＫＰ１〜ＣＬＫＰ３は、互いに所定の位相差を設けられるように初期設定される。この際、クロックＣＬＫＰ１〜ＣＬＫＰ３は２次キャッシュ６のクロックＣＬＫ６との間においても位相差が設けられることが望ましい。
【０１１７】
ステップＳＴ２２において、ＣＰＵ１が内部の１次キャッシュにキャッシュミスを起こした場合、ステップＳＴ２３においてＣＰＵ１のクロックＣＬＫＰ１の位相を変更して２次キャッシュ６のクロックＣＬＫ６の位相に一致させた後、ステップＳＴ２４においてＣＰＵ１がバス５９を介して２次キャッシュ６にアクセスする。
【０１１８】
このように、ステップＳＴ２４の２次キャッシュ６へのアクセス時には、ＣＰＵ１のクロックＣＬＫＰ１の位相と２次キャッシュ６のクロックＣＬＫ６の位相とが一致しているため、ＣＰＵ１は誤動作なく２次キャッシュ６にアクセスすることができる。
【０１１９】
その後、ステップＳ２５において、ＣＰＵ１のクロックＣＬＫＰ１はステップＳＴ１の初期設定の位相に戻される。
【０１２０】
このように、ステップＳＴ２５の実行時に、ＣＰＵ１のクロックＣＬＫＰ１は初期状態に戻されるため、ＣＰＵ１〜３がフルに動作することにより生じるバス５９上の電流ピークノイズやＥＭＩノイズを低減することができる。また、ステップＳＴ２５の実行時は、ＣＰＵ１〜３２はバス５９を介した２次キャッシュ６へのアクセスは行わないため誤動作の問題は生じない。
【０１２１】
なお、図２０で示した例では、ＣＰＵ１のクロックＣＬＫＰ１の位相を変更してクロックＣＬＫ６の位相と一致させたたが、２次キャッシュ６のクロックＣＬＫ６の位相を変更してクロックＣＬＫＰ１の位相を一致させても良い。この場合、図２０におけるステップＳＴ２３の処理は「２次キャッシュ６のクロックＣＬＫ６の位相を変更してＣＰＵ１のクロックＣＬＫＰ１の位相に一致させる」となり、ステップＳ２５の処理は「２次キャッシュ６のクロックＣＬＫ６を元の位相に戻す」となる。
【０１２２】
なお、本明細書中において、特定の機能を有するＣＰＵ等には独自の名称を、ＣＰＵ等以外の一般的な論理回路を便宜上、モジュールＡ，モジュールＢ等で表現している。しかしながら、ＣＰＵ等もクロックに同期して動作する点においてモジュールＡ等を共通しているため、広義の意味においてモジュールに含まれる。したがって、実施の形態４におけるＣＰＵ１〜３及び２次キャッシュ６も広義の意味でモジュールに含まれる。
【０１２３】
（効果）
実施の形態４のＬＳＩにおけるクロック供給手段により、２次キャッシュ６へのアクセス時以外は、複数のクロックが互いに位相が異なるように供給されるため、低コストで電流ピークを効果的に抑制することができる。
【０１２４】
さらに、実施の形態４のＬＳＩにおけるクロック供給手段は、２次キャッシュ６へのアクセス時のみ、アクセス所望のＣＰＵ（ＣＰＵ１〜３のいずれか）のクロック（クロックＣＬＫＰ１〜ＣＬＫＰ３のいずれか）と２次キャッシュ６のクロックＣＬＫ６の位相とを一致させるため、電流ピークを抑制しながら複数のＣＰＵの２次キャッシュへのアクセスを誤動作なく行うことができる。
【０１２５】
このように、実施の形態４のクロック供給手段によるクロックスキュー調整方法では、共有バスに接続された２次キャッシュ６へのアクセス前後において動的にクロック位相を制御することで、より効果的に電流ピークやＥＭＩを低減させることができる。
【０１２６】
そして、電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【０１２７】
さらに、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０１２８】
＜実施の形態５＞
図２１は実施の形態５のＬＳＩにおけるバスを中心としたレイアウト構成を示す説明図である。同図に示すように、クロック基準バス１７に信号授受可能にモジュールＡ１１、モジュールＢ１２、モジュールＣ１３及びＣＰＵ１が接続されている。モジュールＡ１１、モジュールＢ１２、モジュールＣ１３及びＣＰＵ１はクロックＣＬＫＡ、クロックＣＬＫＢ、クロックＣＬＫＣ及びクロックＣＬＫＰに同期して動作し、これらのクロックＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ及びＣＬＫＰは、上述した第１〜第３のＬＳＩのような回路構成を呈することにより、位相が可変制御される。
【０１２９】
実施の形態５のクロックスキュー調整方法は、図２１に示す構成において、クロック基準バス１７のバスクロックＣＫＢＳを基準にして、これらのクロックＣＬＫＡ、ＣＬＫＢ、ＣＬＫＣ及びＣＬＫＰの位相制御を行っている。
【０１３０】
すなわち、バスクロックＣＫＢＳと基準として固定し、他のクロックは基準となったバスクロックＣＫＢＳに対してそれぞれ相対的にｘ度(またはｘns)という具合に位相を決定する。
【０１３１】
図２１で示した構成において、各モジュール（１１〜１３，１）のうち、動作が高速なものは基準クロックであるバスクロックＣＫＢＳとの位相差が小さく設定する方が大変望ましい。
【０１３２】
例えば、モジュールＡ１１がモジュールＢ１２，モジュールＣ１３に比べて高速動作している場合、クロック基準バス１７を介したデータ授受も頻繁になり、また高速なデータ転送が起こり得るため、基準クロックであるバスクロックＣＫＢＳとの位相差は小さい方が望ましい。なぜならば、クロックＣＬＫＡとバスクロックＣＫＢＳとのクロック位相差が大きいと、位相差の分、データ転送に必要な時間が短くなり、セットアップエラーによる誤動作を起こしやすくなるからである。
【０１３３】
また、モジュールＢ１２のクロックＣＬＫＢも高速な場合は、モジュールＡ１１のクロックＣＬＫＡと同様、バスクロックＣＫＢＳとの位相差が小さく設定されるため、結果的にクロックＣＬＫＡとクロックＣＬＫＢとの位相差も小さくなる。したがって、モジュールＡ１１，モジュールＢ１２間の転送時に誤動作は生じない。また、モジュールＣ１３が低速動作の場合は、クロックＣＬＫＢとバスクロックＣＫＢＳとの位相差が大きくなるが、元々低速動作であるため、バスクロックＣＫＢＳまたは他の高速動作モジュールのクロックとの位相差が大きくても問題になりにくい。
【０１３４】
このように、実施の形態５のクロック供給手段によるクロックスキュー調整方法では、クロック基準バス１７のバスクロックＣＫＢＳを基準とし、モジュールの動作速度によってクロック位相を動的に制御することにより、より効果的に電流ピークやＥＭＩを低減させることができる。
【０１３５】
ここでモジュールの動作速度は、クロック周波数と考えることもできる。その場合はクロック周波数の関数として位相差を計算すればよい。
【０１３６】
（効果）
実施の形態５のＬＳＩにおけるクロック供給手段により、複数のクロックが互いに位相が異なるように供給されるため、低コストで電流ピークを効果的に抑制することができる。
【０１３７】
さらに、実施の形態５のＬＳＩにおけるクロック供給手段は、複数のモジュールそれぞれの動作状態に基づき、動作状態がより高速動作になるに従い、複数のクロックの位相を基準クロックであるバスクロックＣＫＢＳの位相に近づけるように、複数のクロックを供給している。このため、誤動作の可能性が比較的高い高速動作時状態のモジュール間のクロックの位相を基準クロックの位相に近づけることにより互いに比較的近い位相差に設定することができる。
【０１３８】
その結果、クロック基準バス１７上における電流ピークを抑制しながら高速動作状態のモジュール間のデータ転送時における誤動作を効果的に抑制することができる効果を奏する。
【０１３９】
このように、実施の形態５のクロック供給手段のクロックスキュー調整方法では、クロック基準バス１７のバスクロックＣＫＢＳを基準とし、モジュールの動作速度の高／低によってバスクロックＣＫＢＳとの位相差の小／大を決定する動的なクロック位相制御を行うことにより、誤動作を生じさせることなく、より効果的に電流ピークやＥＭＩを低減させることができる。
【０１４０】
そして、電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【０１４１】
さらに、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０１４２】
＜実施の形態６＞
実施の形態２〜実施の形態５で示したクロック供給手段クロックスキュー調整方法のように、クロックの位相を動的に制御する場合における位相一致方法を示したのが、本実施の形態である。
【０１４３】
動的にクロック位相を制御する場合、２つのクロックの位相を相対的に近づけたり離したりすることになるが、どちらのクロックの位相を変更すれば良いのかを考えた場合に、位相を一致させる必要な２つのモジュールのうち、高速動作をする方は位相を変えずに、低速動作をする方を変えたほうが望ましい。なぜならば、位相を変える際には、少しだがクロックパルスが伸び縮みする。クロックの縮みは動作周波数の上限を決めるクリティカルパスのセットアップに影響するためである。なお、上記したモジュールは、モジュールＡ１１、モジュールＢ１２及びモジュールＣ１３は勿論、図１９で示したＣＰＵ１〜３、２次キャッシュ６を含む広い概念を意味する。
【０１４４】
各モジュールの動作が高速か低速かは、例えば、クロック周波数で認識することができる。すなわちクロック周波数がより高周波なモジュールは高速動作をしていると考えることができる。
【０１４５】
図２２はこの発明の実施の形態６であるＬＳＩのクロック供給手段によるクロックスキュー調整方法の一部であるクロック位相一致方法を示すフローチャートである。なお、図２２で示すフローは、図１７で示した実施の形態２のシステム構成において、モジュールＡ１１とモジュールＢ１２との位相に所定の位相差を設けていた場合に、モジュールＡ１１からモジュールＢ１２へのデータ転送の必要が生じた状況におけるフローを示している。
【０１４６】
図２２を参照して、ステップＳＴ３１で、モジュールＡ１１からモジュールＢ１２へのデータ転送の必要が発生すると、ステップＳＴ３２において、モジュールＡ１１のクロックＣＬＫＡのクロック周波数ｆ（Ａ）とモジュールＢ１２のクロックＣＬＫＢのクロック周波数ｆ（Ｂ）とを比較対象とする。
【０１４７】
そして、ステップＳＴ３３において、クロック周波数ｆ（Ａ）とクロック周波数ｆ（Ｂ）とを比較し、「ｆ（Ａ）＞ｆ（Ｂ）」の場合はステップＳＴ３４〜ＳＴ３６の処理に移行し、「ｆ（Ａ）＜ｆ（Ｂ）」の場合はステップＳＴ３７〜ＳＴ３９の処理に移行する。なお、「ｆ（Ａ）＝ｆ（Ｂ）」の場合どちらの処理に移行しても良い。
【０１４８】
ステップＳＴ３３で「ｆ（Ａ）＞ｆ（Ｂ）」の場合に実行されるステップＳＴ３４において、モジュールＢ１２のクロックＣＬＫＢの位相を変更して、モジュールＡ１１のクロックＣＬＫＡの位相に一致させる。
【０１４９】
その後、ステップＳＴ３５でモジュールＡ１１からモジュールＢ１２にデータ転送し、ステップＳＴ３６でモジュールＢ１２のクロックＣＬＫＢの位相を変更して元の状態に戻し処理を終了する。
【０１５０】
一方、ステップＳＴ３３で「ｆ（Ａ）＜ｆ（Ｂ）」の場合に実行されるステップＳＴ３７において、モジュールＡ１１のクロックＣＬＫＡの位相を変更して、モジュールＢ１２のクロックＣＬＫＢの位相に一致させる。
【０１５１】
その後、ステップＳＴ３８でモジュールＡ１１からモジュールＢ１２にデータ転送し、ステップＳＴ３９でモジュールＡ１１のクロックＣＬＫＡの位相を変更して元の状態に戻し処理を終了する。
【０１５２】
図２２で示したフローではクロック周波数の比較によりモジュール動作の高速/低速を判別したが、モジュールの機能が違う場合には単純にクロック周波数だけでは測れないこともある。その場合は設計時の周波数マージンを考慮して考えたり、あるいは単位時間あたりのデータの処理量(スループット)で判別したり、あるいは単位時間当たりの演算量で判別したり、クロック周波数の比較以外に様々なパラメータの比較を行うことが考えられる。
【０１５３】
（効果）
このように、実施の形態６のＬＳＩのクロック供給手段によるクロックスキュー調整方法では、プログラムによって動的にクロック位相を制御する際に、相対的に高速に動作するモジュールの位相は変えずに、相対的に低速に動作高するモジュールのクロック位相を変更することにより、位相一致対象のモジュール間のクロック位相を一致させている。
【０１５４】
その結果、より高速に動作するモジュールのクロック位相変更に伴う誤動作の可能性をなくしながら、プログラムによって動的にクロック位相を制御することで、より効果的に電流ピークやＥＭＩを低減させることができる。
【０１５５】
そして、電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【０１５６】
さらに、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０１５７】
＜実施の形態７＞
近年の大規模ＬＳＩには、スキャンテスト回路と呼ばれるテスト容易化回路が内蔵されている。スキャンテストはフリップフロップなどの全ての状態素子を同一クロックで制御することになる。スキャンデータの転送はフリップフロップ間に論理回路が入らない直接転送になるが、その場合、クロック位相がずれているとクロックとデータのレーシングによるホールドエラーが起こり誤動作してしまう。
【０１５８】
また、スキャンテストでは、場合によってはモジュール境界とは関係なくフリップフロップが接続されるため、モジュールごとの位相制御は難しく、また意味もなさない可能性が高い。
【０１５９】
図２３はこの発明の実施の形態７であるＬＳＩの構成を示す説明図である。同図に示すように、図１４で示した第３のＬＳＩの構成に加え、さらに、クロックの位相設定回路である遅延内容選択回路１８が設けられる点を特徴としている。
【０１６０】
遅延内容選択回路１８はＡＮＤゲートＧ１〜Ｇ３より構成され、ＡＮＤゲートＧ１〜Ｇ３はそれぞれの一方入力にスキャンイネーブル反転信号バーＳＣＡＮを共通に受ける。ＡＮＤゲートＧ１は他方入力にクロック制御回路３９より可変遅延回路３１制御用の制御信号ＳＣ２１を受け、ＡＮＤゲートＧ２は他方入力にクロック制御回路３９より可変遅延回路３２制御用の制御信号ＳＣ２２を受け、ＡＮＤゲートＧ３は他方入力にクロック制御回路３９より可変遅延回路３３制御用の制御信号ＳＣ２３を受ける。そして、ＡＮＤゲートＧ１〜Ｇ３の出力信号が可変遅延回路３１〜３３の制御信号として付与される。なお、他の構成は図１４で示した第３のＬＳＩと同様であるため、説明を省略する。
【０１６１】
このような構成において、通常動作時（スキャンテスト時以外）は、スキャンイネーブル反転信号バーＳＣＡＮは“Ｈ”のため、実施の形態７のＬＳＩは第３のＬＳＩと等価な動作を行う。
【０１６２】
一方、スキャンテスト時はスキャンイネーブル反転信号バーＳＣＡＮが“Ｌ”となるため、ＡＮＤゲートＧ１〜Ｇ３の出力を強制的に同一の固定値（“０”）にすることにより、可変遅延回路３１〜３３それぞれの遅延時間を強制的に同一（最小遅延時間“０”）に設定することができる。
【０１６３】
このように、実施の形態７のＬＳＩは、遅延内容選択回路１８により、スキャンテスト時において、すべてのモジュール（ＣＰＵ３０を含む）のクロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＰを位相を強制的に一致させることにより、スキャンテスト動作、特にスキャンデータのスキャンＦＦへのデータ転送に適した動作環境を提供することができる。
【０１６４】
図２３で示した構成では、クロック供給手段の制御機能をクロック制御回路３９に持たせた構成を示したが、図１で示した第１のＬＳＩのように、クロック供給手段の制御機能をＣＰＵ２５に持たせた構成でも、遅延内容選択回路１８に相当する回路をＣＰＵ２５からの制御信号ＳＣＴと可変遅延回路３１〜３３間に設けることにより、同様に実現できるのは勿論である。
【０１６５】
（効果）
このように、実施の形態７のＬＳＩは、スキャンテスト時において全てのクロックの位相を強制的に一致させる遅延内容選択回路１８を備えることにより、スキャンテスト動作に適した動作か環境を提供することができる効果を奏する。
【０１６６】
さらに、通常時には第３のＬＳＩと等価な動作が可能なため、クロック供給手段により、複数のクロックが互いに位相が異なるように供給されるため、低コストで電流ピークを効果的に抑制することができ、電源ピークノイズ低減により、局所的な電圧降下が緩和される。
【０１６７】
これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能な効果を奏する。
【０１６８】
また、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０１６９】
＜実施の形態８＞
実施の形態７で述べたように、スキャンテスト時におけるスキャンデータの転送は各モジュール間においてクロックの位相がそろっていた方が望ましいが、実際にデータをテスト対象回路（モジュールＡ２１等）に与えて動作させ、その動作結果を取り込むサイクルであるキャプチャ動作時では、動作周波数上限のクロックで測定することが多い。
【０１７０】
キャプチャ動作時に各モジュール間のクロック位相差を小さく設定してしまうと、スキャンテスト時にはパス（pass）したが、実際に各モジュール間にクロック位相差をつけると誤動作する可能性がある。なぜなら、クロック位相差を大きくすると、位相の違うクロック間のデータ転送時間が短くなる結果、設計時の動作周波数では動作しなくなる危険性があるからである。この事態は最悪で、出荷後に市場不良となって、多大な金額的な損失と信用を下げることになりかねない。
【０１７１】
上記のスキャンテストのキャプチャ時の動作を考慮したのが実施の形態８のＬＳＩである。図２４はこの発明の実施の形態８であるクロック制御機能を有するＬＳＩの構成を示す説明図である。
【０１７２】
同図に示すように、図１４で示した第３のＬＳＩの構成に加え、さらに、クロックの位相設定回路である遅延内容選択回路１９が設けられることを特徴する。遅延内容選択回路１９はＡＮＤゲートＧ１，Ｇ２及びＯＲゲートＧ４より構成され、ＡＮＤゲートＧ１，Ｇ２の一方入力にキャプチャイネーブル信号バーＳＣＣＰを共通に受け、ＯＲゲートＧ４の一方入力にキャプチャイネーブル信号バーＳＣＣＰの反転信号を受ける。ＡＮＤゲートＧ１は他方入力にクロック制御回路３９より可変遅延回路３１制御用の制御信号ＳＣ２１を受け、ＡＮＤゲートＧ２は他方入力にクロック制御回路３９より可変遅延回路３２制御用の制御信号ＳＣ２２を受け、ＯＲゲートＧ４は他方入力にクロック制御回路３９より可変遅延回路３３制御用の制御信号ＳＣ２３を受ける。そして、ＡＮＤゲートＧ１，Ｇ２及びＯＲゲートＧ４の出力信号が可変遅延回路３１〜３３の制御信号として付与される。
【０１７３】
ＣＰＵ３０はモジュールＡ２１及びモジュールＢ２２それぞれに対しデータ転送を行う。なお、キャプチャイネーブル信号バーＳＣＣＰはスキャンテストにおけるキャプチャ時に“Ｌ”になる信号である。他の構成は図１４で示した第３のＬＳＩと同様であるため、説明を省略する。
【０１７４】
このような構成において、通常動作時（キャプチャ動作時以外）は、キャプチャイネーブル信号バーＳＣＣＰは“Ｈ”のため、実施の形態８のＬＳＩは第３のＬＳＩと等価な動作を行う。
【０１７５】
一方、キャプチャ動作時はキャプチャイネーブル信号バーＳＣＣＰが“Ｌ”となるため、ＯＲゲートＧ４の出力を強制的に最大遅延を指示する固定値（“１”）にすることにより、可変遅延回路３３の遅延時間を最大遅延時間に設定することができる。一方、ＡＮＤゲートＧ１，Ｇ２の出力を強制的に最小遅延を指示する固定値（“０”）にすることにより、可変遅延回路３１，３２それぞれの遅延時間を最小遅延時間に設定することができる。
【０１７６】
その結果、キャプチャ動作時においてＣＰＵ２５のクロックＣＬＫＰと、モジュールＡ２１及びモジュールＢ２２のクロックＣＬＫＡ及びクロックＣＬＫＢとの間のクロック位相差を最大に設定することができる。すなわち、データ転送対象となるＣＰＵ２５とモジュールＡ２１あるいはモジュールＢ２２との位相差が強制的に最大値に設定される。
【０１７７】
このように、実施の形態８のＬＳＩは、スキャンテストにおけるキャプチャ動作時において、クロックＣＬＫＡ及びクロックＣＬＫＢとクロックＣＬＫＰとの位相差を最大に設定することによりクロック位相差による影響が最悪の場合の動作周波数試験が可能となり、スキャンテストを厳しい動作環境で行うことができる。
【０１７８】
また、キャプチャ動作時はほとんどのモジュールが最高速で動作するため、実使用ではありえないピーク電流が発生するが、キャプチャ動作時においては各モジュール間のクロック位相を一致させることなく、通常動作時同様にずらしていうため、上記したピーク電流発生に関する問題も解決できる。
【０１７９】
図２４で示した構成では、クロック供給手段の制御機能をクロック制御回路３９に持たせた構成を示したが、図１で示した第１のＬＳＩのように、クロック供給手段の制御機能をＣＰＵ２５に持たせる構成でも、遅延内容選択回路１９に相当する回路をＣＰＵ２５からの制御信号ＳＣＴと可変遅延回路３１〜３３間に設けることにより、同様に実現できるのは勿論である。
【０１８０】
また、遅延内容選択回路１９を拡張して、スキャンテスト時におけるキャプチャ動作時以外のスキャンＦＦへのデータ転送動作等は、実施の形態７のように、クロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＰの位相を一致させるようにすることも可能である。
【０１８１】
（効果）
このように、実施の形態８のＬＳＩは、スキャンテストにおけるキャプチャ動作時において、テスト対象モジュール（ＣＰＵ３０，モジュールＡ２１間、あるいはＣＰＵ３０，モジュールＢ２２間）に供給されるクロックの位相差を強制的に最大にする遅延内容選択回路１９を備えることにより、最も誤動作な可能性がある厳しい動作環境下で精度の高いキャプチャ動作を実行することができる。更に通常動作時には電源ピークノイズ低減により、局所的な電圧降下が緩和される。
【０１８２】
これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能な効果を奏する。
【０１８３】
また、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０１８４】
＜実施の形態９＞
実施の形態１〜実施の形態８では、クロックの位相を変えた場合に、位相の違うクロック間では、セットアップエラーやホールドエラーによる誤動作を起こす危険性がある。どの程度の位相差まで正常動作できるかは、該当ＬＳＩの製造ばらつきや、電圧、温度などの周囲条件で変わる。
【０１８５】
図２５はこの発明の実施の形態９である許容位相差測定回路の第１の構成を示す説明図である。同図に示すように、２つのフリップフロップ５１の出力部とフリップフロップ５２の入力部との間に遅延素子５３を設け、フリップフロップ５１はクロックＣＬＫ１に同期して動作し、フリップフロップ５２はクロックＣＬＫ２に同期する。
【０１８６】
フリップフロップ５１及び５２は実施の形態１〜実施の形態８のＬＳＩで用いたモジュールと等価なデータ転送動作が可能である。そして、遅延素子５３はフリップフロップ５１及び５２間のデータ転送経路上に設けられ、フリップフロップ５１及び５２間のデータ転送の遅延時間を可変制御可能である。
【０１８７】
このような構成において、フリップフロップ５１，５２間のデータ転送が正しく行えるか、すなわち、前段のフリップフロップ５１の格納値が後段のフリップフロップ５２で正しくラッチできるかどうかを調べることにより、ＬＳＩの動作状態を把握でき、どの程度の位相差まで正常動作するかを間接的に調べることができる。
【０１８８】
具体的な方法は２通りある。第１の判定方法は、遅延素子５３の遅延時間を実動作時のフリップフロップ５１，５２間のデータ転送遅延時間に設定し、クロックＣＬＫ１とクロックＣＬＫ２との間に位相差を可変測定し、フリップフロップ５１，５２間のデータ転送が正しく行えるかを調べる。データ転送が正しく行えれば、設定したクロックＣＬＫ１，ＣＬＫ２間の位相差で正常動作可能と判定し、データ転送が正しく行わなければデータ転送不可能と判定する方法である。
【０１８９】
第２の判定方法は、クロックＣＬＫ１，ＣＬＫ２間で位相差は設けず、遅延素子５３の遅延量を変える方法である。第２の判定方法は第１の判定方法と同じくフリップフロップ５１，５２間のデータ転送が可能か否かによって、正常動作可能な遅延時間を測定することがでる。
【０１９０】
このように、第１あるいは第２の判定方法を実行し、測定結果を元に、どれぐらいの位相差（遅延量）であれば、正常動作可能かを予め測定することができる。
【０１９１】
図２６はこの発明の実施の形態９である許容位相差測定回路の第２の構成を示す説明図である。同図に示すように、２つのフリップフロップ５１の出力部とフリップフロップ５２の入力部との間にレプリカ回路５４を設け、フリップフロップ５１はクロックＣＬＫ１に同期して動作し、フリップフロップ５２はクロックＣＬＫ２に同期して動作する。
【０１９２】
なお、レプリカ回路５４は、実際に動作する回路におけるクリティカルパスと同じ構造を持った回路のモデルであり、電源電圧や、温度の変動によるデバイス特性の変化を反映したタイミング信号を発生できるように構成されており、広い電源電圧範囲や温度範囲で安定に回路動作させることができる回路を意味する。
【０１９３】
このような構成において、第１の構成と同様、クロックＣＬＫ１，ＣＬＫ２間の位相差を適宜変更しながら、フリップフロップ５１，５２間のデータ転送が正しく行えるかを調べることにより、ＬＳＩの動作状態を把握でき、どの程度の位相差まで正常動作するかを間接的に調べることができる。
【０１９４】
実施の形態９の第２の構成では、レプリカ回路５４を用いることにより、測定結果がそのまま実際の回路の位相差許容範囲となり、計算による誤差が無い分より正確に許容位相差を求めることができる。但し、第２の構成はあらかじめクリティカルパスが分かっている必要があるという制約がある。
【０１９５】
（効果）
このように、実施の形態９の許容位相差測定回路の第１の構成は、クロックＣＬＫ１及びＣＬＫ２に同期して、実動作するＬＳＩのモジュールと等価なデータ転送動作が可能な第１及び第２の試験用回路であるフリップフロップ５１及び５２と、フリップフロップ５１及び５２のデータ転送経路上に設けられ、フリップフロップ５１及び５２間のデータ転送に所定の遅延時間が設定可能な試験用遅延部である遅延素子５３を備えている。
【０１９６】
したがって、遅延素子５３の遅延時間を実動作時のフリップフロップ５１，５２間のデータ転送遅延時間に設定し、フリップフロップ５１及び５２間の位相を適宜変更することにより、実際のＬＳＩのモジュール間で正常にデータ転送可能なクロックの位相差を測定することができる。
【０１９７】
さらに、実施の形態９の許容位相差測定回路の第２の構成は、レプリカ回路５４によりフリップフロップ５１及び５２間にクリティカルパスの遅延時間を設けるため、測定結果をそのまま実際のＬＳＩのモジュール間の位相差許容範囲として用いることができる効果を奏する。
【０１９８】
このように、実施の形態９の許容位相差測定回路は、正常にデータ転送が可能なクロック位相差の許容範囲を予め測定により求めることができるため、実施の形態９の許容位相差測定回路を用いた測定結果に基づき、モジュール間のクロック位相差を設定することにより、誤動作の危険なく、電流ピークやＥＭＩを低減させることができる。
【０１９９】
これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【０２００】
また、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０２０１】
＜実施の形態１０＞
実施の形態１〜実施の形態８のＬＳＩでは、複数のモジュール間にクロックの位相を変えた場合に、位相の違うクロック間では、セットアップエラーやホールドエラーによる誤動作を起こす危険性がある。セットアップエラーは動作周波数の上限を下げるだけなので、動作マージンがあれば特に問題にはならない。しかしホールドエラーは動作周波数に関わらず誤動作するため、その対応が困難である。
【０２０２】
例えば、図１７で示した実施の形態２のシステム構成において、モジュールＡ１１からモジュールＢ１２にデータを転送する場合、図２７に示すように、クロックＣＬＫＢがクロックＣＬＫＡに対し位相差ΔＴ１遅れている場合を想定する。この場合、クロックＣＬＫＡの立ち上がりエッジである時刻ｔ１からしかる後（位相差ΔＴ１より十分短いモジュール間転送時間の経過後）に、モジュールＡ１１の出力データＯＵＴＡはデータＤＴ１からデータＤＴ２に変化する。
【０２０３】
したがって、クロックＣＬＫＢが立ち上がる時刻ｔ２には出力データＯＵＴＡがデータＤＴ２に変化しているため、本来、データＤＴ１を入力する必要があったモジュールＢ１２が誤って次のサイクルのデータであるデータＤＴ２を取り込むというホールドエラーが生じてしまう。
【０２０４】
このように、モジュールＡ１１の出力がモジュールＢ１２に到達するタイミング以上に、クロックＣＬＫＢのクロックＣＬＫ１に対する位相が遅れた場合、モジュールＢ１２は次サイクルの状態をサンプリングしてしまい、誤動作(ホールドエラー)する。このため、モジュールＡ１１，モジュールＢ１２間にはクロック位相差（位相差ΔＴ１）以上の遅延時間を挿入するか、モジュールＡ１１からモジュールＢ１２へのモジュール間転送時間以内の位相差に収まるように位相差ΔＴ１を設定することしか対応することができない。
【０２０５】
図２８はこの発明の実施の形態１０であるＬＳＩの第１のシステム構成を示す説明図である。同図に示すように、バス４０に信号授受可能にＣＰＵ３０、モジュールＡ１１、モジュールＢ１２、及びモジュールＣ１３が接続される。具体的には、ＣＰＵ３０、モジュールＡ１１、モジュールＢ１２、及びモジュールＣ１３の入力がバス４０に直接接続され、ＣＰＵ３０、モジュールＡ１１、モジュールＢ１２、及びモジュールＣ１３の出力がラッチ６０〜６３を介してバス４０に接続される。
【０２０６】
なお、ＣＰＵ３０、モジュールＡ１１、モジュールＢ１２、及びモジュールＣ１３は、クロックＣＬＫＰ、クロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＣの立ち上がりエッジに同期して動作し、これらのクロックは上述した第１〜第３のＬＳＩのような回路構成を呈することにより、位相が可変制御される。また、ラッチ６０〜６３はクロックＣＬＫＰ、クロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＣの立ち下がりエッジに同期して動作する。具体的には、ラッチ６０〜６３は対応クロックの“Ｌ”時はデータスルー（アンラッチ）状態となり、“Ｈ”時にラッチ状態となる。
【０２０７】
図２９は実施の形態１０であるＬＳＩにおけるモジュールＡ１１，モジュールＢ１２間のデータ転送動作を示すタイミング図であり、図２７で示した場合と同様、クロックＣＬＫＡ，クロックＣＬＫＢ間に位相差ΔＴ１が生じている。
【０２０８】
同図に示すように、クロックＣＬＫＢがクロックＣＬＫＡに対し位相差ΔＴ１分遅れているため、モジュールＡ１１の出力データＯＵＴＡは時刻ｔ２より早いタイミングでデータＤＴ１からデータＤＴ２に変化する。
【０２０９】
しかしながら、ラッチ６１はクロックＣＬＫＡの立ち下がりエッジをトリガとするため、時刻ｔ１におけるクロックＣＬＫＡの立ち上がりエッジには反応せず、ラッチ６１はデータＤＴ１の格納し続ける。この状態で時刻ｔ２にクロックＣＬＫＢが立ち上がるため、モジュールＢ１２はラッチ６１より本来格納すべきデータＤＴ１を正確にラッチすることができる。
【０２１０】
その後、クロックＣＬＫＡが立ち下がりをトリガとして、ラッチ６１は出力データＯＵＴＡをラッチすることにより、時刻ｔ２より時間差ΔＴ２遅れた時刻ｔ３にはじめてバス４０上にデータＤＴ２が現れる。
【０２１１】
このように、モジュールＡ１１の出力データＯＵＴＡがバス４０に出力されるタイミングはラッチ６１の存在によりクロックＣＬＫＡの半周期分遅くできるため、クロックＣＬＫＢの立ち上がり時刻ｔ２には確実に取り込むべき本来のデータをバス１６上に保持することができる。したがって、モジュールＢ１２が誤って次のサイクルのデータＤＴ２をサンプリングすることは無い。
【０２１２】
図３０はこの発明の実施の形態１０のＬＳＩである第２のシステム構成を示す説明図である。同図に示すように、バス４０に信号授受可能にＣＰＵ３０、モジュールＡ１１、モジュールＢ１２、及びモジュールＣ１３が接続される。具体的には、ＣＰＵ３０、モジュールＡ１１、モジュールＢ１２、及びモジュールＣ１３の出力がバス４０に直接接続され、ＣＰＵ３０、モジュールＡ１１、モジュールＢ１２、及びモジュールＣ１３の入力がラッチ７０〜７３を介してバス４０に接続される。ラッチ７０〜７３もラッチ６０〜６３同様なラッチ動作を行う。
【０２１３】
なお、ＣＰＵ３０、モジュールＡ１１、モジュールＢ１２、及びモジュールＣ１３は、クロックＣＬＫＰ、クロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＣの立ち上がりエッジに同期して動作し、これらのクロックは上述した第１〜第３のＬＳＩのような回路構成を呈することにより、位相が可変制御される。また、ラッチ７０〜７３はクロックＣＬＫＰ、クロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＣの立ち下がりエッジに同期して動作する。
【０２１４】
このような第２のシステム構成において、例えば、モジュールＡ１１，モジュールＢ１２間のデータ転送動作を想定した場合、モジュールＡ１１の出力データＯＵＴＡがモジュールＢ１２の入力に現れるタイミングはラッチ７２の存在によりクロックＣＬＫＢの半周期分以上遅くできる。このため、クロックＣＬＫＢの立ち上がり時刻においても、確実に取り込むべき本来のデータをモジュールＢ１２の入力部（ラッチ７２の出力部）に保持することができる。したがって、モジュールＢ１２が誤って次のサイクルのデータをサンプリングすることは無い。
【０２１５】
図３１はこの発明の実施の形態１０のＬＳＩである第３のシステム構成を示す説明図である。同図に示すように、バス４０に信号授受可能にモジュールＡ１１及びモジュールＢ１２が直接接続される。ただし、モジュールＡ１１、モジュールＢ１２間はバス４０を介さずに互いにアクセス可能に構成されている。具体的には、モジュールＡ１１の出力がラッチ６４を介してモジュールＢ１２の入力に付与され、モジュールＢ１２の出力がラッチ６５を介してモジュールＡ１１の入力に付与される。ラッチ６４，６５もラッチ６０〜６３と同様なラッチ動作を行う。
【０２１６】
なお、モジュールＡ１１及びモジュールＢ１２はクロックＣＬＫＡ及びクロックＣＬＫＢの立ち上がりエッジに同期して動作し、これらのクロックは上述した第１〜第３のＬＳＩのような回路構成を呈することにより、位相が可変制御される。また、ラッチ６４及び６５はクロックＣＬＫＡ及びクロックＣＬＫＢの立ち下がりエッジに同期して動作する。
【０２１７】
このような第３のシステム構成において、例えば、モジュールＡ１１，モジュールＢ１２間のデータ転送動作を想定した場合、モジュールＡ１１の出力データＯＵＴＡがモジュールＢ１２の入力に現れるタイミングはラッチ６４の存在によりクロックＣＬＫＢの半周期分以上遅くできる。このため、クロックＣＬＫＢの立ち上がり時刻においても確実に取り込むべき本来のデータを、モジュールＢ１２の入力部（ラッチ６４の出力部）に保持することができる。したがって、モジュールＢ１２が誤って次のサイクルのデータをサンプリングすることは無い。
【０２１８】
なお、上述した第１〜第３のシステム構成において、“Ｌ”スルーとなるラッチに代えてクロックの立ち下がりに同期するフリップフロップを用いても良い。
【０２１９】
上述のように、ホールド補正用にラッチを使用した場合、立下りエッジ同期のラッチまたはフリップフロップの存在がスキャンテストの正常動作を妨げる可能性がある。そこで、以下のように改良を加えることが望ましい。
【０２２０】
図３２は図３０で示した第２のシステム構成の第１の改良例を示す説明図である。同図に示すように、クロックＣＬＫＡを一方入力、スキャンイネーブル信号ＳＣＡＮを他方入力とするＯＲゲートＧ５を設け、ＯＲゲートＧ５の出力をラッチ７１のクロック入力に付与している。
【０２２１】
このような構成において、通常動作時（スキャンテスト時以外）はスキャンイネーブル信号ＳＣＡＮが“Ｌ”のため、図３０で示した第２のシステム構成と等価な回路となる。一方、スキャンテスト時はスキャンイネーブル信号ＳＣＡＮが“Ｈ”のため、ラッチ７１は常時データスルー状態となる。その結果、スキャンテスト時はラッチ７１を単なる信号遅延手段としてスキャンテストを正常に行うことができる。
【０２２２】
図３３は図３０で示した第２のシステム構成の第２の改良例を示す説明図である。同図に示すように、ラッチ７１相当のフリップフロップ６７はクロックＣＬＫＡをクロック入力に受け、データ入力部がバス４０に接続される。選択回路６８はフリップフロップ６７の出力を第１入力、バス４０より直接得られる信号を第２入力とし、スキャンイネーブル信号ＳＣＡＮが“Ｌ”の時はフリップフロップ６７の出力を選択し、スキャンイネーブル信号ＳＣＡＮが“Ｈ”の時はバス４０上の信号を選択して、モジュールＡ１１の入力部に付与する。
【０２２３】
このような構成において、通常動作時（スキャンテスト時以外）はスキャンイネーブル信号ＳＣＡＮが“Ｌ”となり、選択回路６８によりフリップフロップ６７の出力が選択されるため、図３０で示した第２のシステム構成と等価な回路となる。一方、スキャンテスト時はスキャンイネーブル信号ＳＣＡＮが“Ｈ”となり、バス４０上の信号がフリップフロップ６７を介すすることなくモジュールＡ１１に入力される。その結果、スキャンテスト時は選択回路６８を単なる信号遅延手段としてスキャンテストを正常に行うことができる。
【０２２４】
（効果）
上述したように、実施の形態１０のＬＳＩでは、位相の違うクロックを使用し、立ち上がりエッジ同期のモジュール間の信号伝搬経路上に、対応モジュール用クロックの立ち下がりエッジ同期のラッチまたはフリップフロップを挿入することにより、ホールドエラーによる誤動作を起こさずに、電流ピークやＥＭＩを低減させることができる効果を奏する。
【０２２５】
すなわち、実施の形態１０のＬＳＩは、モジュール間のデータ転送動作を、モジュールに入力されるクロックによって決定される遅延時間で遅延させる遅延手段を備えることにより、モジュール間におけるデータ転送動作における誤動作を確実に回避することができる。
【０２２６】
これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【０２２７】
また、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０２２８】
さらに、実施の形態１０ＬＳＩは、スキャンテスト時において上記遅延手段の遅延機能が強制的に無効化される遅延無効機能（ＯＲゲートＧ５（図３２），選択回路６８（図３３））を有するため、スキャンテスト時には上記遅延手段によるデータ転送動作遅延を生じさせることなく、スキャンテスト動作を正常に行うことができる。
【０２２９】
＜実施の形態１１＞
複数のＬＳＩを同一パッケージ内に封止する、ＭＣＭ(Multi Chip Package)やＳＩＰ(System In Package)が近年注目されている。ＭＣＭ/ＳＩＰである半導体集積回路装置を本発明に適用したのが実施の形態１１のＬＳＩである。
【０２３０】
図３４はこの発明の実施の形態１１である半導体集積回路装置の第１のチップ構成を示す説明図である。同図に示すように、ＳＩＰ４内にチップＡ７、チップＢ８及びチップＣ９が設けられている。以下、チップＣ９内の回路について説明する。
【０２３１】
同図に示すように、チップＣ９はクロックＣＬＫ２０を供給するＰＬＬ回路２０、モジュールＣ２３、クロック制御回路３７、遅延回路３８、可変遅延回路４４〜４６から構成されている。モジュールＣ２３はクロックＣＬＫＣに同期して動作し、クロック制御回路３７はクロックＣＬＫＸに同期して動作する。
【０２３２】
クロック制御回路３７は可変遅延回路３１〜３３に与える制御信号ＳＣＴ２１〜ＳＣＴ２３によって、可変遅延回路４４〜４６の遅延時間をそれぞれ個別に制御する。可変遅延回路４４〜４６は制御信号ＳＣＴ２１〜ＳＣＴ２３に基づき決定される遅延時間で、ＰＬＬ回路２０からのクロックＣＬＫ２０を遅延させることにより、互いに位相の異なるクロックＣＬＫＡ、クロックＣＬＫＢ及びクロックＣＬＫＣを得る。また、遅延回路３８はクロックＣＬＫ２０を遅延させてクロックＣＬＫＸを得る。
【０２３３】
そして、チップＣ９外のチップＡ７内の回路（図示せず）はクロックＣＬＫＡに同期して動作し、チップＢ８内の回路（図示せず）はクロックＣＬＫＢに同期して動作する。
【０２３４】
このように、第１のチップ構成では、ＳＩＰ４内のチップＣ９に、チップＣ９以外のチップＡ７及びチップＢ８に供給するクロックの位相をコントロールする機構を持たせることができる。図３４で示した第１のチップ構成では、図１７で示した第３のＬＳＩと同様に、専用のクロック制御回路３７によってクロック位相制御を行う構成をていしているが、図１で示した第１のＬＳＩと同様に、ＣＰＵによってクロック位相を制御する構成でも実現可能である。また、位相差を持たせたクロックの生成方法も、第１及び第３のＬＳＩのように可変遅延回路を持たせることなく、図１０で示した第２のＬＳＩのように、位相が異なる複数種のクロックを選択する構成で実現することが可能である。
【０２３５】
図３５はこの発明の実施の形態１１である半導体集積回路装置の第２のチップ構成を示す説明図である。同図に示すように、ＳＩＰ（あるいはＭＣＭ）５内にチップＡ７、チップＣ９及びチップＢ１０が設けられている。チップＣ９内の回路構成は図３４で示した第１のチップ構成のチップＣ９と同様であるため説明を省略する。
【０２３６】
チップＣ９外のチップＡ７内の回路（図示せず）はクロックＣＬＫＡに同期して動作し、チップＢ１０内はクロックＣＬＫＢを基準クロックとして入力する。
【０２３７】
図３５に示すように、チップＢ１０は、モジュールα１４、モジュールβ１５及びＣＰＵ５５から構成されている。モジュールα１４はクロックＣＬＫＢが可変遅延回路４８を介して得られるクロックＣＬＫαを受け、クロックＣＬＫαに同期して動作する。モジュールβ１５はクロックＣＬＫＢが可変遅延回路３２を介して得られるクロックＣＬＫβを受け、クロックＣＬＫβに同期して動作する。ＣＰＵ５５はクロックＣＬＫＢが可変遅延回路５０を介して得られるクロックＣＬＫＰを受け、クロックＣＬＫＰに同期して動作する。
【０２３８】
ＣＰＵ５５は可変遅延回路４８〜５０に与える制御信号ＳＣＴ１〜ＳＣＴ３によって、可変遅延回路４８〜５０の遅延時間をそれぞれ個別に制御する。このように、可変遅延回路４８〜５０の遅延時間をＣＰＵ５５によって制御することにより、モジュールＡ２１、モジュールＢ２２及びＣＰＵ５５に供給されるクロックＣＬＫα、クロックＣＬＫβ及びクロックＣＬＫＰ間の位相を可変制御することができる。
【０２３９】
このように、第２のチップ構成では、ＳＩＰ５内のチップＣ９に、チップＣ９以外のチップＡ７及びチップＢ１０に供給するクロックの位相をコントロールする機構を持たせ、さらにチップＢ１０内にも内部のクロックの位相をコントロールする機構を持たせている。
【０２４０】
図３５で示した第２のチップ構成においても、位相差を持たせたクロックの生成方法を、第１及び第３のＬＳＩのように可変遅延回路を持たせることなく、図１０で示した第２のＬＳＩのように、位相が異なる複数種のクロックを選択する構成で実現することが可能である。
【０２４１】
また、図３５で示した第２のチップ構成のようなクロック位相制御以外にも、例えば専用のクロック制御回路が各チップ内部のモジュール単位でクロック位相まで制御する方法も考えられる。この場合は、一元的に管理ができて、適切にスキュー調整すればＳＩＰ全体で非常に良い効果が得られることが期待できる。
【０２４２】
また、図３５で示した第２のチップ構成のようなクロック位相制御以外にも、例えば、一のチップ内のＣＰＵが各チップ内のモジュール単位のクロック位相を制御する方法も考えられる。また他の方法として、一のチップのＣＰＵがＳＩＰまたはＭＣＭ内の各チップに供給するクロック位相を制御し、上記一のチップ以外の各チップ内はそれぞれ個別にクロック位相を制御する方法も考えられる。
【０２４３】
上述した種々の方法うち、ＬＳＩの規模、制御するソフトウェアの規模、開発リソースにより、最適なものを選択すればよい。
【０２４４】
なお、第２のチップ構成において、チップＣ９内においてチップＢ１０内のモジュールα１４，モジュールβ１５等のクロック位相を制御する構成も考えられるが、その場合、チップＣ９内のクロック制御回路３７がチップＢ１０内の内部回路の情報(どんなモジュールが何個あるのか等)を持っている必要がある。このため、チップＣ９内のクロック制御回路３７の汎用性がなくなる、チップＣ９，チップＢ８間の信号線が多くなる等のデメリットがある。
【０２４５】
一方、図３５で示した第２のチップ構成例では、チップＢ１０内のクロック位相制御はチップＢ１０内で行っているため、上記したデメリットは生じない。また、チップＡ７へのクロックＣＬＫＡの供給のように、チップ単位に供給するクロックの位相を変えることは比較的容易に行えるため、第２の構成のようにクロックＣＬＫＢをチップＢ１０に付与することは比較的容易である。
【０２４６】
（効果）
実施の形態１１のＬＳＩでは、ＳＩＰまたはＭＣＭ内の複数のチップのうち、一のチップ（チップＣ９）内に、他のチップ（チップＡ７，チップＢ８）用のクロックも供給するクロック供給手段を設けることにより、複数のチップに供給する複数のクロックを互いに位相が異なるように供給することができるため、複数のチップからなるＳＩＰ４においても低コストで電流ピークを効果的に抑制することができる。
【０２４７】
電源ピークノイズ低減により、局所的な電圧降下が緩和される。これにより、回路設計時に見込む電圧降下分のマージンが減るため、その分回路規模/ゲートサイズを減らすことができ、コスト低減、消費電力低減が可能となる効果を奏する。
【０２４８】
また、ＥＭＩ低減により、システムでの誤動作の危険性が低くなり、ＥＭＩ対策にかけていたコストを削減できる効果を奏する。
【０２４９】
また、図３５で示した第２のチップ構成例のように、チップＣ９からクロックＣＬＫＢを基準クロックとして受けるチップＢ１０内において、各々がクロックＣＬＫＢを遅延させて複数のクロック（ＣＬＫα，ＣＬＫβ，ＣＬＫＰ）を得る複数の遅延手段（４８〜５０）と、上記複数の遅延手段それぞれの遅延時間を制御する遅延時間制御手段であるＣＰＵ５５とを備えている。上記構成により、チップＢ１０内の複数のモジュール（１４，１５，５５）間に供給する複数のクロック（ＣＬＫα，ＣＬＫβ，ＣＬＫＰ）を互いに位相が異なるように供給することができるため、チップＢ１０内においても低コストで電流ピークを効果的に抑制することができる効果を奏する。
【図面の簡単な説明】
【０２５０】
【図１】本願発明のＬＳＩを実現するための第１のＬＳＩの基本構成を示す説明図である。
【図２】可変遅延回路の内部構成の第１の例を示す回路図である。
【図３】可変遅延回路の内部構成の第２の例を示す回路図である。
【図４】可変遅延回路の内部構成の第３の例を示す回路図である。
【図５】図１で示した第１のＬＳＩの第１のシステム構成例を示すブロック図である。
【図６】図１で示した第１のＬＳＩの第２のシステム構成例を示すブロック図である。
【図７】位相制御レジスタのＣＰＵから見たメモリマップを示す説明図である。
【図８】位相制御レジスタの内部構成例を示す説明図である。
【図９】図８で示した位相制御レジスタの格納内容と制御情報との関係を表形式で示す説明図である。
【図１０】本願発明のＬＳＩを実現するための第２のＬＳＩの構成例を示す説明図である。
【図１１】図１０で示したＰＬＬ回路より生成されるクロックの波形を示すタイミング図である。
【図１２】図１０で示したＰＬＬ回路の第１の構成例におけるオッシレータ部の構成を示す説明図である。
【図１３】図１０で示したＰＬＬ回路の第２の構成例を示す説明図である。
【図１４】本願発明のＬＳＩを実現するための第３のＬＳＩの基本構成を示す説明図である。
【図１５】実施の形態１のＬＳＩの物理的なレイアウトを概念的に示す説明図である。
【図１６】この発明の実施の形態２であるＬＳＩにおけるクロックスキュー調整方法を示すフローチャートである。
【図１７】実施の形態３のＬＳＩにおいてバスを中心としたレイアウト構成を示す説明図である。
【図１８】この発明の実施の形態３であるＬＳＩにおけるクロックスキュー調整方法を示すフローチャートである。
【図１９】実施の形態４のＬＳＩにおいてバスを中心としたレイアウト構成を示す説明図である。
【図２０】この発明の実施の形態４であるＬＳＩのクロックスキュー調整方法を示すフローチャートである。
【図２１】実施の形態５のＬＳＩにおいてバスを中心としたレイアウト構成を示す説明図である。
【図２２】この発明の実施の形態６であるＬＳＩのクロックスキュー調整方法にける位相一致方法を示すフローチャートである。
【図２３】この発明の実施の形態７であるクロック制御機能を有するＬＳＩの構成を示す説明図である。
【図２４】この発明の実施の形態８であるクロック制御機能を有するＬＳＩの構成を示す説明図である。
【図２５】この発明の実施の形態９である許容位相差測定回路の第１の構成を示す説明図である。
【図２６】この発明の実施の形態９である許容位相差測定回路の第２の構成を示す説明図である。
【図２７】クロック位相差に起因するホールドエラー例について示すタイミング図である。
【図２８】この発明の実施の形態１０である第１のシステム構成を示す説明図である。
【図２９】実施の形態１０であるＬＳＩにおけるモジュール間のデータ転送動作を示すタイミング図である。
【図３０】この発明の実施の形態１０である第２のシステム構成を示す説明図である。
【図３１】この発明の実施の形態１０である第３のシステム構成を示す説明図である。
【図３２】図３０で示した第２のシステム構成の第１の改良例を示す説明図である。
【図３３】図３０で示した第２のシステム構成の第２の改良例を示す説明図である。
【図３４】この発明の実施の形態１１であるＬＳＩの第１のチップ構成を示す説明図である。
【図３５】この発明の実施の形態１１であるＬＳＩの第２のチップ構成を示す説明図である。
【符号の説明】
【０２５１】
１〜３，２５，２８，３０，５５  ＣＰＵ、４，５  ＳＩＰ、６  ２次キャッシュ、７  チップＡ、８，１０  チップＢ、９  チップＣ、１１，２１  モジュールＡ、１２，２２  モジュールＢ、１３，２３  モジュールＣ、１４  モジュールα、１５  モジュールβ、１６，４０，５９  バス、１７  クロック基準バス、１８，１９  遅延内容選択回路、２０，２７  ＰＬＬ回路、２４，２６  位相制御レジスタ、３１〜３３，４４〜５０  可変遅延回路、３７，３９  クロック制御回路、４１〜４３，６８  選択回路、５１，５２，６７  フリップフロップ、５３  遅延素子、５４  レプリカ回路、６０〜６５，７０〜７３  ラッチ、Ｇ５  ＯＲゲート。
【図１】
2008102797.tif 000003
【図２】
2008102797.tif 000004
【図３】
2008102797.tif 000005
【図４】
2008102797.tif 000006
【図５】
2008102797.tif 000007
【図６】
2008102797.tif 000008
【図７】
2008102797.tif 000009
【図８】
2008102797.tif 000010
【図９】
2008102797.tif 000011
【図１０】
2008102797.tif 000012
【図１１】
2008102797.tif 000013
【図１２】
2008102797.tif 000014
【図１３】
2008102797.tif 000015
【図１４】
2008102797.tif 000016
【図１５】
2008102797.tif 000017
【図１６】
2008102797.tif 000018
【図１７】
2008102797.tif 000019
【図１８】
2008102797.tif 000020
【図１９】
2008102797.tif 000021
【図２０】
2008102797.tif 000022
【図２１】
2008102797.tif 000023
【図２２】
2008102797.tif 000024
【図２３】
2008102797.tif 000025
【図２４】
2008102797.tif 000026
【図２５】
2008102797.tif 000027
【図２６】
2008102797.tif 000028
【図２７】
2008102797.tif 000029
【図２８】
2008102797.tif 000030
【図２９】
2008102797.tif 000031
【図３０】
2008102797.tif 000032
【図３１】
2008102797.tif 000033
【図３２】
2008102797.tif 000034
【図３３】
2008102797.tif 000035
【図３４】
2008102797.tif 000036
【図３５】
2008102797.tif 000037