以下、本発明のデューティ補正回路、及び、情報処理装置を適用した実施の形態について説明する。
まず、実施の形態1〜4のデューティ補正回路、及び、情報処理装置について説明する前に、図1乃至図3を用いて、比較例のデューティ補正回路について説明する。
図1は、比較例のデューティ補正回路10を示す図である。
比較例のデューティ補正回路10は、判定器11、LPF(Low Pass Filter)12、及び加算器13を含む。
判定器11は、例えば、コンパレータである。判定器11の一対の入力端子のうちの一方の入力端子には、入力電圧Viが入力され、他方の入力端子には閾値電圧Vthが入力される。入力電圧Viはクロックである。
判定器11は、入力電圧Viと閾値電圧Vthを比較し、比較結果を表す電圧Voを出力する。判定器11は、入力電圧Viが閾値以上であれば出力電圧Voを'1'(H(High)レベル)にし、入力電圧Viが閾値より低ければ出力電圧Voを'0'(L(low)レベル)にする。
LPF12の入力端子は、判定器11の出力端子に接続されており、LPF12の出力端子は、加算器13の負側(−)の入力端子に接続されている。LPF12は、判定器11の出力電圧Voを積分し、電圧Vosを出力する。LPF12の出力電圧Vosは、加算器13が出力する閾値電圧Vthを補正するための電圧である。
LPF12は、判定器11の出力電圧Voのデューティ比が50%より高くなると、負の電圧Vosを出力し、デューティ比の増大に応じて出力電圧Vosを低下させる。一方、LPF12は、判定器11の出力電圧Voのデューティ比が50%より低くなると、正の電圧Vosを出力し、デューティ比の減少に応じて出力電圧Vosを増大させる。なお、判定器11の出力電圧Voのデューティ比が50%のときは、LPF12の出力電圧Vosは0(V)である。
加算器13は、正側(+)の入力端子に電圧Vth0が入力され、負側(−)の入力端子にLPF12の出力電圧Vosが入力される。電圧Vth0は、加算器13から判定器11に入力する閾値電圧の初期値である。加算器13は、正側(+)の入力端子に入力される電圧Vth0から、LPF12から入力される出力電圧Vosを減算して得る閾値電圧Vthを出力する。
図2は、比較例のデューティ補正回路10の動作を示す図である。図2(A)はデューティ比の補正前の入力電圧Viと出力電圧Voの一例を実線で示す。また、図2(A)には、入力電圧Viとともに、閾値電圧Vthを破線で示す。図2(A)にはデューティ比の補正前の状態を示すため、閾値電圧Vthは電圧Vth0(初期値)である。
図2(B)はデューティ比の補正後の入力電圧Viと出力電圧Voを実線で示す。また、図2(B)には、入力電圧Viとともに、閾値電圧Vthを破線で示す。
図2(A)に示す入力電圧Viのデューティ比は50%より低いが、図2(A)にはデューティ比の補正前の状態を示すため、判定器11の出力電圧Voのデューティ比は50%よりも低い。なお、入力電圧Viの振幅はVppである。
判定器11の出力電圧Voのデューティ比が50%より低いと、LPF12が正の電圧Vosを出力するため、図2(B)に示すように、加算器13が出力する閾値電圧Vthが低下する。これによってデューティ比が補正され、図2(B)に示すように、出力電圧Voのデューティ比は50%になる。
図2(B)に示す閾値電圧Vthは、図2(A)に示す閾値電圧Vthよりも、LPF12の出力電圧Vosだけ低い値になる。
また、これとは逆に、判定器11の出力電圧Voのデューティ比が50%より高くなると、LPF12が負の電圧Vosを出力するため、加算器13が出力する閾値電圧Vthが増大する。これにより、判定器11の出力電圧Voのデューティ比は低下されて、50%に補正される。
図3は、比較例のデューティ補正回路10において、デューティ比の補正が可能な範囲を示す図である。
図3の横軸はデューティ比(%)を示し、縦軸はLPF12の出力電圧Vosを示す。
ここで、入力電圧Vi(クロック)の周期をT、入力電圧Vi(クロック)の立ち上がり時間をtriseとする。入力電圧Vi(クロック)の立ち上がり時間triseは、入力電圧Vi(クロック)の立ち下がり時間tfallと等しいものとする。また、入力電圧Viの振幅はVppである。
入力電圧Vi(クロック)の周期Tは、例えば、出力電圧Vo(クロック)を用いてデジタルデータを取り込む際には、デジタルデータのデータレート(データ転送レート)に対応した周期に設定される。
入力電圧Viの振幅はVppであるため、LPF12の出力電圧Vosは、−Vpp/2から+Vpp/2の間の値を取り得る。そして、LPF12の出力電圧Vosが−Vpp/2から+Vpp/2まで変化するときには、判定器11の出力電圧Voのデューティ比は、50−(trise/2T)(%)から50+(trise/2T)(%)まで変化する。
このように、判定器11の閾値電圧Vthを補正する場合は、デューティ比を補正できる範囲は、入力電圧Vi(クロック)の立ち上がりと立ち下がりの区間に限られる。
例えば、データレートが40Gbpsで、立ち上がり時間trise=立ち下がり時間tfall=8psであるとすると、入力電圧Vi(クロック)のデューティ比を補正できる範囲は、±8%となる。
従って、入力電圧Vi(クロック)のデューティ比のずれが±8%の範囲を超えている場合には、入力電圧Vi(クロック)デューティ比を正確に補正できず、判定器11の出力電圧Voのデューティ比を50%に補正できない場合がある。
このように、比較例のデューティ補正回路10では、デューティ比を正確に補正できない場合があるという問題点がある。
従って、以下で説明する実施の形態1乃至4では、デューティ比を正確に補正できるデューティ補正回路、及び、情報処理装置を提供することを目的とする。
<実施の形態1>
図4は、実施の形態1のデューティ補正回路100を含む情報処理装置500を示す図である。
実施の形態1のデューティ補正回路100を含む情報処理装置500は、デューティ補正回路100から差動クロックCk、Ckxが入力されるCPU(Central Processing Unit:中央演算処理装置)501を含む。
デューティ補正回路100は、DCC(Duty-Cycle Corrector)の一例であり、例えば、PLL(Phase Locked Loop:位相同期回路)から伝送路等を経由して入力されるクロックCk、Ckxのデューティ比を50%に補正して出力する。デューティ補正回路100から出力されるクロックCk、Ckxは、CPU501に入力される。CPU501が所定の演算処置で生成したデータは、他の情報処理装置500AのCPU501Aに伝送される。
図5は、CPU501が出力するデータ(DATA)の一例を示す図である。図5(A)
は、クロックCk、Ckxのデューティ比が50%である場合のデータ(DATA)を示す。図5(B)は、比較用に、クロックCk、Ckxのデューティ比が50%より小さい場合のデータ(DATA)を示す。
図5(A)に示すように、データレートが等しく、かつ、位相がデータレートの1/2だけずれたデータA(DATA_A)とデータB(DATA_B)がCPU501に入力されるとする。また、CPU501には、図5(A)に示すように、デューティ比が50%の差動クロックCk、Ckxが入力されるとする。
CPU501は、クロックCkの立ち上がりでデータAを取り込むとともに、クロックCkxの立ち上がりでデータCを取り込む。この結果、CPU501がデータA、Bを取り込むことによって得られるデータ(DATA)は、図5(A)に示すように、データAとデータBとを交互に含むデータである。
図5(A)にはデータAのうちのA1と、データBのうちのB1とを示すが、A1とB1の時間軸方向(横軸方向)における長さが等しく、ともにデータレートの1/2に対応する長さである。
これに対して、比較用に図5(B)に示すように、クロックCk、Ckxのデューティ比が40%である場合は、データ(DATA)に含まれるデータAとデータBの時間軸方向(横軸方向)における長さは等しくなく、データAの方がデータBよりも短くなってしまう。
このようにデータ(DATA)に含まれるデータA、Bの長さが等しくない場合には、CPU501が演算処理を正しく行えない場合があり、演算結果に影響が生じる。
このため、実施の形態1のデューティ補正回路100は、クロックCk、Ckxのデューティ比を補正する。
図6は、実施の形態1のデューティ補正回路100を示す図である。
デューティ補正回路100は、入力端子101A、101B、出力端子102A、102B、モニター端子103、遅延部110A、110B、PI(Phase Interpolator)120A、120B、及びPD(Phase Detector)130を含む。
入力端子101A、101Bは、デューティ補正回路100に差動クロックCk、Ckxを入力するための端子である。入力端子101Aは第1入力端子の一例であり、入力端子101Bは第2入力端子の一例である。
入力端子101Aは、遅延部110Aの遅延素子111Aの入力端子と、PI120Aの一方の入力端子120A1に接続されている。入力端子101Bは、遅延部110Bの遅延素子111Bの入力端子と、PD130の他方の入力端子130Bとに接続されている。
出力端子102A、102Bは、デューティ補正回路100でデューティ比が補正されたクロックを出力する端子である。出力端子102Aは、PI120Aの出力端子に接続され、出力端子102Bは、PI120Bの出力端子に接続される。
モニター端子103は、PD130で検出される位相差を監視する際に用いる端子である。
遅延部110A、110Bは、それぞれ、遅延素子111A及び112A、遅延素子111B及び112Bを含む。
遅延部110Aの遅延素子111A及び112Aは、互いに直列に接続されており、入力されるクロックに所定の遅延時間を与えて出力する。遅延素子111A及び112Aがクロックに与える所定の遅延時間は、ともにkT/2に設定されている。
例えば、遅延素子111A及び112Aとして、同一の遅延素子を用いることにより、遅延時間を揃えることができる。ここで、kは任意の奇数であり、Tはクロックの周期である。クロックの周期Tは、デジタルデータのデータレート(データ転送レート)に対応した周期に設定される。
遅延素子111A及び112Aにおける遅延時間kT/2は、PD130の出力に応じて調整される。
遅延素子111Aの入力端子は、デューティ補正回路100の入力端子101Aに接続されており、出力端子は、PI120Bの一方の入力端子120B1と、遅延素子112Aの入力端子とに接続されている。遅延素子111Aは、第2遅延部の一例である。
遅延素子112Aの入力端子は、遅延素子111Aの出力端子に接続されており、出力端子は、PD130と同様のダミーのPD(Dummy PD)に接続されている。これは、遅延素子112Bの出力端子と同様の接続関係を実現するためである。
遅延部110Bの遅延素子111B及び112Bは、互いに直列に接続されており、入力されるクロックに所定の遅延時間を与えて出力する。遅延素子111B及び112Bがクロックに与える所定の遅延時間は、ともにkT/2に設定されている。
これは、遅延部110Aの遅延素子111A及び112Aの所定の遅延時間と等しい遅延時間である。例えば、遅延素子111A及び112A、111B及び112Bとして、すべて同一の遅延素子を用いることにより、遅延時間を揃えることができる。
遅延素子111B及び112Bにおける遅延時間kT/2は、PD130の出力に応じて調整される。
遅延素子111Bの入力端子は、デューティ補正回路100の入力端子101Bに接続されており、出力端子は、PI120Aの他方の入力端子120A2と、遅延素子112Bの入力端子とに接続されている。遅延素子111Bは、第1遅延部の一例である。
遅延素子112Bの入力端子は、遅延素子111Bの出力端子に接続されており、出力端子は、PD130の一方の入力端子130Aに接続されている。
遅延部110Bは、入力されるクロックCkxに遅延素子111B及び112BでkTの遅延を与える第1遅延回路の一例である。すなわち、第1遅延回路としての遅延部110B(遅延素子111B及び112B)の後段が、第1遅延部としての遅延素子111Bである。
PI120Aの入力端子120A1は、入力端子101Aに接続されており、入力端子120A2は、遅延素子111Bの出力端子に接続されている。
PI120Aは、入力端子120A1に入力端子101Aから入力されるクロックCkと、入力端子120A2に遅延素子111Bから入力されるクロックCkx+kT/2との補間を行い、補間によって得るクロックCkoutを出力する。PI120Aは、第1補間部の一例である。なお、PI120Aの回路構成については、図7を用いて後述する。
PI120Bは、入力端子120B1に遅延素子111Aから入力されるクロックCk+kT/2と、入力端子120B2に入力端子101Bから入力されるクロックCkxとの補間を行い、補間によって得るクロックCkoutxを出力する。PI120Bは、第2補間部の一例である。なお、PI120Bの回路構成については、図7を用いて後述する。
PD130の一方の入力端子130Aは、遅延部110Bの遅延素子112Bの出力端子に接続され、他方の入力端子130Bは、入力端子101Bに接続される。
PD130の入力端子130Aに入力されるクロックは、遅延部110Bの遅延素子111B及び112Bの遅延時間にずれがなく、かつ、クロックCk、Ckxにも位相のずれがない理想的な状態において、入力端子130Bに入力されるクロックCkxに比べて、kTだけ位相が遅れている。
PD130は、入力端子130A、130Bに入力される2つのクロックの排他的論理和(XOR)又は否定排他的論理和(XNOR)を出力する論理部によって構築される。PD130は、位相検出部の一例である。
入力端子130Aに入力されるクロックCkx+kTと、入力端子130Bに入力されるクロックCkxとは、遅延素子111B及び112Bの遅延時間にずれがなく、かつ、クロックCk、Ckxにも位相のずれがない理想的な状態において、kTだけ位相が遅れている。
このため、PD130が排他的論理和(XOR)を出力する論理部で構築される場合は、遅延素子111B及び112Bの遅延時間にずれがなく、かつ、クロックCk、Ckxにも位相のずれがない理想的な状態では、PD130の出力は'0'となる。
また、PD130が否定排他的論理和(XNOR)を出力する論理部で構築される場合は、遅延素子111B及び112Bの遅延時間にずれがなく、かつ、クロックCk、Ckxにも位相のずれがない理想的な状態では、PD130の出力は'1'となる。
実際には、遅延部110Bの遅延素子111B及び112Bの遅延時間にはずれが含まれ、また、クロックCk、Ckxの位相にもずれが生じる場合がある。このような場合には、PD130の出力は、上述した理想的な状態における出力(XOR=0、又は、XNOR=1)ではなくなる。このため、PD130の出力を用いて、遅延素子111A、112A、111B、及び112Bにおける遅延時間kT/2をフィードバック制御によって調節する。
なお、入力端子101Aと遅延素子111Aとの間には、ダミーのPD(Dummy PD)が接続されてもよい。これは、入力端子101Bと遅延素子111Bとの接続と同様の関係にするためである。
ここで、実施の形態1のデューティ補正回路100の動作について説明する前に、図7を用いて、PI120A、120Bの回路構成について説明する。なお、PI120AとPI120Bとは同様の回路構成を有するため、ここでは、PI120Aについて説明する。
図7は、実施の形態1のデューティ補正回路100に含まれるPI120Aの回路を示す図である。
PI120Aは、入力端子120A1、120A2、出力端子120A3、FET(Field Effect Transistor)121、122、キャパシタ123、及びインバータ124を含む。
入力端子120A1及び120A2は、図6に示した入力端子120A1及び120A2と同一のものであり、それぞれ、デューティ補正回路100の入力端子101A、遅延素子111Bから、クロックCk、Ckx+kT/2が入力される。
出力端子120A3は、図6に示すデューティ補正回路100の出力端子102Aに接続される。PI120Aは、出力端子120A3からクロックCkoutを出力する。クロックCkoutは、クロックCkと、クロックCkx+kT/2とを補間することによって生成される。
FET121は、n(nは2以上の自然数)個のFETを並列接続したものである。各FETとしては、例えば、NMOS(N-type Metal Oxide)FETを用いればよい。各FETのドレインは、入力端子120A1に接続され、ゲートには、nビットのゲート駆動用の信号が入力される。
また、FET121の各FETのソースは、FET122に含まれる各FETのソース、キャパシタ123の一方の端子(図7中の上側の端子)、及びインバータ124の入力端子に接続される。
FET121に含まれるn個のFETの各々のゲートには、ゲート駆動用の信号が独立的に入力される。このため、FET121に含まれるn個のFETは独立的にオン/オフが可能である。
FET122は、n(nは2以上の自然数)個のFETを並列接続したものである。各FETとしては、例えば、NMOSFETを用いればよい。各FETのドレインは、入力端子120A2に接続され、ゲートには、nビットのゲート駆動用の信号が入力される。
また、FET122の各FETのソースは、FET121に含まれる各FETのソース、キャパシタ123の一方の端子(図7中の上側の端子)、及びインバータ124の入力端子に接続される。
FET122に含まれるn個のFETの各々のゲートには、ゲート駆動用の信号が独立的に入力される。このため、FET122に含まれるn個のFETは独立的にオン/オフが可能である。
キャパシタ123の一方の端子(図7中の上側の端子)は、FET121及び122のソースと、インバータ124の入力端子との間に接続され、他方の端子(図7中の下側の端子)は、接地される。キャパシタ123は、FET121及び122のソースから出力される電圧の変動を滑らかにするために設けられている。
インバータ124の入力端子は、FET121及び122のソースと、キャパシタ123の一方の端子(図7中の上側の端子)とに接続される。インバータ124の出力端子は、PI120Aの出力端子120A3に接続されている。インバータ124が出力するクロックCkoutは、出力端子120A3から出力される。
このようなPI120Aは、入力端子120A1、120A2に入力されるクロックCkとクロックCkx+kT/2とを補間する。クロックCkとクロックCkx+kT/2との補間は、入力端子120A1からFET121に入力されるクロックと、入力端子120A2からFET122とに入力されるクロックとを、FET121のソースと、FET122のソースとの接続点で加算することによって行われる。この際に、クロックCk、Ckx+kT/2のスルーレート等に応じて、FET121とFET122との内部でオンにされるFETの数が調整される。
次に、図8を用いて、実施の形態1のデューティ補正回路100の動作について説明する。
図8は、実施の形態1のデューティ補正回路100の動作を示すタイミングチャートである。ここで、図8に上から下にかけて示すクロック等を順番に説明する。
図8には、入力端子101A、101Bに入力されるクロックCk、Ckx、遅延素子111Aから出力されるクロックCk+kT/2、及び遅延素子111Bから出力されるクロックCkx+kT/2を示す。このうち、クロックCkとクロックCkx+kT/2は、PI120Aに入力される。また、クロックCkxとクロックCk+kT/2は、PI120Bに入力される。
図8には、さらに、PI120Aから出力され、出力端子102Aから出力されるクロックCkout、PI120Bから出力され、出力端子102Bから出力されるクロックCkoutx、入力端子101Bから入力されるクロックCkx、遅延部110Bの遅延素子112Bから出力されるクロックCkx+kTを示す。このうち、クロックCkx、Ckx+kTは、PD130に入力される。
図8には、さらに、また、モニター端子103に出力される電圧のレベル(Monitor)を示す。モニター端子103の出力電圧としては、PD130がXORである場合の出力と、XNORである場合の出力とを示すが、RD130は、実際にはXOR又はXNORのいずれか一方を出力する論理部であればよい。
ここでは、説明を分かり易くするために、k=1である場合のクロックCk+kT/2、Ckx+kT/2、Ckx+kTの波形を示すが、'k'の文字を残したまま説明する。また、クロックCk、Ckxのデューティ比は、50%より低く、例えば、40%であるものとする。
PI120Aの出力は、クロックCkとクロックCkx+kT/2とを補間することによって得られるクロックCkoutである。ここで、クロックCkのデューティ比が40%である場合、クロックCkx+kT/2のデューティ比も40%であるが、クロックCkx+kT/2は、クロックCkの逆位相のクロックである。
このため、クロックCkは、'1'(Hレベル)が40%であり、'0'(Lレベル)が60%である。また、クロックCkx+kT/2は、'1'(Hレベル)が60%であり、'0'(Lレベル)が40%である。すなわち、クロックCkと、クロックCk+kT/2との'1'と'0'の比は逆である。
また、ここではk=1であるため、クロックCkと、クロックCkx+kT/2とは、周期Tの半分(T/2)だけ位相が異なる。
従って、PI120AでクロックCkとクロックCkx+kT/2を補間して得るクロックCkoutは、デューティ比が50%のクロックになる。
また、同様に、PI120Bでは、図8に2本の破線の矢印で示すように、クロックCkxとクロックCk+kT/2とを補間する。クロックCkxとクロックCk+kT/2のデューティ比はともに40%であり、クロックCk+kT/2は、クロックCkxの逆位相のクロックである。
このため、クロックCkxは、'1'(Hレベル)が60%であり、'0'(Lレベル)が40%である。また、クロックCk+kT/2は、'1'(Hレベル)が40%であり、'0'(Lレベル)が60%である。すなわち、クロックCkxと、クロックCkx+kT/2との'1'と'0'の比は逆である。
また、ここではk=1であるため、クロックCkと、クロックCkx+kT/2とは、周期Tの半分(T/2)だけ位相が異なる。
従って、図8に2本の破線の矢印で示すように、PI120BでクロックCkxとクロックCk+kT/2を補間して得るクロックCkoutxは、デューティ比が50%のクロックになる。
また、図8でクロックCkoutxの下に示すクロックCkxとクロックCkx+kTは、PD130に入力されるクロックである。クロックCkxとクロックCkx+kTは、ともにデューティ比が40%であり、'1'が60%であり、'0'が40%である。
ここで、k=1であるため、クロックCkxとクロックCkx+kTは、1周期(T)だけ位相が異なる。
従って、PD130の出力は、XORは'0'(Lレベル)となり、XNORは'1'(Hレベル)となる。すなわち、PD130としてXORの論理部を用いた場合は、PD130の出力は'0'であり、PD130としてXNORの論理部を用いた場合は、PD130の出力は'1'である。
このように、PD130に入力するクロックCkxとクロックCkx+kTの位相差が周期Tのk倍であって、ずれが存在しない場合には、PD130の出力は一定である。
しかしながら、遅延部110Bの遅延素子111B及び112Bでクロックに与える遅延量がkT/2からずれると、PD130に入力するクロックCkxとクロックCkx+kTとの位相差が周期Tのk倍からずれる。
このように遅延素子111B及び112Bでクロックに与える遅延量にずれが生じると、PD130の出力は一定ではなくなる。すなわち、PD130がXORの論理部である場合は、クロックCkxとクロックCkx+kTの値が異なる区間だけ、PD130の出力は'1'になる。また、PD130がXNORの論理部である場合は、クロックCkxとクロックCkx+kTの値が異なる区間だけ、PD130の出力は'0'になる。
そして、このように遅延素子111B及び112Bでクロックに与える遅延量にずれが生じた場合は、PD130の出力により、遅延部110Aの遅延素子111A及び112Aと、遅延部110Bの遅延素子111B及び112Bとの遅延量が、kT/2に補正される。
遅延素子111A、112A、111B、及び112Bの遅延量がkT/2に補正されると、PI120Aには、位相がkT/2だけずれたクロックCkとクロックCkx+kT/2が入力される。同様に、PI120Bには、位相がkT/2だけずれたクロックCk+kT/2とクロックCkxが入力される。
このため、PI120A、120Bで、デューティ比が50%のクロックCkout、Ckoutxをそれぞれ出力することができる。
以上により、実施の形態1によれば、デューティ比を正確に50%に補正できるデューティ補正回路100を提供することができる。
ここで、SPICE(Simulation Program with Integrated Circuit Emphasis)によるシミュレーション結果について説明する。
図9は、実施の形態1のデューティ補正回路100のデューティ比の補正結果を示す図である。図9(A)は、ティピカル条件で得た結果を示し、図9(B)は、ワースト条件で得た結果を示す。なお、図9に示す結果は、SPICEを用いたシミュレーションによって得たものであり、クロックの周波数は40GHzである。
図9(A)、(B)において、上段は、補正前のデューティ比(original duty (%))を示し、下段は、補正後のデューティ比(corrected duty (%))を示す。
なお、ティピカル条件とは、常温(室温)で、電源電圧が正常で、製造プロセスにおけるばらつきが中間値である条件をいう。また、ワースト条件とは、デューティ補正回路100の温度上限で、電源電圧が下限値で、製造プロセスにおけるばらつきが最大値である条件をいう。
また、ここでは、一例として、デューティ比が50%±1%の範囲内に補正された場合を使用可能範囲とする。
図9(A)に示すように、ティピカル条件では、補正前のデューティ比が35%から65%の範囲において、デューティ比を50%±1%の範囲内に補正できている。また、図9(B)に示すように、ワースト条件では、ティピカル条件よりも少し低下するが、補正前のデューティ比が40%から60%の範囲において、デューティ比を50%±1%の範囲内に補正できていることが分かる。
以上のように、ティピカル条件の場合は、補正前のデューティ比が50%±15%の範囲内である場合に、デューティ比を±1%以内に補正できることが分かる。また、ワースト条件の場合は、補正前のデューティ比が50%±10%の範囲内である場合に、デューティ比を±1%以内に補正できることが分かる。
図10は、図9に示すデューティ比の補正結果を表す特性を示す図である。図10には、横軸に補正前のデューティ比(original duty (%))を示し、縦軸に補正後のデューティ比(corrected duty (%))を示す。
図10には、ティピカル条件で補正を行った後のデューティ比を太線で示し、ワースト条件で補正を行った後のデューティ比を細線で示す。
図10に示すように、ティピカル条件の方がワースト条件よりも補正の効果が著しいことが分かる。
図11は、図10に示すティピカル条件の特性を拡大して示す図である。
図11に示すように、補正前デューティ比が40%である場合に、デューティ比が約50%に補正されることが分かる。
図12は、実施の形態1のデューティ補正回路100においてSPICEを用いたシミュレーションで得られるクロックの波形を示す図である。図12は、デューティ比が40%の場合のPI120Aの入出力波形の一例を示す。
なお、図12に示すクロックの波形は、ティピカル条件で得たものであり、図11に示すプロットで示す動作点(補正前のデューティ比が40%)におけるクロックの波形を示す。
図12において、実線はクロックCkの波形を示し、一点鎖線はクロックCkx+kT/2の波形を示す。また、破線は、クロックCkとクロックCkx+kT/2を補間して得るクロックCkoutの波形を示す。
図12に示すように、デューティ比が40%である場合に、クロックCk(実線)とクロックCkx+kT/2(一点鎖線)とを補間して得るクロックCkoutは、2つのクロックCkとクロックCkx+kT/2の波形を合わせた波形であり、デューティ比は略50%である。
なお、クロックCkの立ち上がり時間(trise)は8.19psであり、立ち下がり時間(tfall)は8.16psである。
以上、実施の形態1のデューティ補正回路100によれば、比較例のデューティ補正回路10よりも、クロックのデューティ比を正確に補正することができる。特に、実施の形態1のデューティ補正回路100は、比較例のデューティ補正回路10よりも広範囲で正確にデューティ比を補正することができる。
比較例のデューティ補正回路10では、クロックのレベル('1'又は'0')を判定するための閾値電圧Vthを補正することによって、クロックのデューティ比を補正するため、デューティ比を補正できる範囲は、クロックの立ち上がり又は立ち下がりの期間内に限られる。
これに対して、実施の形態1のデューティ補正回路100は、差動クロックCk、Ckxを用い、クロックCkと、クロックCkx+kT/2とを補間することによって、デューティを補正したクロックCkoutを得る。同様に、デューティ補正回路100は、クロックCkxと、クロックCk+kT/2とを補間することによって、デューティを補正したクロックCkoutxを得る。
このため、実施の形態1のデューティ補正回路100では、デューティ比を補正できる範囲は、比較例のデューティ補正回路10のように立ち上がり又は立ち下がりの期間内に限られることはない。
以上、実施の形態1のデューティ補正回路100によれば、広範囲で正確にデューティ比を補正することができる。
<実施の形態2>
図13は、実施の形態2のデューティ補正回路200を示す図である。
デューティ補正回路200は、入力端子201A、201B、出力端子202A、202B、モニター端子203、遅延部210A、210B、PI(Phase Interpolator)220A、220B、PD(Phase Detector)230、インバータ241〜244、及び遅延部250を含む。
入力端子201A、201Bは、デューティ補正回路200に差動形式のシステムクロックsysck、sysckxを入力するための端子である。入力端子201Aは第1入力端子の一例であり、入力端子201Bは第2入力端子の一例である。
入力端子201Aには、インバータ241、242の入力端子が接続されている。インバータ241、242は、入力端子201Aに対して並列に接続されている。同様に、入力端子201Bには、インバータ243、244の入力端子が接続されている。インバータ243、244は、入力端子201Bに対して並列に接続されている。
インバータ241の出力端子は、遅延部210Bの入力端子と、PI220Bの入力端子220B2とに接続されている。インバータ242の出力端子は、終端されている。
インバータ243の出力端子は、PI220Aの入力端子220A1と、遅延部210Aの入力端子とに接続されている。インバータ244の出力端子は、遅延部250の遅延素子251の入力端子と、PD230の入力端子230Bとに接続されている。
インバータ241は、入力端子201Aから入力されるシステムクロックsysckを反転させてクロックCkxを出力する。インバータ241が出力するクロックCkxは、遅延部210BとPI220Bとに入力される。
インバータ243は、入力端子201Bから入力されるシステムクロックsysckxを反転してクロックCkを出力する。インバータ243が出力するクロックCkは、PI220Aと遅延部210Aとに入力される。
インバータ244は、入力端子201Bから入力されるシステムクロックsysckxを反転してクロックCkoを出力する。インバータ244から出力されるクロックCkoは、遅延部250の遅延素子251と、PD230とに入力される。
なお、インバータ241〜244は、すべて同一サイズのCMOS(Complementary Metal Oxide Semiconductor:相補型金属酸化膜半導体)トランジスタである。このため、インバータ244が出力するクロックCkoと、インバータ243が出力するクロックCkとは、位相及びデューティ比の等しいクロックである。
出力端子202A、202Bは、デューティ補正回路200でデューティ比が補正されたクロックを出力する端子である。出力端子202Aは、PI220Aの出力端子に接続され、出力端子202Bは、PI220Bの出力端子に接続される。
モニター端子203は、PD230で検出される位相差を監視する際に用いる端子である。
遅延部210Aの出力端子は、PI220Bの入力端子220B1に接続されている。遅延部210Aは、インバータ243から入力されるクロックCkに所定の遅延時間kT/2を与える。遅延部210Aは、クロックCkに遅延時間kT/2を与えて、クロックCk+kT/2を出力する。遅延部210Aが出力するクロックCk+kT/2は、PI220Bに入力される。遅延部210Aは、第2遅延部の一例である。
ここで、kは任意の奇数であり、Tはクロックの周期である。クロックの周期Tは、デジタルデータのデータレート(データ転送レート)に対応した周期に設定される。
遅延部210Aにおける遅延時間kT/2は、PD230の出力に応じて調整される。
遅延部210Bの出力端子は、PI220Aの入力端子220A2に接続されている。遅延部210Bは、インバータ241から入力されるクロックCkxに所定の遅延時間kT/2を与える。遅延部210Bは、クロックCkxに遅延時間kT/2を与えて、クロックCkx+kT/2を出力する。遅延部210Bが出力するクロックCkx+kT/2は、PI220Aに入力される。遅延部210Bは、第1遅延部の一例である。
遅延部210Bにおける遅延時間kT/2は、PD230の出力に応じて調整される。
遅延部210A及び210Bがクロックに与える所定の遅延時間は、ともにkT/2に設定されている。例えば、遅延部210A及び210Bとして、同一の遅延素子を用いることにより、遅延時間を揃えることができる。
PI220Aの入力端子220A1は、インバータ243の出力端子に接続されており、入力端子220A2は、遅延部210Bの出力端子に接続されている。
PI220Aは、入力端子220A1に入力されるクロックCkと、入力端子220A2に入力されるクロックCkx+kT/2との補間を行い、補間によって得るクロックCkoutを出力する。PI220Aは、第1補間部の一例である。
PI220Bは、入力端子220B1に入力されるクロックCk+kT/2と、入力端子220B2に入力されるクロックCkxとの補間を行い、補間によって得るクロックCkoutxを出力する。PI220Bは、第2補間部の一例である。
遅延部250は、遅延素子251及び252を含む。遅延素子251及び252は直列に接続されている。遅延素子251の入力端子は、インバータ244の出力端子に接続されており、遅延素子252の出力端子は、PD230の入力端子230Aに接続されている。
遅延素子251及び252がクロックに与える所定時間は、ともにkT/2に設定されている。これは、遅延部210A及び210Bがクロックに与える所定の遅延時間kT/2と等しい遅延時間に設定されている。
遅延部250は、遅延素子251及び252で、合計kTの遅延時間を与える第1遅延回路の一例である。なお、遅延素子251及び252がクロックに与える遅延時間は、PD230の出力によって設定される。これは、遅延部210A及び210Bと同様である。
PD230の一方の入力端子230Aは、遅延部250の遅延素子252の出力端子に接続され、他方の入力端子230Bは、インバータ244の出力端子に接続される。
PD230の入力端子230Aに入力されるクロックCKo+kTは、遅延部250の遅延素子251及び252の遅延時間にずれがなく、かつ、クロックCkoにも位相のずれがない理想的な状態において、入力端子230Bに入力されるクロックCkoに比べて、kTだけ位相が遅れている。
PD230は、入力端子230A、230Bに入力される2つのクロックの排他的論理和(XOR)又は否定排他的論理和(XNOR)を出力する論理部によって構築される。PD230は、位相検出部の一例である。
入力端子230Aに入力されるクロックCko+kTと、入力端子230Bに入力されるクロックCkoとは、遅延部250の遅延素子251及び252の遅延時間にずれがなく、かつ、クロックCkoにも位相のずれがない理想的な状態において、kTだけ位相が遅れている。
このため、PD230が排他的論理和(XOR)を出力する論理部で構築される場合は、遅延部250の遅延素子251及び252の遅延時間にずれがなく、かつ、クロックCkoにも位相のずれがない理想的な状態では、PD230の出力は'0'となる。
また、PD230が否定排他的論理和(XNOR)を出力する論理部で構築される場合は、遅延部250の遅延素子251及び252の遅延時間にずれがなく、かつ、クロックCkoにも位相のずれがない理想的な状態では、PD230の出力は'1'となる。
実際には、遅延部250の遅延素子251及び252の遅延時間にはずれが含まれ、また、クロックCkoの位相にもずれが生じる場合がある。このような場合には、PD230の出力は、上述した理想的な状態における出力(XOR=0、又は、XNOR=1)ではなくなる。
このため、PD230の出力を用いて、遅延部250の遅延素子251及び251における遅延時間kT/2をフィードバック制御によって調節する。
また、PD230の出力を用いて、遅延部210A、210Bにおける遅延時間kT/2をフィードバック制御によって調節する。
次に、図14を用いて、実施の形態2のデューティ補正回路200のPI220A、220Bの回路構成について説明する。
図14は、実施の形態2のデューティ補正回路200に含まれるPI220Aの回路を示す図である。PI220Aと220Bは同様の構成を有するため、ここでは、PI220Aについて説明する。
図14(A)は、PI220Aの構成を簡略化して示す図である。
PI220Aは、入力端子220A1、220A2、出力端子220A3、スイッチ221、222、キャパシタ223、及びインバータ224を含む。
入力端子220A1及び220A2は、図13に示した入力端子220A1及び220A2と同一のものであり、それぞれ、デューティ補正回路200の入力端子201A、遅延部210Bから、クロックCk、Ckx+kT/2が入力される。
出力端子220A3は、図13に示すデューティ補正回路200の出力端子202Aに接続される。PI220Aは、出力端子220A3からクロックCkoutを出力する。クロックCkoutは、クロックCkと、クロックCkx+kT/2とを補間することによって生成される。
スイッチ221、222は、駆動用の制御信号が入力され、独立的にオン/オフが行われる。
キャパシタ223の一方の端子(図14中の上側の端子)は、スイッチ221及び222の中点と、インバータ224の入力端子との間に接続され、他方の端子(図14中の下側の端子)は、接地される。
インバータ224の入力端子は、スイッチ221及び222の中点と、キャパシタ223の一方の端子(図14中の上側の端子)とに接続される。インバータ224の出力端子は、PI220Aの出力端子220A3に接続されている。インバータ224が出力するクロックCkoutは、出力端子220A3から出力される。
このようなPI220Aは、入力端子220A1、220A2に入力されるクロックCkとクロックCkx+kT/2とを補間する。クロックCkとクロックCkx+kT/2との補間は、入力端子220A1からスイッチ221に入力されるクロックと、入力端子220A2からスイッチ222とに入力されるクロックとを、スイッチ221とスイッチ222の中点で加算することによって行われる。
また、スイッチ221、222として、図14(B)に示すように、FET221、222を用いてもよい。FET221のドレインを入力端子220A1に接続し、ソースをFET222のソースと、キャパシタ223の一方の端子と、インバータ224の入力端子とに接続し、ゲートに制御信号を入力すればよい。
FET222については、ドレインを入力端子220A2に接続し、ソースをFET21のソースに接続し、ゲートに制御信号を入力すればよい。
なお、実施の形態1において図7を用いて説明したように、FET221、222は、複数個(n個)あってもよい。
また、図14(A)に示すスイッチ221の代わりに、図14(C)に示すように三角波発生器222C及び乗算器222Dを用いるとともに、図14(A)に示すスイッチ222の代わりに、図14(C)に示すように三角波発生器222E及び乗算器222Fを用いてもよい。
三角波発生器222Cの入力端子は、入力端子220A1に接続され、出力端子は乗算器222Dの一方の入力端子(図14中の上側の入力端子)に接続される。三角波発生器222Cは、クロックCkを三角波に波形整形して出力する。
乗算器221Dは、一方の入力端子が三角波発生器222Cの出力端子に接続され、他方の入力端子(図14中の下側の入力端子)に、固定電圧w1が入力される。
乗算器221Dの出力端子は、乗算器221Fの出力端子とともに、キャパシタ223の一方の端子と、インバータ224の入力端子とに接続されている。
乗算器222Dは、三角波発生器222Cから入力される三角波と、固定電圧w1を乗算して出力する。
三角波発生器222Eの入力端子は、入力端子220A2に接続され、出力端子は乗算器222Fの他方の入力端子(図14中の下側の入力端子)に接続される。三角波発生器222Eは、クロックCkx+kT/2を三角波に波形整形して出力する。
乗算器221Fは、他方の入力端子(図14中の下側の入力端子)が三角波発生器222Eの出力端子に接続され、一方の入力端子に、固定電圧w2が入力される。
乗算器221Fの出力端子は、乗算器221Dの出力端子とともに、キャパシタ223の一方の端子と、インバータ224の入力端子とに接続されている。
乗算器222Fは、三角波発生器222Eから入力される三角波と、固定電圧w2を乗算して出力する。
ここで、三角波発生器221Cが出力する三角波をTr1、三角波発生器221Eが出力する三角波をTr2とすると、 図14(C)に示すインバータ224の入力Ickは、Ick=w1×Tr1+w2×Tr2で表される。
次に、図15を用いて、実施の形態2のデューティ補正回路200の動作について説明する。
図15は、実施の形態2のデューティ補正回路200の動作を示すタイミングチャートである。ここで、図15に上から下にかけて示すクロック等を順番に説明する。
図15には、インバータ243、241から出力されるクロックCk、Ckx、遅延部210Aから出力されるクロックCk+kT/2、及び遅延部210Bから出力されるクロックCkx+kT/2を示す。このうち、クロックCkとクロックCkx+kT/2は、PI220Aに入力される。また、クロックCkxとクロックCk+kT/2は、PI220Bに入力される。
図15には、さらに、PI220Aから出力され、出力端子202Aから出力されるクロックCkout、PI220Bから出力され、出力端子202Bから出力されるクロックCkoutx、インバータ244から出力されるクロックCko、遅延部250の遅延素子242から出力されるクロックCko+kTを示す。このうち、クロックCko、Cko+kTは、PD230に入力される。
図15には、さらに、また、モニター端子203に出力される電圧のレベル(Monitor)を示す。モニター端子203の出力電圧としては、PD230がXORである場合の出力と、XNORである場合の出力とを示すが、RD230は、実際にはXOR又はXNORのいずれか一方を出力する論理部であればよい。
ここでは、k=3である場合のクロックCk+kT/2、Ckx+kT/2、Cko+kTの波形を示すが、'k'の文字を用いたまま説明する。また、クロックCk、Ckx、Ckoのデューティ比は、50%より低く、例えば、40%であるものとする。
PI220Aの出力は、クロックCkとクロックCkx+kT/2とを補間することによって得られるクロックCkoutである。ここで、クロックCkのデューティ比が40%である場合、クロックCkx+kT/2のデューティ比も40%であるが、クロックCkx+kT/2は、クロックCkの逆位相のクロックである。
このため、クロックCkは、'1'(Hレベル)が40%であり、'0'(Lレベル)が60%である。また、クロックCkx+kT/2は、'1'(Hレベル)が60%であり、'0'(Lレベル)が40%である。すなわち、クロックCkと、クロックCk+kT/2との'1'と'0'の比は逆である。
また、ここではk=3であるため、クロックCkと、クロックCkx+kT/2とは、周期Tの3/2(3T/2)だけ位相が異なる。
従って、PI220AでクロックCkとクロックCkx+kT/2を補間して得るクロックCkoutは、デューティ比が50%のクロックになる。
また、同様に、PI220Bでは、図15に2本の破線の矢印で示すように、クロックCkxとクロックCk+kT/2とを補間する。クロックCkxとクロックCk+kT/2のデューティ比はともに40%であり、クロックCk+kT/2は、クロックCkxの逆位相のクロックである。
このため、クロックCkxは、'1'(Hレベル)が60%であり、'0'(Lレベル)が40%である。また、クロックCk+kT/2は、'1'(Hレベル)が40%であり、'0'(Lレベル)が60%である。すなわち、クロックCkxと、クロックCkx+kT/2との'1'と'0'の比は逆である。
また、ここではk=3であるため、クロックCkと、クロックCkx+kT/2とは、周期Tの半分(T/2)だけ位相が異なる。
従って、図15に2本の破線の矢印で示すように、PI220BでクロックCkxとクロックCk+kT/2を補間して得るクロックCkoutxは、デューティ比が50%のクロックになる。
また、図15でクロックCkoutxの下に示すクロックCkoとクロックCko+kTは、PD230に入力されるクロックである。クロックCkoとクロックCko+kTは、ともにデューティ比が40%であり、'1'が60%であり、'0'が40%である。
ここで、k=3であるため、クロックCkoとクロックCko+kTは、3周期(3T)だけ位相が異なる。
従って、PD230の出力は、XORは'0'(Lレベル)となり、XNORは'1'(Hレベル)となる。すなわち、PD230としてXORの論理部を用いた場合は、PD230の出力は'0'であり、PD230としてXNORの論理部を用いた場合は、PD230の出力は'1'である。
このように、PD230に入力するクロックCkoとクロックCko+kTの位相差が周期Tのk倍であって、ずれが存在しない場合には、PD230の出力は一定である。
しかしながら、遅延素子251及び252でクロックに与える遅延量がkT/2からずれると、PD230に入力するクロックCkoとクロックCko+kTとの位相差が周期Tのk倍からずれる。
このように遅延素子251及び252でクロックに与える遅延量にずれが生じると、PD230の出力は一定ではなくなる。すなわち、PD230がXORの論理部である場合は、クロックCkoとクロックCko+kTの値が異なる区間だけ、PD230の出力は'1'になる。また、PD230がXNORの論理部である場合は、クロックCkoとクロックCko+kTの値が異なる区間だけ、PD230の出力は'0'になる。
そして、このように遅延素子251及び252でクロックに与える遅延量にずれが生じた場合は、PD230の出力により、遅延部210A及び210Bと、遅延部250の遅延素子251及び252との遅延量が、kT/2に補正される。
遅延部210A及び210Bと遅延部250の遅延素子251及び252との遅延量がkT/2に補正されると、PI220Aには、位相がkT/2だけずれたクロックCkとクロックCkx+kT/2が入力される。同様に、PI220Bには、位相がkT/2だけずれたクロックCk+kT/2とクロックCkxが入力される。
このため、PI220A、220Bで、デューティ比が50%のクロックCkout、Ckoutxをそれぞれ出力することができる。
以上により、実施の形態2によれば、デューティ比を正確に50%に補正できるデューティ補正回路200を提供することができる。
なお、実施の形態1のデューティ補正回路100では、図6に示すように、入力端子101A及び遅延素子111Aの間と、遅延素子112Aの出力側とに、ダミーのPDを接続した。
しかしながら、実施の形態2のデューティ補正回路200では、実施の形態1のデューティ補正回路100で用いたようなダミーのPDは必要ない。これは、インバータ241、243、遅延部210A、210B、及びPD220A、220Bの接続関係が対称だからである。
また、このように、インバータ241、243、遅延部210A、210B、及びPD220A、220Bで対称な回路構成を構築しているため、実施の形態2のデューティ補正回路200では、PD230に入力するクロックCkoをkTだけ遅延させるために、遅延部250を設けている。遅延部250の遅延素子251及び252は、最終的に得るクロックCkout、Ckoutxを遅延するために用いていないため、レプリカの遅延素子として捉えることができる。
<実施の形態3>
図16は、実施の形態3のデューティ補正回路300を示す図である。
デューティ補正回路300は、入力端子301A、301B、出力端子302A、302B、遅延部310A、310B、PI(Phase Interpolator)320A、320B、PD(Phase Detector)330A、330B、インバータ341、342、及び遅延部350A、350Bを含む。
デューティ補正回路300は、さらに、インバータ361、AND回路362、AND回路363、及びCP(Charge Pump)370を含む。
なお、以下において、説明の便宜上、一部の二入力端子素子については、図16中の上側にある入力端子を一方の入力端子と称し、図16中の下側にある入力端子を他方の入力端子と称す場合がある。
また、以下では、実施の形態1、2におけるkが1(k=1)の場合について説明する。このため、実施の形態3では、'k'の文字を省く。
入力端子301A、301Bは、デューティ補正回路300にクロックCk、Ckxを入力するための端子である。入力端子301Aは第1入力端子の一例であり、入力端子301Bは第2入力端子の一例である。
入力端子301Aには、遅延部310Aの入力端子と、PI320Aの入力端子320A1とが接続されている。
入力端子301Bには、遅延部310Bの入力端子と、PI320Bの入力端子320B2とは接続されている。
出力端子302A、302Bは、デューティ補正回路300でデューティ比が補正されたクロックを出力する端子である。出力端子302Aは、PI320Aの出力端子に接続され、出力端子302Bは、PI320Bの出力端子に接続される。
遅延部310Aの出力端子は、PI320Bの入力端子320B1に接続されている。遅延部310Aは、入力端子301Aから入力されるクロックCkに所定の遅延時間T/2を与える。遅延部310Aは、クロックCkに遅延時間T/2を与えて、クロックCk+T/2を出力する。遅延部310Aが出力するクロックCk+T/2は、PI320Bに入力される。遅延部310Aは、第2遅延部の一例である。
ここで、kは任意の奇数であり、Tはクロックの周期である。クロックの周期Tは、デジタルデータのデータレート(データ転送レート)に対応した周期に設定される。
遅延部310Aにおける遅延時間T/2は、CP370の出力に応じて調整される。
遅延部310Bの出力端子は、PI320Aの入力端子320A2に接続されている。遅延部310Bは、入力端子301Bから入力されるクロックCkxに所定の遅延時間T/2を与える。遅延部310Bは、クロックCkxに遅延時間T/2を与えて、クロックCkx+T/2を出力する。遅延部310Bが出力するクロックCkx+T/2は、PI320Aに入力される。遅延部310Bは、第1遅延部の一例である。
遅延部310Bにおける遅延時間T/2は、CP370の出力に応じて調整される。
遅延部310A及び310Bがクロックに与える所定の遅延時間は、ともにT/2に設定されている。例えば、遅延部310A及び310Bとして、同一の遅延素子を用いることにより、遅延時間を揃えることができる。
PI320Aの入力端子320A1は、入力端子301Aに接続されており、入力端子320A2は、遅延部310Bの出力端子に接続されている。
PI320Aは、入力端子320A1に入力されるクロックCkと、入力端子320A2に入力されるクロックCkx+T/2との補間を行い、補間によって得るクロックCkoutを出力する。PI320Aは、第1補間部の一例である。
PI320Bは、入力端子320B1に入力されるクロックCk+T/2と、入力端子320B2に入力されるクロックCkxとの補間を行い、補間によって得るクロックCkoutxを出力する。PI320Bは、第2補間部の一例である。
インバータ341、342には、クロックCkxが入力される。インバータ341、342に入力されるクロックCkxは、入力端子301Bに入力されるクロックCkxと同一である。
インバータ341の出力端子は、遅延部350Aの遅延素子351Aの入力端子と、PD330AのXOR回路331Aの一方の入力端子とに接続されている。インバータ341は、クロックCkxを反転してクロックCko1を出力する。
インバータ342の出力端子は、遅延部350Bの遅延素子351Bの入力端子と、PD330のXOR回路331Bの他方の入力端子とに接続されている。インバータ342は、クロックCkxを反転してクロックCko2を出力する。
インバータ341と342は、同一サイズの遅延素子を含むインバータであるので、クロックCko1とクロックCko2の位相は同一である。
遅延部350Aは、遅延素子351A及び352Aを含む。遅延素子351A及び352Aは直列に接続されている。
遅延素子351Aの入力端子は、インバータ341の出力端子に接続されており、出力端子は、遅延素子352Aの入力端子と、PD330AのXOR回路331Aの他方の入力端子とに接続されている。
遅延素子351Aは、インバータ341から入力されるクロックCko1に所定の遅延時間T/2を与えて出力する。遅延素子351Aから出力されるクロックCko1+T/2は、遅延素子352Aと、PD330AのXOR331Aとに入力される。なお、遅延素子351Aは、第2遅延回路の一例である。
遅延素子352Aの出力端子は、終端されている。遅延素子352Aの出力端子は、図示しないダミーのPDに接続されていてもよい。このダミーのPDは、PD330Bと同様のPDであればよい。
遅延素子351A及び352Aがクロックに与える所定時間は、ともにT/2に設定されている。これは、遅延部350Bの遅延素子351B及び352Bがクロックに与える所定の遅延時間T/2と等しい遅延時間に設定されている。
なお、遅延素子351A及び352Aがクロックに与える遅延時間は、CP370の出力によって設定される。
遅延部350Bは、遅延素子351B及び352Bを含む。遅延素子351B及び352Bは直列に接続されている。
遅延素子351Bの入力端子は、インバータ342の出力端子に接続されており、出力端子は、遅延素子352Bの入力端子に接続されている。
遅延素子351Bは、インバータ342から入力されるクロックCko2に所定の遅延時間T/2を与えて出力する。遅延素子351Bから出力されるクロックCko2+T/2は、遅延素子352Bに入力される。
遅延素子352Bの出力端子は、PD330BのXOR回路331Bの一方の入力端子に接続されている。遅延素子352Bは、遅延素子351Bから入力されるクロックCko2+T/2に所定の遅延時間T/2を与えて、クロックCko2+Tを出力する。
以上のように、遅延素子351B及び352Bを含む遅延部350Bは、インバータ342から入力されるクロックCko2に遅延時間Tを与えて、クロックCko2+Tを出力する。遅延部350Bは、第1遅延回路の一例である。
遅延素子351B及び352Bがクロックに与える所定時間は、ともにT/2に設定されている。これは、遅延部350Aの遅延素子351A及び352Aがクロックに与える所定の遅延時間T/2と等しい遅延時間に設定されている。
なお、遅延素子351B及び352Bがクロックに与える遅延時間は、CP370の出力によって設定される。
PD330Aは、XOR回路331A、LPF332A、及びコンパレータ333A、334Aを含む。
XOR回路331Aの一方の入力端子は、インバータ341の出力端子に接続され、他方の入力端子は、遅延素子351Aの出力端子に接続されている。XOR回路331Aの出力端子は、LPF332Aの入力端子に接続されている。
LPF332Aの入力端子は、XOR回路331Aの出力端子に接続されており、出力端子は、コンパレータ333Aの反転入力端子と、コンパレータ334Aの非反転入力端子とに接続されている。
コンパレータ333Aの反転入力端子は、LPF332Aの出力端子に接続され、非反転入力端子に閾値電圧(3Vdd/4)が入力され、出力端子がAND回路363の他方の入力端子に接続されている。
コンパレータ334Aの非反転入力端子は、LPF332Aの出力端子に接続され、反転入力端子に閾値電圧(Vdd/2)が入力され、出力端子は、インバータ361の入力端子と、AND回路362の他方の出力端子と、AND回路363の一方の入力端子とに接続されている。
PD330Aは、デューティ補正回路300において、出力クロックCkout、Ckoutxが、周期Tの偶数倍の周波数でロックしないように、偶数倍の周波数でのロックを防止するために設けられている。PD330Aの動作については後述する。
PD330Bは、XOR回路331B、LPF332B、及びコンパレータ333Bを含む。XOR回路331Bの一方の入力端子は、遅延部350Bの遅延素子352Bの出力端子に接続され、他方の入力端子は、インバータ342の出力端子に接続されている。XOR回路331Bの出力端子は、LPF332Bの入力端子に接続されている。
LPF332Bの入力端子は、XOR回路331Bの出力端子に接続され、出力端子は、コンパレータ333Bの反転入力端子に接続されている。
コンパレータ333Bの反転入力端子は、LPF332Bの出力端子に接続され、非反転入力端子には閾値電圧(Vth)が入力される。コンパレータ333Bの出力端子は、AND回路362の一方の入力端子に接続されている。
コンパレータ333Bの出力mon1は、LPF332Bの出力よりも閾値電圧(Vth)が大きいときにHレベル('1')になり、LPF332Bの出力が閾値電圧(Vth)より小さいときにLレベル('0')になる。
インバータ361の入力端子は、コンパレータ334Aの出力端子に接続され、出力端子は、CP370の入力端子370Aに接続されている。CP370の入力端子370Aは、遅延部310A及び310BがクロックCk及びCkxにそれぞれ与える遅延時間を短くするときに、インバータ361からup信号を入力するための端子である。
AND回路362の一方の入力端子は、PD330Bのコンパレータ333Bの出力端子に接続されており、他方の入力端子は、PD330Aのコンパレータ334Aの出力端子に接続されている。
AND回路362の出力端子は、CP370の入力端子370Bに接続されている。CP370の入力端子370Bは、遅延部310A及び310BがクロックCk及びCkxにそれぞれ与える遅延時間を長くするときに、AND回路362からdn(down)信号を入力するための端子である。
AND回路363の一方の入力端子は、コンパレータ334Aの出力端子に接続されており、他方の入力端子は、否定演算部363Aを介して、コンパレータ333Aの出力端子に接続されている。AND回路363の出力端子は、CP370の制御端子370Cに接続されている。
AND回路363は、コンパレータ334Aから出力される信号mon2が'1'で、コンパレータ333Aから出力される信号mon3が'0'のときに、CP370の出力電圧Vfdを固定させるために、Hレベル('1')のストップ信号stopを出力する。
CP370は、入力端子370Aにインバータ361から入力されるup信号と、入力端子370BにAND回路362から入力されるdn信号とを積分し、電圧Vfdを出力する。
CP370は、up信号が入力されると、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間を短くするように、電圧Vfdの値を変化させる。
また、CP370は、dn信号が入力されると、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間を長くするように、電圧Vfdの値を変化させる。
CP370は、AND回路363から制御端子370CにHレベル('1')のストップ信号stopが入力されると、積分動作を停止し、電圧VFdの値を固定する。CP370は、ストップ信号stopがLレベル('0')である間は、積分動作を行う。
ここで、図17を用いて、CP370の回路構成について説明する。
図17は、実施の形態1のデューティ補正回路300のCP370の回路構成を示す図である。
CP370は、電流源371及び372、FET373及び374、スイッチ375、キャパシタ376、及び出力端子377を含む。
電流源371の入力端子は電源Vddに接続され、出力端子はFET373のドレインに接続される。
電流源372の入力端子はFET374のソースに接続され、出力端子は接地される。
FET373は、NMOSFETであり、ドレインが電流源371の出力端子に接続され、ゲートが入力端子370A(図16参照)に接続され、ソースがFET374のドレインと、スイッチ375の一方の端子(図17中左側の端子)とに接続される。
FET374のドレインはFET373のソースとスイッチ375の一方の端子(図17中左側の端子)とに接続され、ゲートは入力端子370B(図16参照)に接続され、ソースは電流源372の入力端子に接続される。
スイッチ375の一方の端子(図17中の左側の端子)は、FET374のドレイン373のソースと、FET374のドレインとに接続され、他方の端子(図17中の右側の端子)は、キャパシタ376の一方の端子(図17中の上側の端子)と、出力端子377とに接続されている。
スイッチ375は、AND回路363(図16参照)から入力されるストップ信号stopがHレベル('1')になると開放され(オフされ)、ストップ信号stopがLレベル('0')になると閉成される(オンされる)。スイッチ375は、例えば、PMOSFET(Ptype MOSFET)等のトランジスタで実現することができる。
キャパシタ376の一方の端子(図17中の上側の端子)は、FET373のソースと、FET374のドレインと、出力端子377とに接続されている。キャパシタの他方の端子(図17中の下側の端子)は、接地されている。
出力端子377は、スイッチ375の他方の端子(図17中の右側の端子)と、キャパシタ376の一方の入力端子(図17中の上側の端子)とに接続されている。
以上のようなCP370において、ストップ信号がLレベル('0')であり、スイッチ375がオンであるときに、FET373のゲートに入力されるup信号がHレベル('1')になり、FET374のゲートに入力されるdn信号がLレベル('0')であるときには、FET373がオンになり、FET374がオフになる。
この結果、電流源371から出力される電流により、キャパシタ376が充電される(電荷が蓄積される)。
また、ストップ信号がLレベル('0')であり、スイッチ375がオンであるときに、FET373のゲートに入力されるup信号がLレベル('0')になり、FET374のゲートに入力されるdn信号がHレベル('1')であるときには、FET373がオフになり、FET374がオンになる。
この結果、キャパシタ376に蓄積された電荷が、FET374及び電流源372を通じて放出される(キャパシタ376が放電される)。
このようにキャパシタ376を充電又は放電することにより、キャパシタ376の電荷量が調節され、キャパシタ376の電荷量によって決まるCP370の積分値が変動する。
CP370の積分値を表す電圧Vfdは、出力端子377から出力される。電圧Vfdの値は、up信号によってキャパシタ376が充電されると上昇し、dn信号によってキャパシタ376が放電されると低下する。
電圧Vfdの値が上昇すると、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間が短くなる。一方、電圧Vfdの値が低下すると、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間が長くなる。
なお、CP370は、ストップ信号stopがHレベル('1')になると、スイッチ375をオフ(開放)する。これにより、出力端子377から出力される電圧Vfdは、スイッチ375がオフされる直前のキャパシタ376の両端間電圧に固定される。
以上のように、実施の形態3では、CP370が出力する電圧Vfdにより、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間が制御される。
次に、図18を用いて、実施の形態3のデューティ補正回路300の動作について説明する。
図18は、実施の形態3のデューティ補正回路300の動作の一例を示すタイミングチャートである。
図18には、上から下にかけて順番に、クロックCko1(=Cko2)、Cko1+T/2、Cko2+T、XOR回路331Aの出力eor2、LPF332Aの出力Ag(eor2)、LPF332Bの出力mon1、コンパレータ334Aの出力mon2、及びコンパレータ333Aの出力mon3を示す。
図18では、クロックCko1(=Cko2)のデューティ比は、50%よりも大きいものとする。
図18では、PD330AのLPF332Aの出力Ag(eor2)がコンパレータ334Aの閾値(Vdd/2)より高いので、出力mon2は'1'(Hレベル)になる。このとき、LPF332Aの出力Ag(eor2)よりコンパレータ333Aの閾値(3Vdd/4)の方が大きいので、出力mon3は'1'(Hレベル)になる。
出力mon2が'1'(レベルH)なので、up信号は'0'になる。また、出力mon2が'1'(Hレベル)で、出力mon3が'1'(Hレベル)なので、AND回路363が出力するストップ信号stopは'0'になる。
また、PD330BのLPF332Bの出力mon1は、コンパレータ333Bの閾値電圧(Vth)より低いので、出力mon1は'1'(Hレベル)になり、dn信号は'1'になる。
このようにしてCP370によって遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間T/2が調整される。
そして、PI320Aは、クロックCkとクロックCkx+T/2とを補間して、デューティ比が50%のクロックCkoutを出力する。また、PI320Bは、クロックCkxとクロックCk+T/2とを補間して、デューティ比が50%のクロックCkoutxを出力する。
また、仮に、デューティ補正回路300が出力するクロックCkout、Ckoutxに周期Tの偶数倍のロックが生じた場合は、PD330AのXOR回路331Aの出力eor2が'0'になる。このため、LPF332Aの出力Ag(eor2)が低下し、Vdd/2よりも小さくなる。これにより、コンパレータ334Aの出力mon2は'0'になり、コンパレータ333Aの出力mon3も'0'になる。
ここで、出力mon2は'0'で、出力mon3は'0'であるので、AND回路363が出力するストップ信号stopは'0'になる。このため、CP370の積分処理は継続される。
また、出力mon2が'0'だと、up信号が'1'になる。従って、CP370が出力する電圧Vfdが上昇し、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間T/2が短くされる。
このように遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間T/2が短くされることにより、クロックCkout、Ckoutxに周期Tの偶数倍のロック状態が生じることが抑制される。
なお、クロックCkout、Ckoutxに周期Tの偶数倍のロックが生じた場合は、XOR回路331Bの出力eor1が'0'になり、LPF332Bの出力が低下するため、コンパレータ333Bの出力mon1は'1'になる。
ただし、このとき、上述したように、コンパレータ334Aの出力mon2は'0'であるため、AND回路362が出力するdn信号は'0'である。
次に、図19を用いて、実施の形態3のデューティ補正回路300の動作について説明する。
図19は、実施の形態3のデューティ補正回路300の動作の一例を示すタイミングチャートである。図19では、クロックCko1(=Cko2)のデューティ比は、50%よりも小さいものとする。
図19には、上から下にかけて順番に、クロックCko1(=Cko2)、Cko1+T/2、Cko2+T、XOR回路331Aの出力eor2、LPF332Aの出力Ag(eor2)、LPF332Bの出力mon1、コンパレータ334Aの出力mon2、及びコンパレータ333Aの出力mon3を示す。
図19では、PD330AのLPF332Aの出力Ag(eor2)がコンパレータ334Aの閾値(Vdd/2)より高いので、出力mon2は'1'(Hレベル)になる。このとき、LPF332Aの出力Ag(eor2)よりコンパレータ333Aの閾値(3Vdd/4)の方が大きいので、出力mon3は'1'(Hレベル)になる。
出力mon2が'1'(レベルH)なので、up信号は'0'になる。また、出力mon2が'1'(Hレベル)で、出力mon3が'1'(Hレベル)なので、AND回路363が出力するストップ信号stopは'0'になる。
また、PD330BのLPF332Bの出力mon1は、コンパレータ333Bの閾値電圧(Vth)より低いので、出力mon1は'1'(Hレベル)になり、dn信号は'1'になる。
このようにしてCP370によって遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとがクロックに与える遅延時間T/2が調整される。
そして、PI320Aは、クロックCkとクロックCkx+T/2とを補間して、デューティ比が50%のクロックCkoutを出力する。また、PI320Bは、クロックCkxとクロックCk+T/2とを補間して、デューティ比が50%のクロックCkoutxを出力する。
<実施の形態4>
図20は、実施の形態4のデューティ補正回路400を示す図である。実施の形態4のデューティ補正回路400は、実施の形態3のデューティ補正回路300のPD330Aをデジタル回路のPD430Aに変更したものである。
また、この変更により、実施の形態3のインバータ361及びAND回路362の代わりに、バッファ461及び462を用いるとともに、実施の形態3のAND回路363の否定演算部363Aを取り除いたAND回路463を用いている。
以下、実施の形態3のデューティ補正回路300と同様の構成要素には同一符号を付し、重複説明を省略する。
デューティ補正回路400は、入力端子301A、301B、出力端子302A、302B、遅延部310A、310B、PI320A、320B、PD(Phase Detector)430A、PD330B、インバータ341、342、及び遅延部350A、350Bを含む。なお、PD330Bは、実施の形態4では論理部の一例である。
デューティ補正回路400は、さらに、バッファ461、バッファ462、AND回路463、及びCP(Charge Pump)370を含む。
PD430Aは、FF(Flip Flop)431、432、カウンタ433、434、及び判定部435、436、437を含む。PD430Aは、実施の形態3のPD330Aに対応する部分をデジタル回路で実現する回路である。PD430Aは、デジタル位相検出部の一例である。また、判定部435、436、437は、比較部の一例である。
FF431のデータ入力端子Dは、インバータ341の出力端子に接続され、データ出力端子Qは、カウンタ433の入力端子に接続される。FF431のクロック入力端子は、遅延部350Aの遅延素子351Aの出力端子に接続されており、クロックCko1+T/2が入力される。
FF431は、遅延素子351AからクロックCko1+T/2がクロック入力端子に入力されると、クロックCko1+T/2の立ち上がりのタイミングでデータ入力端子Dで保持するデータをデータ出力端子Qに反映し、エッジ信号edge1を出力する。FF431としては、例えば、D−FFを用いることができる。
FF432のデータ入力端子Dは、インバータ341の出力端子に接続され、データ出力端子Qは、カウンタ434の入力端子に接続される。FF432のクロック入力端子は、否定演算部432Aを介して遅延部350Aの遅延素子351Aの出力端子に接続されており、クロック(Cko1+T/2)xが入力される。クロック(Cko1+T/2)xは、クロックCko1+T/2の逆位相のクロックである。
FF432は、(Cko1+T/2)xがクロック入力端子に入力されると、(Cko1+T/2)xの立ち上がりのタイミングで、データ入力端子Dで保持するデータをデータ出力端子Qに反映し、エッジ信号edge2を出力する。このため、FF432がデータ出力端子Qにデータを反映させるタイミングと、FF431がデータ出力端子Qにデータを反映させるタイミングとは異なる。なお、FF432としては、例えば、D−FFを用いることができる。
カウンタ433の入力端子は、FF431のデータ出力端子Qに接続され、出力端子は、判定部435、436、及び437の一方の入力端子(図20中の上側の入力端子)に接続されている。カウンタ433のクロック入力端子は、遅延部350Aの遅延素子352Aの出力端子に接続されており、遅延素子352AからクロックCko1+Tが入力される。
カウンタ433は、クロック入力端子にクロックCko1+Tが入力されると、FF431のデータ出力端子Qにあるデータ('1'又は'0')をカウントし、カウント値を表すカウント信号cnt1を出力する。カウント信号cnt1は、判定部435、436、437の一方の入力端子に入力される。
カウンタ434の入力端子は、FF432のデータ出力端子Qに接続され、出力端子は、判定部435、436、及び437の他方の入力端子(図20中の下側の入力端子)に接続されている。カウンタ434のクロック入力端子は、遅延部350Aの遅延素子352Aの出力端子に接続されており、遅延素子352AからクロックCko1+Tが入力される。
カウンタ434は、クロック入力端子にクロックCko1+Tが入力されると、FF432のデータ出力端子Qにあるデータ('1'又は'0')をカウントし、カウント値を表すカウント信号cnt2を出力する。カウント信号cnt2は、判定部435、436、437の他方の入力端子に入力される。
判定部435の一方の入力端子は、カウンタ433の出力端子に接続され、他方の入力端子は、カウンタ434の出力端子に接続されている。判定部435の出力端子は、バッファ362の入力端子に接続されている。
判定部435は、2つの入力を比較し、カウンタ433のカウント信号cnt1の値が、カウンタ434のカウント信号cnt2の値よりも大きい場合に、Hレベル('1')の出力gt(cnt1 is greater than cnt2)を出力する。判定部435は、カウント信号cnt1の値がカウント信号cnt2の値以下である場合は、Lレベル('0')の出力gtを出力する。
判定部436の一方の入力端子は、カウンタ433の出力端子に接続され、他方の入力端子は、カウンタ434の出力端子に接続されている。判定部436の出力端子は、バッファ461の入力端子に接続されている。
判定部436は、2つの入力を比較し、カウント信号cnt1の値がカウンタ434のカウント信号cnt2の値よりも小さい場合に、Hレベル('1')の出力lt(cnt1 is less than cnt2)を出力する。判定部436は、カウント信号cnt1の値がカウント信号cnt2の値以上である場合は、Lレベル('0')の出力ltを出力する。
判定部437の一方の入力端子は、カウンタ433の出力端子に接続され、他方の入力端子は、カウンタ434の出力端子に接続されている。判定部437の出力端子は、AND回路363の一方の入力端子に接続されている。
判定部437は、2つの入力を比較し、カウント信号cnt1の値がカウンタ434のカウント信号cnt2の値と等しい場合に、Hレベル('1')の出力eq(cnt1 is equal to cnt2)を出力する。判定部436は、カウント信号cnt1の値がカウント信号cnt2の値と等しくない場合は、Lレベル('0')の出力eqを出力する。
次に、図21乃至図23を用いて、実施の形態4のデューティ補正回路400の動作について説明する。
図21は、実施の形態4のデューティ補正回路400の動作の一例を示すタイミングチャートである。図21は、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとでクロックに与える所定の遅延時間T/2が、本来の正確な値よりも短い場合について説明する。なお、この状態で、クロックCkoutとクロックCkoutxはロックしている。
図21には、上から下に順番に、クロックCko1(=Cko2)、Cko1+T/2、(Cko1+T/2)x、Cko1+Tを示す。クロック(Cko1+T/2)xは、クロックCko1+T/2の逆位相のクロックであり、図21では、Cko1+T/2の上にバーを付けて示す。
また、図21には、FF431及び432の出力edg(edge)1及びedg2、カウンタ433及び434が出力するカウント信号cnt1及びcnt2、XOR回路331Bの出力eor1、及びコンパレータ333Bの出力mon1を示す。
図21に示すように、所定の遅延時間T/2が、本来の正確な値よりも短い場合は、クロックCko1に対して、Cko1+T/2、(Cko1+T/2)x、Cko1+Tの位相は、少しずつずれている。
FF431の出力edg1は、クロックCko1+T/2の立ち上がりのタイミングでクロックCko1の値を反映するので、常に'1'となる。また、FF432の出力edg2は、クロック(Cko1+T/2)xの立ち上がりのタイミングでクロックCko1の値を反映するので、常に'0'となる。
また、この場合に、カウント信号cnt1は、クロックCko1+Tの立ち上がりのタイミングでFF431の出力edg1の値をカウントするため、値が1ずつ増大して行く。図21では、カウント信号cnt1が0から1、2、3、4と1つずつ増大する場合を示す。
一方、カウント信号cnt2は、クロックCko1+Tの立ち上がりのタイミングでFF432の出力edg2の値をカウントするため、'0'を保持する。
また、XOR331Bに入力されるクロックCko2とクロックCko2+Tの位相がずれるため、XOR331Bの出力eor1は、クロックCko2とCko2+Tの値が異なる区間で'1'となり、クロックCko2とCko2+Tの値が等しい区間で'0'となる。
図21に示すようにクロックCko2とCko2+Tの位相がずれるが、ずれ幅が比較的小さいので、XOR331Bの出力eor1が入力されるLPF332Bの出力はコンパレータ333Bの閾値電圧(Vth)より低く、コンパレータ333Bの出力mon1は'1'となる。
また、図21には、判定部435、436、437の出力gt、lt、eqを示さないが、出力gtは'1'となり、出力ltとeqはともに'0'を保持する。
従って、up信号は'0'、dn信号は'1'、ストップ信号stopは'0'となる。このため、CP370は、電圧Vfdの値を減少させる。この結果、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとでクロックに与える所定の遅延時間T/2が延ばされ、本来の正確な値に近づけられる。
以上のように、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとでクロックに与える所定の遅延時間T/2が、本来の正確な値よりも短い場合は、up信号は'0'、dn信号は'1'、ストップ信号stopは'0'になることにより、所定の遅延時間T/2が延ばされ、本来の正確な値に近づけられる。
次に、クロックCkoutとクロックCkoutxとの位相差が正確にT/2である場合について説明する。
図22は、実施の形態4のデューティ補正回路400の動作の一例を示すタイミングチャートである。図22は、デューティ補正回路400が出力するクロックCkoutとクロックCkoutxとの位相差がT/2であり、かつ、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとでクロックに与える所定の遅延時間T/2にずれがない場合について説明する。この状態で、クロックCkoutとクロックCkoutxはロックしている。
図22に示すように、クロックCkoutとクロックCkoutxとの位相差が正確なT/2であって、ずれがない場合は、クロックCko1に対して、クロックCko1+T/2は正確にT/2だけ位相が遅れている。また、クロック(Cko1+T/2)xは、クロックCko1+T/2の逆位相である。また、クロックCko1+Tは、クロックCko1から位相がTだけ遅れているが、立ち上がりと立ち下がりのタイミングは一致している。
FF431の出力edg1は、クロックCko1+T/2の立ち上がりのタイミングでクロックCko1の値を反映するので、常に'0'となる。また、FF432の出力edg2は、クロック(Cko1+T/2)xの立ち上がりのタイミングでクロックCko1の値を反映するので、常に'0'となる。
この場合に、カウント信号cnt1は、クロックCko1+Tの立ち上がりのタイミングでFF431の出力edg1の値をカウントするため、'0'を保持する。
また、カウント信号cnt2は、クロックCko1+Tの立ち上がりのタイミングでFF432の出力edg2の値をカウントするため、'0'を保持する。
また、XOR331Bの出力eor1は、クロックCko2とCko2+Tの立ち上がりと立ち下がりが一致するため、'0'に保持される。
XOR331Bの出力eor1が入力されるLPF332Bの出力はコンパレータ333Bの閾値電圧(Vth)より低く、コンパレータ333Bの出力mon1は'1'となる。
また、図22には、判定部435、436、437の出力gt、lt、eqを示さないが、出力gtとltはともに'0'となり、出力eqは'1'を保持する。
従って、up信号は'0'、dn信号は'0'、ストップ信号stopは'1'となる。このため、CP370の電圧Vfdは固定される。
図23は、実施の形態4のデューティ補正回路400の動作の一例を示すタイミングチャートである。図23は、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとでクロックに与える所定の遅延時間T/2が、本来の正確な値よりも長い場合について説明する。なお、この状態で、クロックCkoutとクロックCkoutxはロックしている。
図23に示すように、所定の遅延時間T/2が、本来の正確な値よりも長い場合は、クロックCko1に対して、Cko1+T/2、(Cko1+T/2)x、Cko1+Tの位相は、少しずつずれている。
FF431の出力edg1は、クロックCko1+T/2の立ち上がりのタイミングでクロックCko1の値を反映するので、常に'0'となる。また、FF432の出力edg2は、クロック(Cko1+T/2)xの立ち上がりのタイミングでクロックCko1の値を反映するので、常に'1'となる。
この場合に、カウント信号cnt1は、クロックCko1+Tの立ち上がりのタイミングでFF431の出力edg1の値をカウントするため、'0'に保持される。
一方、カウント信号cnt2は、クロックCko1+Tの立ち上がりのタイミングでFF432の出力edg2の値をカウントするため、値が'1'ずつ増大して行く。図23では、カウント信号cnt2が0から1、2、3と1つずつ増大する場合を示す。
また、XOR331Bに入力されるクロックCko2とクロックCko2+Tの位相がずれるため、XOR331Bの出力eor1は、クロックCko2とCko2+Tの値が異なる区間で'1'となり、クロックCko2とCko2+Tの値が等しい区間で'0'となる。
図23に示すようにクロックCko2とCko2+Tの位相がずれるが、XOR331Bの出力eor1が入力されるLPF332Bの出力はコンパレータ333Bの閾値電圧(Vth)より低く、コンパレータ333Bの出力mon1は'1'となる。
また、図23には、判定部435、436、437の出力gt、lt、eqを示さないが、出力ltは'1'となり、出力gtとeqはともに'0'を保持する。
従って、up信号は'1'、dn信号は'0'、ストップ信号stopは'0'となる。このため、CP370は、電圧Vfdの値を減少させる。この結果、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとでクロックに与える所定の遅延時間T/2が短縮され、本来の正確な値に近づけられる。
以上のように、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとでクロックに与える所定の遅延時間T/2が、本来の正確な値よりも長い場合は、up信号は'0'、dn信号は'1'、ストップ信号stopは'0'になることにより、所定の遅延時間T/2が短縮され、本来の正確な値に近づけられる。
なお、最後に、実施の形態4のデューティ補正回路400の出力mon1、出力gt、lt、eq、up信号、dn信号、ストップ信号stopの真理表を図24に示す。
図24は、実施の形態4のデューティ補正回路400の真理表を示す図である。
図24の一番上の行に示すように、出力mon1が'1'で、出力gtとltが'0'、出力eqは'1'の場合は、up信号は'0'、dn信号は'0'、ストップ信号stopは'1'となる。この結果、CP370の電圧Vfdは固定される。これは、図22に示すケースに該当する。
また、一行下に示すように、出力ltが'1'となり、出力gtとeqが'0'である場合は、up信号は'1'、dn信号は'0'、ストップ信号stopは'0'となる。この結果、遅延部310A及び310Bと、遅延素子351A、352A、351B、及び352Bとでクロックに与える所定の遅延時間T/2が短縮され、本来の正確な値に近づけられる。これは、図23に示すケースに該当する。
また、もう一行下に示すように、出力gtが'1'となり、出力ltとeqが'0'である場合は、up信号は'0'、dn信号は'1'、ストップ信号stopは'0'となる。この結果、所定の遅延時間T/2が延ばされ、本来の正確な値に近づけられる。これは、図24に示すケースに該当する。
以上、実施の形態4によれば、実施の形態3のデューティ補正回路300よりも、アナログ回路(PD330AのLPF332A、コンパレータ333A、334A等)を減らして、デジタル化を図ったデューティ補正回路400を提供することができる。
以上、本発明の例示的な実施の形態のデューティ補正回路、及び、情報処理装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
周期Tの差動クロックの一方のクロック及び他方のクロックがそれぞれ入力される第1入力端子及び第2入力端子と、
前記第2入力端子に接続され、前記他方のクロックの位相をkT/2(kは任意の奇数)遅延させて出力する第1遅延部と、
前記第1入力端子から入力される前記一方のクロックと、前記第1遅延部によって位相がkT/2遅延された前記他方のクロックとを加算したクロックを出力する第1補間部と
を含む、デューティ補正回路。
(付記2)
前記一方のクロック又は前記他方のクロックのうちのいずれかのクロックの位相をkT遅延させて出力する第1遅延回路と、
前記第1遅延回路の入力クロックと出力クロックとの位相差を検出する位相検出部と
をさらに含み、
前記第1遅延部は、前記位相検出部によって検出された位相差に基づき、前記他方のクロックに与える遅延量を補正する、付記1記載のデューティ補正回路。
(付記3)
前記一方のクロック又は前記他方のクロックのうちのいずれかのクロックの位相をkT遅延させて出力する第1遅延回路と、
前記第1遅延回路の入力クロックと同一のクロックの位相をkT/2遅延させて出力する第2遅延回路と、
前記第1遅延回路の入力クロックと出力クロックとの排他的論理和、又は、否定排他的論理和を出力する第1論理部と、
前記第2遅延回路の入力クロックと出力クロックとの排他的論理和、又は、否定排他的論理和を出力する第2論理部と、
前記第1論理部の出力と前記第2論理部の出力とを積分する積分部と
をさらに含み、前記第1遅延部は、前記積分部の出力に基づき、前記他方のクロックに与える遅延量を補正する、付記1記載のデューティ補正回路。
(付記4)
前記一方のクロック又は前記他方のクロックのうちのいずれかのクロックの位相をkT遅延させて出力する第1遅延回路と、
前記第1遅延回路の入力クロックと同一のクロックの位相をkT/2遅延させて出力する第2遅延回路と、
前記第1遅延回路の入力クロックと出力クロックとの排他的論理和、又は、否定排他的論理和を出力する論理部と、
前記第2遅延回路の入力クロックと出力クロックに基づき、前記入力クロックと前記出力クロックの位相のずれを検出するデジタル位相検出部と、
前記論理部の出力に応じて、前記デジタル位相検出部の出力を積分する積分部と
をさらに含み、前記第1遅延部は、前記積分部の出力に基づき、前記他方のクロックに与える遅延量を補正する、付記1記載のデューティ補正回路。
(付記5)
前記デジタル位相検出部は、
第2遅延回路の入力クロックの信号レベルを前記出力クロックの立ち上がり又は立ち下がりのタイミングでカウントする第1カウンタと、
第2遅延回路の入力クロックの信号レベルを前記出力クロックの立ち下がり又は立ち上がりのタイミングでカウントする第2カウンタと、
前記第1カウンタの第1カウント値と、前記第2カウンタの第2カウント値とを比較する比較部とを有し、
前記積分部は、前記論理部の出力に応じて、前記比較部の出力を積分する、付記4記載のデューティ補正回路。
(付記6)
周期Tの差動クロックの一方のクロック及び他方のクロックがそれぞれ入力される第1入力端子及び第2入力端子と、
前記第2入力端子に接続され、前記他方のクロックの位相をkT/2(kは任意の奇数)遅延させて出力する第1遅延部と、
前記第1入力端子から入力される前記一方のクロックと、前記第1遅延部によって位相がkT/2遅延された前記他方のクロックとを加算したクロックを出力する第1補間部と
を有する、デューティ補正回路と、
前記デューティ補正回路によってデューティ比が補正されたクロックを用いて所定の演算処理を行う演算処理部と
を含む、情報処理装置。