説明

受信回路及びエラー検出方法

【課題】設計時のタイミング調整を容易とする受信回路及びエラー検出方法を提供すること
【解決手段】本発明にかかる受信回路は、位相の異なる複数のクロックを用いて、矩形波としてデータが遷移する受信シリアルデータビット列をサンプリングして、前記サンプリングされた受信シリアルデータビットを用いて受信データビット列を生成するDL回路部1と、前記サンプリングされた前記受信シリアルデータビットのうち、所定期間内に位相の異なるクロックを用いてサンプリングされた前記受信シリアルデータビットの値が一致するか否かを比較した結果に基づいて前記受信データビット列のエラー区間を検出するPD回路部2と、を備えるものである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は位相の異なるクロックを用いて受信データをサンプリングする受信回路及びエラー検出方法に関する。
【背景技術】
【0002】
現在、装置間又は回路間等の高速データ転送においては、高データレートを容易に実現することができるシリアル転送が主に用いられている。高速シリアル転送には、クロックをデータ中に埋め込んだエンベデッドクロック方式が用いられている。受信側装置又は回路(以下、受信側装置等と称する)は、CDR(Clock Data Recovery)により、シリアルデータからエンベデッドクロックを検出する。受信側装置等は、受信データと受信データをサンプリングするクロックの位相を同期し、データを受け取ることができる。しかし、シリアルデータや、受信側PLLにジッタが加わると、同期が外れ、誤ったデータを受け取ってしまう場合がある。
【0003】
特許文献1には、受信データを早期に検出することを目的としたデータ受信装置の構成が開示されている。具体的には、データ受信装置は、シリアル通信受信動作部において、CDR回路が生成するサンプリングクロックがデータを取り込むのに必要なタイミングで生成されているかを調べる機能が具備している。これにより、受け取ったデータにエラーが発生するか否かをリアルタイムに検出することができる。
【0004】
図9を用いて、特許文献1に開示されているデータ受信装置の構成について説明する。CDR回路101はシリアルデータ(SD)に対して、そのデータを正しくサンプリングするためのサンプリング・クロック(SCLK)を生成している回路である。すなわち、CDR回路101は、シリアルデータ通信において、データの受信部に、データを正しく受信するために、シリアルデータに同期した一定周期のサンプリング用クロックを生成する機能を有する。シリアルデータ通信において、送信側からデータと取りこみ用クロック(CLK)とを送信するのではなく、データのみを送信する伝送系があり、その系においては受信側でそのデータを取りこむ。そのため、CDR回路101が必要となる。このCDR回路101は、例えば、PLL(phase locked loop)回路を用いて構成される。PLL回路において、シリアルデータの位相に対してVCO(電圧制御発振器)の発振クロックの位相が一致するようにVCO制御し、PLLは、VCOの発振クロックを再生クロックとして導出する。
【0005】
また、データの高速伝送に対応するようにオーバーサンプリング型クロックリカバリ回路も提案されている。オーバーサンプリング型クロックリカバリ回路は、上記CDR回路101からのサンプリング・クロック(SCLK)のエラーのうち、サンプリングクロックがデータを正確に取り込むタイミングを満たしているか、データに対して正しい数のサンプリングクロックを出力しているかを調べてエラーを検出する。
【0006】
114は、サンプリングクロックエラー検出回路であり、102は、データに対して正しいタイミング(セットアップタイムとホールドタイムを満たしている)でクロックを出力しているかをチェックするサンプルCKエラー検出回路である。そのサンプルCKエラー検出回路102には、シリアルデータ(SD)、CDR回路101から導出されるサンプリング・クロック(SCLK)が入力されて、エラー信号であるSCLKERRが出力される。
【0007】
103はデータデューティ(DUTY)調整部、112はデータハイ(HIGH)期間エラー検出回路、113はデータロー(LOW)期間エラー検出回路であり、データに対して正しい数のサンプリングクロックを出力しているかを調べるブロックである。データDUTY調整部103は、シリアルデータのデューティ(DUTY)を調節してSD H(SDのHIGH期間を少し長くした信号)とSDL(SDのLOW期間を少し長くした信号)を出力し、SDHをデータHIGH期間エラー検出回路112に、SDLをデータLOW期間エラー検出回路113へ与える。
【0008】
データHIGH期間エラー検出回路112は、データのHIGH期間のクロックエラーを調べ、データLOW期間エラー検出回路113はデータLOW期間のクロックエラーを調べるブロックである。データHIGH期間エラー検出回路112は、HIGHカウンター制御回路104、HIGHサンプル数カウント回路105、HIGHデータ長カウント回路106、HIGHサンプル数エラー検出回路107で構成されており、データLOW期間エラー検出回路113は、LOWカウンター制御回路108、LOWサンプル数カウント回路109、HIGHデータカウント回路110、LOWサンプル数エラー検出回路111で構成されている。
【0009】
HIGHカウンター制御回路104は、データDUTY調整部103から出力されるSDHと、シリアル通信の通信レートである周波数のシステムクロックSYSCLKが入力されており、HIGHデータ長カウント回路106にDHCNTCKが出力される。HIGHデータ長カウント回路106はHIGHカウンター制御回路104から与えられるDHCNTクロックでカウント動作を行うカウンターであり、カウント結果HDCNTはHIGHサンプル数エラー検出回路107に出力される。
【0010】
HIGHサンプル数カウント回路105は、シリアルデータSDとサンプリングクロックSCLKが入力され、CDR回路101で生成したサンプリングクロックSCLKの数を数えるカウンターとなっている。カウントした結果HSCNTはHIGHサンプル数エラー検出回路107に出力される。HIGHサンプル数エラー検出回路107には、HIGHサンプル数カウント回路105とHIGHデータ長カウント回路106のそれぞれの出力であるHSCNTとHDCNT信号が入力され、それを比較した結果が異なればHSERR信号を出力する機能を持っている。
【0011】
また、データLOW期間エラー検出回路113は、データHIGH期間エラー検出回路112と同様に構成されており、LOWカウンター制御回路108、LOWサンプル数カウント回路109、LOWデータ長カウント回路110、LOWサンプル数エラー検出回路111で構成されている。LOWカウンター制御回路108は、データDUTY調整部103から出力されるSDLと、シリアル通信の通信レートである周波数のシステムクロックSYSCLKが入力されており、LOWデータ長カウント回路110にDLCNTCKが出力される。LOWデータ長カウント回路110はLOWカウンター制御回路108から与えられるDLCNTクロックでカウント動作を行うカウンターであり、カウント結果LDCNTはLOWサンプル数エラー検出回路111に出力される。
【0012】
LOWサンプル数カウント回路109は、シリアルデータSDとサンプリングクロックSCLKが入力され、CDR回路101で生成したサンプリングクロックSCLKの数を数えるカウンターとなっている。カウントした結果LSCNTは、LOWサンプル数エラー検出回路111に出力される。LOWサンプル数エラー検出回路111には、LOWサンプル数カウント回路105とLOWデータ長カウント回路106のそれぞれの出力であるLSCNTとLDCNT信号が入力され、それを比較した結果が異なればLSERR信号を出力する機能を持っている。
【0013】
また、特許文献2には、真のシンボル値を示す点を示すナイキスト点のデータバッファの中央位置からのずれを検出し、補正することにより、確実なシンボル検出を可能とするシンボル検出装置が開示されている。
【0014】
また、特許文献3には、入力データのデューティが100%から大きくずれている場合であっても、正常な識別動作が行われるようにしたクロックデータ再生方法が開示されている。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開2004−242243号公報
【特許文献2】特開2007−036976号公報
【特許文献3】特開2008−227786号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
しかし、特許文献1に開示されているデータ受信装置は、設計時のタイミング設計が困難であるという問題がある。具体的には、特許文献1に開示されているデータ受信装置は、検出回路を設けることにより、早期にエラー検出を行うものである。しかし、データサンプリング回路とは別に、検出回路を設けているため、仮に、データサンプリング回路と検出回路がそれぞれデータをサンプリングするタイミングがずれてしまうと、データサンプリング回路は正しくデータをサンプリングできているにも関わらず、検出回路がエラーを検出する恐れがある。また、データサンプリング回路は誤ったデータをサンプリングしているにも関わらず、検出回路がエラーを検出しなかったりする恐れもある。このため、データサンプリング回路と検出回路が同じタイミングでデータをサンプリングするように、設計時にタイミング調整が必要である。しかし、データサンプリング回路と検出回路は高速で動作する回路であるため、設計時のタイミング調整が困難となる。また、特許文献2及び3にも、上述した問題を解決する方法等については開示されていない。
【課題を解決するための手段】
【0017】
本発明の第1の態様にかかる受信回路は、複数のクロックを用いて受信データをサンプリングし、サンプリングされた複数の受信データビット列について、所定期間内にそのデータビットの値が一致するか否かを比較し、受信データのエラーを検出する。
【0018】
このような受信回路を設けることにより、複数のクロック毎にサンプリングデータを生成することができる。そのため、それぞれのサンプリングデータの値を比較することにより、複数のサンプリングデータを用いて生成された受信データビット列のエラー区間を検出することができる。
【0019】
本発明の第2の態様にかかるエラー検出方法は、複数のクロックを用いて、受信データをサンプリングし、サンプリングされた複数の受信データビット列について、所定期間内にそのデータビットの値が一致するか否かを比較し、受信データのエラーを検出する。
【0020】
このようなエラー検出方法を用いることにより、複数のクロック毎にサンプリングデータを生成することができる。そのため、それぞれのサンプリングデータの値を比較することにより、複数のサンプリングデータを用いて生成された受信データビット列のエラー区間を検出することができる。
【発明の効果】
【0021】
本発明により、設計時のタイミング調整を容易とする受信回路及びエラー検出方法を提供することができる。
【図面の簡単な説明】
【0022】
【図1】実施の形態1にかかるCDR回路の構成図である。
【図2】実施の形態1にかかる多相クロックを用いてサンプリングする場合のタイミングチャートである。
【図3】実施の形態1にかかる多相クロックを用いてサンプリングする場合のタイミングチャートである。
【図4】実施の形態1にかかる訂正回路の構成図である。
【図5】実施の形態1にかかるビット反転回路部における反転動作のタイミングチャートである。
【図6】実施の形態1にかかるビット反転回路部の構成図である。
【図7】実施の形態2にかかる訂正回路の構成図である。
【図8】実施の形態3にかかる訂正回路の構成図である。
【図9】特許文献1にかかるデータ受信装置の構成図である。
【発明を実施するための形態】
【0023】
(実施の形態1)
以下、図面を参照して本発明の実施の形態について説明する。図1を用いて本発明の実施の形態1にかかるCDR回路部7の構成例と、CDR回路部7と、PLL回路部5及び受信シリアルデータビット入力ポート19との接続例とについて説明する。なお、CDR回路部7、PLL回路部5及び受信シリアルデータビット入力ポート19は、シリアルデータを受信する受信回路に含まれる。
【0024】
CDR回路部7は、DL(ダイレクトラッチ)回路部1と、PD(フェーズディテクタ)回路部2と、CDRコントローラ回路部3と、PI(フェーズインタポレタ)回路部4とを備えている。
【0025】
DL回路部1は、受信シリアル入力ポート19から入力された受信シリアルデータビット列を、位相が調整された多相クロック(以下、多相クロック(位相調整後)と称する)を用いてサンプリングし、サンプリングデータ、および受信データビット列を生成する。さらに、DL回路部1は、多相クロックを用いて、サンプリングクロックを生成する。受信シリアルデータビット列は、矩形波としてデータが遷移するビット列である。つまり、受信シリアルデータビット列は、「1010」のようにデータが交互に変化するビット列であり、「1110」のように、連続した同一のデータを有さないビット列である。
【0026】
多相クロックは、位相の異なる複数のクロックから構成される。例えば、多相クロックは、基準クロック(CLK0)と、CLK0と90度位相が異なるCLK90と、CLK0と180度位相が異なるCLK180と、CLK0と270度位相が異なるCLK270とから構成される。CLK0を用いてサンプリングされたデータをCLK0サンプリングデータとし、CLK90を用いてサンプリングされたデータをCLK90サンプリングデータとし、CLK180を用いてサンプリングされたデータをCLK180サンプリングデータとし、CLK270を用いてサンプリングされたデータをCLK270とする。
【0027】
受信データビット列は、上述したサンプリングデータのうち、いくつかのサンプリングデータを組み合わせて生成される。たとえば、受信データビット列は、CLK0サンプリングデータと、CLK180サンプリングデータを組み合わせて生成されてもよい。
【0028】
サンプリングクロックは、受信データビット列を生成するために用いられたクロックから構成される。例えば、サンプリングクロックは、CLK0とCLK180とから構成される。
【0029】
DL回路部1は、生成した受信データビット列及びサンプリングクロックをビット反転回路部6へ出力し、サンプリングデータをPD回路部2へ出力する。
【0030】
PD回路部2は、DL回路部1から出力されたサンプリングデータの位相差を検出し、CDRコントローラ回路部3へ位相差検出信号を出力する。さらに、位相の異なるクロックを用いて生成されたサンプルデータの値を比較して、受信データビット列におけるエラー区間を検出する。検出されたエラー区間は、CDRエラー信号としてリタイミング回路部12へ出力される。リタイミング回路部12及びエラー区間の検出については、後に詳細に説明する。
【0031】
CDRコントローラ回路部3は、PD回路部2から出力された位相差検出信号に基づいて、多相クロック(オリジナル)の位相を調整するために、PI回路部4へPI制御信号を出力する。PI回路部4は、CDRコントローラ回路部3からのPI制御信号に基づき、多相クロック(オリジナル)の位相を調整した多相クロック(位相調整後)を生成する。多相クロック(オリジナル)は、PLL回路部5から出力される多相クロックである。PLL回路部5は、VCO(電圧制御発振器)により構成され、位相の異なる複数のクロックをPI回路部4へ出力する。
【0032】
続いて、図2を用いて、受信シリアルデータビット1ビット当たり、2つのサンプリングクロックの立ち上がりタイミングにおいてサンプリングする場合のタイミングチャートを説明する。図2においては、CLK0とCLK180との立ち上がりタイミングにサンプリングしたデータを受信データビットとして用いる例が示されている。CLK0サンプリングデータは、CLK0の立ち上がりタイミングにおいてデータA1及びデータA3をサンプリングする。また、CLK180サンプリングデータは、CLK180の立ち上がりタイミングにおいてデータA2及びA4をサンプリングする。受信データビット列は、CLK0サンプリングデータと、CLK180サンプリングデータとが組み合わされ、データA1〜A4が含まれている。
【0033】
ここで、PD回路部2及びCDRコントローラ回路部3における位相差検出処理について説明する。図2の例においては、CLK0サンプリングデータは、データA1及びA3を含み、CLK90サンプリングデータは、データA2及びA4を含んでいる。このように、CLK0とCLK90とを用いてサンプリングしたデータはそれぞれ異なる。PD回路部2は、CLK0サンプリングデータとCLK90サンプリングデータとが異なることを示す位相差検出信号をCDRコントローラ回路部3へ出力する。
【0034】
CDRコントローラ回路部3は、CLK0サンプリングデータとCLK90サンプリングデータとが異なることを示す位相差検出信号を受け取った場合、CLK0、90、180及び270の位相を時間軸と反対方向へシフトさせるように、PI制御信号をPI回路部4へ出力する。また、CDRコントローラ回路部3は、CLK90サンプリングデータとCLK180サンプリングデータとが異なることを示す位相差検出信号を受け取った場合、CLK0、90、180及び270の位相を時間軸方向へシフトさせるように、PI制御信号をPI回路部4へ出力する。これにより、受信シリアルデータをサンプリングするCLK0とCLK180とは、データの中心をサンプリングする状態となり、安定して受信シリアルデータビットをサンプリングすることができる。
【0035】
続いて、図3のタイミングチャートを用いて、エラー検出処理について説明する。図3は、図2と同様に、CLK0とCLK180との立ち上がりタイミングにサンプリングしたデータを受信データビットとして用いる例が示されている。図3に示されているように、CLK0サンプリングデータは、データA1及びデータA3をサンプリングし、CLK180サンプリングデータは、データA3及びデータA4をサンプリングしている。そのため、これらのサンプリングデータを用いて、受信データビット列を生成する場合、データA2がサンプリングされず、誤った受信データビット列が生成される。
【0036】
CLK0がt40のタイミングにおいてサンプリングした受信シリアルデータビットと、CLK90がt41のタイミングにおいてサンプリングした受信シリアルデータビットの値が異なり、かつ、CLK90がt41のタイミングにおいて受信した受信シリアルデータビットと、CLK180がt42のタイミングでサンプリングした受信シリアルデータビットの値とが異なる場合、PD回路部2は、受信データビット列におけるデータA1及びA3の連続した2サイクル期間においてエラーが発生したと判定する。そのため、PD回路部2は、受信データビット列におけるデータA1及びA3の連続した2サイクル期間に対し、CDRエラー信号をアクティブ(High)に設定し、出力する。CDRエラー信号によって、受信データビットの2ビットのうち、どちらかの受信データビットが誤っていることは特定されるが、どちらの受信データビットが誤っているかは特定されない。
【0037】
タイミングt40は、CLK0の立ち上がりタイミングであり、タイミングt42は、CLK0の立ち下がりタイミング及びCLK180の立ち上がりタイミングである。タイミングt41は、タイミングt40とt42との間であって、CLK90の立ち上がりタイミングである。つまり、CLK0の立ち上がりタイミングから、次の立ち上がりタイミングまでを1クロックとすると、t40とt42とは0.5クロックの期間を有する。
【0038】
続いて、図4を用いて本発明の実施の形態1にかかる訂正回路の構成例について説明する。訂正回路50は、シリアルデータを受信する受信回路に含まれる。訂正回路50は、ビット反転回路部6と、10b8b変換回路部8と、CRC回路部9と、10b8b変換回路部10と、CRC回路部11と、リタイミング回路部12と、データバッファ13と、代替データバッファ14と、CDRエラーバッファ15と、AND回路16と、AND回路17と、セレクタ18と、CRCエラー出力21と、データ出力22とを備えている。
【0039】
ビット反転回路部6は、CDRエラー信号がインアクティブ(Low)の時は、受信データビットをそのまま前半ビット反転データと後半ビット反転データとして10b8b変換回路部8及び10へ出力する。ビット反転回路部6は、前半ビット反転データを10b8b変換回路部8へ出力し、後半ビット反転データを10b8b変換回路部10へ出力する。ビット反転回路部6は、PD回路部2からCDRエラー信号を受け取る。
【0040】
ビット反転回路部6は、CDRエラー信号がアクティブ(High)、かつサンプリングクロックがHighの場合、該当する受信データビットを反転したデータを前半ビット反転データとして10b8b変換回路部8へ出力する。また、ビット反転回路部6は、CDRエラー信号がアクティブ(High)、かつサンプリングクロックがHighの場合、該当する受信データビットをそのまま後半ビット反転データとして10b8b変換回路部10へ出力する。
【0041】
ビット反転回路部6は、CDRエラー信号がアクティブ(High)、かつサンプリングクロックがLowの場合、該当する受信データビットを反転したデータを後半ビット反転データとして10b8b変換回路部8及び10へ出力する。また、ビット反転回路部6は、CDRエラー信号がアクティブ(High)、かつサンプリングクロックがLowの場合、該当する受信データビットをそのまま前半ビット反転データとして10b8b変換回路部8へ出力する。
【0042】
ここで、図5を用いてビット反転回路部6における反転動作のタイミングチャートについて説明する。ビット反転回路部6は、CDRエラー信号がインアクティブに設定されているt20からt22までの期間及びt24からt25までの期間においては、受信データビットをそのまま前半ビット反転データと後半ビット反転データとして出力する。ビット反転回路部6は、CDRエラー信号がアクティブに設定されかつサンプリングクロックがHighに設定されているt22からt23までの期間においては、受信データビットを反転して、前半ビット反転データを出力する。ビット反転回路部6は、CDRエラー信号がアクティブに設定されかつサンプリングクロックがLowに設定されているt23からt24までの期間においては、受信データビットを反転して後半ビット反転データを出力する。
【0043】
次に、図6を用いてビット反転回路部6の回路構成例について説明する。ビット反転回路部6は、XOR回路40及び41と、セレクタ42及び43とを備えている。DL回路部1から出力される受信データビットは、XOR回路40及び41と、セレクタ42及び43へ入力される。また、PD回路部2から出力されるCDRエラーは、XOR回路40及び41へ入力される。XOR回路40及びXOR回路41は、受信データビット及びCDRエラーの値に基づいて、XOR演算を実施し、演算結果をセレクタ42及び43へ出力する。また、セレクタ42及び43は、受信データビット及びDL回路部1からサンプリングクロックを受け取る。
【0044】
セレクタ42は、Lowに設定されたサンプリングクロックを受け取った場合、XOR回路40から出力された演算結果を後半ビット反転データ出力ポートへ出力し、Highに設定されたサンプリングクロックを受け取った場合、受け取った受信データビットを後半ビット反転データ出力ポートへ出力する。セレクタ43は、Lowに設定されたサンプリングクロックを受け取った場合、受け取った受信データビットを前半ビット反転データ出力ポートへ出力し、Highに設定されたサンプリングクロックを受け取った場合、XOR回路41から出力された演算結果を前半ビット反転データ出力ポートへ出力する。
【0045】
このようにして、ビット反転回路部6は、CDRエラー信号がHighに該当する受信データビットの2ビットのうち、一方を反転させたデータを前半ビット反転データ及び後半ビット反転データとして出力する。
【0046】
図4に戻り、10b8b変換回路部8、10は、エンベデッドクロックが埋め込まれた10ビット受信データビットから、元の8ビットデータを復元する回路である。10b8b変換回路部8及び10の回路構成は同一である。10b8b変換回路部8、10には、ビット反転回路部6により補正された前半ビット反転データ又は後半ビット反転データがそれぞれ入力される。
【0047】
データバッファ13は、10b8b変換回路部10により復元された8ビットデータを格納するバッファである。データバッファ13は、512〜2048バイト毎にCRCを確認した後にデータ出力22からデータを出力できるよう、十分な深さ、つまり十分な容量を有している。
【0048】
リタイミング回路部12は、CDRエラーを有する10b8b変換後の8ビットデータがデータバッファ13及び代替データバッファ14に格納されるタイミングでアクティブとなるCDRエラーフラグ信号を生成する。
【0049】
代替データバッファ14は、CDRエラーフラグ信号がアクティブの時に、10b8b変換回路8により復元された8ビットデータを格納し、CDRエラーフラグ信号がインアクティブの時は、代替データバッファ14に格納されている値を維持するバッファである。代替データバッファ14は、8ビットデータ1つを格納することができる。
【0050】
CRC回路部9及び11は、10b8b変換回路部8及び10から出力される出力データを512〜2048バイト毎に、CRCチェックをする。CRC回路部9及び11は、CRCエラーを検出した場合、CRCエラー信号を生成する。CRC回路部9及び11の回路構成は同一である。CRCエラー信号は、Highレベルに設定された信号である。
【0051】
CDRエラーバッファ15は、CDRエラーフラグを格納するバッファである。CDRエラーバッファ15は、CDRエラーに該当するデータバッファのラインに対しエラーフラグを記録する。
【0052】
AND回路16は、CDRエラーバッファ15からエラーフラグが出力されかつCRC回路部11からCRCエラー信号が出力された場合、Highに設定された信号を出力する。これ以外の場合、AND回路16は、Lowに設定された信号を出力する。
【0053】
AND回路17は、CRC回路部11及び9のどちらか片方の結果がエラーでなければ(Low)、CRCエラー出力ポート21からエラー無し(Low)として通知する。AND回路17は、両方の結果がエラー(High)であったならば、CRCエラー出力ポート21からエラーあり(High)を出力する。
【0054】
セレクタ18は、AND回路16から出力される信号がHighレベルに設定されている場合、代替データバッファ14のデータを選択し、代替データバッファ14のデータが、データ出力ポート22から出力される。セレクタ18は、AND回路16から出力される信号がLowレベルに設定されている場合、データバッファ13のデータを選択し、データバッファ13のデータが、データ出力ポート22から出力される。
【0055】
データバッファ13内のデータは、512〜2048バイト毎に送信されるCRCをチェックした後に、順次、データ出力22から上位層へ出力される。この時、CRC回路部11の出力がCRCエラーを示しており、かつCDRエラーバッファ15の出力がエラーフラグを示していたならば、後半ビット反転データのデータ訂正が間違えていた、すなわちDL回路部1が取りそこなったのは、前半サイクルであり、前半ビット反転データの方が正しいことになる。よってこの時は、セレクタ18は、データバッファ13のデータの代わりに、代替データバッファ14のデータを選択し、データ出力22から出力する。
【0056】
また、CRC回路部11の出力がCRCエラーを示しておらず、かつCDRエラーバッファ15がエラーフラグを示していたならば、後半ビット反転データのデータ訂正は正しい、すなわち、DL回路部1が取り損なったのは、後半サイクルであり、後半ビット反転データの方が正しいことになる。よってこの時は、セレクタ18は、データバッファ13のデータを選択し、データ出力22から出力する。
【0057】
また、CDRエラーバッファ15がエラーフラグを示していない場合、DL回路部1が取り損なったデータはない。そのため、セレクタ18は、データバッファ13のデータを選択し、データ出力22から出力する。
【0058】
訂正回路50は、データと共にCRCエラー信号も上位層へ出力する。2つのCRCエラー信号のいずれか片方でもエラー無しであればエラー無し(Low)を、また、2つのCRCエラー信号がともにエラーの場合、エラーあり(High)を出力する。
【0059】
以上説明したように、本発明の実施の形態1にかかる受信回路を用いることにより、DL回路部1が受信シリアルデータビットのサンプリングに失敗したことを、専用のエラー検出回路を設けることなく、通常の位相調整に用いられるサンプリングデータに基づいて検出することができる。そのため、専用のエラー検出回路とサンプリングデータ結果の不一致を懸念する必要がないため、容易に受信回路におけるタイミング設計を行うことができる。
【0060】
また、訂正回路50を用いることにより、送信側へ誤りが検出されたデータの再送信を要求することなくデータを訂正することができる。これにより、受信エラーが発生しても、転送レートを低下させることなくデータを訂正することができる。
【0061】
(実施の形態2)
続いて、図7を用いて本発明の実施の形態2にかかる訂正回路60の構成例について説明する。図4の訂正回路においては、データバッファ13に対応するCDRエラーバッファ15が1ビットずつ設けられたが、図7の訂正回路60においては、CDRエラーが発生したデータのバッファ番号を格納するバッファ構成にする。その他の構成については、図4の訂正回路と同様であるため、詳細な説明を省略する。CDRエラーバッファ20は、CDRエラーフラグがアクティブ(High)となった場合に、10b8b変換回路部10の出力データを格納したデータバッファ13のライン番号を記録する。CDRエラーフラグがアクティブとなった場合のデータが、データバッファ13からセレクタ18へ出力されるとき、CDRエラーバッファ20の出力はアクティブとなり、AND回路16へ出力される。
【0062】
以上説明したように、本発明の実施の形態2における訂正回路60を用いることにより、図4における訂正回路と比較して、CDRエラーバッファのサイズが小さくなる。そのため、回路規模の増加を抑制することができる。
【0063】
(実施の形態3)
続いて、図8を用いて本発明の実施の形態3にかかる訂正回路70の構成例について説明する。訂正回路70は、ビット反転回路部6と、10b8b変換回路部8及び10と、CRC回路部9、11、24及び26と、リタイミング回路部12と、データバッファ13と、CDRエラーバッファ15、31及び32と、AND回路17と、CRCエラー出力21と、データ出力22と、代替データバッファ選択回路23と、セレクタ27と、代替データバッファ28及び29と、33及び34と、を備えている。なお、図4と同一の構成要素については同一の符号を使用し、詳細な説明は省略する。
【0064】
訂正回路70は、図4の訂正回路と比較して、CRC回路部を2つと、代替データバッファを1つ追加している。図4の訂正回路は、1回のCRCチェック期間において発生する1ビットのエラーを補正することが可能であり、訂正回路70は、1回のCRCチェック期間において発生する2ビットのエラーを補正することが可能である。
【0065】
CRC回路部9は、常に前半ビット反転データのCRCをチェックする。CRC回路部11は、常に後半ビット反転データのCRCをチェックする。これに対して、CRC回路部24とCRC回路部26とは、前半ビット反転データと後半ビット反転データとが組み合わされたデータのCRCをチェックする。
【0066】
セレクタ33は、10b8b変換回路部8から出力される前半ビット反転データをCRC回路部24へ出力し、1回目のCDRエラーが検出された時も10b8b変換回路部8から出力される前半ビット反転データをCRC回路部24へ出力する。セレクタ33は、1回目のCDRエラーが検出された後は、10b8b変換回路部10から出力される後半ビット反転データをCRC回路部24へ出力する。セレクタ34は、10b8b変換回路部10から出力される後半ビット反転データをCRC回路部26へ出力し、1回目のCDRエラーが検出された時も10b8b変換回路部10から出力される後半ビット反転データをCRC回路部26へ出力する。セレクタ34は、1回目のCDRエラーが検出された後は、10b8b変換回路部8から出力される前半ビット反転データをCRC回路部26へ出力する。セレクタ33及び34は、リタイミング回路部12から出力されるCDRエラーフラグに基づいて出力するデータを切り替える。
【0067】
代替データバッファ28は、1回目のCDRエラーに該当する受信データビットの前半ビットを反転させたデータを含む8ビットデータを格納し、代替データバッファ29は、2回目のCDRエラーに該当する受信データビットの前半ビットを反転させたデータを含む8ビットデータを格納する。
【0068】
代替データバッファ28及び29は、CDRエラーフラグ信号がアクティブの時に、10b8b変換回路8により復元された8ビットデータを格納し、CDRエラーフラグ信号がインアクティブの時は、代替データバッファ28及び29に格納されている値を保持するバッファであり、8ビットデータ1つを格納することができる。代替データバッファ28及び29へ出力されるCDRエラーフラグ信号は、AND回路31及び32と、代替データバッファ選択回路23とを用いて制御される。1回目にCDRエラーとなった時は、代替データバッファ選択回路23からAND回路31に対してアクティブ状態の信号が出力され、AND回路31からアクティブ状態のCDRエラーフラグ信号が出力される。2回目にCDRエラーとなった時は、代替データバッファ選択回路23からAND回路32に対してアクティブ状態の信号が出力され、AND回路32からアクティブ状態のCDRエラーフラグ信号が出力される。
【0069】
次に、セレクタ27のデータ選択処理動作について説明する。2回発生したCDRエラーに対し、1回目、2回目とも後半ビットを反転することで、データが正しく補正できたならば、CRC回路部11の出力はインアクティブとなる。2回発生したCDRエラーに対し、1回目、2回目とも前半ビットを反転することで、データが正しく補正できたならば、CRC回路部9の出力はインアクティブとなる。
【0070】
2回発生したCDRエラーの内、1回目は前半ビットを反転し、2回目は後半ビットを反転することで、データが正しく補正できたならば、CRC回路部24の出力はインアクティブとなる。2回発生したCDRエラーの内、1回目は後半ビットデータを反転し、2回目は前半ビットを反転することで、データが正しく補正できたならば、CRC回路部26の出力はインアクティブとなる。
【0071】
CDRエラーバッファ15の出力がインアクティブ(Low)である場合、セレクタ27は、データバッファ13のデータを選択し、選択したデータをデータ出力22から出力する。
【0072】
CDRエラーバッファ15の出力がアクティブ(High)である場合、セレクタ27は、CRC回路部9、11、24及び26の出力結果に応じて、次のようにデータを選択する。CRC回路部11から出力されるデータがインアクティブである場合、セレクタ27は、データバッファ13のデータを選択する。CRC回路部9から出力されるデータがインアクティブである場合、セレクタ27は、CDRエラーバッファ15から1回目にアクティブに設定されたデータが出力された際には、代替データバッファ28のデータを選択し、2回目のアクティブに設定されたデータが出力された際には、代替データバッファ29のデータを選択する。
【0073】
CRC回路部24から出力されるデータがインアクティブである場合、セレクタ27は、CDRエラーバッファ15から1回目にアクティブに設定されたデータが出力された際には、代替データバッファ28のデータを選択し、2回目のアクティブに設定されたデータが出力された際には、データバッファ13のデータを選択する。CRC回路部26から出力されるデータがインアクティブである場合、セレクタ27は、CDRエラーバッファ15から1回目にアクティブに設定されたデータが出力された際には、データバッファ13のデータを選択し、2回目のアクティブに設定されたデータが出力された際には、代替データバッファ29のデータを選択する。
【0074】
以上説明したように本発明の実施の形態3にかかる訂正回路70を用いた場合、1回のCRCチェック期間において2ビットのエラーが発生した場合においても、正しいデータに補正することができる。また、1回のCRCチェック期間において3ビット以上のエラーが発生した場合においても、CRC回路部と代替データバッファを追加することにより、補正することが可能である。
【0075】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0076】
1 DL回路部
2 PD回路部
3 CDRコントローラ回路部
4 PI回路部
5 PLL回路部
6 ビット反転回路部
7 CDR回路部
8 10b8b変換回路部
9 CRC回路部
10 10b8b変換回路部
11 CRC回路部
12 リタイミング回路部
13 データバッファ
14 代替データバッファ
15 CDRエラーバッファ
16 AND回路
17 AND回路
18 セレクタ
19 受信シリアルデータビット入力ポート
21 CRCエラー出力
22 データ出力
23 代替データバッファ選択回路
24 CRC回路部
26 CRC回路部
27 セレクタ
28 代替データバッファ
29 代替データバッファ
31 AND回路
32 AND回路
33 セレクタ
34 セレクタ
40 XOR回路
41 XOR回路
42 セレクタ
43 セレクタ
50 訂正回路

