(57)【要約】【課題】複数の回路ブロックを有する半導体集積回路にて、電源ノイズにより発生するクロック信号におけるジッタを低減する。【解決手段】第１の回路ブロックに供給される第１のクロック信号のクロックパスディレイを測定する遅延測定回路と、第２の回路ブロックの動作による電源電圧の変動時間を測定する時間測定回路と、第２の回路ブロックに供給される第２のクロック信号を遅延させる遅延調整回路と、第１のクロック信号と第２のクロック信号との位相差を測定する位相差測定回路と、遅延調整回路での遅延量を制御する位相制御回路とを備え、第２の回路ブロックの動作周波数が第１の回路ブロックの動作周波数より低い場合には、位相制御回路が、ジッタが最小となる電源ノイズと第１のクロック信号との設定位相差を算出し、位相差測定回路により測定した位相差が設定位相差になるように遅延量を制御する。【選択図】図１
2011004248.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路ブロックを有する半導体集積回路であって、
前記複数の回路ブロックのうちの第１の回路ブロックに供給される第１のクロック信号のクロックパスにおける遅延時間を測定する遅延測定回路と、
前記複数の回路ブロックのうちの第２の回路ブロックの動作による電源電圧の変動時間を測定する時間測定回路と、
前記第２の回路ブロックに供給される第２のクロック信号を遅延させる遅延調整回路と、
前記第１のクロック信号と前記第２の回路ブロックに供給される第２のクロック信号との位相差を測定する位相差測定回路と、
前記第２の回路ブロックの動作周波数が前記第１の回路ブロックの動作周波数より低い場合に、前記第１の回路ブロックに供給される第１のクロック信号の周期、前記時間測定回路により測定した変動時間、及び前記遅延測定回路により測定した遅延時間に基づいて、ジッタが最小となる前記電源電圧の変動が発生するタイミングと前記第１の回路ブロックに供給される第１のクロック信号との設定位相差を算出し、前記位相差測定回路により測定した位相差が前記設定位相差になるように前記遅延調整回路での遅延量を制御する位相制御回路とを備えることを特徴とする半導体集積回路。
【請求項２】
前記位相制御回路は、前記遅延調整回路の遅延量の制御動作と、前記位相差測定回路による位相差の測定及び測定した位相差と前記設定位相差との比較動作とを、前記位相差測定回路により測定した位相差が前記設定位相差になるまで繰り返し行うことを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記複数の回路ブロックの各々が、前記遅延測定回路、前記時間測定回路、前記遅延調整回路、及び前記位相差測定回路を有することを特徴とする請求項１又は２記載の半導体集積回路。
【請求項４】
前記位相制御回路の制御に応じた前記遅延調整回路の遅延量の変更時に、当該遅延調整回路から対応する回路ブロックへのクロック信号の供給を遮断するクロック制御回路をさらに備えることを特徴とする請求項１〜３の何れか１項に記載の半導体集積回路。
【請求項５】
前記位相制御回路は、前記第１の回路ブロックの動作周波数と前記第２の回路ブロックの動作周波数とを比較し、動作周波数が高い前記第１の回路ブロック又は前記第２の回路ブロックの一方の回路ブロックに供給されるクロック信号の周期、前記第１の回路ブロック又は前記第２の回路ブロックの他方の回路ブロックに対応する前記時間測定回路及び前記遅延測定回路によりそれぞれ測定した変動時間及び遅延時間に基づいて、ジッタが最小となる前記電源電圧の変動が発生するタイミングと前記一方の回路ブロックに供給されるクロック信号との設定位相差を算出し、前記他方の回路ブロックに対応する前記位相差測定回路により測定した位相差が前記設定位相差になるように前記他方の回路ブロックに対応する前記遅延調整回路での遅延量を制御することを特徴とする請求項３記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の回路ブロックを有する半導体集積回路に関する。
【背景技術】
【０００２】
従来、１つの半導体集積回路には、１つの回路ブロックだけが実装されていた。しかし、半導体集積回路の製造技術における微細化が進んだことで高集積化が可能になり、１つの半導体集積回路に複数の回路ブロックを実装できるようになった。
【０００３】
このような複数の回路ブロックを有する半導体集積回路では、すべての回路ブロックが同じ周波数で動作するとは限らず、回路ブロックが互いに異なる周波数で動作することもある。そのため、ある回路ブロックが動作することによって電源電圧が変動して電源ノイズが発生し、その電源ノイズが原因となって他の回路ブロックのクロック信号にジッタを発生させ、信号の伝送が失敗し半導体集積回路が誤動作することがある。半導体集積回路が有する回路ブロックの動作周波数が異なる場合には、動作周波数の低い回路ブロックが出す電源ノイズが、動作周波数の高い回路ブロックのクロック信号にジッタを発生させる。すなわち、クロック信号にジッタが発生するのは、クロック信号の周波数が電源ノイズの周波数よりも高いときである。
【０００４】
異なる周波数で動作する複数の回路ブロックを有する半導体集積回路において、電源ノイズによりクロック信号にジッタが発生して誤動作することを防止する１つの方法として、回路ブロック毎に電源分配回路を分割する方法（第１の方法）がある。この第１の方法は、半導体集積回路上の回路ブロックが２、３個程度である場合や、個々の回路ブロックの面積が十分に大きい場合には、電源分配回路を分割することは容易である。しかし、半導体集積回路上の回路ブロックが１０個以上になる場合や、回路ブロックの面積が小さい場合には、回路ブロック毎に電源分配回路を分割することは困難である。例えば、メモリインタフェース等の半導体集積回路の外部に対してクロック信号を出力するクロック分配回路は、回路面積が小さくかつ形状が細長いので、電源分配回路を分割することは非常に困難である。
【０００５】
また、他の方法として、それぞれがクロック信号に同期して動作する複数の回路ブロックを有する半導体集積回路において、電源電圧変動により発生するジッタの影響によるエラー発生を抑制する方法（第２の方法）が提案されている（例えば、特許文献１参照。）。この第２の方法では、第１の回路ブロックの動作周波数に対して、第２の回路ブロックの動作周波数をＮ倍もしくは１／Ｎ倍にし、第１の回路ブロックと第２の回路ブロックとの間でのデータ送受信におけるデータレートを調整する。これにより、第１の回路ブロックの動作に対するジッタ発生のタイミングを一定にし、エラー発生を抑制するようにしている。
【０００６】
ところで、最近では、電力効率の最適化のために、回路ブロックの動作周波数を負荷や動作モードに応じて動的に変化させる機能（ＤＦＳ：Dynamic Frequency Scaling）が実装された半導体集積回路がある。ＤＦＳ機能を有する半導体集積回路では、動作周波数の高い回路ブロックと動作周波数が低い回路ブロックが固定ではなく、動的に切り替わることが考えられる。したがって、ＤＦＳ機能を有する半導体集積回路では、ジッタの原因となる電源ノイズを出す回路ブロックと、電源ノイズを被ってジッタを発生する回路ブロックとが動的に入れ替わり得る。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１６４３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
前述の第２の方法では、信号にランダムなタイミングでジッタが発生するとデータ受信時にエラーが発生する可能性が高いため、ジッタ発生のタイミングを一定とするようにデータレートを調整することでデータ受信時のエラー発生率の低下を図っている。しかしながら、前述の第２の方法は、電源ノイズにより発生するジッタそのものは低減されていない。
【課題を解決するための手段】
【０００９】
本発明の一観点によれば、第１の回路ブロックに供給される第１のクロック信号のクロックパスにおける遅延時間を測定する遅延測定回路と、第２の回路ブロックの動作による電源電圧の変動時間を測定する時間測定回路と、第２の回路ブロックに供給される第２のクロック信号を遅延させる遅延調整回路と、第１のクロック信号と第２の回路ブロックに供給される第２のクロック信号との位相差を測定する位相差測定回路と、遅延調整回路での遅延量を制御する位相制御回路とを有する半導体集積回路が提供される。位相制御回路は、第２の回路ブロックの動作周波数が第１の回路ブロックの動作周波数より低い場合に、第１のクロック信号の周期、測定された変動時間及び遅延時間に基づいて、ジッタが最小となる電源電圧の変動が発生するタイミングと第１の回路ブロックに供給される第１のクロック信号との設定位相差を算出し、位相差測定回路により測定した位相差が設定位相差になるように遅延量を制御する。
【発明の効果】
【００１０】
開示の半導体集積回路は、第１のクロック信号と第２の回路ブロックに供給される第２のクロック信号との位相差を、ジッタが最小となる設定位相差にするように第２のクロック信号を遅延させることで、電源電圧の変動の影響を受けて発生するジッタを低減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態における半導体集積回路の構成例を示す図である。
【図２】本実施形態における半導体集積回路での電源電圧及びクロック信号の一例を示す図である。
【図３】本実施形態における位相差とジッタとの関係の一例を示す図である。
【図４】ジッタが極小となる位相差を説明するための図である。
【図５】本実施形態における半導体集積回路の他の構成例を示す図である。
【図６】本実施形態におけるクロックゲーティング回路の構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面に基づいて説明する。
【００１３】
図１は、本発明の一実施形態における半導体集積回路の構成例を示す図である。図１に示す本実施形態における半導体集積回路は、１つの半導体集積回路として１つの半導体基板上に実装されている。
【００１４】
図１において、１０＿１、１０＿２は、それぞれ所定の回路機能を有する回路ブロックである。回路ブロック１０＿１、１０＿２は、共通の電源配線（電源回路）から電源が供給されて動作する。
【００１５】
１２はＰＬＬ（Phase Locked Loop）回路である。ＰＬＬ回路１２は、入力されたクロック信号ＣＬＫＩＮに基づいてクロック信号ＰＬＬＯＵＴを生成し出力する。ＰＬＬ回路１２は、入力信号と同じ周波数の信号をクロック信号ＰＬＬＯＵＴとして出力するものであっても、入力信号を逓倍又は分周した周波数に相当する信号をクロック信号ＰＬＬＯＵＴとして出力するものであっても良い。
【００１６】
第１の回路ブロック１０＿１には、ＰＬＬ回路１２から出力されるクロック信号ＰＬＬＯＵＴを分周回路１４＿１により分周して得られる第１のクロック信号ＣＫ１（ＣＫ１＿０、ＣＫ１＿１、ＣＫ１＿３、ＣＫ１＿Ｌ）が供給される。第１の回路ブロック１０＿１は、第１のクロック信号ＣＫ１に同期して動作する。なお、本実施形態では、第１のクロック信号ＣＫ１は、位相制御回路１８の制御に応じて遅延調整回路１６＿１によって遅延量が調整されて第１の回路ブロック１０＿１に供給される。
【００１７】
図１に示した例では、分周回路１４＿１は、ＰＬＬ回路１２から出力されるクロック信号ＰＬＬＯＵＴを分周（例えば、１／ｐ）して第１のクロック信号ＣＫ１＿０を出力する。遅延調整回路１６＿１は、位相制御回路１８から出力される信号ＤＬＹＣ１に応じて、分周回路１４＿１から出力される第１のクロック信号ＣＫ１＿０を遅延させ、第１のクロック信号ＣＫ１＿１として出力する。この第１のクロック信号ＣＫ１＿１が、第１の回路ブロック１０＿１に入力される。信号ＤＬＹＣ１は、遅延調整回路１６＿１における遅延量を制御するための信号であり、信号ＤＬＹＣ１に応じて遅延調整回路１６＿１での遅延量（伝搬遅延時間）が増減される。
【００１８】
同様に、第２の回路ブロック１０＿２には、ＰＬＬ回路１２から出力されるクロック信号ＰＬＬＯＵＴを分周回路１４＿２により分周して得られる第２のクロック信号ＣＫ２（ＣＫ２＿０、ＣＫ２＿１、ＣＫ２＿３、ＣＫ２＿Ｌ）が供給される。第２の回路ブロック１０＿２は、第２のクロック信号ＣＫ２に同期して動作する。第１のクロック信号ＣＫ１と同様に、第２のクロック信号ＣＫ２は、位相制御回路１８の制御に応じて遅延調整回路１６＿２によって遅延量が調整されて第２の回路ブロック１０＿２に供給される。
【００１９】
図１に示した例では、分周回路１４＿２は、ＰＬＬ回路１２から出力されるクロック信号ＰＬＬＯＵＴを分周（例えば、１／ｑ）して第２のクロック信号ＣＫ２＿０を出力する。遅延調整回路１６＿２は、位相制御回路１８から出力される信号ＤＬＹＣ２に応じて、分周回路１４＿２から出力される第２のクロック信号ＣＫ２＿０を遅延させ、第２のクロック信号ＣＫ２＿１として出力する。この第２のクロック信号ＣＫ２＿１が、第２の回路ブロック１０＿２に入力される。信号ＤＬＹＣ２は、遅延調整回路１６＿２における遅延量を制御するための信号であり、信号ＤＬＹＣ２に応じて遅延調整回路１６＿２での遅延量（伝搬遅延時間）が増減される。
【００２０】
位相制御回路１８は、周期測定回路２０＿１、２０＿２、遅延測定回路２２＿１、２２＿２、２４＿１、２４＿２、及び位相差測定回路２６＿１、２６＿２の測定結果に応じて、遅延調整回路１６＿１、１６＿２における遅延量を制御し、第１及び第２のクロック信号ＣＫ１、ＣＫ２の位相制御を行う。位相制御回路１８は、信号ＴＣＫ１、ＴＣＫ２、ＣＰＤ１、ＣＰＤ２、ＴＦ１、ＴＦ２、ＰＨＭ１、ＰＨＭ２が入力され、これらの信号に基づいて信号ＤＬＹＣ１、ＤＬＹＣ２を生成して出力する。
【００２１】
周期測定回路２０＿１は、分周回路１４＿１から出力される第１のクロック信号ＣＫ１＿０が入力され、信号ＴＣＫ１を出力する。信号ＴＣＫ１は、第１のクロック信号ＣＫ１の周期を示す信号である。周期測定回路２０＿１は、入力される第１のクロック信号ＣＫ１＿０の周期を測定し、測定結果を信号ＴＣＫ１により位相制御回路１８へ出力する。
【００２２】
遅延測定回路２２＿１は、ＰＬＬ回路１２から出力されるクロック信号ＰＬＬＯＵＴ、及び第１の回路ブロック１０＿１に係るクロックツリーの出力端（例えば、第１のクロック信号ＣＫ１で動作するフリップフロップの入力端）における第１のクロック信号ＣＫ１＿Ｌが入力され、信号ＣＰＤ１を出力する。信号ＣＰＤ１は、第１のクロック信号ＣＫ１に係るクロックパスディレイ、すなわちＰＬＬ回路１２の出力から第１の回路ブロック１０＿１に係るクロックツリーの出力端までの第１のクロック信号ＣＫ１に係る遅延時間を示す信号である。遅延測定回路２２＿１は、入力されるクロック信号ＰＬＬＯＵＴ及び第１のクロック信号ＣＫ１＿Ｌを用いてクロックパスディレイを測定し、測定結果を信号ＣＰＤ１により位相制御回路１８へ出力する。
【００２３】
遅延測定回路２４＿１は、第１の回路ブロック１０＿１に係るクロックツリーの入力端における第１のクロック信号ＣＫ１＿３及び当該クロックツリーの出力端における第１のクロック信号ＣＫ１＿Ｌが入力され、信号ＴＦ１を出力する。信号ＴＦ１は、第１の回路ブロック１０＿１が動作することによって電源電圧の電圧レベルが変動した（電源ノイズが発生した）場合に、最も高い電圧レベルから最も低い電圧レベルに落ちるまでの時間を示す信号である。遅延測定回路２４＿１は、入力される第１のクロック信号ＣＫ１＿３、ＣＫ１＿Ｌを用いて電源電圧変動の時間を測定し、測定結果を信号ＴＦ１により位相制御回路１８へ出力する。
【００２４】
位相差測定回路２６＿１は、ＰＬＬ回路１２から出力されるクロック信号ＰＬＬＯＵＴ、及び第１の回路ブロック１０＿１に係るクロックツリーの入力端における第１のクロック信号ＣＫ１＿３が入力され、信号ＰＨＭ１を出力する。信号ＰＨＭ１は、クロック信号ＰＬＬＯＵＴと第１のクロック信号ＣＫ１＿３との位相差を示す信号である。位相差測定回路２６＿１は、入力されるクロック信号ＰＬＬＯＵＴと第１のクロック信号ＣＫ１＿３との位相差を測定し、測定結果を信号ＰＨＭ１により位相制御回路１８へ出力する。
【００２５】
周期測定回路２０＿２、遅延測定回路２２＿２、遅延測定回路２４＿２、及び位相差測定回路２６＿２は、測定対象が第２のクロック信号ＣＫ２、第２の回路ブロック１０＿２とする点が異なるだけで、前述した周期測定回路２０＿１、遅延測定回路２２＿１、遅延測定回路２４＿１、及び位相差測定回路２６＿１と同様に構成される。
【００２６】
すなわち、周期測定回路２０＿２は、分周回路１４＿２から出力される第２のクロック信号ＣＫ２＿０の周期を測定し、測定結果を信号ＴＣＫ２により位相制御回路１８へ出力する。信号ＴＣＫ２は、第２のクロック信号ＣＫ２の周期を示す信号である。
【００２７】
遅延測定回路２２＿２は、クロック信号ＰＬＬＯＵＴ、及び第２の回路ブロック１０＿２に係るクロックツリーの出力端（例えば、第２のクロック信号ＣＫ２で動作するフリップフロップの入力端）における第２のクロック信号ＣＫ２＿Ｌを用いてクロックパスディレイを測定する。そして、遅延測定回路２２＿２は、測定結果を信号ＣＰＤ２により位相制御回路１８へ出力する。信号ＣＰＤ２は、第２のクロック信号ＣＫ２に係るクロックパスディレイ、すなわちＰＬＬ回路１２の出力から第２の回路ブロック１０＿２に係るクロックツリーの出力端までの第２のクロック信号ＣＫ２に係る遅延時間を示す信号である。
【００２８】
遅延測定回路２４＿２は、第２の回路ブロック１０＿２に係るクロックツリーの入力端及び出力端における第２のクロック信号ＣＫ２＿３、ＣＫ２＿Ｌを用いて電源電圧変動の時間を測定し、測定結果を信号ＴＦ２により位相制御回路１８へ出力する。信号ＴＦ２は、第２の回路ブロック１０＿２が動作することによって電源電圧の電圧レベルが変動した（電源ノイズが発生した）場合に、最も高い電圧レベルから最も低い電圧レベルに落ちるまでの時間を示す信号である。
【００２９】
位相差測定回路２６＿２は、クロック信号ＰＬＬＯＵＴと第２の回路ブロック１０＿２に係るクロックツリーの入力端における第２のクロック信号ＣＫ２＿３との位相差を測定し、測定結果を信号ＰＨＭ２により位相制御回路１８へ出力する。信号ＰＨＭ２は、クロック信号ＰＬＬＯＵＴと第２のクロック信号ＣＫ２＿３との位相差を示す信号である。
【００３０】
ここで、図１に示した周期測定回路２０＿１、２０＿２、遅延測定回路２２＿１、２２＿２、２４＿１、２４＿２、及び位相差測定回路２６＿１、２６＿２は、例えばリングオシレータＴＤＣ（Time-to-Digital Converter）により実現される。
【００３１】
図２に示すように、ジッタの原因となる電源ノイズを出す回路ブロックの動作による電源電圧の電圧レベルの変動時間をＴＦとする。また、その電源ノイズによりクロック信号にジッタを発生する回路ブロックにおけるクロック信号のサイクルタイム（周期）をＴ、クロックパスディレイをＣＰＤとする。このとき、電圧レベルの変動時間ＴＦ及びクロックパスディレイＣＰＤにより、電源ノイズ（電源電圧の変動が発生するタイミング）と、当該電源ノイズの影響を受けてクロック信号にジッタを発生する回路ブロックにおけるクロック信号との位相差Φは図示のようになる。なお、図２において、ＰＬＬＯＵＴはＰＬＬ回路１２から出力されるクロック信号を示し、ＣＫＬは電源ノイズによりクロック信号にジッタを発生する回路ブロックに係るクロックツリーの出力端におけるクロック信号を示す。
【００３２】
ここで、位相差Φを変化させると、電源ノイズの影響を受ける回路ブロックにおいてクロック信号に発生するジッタは、図３に示すように変化する。図３において、Ｔは電源ノイズによりクロック信号にジッタを発生する回路ブロックにおけるクロック信号のサイクルタイム（周期）である。また、Ｆ０は電源ノイズの影響を受けてジッタを発生する回路ブロックにおけるクロック信号の周波数（Ｆ）とジッタの原因となる電源ノイズを出す回路ブロックにおけるクロック信号の周波数とが等しい場合のジッタ量を示している。Ｆ１は電源ノイズによりジッタを発生する回路ブロックにおけるクロック信号の周波数がＦ／２である場合のジッタ量を示しており、Ｆ２は電源ノイズによりジッタを発生する回路ブロックにおけるクロック信号の周波数がＦ／８である場合のジッタ量を示している。また、Ｆ０、Ｆ１、Ｆ２において、実線が実測結果であり、破線がシミュレーション結果である。
【００３３】
図３に示したように、電源ノイズによりジッタを発生する回路ブロックのクロック信号の周波数とジッタの原因となる電源ノイズを出す回路ブロックのクロック信号の周波数とが異なる場合（Ｆ１、Ｆ２参照）、ある位相差Φで発生するジッタが極小となる。また、ジッタが極小となる位相差は、電源ノイズの影響を受けてクロック信号にジッタを発生する回路ブロックにおけるクロック信号のサイクルタイム（周期）ＴとクロックパスディレイＣＰＤの関係によって、図４に示すように異なる。
【００３４】
ｎを０以上の整数として、ｎＴ＜ＣＰＤ＜（ｎ＋０．５）Ｔであるとき、ΦL＝ＣＰＤ−ｎＴ−ｔｆ１と定義し、（ｎ＋０．５）Ｔ＜ＣＰＤ＜（ｎ＋１）Ｔであるとき、ΦL＝ＣＰＤ−（ｎ＋１）Ｔ−ｔｆ１と定義する。なお、ｔｆ１は電圧レベルの変動時間ＴＦの０．５倍、すなわち電圧レベルが最大値となってから平均レベルになるまでの時間である。
【００３５】
ｎの値が０又は偶数である場合には、図４（Ａ）に示すようになる。すなわち、電源ノイズと、その電源ノイズによりジッタを発生する回路ブロックのクロック信号との位相差Φが、ΦLから値が増す方向にΦ0（＝−ｔｆ１）までの範囲ではジッタが極大となる。ジッタが極小となる位相差Φは、ΦLから値が減る方向にΦ0までの範囲にある。また、ｎの値が奇数である場合には、図４（Ｂ）に示すようになる。すなわち、電源ノイズと、その電源ノイズによりジッタを発生する回路ブロックのクロック信号との位相差Φが、ΦLから値が減る方向にΦ0（＝−ｔｆ１）までの範囲ではジッタが極大となる。ジッタが極小となる位相差Φは、ΦLから値が増す方向にΦ0までの範囲にある。
【００３６】
本実施形態における半導体集積回路では、図２〜図４を参照して説明した特性を利用し、発生するジッタを最小とするように、電源ノイズと、その電源ノイズによりジッタを発生する回路ブロックのクロック信号との位相差を位相制御回路１８により制御する。例えば、位相制御回路１８は、電源ノイズの影響を受けて発生するジッタが最小となるように、ジッタの原因となる電源ノイズを出す回路ブロックに供給されるクロック信号の遅延量を調整する。
【００３７】
以下、本実施形態の半導体集積回路におけるジッタ低減に係る動作について説明する。
なお、以下の説明では、各信号ＴＣＫ１、ＴＣＫ２、ＣＰＤ１、ＣＰＤ２、ＴＦ１、ＴＦ２、ＰＨＭ１、ＰＨＭ２により示される測定結果（周期、クロックパスディレイ、電源電圧変動の時間、位相差）の値についても信号に付加した符号と同様の符号を用いて説明する。
【００３８】
まず、位相制御回路１８は、周期測定回路２０＿１から出力された信号ＴＣＫ１、及び周期測定回路２０＿２から出力された信号ＴＣＫ２に基づいて、回路ブロックの動作周波数を比較し、ジッタの原因となる電源ノイズを出す回路ブロックを判定する。以下、ジッタの原因となる電源ノイズを出す回路ブロックが、第１の回路ブロック１０＿１である場合と第２の回路ブロック１０＿２である場合とに分けて説明する。
【００３９】
＜ジッタの原因となる電源ノイズを出す回路ブロックが第１の回路ブロック１０＿１である場合＞
周期ＴＣＫ１が周期ＴＣＫ２より大きい、すなわち第１の回路ブロック１０＿１の動作周波数が第２の回路ブロック１０＿２の動作周波数よりも低い場合には、位相制御回路１８は、第１の回路ブロック１０＿１がジッタの原因となる電源ノイズを出す回路ブロックであると判定する。第２の回路ブロック１０＿２は、電源ノイズの影響を受けてジッタを発生する回路ブロックとなる。
【００４０】
次に、位相制御回路１８は、第２の回路ブロック１０＿２側の遅延測定回路２２＿２から出力される信号ＣＰＤ２により、第２の回路ブロック１０＿２に係る第２のクロック信号ＣＫ２についてのクロックパスディレイＣＰＤ２を取得する。また、位相制御回路１８は、第１の回路ブロック１０＿１側の遅延測定回路２４＿１から出力される信号ＴＦ１により、第１の回路ブロック１０＿１の動作による電源電圧変動の時間ＴＦ１を取得する。
【００４１】
続いて、位相制御回路１８は、周期ＴＣＫ２、クロックパスディレイＣＰＤ２、及び電源電圧変動の時間ＴＦ１に基づいて、ジッタが最小となる場合の電源ノイズ（電源電圧の変動が発生するタイミング）と第２の回路ブロック１０＿２のクロック信号との設定位相差ΦMを計算する。
【００４２】
ｎを０以上の整数として、ｎ×ＴＣＫ２＜ＣＰＤ２＜（ｎ＋０．５）×ＴＣＫ２を満たすとき、ΦL＝ＣＰＤ２−ｎ×ＴＣＫ２−０．５×ＴＦ１、Φ0＝−０．５×ＴＦ１と定義する。また、（ｎ＋０．５）×ＴＣＫ２＜ＣＰＤ２＜（ｎ＋１）×ＴＣＫ２を満たすとき、ΦL＝ＣＰＤ２−（ｎ＋１）×ＴＣＫ２−０．５×ＴＦ１、Φ0＝−０．５×ＴＦ１と定義する。
【００４３】
そして、位相制御回路１８は、ｎが奇数かつΦL＜Φ0の場合にはΦM＝（ΦL＋Φ0）／２と決定し、ｎが奇数かつΦL＞Φ0の場合にはΦM＝（ΦL＋Φ0）／２−０．５×ＴＣＫ２と決定する。また、ｎが偶数かつΦL＜Φ0の場合にはΦM＝（ΦL＋Φ0）／２＋０．５×ＴＣＫ２と決定し、ｎが偶数かつΦL＞Φ0の場合にはΦM＝（ΦL＋Φ0）／２と決定する。
【００４４】
次に、位相制御回路１８は、第１の回路ブロック１０＿１側の位相差測定回路２６＿１から出力される信号ＰＨＭ１により、第２の回路ブロック１０＿２の位相測定対象ノードにおけるクロック信号ＰＬＬＯＵＴと第１の回路ブロック１０＿１に係るクロックツリーの入力端における第１のクロック信号ＣＫ１＿３との位相差ＰＨＭ１を取得する。その結果、位相制御回路１８は、位相差ＰＨＭ１が設定位相差ΦMより小さい場合には信号ＤＬＹＣ１により遅延調整回路１６＿１での遅延量を増加させるように制御し、位相差ＰＨＭ１が設定位相差ΦMより大きい場合には信号ＤＬＹＣ１により遅延調整回路１６＿１での遅延量を減少させるように制御する。
【００４５】
位相制御回路１８は、遅延調整回路１６＿１における遅延量の調整及び位相差ＰＨＭ１の取得を、位相差ＰＨＭ１が設定位相差ΦMになるまで繰り返し行う。これにより、ジッタが最小となるように、電源ノイズと、その電源ノイズによりジッタを発生する第２の回路ブロック１０＿２のクロック信号との位相差が制御される。
【００４６】
＜ジッタの原因となる電源ノイズを出す回路ブロックが第２の回路ブロック１０＿２である場合＞
周期ＴＣＫ２が周期ＴＣＫ１より大きい、すなわち第２の回路ブロック１０＿２の動作周波数が第１の回路ブロック１０＿１の動作周波数よりも低い場合には、位相制御回路１８は、第２の回路ブロック１０＿２がジッタの原因となる電源ノイズを出す回路ブロックであると判定する。第１の回路ブロック１０＿１は、電源ノイズの影響を受けてジッタを発生する回路ブロックとなる。
【００４７】
次に、位相制御回路１８は、第１の回路ブロック１０＿１側の遅延測定回路２２＿１から出力される信号ＣＰＤ１により、第１の回路ブロック１０＿１に係る第１のクロック信号ＣＫ１についてのクロックパスディレイＣＰＤ１を取得する。また、位相制御回路１８は、第２の回路ブロック１０＿２側の遅延測定回路２４＿２から出力される信号ＴＦ２により、第２の回路ブロック１０＿２の動作による電源電圧変動の時間ＴＦ２を取得する。
【００４８】
続いて、位相制御回路１８は、周期ＴＣＫ１、クロックパスディレイＣＰＤ１、及び電源電圧変動の時間ＴＦ２に基づいて、ジッタが最小となる場合の電源ノイズと第１の回路ブロック１０＿１のクロック信号との設定位相差ΦMを計算する。
【００４９】
ｎを０以上の整数として、ｎ×ＴＣＫ１＜ＣＰＤ１＜（ｎ＋０．５）×ＴＣＫ１を満たすとき、ΦL＝ＣＰＤ１−ｎ×ＴＣＫ１−０．５×ＴＦ２、Φ0＝−０．５×ＴＦ２と定義する。また、（ｎ＋０．５）×ＴＣＫ１＜ＣＰＤ１＜（ｎ＋１）×ＴＣＫ１を満たすとき、ΦL＝ＣＰＤ１−（ｎ＋１）×ＴＣＫ１−０．５×ＴＦ２、Φ0＝−０．５×ＴＦ２と定義する。
【００５０】
そして、位相制御回路１８は、ｎが奇数かつΦL＜Φ0の場合にはΦM＝（ΦL＋Φ0）／２と決定し、ｎが奇数かつΦL＞Φ0の場合にはΦM＝（ΦL＋Φ0）／２−０．５×ＴＣＫ１と決定する。また、ｎが偶数かつΦL＜Φ0の場合にはΦM＝（ΦL＋Φ0）／２＋０．５×ＴＣＫ１と決定し、ｎが偶数かつΦL＞Φ0の場合にはΦM＝（ΦL＋Φ0）／２と決定する。
【００５１】
次に、位相制御回路１８は、第２の回路ブロック１０＿２側の位相差測定回路２６＿２から出力される信号ＰＨＭ２により、第１の回路ブロック１０＿１の位相測定対象ノードにおけるクロック信号ＰＬＬＯＵＴと第２の回路ブロック１０＿２に係るクロックツリーの入力端における第２のクロック信号ＣＫ２＿３との位相差ＰＨＭ２を取得する。その結果、位相制御回路１８は、位相差ＰＨＭ２が設定位相差ΦMより小さい場合には信号ＤＬＹＣ２により遅延調整回路１６＿２での遅延量を増加させるように制御し、位相差ＰＨＭ２が設定位相差ΦMより大きい場合には信号ＤＬＹＣ２により遅延調整回路１６＿２での遅延量を減少させるように制御する。
【００５２】
位相制御回路１８は、遅延調整回路１６＿２における遅延量の調整及び位相差ＰＨＭ２の取得を、位相差ＰＨＭ２が設定位相差ΦMになるまで繰り返し行う。これにより、ジッタが最小となるように、電源ノイズと、その電源ノイズによりジッタを発生する第１の回路ブロック１０＿１のクロック信号との位相差が制御される。
【００５３】
本実施形態によれば、電源ノイズの影響を受けてジッタを発生する回路ブロックに供給されるクロック信号の周期、及びそのクロック信号に係るクロックパスディレイと、ジッタの原因となる電源ノイズを出す回路ブロックにおける電源電圧の変動時間とに基づいて、位相制御回路はジッタが最小となる設定位相差を算出する。そして、位相制御回路は、電源ノイズの影響を受けてジッタを発生する回路ブロックの位相測定対象ノードにおけるクロック信号とジッタの原因となる電源ノイズを出す回路ブロックの位相測定対象ノードにおけるクロック信号との位相差が設定位相差になるように、電源ノイズを出す回路ブロックに供給されるクロック信号の遅延量を制御する。これにより、電源ノイズの影響を受けてジッタを発生する回路ブロックのクロック信号とジッタの原因となる電源ノイズを出す回路ブロックのクロック信号との位相差を、図３や図４に示したようなジッタが極小を示す位相差に制御することができ、ジッタを低減することができる。
【００５４】
また、回路ブロックの各々に対応して遅延調整回路１６、周期測定回路２０、遅延測定回路２２、２４、及び位相差測定回路２６を設けることで、回路ブロックの動作周波数が異なる任意の状態において、前述のような位相の制御を行うことができ、ジッタを低減することができる。例えば、半導体集積回路がＤＦＳ機能を有し、電源ノイズの影響を受けてジッタを発生する回路ブロックとジッタの原因となる電源ノイズを出す回路ブロックとが動的に入れ替わったとしても、動的に前述のような位相制御を行うことでジッタを低減することができる。
【００５５】
また、本実施形態によれば、回路ブロック間の電源分離（例えば、電源分配回路の分割）は不要であるので、電源分離が困難な半導体集積回路内の回路ブロックに対しても、本実施形態を適用することで、容易にジッタを低減することができる。
【００５６】
ここで、前述した動作において、遅延調整回路１６＿１や１６＿２における遅延量の調整時は、遅延量が変動するために出力されるクロック信号の波形が歪むことが考えられる。このような波形が歪んだクロック信号が回路ブロック１０＿１、１０＿２に供給されることを防止するために、図５に示すように遅延調整回路１６＿１、１６＿２と回路ブロック１０＿１、１０＿２との間にクロックゲーティング回路２８＿１、２８＿２を設けるようにしても良い。
【００５７】
図５は、本実施形態における半導体集積回路の他の構成例を示す図である。
この図５において、図１に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【００５８】
図５において、２８＿１、２８＿２はクロックゲーティング回路である。第１の回路ブロック１０＿１には、クロックゲーティング回路２８＿１の出力である第１のクロック信号ＣＫ１＿２が入力され、第２の回路ブロック１０＿２には、クロックゲーティング回路２８＿２の出力である第２のクロック信号ＣＫ２＿２が入力される。
【００５９】
クロックゲーティング回路２８＿１は、遅延調整回路１６＿１から出力される第１のクロック信号ＣＫ１＿１が入力される。クロックゲーティング回路２８＿１は、位相制御回路１８から出力される信号ＣＧＣ１によりゲートオンとされた場合には入力される第１のクロック信号ＣＫ１＿１を第１のクロック信号ＣＫ１＿２として出力し、ゲートオフとされた場合には第１のクロック信号ＣＫ１＿２としての出力を遮断する。同様に、クロックゲーティング回路２８＿２は、遅延調整回路１６＿２から出力される第２のクロック信号ＣＫ２＿１が入力される。クロックゲーティング回路２８＿２は、位相制御回路１８から出力される信号ＣＧＣ２によりゲートオンとされた場合には入力される第２のクロック信号ＣＫ２＿１を第２のクロック信号ＣＫ２＿２として出力し、ゲートオフとされた場合には第２のクロック信号ＣＫ２＿２としての出力を遮断する。
【００６０】
前述のようなクロックゲーティング回路２８＿１、２８＿２を設けることで、遅延調整回路１６＿１、１６＿２における遅延量の調整及び位相差ＰＨＭ１、ＰＨＭ２の取得を行う際、遅延量の調整時にはクロックゲートをオフしてクロック信号を遮断することができる。これにより、波形が歪んだクロック信号が回路ブロック１０＿１、１０＿２に供給されることを防止し、半導体集積回路にて予期しない動作が行われることを防ぐことができる。
【００６１】
例えば、半導体集積回路がＤＦＳ機能を有している場合には、ジッタの原因となる電源ノイズを出す回路ブロックと、その電源ノイズの影響を受けてジッタを発生する回路ブロックとが動的に入れ替わり得る。このような場合でも、遅延量の調整時にはクロックゲーティング回路によりクロック信号を遮断することで、前述したジッタを最小とするような、電源ノイズと、その電源ノイズによりジッタを発生する回路ブロックのクロック信号との位相差の制御を、不具合を生じさせることなく、動的に行うことができる。
【００６２】
クロックゲーティング回路２８＿１、２８＿２は、例えば図６に示すように構成される。図６は、クロックゲーティング回路２８の構成例を示す図である。なお、図６において、ｉは添え字であり、ｉ＝１、２、３、・・・（図５に示す例では、ｉ＝１、２）である。
【００６３】
図６において、３０はフリップフロップであり、３１は論理積演算回路（ＡＮＤ回路）である。フリップフロップ３０は、クロック信号ＣＫｉ＿１に同期して動作し、信号ＣＧＣｉが入力される。ＡＮＤ回路３１は、フリップフロップ３０の出力及びクロック信号ＣＫｉ＿１が入力され、その演算結果をクロック信号ＣＫｉ＿２として出力する。すなわち、クロックゲーティング回路２８は、位相制御回路１８から出力される信号ＣＧＣｉが“１”であれば、ゲートオン状態となりクロック信号ＣＫｉ＿１をクロック信号ＣＫｉ＿２として出力する。一方、位相制御回路１８から出力される信号ＣＧＣｉが“０”であれば、ゲートオフ状態となりクロック信号ＣＫｉ＿１が伝搬されるのを遮断する。
【００６４】
なお、前述した説明では、２つの回路ブロックに関して説明したがこれに限定されるものではなく、半導体集積回路が有する回路ブロックの数は任意の複数である。例えば、２個より多くの回路ブロックを有する場合には、動作周波数が最も低い回路ブロックに基づいて前述した制御を行うようにすれば良い。
【００６５】
また、前述した実施形態では、各回路ブロックに対応して周期測定回路２０、遅延測定回路２２、２４、及び位相差測定回路２６を設けるようにしているが、これに限定されるものではない。例えば、自身よりも動作周波数が低い回路ブロックが常に存在する場合、すなわちジッタの原因となる電源ノイズを出す回路ブロックになることはないことが予めわかっている場合には、その回路ブロックに対しては、遅延調整回路１６、遅延測定回路２４、及び位相差測定回路２６は設けなくても良い。また、例えば、電源ノイズの影響を受けてジッタを発生する回路ブロックになることはないことが予めわかっている場合には、その回路ブロックに対しては、遅延測定回路２２は設けなくても良い。また、例えば、ジッタの原因となる電源ノイズを出す回路ブロックと電源ノイズの影響を受けてジッタを発生する回路ブロックとが予めわかっている場合には、ジッタの原因となる電源ノイズを出す回路ブロックに対して遅延調整回路１６、周期測定回路２０、遅延測定回路２４、及び位相差測定回路２６を設け、電源ノイズの影響を受けてジッタを発生する回路ブロックに対して周期測定回路２０、及び遅延測定回路２２を設けるようにすれば良い。また、外部から各回路ブロックに供給されるクロック信号の周期情報（周波数情報）を位相制御回路１８に供給可能な場合には、周期測定回路２０を有しなくとも良い。このように、回路ブロックが動作し得る周波数等に応じて必要な回路のみを設けることで回路面積が増大することを抑制することができる。
【００６６】
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【００６７】
（付記１）
複数の回路ブロックを有する半導体集積回路であって、
前記複数の回路ブロックのうちの第１の回路ブロックに供給される第１のクロック信号のクロックパスにおける遅延時間を測定する遅延測定回路と、
前記複数の回路ブロックのうちの第２の回路ブロックの動作による電源電圧の変動時間を測定する時間測定回路と、
前記第２の回路ブロックに供給される第２のクロック信号を遅延させる遅延調整回路と、
前記第１のクロック信号と前記第２の回路ブロックに供給される第２のクロック信号との位相差を測定する位相差測定回路と、
前記第２の回路ブロックの動作周波数が前記第１の回路ブロックの動作周波数より低い場合に、前記第１の回路ブロックに供給される第１のクロック信号の周期、前記時間測定回路により測定した変動時間、及び前記遅延測定回路により測定した遅延時間に基づいて、ジッタが最小となる前記電源電圧の変動が発生するタイミングと前記第１の回路ブロックに供給される第１のクロック信号との設定位相差を算出し、前記位相差測定回路により測定した位相差が前記設定位相差になるように前記遅延調整回路での遅延量を制御する位相制御回路とを備えることを特徴とする半導体集積回路。
（付記２）
前記位相制御回路は、前記遅延調整回路の遅延量の制御動作と、前記位相差測定回路による位相差の測定及び測定した位相差と前記設定位相差との比較動作とを、前記位相差測定回路により測定した位相差が前記設定位相差になるまで繰り返し行うことを特徴とする付記１記載の半導体集積回路。
（付記３）
前記複数の回路ブロックの各々に対応して、前記遅延測定回路、前記時間測定回路、前記遅延調整回路、及び前記位相差測定回路を有することを特徴とする付記１又は２記載の半導体集積回路。
（付記４）
前記位相制御回路の制御に応じた前記遅延調整回路の遅延量の変更時に、当該遅延調整回路から対応する回路ブロックへのクロック信号の供給を遮断するクロック制御回路をさらに備えることを特徴とする付記１〜３の何れか１項に記載の半導体集積回路。
（付記５）
前記位相制御回路は、前記第１の回路ブロックの動作周波数と前記第２の回路ブロックの動作周波数とを比較し、動作周波数が高い前記第１の回路ブロック又は前記第２の回路ブロックの一方の回路ブロックに供給されるクロック信号の周期、前記第１の回路ブロック又は前記第２の回路ブロックの他方の回路ブロックに対応する前記時間測定回路及び前記遅延測定回路によりそれぞれ測定した変動時間及び遅延時間に基づいて、ジッタが最小となる前記電源電圧の変動が発生するタイミングと前記一方の回路ブロックに供給されるクロック信号との設定位相差を算出し、前記他方の回路ブロックに対応する前記位相差測定回路により測定した位相差が前記設定位相差になるように前記他方の回路ブロックに対応する前記遅延調整回路での遅延量を制御することを特徴とする付記３記載の半導体集積回路。
（付記６）
前記回路ブロックに供給されるクロック信号の周期を測定する周期測定回路をさらに備えることを特徴とする付記１〜５の何れか１項に記載の半導体集積回路。
【符号の説明】
【００６８】
１０＿１、１０＿２  回路ブロック
１２  ＰＬＬ回路
１４＿１、１４＿２  分周回路
１６＿１、１６＿２  遅延調整回路
１８  位相制御回路
２０＿１、２０＿２  周期測定回路
２２＿１、２２＿２  遅延測定回路
２４＿１、２４＿２  遅延測定回路
２６＿１、２６＿２  位相差測定回路
２８＿１、２８＿２  クロックゲーティング回路
【図１】
2011004248.tif 000003
【図２】
2011004248.tif 000004
【図３】
2011004248.tif 000005
【図４】
2011004248.tif 000006
【図５】
2011004248.tif 000007
【図６】
2011004248.tif 000008