"シリアルデータ信号をm倍mは2のべき乗オーバーサンプリングするSERDES回路から出力されたNビットの第1のパラレルデータ信号に基づいてKN/mビットN/mは偶数の第2のパラレルデータ信号を生成するとともに、該SERDES回路から出力された第1のリカバリクロック信号をK分周Kは2のべき乗して第2のリカバリクロック信号を生成し、該第2のパラレルデータ信号と該第2のリカバリクロック信号とを同期して出力するクロックデータリカバリ回路を備えていることを特徴とする半導体集積回路装置。前記クロックデータリカバリ回路は、現在のサイクルにおける前記第1のパラレルデータD01,D11,...,DN-11、および、直前のサイクルにおける前記第1のパラレルデータD00,D10,...,DN-10を保持するレジスタと、Dn0とDn1との間で値が変動した最小のnの値n=0,1,...,N-1を変化点として抽出するとともに、該変化点のmの剰余を求めて、変化点ポインタとして出力する変化点検出回路と、を備えていることを特徴とする、請求項1に記載の半導体集積回路装置。前記変化点検出回路は、Dn0とDn1との間で値の変動がない場合には、前サイクルにおける変化点ポインタの値をそのまま出力することを特徴とする、請求項2に記載の半導体集積回路装置。前記クロックデータリカバリ回路は、前記変化点ポインタをVDとし、直前のサイクルにおける平均化ポインタをVs0として、現在のサイクルにおける平均化ポインタVsを、式Vs=VD-Vs0/mVs0に基づいて計算するとともに、該式において絶対値|VD-Vs0|の値がm/2を超えることがないように円環的に扱い、VD-Vs0の値がm/2となった場合には-m/2とし、Vsの値が0以上m未満となるように該式の右辺にmの整数倍を加え、求めたVsの値を平均化ポインタVsとして出力する平均化回路を備えていることを特徴とする、請求項2または3に記載の半導体集積回路装置。前記クロックデータリカバリ回路は、前記平均化回路から出力された平均化ポインタVsの小数点以下を四捨五入した値をポインタφsとするとともに、ポインタφsの値がmとなった場合にはポインタφsの値を0とし、ポインタφsの値に応じて前記レジスタから読み出すべきデータを指定するサンプリング回路を備えていることを特徴とする、請求項4に記載の半導体集積回路装置。前記クロックデータリカバリ回路は、前記変化点ポインタをVDとし、直前のサイクルにおけるポインタφsをφs0として、VD=φs0modmである場合にはカウンタ値を不変とし、VD=φs1,φs2,...,φsm/2modmである場合にはカウンタ値をインクリメントし、VD=φs-1,φs-2,...,φs-m/21modmである場合にはカウンタ値をデクリメントし、カウンタ値が所定の最大カウンタ値となった場合にはポインタφsをφs=φs01とするとともにカウンタ値をゼロにリセットし、カウンタ値が所定の最小カウンタ値となった場合にはポインタφsをφs=φs0-1とするとともにカウンタ値をゼロにリセットするカウンタ回路を備えていることを特徴とする、請求項2または3に記載の半導体集積回路装置。前記クロックデータリカバリ回路は、前記カウンタ回路により求めたポインタφsの値がmとなった場合にはポインタφsの値を0とし、ポインタφsの値に応じて前記レジスタから読み出すべきデータを指定するサンプリング回路を備えていることを特徴とする、請求項6に記載の半導体集積回路装置。前記サンプリング回路は、現在のサイクルのDnn=0~N-1のうちのDmm=φsm/2-1-m,φsm/2-1,φsm/2-1m,φsm/2-12m,...;0≦m≦N-1を、前記レジスタから読み出すべきデータとして指定することを特徴とする、請求項5または7に記載の半導体集積回路装置。前記サンプリング回路は、直前のサイクルにおける前記ポインタφsの値がm/2であり、現在のサイクルにおける前記ポインタφsの値がm/21である第1の場合には、前記レジスタから読み出すべきデータとしてD0を指定せず、直前のサイクルにおける前記ポインタφsの値がm/21であり、現在のサイクルにおける前記ポインタφsの値がm/2である第2の場合には、前記レジスタから読み出すべきデータとしてD0を指定することを特徴とする、請求項8に記載の半導体集積回路装置。前記サンプリング回路は、前記第1の場合と、前記第2の場合と、これらのいずれの場合にも該当しない第3の場合とを識別する情報信号を出力することを特徴とする、請求項9に記載の半導体集積回路装置。前記クロックデータリカバリ回路は、前記情報信号に応じて、前記第2のクロック信号および前記第2のパラレルデータ信号を生成するデータ処理回路を備えていることを特徴とする、請求項10に記載の半導体集積回路装置。前記データ処理回路は、前記レジスタから出力されたN/m1ビット幅信号をRD0,RD1,...,RDN/mとし、前記第2のパラレルデータ信号をDO0,DO1,...,DOM-1とするとM=KN/m、前記第1の場合にはRD[N/m:0]のうちのRD[N/m-2:0]を、前記第2の場合にはRD[N/m:0]のすべてを、前記第3の場合にはRD[N/m:0]のうちのRD[N/m-1:0]を、それぞれ有効なデータとして出力データDO[M-1:0]に割り当てて出力することを特徴とする、請求項11に記載の半導体集積回路装置。前記データ処理回路は、前記第1のリカバリクロック信号をK分周した、1/2K周期ずつ位相がずれた2K相のクロック信号を生成し、該2K相のクロック信号から選択したクロック信号を前記第2のリカバリクロック信号として出力することを特徴とする、請求項11または12に記載の半導体集積回路装置。前記データ処理回路は、前記第1の場合にはカウンタ値をインクリメントし、前記第2の場合にはカウンタ値をデクリメントし、前記第3の場合にはカウンタ値を不変とし、カウンタ値がN/2mとなった場合には前記2K相のクロック信号のうちの1/2K周期遅れた相のクロック信号を前記第2のリカバリクロック信号として出力し、カウンタ値が-N/2mとなった場合には前記2K相のクロック信号のうちの1/2K周期進んだ相のクロック信号を前記第2のリカバリクロック信号として出力することを特徴とする、請求項13に記載の半導体集積回路装置。シリアルデータ信号をm倍mは2のべき乗オーバーサンプリングして、前記第1のパラレルデータ信号および前記第1のリカバリクロック信号として出力するSERDES回路と、前記クロックデータリカバリ回路と、を備えていることを特徴とする、請求項1ないし14のいずれか1項に記載の半導体集積回路装置。前記SERDES回路から出力された前記第1のパラレルデータ信号および前記第1のリカバリクロック信号を処理する第1のデータ処理回路と、前記クロックデータリカバリ回路から出力された前記第2のパラレルデータ信号および前記第2のリカバリクロック信号を処理する第2のデータ処理回路と、を備えていることを特徴とする、請求項1ないし15のいずれか1項に記載の半導体集積回路装置。前記クロックデータリカバリ回路においてm=m1m1は2のべき乗とした第1のクロックデータリカバリ回路と、前記クロックデータリカバリ回路においてm=m2m2は2のべき乗であってm2≠m1とした第2のクロックデータリカバリ回路と、を備えていることを特徴とする、請求項1ないし15のいずれか1項に記載の半導体集積回路装置。前記第1のクロックデータリカバリ回路および前記第2のクロックデータリカバリ回路は、同一のSERDES回路から前記第1のパラレルデータ信号および前記第1のリカバリクロック信号を受信することを特徴とする、請求項17に記載の半導体集積回路装置。前記SERDES回路から出力された前記第1のパラレルデータ信号および前記第1のリカバリクロック信号を処理する第1のデータ処理回路と、前記第1のクロックデータリカバリ回路から出力された前記第2のパラレルデータ信号および前記第2のリカバリクロック信号を処理する第2のデータ処理回路と、前記第2のクロックデータリカバリ回路から出力された前記第2のパラレルデータ信号および前記第2のリカバリクロック信号を処理する第3のデータ処理回路と、を備えていることを特徴とする、請求項17または18に記載の半導体集積回路装置。前記第1のデータ処理回路および前記第2のデータ処理回路のうちのいずれか、または、前記第1のデータ処理回路ないし前記第3のデータ処理回路のうちのいずれかを稼動状態とし、それ以外を待機状態とする制御回路を備えていることを特徴とする、請求項16または19に記載の半導体集積回路装置。前記制御回路は、前記SERDES回路から出力された前記第1のパラレルデータ信号および前記第1のリカバリクロック信号を参照して、前記第1のデータ処理回路および前記第2のデータ処理回路のうちのいずれを稼動状態とするか、または、前記第1のデータ処理回路ないし前記第3のデータ処理回路のうちのいずれを稼動状態とするかを判定することを特徴とする、請求項20に記載の半導体集積回路装置。前記制御回路は、前記第1のデータ処理回路を稼動状態とする場合には前記第1のクロックデータリカバリ回路および前記第2のクロックデータリカバリ回路を待機状態とし、前記第2のデータ処理回路を稼動状態とする場合には前記第1のクロックデータリカバリ回路を稼動状態とするとともに前記第2のクロックデータリカバリ回路を待機状態とし、前記第3のデータ処理回路を稼動状態とする場合には前記第1のクロックデータリカバリ回路を待機状態とするとともに前記第2のクロックデータリカバリ回路を稼動状態とすることを特徴とする、請求項20または21に記載の半導体集積回路装置。シリアルデータ信号をm倍mは2のべき乗オーバーサンプリングするSERDES回路から出力されたNビットの第1のパラレルデータ信号に基づいてKN/mビットN/mは偶数の第2のパラレルデータ信号を生成する工程と、前記SERDES回路から出力された第1のリカバリクロック信号をK分周Kは2のべき乗して第2のリカバリクロック信号を生成する工程と、前記第2のパラレルデータ信号と前記第2のリカバリクロック信号とを同期して出力する工程と、を含むことを特徴とするジッタ補正方法。現在のサイクルにおける前記第1のパラレルデータD01,D11,...,DN-11、および、直前のサイクルにおける前記第1のパラレルデータD00,D10,...,DN-10を保持するレジスタに格納されたデータを参照し、Dn0とDn1との間で値が変動した最小のnの値n=0,1,...,N-1を変化点として抽出する工程と、前記変化点のmの剰余を、変化点ポインタとして算出する工程と、を含むことを特徴とする、請求項23に記載のジッタ補正方法。前記変化点ポインタをVDとし、直前のサイクルにおける平均化ポインタをVs0として、現在のサイクルにおける平均化ポインタVsを、式Vs=VD-Vs0/mVs0に基づいて計算するとともに、該式において絶対値|VD-Vs0|の値がm/2を超えることがないように円環的に扱い、VD-Vs0の値がm/2となった場合には-m/2とし、Vsの値が0以上m未満となるように該式の右辺にmの整数倍を加えることにより、平均化ポインタVsを算出する工程を含むことを特徴とする、請求項24に記載のジッタ補正方法。前記平均化ポインタVsの小数点以下を四捨五入した値をポインタφsとする工程と、ポインタφsの値がmとなった場合にはポインタφsの値を0とする工程と、ポインタφsの値に応じて前記レジスタから読み出すべきデータを指定する工程と、を含むことを特徴とする、請求項25に記載のジッタ補正方法。前記変化点ポインタをVDとし、直前のサイクルにおけるポインタφsをφs0として、VD=φs0modmである場合にはカウンタ値を不変とする工程と、VD=φs1,φs2,...,φsm/2modmである場合にはカウンタ値をインクリメントする工程と、VD=φs-1,φs-2,...,φs-m/21modmである場合にはカウンタ値をデクリメントする工程と、カウンタ値が所定の最大カウンタ値となった場合にはポインタφsをφs=φs01とするとともにカウンタ値をゼロにリセットする工程と、カウンタ値が所定の最小カウンタ値となった場合にはポインタφsをφs=φs0-1とするとともにカウンタ値をゼロにリセットする工程と、を含むことを特徴とする、請求項24に記載のジッタ補正方法。前記ポインタφsの値がmとなった場合にはポインタφsの値を0とする工程と、前記ポインタφsの値に応じて前記レジスタから読み出すべきデータを指定する工程と、を含むことを特徴とする、請求項27に記載のジッタ補正方法。現在のサイクルのDnn=0~N-1のうちのDmm=φsm/2-1-m,φsm/2-1,φsm/2-1m,φsm/2-12m,...;0≦m≦N-1を、前記レジスタから読み出すべきデータとして指定する工程を含むことを特徴とする、請求項26または28に記載のジッタ補正方法。直前のサイクルにおける前記ポインタφsの値がm/2であり、現在のサイクルにおける前記ポインタφsの値がm/21である第1の場合には、前記レジスタから読み出すべきデータとしてD0を指定しない工程と、直前のサイクルにおける前記ポインタφsの値がm/21であり、現在のサイクルにおける前記ポインタφsの値がm/2である第2の場合には、前記レジスタから読み出すべきデータとしてD0を指定する工程と、を含むことを特徴とする、請求項29に記載のジッタ補正方法。前記第1の場合と、前記第2の場合と、これらのいずれの場合にも該当しない第3の場合とを識別する情報信号を生成する工程を含むことを特徴とする、請求項30に記載のジッタ補正方法。前記情報信号に応じて、前記第2のクロック信号および前記第2のパラレルデータ信号を生成する工程を含むことを特徴とする、請求項31に記載のジッタ補正方法。前記レジスタから出力されたN/m1ビット幅信号をRD0,RD1,...,RDN/mとし、前記第2のパラレルデータ信号をDO0,DO1,...,DOM-1としたときにM=KN/m、前記第1の場合にはRD[N/m:0]のうちのRD[N/m-2:0]を、前記第2の場合にはRD[N/m:0]のすべてを、前記第3の場合にはRD[N/m:0]のうちのRD[N/m-1:0]を、それぞれ有効なデータとして出力データDO[M-1:0]に割り当てて出力する工程を含むことを特徴とする、請求項32に記載のジッタ補正方法。前記第1のリカバリクロック信号をK分周した、1/2K周期ずつ位相がずれた2K相のクロック信号を生成する工程と、前記2K相のクロック信号から選択したクロック信号を前記第2のリカバリクロック信号として出力する工程と、を含むことを特徴とする、請求項32または33に記載のジッタ補正方法。前記第1の場合にはカウンタ値をインクリメントする工程と、前記第2の場合にはカウンタ値をデクリメントする工程と、前記第3の場合にはカウンタ値を不変とする工程と、カウンタ値がN/2mとなった場合には前記2K相のクロック信号のうちの1/2K周期遅れた相のクロック信号を前記第2のリカバリクロック信号とする工程と、カウンタ値が-N/2mとなった場合には前記2K相のクロック信号のうちの1/2K周期進んだ相のクロック信号を前記第2のリカバリクロック信号とする工程と、を含むことを特徴とする、請求項34に記載のジッタ補正方法。以下の分析は、本発明者によってなされたものである。シリアル信号を受信する際にSERDES回路20をオーバーサンプリング状態で用いた場合には、SERDES回路20がリカバリするリカバリクロックの周波数が受信データのデータレイト周波数とずれるおそれがある。また、この周波数のずれにより、SERDES回路20の出力パラレルデータをオーバーサンプリングの倍数毎に読み込んで行くとビットエラーを起こすおそれがある。このような現象が発生するメカニズムについて、図面を参照して説明する。図22は、一例として、3.2GbpsのSERDES回路20を用いて、800Mbpsの伝送データを4倍オーバーサンプリングで受信する場合を示す。受信データとして800Mbpsと3.2Gbpsの両方のデータレイトに対応したい場合や、半導体チップ上で使用可能なSERDESマクロに800Mbpsのデータレイトに対応したものがない場合に、このようなSERDES回路20の使用法が用いられる。SERDES回路20内には、クロックデータリカバリCDR回路21およびシリアルパラレルS/P変換回路22が設けられている。CDR回路21で800Mbps入力データからデータとクロックの復元が行われる。復元されたデータとクロックは、S/P変換回路22に入力されて1:16のシリアルパラレル変換が行われて、200Mbpsの16本のパラレルデータと、16分周された200MHzのリカバリクロックRCK2が出力される。図22においては、SERDES回路20は3.2GbpsのSERDESであるため、CDR回路21の出力は3.2Gbpsデータである。しかし、入力データは800Mbpsであるため、出力データは同一データのビットが4ビット連続するデータストリームとなっており、実効的なデータレイトは800Mbpsである。SERDES回路20内のCDR回路21が出力するリカバリクロックRCK1は、3.2GHzである。図22のSERDES回路20において、リカバリクロックの周波数ずれが発生するメカニズムについて説明する。ジッタの定義は、図23に示すように、ジッタのない理想データ信号のエッジ位置と実際のデータ信号のエッジ位置との差分とする。ここでは、一例として、図23の波形に示したようなジッタが入力データにのっているものとする。また、説明を分かりやすくするために、規則的な特殊な形のジッタを想定する。ただし、SIN正弦波ジッタやランダムなジッタ等であっても、同様の問題が生じる。また、説明を分かりやすくするために、800Mbps入力シリアルデータは、010101...パターンのように、毎ビット毎にデータ変化があり、エッジがあるものとする。ただし、0001011000011101...のように、ランダムなデータストリームの場合においても同様の問題が生じる。図23のジッタが存在する場合には、図24に示すように、入力データはあるビット図24では第2ビットの開始エッジに800Mbpsデータとして0.25UIのジッタが存在することになる。CDR回路21は、リカバリクロックのエッジ位置を入力データのエッジ位置に一致させる方向に動作する。800Mbpsデータの0.25UIジッタは、3.2Gbpsデータとしては、1UIのジッタに相当する。このとき、CDR回路21は、リカバリクロックの9番目のエッジと入力データのエッジを一致させるように動作する。1UIのジッタを持った3.2Gbpsデータを受信するという観点では、これは誤動作となる。正しい動作は、リカバリクロックの8番目のエッジを入力データのエッジと一致させる動作でなければならない。しかし、CDR回路21は、1ビットの信号が1UIのジッタで2ビット幅になっているのか、同一データの信号が2ビット連続して来たのかを区別することができず、後者の場合に対応した動作を行うため、リカバリクロックの9番目のエッジと入力データのエッジを合わせるような動作となる。その後、ジッタは0UIに向かって緩やかに小さくなって行くため、CDR回路21は、リカバリクロックの13番目のエッジ、17番目のエッジ、21番目のエッジ、...を入力データのエッジに一致させるように動作する。この例では、入力データの12ビット目の開始エッジでジッタが0UIとなる、すなわち、理想3.2GHzクロックの48番目のエッジと入力データエッジの位置が一致する。このとき、リカバリクロックの49番目のエッジが、理想クロックの48番目のエッジと一致する。次に、入力データの22ビット目の開始エッジで、再度0.25UIのジッタが生じ、その後、緩やかに0UIに向かって減少するという動作が周期的に繰り返される。このとき、理想3.2GHzクロックの88番目のエッジの位置にリカバリクロックの89番目のエッジが存在し、理想3.2GHzクロックの168番目のエッジの位置にリカバリクロックの170番目のエッジが存在する。したがって、リカバリクロックの周波数は、正確には3.2GHzとなるべきであるが、周波数は1/80=1.25高くなり、3.24GHzになる。このように、リカバリクロックの周波数ずれが発生する点が、従来技術における問題点である。出力パラレルデータは、正確には1ビットあたり200Mbpsであるべきところ、202.5Mbpsとなり、パラレルデータ1ビットあたりの動作レートも、ずれた値となる。4倍のオーバーサンプリングであることから、出力パラレルデータを4ビット毎に読み取ればよいとして、例えば、出力パラレルデータの2ビット目D1、6ビット目D5、...、14ビット目D13と固定したパラレルビットの出力値を、入力800Mbpsデータの4パラレル化したデータ値として読み込んでいくと、いずれかの箇所でビットずれを起こし、ビットエラーが発生する。実際に、図24に示した場合では、入力800Mbpsデータの0ビット目は、パラレルデータの1~4ビット目として4ビット幅で出力されるが、入力800Mbpsデータの1ビット目はパラレルデータの5~9ビット目として5ビット幅で出力される。入力800Mbpsデータの2ビット目はパラレルデータの10~13ビット目として4ビット幅で出力される。このように、4ビット幅、5ビット幅、4ビット幅、4ビット幅、...、4ビット幅、5ビット幅、4ビット幅のようにパラレルデータで出力されることで、ビットずれが生じる。なお、パラレルデータの1ビットのみに着目するとデータレイトは正しい値からずれているが、16ビットのパラレルデータ全体としては実効的なデータレイトは800Mbpsと正しい値である。すなわち、パラレルデータ全体の実効的データレイトは、入力シリアルデータのデータレイトと一致し、ずれは生じない。なぜなら、入力された800Mbpsシリアルデータのパラレル化において、シリアルの1ビットがパラレルの3ビット幅データ、5ビット幅データまたは4ビット幅データになることはあるが、800Mbpsのデータストリームとしては余分なビットが加わったり、ビットが消えたりすることはないからである。一般に、高速シリアル信号の受信において、半導体チップ上に搭載するSERDES回路マクロが所望のデータレイトより高いデータレイト、例えば、4倍のデータレイトにしか対応していない場合、オーバーサンプリング状態で使用することで所望のデータレイトで使用可能のように考えられる。しかしながら、このような使用方法をした場合には、SERDES回路がリカバリするリカバリクロックの周波数が受信データのデータレイト周波数とずれる場合があり、SERDES回路の後段の回路でビットエラーが発生する場合がある。例えば、ジッタを含むシリアルデータをSERDES回路がオーバーサンプリング動作で受信した場合には、シリアルデータを正常に受信できないおそれがある。そこで、SERDESがジッタを含むシリアルデータ信号をオーバーサンプリング動作によって受信した場合に、SERDESから出力されたパラレルデータ信号およびリカバリクロック信号に基づいて、もとのシリアルデータ信号を正しく受信できるようにすることが課題となる。本発明の第1の視点に係る半導体集積回路装置は、シリアルデータ信号をm倍mは2のべき乗オーバーサンプリングするSERDES回路から出力されたNビットの第1のパラレルデータ信号に基づいてKN/mビットN/mは偶数の第2のパラレルデータ信号を生成するとともに、該SERDES回路から出力された第1のリカバリクロック信号をK分周Kは2のべき乗、例えばK=2,4して第2のリカバリクロック信号を生成し、該第2のパラレルデータ信号と該第2のリカバリクロック信号とを同期して出力するクロックデータリカバリ回路を備えている。本発明の第2の視点に係るジッタ補正方法は、シリアルデータ信号をm倍mは2のべき乗オーバーサンプリングするSERDES回路から出力されたNビットの第1のパラレルデータ信号に基づいてKN/mビットN/mは偶数の第2のパラレルデータ信号を生成する工程と、前記SERDES回路から出力された第1のリカバリクロック信号をK分周Kは2のべき乗、例えばK=2,4して第2のリカバリクロック信号を生成する工程と、前記第2のパラレルデータ信号と前記第2のリカバリクロック信号とを同期して出力する工程と、を含む。本発明に係る半導体集積回路装置およびジッタ補正方法によると、SERDESがジッタを含むシリアルデータ信号をオーバーサンプリング動作によって受信した場合に、SERDESから出力されたパラレルデータ信号およびリカバリクロック信号に基づいて、もとのシリアルデータ信号を正しく受信することができる。はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。本発明は、図1に示すように、SERDES回路20の外側に、パラレルデータに対してクロックデータリカバリを行うクロックデータリカバリCDR回路10を外付けすることで、従来技術の課題であるリカバリクロックの周波数ずれと、受信データのビットエラーを解決する。入力データが800Mbpsの場合、SERDES回路20がオーバーサンプリング動作している場合でも、SERDES回路20の出力パラレルデータ全体での実効的なデータレイトは800Mbpsである。したがって、クロックデータリカバリ回路10によるクロックデータリカバリにより、正しく800Mbpsのデータを取り出すことができる。従来技術の問題として上述した場合において、800Mbps入力データのシリアル20ビット長のデータは、1ビット当り202.5Mbpsのパラレルデータ81ビットで出力される。したがって、16ビット幅パラレルデータの実効データレイトは、次のように、800Mbpsとなる。16×20ビット/81ビット×202.5Mbps=800Mbps図11を参照すると、半導体集積回路装置は、シリアルデータ信号をm倍mは2のべき乗オーバーサンプリングするSERDES回路20から出力されたNビットの第1のパラレルデータ信号パラレルデータ1に基づいてKN/mビットN/mは偶数の第2のパラレルデータ信号出力データ3を生成するとともに、SERDES回路20から出力された第1のリカバリクロック信号RCK2をK分周Kは2のべき乗して第2のリカバリクロック信号RCK4を生成し、第2のパラレルデータ信号出力データ3と第2のリカバリクロック信号RCK4とを同期して出力するクロックデータリカバリ回路50を備えていることが好ましい。図12および図14を参照すると、クロックデータリカバリ回路50は、現在のサイクルにおける第1のパラレルデータパラレルデータ1D01,D11,...,DN-11、および、直前のサイクルにおける第1のパラレルデータパラレルデータ1D00,D10,...,DN-10を保持するレジスタ51と、Dn0とDn1との間で値が変動した最小のnの値n=0,1,...,N-1を変化点として抽出するとともに、該変化点のmの剰余を求めて、変化点ポインタVDとして出力する変化点検出回路52と、を備えていることが好ましい。変化点検出回路52は、Dn0とDn1との間で値の変動がない場合には、前サイクルにおける変化点ポインタVDの値をそのまま出力することが好ましい。図12を参照すると、クロックデータリカバリ回路50は、変化点ポインタをVDとし、直前のサイクルにおける平均化ポインタをVs0として、現在のサイクルにおける平均化ポインタVsを、式Vs=VD-Vs0/mVs0に基づいて計算するとともに、該式において絶対値|VD-Vs0|の値がm/2を超えることがないように円環的に扱い、VD-Vs0の値がm/2となった場合には-m/2とし、Vsの値が0以上m未満となるように該式の右辺にmの整数倍を加え、求めたVsの値を平均化ポインタVsとして出力する平均化回路53を備えていてもよい。このとき、クロックデータリカバリ回路50は、平均化回路53から出力された平均化ポインタVsの小数点以下を四捨五入した値をポインタφsとするとともに、ポインタφsの値がmとなった場合にはポインタφsの値を0とし、ポインタφsの値に応じてレジスタ51から読み出すべきデータを指定するサンプリング回路55を備えていることが好ましい。一方、図17を参照すると、クロックデータリカバリ回路60は、変化点ポインタをVDとし、直前のサイクルにおけるポインタφsをφs0として、VD=φs0modmである場合にはカウンタ値を不変とし、VD=φs1,φs2,...,φsm/2modmである場合にはカウンタ値をインクリメントし、VD=φs-1,φs-2,...,φs-m/21modmである場合にはカウンタ値をデクリメントし、カウンタ値が所定の最大カウンタ値となった場合にはポインタφsをφs=φs01とするとともにカウンタ値をゼロにリセットし、カウンタ値が所定の最小カウンタ値となった場合にはポインタφsをφs=φs0-1とするとともにカウンタ値をゼロにリセットするカウンタ回路63を備えていてもよい。このとき、クロックデータリカバリ回路60は、カウンタ回路63により求めたポインタφsの値がmとなった場合にはポインタφsの値を0とし、ポインタφsの値に応じてレジスタ61から読み出すべきデータを指定するサンプリング回路65を備えていることが好ましい。図12および図17を参照すると、サンプリング回路55,65は、現在のサイクルのDnn=0~N-1のうちのDmm=φsm/2-1-m,φsm/2-1,φsm/2-1m,φsm/2-12m,...;0≦m≦N-1を、レジスタ51,61から読み出すべきデータとして指定することが好ましい。サンプリング回路55,65は、直前のサイクルにおける前記ポインタφsの値がm/2であり、現在のサイクルにおける前記ポインタφsの値がm/21である第1の場合には、レジスタ51,61から読み出すべきデータとしてD0を指定せず、直前のサイクルにおける前記ポインタφsの値がm/21であり、現在のサイクルにおける前記ポインタφsの値がm/2である第2の場合には、レジスタ51,61から読み出すべきデータとしてD0を指定することが好ましい。サンプリング回路55,65は、前記第1の場合と、前記第2の場合と、これらのいずれの場合にも該当しない第3の場合とを識別する情報信号S0を出力することが好ましい。図12および図17を参照すると、クロックデータリカバリ回路50,60は、情報信号S0に応じて、第2のクロック信号RCK4および第2のパラレルデータ信号出力データ3を生成するデータ処理回路56,66を備えていることが好ましい。図15を参照すると、データ処理回路56は、レジスタ51から出力されたN/m1ビット幅信号をRD0,RD1,...,RDN/mとし、前記第2のパラレルデータ信号をDO0,DO1,...,DOM-1とするとM=KN/m、前記第1の場合にはRD[N/m:0]のうちのRD[N/m-2:0]を、前記第2の場合にはRD[N/m:0]のすべてを、前記第3の場合にはRD[N/m:0]のうちのRD[N/m-1:0]を、それぞれ有効なデータとして出力データDO[M-1:0]に割り当てて出力することが好ましい。図15を参照すると、データ処理回路56は、第1のリカバリクロック信号RCK2をK分周した、1/2K周期ずつ位相がずれた2K相のクロック信号を生成し、該2K相のクロック信号から選択したクロック信号を第2のリカバリクロック信号RCK4として出力することが好ましい。データ処理回路56は、前記第1の場合にはカウンタ値をインクリメントし、前記第2の場合にはカウンタ値をデクリメントし、前記第3の場合にはカウンタ値を不変とし、カウンタ値がN/2mとなった場合には前記2K相のクロック信号のうちの1/2K周期遅れた相のクロック信号を第2のリカバリクロック信号RCK4として出力し、カウンタ値が-N/2mとなった場合には前記2K相のクロック信号のうちの1/2K周期進んだ相のクロック信号を第2のリカバリクロック信号RCK4として出力することが好ましい。図18を参照すると、半導体集積回路装置は、シリアルデータ信号をm倍mは2のべき乗オーバーサンプリングして、第1のパラレルデータ信号パラレルデータ1および第1のリカバリクロック信号RCK2として出力するSERDES回路20と、上記のクロックデータリカバリ回路30と、を備えていることが好ましい。図19を参照すると、半導体集積回路装置は、SERDES回路20から出力された第1のパラレルデータ信号パラレルデータ1および第1のリカバリクロック信号RCK2を処理する第1のデータ処理回路71と、クロックデータリカバリ回路10または30から出力された第2のパラレルデータ信号および第2のリカバリクロック信号を処理する第2のデータ処理回路72または73と、を備えていることが好ましい。図19を参照すると、上記クロックデータリカバリ回路においてm=m1m1は2のべき乗とした第1のクロックデータリカバリ回路10と、上記クロックデータリカバリ回路においてm=m2m2は2のべき乗であってm2≠m1とした第2のクロックデータリカバリ回路30と、を備えていることが好ましい。図19を参照すると、第1のクロックデータリカバリ回路10および第2のクロックデータリカバリ回路30は、同一のSERDES回路20から第1のパラレルデータ信号パラレルデータ1および第1のリカバリクロック信号RCK2を受信するようにしてもよい。図19を参照すると、半導体集積回路装置は、SERDES回路20から出力された第1のパラレルデータ信号パラレルデータ1および第1のリカバリクロック信号RCK2を処理する第1のデータ処理回路71と、第1のクロックデータリカバリ回路10から出力された第2のパラレルデータ信号および第2のリカバリクロック信号を処理する第2のデータ処理回路72と、第2のクロックデータリカバリ回路30から出力された第2のパラレルデータ信号および第2のリカバリクロック信号を処理する第3のデータ処理回路73と、を備えていることが好ましい。図19を参照すると、半導体集積回路装置は、第1のデータ処理回路71および第2のデータ処理回路72または73のうちのいずれか、または、第1のデータ処理回路71ないし第3のデータ処理回路73のうちのいずれかを稼動状態とし、それ以外を待機状態とする制御回路80を備えていることが好ましい。図20を参照すると、制御回路81は、SERDES回路20から出力された第1のパラレルデータ信号パラレルデータ1および第1のリカバリクロック信号RCK2を参照して、第1のデータ処理回路71および第2のデータ処理回路72または73のうちのいずれを稼動状態とするか、または、第1のデータ処理回路71ないし第3のデータ処理回路73のうちのいずれを稼動状態とするかを判定するようにしてもよい。図21を参照すると、制御回路82は、第1のデータ処理回路71を稼動状態とする場合には第1のクロックデータリカバリ回路10および第2のクロックデータリカバリ回路30を待機状態とし、第2のデータ処理回路72を稼動状態とする場合には第1のクロックデータリカバリ回路10を稼動状態とするとともに第2のクロックデータリカバリ回路30を待機状態とし、第3のデータ処理回路73を稼動状態とする場合には第1のクロックデータリカバリ回路10を待機状態とするとともに第2のクロックデータリカバリ回路30を稼動状態とすることが好ましい。本発明に係る半導体集積回路装置によると、SERDESがジッタを含むシリアルデータ信号をオーバーサンプリング動作によって受信した場合に、SERDESから出力されたパラレルデータ信号およびリカバリクロック信号に基づいて、もとのシリアルデータ信号を正しく受信することができる。実施形態1第1の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図1は、本実施形態の半導体集積回路装置の構成を一例として示すブロック図である。図1を参照すると、半導体集積回路装置は、800Mbpsのシリアルデータを3.2GbpsのSERDES回路20を用いて4倍オーバーサンプリング動作で受信する。外付けCDR回路10は、SERDES回路20のパラレル出力信号端子に接続され、パラレルデータに対してクロックデータリカバリを行う。図2は、本実施形態の半導体集積回路装置における外付けCDR回路10の構成を一例として示すブロック図である。図2を参照すると、CDR回路10は、入力されるパラレルデータ1を記憶するレジスタ11、変化点検出回路12、平均化回路13、サンプリング回路15、および、データ処理回路16を備えている。図3は、SERDES回路20の入力データと出力パラレルデータ、および、SERDES回路20内部のリカバリクロックRCK1の対応関係を示した図である。図示するための都合から、SERDES回路20への入力データと出力パラレルデータの時間的な因果関係を無視して記載している。例えば、図3では、入力データD4が入力される前に出力データD4が確定しているかのように記載されているが、実際の動作では、出力データD4が確定するのは入力データD4が入力された後である。SERDES回路20の出力パラレルデータは、図3に示すように、16ビット幅でD0~D15とし、シリアル入力データの入力時刻の早い方からD0,D1,...,D15とパラレル変換されるものとする。4倍オーバーサンプリング動作であるため、800Mbpsの入力データ1ビットは、基本的に3.2GHzのリカバリクロックで4回取り込まれて、データ値が同一の4ビット幅のデータ列となる。ただし、そのビット幅は入力ジッタにより、5ビット幅や3ビット幅になる場合がある。図3の波形には、5ビット幅になる場合が示されている。パラレルデータ出力端子に出力されるデータ列を複数サイクルに亘って記述する場合には、D01,D02,...,D0nのように表すものとする。ここで、D0は出力端子を示し、括弧内の1,2等は何サイクル目の出力データであるかを示す。例えば、D01はD0端子の1サイクル目の出力を表す。CDR回路10は、以下の動作に基づいて、SERDES20の出力するパラレルデータ1をクロックデータリカバリする。1レジスタ11レジスタ11は、パラレルデータ1を現在のサイクルとその直前のサイクルの2サイクル分記憶し、サイクル毎に記憶内容を更新する。具体的には、レジスタ11は、パラレルデータ1をD00,D10,...,D150,D01,D11,...,D151として記憶する。ここで、D00の括弧内の0は、直前のサイクルであることを示す。また、D01の括弧内の1は、現在のサイクルであることを示す。1サイクル後には、Dn1はDn0となり、新しく入力されたパラレルデータが改めてDn1となる。ここで、n=0,1,...,15である。また、レジスタ11は、サンプリング回路15からの信号ψsにより、読み出しデータとして指定されるD01,D11,...,D151の中の5ビットのデータをデータ処理回路16に送る。通常は、5ビット目はダミーデータ指定される。ただし、後述するように、特別の場合に限り、5ビットすべてが読み出しデータ指定される。さらに他の特別の場合には、4ビット目と5ビット目がダミーデータ指定される。ダミーデータ指定されたビットに関して、レジスタ11は、D01,D11,...,D151の値とは無関係に、値0をデータ処理回路16に送る。2変化点検出回路12変化点検出回路12は、レジスタ11に記憶されているデータ列D00,D10,...,D150,D01,D11,...,D151から現在のサイクルについてデータ値に変化があった最小の端子番号を変化点として検出し、その値の4の剰余を変化点ポインタVDとして平均化回路13に送る。VD=パラレルデータ1の変化点位置の4の剰余4で割った余り例えば、図4に示すようなデータ列の場合において、現在のサイクルが2サイクル目のときには、変化点はD1であり、変化点ポインタVDの値は1である。一方、現在のサイクルが3サイクル目のときには、変化点の値はD0であり、変化点ポインタVDの値は0である。なお、現在のサイクルが1サイクル目のときには、この表には直前のサイクルのデータは記載されていないが、D0は変化点でないとして変化点ポインタVDの値は2とした。変化点検出回路12は、サイクル中にデータの変化点がない場合には、前サイクルのVDの値を保持し、その値をVDとして平均化回路13に送る。3平均化回路13平均化回路13は、変化点検出回路12から変化点ポインタVDを受け取り、平均化ポインタVsを計算してサンプリング回路15に送る。平均化回路13は、平均化ポインタVsを次式により算出する。Vs=VD-Vs0/4Vs0ここで、Vs0は1サイクル前のVsの値である。したがって、今計算されたVsは次のサイクルではVs0となる。また、VD-Vs0は、絶対値|VD-Vs0|が2を超えないように-2~2の値として円環的に扱う。つまり、|VD-Vs0|が2を超える場合には、4の整数倍の値を加えて、結果が-2~2の間の値となるように計算する。また、2と-2は同一視し、計算上は-2とする。例えば、VD=3、Vs0=0のときには、VD-Vs0=3ではなく、-1と計算する。さらに、平均化回路13は、4の整数倍を加えて、Vsの値が0以上4未満の値となるようにする。例えば、VD=3,Vs0=0のときには、まず、Vs=3-0/40=-1/40=-0.25となるが、上述の計算規則によると、最終的に、Vs=-0.25=-0.254=3.75となる。また、VD-Vs0/4は、2進数で小数点以下3桁の値とする。端数は切り捨てる。すなわち、VD-Vs0/4は、10進数では0.125の整数倍の値となる。Vsも2進数で小数点以下3桁の値とする。平均化回路13は、求めたVsの値をサンプリング回路15に送る。4サンプリング回路15サンプリング回路15は、平均化回路13から受け取った、平均化ポインタVsからレジスタ11から読み出すデータを決定するφsを計算し、レジスタ11に対してリカバリデータとして読み出すべきデータを指定する。レジスタ11は、指定されたデータをデータ処理回路16へ送る。また、サンプリング回路15は、後述する例外処理の有無と種類に関する情報を信号S0としてデータ処理回路16へ送る。本実施形態におけるレジスタ11から読み出すデータの決定方法について以下に述べる。サンプリング回路15は、平均化回路13から受け取ったVsの値を四捨五入し、整数値に丸めてφsとする。このとき、φsの値は、0,1,2,3のいずれかの値となる。φs=Vsの小数点以下を四捨五入した値整数値ただし、Vsの小数点以下を四捨五入した場合にφsの値が4となったときには、φs=0とする。サンプリング回路15は、レジスタ11からデータ処理回路16にどの入力パラレルデータを送るかを指定する。指定されるデータは、φsの値に応じて次のように決定される。φs=0,1,2のときには、現在のサイクルのD0~15のうちφs1,φs5,φs9,φs13の値を指定する。φs=3のときには、φs-3,φs1,φs5,φs9の値を指定する。例えば、φs=0のときには、レジスタ11に対して指定する読み出しデータはD1,D5,D9,D13となる。レジスタ11は、指定された読み出しデータをデータ処理回路16に送る。サンプリング回路15が指定するデータの組をψsとする。例えば、ψs=D1,D5,D9,D13,nullの場合には、ψsが指定している読み出しデータはD1,D5,D9,D13の4ビットであり、5ビット目のnullはダミーデータ指定である。本実施形態では、後述する例外処理の場合に、ψsが指定する読み出しデータは3ビットまたは5ビットとなる。すなわち、ψsが指定する読み出しデータのビット数は、3,4,5ビットのいずれかになり、5ビットに足りない分はダミーデータ指定null指定となる。レジスタ11は、データ処理回路16に5ビット幅のデータを送るが、サンプリング回路15からψsによってダミーデータ指定null指定されたビットとして値0を送る。例えば、サンプリング回路15からψs=D1,D5,D9,D13,nullの指定がされた場合には、レジスタ11はD1,D5,D9,D13,0の5ビット幅データをデータ処理回路16に送る。次に、例外処理A、Bについて説明する。Aφsが2から3へ変化した場合、すなわち、前サイクルのφsが2で現サイクルのφsが3である場合サンプリング回路15は、D0の値を読み出しデータとして指定しない。すなわち、サンプリング回路15は、読み出しデータとしてψs=D4,D8,D12,null,nullを指定する。このとき、レジスタ11は、5ビット幅データとしてD4,D8,D12,0,0をデータ処理回路16に送る。図5は、各サイクルにおいて、サンプリング回路15がレジスタ11に対して読み出し指定するデータを下線付きで示す。図5に示した第3サイクルが、例外処理Aの場合に相当する。本来読み出し指定されるはずのデータであって、例外処理Aで読み出し指定されないD0の値を丸で囲んで示す。例外処理を行う理由は、図5に示した表から分かるように、第3サイクルのD0のデータは1サイクル前の第2サイクルのD15の値としてすでに読み出されているからである。Bφsが3から2へ変化した場合、すなわち、前サイクルのφsが3で現サイクルのφsが2である場合サンプリング回路15は、D0の値も読み出しデータとして指定する。すなわち、サンプリング回路15は、読み出しデータとしてψs=D0,D3,D7,D11,D15を指定する。このとき、レジスタ11は、5ビット幅データとしてD0,D3,D7,D11,D15をデータ処理回路16に送る。図5に示した第7サイクルが、例外処理Bの場合に相当する。本来読み出し指定しないはずのデータであって、例外処理Bで読み出し指定されるD0の値を丸で囲んで示す。例外処理を行う理由は、図5に示した表から分かるように、第7サイクルのD0のデータを読み出さないと、データを1つ読み飛ばしてしまうことになるからである。このようにデータの変化点の情報に基づいて読み出しデータを決定することで、正しいデータが読み出され、正しくデータリカバリが行われる。サンプリング回路15は、例外処理AもしくはBのいずれがあったか、または、例外処理はなかったかに関する情報を信号S0としてデータ処理回路16に送る。5データ処理回路16データ処理回路16は、レジスタ11から受けた5ビット幅のデータに対して、サンプリング回路15から受けた情報信号S0に基づいたデータ処理を行い、8ビット幅のパラレルデータとして出力する。また、データ処理回路16は、リカバリクロックRCK2からリカバリクロックRCK4を生成して出力する。データ処理回路16は、上記の8ビット幅のパラレルデータをリカバリクロックRCK4に同期して出力する。図6に示すように、レジスタ11からデータ処理回路16に送られる5ビット幅信号をRD0,RD1,...,RD4とする。RD0側をLSBとする。また、データ処理回路16の出力8ビット幅信号をDO0,DO1,...,DO7とする。DO0側をLSBとする。図6は、RD[4:0]とDO[7:0]のタイミング関係と、リカバリクロックRCK2とリカバリクロックRCK4の関係を示すタイミングチャートである。RD[4:0]のデータ波形において1,1,2,2,2,3,3のように記載された数字は、RD[4:0]の有効なデータが出力DO[7:0]の何番目のサイクルで出力されるかを示す。リカバリクロックRCK4は、リカバリクロックRCK2の2分周クロックである。データ処理回路16は、1/4周期ずつずれた4相クロックとしてリカバリクロックRCK2の2分周クロックを生成し、4相中の1相をリカバリクロックRCK4として選択する。データ処理回路16の起動時データ処理回路16のリセット直後には、相0がリカバリクロックRCK4として選択される。また、起動時には、リカバリクロックRCK4のライズエッジと同期したリカバリクロックRCK2のライズエッジを起点とした2または3サイクルで構成されるRD[4:0]の有効な8ビットデータをリカバリクロックRCK4のサイクルで2サイクル後にDO[7:0]として出力する。図6を参照すると、リカバリクロックRCK4のライズエッジ0と同期したリカバリクロックRCK2のライズエッジ0を起点としたRD[4:0]の2サイクルで構成された有効8ビットデータがリカバリクロックRCK4のライズエッジ2に同期してDO[7:0]に出力される。データ処理回路16の起動後の動作について説明する。通常時、すなわち、S0=Nのときには、RD[4:0]のうちのRD[3:0]が有効なデータとして出力データDO[7:0]に割り当てられて出力される。一方、RD4は、無効なデータとして捨てられる。例外処理A、すなわち、S0=Aのときには、RD[4:0]のうちのRD[2:0]が有効なデータとして出力データDO[7:0]に割り当てられて出力される。一方、RD3,RD4は、無効なデータとして捨てられる。例外処理B、すなわち、S0=Bのときには、RD[4:0]のうちのRD[4:0]のすべてが有効なデータとして出力データDO[7:0]に割り当てられて出力される。このとき、無効なデータとして捨てられるデータは存在しない。データは、8ビットずつ先頭のビット基準でリカバリクロックRCK2の約4サイクル後にリカバリクロックRCK4に同期させて出力する。例えば、図6では、1番目の8ビットデータの先頭ビットはRD[4:0]の0サイクル目にデータ処理回路に入力しているが、リカバリクロックRCK2で4サイクル後のリカバリクロックRCK4のライズエッジ2に同期して出力される。本実施形態のデータ処理回路16は、例外処理をカウントするカウンタを持つ。カウンタは、通常時S0=Nにはカウンタ値を維持し、例外処理AS0=Aのときにはカウンタ値をインクリメント1し、例外処理BS0=Bのときにはカウンタ値をデクリメント-1する。カウンタ値が2になったときには、データ処理回路16は、リカバリクロックRCK4を相が1つ後1/4周期後のリカバリクロックRCK2の2分周クロックに切り替える。一方、カウンタ値が-2になったときには、データ処理回路16は、リカバリクロックRCK4を相が1つ前1/4周期前のリカバリクロックRCK2の2分周クロックに切り替える。図7の表を参照して、以上の動作についてさらに説明する。図7の表の見方についても以下で説明する。図7のサイクルは、その行のデータRD[4:0]がリカバリクロックの何サイクル目のデータであるかを示す。図7のエッジ位置は、その行のデータRD[4:0]の有効データが出力DO[7:0]として出力されるときのリカバリクロックRCK4のライズエッジ位置開始側エッジの位置がリカバリクロックRCK2のライズエッジで何番目かを示す。なお、リカバリクロックRCK2のフォールエッジの位置の場合には、0.5として数える。図7の最初の行0サイクル目のエッジ位置の値は4である。このとき、リカバリクロックRCK4としては、図6のリカバリクロックRCK2の2分周クロックの相0が選択されているものとする。図7のレイテンシは、入力RD[4:0]から出力DO[7:0]までのレイテンシをリカバリクロックRCK2のサイクルを単位として表す。図7を参照すると、レイテンシは0サイクル目から19サイクル目までに、4→4.5→4と変化しているが、4度目の例外処理Aの後にレイテンシ=4となり、確かにレイテンシ=約4という正しい動作が行われている。19サイクル目から40サイクル目までに、レイテンシは4→5→4.5→4と変化しているが、やはり4度目の例外処理Bの後にレイテンシ=4となり、確かにレイテンシ=約4という正しい動作が行われている。図7のRD[4:0]の欄の数値は、そのRD[4:0]のデータがリカバリクロックRCK4の何サイクル目で、データ処理回路16からDO[7:0]として出力されるかを示す。1サイクルに8ビット出力されるため、RD[4:0]の欄8マスに同一のサイクル数の値が記載されている。無効なビットは、Zと記載されている。なお、無効なビットは出力されない。図7の0サイクル目と1サイクル目はいずれもS0=Nであり、RD[4:0]の中の有効なデータは欄に1と記載されたRD[3:0]である。欄内にZと記載されたRD4は、無効なデータである。有効な8ビットのデータがDO[7:0]としてリカバリクロックRCK2のライズエッジ位置4の所に出力される。このときのRD[4:0]とDO[7:0]との対応関係はDO0=RD00サイクル目,DO1=RD10サイクル目,...,DO3=RD30サイクル目,DO4=RD01サイクル目,...,DO7=RD31サイクル目である。図7の3サイクル目は、例外処理AS0=Aであり、RD3およびRD4が無効データとなっている。データ処理回路16のカウンタは、カウンタ値がインクリメント1され、カウンタ値は1になっている。RD[4:0]とDO[7:0]との対応関係はDO0=RD02サイクル目,...,DO4=RD03サイクル目,...,DO6=RD23サイクル目,DO7=RD04サイクル目としてリカバリクロックRCK2のライズエッジ位置6の所に出力される。4サイクル目のRD1は、DO0としてリカバリクロックRCK2のライズエッジ位置8の所に出力される。4サイクル目から7サイクル目までは例外処理がなくS0=N、8サイクル目に例外処理AがあるS0=A。データ処理回路16は、カウンタのカウンタ値をインクリメント1して2とした後、リカバリクロックRCK4としての相選択を相0から相1に変更し、さらに、カウンタ値を0に戻す。リカバリクロックRCK4の相変更が実際にクロック信号に現れるタイミングは、リカバリクロックRCK2で数サイクル後のタイミングである。具体的には、データ処理回路16は、例外処理のあったサイクルに属しているRD[4:0]のMSB側データがDO[7:0]に出力された次のサイクルのリカバリクロックRCK4の開始側ライズエッジで相変更する。図7の10サイクル目で相変更のために、エッジ位置が14ではなく14.5という値になっているが、相変更のトリガとなった8サイクル目から6.5サイクル後の14.5サイクル目でリカバリクロックRCK4の相変更が現れる。図7の表において、リカバリクロックRCK4の相変更があると、カウンタが2または-2となり0に戻される例外処理があったときのエッジ位置の値が、次の値に変わるときに2ではなく2.5または1.5される。例えば、図7のサイクル17の行は例外処理Aであり、カウンタ値は2→0となり、エッジ位置は20.5である。次にエッジ位置の値が変わるのは19サイクル目であり、そのときのエッジ位置は2.5されて23となっている。ここで、リカバリクロックRCK4は、相1から相2に切り替わっている。同様に、図7のサイクル28の行は例外処理Bであり、カウンタ値は-2→0となり、エッジ位置は33である。次にエッジ位置の値が変わるのは30サイクル目であり、そのときのエッジ位置は1.5されて34.5となっている。ここで、リカバリクロックRCK4は、相2から相1に切り替わっている。図6のタイミングチャートにおいても、リカバリクロックRCK4の選択相の切り替わりを示している。2つ目の例外処理Aが生じたリカバリクロックRCK2の8サイクル目のRD[4:0]には4番目と5番目のデータが属しているが、MSB側である5番目のデータがDO[7:0]に出力されたサイクルの次のサイクルのリカバリクロックRCK4の開始側ライズエッジの位置がリカバリクロックRCK2のエッジ位置で14.5となっている。ここで、リカバリクロックRCK4は、相0から相1に切り替わっている。このように、データ処理回路16は、リカバリクロックRCK4の選択相を切り替えてクロックリカバリ動作を行う。本実施形態の例外処理では、リカバリクロックRCK2の1サイクル間に通常は有効なデータとして4ビットのデータが読み込まれるべき所で、3ビットまたは5ビットが有効なデータとして読み込まれ、ビット数に1ビットの増減がある、つまり、±1/4=±1ビット/4ビットの変化があるので、原理的にはこのときにリカバリクロックRCK2の周期で1/4周期の位相ずれを発生させるとデータに整合したクロックのリカバリが行える。しかし、本実施形態では、リカバリクロックRCK2の周期で1/4周期ずらしたリカバリクロックRCK2の2分周クロックは生成されていない。そこで、カウンタでカウントして2になったときに、1/4周期1/4周期=1/2周期=リカバリクロックRCK4リカバリクロックRCK2の2分周の1/4周期の位相ずらしによって、上述の原理と動作的に整合させている。ここで、クロックリカバリのメカニズムについて詳しく述べる。例外処理Aは、リカバリクロックRCK2の1サイクルで本来的には4ビットであるデータが3ビットになっている場合であるが、これはリカバリクロックRCK2の周波数が正しい周波数より高いことを意味している。したがって、リカバリクロックRCK2の周波数より低い適切な周波数のクロックが生成されれば、それが正しいリカバリクロックとなる。正しいリカバリクロック正しい周波数のクロックは、次のようして得られる。例外処理Aが4回あることは、それに対応した12ビットのデータにリカバリクロックRCK2の4サイクルが費やされることを意味する。正しい周波数のクロックでは12ビットのデータに対して3サイクルであるため、リカバリクロックRCK2は例外処理Aが4回生じるまでの間に1サイクル多く発振していることになる。逆に言うと、例外処理Aが4回生じるまでの間に、リカバリクロックRCK2のサイクル数より1サイクル少ないクロックを生成すると、それが正しい周波数のリカバリクロックとなる。実施形態として上述したリカバリクロックRCK4の生成方法は、例外処理Aの1回当りにリカバリクロックRCK2の周期で1/4周期だけ長くしていることに相当する。したがって、例外処理Aが4回でリカバリクロックRCK2の周期で1周期長い、すなわち、リカバリクロックRCK2のサイクル数で1サイクル少なくなるため、正しい周波数のリカバリクロックが得られる。実際、図7でサイクル0のエッジ位置4から始まってサイクル19のエッジ位置23までの期間に例外処理Aが4回あり、その間のリカバリクロックRCK2のサイクル数は19=23-4である。この間に8ビットデータDO[7:0]はちょうど9サイクル出力されている。すなわち、リカバリクロックRCK4は9サイクルであり、リカバリクロックRCK2とのサイクル数比較のために2逓倍して18サイクルである。先に求めたリカバリクロックRCK2のサイクル数19よりも1サイクル小さな値となっており、上に述べた通り正しい周波数のリカバリクロックとなっている。例外処理Bも同様であり、リカバリクロックRCK2の1サイクルで本来的には4ビットであるデータが5ビットになっているため、例外処理Bが4回生じるまでのリカバリクロックRCK2のサイクル数より1サイクル多いクロックを生成するとそれが正しい周波数のリカバリクロックとなる。実施形態として上述したリカバリクロックRCK4の生成方法は、例外処理Bの1回当りにリカバリクロックRCK2の周期で1/4周期だけ短くしていることに相当する。したがって、例外処理Bが4回でリカバリクロックRCK2の周期で1周期短い、すなわち、仮想的にリカバリクロックRCK4の2逓倍クロックのサイクル数で1サイクル多くなるため、正しい周波数のリカバリクロックが得られる。本実施形態の半導体集積回路装置は、オーバーサンプリング動作させるSERDES回路20の出力するパラレルデータとリカバリクロックに対してクロックデータリカバリ動作を行うCDR回路10を外付けし、リカバリデータとリカバリクロックを生成出力する。これにより、オーバーサンプリング動作するSERDES20がリカバリするリカバリクロックの周波数が受信データのデータレイト周波数とずれる場合があるという問題と、この周波数ずれのためにパラレルデータをオーバーサンプリングの倍数毎に読み込んで行くとビットエラーを起こすという問題を解消するという効果がもたらされる。オーバーサンプリング動作するSERDES20は、入力シリアルデータと実効的には同一のデータレイトのパラレルデータを出力する。したがって、そのパラレルデータからクロックデータリカバリ技術により、正しい周波数のリカバリクロックとリカバリデータを取り出すことができる。これにより、上述の本実施形態による効果がもたらされる。実施形態2第2の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図8は、本実施形態の半導体集積回路装置の構成を一例として示すブロック図である。図8を参照すると、本実施形態の半導体集積回路装置は、受信するシリアルデータが400Mbpsで、SERDES回路20が8倍オーバーサンプリング動作する。図9は、本実施形態の半導体集積回路装置における外付けCDR回路30の構成を一例として示すブロック図である。図9を参照すると、CDR回路30は、入力されるパラレルデータ1を記憶するレジスタ31、変化点検出回路32、平均化回路33、サンプリング回路35、および、データ処理回路36を備えている。なお、本実施形態では、第1の実施形態図2と異なり、外付けCDR回路30の出力は4本DO[3:0]である。1レジスタ31レジスタ31は、パラレルデータ1を現在のサイクルとその直前のサイクルの2サイクル分記憶し、サイクル毎に記憶内容を更新する。具体的には、レジスタ31は、パラレルデータ1をD00,D10,...,D150,D01,D11,...,D151として記憶する。ここで、D00の括弧内の0は直前のサイクルであることを示し、D01の括弧内の1は現在のサイクルであることを示す。1サイクル後には、Dn1はDn0となり、新しく入力されたパラレルデータが改めてDn1となる。ここで、n=0,1,...,15である。また、レジスタ31は、サンプリング回路35からの信号ψsにより、読み出しデータとして指定されるD01,D11,...,D151の中の3ビットのデータをデータ処理回路36に送る。通常は、3ビット目はダミーデータ指定される。ただし、後述するように、特別の場合に限り、3ビットすべてが読み出しデータ指定される。さらに、他の特別の場合には、2ビット目と3ビット目がダミーデータ指定される。ダミーデータ指定されたビットに関して、レジスタ31は、D01,D11,...,D151の値とは無関係に、値0をデータ処理回路36に送る。2変化点検出回路32変化点検出回路32は、第1の実施形態で説明した変化点検出回路12と同等である。ただし、変化点検出回路32は、VDを4の剰余ではなく8の剰余として計算する点で、変化点検出回路12と相違する。変化点検出回路32は、レジスタ31に記憶されたパラレルデータ1から変化点ポインタVDを読み取る。変化点ポインタVDの値は、パラレルデータをD00,D10,...,D150,D01,D11,...のように並べたときにデータ値に変化があった最小の端子番号の8の剰余である。変化点検出回路32は、サイクル中にデータの変化点がない場合には、前サイクルの変化点ポインタVDの値を保持する。3平均化回路33平均化回路33は、第1の実施形態で説明した平均化回路13と同等である。ただし、平均化ポインタVsの計算式が下記のように相違する。平均化回路33は、変化点検出回路32から変化点ポインタVDを受け取り、平均化ポインタVsを計算してサンプリング回路35に送る。平均化回路33は、平均化ポインタVsを次式により算出する。Vs=VD-Vs0/8Vs0ここで、Vs0は、前サイクルのVsの値である。したがって、今計算されたVsは、次のサイクルではVs0となる。また、VD-Vs0は、絶対値|VD-Vs0|の値が4を超えないように-4~4の値として円環的に扱う。すなわち、|VD-Vs0|の値が4を超える場合には、8の整数倍の値を加えて、結果が-4~4の間の値となるように計算する。また、4と-4は同一視し、計算上は-4とする。例えば、VD=6,Vs0=0のときには、VD-Vs0=6ではなく、-2とする。さらに、平均化回路33は、8の整数倍を加えてVsの値が0以上8未満の値となるようにする。例えば、VD=6,Vs0=0のときには、まず、Vs=6-0/80=-2/80=-0.25となるが、上述の計算規則によると、最終的に、Vs=-0.25=-0.258=7.75となる。また、VD-Vs0/4は、2進数で小数点以下4桁の値とする。端数は切り捨てとする。すなわち、VD-Vs0/4は、10進数では0.0625の整数倍の値となる。Vsも2進数で小数点以下4桁の値とする。平均化回路33は、求めたVsの値をサンプリング回路35に送る。4サンプリング回路35サンプリング回路35は、第1の実施形態で説明したサンプリング回路15と同等である。ただし、読み出しデータの指定が下記のように異なっている。サンプリング回路35は、平均化回路33から受け取った、平均化ポインタVsからレジスタ31から読み出すデータを決定するφsを計算し、レジスタ31に対してリカバリデータとして読み出すべきデータを指定する。レジスタ31は、指定されたデータをデータ処理回路36へ送る。また、サンプリング回路35は、後述する例外処理の有無と種類に関する情報を信号S0としてデータ処理回路36へ送る。本実施形態におけるレジスタ31から読み出すデータの決定方法について以下に述べる。サンプリング回路35は、平均化回路33から受け取ったVsの値を四捨五入し、整数値に丸めてφsとする。このとき、φsの値は、0,1,2,3,4,5,6,7のいずれかの値となる。φs=Vsの小数点以下を四捨五入した値整数値ただし、Vsの小数点以下を四捨五入した場合にφsの値が8となったときには、φs=0とする。サンプリング回路35は、レジスタ31からデータ処理回路36にどの入力パラレルデータを送るかを指定する。指定されるデータは、φsの値に応じて次のように決定される。φs=0,1,2,3,4のときには、現在のサイクルのD0~15のうちφs3,φs11の値を指定する。φs=5,6,7のときには、φs-5,φs3の値をリカバリデータとして指定する。例えば、φs=0のときには、読み込むデータはD3,D11の2つとなる。サンプリング回路35が指定するデータの組をψsとする。例えば、ψs=D3,D11,nullの場合には、ψsが指定している読み出しデータはD3,D11の2ビットであり、3ビット目のnullはダミーデータ指定である。本実施形態では、後述する例外処理の場合に、ψsが指定する読み出しデータは1ビットまたは3ビットとなる。すなわち、ψsが指定する読み出しデータのビット数は1,2,3ビットのいずれかになり、3ビットに足りない分はダミーデータ指定null指定となる。レジスタ31は、データ処理回路36に3ビット幅のデータを送るが、サンプリング回路35からψsによってダミーデータ指定null指定されたビットとして値0を送る。例えば、サンプリング回路35からψs=D3,D11,nullの指定がされた場合には、レジスタ31はD3,D11,0の3ビット幅データをデータ処理回路36に送る。次に、例外処理A、Bについて説明する。Aφsが4から5に変化した場合、すなわち、前サイクルのφsが4で現サイクルのφsが5である場合サンプリング回路35は、D0の値を読み出しデータとして指定しない。すなわち、サンプリング回路35は、読み出しデータとしてψs=D8,null,nullを指定する。このとき、レジスタ31は、3ビット幅データとして、D8,0,0をデータ処理回路36に送る。Bφsが5から4に変化した場合、すなわち、前サイクルのφsが5で現サイクルのφsが4である場合サンプリング回路35は、D0の値も読み出しデータとして指定する。すなわち、サンプリング回路35は、読み出しデータとしてψs=D0,D7,D15を指定する。このとき、レジスタ31は、3ビット幅データとして、D0,D7,D15をデータ処理回路36に送る。サンプリング回路35は、例外処理AもしくはBのいずれがあったか、または、例外処理はなかったかに関する情報を信号S0としてデータ処理回路36に送る。5データ処理回路36本実施形態のデータ処理回路36は、第1の実施形態のデータ処理回路16と同様の回路である。ただし、入力および出力のビット幅は、第1の実施形態におけるビット幅と異なる。また、本実施形態では、データ処理回路36は、例外処理をカウントするカウンタを保持する必要がない。データ処理回路36は、レジスタ31から受けた3ビット幅のデータに対して、サンプリング回路35から受けた情報信号S0に基づいたデータ処理を行い、4ビット幅のパラレルデータとして出力する。また、データ処理回路36は、リカバリクロックRCK2からリカバリクロックRCK4を生成して出力する。データ処理回路36は、上記4ビット幅のパラレルデータをリカバリクロックRCK4に同期して出力する。レジスタ31からデータ処理回路36に送られる3ビット幅信号をRD0,RD1,RD2とする。RD0側をLSBとする。また、データ処理回路36の出力4ビット幅信号をDO0,DO1,...,DO3とする。DO0側をLSBとする。リカバリクロックRCK4は、リカバリクロックRCK2の2分周クロックである。第1の実施形態と同様に、データ処理回路36は、1/4周期ずつずれた4相クロックとしてリカバリクロックRCK2の2分周クロックを生成し、4相中の1相をリカバリクロックRCK4として選択する。データ処理回路36の起動時データ処理回路36のリセット直後には、相0がリカバリクロックRCK4として選択される。また、データ処理回路36は、その起動時には、リカバリクロックRCK4のライズエッジと同期したリカバリクロックRCK2のライズエッジを起点とした2または3サイクルで構成されるRD[2:0]の有効な4ビットデータをリカバリクロックRCK4のサイクルで2サイクル後にDO[3:0]として出力する。次に、データ処理回路36の起動後の動作について説明する。通常時、すなわちS0=NのときはRD[2:0]のうちのRD[1:0]が有効なデータとして出力データDO[3:0]に割り当てられて出力される。一方、RD2は、無効なデータとして捨てられる。例外処理A、すなわち、S0=Aのときには、RD[2:0]のうちのRD0が有効なデータとして出力データDO[3:0]に割り当てられて出力される。一方、RD1,RD2は、無効なデータとして捨てられる。例外処理B、すなわち、S0=Bのときには、RD[2:0]のうちのRD[2:0]のすべてが有効なデータとして出力データDO[3:0]に割り当てられて出力される。このとき、無効なデータとして捨てられるデータは存在しない。データは、4ビットずつ先頭のビット基準でリカバリクロックRCK2の約4サイクル後にリカバリクロックRCK4に同期させて出力する。第1の実施形態と異なり、本実施形態のデータ処理回路36は、例外処理をカウントするカウンタを必要としない。例外処理AS0=Aのときには、リカバリクロックRCK4を相が1つ後1/4周期後のリカバリクロックRCK2の2分周クロックに切り替える。一方、例外処理BS0=Bのときには、リカバリクロックRCK4を相が1つ前1/4周期前のリカバリクロックRCK2の2分周クロックに切り替える。図10は、以上の動作を示す表である。図10は、第1の実施形態において図7に示した表に対応する。図10の0サイクル目と1サイクル目はいずれもS0=Nであり、RD[2:0]の中の有効なデータは欄に1と記載されたRD[1:0]である。欄内にZと記載されたRD2は、無効なデータである。有効な4ビットのデータは、出力DO[3:0]に、DO0=RD00サイクル目,DO1=RD10サイクル目,DO2=RD01サイクル目,DO3=RD11サイクル目として、リカバリクロックRCK2のライズエッジ位置4の所に出力される。図10の2サイクル目は、例外処理AS0=Aであり、RD1とRD2が無効データとなっている。出力データDO[3:0]はDO0=RD02サイクル目,DO1=RD03サイクル目,DO2=RD13サイクル目,DO3=RD04サイクル目としてリカバリクロックRCK2のライズエッジ位置6の所に出力される。リカバリクロックRCK4としての選択相は相0から相1に切り替わり、図10の4サイクル目のエッジ位置がその前から2.5され8.5となっている。すなわち、このときに、リカバリクロックRCK4において、選択相の相0から相1への切り替わりが現れている。実施形態3第3の実施形態に係る半導体集積回路装置について、図面を参照して説明する。本実施形態の半導体集積回路装置は、第1の実施形態および第2の実施形態に係る半導体集積回路装置を一般化したものである。本実施形態では、記号m,N,K,Mを、次のように定義する。m:オーバーサンプリング比N:SERDES出力パラレル数K:外付けCDR分周数M:外付けCDR出力パラレル数すると、m,N,K,Mの間で、以下の関係が成立する。M=KN/mまた、N/mは偶数とする。さらに、mは2のべき乗であって、m≧4とする。また、Kは2のべき乗とする。第1の実施形態は、m=4,N=16,K=2,M=8の場合に相当する。一方、第2の実施形態は、m=8,N=16,K=2,M=4の場合に相当する。図11は、本実施形態の半導体集積回路装置の構成を一例として示すブロック図である。図11を参照すると、半導体集積回路装置は、3,200/mMbpsのシリアルデータを3.2GbpsのSERDES回路20を用いてm倍オーバーサンプリング動作で受信する。外付けCDR回路50は、SERDES回路20のパラレル出力信号端子に接続され、パラレルデータに対してクロックデータリカバリを行う。図12は、本実施形態の半導体集積回路装置における外付けCDR回路50の構成を一例として示すブロック図である。図12を参照すると、CDR回路50は、入力されるパラレルデータ1を記憶するレジスタ51、変化点検出回路52、平均化回路53、サンプリング回路55、および、データ処理回路56を備えている。図13は、SERDES回路20の入力データと出力パラレルデータ、および、SERDES回路20内部のリカバリクロックRCK1の対応関係を示した図である。図示するための都合から、SERDES回路20への入力データと出力パラレルデータの時間的な因果関係は無視して記載している。例えば、図13では、入力データD4が入力される前に出力データD4が確定しているかのように記載されているが、実際の動作では、出力データD4が確定するのは入力データD4が入力された後である。SERDES回路20の出力パラレルデータは、図13に示すように、Nビット幅でD0~DN-1とし、シリアル入力データの入力時刻の早い方からD0,D1,...,DN-1とパラレル変換されるものとする。m倍オーバーサンプリング動作であるため、3200/mMbpsの入力データ1ビットは、基本的に3.2GHzのリカバリクロックでm回取り込まれて、データ値が同一のmビット幅のデータ列となる。ただし、そのビット幅は入力ジッタにより、m1ビット幅やm-1ビット幅になる場合がある。図13の波形には、m1ビット幅になる場合が示されている。パラレルデータ出力端子に出力されるデータ列を複数サイクルに亘って記述する場合には、D01,D02,...D0nのように表すものとする。ここで、D0は出力端子を示し、括弧内の1,2等は何サイクル目の出力データであるかを示す。例えば、D01はD0端子の1サイクル目の出力を表す。CDR回路50は、以下の動作に基づいて、SERDES20の出力するパラレルデータ1をクロックデータリカバリする。1レジスタ51レジスタ51は、パラレルデータ1を現在のサイクルとその直前のサイクルの2サイクル分記憶し、サイクル毎に記憶内容を更新する。具体的には、レジスタ51は、パラレルデータ1をD00,D10,...,DN-10,D01,D11,...,DN-11として記憶する。ここで、D00の括弧内の0は、直前のサイクルであることを示す。また、D01の括弧内の1は、現在のサイクルであることを示す。1サイクル後には、Dn1はDn0となり、新しく入力されたパラレルデータが改めてDn1となる。ここで、n=0,1,...,N-1である。また、レジスタ51は、サンプリング回路55からの信号ψsにより、読み出しデータとして指定されるD01,D11,...,DN-11の中のN/m1ビットのデータをデータ処理回路56に送る。通常は、N/m1ビット目はダミーデータ指定される。ただし、後述するように、特別の場合に限り、N/m1ビットすべてが読み出しデータ指定される。さらに、他の特別の場合には、N/mビット目とN/m1ビット目がダミーデータ指定される。ダミーデータ指定されたビットに関して、レジスタ51は、D01,D11,...,DN-11の値とは無関係に、値0をデータ処理回路56に送る。2変化点検出回路52変化点検出回路52は、レジスタに記憶されているデータ列D00,D10,...,DN-10,D01,D11,...,DN-11から現在のサイクルについてデータ値に変化があった最小の端子番号を変化点として検出し、その値のmの剰余を変化点ポインタVDとして平均化回路53に送る。VD=パラレルデータ1の変化点位置のmの剰余mで割った余り例えば、図14に示すようなデータ列の場合において、現在のサイクルが2サイクル目のときには、変化点はD1であり、変化点ポインタVDの値は1である。一方、現在のサイクルが3サイクル目のときには、変化点の値はD0であり、変化点ポインタVDの値は0である。なお、現在のサイクルが1サイクル目のときには、この表には直前のサイクルのデータは記載されていないが、D0は変化点でないとして変化点ポインタVDの値は2とした。変化点検出回路52は、サイクル中にデータの変化点がない場合には、前サイクルのVDの値を保持し、その値をVDとして平均化回路53に送る。3平均化回路53平均化回路53は、変化点検出回路52から変化点ポインタVDを受け取り、平均化ポインタVsを計算してサンプリング回路55に送る。平均化回路53は、平均化ポインタVsを次式により算出する。Vs=VD-Vs0/mVs0ここで、Vs0は1サイクル前のVsの値である。したがって、今計算されたVsは次のサイクルではVs0となる。また、VD-Vs0は、絶対値|VD-Vs0|がm/2を超えないように-m/2~m/2の値として円環的に扱う。つまり、|VD-Vs0|がm/2を超える場合には、mの整数倍の値を加えて、結果が-m/2~m/2の間の値となるように計算する。また、-m/2とm/2は同一視し、計算上は-m/2とする。例えば、VD=m-1,Vs0=0のときには、VD-Vs0=m-1ではなく、-1と計算する。さらに、平均化回路53は、mの整数倍を加えて、Vsの値が0以上m未満の値となるように計算する。例えば、VD=m-1,Vs0=0のときには、まず、Vs=m-1-0/m0=-1/mとなるが、上述の計算規則によると、最終的に、Vs=-1/m=m-1/mとなる。また、VD-Vs0/mは、2進数で小数点以下log2m1桁の値とする。端数は切り捨てる。すなわち、VD-Vs0/mは、10進数では1/2mの整数倍の値となる。Vsも2進数で小数点以下log2m1桁の値とする。平均化回路53は、求めたVsの値をサンプリング回路55に送る。4サンプリング回路55サンプリング回路55は、平均化回路53から受け取った、平均化ポインタVsからレジスタ51から読み出すデータを決定するφsを計算し、レジスタ51に対してリカバリデータとして読み出すべきデータを指定する。レジスタ51は、指定されたデータをデータ処理回路56へ送る。また、サンプリング回路55は、後述する例外処理の有無と種類に関する情報を信号S0としてデータ処理回路56へ送る。本実施形態におけるレジスタ51から読み出すデータの決定方法について以下に述べる。サンプリング回路55は、平均化回路53から受け取ったVsの値を四捨五入し、整数値に丸めてφsとする。このとき、φsの値は、0,1,2,...,m-1のいずれかの値となる。φs=Vsの小数点以下四捨五入した値整数値ただし、Vsの小数点以下を四捨五入した場合にφsの値がmとなったときには、φs=0とする。サンプリング回路55は、レジスタ51からデータ処理回路56にどの入力パラレルデータを送るかを指定する。指定されるデータは、φsの値に応じて次のように決定される。現在のサイクルのDnn=0~N-1のうちのDmm=φsm/2-1-m,φsm/2-1,φsm/2-1m,φsm/2-12m,...の値を指定する。ただし、mの値が0からN-1の範囲にないDmの値は、指定しない。レジスタ51は、指定された読み出しデータをデータ処理回路56に送る。サンプリング回路55が指定するデータの組をψsとする。例えば、ψs=D1,Dm1,D2m1,D3m1,...,nullの場合には、ψsが指定している読み出しデータはD1,Dm1,D2m1,D3m1,...のN/mビットであり、N/m1ビット目のnullはダミーデータ指定である。本実施形態では、後述する例外処理の場合に、ψsが指定する読み出しデータはN/m-1ビットまたはN/m1ビットとなる。すなわち、ψsが指定する読み出しデータのビット数は、N/m-1ビット,N/mビット,N/m1ビットのいずれかになり、N/m1ビットに足りない分はダミーデータ指定null指定となる。レジスタ51は、データ処理回路56にN/m1ビット幅のデータを送るが、サンプリング回路55からψsによってダミーデータ指定null指定されたビットとして値0を送る。例えば、サンプリング回路55からψs=D1,Dm1,D2m1,D3m1,...,nullの指定がされた場合には、レジスタ51はD1,Dm1,D2m1,D3m1,...,0のN/m1ビット幅データをデータ処理回路56に送る。次に、例外処理A、Bについて説明する。Aφsがm/2からm/21に変化した場合、すなわち、前サイクルのφsがm/2で現サイクルのφsがm/21である場合サンプリング回路55は、D0の値を読み出しデータとして指定しない。すなわち、サンプリング回路55は、読み出しデータとしてψs=Dm,D2m,...,DN-m,null,nullを指定する。このとき、レジスタ51は、N/m1ビット幅データとしてDm,D2m,...,DN-m,0,0をデータ処理回路56に送る。Bφsがm/21からm/2に変化した場合、すなわち、前サイクルのφsがm/21で現サイクルのφsがm/2である場合サンプリング回路55は、D0の値も読み出しデータとして指定する。すなわち、サンプリング回路55は、読み出しデータとしてψs=D0,Dm-1,D2m-1,...,DN-1を指定する。このとき、レジスタ51は、N/m1ビット幅データとしてD0,Dm-1,D2m-1,...,DN-1をデータ処理回路56に送る。このようにデータの変化点の情報に基づいて読み出しデータを決定することで、正しいデータが読み出され、正しくデータリカバリが行われる。サンプリング回路55は、例外処理AもしくはBのいずれがあったか、または、例外処理はなかったかに関する情報を信号S0としてデータ処理回路56に送る。5データ処理回路56データ処理回路56は、レジスタ51から受けたN/m1ビット幅のデータに対して、サンプリング回路55から受けた情報信号S0に基づいたデータ処理を行い、Mビット幅のパラレルデータとして出力する。また、データ処理回路56は、リカバリクロックRCK2からリカバリクロックRCK4を生成して出力する。データ処理回路56は、上記のMビット幅のパラレルデータをこのリカバリクロックRCK4に同期して出力する。図15に示すように、レジスタ51からデータ処理回路56に送られるN/m1ビット幅信号をRD0,RD1,...,RDN/mとする。RD0側がLSBとする。また、データ処理回路56の出力Mビット幅信号をDO0,DO1,...,DOM-1とする。DO0側をLSBとする。リカバリクロックRCK4は、リカバリクロックRCK2のK分周クロックであるK≧2。データ処理回路56は、1/2K周期ずつずれた2K相クロックとしてリカバリクロックRCK2のK分周クロックを生成し、2K相中の1相をリカバリクロックRCK4として選択する。データ処理回路56の動作について説明する。通常時、すなわち、S0=Nのときには、RD[N/m:0]のうちのRD[N/m-1:0]が有効なデータとして出力データDO[M-1:0]に割り当てられて出力される。一方、RDN/mは、無効なデータとして捨てられる。例外処理A、すなわち、S0=Aのときには、RD[N/m:0]のうちのRD[N/m-2:0]が有効なデータとして出力データDO[M-1:0]に割り当てられて出力される。一方、RDN/m-1,RDN/mは、無効なデータとして捨てられる。例外処理B、すなわち、S0=Bのときには、RD[N/m:0]のうちのRD[N/m:0]のすべてが有効なデータとして出力データDO[M-1:0]に割り当てられて出力される。このとき、無効なデータとして捨てられるデータは存在しない。データは、Mビットずつ先頭のビット基準でリカバリクロックRCK4に同期して出力される。本実施形態のデータ処理回路56は、N/2m≧2の場合には、例外処理をカウントするカウンタを持つ。一方、N/2m=1の場合には、このカウンタは不要となる。カウンタは、通常時S0=Nにはカウンタ値を維持し、例外処理AS0=Aのときにはカウンタ値をインクリメント1し、例外処理BS0=Bのときにはカウンタ値をデクリメント-1する。カウンタ値がN/2mになったときには、データ処理回路56は、リカバリクロックRCK4を相が1つ後1/2K周期後のリカバリクロックRCK2のK分周クロックに切り替える。一方、カウンタ値が-N/2mになったときには、データ処理回路56は、リカバリクロックRCK4を相が1つ前1/2K周期前のリカバリクロックRCK2のK分周クロックに切り替える。実施形態4第4の実施形態に係る半導体集積回路装置について、図面を参照して説明する。本実施形態の半導体集積回路装置の構成は、第2の実施形態の半導体集積回路装置図8と同一である。ただし、外付けCDR回路40の中身が異なる。本実施形態の半導体集積回路装置は、受信するシリアルデータが400Mbpsであり、SERDES回路が3.2Gbpsで8倍オーバーサンプリング動作する。図16は、本実施形態に係る半導体集積回路装置における外付けCDR回路CDR40の構成を示すブロック図である。図16を参照すると、CDR回路CDR40は、入力されるパラレルデータ1を記憶するレジスタ41、変化点検出回路42、カウンタ回路43、サンプリング回路45、および、データ処理回路46を備えている。1レジスタ41レジスタ41は、第2の実施形態のレジスタ31と同一の回路である。2変化点検出回路42変化点検出回路42は、第2の実施形態の変化点検出回路32と同一の回路である。3カウンタ回路43カウンタ回路43は、変化点ポインタVDとポインタφsの関係により、カウンタ値を増減する。カウンタ回路43は、カウンタ値に応じて、ポインタφsの値を変化させる。変化点ポインタVDおよびポインタφsは整数であるが、いずれも8の剰余8で割った余りとして扱う。8の剰余となるのは、SERDES20が8倍オーバーサンプリングで使用されるからである。なお、SERDES20が16倍オーバーサンプリングで使用される場合には、VDおよびφsを16の剰余として扱う。カウンタ回路43は、以下のように、カウンタ値を増減する。ここで、変化点ポインタVDと比較するポインタφsは、1サイクル前のポインタφsである。VD=φsのときには、カウンタ値は不変±0とする。VD=φs1,φs2,φs3,φs4のときには、カウンタ値をインクリメント1する。VD=φs-1,φs-2,φs-3のときには、カウンタ値をデクリメント-1する。カウンタ値が8になったときには、φs=φs1とし、カウンタ値を0にリセットする。カウンタの値が-8になったときには、φs=φs-1とし、カウンタの値を0にリセットする。4サンプリング回路45サンプリング回路45は、第2の実施形態のサンプリング回路35と同様である。ただし、本実施形態では、平均化ポインタVsの代わりにポインタφsを受け取る。したがって、サンプリング回路45は、四捨五入を行なう必要はなく、受け取ったポインタφsを第2の実施形態におけるφsとして、そのまま使用する。5データ処理回路46データ処理回路46は、第2の実施形態のデータ処理回路36と同一の回路である。実施形態5第5の実施形態に係る半導体集積回路装置について、図面を参照して説明する。本実施形態の半導体集積回路装置は、第4の実施形態に係る半導体集積回路装置を一般化したものである。第4の実施形態を一般化した本実施形態の構成は、第1の実施形態を一般化した第3の実施形態の構成図11と同一である。ただし、外付けされるCDR回路の中身だけが異なる。ここでは、一例として、受信するシリアルデータが3.2/mGbpsで、SERDES回路が3.2Gbpsでm倍オーバーサンプリング動作する場合について記載する。本実施形態では、記号m,N,K,M,Cを、次のように定義する。m:オーバーサンプリング比N:SERDES出力パラレル数K:外付けCDR分周数M:外付けCDR出力パラレル数C:カウンタ最大値すると、m,N,K,Mの間で、以下の関係が成立する。M=KN/mまた、N/mは偶数とする。さらに、mは2のべき乗であって、m≧4とする。また、Kは2のべき乗とする。第4の実施形態は、m=8,N=16,K=2,M=4、C=8=mの場合に相当する。図17は、本実施形態に係る半導体集積回路装置における外付けCDR回路60の構成を示すブロック図である。図17に示したCDR回路60は、図16に示した第4の実施形態におけるCDR回路40を一般化したものであり、図12に示した第3の実施形態におけるCDR回路50を変形例でもある。図17を参照すると、CDR回路CDR60は、入力されるパラレルデータ1を記憶するレジスタ61、変化点検出回路62、カウンタ回路63、サンプリング回路65、および、データ処理回路66を備えている。1レジスタ61レジスタ61は、第3の実施形態におけるレジスタ51と同一の回路である。2変化点検出回路62変化点検出回路62は、第3の実施形態における変化点検出回路52と同一の回路である。3カウンタ回路63カウンタ回路63は、変化点ポインタVDとポインタφsの関係により、カウンタ値を増減する。カウンタ回路63は、そのカウンタ値に応じて、ポインタφsの値を変化させる。本実施形態は、第3の実施形態における平均化回路53をカウンタ回路63に置き換えた構成に相当する。変化点ポインタVDおよびポインタφsは整数であるが、いずれもmの剰余mで割った余りとして扱う。mの剰余となるのは、SERDES20がm倍オーバーサンプリングで使用されるからである。カウンタ回路63は、以下のように、カウンタ値を増減する。ここで、変化点ポインタVDと比較するポインタφsは、1サイクル前のポインタφsである。VD=φsのときには、カウンタ値は不変±0とする。VD=φs1、φs2、...、φsm/2のときには、カウンタ値をインクリメント1する。VD=φs-1、φs-2、...、φs-m/21のときには、カウンタ値をデクリメント-1する。カウンタ値がカウンタ最大値Cになったときには、φs=φs1とし、カウンタ値を0にリセットする。カウンタ値が-Cになったときには、φs=φs-1とし、カウンタ値を0にリセットする。カウンタ最大値Cは、任意の自然数であり、適当に定められる値である。例えば、C=mにする。4サンプリング回路65サンプリング回路65は、第3の実施形態のサンプリング回路55と同様である。ただし、本実施形態では、平均化ポインタVsの代わりにポインタφsを受け取る。したがって、サンプリング回路65は、四捨五入を行なう必要はなく、受け取ったポインタφsを第3の実施形態におけるφsとして、そのまま使用する。5データ処理回路66データ処理回路66は、第3の実施形態におけるデータ処理回路56と同一の回路である。実施形態6第6の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図18は、本実施形態に係る半導体集積回路装置の構成を示すブロック図である。図18を参照すると、半導体集積回路装置は、同一の半導体チップ上に3.2Gbps動作のSERDES回路20と、外付けCDR回路30と、CDR回路30の出力データを処理する出力データ処理回路70とを搭載して構成される。実施形態7第7の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図19は、本実施形態に係る半導体集積回路装置の構成を示すブロック図である。図19を参照すると、半導体集積回路装置は、同一の半導体チップ上に3.2Gbps動作のSERDES回路20と、SERDES回路20のパラレル出力データをデータ処理する出力データ処理回路71と、4倍オーバーサンプリング受信用外付けCDR回路10と、CDR回路10のパラレル出力データを処理する出力データ処理回路72と、8倍オーバーサンプリング受信用外付けCDR回路30と、CDR回路30のパラレル出力データを処理する出力データ処理回路73と、制御端子1からの入力に応じて出力データ処理回路71,72,73の中の1つだけが有効となるように制御する制御回路80と、を搭載して構成される。本実施形態では、SERDES回路20への入力シリアルデータのデータレイトとして、3.2Gbps,800Mbps,400Mbpsの3つのデータレイトの場合があり、いずれのデータレイトで使用するかを制御端子1から入力する。制御回路80は、その入力に応じて、3.2Gbps用の出力データ処理回路71と、800Mbps用の出力データ処理回路72と、400Mbps用の出力データ処理回路73のうちのいずれか1つを有効にし、残り2つを無効とする。このように、本実施形態の半導体集積回路装置は、入力シリアルデータのデータレイトに応じた適切な動作を行う。実施形態8第8の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図20は、本実施形態に係る半導体集積回路装置の構成を示すブロック図である。図20を参照すると、半導体集積回路装置は、同一の半導体チップ上に、3.2Gbps動作のSERDES回路20と、SERDES回路20のパラレル出力データをデータ処理する出力データ処理回路71と、4倍オーバーサンプリング受信用外付けCDR回路10と、CDR回路10のパラレル出力データを処理する出力データ処理回路72と、8倍オーバーサンプリング受信用外付けCDR回路30と、CDR回路30のパラレル出力データを処理する出力データ処理回路73と、SERDES回路20のパラレル出力データから受信しているシリアルデータのデータレイトが3.2Gbpsであるか、800Mbpsであるか、400Mbpsであるかを判断して、その結果に応じて出力データ処理回路71,72,73の中の1つを有効となるように制御する制御回路81と、を搭載して構成される。本実施形態では、第7の実施形態と同様に、SERDES回路20への入力シリアルデータのデータレイトとして3.2Gbps,800Mbps,400Mbpsの3つのデータレイトの場合がある。制御回路81は、SERDES回路20の出力パラレルデータ1から、入力シリアルデータのデータレイトが3.2Gbpsであるか、800Mbpsであるか、400Mbpsであるかを判定して、その判定結果に対応する出力データ処理回路71,72,73の中の1つが有効になるように制御する。データレイトの判定は、シリアルデータ伝送状態を確立させるためのトレーニングパターンで行う。本実施形態では、説明を簡単にするために、トレーニングパターンは、シリアルデータとして0101...の0,1を繰り返すトグルパターンとする。入力シリアルデータのデータレイトが3.2Gbpsである場合には、パラレルデータ1は1ビット毎に0と1を繰り返すような信号となる。例えば、D15=0,D14=1,D13=0,D12=1,...,D1=0,D0=1のようになる。データレイトが800Gbpsである場合には、パラレルデータ1は4ビット毎に0と1を交互に繰り返すような信号となる。例えば、D15=0,D14=0,D13=0,D12=0,D11=1,D10=1,D9=1,D8=1,D7=0,...,D1=1,D0=1のようになる。データレイトが400Gbpsである場合には、パラレルデータ1は8ビット毎に0と1を交互に繰り返すような信号となる。例えば、D15=0,D14=0,D13=0,D12=0,D11=0,D10=0,D9=0,D8=0,D7=1,...,D1=1,D0=1のようになる。制御回路81は、パラレルデータ1がこの3つの信号パターンのいずれに合致しているかを判定して、合致したデータレイトに対応する出力データ処理回路71,72,73の中の1つを有効とし、残り2つを無効にする。このように、本実施形態の半導体集積回路装置は、入力シリアルデータのデータレイトに応じた適切な動作を行う。実施形態9第9の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図21は、本実施形態に係る半導体集積回路装置の構成を示すブロック図である。図21を参照すると、本実施形態の半導体集積回路装置は、第8の実施形態に係る半導体集積回路装置に対して、CDR回路10とCDR回路30の有効および無効を制御する信号を加えたものである。制御回路82は、入力シリアルデータが3.2Gbpsの場合にはCDR回路10とCDR回路30が無効になり、800Mbpsの場合にはCDR回路30が無効になり、400Mbpsの場合にはCDR回路10が無効になるように制御する。本実施形態の半導体集積回路装置によると、不要なCDR回路が動作しないことにより、実施形態8の場合と比較して消費電力をさらに削減することができる。なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示請求の範囲を含むの枠内において、さらにその基本的技術思想に基づいて、実施形態の変更調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。"