【特許請求の範囲】
【請求項1】
位相の異なる複数のクロックを用いて、矩形波としてデータが遷移する受信シリアルデータビット列をサンプリングして、前記サンプリングされた受信シリアルデータビットを用いて受信データビット列を生成する受信データビット列生成部と、
前記サンプリングされた前記受信シリアルデータビットのうち、所定期間内に位相の異なるクロックを用いてサンプリングされた前記受信シリアルデータビットの値が一致するか否かを比較した結果に基づいて前記受信データビット列のエラー区間を検出するエラー検出部と、を備える受信回路。
【請求項2】
前記複数のクロックは、
第1のクロックと、前記第1のクロックと第1の位相差を有する第2のクロックと、前記第1のクロックと前記第1の位相差よりも大きな位相差を有する第3のクロックとを含み、
前記受信データビット列生成部は、
前記第1のクロック及び前記第3のクロックを用いてサンプリングされた前記受信シリアルデータビットを用いて受信データビット列を生成する、請求項1記載の受信回路。
【請求項3】
前記エラー検出部は、
前記所定期間内において、前記第1のクロックを用いてサンプリングされた第1の受信シリアルデータビットと、前記第2のクロックを用いてサンプリングされた第2の受信シリアルデータビットとが異なり、前記第2の受信シリアルデータビットと前記第3のクロックを用いてサンプリングされた第3の受信シリアルデータビットとが異なる場合に、前記受信データビット列において、前記第1及び第3の受信シリアルデータビットを含む区間をエラー区間として検出する、請求項2記載の受信回路。
【請求項4】
前記所定期間内において、前記第1の受信シリアルデータビットと前記第2の受信シリアルデータビットとが異なり、前記第2の受信シリアルデータビットと前記第3の受信シリアルデータビットとが一致する場合、前記第1乃至第3のクロックを時間軸とは反対方向へシフトするように位相を調整し、
前記所定期間内において、前記第1の受信シリアルデータビットと前記第2の受信シリアルデータビットとが一致し、前記第2の受信シリアルデータビットと前記第3の受信シリアルデータビットとが異なる場合、前記第1乃至第3のクロックを時間方向へシフトするように位相を調整する位相調整部をさらに備える請求項3記載の受信回路。
【請求項5】
前記エラー検出部においてエラー区間が検出された場合に、前記第1の受信シリアルデータビットを反転させた前半ビット反転データを含む第1の受信データビット列と、前記第3の受信シリアルデータを反転させた後半ビット反転データを含む第2の受信データビット列とを生成するビット反転部と、
前記第1及び第2の受信ビットデータ列それぞれの正常性を判定する正常性判定部と
前記正常性判定部における判定結果及び前記エラー検出部におけるエラー検出結果に応じて前記第1又は第2の受信データビット列を選択するセレクタと、をさらに備える請求項3又は4記載の受信回路。
【請求項6】
前記正常性判定部は、
前記第1の受信ビットデータ列の正常性を判定する第1の正常性判定部と、
前記第2の受信ビットデータ列の正常性を判定する第2の正常性判定部と、
前記エラー検出部において、1回目に検出されたエラー区間においては前記第1の受信シリアルデータビットを反転させ、2回目に検出されたエラー区間においては前記第3の受信シリアルデータビットを反転させたデータを含む第3の受信データビット列の正常性を判定する第3の正常性判定部と、
前記エラー検出部において、1回目に検出されたエラー区間においては前記第3の受信シリアルデータビットを反転させ、2回目に検出されたエラー区間においては前記第1のシリアルデータビットを反転させたデータを含む第4の受信データビット列の正常性を判定する第4の正常性判定部と、を有し、
前記セレクタは、
前記第1乃至第4の正常性判定部における判定結果及び前記エラー検出部におけるエラー検出結果に応じて前記第1乃至第4の受信データビット列のいずれか1つを選択する、請求項5記載の受信回路。
【請求項7】
前記後半ビット反転データを格納する後半ビット格納バッファと、
前記1回目にエラーが検出された場合に前記前半ビット反転データを格納する第1の前半ビット格納バッファと、
前記2回目にエラーが検出された場合に前記前半ビット反転データを格納する第2の前半ビット格納バッファと、をさらに備え、
前記セレクタは、
前記第1の受信ビットデータ列が正常と判定され、前記第2乃至第4の受信ビットデータ列が異常と判定された場合、前記第1回目にエラーが検出された場合、前記第1の前半ビット格納バッファに格納されている前半ビット反転データを選択し、前記第2回目にエラーが検出された場合、前記第2の前半ビット格納バッファに格納されている前半ビット反転データを選択し、
前記第2の受信ビットデータ列が正常と判定され、前記第1、第3及び第4の受信ビットデータ列が異常と判定された場合、前記第1回目及び第2回目にエラーが検出された場合ともに前記後半ビット格納バッファに格納されている後半ビット反転データを選択し、
前記第3の受信ビットデータ列が正常と判定され、前記第1、第2及び第4の受信ビットデータ列が異常と判定された場合、前記1回目にエラーが検出された場合、前記第1の前半ビット格納バッファに格納されている前半ビット反転データを選択し、前記第2回目にエラーが検出された場合、前記後半ビット格納バッファに格納されている後半ビット反転データを選択し、
前記第4の受信ビットデータ列が正常と判定され、前記第1乃至第3の受信ビットデータ列が異常と判定された場合、前記1回目にエラーが検出された場合、前記後半ビット格納バッファに格納されている後半ビット反転データを選択し、前記2回目にエラーが検出された場合、前記第2の前半ビット格納バッファに格納されている前半ビット反転データを選択する、請求項6記載の受信回路。
【請求項8】
前記エラーが検出された区間の前記受信データビットを含むデータを格納している前記後半ビット格納バッファの格納場所を示す識別子を管理するエラーバッファをさらに備える、請求項7記載の受信回路。
【請求項9】
前記正常性判定部は、CRCを用いて前記第1及び第2の受信ビットデータ列それぞれの正常性を判定する、請求項5乃至8のいずれか1項に記載の受信回路。
【請求項10】
位相の異なる複数のクロックを用いて、矩形波としてデータが遷移する受信シリアルデータビット列をサンプリングして、前記サンプリングされた受信シリアルデータビットを用いて受信データビット列を生成し、
前記サンプリングされた前記受信シリアルデータビットのうち、所定期間内に位相の異なるクロックを用いてサンプリングされた前記受信シリアルデータビットの値が一致するか否かを比較した結果に基づいて前記受信データビット列のエラー区間を検出するエラー検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−222497(P2012−222497A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−84410(P2011−84410)
【出願日】平成23年4月6日(2011.4.6)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】