説明

半導体集積回路

【課題】複数の回路ブロックを有する半導体集積回路にて、電源ノイズにより発生するクロック信号におけるジッタを低減する。
【解決手段】第1の回路ブロックに供給される第1のクロック信号のクロックパスディレイを測定する遅延測定回路と、第2の回路ブロックの動作による電源電圧の変動時間を測定する時間測定回路と、第2の回路ブロックに供給される第2のクロック信号を遅延させる遅延調整回路と、第1のクロック信号と第2のクロック信号との位相差を測定する位相差測定回路と、遅延調整回路での遅延量を制御する位相制御回路とを備え、第2の回路ブロックの動作周波数が第1の回路ブロックの動作周波数より低い場合には、位相制御回路が、ジッタが最小となる電源ノイズと第1のクロック信号との設定位相差を算出し、位相差測定回路により測定した位相差が設定位相差になるように遅延量を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の回路ブロックを有する半導体集積回路に関する。
【背景技術】
【0002】
従来、1つの半導体集積回路には、1つの回路ブロックだけが実装されていた。しかし、半導体集積回路の製造技術における微細化が進んだことで高集積化が可能になり、1つの半導体集積回路に複数の回路ブロックを実装できるようになった。
【0003】
このような複数の回路ブロックを有する半導体集積回路では、すべての回路ブロックが同じ周波数で動作するとは限らず、回路ブロックが互いに異なる周波数で動作することもある。そのため、ある回路ブロックが動作することによって電源電圧が変動して電源ノイズが発生し、その電源ノイズが原因となって他の回路ブロックのクロック信号にジッタを発生させ、信号の伝送が失敗し半導体集積回路が誤動作することがある。半導体集積回路が有する回路ブロックの動作周波数が異なる場合には、動作周波数の低い回路ブロックが出す電源ノイズが、動作周波数の高い回路ブロックのクロック信号にジッタを発生させる。すなわち、クロック信号にジッタが発生するのは、クロック信号の周波数が電源ノイズの周波数よりも高いときである。
【0004】
異なる周波数で動作する複数の回路ブロックを有する半導体集積回路において、電源ノイズによりクロック信号にジッタが発生して誤動作することを防止する1つの方法として、回路ブロック毎に電源分配回路を分割する方法(第1の方法)がある。この第1の方法は、半導体集積回路上の回路ブロックが2、3個程度である場合や、個々の回路ブロックの面積が十分に大きい場合には、電源分配回路を分割することは容易である。しかし、半導体集積回路上の回路ブロックが10個以上になる場合や、回路ブロックの面積が小さい場合には、回路ブロック毎に電源分配回路を分割することは困難である。例えば、メモリインタフェース等の半導体集積回路の外部に対してクロック信号を出力するクロック分配回路は、回路面積が小さくかつ形状が細長いので、電源分配回路を分割することは非常に困難である。
【0005】
また、他の方法として、それぞれがクロック信号に同期して動作する複数の回路ブロックを有する半導体集積回路において、電源電圧変動により発生するジッタの影響によるエラー発生を抑制する方法(第2の方法)が提案されている(例えば、特許文献1参照。)。この第2の方法では、第1の回路ブロックの動作周波数に対して、第2の回路ブロックの動作周波数をN倍もしくは1/N倍にし、第1の回路ブロックと第2の回路ブロックとの間でのデータ送受信におけるデータレートを調整する。これにより、第1の回路ブロックの動作に対するジッタ発生のタイミングを一定にし、エラー発生を抑制するようにしている。
【0006】
ところで、最近では、電力効率の最適化のために、回路ブロックの動作周波数を負荷や動作モードに応じて動的に変化させる機能(DFS:Dynamic Frequency Scaling)が実装された半導体集積回路がある。DFS機能を有する半導体集積回路では、動作周波数の高い回路ブロックと動作周波数が低い回路ブロックが固定ではなく、動的に切り替わることが考えられる。したがって、DFS機能を有する半導体集積回路では、ジッタの原因となる電源ノイズを出す回路ブロックと、電源ノイズを被ってジッタを発生する回路ブロックとが動的に入れ替わり得る。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−164345号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
前述の第2の方法では、信号にランダムなタイミングでジッタが発生するとデータ受信時にエラーが発生する可能性が高いため、ジッタ発生のタイミングを一定とするようにデータレートを調整することでデータ受信時のエラー発生率の低下を図っている。しかしながら、前述の第2の方法は、電源ノイズにより発生するジッタそのものは低減されていない。
【課題を解決するための手段】
【0009】
本発明の一観点によれば、第1の回路ブロックに供給される第1のクロック信号のクロックパスにおける遅延時間を測定する遅延測定回路と、第2の回路ブロックの動作による電源電圧の変動時間を測定する時間測定回路と、第2の回路ブロックに供給される第2のクロック信号を遅延させる遅延調整回路と、第1のクロック信号と第2の回路ブロックに供給される第2のクロック信号との位相差を測定する位相差測定回路と、遅延調整回路での遅延量を制御する位相制御回路とを有する半導体集積回路が提供される。位相制御回路は、第2の回路ブロックの動作周波数が第1の回路ブロックの動作周波数より低い場合に、第1のクロック信号の周期、測定された変動時間及び遅延時間に基づいて、ジッタが最小となる電源電圧の変動が発生するタイミングと第1の回路ブロックに供給される第1のクロック信号との設定位相差を算出し、位相差測定回路により測定した位相差が設定位相差になるように遅延量を制御する。
【発明の効果】
【0010】
開示の半導体集積回路は、第1のクロック信号と第2の回路ブロックに供給される第2のクロック信号との位相差を、ジッタが最小となる設定位相差にするように第2のクロック信号を遅延させることで、電源電圧の変動の影響を受けて発生するジッタを低減することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態における半導体集積回路の構成例を示す図である。
【図2】本実施形態における半導体集積回路での電源電圧及びクロック信号の一例を示す図である。
【図3】本実施形態における位相差とジッタとの関係の一例を示す図である。
【図4】ジッタが極小となる位相差を説明するための図である。
【図5】本実施形態における半導体集積回路の他の構成例を示す図である。
【図6】本実施形態におけるクロックゲーティング回路の構成例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態を図面に基づいて説明する。
【0013】
図1は、本発明の一実施形態における半導体集積回路の構成例を示す図である。図1に示す本実施形態における半導体集積回路は、1つの半導体集積回路として1つの半導体基板上に実装されている。
【0014】
図1において、10_1、10_2は、それぞれ所定の回路機能を有する回路ブロックである。回路ブロック10_1、10_2は、共通の電源配線(電源回路)から電源が供給されて動作する。
【0015】
12はPLL(Phase Locked Loop)回路である。PLL回路12は、入力されたクロック信号CLKINに基づいてクロック信号PLLOUTを生成し出力する。PLL回路12は、入力信号と同じ周波数の信号をクロック信号PLLOUTとして出力するものであっても、入力信号を逓倍又は分周した周波数に相当する信号をクロック信号PLLOUTとして出力するものであっても良い。
【0016】
第1の回路ブロック10_1には、PLL回路12から出力されるクロック信号PLLOUTを分周回路14_1により分周して得られる第1のクロック信号CK1(CK1_0、CK1_1、CK1_3、CK1_L)が供給される。第1の回路ブロック10_1は、第1のクロック信号CK1に同期して動作する。なお、本実施形態では、第1のクロック信号CK1は、位相制御回路18の制御に応じて遅延調整回路16_1によって遅延量が調整されて第1の回路ブロック10_1に供給される。
【0017】
図1に示した例では、分周回路14_1は、PLL回路12から出力されるクロック信号PLLOUTを分周(例えば、1/p)して第1のクロック信号CK1_0を出力する。遅延調整回路16_1は、位相制御回路18から出力される信号DLYC1に応じて、分周回路14_1から出力される第1のクロック信号CK1_0を遅延させ、第1のクロック信号CK1_1として出力する。この第1のクロック信号CK1_1が、第1の回路ブロック10_1に入力される。信号DLYC1は、遅延調整回路16_1における遅延量を制御するための信号であり、信号DLYC1に応じて遅延調整回路16_1での遅延量(伝搬遅延時間)が増減される。
【0018】
同様に、第2の回路ブロック10_2には、PLL回路12から出力されるクロック信号PLLOUTを分周回路14_2により分周して得られる第2のクロック信号CK2(CK2_0、CK2_1、CK2_3、CK2_L)が供給される。第2の回路ブロック10_2は、第2のクロック信号CK2に同期して動作する。第1のクロック信号CK1と同様に、第2のクロック信号CK2は、位相制御回路18の制御に応じて遅延調整回路16_2によって遅延量が調整されて第2の回路ブロック10_2に供給される。
【0019】
図1に示した例では、分周回路14_2は、PLL回路12から出力されるクロック信号PLLOUTを分周(例えば、1/q)して第2のクロック信号CK2_0を出力する。遅延調整回路16_2は、位相制御回路18から出力される信号DLYC2に応じて、分周回路14_2から出力される第2のクロック信号CK2_0を遅延させ、第2のクロック信号CK2_1として出力する。この第2のクロック信号CK2_1が、第2の回路ブロック10_2に入力される。信号DLYC2は、遅延調整回路16_2における遅延量を制御するための信号であり、信号DLYC2に応じて遅延調整回路16_2での遅延量(伝搬遅延時間)が増減される。
【0020】
位相制御回路18は、周期測定回路20_1、20_2、遅延測定回路22_1、22_2、24_1、24_2、及び位相差測定回路26_1、26_2の測定結果に応じて、遅延調整回路16_1、16_2における遅延量を制御し、第1及び第2のクロック信号CK1、CK2の位相制御を行う。位相制御回路18は、信号TCK1、TCK2、CPD1、CPD2、TF1、TF2、PHM1、PHM2が入力され、これらの信号に基づいて信号DLYC1、DLYC2を生成して出力する。
【0021】
周期測定回路20_1は、分周回路14_1から出力される第1のクロック信号CK1_0が入力され、信号TCK1を出力する。信号TCK1は、第1のクロック信号CK1の周期を示す信号である。周期測定回路20_1は、入力される第1のクロック信号CK1_0の周期を測定し、測定結果を信号TCK1により位相制御回路18へ出力する。
【0022】
遅延測定回路22_1は、PLL回路12から出力されるクロック信号PLLOUT、及び第1の回路ブロック10_1に係るクロックツリーの出力端(例えば、第1のクロック信号CK1で動作するフリップフロップの入力端)における第1のクロック信号CK1_Lが入力され、信号CPD1を出力する。信号CPD1は、第1のクロック信号CK1に係るクロックパスディレイ、すなわちPLL回路12の出力から第1の回路ブロック10_1に係るクロックツリーの出力端までの第1のクロック信号CK1に係る遅延時間を示す信号である。遅延測定回路22_1は、入力されるクロック信号PLLOUT及び第1のクロック信号CK1_Lを用いてクロックパスディレイを測定し、測定結果を信号CPD1により位相制御回路18へ出力する。
【0023】
遅延測定回路24_1は、第1の回路ブロック10_1に係るクロックツリーの入力端における第1のクロック信号CK1_3及び当該クロックツリーの出力端における第1のクロック信号CK1_Lが入力され、信号TF1を出力する。信号TF1は、第1の回路ブロック10_1が動作することによって電源電圧の電圧レベルが変動した(電源ノイズが発生した)場合に、最も高い電圧レベルから最も低い電圧レベルに落ちるまでの時間を示す信号である。遅延測定回路24_1は、入力される第1のクロック信号CK1_3、CK1_Lを用いて電源電圧変動の時間を測定し、測定結果を信号TF1により位相制御回路18へ出力する。
【0024】
位相差測定回路26_1は、PLL回路12から出力されるクロック信号PLLOUT、及び第1の回路ブロック10_1に係るクロックツリーの入力端における第1のクロック信号CK1_3が入力され、信号PHM1を出力する。信号PHM1は、クロック信号PLLOUTと第1のクロック信号CK1_3との位相差を示す信号である。位相差測定回路26_1は、入力されるクロック信号PLLOUTと第1のクロック信号CK1_3との位相差を測定し、測定結果を信号PHM1により位相制御回路18へ出力する。
【0025】
周期測定回路20_2、遅延測定回路22_2、遅延測定回路24_2、及び位相差測定回路26_2は、測定対象が第2のクロック信号CK2、第2の回路ブロック10_2とする点が異なるだけで、前述した周期測定回路20_1、遅延測定回路22_1、遅延測定回路24_1、及び位相差測定回路26_1と同様に構成される。
【0026】
すなわち、周期測定回路20_2は、分周回路14_2から出力される第2のクロック信号CK2_0の周期を測定し、測定結果を信号TCK2により位相制御回路18へ出力する。信号TCK2は、第2のクロック信号CK2の周期を示す信号である。
【0027】
遅延測定回路22_2は、クロック信号PLLOUT、及び第2の回路ブロック10_2に係るクロックツリーの出力端(例えば、第2のクロック信号CK2で動作するフリップフロップの入力端)における第2のクロック信号CK2_Lを用いてクロックパスディレイを測定する。そして、遅延測定回路22_2は、測定結果を信号CPD2により位相制御回路18へ出力する。信号CPD2は、第2のクロック信号CK2に係るクロックパスディレイ、すなわちPLL回路12の出力から第2の回路ブロック10_2に係るクロックツリーの出力端までの第2のクロック信号CK2に係る遅延時間を示す信号である。
【0028】
遅延測定回路24_2は、第2の回路ブロック10_2に係るクロックツリーの入力端及び出力端における第2のクロック信号CK2_3、CK2_Lを用いて電源電圧変動の時間を測定し、測定結果を信号TF2により位相制御回路18へ出力する。信号TF2は、第2の回路ブロック10_2が動作することによって電源電圧の電圧レベルが変動した(電源ノイズが発生した)場合に、最も高い電圧レベルから最も低い電圧レベルに落ちるまでの時間を示す信号である。
【0029】
位相差測定回路26_2は、クロック信号PLLOUTと第2の回路ブロック10_2に係るクロックツリーの入力端における第2のクロック信号CK2_3との位相差を測定し、測定結果を信号PHM2により位相制御回路18へ出力する。信号PHM2は、クロック信号PLLOUTと第2のクロック信号CK2_3との位相差を示す信号である。
【0030】
ここで、図1に示した周期測定回路20_1、20_2、遅延測定回路22_1、22_2、24_1、24_2、及び位相差測定回路26_1、26_2は、例えばリングオシレータTDC(Time-to-Digital Converter)により実現される。
【0031】
図2に示すように、ジッタの原因となる電源ノイズを出す回路ブロックの動作による電源電圧の電圧レベルの変動時間をTFとする。また、その電源ノイズによりクロック信号にジッタを発生する回路ブロックにおけるクロック信号のサイクルタイム(周期)をT、クロックパスディレイをCPDとする。このとき、電圧レベルの変動時間TF及びクロックパスディレイCPDにより、電源ノイズ(電源電圧の変動が発生するタイミング)と、当該電源ノイズの影響を受けてクロック信号にジッタを発生する回路ブロックにおけるクロック信号との位相差Φは図示のようになる。なお、図2において、PLLOUTはPLL回路12から出力されるクロック信号を示し、CKLは電源ノイズによりクロック信号にジッタを発生する回路ブロックに係るクロックツリーの出力端におけるクロック信号を示す。
【0032】
ここで、位相差Φを変化させると、電源ノイズの影響を受ける回路ブロックにおいてクロック信号に発生するジッタは、図3に示すように変化する。図3において、Tは電源ノイズによりクロック信号にジッタを発生する回路ブロックにおけるクロック信号のサイクルタイム(周期)である。また、F0は電源ノイズの影響を受けてジッタを発生する回路ブロックにおけるクロック信号の周波数(F)とジッタの原因となる電源ノイズを出す回路ブロックにおけるクロック信号の周波数とが等しい場合のジッタ量を示している。F1は電源ノイズによりジッタを発生する回路ブロックにおけるクロック信号の周波数がF/2である場合のジッタ量を示しており、F2は電源ノイズによりジッタを発生する回路ブロックにおけるクロック信号の周波数がF/8である場合のジッタ量を示している。また、F0、F1、F2において、実線が実測結果であり、破線がシミュレーション結果である。
【0033】
図3に示したように、電源ノイズによりジッタを発生する回路ブロックのクロック信号の周波数とジッタの原因となる電源ノイズを出す回路ブロックのクロック信号の周波数とが異なる場合(F1、F2参照)、ある位相差Φで発生するジッタが極小となる。また、ジッタが極小となる位相差は、電源ノイズの影響を受けてクロック信号にジッタを発生する回路ブロックにおけるクロック信号のサイクルタイム(周期)TとクロックパスディレイCPDの関係によって、図4に示すように異なる。
【0034】
nを0以上の整数として、nT<CPD<(n+0.5)Tであるとき、ΦL=CPD−nT−tf1と定義し、(n+0.5)T<CPD<(n+1)Tであるとき、ΦL=CPD−(n+1)T−tf1と定義する。なお、tf1は電圧レベルの変動時間TFの0.5倍、すなわち電圧レベルが最大値となってから平均レベルになるまでの時間である。
【0035】
nの値が0又は偶数である場合には、図4(A)に示すようになる。すなわち、電源ノイズと、その電源ノイズによりジッタを発生する回路ブロックのクロック信号との位相差Φが、ΦLから値が増す方向にΦ0(=−tf1)までの範囲ではジッタが極大となる。ジッタが極小となる位相差Φは、ΦLから値が減る方向にΦ0までの範囲にある。また、nの値が奇数である場合には、図4(B)に示すようになる。すなわち、電源ノイズと、その電源ノイズによりジッタを発生する回路ブロックのクロック信号との位相差Φが、ΦLから値が減る方向にΦ0(=−tf1)までの範囲ではジッタが極大となる。ジッタが極小となる位相差Φは、ΦLから値が増す方向にΦ0までの範囲にある。
【0036】
本実施形態における半導体集積回路では、図2〜図4を参照して説明した特性を利用し、発生するジッタを最小とするように、電源ノイズと、その電源ノイズによりジッタを発生する回路ブロックのクロック信号との位相差を位相制御回路18により制御する。例えば、位相制御回路18は、電源ノイズの影響を受けて発生するジッタが最小となるように、ジッタの原因となる電源ノイズを出す回路ブロックに供給されるクロック信号の遅延量を調整する。
【0037】
以下、本実施形態の半導体集積回路におけるジッタ低減に係る動作について説明する。
なお、以下の説明では、各信号TCK1、TCK2、CPD1、CPD2、TF1、TF2、PHM1、PHM2により示される測定結果(周期、クロックパスディレイ、電源電圧変動の時間、位相差)の値についても信号に付加した符号と同様の符号を用いて説明する。
【0038】
まず、位相制御回路18は、周期測定回路20_1から出力された信号TCK1、及び周期測定回路20_2から出力された信号TCK2に基づいて、回路ブロックの動作周波数を比較し、ジッタの原因となる電源ノイズを出す回路ブロックを判定する。以下、ジッタの原因となる電源ノイズを出す回路ブロックが、第1の回路ブロック10_1である場合と第2の回路ブロック10_2である場合とに分けて説明する。
【0039】
<ジッタの原因となる電源ノイズを出す回路ブロックが第1の回路ブロック10_1である場合>
周期TCK1が周期TCK2より大きい、すなわち第1の回路ブロック10_1の動作周波数が第2の回路ブロック10_2の動作周波数よりも低い場合には、位相制御回路18は、第1の回路ブロック10_1がジッタの原因となる電源ノイズを出す回路ブロックであると判定する。第2の回路ブロック10_2は、電源ノイズの影響を受けてジッタを発生する回路ブロックとなる。
【0040】
次に、位相制御回路18は、第2の回路ブロック10_2側の遅延測定回路22_2から出力される信号CPD2により、第2の回路ブロック10_2に係る第2のクロック信号CK2についてのクロックパスディレイCPD2を取得する。また、位相制御回路18は、第1の回路ブロック10_1側の遅延測定回路24_1から出力される信号TF1により、第1の回路ブロック10_1の動作による電源電圧変動の時間TF1を取得する。
【0041】
続いて、位相制御回路18は、周期TCK2、クロックパスディレイCPD2、及び電源電圧変動の時間TF1に基づいて、ジッタが最小となる場合の電源ノイズ(電源電圧の変動が発生するタイミング)と第2の回路ブロック10_2のクロック信号との設定位相差ΦMを計算する。
【0042】
nを0以上の整数として、n×TCK2<CPD2<(n+0.5)×TCK2を満たすとき、ΦL=CPD2−n×TCK2−0.5×TF1、Φ0=−0.5×TF1と定義する。また、(n+0.5)×TCK2<CPD2<(n+1)×TCK2を満たすとき、ΦL=CPD2−(n+1)×TCK2−0.5×TF1、Φ0=−0.5×TF1と定義する。
【0043】
そして、位相制御回路18は、nが奇数かつΦL<Φ0の場合にはΦM=(ΦL+Φ0)/2と決定し、nが奇数かつΦL>Φ0の場合にはΦM=(ΦL+Φ0)/2−0.5×TCK2と決定する。また、nが偶数かつΦL<Φ0の場合にはΦM=(ΦL+Φ0)/2+0.5×TCK2と決定し、nが偶数かつΦL>Φ0の場合にはΦM=(ΦL+Φ0)/2と決定する。
【0044】
次に、位相制御回路18は、第1の回路ブロック10_1側の位相差測定回路26_1から出力される信号PHM1により、第2の回路ブロック10_2の位相測定対象ノードにおけるクロック信号PLLOUTと第1の回路ブロック10_1に係るクロックツリーの入力端における第1のクロック信号CK1_3との位相差PHM1を取得する。その結果、位相制御回路18は、位相差PHM1が設定位相差ΦMより小さい場合には信号DLYC1により遅延調整回路16_1での遅延量を増加させるように制御し、位相差PHM1が設定位相差ΦMより大きい場合には信号DLYC1により遅延調整回路16_1での遅延量を減少させるように制御する。
【0045】
位相制御回路18は、遅延調整回路16_1における遅延量の調整及び位相差PHM1の取得を、位相差PHM1が設定位相差ΦMになるまで繰り返し行う。これにより、ジッタが最小となるように、電源ノイズと、その電源ノイズによりジッタを発生する第2の回路ブロック10_2のクロック信号との位相差が制御される。
【0046】
<ジッタの原因となる電源ノイズを出す回路ブロックが第2の回路ブロック10_2である場合>
周期TCK2が周期TCK1より大きい、すなわち第2の回路ブロック10_2の動作周波数が第1の回路ブロック10_1の動作周波数よりも低い場合には、位相制御回路18は、第2の回路ブロック10_2がジッタの原因となる電源ノイズを出す回路ブロックであると判定する。第1の回路ブロック10_1は、電源ノイズの影響を受けてジッタを発生する回路ブロックとなる。
【0047】
次に、位相制御回路18は、第1の回路ブロック10_1側の遅延測定回路22_1から出力される信号CPD1により、第1の回路ブロック10_1に係る第1のクロック信号CK1についてのクロックパスディレイCPD1を取得する。また、位相制御回路18は、第2の回路ブロック10_2側の遅延測定回路24_2から出力される信号TF2により、第2の回路ブロック10_2の動作による電源電圧変動の時間TF2を取得する。
【0048】
続いて、位相制御回路18は、周期TCK1、クロックパスディレイCPD1、及び電源電圧変動の時間TF2に基づいて、ジッタが最小となる場合の電源ノイズと第1の回路ブロック10_1のクロック信号との設定位相差ΦMを計算する。
【0049】
nを0以上の整数として、n×TCK1<CPD1<(n+0.5)×TCK1を満たすとき、ΦL=CPD1−n×TCK1−0.5×TF2、Φ0=−0.5×TF2と定義する。また、(n+0.5)×TCK1<CPD1<(n+1)×TCK1を満たすとき、ΦL=CPD1−(n+1)×TCK1−0.5×TF2、Φ0=−0.5×TF2と定義する。
【0050】
そして、位相制御回路18は、nが奇数かつΦL<Φ0の場合にはΦM=(ΦL+Φ0)/2と決定し、nが奇数かつΦL>Φ0の場合にはΦM=(ΦL+Φ0)/2−0.5×TCK1と決定する。また、nが偶数かつΦL<Φ0の場合にはΦM=(ΦL+Φ0)/2+0.5×TCK1と決定し、nが偶数かつΦL>Φ0の場合にはΦM=(ΦL+Φ0)/2と決定する。
【0051】
次に、位相制御回路18は、第2の回路ブロック10_2側の位相差測定回路26_2から出力される信号PHM2により、第1の回路ブロック10_1の位相測定対象ノードにおけるクロック信号PLLOUTと第2の回路ブロック10_2に係るクロックツリーの入力端における第2のクロック信号CK2_3との位相差PHM2を取得する。その結果、位相制御回路18は、位相差PHM2が設定位相差ΦMより小さい場合には信号DLYC2により遅延調整回路16_2での遅延量を増加させるように制御し、位相差PHM2が設定位相差ΦMより大きい場合には信号DLYC2により遅延調整回路16_2での遅延量を減少させるように制御する。
【0052】
位相制御回路18は、遅延調整回路16_2における遅延量の調整及び位相差PHM2の取得を、位相差PHM2が設定位相差ΦMになるまで繰り返し行う。これにより、ジッタが最小となるように、電源ノイズと、その電源ノイズによりジッタを発生する第1の回路ブロック10_1のクロック信号との位相差が制御される。
【0053】
本実施形態によれば、電源ノイズの影響を受けてジッタを発生する回路ブロックに供給されるクロック信号の周期、及びそのクロック信号に係るクロックパスディレイと、ジッタの原因となる電源ノイズを出す回路ブロックにおける電源電圧の変動時間とに基づいて、位相制御回路はジッタが最小となる設定位相差を算出する。そして、位相制御回路は、電源ノイズの影響を受けてジッタを発生する回路ブロックの位相測定対象ノードにおけるクロック信号とジッタの原因となる電源ノイズを出す回路ブロックの位相測定対象ノードにおけるクロック信号との位相差が設定位相差になるように、電源ノイズを出す回路ブロックに供給されるクロック信号の遅延量を制御する。これにより、電源ノイズの影響を受けてジッタを発生する回路ブロックのクロック信号とジッタの原因となる電源ノイズを出す回路ブロックのクロック信号との位相差を、図3や図4に示したようなジッタが極小を示す位相差に制御することができ、ジッタを低減することができる。
【0054】
また、回路ブロックの各々に対応して遅延調整回路16、周期測定回路20、遅延測定回路22、24、及び位相差測定回路26を設けることで、回路ブロックの動作周波数が異なる任意の状態において、前述のような位相の制御を行うことができ、ジッタを低減することができる。例えば、半導体集積回路がDFS機能を有し、電源ノイズの影響を受けてジッタを発生する回路ブロックとジッタの原因となる電源ノイズを出す回路ブロックとが動的に入れ替わったとしても、動的に前述のような位相制御を行うことでジッタを低減することができる。
【0055】
また、本実施形態によれば、回路ブロック間の電源分離(例えば、電源分配回路の分割)は不要であるので、電源分離が困難な半導体集積回路内の回路ブロックに対しても、本実施形態を適用することで、容易にジッタを低減することができる。
【0056】
ここで、前述した動作において、遅延調整回路16_1や16_2における遅延量の調整時は、遅延量が変動するために出力されるクロック信号の波形が歪むことが考えられる。このような波形が歪んだクロック信号が回路ブロック10_1、10_2に供給されることを防止するために、図5に示すように遅延調整回路16_1、16_2と回路ブロック10_1、10_2との間にクロックゲーティング回路28_1、28_2を設けるようにしても良い。
【0057】
図5は、本実施形態における半導体集積回路の他の構成例を示す図である。
この図5において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
【0058】
図5において、28_1、28_2はクロックゲーティング回路である。第1の回路ブロック10_1には、クロックゲーティング回路28_1の出力である第1のクロック信号CK1_2が入力され、第2の回路ブロック10_2には、クロックゲーティング回路28_2の出力である第2のクロック信号CK2_2が入力される。
【0059】
クロックゲーティング回路28_1は、遅延調整回路16_1から出力される第1のクロック信号CK1_1が入力される。クロックゲーティング回路28_1は、位相制御回路18から出力される信号CGC1によりゲートオンとされた場合には入力される第1のクロック信号CK1_1を第1のクロック信号CK1_2として出力し、ゲートオフとされた場合には第1のクロック信号CK1_2としての出力を遮断する。同様に、クロックゲーティング回路28_2は、遅延調整回路16_2から出力される第2のクロック信号CK2_1が入力される。クロックゲーティング回路28_2は、位相制御回路18から出力される信号CGC2によりゲートオンとされた場合には入力される第2のクロック信号CK2_1を第2のクロック信号CK2_2として出力し、ゲートオフとされた場合には第2のクロック信号CK2_2としての出力を遮断する。
【0060】
前述のようなクロックゲーティング回路28_1、28_2を設けることで、遅延調整回路16_1、16_2における遅延量の調整及び位相差PHM1、PHM2の取得を行う際、遅延量の調整時にはクロックゲートをオフしてクロック信号を遮断することができる。これにより、波形が歪んだクロック信号が回路ブロック10_1、10_2に供給されることを防止し、半導体集積回路にて予期しない動作が行われることを防ぐことができる。
【0061】
例えば、半導体集積回路がDFS機能を有している場合には、ジッタの原因となる電源ノイズを出す回路ブロックと、その電源ノイズの影響を受けてジッタを発生する回路ブロックとが動的に入れ替わり得る。このような場合でも、遅延量の調整時にはクロックゲーティング回路によりクロック信号を遮断することで、前述したジッタを最小とするような、電源ノイズと、その電源ノイズによりジッタを発生する回路ブロックのクロック信号との位相差の制御を、不具合を生じさせることなく、動的に行うことができる。
【0062】
クロックゲーティング回路28_1、28_2は、例えば図6に示すように構成される。図6は、クロックゲーティング回路28の構成例を示す図である。なお、図6において、iは添え字であり、i=1、2、3、・・・(図5に示す例では、i=1、2)である。
【0063】
図6において、30はフリップフロップであり、31は論理積演算回路(AND回路)である。フリップフロップ30は、クロック信号CKi_1に同期して動作し、信号CGCiが入力される。AND回路31は、フリップフロップ30の出力及びクロック信号CKi_1が入力され、その演算結果をクロック信号CKi_2として出力する。すなわち、クロックゲーティング回路28は、位相制御回路18から出力される信号CGCiが“1”であれば、ゲートオン状態となりクロック信号CKi_1をクロック信号CKi_2として出力する。一方、位相制御回路18から出力される信号CGCiが“0”であれば、ゲートオフ状態となりクロック信号CKi_1が伝搬されるのを遮断する。
【0064】
なお、前述した説明では、2つの回路ブロックに関して説明したがこれに限定されるものではなく、半導体集積回路が有する回路ブロックの数は任意の複数である。例えば、2個より多くの回路ブロックを有する場合には、動作周波数が最も低い回路ブロックに基づいて前述した制御を行うようにすれば良い。
【0065】
また、前述した実施形態では、各回路ブロックに対応して周期測定回路20、遅延測定回路22、24、及び位相差測定回路26を設けるようにしているが、これに限定されるものではない。例えば、自身よりも動作周波数が低い回路ブロックが常に存在する場合、すなわちジッタの原因となる電源ノイズを出す回路ブロックになることはないことが予めわかっている場合には、その回路ブロックに対しては、遅延調整回路16、遅延測定回路24、及び位相差測定回路26は設けなくても良い。また、例えば、電源ノイズの影響を受けてジッタを発生する回路ブロックになることはないことが予めわかっている場合には、その回路ブロックに対しては、遅延測定回路22は設けなくても良い。また、例えば、ジッタの原因となる電源ノイズを出す回路ブロックと電源ノイズの影響を受けてジッタを発生する回路ブロックとが予めわかっている場合には、ジッタの原因となる電源ノイズを出す回路ブロックに対して遅延調整回路16、周期測定回路20、遅延測定回路24、及び位相差測定回路26を設け、電源ノイズの影響を受けてジッタを発生する回路ブロックに対して周期測定回路20、及び遅延測定回路22を設けるようにすれば良い。また、外部から各回路ブロックに供給されるクロック信号の周期情報(周波数情報)を位相制御回路18に供給可能な場合には、周期測定回路20を有しなくとも良い。このように、回路ブロックが動作し得る周波数等に応じて必要な回路のみを設けることで回路面積が増大することを抑制することができる。
【0066】
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【0067】
(付記1)
複数の回路ブロックを有する半導体集積回路であって、
前記複数の回路ブロックのうちの第1の回路ブロックに供給される第1のクロック信号のクロックパスにおける遅延時間を測定する遅延測定回路と、
前記複数の回路ブロックのうちの第2の回路ブロックの動作による電源電圧の変動時間を測定する時間測定回路と、
前記第2の回路ブロックに供給される第2のクロック信号を遅延させる遅延調整回路と、
前記第1のクロック信号と前記第2の回路ブロックに供給される第2のクロック信号との位相差を測定する位相差測定回路と、
前記第2の回路ブロックの動作周波数が前記第1の回路ブロックの動作周波数より低い場合に、前記第1の回路ブロックに供給される第1のクロック信号の周期、前記時間測定回路により測定した変動時間、及び前記遅延測定回路により測定した遅延時間に基づいて、ジッタが最小となる前記電源電圧の変動が発生するタイミングと前記第1の回路ブロックに供給される第1のクロック信号との設定位相差を算出し、前記位相差測定回路により測定した位相差が前記設定位相差になるように前記遅延調整回路での遅延量を制御する位相制御回路とを備えることを特徴とする半導体集積回路。
(付記2)
前記位相制御回路は、前記遅延調整回路の遅延量の制御動作と、前記位相差測定回路による位相差の測定及び測定した位相差と前記設定位相差との比較動作とを、前記位相差測定回路により測定した位相差が前記設定位相差になるまで繰り返し行うことを特徴とする付記1記載の半導体集積回路。
(付記3)
前記複数の回路ブロックの各々に対応して、前記遅延測定回路、前記時間測定回路、前記遅延調整回路、及び前記位相差測定回路を有することを特徴とする付記1又は2記載の半導体集積回路。
(付記4)
前記位相制御回路の制御に応じた前記遅延調整回路の遅延量の変更時に、当該遅延調整回路から対応する回路ブロックへのクロック信号の供給を遮断するクロック制御回路をさらに備えることを特徴とする付記1〜3の何れか1項に記載の半導体集積回路。
(付記5)
前記位相制御回路は、前記第1の回路ブロックの動作周波数と前記第2の回路ブロックの動作周波数とを比較し、動作周波数が高い前記第1の回路ブロック又は前記第2の回路ブロックの一方の回路ブロックに供給されるクロック信号の周期、前記第1の回路ブロック又は前記第2の回路ブロックの他方の回路ブロックに対応する前記時間測定回路及び前記遅延測定回路によりそれぞれ測定した変動時間及び遅延時間に基づいて、ジッタが最小となる前記電源電圧の変動が発生するタイミングと前記一方の回路ブロックに供給されるクロック信号との設定位相差を算出し、前記他方の回路ブロックに対応する前記位相差測定回路により測定した位相差が前記設定位相差になるように前記他方の回路ブロックに対応する前記遅延調整回路での遅延量を制御することを特徴とする付記3記載の半導体集積回路。
(付記6)
前記回路ブロックに供給されるクロック信号の周期を測定する周期測定回路をさらに備えることを特徴とする付記1〜5の何れか1項に記載の半導体集積回路。
【符号の説明】
【0068】
10_1、10_2 回路ブロック
12 PLL回路
14_1、14_2 分周回路
16_1、16_2 遅延調整回路
18 位相制御回路
20_1、20_2 周期測定回路
22_1、22_2 遅延測定回路
24_1、24_2 遅延測定回路
26_1、26_2 位相差測定回路
28_1、28_2 クロックゲーティング回路

