以下、本発明の幾つかの実施形態について図面を参照しながら説明する。各実施形態間で同一又は類似の構成については同一又は類似の符号を付し、要部の説明のみ行い同一部分の説明を必要に応じて省略する。各実施形態のクロックデータリカバリ回路は、例えばマスタおよびスレーブ間の通信処理において、スレーブ側でデータ信号を受信したときに、データ信号のサンプリングタイミングを規定するためのクロック信号を再生するために用いられる。
(第1実施形態)
図1〜図7は、第1実施形態を示す。図1に示すように、クロックデータリカバリ(Clock Data Recovery:以下、CDRと略す)回路1は、例えばスレーブ側に構成されるもので、偶数相リング発振器2と、エッジ検出部3と、タイミング制御部としてのリセット信号生成回路4と、ORゲート5と、保持部としてのラッチ回路100と、を備える。このCDR回路1は、ディジタル入力端子(以下、入力端子と略す)1aにマスタの送信部200からデータ信号を入力する。
エッジ検出部3は、例えばEXORゲート3a及び遅延回路(第3遅延回路相当)3bを用いて図示形態に接続して構成されている。このエッジ検出部3は、マスタの送信部200から入力端子1aに入力されたデータ入力信号DINの値が変化したときのエッジを検出し、通常「L」でありエッジ検出時に一瞬「H」となるエッジ検出信号EDETをリセット信号生成回路4に出力する。リセット信号生成回路4は、エッジ検出信号EDETの発生タイミングに応じて偶数相リング発振器2のクロック出力の位相をリセットするための構成となっている。偶数相リング発振器を構成するNORゲートX1〜X4の入力信号が変化しクロック信号を出力するまでの遅延時間は、制御信号(バイアス信号相当)Tbiasによって可変できる。リセット信号生成回路4は、データのサンプリングクロックを出力するNORゲートX2、X4のうち、エッジ検出信号EDETから1T(1基本時間)以内の位相となるタイミングにおいてクロック出力するNORゲートX2又はX4の遅延時間計測開始タイミングをエッジ検出信号EDETの発生タイミングに同期させる動作を行う回路であり、詳細動作は後述する。
他方、周波数制御部6は、例えばPLL回路7と、基準周波数信号源8と、を備える。これらのCDR回路1及び周波数制御部6は例えばIC(Integrated Circuit:図示せず)化されて構成される。基準周波数信号源8は、例えば部品点数の削減のため、IC内に含まれる安価な発振器(例えばCR発振器:図示せず)を用いて構成される。
この基準周波数信号源8は、構成素子の誤差分に応じた周波数誤差を含むもので、例えば±5%の周波数誤差を含む。PLL回路7は、偶数相リング発振器2のレプリカとして、偶数相リング発振器2と同一構成の偶数相リング発振器9cと、その周波数を制御する制御信号Tbiasを出力する制御回路9bと、偶数相リング発振器9cの出力を分周する分周器9dと、この分周信号と基準周波数信号との位相を比較する位相比較器9aから構成される。本PLL回路7は、基準周波数信号源8に対し分周後の偶数相リング発振器9cの出力をフェーズロック処理(発振位相を同期制御)する。
発振位相が定常的に同期されるとは、つまり、発振器11の出力周波数が基準周波数信号源8の基準周波数信号の分周比倍に正確に制御されることを意味する。偶数相リング発振器2の制御信号Tbiasには、偶数相リング発振器9cに接続されている制御回路9bの出力と同じものが接続される。これにより、偶数相リング発振器9cと2の出力の周波数は同一となり、遅延時間(0.5T)を基準周波数信号によって正確に制御できる。
一般に遅延回路の遅延時間を直接に計測することは困難であるが、本形態では遅延時間で定まる発振周波数を計測し制御することで遅延時間を制御している。PLL回路7を用いた周波数制御部6は遅延時間(0.5T)制御の一例であり、偶数相リング発振器2の出力を直接計測して動的に調整する構成としてもよいし、最初にトリミング処理を行うことで調整し固定してもよい。
偶数相リング発振器2は、偶数個(2n個)のNORゲートX1〜X4を用いて構成され、周波数制御部6により周波数制御された状態でクロック出力する。本実施形態では、偶数相リング発振器2が4段構成(n=2)であるものとして説明を行う。これらのNORゲートX1〜X4は、偶数段目のNORゲートX2、X4が第2遅延回路として4入力1出力のゲート回路により構成され、奇数段目のNORゲートX1、X3が第1遅延回路として2入力1出力のゲート回路により構成される。NORゲートX1〜X4は同一構成として、奇数段目のNORゲートX1、X3は4入力のうち不要な2入力を「L」=0Vに固定した構成としている。(後述の図2参照)。
偶数相リング発振器2は、奇数段目及び偶数段目のNORゲートX1〜X4を交互に複数対縦続接続すると共に当該NORゲートX1〜X4による遅延ゲートをリング状にフィードバック接続して構成される。偶数相リング発振器2を構成するNORゲートX1〜X4は、最出力側を1段目、出力側から2番目を2段目、出力側から3番目を3段目、最入力側を4段目として説明する。1〜4段目のNORゲートX1〜X4からリセット信号生成回路4への各出力をそれぞれ出力信号PH1〜PH4(偶数多相クロック信号相当)とする。
1段目のNORゲートX1の出力は、出力信号PH1としてリセット信号生成回路4に入力されると共に4段目のNORゲートX4の入力信号として与えられる。この1段目のNORゲートX1の入力には、2段目のNORゲートX2の出力が与えられると共に3段目のNORゲートX3の出力が与えられる。
2段目のNORゲートX2の入力には、3段目のNORゲートX3の出力が与えられると共に、4段目のNORゲートX4の出力が与えられ、しかも、NORゲートX2の入力には、リセット信号生成回路4によるリセット信号RS11、RS22も与えられている。この2段目のNORゲートX2の出力は、出力信号PH2としてリセット信号生成回路4に出力されると共にORゲート5に与えられている。
3段目のNORゲートX3の入力には、4段目のNORゲートX4の出力が与えられると共に1段目のNORゲートX1の出力が与えられている。この3段目のNORゲートX3の出力は、出力信号PH3としてリセット信号生成回路4に出力されている。
4段目のNORゲートX4の入力には、1段目のNORゲートX1の出力が与えられると共に、2段目のNORゲートX2の出力が与えられ、しかも、リセット信号生成回路4によるリセット信号RS12、RS21も与えられている。この4段目のNORゲートX4の出力は、出力信号PH4としてリセット信号生成回路4に出力されると共にORゲート5に与えられている。2段目のNORゲートX2と4段目のNORゲートX4は、上記リセット信号(RS11、RS12、RS21、RS22)によって、入力信号が変化してからクロック信号を出力するまでの遅延時間の計測開始タイミングをリセット制御する機能を備えている。ORゲート5は、2段目及び4段目のNORゲートX2、X4の出力を入力し、この入力データを論理和し、クロック信号RCLKとして保持部としてのラッチ回路100に出力する。このラッチ回路100は、例えばDフリップフロップにより構成され、クロック信号RCLKのアップエッジ(「L」から「H」への変化)タイミングにおけるデータ入力信号DINの値を保持し、出力DOUTとして出力されることになる。この結果、ラッチ回路100は、ORゲート5の出力についてデータ入力信号DINをサンプリングするクロックとして用いてデータを保持している。
次にNORゲート(X1、X2、X3、X4)の構成例を図2に示す。この図2に示すように、NORゲートは、ディレイ回路12aとコンパレータ回路12bとを備える。ディレイ回路12aは、電源電圧Vccが供給される電源電圧供給端子13に接続され、制御信号Tbiasにより電流量を調整制御可能な電流源15と、この電流源15の電流供給端子ノードN1とグランドとの間に並列接続された4個のNチャネル型のMOSトランジスタ16〜19と、を備える。各Nチャネル型のMOSトランジスタ16〜19は、入力端子IN1〜IN4の入力信号が「H」になるとコンパレータ回路12bの入力ノードの電圧をグランドレベル(「L」)となる電圧に設定する。
コンパレータ回路12bは、電流源15の電流供給端子ノードN1の電圧を一定の閾値と比較してデジタルレベルに変換出力するもので、例えば2個のインバータ20を縦続接続して構成されている。この場合、閾値はインバータ20の論理閾値(一般に電源電圧の半分)となる。MOSトランジスタ16〜19はオフ時のドレインソース間容量、ドレインゲート間容量を備えると共にインバータ20は入力寄生容量を備えており、これらの容量に充電する際の時定数に応じて所定の遅延時間(0.5T)の立上り遅れを実現する。
また、各MOSトランジスタ16〜19は、各入力端子IN1〜IN4に「H」が与えられてオンした時のオン抵抗が低く設定されており、これによりMOSトランジスタ16〜19の何れかがオンした時の放電時の時定数が、前記容量充電時の時定数よりも低く(例えばほぼ0秒)設定されている。これにより、NORゲート(X1、X2、X3、X4)は、入力信号が変化し「L」から「H」へ立ち上がるクロック信号を出力する場合は所定の遅延時間(0.5T)を有し、出力を「L」から「H」へ立ち上げる次のタイミングまでに「H」となった出力を再度「L」に設定(この遅延時間は例えばほぼ0秒)する機能を有したゲートとして構成されている。図2に示す4入力のNORゲートを、2入力のNORゲートX1、X3として用いるときには、使用しない入力端子を「L」=0Vに予め固定しておけば良い。
図3はリセット信号生成回路4の構成例を示している。リセット信号生成回路4は、エッジ検出部3のエッジ検出信号EDETをそれぞれ入力する複数個(4個)のANDゲート21〜24を備える。これらのANDゲート21〜24は、1〜4段目のNORゲートX1〜X4の出力信号PH1〜PH4をそれぞれ入力し、これらの論理積演算結果をそれぞれ出力する。
特に、ANDゲート21は、1段目のNORゲートX1の出力信号PH1とエッジ検出信号EDETの論理積演算結果をリセット信号RS11として出力する。ANDゲート22は、2段目のNORゲートX2の出力信号PH2とエッジ検出信号EDETの論理積演算結果をリセット信号RS22として出力する。ANDゲート23は、3段目のNORゲートX3の出力信号PH3とエッジ検出信号EDETの論理積演算結果をリセット信号RS21として出力する。ANDゲート24は、4段目のNORゲートX4の出力信号PH4とエッジ検出信号EDETの論理積演算結果をリセット信号RS12として出力する。
前記した構成の作用について図4〜図87をも参照しながら説明する。まず図4を参照して、各NORゲートX1〜X4の入出力動作を説明する。各NORゲートX1〜X4の動作はほぼ同一なため、代表してNORゲートX2の動作説明を行う。
NORゲートX2は、全ての入力端子IN1〜IN4が「H」→「L」となった時点から、電流源15が所定速度でノードN1の容量に電流を充電させることで徐々に入力ノードN1の電圧を上昇し、このノードN1の電圧が所定の閾値電圧(インバータ20の論理閾値)に達したタイミングで「H」出力する(図4のタイミングt2)。この充電時間から定まる遅延時間(0.5T)は、電流源15の電流値を定める制御信号Tbiasによって制御できる。また、NORゲートX2は、入力端子IN1〜IN4のうち何れかの入力端子が「L」→「H」になると、このノードN1の容量の充電電圧が放電されしきい値電圧を下回ったタイミングで急速に(ほぼ0秒で)「L」を出力する(図4のタイミングt3)。このように、NORゲートX2は、立上り時と立下り時の時定数が互いに異なり、立上り時の時定数を制御信号Tbiasで制御できる特性を有する。
NORゲートX4はNORゲートX2と同じ動作を行うものであり、NORゲートX1、X3は、NORゲートX2、X4とは2入力であるか4入力であるかの違いがあるものの未使用の入力を「L」としてMOSスイッチをOFFで固定しているため、これらのNORゲートX1〜X4は同様の動作となる。これらのNORゲートX1〜X4は、制御信号Tbiasにより調整可能な電流源15と、電流源15による充電を切換可能なMOSトランジスタ(スイッチ相当)16〜19とにより構成されている。このため、制御信号Tbiasにより電流源15の定電流量を調整することで電圧の立上り時間を容易に調整できる。
次に、図5を参照して、リング発振の基本的動作を説明する。ここで、リセット信号生成回路4のリセット信号RS11、RS12、RS21,RS22の初期値を全て「L」と仮定する。クロック発振動作の定常状態を考慮した場合、各NORゲートX1〜X4の出力信号PH1〜PH4は順次「H」に入れ替わり変化する。例えば、NORゲートX1の出力信号PH1が「H」になったタイミングを考慮する。
このとき、NORゲートX1の出力信号PH1が「H」に変化したタイミングでNORゲートX3とX4に「H」が入力されるため出力信号PH3とPH4の「L」が確定し、NORゲートX2の入力が全て「L」に確定する(図5のt11)。NORゲートX2はこのタイミングt11から図4に示す充電動作を開始する。そして、所定の遅延時間(0.5T)の経過後にNORゲートX2の出力信号PH2が「L」から「H」に変化する。NORゲートX2の出力信号PH2が「H」に変化したタイミングにおいてNORゲートX1の入力に「H」が入力されるため、NORゲートX1の出力信号PH1は瞬時に「L」に再設定される(図5のt12)。
他方、NORゲートX2の出力信号PH2が「H」になるタイミングt12では、NORゲートX1とX4に「H」が入力されるため出力信号PH1とPH4の「L」が確定し、NORゲートX3の入力が全て「L」に確定する。NORゲートX3はこのタイミングt12から図4に示す充電動作を開始する。すると、このタイミングt12から所定の遅延時間(0.5T)の経過後にNORゲートX3の出力信号PH3が「L」から「H」に変化する。NORゲートX2の入力に「H」が入力されるため、NORゲートX2の出力信号PH2は瞬時に「L」に再設定される(図5のt13)。
NORゲートX3の出力信号PH3が「H」に変化したタイミングでは、NORゲートX1とX2に「H」が入力されるため出力信号PH1とPH2の「L」が確定し、NORゲートX4の入力が全て「L」に確定する。NORゲートX4はこのタイミングt13から図4に示す充電動作を開始する。そして、所定の遅延時間(0.5T)の遅延後にNORゲートX4の出力信号PH4が「L」から「H」に変化する。NORゲートX2の入力に「H」が入力されるため、NORゲートX3の出力信号PH3は瞬時に「L」に再設定される(図5のt14)。
NORゲートX4の出力信号PH4が「H」に変化したタイミングでは、NORゲートX2とX3の入力に「H」が入力されるため出力信号PH2とPH3の「L」が確定し、NORゲートX1の入力が全て「L」に確定する。NORゲートX1はこのタイミングt14から図4に示す充電動作を開始する。そして、所定の遅延時間(0.5T)の経過後にNORゲートX1の出力信号PH1が「L」から「H」に変化する。NORゲートX4の入力に「H」が入力されるため、NORゲートX4の出力信号PH4は瞬時に「L」に再設定される(図5のt15)。このような動作が出力信号PH1〜PH4で繰り返し生じる。このため、「L」から「H」へ変化するクロック信号が所定の遅延時間(0.5T)で遅延しながら各遅延回路X1〜X4を伝播し、かつ、「H」となった後、再度、「L」に設定される4相のクロック信号を得ることができる。これは、偶数相リング発振器2が、クロック信号が各遅延回路を所定の遅延時間で伝播するフィードバックループと、各遅延回路がクロック信号を出力後、その出力をクロック出力前の状態に再設定するフードバックループを有しているためである。偶数相リング発振器2はこの4相リング発振器のうちの偶数相(2相)の出力クロック信号のみをORゲート5に出力する。
偶数相リング発振器2を構成する遅延NORゲートX1〜X4の遅延時間(0.5T)は制御信号Tbiasによって調整できる。偶数相リング発振器2の発振周波数fはf=1/(0.5T×4)で定まるため、制御信号Tbiasを調整し、周波数fを正確に制御することで遅延時間(0.5T)も正確に制御できる。周波数制御部6は、例えば、偶数相リング発振器2と同一の発振周波数で発振するレプリカの偶数相リング発振器11の発振を、基準周波数信号に対しフェーズロックすることで周波数を正確に制御する。ただし、基準周波数にも誤差が存在するため、偶数相リング発振器2の発振周波数f及び遅延時間(0.5T)には、その誤差が残る。PLL回路7の詳細な動作は一般的なもの(非特許文献1)であり、説明を省略する。
偶数相リング発振器2の基本的動作の説明は以上となる。次に、エッジ検出信号EDETに応じたリセット信号生成回路4によるリセット制御動作の詳細について説明する。エッジ検出信号EDETは、データ入力信号DINが変化したタイミングで短パルス状に生じる信号である。このエッジ検出信号EDETが発生したタイミング付近とエッジから1データ時間後の付近とではデータ値が変化し、この2つのタイミング付近においてデータ入力信号DINの電圧レベルは不安定である。よって、このエッジ検出信号EDETを生じたタイミングから1データ時間の中心となるエッジの発生から所定の遅延時間(0.5T)遅れたタイミングでデータ入力信号DINを保持することが望ましい。
しかし、比較対象例Xとして後述するように、クロックを出力した直後の遅延ゲート回路に再度クロックを発生させる制御を行うと回路の誤動作につながり、正常なサンプリングクロックを生じさせることが困難となることがある。そこで、本実施形態では、エッジ検出信号EDETのエッジ発生タイミングから1基本時間T以内にクロック信号が出現する出力信号PH2又はPH4の何れか一方のクロック発生タイミングを選択的に調整することで、極力良いタイミングで出力信号PH2又はPH4のサンプリングクロックを発生させるようにしている。
図6(a)及び図6(b)には、例えばエッジ検出信号EDETに対し偶数相リング発振器2の発振位相が進んでいる場合の信号変化を概略的に示している。図6(a)に示すように、偶数相リング発振器2が順次クロック信号を出力信号PH1〜PH4として出力していることを想定する(図6(a)のt31)。このとき、データ入力信号DINのレベルが「L」→「H」又は「H」→「L」に切換わり、エッジ検出信号EDETを生じたものと仮定する(図6(a)のt32)。
図6(a)に示す例では、出力信号PH2とPH4のうちエッジ検出信号EDETの発生後の1基本時間T内において出力信号PH2が「L」から「H」に切換わる(図6(a)中のA参照)。この場合、この切換タイミングから出力信号PH2が0.5T未満の時間で変化している。すると、データ入力信号DINが変化直後にサンプリングされてしまうことになるため、データ入力信号DINを正確にサンプリングできない虞がある。このため、データ入力信号DINのサンプリングタイミングをエッジ検出信号EDETの発生タイミングから所定の遅延時間(0.5T)遅らせることが望ましい(図6(a)のPH2のA部分参照)。
本実施形態のリセット信号生成回路4は、ANDゲート21〜24がエッジ検出信号EDETと出力信号PH1〜PH4の論理和演算結果を出力している。このため、図6(b)に示すように、リセット信号生成回路4は、エッジ検出信号EDETと出力信号PH1の論理和となるリセット信号RS11に一瞬「H」となる信号を出力する。
リセット信号RS11が入力されるNORゲートX2は、出力信号PH1が「L」から「H」に変化したタイミングt33においてノードN1の充電が開始される(前述説明参照)ものの、このタイミングt33から所定の遅延時間(0.5T)以内にエッジ検出信号EDETを生じると、NORゲートX2内のMOSトランジスタ(16〜19の何れか)が一瞬スイッチオンとなり、NORゲートX2の入力容量の充電電圧が再度放電リセットされることになる(図6(b)のタイミングt32参照)。これにより、クロック出力(NORゲートX2出力の「L」から「H」へのアップエッジ変化)までの遅延時間計測開始タイミングをエッジ検出信号EDETに同期させている。
再度放電リセットされたタイミングt32から所定の遅延時間(0.5T)経過後に、NORゲートX2のノードN1の容量の充電電圧がしきい値に達することになるため、NORゲートX2の出力信号PH2が「H」に変化する。この出力信号PH2はORゲート5を通過してクロック信号RCLKとしてラッチ回路100のクロック端子に入力される。このため、ラッチ回路100は、このタイミングでデータ入力信号DINを保持する。これにより、エッジ検出信号EDETの発生タイミングから所定の遅延時間(0.5T)の経過タイミングでデータ入力信号DINを保持することができ、正確なデータを保持できるようになる。また、エッジ検出信号EDETが発生した瞬間(図6(b)のタイミングt32参照)において、出力信号PH2、PH3、PH4は「L」のため、ANDゲート22、23、24の出力は「L」のままである。よって、NORゲートX1、X3、X4のクロック出力までの遅延時間計測開始タイミングがリセットされることはない。その後、エッジ検出信号EDETの発生が無ければ、前述したように、出力信号PH2が「H」に変化したことにより、出力信号PH3、PH4が所定の遅延時間(0.5T)で順次「H」に変化して発振は継続する。
図7(a)及び図7(b)には、例えばエッジ検出信号EDETに対し偶数相リング発振器2の発振位相が遅れている場合の信号変化を概略的に示している。図7(a)に示すように、偶数相リング発振器2が順次クロック信号をPH1〜PH4として出力していることを想定する(図7(a)のt41参照)。このとき、データ入力信号DINのレベルが「L」→「H」又は「H」→「L」に切換わり、エッジ検出信号EDETを生じたものと仮定する(図7(a)のt42)。
図7(a)に示す例では、エッジ検出信号EDETの発生後の1基本時間T内において、出力信号PH2が「L」から「H」に切換わっている(図7(a)のA2部分参照)。この場合、このエッジ検出信号EDETの発生タイミングt42から出力信号PH2が0.5Tを超える時間で変化してしまっている。すると、データ入力信号DINのレベルが変化したタイミングから0.5Tを超える時間を経過した後にサンプリングされてしまうことになるため、データ入力信号DINが次のデータに変化を始め、正確にサンプリングできない虞がある。このため、データ入力信号DINのサンプリングタイミングをエッジ検出信号EDETの発生タイミングから0.5Tだけ遅らせる、すなわち、想定されるタイミングよりも速く出力信号PH2を「H」にすることが望ましい(図7(a)のPH2のA2部分参照)。
本実施形態のリセット信号生成回路4は、ANDゲート21〜24がエッジ検出信号EDETと出力信号PH1〜PH4の論理和演算結果を出力している。このため、図6(b)に示すように、リセット信号生成回路4は、エッジ検出信号EDETと出力信号PH4の論理和となるリセット信号RS12に一瞬「H」となる信号を出力する。
リセット信号RS12が入力されるNORゲートX4は、その入力端子にリセット信号RS12が「H」として与えられるため、その出力を「L」とする(図7(a)のt42)。また、リセット信号RS12が「L」に戻った後もNORゲートX4のノードN1は放電されているため、一定期間(0.5T)出力は「L」のままである。この瞬間の出力信号PH1、PH2、PH3は「L」のため、NORゲートX2の入力が全て「L」で確定し、NORゲートX2はこのタイミングt42から図4に示す充電動作を開始する。このようにして、クロック出力(NORゲートX2の出力の「L」から「H」へのアップエッジ変化)までの遅延時間計測開始タイミングをエッジ信号に同期させている。そして、0.5Tの遅延後にNORゲートX2の出力信号PH2が「L」から「H」に変化する。この場合、想定されるタイミングよりも速く出力信号PH2を「H」にすることができる。また、エッジ検出信号EDETが発生した瞬間(図7(b)のタイミングt42参照)において、出力信号PH1、PH2、PH3は「L」のため、ANDゲート21、22、23の出力は「L」のままである。よって、NORゲートX1、X3、X4のクロック出力までの遅延時間計測開始タイミングがリセットされることはない。その後、エッジ検出信号EDETの発生が無ければ、前述したように、出力信号PH2が「H」に変化したことにより、出力信号PH3、PH4が所定の遅延時間(0.5T)で順次「H」に変化して発振は継続する。
この出力信号PH2はORゲート5を通過してラッチ回路100のクロック端子に入力されるため、ラッチ回路100は、このタイミングt43においてデータ入力信号DINを保持する。これにより、エッジ検出信号EDETの発生タイミングt42から所定の遅延時間(0.5T)の経過タイミングにおいてデータ入力信号DINを保持することができ、正常なデータを保持できるようになる。
以上、説明したように本実施形態によれば、リセット信号生成回路4はエッジ検出信号EDETの発生タイミングから1基本時間T以内にクロックが出力されるNORゲートX2又はX4を1つ選択しリセットするリセット信号RS11、RS12、RS21、RS22を出力することで、NORゲートX2又はX4の遅延時間計測開始タイミングをエッジ検出信号EDETの発生タイミングt32、t42に同期している。すると、当該エッジの発生タイミングから所定の遅延時間(0.5T)経過後のタイミングにクロック出力信号PH2、PH4を調整制御できるので、データ入力信号DINが変化すれば、エッジを検出しデータ入力信号DINを正常に保持できる。
データの送信側と受信側の基準周波数信号源の周波数誤差がある場合、データが連続する区間において、保持部100へのクロックが1データ時間の中心からずれ始め、そのずれが蓄積される。その後、データ変化のエッジを検出した場合、リセット信号生成回路4はエッジ検出のタイミングから、クロック信号を出力するNORゲートX2、X4のうち1基本時間T以内にクロックを出力する、つまり、前回のクロック出力が1基本時間Tより以前であるゲートを選択し、クロック出力までの遅延時間計測開始タイミングを同期させる。これにより、全てのNORゲートX1〜X4のクロック出力が、1基本時間T以内で連続しないため、NORゲートX1〜X4の急峻な回路動作を防ぎ、回路の誤動作を防止できる。回路誤動作の詳細な具体例は比較対象Xとして後述する。
また、エッジ検出部3は、EXORゲート3aと遅延回路3bを用いてデータ信号を入力してデータ入力信号DINが変化することに応じて一瞬「H」となるエッジ信号を出力し、リセット信号生成回路4は、エッジ信号についてANDゲート(論理ゲート)21〜24を通してリセット信号RS11、RS12、RS21を出力するのみであるため、最も単純な回路により構成可能にしつつ、エッジ信号がリセット信号として伝播する伝搬遅延を最小にできる。また、エッジ検出部3、リセット信号生成回路4の各ゲートの遅延によるタイミング信号のずれは、ダミーゲートを用いて調整すれば良い(図示せず)。
(第2実施形態)
図8〜図12は第2実施形態を示す。第1実施形態では正論理で動作する場合の例を示したが、第2実施形態では負論理で動作する場合の例を示す。
図8には図1に対応した構成例を示す。この図8に示す構成が図1と異なるところは、偶数相リング発振器2の構成であり、NORゲートX1〜X4に替えてNANDゲートX11〜X14を設けて偶数相リング発振器32を構成したところである。また、図8に示す構成において、図1に記載した保持部100は、ダウンエッジ(「H」から「L」への変化)で入力をサンプリングするラッチ回路100に変更されている。ここで、偶数相リング発振器32内の各NANDゲートX11〜X14間の結線関係は、偶数相リング発振器2内の各NORゲートX1〜X4間の結線関係と同様である。そこで、NANDゲートX11〜X14の構成説明を行い、その他の構成説明を省略する。
NANDゲートX11〜X14の構成例を図9に示す。この図9に示すように、NANDゲートX11〜X14は、ディレイ回路40aとコンパレータ回路40bとを備える。
ディレイ回路40aは、入力ノードN2とグランドとの間に接続され、制御信号Tbiasにより電流量を調整制御可能な電流源35と、電源電圧Vccが与えられる電源電圧供給端子13と電流源35の電流源端子ノードN2との間に並列接続された4個のPチャネル型のMOSトランジスタ(スイッチ相当)36〜39と、を備える。
また、コンパレータ回路40bは電流源35とスイッチ36〜39の共通接続ノードN2の電圧を一定の閾値と比較してデジタルレベルに変換出力するもので、例えば2個のインバータ30を縦続接続して構成されている。この場合、閾値はインバータ30の論理閾値(一般に電源電圧の半分)となる。MOSトランジスタ36〜39はそのオフ時にソースドレイン間容量、ドレインゲート間容量を備えると共に、インバータ30が入力寄生容量を備えており、これらの容量成分に蓄積された電圧から電流源25により電流を引いて放電する際の時定数に応じて所定の遅延時間(0.5T)の立下り遅れを実現する。
また、各MOSトランジスタ36〜39は、各入力端子IN11〜IN14に「L」が与えられてオンした時のオン抵抗が低く設定されており、これによりMOSトランジスタ36〜39の何れかがオンしたときの充電時の時定数が、前記容量放電時の時定数よりも低く(例えばほぼ0T)設定されている。これにより、NANDゲート(X11、X12、X13、X14)は、入力信号が変化し「H」から「L」へ立ち下がるクロック信号を出力する場合は所定の遅延時間(0.5T)を有し、出力を「H」から「L」へ立ち下げる次のタイミングまでに「L」となった出力を再度「H」に設定(この遅延時間は例えばほぼ0秒)する機能を有したゲートとして構成されている。図9に示す4入力のNANDゲートを、2入力のNANDゲートX11、X13として用いるときには、使用しない入力端子を「H」(例えば=5V)に予め固定すると良い。
図10はリセット信号生成回路4に代わるリセット信号生成回路34の構成例を示している。リセット信号生成回路34がリセット信号生成回路4と異なるところはANDゲート21〜24に代えてORゲート41〜44を用いており、エッジ検出部3の出力をNOTゲート45により反転してORゲート41〜44に入力させているところである。すなわち、リセット信号生成回路34は、エッジ検出部3からNOTゲート45を通じて「H」を通常入力し、エッジ検出部3がエッジを検出したタイミングにおいて一瞬「L」となる信号を、各ORゲート41〜44に入力させる。このとき、各NANDゲートX11〜X14の出力信号PH1〜PH4が「L」となっているときにリセット信号RS11、RS12、RS21、RS22は一瞬「L」として出力される。
図11にNANDゲートの作用説明を示す。各NANDゲートX11〜X14の動作はほぼ同一なため、代表してNANDゲートX12の動作説明を行う。NANDゲートX12は、全ての入力端子IN11〜IN14が「L」→「H」となった時点(図11のt51)からディレイ回路40aのノードN2の容量の蓄積電圧(Vcc)を電流源35により低下させる。電流源35は、ノードN2の容量の蓄積電圧から電流が放電されることで徐々に電圧を低下させ、このノードN2の入力電圧が所定の閾値電圧(インバータ30の論理閾値)に達したタイミングで「L」出力する(図11のt52)。この充電時間から定まる遅延時間(0.5T)は、電流源35の電流値を定める制御信号Tbiasによって制御できる。また、NANDゲートX12は、入力端子IN11〜IN14のうち何れかの入力端子が「H」→「L」になると、このノードN2の容量が充電されしきい値電圧を上回ったタイミングで急速に(ほぼ0秒で)「H」を出力する(図11のt53)。このように、NANDゲートX12は、立下り時と立上り時の時定数が互いに異なり、立下がり時の時定数を制御信号Tbiasで制御できる特性を有する。
NANDゲートX14はNANDゲートX12と同じ動作を行うものであり、NANDゲートX11、X13は、NANDゲートN12、X14とは2入力であるか4入力であるかの違いがあるものの、未使用の入力を「H」としてMOSスイッチをOFFで固定しているため、これらのNANDゲートX11〜X14は同様の動作を行う。これらのNANDゲートX11〜X14は、制御信号Tbiasにより調整可能な電流源35と、電流源35による放電を切換可能なMOSトランジスタ(スイッチ相当)36〜39とにより構成されている。このため、制御信号Tbiasにより電流源35の定電流量を調整することで電圧の立下がり時間を容易に調整できる。
次に、図12を参照してリング発振の基本的動作を説明する。ここで、リセット信号生成回路34のリセット信号RS11、RS12、RS21、RS22の初期値を全て「H」と仮定する。発振動作の定常状態を考慮した場合、各NANDゲートX11〜X14の出力信号PH11〜PH14は順次「L」に入れ替わり変化する。例えば、NANDゲートX11の出力信号PH1が「L」になったタイミングを考慮する。
このとき、NANDゲートX11の出力信号PH1が「L」に変化したタイミングでNANDゲートX13とX14に「L」が入力されるため、出力信号PH3とPH4の「H」が確定し、NANDゲートX12の入力が全て「H」に確定する(図12のt61)。NANDゲートX12はこのタイミングt61から図11に示す放電動作を開始する。そして、所定の遅延時間(0.5T)の経過後にNANDゲートX12の出力信号PH2が「H」から「L」に変化する。NANDゲートX12の出力信号PH2が「L」に変化したタイミングにおいてNANDゲートX11の入力に「L」が入力されるため、NANDゲートX11の出力信号PH11は瞬時に「H」に再設定される(図12のt62)。
他方、NANDゲートX12の出力信号PH2が「L」になるタイミングt62では、NANDゲートX11とX14に「L」が入力されるため出力信号PH1とPH4の「H」が確定し、この変化タイミングでNANDゲートX13の入力が全て「H」に確定する。NANDゲートX13はこのタイミングt62から図11に示す放電動作を開始する。すると、このタイミングt62から所定の遅延時間(0.5T)の経過後にNANDゲートX13の出力信号PH3が「H」から「L」に変化する(図12のt63)。NANDゲートX12に「L」が入力されるため、NANDゲートX12の出力信号PH12が瞬時に「H」に再設定される(図12のt63)。
NANDゲートX13の出力信号PH3が「L」に変化したタイミングでは、NANDゲートX11とX12に「L」が入力されるため出力信号PH1とPH2の「H」が確定し、NANDゲートX14の入力が全て「H」に確定する(図12のt63)。NANDゲートX14はこのタイミングt63から図11に示す放電動作を開始する。そして、0.5Tの遅延後にNANDゲートX14の出力信号PH4が「H」から「L」に変化する。NANDゲートX13の入力に「L」が入力されるため、NANDゲートX13の出力信号PH13は瞬時に「H」に再設定される(図12のt64)。
NANDゲートX14の出力信号PH4が「L」に変化したタイミングでは、NANDゲートN12とX13の入力に「L」が入力されるため出力信号PH2とPH3の「H」が確定し、NANDゲートX11の入力が全て「H」に確定する。NANDゲートX11はこのタイミングt64から図11に示す放電動作を開始する。そして、所定の遅延時間(0.5T)の経過後にNANDゲートX11の出力信号PH11が「H」から「L」に変化する。NANDゲートN14の入力に「L」が入力されるため、NANDゲートX14の出力信号PH14は瞬時に「H」に再設定される(図12のt65)。このような動作が出力信号PH1〜PH4で繰り返し生じる。このため、「H」から「L」へ変化するクロック信号が所定の遅延時間(0.5T)で遅延しながら各遅延回路X11〜X14を伝播し、かつ、「L」となった後、再度、「H」に設定される4相のクロック信号を得ることができる。これは、偶数相リング発振器32が、所定の遅延時間で各遅延回路をクロック信号が伝播するフィードバックループと、各遅延回路がクロック信号を出力後、その出力をクロック出力前の状態に再設定するフィードバックループを有しているためである。
偶数相リング発振器32を構成する遅延NANDゲートX11〜X14の遅延時間(0.5T)は制御信号Tbiasによって調整できる。偶数相リング発振器32の発振周波数fはf=1/(0.5T×4)で定まるため、制御信号Tbiasを調整し、周波数fを正確に制御することで遅延時間(0.5T)も正確に制御できる。周波数制御部6(PLL回路7)の動作は前述実施形態の説明と同様であるため説明を省略する。偶数相リング発振器32の基本的動作の説明は以上となる。
また、リセット信号生成回路34は、第1実施形態と比較して、ANDをORとして負論理の「L」で遅延時間計測開始タイミングをリセットするリセット信号RS11、RS12、RS21、RS22を出力するようになっているため、前述の第1実施形態と同様に、極力良いタイミングで出力信号PH2又はPH4のサンプリングクロック(本実施形態ではダウンエッジ)を発生させることができる。
以上説明したように、本実施形態のように負論理であっても同様の作用効果を奏する。
(第3実施形態)
図13〜図15は第3実施形態を示す。この第3実施形態では、前述実施形態における偶数相リング発振器2、32をさらに一般的な形態で示す。図13に示すように、偶数相リング発振器52は、遅延回路X21〜X24が偶数個(4個)縦続接続すると共にリング状にフィードバック接続して構成されている。遅延回路X21〜X24は、入力信号が変化してから、「L」から「H」に変化するクロック信号を出力するまでの遅延時間を制御信号Tbiasにより調整する機能を有する。さらに、クロック信号を出力する次のタイミングまでに「H」となった出力を再度「L」に設定する機能を有する。2段目の遅延回路X21と4段目の遅延回路X24は、リセット信号(RS21、RS22)によって、入力信号が変化してからクロック信号を出力するまでの遅延時間の計測開始タイミングをリセット制御する機能を備えている。
各遅延回路X21〜X24は、それぞれ、前述実施形態に示したNORゲートX1〜X4、NANDゲートX11〜X14、または、他の遅延回路を用いて構成されているものであり、互いに同一構成のものを用いている。第1、第2実施形態に示すような遅延ゲートに限られず、例えば複数の遅延ゲートを組合せて構成しても良い。さらに、出力電圧が「H」となった後、再度「L」にリセットする機能は、第1及び第2実施形態のように遅延回路X21〜X24の出力を各遅延回路の入力にフィードバックすることで実現できる。本実施形態では、遅延回路X22の出力が「L」から「H」へ変化すると遅延回路X21の出力が「L」に設定され、遅延回路X23の出力が「L」から「H」へ変化すると遅延回路X22の出力が「L」に設定され、遅延回路X24の出力が「L」から「H」へ変化すると遅延回路X23の出力が「L」に設定され、遅延回路X21の出力が「L」から「H」へ変化すると遅延回路X24の出力が「L」に設定されるフィードバックが構成されているとして説明する。このフィードバックループは、第1及び第2実施形態で示したように遅延回路の構成毎に実現可能であり、かつ、以降で述べるCDR動作に影響しないため、図13には記載していない。各遅延回路X21〜X24の出力が「H」から「L」に設定されるタイミングは、出力が「L」から「H」に変化する次のタイミングまでで良く限定されない。また、第2実施形態のように、「H」から「L」となるクロック信号を用いて構成しても良い。これらの遅延回路X21〜X24は、それぞれ基準周波数信号源8を用いた周波数制御部6に接続された制御信号Tbiasにより所定の遅延時間(0.5T)だけ電圧の立上りが遅延制御されている。本実施例における周波数制御部6は、ローカルの基準周波数信号源8と偶数相リング発振器52の出力が接続される分周器55と、周波数計測部56と、バイアス信号を出力する制御回路57と、により構成される。リセット信号生成回路54は、エッジ検出信号EDETから偶数相リング発振器52の位相をリセットする機能を有するものであり、遅延回路X22、X24にのみ遅延時間計測開始タイミングをリセット制御可能な機能を付加して構成されている。そして、遅延回路X22およびX24は、その出力がORゲート5を通じてラッチ回路100のクロック入力端子に入力されており、遅延回路X22、X24の出力信号PH22、PH24の「L」から「H」への変化(アップエッジ)信号がデータ入力信号DINの2相のサンプリングクロックとして用いられている。
リセット信号生成回路54は、偶数相リング発振器52の自走発振状態において、次回のクロックを出力するタイミングが、エッジ検出信号EDETの発生タイミングから1基本時間T以内の位相関係にある遅延回路X22又はX24のいずれか一方の遅延時間計測開始タイミングを、各相の出力信号PH21〜PH24に基づいて選択的にリセットする。すると、出力信号PH22、PH24のそれぞれの立上りタイミング間の間隔に1基本時間T以上を確保できるようになる。
本実施形態に示す周波数制御部6内の構成について説明する。データ入力信号DINからデータ受信する必要のない時間(例えば、システム起動時など)において、分周器55は偶数相リング発振器52の出力信号を分周し、周波数計測部56が基準周波数信号源8の基準周波数信号を用いて偶数相リング発振器52の発振周波数を計測する。制御回路57は周波数が所定となるように制御信号Tbiasを調整し、偶数相リング発振器52を構成する遅延回路X21〜X24の遅延時間を調整するフィードバックを行う。以上のように周波数制御部6は様々な構成を採用することが可能である。
本実施形態の作用について、図14〜図16を参照して説明する。送信部200の側の基準周波数源から定まるデータ入力信号DINの1データ時間と、周波数制御部6が制御する遅延回路X21〜X24の遅延時間(0.5T)から定まる1基本時間Tとの間にオフセットが生じていない場合を図14に示す。遅延回路X21〜X24が所定の遅延時間(0.5T)づつ遅延させながらクロック信号をフィードバックし4相発振信号を出力する。前記した、遅延回路の出力をクロック出力前の状態に再設定するフィードバックループの設定から、各出力信号PH1〜PH4の発振波形は0.5T区間だけ「H」となり、その他の区間(1.5T区間)は「L」となる。エッジ検出部3が、データ入力信号DINのエッジを検出すると、リセット信号生成回路54は、このデータ入力信号DINのエッジから1基本時間T以内に「L」から「H」へアップエッジ変化する出力信号PH22又はPH24を現在の発振出力信号PH21〜PH24の位相状態から判断する。
リセット信号生成回路54は、例えば出力信号PH22がその対象となる信号となる場合には、遅延時間計測開始タイミングをエッジ検出タイミングと同期させるためのリセット信号RS1を遅延回路X22に出力する(図14のt71、t73)。すると、遅延回路X22は、そのタイミングから所定の遅延時間(0.5T)遅れたタイミングで「L」から「H」となるクロック信号を出力する(図14のt71a、t73a)。
逆に、リセット信号生成回路54は、例えば出力信号PH4がその対象となる信号となる場合には、遅延時間計測開始タイミングをエッジ検出タイミングと同期させるためのリセット信号RS2を遅延回路X24に出力する(図14のt72、t74)。すると、遅延回路X24は、そのタイミングから所定の遅延時間(0.5T)遅れたタイミングで「L」から「H」となるクロック信号を出力する(図14のt72a、t74a)。このようにして、データ入力信号DINの変化に同期して遅延回路X22又はX24の遅延時間計測開始タイミングを選択的にリセットする。
送信側の基準周波数源から定まるデータ入力信号DINの1データ時間と、受信側の基準周波数源から定まるローカルの1基本時間Tとの間にオフセットがない場合には、図14のデータ入力信号DINの信号波形にサンプリングタイミングを丸印で示すように、データ入力信号DINに同一状態が3個連続する区間のような場合も含めて、データ入力信号DINの1データ時間の中心を正確にサンプリングできる。
次に、データ送信側の基準周波数信号源の周波数誤差が−5%、受信側の周波数誤差が+5%の場合、つまり、データ入力信号DINの1データ時間がローカルの1基本時間Tに対して−10%のオフセットを生じている例について図15を用いて説明する。前述と同様に、リセット信号生成回路54は、出力信号PH22がその対象となる信号となる場合には、遅延時間計測開始タイミングをエッジ検出タイミングと同期させるためのリセット信号RS1を遅延回路X22に出力する(図15のt81、t83)。すると、遅延回路X22は、そのタイミングから所定の遅延時間(0.5T)遅れたタイミングで「L」から「H」となるクロック信号を出力する(図15のt81a、t83a)。
また、リセット信号生成回路54は、出力信号PH4がその対象となる信号となる場合には、遅延時間計測開始タイミングをエッジ検出タイミングと同期させるためのリセット信号RS2を遅延回路X24に出力する(図15のt82、t84)。すると、遅延回路X24は、そのタイミングから所定の遅延時間(0.5T)だけ遅れたタイミングで「L」から「H」となるクロック信号を出力する(図15のt82a、t84a)。
データ入力信号DINの1データ時間がローカルの1基本時間Tに対して−10%のオフセットを生じている場合であっても、図15のデータ入力信号DINの信号波形にサンプリングタイミングを丸印で示すように位相補償処理が行われることにより正確なデータを保持できるようになる。上記の効果は、第1〜第2実施形態でも同様に得られる。
<比較対象例X(非特許文献1記載の技術)の説明>
例えば、Gated Oscillator-BasedCDR回路51の他の例としては、非特許文献1に記載された図17に示すようなCDR回路61もある。この図17において、図1に示す構成要素と同一構成要素には同一符号を付している。
この図4に示すように、CDR回路61は、データ入力信号DINを遅延させるディレイライン62と、データ入力信号DINとディレイライン62の出力信号とをXOR処理しゲートオシレータ64に入力させるXNORゲート63と、XNORゲート63の出力に応じて発振出力するゲートオシレータ64と、を備える。
このCDR回路61は、ディレイライン62の出力をラッチ回路100のデータ入力端子に出力すると共に、ゲートオシレータ64の出力をラッチ回路100のクロック入力端子CKに出力する。ただし、図1の実施例と異なり、本ラッチ回路はダウンエッジでデータをサンプリングする。
ゲートオシレータ64は、PLL回路7によりレプリカバイアスされる。ディレイライン62は、データ入力信号DINを遅延し遅延ディジタル入力信号DDINを生成する。ここでディレイライン62の遅延量は、ローカルの1基本時間Tの半分(0.5T)としている。オシレータ64の周波数fはf=1/TとなるようにPLL回路7によって制御されている。
XORゲート63が、データ入力信号DINと遅延ディジタル入力信号DDINの排他的論理和をノードN10に出力すると、ゲートオシレータ64がこの求められたノードN10の出力をゲート入力信号として使用する。ゲートオシレータ64は、XNORゲート63の出力が「L」のときに発振停止し「H」レベルのときに発振出力する。すると、ゲートオシレータ64はノードN10に変化が生じたタイミングで位相合わせ(リタイミング:retiming)が行われることになりクロック信号RCLKを生成できる。
例えば図18は、データ入力信号DINの1データ時間とローカルの1基本時間Tのオフセットが0%のときのクロック信号RCLKを示す。DINの変化によってXNORの出力N10は「H」から「L」へ変化し、0.5T経過後、「L」から「H」へ変化する。RCLKが「H」のとき、N10が「L」に変化すると、N11は「H」となり信号はゲートG11からG14を遅延しながら伝播し、0.5T経過後、RCLKは「H」となる。一方、RCLKが「H」のときN10が「H」に変化すると、N11は「L」となり信号はゲートG11からG14を遅延しながら伝播し、0.5T経過後、RCLKは「L」となる。DINの変化がなくN10が「H」で一定の場合、オシレータ64は自走発振し、RCLKを出力する。以上の動作から、DINの変化に同期した周波数f=1/TのRCLK信号を得る事ができる。ラッチ回路100は、RCLKのダウンエッジタイミングでDDINをサンプリングするため、正確なデータを保持できる。
図19は、オフセットが−10%生じているときのクロック信号RCLKを示す。このとき、CDR回路51は例えば連続ビットを受信したときに当該連続ビットの最終サンプリングエッジを生成することが困難となる問題を生じる。
すなわち、図19に示すように、DINの連続ビット区間2.7Tに対して、オシレータ64の自走発振周波数が低く、NANDゲートG11の出力ノードN11の立下りタイミングとXORゲート63の出力ノードN10の立下りタイミングとの間隔が例えば0.075T程度しか確保できない。このとき、ゲートオシレータ64の初段のNANDゲートG11の出力ノードN11では狭いパルスしか生じないため、このパルスはゲートオシレータ64内を伝播する間に消滅してしまう(図19内のC部分参照)。このとき、ラッチ回路100は正確なデータ保持ができなくなる。このため、図17に示す構成では、周波数オフセットの大きい基準周波数信号源(例えばIC内蔵発振器)8を用いた通信に利用することができない。
これに対し、第3実施形態の構成によれば、図15に示すように、偶数相リング発振器52の遅延回路X22、X24のうち、図19のような急峻な回路動作とならない遅延回路のクロック出力を選択的に同期させるため、偶数相リング発振器52の発振パルス間の間隔を最小でも1.2Tも確保できている。これにより、発振波形の消失による回路誤動作の虞をなくすことができる。
また、比較対象例となるディレイライン62は正確な0.5Tを生成することも困難となる。第3実施形態では、偶数相リング発振器52の遅延回路による遅延は、偶数相リング発振器52の発振周波数fを直接計測し所定の周波数になるよう制御するため、0.5Tの遅延を正確に制御できる。
(第4実施形態)
図16は第4実施形態を示す。第4実施形態ではラッチ回路を複数設けている形態を示す。第3実施形態において、例えば−10%の周波数オフセットを生じる場合、図15のD部分に示すような短パルスが、出力信号PH2及びPH4の論理和を取得しているために生じている。このような短時間に連続するクロックで動作するラッチ回路は高速動作が必要となる。本実施形態では、より図15のD部分に示すような短パルスを生じさせないため、ラッチ回路100a、100bを出力信号PH2、PH4にそれぞれ対応して設ける。すると、出力信号PH2、PH4に応じたラッチ回路100a、100bで個別にサンプリングすることができ、図15のD部分に示す短パルスを生じなくなり、ラッチ回路に必要な動作速度を緩和できる。
なお、特許請求の範囲に付した括弧付き符号は本願明細書の構成要素に対応する符号を付したものであり、構成要素の一例を挙げたものである。したがって、本願に係る発明は当該特許請求の範囲の構成要素の符号の内容に限られるわけではなく、特許請求の範囲内の用語又はその均等の範囲で様々な拡張が可能である。