(57)【要約】【課題】ＳＥＲＤＥＳがジッタを含むシリアルデータ信号をオーバーサンプリング動作によって受信した場合に、ＳＥＲＤＥＳから出力されたパラレルデータ信号およびリカバリクロック信号に基づいて、もとのシリアルデータ信号を正しく受信できるようにすること。【解決手段】半導体集積回路装置は、シリアルデータ信号をｍ倍（ｍは２のべき乗）オーバーサンプリングするＳＥＲＤＥＳ回路から出力されたＮビットの第１のパラレルデータ信号に基づいてＫＮ／ｍビット（Ｎ／ｍは偶数）の第２のパラレルデータ信号を生成するとともに、ＳＥＲＤＥＳ回路から出力された第１のリカバリクロック信号をＫ分周（Ｋは２のべき乗）して第２のリカバリクロック信号を生成し、第２のパラレルデータ信号と第２のリカバリクロック信号とを同期して出力するクロックデータリカバリ回路を備えている。【選択図】図１１
2012156776.tif 000002
【特許請求の範囲】
【請求項１】
シリアルデータ信号をｍ倍（ｍは２のべき乗）オーバーサンプリングするＳＥＲＤＥＳ回路から出力されたＮビットの第１のパラレルデータ信号に基づいてＫＮ／ｍビット（Ｎ／ｍは偶数）の第２のパラレルデータ信号を生成するとともに、該ＳＥＲＤＥＳ回路から出力された第１のリカバリクロック信号をＫ分周（Ｋは２のべき乗）して第２のリカバリクロック信号を生成し、該第２のパラレルデータ信号と該第２のリカバリクロック信号とを同期して出力するクロックデータリカバリ回路を備えていることを特徴とする半導体集積回路装置。
【請求項２】
前記クロックデータリカバリ回路は、現在のサイクルにおける前記第１のパラレルデータＤ０（１），Ｄ１（１），…，ＤＮ−１（１）、および、直前のサイクルにおける前記第１のパラレルデータＤ０（０），Ｄ１（０），…，ＤＮ−１（０）を保持するレジスタと、
Ｄｎ（０）とＤｎ（１）との間で値が変動した最小のｎの値（ｎ＝０，１，…，Ｎ−１）を変化点として抽出するとともに、該変化点のｍの剰余を求めて、変化点ポインタとして出力する変化点検出回路と、を備えていることを特徴とする、請求項１に記載の半導体集積回路装置。
【請求項３】
前記変化点検出回路は、Ｄｎ（０）とＤｎ（１）との間で値の変動がない場合には、前サイクルにおける変化点ポインタの値をそのまま出力することを特徴とする、請求項２に記載の半導体集積回路装置。
【請求項４】
前記クロックデータリカバリ回路は、前記変化点ポインタをＶＤとし、直前のサイクルにおける平均化ポインタをＶｓ０として、現在のサイクルにおける平均化ポインタＶｓを、式Ｖｓ＝（ＶＤ−Ｖｓ０）／ｍ＋Ｖｓ０に基づいて計算するとともに、該式において絶対値｜ＶＤ−Ｖｓ０｜の値がｍ／２を超えることがないように円環的に扱い、（ＶＤ−Ｖｓ０）の値がｍ／２となった場合には−ｍ／２とし、Ｖｓの値が０以上ｍ未満となるように該式の右辺にｍの整数倍を加え、求めたＶｓの値を平均化ポインタＶｓとして出力する平均化回路を備えていることを特徴とする、請求項２または３に記載の半導体集積回路装置。
【請求項５】
前記クロックデータリカバリ回路は、前記平均化回路から出力された平均化ポインタＶｓの小数点以下を四捨五入した値をポインタφｓとするとともに、ポインタφｓの値がｍとなった場合にはポインタφｓの値を０とし、ポインタφｓの値に応じて前記レジスタから読み出すべきデータを指定するサンプリング回路を備えていることを特徴とする、請求項４に記載の半導体集積回路装置。
【請求項６】
前記クロックデータリカバリ回路は、前記変化点ポインタをＶＤとし、直前のサイクルにおけるポインタφｓをφｓ０として、ＶＤ＝φｓ０（ｍｏｄ  ｍ）である場合にはカウンタ値を不変とし、ＶＤ＝φｓ＋１，φｓ＋２，…，φｓ＋ｍ／２（ｍｏｄ  ｍ）である場合にはカウンタ値をインクリメントし、ＶＤ＝φｓ−１，φｓ−２，…，φｓ−ｍ／２＋１（ｍｏｄ  ｍ）である場合にはカウンタ値をデクリメントし、カウンタ値が所定の最大カウンタ値となった場合にはポインタφｓをφｓ＝φｓ０＋１とするとともにカウンタ値をゼロにリセットし、カウンタ値が所定の最小カウンタ値となった場合にはポインタφｓをφｓ＝φｓ０−１とするとともにカウンタ値をゼロにリセットするカウンタ回路を備えていることを特徴とする、請求項２または３に記載の半導体集積回路装置。
【請求項７】
前記クロックデータリカバリ回路は、前記カウンタ回路により求めたポインタφｓの値がｍとなった場合にはポインタφｓの値を０とし、ポインタφｓの値に応じて前記レジスタから読み出すべきデータを指定するサンプリング回路を備えていることを特徴とする、請求項６に記載の半導体集積回路装置。
【請求項８】
前記サンプリング回路は、現在のサイクルのＤｎ（ｎ＝０〜Ｎ−１）のうちのＤｍ（ｍ＝φｓ＋ｍ／２−１−ｍ，φｓ＋ｍ／２−１，φｓ＋ｍ／２−１＋ｍ，φｓ＋ｍ／２−１＋２ｍ，…；０≦ｍ≦Ｎ−１）を、前記レジスタから読み出すべきデータとして指定することを特徴とする、請求項５または７に記載の半導体集積回路装置。
【請求項９】
前記サンプリング回路は、直前のサイクルにおける前記ポインタφｓの値がｍ／２であり、現在のサイクルにおける前記ポインタφｓの値がｍ／２＋１である第１の場合には、前記レジスタから読み出すべきデータとしてＤ０を指定せず、直前のサイクルにおける前記ポインタφｓの値がｍ／２＋１であり、現在のサイクルにおける前記ポインタφｓの値がｍ／２である第２の場合には、前記レジスタから読み出すべきデータとしてＤ０を指定することを特徴とする、請求項８に記載の半導体集積回路装置。
【請求項１０】
前記サンプリング回路は、前記第１の場合と、前記第２の場合と、これらのいずれの場合にも該当しない第３の場合とを識別する情報信号を出力することを特徴とする、請求項９に記載の半導体集積回路装置。
【請求項１１】
前記クロックデータリカバリ回路は、前記情報信号に応じて、前記第２のクロック信号および前記第２のパラレルデータ信号を生成するデータ処理回路を備えていることを特徴とする、請求項１０に記載の半導体集積回路装置。
【請求項１２】
前記データ処理回路は、前記レジスタから出力された（Ｎ／ｍ＋１）ビット幅信号をＲＤ０，ＲＤ１，…，ＲＤＮ／ｍとし、前記第２のパラレルデータ信号をＤＯ０，ＤＯ１，…，ＤＯＭ−１とすると（Ｍ＝ＫＮ／ｍ）、前記第１の場合にはＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ−２：０］を、前記第２の場合にはＲＤ［Ｎ／ｍ：０］のすべてを、前記第３の場合にはＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ−１：０］を、それぞれ有効なデータとして出力データＤＯ［Ｍ−１：０］に割り当てて出力することを特徴とする、請求項１１に記載の半導体集積回路装置。
【請求項１３】
前記データ処理回路は、前記第１のリカバリクロック信号をＫ分周した、１／２Ｋ周期ずつ位相がずれた２Ｋ相のクロック信号を生成し、該２Ｋ相のクロック信号から選択したクロック信号を前記第２のリカバリクロック信号として出力することを特徴とする、請求項１１または１２に記載の半導体集積回路装置。
【請求項１４】
前記データ処理回路は、前記第１の場合にはカウンタ値をインクリメントし、前記第２の場合にはカウンタ値をデクリメントし、前記第３の場合にはカウンタ値を不変とし、カウンタ値がＮ／２ｍとなった場合には前記２Ｋ相のクロック信号のうちの１／２Ｋ周期遅れた相のクロック信号を前記第２のリカバリクロック信号として出力し、カウンタ値が−Ｎ／２ｍとなった場合には前記２Ｋ相のクロック信号のうちの１／２Ｋ周期進んだ相のクロック信号を前記第２のリカバリクロック信号として出力することを特徴とする、請求項１３に記載の半導体集積回路装置。
【請求項１５】
シリアルデータ信号をｍ倍（ｍは２のべき乗）オーバーサンプリングして、前記第１のパラレルデータ信号および前記第１のリカバリクロック信号として出力するＳＥＲＤＥＳ回路と、
前記クロックデータリカバリ回路と、を備えていることを特徴とする、請求項１ないし１４のいずれか１項に記載の半導体集積回路装置。
【請求項１６】
前記ＳＥＲＤＥＳ回路から出力された前記第１のパラレルデータ信号および前記第１のリカバリクロック信号を処理する第１のデータ処理回路と、
前記クロックデータリカバリ回路から出力された前記第２のパラレルデータ信号および前記第２のリカバリクロック信号を処理する第２のデータ処理回路と、を備えていることを特徴とする、請求項１ないし１５のいずれか１項に記載の半導体集積回路装置。
【請求項１７】
前記クロックデータリカバリ回路においてｍ＝ｍ１（ｍ１は２のべき乗）とした第１のクロックデータリカバリ回路と、
前記クロックデータリカバリ回路においてｍ＝ｍ２（ｍ２は２のべき乗であってｍ２≠ｍ１）とした第２のクロックデータリカバリ回路と、を備えていることを特徴とする、請求項１ないし１５のいずれか１項に記載の半導体集積回路装置。
【請求項１８】
前記第１のクロックデータリカバリ回路および前記第２のクロックデータリカバリ回路は、同一のＳＥＲＤＥＳ回路から前記第１のパラレルデータ信号および前記第１のリカバリクロック信号を受信することを特徴とする、請求項１７に記載の半導体集積回路装置。
【請求項１９】
前記ＳＥＲＤＥＳ回路から出力された前記第１のパラレルデータ信号および前記第１のリカバリクロック信号を処理する第１のデータ処理回路と、
前記第１のクロックデータリカバリ回路から出力された前記第２のパラレルデータ信号および前記第２のリカバリクロック信号を処理する第２のデータ処理回路と、
前記第２のクロックデータリカバリ回路から出力された前記第２のパラレルデータ信号および前記第２のリカバリクロック信号を処理する第３のデータ処理回路と、を備えていることを特徴とする、請求項１７または１８に記載の半導体集積回路装置。
【請求項２０】
前記第１のデータ処理回路および前記第２のデータ処理回路のうちのいずれか、または、前記第１のデータ処理回路ないし前記第３のデータ処理回路のうちのいずれかを稼動状態とし、それ以外を待機状態とする制御回路を備えていることを特徴とする、請求項１６または１９に記載の半導体集積回路装置。
【請求項２１】
前記制御回路は、前記ＳＥＲＤＥＳ回路から出力された前記第１のパラレルデータ信号および前記第１のリカバリクロック信号を参照して、前記第１のデータ処理回路および前記第２のデータ処理回路のうちのいずれを稼動状態とするか、または、前記第１のデータ処理回路ないし前記第３のデータ処理回路のうちのいずれを稼動状態とするかを判定することを特徴とする、請求項２０に記載の半導体集積回路装置。
【請求項２２】
前記制御回路は、前記第１のデータ処理回路を稼動状態とする場合には前記第１のクロックデータリカバリ回路および前記第２のクロックデータリカバリ回路を待機状態とし、前記第２のデータ処理回路を稼動状態とする場合には前記第１のクロックデータリカバリ回路を稼動状態とするとともに前記第２のクロックデータリカバリ回路を待機状態とし、
前記第３のデータ処理回路を稼動状態とする場合には前記第１のクロックデータリカバリ回路を待機状態とするとともに前記第２のクロックデータリカバリ回路を稼動状態とすることを特徴とする、請求項２０または２１に記載の半導体集積回路装置。
【請求項２３】
シリアルデータ信号をｍ倍（ｍは２のべき乗）オーバーサンプリングするＳＥＲＤＥＳ回路から出力されたＮビットの第１のパラレルデータ信号に基づいてＫＮ／ｍビット（Ｎ／ｍは偶数）の第２のパラレルデータ信号を生成する工程と、
前記ＳＥＲＤＥＳ回路から出力された第１のリカバリクロック信号をＫ分周（Ｋは２のべき乗）して第２のリカバリクロック信号を生成する工程と、
前記第２のパラレルデータ信号と前記第２のリカバリクロック信号とを同期して出力する工程と、を含むことを特徴とするジッタ補正方法。
【請求項２４】
現在のサイクルにおける前記第１のパラレルデータＤ０（１），Ｄ１（１），…，ＤＮ−１（１）、および、直前のサイクルにおける前記第１のパラレルデータＤ０（０），Ｄ１（０），…，ＤＮ−１（０）を保持するレジスタに格納されたデータを参照し、Ｄｎ（０）とＤｎ（１）との間で値が変動した最小のｎの値（ｎ＝０，１，…，Ｎ−１）を変化点として抽出する工程と、
前記変化点のｍの剰余を、変化点ポインタとして算出する工程と、を含むことを特徴とする、請求項２３に記載のジッタ補正方法。
【請求項２５】
前記変化点ポインタをＶＤとし、直前のサイクルにおける平均化ポインタをＶｓ０として、現在のサイクルにおける平均化ポインタＶｓを、式Ｖｓ＝（ＶＤ−Ｖｓ０）／ｍ＋Ｖｓ０に基づいて計算するとともに、該式において絶対値｜ＶＤ−Ｖｓ０｜の値がｍ／２を超えることがないように円環的に扱い、（ＶＤ−Ｖｓ０）の値がｍ／２となった場合には−ｍ／２とし、Ｖｓの値が０以上ｍ未満となるように該式の右辺にｍの整数倍を加えることにより、平均化ポインタＶｓを算出する工程を含むことを特徴とする、請求項２４に記載のジッタ補正方法。
【請求項２６】
前記平均化ポインタＶｓの小数点以下を四捨五入した値をポインタφｓとする工程と、
ポインタφｓの値がｍとなった場合にはポインタφｓの値を０とする工程と、
ポインタφｓの値に応じて前記レジスタから読み出すべきデータを指定する工程と、を含むことを特徴とする、請求項２５に記載のジッタ補正方法。
【請求項２７】
前記変化点ポインタをＶＤとし、直前のサイクルにおけるポインタφｓをφｓ０として、ＶＤ＝φｓ０（ｍｏｄ  ｍ）である場合にはカウンタ値を不変とする工程と、
ＶＤ＝φｓ＋１，φｓ＋２，…，φｓ＋ｍ／２（ｍｏｄ  ｍ）である場合にはカウンタ値をインクリメントする工程と、
ＶＤ＝φｓ−１，φｓ−２，…，φｓ−ｍ／２＋１（ｍｏｄ  ｍ）である場合にはカウンタ値をデクリメントする工程と、
カウンタ値が所定の最大カウンタ値となった場合にはポインタφｓをφｓ＝φｓ０＋１とするとともにカウンタ値をゼロにリセットする工程と、
カウンタ値が所定の最小カウンタ値となった場合にはポインタφｓをφｓ＝φｓ０−１とするとともにカウンタ値をゼロにリセットする工程と、を含むことを特徴とする、請求項２４に記載のジッタ補正方法。
【請求項２８】
前記ポインタφｓの値がｍとなった場合にはポインタφｓの値を０とする工程と、
前記ポインタφｓの値に応じて前記レジスタから読み出すべきデータを指定する工程と、を含むことを特徴とする、請求項２７に記載のジッタ補正方法。
【請求項２９】
現在のサイクルのＤｎ（ｎ＝０〜Ｎ−１）のうちのＤｍ（ｍ＝φｓ＋ｍ／２−１−ｍ，φｓ＋ｍ／２−１，φｓ＋ｍ／２−１＋ｍ，φｓ＋ｍ／２−１＋２ｍ，…；０≦ｍ≦Ｎ−１）を、前記レジスタから読み出すべきデータとして指定する工程を含むことを特徴とする、請求項２６または２８に記載のジッタ補正方法。
【請求項３０】
直前のサイクルにおける前記ポインタφｓの値がｍ／２であり、現在のサイクルにおける前記ポインタφｓの値がｍ／２＋１である第１の場合には、前記レジスタから読み出すべきデータとしてＤ０を指定しない工程と、
直前のサイクルにおける前記ポインタφｓの値がｍ／２＋１であり、現在のサイクルにおける前記ポインタφｓの値がｍ／２である第２の場合には、前記レジスタから読み出すべきデータとしてＤ０を指定する工程と、を含むことを特徴とする、請求項２９に記載のジッタ補正方法。
【請求項３１】
前記第１の場合と、前記第２の場合と、これらのいずれの場合にも該当しない第３の場合とを識別する情報信号を生成する工程を含むことを特徴とする、請求項３０に記載のジッタ補正方法。
【請求項３２】
前記情報信号に応じて、前記第２のクロック信号および前記第２のパラレルデータ信号を生成する工程を含むことを特徴とする、請求項３１に記載のジッタ補正方法。
【請求項３３】
前記レジスタから出力された（Ｎ／ｍ＋１）ビット幅信号をＲＤ０，ＲＤ１，…，ＲＤＮ／ｍとし、前記第２のパラレルデータ信号をＤＯ０，ＤＯ１，…，ＤＯＭ−１としたときに（Ｍ＝ＫＮ／ｍ）、前記第１の場合にはＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ−２：０］を、前記第２の場合にはＲＤ［Ｎ／ｍ：０］のすべてを、前記第３の場合にはＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ−１：０］を、それぞれ有効なデータとして出力データＤＯ［Ｍ−１：０］に割り当てて出力する工程を含むことを特徴とする、請求項３２に記載のジッタ補正方法。
【請求項３４】
前記第１のリカバリクロック信号をＫ分周した、１／２Ｋ周期ずつ位相がずれた２Ｋ相のクロック信号を生成する工程と、
前記２Ｋ相のクロック信号から選択したクロック信号を前記第２のリカバリクロック信号として出力する工程と、を含むことを特徴とする、請求項３２または３３に記載のジッタ補正方法。
【請求項３５】
前記第１の場合にはカウンタ値をインクリメントする工程と、
前記第２の場合にはカウンタ値をデクリメントする工程と、
前記第３の場合にはカウンタ値を不変とする工程と、
カウンタ値がＮ／２ｍとなった場合には前記２Ｋ相のクロック信号のうちの１／２Ｋ周期遅れた相のクロック信号を前記第２のリカバリクロック信号とする工程と、
カウンタ値が−Ｎ／２ｍとなった場合には前記２Ｋ相のクロック信号のうちの１／２Ｋ周期進んだ相のクロック信号を前記第２のリカバリクロック信号とする工程と、を含むことを特徴とする、請求項３４に記載のジッタ補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置およびジッタ補正方法に関し、特に、高速シリアル伝送に用いられる半導体集積回路装置およびジッタ補正方法に関する。
【背景技術】
【０００２】
図２２は、特許文献１の図１に記載されたＳＥＲＤＥＳ（Ｓｅｒｉａｌｉｚｅｒ／Ｄｅｓｅｒｉａｌｉｚｅｒ、シリアライザ／デシリアライザ）回路２０を搭載した半導体集積回路装置の構成を示すブロック図である。図２２を参照すると、ＳＥＲＤＥＳ回路２０は、受信シリアルデータから該データに同期したクロックを抽出し、抽出したクロック（リカバリクロック）およびデータを出力するクロックデータリカバリ（ＣＤＲ）回路２１と、シリアルデータをパラレル化するシリアルパラレル（Ｓ／Ｐ）変換回路２２とを備えている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１８４８４７号公報（図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下の分析は、本発明者によってなされたものである。
【０００５】
シリアル信号を受信する際にＳＥＲＤＥＳ回路２０をオーバーサンプリング状態で用いた場合には、ＳＥＲＤＥＳ回路２０がリカバリするリカバリクロックの周波数が受信データのデータレイト周波数とずれるおそれがある。また、この周波数のずれにより、ＳＥＲＤＥＳ回路２０の出力パラレルデータをオーバーサンプリングの倍数毎に読み込んで行くとビットエラーを起こすおそれがある。
【０００６】
このような現象が発生するメカニズムについて、図面を参照して説明する。
【０００７】
図２２は、一例として、３．２ＧｂｐｓのＳＥＲＤＥＳ回路２０を用いて、８００Ｍｂｐｓの伝送データを４倍オーバーサンプリングで受信する場合を示す。受信データとして８００Ｍｂｐｓと３．２Ｇｂｐｓの両方のデータレイトに対応したい場合や、半導体チップ上で使用可能なＳＥＲＤＥＳマクロに８００Ｍｂｐｓのデータレイトに対応したものがない場合に、このようなＳＥＲＤＥＳ回路２０の使用法が用いられる。
【０００８】
ＳＥＲＤＥＳ回路２０内には、クロックデータリカバリ（ＣＤＲ）回路２１およびシリアルパラレル（Ｓ／Ｐ）変換回路２２が設けられている。ＣＤＲ回路２１で８００Ｍｂｐｓ入力データからデータとクロックの復元が行われる。復元されたデータとクロックは、Ｓ／Ｐ変換回路２２に入力されて１：１６のシリアルパラレル変換が行われて、２００Ｍｂｐｓの１６本のパラレルデータと、１６分周された２００ＭＨｚのリカバリクロックＲＣＫ２が出力される。
【０００９】
図２２においては、ＳＥＲＤＥＳ回路２０は３．２ＧｂｐｓのＳＥＲＤＥＳであるため、ＣＤＲ回路２１の出力は３．２Ｇｂｐｓデータである。しかし、入力データは８００Ｍｂｐｓであるため、出力データは同一データのビットが４ビット連続するデータストリームとなっており、実効的なデータレイトは８００Ｍｂｐｓである。ＳＥＲＤＥＳ回路２０内のＣＤＲ回路２１が出力するリカバリクロックＲＣＫ１は、３．２ＧＨｚである。
【００１０】
図２２のＳＥＲＤＥＳ回路２０において、リカバリクロックの周波数ずれが発生するメカニズムについて説明する。
【００１１】
「ジッタ」の定義は、図２３に示すように、ジッタのない理想データ信号のエッジ位置と実際のデータ信号のエッジ位置との差分とする。ここでは、一例として、図２３の波形に示したようなジッタが入力データにのっているものとする。また、説明を分かりやすくするために、規則的な特殊な形のジッタを想定する。ただし、ＳＩＮ（正弦）波ジッタやランダムなジッタ等であっても、同様の問題が生じる。
【００１２】
また、説明を分かりやすくするために、８００Ｍｂｐｓ入力シリアルデータは、０１０１０１…パターンのように、毎ビット毎にデータ変化があり、エッジがあるものとする。ただし、０００１０１１００００１１１０１…のように、ランダムなデータストリームの場合においても同様の問題が生じる。
【００１３】
図２３のジッタが存在する場合には、図２４に示すように、入力データはあるビット（図２４では第２ビット）の開始エッジに８００Ｍｂｐｓデータとして０．２５ＵＩのジッタが存在することになる。ＣＤＲ回路２１は、リカバリクロックのエッジ位置を入力データのエッジ位置に一致させる方向に動作する。８００Ｍｂｐｓデータの０．２５ＵＩジッタは、３．２Ｇｂｐｓデータとしては、１ＵＩのジッタに相当する。このとき、ＣＤＲ回路２１は、リカバリクロックの９番目のエッジと入力データのエッジを一致させるように動作する。
【００１４】
１ＵＩのジッタを持った３．２Ｇｂｐｓデータを受信するという観点では、これは誤動作となる。正しい動作は、リカバリクロックの８番目のエッジを入力データのエッジと一致させる動作でなければならない。しかし、ＣＤＲ回路２１は、１ビットの信号が１ＵＩのジッタで２ビット幅になっているのか、同一データの信号が２ビット連続して来たのかを区別することができず、後者の場合に対応した動作を行うため、リカバリクロックの９番目のエッジと入力データのエッジを合わせるような動作となる。その後、ジッタは０ＵＩに向かって緩やかに小さくなって行くため、ＣＤＲ回路２１は、リカバリクロックの１３番目のエッジ、１７番目のエッジ、２１番目のエッジ、…を入力データのエッジに一致させるように動作する。
【００１５】
この例では、入力データの１２ビット目の開始エッジでジッタが０ＵＩとなる、すなわち、理想３．２ＧＨｚクロックの４８番目のエッジと入力データエッジの位置が一致する。このとき、リカバリクロックの４９番目のエッジが、理想クロックの４８番目のエッジと一致する。次に、入力データの２２ビット目の開始エッジで、再度０．２５ＵＩのジッタが生じ、その後、緩やかに０ＵＩに向かって減少するという動作が周期的に繰り返される。このとき、理想３．２ＧＨｚクロックの８８番目のエッジの位置にリカバリクロックの８９番目のエッジが存在し、理想３．２ＧＨｚクロックの１６８番目のエッジの位置にリカバリクロックの１７０番目のエッジが存在する。したがって、リカバリクロックの周波数は、正確には３．２ＧＨｚとなるべきであるが、周波数は１／８０＝１．２５％高くなり、３．２４ＧＨｚになる。
【００１６】
このように、リカバリクロックの周波数ずれが発生する点が、従来技術における問題点である。
【００１７】
出力パラレルデータは、正確には１ビットあたり２００Ｍｂｐｓであるべきところ、２０２．５Ｍｂｐｓとなり、パラレルデータ１ビットあたりの動作レートも、ずれた値となる。
【００１８】
４倍のオーバーサンプリングであることから、出力パラレルデータを４ビット毎に読み取ればよいとして、例えば、出力パラレルデータの２ビット目（Ｄ１）、６ビット目（Ｄ５）、…、１４ビット目（Ｄ１３）と固定したパラレルビットの出力値を、入力８００Ｍｂｐｓデータの４パラレル化したデータ値として読み込んでいくと、いずれかの箇所でビットずれを起こし、ビットエラーが発生する。
【００１９】
実際に、図２４に示した場合では、入力８００Ｍｂｐｓデータの０ビット目は、パラレルデータの１〜４ビット目として４ビット幅で出力されるが、入力８００Ｍｂｐｓデータの１ビット目はパラレルデータの５〜９ビット目として５ビット幅で出力される。入力８００Ｍｂｐｓデータの２ビット目はパラレルデータの１０〜１３ビット目として４ビット幅で出力される。このように、４ビット幅、５ビット幅、４ビット幅、４ビット幅、…、４ビット幅、５ビット幅、４ビット幅のようにパラレルデータで出力されることで、ビットずれが生じる。
【００２０】
なお、パラレルデータの１ビットのみに着目するとデータレイトは正しい値からずれているが、１６ビットのパラレルデータ全体としては実効的なデータレイトは８００Ｍｂｐｓと正しい値である。すなわち、パラレルデータ全体の実効的データレイトは、入力シリアルデータのデータレイトと一致し、ずれは生じない。なぜなら、入力された８００Ｍｂｐｓシリアルデータのパラレル化において、シリアルの１ビットがパラレルの３ビット幅データ、５ビット幅データまたは４ビット幅データになることはあるが、８００Ｍｂｐｓのデータストリームとしては余分なビットが加わったり、ビットが消えたりすることはないからである。
【００２１】
一般に、高速シリアル信号の受信において、半導体チップ上に搭載するＳＥＲＤＥＳ回路マクロが所望のデータレイトより高いデータレイト、例えば、４倍のデータレイトにしか対応していない場合、オーバーサンプリング状態で使用することで所望のデータレイトで使用可能のように考えられる。しかしながら、このような使用方法をした場合には、ＳＥＲＤＥＳ回路がリカバリするリカバリクロックの周波数が受信データのデータレイト周波数とずれる場合があり、ＳＥＲＤＥＳ回路の後段の回路でビットエラーが発生する場合がある。例えば、ジッタを含むシリアルデータをＳＥＲＤＥＳ回路がオーバーサンプリング動作で受信した場合には、シリアルデータを正常に受信できないおそれがある。
【００２２】
そこで、ＳＥＲＤＥＳがジッタを含むシリアルデータ信号をオーバーサンプリング動作によって受信した場合に、ＳＥＲＤＥＳから出力されたパラレルデータ信号およびリカバリクロック信号に基づいて、もとのシリアルデータ信号を正しく受信できるようにすることが課題となる。
【課題を解決するための手段】
【００２３】
本発明の第１の視点に係る半導体集積回路装置は、
シリアルデータ信号をｍ倍（ｍは２のべき乗）オーバーサンプリングするＳＥＲＤＥＳ回路から出力されたＮビットの第１のパラレルデータ信号に基づいてＫＮ／ｍビット（Ｎ／ｍは偶数）の第２のパラレルデータ信号を生成するとともに、該ＳＥＲＤＥＳ回路から出力された第１のリカバリクロック信号をＫ分周（Ｋは２のべき乗、例えばＫ＝２，４）して第２のリカバリクロック信号を生成し、該第２のパラレルデータ信号と該第２のリカバリクロック信号とを同期して出力するクロックデータリカバリ回路を備えている。
【００２４】
本発明の第２の視点に係るジッタ補正方法は、
シリアルデータ信号をｍ倍（ｍは２のべき乗）オーバーサンプリングするＳＥＲＤＥＳ回路から出力されたＮビットの第１のパラレルデータ信号に基づいてＫＮ／ｍビット（Ｎ／ｍは偶数）の第２のパラレルデータ信号を生成する工程と、
前記ＳＥＲＤＥＳ回路から出力された第１のリカバリクロック信号をＫ分周（Ｋは２のべき乗、例えばＫ＝２，４）して第２のリカバリクロック信号を生成する工程と、
前記第２のパラレルデータ信号と前記第２のリカバリクロック信号とを同期して出力する工程と、を含む。
【発明の効果】
【００２５】
本発明に係る半導体集積回路装置およびジッタ補正方法によると、ＳＥＲＤＥＳがジッタを含むシリアルデータ信号をオーバーサンプリング動作によって受信した場合に、ＳＥＲＤＥＳから出力されたパラレルデータ信号およびリカバリクロック信号に基づいて、もとのシリアルデータ信号を正しく受信することができる。
【図面の簡単な説明】
【００２６】
【図１】第１の実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【図２】第１の実施形態に係る半導体集積回路装置におけるクロックデータリカバリ回路の構成を示すブロック図である。
【図３】第１の実施形態に係る半導体集積回路装置におけるＳＥＲＤＥＳ回路の入出力信号の波形を示す図である。
【図４】第１の実施形態に係る半導体集積回路装置における変化点検出回路の動作を説明するための表である。
【図５】第１の実施形態に係る半導体集積回路装置におけるサンプリング回路の動作を説明するための表である。
【図６】第１の実施形態に係る半導体集積回路装置におけるデータ処理回路の入出力信号の波形を示す図である。
【図７】第１の実施形態に係る半導体集積回路装置におけるデータ処理回路の動作を説明するための表である。
【図８】第２の実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【図９】第２の実施形態に係る半導体集積回路装置におけるクロックデータリカバリ回路の構成を示すブロック図である。
【図１０】第２の実施形態に係る半導体集積回路装置におけるデータ処理回路の動作を説明するための表である。
【図１１】第３の実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【図１２】第３の実施形態に係る半導体集積回路装置におけるクロックデータリカバリ回路の構成を示すブロック図である。
【図１３】第３の実施形態に係る半導体集積回路装置におけるＳＥＲＤＥＳ回路の入出力信号の波形を示す図である。
【図１４】第３の実施形態に係る半導体集積回路装置における変化点検出回路の動作を説明するための表である。
【図１５】第３の実施形態に係る半導体集積回路装置におけるデータ処理回路の入出力信号の波形を示す図である。
【図１６】第４の実施形態に係る半導体集積回路装置におけるクロックデータリカバリ回路の構成を示すブロック図である。
【図１７】第５の実施形態に係る半導体集積回路装置におけるクロックデータリカバリ回路の構成を示すブロック図である。
【図１８】第６の実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【図１９】第７の実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【図２０】第８の実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【図２１】第９の実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【図２２】特許文献１に記載されたＳＥＲＤＥＳ回路の構成を示すブロック図である。
【図２３】入力ジッタの波形を示す図である。
【図２４】入力ジッタに対するクロックデータリカバリ回路の内部動作を表す信号波形を示す図である。
【発明を実施するための形態】
【００２７】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２８】
本発明は、図１に示すように、ＳＥＲＤＥＳ回路（２０）の外側に、パラレルデータに対してクロックデータリカバリを行うクロックデータリカバリ（ＣＤＲ）回路（１０）を外付けすることで、従来技術の課題であるリカバリクロックの周波数ずれと、受信データのビットエラーを解決する。
【００２９】
入力データが８００Ｍｂｐｓの場合、ＳＥＲＤＥＳ回路（２０）がオーバーサンプリング動作している場合でも、ＳＥＲＤＥＳ回路（２０）の出力パラレルデータ全体での実効的なデータレイトは８００Ｍｂｐｓである。したがって、クロックデータリカバリ回路（１０）によるクロックデータリカバリにより、正しく８００Ｍｂｐｓのデータを取り出すことができる。
【００３０】
従来技術の問題として上述した場合において、８００Ｍｂｐｓ入力データのシリアル２０ビット長のデータは、１ビット当り２０２．５Ｍｂｐｓのパラレルデータ８１ビットで出力される。したがって、１６ビット幅パラレルデータの実効データレイトは、次のように、８００Ｍｂｐｓとなる。
１６×（２０ビット／８１ビット）×２０２．５Ｍｂｐｓ＝８００Ｍｂｐｓ
【００３１】
図１１を参照すると、半導体集積回路装置は、シリアルデータ信号をｍ倍（ｍは２のべき乗）オーバーサンプリングするＳＥＲＤＥＳ回路（２０）から出力されたＮビットの第１のパラレルデータ信号（パラレルデータ１）に基づいてＫＮ／ｍビット（Ｎ／ｍは偶数）の第２のパラレルデータ信号（出力データ３）を生成するとともに、ＳＥＲＤＥＳ回路（２０）から出力された第１のリカバリクロック信号（ＲＣＫ２）をＫ分周（Ｋは２のべき乗）して第２のリカバリクロック信号（ＲＣＫ４）を生成し、第２のパラレルデータ信号（出力データ３）と第２のリカバリクロック信号（ＲＣＫ４）とを同期して出力するクロックデータリカバリ回路（５０）を備えていることが好ましい。
【００３２】
図１２および図１４を参照すると、クロックデータリカバリ回路（５０）は、現在のサイクルにおける第１のパラレルデータ（パラレルデータ１）Ｄ０（１），Ｄ１（１），…，ＤＮ−１（１）、および、直前のサイクルにおける第１のパラレルデータ（パラレルデータ１）Ｄ０（０），Ｄ１（０），…，ＤＮ−１（０）を保持するレジスタ（５１）と、Ｄｎ（０）とＤｎ（１）との間で値が変動した最小のｎの値（ｎ＝０，１，…，Ｎ−１）を変化点として抽出するとともに、該変化点のｍの剰余を求めて、変化点ポインタ（ＶＤ）として出力する変化点検出回路（５２）と、を備えていることが好ましい。
【００３３】
変化点検出回路（５２）は、Ｄｎ（０）とＤｎ（１）との間で値の変動がない場合には、前サイクルにおける変化点ポインタ（ＶＤ）の値をそのまま出力することが好ましい。
【００３４】
図１２を参照すると、クロックデータリカバリ回路（５０）は、変化点ポインタをＶＤとし、直前のサイクルにおける平均化ポインタをＶｓ０として、現在のサイクルにおける平均化ポインタＶｓを、式Ｖｓ＝（ＶＤ−Ｖｓ０）／ｍ＋Ｖｓ０に基づいて計算するとともに、該式において絶対値｜ＶＤ−Ｖｓ０｜の値がｍ／２を超えることがないように円環的に扱い、（ＶＤ−Ｖｓ０）の値がｍ／２となった場合には−ｍ／２とし、Ｖｓの値が０以上ｍ未満となるように該式の右辺にｍの整数倍を加え、求めたＶｓの値を平均化ポインタＶｓとして出力する平均化回路（５３）を備えていてもよい。このとき、クロックデータリカバリ回路（５０）は、平均化回路（５３）から出力された平均化ポインタＶｓの小数点以下を四捨五入した値をポインタφｓとするとともに、ポインタφｓの値がｍとなった場合にはポインタφｓの値を０とし、ポインタφｓの値に応じてレジスタ（５１）から読み出すべきデータを指定するサンプリング回路（５５）を備えていることが好ましい。
【００３５】
一方、図１７を参照すると、クロックデータリカバリ回路（６０）は、変化点ポインタをＶＤとし、直前のサイクルにおけるポインタφｓをφｓ０として、ＶＤ＝φｓ０（ｍｏｄ  ｍ）である場合にはカウンタ値を不変とし、ＶＤ＝φｓ＋１，φｓ＋２，…，φｓ＋ｍ／２（ｍｏｄ  ｍ）である場合にはカウンタ値をインクリメントし、ＶＤ＝φｓ−１，φｓ−２，…，φｓ−ｍ／２＋１（ｍｏｄ  ｍ）である場合にはカウンタ値をデクリメントし、カウンタ値が所定の最大カウンタ値となった場合にはポインタφｓをφｓ＝φｓ０＋１とするとともにカウンタ値をゼロにリセットし、カウンタ値が所定の最小カウンタ値となった場合にはポインタφｓをφｓ＝φｓ０−１とするとともにカウンタ値をゼロにリセットするカウンタ回路（６３）を備えていてもよい。このとき、クロックデータリカバリ回路（６０）は、カウンタ回路（６３）により求めたポインタφｓの値がｍとなった場合にはポインタφｓの値を０とし、ポインタφｓの値に応じてレジスタ（６１）から読み出すべきデータを指定するサンプリング回路（６５）を備えていることが好ましい。
【００３６】
図１２および図１７を参照すると、サンプリング回路（５５，６５）は、現在のサイクルのＤｎ（ｎ＝０〜Ｎ−１）のうちのＤｍ（ｍ＝φｓ＋ｍ／２−１−ｍ，φｓ＋ｍ／２−１，φｓ＋ｍ／２−１＋ｍ，φｓ＋ｍ／２−１＋２ｍ，…；０≦ｍ≦Ｎ−１）を、レジスタ（５１，６１）から読み出すべきデータとして指定することが好ましい。
【００３７】
サンプリング回路（５５，６５）は、直前のサイクルにおける前記ポインタφｓの値がｍ／２であり、現在のサイクルにおける前記ポインタφｓの値がｍ／２＋１である第１の場合には、レジスタ（５１，６１）から読み出すべきデータとしてＤ０を指定せず、直前のサイクルにおける前記ポインタφｓの値がｍ／２＋１であり、現在のサイクルにおける前記ポインタφｓの値がｍ／２である第２の場合には、レジスタ（５１，６１）から読み出すべきデータとしてＤ０を指定することが好ましい。
【００３８】
サンプリング回路（５５，６５）は、前記第１の場合と、前記第２の場合と、これらのいずれの場合にも該当しない第３の場合とを識別する情報信号（Ｓ０）を出力することが好ましい。
【００３９】
図１２および図１７を参照すると、クロックデータリカバリ回路（５０，６０）は、情報信号（Ｓ０）に応じて、第２のクロック信号（ＲＣＫ４）および第２のパラレルデータ信号（出力データ３）を生成するデータ処理回路（５６，６６）を備えていることが好ましい。
【００４０】
図１５を参照すると、データ処理回路（５６）は、レジスタ（５１）から出力された（Ｎ／ｍ＋１）ビット幅信号をＲＤ０，ＲＤ１，…，ＲＤＮ／ｍとし、前記第２のパラレルデータ信号をＤＯ０，ＤＯ１，…，ＤＯＭ−１とすると（Ｍ＝ＫＮ／ｍ）、前記第１の場合にはＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ−２：０］を、前記第２の場合にはＲＤ［Ｎ／ｍ：０］のすべてを、前記第３の場合にはＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ−１：０］を、それぞれ有効なデータとして出力データＤＯ［Ｍ−１：０］に割り当てて出力することが好ましい。
【００４１】
図１５を参照すると、データ処理回路（５６）は、第１のリカバリクロック信号（ＲＣＫ２）をＫ分周した、１／２Ｋ周期ずつ位相がずれた２Ｋ相のクロック信号を生成し、該２Ｋ相のクロック信号から選択したクロック信号を第２のリカバリクロック信号（ＲＣＫ４）として出力することが好ましい。
【００４２】
データ処理回路（５６）は、前記第１の場合にはカウンタ値をインクリメントし、前記第２の場合にはカウンタ値をデクリメントし、前記第３の場合にはカウンタ値を不変とし、カウンタ値がＮ／２ｍとなった場合には前記２Ｋ相のクロック信号のうちの１／２Ｋ周期遅れた相のクロック信号を第２のリカバリクロック信号（ＲＣＫ４）として出力し、カウンタ値が−Ｎ／２ｍとなった場合には前記２Ｋ相のクロック信号のうちの１／２Ｋ周期進んだ相のクロック信号を第２のリカバリクロック信号（ＲＣＫ４）として出力することが好ましい。
【００４３】
図１８を参照すると、半導体集積回路装置は、シリアルデータ信号をｍ倍（ｍは２のべき乗）オーバーサンプリングして、第１のパラレルデータ信号（パラレルデータ１）および第１のリカバリクロック信号（ＲＣＫ２）として出力するＳＥＲＤＥＳ回路（２０）と、上記のクロックデータリカバリ回路（３０）と、を備えていることが好ましい。
【００４４】
図１９を参照すると、半導体集積回路装置は、ＳＥＲＤＥＳ回路（２０）から出力された第１のパラレルデータ信号（パラレルデータ１）および第１のリカバリクロック信号（ＲＣＫ２）を処理する第１のデータ処理回路（７１）と、クロックデータリカバリ回路（１０または３０）から出力された第２のパラレルデータ信号および第２のリカバリクロック信号を処理する第２のデータ処理回路（７２または７３）と、を備えていることが好ましい。
【００４５】
図１９を参照すると、上記クロックデータリカバリ回路においてｍ＝ｍ１（ｍ１は２のべき乗）とした第１のクロックデータリカバリ回路（１０）と、上記クロックデータリカバリ回路においてｍ＝ｍ２（ｍ２は２のべき乗であってｍ２≠ｍ１）とした第２のクロックデータリカバリ回路（３０）と、を備えていることが好ましい。
【００４６】
図１９を参照すると、第１のクロックデータリカバリ回路（１０）および第２のクロックデータリカバリ回路（３０）は、同一のＳＥＲＤＥＳ回路（２０）から第１のパラレルデータ信号（パラレルデータ１）および第１のリカバリクロック信号（ＲＣＫ２）を受信するようにしてもよい。
【００４７】
図１９を参照すると、半導体集積回路装置は、ＳＥＲＤＥＳ回路（２０）から出力された第１のパラレルデータ信号（パラレルデータ１）および第１のリカバリクロック信号（ＲＣＫ２）を処理する第１のデータ処理回路（７１）と、第１のクロックデータリカバリ回路（１０）から出力された第２のパラレルデータ信号および第２のリカバリクロック信号を処理する第２のデータ処理回路（７２）と、第２のクロックデータリカバリ回路（３０）から出力された第２のパラレルデータ信号および第２のリカバリクロック信号を処理する第３のデータ処理回路（７３）と、を備えていることが好ましい。
【００４８】
図１９を参照すると、半導体集積回路装置は、第１のデータ処理回路（７１）および第２のデータ処理回路（７２または７３）のうちのいずれか、または、第１のデータ処理回路（７１）ないし第３のデータ処理回路（７３）のうちのいずれかを稼動状態とし、それ以外を待機状態とする制御回路（８０）を備えていることが好ましい。
【００４９】
図２０を参照すると、制御回路（８１）は、ＳＥＲＤＥＳ回路（２０）から出力された第１のパラレルデータ信号（パラレルデータ１）および第１のリカバリクロック信号（ＲＣＫ２）を参照して、第１のデータ処理回路（７１）および第２のデータ処理回路（７２または７３）のうちのいずれを稼動状態とするか、または、第１のデータ処理回路（７１）ないし第３のデータ処理回路（７３）のうちのいずれを稼動状態とするかを判定するようにしてもよい。
【００５０】
図２１を参照すると、制御回路（８２）は、第１のデータ処理回路（７１）を稼動状態とする場合には第１のクロックデータリカバリ回路（１０）および第２のクロックデータリカバリ回路（３０）を待機状態とし、第２のデータ処理回路（７２）を稼動状態とする場合には第１のクロックデータリカバリ回路（１０）を稼動状態とするとともに第２のクロックデータリカバリ回路（３０）を待機状態とし、第３のデータ処理回路（７３）を稼動状態とする場合には第１のクロックデータリカバリ回路（１０）を待機状態とするとともに第２のクロックデータリカバリ回路（３０）を稼動状態とすることが好ましい。
【００５１】
本発明に係る半導体集積回路装置によると、ＳＥＲＤＥＳがジッタを含むシリアルデータ信号をオーバーサンプリング動作によって受信した場合に、ＳＥＲＤＥＳから出力されたパラレルデータ信号およびリカバリクロック信号に基づいて、もとのシリアルデータ信号を正しく受信することができる。
【００５２】
（実施形態１）
第１の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図１は、本実施形態の半導体集積回路装置の構成を一例として示すブロック図である。図１を参照すると、半導体集積回路装置は、８００Ｍｂｐｓのシリアルデータを３．２ＧｂｐｓのＳＥＲＤＥＳ回路２０を用いて４倍オーバーサンプリング動作で受信する。外付けＣＤＲ回路１０は、ＳＥＲＤＥＳ回路２０のパラレル出力信号端子に接続され、パラレルデータに対してクロックデータリカバリを行う。
【００５３】
図２は、本実施形態の半導体集積回路装置における外付けＣＤＲ回路１０の構成を一例として示すブロック図である。図２を参照すると、ＣＤＲ回路１０は、入力されるパラレルデータ１を記憶するレジスタ１１、変化点検出回路１２、平均化回路１３、サンプリング回路１５、および、データ処理回路１６を備えている。
【００５４】
図３は、ＳＥＲＤＥＳ回路２０の入力データと出力パラレルデータ、および、ＳＥＲＤＥＳ回路２０内部のリカバリクロックＲＣＫ１の対応関係を示した図である。図示するための都合から、ＳＥＲＤＥＳ回路２０への入力データと出力パラレルデータの時間的な因果関係を無視して記載している。例えば、図３では、入力データＤ４が入力される前に出力データＤ４が確定しているかのように記載されているが、実際の動作では、出力データＤ４が確定するのは入力データＤ４が入力された後である。ＳＥＲＤＥＳ回路２０の出力パラレルデータは、図３に示すように、１６ビット幅でＤ０〜Ｄ１５とし、シリアル入力データの入力時刻の早い方からＤ０，Ｄ１，…，Ｄ１５とパラレル変換されるものとする。
【００５５】
４倍オーバーサンプリング動作であるため、８００Ｍｂｐｓの入力データ１ビットは、基本的に３．２ＧＨｚのリカバリクロックで４回取り込まれて、データ値が同一の４ビット幅のデータ列となる。ただし、そのビット幅は入力ジッタにより、５ビット幅や３ビット幅になる場合がある。図３の波形には、５ビット幅になる場合が示されている。
【００５６】
パラレルデータ出力端子に出力されるデータ列を複数サイクルに亘って記述する場合には、Ｄ０（１），Ｄ０（２），…，Ｄ０（ｎ）のように表すものとする。ここで、Ｄ０は出力端子を示し、括弧内の１，２等は何サイクル目の出力データであるかを示す。例えば、Ｄ０（１）はＤ０端子の１サイクル目の出力を表す。
【００５７】
ＣＤＲ回路１０は、以下の動作に基づいて、ＳＥＲＤＥＳ２０の出力するパラレルデータ１をクロックデータリカバリする。
【００５８】
（１）レジスタ１１
レジスタ１１は、パラレルデータ１を現在のサイクルとその直前のサイクルの２サイクル分記憶し、サイクル毎に記憶内容を更新する。具体的には、レジスタ１１は、パラレルデータ１をＤ０（０），Ｄ１（０），…，Ｄ１５（０），Ｄ０（１），Ｄ１（１），…，Ｄ１５（１）として記憶する。ここで、Ｄ０（０）の括弧内の０は、直前のサイクルであることを示す。また、Ｄ０（１）の括弧内の１は、現在のサイクルであることを示す。１サイクル後には、Ｄｎ（１）はＤｎ（０）となり、新しく入力されたパラレルデータが改めてＤｎ（１）となる。ここで、ｎ＝０，１，…，１５である。
【００５９】
また、レジスタ１１は、サンプリング回路１５からの信号ψｓにより、読み出しデータとして指定されるＤ０（１），Ｄ１（１），…，Ｄ１５（１）の中の５ビットのデータをデータ処理回路１６に送る。通常は、５ビット目はダミーデータ指定される。ただし、後述するように、特別の場合に限り、５ビットすべてが読み出しデータ指定される。さらに他の特別の場合には、４ビット目と５ビット目がダミーデータ指定される。ダミーデータ指定されたビットに関して、レジスタ１１は、Ｄ０（１），Ｄ１（１），…，Ｄ１５（１）の値とは無関係に、値０をデータ処理回路１６に送る。
【００６０】
（２）変化点検出回路１２
変化点検出回路１２は、レジスタ１１に記憶されているデータ列Ｄ０（０），Ｄ１（０），…，Ｄ１５（０），Ｄ０（１），Ｄ１（１），…，Ｄ１５（１）から現在のサイクルについてデータ値に変化があった最小の端子番号を変化点として検出し、その値の４の剰余を変化点ポインタＶＤとして平均化回路１３に送る。
ＶＤ＝パラレルデータ１の変化点位置の４の剰余（４で割った余り）
【００６１】
例えば、図４に示すようなデータ列の場合において、現在のサイクルが２サイクル目のときには、変化点はＤ１であり、変化点ポインタＶＤの値は１である。一方、現在のサイクルが３サイクル目のときには、変化点の値はＤ０であり、変化点ポインタＶＤの値は０である。なお、現在のサイクルが１サイクル目のときには、この表には直前のサイクルのデータは記載されていないが、Ｄ０は変化点でないとして変化点ポインタＶＤの値は２とした。
【００６２】
変化点検出回路１２は、サイクル中にデータの変化点がない場合には、前サイクルのＶＤの値を保持し、その値をＶＤとして平均化回路１３に送る。
【００６３】
（３）平均化回路１３
平均化回路１３は、変化点検出回路１２から変化点ポインタＶＤを受け取り、平均化ポインタＶｓを計算してサンプリング回路１５に送る。
【００６４】
平均化回路１３は、平均化ポインタＶｓを次式により算出する。
Ｖｓ＝（ＶＤ−Ｖｓ０）／４＋Ｖｓ０
【００６５】
ここで、Ｖｓ０は１サイクル前のＶｓの値である。したがって、今計算されたＶｓは次のサイクルではＶｓ０となる。
【００６６】
また、ＶＤ−Ｖｓ０は、絶対値｜ＶＤ−Ｖｓ０｜が２を超えないように−２〜２の値として円環的に扱う。つまり、｜ＶＤ−Ｖｓ０｜が２を超える場合には、４の整数倍の値を加えて、結果が−２〜２の間の値となるように計算する。また、２と−２は同一視し、計算上は−２とする。例えば、ＶＤ＝３、Ｖｓ０＝０のときには、ＶＤ−Ｖｓ０＝３ではなく、−１と計算する。
【００６７】
さらに、平均化回路１３は、４の整数倍を加えて、Ｖｓの値が０以上４未満の値となるようにする。
【００６８】
例えば、ＶＤ＝３，Ｖｓ０＝０のときには、まず、Ｖｓ＝（３−０）／４＋０＝−１／４＋０＝−０．２５となるが、上述の計算規則によると、最終的に、Ｖｓ＝−０．２５＝−０．２５＋４＝３．７５となる。
【００６９】
また、（ＶＤ−Ｖｓ０）／４は、２進数で小数点以下３桁の値とする。端数は切り捨てる。すなわち、（ＶＤ−Ｖｓ０）／４は、１０進数では０．１２５の整数倍の値となる。Ｖｓも２進数で小数点以下３桁の値とする。
【００７０】
平均化回路１３は、求めたＶｓの値をサンプリング回路１５に送る。
【００７１】
（４）サンプリング回路１５
サンプリング回路１５は、平均化回路１３から受け取った、平均化ポインタＶｓからレジスタ１１から読み出すデータを決定するφｓを計算し、レジスタ１１に対してリカバリデータとして読み出すべきデータを指定する。レジスタ１１は、指定されたデータをデータ処理回路１６へ送る。また、サンプリング回路１５は、後述する例外処理の有無と種類に関する情報を信号Ｓ０としてデータ処理回路１６へ送る。
【００７２】
本実施形態におけるレジスタ１１から読み出すデータの決定方法について以下に述べる。
【００７３】
サンプリング回路１５は、平均化回路１３から受け取ったＶｓの値を四捨五入し、整数値に丸めてφｓとする。このとき、φｓの値は、０，１，２，３のいずれかの値となる。
φｓ＝Ｖｓの小数点以下を四捨五入した値（整数値）
ただし、Ｖｓの小数点以下を四捨五入した場合にφｓの値が４となったときには、φｓ＝０とする。
【００７４】
サンプリング回路１５は、レジスタ１１からデータ処理回路１６にどの入力パラレルデータを送るかを指定する。指定されるデータは、φｓの値に応じて次のように決定される。φｓ＝０，１，２のときには、現在のサイクルのＤ０〜１５のうちφｓ＋１，φｓ＋５，φｓ＋９，φｓ＋１３の値を指定する。φｓ＝３のときには、φｓ−３，φｓ＋１，φｓ＋５，φｓ＋９の値を指定する。例えば、φｓ＝０のときには、レジスタ１１に対して指定する読み出しデータはＤ１，Ｄ５，Ｄ９，Ｄ１３となる。レジスタ１１は、指定された読み出しデータをデータ処理回路１６に送る。
【００７５】
サンプリング回路１５が指定するデータの組をψｓとする。例えば、ψｓ＝（Ｄ１，Ｄ５，Ｄ９，Ｄ１３，ｎｕｌｌ）の場合には、ψｓが指定している読み出しデータはＤ１，Ｄ５，Ｄ９，Ｄ１３の４ビットであり、５ビット目のｎｕｌｌはダミーデータ指定である。本実施形態では、後述する例外処理の場合に、ψｓが指定する読み出しデータは３ビットまたは５ビットとなる。すなわち、ψｓが指定する読み出しデータのビット数は、３，４，５ビットのいずれかになり、５ビットに足りない分はダミーデータ指定（ｎｕｌｌ指定）となる。
【００７６】
レジスタ１１は、データ処理回路１６に５ビット幅のデータを送るが、サンプリング回路１５からψｓによってダミーデータ指定（ｎｕｌｌ指定）されたビットとして値０を送る。例えば、サンプリング回路１５からψｓ＝（Ｄ１，Ｄ５，Ｄ９，Ｄ１３，ｎｕｌｌ）の指定がされた場合には、レジスタ１１は（Ｄ１，Ｄ５，Ｄ９，Ｄ１３，０）の５ビット幅データをデータ処理回路１６に送る。
【００７７】
次に、例外処理（Ａ）、（Ｂ）について説明する。
【００７８】
（Ａ）φｓが２から３へ変化した場合、すなわち、前サイクルのφｓが２で現サイクルのφｓが３である場合
サンプリング回路１５は、Ｄ０の値を読み出しデータとして指定しない。すなわち、サンプリング回路１５は、読み出しデータとしてψｓ＝（Ｄ４，Ｄ８，Ｄ１２，ｎｕｌｌ，ｎｕｌｌ）を指定する。このとき、レジスタ１１は、５ビット幅データとして（Ｄ４，Ｄ８，Ｄ１２，０，０）をデータ処理回路１６に送る。
【００７９】
図５は、各サイクルにおいて、サンプリング回路１５がレジスタ１１に対して読み出し指定するデータを下線付きで示す。図５に示した第３サイクルが、例外処理（Ａ）の場合に相当する。本来読み出し指定されるはずのデータであって、例外処理（Ａ）で読み出し指定されないＤ０の値を丸で囲んで示す。例外処理を行う理由は、図５に示した表から分かるように、第３サイクルのＤ０のデータは１サイクル前の第２サイクルのＤ１５の値としてすでに読み出されているからである。
【００８０】
（Ｂ）φｓが３から２へ変化した場合、すなわち、前サイクルのφｓが３で現サイクルのφｓが２である場合
サンプリング回路１５は、Ｄ０の値も読み出しデータとして指定する。すなわち、サンプリング回路１５は、読み出しデータとしてψｓ＝（Ｄ０，Ｄ３，Ｄ７，Ｄ１１，Ｄ１５）を指定する。このとき、レジスタ１１は、５ビット幅データとして（Ｄ０，Ｄ３，Ｄ７，Ｄ１１，Ｄ１５）をデータ処理回路１６に送る。
【００８１】
図５に示した第７サイクルが、例外処理（Ｂ）の場合に相当する。本来読み出し指定しないはずのデータであって、例外処理（Ｂ）で読み出し指定されるＤ０の値を丸で囲んで示す。例外処理を行う理由は、図５に示した表から分かるように、第７サイクルのＤ０のデータを読み出さないと、データを１つ読み飛ばしてしまうことになるからである。
【００８２】
このようにデータの変化点の情報に基づいて読み出しデータを決定することで、正しいデータが読み出され、正しくデータリカバリが行われる。
【００８３】
サンプリング回路１５は、例外処理（Ａ）もしくは（Ｂ）のいずれがあったか、または、例外処理はなかったかに関する情報を信号Ｓ０としてデータ処理回路１６に送る。
【００８４】
（５）データ処理回路１６
データ処理回路１６は、レジスタ１１から受けた５ビット幅のデータに対して、サンプリング回路１５から受けた情報信号Ｓ０に基づいたデータ処理を行い、８ビット幅のパラレルデータとして出力する。また、データ処理回路１６は、リカバリクロックＲＣＫ２からリカバリクロックＲＣＫ４を生成して出力する。データ処理回路１６は、上記の８ビット幅のパラレルデータをリカバリクロックＲＣＫ４に同期して出力する。
【００８５】
図６に示すように、レジスタ１１からデータ処理回路１６に送られる５ビット幅信号をＲＤ０，ＲＤ１，…，ＲＤ４とする。ＲＤ０側をＬＳＢとする。また、データ処理回路１６の出力８ビット幅信号をＤＯ０，ＤＯ１，…，ＤＯ７とする。ＤＯ０側をＬＳＢとする。
【００８６】
図６は、ＲＤ［４：０］とＤＯ［７：０］のタイミング関係と、リカバリクロックＲＣＫ２とリカバリクロックＲＣＫ４の関係を示すタイミングチャートである。ＲＤ［４：０］のデータ波形において１，１，２，２，２，３，３のように記載された数字は、ＲＤ［４：０］の有効なデータが出力ＤＯ［７：０］の何番目のサイクルで出力されるかを示す。
【００８７】
リカバリクロックＲＣＫ４は、リカバリクロックＲＣＫ２の２分周クロックである。データ処理回路１６は、１／４周期ずつずれた４相クロックとしてリカバリクロックＲＣＫ２の２分周クロックを生成し、４相中の１相をリカバリクロックＲＣＫ４として選択する。データ処理回路１６の起動時（データ処理回路１６のリセット直後）には、相０がリカバリクロックＲＣＫ４として選択される。
【００８８】
また、起動時には、リカバリクロックＲＣＫ４のライズエッジと同期したリカバリクロックＲＣＫ２のライズエッジを起点とした２または３サイクルで構成されるＲＤ［４：０］の有効な８ビットデータをリカバリクロックＲＣＫ４のサイクルで２サイクル後にＤＯ［７：０］として出力する。図６を参照すると、リカバリクロックＲＣＫ４のライズエッジ０と同期したリカバリクロックＲＣＫ２のライズエッジ０を起点としたＲＤ［４：０］の２サイクルで構成された有効８ビットデータがリカバリクロックＲＣＫ４のライズエッジ２に同期してＤＯ［７：０］に出力される。
【００８９】
データ処理回路１６の起動後の動作について説明する。
【００９０】
通常時、すなわち、Ｓ０＝Ｎのときには、ＲＤ［４：０］のうちのＲＤ［３：０］が有効なデータとして出力データＤＯ［７：０］に割り当てられて出力される。一方、ＲＤ４は、無効なデータとして捨てられる。
【００９１】
例外処理（Ａ）、すなわち、Ｓ０＝Ａのときには、ＲＤ［４：０］のうちのＲＤ［２：０］が有効なデータとして出力データＤＯ［７：０］に割り当てられて出力される。一方、ＲＤ３，ＲＤ４は、無効なデータとして捨てられる。
【００９２】
例外処理（Ｂ）、すなわち、Ｓ０＝Ｂのときには、ＲＤ［４：０］のうちのＲＤ［４：０］のすべてが有効なデータとして出力データＤＯ［７：０］に割り当てられて出力される。このとき、無効なデータとして捨てられるデータは存在しない。
【００９３】
データは、８ビットずつ先頭のビット基準でリカバリクロックＲＣＫ２の約４サイクル後にリカバリクロックＲＣＫ４に同期させて出力する。例えば、図６では、１番目の８ビットデータの先頭ビットはＲＤ［４：０］の０サイクル目にデータ処理回路に入力しているが、リカバリクロックＲＣＫ２で４サイクル後のリカバリクロックＲＣＫ４のライズエッジ２に同期して出力される。
【００９４】
本実施形態のデータ処理回路１６は、例外処理をカウントするカウンタを持つ。カウンタは、通常時（Ｓ０＝Ｎ）にはカウンタ値を維持し、例外処理（Ａ）（Ｓ０＝Ａ）のときにはカウンタ値をインクリメント（＋１）し、例外処理（Ｂ）（Ｓ０＝Ｂ）のときにはカウンタ値をデクリメント（−１）する。カウンタ値が＋２になったときには、データ処理回路１６は、リカバリクロックＲＣＫ４を相が１つ後（１／４周期後）のリカバリクロックＲＣＫ２の２分周クロックに切り替える。一方、カウンタ値が−２になったときには、データ処理回路１６は、リカバリクロックＲＣＫ４を相が１つ前（１／４周期前）のリカバリクロックＲＣＫ２の２分周クロックに切り替える。
【００９５】
図７の表を参照して、以上の動作についてさらに説明する。図７の表の見方についても以下で説明する。
【００９６】
図７の「サイクル」は、その行のデータＲＤ［４：０］がリカバリクロックの何サイクル目のデータであるかを示す。
【００９７】
図７の「エッジ位置」は、その行のデータＲＤ［４：０］の有効データが出力ＤＯ［７：０］として出力されるときのリカバリクロックＲＣＫ４のライズエッジ位置（開始側エッジの位置）がリカバリクロックＲＣＫ２のライズエッジで何番目かを示す。なお、リカバリクロックＲＣＫ２のフォールエッジの位置の場合には、０．５として数える。図７の最初の行（０サイクル目）のエッジ位置の値は４である。このとき、リカバリクロックＲＣＫ４としては、図６のリカバリクロックＲＣＫ２の２分周クロックの相０が選択されているものとする。
【００９８】
図７の「レイテンシ」は、入力ＲＤ［４：０］から出力ＤＯ［７：０］までのレイテンシをリカバリクロックＲＣＫ２のサイクルを単位として表す。
【００９９】
図７を参照すると、レイテンシは０サイクル目から１９サイクル目までに、４→４．５→４と変化しているが、４度目の例外処理（Ａ）の後にレイテンシ＝４となり、確かにレイテンシ＝約４という正しい動作が行われている。１９サイクル目から４０サイクル目までに、レイテンシは４→５→４．５→４と変化しているが、やはり４度目の例外処理（Ｂ）の後にレイテンシ＝４となり、確かにレイテンシ＝約４という正しい動作が行われている。
【０１００】
図７のＲＤ［４：０］の欄の数値は、そのＲＤ［４：０］のデータがリカバリクロックＲＣＫ４の何サイクル目で、データ処理回路１６からＤＯ［７：０］として出力されるかを示す。１サイクルに８ビット出力されるため、ＲＤ［４：０］の欄８マスに同一のサイクル数の値が記載されている。無効なビットは、Ｚと記載されている。なお、無効なビットは出力されない。
【０１０１】
図７の０サイクル目と１サイクル目はいずれもＳ０＝Ｎであり、ＲＤ［４：０］の中の有効なデータは欄に１と記載されたＲＤ［３：０］である。欄内にＺと記載されたＲＤ４は、無効なデータである。有効な８ビットのデータがＤＯ［７：０］としてリカバリクロックＲＣＫ２のライズエッジ位置４の所に出力される。
【０１０２】
このときのＲＤ［４：０］とＤＯ［７：０］との対応関係はＤＯ０＝ＲＤ０（０サイクル目），ＤＯ１＝ＲＤ１（０サイクル目），…，ＤＯ３＝ＲＤ３（０サイクル目），ＤＯ４＝ＲＤ０（１サイクル目），…，ＤＯ７＝ＲＤ３（１サイクル目）である。
【０１０３】
図７の３サイクル目は、例外処理（Ａ）（Ｓ０＝Ａ）であり、ＲＤ３およびＲＤ４が無効データとなっている。
【０１０４】
データ処理回路１６のカウンタは、カウンタ値がインクリメント（＋１）され、カウンタ値は＋１になっている。
【０１０５】
ＲＤ［４：０］とＤＯ［７：０］との対応関係はＤＯ０＝ＲＤ０（２サイクル目），…，ＤＯ４＝ＲＤ０（３サイクル目），…，ＤＯ６＝ＲＤ２（３サイクル目），ＤＯ７＝ＲＤ０（４サイクル目）としてリカバリクロックＲＣＫ２のライズエッジ位置６の所に出力される。
【０１０６】
４サイクル目のＲＤ１は、ＤＯ０としてリカバリクロックＲＣＫ２のライズエッジ位置８の所に出力される。
【０１０７】
４サイクル目から７サイクル目までは例外処理がなく（Ｓ０＝Ｎ）、８サイクル目に例外処理（Ａ）がある（Ｓ０＝Ａ）。データ処理回路１６は、カウンタのカウンタ値をインクリメント（＋１）して＋２とした後、リカバリクロックＲＣＫ４としての相選択を相０から相１に変更し、さらに、カウンタ値を０に戻す。
【０１０８】
リカバリクロックＲＣＫ４の相変更が実際にクロック信号に現れるタイミングは、リカバリクロックＲＣＫ２で数サイクル後のタイミングである。具体的には、データ処理回路１６は、例外処理のあったサイクルに属しているＲＤ［４：０］のＭＳＢ側データがＤＯ［７：０］に出力された次のサイクルのリカバリクロックＲＣＫ４の開始側ライズエッジで相変更する。図７の１０サイクル目で相変更のために、エッジ位置が１４ではなく１４．５という値になっているが、相変更のトリガとなった８サイクル目から６．５サイクル後の１４．５サイクル目でリカバリクロックＲＣＫ４の相変更が現れる。
【０１０９】
図７の表において、リカバリクロックＲＣＫ４の相変更があると、カウンタが＋２または−２となり０に戻される例外処理があったときのエッジ位置の値が、次の値に変わるときに＋２ではなく＋２．５または＋１．５される。
【０１１０】
例えば、図７のサイクル１７の行は例外処理（Ａ）であり、カウンタ値は＋２→０となり、エッジ位置は２０．５である。次にエッジ位置の値が変わるのは１９サイクル目であり、そのときのエッジ位置は＋２．５されて２３となっている。ここで、リカバリクロックＲＣＫ４は、相１から相２に切り替わっている。
【０１１１】
同様に、図７のサイクル２８の行は例外処理（Ｂ）であり、カウンタ値は−２→０となり、エッジ位置は３３である。次にエッジ位置の値が変わるのは３０サイクル目であり、そのときのエッジ位置は＋１．５されて３４．５となっている。ここで、リカバリクロックＲＣＫ４は、相２から相１に切り替わっている。
【０１１２】
図６のタイミングチャートにおいても、リカバリクロックＲＣＫ４の選択相の切り替わりを示している。２つ目の例外処理（Ａ）が生じたリカバリクロックＲＣＫ２の８サイクル目のＲＤ［４：０］には４番目と５番目のデータが属しているが、ＭＳＢ側である５番目のデータがＤＯ［７：０］に出力されたサイクルの次のサイクルのリカバリクロックＲＣＫ４の開始側ライズエッジの位置がリカバリクロックＲＣＫ２のエッジ位置で１４．５となっている。ここで、リカバリクロックＲＣＫ４は、相０から相１に切り替わっている。
【０１１３】
このように、データ処理回路１６は、リカバリクロックＲＣＫ４の選択相を切り替えてクロックリカバリ動作を行う。
【０１１４】
本実施形態の例外処理では、リカバリクロックＲＣＫ２の１サイクル間に通常は有効なデータとして４ビットのデータが読み込まれるべき所で、３ビットまたは５ビットが有効なデータとして読み込まれ、ビット数に１ビットの増減がある、つまり、±１／４＝±１ビット／４ビットの変化があるので、原理的にはこのときにリカバリクロックＲＣＫ２の周期で１／４周期の位相ずれを発生させるとデータに整合したクロックのリカバリが行える。しかし、本実施形態では、リカバリクロックＲＣＫ２の周期で１／４周期ずらしたリカバリクロックＲＣＫ２の２分周クロックは生成されていない。そこで、カウンタでカウントして２になったときに、１／４周期＋１／４周期＝１／２周期＝リカバリクロックＲＣＫ４（リカバリクロックＲＣＫ２の２分周）の１／４周期の位相ずらしによって、上述の原理と動作的に整合させている。
【０１１５】
ここで、クロックリカバリのメカニズムについて詳しく述べる。
【０１１６】
例外処理（Ａ）は、リカバリクロックＲＣＫ２の１サイクルで本来的には４ビットであるデータが３ビットになっている場合であるが、これはリカバリクロックＲＣＫ２の周波数が正しい周波数より高いことを意味している。したがって、リカバリクロックＲＣＫ２の周波数より低い適切な周波数のクロックが生成されれば、それが正しいリカバリクロックとなる。正しいリカバリクロック（正しい周波数のクロック）は、次のようして得られる。
【０１１７】
例外処理（Ａ）が４回あることは、それに対応した１２ビットのデータにリカバリクロックＲＣＫ２の４サイクルが費やされることを意味する。正しい周波数のクロックでは１２ビットのデータに対して３サイクルであるため、リカバリクロックＲＣＫ２は例外処理（Ａ）が４回生じるまでの間に１サイクル多く発振していることになる。逆に言うと、例外処理（Ａ）が４回生じるまでの間に、リカバリクロックＲＣＫ２のサイクル数より１サイクル少ないクロックを生成すると、それが正しい周波数のリカバリクロックとなる。
【０１１８】
実施形態として上述したリカバリクロックＲＣＫ４の生成方法は、例外処理（Ａ）の１回当りにリカバリクロックＲＣＫ２の周期で１／４周期だけ長くしていることに相当する。したがって、例外処理（Ａ）が４回でリカバリクロックＲＣＫ２の周期で１周期長い、すなわち、リカバリクロックＲＣＫ２のサイクル数で１サイクル少なくなるため、正しい周波数のリカバリクロックが得られる。
【０１１９】
実際、図７でサイクル０のエッジ位置４から始まってサイクル１９のエッジ位置２３までの期間に例外処理（Ａ）が４回あり、その間のリカバリクロックＲＣＫ２のサイクル数は１９＝２３−４である。この間に８ビットデータＤＯ［７：０］はちょうど９サイクル出力されている。すなわち、リカバリクロックＲＣＫ４は９サイクルであり、リカバリクロックＲＣＫ２とのサイクル数比較のために２逓倍して１８サイクルである。先に求めたリカバリクロックＲＣＫ２のサイクル数１９よりも１サイクル小さな値となっており、上に述べた通り正しい周波数のリカバリクロックとなっている。
【０１２０】
例外処理（Ｂ）も同様であり、リカバリクロックＲＣＫ２の１サイクルで本来的には４ビットであるデータが５ビットになっているため、例外処理（Ｂ）が４回生じるまでのリカバリクロックＲＣＫ２のサイクル数より１サイクル多いクロックを生成するとそれが正しい周波数のリカバリクロックとなる。
【０１２１】
実施形態として上述したリカバリクロックＲＣＫ４の生成方法は、例外処理（Ｂ）の１回当りにリカバリクロックＲＣＫ２の周期で１／４周期だけ短くしていることに相当する。したがって、例外処理（Ｂ）が４回でリカバリクロックＲＣＫ２の周期で１周期短い、すなわち、仮想的にリカバリクロックＲＣＫ４の２逓倍クロックのサイクル数で１サイクル多くなるため、正しい周波数のリカバリクロックが得られる。
【０１２２】
本実施形態の半導体集積回路装置は、オーバーサンプリング動作させるＳＥＲＤＥＳ回路２０の出力するパラレルデータとリカバリクロックに対してクロックデータリカバリ動作を行うＣＤＲ回路１０を外付けし、リカバリデータとリカバリクロックを生成・出力する。これにより、オーバーサンプリング動作するＳＥＲＤＥＳ２０がリカバリするリカバリクロックの周波数が受信データのデータレイト周波数とずれる場合があるという問題と、この周波数ずれのためにパラレルデータをオーバーサンプリングの倍数毎に読み込んで行くとビットエラーを起こすという問題を解消するという効果がもたらされる。
【０１２３】
オーバーサンプリング動作するＳＥＲＤＥＳ２０は、入力シリアルデータと実効的には同一のデータレイトのパラレルデータを出力する。したがって、そのパラレルデータからクロックデータリカバリ技術により、正しい周波数のリカバリクロックとリカバリデータを取り出すことができる。これにより、上述の本実施形態による効果がもたらされる。
【０１２４】
（実施形態２）
第２の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図８は、本実施形態の半導体集積回路装置の構成を一例として示すブロック図である。図８を参照すると、本実施形態の半導体集積回路装置は、受信するシリアルデータが４００Ｍｂｐｓで、ＳＥＲＤＥＳ回路２０が８倍オーバーサンプリング動作する。
【０１２５】
図９は、本実施形態の半導体集積回路装置における外付けＣＤＲ回路３０の構成を一例として示すブロック図である。図９を参照すると、ＣＤＲ回路３０は、入力されるパラレルデータ１を記憶するレジスタ３１、変化点検出回路３２、平均化回路３３、サンプリング回路３５、および、データ処理回路３６を備えている。なお、本実施形態では、第１の実施形態（図２）と異なり、外付けＣＤＲ回路３０の出力は４本ＤＯ［３：０］である。
【０１２６】
（１）レジスタ３１
レジスタ３１は、パラレルデータ１を現在のサイクルとその直前のサイクルの２サイクル分記憶し、サイクル毎に記憶内容を更新する。具体的には、レジスタ３１は、パラレルデータ１をＤ０（０），Ｄ１（０），…，Ｄ１５（０），Ｄ０（１），Ｄ１（１），…，Ｄ１５（１）として記憶する。ここで、Ｄ０（０）の括弧内の０は直前のサイクルであることを示し、Ｄ０（１）の括弧内の１は現在のサイクルであることを示す。１サイクル後には、Ｄｎ（１）はＤｎ（０）となり、新しく入力されたパラレルデータが改めてＤｎ（１）となる。ここで、ｎ＝０，１，…，１５である。
【０１２７】
また、レジスタ３１は、サンプリング回路３５からの信号ψｓにより、読み出しデータとして指定されるＤ０（１），Ｄ１（１），…，Ｄ１５（１）の中の３ビットのデータをデータ処理回路３６に送る。通常は、３ビット目はダミーデータ指定される。ただし、後述するように、特別の場合に限り、３ビットすべてが読み出しデータ指定される。さらに、他の特別の場合には、２ビット目と３ビット目がダミーデータ指定される。ダミーデータ指定されたビットに関して、レジスタ３１は、Ｄ０（１），Ｄ１（１），…，Ｄ１５（１）の値とは無関係に、値０をデータ処理回路３６に送る。
【０１２８】
（２）変化点検出回路３２
変化点検出回路３２は、第１の実施形態で説明した変化点検出回路１２と同等である。ただし、変化点検出回路３２は、ＶＤを４の剰余ではなく８の剰余として計算する点で、変化点検出回路１２と相違する。
【０１２９】
変化点検出回路３２は、レジスタ３１に記憶されたパラレルデータ１から変化点ポインタＶＤを読み取る。
【０１３０】
変化点ポインタＶＤの値は、パラレルデータをＤ０（０），Ｄ１（０），…，Ｄ１５（０），Ｄ０（１），Ｄ１（１），…のように並べたときにデータ値に変化があった最小の端子番号の８の剰余である。
【０１３１】
変化点検出回路３２は、サイクル中にデータの変化点がない場合には、前サイクルの変化点ポインタＶＤの値を保持する。
【０１３２】
（３）平均化回路３３
平均化回路３３は、第１の実施形態で説明した平均化回路１３と同等である。ただし、平均化ポインタＶｓの計算式が下記のように相違する。
【０１３３】
平均化回路３３は、変化点検出回路３２から変化点ポインタＶＤを受け取り、平均化ポインタＶｓを計算してサンプリング回路３５に送る。
【０１３４】
平均化回路３３は、平均化ポインタＶｓを次式により算出する。
Ｖｓ＝（ＶＤ−Ｖｓ０）／８＋Ｖｓ０
【０１３５】
ここで、Ｖｓ０は、前サイクルのＶｓの値である。したがって、今計算されたＶｓは、次のサイクルではＶｓ０となる。
【０１３６】
また、ＶＤ−Ｖｓ０は、絶対値｜ＶＤ−Ｖｓ０｜の値が４を超えないように−４〜４の値として円環的に扱う。すなわち、｜ＶＤ−Ｖｓ０｜の値が４を超える場合には、８の整数倍の値を加えて、結果が−４〜４の間の値となるように計算する。また、４と−４は同一視し、計算上は−４とする。例えば、ＶＤ＝６，Ｖｓ０＝０のときには、ＶＤ−Ｖｓ０＝６ではなく、−２とする。
【０１３７】
さらに、平均化回路３３は、８の整数倍を加えてＶｓの値が０以上８未満の値となるようにする。例えば、ＶＤ＝６，Ｖｓ０＝０のときには、まず、Ｖｓ＝（６−０）／８＋０＝−２／８＋０＝−０．２５となるが、上述の計算規則によると、最終的に、Ｖｓ＝−０．２５＝−０．２５＋８＝７．７５となる。
【０１３８】
また、（ＶＤ−Ｖｓ０）／４は、２進数で小数点以下４桁の値とする。端数は切り捨てとする。すなわち、（ＶＤ−Ｖｓ０）／４は、１０進数では０．０６２５の整数倍の値となる。Ｖｓも２進数で小数点以下４桁の値とする。
【０１３９】
平均化回路３３は、求めたＶｓの値をサンプリング回路３５に送る。
【０１４０】
（４）サンプリング回路３５
サンプリング回路３５は、第１の実施形態で説明したサンプリング回路１５と同等である。ただし、読み出しデータの指定が下記のように異なっている。
【０１４１】
サンプリング回路３５は、平均化回路３３から受け取った、平均化ポインタＶｓからレジスタ３１から読み出すデータを決定するφｓを計算し、レジスタ３１に対してリカバリデータとして読み出すべきデータを指定する。レジスタ３１は、指定されたデータをデータ処理回路３６へ送る。また、サンプリング回路３５は、後述する例外処理の有無と種類に関する情報を信号Ｓ０としてデータ処理回路３６へ送る。
【０１４２】
本実施形態におけるレジスタ３１から読み出すデータの決定方法について以下に述べる。
【０１４３】
サンプリング回路３５は、平均化回路３３から受け取ったＶｓの値を四捨五入し、整数値に丸めてφｓとする。このとき、φｓの値は、０，１，２，３，４，５，６，７のいずれかの値となる。
φｓ＝Ｖｓの小数点以下を四捨五入した値（整数値）
ただし、Ｖｓの小数点以下を四捨五入した場合にφｓの値が８となったときには、φｓ＝０とする。
【０１４４】
サンプリング回路３５は、レジスタ３１からデータ処理回路３６にどの入力パラレルデータを送るかを指定する。指定されるデータは、φｓの値に応じて次のように決定される。
【０１４５】
φｓ＝０，１，２，３，４のときには、現在のサイクルのＤ０〜１５のうちφｓ＋３，φｓ＋１１の値を指定する。φｓ＝５，６，７のときには、φｓ−５，φｓ＋３の値をリカバリデータとして指定する。例えば、φｓ＝０のときには、読み込むデータはＤ３，Ｄ１１の２つとなる。
【０１４６】
サンプリング回路３５が指定するデータの組をψｓとする。例えば、ψｓ＝（Ｄ３，Ｄ１１，ｎｕｌｌ）の場合には、ψｓが指定している読み出しデータはＤ３，Ｄ１１の２ビットであり、３ビット目のｎｕｌｌはダミーデータ指定である。本実施形態では、後述する例外処理の場合に、ψｓが指定する読み出しデータは１ビットまたは３ビットとなる。すなわち、ψｓが指定する読み出しデータのビット数は１，２，３ビットのいずれかになり、３ビットに足りない分はダミーデータ指定（ｎｕｌｌ指定）となる。
【０１４７】
レジスタ３１は、データ処理回路３６に３ビット幅のデータを送るが、サンプリング回路３５からψｓによってダミーデータ指定（ｎｕｌｌ指定）されたビットとして値０を送る。例えば、サンプリング回路３５からψｓ＝（Ｄ３，Ｄ１１，ｎｕｌｌ）の指定がされた場合には、レジスタ３１は（Ｄ３，Ｄ１１，０）の３ビット幅データをデータ処理回路３６に送る。
【０１４８】
次に、例外処理（Ａ）、（Ｂ）について説明する。
【０１４９】
（Ａ）φｓが４から５に変化した場合、すなわち、前サイクルのφｓが４で現サイクルのφｓが５である場合
サンプリング回路３５は、Ｄ０の値を読み出しデータとして指定しない。すなわち、サンプリング回路３５は、読み出しデータとしてψｓ＝（Ｄ８，ｎｕｌｌ，ｎｕｌｌ）を指定する。このとき、レジスタ３１は、３ビット幅データとして、（Ｄ８，０，０）をデータ処理回路３６に送る。
【０１５０】
（Ｂ）φｓが５から４に変化した場合、すなわち、前サイクルのφｓが５で現サイクルのφｓが４である場合
サンプリング回路３５は、Ｄ０の値も読み出しデータとして指定する。すなわち、サンプリング回路３５は、読み出しデータとしてψｓ＝（Ｄ０，Ｄ７，Ｄ１５）を指定する。このとき、レジスタ３１は、３ビット幅データとして、（Ｄ０，Ｄ７，Ｄ１５）をデータ処理回路３６に送る。
【０１５１】
サンプリング回路３５は、例外処理（Ａ）もしくは（Ｂ）のいずれがあったか、または、例外処理はなかったかに関する情報を信号Ｓ０としてデータ処理回路３６に送る。
【０１５２】
（５）データ処理回路３６
本実施形態のデータ処理回路３６は、第１の実施形態のデータ処理回路１６と同様の回路である。ただし、入力および出力のビット幅は、第１の実施形態におけるビット幅と異なる。また、本実施形態では、データ処理回路３６は、例外処理をカウントするカウンタを保持する必要がない。
【０１５３】
データ処理回路３６は、レジスタ３１から受けた３ビット幅のデータに対して、サンプリング回路３５から受けた情報信号Ｓ０に基づいたデータ処理を行い、４ビット幅のパラレルデータとして出力する。また、データ処理回路３６は、リカバリクロックＲＣＫ２からリカバリクロックＲＣＫ４を生成して出力する。データ処理回路３６は、上記４ビット幅のパラレルデータをリカバリクロックＲＣＫ４に同期して出力する。
【０１５４】
レジスタ３１からデータ処理回路３６に送られる３ビット幅信号をＲＤ０，ＲＤ１，ＲＤ２とする。ＲＤ０側をＬＳＢとする。また、データ処理回路３６の出力４ビット幅信号をＤＯ０，ＤＯ１，…，ＤＯ３とする。ＤＯ０側をＬＳＢとする。
【０１５５】
リカバリクロックＲＣＫ４は、リカバリクロックＲＣＫ２の２分周クロックである。第１の実施形態と同様に、データ処理回路３６は、１／４周期ずつずれた４相クロックとしてリカバリクロックＲＣＫ２の２分周クロックを生成し、４相中の１相をリカバリクロックＲＣＫ４として選択する。データ処理回路３６の起動時（データ処理回路３６のリセット直後）には、相０がリカバリクロックＲＣＫ４として選択される。
【０１５６】
また、データ処理回路３６は、その起動時には、リカバリクロックＲＣＫ４のライズエッジと同期したリカバリクロックＲＣＫ２のライズエッジを起点とした２または３サイクルで構成されるＲＤ［２：０］の有効な４ビットデータをリカバリクロックＲＣＫ４のサイクルで２サイクル後にＤＯ［３：０］として出力する。
【０１５７】
次に、データ処理回路３６の起動後の動作について説明する。
【０１５８】
通常時、すなわちＳ０＝ＮのときはＲＤ［２：０］のうちのＲＤ［１：０］が有効なデータとして出力データＤＯ［３：０］に割り当てられて出力される。一方、ＲＤ２は、無効なデータとして捨てられる。
【０１５９】
例外処理（Ａ）、すなわち、Ｓ０＝Ａのときには、ＲＤ［２：０］のうちのＲＤ０が有効なデータとして出力データＤＯ［３：０］に割り当てられて出力される。一方、ＲＤ１，ＲＤ２は、無効なデータとして捨てられる。
【０１６０】
例外処理（Ｂ）、すなわち、Ｓ０＝Ｂのときには、ＲＤ［２：０］のうちのＲＤ［２：０］のすべてが有効なデータとして出力データＤＯ［３：０］に割り当てられて出力される。このとき、無効なデータとして捨てられるデータは存在しない。
【０１６１】
データは、４ビットずつ先頭のビット基準でリカバリクロックＲＣＫ２の約４サイクル後にリカバリクロックＲＣＫ４に同期させて出力する。
【０１６２】
第１の実施形態と異なり、本実施形態のデータ処理回路３６は、例外処理をカウントするカウンタを必要としない。
【０１６３】
例外処理（Ａ）（Ｓ０＝Ａ）のときには、リカバリクロックＲＣＫ４を相が１つ後（１／４周期後）のリカバリクロックＲＣＫ２の２分周クロックに切り替える。一方、例外処理（Ｂ）（Ｓ０＝Ｂ）のときには、リカバリクロックＲＣＫ４を相が１つ前（１／４周期前）のリカバリクロックＲＣＫ２の２分周クロックに切り替える。
【０１６４】
図１０は、以上の動作を示す表である。図１０は、第１の実施形態において図７に示した表に対応する。
【０１６５】
図１０の０サイクル目と１サイクル目はいずれもＳ０＝Ｎであり、ＲＤ［２：０］の中の有効なデータは欄に１と記載されたＲＤ［１：０］である。欄内にＺと記載されたＲＤ２は、無効なデータである。有効な４ビットのデータは、出力ＤＯ［３：０］に、ＤＯ０＝ＲＤ０（０サイクル目），ＤＯ１＝ＲＤ１（０サイクル目），ＤＯ２＝ＲＤ０（１サイクル目），ＤＯ３＝ＲＤ１（１サイクル目）として、リカバリクロックＲＣＫ２のライズエッジ位置４の所に出力される。
【０１６６】
図１０の２サイクル目は、例外処理（Ａ）（Ｓ０＝Ａ）であり、ＲＤ１とＲＤ２が無効データとなっている。
【０１６７】
出力データＤＯ［３：０］はＤＯ０＝ＲＤ０（２サイクル目），ＤＯ１＝ＲＤ０（３サイクル目），ＤＯ２＝ＲＤ１（３サイクル目），ＤＯ３＝ＲＤ０（４サイクル目）としてリカバリクロックＲＣＫ２のライズエッジ位置６の所に出力される。
【０１６８】
リカバリクロックＲＣＫ４としての選択相は相０から相１に切り替わり、図１０の４サイクル目のエッジ位置がその前から＋２．５され８．５となっている。すなわち、このときに、リカバリクロックＲＣＫ４において、選択相の相０から相１への切り替わりが現れている。
【０１６９】
（実施形態３）
第３の実施形態に係る半導体集積回路装置について、図面を参照して説明する。本実施形態の半導体集積回路装置は、第１の実施形態および第２の実施形態に係る半導体集積回路装置を一般化したものである。
【０１７０】
本実施形態では、記号ｍ，Ｎ，Ｋ，Ｍを、次のように定義する。
ｍ：オーバーサンプリング比
Ｎ：ＳＥＲＤＥＳ出力パラレル数
Ｋ：外付けＣＤＲ分周数
Ｍ：外付けＣＤＲ出力パラレル数
【０１７１】
すると、ｍ，Ｎ，Ｋ，Ｍの間で、以下の関係が成立する。
Ｍ＝ＫＮ／ｍ
【０１７２】
また、Ｎ／ｍは偶数とする。さらに、ｍは２のべき乗であって、ｍ≧４とする。また、Ｋは２のべき乗とする。第１の実施形態は、ｍ＝４，Ｎ＝１６，Ｋ＝２，Ｍ＝８の場合に相当する。一方、第２の実施形態は、ｍ＝８，Ｎ＝１６，Ｋ＝２，Ｍ＝４の場合に相当する。
【０１７３】
図１１は、本実施形態の半導体集積回路装置の構成を一例として示すブロック図である。図１１を参照すると、半導体集積回路装置は、３，２００／ｍ  Ｍｂｐｓのシリアルデータを３．２ＧｂｐｓのＳＥＲＤＥＳ回路２０を用いてｍ倍オーバーサンプリング動作で受信する。外付けＣＤＲ回路５０は、ＳＥＲＤＥＳ回路２０のパラレル出力信号端子に接続され、パラレルデータに対してクロックデータリカバリを行う。
【０１７４】
図１２は、本実施形態の半導体集積回路装置における外付けＣＤＲ回路５０の構成を一例として示すブロック図である。図１２を参照すると、ＣＤＲ回路５０は、入力されるパラレルデータ１を記憶するレジスタ５１、変化点検出回路５２、平均化回路５３、サンプリング回路５５、および、データ処理回路５６を備えている。
【０１７５】
図１３は、ＳＥＲＤＥＳ回路２０の入力データと出力パラレルデータ、および、ＳＥＲＤＥＳ回路２０内部のリカバリクロックＲＣＫ１の対応関係を示した図である。図示するための都合から、ＳＥＲＤＥＳ回路２０への入力データと出力パラレルデータの時間的な因果関係は無視して記載している。例えば、図１３では、入力データＤ４が入力される前に出力データＤ４が確定しているかのように記載されているが、実際の動作では、出力データＤ４が確定するのは入力データＤ４が入力された後である。ＳＥＲＤＥＳ回路２０の出力パラレルデータは、図１３に示すように、Ｎビット幅でＤ０〜ＤＮ−１とし、シリアル入力データの入力時刻の早い方からＤ０，Ｄ１，…，ＤＮ−１とパラレル変換されるものとする。
【０１７６】
ｍ倍オーバーサンプリング動作であるため、３２００／ｍ  Ｍｂｐｓの入力データ１ビットは、基本的に３．２ＧＨｚのリカバリクロックでｍ回取り込まれて、データ値が同一のｍビット幅のデータ列となる。ただし、そのビット幅は入力ジッタにより、（ｍ＋１）ビット幅や（ｍ−１）ビット幅になる場合がある。図１３の波形には、（ｍ＋１）ビット幅になる場合が示されている。
【０１７７】
パラレルデータ出力端子に出力されるデータ列を複数サイクルに亘って記述する場合には、Ｄ０（１），Ｄ０（２），…Ｄ０（ｎ）のように表すものとする。ここで、Ｄ０は出力端子を示し、括弧内の１，２等は何サイクル目の出力データであるかを示す。例えば、Ｄ０（１）はＤ０端子の１サイクル目の出力を表す。
【０１７８】
ＣＤＲ回路５０は、以下の動作に基づいて、ＳＥＲＤＥＳ２０の出力するパラレルデータ１をクロックデータリカバリする。
【０１７９】
（１）レジスタ５１
レジスタ５１は、パラレルデータ１を現在のサイクルとその直前のサイクルの２サイクル分記憶し、サイクル毎に記憶内容を更新する。具体的には、レジスタ５１は、パラレルデータ１をＤ０（０），Ｄ１（０），…，ＤＮ−１（０），Ｄ０（１），Ｄ１（１），…，ＤＮ−１（１）として記憶する。ここで、Ｄ０（０）の括弧内の０は、直前のサイクルであることを示す。また、Ｄ０（１）の括弧内の１は、現在のサイクルであることを示す。１サイクル後には、Ｄｎ（１）はＤｎ（０）となり、新しく入力されたパラレルデータが改めてＤｎ（１）となる。ここで、ｎ＝０，１，…，Ｎ−１である。
【０１８０】
また、レジスタ５１は、サンプリング回路５５からの信号ψｓにより、読み出しデータとして指定されるＤ０（１），Ｄ１（１），…，ＤＮ−１（１）の中の（Ｎ／ｍ＋１）ビットのデータをデータ処理回路５６に送る。通常は、（Ｎ／ｍ＋１）ビット目はダミーデータ指定される。ただし、後述するように、特別の場合に限り、（Ｎ／ｍ＋１）ビットすべてが読み出しデータ指定される。さらに、他の特別の場合には、Ｎ／ｍビット目と（Ｎ／ｍ＋１）ビット目がダミーデータ指定される。ダミーデータ指定されたビットに関して、レジスタ５１は、Ｄ０（１），Ｄ１（１），…，ＤＮ−１（１）の値とは無関係に、値０をデータ処理回路５６に送る。
【０１８１】
（２）変化点検出回路５２
変化点検出回路５２は、レジスタに記憶されているデータ列Ｄ０（０），Ｄ１（０），…，ＤＮ−１（０），Ｄ０（１），Ｄ１（１），…，ＤＮ−１（１）から現在のサイクルについてデータ値に変化があった最小の端子番号を変化点として検出し、その値のｍの剰余を変化点ポインタＶＤとして平均化回路５３に送る。
ＶＤ＝パラレルデータ１の変化点位置のｍの剰余（ｍで割った余り）
【０１８２】
例えば、図１４に示すようなデータ列の場合において、現在のサイクルが２サイクル目のときには、変化点はＤ１であり、変化点ポインタＶＤの値は１である。一方、現在のサイクルが３サイクル目のときには、変化点の値はＤ０であり、変化点ポインタＶＤの値は０である。なお、現在のサイクルが１サイクル目のときには、この表には直前のサイクルのデータは記載されていないが、Ｄ０は変化点でないとして変化点ポインタＶＤの値は２とした。
【０１８３】
変化点検出回路５２は、サイクル中にデータの変化点がない場合には、前サイクルのＶＤの値を保持し、その値をＶＤとして平均化回路５３に送る。
【０１８４】
（３）平均化回路５３
平均化回路５３は、変化点検出回路５２から変化点ポインタＶＤを受け取り、平均化ポインタＶｓを計算してサンプリング回路５５に送る。
【０１８５】
平均化回路５３は、平均化ポインタＶｓを次式により算出する。
Ｖｓ＝（ＶＤ−Ｖｓ０）／ｍ＋Ｖｓ０
【０１８６】
ここで、Ｖｓ０は１サイクル前のＶｓの値である。したがって、今計算されたＶｓは次のサイクルではＶｓ０となる。
【０１８７】
また、ＶＤ−Ｖｓ０は、絶対値｜ＶＤ−Ｖｓ０｜がｍ／２を超えないように−ｍ／２〜ｍ／２の値として円環的に扱う。つまり、｜ＶＤ−Ｖｓ０｜がｍ／２を超える場合には、ｍの整数倍の値を加えて、結果が−ｍ／２〜ｍ／２の間の値となるように計算する。また、−ｍ／２とｍ／２は同一視し、計算上は−ｍ／２とする。例えば、ＶＤ＝ｍ−１，Ｖｓ０＝０のときには、ＶＤ−Ｖｓ０＝ｍ−１ではなく、−１と計算する。
【０１８８】
さらに、平均化回路５３は、ｍの整数倍を加えて、Ｖｓの値が０以上ｍ未満の値となるように計算する。
【０１８９】
例えば、ＶＤ＝ｍ−１，Ｖｓ０＝０のときには、まず、Ｖｓ＝（ｍ−１−０）／ｍ＋０＝−１／ｍとなるが、上述の計算規則によると、最終的に、Ｖｓ＝−１／ｍ＝ｍ−１／ｍとなる。
【０１９０】
また、（ＶＤ−Ｖｓ０）／ｍは、２進数で小数点以下（ｌｏｇ２ｍ＋１）桁の値とする。端数は切り捨てる。すなわち、（ＶＤ−Ｖｓ０）／ｍは、１０進数では１／２ｍの整数倍の値となる。Ｖｓも２進数で小数点以下（ｌｏｇ２ｍ＋１）桁の値とする。
【０１９１】
平均化回路５３は、求めたＶｓの値をサンプリング回路５５に送る。
【０１９２】
（４）サンプリング回路５５
サンプリング回路５５は、平均化回路５３から受け取った、平均化ポインタＶｓからレジスタ５１から読み出すデータを決定するφｓを計算し、レジスタ５１に対してリカバリデータとして読み出すべきデータを指定する。レジスタ５１は、指定されたデータをデータ処理回路５６へ送る。また、サンプリング回路５５は、後述する例外処理の有無と種類に関する情報を信号Ｓ０としてデータ処理回路５６へ送る。
【０１９３】
本実施形態におけるレジスタ５１から読み出すデータの決定方法について以下に述べる。
【０１９４】
サンプリング回路５５は、平均化回路５３から受け取ったＶｓの値を四捨五入し、整数値に丸めてφｓとする。このとき、φｓの値は、０，１，２，…，ｍ−１のいずれかの値となる。
φｓ＝Ｖｓの小数点以下四捨五入した値（整数値）
ただし、Ｖｓの小数点以下を四捨五入した場合にφｓの値がｍとなったときには、φｓ＝０とする。
【０１９５】
サンプリング回路５５は、レジスタ５１からデータ処理回路５６にどの入力パラレルデータを送るかを指定する。指定されるデータは、φｓの値に応じて次のように決定される。現在のサイクルのＤｎ（ｎ＝０〜Ｎ−１）のうちのＤｍ（ｍ＝φｓ＋ｍ／２−１−ｍ，φｓ＋ｍ／２−１，φｓ＋ｍ／２−１＋ｍ，φｓ＋ｍ／２−１＋２ｍ，…）の値を指定する。ただし、ｍの値が０からＮ−１の範囲にないＤｍの値は、指定しない。レジスタ５１は、指定された読み出しデータをデータ処理回路５６に送る。
【０１９６】
サンプリング回路５５が指定するデータの組をψｓとする。例えば、ψｓ＝（Ｄ１，Ｄｍ＋１，Ｄ２ｍ＋１，Ｄ３ｍ＋１，…，ｎｕｌｌ）の場合には、ψｓが指定している読み出しデータはＤ１，Ｄｍ＋１，Ｄ２ｍ＋１，Ｄ３ｍ＋１，…の（Ｎ／ｍ）ビットであり、（Ｎ／ｍ＋１）ビット目のｎｕｌｌはダミーデータ指定である。本実施形態では、後述する例外処理の場合に、ψｓが指定する読み出しデータは（Ｎ／ｍ−１）ビットまたは（Ｎ／ｍ＋１）ビットとなる。すなわち、ψｓが指定する読み出しデータのビット数は、（Ｎ／ｍ−１）ビット，Ｎ／ｍビット，（Ｎ／ｍ＋１）ビットのいずれかになり、（Ｎ／ｍ＋１）ビットに足りない分はダミーデータ指定（ｎｕｌｌ指定）となる。
【０１９７】
レジスタ５１は、データ処理回路５６に（Ｎ／ｍ＋１）ビット幅のデータを送るが、サンプリング回路５５からψｓによってダミーデータ指定（ｎｕｌｌ指定）されたビットとして値０を送る。例えば、サンプリング回路５５からψｓ＝（Ｄ１，Ｄｍ＋１，Ｄ２ｍ＋１，Ｄ３ｍ＋１，…，ｎｕｌｌ）の指定がされた場合には、レジスタ５１は（Ｄ１，Ｄｍ＋１，Ｄ２ｍ＋１，Ｄ３ｍ＋１，…，０）の（Ｎ／ｍ＋１）ビット幅データをデータ処理回路５６に送る。
【０１９８】
次に、例外処理（Ａ）、（Ｂ）について説明する。
【０１９９】
（Ａ）φｓがｍ／２から（ｍ／２＋１）に変化した場合、すなわち、前サイクルのφｓがｍ／２で現サイクルのφｓが（ｍ／２＋１）である場合
サンプリング回路５５は、Ｄ０の値を読み出しデータとして指定しない。すなわち、サンプリング回路５５は、読み出しデータとしてψｓ＝（Ｄｍ，Ｄ２ｍ，…，ＤＮ−ｍ，ｎｕｌｌ，ｎｕｌｌ）を指定する。このとき、レジスタ５１は、（Ｎ／ｍ＋１）ビット幅データとして（Ｄｍ，Ｄ２ｍ，…，ＤＮ−ｍ，０，０）をデータ処理回路５６に送る。
【０２００】
（Ｂ）φｓが（ｍ／２＋１）からｍ／２に変化した場合、すなわち、前サイクルのφｓが（ｍ／２＋１）で現サイクルのφｓがｍ／２である場合
サンプリング回路５５は、Ｄ０の値も読み出しデータとして指定する。すなわち、サンプリング回路５５は、読み出しデータとしてψｓ＝（Ｄ０，Ｄｍ−１，Ｄ２ｍ−１，…，ＤＮ−１）を指定する。このとき、レジスタ５１は、（Ｎ／ｍ＋１）ビット幅データとして（Ｄ０，Ｄｍ−１，Ｄ２ｍ−１，…，ＤＮ−１）をデータ処理回路５６に送る。
【０２０１】
このようにデータの変化点の情報に基づいて読み出しデータを決定することで、正しいデータが読み出され、正しくデータリカバリが行われる。
【０２０２】
サンプリング回路５５は、例外処理（Ａ）もしくは（Ｂ）のいずれがあったか、または、例外処理はなかったかに関する情報を信号Ｓ０としてデータ処理回路５６に送る。
【０２０３】
（５）データ処理回路５６
データ処理回路５６は、レジスタ５１から受けた（Ｎ／ｍ＋１）ビット幅のデータに対して、サンプリング回路５５から受けた情報信号Ｓ０に基づいたデータ処理を行い、Ｍビット幅のパラレルデータとして出力する。また、データ処理回路５６は、リカバリクロックＲＣＫ２からリカバリクロックＲＣＫ４を生成して出力する。データ処理回路５６は、上記のＭビット幅のパラレルデータをこのリカバリクロックＲＣＫ４に同期して出力する。
【０２０４】
図１５に示すように、レジスタ５１からデータ処理回路５６に送られる（Ｎ／ｍ＋１）ビット幅信号をＲＤ０，ＲＤ１，…，ＲＤＮ／ｍとする。ＲＤ０側がＬＳＢとする。また、データ処理回路５６の出力Ｍビット幅信号をＤＯ０，ＤＯ１，…，ＤＯＭ−１とする。ＤＯ０側をＬＳＢとする。
【０２０５】
リカバリクロックＲＣＫ４は、リカバリクロックＲＣＫ２のＫ分周クロックである（Ｋ≧２）。データ処理回路５６は、１／２Ｋ周期ずつずれた２Ｋ相クロックとしてリカバリクロックＲＣＫ２のＫ分周クロックを生成し、２Ｋ相中の１相をリカバリクロックＲＣＫ４として選択する。
【０２０６】
データ処理回路５６の動作について説明する。
【０２０７】
通常時、すなわち、Ｓ０＝Ｎのときには、ＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ−１：０］が有効なデータとして出力データＤＯ［Ｍ−１：０］に割り当てられて出力される。一方、ＲＤＮ／ｍは、無効なデータとして捨てられる。
【０２０８】
例外処理（Ａ）、すなわち、Ｓ０＝Ａのときには、ＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ−２：０］が有効なデータとして出力データＤＯ［Ｍ−１：０］に割り当てられて出力される。一方、ＲＤＮ／ｍ−１，ＲＤＮ／ｍは、無効なデータとして捨てられる。
【０２０９】
例外処理（Ｂ）、すなわち、Ｓ０＝Ｂのときには、ＲＤ［Ｎ／ｍ：０］のうちのＲＤ［Ｎ／ｍ：０］のすべてが有効なデータとして出力データＤＯ［Ｍ−１：０］に割り当てられて出力される。このとき、無効なデータとして捨てられるデータは存在しない。
【０２１０】
データは、Ｍビットずつ先頭のビット基準でリカバリクロックＲＣＫ４に同期して出力される。
【０２１１】
本実施形態のデータ処理回路５６は、Ｎ／２ｍ≧２の場合には、例外処理をカウントするカウンタを持つ。一方、Ｎ／２ｍ＝１の場合には、このカウンタは不要となる。カウンタは、通常時（Ｓ０＝Ｎ）にはカウンタ値を維持し、例外処理（Ａ）（Ｓ０＝Ａ）のときにはカウンタ値をインクリメント（＋１）し、例外処理（Ｂ）（Ｓ０＝Ｂ）のときにはカウンタ値をデクリメント（−１）する。カウンタ値がＮ／２ｍになったときには、データ処理回路５６は、リカバリクロックＲＣＫ４を相が１つ後（１／２Ｋ周期後）のリカバリクロックＲＣＫ２のＫ分周クロックに切り替える。一方、カウンタ値が−Ｎ／２ｍになったときには、データ処理回路５６は、リカバリクロックＲＣＫ４を相が１つ前（１／２Ｋ周期前）のリカバリクロックＲＣＫ２のＫ分周クロックに切り替える。
【０２１２】
（実施形態４）
第４の実施形態に係る半導体集積回路装置について、図面を参照して説明する。本実施形態の半導体集積回路装置の構成は、第２の実施形態の半導体集積回路装置（図８）と同一である。ただし、外付けＣＤＲ回路４０の中身が異なる。
【０２１３】
本実施形態の半導体集積回路装置は、受信するシリアルデータが４００Ｍｂｐｓであり、ＳＥＲＤＥＳ回路が３．２Ｇｂｐｓで８倍オーバーサンプリング動作する。
【０２１４】
図１６は、本実施形態に係る半導体集積回路装置における外付けＣＤＲ回路ＣＤＲ４０の構成を示すブロック図である。図１６を参照すると、ＣＤＲ回路ＣＤＲ４０は、入力されるパラレルデータ１を記憶するレジスタ４１、変化点検出回路４２、カウンタ回路４３、サンプリング回路４５、および、データ処理回路４６を備えている。
【０２１５】
（１）レジスタ４１
レジスタ４１は、第２の実施形態のレジスタ３１と同一の回路である。
【０２１６】
（２）変化点検出回路４２
変化点検出回路４２は、第２の実施形態の変化点検出回路３２と同一の回路である。
【０２１７】
（３）カウンタ回路４３
カウンタ回路４３は、変化点ポインタＶＤとポインタφｓの関係により、カウンタ値を増減する。カウンタ回路４３は、カウンタ値に応じて、ポインタφｓの値を変化させる。
【０２１８】
変化点ポインタＶＤおよびポインタφｓは整数であるが、いずれも８の剰余（８で割った余り）として扱う。８の剰余となるのは、ＳＥＲＤＥＳ２０が８倍オーバーサンプリングで使用されるからである。なお、ＳＥＲＤＥＳ２０が１６倍オーバーサンプリングで使用される場合には、ＶＤおよびφｓを１６の剰余として扱う。
【０２１９】
カウンタ回路４３は、以下のように、カウンタ値を増減する。
【０２２０】
ここで、変化点ポインタＶＤと比較するポインタφｓは、１サイクル前のポインタφｓである。
ＶＤ＝φｓのときには、カウンタ値は不変（±０）とする。
ＶＤ＝φｓ＋１，φｓ＋２，φｓ＋３，φｓ＋４のときには、カウンタ値をインクリメント（＋１）する。
ＶＤ＝φｓ−１，φｓ−２，φｓ−３のときには、カウンタ値をデクリメント（−１）する。
カウンタ値が８になったときには、φｓ＝φｓ＋１とし、カウンタ値を０にリセットする。
カウンタの値が−８になったときには、φｓ＝φｓ−１とし、カウンタの値を０にリセットする。
【０２２１】
（４）サンプリング回路４５
サンプリング回路４５は、第２の実施形態のサンプリング回路３５と同様である。ただし、本実施形態では、平均化ポインタＶｓの代わりにポインタφｓを受け取る。したがって、サンプリング回路４５は、四捨五入を行なう必要はなく、受け取ったポインタφｓを第２の実施形態におけるφｓとして、そのまま使用する。
【０２２２】
（５）データ処理回路４６
データ処理回路４６は、第２の実施形態のデータ処理回路３６と同一の回路である。
【０２２３】
（実施形態５）
第５の実施形態に係る半導体集積回路装置について、図面を参照して説明する。本実施形態の半導体集積回路装置は、第４の実施形態に係る半導体集積回路装置を一般化したものである。
【０２２４】
第４の実施形態を一般化した本実施形態の構成は、第１の実施形態を一般化した第３の実施形態の構成（図１１）と同一である。ただし、外付けされるＣＤＲ回路の中身だけが異なる。ここでは、一例として、受信するシリアルデータが３．２／ｍＧｂｐｓで、ＳＥＲＤＥＳ回路が３．２Ｇｂｐｓでｍ倍オーバーサンプリング動作する場合について記載する。
【０２２５】
本実施形態では、記号ｍ，Ｎ，Ｋ，Ｍ，Ｃを、次のように定義する。
ｍ：オーバーサンプリング比
Ｎ：ＳＥＲＤＥＳ出力パラレル数
Ｋ：外付けＣＤＲ分周数
Ｍ：外付けＣＤＲ出力パラレル数
Ｃ：カウンタ最大値
【０２２６】
すると、ｍ，Ｎ，Ｋ，Ｍの間で、以下の関係が成立する。
Ｍ＝ＫＮ／ｍ
【０２２７】
また、Ｎ／ｍは偶数とする。さらに、ｍは２のべき乗であって、ｍ≧４とする。また、Ｋは２のべき乗とする。第４の実施形態は、ｍ＝８，Ｎ＝１６，Ｋ＝２，Ｍ＝４、Ｃ＝８（＝ｍ）の場合に相当する。
【０２２８】
図１７は、本実施形態に係る半導体集積回路装置における外付けＣＤＲ回路６０の構成を示すブロック図である。図１７に示したＣＤＲ回路６０は、図１６に示した第４の実施形態におけるＣＤＲ回路４０を一般化したものであり、図１２に示した第３の実施形態におけるＣＤＲ回路５０を変形例でもある。図１７を参照すると、ＣＤＲ回路ＣＤＲ６０は、入力されるパラレルデータ１を記憶するレジスタ６１、変化点検出回路６２、カウンタ回路６３、サンプリング回路６５、および、データ処理回路６６を備えている。
【０２２９】
（１）レジスタ６１
レジスタ６１は、第３の実施形態におけるレジスタ５１と同一の回路である。
【０２３０】
（２）変化点検出回路６２
変化点検出回路６２は、第３の実施形態における変化点検出回路５２と同一の回路である。
【０２３１】
（３）カウンタ回路６３
カウンタ回路６３は、変化点ポインタＶＤとポインタφｓの関係により、カウンタ値を増減する。カウンタ回路６３は、そのカウンタ値に応じて、ポインタφｓの値を変化させる。
【０２３２】
本実施形態は、第３の実施形態における平均化回路５３をカウンタ回路６３に置き換えた構成に相当する。
【０２３３】
変化点ポインタＶＤおよびポインタφｓは整数であるが、いずれもｍの剰余（ｍで割った余り）として扱う。ｍの剰余となるのは、ＳＥＲＤＥＳ２０がｍ倍オーバーサンプリングで使用されるからである。
【０２３４】
カウンタ回路６３は、以下のように、カウンタ値を増減する。
【０２３５】
ここで、変化点ポインタＶＤと比較するポインタφｓは、１サイクル前のポインタφｓである。
ＶＤ＝φｓのときには、カウンタ値は不変（±０）とする。
ＶＤ＝φｓ＋１、φｓ＋２、…、φｓ＋ｍ／２のときには、カウンタ値をインクリメント（＋１）する。
ＶＤ＝φｓ−１、φｓ−２、…、φｓ−ｍ／２＋１のときには、カウンタ値をデクリメント（−１）する。
カウンタ値がカウンタ最大値Ｃになったときには、φｓ＝φｓ＋１とし、カウンタ値を０にリセットする。
カウンタ値が−Ｃになったときには、φｓ＝φｓ−１とし、カウンタ値を０にリセットする。
【０２３６】
カウンタ最大値Ｃは、任意の自然数であり、適当に定められる値である。例えば、Ｃ＝ｍにする。
【０２３７】
（４）サンプリング回路６５
サンプリング回路６５は、第３の実施形態のサンプリング回路５５と同様である。ただし、本実施形態では、平均化ポインタＶｓの代わりにポインタφｓを受け取る。したがって、サンプリング回路６５は、四捨五入を行なう必要はなく、受け取ったポインタφｓを第３の実施形態におけるφｓとして、そのまま使用する。
【０２３８】
（５）データ処理回路６６
データ処理回路６６は、第３の実施形態におけるデータ処理回路５６と同一の回路である。
【０２３９】
（実施形態６）
第６の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図１８は、本実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【０２４０】
図１８を参照すると、半導体集積回路装置は、同一の半導体チップ上に３．２Ｇｂｐｓ動作のＳＥＲＤＥＳ回路２０と、外付けＣＤＲ回路３０と、ＣＤＲ回路３０の出力データを処理する出力データ処理回路７０とを搭載して構成される。
【０２４１】
（実施形態７）
第７の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図１９は、本実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【０２４２】
図１９を参照すると、半導体集積回路装置は、同一の半導体チップ上に３．２Ｇｂｐｓ動作のＳＥＲＤＥＳ回路２０と、ＳＥＲＤＥＳ回路２０のパラレル出力データをデータ処理する出力データ処理回路７１と、４倍オーバーサンプリング受信用外付けＣＤＲ回路１０と、ＣＤＲ回路１０のパラレル出力データを処理する出力データ処理回路７２と、８倍オーバーサンプリング受信用外付けＣＤＲ回路３０と、ＣＤＲ回路３０のパラレル出力データを処理する出力データ処理回路７３と、制御端子１からの入力に応じて出力データ処理回路７１，７２，７３の中の１つだけが有効となるように制御する制御回路８０と、を搭載して構成される。
【０２４３】
本実施形態では、ＳＥＲＤＥＳ回路２０への入力シリアルデータのデータレイトとして、３．２Ｇｂｐｓ，８００Ｍｂｐｓ，４００Ｍｂｐｓの３つのデータレイトの場合があり、いずれのデータレイトで使用するかを制御端子１から入力する。制御回路８０は、その入力に応じて、３．２Ｇｂｐｓ用の出力データ処理回路７１と、８００Ｍｂｐｓ用の出力データ処理回路７２と、４００Ｍｂｐｓ用の出力データ処理回路７３のうちのいずれか１つを有効にし、残り２つを無効とする。このように、本実施形態の半導体集積回路装置は、入力シリアルデータのデータレイトに応じた適切な動作を行う。
【０２４４】
（実施形態８）
第８の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図２０は、本実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【０２４５】
図２０を参照すると、半導体集積回路装置は、同一の半導体チップ上に、３．２Ｇｂｐｓ動作のＳＥＲＤＥＳ回路２０と、ＳＥＲＤＥＳ回路２０のパラレル出力データをデータ処理する出力データ処理回路７１と、４倍オーバーサンプリング受信用外付けＣＤＲ回路１０と、ＣＤＲ回路１０のパラレル出力データを処理する出力データ処理回路７２と、８倍オーバーサンプリング受信用外付けＣＤＲ回路３０と、ＣＤＲ回路３０のパラレル出力データを処理する出力データ処理回路７３と、ＳＥＲＤＥＳ回路２０のパラレル出力データから受信しているシリアルデータのデータレイトが３．２Ｇｂｐｓであるか、８００Ｍｂｐｓであるか、４００Ｍｂｐｓであるかを判断して、その結果に応じて出力データ処理回路７１，７２，７３の中の１つを有効となるように制御する制御回路８１と、を搭載して構成される。
【０２４６】
本実施形態では、第７の実施形態と同様に、ＳＥＲＤＥＳ回路２０への入力シリアルデータのデータレイトとして３．２Ｇｂｐｓ，８００Ｍｂｐｓ，４００Ｍｂｐｓの３つのデータレイトの場合がある。制御回路８１は、ＳＥＲＤＥＳ回路２０の出力パラレルデータ１から、入力シリアルデータのデータレイトが３．２Ｇｂｐｓであるか、８００Ｍｂｐｓであるか、４００Ｍｂｐｓであるかを判定して、その判定結果に対応する出力データ処理回路７１，７２，７３の中の１つが有効になるように制御する。
【０２４７】
データレイトの判定は、シリアルデータ伝送状態を確立させるためのトレーニングパターンで行う。本実施形態では、説明を簡単にするために、トレーニングパターンは、シリアルデータとして０１０１…の０，１を繰り返すトグルパターンとする。
【０２４８】
入力シリアルデータのデータレイトが３．２Ｇｂｐｓである場合には、パラレルデータ１は１ビット毎に０と１を繰り返すような信号となる。例えば、Ｄ１５＝０，Ｄ１４＝１，Ｄ１３＝０，Ｄ１２＝１，…，Ｄ１＝０，Ｄ０＝１のようになる。データレイトが８００Ｇｂｐｓである場合には、パラレルデータ１は４ビット毎に０と１を交互に繰り返すような信号となる。例えば、Ｄ１５＝０，Ｄ１４＝０，Ｄ１３＝０，Ｄ１２＝０，Ｄ１１＝１，Ｄ１０＝１，Ｄ９＝１，Ｄ８＝１，Ｄ７＝０，…，Ｄ１＝１，Ｄ０＝１のようになる。データレイトが４００Ｇｂｐｓである場合には、パラレルデータ１は８ビット毎に０と１を交互に繰り返すような信号となる。例えば、Ｄ１５＝０，Ｄ１４＝０，Ｄ１３＝０，Ｄ１２＝０，Ｄ１１＝０，Ｄ１０＝０，Ｄ９＝０，Ｄ８＝０，Ｄ７＝１，…，Ｄ１＝１，Ｄ０＝１のようになる。制御回路８１は、パラレルデータ１がこの３つの信号パターンのいずれに合致しているかを判定して、合致したデータレイトに対応する出力データ処理回路７１，７２，７３の中の１つを有効とし、残り２つを無効にする。
【０２４９】
このように、本実施形態の半導体集積回路装置は、入力シリアルデータのデータレイトに応じた適切な動作を行う。
【０２５０】
（実施形態９）
第９の実施形態に係る半導体集積回路装置について、図面を参照して説明する。図２１は、本実施形態に係る半導体集積回路装置の構成を示すブロック図である。
【０２５１】
図２１を参照すると、本実施形態の半導体集積回路装置は、第８の実施形態に係る半導体集積回路装置に対して、ＣＤＲ回路１０とＣＤＲ回路３０の有効および無効を制御する信号を加えたものである。
【０２５２】
制御回路８２は、入力シリアルデータが３．２Ｇｂｐｓの場合にはＣＤＲ回路１０とＣＤＲ回路３０が無効になり、８００Ｍｂｐｓの場合にはＣＤＲ回路３０が無効になり、４００Ｍｂｐｓの場合にはＣＤＲ回路１０が無効になるように制御する。
【０２５３】
本実施形態の半導体集積回路装置によると、不要なＣＤＲ回路が動作しないことにより、実施形態８の場合と比較して消費電力をさらに削減することができる。
【０２５４】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０２５５】
１０，２１，３０，４０，５０，６０    クロックアンドデータリカバリ（ＣＤＲ）回路
１１，３１，４１，５１，６１    レジスタ
１２，３２，４２，５２，６２    変化点検出回路
１３，３３，５３    平均化回路
１５，３５，４５，５５，６５    サンプリング回路
１６，３６，４６，５６，６６    データ処理回路
２０    ＳＥＲＤＥＳ回路
２２    シリアルパラレル（Ｓ／Ｐ）変換回路
４３，６３    カウンタ回路
７０，７１，７２，７３    出力データ処理回路
８０，８１，８２    制御回路
ＲＣＫ１，ＲＣＫ２，ＲＣＫ４    リカバリクロック信号
ＶＤ    変化点ポインタ
Ｖｓ    平均化ポインタ
φｓ    ポインタ
ψｓ    信号
【図１】
2012156776.tif 000003
【図２】
2012156776.tif 000004
【図３】
2012156776.tif 000005
【図４】
2012156776.tif 000006
【図５】
2012156776.tif 000007
【図６】
2012156776.tif 000008
【図７】
2012156776.tif 000009
【図８】
2012156776.tif 000010
【図９】
2012156776.tif 000011
【図１０】
2012156776.tif 000012
【図１１】
2012156776.tif 000013
【図１２】
2012156776.tif 000014
【図１３】
2012156776.tif 000015
【図１４】
2012156776.tif 000016
【図１５】
2012156776.tif 000017
【図１６】
2012156776.tif 000018
【図１７】
2012156776.tif 000019
【図１８】
2012156776.tif 000020
【図１９】
2012156776.tif 000021
【図２０】
2012156776.tif 000022
【図２１】
2012156776.tif 000023
【図２２】
2012156776.tif 000024
【図２３】
2012156776.tif 000025
【図２４】
2012156776.tif 000026