特開2018-152820(P2018-152820A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アンリツ株式会社の特許一覧

<>
  • 特開2018152820-デスキュー回路及びデスキュー方法 図000003
  • 特開2018152820-デスキュー回路及びデスキュー方法 図000004
  • 特開2018152820-デスキュー回路及びデスキュー方法 図000005
  • 特開2018152820-デスキュー回路及びデスキュー方法 図000006
  • 特開2018152820-デスキュー回路及びデスキュー方法 図000007
  • 特開2018152820-デスキュー回路及びデスキュー方法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-152820(P2018-152820A)
(43)【公開日】2018年9月27日
(54)【発明の名称】デスキュー回路及びデスキュー方法
(51)【国際特許分類】
   H04L 25/02 20060101AFI20180831BHJP
   H04L 7/00 20060101ALI20180831BHJP
【FI】
   H04L25/02 Z
   H04L7/00 330
【審査請求】有
【請求項の数】4
【出願形態】OL
【全頁数】14
(21)【出願番号】特願2017-49581(P2017-49581)
(22)【出願日】2017年3月15日
(11)【特許番号】特許第6360578号(P6360578)
(45)【特許公報発行日】2018年7月18日
(71)【出願人】
【識別番号】000000572
【氏名又は名称】アンリツ株式会社
(74)【代理人】
【識別番号】100072604
【弁理士】
【氏名又は名称】有我 軍一郎
(72)【発明者】
【氏名】城所 久生
(72)【発明者】
【氏名】和田 健
【テーマコード(参考)】
5K029
5K047
【Fターム(参考)】
5K029AA01
5K029DD22
5K029HH11
5K047AA08
5K047LL05
5K047MM36
(57)【要約】
【課題】未知の入力データに対しても、複数のレーン間で発生するスキューを取り除くことが可能なデスキュー回路及びデスキュー方法を提供する。
【解決手段】n+1周期目のパターンに遅延量を付加する遅延量付加部13と、n周期目とn+1周期目のパターンから得られたMビット幅のパラレルデータDM,DM'に基づいて、各レーンの見掛けのスキュー量とその変化量を検出するスキュー量仮検出部18と、変化量が1ビットのレーンを特定することにより、n周期目のパターンから得られたNビット幅のパラレルデータDNを特定するパラレルデータ特定部19と、n周期目のパターンから得られた各レーンの見掛けのスキュー量から、特定されたパラレルデータDNの各レーンにおける"0"と"1"の変化点のレーン間での相対的なビットずれ量を減算するスキュー量補正部20と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
シリアルデータである入力データのビットレートに応じたクロックを生成するクロック・データ・リカバリ回路(11)と、
前記クロックの整数倍の周期の周期パターンを発生させるパターン発生器(12)と、
前記周期パターン又は前記入力データを前記クロックのタイミングでNビット幅(Nは2以上の整数)のパラレルデータに直並列変換し、前記Nビット幅のパラレルデータをN個のレーンに順次出力する直並列変換部(15)と、
前記N個のレーンにそれぞれ設けられ、前記Nビット幅のパラレルデータを受信して、前記レーンごとにMビット幅(Mは2以上の整数)のパラレルデータに順次変換するN個のSerDes(16)と、
前記パターン発生器と前記直並列変換部の間に設けられ、前記パターン発生器からn周期分(nは自然数)の前記周期パターンが入力されたタイミングで、前記パターン発生器から入力されるn+1周期目の前記周期パターンに前記クロックの1クロック分の遅延量を付加する遅延量付加部(13)と、
n周期目の前記周期パターンから得られた前記Mビット幅のパラレルデータと、n+1周期目の前記周期パターンから得られた前記Mビット幅のパラレルデータとに基づいて、各前記レーンの見掛けのスキュー量とその変化量を検出するスキュー量仮検出部(18)と、
前記N個のレーンのうち前記変化量が1ビットである1つのレーンを特定し、前記特定したレーンに基づいて、n周期目の前記周期パターンから得られた前記Nビット幅のパラレルデータを特定するパラレルデータ特定部(19)と、
n周期目の前記周期パターンから得られた各前記レーンの前記見掛けのスキュー量から、前記パラレルデータ特定部により特定された前記Nビット幅のパラレルデータの各前記レーンにおける"0"と"1"の変化点の前記レーン間での相対的なビットずれ量を減算した値を、補正スキュー量として算出するスキュー量補正部(20)と、
前記補正スキュー量に応じて、前記入力データのMビット幅のパラレルデータを前記レーンごとにビットシフトして、前記レーン間のスキューを除去するスキュー除去部(22)と、を備えることを特徴とするデスキュー回路。
【請求項2】
前記スキュー量仮検出部は、
前記周期パターンから得られた前記Mビット幅のパラレルデータにおける立ち上がりエッジを検出するエッジ検出部(25)と、
前記立ち上がりエッジのビット位置に基づいて、各前記レーンの前記見掛けのスキュー量を推定するスキュー量仮推定部(26)と、を含むことを特徴とする請求項1に記載のデスキュー回路。
【請求項3】
前記入力データと前記遅延量付加部から出力された前記周期パターンとのいずれかを前記直並列変換部に入力させるセレクタ(14)を更に備えることを特徴とする請求項1又は請求項2に記載のデスキュー回路。
【請求項4】
シリアルデータである入力データのビットレートに応じたクロックを生成するステップ(S1)と、
前記クロックの整数倍の周期の周期パターンを発生させるステップ(S2)と、
前記周期パターン又は前記入力データを前記クロックのタイミングでNビット幅(Nは2以上の整数)のパラレルデータに直並列変換し、前記Nビット幅のパラレルデータをN個のレーンに順次出力する直並列変換ステップ(S5,S9)と、
前記N個のレーンにそれぞれ設けられたN個のSerDesにより、前記Nビット幅のパラレルデータを受信して、前記レーンごとにMビット幅のパラレルデータに順次変換するステップ(S6,S10)と、
n周期分(nは自然数)の前記周期パターンが入力されたタイミングで、n+1周期目の前記周期パターンに前記クロックの1クロック分の遅延量を付加する遅延量付加ステップ(S22)と、
n周期目の前記周期パターンから得られた前記Mビット幅のパラレルデータと、n+1周期目の前記周期パターンから得られた前記Mビット幅のパラレルデータとに基づいて、各前記レーンの見掛けのスキュー量とその変化量を検出するスキュー量仮検出ステップ(S24)と、
前記N個のレーンのうち前記変化量が1ビットである1つのレーンを特定し、前記特定したレーンに基づいて、n周期目の前記周期パターンから得られた前記Nビット幅のパラレルデータを特定するパラレルデータ特定ステップ(S25)と、
n周期目の前記周期パターンから得られた各前記レーンの前記見掛けのスキュー量から、前記パラレルデータ特定ステップで特定された前記Nビット幅のパラレルデータの各前記レーンにおける"0"と"1"の変化点の前記レーン間での相対的なビットずれ量を減算した値を、補正スキュー量として算出するステップ(S26)と、
前記補正スキュー量に応じて、前記入力データのMビット幅のパラレルデータを前記レーンごとにビットシフトして、前記レーン間のスキューを除去するステップ(S11)と、を含むことを特徴とするデスキュー方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デスキュー回路及びデスキュー方法に関し、特に、複数のレーン間に生じるスキューを除去するデスキュー回路及びデスキュー方法に関する。
【背景技術】
【0002】
近年、100Gイーサネット(登録商標)や400Gイーサネット(登録商標)の規格に対応した高速な通信システムの導入や開発が活発に進められている。一般に、高速な通信システムに採用される送受信機や計測機器においては、例えば高速シリアルデータを低速パラレルデータに変換して、複数のレーンで信号処理を行うことで、要求される処理速度を実現することが行われている。
【0003】
複数のレーンを用いてデータを送受信する際には、レーン間に生じるスキューを除去する必要がある。例えば、100Gイーサネット(登録商標)では、各レーンを伝送される信号データの中にアライメントマーカと呼ばれるスキュー調整用のデータが送信側で同じタイミングで挿入されており、受信側ではこれらのアライメントマーカの検出時間の差に基づいてスキューの除去が行われる。
【0004】
また、複数のレーンを用いた処理を行う系として、制御シンボル及び制御データなどの冗長制御情報を差動レーンのそれぞれのチャネルによって供給し、冗長制御情報に基づいて複数のレーンの間でデスキューを行う方法が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第5010733号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に開示されたような従来の方法では、複数レーンを使用した信号処理を行う系であって、冗長制御情報などのスキューを除去するためのデータを用いない系においては、レーン間のスキューを取り除けないという問題があった。
【0007】
本発明は、このような従来の課題を解決するためになされたものであって、スキューを除去するためのデータが挿入されていない未知の入力データに対しても、複数のレーン間で発生するスキューを取り除くことが可能なデスキュー回路及びデスキュー方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明に係るデスキュー回路は、シリアルデータである入力データのビットレートに応じたクロックを生成するクロック・データ・リカバリ回路と、前記クロックの整数倍の周期の周期パターンを発生させるパターン発生器と、前記周期パターン又は前記入力データを前記クロックのタイミングでNビット幅(Nは2以上の整数)のパラレルデータに直並列変換し、前記Nビット幅のパラレルデータをN個のレーンに順次出力する直並列変換部と、前記N個のレーンにそれぞれ設けられ、前記Nビット幅のパラレルデータを受信して、前記レーンごとにMビット幅(Mは2以上の整数)のパラレルデータに順次変換するN個のSerDesと、前記パターン発生器と前記直並列変換部の間に設けられ、前記パターン発生器からn周期分(nは自然数)の前記周期パターンが入力されたタイミングで、前記パターン発生器から入力されるn+1周期目の前記周期パターンに前記クロックの1クロック分の遅延量を付加する遅延量付加部と、n周期目の前記周期パターンから得られた前記Mビット幅のパラレルデータと、n+1周期目の前記周期パターンから得られた前記Mビット幅のパラレルデータとに基づいて、各前記レーンの見掛けのスキュー量とその変化量を検出するスキュー量仮検出部と、前記N個のレーンのうち前記変化量が1ビットである1つのレーンを特定し、前記特定したレーンに基づいて、n周期目の前記周期パターンから得られた前記Nビット幅のパラレルデータを特定するパラレルデータ特定部と、n周期目の前記周期パターンから得られた各前記レーンの前記見掛けのスキュー量から、前記パラレルデータ特定部により特定された前記Nビット幅のパラレルデータの各前記レーンにおける"0"と"1"の変化点の前記レーン間での相対的なビットずれ量を減算した値を、補正スキュー量として算出するスキュー量補正部と、前記補正スキュー量に応じて、前記入力データのMビット幅のパラレルデータを前記レーンごとにビットシフトして、前記レーン間のスキューを除去するスキュー除去部と、を備える構成である。
【0009】
この構成により、本発明に係るデスキュー回路は、スキューを除去するためのデータが挿入されていない未知の入力データに対しても、複数のレーンに設けられたN個のSerDesで発生するスキューを取り除くことができる。つまり、本発明に係るデスキュー回路は、通信プロトコルによらずにハード的にレーン間のスキューを除去できるため、複数のレーンでデータを処理するあらゆる装置に適用できる。例えば、本発明に係るデスキュー回路により、高い時間精度でパケットの送受信を行うことなどが可能になる。
【0010】
また、本発明に係るデスキュー回路においては、前記スキュー量仮検出部は、前記周期パターンから得られた前記Mビット幅のパラレルデータにおける立ち上がりエッジを検出するエッジ検出部と、前記立ち上がりエッジのビット位置に基づいて、各前記レーンの前記見掛けのスキュー量を推定するスキュー量仮推定部と、を含む構成であってもよい。
【0011】
この構成により、本発明に係るデスキュー回路は、遅延量付加部により周期パターンに遅延量が付加された前後で各SerDesにより変換されたMビット幅のパラレルデータに基づいて、各レーンの見掛けのスキュー量を検出することができる。
【0012】
また、本発明に係るデスキュー回路は、前記入力データと前記遅延量付加部から出力された前記周期パターンとのいずれかを前記直並列変換部に入力させるセレクタを更に備える構成であってもよい。
【0013】
この構成により、本発明に係るデスキュー回路は、セレクタを切り替えることにより、各レーンのスキュー量を算出するためのスキュー量算出モードと、入力データが入力された状態で各レーンのスキューを取り除くためのスキュー除去モードとを切り替えることができる。
【0014】
また、本発明に係るデスキュー方法は、シリアルデータである入力データのビットレートに応じたクロックを生成するステップと、前記クロックの整数倍の周期の周期パターンを発生させるステップと、前記周期パターン又は前記入力データを前記クロックのタイミングでNビット幅(Nは2以上の整数)のパラレルデータに直並列変換し、前記Nビット幅のパラレルデータをN個のレーンに順次出力する直並列変換ステップと、前記N個のレーンにそれぞれ設けられたN個のSerDesにより、前記Nビット幅のパラレルデータを受信して、前記レーンごとにMビット幅のパラレルデータに順次変換するステップと、n周期分(nは自然数)の前記周期パターンが入力されたタイミングで、n+1周期目の前記周期パターンに前記クロックの1クロック分の遅延量を付加する遅延量付加ステップと、n周期目の前記周期パターンから得られた前記Mビット幅のパラレルデータと、n+1周期目の前記周期パターンから得られた前記Mビット幅のパラレルデータとに基づいて、各前記レーンの見掛けのスキュー量とその変化量を検出するスキュー量仮検出ステップと、前記N個のレーンのうち前記変化量が1ビットである1つのレーンを特定し、前記特定したレーンに基づいて、n周期目の前記周期パターンから得られた前記Nビット幅のパラレルデータを特定するパラレルデータ特定ステップと、n周期目の前記周期パターンから得られた各前記レーンの前記見掛けのスキュー量から、前記パラレルデータ特定ステップで特定された前記Nビット幅のパラレルデータの各前記レーンにおける"0"と"1"の変化点の前記レーン間での相対的なビットずれ量を減算した値を、補正スキュー量として算出するステップと、前記補正スキュー量に応じて、前記入力データのMビット幅のパラレルデータを前記レーンごとにビットシフトして、前記レーン間のスキューを除去するステップと、を含む構成である。
【0015】
この構成により、本発明に係るデスキュー方法は、スキューを除去するためのデータが挿入されていない未知の入力データに対しても、複数のレーン間で発生するスキューを取り除くことができる。つまり、本発明に係るデスキュー方法は、通信プロトコルによらずにハード的にレーン間のスキューを除去できるため、複数のレーンでデータを処理するあらゆる装置に適用できる。例えば、本発明に係るデスキュー方法により、高い時間精度でパケットの送受信を行うことなどが可能になる。
【発明の効果】
【0016】
本発明は、スキューを除去するためのデータが挿入されていない未知の入力データに対しても、複数のレーン間で発生するスキューを取り除くことが可能なデスキュー回路及びデスキュー方法を提供するものである。
【図面の簡単な説明】
【0017】
図1】本発明の実施形態に係るデスキュー回路の構成を示すブロック図である。
図2】本発明の実施形態に係るデスキュー回路が備えるパターン発生器と遅延量付加部によって生成されるスキュー補償パターンの一例を示す図である。
図3】(a),(b)はDEMUXから未知のスキュー補償パターンが出力された場合に、各SerDesから出力されるパラレルデータの見掛けのスキュー量を示す説明図(その1)である。
図4】(a),(b)はDEMUXから未知のスキュー補償パターンが出力された場合に、各SerDesから出力されるパラレルデータの見掛けのスキュー量を示す説明図(その2)である。
図5】本発明の実施形態に係るデスキュー回路によるデスキュー方法の処理を説明するためのフローチャートである。
図6図5のフローチャートにおけるステップS7の処理を詳細に説明するためのフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明に係るデスキュー回路及びデスキュー方法の実施形態について、図面を用いて説明する。本発明は、高速シリアルデータとしての入力データを低速パラレルデータに変換して、N(Nは2以上の整数)個のレーンを用いて信号処理する際に、レーン間に生じるスキューを調整するものである。
【0019】
図1に示すように、本発明の実施形態に係るデスキュー回路10は、クロック・データ・リカバリ回路(以下、「CDR」と称する)11と、パターン発生器12と、遅延量付加部13と、セレクタ14と、直並列変換部としてのDEMUX(デマルチプレクサ)15と、N個のSerDes16と、データスイッチ17と、スキュー量仮検出部18と、パラレルデータ特定部19と、スキュー量補正部20と、記憶部21と、スキュー除去部22と、キャプチャ回路23と、制御部24と、を備える。
【0020】
CDR11は、シリアルデータである入力データからクロックを抽出し、入力データのビットレートに応じたクロックCLKを生成するようになっている。
【0021】
パターン発生器12は、CDR11により生成されたクロックCLKの整数倍の周期Tの周期パターンを発生させるようになっている。パターン発生器12で発生した周期パターンは、レーン間に生じるスキューを補償するためのスキュー補償パターンとして用いられる。
【0022】
遅延量付加部13は、パターン発生器12とDEMUX15の間に設けられ、パターン発生器12からn周期分(nは自然数)のスキュー補償パターンが入力されたタイミングで、パターン発生器12から入力されるn+1周期目のスキュー補償パターンにクロックCLKの1クロック分の遅延量を付加するようになっている。すなわち、この遅延量はビットレートに応じて決まる。
【0023】
セレクタ14は、入力データと遅延量付加部13から出力されたスキュー補償パターンとのいずれかをDEMUX15に入力させるようになっている。
【0024】
DEMUX15は、スキュー補償パターン又は入力データをクロックCLKのタイミングでNビット幅(Nは2以上の整数)のパラレルデータに直並列変換し、Nビット幅のパラレルデータをN個のレーンに順次出力するようになっている。
【0025】
N個のSerDes16は、N個のレーンにそれぞれ設けられ、DEMUX15により直並列変換されたNビット幅のパラレルデータを受信して、レーンごとにMビット幅(Mは2以上の整数)のパラレルデータに順次変換するようになっている。各SerDes16は、入力されたデータの直並列変換をレーンごとに独立して行うため、レーン間のスキューを発生させる要因となる。また、レーン間のスキュー量は、入力データのビットレート変更や、入力データの入力のオン/オフごとに変動してしまう。このため、従来はあらかじめレーン間のスキュー量を推定することができなかった。
【0026】
なお、パターン発生器12で発生するスキュー補償パターンは、クロックCLKのN×M倍の周期Tを有していることが望ましい。また、このスキュー補償パターンにおいては、"0"の値が少なくともN個以上連続し、かつ、"1"の値も少なくともN個以上連続している必要がある。
【0027】
データスイッチ17は、N個のSerDes16により変換されたMビット幅のパラレルデータを、スキュー量仮検出部18とスキュー除去部22のいずれかに出力するようになっている。本実施形態のデスキュー回路10は、セレクタ14とデータスイッチ17により、各レーンのスキュー量を算出するためのスキュー量算出モードと、入力データが入力された状態で各レーン間のスキューを除去するためのスキュー除去モードとに切り替わるようになっている。
【0028】
スキュー量算出モードにおいては、セレクタ14によって遅延量付加部13から出力されたスキュー補償パターンがDEMUX15に入力される。また、データスイッチ17によってN個のSerDes16により変換されたMビット幅のパラレルデータがスキュー量仮検出部18に入力される。
【0029】
一方、スキュー除去モードにおいては、セレクタ14によって入力データがDEMUX15に入力される。また、データスイッチ17によってN個のSerDes16により変換されたMビット幅のパラレルデータがスキュー除去部22に入力される。
【0030】
なお以下では、遅延量付加部13により遅延量が付加されたn+1周期目のスキュー補償パターンの1周期分前のn周期目のスキュー補償パターンから得られたNビット幅又はMビット幅のパラレルデータをそれぞれDN,DMとも称する。また、遅延量付加部13により遅延量が付加されたn+1周期目のスキュー補償パターンから得られたNビット幅又はMビット幅のパラレルデータをそれぞれDN',DM'とも称する。
【0031】
スキュー量仮検出部18は、エッジ検出部25と、スキュー量仮推定部26と、変化量算出部27と、を含み、パラレルデータDMとパラレルデータDM'とに基づいて、各レーンの見掛けのスキュー量とその変化量を検出するようになっている。
【0032】
パラレルデータ特定部19は、N個のSerDes16から出力されたNビット幅のパラレルデータが、どのような位相のスキュー補償パターンに由来しているのかを判別するためのものである。具体的には、パラレルデータ特定部19は、N個のレーンのうちスキュー量仮検出部18により検出された変化量が1ビットである1つのレーンを特定し、特定したレーンに基づいて、遅延量付加部13により遅延量が付加されたn+1周期目のスキュー補償パターンの1周期分前のn周期目のスキュー補償パターンから得られたNビット幅のパラレルデータDNを特定するようになっている。
【0033】
あるいは、パラレルデータ特定部19は、特定したレーンに基づいて、遅延量付加部13により遅延量が付加されたn+1周期目のスキュー補償パターンから得られたNビット幅のパラレルデータDN'を特定するものであってもよい。
【0034】
スキュー量補正部20は、パラレルデータDMから得られた各レーンの見掛けのスキュー量から、パラレルデータ特定部19により特定されたNビット幅のパラレルデータDNの各レーンにおける"0"と"1"の変化点のレーン間での相対的なビットずれ量を減算した値を、補正スキュー量として算出するようになっている。
【0035】
あるいは、スキュー量補正部20は、パラレルデータDM'から得られた各レーンの見掛けのスキュー量から、パラレルデータ特定部19により特定されたNビット幅のパラレルデータDN'の各レーンにおける"0"と"1"の変化点のレーン間での相対的なビットずれ量を減算した値を、補正スキュー量として算出するものであってもよい。
【0036】
記憶部21は、スキュー量補正部20により算出された補正スキュー量を各レーンに対応付けて記憶するようになっている。
【0037】
スキュー除去部22は、記憶部21に記憶された補正スキュー量に応じて、入力データのMビット幅のパラレルデータをレーンごとにビットシフトして、N個のレーン間のスキューを除去するようになっている。
【0038】
キャプチャ回路23は、スキュー除去部22によりビットシフトされた入力データのMビット幅のパラレルデータをキャプチャするようになっている。
【0039】
制御部24は、例えばCPU、記憶部21を構成するROM、RAM、HDDなどを含むマイクロコンピュータ又はパーソナルコンピュータ等で構成され、デスキュー回路10を構成する上記各部の動作を制御するようになっている。
【0040】
図2に、パターン発生器12と遅延量付加部13によって生成されるスキュー補償パターンの一例を示す。図2は、レーン数Nが4の場合におけるスキュー補償パターン1〜5の1周期分を示している。スキュー補償パターン2〜5は、スキュー補償パターン1に対してクロックCLKのそれぞれ1〜4クロック分の遅延量が付加されたものとなっている。
【0041】
例えば、遅延量付加部13は、パターン発生器12から1周期分のスキュー補償パターン1が入力されたタイミングで、以降に入力される周期パターンに1クロック分の遅延量を付加することにより、スキュー補償パターン2を生成する。
【0042】
スキュー補償パターンはDEMUX15に入力されることにより、図3及び図4においてスキュー補償パターン1〜5として示すように、レーン数Nに応じたパラレルデータに変換される。また、例えば図3(a)のスキュー補償パターン1からスキュー補償パターン2への変化に示すように、DEMUX15を通過したスキュー補償パターンは、遅延量付加部13による1クロック分の遅延量の付加により、N個のレーンのうちの1つのレーンにおいて"0"から"1"への変化点が移動することになる。
【0043】
以下、スキュー量仮検出部18、パラレルデータ特定部19、スキュー量補正部20、及びスキュー除去部22の処理について説明する。
【0044】
スキュー量仮検出部18のエッジ検出部25は、スキュー補償パターンから得られたMビット幅のパラレルデータにおける立ち上がりエッジ、すなわち"0"から"1"への変化点を検出するようになっている。あるいは、エッジ検出部25は、スキュー補償パターンから得られたMビット幅のパラレルデータにおける立ち下がりエッジ、すなわち"1"から"0"への変化点を検出するものであってもよい。
【0045】
スキュー量仮検出部18のスキュー量仮推定部26は、エッジ検出部25により検出されたMビット幅のパラレルデータにおける立ち上がりエッジ又は立ち下がりエッジのビット位置に基づいて、各レーンの見掛けのスキュー量を推定するようになっている。
【0046】
図3(a)及び(b)、図4(a)及び(b)の上段は、DEMUX15から未知のスキュー補償パターンが出力された場合に、各SerDes16から出力されるパラレルデータDMの見掛けのスキュー量を示している。また、図3(a)及び(b)、図4(a)及び(b)の下段は、上段に示した未知のスキュー補償パターンに遅延量が付加された場合に、各SerDes16から出力されるパラレルデータDM'の見掛けのスキュー量を示している。
【0047】
例えば、図3(a)の上段に示した例(レーン数Nが4)では、各SerDes16から出力されたパラレルデータDMの見掛けのスキュー量は、レーン0において2ビット、レーン1において3ビット、レーン2において4ビット、レーン3において5ビットである。また、図3(a)の下段に示した例(レーン数Nが4)では、各SerDes16から出力されたパラレルデータDM'の見掛けのスキュー量は、レーン0において3ビット、レーン1において3ビット、レーン2において4ビット、レーン3において5ビットである。
【0048】
変化量算出部27は、スキュー量仮推定部26により推定された、パラレルデータDMにおける各レーンの見掛けのスキュー量と、パラレルデータDM'における各レーンの見掛けのスキュー量との差分を変化量として算出するようになっている。よって、図3(a)の例では、レーン0においてのみ1ビットの変化量が算出される。
【0049】
図3(a)の例において、パラレルデータ特定部19は、レーン0から1ビットの変化量が検出されたことに基づいて、遅延量付加の前後で未知のスキュー補償パターンがスキュー補償パターン1からスキュー補償パターン2に変化したこと、すなわち、遅延量付加の直前の未知のスキュー補償パターンがスキュー補償パターン1であることを特定する。
【0050】
図3(a)の例において、スキュー補償パターン1から得られたパラレルデータDNの各レーンにおける"0"と"1"の変化点の相対的なビットずれ量は0ビットである。よって、スキュー量補正部20は、パラレルデータDMから得られた各レーンの見掛けのスキュー量をそのまま補正スキュー量とする。
【0051】
また、図3(b)の例においては、パラレルデータ特定部19は、レーン1から1ビットの変化量が検出されたことに基づいて、遅延量付加の直前の未知のスキュー補償パターンがスキュー補償パターン2であることを特定する。スキュー補償パターン2から得られたパラレルデータDNの各レーンにおける"0"と"1"の変化点の相対的なビットずれ量は、レーン0において1ビット、レーン1〜3において0ビットである。よって、スキュー量補正部20は、パラレルデータDMから得られたレーン0の見掛けのスキュー量から1ビット減算して補正スキュー量とし、レーン1〜3については見掛けのスキュー量をそのまま補正スキュー量とする。
【0052】
また、図4(a)の例においては、パラレルデータ特定部19は、レーン2から1ビットの変化量が検出されたことに基づいて、遅延量付加の直前の未知のスキュー補償パターンがスキュー補償パターン3であることを特定する。スキュー補償パターン3から得られたパラレルデータDNの各レーンにおける"0"と"1"の変化点の相対的なビットずれ量は、レーン0,1において1ビット、レーン2,3において0ビットである。よって、スキュー量補正部20は、パラレルデータDMから得られたレーン0,1の見掛けのスキュー量から1ビット減算して補正スキュー量とし、レーン2,3については見掛けのスキュー量をそのまま補正スキュー量とする。
【0053】
また、図4(b)の例においては、パラレルデータ特定部19は、レーン3から1ビットの変化量が検出されたことに基づいて、遅延量付加の直前の未知のスキュー補償パターンがスキュー補償パターン4であることを特定する。スキュー補償パターン4から得られたパラレルデータDNの各レーンにおける"0"と"1"の変化点の相対的なビットずれ量は、レーン0〜2において1ビット、レーン3において0ビットである。よって、スキュー量補正部20は、パラレルデータDMから得られたレーン0〜2の見掛けのスキュー量から1ビット減算して補正スキュー量とし、レーン3については見掛けのスキュー量をそのまま補正スキュー量とする。
【0054】
スキュー除去部22は、入力データのMビット幅のパラレルデータに対して、例えば、レーン0のデータを−2ビット、レーン1のデータを−3ビット、レーン2のデータを−4ビット、レーン3のデータを−5ビットだけビットシフトする。これにより、レーン間のスキューが除去される。
【0055】
以下、本実施形態のデスキュー回路10を用いるデスキュー方法について、図5のフローチャートを参照しながら説明する。
【0056】
まず、CDR11は、シリアルデータである入力データのビットレートに応じたクロックCLKを生成する(ステップS1)。
【0057】
次に、パターン発生器12は、ステップS1で生成されたクロックCLKの整数倍の周期Tのスキュー補償パターンを発生させる(ステップS2)。
【0058】
次に、制御部24は、入力データをN個のSerDes16に所定時間入力させるようにセレクタ14を切り替える(ステップS3)。これにより、N個のSerDes16が動作状態になる。
【0059】
次に、制御部24は、セレクタ14とデータスイッチ17により、各レーンの補正スキュー量を算出するためのスキュー量算出モードに切り替える(ステップS4)。これにより、パターン発生器12からのスキュー補償パターンがDEMUX15に入力されるようになる。
【0060】
次に、DEMUX15は、パターン発生器12からのスキュー補償パターンをNビット幅のパラレルデータに直並列変換して、N個のレーンに順次出力する処理を開始する(直並列変換ステップS5)。
【0061】
次に、N個のSerDes16は、ステップS5で変換されたNビット幅のパラレルデータを受信して、レーンごとにMビット幅のパラレルデータに順次変換する処理を開始する(ステップS6)。
【0062】
次に、スキュー量補正部20は、レーンごとに補正スキュー量を算出する(ステップS7)。なお、この処理の詳細については後述する。
【0063】
次に、制御部24は、セレクタ14とデータスイッチ17により、各レーン間のスキューを除去するスキュー除去モードに切り替える(ステップS8)。これにより、入力データがDEMUX15に入力されるようになる。
【0064】
次に、DEMUX15は、入力データをNビット幅のパラレルデータに直並列変換して、N個のレーンに順次出力する処理を開始する(直並列変換ステップS9)。
【0065】
次に、N個のSerDes16は、ステップS9で変換されたNビット幅のパラレルデータを受信して、レーンごとにMビット幅のパラレルデータに順次変換する処理を開始する(ステップS10)。
【0066】
次に、スキュー除去部22は、ステップS7で記憶された補正スキュー量に応じて、入力データのMビット幅のパラレルデータをレーンごとにビットシフトして、N個のレーン間のスキューを除去する(ステップS11)。
【0067】
図6は、図5のフローチャートのステップS7の処理の詳細の一例を示すフローチャートである。
【0068】
まず、制御部24は、パターン発生器12から1周期分のスキュー補償パターンが遅延量付加部13に入力されたか否かを判断する(ステップS21)。否定判断の場合には制御部24は再びステップS21を実行し、肯定判断の場合には遅延量付加ステップS22に進む。
【0069】
ステップS22において遅延量付加部13は、パターン発生器12から入力された2周期目のスキュー補償パターンに1クロック分の遅延量を付加する。
【0070】
次に、制御部24は、パターン発生器12から2周期分のスキュー補償パターンが遅延量付加部13に入力されたか否かを判断する(ステップS23)。否定判断の場合には制御部24は再びステップS23を実行し、肯定判断の場合にはステップS24に進む。
【0071】
次に、ステップS24においてスキュー量仮検出部18は、1周期目のスキュー補償パターンから得られたパラレルデータDMと、2周期目のスキュー補償パターンから得られたパラレルデータDM'とに基づいて、各レーンの見掛けのスキュー量とその変化量を検出する。
【0072】
次に、パラレルデータ特定部19は、1周期目のスキュー補償パターンから得られたNビット幅のパラレルデータDNが、図3(a)及び(b)、図4(a)及び(b)の上段に示されたスキュー補償パターン1〜4のいずれによるものかを特定する(ステップS25)。
【0073】
次に、スキュー量補正部20は、ステップS24で得られた各レーンの見掛けのスキュー量と、ステップS25で特定されたパラレルデータDNに基づいて、補正スキュー量を算出する(ステップS26)。
【0074】
次に、記憶部21は、ステップS26で算出された補正スキュー量を各レーンに対応付けて記憶する(ステップS27)。
【0075】
以上説明したように、本実施形態に係るデスキュー回路10は、スキュー補償パターンに遅延量を付加することで、遅延量が付加される前のスキュー補償パターンを特定し、特定したスキュー補償パターンの位相に基づいて、実際のスキュー量を算出する構成になっている。
【0076】
なお、従来は、レーン間のスキューを取り除くためには既知の周期パターンの入力が必要であったため、未知のパターンを有する入力データが入力された場合には、レーン間のスキューを十分に取り除くことができなかった。
【0077】
これに対して、本実施形態に係るデスキュー回路10は、未知のパターンを有する入力データに対しても、複数のレーンに設けられたN個のSerDesで発生するスキューを取り除くことができる。つまり、デスキュー回路10は、通信プロトコルによらずにハード的にレーン間のスキューを除去できるため、複数のレーンでデータを処理するあらゆる装置に適用できる。例えば、デスキュー回路10により、高い時間精度でパケットの送受信を行うことなどが可能になる。
【0078】
また、デスキュー回路10は、キャプチャ回路23により、未知の入力データをキャプチャすることができるため、他の測定回路において未知の入力データに対する任意の解析処理を実行することなどが可能になる。
【0079】
また、本実施形態に係るデスキュー回路10は、セレクタ14を切り替えることにより、各レーンのスキュー量を算出するためのスキュー量算出モードと、入力データが入力された状態で各レーンのスキューを取り除くためのスキュー除去モードとを切り替えることができる。
【符号の説明】
【0080】
10 デスキュー回路
11 CDR
12 パターン発生器
13 遅延量付加部
14 セレクタ
15 DEMUX
16 SerDes
17 データスイッチ
18 スキュー量仮検出部
19 パラレルデータ特定部
20 スキュー量補正部
21 記憶部
22 スキュー除去部
23 キャプチャ回路
24 制御部
25 エッジ検出部
26 スキュー量仮推定部
27 変化量算出部
図1
図2
図3
図4
図5
図6