(57)【特許請求の範囲】
【請求項１】
入力クロック信号に対して相異なる遅延時間を有する多数の位相クロック信号を発生させる位相同期ループと、
外部から直列に入力されるデータを前記多数の位相クロック信号に応答してM(>１)倍オーバサンプリングし、オーバサンプリングされた多数のデータビットを並列に出力するオーバサンプリング手段と、
このオーバサンプリング手段から出力された前記並列データビットを入力してビット間のレベル変化時点を検出し、検出された結果を各々第１〜第M変化信号として出力するレベル変化検出部と、
このレベル変化検出部から出力された前記第１〜第M変化信号の発生回数を各々累積して発生頻度の高い変化信号を第１〜第M変化累積信号の１つとして出力する変化累積部と、
前記第１〜第M変化累積信号を基に、前記オーバサンプリング手段から出力される前記並列データビットのうち該当位置のデータビットを選択するための状態信号を生成する状態選択部と、
前記並列データビットを入力し、前記状態信号を使用して前記状態信号に相応するサンプリング位置のデータビットを選択して並列に出力するデータ選択部とを具備することを特徴とするデータ復元装置。
【請求項２】
前記Mは３であることを特徴とする請求項１に記載のデータ復元装置。
【請求項３】
前記レベル変化検出部は、
前記オーバサンプリング手段から出力される多数のビットのうち隣接した２ビットを各々排他的論理和し、この排他的論理和された結果を第１、第２及び第３出力信号として生成する多数の排他的論理和手段を含む変化検出部と、
前記第１、第２及び第３出力信号を処理し、その結果を第１〜第３変化信号として出力する変化検出信号出力部とを具備することを特徴とする請求項２に記載のデータ復元装置。
【請求項４】
前記変化累積部は、
前記入力クロック信号に応答して前記第１変化信号を累積し、この累積された回数が所定数になれば第１レベルを有する第１変化累積信号を出力する第１累積部と、
前記入力クロック信号に応答して前記第２変化信号を累積し、この累積された回数が所定数になれば第１レベルを有する第２変化累積信号を出力する第２累積部と、
前記入力クロック信号に応答して前記第３変化信号を累積し、この累積された回数が所定数になれば第１レベルを有する第３変化累積信号を出力する第３累積部と、
前記第１、第２及び第３変化累積信号を論理和し、この論理和した結果に応答し、前記第１、第２及び第３累積部をリセットさせるための累積リセット信号を生成するリセット信号生成部とを具備することを特徴とする請求項３に記載のデータ復元装置。
【請求項５】
前記変化累積部は、
前記第１、第２及び第３変化信号のうち発生頻度の高い信号を前記第１、第２及び第３変化累積信号のうち１つとして出力することを特徴とする請求項４に記載のデータ復元装置。
【請求項６】
前記状態選択部から生成される状態信号は第１及び第２ビットを含み、この第１及び第２ビットの論理レベルの相異なる組合わせは前記第１、第２及び第３変化累積信号のうち何れの信号が生成されるかによって設定されることを特徴とする請求項４に記載のデータ復元装置。
【請求項７】
前記状態信号は、
前記第１変化累積信号が生じると前記第１及び第２ビットが各々論理“０”と論理“１”に設定され、前記第２変化累積信号が生じると前記第１及び第２ビットが各々論理“１”と“０”に設定され、前記第３変化累積信号が生じると前記第１及び第２ビットが各々論理“０”と論理“０”に設定されることを特徴とする請求項６に記載のデータ復元装置。
【請求項８】
前記データ選択部は、
前記オーバサンプリング手段から出力される前記並列データビットのうちMビットを受信し、前記状態信号に応答して前記入力されたMビットのうち１ビットを選択的に出力する多数のマルチプレクサを具備することを特徴とする請求項７に記載のデータ復元装置。
【請求項９】
前記データ選択部は、
前記多数のマルチプレクサに入力されるMビットデータを各々３P(ここで、Pは０以上の整数)、３P+１、３P+２に設定する時、
前記状態信号が“０１”ならば前記３P+２番目のビットを出力し、前記状態信号が“１０”ならば前記３P番目のビットを出力し、前記状態信号が“００”ならば前記３P+１番目のビットを出力することを特徴とする請求項８に記載のデータ復元装置。
【請求項１０】
(a) Kビット単位の直列データを入力し、相異なる遅延時間を有するN個の位相クロック信号により前記直列データの各区間をM倍オーバサンプリングしてN個のデータビットを並列に出力する段階と、
(b) 前記N個のデータビットの間のレベル変化を検出して前記レベル変化時点によって第１〜第M変化信号のうち何れか１つを出力する段階と、
(c) 前記各第１〜第M変化信号の発生回数を累積し、第１〜第M変化累積信号として出力する段階と、
(d) 前記第１〜第M変化累積信号を基に、状態信号を生成する段階と、
(e) 前記N個のデータビットから、前記状態信号を基にK個のデータビットを選択する段階とを具備することを特徴とするデータ復元方法。
【請求項１１】
前記Mは３であることを特徴とする請求項１０に記載のデータ復元方法。
【請求項１２】
前記Kは４であり、Nは１２であることを特徴とする請求項１１に記載のデータ復元方法。
【請求項１３】
前記方法は、
変化信号の検出によって累積過程を初期化する段階をさらに具備することを特徴とする請求項１１に記載のデータ復元方法。
【請求項１４】
前記(e)段階は、
(e１) 前記第１変化信号が(d)段階で検出されると、前記第１変化信号に相応する３倍オーバサンプリング位置(３P+２:ここで、Pは０以上の整数)の１ビットずつK個のデータビットを選択する段階と、
(e２) 前記第２変化信号が(d)段階で検出されると、前記第２変化信号に相応する３倍オーバサンプリング位置(３P)の１ビットずつK個のデータビットを選択する段階と、
(e３) 前記第３変化信号が(d)段階で検出されると、前記第３変化信号に相応する３倍オーバサンプリング位置(３P+１)の１ビットずつK個のデータビットを選択する段階とを具備することを特徴とする請求項１１に記載のデータ復元方法。
【請求項１５】
前記(e)段階は、
前記(d)段階で前記検出された変化信号に係る所定値を含む状態信号を生成し、その状態信号の値によって前記N個のデータビットを選択する段階を具備することを特徴とする請求項１０に記載のデータ復元方法。
【請求項１６】
マシンにより読出され、データを復元する方法段階を行うためにマシンにより行われる命令のプログラムを明確に具現するプログラム貯蔵装置において前記方法は、
（ａ）Kビット単位の直列データを入力し、相異なる遅延時間を有するN個の位相クロック信号により前記直列データの各区間をM倍オーバサンプリングしてN個のデータビットを並列に出力する段階と、
（ｂ）前記N個のデータビットの間のレベル変化を検出して前記レベル変化時点によって第１〜第M変化信号のうち何れか１つを出力する段階と、
（ｃ）前記各第１〜第M変化信号の発生回数を累積し、第１〜第M変化累積信号として出力する段階と、
（ｄ）前記第１〜第M変化累積信号を基に、状態信号を生成する段階と、
（ｅ）前記N個のデータビットから、前記状態信号を基にK個のデータビットを選択する段階とを具備することを特徴とするプログラム貯蔵装置。
【請求項１７】
前記Mは３であることを特徴とする請求項１６に記載のプログラム貯蔵装置。
【請求項１８】
前記プログラム貯蔵装置は、変化信号の検出により累積過程を初期化する段階を行うための命令をさらに含むことを特徴とする請求項１６に記載のプログラム貯蔵装置。
【請求項１９】
前記(e)段階を行う命令は、
(e１) 前記第１変化信号が(d)段階で検出されると、前記第１変化信号に相応する３倍オーバサンプリング位置(３P+２:ここでPは０以上の整数)の１ビットずつK個のデータビットを選択する段階と、
(e２) 前記第２変化信号が(d)段階で検出されると、前記第２変化信号に相応する３倍オーバサンプリング位置（３P）の１ビットずつK個のデータビットを選択する段階と、
(e３) 前記第３変化信号が(d)段階で検出されると、前記第３変化信号に相応する３倍オーバサンプリング位置(３P+１)の１ビットずつK個のデータビットを選択する段階を行う命令を含むことを特徴とする請求項１７に記載のプログラム貯蔵装置。
【請求項２０】
前記(e)段階を行うための命令は、
前記(d)段階で前記検出された変化信号による所定値を含む状態信号を生成し、その状態信号の値によって前記N個のデータビットを選択する段階を行うための命令を含むことを特徴とする請求項１６に記載のプログラム貯蔵装置。
【請求項２１】
データを復元するための回路において、
入力される直列データをN個の位相クロック信号に応答してM(>１)倍オーバサンプリングし、オーバサンプリングされたN個のデータビットを並列に出力する第１回路と、
前記N個のデータビットを入力してビット間のレベル変化時点を検出し、検出された結果を各々第１〜第M変化信号として出力する第２回路と、
前記第１〜第M変化信号の発生回数を各々累積し、第１〜第M変化累積信号として出力するための第３回路と、
前記第１〜第M変化累積信号を基に、状態信号を生成するための第４回路と、
前記N個のデータビットから、前記状態信号を基にK個のデータビットを選択する第５回路とを含むことを特徴とするデータ復元回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ伝送システムに係り、特に、クロックスキューによるエラーを最小化するデータ復元装置及び復元回路、並びにデータ復元方法及びその方法を実現するプログラム貯蔵装置に関する。
【０００２】
【従来の技術】
一般に、所定のデータを伝送するためのデータ伝送システムでは各システム間のデジタルインタフェースを行う方法として並列データチャンネルを用いる方法が多用されている。しかし、並列データチャンネルを用いる方法は、データ伝送チャンネルの増加に伴って問題点を誘発する。これにより、最近は並列伝送を用いる方法から直列伝送を用いる方法に徐々に変わっている。
【０００３】
すなわち、直列伝送チャンネルを用いてデータを伝送する方法は並列データチャンネルを用いる方法よりチャンネル数が減るという長所がある。しかし、大部分の場合、直列伝送チャンネルを用いてデータを伝送すれば、受信端で高速の直列信号を並列データフォーマットに復元しなければならない。この際、直列データを並列データフォーマットに復元する時、受信端におけるクロックスキューにより、データ復元が難しくなることがある。
【０００４】
従来、かかる問題点を解決するために、受信した信号の１ビット区間で複数回のサンプリングを行い、サンプリングされた結果により発生頻度の多いデータを実際データとして決定する方式が用いられた。
【０００５】
【発明が解決しようとする課題】
しかし、発生頻度だけを検出してデータを決定する方式は、クロックスキューの累積によりデータのレベルが変化する部分でエラーが生じる。例えば、データがハイレべルからローレベルに変化したり、ローレベルからハイレべルに変化するレベル遷移区間では、データの発生頻度により決定されたデータであっても、実際のデータではないエラーデータである確率が高くなるという問題点がある。
【０００６】
本発明は、上記の点に鑑みなされたもので、その目的は、データ受信時にクロックスキューに関係なく安定してデータを復元できるデータ復元装置及び復元回路を提供することにある。
さらに本発明は、前記データ復元装置で行われるデータ復元方法を提供することを目的とする。
さらに本発明は、前記データ復元方法を実現するプログラム貯蔵装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明の一形態としては、クロックスキューによるエラーを最小化するデータ復元装置を提供する。本発明に係るデータ復元装置は、位相同期ループ、オーバサンプリング手段、レベル変化検出部、変化累積部、状態選択部及びデータ選択部を具備する。位相同期ループは、入力クロック信号に対して相異なる遅延時間を有する多数の位相クロック信号を発生させる。オーバサンプリング手段は外部から直列に入力されるデータを多数の位相クロック信号に応答してM(>１)倍オーバサンプリングし、オーバサンプリングされた多数のデータビットを並列に出力する。レベル変化検出部はオーバサンプリング手段から出力された並列データビットを入力してビット間のレベル変化時点を検出し、検出された結果を各々第１〜第M変化信号として出力する。変化累積部はレベル変化検出部から出力された第１〜第M変化信号の発生回数を各々累積して発生頻度の高い変化信号を第１〜第M変化累積信号のうち何れか１つとして出力する。状態選択部は第１〜第M変化累積信号に応答し、オーバサンプリング手段から出力される並列データビットのうち該当位置のデータビットを選択するための状態信号を生成する。データ選択部は並列データビットを入力し、状態信号を用いて状態信号に相応するサンプリング位置のデータビットを選択して並列に出力する。
【０００８】
本発明の他の形態としては、クロックスキューによるエラーを最小化するデータ復元方法を提供する。本発明に係るデータ復元方法は(a)〜(e)段階を具備する。(a)段階はKビット単位の直列データを入力し、相異なる遅延時間を有するN個の位相クロック信号により直列データの各区間をM倍オーバサンプリングしてN個データビットを並列に出力する。(b)段階はN個のデータビットの間のレベル変化を検出してレベル変化時点によって第１〜第M変化信号のうち何れか１つを出力する。(c)段階は各第１〜第M変化信号の発生回数を累積する。(d)段階は第１〜第M変化信号の発生回数を累積した結果により、発生頻度が所定のスレッショルドに到達する変化信号を検出する。(e)段階はN個のデータビットから、検出された変化信号に相応するK個のデータビットを選択する。
【０００９】
【発明の実施の形態】
以下、本発明に係るクロックスキューによるエラーを最小化するデータ復元装置について添付した図面に基づいて次のように説明する。
【００１０】
図１は本発明の実施形態に係るクロックスキューによるエラーを最小化するデータ復元装置を示すブロック図である。図１を参照すれば、データ復元装置は、位相同期ループ(Phase Locked Loop:以下、PLLという)１００、３倍オーバサンプラ１１０、レベル変化検出部１２０、変化累積部１３０、状態選択部１４０及びデータ選択部１５０を含む。
【００１１】
PLL１００は入力されるクロック信号CLKに同期する所定数の位相クロック信号PH_CLKを生成する。ここで、位相クロック信号PH_CLKは入力クロック信号CLKに同期して相異なる遅延時間を有する。図１の実施形態において位相クロック信号PH_CLKは１２個の相異なる遅延時間を有するものと仮定する。このような位相クロック信号PH_CLKは３倍オーバサンプラ１１０に並列に印加されてサンプリングクロック信号として用いられる。
【００１２】
３倍オーバサンプラ１１０は外部から直列に入力されるデータS_DINを前記位相クロック信号PH_CLKに応答して３倍オーバサンプリングし、オーバサンプリングされた結果をNビット並列データとして出力する。具体的には図示しなかったが、入力データS_DINは外部の送信側から直列に入力される４ビット単位の信号であると仮定する。すなわち、３倍オーバサンプラ１１０は４ビット単位で直列に入力されるデータの１ビット区間を３回サンプリングし、サンプリングされた結果を出力する。図１の３倍オーバサンプラ１１０から出力されるデータは、現在のクロック信号に対する４ビットの直列データを各々３倍サンプリングした結果としての１２ビットと、次のクロック信号CLKに対する最上位１ビットが加えられた１３ビットとなる。ここで、次のクロック信号CLKに対する最後の１ビットは３倍オーバサンプラ１１０の出力を遅延させることによって求められる。
【００１３】
レベル変化検出部１２０は３倍オーバサンプラ１１０から出力された１３ビットデータを入力して各ビット間のレベル変化時点を感知し、感知した結果を各々第１、第２及び第３変化信号NEXT/PREV/MAINとして出力する。ここで、第１〜第３変化信号NEXT/PREV/MAINは入力クロック信号CLKのクロックスキューにより３倍オーバサンプラ１１０から現れうる３つの状態を示し、サンプリングされたデータのレベル変化時点を区分した結果を示す。
【００１４】
変化累積部１３０はレベル変化検出部１２０から出力された第１〜第３変化信号PREV/MAIN/NEXTを各々累積して第１〜第３変化累積信号NEXTA/PREVA/MAINAを発生させる。実際に、変化累積部１３０は第１〜第３変化信号NEXT/PREV/MAINのうち発生頻度の最も多い１信号を変化累積信号として出力する。
【００１５】
状態選択部１４０は変化累積部１３０から出力された第１〜第３変化累積信号NEXTA/PREVA/MAINAに応答して３倍オーバサンプラ１１０の出力のうち該当位置のビットデータを選択するための状態信号STATEを生成する。ここで、状態信号STATEは２ビットの組合わせとして発生し、データ選択部１５０の選択信号として印加される。
【００１６】
データ選択部１５０は３倍オーバサンプラ１１０でサンプリングされた１２ビットデータを入力し、状態選択部１４０から出力される状態信号STATEに相応するサンプリング位置のビットデータを選択して並列データで出力する。ここで、データ選択部１５０は３倍オーバサンプラ１１０の１３ビットの並列出力のうち次のクロック信号に対する１ビットを除いて１２ビットのみを入力する。また、データ選択部１５０は直列データの１ビット区間で３回サンプリングされた相異なる位置の３ビットのうち１ビットを選択することになる。したがって、データ選択部１５０は各１ビットずつ４ビットの並列データP_DOUT[０:３]を出力する。
【００１７】
このような構成を有する本発明のデータ復元装置は、入力された直列信号の１ビット区間を３倍オーバサンプリングし、オーバサンプリングされたデータのレベル変化時点によって、サンプリングされた３ビットのうち１ビットを選択する。したがって、入力されるクロック信号にスキューが発生しても安定したデータ復元が可能となる。
【００１８】
図２は図１に示されたレベル変化検出部１２０を説明するための詳細な回路図である。図２を参照すれば、レベル変化検出部１２０は変化検出部２００及び変化検出信号出力部２８０で構成される。
【００１９】
変化検出部２００は３倍オーバサンプラ１１０から出力される１３ビットデータを入力して隣接したビット間のレベル変化を感知する。このような動作のために、変化検出部２００は多数の排他的ORゲート２０１〜２１２で構成される。図２を参照すれば、入力データD０〜D１２は３倍オーバサンプラ１１０から出力される１３ビットのデータを示す。
【００２０】
具体的に、変化検出部２００の排他的ORゲート２０１〜２１２は各々前記１３ビットデータのうち隣接した２ビットを排他的論理和し、排他的論理和された結果を第１出力信号next、第２出力信号prev及び第３出力信号mainとして出力する。ここで、変化検出部２００の１２ビット出力データは３ビットずつ区分されて出力信号が決定される。すなわち、排他的ORゲート２０１〜２１２の出力がハイレべルである地点でレベル変化が存在すると判断され、現在入力データの変化が３つの出力信号main、prev、nextのうち何れの場合であるかが決定される。
【００２１】
排他的ORゲート２０１は最初のビットD０と２番目のビットD１とを排他的論理和して第１出力信号next[０]を生成する。すなわち、第１出力信号next[０]はビットDOとビットD１との間のレベル変化を感知した結果であって、排他的ORゲート２０１の出力がハイレべルになる時、レベルの変化が存在するものと判断される。また、排他的ORゲート２０２は２番目のビットD１と３番目のビットD２とを排他的論理和して第２出力信号prev[０]を生成する。すなわち、第２出力信号prev[０]はビットD１とビットD２とのレベル変化を感知した結果である。また、排他的ORゲート２０３は３番目のビットD２と４番目のビットD３を排他的論理和して第３出力信号main[０]を生成する。すなわち、第３出力信号main[０]はビットD２とビットD３のレベル変化を感知した結果である。
【００２２】
このような方式によって排他的ORゲート２０４〜２０６も隣接した２ビットデータを各々排他的論理和して第１、第２及び第３出力信号next[１]、prev[１]、main[１]を生成する。同様に、排他的ORゲート２０７〜２０９は第１、第２及び第３出力信号next[２]、prev[２]、main[２]を生成し、排他的ORゲート２１０〜２１２は第１、第２及び第３出力信号next[３]、prev[３]、main[３]を生成する。このように、１３ビットの入力データを排他的論理和した結果は順次に３ビット単位に分割される。
【００２３】
図２を参照すれば、レベル変化検出部１２０の変化検出信号出力部２８０は変化検出部２００から出力される第１、第２及び第３出力信号next、prev、mainを出力信号別に論理和し、論理和した結果を各々第１変化信号NEXT、第２変化信号PREV及び第３変化信号MAINとして出力する。このような動作のために、変化検出信号出力部２８０はORゲート２２０、２３０、２４０、インバータ２２５、２３５、２４５及び多数個のANDゲート２５０、２６０、２７０を含む。
【００２４】
具体的に、ORゲート２２０は変化検出部２００から出力される各第１出力信号next[０]〜next[３]を論理和する。インバータ２２５はORゲート２２０の出力信号を反転させ、反転された結果を第１反転信号NEXTBとして出力する。
【００２５】
ORゲート２３０は変化検出部２００から出力される各第２出力信号prev[０]〜prev[３]を論理和する。インバータ２３５はORゲート２３０の出力信号を反転させ、反転された結果を第２反転信号PREVBとして出力する。
【００２６】
ORゲート２４０は変化検出部２００から出力される各第３出力信号main[０]〜main[３]を論理和する。インバータ２４５はORゲート２４０の出力信号を反転させ、反転された結果を第３反転信号MAINBとして出力する。
【００２７】
ANDゲート２５０はORゲート２２０の出力信号とインバータ２３５、２４５から出力される第２、第３反転信号PREVB、MAINBを論理積し、論理積された結果を前記第１変化信号NEXTとして出力する。ANDゲート２６０はORゲート２３０の出力信号とインバータ２２５、２４５から出力される第１、第３反転信号NEXTB、MAINBを論理積し、論理積された結果を第２変化信号PREVとして出力する。ANDゲート２７０はORゲート２４０の出力信号とインバータ２２５、２３５から出力される第１、第２反転信号NEXTB、PREVBを論理積し、論理積された結果を前記第３変化信号MAINとして出力する。
【００２８】
図３（a）乃至図３（ｃ）は図２に示されたレベル変化検出部１２０の動作を説明するための図面であって、図３（a）はレベル変化時点によって第１変化信号NEXTが生じる場合を、図３（b）は第２変化信号PREVが生じる場合を、図３（ｃ）は第３変化信号MAINが生じる場合を各々示す。図３（a）乃至図３（ｃ）は入力クロック信号CLKのスキューSKEWによって現れうるサンプリングデータの出力状態を示す。
【００２９】
図２及び図３を参照して図２のレベル変化検出部１２０の動作について詳しく説明する。
まず、図３（a）を参照すれば、入力クロック信号CLKに対する位相クロック信号PH_CLKの位相が入力データS_DINより先行する場合を示す。ここで、直列入力される４ビット単位のデータは図３（a）に示されたように０と１とが反復される形を有すると仮定する。このような場合に、図３（a）の入力ビットD０は“１”であり、入力ビットD１は“０”値を有することになるので、排他的ORゲート２０１の出力next[０]はハイレべルとなる。この際、排他的ORゲート２０２、２０３の出力はローレベルになる。同様に、入力ビットD３と入力ビットD４とは相異なるレベルを有するために、レベルが変化する時点で排他的ORゲート２０４の出力next[１]は再びハイレべルとなる。このような方式で、変化検出部２００の第１出力信号nextは全てハイレべルであり、残りの第３出力信号mainと第２出力信号prevはローレベルになる。すなわち、図３（a）を参照すれば、３ビットずつ分割された４グループのデータのうちそれぞれの最初のビットと２番目のビットとの間にレベル変化が存在することがわかる。
【００３０】
この際、図２に示された変化検出信号出力部２８０のORゲート２２０はハイレべルの信号を出力する。また、第２出力信号prevと第３出力信号mainはローレベルなので他のORゲート２３０、２４０の出力信号はローレベルになる。したがって、ANDゲート２５０の出力信号、すなわち、第１変化信号NEXTはハイレべルとなり、ANDゲート２６０、２７０の出力信号PREV、MAINはローレベルとなる。結果的に、第１変化信号NEXTがハイレべルであり、他の信号PREV、MAINがローレベルである場合は、レベル変化時点が図３（a）と同一であることを示す。この場合には、後述するように、各入力データのうちD２、D５、D８、D１１を選択すれば、各直列データの１ビット区間の中心部分、すなわち、安定した部分からサンプリング値を取ることになる。
【００３１】
同様に、図３（b）を参照すれば、入力クロック信号CLKが直列データS_DINより位相が遅れる場合を示す。この際、図３（b）の入力ビットD１は“０”であり、入力ビットD２は“１”の値を有することになるので、排他的ORゲート２０２の出力prev[０]はハイレべルとなる。また、排他的ORゲート２０１、２０３の出力はローレベルとなる。同様に、入力ビットD４と入力ビットD５のレベルが相異なるので、レベルの変化時点で排他的ORゲート２０５の出力は再びハイレべルになる。このように、変化検出部２００の第２出力信号prevは全てハイレべルに、残りの第３出力信号mainと第１出力信号nextはローレベルになる。すなわち、３ビットずつ分割された４グループのデータのうち各々２番目のビットと３番目のビットとの間にレベル変化が存在するということを示す。
【００３２】
この際、変化検出信号出力部２８０のORゲート２３０はハイレべルの信号を出力する。また、第１出力信号nextと第３出力信号mainが共にローレベルなので、ORゲート２２０、２４０の出力信号はローレベルになる。したがって、ANDゲート２６０を通じて出力される第２変化信号PREVはハイレべルになり、ANDゲート２５０、２７０を通じて出力される第１、第３変化信号NEXT、MAINはローレベルに設定される。結果的に、第２変化信号PREVがハイレべルであり、他の変化信号NEXT、MAINがローレベルであれば、レベル変化が生じる時点が図３（b）と同一であることがわかる。この場合には、図３（b）の入力データのうちD０、D３、D６、D９を選択すれば、直列データの１ビット区間で安定したサンプリング値が取れる。
【００３３】
これと類似した方式として、図３（ｃ）に示された場合、すなわち、第３変化信号MAINが生じる場合の動作を説明する。すなわち、図３（ｃ）は入力クロック信号CLKの位相が入力データS_DINと同一の場合であると言っても良い。この際、排他的ORゲート２０３、２０６、２０９、２１２の出力信号main[０]〜main[３]によってORゲート２４０及びNANDゲート２７０の出力信号すなわち第３変化信号MAINがハイレべルに設定される。しかし、この方式は前記説明と同一なのでその具体的な説明は省略する。
【００３４】
すなわち、各ビット間のレベル変化時点が図３（ｃ）と同一の場合には、３ビットずつ４グループのデータのうち各々３番目のビットと次のグループの最初ビットとの間にレベル変化が存在する。結果的に、第３変化信号MAINはハイレべルになる。この場合に、入力データのうち各々D１、D４、D７、D１０を選択すれば、直列データの１ビット区間で中心部分のサンプリング値を取ることになる。
【００３５】
しかし、クロックスキューが激しい場合に、図２の変化信号NEXT、PREV、MAINが同時に発生する。このような場合には、各変化信号の反転された信号NEXTB、PREVB、MAINBにより各ANDゲート２５０、２６０、２７０の出力がローレベルになる。このように、クロックスキューが激しい場合には、レベル変化検出部１２０の出力は自動的にリセットされる。すなわち、レベル変化検出部１２０は安定したデータだけを出力するために誤動作を防止しうる。
【００３６】
図４は図１に示された装置の変化累積部１３０を説明するための詳細な回路図であって、変化累積部１３０は第１〜第３累積部４００、４２０、４４０及びリセット信号生成手段としてのORゲート４７０を含む。
【００３７】
図４を参照すれば、第１累積部４００はレベル変化検出部１２０から出力される第１変化信号NEXTを入力し、入力クロック信号CLKに応答して第１変化信号NEXTが印加される回数を累積して第１変化累積信号NEXTAを生成する。このような動作のために、第１累積部４００はフリップフロップ４０１〜４０５、ORゲート４０８〜４１０、ANDゲート４１２〜４１５で構成される。第１累積部４００のフリップフロップ４０１〜４０５はORゲート４７０を通じて出力される累積リセット信号R_ACCに応答してリセットされる。
【００３８】
具体的に、第１累積部４００の構成を説明すれば次の通りである。ORゲート４０７は第１変化信号NEXTとフリップフロップ４０１との出力信号Q１を論理和する。フリップフロップ４０１はORゲート４０７の出力信号をデータ入力D１とし、入力クロック信号CLKに応答して出力信号Q１を生成する。この際、ANDゲート４１２は第１変化信号NEXTとフリップフロップ４０１の出力信号Q１を論理積し、論理積された結果を出力する。ORゲート４０８はフリップフロップ４０２の出力信号Q２とANDゲート４１２の出力信号を論理和し、論理和された結果をフリップフロップ４０２のデータ入力D２に印加する。フリップフロップ４０２は入力クロック信号CLKに応答して入力データD２を出力信号Q２として生成する。
【００３９】
これと類似した方式として、ANDゲート４１３は第１変化信号NEXTとフリップフロップ４０２の出力信号Q２を論理積し、その結果をORゲート４０９の入力として印加する。したがって、フリップフロップ４０３はORゲート４０９の出力信号がデータ入力D３として印加され、入力クロック信号CLKに応答して出力信号Q３を生成する。すなわち、このような過程が反復されて第１変化信号NEXTが５回累積されると累積された信号を第１変化累積信号NEXTAとして出力する。
【００４０】
図４に示された第２累積部４２０と第３累積部４４０の構成も第１累積部４００の構成と類似している。すなわち、第２累積部４２０はフリップフロップ４２１〜４２５、ORゲート４２７〜４３０及びANDゲート４３２〜４３５で構成される。また、第３累積部４４０はフリップフロップ４４１〜４４５、ORゲート４４７〜４５０及びANDゲート４５２〜４５５で構成される。すなわち、第２累積部４２０と第３累積部４４０は入力信号が各々第２変化信号PREVと第３変化信号MAINであり、累積された出力信号が各々第２変化累積信号PREVAと第３変化累積信号MAINAであるという点で差がある。したがって、具体的な構成及び作用についての説明は省略する。
【００４１】
図４のORゲート４７０は第１〜第３累積部４００、４２０、４４０から出力される第１〜第３変化累積信号NEXTA、PREVA、MAINAを論理和し、論理和された結果を累積リセット信号R_ACCとして出力する。すなわち、累積リセット信号R_ACCは前記第１〜第３変化累積信号NEXTA、PREVA、MAINAのうち何れか１つの信号が生じた時に生成される。
【００４２】
図５は図４に示された変化累積部１３０の動作を説明するためのフローチャートであって、第１変化累積信号NEXTAを生成する過程(５００段階)、第２変化累積信号PREVAを生成する過程(５１０段階)及び第３変化累積信号MAINAを生成する過程(５２０段階)で構成される。
【００４３】
図４及び図５を参照して変化累積部１３０の動作について詳しく説明する。まず、第１変化累積信号NEXTAを生成する過程について説明すれば次の通りである。すなわち、第１累積部４００は入力クロック信号CLKに応答して入力される第１変化信号NEXTを累積する(５０２段階)。図４に示された第１累積部４００はハイレべルを有する第１変化信号NEXTが印加されると、フリップフロップ４０１のデータ入力D１がハイレべルになる。この際、入力クロック信号CLKに応答してフリップフロップ４０１はハイレべルの出力信号Q１を生成する。また、ANDゲート４１２は２番目の第１変化信号NEXTとフリップフロップ４０１の出力信号Q１を論理積してハイレべルの出力信号を生成する。この際、ORゲート４０８の出力によってフリップフロップ４０２のデータ入力D２がハイレべルになる。したがって、フリップフロップ４０２は入力クロック信号CLKに応答してハイレべルの出力信号Q２を生成する。このような過程を通じて、３番目〜５番目の出力信号NEXTが印加されれば、各フリップフロップ４０３〜４０５の出力信号Q３、Q４、Q５がハイレべルになる。したがって、図５を参照すれば、第１変化信号NEXTの発生回数がN回、例えば５回になったかを判断する(５０４段階)。ここで、第１変化信号NEXTの発生回数が５回になったかを決定するのはフリップフロップ４０５の出力がハイレべルになったかを判断することによってなされる。また、発生回数Nはオーバサンプリングビットの状態及び適用システムによって異なった数値に決定される。図５を参照すれば、第１変化信号NEXTの発生回数が５回になったなら、第１変化累積信号NEXTAを出力し(５０６段階)、リセット信号R_ACCを生成して変化累積部１３０をリセットさせる(５０８段階)。
【００４４】
第２変化累積信号PREVAが発生する場合の動作も前記第１変化累積信号NEXTAの発生過程と類似している。すなわち、第２変化信号PREVが生じる回数を判断して５回になれば(５１４段階)、第２変化累積信号PREVAを生成し(５１６段階)、変化累積部１３０をリセットさせる(５１８段階)。第３変化累積信号MAINAが生成される場合も同じ過程を経るために詳細な説明は省略する。
【００４５】
このように、第１〜第３累積部４００、４２０、４４０に入力される第１〜第３変化信号NEXT、PREV及びMAINのうち何れか１つの入力が先に５回の累積状態になれば、まず累積された信号を変化累積部１３０の変化累積信号として生成する。また、変化累積信号が生成されると、累積リセット信号R_ACCがハイレべルになるのでそれぞれの累積部４００、４２０、４４０はリセットされて新しい信号を受取る状態となる。
【００４６】
図６は、図１に示された装置の状態選択部１４０を説明するための詳細な回路図であって、第１状態信号生成部６００と第２状態信号生成部６５０とを含む。
【００４７】
図６を参照すれば、第１状態信号生成部６００は変化累積部１３０から出力される第１〜第３変化累積信号NEXTA/PREVA/MAINAを論理和し、論理和した結果を前記入力クロック信号CLKに応答して第１状態信号STATE０として出力する。このような機能のために、第１状態信号生成部６００はNORゲート６０２、６０４とフリップフロップ６０６とを含む。
【００４８】
すなわち、第１状態信号生成部６００のNORゲート６０２はフリップフロップ６０６の出力信号、すなわち、第１状態信号STATE０と、第２変化累積信号PREVAを反転論理和し、反転論理和された結果を出力する。NORゲート６０４はNORゲート６０２の出力と、第１変化累積信号NEXTA及び第３変化累積信号MAINAを反転論理和し、反転論理和された結果を出力する。フリップフロップ６０６はNORゲート６０４の出力信号をデータ入力として受取り、クロック信号CLKに応答して状態信号STATE０を生成する。
【００４９】
また、第２状態信号生成部６５０は第１〜第３変化累積信号NEXTA/PREVA/MAINAを論理和し、論理和した結果を前記入力クロック信号CLKに応答して第２状態信号STATE１として出力する。このような機能のために第２状態信号生成部６５０はNORゲート６５２、６５４とフリップフロップ６５６を含む。すなわち、NORゲート６５２はフリップフロップ６５６の出力信号、すなわち、第２状態信号STATE１と第１変化累積信号NEXTAとを反転論理和し、反転論理和された結果を出力する。図６において第１状態信号STATE０と第２状態信号STATE１は各々２ビットの組合わせで表される状態信号STATE[０:１]を示す。
【００５０】
図７は図６に示された状態選択部１４０の動作を説明するための図面である。図６及び図７を参照して状態選択部１４０の動作について詳しく説明する。まず、変化累積部１３０で第３変化累積信号MAINAが生じる場合に、第１状態信号生成部６００のNORゲート６０４と第２状態信号生成部６５０のNORゲート６５４の出力はローレベルになる。したがって、フリップフロップ６０６、６５６はクロック信号CLKに応答して各々ローレベルの第１状態信号STATE０と第２状態信号STATE１とを出力する。図７を参照すれば、第３変化累積信号MAINAが出力される場合に、状態信号STATE[０:１]は“００”に設定される。また、他の変化累積信号が生じないか、第３変化累積信号MAINAが連続して生じると、状態信号STATEは“００”を保ち続ける。また、変化累積部１３０の出力信号が第３変化累積信号MAINAから第２変化累積信号PREVAまたは第１変化累積信号NEXTAに変化すると、それにより状態信号STATEも“００”から他の値に変化する。
【００５１】
もし、変化累積部１３０の出力信号が第１変化累積信号NEXTAになると、第１状態信号生成部６００のNORゲート６０４の出力はローレベルになり、フリップフロップ６０６を通じて出力される第１状態信号STATE０はローレベルになる。この際、第２状態信号生成部６５０のNORゲート６５２の出力はローレベルになり、NORゲート６５４の出力はハイレべルになる。したがって、フリップフロップ６５６を通じて出力される第２状態信号STATE１はハイレべル、すなわち、“１”の値を有する。結果的に、第１変化累積信号NEXTAが生じる場合に、２ビットで表される状態信号STATEは“０１”になる。同様に、他の変化累積信号が印加されず、連続して第１変化累積信号NEXTAが印加されると、状態信号STATEは“０１”に保ち続けられる。
【００５２】
また、変化累積部１３０の出力信号が第２変化累積信号PREVAであれば、第１状態信号生成部６００から出力される第１状態信号STATE０はハイレべルとなり、第２状態信号生成部６５０から出力される第２状態信号STATE１はローレベルとなる。したがって、２ビットの状態信号STATEは“１０”の値を有する。図７は前述した過程で生成される各変化累積信号により発生する状態信号STATE[０:１]のビット値と、各状態への変化を具体的に示す。すなわち、現在の状態を基準として、生じる変化累積信号により次の状態への転移がなされる。
【００５３】
図８は図１に示されたデータ選択部１５０を示す詳細な回路図であって、第１〜第４選択部８００、８１０、８２０、８３０で構成される。
【００５４】
図８を参照すれば、第１〜第４選択部８００〜８３０は変化累積信号NEXTA、PREVA、MAINAにより決定された状態信号STATEに相応して、３倍オーバサンプラ１１０から出力されるオーバサンプリングデータのうち該当位置のビットデータを選択する。
【００５５】
図８の詳細例において第１〜第４選択部８００〜８３０は各々１つのマルチプレクサ８０５、８１５、８２５、８３５で構成される。ここで、マルチプレクサ８０５、８１５、８２５、８３５の数は並列データに変換しようとするビット数と一致する。本発明では並列出力されるビット数が４である場合を示す。マルチプレクサ８０５は３倍オーバサンプラ１１０から出力される１２ビットデータのうち連続した３ビットD０、D１、D２を入力とし、状態信号STATEに応答して１ビットを選択する。ここで、マルチプレクサ８０５の出力信号は４ビットの並列データのうち下位ビットデータP_DOUT０となる。マルチプレクサ８１５は次の３ビットD３、D４、D５を入力し、状態信号STATEに応答して３ビットのうち１ビットを選択する。この際、マルチプレクサ８１５から選択された信号は４ビット並列データのうち２番目のビットP_DOUT１となる。また、マルチプレクサ８２５は次の３ビットD６、D７、D８のデータを入力し、状態信号STATEに応答して３ビットのうち何れか１ビットを選択する。この際、マルチプレクサ８２５から選択された信号は４ビット並列データのうち３番目のビットP_DOUT２となる。マルチプレクサ８３５は最後の３ビットD９、D１０、D１１を入力し、状態信号STATEに応答して３ビットのうち何れか１ビットを選択する。マルチプレクサ８３０の出力信号は４ビット並列データのうち４番目、すなわち、最上位ビットP_DOUT３となる。
【００５６】
図８を参照すれば、それぞれのマルチプレクサ８０５、８１５、８２５、８３５は状態信号STATEの２ビットの値が００であれば、２番目のビットデータを選択して出力する。また、状態信号STATEの２ビットの値が１０であれば各々最初のビットデータを選択する。同様に、状態信号STATEの２ビットの値が０１であれば各々３番目のビットデータを選択して出力する。
【００５７】
図９は図８に示されたデータ選択部１５０の動作を説明するための図面である。すなわち、図９は各状態信号STATE[０:１]のビット値に相応する出力データを分類して図示する。例えば、状態信号STATEが００である場合に、各ビット間のレベル変化が生じる時点は図３（ｃ）の“MAIN”であると設定する。したがって、各マルチプレクサ８０５、８１５、８２５、８３５を通じて出力されるデータはD１、D４、D７、D１０となる。また、状態信号STATEが１０である場合に、各ビット間のレベル変化が生じる時点は図３（b）の“PREV”であると設定する。したがって、前記マルチプレクサ８０５〜８３５を通じて出力されるデータはD０、D３、D６、D９となる。また、状態信号STATEが０１である場合、各ビット間のレベル変化が生じる時点は図３（a）の“NEXT”であると設定する。したがって、マルチプレクサ８０５〜８３５を通じて出力されるデータは各々D２、D５、D８、D１１となることがわかる。
【００５８】
図１０は本発明の実施形態に係るクロックスキューによるエラーを最小化するデータ復元方法を説明するためのフローチャートである。
【００５９】
以下、図１乃至図１０を参照して、本発明に係るデータ復元方法について具体的に説明する。まず、３倍オーバサンプラ１１０は入力されるKビット、例えば４ビット単位の直列データを１２個の位相クロック信号PH_CLKにより３倍オーバサンプリングする(第９００段階)。レベル変化検出部１２０は３倍オーバサンプリングされたNビット、例えば、１２ビット信号間のレベル変化を検出してレベル変化時点に他の第１〜第３変化信号NEXT、PREV、MAINを出力する(第９１０段階)。この際、変化累積部１３０はレベル変化検出部１２０から出力される第１〜第３変化信号NEXT、PREV、MAINの発生回数が所定数になるまで累積する(第９２０段階)。また、第９２０段階で第１〜第３変化信号NEXT、PREV、MAINの発生回数を累積した結果によって発生頻度の最も多い信号を検出し、それに相応してオーバサンプリングビットデータのうち該当ビットデータを選択する(第９３０段階)。ここで、発生頻度の多い信号を検出することは第１〜第３変化信号NEXT、PREV、MAINの発生回数が所定数になって第１〜第３変化累積信号NEXTA、PREVA、MAINAのうち何れか１つが生じたかを検出することによってなされる。
【００６０】
第９３０段階において、まず第１変化信号NEXTの発生頻度が多いかが判断される(第９４０段階)。第９４０段階で第１変化信号NEXTの発生頻度が多いと判断されれば、データ選択部１５０は累積された第１変化信号NEXTに相応する３ヵ所のサンプリング位置のうち１つずつ全体で４つのデータD２、D５、D８、D１１を選択する(第９４５段階)。ここで、データの選択は、前記第１変化累積信号NEXTAにより生じる状態信号STATEのビット値によって決定される。図１に示された実施形態のように、直列データが４ビット単位に印加され、３倍オーバサンプリングが行われる場合に、データ選択部１５０から出力される４つのデータは３P+２(ここで、Pは０以上の整数)番目のビットデータであると表示できる。
【００６１】
一方、第９４０段階で第１変化信号NEXTの発生頻度が高くなければ、第２変化信号PREVの発生頻度の高低が判断される(第９５０段階)。もし、第２変化信号PREVの発生頻度が高いと判断されれば、データ選択部１５０は累積された第２変化信号PREVに相応する３ヵ所のサンプリング位置のうち１つずつ全体で４つのデータD０、D３、D６、D９を選択する(第９５５段階)。すなわち、データ選択部１５０において出力データは３P番目のデータであるものと表示できる。
【００６２】
また、第９５０段階で第２変化信号PREVの発生頻度が高くなければ、第３変化信号MAINの発生頻度の高低が判断される(第９６０段階)。もし、第３変化信号MAINの発生頻度が高いと判断されれば、データ選択部１５０は累積された第３変化信号MAINに相応して３ヵ所のサンプリング位置のうち１つずつ全体で４つのデータD１、D４、D７、D１０を選択する(第９６５段階)。ここで、出力されるデータは３P+１番目のビットデータであると表示できる。第９６５段階後に、データ選択部１５０はそれぞれのマルチプレクサを通じて１ビットずつ出力される４つのデータを並列に出力する(第９７０段階)。
【００６３】
このように、本発明ではクロックスキューの条件によって現在入力されるデータのレベル変化時点を検出し、検出された結果によって出力されるビットデータを選択する。したがって、クロックスキューが生じても本発明によるデータ復元装置は３倍サンプリングされたビットの中から安定した状態のビットデータを出力することになる。
【００６４】
なお、上記のような本発明のデータ復元方法を実現するプログラムは、図示しないプログラム貯蔵装置に格納される。
【００６５】
【発明の効果】
以上のように本発明によれば、入力される直列データに対してクロックスキューによるレベル変化の発生頻度を検出して出力データを決定するので、安定した状態のビットデータを選択しうる。したがって、本発明ではデータの復元時に発生するクロックスキューによるエラーを最小化しうる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るクロックスキューを最小化するためのデータ復元装置を示す概略的なブロック図である。
【図２】図１に示された装置のレベル変化検出部を示す詳細回路図である。
【図３】（ａ）乃至（ｃ）は図２に示されたレベル変化検出部の動作を説明するための図である。
【図４】図１に示された装置の変化累積部を示す詳細回路図である。
【図５】図４に示された変化累積部の動作を説明するためのフローチャートである。
【図６】図１に示された装置の状態選択部を説明するための詳細回路図である。
【図７】図６に示された状態選択部の動作を説明するための図である。
【図８】図１に示された装置のデータ選択部を説明するための詳細回路図である。
【図９】図８に示されたデータ選択部の動作を説明するための図である。
【図１０】図１に示された装置で行われるデータ復元方法を説明するためのフローチャートである。
【符号の説明】
１００    位相同期ループ
１１０    ３倍オーバサンプラ
１２０    レベル変化検出部
１３０    変化累積部
１４０    状態選択部
１５０    データ選択部
【図１】
0004317336.tif 000002
【図２】
0004317336.tif 000003
【図３】
0004317336.tif 000004
【図４】
0004317336.tif 000005
【図５】
0004317336.tif 000006
【図６】
0004317336.tif 000007
【図７】
0004317336.tif 000008
【図８】
0004317336.tif 000009
【図９】
0004317336.tif 000010
【図１０】
0004317336.tif 000011