(58)【調査した分野】(Int.Cl.,DB名)
前記位相補間器は、前記積算の再開後、前記デシリアライザから出力された前記パラレルデータの区切りが再び論理的に正しくない場合、前記デシリアライザから出力された前記パラレルデータの区切りが論理的に正しいと検出されるまで、前記積算結果に応じて決定された前記位相調整量で前記処理クロックの位相を前記シリアルデータの1ビット分シフトさせることを繰り返す、請求項4に記載の受信回路。
前記制御部は、前記位相補間器が前記処理クロックの位相を前記シリアルデータの1ビット分シフトさせるまでの調整刻みの長さを、前記積算結果に応じて決定する、請求項1に記載の受信回路。
前記位相補間器は、前記積算値が第1の負値よりも小さい場合、前記積算値が前記第1の負値よりも大きな場合とは逆方向に、前記処理クロックの位相をシフトさせる、請求項8に記載の受信回路。
【発明の概要】
【発明が解決しようとする課題】
【0005】
図1は、データをCDRで受信する受信回路1の一例を示す構成図である。ラッチ回路3は、シリアルデータSIN(受信データ)を処理クロックCLKのエッジタイミングでラッチする。デシリアライザ6は、処理クロックCLKが分周器5により分周されたクロックに従って、ラッチ回路3の出力データDTをパラレルデータPOUTにデシリアライズする。位相デジタル変換器(PDC:Phase to Digital Converter)7は、デシリアライザ6から出力されるパラレルデータPOUTを比較処理して、処理クロックCLKの位相がシリアルデータSINの位相に比べて進んでいるか遅れているかを示す位相情報コードPDCCODEを生成する。デジタルフィルタ(DF:Digital Filter)8は、PDC7から出力される位相情報コードPDCCODEを累積積分して時間平均し、処理クロックCLKの位相シフト量(位相調整量)を指示する位相調整コードPICODEを出力する。位相補間器(PI:Phase Interpolator)9は、基準クロックRCKを位相調整コードPICODEに応じて位相シフトさせた処理クロックCLKを出力する。基準クロックRCKは、ソースクロックCKに基づいてPLL(Phase Locked Loop)回路2により生成される。
【0006】
受信回路1は、このような構成を備えることにより、シリアルデータSINに含まれるジッタ量に応じて、処理クロックCLKの立ち上がりエッジがシリアルデータSINのアイパターン(eye pattern)の中心近辺に位置するように処理クロックCLKの位相をPI9を含むCDRループで調整する。これにより、処理クロックCLKがシリアルデータSINの論理判定用のクロックとして再生されると共に、送信データがこの再生された処理クロックCLKを使用して再生される。
【0007】
ところで、デシリアライザ6は、処理クロックCLKが分周器5で分周されたクロックを再生クロック(recovered clock)RCCKとして出力する。そして、デシリアライザ6は、再生クロックRCCKと共にパラレルデータPOUTを受信回路1よりも上位の外部回路に向けて出力する。
【0008】
しかしながら、デシリアライザ6は、通常、シリアルデータSINをたまたまビットロックしたタイミングからシリアルデータSINを複数のビット単位で区切って、パラレルデータPOUTを生成する。そのため、受信回路1よりも上位の外部回路は、パラレルデータPOUTが、シリアルデータSINのビット列のうちのどこのビットを区切ってパラレル化されたデータであるのかわからない。したがって、シリアルデータSINのビット列に論理的な区切りがある場合、受信回路1よりも上位のデータアライン回路10は、パラレルデータPOUTの位置合わせ(並べ替え)をする必要がある。
【0009】
図2は、データアライン回路10によるデータアライン方法の一例を示すタイミングチャートである。例えば10ビット単位の論理的な区切りがある場合、シリアルデータSINは10通りのデシリアライズのされ方がある(
図2は、10通りのうちの3通りのみを示す)。そのため、パラレルデータPOUTがデータアライン回路10によりアラインされて出力されたアライメントデータAOUTには、10通りのレイテンシが発生する可能性がある。
【0010】
また、データアライン回路10は、例えば
図3のように、前サイクルのデータと現サイクルのデータとを連結(concatenate)して連結データconc_data[1:19]を生成する連結回路11と、連結データconc_data[1:19]から論理的な区切りを検出する区切り検出回路12とを有する。そして、データアライン回路10は、連結データconc_data[1:19]から生成された10通りのデータ候補の中から、区切り検出回路12で検出された論理的な区切りと一致するデータを選択し、その選択したデータを、アラインのとれたアライメントデータAOUTとして出力する選択回路13を有する。
【0011】
このように、パラレルデータPOUTがシリアルデータSINのビット列のうちのどこのビットを区切ってパラレル化されたのか、受信回路1の後段の回路側でわからない場合、選択回路13等の回路が必要となるため、受信回路1の後段の回路構成が複雑になる。
【0012】
そこで、受信回路の後段の回路構成を簡素化できる、受信回路、集積回路及び受信方法の提供を目的とする。
【課題を解決するための手段】
【0013】
一つの案では、
処理クロックに従ってシリアルデータをパラレルデータに変換するデシリアライザと、
前記パラレルデータに基づいて、前記処理クロックと前記シリアルデータとの位相差を検出する位相差検出部と、
前記デシリアライザから出力された前記パラレルデータの区切りが論理的に正しくない場合、前記処理クロックの位相を前記シリアルデータの1ビット分シフトさせるのに必要な位相調整量を、前記位相差の積算結果に応じて決定する制御部と、
前記積算結果に応じて決定された前記位相調整量で前記処理クロックの位相を前記シリアルデータの1ビット分シフトさせる位相補間器とを備える、受信回路が提供される。
【発明の効果】
【0014】
一態様によれば、受信回路の後段の回路構成の簡素化が可能となる。
【発明を実施するための形態】
【0016】
図4は、本実施形態に係る受信回路21を備えた集積回路40の一例を示す構成図である。集積回路40は、シリアルデータとパラレルデータを相互変換するシリアライザデシリアライザ(SerDes)である。集積回路40は、例えば、PLL22と、送信回路41と、受信回路21と、区切り検出回路32とを備える。
【0017】
PLL22は、ソースクロックCKに基づいて基準クロックRCKを生成するクロック生成回路である。PLL22は、基準クロックRCKを送信回路41及び受信回路21に向けて出力する。
【0018】
送信回路41は、伝送クロックTCKと共に入力されるパラレルデータPINを、基準クロックRCKに従ってシリアルデータSOUTに変換して出力するシリアライザ回路である。
【0019】
受信回路21は、シリアルデータSINを基準クロックRCKに従ってパラレルデータPOUTに変換し、パラレルデータPOUTを再生クロックRCCKと共に出力するデシリアライザ回路である。
【0020】
区切り検出回路32は、受信回路21から供給される再生クロックRCCK及びパラレルデータPOUTに基づいて、受信回路21から供給されるパラレルデータPOUTの区切りが論理的に正しいか否かを検出する。区切り検出回路32は、パラレルデータPOUTが論理的に正しい区切り位置で出力されていない場合、受信回路21の内部で使用される処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる指示(BSD:Bit Shift Direction)を出力する。
【0021】
図5は、シリアルデータSINをCDRで受信する受信回路21の一例を示す構成図である。受信回路21は、ラッチ回路23と、分周器25と、デシリアライザ26と、位相デジタル変換器(PDC)17と、制御部35と、位相補間器(PI)29とを備える。制御部35は、デジタルフィルタ(DF)18と、ビットシフトシーケンサ(BSS:Bit Shift Sequencer)34とを有する。
【0022】
ラッチ回路23は、処理クロックCLKの立ち上がり又は立ち下がりのエッジタイミングでシリアルデータSINをラッチする。
【0023】
分周器25は、処理クロックCLKを所定の比率で分周し、分周された再生クロックRCCKを出力する。再生クロックRCCKは、デシリアライザ26、PDC17及びDF18に動作クロックとして与えられるとともに、受信回路21の後段の回路(区切り検出回路32等の回路)に転送される。
【0024】
デシリアライザ26は、処理クロックCLKに従って、シリアルデータSINをパラレルデータPOUTに変換して出力する。デシリアライザ26は、処理クロックCLKが分周器5により分周された再生クロックRCCKに従って、ラッチ回路23のシリアルの出力データDTを、所定の列数(例えば、16列)のパラレルデータPOUTにデシリアライズする。また、デシリアライザ26は、シリアルデータSINのバウンダリ(boundary)を検出してバウンダリ検出データBTを出力する。
【0025】
位相デジタル変換器(PDC)17は、パラレルデータPOUTに基づいて、処理クロックCLKとシリアルデータSINとの位相差を検出する位相差検出部の一例である。PDC17は、例えば、デシリアライザ26から出力されるパラレルデータPOUTとバウンダリ検出データBTとを比較処理して、処理クロックCLKの位相がシリアルデータSINの位相に比べて進んでいるか遅れているかを示す位相情報コードPDCCODEを再生クロックRCCKに従って生成する。例えば、PDC17は、処理クロックCLKの立ち上がりエッジのタイミング(シリアルデータSINのサンプリングタイミング)が所定の理想タイミングよりも早いか遅いかを数値化(+1,0,1)して出力する。
【0026】
例えば、PDC17は、処理クロックCLKの位相がシリアルデータSINの位相に比べて進んでいることが検出される場合、処理クロックCLKの位相を遅らせる必要があることを示す「−1」の位相情報コードPDCCODEを出力する。また、例えば、PDC17は、処理クロックCLKの位相がシリアルデータSINの位相に比べて遅れていることが検出される場合、処理クロックCLKの位相を進める必要があることを示す「+1」の位相情報コードPDCCODEを出力する。また、例えば、PDC17は、処理クロックCLKの位相がシリアルデータSINの位相と同じであることが検出される場合、処理クロックCLKの位相を調整する必要がないことを示す「0」の位相情報コードPDCCODEを出力する。
【0027】
区切り検出回路32は、デシリアライザ26から出力されるパラレルデータPOUTのビット列を監視し、ビット列の並び方に基づいて、パラレルデータPOUTの区切りが論理的に正しいか否かを検出する。区切り検出回路32は、パラレルデータPOUTの区切りが論理的に正しくないと検出した場合、処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる指示(BSD:Bit Shift Direction)を出力する。区切り検出回路32は、パラレルデータPOUTの区切りが論理的に正しいと検出されるまで、処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる指示BSDの出力を繰り返す。
【0028】
制御部35は、パラレルデータPOUTの区切りが論理的に正しくないと区切り検出回路32によって検出された場合、処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせるのに必要な位相調整量(位相シフト量)を、PDC17で検出された位相差の積算結果に応じて決定する。例えば、制御部35は、処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる指示BSDを区切り検出回路32から受けた場合、当該位相調整量を指示する位相調整コードPICODEをPDC17で検出された位相差の積算結果に応じて決定する。
【0029】
制御部35は、デジタルフィルタ(DF)18と、ビットシフトシーケンサ(BSS)34とを有する。
【0030】
デジタルフィルタ(DF)18は、PDC17から出力される位相情報コードPDCCODEを累積積分して時間平均することにより、PDC17で検出された位相差の積算結果を算出し、処理クロックCLKの位相シフト量(位相調整量)を指示する位相調整コードPICODEを出力する位相調整回路である。
【0031】
ビットシフトシーケンサ(BSS)34は、区切り検出回路32から指示BSDを受けた場合、PDC17で検出された位相差の積算結果に基づいて、位相調整コードPICODEに加えられる位相補正量(Bit shift add)を決定するシーケンサ回路である。PDC17で検出された位相差は、DF18で積算される。PDC17で検出された位相差の積算結果は、例えば、シリアルデータSINの周波数と処理クロックCLKの周波数との偏差情報(「周波数オフセット量F_offset」ともいう)であり、DF18からBSS34に供給される。DF18は、BSS34から供給される位相補正量(Bit shift add)で補正された位相調整コードPICODEを出力する。
【0032】
位相補間器(PI)29は、制御部35のDF18から出力された位相調整コードPICODEに応じて、処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる。PI29は、基準クロックRCKを位相調整コードPICODEに応じて位相シフトさせた処理クロックCLKを出力する。
【0033】
受信回路21は、このような構成を備えることにより、シリアルデータSINに含まれるジッタ量に応じて、処理クロックCLKの立ち上がりエッジがシリアルデータSINのアイパターン(eye pattern)の中心近辺に位置するように処理クロックCLKの位相をPI29を含むCDRループで調整する。処理クロックCLKがシリアルデータSINの論理判定用のクロックとして再生されると共に、送信データがこの再生された処理クロックCLKを使用して再生される。
【0034】
また、上述のように、PI29は、区切り検出回路32からの指示BSDに基づいて、BSS34から供給される位相補正量(Bit shift add)で補正された位相調整コードPICODEで処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる。これにより、例えば、デシリアライザ26から出力されるパラレルデータPOUTの区切りは論理的に正しくなり、パラレルデータPOUTのレイテンシは最速の状態に固定される。したがって、パラレルデータPOUTを受信する後段の回路はパラレルデータPOUTを論理的に正しく並べ替えなくてもよいので、受信回路21の後段の回路構成の簡素化が可能となる。
【0035】
図6は、デジタルフィルタ18の一例を示す構成図である。デジタルフィルタ18は、例えば、8ビットの周波数レジスタ(Freg[7:0])54と、11ビットの位相レジスタ(Preg[10:0])57とを有する。
【0036】
PDC17から出力される位相情報コードPDCCODEは、1段目のループで周波数レジスタ54に積算され、周波数レジスタ54で積算された積算値は、シリアルデータSINと処理クロックCLKとの周波数偏差(すなわち、周波数オフセット量F_offset)に近似する。周波数レジスタ54の積算値は、例えば、符号付きの8ビットデータである。
【0037】
この1段目のループは、加算器52と、クリップ回路53と、周波数レジスタ54とを有する。加算器52は、位相情報コードPDCCODEと周波数レジスタ54に格納された周波数オフセット量F_offsetとの加算値を出力する。クリップ回路53は、加算器52の出力値を周波数レジスタ54に格納可能な値にクリップする。
【0038】
2段目のループに含まれる位相レジスタ57は、PI29に対して位相調整コードPICODEを指示する。2段目のループは、加算器56と、位相レジスタ57とを有する。加算器56は、周波数オフセット量F_offsetと、位相情報コードPDCCODEを32(=2
5)倍した値と、位相補正量(Bit shift add)との加算値を出力する。加算器56の出力値は、位相レジスタ57で積算される。位相レジスタ57で積算された積算値は、符号なしの整数で位相を表す。
【0039】
例えば、1:10のデシリアライザ26の場合、位相レジスタ57の上位5ビット分が、PI29に対して供給される位相調整コードPICODEである。位相調整コードPICODEの最下位ビットの変化が、PI29の分解能を表す。位相調整コードPICODEが5ビットの場合、PI29の分解能は、1/32(=1/2
5)UIである。UIは、Unit Intervalの略であり、シリアルデータSINの1ビットの期間を表す。
【0040】
図7は、シリアルデータSINと処理クロックCLKとの周波数オフセットが無い場合の周波数レジスタ54に積算された周波数オフセット量F_offsetの挙動の一例を示す。
図8は、シリアルデータSINと処理クロックCLKとの周波数オフセットが無い場合の位相レジスタ57に積算された位相調整コードPICODEの挙動の一例を示す。周波数オフセットが無い場合、周波数オフセット量F_offsetは、零付近に収束し、位相調整コードPICODEは、ある値付近に収束する。
【0041】
図9は、シリアルデータSINと処理クロックCLKとの周波数オフセットがある場合の周波数レジスタ54に積算された周波数オフセット量F_offsetの挙動の一例を示す。
図10は、シリアルデータSINと処理クロックCLKとの周波数オフセットがある場合の位相レジスタ57に積算された位相調整コードPICODEの挙動の一例を示す。一定の周波数オフセットがある場合、周波数オフセット量F_offsetは、その周波数オフセット量に応じた値に収束し、位相調整コードPICODEは、その周波数オフセット量に応じた傾きで増加又は減少する。位相レジスタ57の積算値は、符号なしの整数で位相を表すので、5ビット幅の位相調整コードPICODEは、31から0に折り返される。
【0042】
図11は、位相調整コードPICODEに従って処理クロックCLKの位相をシフトさせるPI29の動作波形の一例を示すタイミングチャートである。PI29は、位相調整コードPICODEに応じて、基準クロックRCKの位相をずらして処理クロックCLKを生成する。位相調整コードPICODEを変化させたとき、処理クロックCLKが位相調整コードPICODEの値になるまでのレイテンシは、PI29の実力に依存する。
【0043】
図12は、シリアルデータSINの受信方法の一例を示すフローチャートである。
図5,6を参照して
図12について説明する。
【0044】
ステップS100で、デシリアライザ26は、処理クロックCLKに従って、シリアルデータSINをパラレルデータPOUTにシリアル−パラレル変換する。ステップS110で、PDC17は、パラレルデータPOUTに基づいて、処理クロックCLKとシリアルデータSINとの位相差を検出する。
【0045】
ステップS120で、区切り検出回路32は、デシリアライザ26から出力されたパラレルデータPOUTの区切りが論理的に正しいか否かを判定する。区切り検出回路32は、パラレルデータPOUTの区切りが論理的に正しいと判定した場合(ステップS120:YES)、処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる指示BSDを出力しない。一方、区切り検出回路32は、パラレルデータPOUTの区切りが論理的に正しくないと判定した場合(ステップS120:NO)、処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる指示BSDを出力する。
【0046】
ステップS130で、制御部35は、ビットシフトの指示BSDを受けると、処理クロックCLKの位相を1ビット分シフトさせるのに必要な位相調整量を指示する位相調整コードPICODEを、周波数レジスタ54に積算された周波数オフセット量F_offsetに応じて決定する。
【0047】
ステップS140で、PI29は、周波数オフセット量F_offsetに応じて制御部35により決定された位相調整コードPICODEで、処理クロックCLKの位相をシリアルデータSINの1ビット分(1UI分)シフトさせる位相調整を行う。
【0048】
例えば、BSS34は、ステップS130で、ビットシフトの指示BSDを受けると、指示BSDを受けた時点の周波数レジスタ54の積算値(周波数オフセット量F_offset)を用いて、1ビットシフトのシーケンスを発動する。
【0049】
BSS34は、1ビットシフトのシーケンスを発動すると、位相情報コードPDCCODEの周波数レジスタ54への積算をスイッチ51(
図6参照)により停止させるループカット指示(Loop Cut Direction:LCD)を出力する。また、BSS34は、1ビットシフトのシーケンスを発動すると、周波数オフセット量F_offsetの位相レジスタ57への積算をスイッチ55により停止させるループカット指示LCDを出力する。ループカット指示LCDの出力により、クロック&データリカバリ(CDR)を行うためのループが切断される。
【0050】
さらに、BSS34は、1ビットシフトのシーケンスを発動すると、位相情報コードPDCCODEの周波数レジスタ54への積算の停止時点の周波数レジスタ54の積算値の大きさに応じて、処理クロックCLKの位相を1UI分シフトさせるまでの調整刻みaの長さを決定する。調整刻みaは、再生クロックRCCKの1サイクル当たりの処理クロックCLKの位相の調整分解能を表す。再生クロックRCCKの1サイクルは、パラレルデータPOUTの1区切り当たりのビット数(ビット幅)に等しい。
【0051】
例えば、BSS34は、周波数オフセット量F_offsetが正値であり且つ周波数オフセット量F_offsetの絶対値が大きいほど、調整刻みaを長くする。これにより、周波数オフセット量F_offsetが大きくても、処理クロックCLKの位相を調整刻みaで徐々に1UI分シフトさせることができる。そして、再生クロックRCCKの周期は処理クロックCLKの位相調整時に大きく変化しないため、再生クロックRCCKのクロック欠けを防止することができる。
【0052】
BSS34は、上記のように決定した調整刻みaで処理クロックCLKの位相が1UI分シフトするまで、位相レジスタ57に位相補正量(Bit shift add)を加算器56によって積算する。
【0053】
また、BSS34は、1ビットシフトのシーケンスを発動すると、位相情報コードPDCCODEの周波数レジスタ54への積算の停止時点の周波数レジスタ54の積算値の大きさに応じて、PI29が処理クロックCLKの位相をシフトさせる方向を変化させる。
【0054】
なお、シリアルデータSINの発振周波数が処理クロックCLKの発振周波数よりも大きいときを、周波数オフセット量F_offsetは正値とし、シリアルデータSINの発振周波数が処理クロックCLKの発振周波数よりも小さいときを、周波数オフセット量F_offsetは負値とする。
【0055】
例えば、BSS34は、周波数オフセット量F_offsetが所定の負値よりも大きな値(正値も含む)の場合、処理クロックCLKの位相が順方向に1UI分進むまで、負の補正量(CODE Shift(-))を位相補正量(Bit shift add)として位相レジスタ57に積算する。
【0056】
一方、BSS34は、周波数オフセット量F_offsetが所定の負値よりも小さな値の場合、処理クロックCLKの位相が順方向に1UI分進むまで、正の補正量(CODE Shift(+))を位相補正量(Bit shift add)として位相レジスタ57に積算する。つまり、PI29は、周波数オフセット量F_offsetが所定の負値よりも小さい場合、周波数オフセット量F_offsetがその所定の負値よりも大きな場合とは逆方向に、処理クロックCLKの位相をシフトさせる。なぜならば、周波数オフセット量F_offsetが負値であり周波数オフセット量F_offsetの絶対値が所定値よりも大きい場合、順方向の位相シフトでは、周波数オフセット量F_offsetを零へ収束させるのが追いつかないおそれがあるからである。
【0057】
PI29は、上記のように位相レジスタ57に積算された位相調整コードPICODEに従って、処理クロックCLKの位相をシリアルデータSINの1ビット分シフトさせる。
【0058】
このように、BSS34は、ビットシフトの指示BSDを受けて1ビットシフトのシーケンスを発動すると、指示BSDを受けた時点の周波数レジスタ54の積算値を参照する。そして、BSS34は、その参照値を用いて、どのようなシーケンスを採用して1ビットシフトするのかを所定の決定方法に従って決定し、ループカット指示LCD及び位相補正量(Bit shift add)をDF18に対して指示する。これにより、PI29は、位相情報コードPDCCODEの周波数レジスタ54への積算の停止時点の周波数レジスタ54の積算値に応じて、処理クロックCLKの位相を1ビット分シフトさせるシーケンスを実行できる。
【0059】
BSS34は、1ビットシフトのシーケンス完了後、位相情報コードPDCCODEの周波数レジスタ54への積算を再開させる。位相情報コードPDCCODEの周波数レジスタ54への積算の再開後、区切り検出回路32は、デシリアライザ26から出力されるパラレルデータPOUTを再度監視する。区切り検出回路32は、パラレルデータPOUTの区切りが再び論理的に正しくないと判定した場合、ビットシフトの指示BSDを再び出力する。PI29は、パラレルデータPOUTの区切りが論理的に正しいと判定されるまで、位相情報コードPDCCODEの周波数レジスタ54への積算の停止時点の周波数レジスタ54の積算値に応じて、処理クロックCLKの位相を1ビット分シフトさせるシーケンスを繰り返す。
【0060】
図13は、BSS34による1ビットシフトのシーケンスの決定方法の一例を示すフローチャートである。
【0061】
ステップS10で、ビットシフトの指示BSDがアサートされると、BSS34は、ループカット指示LCDをアサートし、上述のようにCDRのループを切断する。
【0062】
ステップS20〜S29で、BSS34は、ビットシフトの指示BSDがアサートされた時点での周波数レジスタ54に積算された周波数オフセット量F_offsetに応じて、処理クロックCLKの位相を1ビット分シフトさせる特定のシーケンス動作を決定する。BSS34は、複数のシーケンス動作の候補(ステップS50,S31〜S40)の中から特定のシーケンス動作を決定する。
【0063】
BSS34は、例えば、周波数オフセット量F_offsetと、再生クロックRCCKの1サイクルでPI29に与えることができるコード変化量bとに応じて、処理クロックCLKの位相を1UI分シフトさせる。
【0064】
BSS34は、例えば、周波数オフセット量F_offsetが正値である場合又は負の周波数オフセット量F_offsetの絶対値がコード変化量bよりも小さい場合、負の補正量(CODE Shift(-))を位相レジスタ57に積算する位相調整期間を周波数オフセット量F_offsetの大きさに応じて変化させる(
図14参照)。
図13において、周波数オフセット量F_offsetが正値である場合又は負の周波数オフセット量F_offsetの絶対値がコード変化量bよりも小さい場合とは、ステップS21〜S29のいずれかが選択される場合である。
図13中のFregとは、周波数レジスタ54に格納された積算値であり、周波数オフセット量F_offsetを表す。
【0065】
負の補正量(CODE Shift(-))を位相レジスタ57に積算する位相調整期間では、CDRのループが切断され、周波数レジスタ54に負の補正量(-80)が積算されることで、再生クロックRCCKの1周期で2/32UIの位相をシフトさせることができる。周波数オフセット量F_offsetが考慮されると、調整刻みa(再生クロックRCCKの1周期当たりの処理クロックCLKの位相の調整分解能)は、(2/32+周波数オフセット量F_offsetの考慮分)UIとなる。
【0066】
例えば、BSS34は、ステップS21が成立するとき(-72≦Freg<-56のとき)、中央値-64を用いて、調整刻みaを1/32UI(=(2/32-(64/64)/32)UI)と決定する。よって、PI29は、再生クロックRCCKの32周期分の位相調整期間をかけて、処理クロックCLKの位相を1UI分シフトさせることができる。
【0067】
同様に、BSS34は、ステップS22が成立するとき(-56≦Freg<-40のとき)、中央値-48を用いて、調整刻みaを1.25/32UI(=(2/32-(48/64)/32)UI)と決定する。よって、PI29は、再生クロックRCCKの約25周期分の位相調整期間をかけて、処理クロックCLKの位相を1UI分シフトさせることができる。
【0068】
同様に、BSS34は、ステップS28が成立するとき(40≦Freg<56のとき)、中央値48を用いて、調整刻みaを2.75/32UI(=(2/32+(48/64)/32)UI)と決定する。よって、PI29は、再生クロックRCCKの約11周期分の位相調整期間をかけて、処理クロックCLKの位相を1UI分シフトさせることができる。
【0069】
ステップS60で、BSS34は、処理クロックCLKの位相を1UI分シフトさせた後、CDRのループの切断を解除し、位相情報コードPDCCODEの周波数レジスタ54への積算を再開させる。
【0070】
一方、BSS34は、例えば、負の周波数オフセット量F_offsetの絶対値がコード変化量bよりも大きい場合、正の補正量CODE shift(+))を位相レジスタ57に積算する位相調整期間を(パラレルデータPOUTの1区切り当たりのビット数−1)回設ける(
図16参照)。
図13において、負の周波数オフセット量F_offsetの絶対値がコード変化量bよりも大きい場合とは、ステップS20が成立する場合である。ステップS20が成立する場合、BSS34は、逆回り9ビットシフト処理を行う。
【0071】
図15は、逆回り9ビットシフト処理の一例を示すフローチャートである。負の周波数オフセット量F_offsetの絶対値がコード変化量bよりも大きい場合、順方向の位相シフトでは、周波数オフセット量F_offsetを零へ収束させるのが追いつかないおそれがある。そこで、BSS34は、正の補正量(CODE Shift(+))を位相レジスタ57に積算することを9回実施する。9回実施されることで、順方向への1ビットシフトが実施されることになる。
【0072】
ステップS51で、BSS34は、調整刻みaを3.25/32UI(=(2/32-(80/64)/32)UI)と決定する。よって、PI29は、再生クロックRCCKの約9周期分の位相調整期間をかけて、処理クロックCLKの位相を1UI分シフトさせることができる。ただし、一度に9ビット分の位相シフトが行われると、周波数レジスタ54に格納された周波数オフセット量F_offsetと実際の周波数オフセット量との誤差が大きくなり、正しく9UI分の位相シフトができないおそれがある。
【0073】
そこで、ステップS52において、BSS34は、ステップS51で1UI分の位相シフトをした後のインターバル(
図16参照)にCDRのループの切断を解除して、デシリアライザ26にシリアルデータSINを再度ビットロックさせる。そして、BSS34は、ステップS53で、ステップS51,S52で行われる1ビット分の位相シフトを9回繰り返すことで、順方向への1ビットシフトを完了させる。これにより、周波数レジスタ54に格納された周波数オフセット量F_offsetと実際の周波数オフセット量との誤差の増大を抑えることができる。
【0074】
以上、受信回路、集積回路及び受信方法を実施形態により説明したが、本発明は上記実施形態に限定されるものではない。他の実施形態の一部又は全部との組み合わせや置換などの種々の変形及び改良が、本発明の範囲内で可能である。