【特許請求の範囲】
【請求項1】
複数の回路ブロックを有する半導体集積回路であって、
前記複数の回路ブロックのうちの第1の回路ブロックに供給される第1のクロック信号のクロックパスにおける遅延時間を測定する遅延測定回路と、
前記複数の回路ブロックのうちの第2の回路ブロックの動作による電源電圧の変動時間を測定する時間測定回路と、
前記第2の回路ブロックに供給される第2のクロック信号を遅延させる遅延調整回路と、
前記第1のクロック信号と前記第2の回路ブロックに供給される第2のクロック信号との位相差を測定する位相差測定回路と、
前記第2の回路ブロックの動作周波数が前記第1の回路ブロックの動作周波数より低い場合に、前記第1の回路ブロックに供給される第1のクロック信号の周期、前記時間測定回路により測定した変動時間、及び前記遅延測定回路により測定した遅延時間に基づいて、ジッタが最小となる前記電源電圧の変動が発生するタイミングと前記第1の回路ブロックに供給される第1のクロック信号との設定位相差を算出し、前記位相差測定回路により測定した位相差が前記設定位相差になるように前記遅延調整回路での遅延量を制御する位相制御回路とを備えることを特徴とする半導体集積回路。
【請求項2】
前記位相制御回路は、前記遅延調整回路の遅延量の制御動作と、前記位相差測定回路による位相差の測定及び測定した位相差と前記設定位相差との比較動作とを、前記位相差測定回路により測定した位相差が前記設定位相差になるまで繰り返し行うことを特徴とする請求項1記載の半導体集積回路。
【請求項3】
前記複数の回路ブロックの各々が、前記遅延測定回路、前記時間測定回路、前記遅延調整回路、及び前記位相差測定回路を有することを特徴とする請求項1又は2記載の半導体集積回路。
【請求項4】
前記位相制御回路の制御に応じた前記遅延調整回路の遅延量の変更時に、当該遅延調整回路から対応する回路ブロックへのクロック信号の供給を遮断するクロック制御回路をさらに備えることを特徴とする請求項1〜3の何れか1項に記載の半導体集積回路。
【請求項5】
前記位相制御回路は、前記第1の回路ブロックの動作周波数と前記第2の回路ブロックの動作周波数とを比較し、動作周波数が高い前記第1の回路ブロック又は前記第2の回路ブロックの一方の回路ブロックに供給されるクロック信号の周期、前記第1の回路ブロック又は前記第2の回路ブロックの他方の回路ブロックに対応する前記時間測定回路及び前記遅延測定回路によりそれぞれ測定した変動時間及び遅延時間に基づいて、ジッタが最小となる前記電源電圧の変動が発生するタイミングと前記一方の回路ブロックに供給されるクロック信号との設定位相差を算出し、前記他方の回路ブロックに対応する前記位相差測定回路により測定した位相差が前記設定位相差になるように前記他方の回路ブロックに対応する前記遅延調整回路での遅延量を制御することを特徴とする請求項3記載の半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−4248(P2011−4248A)
【公開日】平成23年1月6日(2011.1.6)
【国際特許分類】
【出願番号】特願2009−146566(P2009−146566)
【出願日】平成21年6月19日(2009.6.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】