(57)【特許請求の範囲】
【請求項１】
入力データを遅延量に基づいて遅延させた遅延データを出力する可変遅延回路と、
前記遅延データが入力されるフリップフロップと、
外部から入力される第１のクロックを整数逓倍した第２のクロックと前記第１のクロックもしくは前記第２のクロックを小数逓倍した第３のクロックを前記フリップフロップへ出力するＰＬＬ回路と、
前記フリップフロップの出力データに基づいて、前記遅延量を制御する制御信号を出力する位相調整回路と、を有し、
前記フリップフロップは、第１の期間で前記第２のクロックに基づいて前記遅延データを取得するとともに第１のデータを前記位相調整回路へ出力し、前記第１の期間と異なる第２の期間で前記第３のクロックに基づいて前記遅延データを取得するとともに第２のデータを前記位相調整回路へ出力し、
前記位相調整回路は、前記第１のデータと前記第２のデータとの比較結果に基づいて前記制御信号を生成する、
ことを特徴とするデータ受信回路。
【請求項２】
前記位相調整回路は、前記第１のデータと前記第２のデータとの比較結果に基づいて、前記入力データの遷移個所を複数検出し、検出された前記遷移個所のうちの隣接する遷移個所の間の中央位置に前記第２のクロックの立ち上がりエッジを調整する前記制御信号を生成する、
ことを特徴とする請求項１に記載のデータ受信回路。
【請求項３】
請求項１または請求項２に記載のデータ受信回路を有する、ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ受信回路に関する。
【背景技術】
【０００２】
近年、半導体集積回路（ＬＳＩ）には、高速Ｉ／Ｏインターフェース回路が搭載されている。このような高速Ｉ／Ｏインターフェース回路は、入力されたデータを高速で正確に受信するデータ受信回路を適用している。
【０００３】
例えば、従来のデータ受信回路としては、データのエッジを検出し、データチャネル毎に受信するクロックのタイミングをずらし、最適な位置でデータを受信する（取り込む）ことができる回路を搭載したＬＳＩが増えている。
【０００４】
すなわち、従来、クロック信号によるデータの取り込みタイミングを調整して、データを正しく取り込むようにした様々なデータ受信回路が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１３３９６５号公報
【特許文献２】特開２００９−１５９２５２号公報
【特許文献３】特開２００４−３２８０６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、様々なデータ受信回路が提案されているが、例えば、データチャネルが複数ある場合には、多相クロックの等長配線が困難になり、或いは、位相の検出精度を上げようとすると高速化が困難になるといった課題がある。
【課題を解決するための手段】
【０００７】
一実施形態の情報処理装置によれば、可変遅延回路と、フリップフロップと、ＰＬＬ回路と、位相調整回路と、を有することを特徴とするデータ受信回路が提供される。
【０００８】
前記可変遅延回路は、入力データを遅延量に基づいて遅延させた遅延データを出力し、また、前記フリップフロップには、前記遅延データが入力される。
【０００９】
前記ＰＬＬ回路は、外部から入力される第１のクロックを整数逓倍した第２のクロックと前記第１のクロックもしくは前記第２のクロックを小数逓倍した第３のクロックを前記フリップフロップへ出力する前記位相調整回路は、前記フリップフロップの出力データに基づいて、前記遅延量を制御する制御信号を出力する。
【００１０】
前記フリップフロップは、第１の期間で前記第２のクロックに基づいて前記遅延データを取得するとともに第１のデータを前記位相調整回路へ出力し、前記第１の期間と異なる第２の期間で前記第３のクロックに基づいて前記遅延データを取得するとともに第２のデータを前記位相調整回路へ出力し、前記位相調整回路は、前記第１のデータと前記第２のデータとの比較結果に基づいて前記制御信号を生成する。
【発明の効果】
【００１１】
開示のデータ受信回路は、高速で高精度のデータ受信を可能にするという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】データ受信回路の一例を示すブロック図である。
【図２】図１のデータ受信回路の動作を説明するための図である。
【図３】第１実施例のデータ受信回路を示す図（その１）である。
【図４】第１実施例のデータ受信回路を示す図（その２）である。
【図５】図３および図４のデータ受信回路の動作を説明するための図（その１）である。
【図６】図３および図４のデータ受信回路の動作を説明するための図（その２）である。
【図７】第２実施例のデータ受信回路を示す図である。
【図８】第３実施例のデータ受信回路を示す図である。
【図９】データ受信回路を試験回路として使用した例を示すブロック図である。
【発明を実施するための形態】
【００１３】
まず、各実施例のデータ受信回路を詳述する前に、図１および図２を参照してデータ受信回路の一例を説明する。
【００１４】
図１は、データ受信回路の一例を示すブロック図であり、また、図２は、図１のデータ受信回路の動作を説明するための図である。
【００１５】
図１において、参照符号１０１はＰＬＬ（Phase Locked Loop）回路，１０２は可変遅延回路，１３１はデータ取得用フリップフロップ（ＦＦ：Flip-Flop），１３２は位相検出用フリップフロップ（ＦＦ），そして，１０４は位相調整回路を示す。
【００１６】
ＰＬＬ回路１０１は、クロック信号ＣＫを受け取って位相同期した多相クロックＣＫ１，ＣＫ２を生成する。ＰＬＬ回路１０１からのクロックＣＫ１は、データ取得用ＦＦ１３１のクロック端子に供給され、また、ＰＬＬ回路１０１からのクロックＣＫ２は、位相検出用ＦＦ１３２のクロック端子に供給される。
【００１７】
ここで、クロックＣＫ２は、後述する図２に示されるように、例えば、位相の異なる複数のクロック（多相クロック）ＣＫ２ａ，ＣＫ２ｂ，…とされ、また、位相検出用ＦＦ１３２も、その多相クロックＣＫ２ａ，ＣＫ２ｂ，…に対応して設けられている。
【００１８】
データ取得用ＦＦ１３１は、可変遅延回路１０２の出力信号を、例えば、クロックＣＫ１の立ち上がりタイミングで取り込み、取得（受信）データとして出力する。この取得データは、位相調整回路１０４にも供給される。
【００１９】
位相検出用ＦＦ１３２は、可変遅延回路１０２の出力信号を、例えば、クロックＣＫ２の立ち上がりタイミングで取り込み、その取り込まれた位相検出データを位相調整回路１０４に供給する。
【００２０】
位相調整回路１０４は、データ取得用ＦＦ１３１からの取得データ，および，位相検出用ＦＦ１３２からの位相検出データを受け取り、可変遅延回路１０２における遅延量ｄを制御する遅延制御信号ｏｐｃを可変遅延回路１０２に出力して位相調整を行う。
【００２１】
すなわち、図２に示されるように、位相検出用ＦＦ１３２は、ＰＬＬ回路１０１からの多相クロックＣＫ２（ＣＫ２ａ，ＣＫ２ｂ，…）の立ち上がりタイミングで、可変遅延回路１０２による遅延量ｄだけ遅延された入力データＤａｔａを取り込む。
【００２２】
具体的に、例えば、位相検出用ＦＦ１３２は、クロックＣＫ２ａ〜ＣＫ２ｄの立ち上がりタイミングでデータＤａｔａ［ｎ］を取り込み、また、クロックＣＫ２ｆ，ＣＫ２ｇの立ち上がりタイミングでデータＤａｔａ［ｎ＋１］を取り込む。
【００２３】
ここで、クロックＣＫ２ｅの立ち上がりタイミングは、可変遅延回路１０２により遅延された入力データＤａｔａがデータＤａｔａ［ｎ］からＤａｔａ［ｎ＋１］へ変化する遷移期間（遷移個所）に含まれる。なお、データＤａｔａ［ｎ］とＤａｔａ［ｎ＋１］は、異なるデータとする。
【００２４】
このようにして、位相調整回路１０４は、入力データＤａｔａがデータＤａｔａ［ｎ］からＤａｔａ［ｎ＋１］へ変化する遷移個所の検出（エッジ検出）を行う。
【００２５】
すなわち、位相調整回路１０４は、クロックＣＫ２ｅを境にして、クロックＣＫ２ｅよりも位相が進んだクロックＣＫ２ａ〜ＣＫ２ｄによる位相検出用ＦＦ１３２の位相検出データがデータ取得用ＦＦ１３１からの取得データに一致することを認識する。
【００２６】
また、位相調整回路１０４は、クロックＣＫ２ｅよりも位相が遅れたクロックＣＫ２ｆ，ＣＫ２ｇによる位相検出用ＦＦ１３２の位相検出データがデータ取得用ＦＦ１３１からの取得データとは異なることも認識する。
【００２７】
そして、位相調整回路１０４は、入力データの遅延量、すなわち、可変遅延回路１０２による遅延量ｄを制御する遅延制御信号ｏｐｃを可変遅延回路１０２に出力して位相調整を行う。
【００２８】
すなわち、位相調整回路１０４は、クロックＣＫ１の立ち上がりタイミングがビット毎の入力データＤａｔａ［ｎ］，Ｄａｔａ［ｎ＋１］，…の隣接する遷移個所の間の中央位置（データアイの中央）にくるように、可変遅延回路１０２の遅延量ｄを制御する。
【００２９】
具体的に、クロックＣＫ２ａの立ち上がりタイミングがデータＤａｔａ［ｎ］のデータアイの中央に位置する場合、遅延量ｄを小さくしてクロックＣＫ１の立ち上がりタイミングがデータＤａｔａ［ｎ］のデータアイの中央にくるように制御することになる。
【００３０】
或いは、他の手法として、入力データの遅延量を制御するのではなく、多相クロックにより取り込みを行う複数のデータ取得用ＦＦを設け、最も安定したタイミングでデータの取り込みを行ったデータ取得用ＦＦの出力を選択するものもある。
【００３１】
ところで、ＰＬＬ回路１０１から出力される多相クロックを使用して入力データＤａｔａをデータ取得用ＦＦ１３１で正しく取り込み、その取得（受信）データを出力する回路は、データチャネルが複数ある場合にはチャネル毎に設けることになる。
【００３２】
また、近年、回路動作を高速化するためには、クロック信号の１周期を短くしなければならず、例えば、データチャネルが複数ある場合、多相クロックの等長配線が困難になる。さらに、位相の検出精度を上げようとすると、例えば、クロックの配線数を多くしなければならず、高速化が困難になってしまう。
【００３３】
また、同期式よりも高速な非同期式の高速Ｉ／Ｏインターフェース回路（データ受信回路）において、例えば、多相クロックは最低限の数（データを取得するＣＫ１と位相を検出するＣＫ２の２相）になっている。
【００３４】
そして、位相検出用ＦＦ１３２に供給するクロックＣＫ２の位相を微調整してデータの変化点（エッジ）を検出する場合、そのようなクロックの位相を微調整する回路は、通常、アナログ回路で構成されるため設計が難しい。また、遅延に容量を使用すると、広い周波数範囲を確保することが困難になっている。
【００３５】
ところで、非同期式の通信であればエッジの検出は常に行う必要があるが、同期式の通信の場合には、基本的に最初に位相を確定すれば動作中にエッジを検出しなくてもよい。
【００３６】
以下、データ受信回路の各実施例を、添付図面を参照して詳述する。図３および図４は、第１実施例のデータ受信回路を示す図である。
【００３７】
図３および図４において、参照符号１はフラクショナル（Fractional：Fractional-N）ＰＬＬ回路，２は可変遅延回路，３１はデータ取得用フリップフロップ（ＦＦ），３２は位相検出用フリップフロップ（ＦＦ），そして，４は位相調整回路を示す。
【００３８】
ここで、フラクショナルＰＬＬ回路１は、例えば、図１における一般的なＰＬＬ回路の機能に加えて、後述する図５のＣＬＫ２に示すようなクロック信号ＣＬＫ（ＣＬＫ１）を小数逓倍したフラクショナルクロックを生成する機能を有している。
【００３９】
すなわち、フラクショナルＰＬＬ回路１は、クロック信号ＣＬＫを受け取ってクロックＣＬＫ１，ＣＬＫ２を生成する。ここで、クロックＣＬＫ１は、整数逓倍クロックであり、また、クロックＣＬＫ２は、フラクショナル（小数逓倍）クロックである。
【００４０】
図４に示されるように、データ取得用ＦＦ３１は、可変遅延回路２の出力信号を、例えば、クロックＣＬＫ１の立ち上がりタイミングで取り込み、取得（受信）データとして出力する。この取得データは、位相調整回路４にも供給される。
【００４１】
図３に示されるように、位相検出用ＦＦ３２は、可変遅延回路２の出力信号を、例えば、クロックＣＬＫ２の立ち上がりタイミングで取り込み、その取り込まれた位相検出データを位相調整回路４に供給する。
【００４２】
位相調整回路４は、データ取得用ＦＦ３１からの取得データ，および，位相検出用ＦＦ３２からの位相検出データを受け取り、可変遅延回路２における遅延量Ｄを制御する遅延制御信号ＯＰＣを可変遅延回路２に出力して位相調整を行う。
【００４３】
ここで、図３および図４に示されるように、データ取得用ＦＦ３１および位相検出用ＦＦ３２は、１つのフリップフロップ３を異なる期間で共用するようになっている。
【００４４】
すなわち、図３に示す位相検出期間では、フリップフロップ３を位相検出用ＦＦ３２として使用し、また、図４に示すデータ取得期間では、フリップフロップ３をデータ取得用ＦＦ３１として使用する。
【００４５】
さらに、フラクショナルＰＬＬ回路１は、切り替え可能な整数逓倍モードおよび小数逓倍モードを有する。そして、フラクショナルＰＬＬ回路１は、位相検出期間では小数逓倍モードになって、位相検出用ＦＦ３２に対して小数逓倍クロックＣＬＫ２を供給する。
【００４６】
また、フラクショナルＰＬＬ回路１は、データ取得期間では整数逓倍モードになって、データ取得用ＦＦ３１に対して整数逓倍クロックＣＬＫ１を供給する。
【００４７】
図５および図６は、図３および図４のデータ受信回路の動作を説明するための図である。図５において、クロックＣＬＫ１は、クロック信号ＣＬＫの整数逓倍（例えば、１倍）になっており、クロックＣＬＫ２は、クロック信号ＣＬＫの小数逓倍（例えば、１．１倍）になっている。
【００４８】
すなわち、クロックＣＬＫ２によりデータの取り込みを行う位相検出用ＦＦ３２は、クロックＣＬＫ２の１０サイクルを重ねて処理することにより、例えば、クロックＣＬＫ１よりも１０倍高い分解能でデータの取り込み（位相検出）を行うことができる。
【００４９】
そして、位相調整回路４によりデータ取得用ＦＦ３１の出力（取得データ）と位相検出用ＦＦ３２の出力（位相検出データ）を比較して可変遅延回路２の遅延量Ｄを制御する遅延制御信号ＯＰＣを可変遅延回路２に出力して位相調整を行う。これにより、例えば、図１の多相クロックＣＫ２を１０相クロックとしたのと同様の制御が可能になる。
【００５０】
ここで、図６は、例えば、入力データＤａｔａとして『１０１０１０１０…』の位相調整用（トレーニングシーケンス）パターンを与え、クロックＣＬＫ２による位相検出用ＦＦ３２の取得データ（位相検出データ）の変化点を認識する様子を示している。
【００５１】
このようにして、入力データＤａｔａの遷移個所を検出（エッジ検出）し、その入力データの隣接する遷移個所の間の中央位置（データアイの中央）にくるように、可変遅延回路２の遅延量Ｄが決められる。
【００５２】
なお、入力データＤａｔａとして位相調整用パターンを与え、可変遅延回路２の遅延量Ｄを決める処理は、例えば、データ受信回路を有する装置の電源投入時の初期化処理として行うことができる。
【００５３】
また、可変遅延回路２の遅延量Ｄを決める処理は、上述した位相調整用パターンを使用することなく、例えば、データのプロトコルにおける所定のパターンを利用し、或いは、通常のデータをある程度の時間処理することでも行うことができる。
【００５４】
すなわち、位相調整用パターンを利用すれば、速くエッジ検出を終了することができるが、任意のデータを流す場合にはある程度長時間のデータを蓄積してエッジ部分を検出することもできる。
【００５５】
ここで、上述した第１実施例のデータ受信回路は、例えば、同期式通信による入力信号（入力データ）を受信するものであり、データ受信回路を有する装置の電源投入時の初期化処理で可変遅延回路２の遅延量Ｄを決めている。すなわち、同期式の通信の場合には、基本的に最初に位相を確定すれば動作中にエッジを検出しなくてもよいので、例えば、初期化処理で規定された遅延量Ｄを使用してデータの受信を行うことになる。
【００５６】
図７は、第２実施例のデータ受信回路を示す図である。図７に示すデータ受信回路は、データ取得用ＦＦ３１と、位相検出用ＦＦ３２を共用することなく別々に設けている。さらに、クロックＣＬＫ１を出力するＰＬＬ回路１２と、クロックＣＬＫ２を出力するフラクショナルＰＬＬ回路１１も別々に設けている。
【００５７】
この第２実施例のデータ受信回路によれば、データ取得用ＦＦ３１および位相検出用ＦＦ３２を常に動作させることにより、可変遅延回路２の遅延量Ｄを動的に制御することが可能になる。
【００５８】
図８は、第３実施例のデータ受信回路を示す図である。図８に示すデータ受信回路は、図７のデータ受信回路におけるＰＬＬ回路１２を無くして外部からのクロック信号ＣＬＫをそのままデータ取得用ＦＦ３１のクロックＣＬＫ１として使用するものである。
【００５９】
すなわち、データ取得用ＦＦ３１は、クロック信号ＣＬＫ（ＣＬＫ１）によりデータを取り込み、また、位相検出用ＦＦ３２は、フラクショナルＰＬＬ回路１からのクロックＣＬＫ２によりデータを取り込むようになっている。
【００６０】
この第３実施例のデータ受信回路によれば、第２実施例のデータ受信回路におけるＰＬＬ回路１２を省くことができる。
【００６１】
上述した各実施例のデータ受信回路は、例えば、高速Ｉ／Ｏインターフェース回路におけるデータ受信回路として、半導体集積回路に搭載することができる。
【００６２】
図９は、データ受信回路を試験回路として使用した例を示すブロック図である。図９に示されるように、上述した各実施例のデータ受信回路は、位相調整回路４による取得データと位相検出用データの位相差（遅延値）を利用して試験回路とすることができる。
【００６３】
すなわち、図９に示す試験回路は、例えば、データ受信回路を有するＬＳＩ外部のボードやパッケージのスキュー（Skew）を測定して、パス／フェイル（Pass/Fail）を判定する。或いは、位相調整回路４から遅延値をディジタルデータとして出力し、判定を外部に任せてもよい。
【００６４】
以上において、フラクショナルＰＬＬ回路は、例えば、整数逓倍のみを行う通常のＰＬＬ回路に比較して１割程度のディジタル回路を増やすだけでよい。また、前述したように、多相クロック配線は、データを高速で高精度に受信するほど配線が難しくなるが、フラクショナルＰＬＬ回路を使用することにより高速化および高精度化を容易に実現することが可能になる。
【００６５】
すなわち、通常のＰＬＬ回路では、高速で高精度のデータ受信を行うには、周波数×位相分の周波数または位相が必要となるが、フラクショナルＰＬＬ回路の場合、周波数をほとんど変えることなく実現することができる。そのため、上述した各実施例は、データ受信が高速で高精度になるほど、有利なものとなる。
【００６６】
さらに、例えば、可変遅延により位相を作った場合、その精度はゲート遅延以下にはならないが、上述した各実施例では、周波数を１Ｈｚ刻みで作成することも容易であるため、データ取得用ＦＦによるデータの取り込み精度を十分向上させることが可能である。
【００６７】
また、追加回路が少ないため、図９を参照して説明したように、通常は位相検出を行わないが、ボードやパッケージの遅延を試験するためだけに位相検出をしたい場合にも有効なものである。
【符号の説明】
【００６８】
１，１１    フラクショナルＰＬＬ回路
２，１０２    可変遅延回路
３    フリップフロップ（ＦＦ）
４，１０４    位相調整回路
１２，１０１    ＰＬＬ回路
３１，１３１    データ取得用ＦＦ
３２，１３２    位相検出用ＦＦ
【図１】
0005540906.tif 000002
【図２】
0005540906.tif 000003
【図３】
0005540906.tif 000004
【図４】
0005540906.tif 000005
【図５】
0005540906.tif 000006
【図６】
0005540906.tif 000007
【図７】
0005540906.tif 000008
【図８】
0005540906.tif 000009
【図９】
0005540906.tif 000010