(58)【調査した分野】(Int.Cl.,DB名)
前記周波数追従ループは、前記位相検出器での検出結果を積分する第1の積分器の出力又は入力に、前記周波数変調情報を加算又は減算する回路を備えた、請求項1記載の半導体装置。
前記入力データは、前記入力データの送信元で周波数が一定であり前記クロックアンドデータリカバリ回路で受信されたデータである、請求項1又は2記載の半導体装置。
前記スペクトラム拡散周波数変調波形の傾きの大きさと傾きの方向に関して、前記演算器は、前記第1の制御信号に対して、前記傾きの方向に応じて、前記スペクトラム拡散周波数変調波形の傾きの大きさを減算又は加算した値を、前記第2の制御信号とする、請求項7乃至9のいずれか1項に記載の半導体装置。
前記スペクトラム拡散周波数変調波形の傾きの大きさと傾きの方向に関して、前記演算器は、分数で表した前記スペクトラム拡散周波数変調波形の傾きの大きさに対して、前記分数の分母に対応するクロックサイクルの経過に対して、前記分数の分子に対応する回数分、+1を出力する回路と、
前記回路から出力された+1を、前記スペクトラム拡散周波数変調波形の傾きの方向に応じて、前記第1の制御信号に対して加算又は減算し前記第2の制御信号とする回路を備えた、請求項7乃至9のいずれか1項に記載の半導体装置。
前記クロック生成器は、スペクトル拡散周波数変調されたクロック信号を生成するためのコントローラを備えたPLL(Phase Locked Loop)を含む、請求項1記載の半導体装置。
前記クロックアンドデータリカバリ回路と、前記クロックアンドデータリカバリ回路で抽出されたシリアルデータを、前記抽出クロック信号を用いてパラレルデータに変換するシリアルパラレル変換回路と、を含む受信回路を1つ又は複数備え、
前記1つ又は複数の受信回路に対して、前記クロック生成器を1つ備えた、請求項1記載の半導体装置。
前記クロックアンドデータリカバリ回路と、前記クロックアンドデータリカバリ回路で抽出されたシリアルデータを前記抽出クロック信号を用いてパラレルデータに変換するシリアルパラレル変換回路と、を含む受信回路を1つ又は複数備え、
前記1つ又は複数の受信回路に対して、
1つの前記クロック生成器と、
1つの前記制御回路と、
を備えた、請求項9記載の半導体装置。
前記演算器は、分数で表した前記スペクトラム拡散周波数変調波形の傾きの大きさに対して、前記分数の分母に対応するクロックサイクルの経過に対して、前記分数の分子に対応する回数分、+1を出力する回路を備え、
前記回路から出力された+1を、前記傾きの方向に応じて、前記第1の制御信号に対して加算又は減算し前記第2の制御信号として出力する回路を備えた、請求項18記載の半導体装置。
前記クロックアンドデータリカバリ回路と、前記クロックアンドデータリカバリ回路で抽出されたシリアルデータを前記抽出クロック信号を用いてパラレルデータに変換するシリアルパラレル変換回路と、を含む受信回路を1つ又は複数備え、
前記1つ又は複数の受信回路に対して、
1つの前記クロック生成器と、
1つの前記制御回路と、
を備えた、請求項17記載の半導体装置。
【発明を実施するための形態】
【0027】
以下、実施形態について、図面を参照して詳細に説明する。
【0028】
第1の側面によれば、入力データと抽出クロック信号の間の位相の進み遅れを検出する位相検出器(
図32の51)と、前記位相検出器での検出結果を積分した結果に基づき、前記データの周波数と前記抽出クロック信号の周波数との間の周波数偏差が小さくなるように周波数の追従制御を行う周波数追従ループ(
図32の101)と、クロック生成器(130)からスペクトラム拡散周波数変調されたクロック信号を入力し、前記周波数追従ループで検出した前記周波数偏差に基づき、前記クロック信号の位相を調整した上で、前記抽出クロック信号として、前記位相検出器に供給する位相補間器(17)と、を備えている。前記周波数追従ループ(101)は、前記スペクトラム拡散周波数変調されたクロック信号(SSCクロック信号)に対応する周波数変調情報を前記クロック生成器から入力し、前記周波数変調情報に基づき、前記周波数偏差を補正し、前記クロック信号の周波数変調を相殺する構成とされる。前記周波数追従ループにおいて、前記位相検出器の検出結果の積分値に、前記周波数変調情報に対応する値のオフセット(周波数オフセット)を加えた値を、前記周波数追従ループで検出した前記周波数偏差とする。あるいは、前記周波数追従ループにおいて、前記位相検出器の検出結果に、前記周波数変調情報に対応する値のオフセットを加えた値の積分結果を、前記周波数追従ループで検出した前記周波数偏差とするようにしてもよい。
【0030】
第3の側面によれば、前記データは、クロック信号とは別に、データの送信元でスペクトラム拡散周波数変調され前記クロック
アンドデータリカバリ回路で受信されたデータである(
図1、
図32、
図33)。
【0031】
第4の側面によれば、前記データは、データの送信元で周波数が一定であり前記クロックアンドデータリカバリ回路で受信されたデータであってもよい(
図15)。
【0032】
第5の側面によれば、前記周波数追従ループ(
図1の101)は、
前記位相検出器(
図1の12)での位相検出結果である第1の制御信号(
図1のUP1/DOWN1)を積分し、第2の制御信号を出力する第1の積分器(
図1の13)と、
前記第2の制御信号(
図1のFDIF1)と、前記周波数変調情報(
図1のSSC_MOD)の符号を反転した信号を加算した結果を第3の制御信号(
図1のFDIF2)として出力する演算器(
図1の加算器18)と、
前記第3の制御信号(FDIF2)を入力し第4の制御信号(
図1のUPDOWN4)を出力するパターン発生器(
図1の15)と、を備えている。位相追従ループ(
図1の102)が、前記位相検出器(
図1の12)での位相検出結果である前記第1の制御信号(UP1/DOWN1)を積分し、第5の制御信号(
図1のUPDOWN2)を出力する第2の積分器(
図1の14)を備えている。前記周波数追従ループ(101)と前記位相追従ループ(102)の合流部に、前記パターン発生器(15)からの前記第4の制御信号(UPDOWN4)と、前記第2の積分器(14)からの前記第5の制御信号(UPDOWN2)とを混合して第6の制御信号(
図1のUPDOWN5)を出力する混合器(
図1の16)を備えている。前記位相補間器(
図1の17)は、前記混合器(
図1の16)からの前記第6の制御信号(UPDOWN5)に基づき、前記スペクトラム拡散周波数変調されたクロック信号の位相を補間する。
【0033】
第6の側面によれば、前記周波数追従ループ(
図19の101)は、前記位相検出器(
図19の12)での位相検出結果である第1の制御信号(
図19のUP1/DOWN1)を積分し、第2の制御信号を出力する第1の積分器(
図19の13)と、
前記第2の制御信号(
図19のFDIF1)と、前記周波数変調情報(
図19のSSC_MOD)の符号を反転した信号を加算した結果を第3の制御信号(
図19のFDIF2)として出力する演算器(
図19の18)と、
前記第3の制御信号(FDIF2)を入力し第4の制御信号(
図19のUPDOWN4)を出力するパターン発生器(
図19の15)と、を備えている。位相追従ループ(
図19の102)は、前記位相検出器(12)からの前記第1の制御信号(UP1/DOWN1)を伝達する。前記周波数追従ループ(101)と前記位相追従ループ(102)の合流部に、前記パターン発生器(15)からの前記第4の制御信号(UPDOWN4)と、前記位相検出器(12)からの前記第1の制御信号(UP1/DOWN1)とを混合して第5の制御信号(
図19のUPDOWN7)を出力する混合器(
図19の16)を備えている。さらに、前記第5の制御信号(UPDOWN7)を積分し第6の制御信号(
図19のUPDOWN5)を出力する第2の積分器(
図19の14)を備え、前記位相補間器(
図19の17)は、前記第2の積分器(14)からの前記第6の制御信号(UPDOWN5)に基づき、前記スペクトラム拡散周波数変調されたクロック信号の位相を補間する。
【0034】
第7の側面によれば、前記周波数追従ループ(
図16の101)は、前記位相検出器(
図16の12)での位相検出結果である第1の制御信号(
図16のUP1/DOWN1)に、前記周波数変調情報としてスペクトラム拡散周波数変調波形の傾き(
図16のSSC_DF)を加算又は減算し、演算結果を第2の制御信号(
図16のUPDOWN6)として出力する演算器(
図16の加算器19)と、
前記第2の制御信号(UPDOWN6)を積分し、第3の制御信号(
図16のFDIF3)を出力する第1の積分器(
図16の13)と、
前記第3の制御信号(FDIF3)を入力し第4の制御信号(
図16のUPDOWN4)を出力するパターン発生器(
図16の15)と、
を備えている。位相追従ループ(
図16の102)は、前記位相検出器(12)での位相検出結果である前記第1の制御信号(UP1/DOWN1)を積分し、第5の制御信号(
図16のUPDOWN2)を出力する第2の積分器(
図16の14)を備えている。前記周波数追従ループ(101)と前記位相追従ループ(102)の合流部に、前記パターン発生器(15)からの前記第4の制御信号(UPDOWN4)と、前記第2の積分器(14)からの前記第5の制御信号(UPDOWN2)とを混合して第6の制御信号(
図16のUPDOWN5)を出力する混合器(
図16の16)を備えている。前記位相補間器(
図16の17)は、前記混合器(
図16の16)からの前記第6の制御信号(UPDOWN5)に基づき、前記スペクトラム拡散周波数変調されたクロック信号の位相を補間する。
【0035】
第8の側面によれば、前記周波数追従ループ(
図21の101)は、前記位相検出器(
図21の12)での位相検出結果である第1の制御信号(
図21のUP1/DOWN1)に、前記周波数変調情報としてスペクトラム拡散周波数変調波形の傾き(
図21のSSC_DF)を加算又は減算し、演算結果を第2の制御信号(
図21のUPDOWN6)として出力する演算器(
図21の19)と、
前記第2の制御信号(UPDOWN6)を積分し、第3の制御信号(
図21のFDIF3)を出力する第1の積分器(
図21の13)と、前記第3の制御信号(FDIF3)を入力し第4の制御信号(
図21のUPDOWN4)を出力するパターン発生器(
図21の15)と、を備えている。位相追従ループ(
図21の102)は、前記位相検出器(
図21の12)からの前記第1の制御信号(UP1/DOWN1)を伝達する。前記周波数追従ループ(101)と前記位相追従ループ(102)の合流部に、前記パターン発生器(15)からの前記第4の制御信号(UPDOWN4)と、前記位相検出器(12)からの前記第1の制御信号(UP1/DOWN1)とを混合して第5の制御信号(
図21のUPDOWN7)を出力する混合器(
図21の16)を備えている。さらに、前記第5の制御信号(UPDOWN7)を積分し、第6の制御信号(
図21のUPDOWN5)を出力する第2の積分器(
図21の14)を備えている。前記位相補間器(
図21の17)は、前記第2の積分器(
図21の14)からの前記第6の制御信号(UPDOWN5)に基づき、前記スペクトラム拡散周波数変調されたクロック信号の位相を補間する。
【0036】
第9の側面によれば、前記周波数追従ループ(
図22の101)は、
前記位相検出器(
図22の12)での位相検出結果である第1の制御信号(
図22のUP1/DOWN1)に、前記周波数変調情報としてスペクトラム拡散周波数変調波形の傾き(
図22のSSC_DF)を加算又は減算し、演算結果を第2の制御信号(
図22のUPDOWN6)として出力する演算器(
図22の19)と、
前記第2の制御信号(UPDOWN6)を積分し、第3の制御信号(
図22のFDIF3)を出力する第1の積分器(
図22の13)と、
前記第3の制御信号(FDIF3)を入力し第4の制御信号(
図22のUPDOWN4)を出力するパターン発生器(
図22の15)と、
を備えている。位相追従ループ(
図22の102)は、前記位相検出器(12)からの前記第1の制御信号(UP1/DOWN1)を伝達する。前記周波数追従ループ(101)と前記位相追従ループ(102)の合流部に、前記パターン発生器(15)からの前記第4の制御信号(UPDOWN4)と、前記位相検出器(12)での位相検出結果である前記第1の制御信号(UP1/DOWN1)とを混合して第5の制御信号(
図22のUPDOWN7)を出力する混合器(
図22の16)と、前記第5の制御信号(UPDOWN7)を積分し、前記第6の制御信号(
図22のUPDOWN5)を出力する第2の積分器(
図22の14)を備えている。前記位相補間器(
図22の17)は、前記第2の積分器(
図22の14)からの前記第6の制御信号(UPDOWN5)に基づき、前記スペクトラム拡散周波数変調されたクロック信号の位相を補間する。前記スペクトラム拡散周波数変調波形の傾きの大きさ(SSC_DF)を、前記クロックアンドデータリカバリ回路に出力する制御回路(
図22の20)をさらに備えている。前記クロック生成器(
図22の30)は、前記スペクトラム拡散周波数変調波形の傾きの方向(SSC_DIR)を前記クロックアンドデータリカバリ回路の前記演算器(
図22の加算器19)に出力する。
【0037】
第10の側面によれば、前記スペクトラム拡散周波数変調波形の傾きの大きさ(SSC_DF)の絶対値は変調周期を通じて一定値としてもよい。
【0038】
第11の側面によれば、前記第7乃至第10の側面における、前記スペクトラム拡散周波数変調波形の傾きの大きさ(
図16、
図21、
図22のSSC_DF)と傾きの方向(
図16、
図21、
図22のSSC_DIR)に関して、前記演算器(
図16、
図21、
図22の19)は、前記傾きの方向(SSC_DIR)に応じて、前記第1の制御信号(
図16、
図21、
図22のUP1/DOWN1)から、前記スペクトラム拡散周波数変調波形の傾きの大きさ(SSC_DF)を減算又は加算した値を前記第2の制御信号(
図16、
図21、
図22のUPDOWN6)とするようにしてもよい。
【0039】
第12の側面によれば、前記第7乃至第9の側面における、前記スペクトラム拡散周波数変調波形の傾きの大きさ(
図16、
図21、
図22のSSC_DF)と傾きの方向(
図16、
図21、
図22のSSC_DIR)に関して、前記演算器(
図16、
図21、
図22の19)は、分数で表した前記変調波形の傾きの大きさに対して、前記分数の分母に対応するクロックサイクルの経過に対して、前記分数の分子に対応する回数分、+1を出力する回路部(
図18の191、192、193)を備え、前記回路(
図18の192)から出力された+1を、前記傾きの方向(SSC_DIR)に応じて、前記第1の制御信号に対して加算又は減算し前記第2の制御信号とする回路(
図18の194)を備えている。
【0040】
第13の側面によれば、前記クロック生成器は、スペクトル拡散周波数変調されたクロック信号を生成するためのコントローラ(
図29、
図30)を備えたPLL(
図1の30)を備えている。
【0041】
第14の側面によれば、前記クロックアンドデータリカバリ回路(
図23の10A〜10D)と、
前記クロックアンドデータリカバリ回路で抽出されたシリアルデータを、前記抽出クロック信号を用いてパラレルデータに変換するシリアルパラレル変換回路(
図23の42)を備えた受信回路(
図23の41)を1つ又は複数備え、前記1つ又は複数の受信回路に対して、前記クロック生成器(
図23の30)を1つ備える。
【0042】
第15の側面によれば、前記クロックアンドデータリカバリ回路と、前記クロックアンドデータリカバリ回路で抽出されたシリアルデータを前記抽出クロック信号を用いてパラレルデータに変換するシリアルパラレル変換回路(
図24の42)を備えた受信回路(
図24の41)を1つ又は複数備え、前記1つ又は複数の受信回路(
図24の41)に対して、1つの前記クロック生成器(
図24の30)と、1つの第9の側面の前記制御回路(
図24の20)を備える。
【0043】
以下では、実施形態を創案するに到った経緯について説明する。クロックアンドデータリカバリ(CDR)回路の特性(例えばジッタトレランス特性)は、スペクトラム拡散周波数変調が掛かっている場合と掛かっていない場合を比べると、スペクトラム拡散周波数変調が掛かっていない場合の方が良好である。
【0044】
クロックアンドデータリカバリ回路のジッタトレランス特性は、例えばPLLクロック信号がスペクトラム拡散周波数変調されている場合でも、拡散率が小さい方がよい。これは、周波数偏差がないか、あるいは、あっても小さい方が、クロックアンドデータリカバリ回路の負担が軽くなるためである。なお、周波数fから−Δfに下がり、再びfに戻るダウン拡散の場合、拡散率δは、−(Δf/f)×100%で与えられる。
【0045】
クロックアンドデータリカバリ回路に入力されるデータは、対向Serdes装置の送信回路でスペクトラム拡散周波数変調されて自装置に伝送されたシリアルデータであり、PLLクロック信号は自装置内のPLLでスペクトラム拡散周波数変調される。シリアルデータとPLLクロックは、それぞれ独立に、スペクトラム拡散周波数変調される。
【0046】
このため、クロックアンドデータリカバリ回路においては、最悪2倍の負荷になる。例えばスペクトラム拡散周波数変調されたシリアルデータの周波数がf−Δf(f:中心周波数、Δf:拡散周波数の幅)、スペクトラム拡散周波数変調されたクロック信号の周波数がfの場合、クロックアンドデータリカバリ回路の周波数追従ループで追従すべき周波数偏差は−Δfとなり、シリアルデータの周波数がf、クロック信号の周波数がf−Δfの場合、クロックアンドデータリカバリ回路の周波数追従ループで追従すべき最大周波数偏差は+Δfとなり、周波数偏差の振幅は最大2Δfとなる。
【0047】
一方、PLLクロック信号のみ(あるいは、シリアルデータのみ)がスペクトラム拡散周波数変調されている場合の周波数追従ループで追従すべき周波数偏差は最大でΔfである。
【0048】
クロックアンドデータリカバリ回路において追従すべき周波数偏差が2Δfの場合、周波数偏差がΔfと同一時間で処理する場合、積分器の分解能を1/2に落とすか、2倍の処理速度で動作する必要がある。
【0049】
本発明者は、クロックアンドデータリカバリ回路の特性を改善する案を様々検討してきた。クロックアンドデータリカバリ回路に入力されるクロック信号は、クロック生成器(SSCクロック生成器、あるいは、SSCコントローラを備えたPLL)で生成している。装置内のクロックのSSCプロファイル(クロック周波数の変動曲線(横軸;時間、縦軸:周波数)を描いた変調波形(例えば鋸波))は既知である。また、拡散率、拡散様式(ダウン拡散、センター拡散、アップ拡散)、変調速度も既知である。
【0050】
SSCプロファイルを利用することで、理想的には、クロックアンドデータリカバリ回路の負荷を半分とすることができる。クロックアンドデータリカバリ回路における周波数追従ループでは、(シリアルデータ入力の周波数)−(PLLクロックの周波数)に対応する周波数偏差分の位相制御を行ない、抽出クロック信号を生成しているが、PLLクロック信号の周波数情報に基づき、−(PLLクロックの周波数)を相殺し、シリアルデータ入力の周波数偏差にのみ追従すればよくなる。
【0051】
SSCプロファイルを利用することで、回路は以下のような構成で実現可能となる。周波数偏差に追従する周波数追従ループ内に、SSC生成回路又はSSCコントローラからのSSCプロファイル(SSC_MOD)を加算又は減算する演算器を挿入する。
【0052】
SSCの例として、USB 3.0や、SerialATA(SATA)で決められているように、30〜33kHz、最大周波数変動量(−Δf)=−5000ppmの場合について検討する。拡散様式は、クロック周波数fから低い周波数に下がりf−Δfに達すると、周波数が上昇し、元の周波数fに戻るダウン拡散(変調波形はのこぎり波)とする(変調速度fm=1/(33kHz)〜1/(30kHz)=30〜33.3us(micro second))。なお、クロックスペクトルを平坦化するには、「Hershey KissTM」という特別な曲線が変調波形として使用される。
【0053】
図27、及び
図28は、関連技術のクロックアンドデータリカバリ回路の特性の改善を図るために鋭意検討した結果、本発明者が見出した、関連技術のクロックアンドデータリカバリ回路の課題(問題点)を説明するための図である。データとクロックには、それぞれ独立にSSCが掛かる。その様子を
図27に示す。
(A):スペクトラム拡散周波数変調PLLクロックの周波数(プロファイル)、
(B):スペクトラム拡散周波数変調されたシリアルデータ入力の周波数(プロファイル)、
(C):(シリアルデータ入力の周波数)−(PLLクロックの周波数)、
(D):CDR周波数追従ループが検出する周波数偏差、
の時間推移を説明する図である。
図27において、(I)、(II)、(III)の順で時間が推移している。なお、PLLクロック、シリアルデータの拡散様式はともに、周波数fからf−Δfに下がり、再びfに戻るダウン拡散である。USB 3.0のCDR仕様では、Δf=0.005=5000ppmとされ、fと0.995fの間を変調周波数fm=30〜33kHz(変調速度(=1/fm)=30〜33.3μs)の間のレートで変化される。平均周波数は0.9975fである。なお、1ppm(Parts Per Million)は百万分の1である。
【0054】
図27の(I)の状態では、シリアルデータとPLLクロックのスペクトラム拡散周波数変調のプロファイルが正反対となっている(PLLクロックの周波数プロファル(鋸波)とシリアルデータの周波数プロファル(鋸波)が逆相であり、一方の周波数が時間とともに下がるとき他方の周波数は時間とともに上がる)。
図27の(D)のCDR周波数追従ループが検出する周波数偏差は+Δf、−Δfで振幅し、クロックアンドデータリカバリ回路にとって負荷が大きく、最も厳しい状態である。周波数追従ループは、変調周波数30kHz〜33kHzで+5000ppm〜−5000ppmに追従する必要がある。
【0055】
図27の(II)の状態では、
図27の(D)の周波数偏差(CDR周波数追従ループが検出する周波数偏差)は、+2500ppm〜−2500ppmに減っているが、傾き自体(周波数偏差の時間変化率)は、急であり、追従はやはり厳しい。
【0056】
図27の(III)の状態では、シリアルデータとPLLクロックのスペクトラム拡散周波数変調が一致し、
(シリアルデータ入力の周波数)−(PLLクロックの周波数)=0
となり、CDR周波数追従ループが検出する周波数偏差=0ppmである。
【0057】
以上より、周波数偏差(=|(シリアルデータ入力の周波数)−(PLLクロックの周波数)|)は、最大で、
2Δf(=2×5000ppm)
となり、データやクロックのスペクトラム拡散周波数変調の周波数偏差Δfの2倍となる。
【0058】
図26の回路において、位相検出部51はどれだけ進んでいるか遅れているかの情報を出力せず、単に、位相が進んでいるか(UP1=活性)、遅れているか(DOWN1=活性)の情報しか出力せず、この情報に基づき、積分器13でカウント値を1つアップ又はダウンさせ、位相補間器17でPLLクロック信号の位相を単位分、遅らせるか、進めることで、周波数の追従制御を行うことになるが、2Δfの周波数偏差に対する周波数追従動作は、Δfの周波数偏差の場合の倍の時間を要する。もし、Δfの周波数偏差の場合と同程度の時間で追従するには、積分器13の動作速度を速めるか、UP1又はDOWN1一回当りの積分器13のカウンタのカウント値の増分、減少分を1ではなく2とする等が必要とされる(ただし、積分器13のフィルタ特性が劣化する)。
【0059】
図28を用いてさらに説明する。
図28の(A)、(B)、(C)、(D)の波形の(I)は、
図27の(A)、(B)、(C)、(D)の波形の(I)の状態と同じものである。実線で囲んだ時間枠160は、PLLクロックの周波数が低くなる方向、スペクトラム拡散周波数変調されたシリアルデータの周波数が高くなる方向であり、このときの動作イメージとして、シリアルデータと抽出クロックの位相関係を、
図28の(E)に模式的に示している。
【0060】
特に制限されないが、位相補間器17から出力される抽出クロック信号の立ち上がりエッジと立ち下がりエッジのタイミングでシリアルデータ入力をサンプリングすることを想定する。この場合、
図26の位相検出部51において、シリアルデータを抽出クロック信号の立ち上がりエッジと立ち下がりエッジでサンプリングし、抽出データとして出力してもよいし、あるいは、抽出クロック信号をクロックアンドデータリカバリ回路から出力して不図示のサンプリング回路に供給する構成としてもよい。この場合、サンプリング回路は、シリアルデータをデータ端子に入力し抽出クロックの立ち上りエッジでサンプルする第1のD型フリップフロップと、シリアルデータをデータ端子に入力し抽出クロックの立ち下がりエッジでサンプルする第2のD型フリップフロップとを備え、第1、第2のD型フリップフロップの出力を抽出データとして出力する。
【0061】
時刻(タイミング)は、
図28の(I)において、実線で囲った時間枠160の左端の時刻であるとする。つまり、PLLクロックの周波数は、−2500ppm(=0.9975f)であり、これから−5000ppm(=0.995f)に向かうところであり、シリアルデータの周波数は−2500ppm(=0.9975f)であり、これから、0ppm(=f)に向かうところである。
【0062】
クロックアンドデータリカバリ回路内の周波数追従ループにおいて、PLLクロックとシリアルデータの周波数はともに−2500ppmであり、これらの周波数偏差が0ppmであると検出されるので、周波数追従ループ(
図26の積分器13、パターン発生器15)によるPLLクロック信号の位相制御は行われない。
【0063】
図28の(E)において、(1)の波形は、PLLクロック信号にもシリアルデータにも、スペクトラム拡散周波数変調を掛けず、周波数がこのまま一定で、さらにクロックアンドデータリカバリ回路が、位相制御を全くしないことを仮定した場合のシリアルデータ入力と抽出クロック信号の波形の始め(時間枠160の初め:左端)とその後(時間枠160の終わり:右端)の波形)を示している。シリアルデータ入力の波形の時間軸上真ん中を、抽出クロック信号の立ち上りエッジと、立ち下がりエッジでサンプリングし続ける。すなわち、抽出クロック信号の立ち上がり(立ち下がり)エッジは、シリアルデータ期間の真ん中にある。
【0064】
しかし、実際には、PLLクロック信号とシリアルデータにそれぞれスペクトラム拡散周波数変調が掛かり、時間枠160の始めで、PLLクロック信号の周波数は低くなる方向であり、シリアルデータの周波数は高くなる方向にあることから、クロックアンドデータリカバリ回路が位相制御を全くしなければ、
図28の(E)の(2)の波形のように、クロックとデータの位相関係は、徐々に反対方向にずれていく。
図28(E)の(2)の波形は、クロックアンドデータリカバリ回路が位相制御を全くしない場合の、シリアルデータ入力と抽出クロック信号の波形の始め(時間枠160の始め:左端)とその後(時間枠160の終わり:右端)の波形を示している。時間枠160の始めで、PLLクロックの周波数は低くなる方向にあるため、時間枠160の終わりでは、抽出クロック信号の位相は右矢印で示すように時間枠160の始めよりも、さらに遅れる(retarded)。時間枠160の始めにおいてシリアルデータの周波数は高くなる方向であることから、時間枠160の終わりでは、シリアルデータの位相は、左矢印で示すように速まる(advance)。
【0065】
図28の(E)の(3)の波形は、PLLクロックとシリアルデータにそれぞれスペクトラム拡散周波数変調が掛かり、時間枠160の始めで、PLLクロックの周波数は低くなる方向にあり、シリアルデータの周波数は高くなる方向にある場合において、クロックアンドデータリカバリ回路が、周波数追従ループで位相制御を行うが、位相制御ループでは位相制御をしない場合の、シリアルデータ入力と抽出クロックの波形の始め(時間枠160の始め:左端)とその後(時間枠160の終わり:右端)の波形を示している。時間枠160の始めで、シリアルデータの周波数は高くなる方向にあることから、
図28(E)の(2)と同様、時間枠160の終わりでは、シリアルデータの位相は、左矢印で示すように速まる(advance)。時間枠160の始めで、PLLクロック信号の周波数は低くなる方向にあるが、周波数追従ループによる抽出クロックの位相制御が行われ、時間枠160の終わりでは、抽出クロックの位相は左矢印で示すように、時間枠160の始めよりも速まる。時間枠160の終わりの時点で、制御対象の位相差は、シリアルデータ入力の矢印先端と、抽出クロック信号の矢印先端の間の位相差となる。なお、時間枠160の終わりでは、抽出クロック信号の立ち上がりエッジとつづく立ち下がりエッジでそれぞれシリアルデータ入力の真ん中付近をサンプリングしている。
【0066】
クロックアンドデータリカバリ回路内の周波数追従ループが検出した周波数偏差は、積分器13で当該時点の過去の位相比較結果(
図26のUP1/DOWN1)を積分して得られるものであるため、少し古い情報である。周波数偏差に関して、古い情報を基に、クロック信号の位相を制御することによる特性劣化(データの中心からずれたところをサンプリングする)が起こる。
【0067】
周波数追従ループが検出する周波数偏差(
図27、
図28の(D)参照)の傾き(時間変化率)が、急であればあるほど、ある時点でのPLLクロック信号とシリアルデータの周波数偏差と、クロックアンドデータリカバリ回路内の周波数追従ループで検出されるPLLクロック信号とシリアルデータの周波数偏差との差分が大きくなる。その結果、クロックアンドデータリカバリ回路のジッタ特性等の劣化も大きくなる。周波数偏差の傾き(時間変化率)が急である場合、クロックアンドデータリカバリ回路内の周波数追従ループの追従速度を速くする必要がある。例えば、
図26の積分器13を、UP/DOWNカウンタで構成した場合は、カウント数を小さくする必要がある。あるいは、1つのカウントアップ/ダウンでカウント値をN(N≧2)アップ又はダウンする(1ステップ当りの値をNとする)。
【0068】
しかしながら、周波数追従ループの積分器13はフィルタ(LPF:Low Pass Filter:ループフィルタともいう)として機能しているので、積分器13を構成するカウンタのカウント数を小さくする(分解能を下げる)と、低域周波数成分を十分にフィルタリングできなくなる可能性もある。アナログのCR積分回路は、デジタルのカウンタ(積分器13)に対応し、カウンタのカウント数を小さくする(1ステップ当りのカウント値を1からN(N≧2)とする)ことは、アナログ積分回路のCR時定数に関して、CR時定数の値を小さくし遮断周波数1/(2πRC)を大きくすることに対応する。
【0069】
実施形態では、クロックアンドデータリカバリ回路の周波数追従ループでのシリアルデータ入力とPLLクロック信号の周波数偏差を軽減し、ジッタ特性の改善を図る。
【0070】
実施形態の技術的特徴を例示した
図32を参照すると、SSCクロック信号を生成するクロック生成器(SSCG:Spread Spectrum Clock Generator)130からクロックアンドデータリカバリ回路10Fに対して、SSCプロファイル(周波数プロファイル)情報を出力し、クロックアンドデータリカバリ回路10Fの周波数追従ループでは、SSCクロック信号のSSCプロファイル情報を利用して、周波数追従ループで追従すべき周波数偏差(=|(シリアルデータ入力の周波数)−(SSCクロック信号の周波数)|)のうち、SSCクロック信号の周波数を相殺し、データのみの周波数偏差とし(データの変調波形にのみ周波数追従すればよい)、追従すべき周波数偏差の最大値をΔfとしている。データは、クロック信号とは別に、データ送信元でスペクトラム拡散周波数変調され前記クロック
アンドデータリカバリ回路で受信されたデータである。
【0071】
すなわち、SSCクロック生成器130からクロックアンドデータリカバリ回路10Fに入力されるSSCプロファイルの周波数変動量(拡散量)が−Xppmの場合、周波数追従ループ101では、追従すべき周波数偏差に対して、−(−Xppm)=+Xppm相当の補正を加え、SSCクロック信号の周波数偏差を相殺する。より具体的には、SSCプロファイルの周波数変動量(拡散量)が−Xppmの場合、周波数追従ループ101の積分器13の出力又は入力に対して、−(−Xppm)=+Xppmを加算し(あるいは、(したがって−Xppm)を減算し)、0ppmとする。例えばSSCクロック信号の周波数変動量が−5000ppm(=0.995f)のとき、位相補間器17にはSSCクロック信号として周波数0.995fのクロック信号が入力されるが、周波数追従ループ101では、
追従すべき周波数偏差=(シリアルデータ入力の周波数)−(SSCクロック信号の周波数)
において、+5000ppmだけ、周波数オフセット(補正)が加えられ、周波数追従ループ101で追従すべき周波数偏差は、スペクトラム拡散周波数変調されたシリアルデータ入力の周波数変動のみとなる。
【0072】
同様にして、SSCクロック信号の周波数変動量が−2500ppm=0.9975fのとき、位相補間器17には、周波数0.9975fのSSCクロック信号が入力されるが、周波数追従ループ101には、+2500ppmだけ周波数オフセットが与えられるため、見掛け上、SSCクロック信号の周波数変動量は0ppmとなり、周波数追従ループ101で追従すべき周波数偏差は、スペクトラム拡散周波数変調されたシリアルデータ入力の周波数変動量のみとなる。すなわち、理想的には、SSCクロック生成器130からクロックアンドデータリカバリ回路10Fに入力される、SSCクロック信号の周波数は、周波数追従ループ101において、見かけ上、常に、0ppmとみなすことができる。なお、SSCのプロファイルの拡散様式がダウン拡散の変わりに、アップ拡散の場合、SSCプロファイルの周波数変動量(拡散量)が+Xppmの場合、周波数追従ループ101の積分器13の出力又は入力に対して、−(+Xppm)=−Xppmを加算し(したがって、(+Xppm)を減算し)、0ppmとする。
【0073】
本実施形態によれば、クロックアンドデータリカバリ回路の周波数追従ループにおいて、SSCクロック信号の周波数変動量が相殺され、シリアルデータ入力の周波数変動量に基づく、周波数偏差を追従すればよいことになる。周波数偏差の絶対値(|(シリアルデータ入力の周波数)−(SSCクロックの周波数)|)は、最大でΔf(=5000ppm)となり、
図26の構成の半分に抑えることができる。
【0074】
クロックアンドデータリカバリ回路の周波数追従ループは、変調周波数30kHz〜33kHzに相当する周期で0ppm〜−5000ppmに追従すればよく、クロックアンドデータリカバリ回路に対する負荷が半分に軽くなり、クロックアンドデータリカバリ回路の特性(ジッタトレランス特性)が改善される。
【0075】
位相補間器17に入力されるSSCクロック信号の周波数変動量は、SSCクロック生成器130(あるいは、SSCコントローラを備えたPLLの当該SSCコントローラ)から供給されるので、常に最新の情報である。SSCクロック生成器130では、SSCクロック信号の周波数の変動パターン(周波数プロファイル)に基づき、SSCクロック信号を生成出力している。本実施形態によれば、周波数追従ループには、現在、位相補間器17に入力されているSSCクロック信号の周波数情報が供給され、この周波数情報に基づき、位相補間器17における抽出クロック信号の位相を調整している。このため、古い情報を基に、抽出クロックの位相制御することによる、特性劣化も生じない。
【0076】
本実施形態によれば、周波数偏差を最大でΔfに抑えることで、周波数変動パターン(のこぎり波)の時間変化率が緩くなり、クロックアンドデータリカバリ回路内の周波数追従ループの積分器13のカウント数を大きくすることができ(分解能を上げることができ)、低域通過フィルタ特性の向上も期待できる。
【0077】
特に制限されないが、SSCプロファイル情報は、例えば特許文献5の
図1〜
図3の信号S_UDに対応する。S_UDによって周波数変動量が決まっており、S_UDの値を変動させることで、SSCクロック信号にスペクトラム拡散周波数変調が掛かる。
【0078】
図32において、クロックアンドデータリカバリ回路10Fと、SSCクロック生成器130は、同一チップ上に形成してもよい。あるいは、クロックアンドデータリカバリ回路10Fと、SSCクロック生成器130をそれぞれ別の半導体チップとして回路基板上に備えた構成としてもよいことは勿論である。
【0079】
図33は、
図26を参照して説明したクロックアンドデータリカバリ回路に、
図32の実施形態を適用した一例を示す図である。
図33(A)を参照すると、クロックアンドデータリカバリ回路10Gの位相補間器17には、SSCクロック生成器130からのSSCクロック信号が入力され、
図26の積分器13とパターン発生器15の間に加算器18が挿入されている。加算器18には、SSCクロック生成器130から出力されるSSCプロファイル情報としてSSC_MOD(SSC変調情報)が入力される。加算器18は、積分器13の出力FDIF1に、(−SSC_MOD)を加算した値を、FDIF2としてパターン発生器15に入力する。
図33(B)は、SSCクロック生成器130の構成例を示す。クロック信号(基準クロック信号)を入力し、SSC変調情報SSC_MODを出力するSSCコントローラ1301と、SSCコントローラ1301からのSSC変調情報に基づき、クロック信号の位相を変化させ、周波数変調したSSCクロック信号を出力する位相補間器1302を備えている。なお、
図33では、周波数追従ループの積分器13の出力をSSC_MODで補正している構成とされているが、積分器13の入力を、SSC_MODで補正している構成としてもよい。以下、いくつかの実施形態に即して説明する。
【0080】
<実施形態1>
図1は、実施形態1のクロックアンドデータリカバリ回路の構成を示す図である。
図1の実施形態1では、前述したSerdes対応のクロックアンドデータリカバリ回路として、SSCクロック信号をPLL30から供給している。PLL30は、
図32、
図33のSSCクロック生成器130に対応している。
図1では、データサンプリング回路11、位相検出器12、位相補間器17を介して再びデータサンプリング回路11に信号が戻るループを構成している。このループのうち、 位相検出器12、積分器13、加算器18、パターン発生器15を経て、混合器16を通るパスを含むループが、周波数追従ループ101を構成する。一方、位相検出器12、積分器14を経て混合器16を通るパスを含むループが位相追従ループ102を構成する。また、
図1の構成は、前述した
図26の構成と相違して、PLLクロック信号のスペクトラム拡散周波数変動量(SSC変調情報:SSC_MOD)を入力し、周波数追従ループ101内に設けた加算器18で、SSC_MODの符号を反転した値を積分器13の出力FDIF1に加算している。なお、以下の実施形態においてPLL30を、
図32のSSCクロック生成器130で置き換えた構成としてもよい。
【0081】
図1では、データサンプリング回路11が、位相検出器12とは別の構成として示されているが、これは、クロックアンドデータリカバリ回路において、抽出クロック信号と抽出データを明示するためである。データサンプリング回路11と位相検出器12を1つの回路ブロックとしてまとめた回路ブロックを位相検出器(
図26、
図33の位相検出器51と同一)としてもよいことは勿論である。なお、前述した
図26、
図32、
図33では、位相検出部51内に、データをサンプリングする機能(
図1のデータサンプリング回路11)を備えている。
【0082】
また、
図26では、周波数追従ループ内の積分器13の出力はUPDOWN3であったが、
図1では、FDIF1(周波数偏差の大きさ)としている。
【0083】
クロックアンドデータリカバリ回路10Aは、データサンプリング回路11、位相検出器12、積分器13、積分器14、パターン発生器15、混合器16、位相補間器17、加算器18を備えている。周波数追従ループ101は、上述のようにシリアルデータ入力とPLLクロックとの間の周波数偏差を検出し、検出した周波数偏差分の位相制御を行なうループである。また、位相追従ループ102は、シリアルデータ入力とPLLクロックとの間の位相関係(進み遅れ)を検出し、検出した位相関係に応じて位相制御を行なうループである。位相追従ループ102は、周波数追従ループ101と異なり、シリアルデータ入力の位相変動に追従するループである。
【0084】
データサンプリング回路11は、位相補間器17からの多相の抽出クロック信号で入力データをサンプリングし、多相のクロック信号のいずれか一つの相のクロック信号に同期させてデータを出力する。なお、以下の実施形態では、4相クロック信号でデータをサンプリングする構成が例示されるが、本実施形態は、4相クロック信号に限定されるものでないことは勿論である。
【0085】
<データサンプリング回路11>
図2は、データサンプリング回路11の構成の一例を示す図である。
図2の構成は、クロック信号周波数がデータ周波数の1/2の場合であり、例えばデータが5Gbps(Giga bits per second)の場合、クロック信号は2.5GHzの4相クロック信号CLK0、90、180、270となる。クロック信号の周波数がデータ周波数の1/2の場合、データサンプリング回路11は、サンプリングされた2個のデータ(例えばCLK0とCLK180によるデータ信号の中心のサンプル値)を抽出データとして、抽出クロック信号とともに、クロックアンドデータリカバリ回路から他の回路に出力される。
【0086】
データサンプリング回路11は、データ入力を差動で受けデータ信号をシングルエンド出力するレシーバ111と、レシーバ111の出力信号をデータ端子(D)に受け4相クロック信号CLK0、CLK90、CLK180、CLK270をクロック信号端子(C)にそれぞれ受け、クロック信号CLK0、CLK90、CLK180、CLK270の立ち上がりエッジでデータ端子(D)の信号をそれぞれサンプル出力するフリップフロップ112、113、114、115と、フリップフロップ112、113、114、115の出力端子(Q)からの出力信号をデータ端子(D)に受け、クロック信号CLK0をクロック信号端子(C)に受け、CLK0の立ち上がりエッジでデータ端子(D)の信号をそれぞれサンプルするフリップフロップ116、117、118、119を備えている。フリップフロップ116、117、118、119の出力端子(Q)からの出力信号はDATA0、DATA90、DATA180、DATA270とされ、フリップフロップ112の出力端子(Q)からの出力信号はDATA360とされる。
【0087】
2つのデータDATA360とDATA180は抽出データとして出力され、4+1=5個のデータDATA0、DATA90、DATA180、DATA270、DATA360が位相検出器12へ供給される。
【0088】
クロックアンドデータリカバリ回路が引き込んだ状態では、クロック信号CLK0とCLK180がデータ信号の中心をサンプリングし、クロック信号CLK90とCLK270がデータ信号の変化点(エッジ)をサンプリングする。
【0089】
クロック信号周波数がデータ周波数の1/2の場合、データサンプリング回路11は、サンプリングされた2個のデータ(例えばCLK0とCLK180によるデータ信号の中心のサンプル値)を抽出データとして、抽出クロック信号とともにクロックアンドデータリカバリ回路から、他の回路(抽出クロック信号により抽出データを処理する回路)に出力される。
【0090】
一般に、クロック信号周波数がデータ周波数の1/nの場合、クロック信号は、2×n相とされる。データサンプリング回路11は、2×n+1個のデータを位相検出器12に出力し、n個のデータを抽出データとして、抽出クロック信号とともにクロックアンドデータリカバリ回路から他の回路に出力される。
図2のように、クロック信号周波数がデータ周波数の1/2の場合、クロック信号は2×2相=4相とされ、データサンプリング回路11は、2×2+1=5個のデータを位相検出器12に出力し、2個の抽出データを出力する。
【0091】
<位相検出器12>
図3は、
図1の位相検出器12の構成の一例を示す図である。位相検出器12は、データサンプリング回路11から出力されたデータDATA0、DATA90、DATA180、DATA270、DATA360のうち隣り合うデータ同士を2入力の排他的論理和(EXOR)回路1201、1202、1203、1204で比較する。なお、第4相のクロック信号CLK270でサンプリングされたDATA270の隣りのデータとして巡回的に、CLK360、したがって、次のサイクルのCLK0でサンプリングされたDATA360との比較が、2入力の排他的論理和(EXOR)回路1204で行われる。2入力の排他的論理和(EXOR)回路は2入力が一致のとき0、不一致のとき1を出力する。排他的論理和(EXOR)回路1201、1202、1203、1204の出力は、UP00、DOWN00、UP01、DOWN01となる。
【0092】
図3を参照すると、位相検出器12は、さらに、
DOWN01を入力するインバータ1205と、
DOWN00を入力するインバータ1207と、
UP01を入力するインバータ1212と、
UP00を入力するインバータ1214と、
UP00とインバータ1205の出力を入力する2入力の論理積(AND)回路120
6と、
UP01とインバータ1207の出力を入力するAND回路1208と、
UP00とDOWN00を入力する2入力のAND回路1209と、
UP01とDOWN01を入力する2入力のAND回路1210と、
DOWN00とインバータ1212の出力を入力する2入力の論理積(AND)回路1
213と、
DOWN01とインバータ1214の出力を入力するAND回路1215と、
AND回路1206、1208の出力を入力する2入力の論理和(OR)回路1216
と、
AND回路1209、1210の出力を入力する2入力のOR回路1211と、
AND回路1213、1215の出力を入力する2入力のOR回路1218と、
OR回路1211の出力を入力するインバータ1217と、
OR回路1216とインバータ1217の出力を入力する2入力のAND回路1219
と、
OR回路1218とインバータ1217の出力を入力する2入力のAND回路1220
と、
からなる論理回路部1230を備える。
【0093】
論理回路部1230は、UP00、DOWN00、UP01、DOWN01を入力し、
UP1、DOWN1を出力する。
【0094】
1201〜1204は、サンプリングしたデータを比較するEXORであり、1205〜1220は、UP00、DOWN00、UP01、DOWN01を多数決している。
【0095】
UP00+UP01>DOWN00+DOWN01
なら、
UP1=1、DOWN1=0
UP00+UP01<DOWN00+DOWN01
なら、
UP1=0、DOWN1=1
それ以外はUP1=0、DOWN1=0
なお、UP1やDOWN1は高速すぎるため、後段にDEMUX回路やDEMUX+多数決回路を追加し、スピードを落とすこともある。
【0096】
図4に、上記した論理回路部1230の論理を真理値表としてまとめて示す。クロックアンドデータリカバリ回路が引き込んでいる場合、UP00=1且つDOWN00=1、となることはない。
【0097】
また、UP01=1且つDOWN01=1となることもない。この2つの場合は、UP1=DOWN1=0を出力している。その他の場合は、UP00、DOWN00、UP01、DOWN01の多数決を行ない、
UPの数の方が多い場合、UP1=1、DOWN1=0を出力し、
DOWNの数の方が多い場合、UP1=0、DOWN1=1を出力している。
【0098】
UP00=DOWN00=1の場合は、UP1=DOWN1=0とする。
【0099】
UP01=DOWN01=1の場合も、UP1=DOWN1=0とする。
【0100】
それ以外は、UP00、DOWN00、UP01、DOWN01を多数決を行ない、
UPが多い場合UP1=1、DOWN1=0、
DOWNが多い場合UP1=0、DOWN1=1を出力する。
【0101】
<DOWN発生時の動作例>
次に、抽出クロック信号の位相がデータよりも進んでおり、DOWNが発生する場合を説明する。
【0102】
図5は、
図1のデータサンプリング回路11と位相検出器12の動作を説明する図である。
図5には、DOWN1=1(=High)となる場合の動作例を示すタイミング図が示されている。
【0103】
図5(A)には、データ入力、クロック信号CLK0、90、180、270、サンプリングデータDATA0、90、180、270、360、UP00、DOWN00、UP01、DOWN01、UP1、DOWN1の電圧波形が示されている。なお、特に制限されないが、以下のタイミング図では、Highを論理1、Lowを論理0とする。
図5(B)は、抽出クロック信号とデータ信号の位相の関係を示す波形図である。CLK0、CLK180は、それぞれの矢線の右隣の破線が示すデータ中心部に来るべきところ、位相が進んでいる。CLK90、270は、それぞれの右隣の破線が示すデータエッジに来るべきところ、位相が進んでいる。
【0104】
図5(A)を参照すると、データ入力としてa=1、b=0、c=1、d=0、e=1、f=0、g=1、h=0がこの順でクロック信号周波数の2倍の周波数で入力されるものとする。またa=1の前にz=0(≠a)が入力されているものとする。
【0105】
CLK0の立ち上がり(タイミングt0)で、DATA0、90、180、270、360(ただし、DATA360はCLK0から1クロック信号サイクル(360度)遅れたクロック信号(CLK360)でサンプルされたデータ)には、直前のサイクルのCLK0、CLK90、CLK180、CLK270の立ち上がりエッジでそれぞれサンプリングされたz、z、a、aと、今回のCLK0(したがってCLK360)の立ち上がりでサンプリングされたbとがパラレルに出力される。この結果、UP00、DOWN00、UP01、DOWN01は、それぞれ、Low、High、Low、Highとなり、UP1、DOWN1はLow、Highとなる。DATA90、DATA180のz、aを比較するEXOR1202の出力DOWN00、DATA270、DATA360のaとbを比較するEXOR1204の出力DOWN01がHighとなり、UP00、UP01はLowとなる。
【0106】
したがって、DOWN1=1となる。以降も同様である。この場合、抽出クロック信号の位相を遅らせる。
【0107】
<UP発生時の動作例>
次に抽出クロック信号位相が遅れており、UPが発生する場合を説明する。
【0108】
図6は、UP1=Highとなる場合の動作例を示すタイミング図である。
図6(A)には、データ入力、CLK0、90、180、270、DATA0、90、180、270、360(ただし、DATA360はCLK0から1クロック信号サイクル(360度)遅れたクロック信号(CLK360)でサンプルされたデータ)、UP00、DOWN00、UP01、DOWN01、UP1、DOWN1の電圧波形が示されている。なお、Highを論理1、Lowを論理0とする。
【0109】
図6(B)は抽出クロック信号とデータ信号の位相の関係を示す波形図である。CLK0、CLK180は、それぞれの矢線の左隣の破線が示すデータ中心部に来るべきところ、位相が遅れている。CLK90、270は、それぞれの矢線の左隣の破線が示すデータエッジに来るべきところ、位相が遅れている。
【0110】
図6(A)を参照すると、データ入力としてa=1、b=0、c=1、d=0、e=1、f=0、g=1、h=0がこの順でクロック信号周波数の2倍の周波数で入力されるものとする。またa=1の前にz=0(≠a)が入力されているものとする。
【0111】
CLK0の立ち上がり(タイミングt0)で、DATA0、90、180、270、360には、直前のサイクルのCLK0、CLK90、CLK180、CLK270の立ち上がりエッジでそれぞれサンプリングされたz、a、a、bと、今回のCLK0の立ち上がりでサンプリングされたbとがパラレルに出力される。この結果、UP00、DOWN00、UP01、DOWN01は、それぞれ、High、Low、High、Lowとなり、UP1、DOWN1はHigh、Lowとなる。DATA0、DATA90のz、aを比較するEXOR1201の出力UP00が1、DATA180、DATA270のaとbを比較するEXOR1203の出力UP01がHighとなり、DOWN00、DOWN01はLowとなる。したがって、UP1=1となる。以降も同様である。この場合、抽出クロック信号の位相を進ませる。
【0112】
<積分器14(UP/DOWNカウンタ)の状態遷移例>
位相追従ループ102内の積分器14は、位相検出器12からのUP1とDOWN1を受け、UP1=HighのときUPカウントし、DOWN1=Highのとき、DOWNカウントするUP/DOWNカウンタ(不図示)を備える。
【0113】
図7は、位相追従ループ102内の積分器14のUP/DOWNカウンタの状態遷移図である。実線は、UP1=1の場合の状態遷移、破線はDOWN1=1の場合の状態遷移を表す。
UP1=1のとき、クロック信号入力に応答してカウント値を1つインクリメントし、
DOWN1=1のとき、クロック信号入力に応答してカウント値を1つデクリメントし、
現在サイクルのカウント値が+7の場合、UP1=1であると、+7から0に戻る。このときUPDOWN2=+1を出力する。
現在サイクルのカウント値が−7の場合、DOWN1=1であると、−7から0に戻る。このときUPDOWN2=−1を出力する。
【0114】
積分器14において、
UP1がDOWN1よりも8回多くなった時点で、UPDOWN2=+1を出力し、
DOWN1がUP1より8回多くなったら、UPDOWN2=−1を出力する。
【0115】
積分器14は、クロックアンドデータリカバリ回路を安定化させるためのものである。積分器がない場合、位相検出器12が出力したUP1/DOWN1を用いて抽出クロック信号の位相を頻繁に動かすことになり抽出クロック信号の位相が安定しない。
【0116】
<積分器13の構成例>
図8は、周波数追従ループの積分器13の構成の一例を示す図である。
図8に示すように、積分器13は、2段のUP/DOWNカウンタ131、132を備える。1段目のUP/DOWNカウンタ131は、位相追従ループ102内の積分器14のUP/DOWNカウンタと同一構成とされる。UP/DOWNカウンタ131は、位相検出器12が出力したUP1/DOWN1で毎回周波数偏差情報を更新するのではなく、UPとDOWNが所定の回数多くなった時だけ更新するために設けるUP/DOWNカウンタである。UP1/DOWN1で毎回周波数偏差情報を更新する場合、1段目のUP/DOWNカウンタ131は使用しない。
【0117】
2段目のUP/DOWNカウンタ132は、位相追従ループ102内の積分器14のUP/DOWNカウンタと同一構成とされるが、カウント値であるFDIF1は、周波数偏差(クロックアンドデータリカバリ回路内の周波数追従ループが検出する周波数偏差)に比例する。UP/DOWNカウンタ132において、オーバーフロー又はアンダーフロー発生時、カウント値を0に自動リセットするか、カウント値を最大値又は最小値に維持する。
【0118】
<パターン発生器15の構成例>
図9は、
図1のパターン発生器15の構成の一例を示す図である。
図9を参照すると、パターン発生器15は、FDIF2を入力する加算器151と、加算器151の出力をNで除算し、商を出力信号UPDOWN4として出力する除算器152と、除算器152から余りを受け、クロック信号に応答してサンプルするフリップフロップ153を備え、フリップフロップ(FF)153の出力端子(Q)の出力信号(余り)が加算器151に帰還入力され、FDIF2と加算される。FDIF2は、加算器18の出力であり、積分器13の出力FDIF1に、SSC_MODの符号反転を加えた信号である。なお、フリップフロップ(FF)153は、余りを表現するのに必要なだけのBit数(余りの最大値が63であれば6Bit)で構成される。
【0119】
周波数偏差量FDIF2を加えて、Nで割り、商をUPDOWN4として出力し、余りをフリップフロップ(FF)153で保持する。余りは、次のクロック信号周期で、再び、FDIF2と加算する。一例として、N=64の動作を説明する。
【0120】
FDIF2=1の場合、FF153の出力は0→1→・・・→63と1つずつ増加し、次のクロック信号で、FF153の出力(余り)とFDIF2の加算結果は64となるので、除算器152は、UPDOWN4=1を出力し、FF153の値は0となる。したがって、64クロックサイクルに1回の確率でUPDOWN4=+1を出力する。
【0121】
FDIF2=2の場合、FF153の出力は0→2→4→・・・→62と2つずつ増加し、次のクロック信号で、FF153の出力(余り)とFDIF2の加算結果は64となるので、除算器152は、UPDOWN4=1を出力し、FF153の値は0となる。したがって、64クロック信号に、2回の確率で、UPDOWN4=+1を出力する。
【0122】
FDIF2=−1の場合、FF153の出力は0→−1→−2→・・・→−63と1つずつ減少し、次のクロック信号で、FF153の出力(余り)とFDIF2の加算結果は−64となるので、除算器152はUPDOWN4=−1を出力し、FF153の値は0となる。したがって、64クロックサイクルに1回の確率でUPDOWN4=−1を出力する。
【0123】
以上のように、一般に、0<FDIF2<Nの場合、FDIF2/Nの確率でUPDOWN4=+1を出力し、0>FDIF2>−Nの場合、−FDIF2/Nの確率でUPDOWN4=−1を出力する。
【0124】
FDIF2の範囲は、−N<FDIF2<Nに限定されることはない。
【0125】
FDIF2>=Nの場合、UPDOWN4は、
FDIF2 div N、又は
FDIF2 div N+1
となる。
【0126】
FDIF2 div N+1を出力する確率は
(FDIF2 mod N)/N
で与えられる。
【0127】
ただし、FDIF2 div Nと、FDIF2 mod Nのdivとmodは、それぞれ、整数の除算(FDIF2をNで除した)の商と余りである。FDIF2<=−Nの場合も同様である。
【0128】
パターン発生器15において、UPDOWN4は、FDIF2に比例する。
【0129】
<混合器16の構成例>
図1の混合器16は、
図10に示すように、パターン発生器15の出力信号UPDOWN4と積分器14の出力信号UPDOWN2を加算し、加算結果を出力信号UPDOWN5として出力する加算器161から構成される。
【0130】
<位相補間器17>
位相補間器17は、PLLクロック信号を入力し抽出クロック信号(多相クロック信号)を出力するインターポレータを備えている。
図11に示すように、混合器16からUPDOWN5=+1が入力された場合、抽出クロック信号の位相を1Step進め、UPDOWN5=−1が入力された場合、位相を1ステップ遅らせる。UPDOWN5=+2が入力された場合、位相を2ステップ進める。
【0131】
図11に示す例では、位相補間器17は、入力クロック信号として4相クロック信号(0度、90度、180度、270度)を入力し、UPDOWN5を制御信号として受け、位相を補間した抽出クロック信号CLK0、90、180、270(
図2参照)を出力する。
【0132】
図11では、抽出クロック信号として4相クロック信号の1つのクロック信号(例えばCLK0)が示されている。CLK90、180、270も同様にして位相が制御される。入力クロック信号から位相を調整した多相クロック信号(4相クロック信号)を生成する位相補間器17は、例えば特許文献6の
図2、
図4等に開示された構成が用いられる。
【0133】
<加算器18>
加算器18は、積分器13から入力されるFDIF1と、PLL30から入力されるPLLクロック信号のスペクトラム拡散周波数変動量SSC_MODを符号反転した値とを加算し、加算結果をFDIF2として出力する。
【0134】
<PLL30>
PLL30は、スペクトラム拡散周波数変調されたPLLクロック信号と、そのSSCプロファイル(スペクトラム拡散周波数変動量)SSC_MODを出力する。PLLクロック信号は位相補間器17に入力され、スペクトラム拡散周波数変動量SSC_MODは加算器18に入力する。
【0135】
<周波数偏差FDIF1、FDIF2>
FDIF1、FDIF2それぞれの1当りの周波数偏差量を算出する。一例として、以下の条件について説明する。
【0136】
<条件1>
・データレート:5.0[Gbps];
・PLLクロック信号:2.5[GHz]でスペクトラム拡散周波数変調が掛かったクロック信号(SSCクロック信号);
・位相検出器12の出力信号周波数(=積分器13、14、パターン発生器15、混合器16、加算器18の動作周波数):1.25[GHz];
・位相補間器17の分解能:1ステップは、受信データ1UI(Unit Interval)の1/32に相当;
・パターン発生器15(
図9)の除数N=25
【0137】
この条件で、FDIF2=1の場合、パターン発生器15の出力UPDOWN4は、1.25GHz(データレートの1/4に相当する)のクロック信号の25周期(25サイクル)に、1回の確率で、+1を出力する。
【0138】
UPDOWN4=+1により、位相補間器17からの抽出クロック信号の位相は、位相補間器17の分解能(1ステップ)である、(1/32)UIシフトする。
【0139】
従って、FDIF2=1当り、
(1/4)×(1/25)×(1/32)×1000000=312.5[ppm]
の周波数偏差に相当するUPDOWN4を発生していることになる。
【0140】
FDIF2=2の場合、パターン発生器15の出力UPDOWN4は、1.25GHz(データレートの1/4に相当する)のクロック信号の25周期(25サイクル)に、2回の確率で、+1を出力する。UPDOWN4の頻度が2倍になるので、
312.5×2=625ppmとなる。
【0141】
以上のように、FDIF2は、PLLクロック信号とシリアルデータの周波数偏差に相当している。
【0142】
FDIF1=1当りの周波数偏差も、同様に312.5ppmである。
【0143】
SSC_MODは、PLLクロック信号のスペクトラム拡散周波数変動量である。SSC_MODがデジタル値であり、さらに、FDIF1、FDIF2と同様に、SSC_MOD=1当り、312.5ppmとする。
図12(B)に示すように、SSC_MODは、
図12(A)のPLLクロック信号の周波数変動パターン(周波数プロファイル)に対応して変化する(周期30μsec(33kHz)で0ppmから−5000ppmに下がったのちに0ppmに戻る三角波形(鋸波)の変動パターン)。
【0144】
SSC_MODは、PLLクロック信号の周波数変動パタン(周波数プロファイル)に対応して、周期30μsec(33kHz)で0から−16に下がったのち0に戻る(32ステップ)。
【0145】
<SSCプロファイル情報:SSC_MODの生成>
次に、SSC_MODの生成について説明する。
図29、
図30、
図31は、特許文献5の
図1、
図2、
図3にそれぞれ対応する図である(参照番号は異なる)。
図29は、SSC生成機能を有するPLLの構成の一例を示す図である。スペクトラム拡散周波数変調されたPLLクロック信号C_OUTを生成するためのPLLの動作の概要は、以下の通りである。
【0146】
<SSC機能付きPLL>
実施形態1のPLL30は、例えば
図29の構成とされる。
図29を参照すると、PLLは、位相比較器61と、位相比較器61での比較結果に基づき電流をキャパシタに充放電するチャージポンプ62と、キャパシタ電圧を平滑化するループフィルタ63を備えた位相比較部60と、ループフィルタ63からの出力電圧に基づき発振周波数を可変させるVCO(Voltage Controlled Oscillator:電圧制御発振器)64と、を備えている。さらに、VCO64と位相比較部60間のフィードバック経路上に配置された位相補間器65によって、VCO64の出力クロック信号C_OUTの位相を進めたり、遅らせたりすることにより、位相比較部60に入力される帰還クロック信号C_FBと、参照クロック信号C_REFとの位相差を周期的に増減させる。
【0147】
この位相差の周期的な変動に応じて、位相比較部60からVCO64に供給される制御信号Vcが周期的に増減し、出力クロック信号C_OUTの周波数が周期的に変調される。VCO64の出力は位相補間器65に入力され、位相補間器65の出力C_PSは第1分周器66に入力されて分周され、第1分周器66の出力は、第2分周器67(カウンタで構成される)に入力され、第2分周器67の出力C_FBが位相比較器61に入力され、第1分周器66の出力はSSCコントローラ68に入力され、SSCコントローラ68の出力S_UDは、位相補間器65に入力される。
【0148】
<SSCコントローラ>
SSCコントローラ68は、SSCプロファイルにしたがって、制御信号S_UDを生成して位相補間器65に供給し、位相補間器65による位相シフト動作を制御する。
図30は、
図29のSSCコントローラ68の構成例を示す図である。
【0149】
図30において、ステージカウンタ681は、制御クロック信号C_CNTのパルス数を計測し、現在のステージ数SC(k)を出力するカウンタである。ステージとは、出力クロック信号C_OUTに対して1つの変調度が適用される期間であり(ステージ数が同一である期間、周波数の変調度は一定)、ステージごとに、出力クロック信号C_OUTの周波数の変調度が変更される。制御信号発生部682は、ステージカウンタ681から、ステージ数SC(k)を受信し、ステージ数SC(k)に対応した、位相シフト量を示す制御信号S_UDを出力する。
【0150】
図30のSSCコントローラ68を備えたPLLによれば、SSCクロックのジッタを抑制し、周波数変調量(変調度)を滑らかに遷移させることが可能なSSCクロック生成器を実現する。
【0151】
<PLLの動作例>
図31は、
図29のPLLの動作を示すタイミングチャートである。横軸は時間である。
図31において、
(A)のF_OUTは、
図29の出力クロック信号C_OUTの周波数F_OUTを示している。f=1.5GHzからΔf=D_SSC(−5000ppm)下がり、再びf=1.5GHzに戻るまでの1周期T_SSC=32μsecである。
(B)の時刻(μs:0〜31μs)は、ステージ数SC(k)に相当する(k=0〜31)。
(C)のS_UDは、SSCコントローラ68(
図30の制御信号発生部)の出力信号S_UDである。
この例では、S_UD=0〜16となり、S_UD=1当り、−5000ppm/16=−312.5ppmに相当し、S_UDの値に応じて、F_OUTの周波数変動量が変化していることを示している。
【0152】
前記条件1で説明した例では、SSC_MOD=1当り、312.5ppm、
図29では、S_UD=1当り、−312.5ppmである。
【0153】
S_UDを符号反転し、PLLから出力すると、
図1のSSC_MODとして使用することができる。
【0154】
なお、SSC_MOD=1当りのスペクトラム拡散周波数変動量と、S_UD=1当りのスペクトラム拡散周波数変動量が異なる場合には、定数倍して、使用することになる。例えば、
SSC_MOD=1当り、156.25ppm、
S_UD=1当り、−312.5ppm
の場合、S_UDを2倍してSSC_MODとして、使用することになる。
【0155】
<実施形態1の動作説明>
図13は、実施形態1の動作を説明する波形図である。
図13の(A)のPLLクロック周波数、(B)のシリアルデータ入力周波数、(C)の(シリアルデータ入力周波数)−(PLLクロック周波数)は、
図27の(A)、(B)、(C)と同じである。
図13の(D)が、
図27の(D)と相違している。
【0156】
図13の(D)において、FDIF1とFDIF2は、
図1の積分器13の前後の信号である。
【0157】
図13の(D)のFDIF2は、
図27の(D)において検出していたCDR周波数追従ループが検出する周波数偏差と同等であり、周波数30〜33kHzで、+5000ppm〜−5000ppmに追従する必要がある。
図1の加算器18の入力FDIF1、(−SSC_MOD)と出力FDIF2から、以下の式が成り立つ。
FDIF1+(−SSC_MOD)=FDIF2
【0158】
∴ FDIF2+SSC_MOD=FDIF1
【0159】
FDIF1は、シリアルデータ入力のスペクトラム拡散周波数変動量と同等となる。
【0160】
したがって、
図1において、周波数追従ループは、変調周波数30〜33kHzで、周波数偏差:0ppm〜−5000ppmに追従すればよい。
【0161】
また、クロックアンドデータリカバリ回路10Aが検出している周波数偏差情報に関して、シリアルデータ入力の周波数偏差は、過去の位相比較結果を積分器13で積分している。このため、現時点と比べて古い情報を積算した結果である。しかし、
図1の加算器18において、PLLクロック信号周波数偏差の補正に用いられる、PLL30から入力されるSSC_MODは、常に最新情報である(すなわち、加算器18に入力されるSSC_MODの値は、現時点で、PLL30から位相補間器17に入力されるPLLクロック信号周波数変動量に対応する)。
【0162】
このため、本実施形態においては、PLLクロック信号周波数変調分に関しては、古い情報を用いて補正することによる、特性の劣化という問題は生じない。
【0163】
さらに、周波数偏差の傾き(時間変化率)が緩くなれば、クロックアンドデータリカバリ回路内の周波数追従ループの積分器13のカウント数を大きくする(分解能を向上する)ことができ、ロウパスフィルタ特性の向上も期待できる。
【0164】
<周波数追従特性>
図14は、前述した
図28に相当する図である。
図14の(A)乃至(D)の(I)のグラフは、
図13の(A)乃至(D)の(I)と同じものである。実線で囲んだ時間枠160は、PLLクロック信号の周波数が低くなる方向、スペクトラム拡散周波数変調されたシリアルデータの周波数が高くなる方向であり、このときの動作イメージとして、シリアルデータと抽出クロック信号の位相関係を、
図14の(E)に模式的に示している。
【0165】
時間枠160で囲ったところの左端の時刻であるとする。つまり、
PLLクロック信号周波数は−2500ppm(SSC_MOD=−2500ppm)であり、これから、−5000ppmに向かうところである。
【0166】
シリアルデータ入力周波数は−2500ppmであり、これから0ppmに向かうところ、クロックアンドデータリカバリ回路内の周波数追従ループのFDIF1=−2500ppm、
FDIF2=FDIF1−SSC_MOD=−2500ppm−(−2500ppm)=0ppm
である。
【0167】
図14(D)のCDR周波数追従ループが検出する周波数偏差において、FDIF1に(−SSC_MOD)を加算した値が、FDIF2であり、CDR周波数追従ループが検出する周波数偏差は見掛け上、FDIF1の0〜−5000ppmの範囲となる。
【0168】
図14の(E)の波形を説明する。
図14(E)の(1)の波形は、クロック信号にもシリアルデータにもSSCを掛けず周波数が常に一定であり、FDIF2=0ppmを保ち、クロックアンドデータリカバリ回路が位相制御を全くしなかった場合の時間枠160の始まり(左端)と終わり(右端)のシリアルデータと抽出クロック信号の波形を示している。この場合、抽出クロック信号は、シリアルデータ入力の真ん中をサンプリングし続ける。
【0169】
しかし、実際には、クロック信号とシリアルデータにそれぞれSSCがかかり、シリアルデータ入力の周波数は高くなる方向である。一方、PLLクロック信号の周波数は低くなるが、クロックアンドデータリカバリ回路内の周波数追従ループが停止していても(FDIF1=−2500ppmのまま固定)、抽出クロック信号の周波数は変わらない。
【0170】
これは、例えば、PLLクロック信号周波数が−3000ppmに低くなると、SSC_MODも−3000ppmに下がり、
FDIF2=FDIF1−(SSC_MOD)=−2500ppm−(−3000ppm)=+500ppm
となるので、抽出クロック信号周波数は、
(PLLクロック信号周波数)+(FDIF2による制御)=−3000+500=−2500ppm
となるからである。
【0171】
従って、
図14(E)の(2)の波形のように、抽出クロック信号の位相は変わらない。
図14(E)の(2)の波形は、クロック信号とシリアルデータにそれぞれSSCがかかり、クロックアンドデータリカバリ回路内の位相追従ループと周波数追従ループが位相制御を行わない場合(SSC_MODによる周波数追従ループでの周波数偏差の補正は有効)の、時間枠160の始まり(左端)と終わり(右端)のシリアルデータと抽出クロック信号の波形を示している。データ信号の位相が速くなるが、抽出クロック信号の位相は変わらない。このため、
図14(E)の(2)の波形は、
図28の(E)の(2)と比べて、抽出クロック信号とシリアルデータの位相のずれは、小さくなっている。
【0172】
最後に、
図14(E)の(3)の波形は、PLLクロック信号とシリアルデータにそれぞれSSCがかかり、クロックアンドデータリカバリ回路内の位相追従ループは位相制御しないが、周波数追従ループが位相制御を行った場合の、時間枠160の始まり(左端)と終わり(右端)のシリアルデータと抽出クロック信号の波形を示している。
【0173】
実施形態1の作用効果を説明する。実施形態1によれば、クロックアンドデータリカバリ回路10Aの周波数追従ループは、変調周波数30kHz〜33kHzに相当する周期で、周波数変調0ppm〜−5000ppmの範囲に追従すればよく、クロックアンドデータリカバリ回路10Aに対する負荷が半分に軽くなる。さらに、特性(例えばジッタトレランス特性)が改善される。
【0174】
実施形態1においては、周波数追従ループ101の積分器13の出力に接続された加算器18にPLL30から入力されるSSC_MODは、現時点でPLL30から位相補間器17に入力されるPLLクロック信号周波数変動量に対応している(PLLクロック信号の周波数変動量はSSC_MODで規定される)。このため、古い情報を用いて補正することによる、特性の劣化という問題は生じない。
【0175】
また、CDR周波数追従ループで検出される周波数偏差(シリアルデータ入力周波数とPLLクロック周波数の周波数偏差)の傾き(時間変化率)が緩くなるため、クロックアンドデータリカバリ回路10A内の周波数追従ループの積分器13のカウント数を大きくする(分解能を向上する)ことができ、ロウパスフィルタ特性の向上も期待できる。
【0176】
<実施形態1の変形例>
実施形態1の変形例について説明する。変形例1の構成は、前記実施形態1と同一であるが、シリアルデータ入力がスペクトラム拡散周波数変調されていない場合にも有効である。
図15(A)に示すように、PLLクロック信号は、スペクトラム拡散周波数変調されているが、シリアルデータ入力の周波数は、
図15の(B)に示すように、一定(0ppm)である。
図15(C)に示すように、(シリアルデータ入力周波数)−(PLLクロック周波数)は、0ppm〜+5000ppmで変化する三角波形(鋸波)であり、
図15(D)に示すように、CDR周波数追従ループが検出する周波数偏差において、FDIF2は、0ppm〜+5000ppmで変化し、FDIF1は0ppm付近で変化しない。
【0177】
変形例においては、クロックアンドデータリカバリ回路の周波数追従ループは、0ppm(FDIF1)に追従すればよい。
【0178】
このように、実施形態1は、シリアルデータ入力がスペクトラム拡散周波数変調されていない場合にも有効である。この場合、シリアルデータ入力周波数とPLLクロック信号周波数の周波数偏差に追従する必要はない。
【0179】
<実施形態2>
図16は、実施形態2の構成を示す図である。前記実施形態1では、積分器13の後の加算器18でクロック信号スペクトラム拡散周波数変動量を加算していたが、加算器18を積分器13の手前(入力側)に移すことができる。このように構成されたクロックアンドデータリカバリ回路10Bを実施形態2として
図16に示す。積分器13の手前に加算する場合は、スペクトラム拡散周波数変調の微分(周波数変調波形を時間微分した情報)、つまり、周波数変調曲線(周波数プロファイル)の傾きを加算することになる。従って、
図16では、位相検出器12、加算器19、積分器13、パターン発生器15を経て、混合器16を通るパスを含むループが、周波数追従ループ101を構成し、位相検出器12、積分器14を経て混合器16を通るパスを含むループが位相追従ループ102を構成する。
【0180】
スペクトラム拡散周波数変調の傾きは、スペクトラム拡散周波数変調の傾きの大きさ(SSC_DF)(0以上)と、傾きの方向(SSC_DIR)(プラスまたはマイナス)の2つで表現できることから、
図16の構成で実現できる。
【0181】
加算器19では、スペクトラム拡散周波数変調の変動パターン(例えば三角波)の傾きの方向(SSC_DIR)に応じて、UP1/DOWN1に対して、傾きの大きさ(SSC_DF)を加算するか減算するかを切り替える。
【0182】
スペクトラム拡散周波数変調の変動パターン(例えば三角波)の傾きの方向がマイナスの場合は加算、
スペクトラム拡散周波数変調の変動パターン(例えば三角波)の傾きの方向がプラスの場合は減算である。
【0183】
図17は、PLL30のSSCプロファイルの変動パターンが三角波の場合、スペクトラム拡散周波数変調の傾きの大きさと傾きの方向を説明する図である。
図17の(A)はSSCプロファイル(周波数変動パターン)である。
図17の(B)は、
図17(A)のPLLクロック信号周波数の傾きを示している。スペクトラム拡散周波数変調の傾きは、プラス値とマイナス値を交互にとるが、これらの絶対値は常に一定である。
【0184】
スペクトラム拡散周波数変調の傾きの大きさSSC_DFとは、この絶対値であり、傾きの方向SSC_DIRとは符号(プラス、マイナス)に相当する。
【0185】
<加算器>
図18は、
図16の加算器19をデジタル回路で構成した一例を示す図である。
図18において、スペクトラム拡散周波数変調の傾きの大きさSSC_DFは、分数で与えられるものとする。加算器191では、フリップフロップ193(1クロックサイクル前の時点での演算結果)と、SSC_DF(分子)を加算する。除算器192では、加算器191の加算結果を、SSC_DF(分母)で整数の割り算を行ない、商と余りを計算する。余りは、フリップフロップ193に入力される。商は、加算器194で、UP1/DOWN1に対して、加算される。
【0186】
加算器194で加算する際に、SSC_DIRがプラスであれば、商の符号を反転してUP1/DOWN1に加算する。SSC_DIRがマイナスであれば、商をUP1/DOWN1に加算する。
【0187】
フリップフロップ193は、余りを表現するのに必要なだけのビット数(余りの最大値が63の場合、6ビット)で構成される。
【0188】
なお、
図18には、明示されていないが、スペクトラム拡散周波数変調の傾きの方向がプラスからマイナス、又はマイナスからプラスに変化した場合に、
図18のフリップフロップ193をリセットするようにしてもよい。
【0189】
<加算器19の動作>
図18の加算器19の動作を説明する。例としてスペクトラム拡散周波数変調の傾きの大きさSSC_DF=1/64とする。SSC_DFの分子は1、分母は64である。
【0190】
FF193の出力は、0→1→・・・→63と、1つづつ増加し、次のクロック信号で、FF193の出力と、SSC_DF(分子)の加算結果は64となる。
【0191】
このとき、除算器192の商は+1となり、UP1/DOWN1に対して、SSC_DIRに応じて、+1または−1を加算する。
【0192】
除算器192の余りは、0となり、FF193は0となる。したがって、64クロックサイクルに1回の割合で、UP1/DOWN1に対して、+1または−1を加算することになる。
【0193】
この結果、UP1/DOWN1に1/64を加算しているのと、同等の効果となる。具体的な数値例を以下に示す。
【0194】
<条件2>
・データレート:5.0[Gbps];
・PLLクロック信号:2.5[GHz]で、30[kHz]周期で0〜−5000ppmの三角波変調が掛かったクロック信号;
・位相検出器12の出力信号周波数(=積分器13、14、パターン発生器15、混合
器16、加算器19の動作周波数):1.25[GHz];
・位相補間器17の分解能:1ステップは受信データ1UIの1/32に相当する;
・周波数追従ループの積分器13(
図8):1段目のカウンタを8(入力されるUPが8回多くなったらUPを出力しカウンタリセット、DOWNが8回多くなったらDOWNを出力しカウンタリセット)とする;
・パターン発生器15(
図9)のN:64
【0195】
<数値例>
以上の条件のもと、FDIF3=1当りの周波数偏差の大きさを計算する。
【0196】
FDIF3=1の場合、パターン発生器15の出力UPDOWN4は、1.25GHz(データレートの1/4に相当する)のクロック信号64周期に、1回の確率で、+1を出力する。UPDOWN4=+1により、クロック信号の位相は、(1/32)UIシフトする。
従って、FDIF3=1当り、
(1/4)×(1/64)×(1/32)×1000000=122.07[ppm]
の周波数偏差に相当するUPDOWN4を発生していることになる。
【0197】
次に、SSC_DFの最適値を計算する。
【0198】
周波数追従ループの積分器13の1段目のカウンタ(
図8の131)は8であるから、UPDOWN6=1当りの周波数偏差は、
122.07ppm/8=15.26ppm
である。
【0199】
クロック信号のスペクトラム拡散周波数変調の傾きは、33usで10000ppmの変動となることから、
10000ppm/33us。
【0200】
10000ppm/33us=15.26ppm/50.4ns(nano second)であることから、50.4nsの間に、UPDOWN6が1変化するように加算すればよい。
【0201】
位相比較器12出力以降の動作周波数は、1.25GHz=0.8nsであることから、50.4ns/0.8ns=63クロックサイクルに1回、SSC傾きの方向に応じて、1を加算または減算すればよい。
【0202】
SSC_DFを分数で表すと、
SSC_DF=1/63
となる。
【0203】
図18の本実施形態では、
SSC_DF(分子)=1、
SSC_DF(分母)=M=63
とすればよい。
【0204】
<SSC_DIR>
次に、SSC_DIRの生成方法について説明する。
図31を参照すると、S_UDの値が0→1→2・・・→15→16と時間とともに大きくなる場合は、周波数変調が大きくなり、PLLクロック信号周波数は時間ともに低くなる。S_UDが16→15→14・・・→1と時間とともに小さくなる場合には、周波数変調が0に近くなり、PLLクロック信号周波数は高くなる。
【0205】
従って、
図31の(A)の周波数プロファイル(周波数変動パターン)の場合、
S_UDが大きくなる期間は、SSC_DIRをマイナス、
S_UDが小さくなる期間は、SSC_DIRをプラス、
とすればよい。
【0206】
S_UDを更新する方向(時間とともに増加又は減少)に応じて、SSC_DIRが決まるので、S_UDを生成すると同時に、SSC_DIRを容易に生成することができる。
【0207】
前記実施形態1では、PLL30からクロックアンドデータリカバリ回路10Aに対して、SSC_MOD(クロック信号のスペクトラム拡散周波数変動量)を渡している。SSC_MODは変調周波数30〜33kHzで変化する。
【0208】
一般的には、クロック信号のスペクトラム拡散周波数変動量は、クロックアンドデータリカバリ回路動作クロック信号とは非同期であるため、この信号の受け渡しには、注意が必要である。具体的には、バイナリコードではなく、グレイコード化して1ビットのみ変化するようにした方がよい。
【0209】
実施形態2において、クロック信号の周波数変動パターンが三角波の場合(SSCが三角波変調の場合)、スペクトラム拡散周波数変調の傾きの大きさは常に一定である。
【0210】
スペクトラム拡散周波数変調の傾きの方向は、プラス方向(周波数が高くなる)かマイナス方向(周波数が低くなる)かの2種類しかない。このため、スペクトラム拡散周波数変調の傾きの方向は1ビットで表現できる。これが、変調周波数30〜33kHzで変化する。つまり、変化する信号は、傾きの方向1ビットのみであることから、PLL30からクロックアンドデータリカバリ回路10Bへの受け渡しを簡易化する。実施形態2によれば、前記実施形態1の作用効果に加えて、PLL30からクロックアンドデータリカバリ回路10Bへの受け渡しを簡易化するという作用効果を奏する。
【0211】
<実施形態3>
図19は、実施形態3の構成を示す図である。
図1の前記実施形態1において位相追従ループに配置されていた積分器14を、混合器16の後段に、移動させたものである。すなわち、
図19に示すように、実施形態3では、積分器14を、混合器16の後段に配置し、混合器16の出力をUPDOWN7としている。このように構成されたクロックアンドデータリカバリ回路10Cを
図19に示す。従って、
図19では、位相検出器12、積分器13、加算器18、パターン発生器15を経て、混合器16を通るパスを含むループが、周波数追従ループ101を構成し、位相検出器12から直接混合器16を通るパスを含むループが位相追従ループ102を構成する。
【0212】
図1等を参照に示した前記実施形態1のように、混合器16の入力UPDOWN2(積分器14の出力)とUPDOWN4(パターン発生器15の出力)を単純に加算すると、
図20に示すように、混合器16の出力UPDOWN5に、時間軸上、粗密が発生する。
【0213】
UPDOWN2は、5クロックサイクルに1回+1、
UPDOWN4は、8クロックサイクルに1回+1
とする。両者を加算した結果、UPDOWN5には、粗密が発生する。
【0214】
図20では、UPDOWN5は、
疎(疎で示す時間範囲内に1区間相当のパルス幅のパルスが1つ)、
密(密で示す時間範囲内に2区間相当のパルス幅のパルスが1つ)、
密(疎で示す範囲の期間内に1区間相当のパルス幅のパルスが1区間を置いて2つ)、
疎(疎で示す時間範囲内にパルス無し)
となる。
【0215】
実施形態3では、
図1の実施形態1の混合器16の前段にあった積分器14を、混合器16の後段に移すことで、混合器16の出力UPDOWN7の疎密を、平滑化(平均化)させる。
【0216】
積分器14は、前記第1の実施形態の積分器14と同様、UP/DOWNカウンタで構成される。
【0217】
混合器16は、
図10に示した構成とされ、UPDOWN2の代わりに、位相検出器12の出力UP1/DOWN1を加算し、加算結果をUPDOWN7として出力する。
【0218】
実施形態3によれば、混合器16の出力UPDOWN7の疎密を平滑化することで、特性を改善することができる。
【0219】
<実施形態4>
図21は、実施形態4の構成例を示す図である。
図21を参照すると、実施形態4は、
図16の前記実施形態2から、位相追従ループの積分器14を、混合器16の後段に移動させたものである。
図21の加算器19は、積分器13の前段に配置され、
図16の実施形態2の加算器19と同一構成とされ、PLLクロック信号のスペクトラム拡散周波数変調の周波数変動パターンの傾きの大きさSSC_DFを傾きの方向SSC_DIRに基づき、位相検出器12の出力UP1/DOWN1に加減算した値UPDOWN6を積分器13に入力する。
図21の加算器19は、前記実施形態2と同様、
図18の構成とされる。 このように構成されたクロックアンドデータリカバリ回路10Dを
図21に示す。従って、
図21では、位相検出器12、加算器19、積分器13、パターン発生器15を経て、混合器16を通るパスを含むループが、周波数追従ループ101を構成し、位相検出器12から直接混合器16を通るパスを含むループが位相追従ループ102を構成する。
【0220】
実施形態4では、前記実施形態3と同様、混合器16の出力UPDOWN7の疎密を平滑化(平均化)させる。
【0221】
実施形態4においても、クロック信号の周波数変動パターンが三角波の場合(SSCが三角波変調の場合)、スペクトラム拡散周波数変調の傾きの大きさは常に一定である。傾きの方向は、プラス方向(周波数が高くなる)かマイナス方向(周波数が低くなる)かの2種類しかないため、傾きの方向は1ビットで表現できる。これが、変調周波数30〜33kHzで変化する。つまり、変化する信号は、傾きの方向1ビットのみであることから、PLL30からクロックアンドデータリカバリ回路10Dへの受け渡しを簡易化する。
【0222】
<実施形態5>
図22は、実施形態5の構成例を示す図である。
図22を参照すると、SSC_DFは制御回路20から出力される。PLLクロック信号の周波数変動パターンが三角波(三角波変調)の場合(SSCが三角波変調の場合)、スペクトラム拡散周波数変調の傾きの大きさSSC_DFは、常に、一定である(傾きの方向が0ppmから−5000ppmへの単調減少時の傾きの方向は−、−5000ppmから0ppmへの単調増加時の傾きの方向は+、ただし、単調減少時と単調増加時において、傾きの大きさは一定)。すなわち、スペクトラム拡散周波数変調として三角波変調を採用する場合、SSC_DFは固定値である。なお、
図22では、周波数追従ループ101と位相追従ループ102との構成は
図21と同様である。
【0223】
SSC_DFが固定値である場合、SSC_DFを、PLL30(
図29のSSCコントローラ68)内で演算する必要はない。SSC設定情報である、変調周波数(例えば30kHz)と最大スペクトラム拡散周波数変動量(例えば−5000ppm)から計算で求めることができる。計算方法は、前記<条件2>で計算した<数値例>の通りである。
【0224】
実施形態5では、クロックアンドデータリカバリ回路10E、PLL30とは別に、制御回路20を備えている。制御回路20から、PLL30に対して、SSC設定情報(変調周波数と最大スペクトラム拡散周波数変動量)を出力し、PLL30は、これに応じて、PLLクロック信号にSSCをかける。
【0225】
一方、制御回路20は、スペクトラム拡散周波数変調傾きSSC_DFを計算し、SSC_DFを、クロックアンドデータリカバリ回路10Eの加算器19に対して出力している。なお、クロックアンドデータリカバリ回路10Eは、
図21の前実施形態4と同一である。積分器13の前段に配置される加算器19の構成は、
図18と同一であるため、説明は省略する。
【0226】
実施形態5によれば、SSCの周波数変調として三角波変調を採用する場合において、PLL30(
図29のSSCコントローラ68)内でスペクトラム拡散周波数変調の傾きの大きさSSC_DFの演算を不要とし、PLLの回路規模の縮減、回路の消費電力削減に貢献する。
【0227】
<実施形態6>
図23は、実施形態6の構成を示す図である。
図23は、前述した
図25に対応し、前記した実施形態(実施形態1乃至4)のクロックアンドデータリカバリ回路(10A〜10D)を搭載したSerdesの構成の一例が示されている。
図23に示すように、1つのPLL30に対して、1つ以上の送信回路43と1つ以上の受信回路41が接続されている。受信回路41内に、クロックアンドデータリカバリ回路(前述した10A、10B、10C、10Dのいずれか)と、クロックアンドデータリカバリ回路(前述した10A、10B、10C、10Dのいずれか)で抽出されたシリアルデータを抽出クロック信号を用いてパラレルデータに変換するシリアルパラレル変換回路42を備え、抽出クロック信号及び、シリアルパラレル変換回路42からのパラレルデータは不図示の内部回路に供給される。
【0228】
PLL30は、SSCプロファイル情報(スペクトラム拡散周波数変動量でも、スペクトラム拡散周波数変調の傾き(微分)でもよい)を出力し、1つ以上のクロックアンドデータリカバリ回路は、この情報を受けて、クロックとデータのリカバリを行う。この構成のSerdesは、スペクトラム拡散周波数変調されたクロック信号で送信回路を動作させることにより、スペクトラム拡散周波数変調されたデータを出力することができる。
【0229】
実施形態6において、クロックアンドデータリカバリ回路(10A〜10D)では、SSCプロファイル情報を利用することで、前記実施形態1乃至実施形態4で説明したのと同等な作用効果を奏する。
【0230】
<実施形態7>
図24は、実施形態7のSerdesの構成例を示す図である。実施形態7では、受信回路41は、前記実施形態5のクロックアンドデータリカバリ回路10Eを備えている。
【0231】
制御回路20は、
図22の前記実施形態5と同様、PLL30に対してSSCの設定を行う。また制御回路20からスペクトラム拡散周波数変調の傾きSSC_DFがクロックアンドデータリカバリ回路10Eに入力され、PLL30から傾きSSC_DIRがクロックアンドデータリカバリ回路10Eに入力される。なお、制御回路20、クロックアンドデータリカバリ回路10Eの構成、動作は前記実施形態5と同一であるため、説明は省略する。
【0232】
実施形態7によれば、SSCの周波数変調として三角波変調を採用する場合において、PLL30(
図29のSSCコントローラ68)内でスペクトラム拡散周波数変調の傾きの大きさSSC_DFの演算を不要とし、PLL30の回路規模の縮減、回路の消費電力削減に貢献する。
【0233】
以上の説明において、SSC_MOD、SSC_DFはデジタル量で、積分器、パターン発生器、混合器、加算器もデジタル回路で説明してきたが、アナログ量(電圧または電流)を用いたアナログ回路であってもよい。あるいは、PLLをデジタル回路(例えば完全デジタルPLL等)で構成してもよい。また、用途によっては、SSCクロック信号を生成する回路は、SSC機能付PLLに限らず、基準クロック信号からSSCクロックを生成するシンセサイザ等、任意のSSCクロック生成器であってもよい。
【0234】
また、上記実施形態、実施形態では、SSCとして、1周期で、周波数fcから、(1−δ)fcに下がり(δは拡散率)、fcに戻るダウン拡散について説明したが、1周期で周波数fcから(1+δ)fcに上がったのち、fcに戻るアップ拡散についても、例えば
図1、
図16における加算器18、19におけるSSC_MOD(SSC_DF)の符号をダウン拡散の場合に対して反転させることで、同様にして適用できる。さらに1周期で周波数(1−δ)fcから(1+δ)fcに上がったのち、(1−δ)fcに戻るセンター拡散についても、同様にして適用できる。
【0235】
本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は前記実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。