(57)【特許請求の範囲】
【請求項１】
所定のパターンの第１のデータと前記所定のパターンの第２のデータを、第１のクロックが分周された第２のクロックに応じて出力するデータ送信部と、
前記第１のデータを受け取り、前記第１のデータを前記第１のクロックに応じて出力する第１のフリップフロップと、
前記第２のデータを受け取り、前記第２のデータを前記第１のクロックに応じて出力する第２のフリップフロップと、
前記第１のフリップフロップから出力された前記第１のデータまたは前記第２のフリップフロップから出力された前記第２のデータのいずれかを選択し、選択したデータを前記第１のクロックに応じて出力するセレクタと、
前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較し、比較結果に基づいて、前記第１のフリップフロップが前記第１のデータを受け取るタイミングを調整する調整部と、
を備えるパラレル・シリアル変換回路。
【請求項２】
前記データ送信部から出力された前記第１のデータを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第１のフリップフロップが正しく前記第１のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする請求項１記載のパラレル・シリアル変換回路。
【請求項３】
前記第２のクロックを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第１のフリップフロップが正しく前記第１のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする請求項１記載のパラレル・シリアル変換回路。
【請求項４】
前記所定のパターンは、０と１の繰り返しであることを特徴とする請求項１乃至３のいずれか１項に記載のパラレル・シリアル変換回路。
【請求項５】
００１１の繰り返しである他のパターンの第３のデータを生成するパターン生成部をさらに備え、
前記データ送信部は、前記第３のデータに基づいて、前記所定のパターンを送信することを特徴とする請求項４記載のパラレル・シリアル変換回路。
【請求項６】
パラレル・シリアル変換回路を備える情報処理装置であって、
前記パラレル・シリアル変換回路は、
所定のパターンの第１のデータと前記所定のパターンの第２のデータを、第１のクロックが分周された第２のクロックに応じて出力するデータ送信部と、
前記第１のデータを受け取り、前記第１のデータを前記第１のクロックに応じて出力する第１のフリップフロップと、
前記第２のデータを受け取り、前記第２のデータを前記第１のクロックに応じて出力する第２のフリップフロップと、
前記第１のフリップフロップから出力された前記第１のデータまたは前記第２のフリップフロップから出力された前記第２のデータのいずれかを選択し、選択したデータを前記第１のクロックに応じて出力するセレクタと、
前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較し、比較結果に基づいて、前記第１のフリップフロップが前記第１のデータを受け取るタイミングを調整する調整部と、
を備えることを特徴とする情報処理装置。
【請求項７】
パラレル・シリアル変換回路のタイミング調整方法であって、
データ送信部が所定のパターンの第１のデータと前記所定のパターンの第２のデータを、第１のクロックが分周された第２のクロックに応じて出力し
第１のフリップフロップが前記第１のデータを受け取り、前記第１のデータを前記第１のクロックに応じて出力し、
第２のフリップフロップが前記第２のデータを受け取り、前記第２のデータを前記第１のクロックに応じて出力し、
セレクタが前記第１のフリップフロップから出力された前記第１のデータまたは前記第２のフリップフロップから出力された前記第２のデータのいずれかを選択し、選択したデータを前記第１のクロックに応じて出力し、
調整部が前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較し、比較結果に基づいて、前記第１のフリップフロップが前記第１のデータを受け取るタイミングを調整する、
処理を備えることを特徴とするタイミング調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パラレル・シリアル変換回路、情報処理装置、およびタイミング調整方法に関する。
【背景技術】
【０００２】
Ｌａｒｇｅ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｕｒｃｕｉｔ（ＬＳＩ）内やＬＳＩ間のデータの送受信において、シリアル通信を用いる場合、送信側では、パラレル・シリアル変換でパラレルデータをシリアルデータに変換して送信し、受信側では、受信したシリアルデータをシリアル・パラレル変換してパラレルデータを生成する。送受信回路を有するＬＳＩには、シリアル・パラレル変換を行うシリアライザおよびパラレル・シリアル変換を行うデシリアライザが搭載されている。
【０００３】
パラレル・シリアル変換では、複数のマルチプレクサ（ＭＵＸ）間でデータを転送して、パラレルデータをシリアルデータに変換している。
【０００４】
クロックの高速化に伴い、クロック乗り換えのあるＭＵＸ間のデータ転送が難しくなってきている。特に、送信回路において最速のクロックを使用する２入力１出力のＭＵＸへのデータ転送を正しく行うのが難しくなっている。
【０００５】
データ送信部が出力するデータの位相とデータ受信部がデータを受信するタイミングを規定するクロックの位相を比較し、その比較結果に応じて、前記データ送信部がデータを送信するタイミングを規定するクロックの位相を調整する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−８２１４７号公報
【特許文献２】特開昭５８−５６５５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のタイミング調整回路は、受信側が正しくデータを受信できているかをチェックしていない。そのため、タイミング調整の結果、必ずしも正しくデータを受信できるようになるとは限らないという問題がある。
【０００８】
本発明は、マルチプレクサがデータを正しく受信できたか判定しつつ、マルチプレクサが正しくデータを受信できるように受信タイミングを調整することを目的とする。
【課題を解決するための手段】
【０００９】
実施の形態に係るパラレル・シリアル変換回路は、データ送信部と、第１のフリップフロップと、第２のフリップフロップと、セレクタと、調整部と、を備える。
【００１０】
前記データ送信部は、所定のパターンの第１のデータと前記所定のパターンの第２のデータを、第１のクロックが分周された第２のクロックに応じて出力する。
【００１１】
前記第１のフリップフロップは、前記第１のデータを受け取り、前記第１のデータを前記第１のクロックに応じて出力する。
【００１２】
前記第２のフリップフロップは、前記第２のデータを受け取り、前記第２のデータを前記第１のクロックに応じて出力する。
【００１３】
前記セレクタは、前記第１のフリップフロップから出力された前記第１のデータまたは前記第２のフリップフロップから出力された前記第２のデータのいずれかを選択し、選択したデータを前記第１のクロックに応じて出力する。
【００１４】
前記調整部は、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較し、比較結果に基づいて、前記第１のフリップフロップが前記第１のデータを受け取るタイミングを調整する。
【発明の効果】
【００１５】
実施の形態のパラレル・シリアル変換回路によれば、マルチプレクサがデータを正しく受信できたか判定しつつ、マルチプレクサが正しくデータを受信できるように受信タイミングを調整することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態に係る情報処理装置の構成図である。
【図２】実施の形態に係る送信回路の構成図（その１）である。
【図３】実施の形態に係る送信回路の構成図（その２）である。
【図４】データの送受信が正常に行われる場合のタイミングチャートである。
【図５】データの送受信が正常に行われない場合のタイミングチャートである。
【図６】シングルエンド信号を用いる場合の可変遅延回路の構成図である。
【図７】差動信号を用いる場合の可変遅延回路の構成図である。
【図８】制御回路の構成図（その１）である。
【図９】制御回路の構成図（その２）である。
【図１０】制御回路の構成図（その３）である。
【図１１】ＬＰＦを用いた場合のタイミングチャートである。
【図１２Ａ】実施の形態に係るタイミング調整方法のフローチャートである。
【図１２Ｂ】実施の形態に係るタイミング調整方法のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら実施の形態について説明する。
図１は、実施の形態に係る情報処理装置の構成図である。
【００１８】
情報処理装置１０１は、ＣＰＵパッケージ２０１−ａ（ａ＝１，２）およびメモリモジュール３０１を備える。
【００１９】
ＣＰＵパッケージ２０１−１とＣＰＵパッケージ２０１−２は、シリアルバスにより接続し、シリアルデータを用いたシリアル通信を行う。ＣＰＵパッケージ２０１−１とメモリモジュール３０１は、シリアルバスにより接続し、シリアルデータを用いたシリアル通信を行う。尚、図１に示していないが、ＣＰＵパッケージ２０１−２とメモリモジュール３０１は、シリアルバスにより接続し、シリアルデータを用いたシリアル通信を行う。
【００２０】
ＣＰＵパッケージ２０１−ａは、プロセッサ（ＣＰＵ）コア２１１−ａとＳＥＲｉａｌｉｚｅｒ／ＤＥＳｅｒｉａｌｉｚｅｒ（ＳｅｒＤｅｓ）２２１−ａを備える。
【００２１】
プロセッサコア２１１−ａは、種々の処理を行う演算装置である。プロセッサコア２１１−１、２１１−２は、それぞれＭ、Ｍ’ビット幅のパラレルデータを送受信する。
【００２２】
ＳｅｒＤｅｓ２２１−１は、プロセッサコア２１１−１から受信したＭビット幅のパラレルデータを１ビット幅のシリアルデータに変換して、ＣＰＵパッケージ２０１−２またはメモリモジュール３０１に送信する。また、ＳｅｒＤｅｓ２２１−１は、ＣＰＵパッケージ２０１−２またはメモリモジュール３０１から受信した１ビット幅のシリアルデータをＭビット幅のパラレルデータに変換して、プロセッサコア２１１−１に送信する。
【００２３】
ＳｅｒＤｅｓ２２１−１は、送信回路２２２−ａ、受信回路２２３−ａ、制御回路２２４、およびクロック生成回路２２５を備える。
【００２４】
送信回路２２２−１は、プロセッサコア２１１−１から受信したＭビット幅のパラレルデータを１ビット幅のシリアルデータに変換して、ＣＰＵパッケージ２０１−２に送信する。送信回路２２２−２は、プロセッサコア２１１−１から受信したＭビット幅のパラレルデータを１ビット幅のシリアルデータに変換して、メモリモジュール３０１に送信する。送信回路２２２−ａは、パラレル・シリアル変換回路（Ｓｅｒｉａｌｉｚｅｒ）の一例である。
【００２５】
受信回路２２３−１は、ＣＰＵパッケージ２０１−２から受信したシリアルデータをＭビット幅のパラレルデータに変換して、プロセッサコア２１１−１に送信する。受信回路２２３−２は、メモリモジュール３０１から受信したシリアルデータをＭビット幅のパラレルデータに変換して、プロセッサコア２１１−１に送信する。受信回路２２３−ａは、シリアル・パラレル変換回路（Ｄｅｓｅｒｉａｌｉｚｅｒ）の一例である。
【００２６】
制御回路２２４は、送信回路２２２−ａ、受信回路２２３−ａ、およびクロック生成回路２２５を制御する。
【００２７】
クロック生成回路２２５は、送信回路２２２−ａおよび受信回路２２３−ａの動作クロック信号（駆動クロック）を生成する。
【００２８】
ＳｅｒＤｅｓ２２１−２は、プロセッサコア２１１−２から受信したＭ’ビット幅のパラレルデータを１ビット幅のシリアルデータに変換して、ＣＰＵパッケージ２０１−１に送信する。また、ＳｅｒＤｅｓ２２１−２は、ＣＰＵパッケージ２０１−１から受信した１ビット幅のシリアルデータをＭ’ビット幅のパラレルデータに変換して、プロセッサコア２１１−２に送信する。
【００２９】
メモリモジュール３０１は、プロセッサコア２１１−ａで使用されるデータを格納する記憶装置である。メモリモジュール３０１は、メモリチップ３１１およびＳｅｒＤｅｓ３２１を備える。
【００３０】
メモリチップ３１１は、プロセッサコア２１１−ａで使用されるデータを格納する。メモリチップ３１１は、Ｍ’’ビット幅のパラレルデータを送受信する。
【００３１】
ＳｅｒＤｅｓ３２１は、メモリチップ３１１から受信したＭ’’ビット幅のパラレルデータを１ビット幅のシリアルデータに変換して、ＣＰＵパッケージ２０１−ａに送信する。また、ＳｅｒＤｅｓ２２１−２は、ＣＰＵパッケージ２０１−ａから受信した１ビット幅のシリアルデータをＭ’’ビット幅のパラレルデータに変換して、メモリチップ３１１に送信する。
【００３２】
尚、図１の情報処理装置１０１の構成は、一例であり、ＣＰＵパッケージ２０１−ａ、メモリジュール３０１、プロセッサコア２１１−ａ、送信回路、および受信回路等の数は、適宜変更可能である。
【００３３】
図２は、実施の形態に係る送信回路の構成図（その１）である。
図２では、送信回路２２２−１について説明する。尚、送信回路２２２−２の構成も同様である。
【００３４】
送信回路２２２−１は、パターン発生器２３１、Ｍ入力４出力マルチプレクサ（Ｍ：４ＭＵＸ）２４１、４入力２出力マルチプレクサ（４：２ＭＵＸ）２５１、可変遅延回路２６１−ｂ（ｂ＝０，１）、制御回路２７１−ｂ、ＸＯＲ回路２８１−ｂ、２入力１出力マルチプレクサ（２：１ＭＵＸ）２９１、分周器２９５を備える。
【００３５】
パターン発生器２３１は、所定のパターンのデータを生成し、４：２ＭＵＸ２５１に出力する。所定のパターンのデータは、例えば、００１１を繰り返すデータである。尚、パターン発生器２３１は、所定のパターンのデータをＭビット幅のパラレルデータとして出力する。尚、パターン発生器２３１は、送信回路２２１−１の外にあっても良く、例えば、制御回路２２４に具備されていても良い。また、プロセッサコア２１１−１がパターン発生器２２１−１として動作しても良い。
【００３６】
Ｍ：４ＭＵＸ２４１は、Ｍビット幅のパラレルデータを４ビット幅のパラレルデータに変換して４：２ＭＵＸ２５１に出力する。Ｍ：４ＭＵＸ２４１は、４ビット幅のパラレルデータをそれぞれ出力部０〜３からフリップフロップ（ＦＦ）２５２−１〜２５２−３に出力する。尚、Ｍ：４ＭＵＸ２４１は、不図示のプロセッサコア２１１−１とも接続している。
【００３７】
４：２ＭＵＸ２５１は、４ビット幅のパラレルデータを２ビット幅のパラレルデータに変換して２：１ＭＵＸ２９１に出力する。４：２ＭＵＸ２５１は、フリップフロップ（ＦＦ）２５２−ｃ（ｃ＝０〜３）およびセレクタ２５３−ｂを備える。４：２ＭＵＸ２５１は、データ送信部の一例である。
【００３８】
ＦＦ２５２−ｃおよびセレクタ２５３−ｂには、クロック生成回路２２５で生成されたクロック信号（２：１ＭＵＸ駆動クロック）の周波数を半分にしたクロック信号（４：２駆動クロック）が入力される。
【００３９】
ＦＦ２５２−０は、クロック信号の入力部にインバータを具備する。よって、ＦＦ２５２−０には４：２ＭＵＸ駆動クロックを反転した信号が入力される。ＦＦ２５２−０は、４：２ＭＵＸ駆動クロックの立ち下りエッジに応じて、入力されているデータを出力する。図２において、ＦＦ２５２−０は、は、４：２ＭＵＸ駆動クロックの立ち下りエッジに応じて、Ｍ：４ＭＵＸ２４１の出力部０からの入力データをセレクタ２５３−０に出力する。
【００４０】
ＦＦ２５２−１は、クロック信号の入力部にインバータを具備する。よって、ＦＦ２５２−１には４：２ＭＵＸ駆動クロックを反転した信号が入力される。ＦＦ２５２−１は、４：２ＭＵＸ駆動クロックの立ち下りエッジに応じて、入力されているデータを出力する。図２において、ＦＦ２５２−１は、４：２ＭＵＸ駆動クロックの立ち下りエッジに応じて、Ｍ：４ＭＵＸ２４１の出力部１からの入力データをセレクタ２５３−０に出力する。
【００４１】
ＦＦ２５２−２は、４：２ＭＵＸ駆動クロックが入力され、４：２ＭＵＸ駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。図２において、ＦＦ２５２−２は、４：２ＭＵＸ駆動クロックの立ち上がりエッジに応じて、Ｍ：４ＭＵＸ２４１の出力部２からの入力データをセレクタ２５３−０に出力する。
【００４２】
ＦＦ２５２−３は、４：２ＭＵＸ駆動クロックが入力され、４：２ＭＵＸ駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。図２において、ＦＦ２５２−３は、４：２ＭＵＸ駆動クロックの立ち上がりエッジに応じて、Ｍ：４ＭＵＸ２４１の出力部３からの入力データをセレクタ２５３−１に出力する。
【００４３】
また、ＦＦ２５２−０〜ＦＦ２５２−３をそれぞれＦＦ０〜ＦＦ３と表記する場合がある。
【００４４】
セレクタ２５３−０には、４：２ＭＵＸ駆動クロック、およびＦＦ２５２−０，２５２−２の出力データが入力される。セレクタ２５３−０は、４：２ＭＵＸ駆動クロックが１（Ｈ）のとき、ＦＦ２５２−０からの入力データを出力し、４：２ＭＵＸ駆動クロックが０（Ｌ）のとき、ＦＦ２５２−２からの入力データを出力する。セレクタ２５３−０から出力されるデータは、第１のデータの一例である。
【００４５】
セレクタ２５３−１には、４：２ＭＵＸ駆動クロック、およびＦＦ２５２−１，２５２−３の出力データが入力される。セレクタ２５３−１は、４：２ＭＵＸ駆動クロックが１（Ｈ）のとき、ＦＦ２５２−１からの入力データを出力し、４：２ＭＵＸ駆動クロックが０（Ｌ）のとき、ＦＦ２５２−３からの入力データを出力する。セレクタ２５３−１から出力されるデータは、第２のデータの一例である。
【００４６】
また、セレクタ２５３−０、セレクタ２５３−１をそれぞれセレクタ０、セレクタ１と表記する場合がある。
【００４７】
可変遅延回路２６１−ｂは、セレクタ２５３−ｂの出力データの位相を設定値に基づいて、調整する。詳細には、可変遅延回路２６１−ｂは、セレクタ２５３−ｂの出力データを設定値に基づいて、遅延させてＦＦ２９２−ｂに出力する。また、可変遅延回路２６１−０、可変遅延回路２６１−１をそれぞれ、可変遅延回路０、可変遅延回路１と表記する場合がある。可変遅延回路２６１−ｂは、遅延部の一例である。
【００４８】
制御回路２７１−ｂは、ＸＯＲ回路２８１−ｂの出力結果に応じて、可変遅延回路２６１−ｂの設定値を設定する。すなわち、制御回路２７１−ｂは、可変遅延回路２６１−ｂの遅延時間の設定を行う。
【００４９】
ＸＯＲ回路２８１−０は、ＦＦ２９２−０の出力とＦＦ２９２−１の入力の排他的論理和（ＸＯＲ）を制御回路２７１−０に出力する。
【００５０】
ＸＯＲ回路２８１−１は、ＦＦ２９２−１の出力とＦＦ２９２−０の入力の排他的論理和（ＸＯＲ）を制御回路２７１−１に出力する。
【００５１】
また、ＸＯＲ回路２８１−０、ＸＯＲ回路２８１−０をそれぞれＸＯＲ０、ＸＯＲ１と表記する場合がある。制御回路２７１−ｂおよびＸＯＲ回路２８１−ｂは、調整部の一例である。
【００５２】
２：１ＭＵＸ２９１は、ＦＦ２９２−ｂおよびセレクタ２９３を備える。
ＦＦ２９２−０は、クロック信号の入力部にインバータを具備する。よって、ＦＦ２９２−０には、クロック生成回路２２５で生成されたクロック信号（２：１ＭＵＸ駆動クロック）を反転した信号が入力される。そのため、ＦＦ２９２−０は、２：１ＭＵＸ駆動クロックの立ち下りエッジに応じて、入力されているデータを出力する。図２において、ＦＦ２９２−０は、２：１ＭＵＸ駆動クロックの立ち下りエッジに応じて、可変遅延回路２６１−０からの入力データをセレクタ２９３に出力する。また、ＦＦ２９２−０は、可変遅延回路２６１−０からの入力データをＸＯＲ２８１−０に出力する。
【００５３】
ＦＦ２９２−１は、２：１ＭＵＸ駆動クロックが入力され、２：１ＭＵＸ駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。図２において、ＦＦ２９２−１は、２：１ＭＵＸ駆動クロックの立ち上がりエッジに応じて、可変遅延回路２６１−１からの入力データをセレクタ２９３に出力する。また、ＦＦ２９２−１は、可変遅延回路２６１−１からの入力データをＸＯＲ２８１−１に出力する。
【００５４】
セレクタ２９３には、２：１ＭＵＸ駆動クロック、およびＦＦ２９２−０，２９２−１の出力データが入力される。セレクタ２９３は、２：１ＭＵＸ駆動クロックが１（Ｈ）のとき、ＦＦ２９２−０からの入力データを出力し、２：１ＭＵＸ駆動クロックが０（Ｌ）のとき、ＦＦ２９２−１からの入力データを出力する。
【００５５】
また、ＦＦ２９２−０、ＦＦ２９２−１をそれぞれＦＦ０，ＦＦ１と表記する場合がある。ＦＦ２９２−０、２９２−１は、第１のフリップフロップおよび第２のフリップフロップの一例である。
【００５６】
分周器２９５は、ラッチ２９６−１、２９６−２を含み、入力されたクロック信号（２：１ＭＵＸ駆動クロック）の周波数を半分にしたクロック信号（４：２ＭＵＸ駆動クロック）を４：２ＭＵＸに出力する。４：２ＭＵＸ駆動クロックのうち一方はＦＦ２５２−０，２５２−２、およびセレクタ２５３−０に入力される。４：２ＭＵＸ駆動クロックのうち他方はＦＦ２５２−１，２５２−３、およびセレクタ２５３−１に入力される。また、２つの４：２ＭＵＸ駆動クロックのうち一方は他方より位相が９０度ずれている。
【００５７】
図３は、実施の形態に係る送信回路の構成図（その２）である。
送信回路２２２−１は、図３に示すような構成としても良い。
【００５８】
図３の送信回路２２２−１は、パターン発生器２３１、Ｍ：４ＭＵＸ２４１、４：２ＭＵＸ２５１、可変遅延回路２６１’−ｂ（ｂ＝０，１）、制御回路２７１−ｂ、ＸＯＲ回路２８１−ｂ、２：１ＭＵＸ２９１、分周器２９５を備える。
【００５９】
パターン発生器２３１、Ｍ：４ＭＵＸ２４１、４：２ＭＵＸ２５１、制御回路２７１−ｂ、ＸＯＲ回路２８１−ｂ、２：１ＭＵＸ２９１、および分周器２９５の機能および構成は、図２で説明したものと同様であるため、説明は省略する。
【００６０】
図２の送信回路２２１−１と図３の送信回路２２１−１とを比較すると、図３の送信回路２２１−１は、図２の可変遅延回路２６１−ｂが削除され、可変遅延回路２６１’−ｂが４：２ＭＵＸ２５１と分周器２９５の間に挿入されている。
【００６１】
制御回路２７１−ｂは、ＸＯＲ回路２８１−ｂの出力結果に応じて、可変遅延回路２６１’−ｂの設定値を設定する。
【００６２】
可変遅延回路２６１’−ｂは、分周器から出力されるクロック信号（４：２駆動クロック）の位相を設定値に基づいて、調整する。詳細には、可変遅延回路２６１’−０は、４：２駆動クロックを設定値に基づいて遅延させてＦＦ２５２−０、２５２−２、およびセレクタ２５３−０に出力する。可変遅延回路２６１’−１は、４：２駆動クロックを設定値に基づいて遅延させてＦＦ２５２−１、２５２−３、およびセレクタ２５３−１に出力する。可変遅延回路２６１’−ｂは、遅延部の一例である。
【００６３】
図２の可変遅延回路２６１−ｂは、４：２ＭＵＸ２５１の出力データを遅延させており、図３の可変遅延回路２６１’−ｂは、４：２駆動クロックを遅延させている。４：２ＭＵＸ２５１の出力データまたは４：２駆動クロックを遅延させることにより、２：１ＭＵＸ２９１への入力データのタイミングを調整することが出来る。それにより、２：１ＭＵＸ２９１は、正しくデータを受信可能となる。
【００６４】
図４は、データの送受信が正常に行われる場合のタイミングチャートである。
図４は、上から順に４：２ＭＵＸ駆動クロック、２：１ＭＵＸ駆動クロック、２：１ＭＵＸ２９１のＦＦ０の入力、２：１ＭＵＸ２９１のＦＦ１の入力、２：１ＭＵＸ２９１のＦＦ０の出力、２：１ＭＵＸ２９１のＦＦ１の出力、２：１ＭＵＸ２９１の出力、ＸＯＲ０の出力、およびＸＯＲ１の出力を示す。４：２ＭＵＸ駆動クロックの２本のラインのうち上側のラインは４：２ＭＵＸ２５１のセレクタ０とＦＦ０とＦＦ２の駆動クロックを示し、下側のラインは４：２ＭＵＸ２５１のセレクタ１とＦＦ１とＦＦ３の駆動クロックを示す。
【００６５】
図４において、パターン発生器２３１から００１１の繰り返しのデータＤ０〜Ｄ７が送信されたとする。パターン発生器２３１から送信されたデータＤ０〜Ｄ７は、それぞれ０，０，１，１，０，０，１，１となる。
【００６６】
４：２ＭＵＸ２５１のセレクタ０からは、４：２ＭＵＸ駆動クロック（上側）の１（Ｈ）と０（Ｌ）に応じて、データＤ０＝０，Ｄ２＝１，Ｄ４＝０，Ｄ６＝１が順に出力され、２：１ＭＵＸのＦＦ０の入力となる。４：２ＭＵＸ２５１のセレクタ０から出力されるデータＤ０＝０，Ｄ２＝１，Ｄ４＝０，Ｄ６＝１は、第１のデータの一例である。
【００６７】
４：２ＭＵＸ２５１のセレクタ１からは、４：２ＭＵＸ駆動クロック（下側）の１（Ｈ）と０（Ｌ）に応じて、データＤ１＝０，Ｄ３＝１，Ｄ５＝０，Ｄ７＝１が順に出力され、２：１ＭＵＸのＦＦ１の入力となる。４：２ＭＵＸ２５１のセレクタ１から出力されるデータＤ１＝０，Ｄ３＝１，Ｄ５＝０，Ｄ７＝１は、第２のデータの一例である。
【００６８】
２：１ＭＵＸのＦＦ０は、２：１ＭＵＸの駆動クロックの立ち下がりエッジに応じて、入力されているデータを出力する。２：１ＭＵＸのＦＦ０は、データＤ０＝０，Ｄ２＝１，Ｄ４＝０，Ｄ６＝１を出力する。
【００６９】
２：１ＭＵＸのＦＦ１は、２：１ＭＵＸの駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。２：１ＭＵＸのＦＦ１は、データＤ１＝０，Ｄ３＝１，Ｄ５＝０，Ｄ７＝１を出力する。
【００７０】
２：１ＭＵＸのセレクタは、２：１ＭＵＸの駆動クロックが１（Ｈ）とき、２：１ＭＵＸのＦＦ０の出力を出力する。２：１ＭＵＸのセレクタは、２：１ＭＵＸの駆動クロックが０（Ｌ）とき、２：１ＭＵＸのＦＦ１の出力を出力する。図４に示すように、２：１ＭＵＸが正しくデータを受信できていれば、２：１ＭＵＸからは、パターン発生器２３１から送信されたデータと同じデータＤ０〜Ｄ７＝００１１００１１が出力される。
【００７１】
図４に示すように、２：１ＭＵＸが正しくデータを受信できている場合、２：１ＭＵＸのＦＦ１の入力と２：１ＭＵＸのＦＦ０の出力は同じ値となる。そのため、２：１ＭＵＸのＦＦ１の入力と２：１ＭＵＸのＦＦ０の出力の排他的論理和を出力するＸＯＲ０の出力は、０となる。
【００７２】
また、図４に示すように、２：１ＭＵＸが正しくデータを受信できている場合、２：１ＭＵＸのＦＦ０の入力と２：１ＭＵＸのＦＦ１の出力は異なる値となる。そのため、２：１ＭＵＸのＦＦ０の入力と２：１ＭＵＸのＦＦ１の出力の排他的論理和を出力するＸＯＲ１の出力は、１となる。
【００７３】
図５は、データの送受信が正常に行われない場合のタイミングチャートである。   
図５は、上から順に４：２ＭＵＸ駆動クロック、２：１ＭＵＸ駆動クロック、２：１ＭＵＸ２９１のＦＦ０の入力、２：１ＭＵＸ２９１のＦＦ１の入力、２：１ＭＵＸ２９１のＦＦ０の出力、２：１ＭＵＸ２９１のＦＦ１の出力、２：１ＭＵＸ２９１の出力、ＸＯＲ０の出力、およびＸＯＲ１の出力を示す。４：２ＭＵＸ駆動クロックの２本のラインのうち上側のラインは４：２ＭＵＸ２５１のセレクタ０とＦＦ０とＦＦ２の駆動クロックを示し、下側のラインは４：２ＭＵＸ２５１のセレクタ１とＦＦ１とＦＦ３の駆動クロックを示す。
【００７４】
図５において、図４と同様にパターン発生器２３１から００１１の繰り返しのデータＤ０〜Ｄ７が送信されたとする。パターン発生器２３１から送信されたデータＤ０〜Ｄ７は、それぞれ０，０，１，１，０，０，１，１となる。
【００７５】
４：２ＭＵＸ２５１のセレクタ０からは、４：２ＭＵＸ駆動クロック（上側）の１（Ｈ）と０（Ｌ）に応じて、データＤ０＝０，Ｄ２＝１，Ｄ４＝０，Ｄ６＝１が順に出力され、２：１ＭＵＸのＦＦ０の入力となる。
【００７６】
４：２ＭＵＸ２５１のセレクタ１からは、４：２ＭＵＸ駆動クロック（下側）の１（Ｈ）と０（Ｌ）に応じて、データＤ１＝０，Ｄ３＝１，Ｄ５＝０，Ｄ７＝１が順に出力され、２：１ＭＵＸのＦＦ１の入力となる。
【００７７】
２：１ＭＵＸのＦＦ０は、２：１ＭＵＸの駆動クロックの立ち下がりエッジに応じて、入力されているデータを出力する。ここで、２：１ＭＵＸのＦＦ０は、データＤ０＝０を正しく受信できず、データＤ０＝１を出力するとする。よって、２：１ＭＵＸのＦＦ０は、データＤ０＝１，Ｄ２＝１，Ｄ４＝０，Ｄ６＝１を出力する。
【００７８】
２：１ＭＵＸのＦＦ１は、２：１ＭＵＸの駆動クロックの立ち上がりエッジに応じて、入力されているデータを出力する。ここで、２：１ＭＵＸのＦＦ０は、データＤ５＝０を正しく受信できず、データＤ５＝１を出力するとする。よって、２：１ＭＵＸのＦＦ１は、データＤ１＝０，Ｄ３＝１，Ｄ５＝１，Ｄ７＝１を出力する。
【００７９】
図５に示すように、２：１ＭＵＸが正しくデータを受信できていない場合、２：１ＭＵＸのＦＦ１の入力と２：１ＭＵＸのＦＦ０の出力は異なる値となる。そのため、２：１ＭＵＸのＦＦ１の入力と２：１ＭＵＸのＦＦ０の出力の排他的論理和を出力するＸＯＲ０の出力は、１となる。
【００８０】
また、図５に示すように、２：１ＭＵＸが正しくデータを受信できていない場合、２：１ＭＵＸのＦＦ０の入力と２：１ＭＵＸのＦＦ１の出力は同じ値となる。そのため、２：１ＭＵＸのＦＦ０の入力と２：１ＭＵＸのＦＦ１の出力の排他的論理和を出力するＸＯＲ１の出力は、０となる。
【００８１】
まとめると、２：１ＭＵＸのＦＦ０が正しくデータを受信できている場合、ＸＯＲ０の出力は０となり、正しくデータを受信できていない場合、ＸＯＲ０の出力は１となる。また、２：１ＭＵＸのＦＦ１が正しくデータを受信できている場合、ＸＯＲ１の出力は１となり、正しくデータを受信できていない場合、ＸＯＲ１の出力は０となる。
【００８２】
図６は、シングルエンド信号を用いる場合の可変遅延回路の構成図である。
送信回路２２２−１がシングルエンド信号を用いて動作する場合、例えば、セレクタ２５３−ｂの出力データをシングルエンド信号を用いて送信する場合、可変遅延回路２６１−ｂは図６に示すような構成となる。
【００８３】
可変遅延回路２６１−ｂは、インバータ２６２−ｂ−ｄ（ｄ＝１〜６）およびセレクタ２６３−ｂを備える。
【００８４】
インバータ２６２−ｂ−１の出力はインバータ２６２−ｂ−２の入力と接続している。
インバータ２６２−ｂ−３の出力はインバータ２６２−ｂ−４の入力と接続し、インバータ２６２−ｂ−４の出力はインバータ２６２−ｂ−５の入力と接続し、インバータ２６２−ｂ−５の出力はインバータ２６２−ｂ−６の入力と接続している。
【００８５】
可変遅延回路２６１−ｂに入力されるセレクタ２５３−ｂから出力データは、３つに分岐され、分岐されたデータはそれぞれ、そのままセレクタ２６３−ｂに入力、インバータ２６２−ｂ−１、２６２−ｂ−２を介してセレクタ２６３−ｂに入力、インバータ２６２−ｂ−３〜２６２−ｂ−６を介してセレクタ２６３−ｂに入力される。
【００８６】
そのままセレクタ２６３−ｂに入力されたデータは遅延（位相が変化）しておらず、インバータ２６２−ｂ−１、２６２−ｂ−２を介して入力されたデータは２つのインバータ２６２−ｂ−１、２６２−ｂ−２により遅延（位相が変化）している。また、インバータ２６２−ｂ−３〜２６２−ｂ−６を介して入力されたデータは、４つのインバータ２６２−ｂ−３〜２６２−ｂ−６により、インバータ２６２−ｂ−１、２６２−ｂ−２を介して入力されたデータよりもさらに遅延（さらに位相が変化）している。
【００８７】
セレクタ２６３−ｂは、制御回路２７１−ｂから入力される制御信号（経路切り替えコード）に基づいて、入力されたデータのうちのいずれかを出力する。例えば、セレクタ２６３−ｂは、経路切り替えコード＝０の場合、そのままセレクタ２６３−ｂに入力されたデータを出力する。セレクタ２６３−ｂは、経路切り替えコード＝１の場合、インバータ２６２−ｂ−１、２６２−ｂ−２を介して入力されたデータを出力する。セレクタ２６３−ｂは、経路切り替えコード＝２の場合、インバータ２６２−ｂ−３〜２６２−ｂ−６を介して入力されたデータを出力する。セレクタ２６３−ｂは、経路切り替えコードに基づいて、遅延時間が異なる３つの入力データのいずれかを出力する。
【００８８】
セレクタ２６３−ｂから出力されたデータはＦＦ２９２−ｂに入力される。
尚、図３の可変遅延回路２６１’−ｂも図６に示す可変遅延回路２６１−ｂと同様の構成とすることが出来る。
【００８９】
図７は、差動信号を用いる場合の可変遅延回路の構成図である。
送信回路２２２−１が差動信号を用いて動作する場合、例えば、セレクタ２５３−ｂの出力データを差動信号を用いて送信する場合、可変遅延回路は図７に示すような構成となる。
【００９０】
可変遅延回路２６１−ｂは、インバータ２６４−ｂ−ｅ（ｅ＝１〜３）、２６６−ｂ−ｅ、およびセレクタ２６５−ｂ、２６７−ｂを備える。
【００９１】
インバータ２６４−ｂ−２の入力はインバータ２６４−ｂ−１の入力と接続している。インバータ２６４−ｂ−２の出力は、インバータ２６４−ｂ−３の入力と接続している。
【００９２】
インバータ２６６−ｂ−１の入力はインバータ２６６−ｂ−２の入力と接続している。インバータ２６６−ｂ−２の出力は、インバータ２６６−ｂ−３の入力と接続している。
【００９３】
差動信号を用いる場合、セレクタ２５３−ｂは、シングルエンド信号と同様のポジティブ信号と、ポジティブ信号を反転させたネガティブ信号と、を出力する。ポジティブ信号およびネガティブ信号は、可変遅延回路２６１−ｂに入力される。
【００９４】
可変遅延回路２６１−ｂに入力されるセレクタ２５３−ｂからのポジティブ信号は、３つに分岐され、分岐されたデータはそれぞれ、そのままセレクタ２６５−ｂに入力、インバータ２６４−ｂ−１を介してセレクタ２６７−ｂに入力、インバータ２６４−ｂ−２、２６４−ｂ−３を介してセレクタ２６５−ｂに入力される。
【００９５】
可変遅延回路２６１−ｂに入力されるセレクタ２５３−ｂからのネガティブ信号は、３つに分岐され、分岐されたデータはそれぞれ、そのままセレクタ２６７−ｂに入力、インバータ２６６−ｂ−１を介してセレクタ２６５−ｂに入力、インバータ２６６−ｂ−２、２６６−ｂ−３を介してセレクタ２６７−ｂに入力される。
【００９６】
セレクタ２６５−ｂは、制御回路２７１−ｂから入力される制御信号（経路切り替えコード）に基づいて、入力されたデータのうちのいずれかを出力する。例えば、セレクタ２６５−ｂは、経路切り替えコード＝０の場合、そのままセレクタ２６５−ｂに入力されたポジティブ信号を出力する。セレクタ２６５−ｂは、経路切り替えコード＝１の場合、インバータ２６６−ｂ−１を介して入力されたネガティブ信号を出力する。セレクタ２６５−ｂは、経路切り替えコード＝２の場合、インバータ２６４−ｂ−２、２６４−ｂ−３を介して入力されたポジティブ信号を出力する。
【００９７】
セレクタ２６７−ｂは、制御回路２７１−ｂから入力される制御信号（経路切り替えコード）に基づいて、入力されたデータのうちのいずれかを出力する。例えば、セレクタ２６７−ｂは、経路切り替えコード＝０の場合、そのままセレクタ２６７−ｂに入力されたネガティブ信号を出力する。セレクタ２６７−ｂは、経路切り替えコード＝１の場合、インバータ２６４−ｂ−１を介して入力されたポジティブ信号を出力する。セレクタ２６５−ｂは、経路切り替えコード＝２の場合、インバータ２６６−ｂ−２、２６６−ｂ−３を介して入力されたネガティブ信号を出力する。
【００９８】
セレクタ２６５−ｂ、２６７−ｂからそれぞれ出力されたポジティブ信号とネガティブ信号はＦＦ２９２−ｂに入力される。ＦＦ２９２−ｂは、ポジティブ信号とネガティブ信号の差分を入力データとして使用する。
【００９９】
図８は、制御回路の構成図（その１）である。
制御回路２７１−ｂは、ＸＯＲ回路２７２−ｂ、カウンタ２７３−ｂ、測定結果格納レジスタ２７４−ｂ、経路設定格納レジスタ２７５−ｂ、および経路切り替え制御部２７６−ｂ、セレクタ２７７−ｂを備える。
【０１００】
ＸＯＲ回路２７２−ｂは、ＸＯＲ回路２８１−ｂの出力と期待値の排他的論理和をカウンタ２７３−ｂに出力する。期待値は、制御回路２７１−ｂにより設定され、ＦＦ２９２−ｂが正しくデータを受信できている場合にＸＯＲ回路２８１−ｂから出力される値が設定される。すなわち、ＸＯＲ回路２７２−ｂは、ＦＦ２９２−ｂが正しくデータを受信できている場合に０、ＦＦ２９２−ｂが正しくデータを受信できていない場合に１を出力する。
【０１０１】
カウンタ２７３−ｂは、ＸＯＲ回路２７２−ｂが１を出力した回数をカウントする。カウンタ２７３−ｂは、経路切り替え制御部２７６−ｂからカウンタリセット信号が入力されるとカウント数を０にする。カウンタ２７３−ｂは、カウント数ｃｎｔ＿ｉとカウント数ｃｎｔ＿ｉに対応する経路切り替えコード＝ｉを測定結果格納レジスタ２７４−ｂに出力する。
【０１０２】
測定結果格納レジスタ２７４−ｂは、カウント数ｃｎｔ＿ｉと経路切り替え制御部２７６−ｂから入力される経路切り替えコード＝ｉを格納する。
【０１０３】
経路設定格納レジスタ２７５−ｂは、現在までに測定したカウント数のうち、最小のカウント数ｃｎｔ＿ｍｉｎとカウント数ｃｎｔ＿ｍｉｎに対応する経路切り替えコード＝ｉを格納する。
【０１０４】
経路切り替え制御部２７６−ｂは、経路切り替えコード＝ｉを測定結果格納レジスタ２７４−ｂはおよびセレクタ２７７−ｂに出力する。
【０１０５】
セレクタ２７７−ｂは、タイミング調整イネーブル信号が０の場合、経路設定格納レジスタ２７５−ｂに格納されている経路切り替えコード＝ｉをセレクタ２６３−ｂに出力する。セレクタ２７７−ｂは、タイミング調整イネーブル信号が１の場合、経路切り替え制御部２７６−ｂから入力される経路切り替えコード＝ｉを出力する。
【０１０６】
図９は、制御回路の構成図（その２）である。
図２に示す送信回路２２１−１において、制御回路２７１−０と制御回路２７１−１とは別々になっているが、図９に示すように、制御回路２７１−０と制御回路２７１−１とを含む制御回路１２７１を用いても良い。制御回路２７１−０と制御回路２７１−１の構成は、図８で説明したものと同様であるので、詳細な説明は省略する。
【０１０７】
図１０は、制御回路の構成図（その３）である。
制御回路２７１−ｂとして、図１０に示すような制御回路２７１’−ｂを用いても良い。
【０１０８】
制御回路２７１’−ｂは、ＸＯＲ回路２７２−ｂ、カウンタ２７３−ｂ、測定結果格納レジスタ２７４−ｂ、経路設定格納レジスタ２７５−ｂ、および経路切り替え制御部２７６−ｂ、セレクタ２７７−ｂを備える。また、制御回路２７１’−ｂは、１入力ｎ出力デマルチプレクサ（１：ｎＤＥＭＵＸ）２７８−ｂ、ＦＩＦＯ２７９−ｂを備える。また、ＸＯＲ回路２８１−ｂと１：ｎＤＥＭＵＸ２７８−ｂとの間に、１次ローパスフィルタ（ＬＰＦ）２８２−ｂが配置される。
【０１０９】
図１０に示す制御回路２７１’−ｂは、図８の制御回路２７１−ｂと比べて、１：ｎＤＥＭＵＸ２７８−ｂ、およびＦＩＦＯ２７９−ｂが追加されている。また、ＸＯＲ回路２８１−ｂと１：ｎＤＥＭＵＸ２７８−ｂとの間に、ＬＰＦ２８２−ｂが配置されている。
【０１１０】
ＬＰＦ２８２−ｂは、ＸＯＲ回路２８１−ｂの出力の高周波成分をカットして１：ｎＤＥＭＵＸ２７８−ｂに出力する。
【０１１１】
１：ｎＤＥＭＵＸ２７８−ｂは、１ビット幅のＬＰＦ２８２−ｂの出力データをｎビット幅のパラレルデータに変換してＦＩＦＯ２７９−ｂに出力する。
【０１１２】
ＦＩＦＯ２７９−ｂは、１：ｎＤＥＭＵＸ２７８−ｂの出力データを格納し、１ビット幅のデータでＸＯＲ回路２７２−ｂに出力する。
【０１１３】
ＸＯＲ回路２７２−ｂは、ＦＩＦＯ２７９−ｂの出力と期待値の排他的論理和をカウンタ２７３に出力する。ＸＯＲ回路２７２−ｂは、ＦＩＦＯ２７９−ｂの出力と期待値の排他的論理和をカウンタ２７３−ｂに出力する。
【０１１４】
カウンタ２７３−ｂ、測定結果格納レジスタ２７４−ｂ、経路設定格納レジスタ２７５−ｂ、および経路切り替え制御部２７６−ｂ、およびセレクタ２７７−ｂの機能および構成は、図８で説明したものとどうようであるため説明は省略する。
【０１１５】
図１１は、ＬＰＦを用いた場合のタイミングチャートである。
図１１は、上から順に４：２ＭＵＸの駆動クロック、２：１ＭＵＸの駆動クロック、２：１ＭＵＸのＦＦ０の入力、２：１ＭＵＸのＦＦ１の入力、２：１ＭＵＸのＦＦ０の出力、２：１ＭＵＸのＦＦ１の出力、２：１ＭＵＸの出力、ＸＯＲ０の出力、およびＬＰＦの出力を示す。４：２ＭＵＸの駆動クロックの２本のラインのうち上側のラインは４：２ＭＵＸのセレクタ０とＦＦ０とＦＦ２の駆動クロックを示し、下側のラインは４：２ＭＵＸのセレクタ１とＦＦ１とＦＦ３の駆動クロックを示す。
【０１１６】
図１１では、図４と同様に、パターン発生器２３１から００１１の繰り返しのデータＤ０〜Ｄ７が送信されたとする。パターン発生器２３１から送信されたデータＤ０〜Ｄ７は、それぞれ０，０，１，１，０，０，１，１となる。
【０１１７】
図１１では、２：１ＭＵＸが正しくデータを受信できているため、ＸＯＲ０の出力は、０となることが望ましい。しかしながら、２:１ＭＵＸクロックのエッジが２:１ＭＵＸ入力データ中心に来ていない等、フリップフロップの入出力データの位相が理想状態(例えば、図４)に対してずれている場合、ＸＯＲ０、ＸＯＲ１の出力にグリッジが発生する。例えば、ＸＯＲ０の出力において、値が１の細いパルス（グリッチ）が発生する。
【０１１８】
ＬＰＦは、このようなグリッチを低減するために用いられる。ＸＯＲ０の出力がＬＰＦを通過すると、図１１の一番下のＬＰＦ出力に示すようにグリッチが低減され、ＬＰＦの後段では値が０として処理される。
【０１１９】
図１２Ａ，１２Ｂは、実施の形態に係るタイミング調整方法のフローチャートである。
ステップＳ５０１において、制御回路２２４は、初期化シーケンスを行う。
【０１２０】
ステップＳ５０２において、制御回路２２４は、タイミング調整イネーブル信号を１に設定する。
【０１２１】
ステップＳ５０３において、パターン発生器２３１は、００１１を繰り返すＭビット幅のデータを出力する。パターン発生器２３１から出力されたデータは、Ｍ：４ＭＵＸ２４１に入力され、Ｍ：４ＭＵＸ２４１は、Ｍビット幅のデータを４ビット幅のデータに変換して４：２ＭＵＸ２５１に出力する。４：２ＭＵＸ２５１は、４ビット幅のデータを２ビット幅のデータに変換して、出力する。送信回路２２１−１が図２に示す構成の場合、４：２ＭＵＸ２５１は、２ビット幅のデータを可変遅延回路２６１−ｂに出力する。詳細には、セレクタ２５３−０，２５３−１は、それぞれ１ビット幅のデータを可変遅延回路２６１−０、２６１−１に出力する。送信回路２２２−１が図３に示す構成の場合、４：２ＭＵＸ２５１は、２ビット幅のデータを２：１ＭＵＸ２９１に出力する。詳細には、セレクタ２５３−０，２５３−１は、それぞれ１ビット幅のデータをＦＦ２９２−０，２９２−１に出力する。尚、４：２ＭＵＸ２５１のセレクタ２５３−ｂから出力されるデータは０１０１のような０と１を繰り返すデータである。
【０１２２】
ステップＳ５０４は、ＦＦ２９２−ｊをスイープするループの開始点である。変数ｊの初期値は０であり、ループを実行する条件はｊが１以下であり、ループの終了毎にｊは１ずつインクリメントされる。
【０１２３】
ステップＳ５０５は、ＦＦ２９２−ｊのデータ受信を判定するループの開始点である。変数ｉの初期値は０であり、当該ループを実行する条件はｉが可変遅延回路２６１−ｊの経路切り替え数−１以下であり、当該ループの終了毎にｉは１ずつインクリメントされる。可変遅延回路２６１−ｊの経路切り替え数は、可変遅延回路２６１−ｊが出力可能な遅延時間の異なるデータ（またはクロック信号）の種類の数である。言い換えれば、可変遅延回路２６１−ｊが入力されたデータ（またはクロック信号）に対して、調整可能な遅延時間の種類である。例えば、可変遅延回路２６１−ｊが図６に示すような構成となっている場合、可変遅延回路２６１−ｊのセレクタ２６３−ｊは、３種類の遅延時間の異なるデータいずれかを出力するので、経路切り替え数は３となる。よって、当該ループを実行する条件はｉが２以下の場合となる。
【０１２４】
ステップＳ５０６において、制御回路２７１−ｊは、ｊの値を判定する。ｊ＝０の場合、制御はステップＳ５０７に進み、ｊ＝１の場合、制御はステップＳ５０８に進む。
【０１２５】
ステップＳ５０７において、制御回路２７１−ｊは、期待値を０に設定する。
ステップＳ５０８において、制御回路２７１−ｊは、期待値を１に設定する。
【０１２６】
ステップＳ５０９において、経路切り替え制御部２７６−ｊは、経路切り替えコード＝ｉをセレクタ２７７−ｊに出力する。セレクタ２７７−ｊは、経路切り替えコード＝ｉを可変遅延回路２６１−ｊのセレクタ２６３−ｊに出力する。セレクタ２６３−ｊは、入力された経路切り替えコード＝ｉに基づいて、入力されたデータのうちのいずれかを出力する。
【０１２７】
ステップＳ５１０において、経路切り替え制御部２７６−ｊは、カウンタリセット信号をカウンタに出力する。カウンタ２７３−ｊは、カウント数ｃｎｔ＿ｉを０に初期化する。
【０１２８】
ステップＳ５１１において、制御回路２７１−ｊは、測定期間ｔ＿ｍｅａｓを設定する。
【０１２９】
ステップＳ５１２において、制御回路２７１−ｊは、計測を開始する。
ステップＳ５１３において、ＸＯＲ回路２７２−ｊは、ＸＯＲ回路２８１−ｊの出力と期待値と比較する。ＸＯＲ回路２８１−ｊの出力と期待値とが一致する場合、制御はステップＳ５１５に進み、一致しない場合、制御はステップＳ５１４に進む。詳細には、ＸＯＲ回路２７２−ｊは、ＸＯＲ回路２８１−ｊの出力と期待値とのＸＯＲを出力する。すなわち、ＸＯＲ回路２８１−ｊの出力と期待値とが一致する場合は、０を出力し、ＸＯＲ回路２８１−ｊの出力と期待値とが一致しない場合は、１を出力する。
【０１３０】
ステップＳ５１４において、カウンタ２７３−ｊは、カウント数ｃｎｔ＿ｉを１インクリメントする。すなわち、カウンタ２７３−ｊは、ＸＯＲ回路２７２−ｊから１が出力されると、カウント数ｃｎｔ＿ｉを１インクリメントする。
【０１３１】
ステップＳ５１５において、制御回路２７１−ｊは、ステップＳ５１２の計測開始からの経過時間が測定期間ｔ＿ｍｅａｓを超えているか否か判定する。経過時間が測定期間ｔ＿ｍｅａｓを超えている場合、制御はステップＳ５１６に進み、経過時間が測定期間ｔ＿ｍｅａｓを超えていない場合、制御はステップＳ５１３に進む。
【０１３２】
ステップＳ５１６において、測定結果格納レジスタ２７４−ｊは、経路切り替えコード＝ｉとカウント数ｃｎｔ＿ｉを格納する。
【０１３３】
ステップＳ５１７において、制御回路２７１−ｊは、ｉの値を判定する。ｉが０より大きい場合、制御はステップＳ５１８に進み、ｉが０の場合、制御はステップＳ５１９に進む。
【０１３４】
ステップＳ５１８において、制御回路２７１−ｊは、カウント数ｃｎｔ＿ｉと経路設定格納レジスタ２７５−ｊに格納されているカウント数ｃｎｔ＿ｍｉｎとを比較する。カウント数ｃｎｔ＿ｉがカウント数ｃｎｔ＿ｍｉｎ未満の場合、制御はステップＳ５１９に進み、カウント数ｃｎｔ＿ｉがカウント数ｃｎｔ＿ｍｉｎ以上の場合、制御はステップＳ５２０に進む。
【０１３５】
ステップＳ５１９において、経路設定格納レジスタ２７５−ｊは、経路切り替えコード＝ｉとカウント数ｃｎｔ＿ｉを格納する。ここで、経路設定格納レジスタ２７５−ｊに格納されたカウント数ｃｎｔ＿ｉはカウント数ｃｎｔ＿ｍｉｎとする。
【０１３６】
ステップＳ５２０は、ＦＦ２９２−ｊのデータ受信を判定するループの終了点である。制御回路２７１−ｊは、ｉを１インクリメントする。ｉが可変遅延回路２６１−ｊの経路切り替え数−１以下の場合、制御は当該ループの開始点のステップＳ５０５に戻り、ｉが可変遅延回路２６１−ｊの経路切り替え数−１より大きい場合、制御はステップＳ５２１に進む。
【０１３７】
ステップＳ５２１は、ＦＦ２９２−ｊをスイープするループの終了点である。制御回路２７１−ｊは、ｊを１インクリメントする。ｊが１以下の場合、制御は当該ループの開始点のステップＳ５０４に戻り、ｊが１より大きい場合、制御はステップＳ５２２に進む。
【０１３８】
ステップＳ５２２において、制御回路２２４は、タイミング調整イネーブル信号を０に設定する。
【０１３９】
ここで、２：１ＭＵＸ２９１の入力データが１ＵＩ（Ｕｎｉｔ  Ｉｎｔｅｒｖａｌ）以上遅れている場合の対応について説明する。
【０１４０】
例えば、図２に示すＦＦ２９２−０は、４：２ＭＵＸ２５１からデータが出力されて後の２：１ＭＵＸ駆動クロックの立ち下がりエッジで入力データを取り込む。
【０１４１】
実施の形態の送信回路２２２−１は、４：２ＭＵＸ２５１から出力されたデータの位相が進んでいるか遅れているかの判定はしておらず、可変遅延回路２６１−ｂは、データを遅延させる制御しか出来ない。そのため、可変遅延回路２６１−１による遅延処理によっては、ＦＦ２９２−０は、本来の入力データを取り込むべきクロックの立ち下がりエッジより１サイクル後ろのクロックの立ち下がりエッジで入力データを取り込んでしまう可能性がある。２：１ＭＵＸ２９１の入力データが１ＵＩ以上遅れている場合に、ＦＦ２９２−０は、本来の入力データを取り込むべきクロックの立ち下がりエッジより１サイクル後ろのクロックの立ち下がりエッジで入力データを取り込んでしまう可能性がある。これは、同期回路の設計思想に反する禁止された動作である。
【０１４２】
このような場合、図２に示す送信回路２２２−１を以下のように変更する。
ＦＦ２９２−０のクロック信号の入力部にインバータを削除する。これにより、ＦＦ２９２−０は、２：１ＭＵＸ駆動クロックの立ち上がりエッジに応じて、入力されているデータを取り込んで出力する。
【０１４３】
ＦＦ２９２−１は、クロック信号の入力部にインバータを具備する。これにより、ＦＦ２９２−１は、２：１ＭＵＸ駆動クロックの立ち下りエッジに応じて、入力されているデータを取り込んで出力する。
【０１４４】
セレクタ２９１のデータ出力の制御論理を反転させる。すなわち、セレクタ２９１は、２：１ＭＵＸ駆動クロックが０（Ｌ）のとき、ＦＦ２９２−０からの入力データを出力し、２：１ＭＵＸ駆動クロックが１（Ｈ）のとき、ＦＦ２９２−１からの入力データを出力する。
【０１４５】
上記のような構成とすることで、２：１ＭＵＸ２９１の入力データが１ＵＩ以上遅れている場合でも、送信回路２２２−１は正しい動作を行うことが出来る。
【０１４６】
実施の形態のパラレル・シリアル変換回路によれば、マルチプレクサがデータを正しく受信できたか判定しつつ、マルチプレクサが正しくデータを受信できるように受信タイミングを調整することができる。
【０１４７】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【０１４８】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）
所定のパターンの第１のデータと前記所定のパターンの第２のデータを、第１のクロックが分周された第２のクロックに応じて出力するデータ送信部と、
前記第１のデータを受け取り、前記第１のデータを前記第１のクロックに応じて出力する第１のフリップフロップと、
前記第２のデータを受け取り、前記第２のデータを前記第１のクロックに応じて出力する第２のフリップフロップと、
前記第１のフリップフロップから出力された前記第１のデータまたは前記第２のフリップフロップから出力された前記第２のデータのいずれかを選択し、選択したデータを前記第１のクロックに応じて出力するセレクタと、
前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較し、比較結果に基づいて、前記第１のフリップフロップが前記第１のデータを受け取るタイミングを調整する調整部と、
を備えるパラレル・シリアル変換回路。
（付記２）
前記データ送信部から出力された前記第１のデータを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第１のフリップフロップが正しく前記第１のデータを受信できていたことを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記１記載のパラレル・シリアル変換回路。
（付記３）
前記第２のクロックを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第１のフリップフロップが正しく前記第１のデータを受信できていたことを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記１記載のパラレル・シリアル変換回路。
（付記４）
前記所定のパターンは、０と１の繰り返しであることを特徴とする付記１乃至３のいずれか１項に記載のパラレル・シリアル変換回路。
（付記５）
００１１の繰り返しである他のパターンの第３のデータを生成するパターン生成部をさらに備え、
前記データ送信部は、前記第３のデータに基づいて、前記所定のパターンを送信することを特徴とする付記４記載のパラレル・シリアル変換回路。
（付記６）
パラレル・シリアル変換回路を備える情報処理装置であって、
前記パラレル・シリアル変換回路は、
所定のパターンの第１のデータと前記所定のパターンの第２のデータを、第１のクロックが分周された第２のクロックに応じて出力するデータ送信部と、
前記第１のデータを受け取り、前記第１のデータを前記第１のクロックに応じて出力する第１のフリップフロップと、
前記第２のデータを受け取り、前記第２のデータを前記第１のクロックに応じて出力する第２のフリップフロップと、
前記第１のフリップフロップから出力された前記第１のデータまたは前記第２のフリップフロップから出力された前記第２のデータのいずれかを選択し、選択したデータを前記第１のクロックに応じて出力するセレクタと、
前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較し、比較結果に基づいて、前記第１のフリップフロップが前記第１のデータを受け取るタイミングを調整する調整部と、
を備えることを特徴とする情報処理装置。
（付記７）
前記データ送信部から出力された前記第１のデータを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第１のフリップフロップが正しく前記第１のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記６記載の情報処理装置。
（付記８）
前記第２のクロックを設定時間遅延させる遅延部をさらに備え、
前記調整部は、前記設定時間を複数の遅延時間のいずれかに設定し、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第１のフリップフロップが正しく前記第１のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記６記載の情報処理装置。
（付記９）
前記所定のパターンは、０と１の繰り返しであることを特徴とする付記６乃至８のいずれか１項に記載の情報処理装置。
（付記１０）
００１１の繰り返しである他のパターンの第３のデータを生成するパターン生成部をさらに備え、
前記データ送信部は、前記第３のデータに基づいて、前記所定のパターンを送信することを特徴とする付記９記載の情報処理装置。
（付記１１）
パラレル・シリアル変換回路のタイミング調整方法であって、
データ送信部が所定のパターンの第１のデータと前記所定のパターンの第２のデータを、第１のクロックが分周された第２のクロックに応じて出力し
第１のフリップフロップが前記第１のデータを受け取り、前記第１のデータを前記第１のクロックに応じて出力し、
第２のフリップフロップが前記第２のデータを受け取り、前記第２のデータを前記第１のクロックに応じて出力し、
セレクタが前記第１のフリップフロップから出力された前記第１のデータまたは前記第２のフリップフロップから出力された前記第２のデータのいずれかを選択し、選択したデータを前記第１のクロックに応じて出力し、
調整部が前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較し、比較結果に基づいて、前記第１のフリップフロップが前記第１のデータを受け取るタイミングを調整する、
処理を備えることを特徴とするタイミング調整方法。
（付記１２）
遅延部が前記データ送信部から出力された前記第１のデータを設定時間遅延させ、
前記調整部が前記設定時間を複数の遅延時間のいずれかに設定し、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第１のフリップフロップが正しく前記第１のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定する付記１１記載のタイミング調整方法。
（付記１３）
前記第２のクロックを設定時間遅延させる遅延部をさらに備え、
前記調整部が前記設定時間を複数の遅延時間のいずれかに設定し、前記第２のフリップフロップが受け取る前記第２のデータと前記第１のフリップフロップから出力された前記第１のデータとを比較する処理を繰り返し、複数の比較結果のうちで、最も多く前記第１のフリップフロップが正しく前記第１のデータを受信できていることを示す比較結果に対応する遅延時間を前記設定時間に設定することを特徴とすることを特徴とする付記１１記載のタイミング調整方法。
（付記１４）
前記所定のパターンは、０と１の繰り返しであることを特徴とする付記１１乃至１３のいずれか１項に記載のタイミング調整方法。
（付記１５）
パターン生成部が００１１の繰り返しである他のパターンの第３のデータを生成し、
前記データ送信部は、前記第３のデータに基づいて、前記所定のパターンを送信することを特徴とする付記１４記載のタイミング調整方法。
【符号の説明】
【０１４９】
１０１    情報処理装置
２０１    ＣＰＵパッケージ
２２１    ＳｅｒＤｅｓ
２２２    送信回路
２２３    受信回路
２２４    制御回路
２２５    クロック生成回路
２３１    パターン発生器
２４１    Ｍ入力４出力マルチプレクサ
２５１    ４入力２出力マルチプレクサ
２５２    フリップフロップ
２５３    セレクタ
２６１，２６１’    可変遅延回路
２７１    制御回路
２８１    ＸＯＲ回路
２９１    ２入力１出力マルチプレクサ
２９２    フリップフロップ
２９３    セレクタ
２９５    分周器
３０１    メモリモジュール
３１１    メモリチップ
３２１    ＳｅｒＤｅｓ
【図１】
0006575390.tif 000002
【図２】
0006575390.tif 000003
【図３】
0006575390.tif 000004
【図４】
0006575390.tif 000005
【図５】
0006575390.tif 000006
【図６】
0006575390.tif 000007
【図７】
0006575390.tif 000008
【図８】
0006575390.tif 000009
【図９】
0006575390.tif 000010
【図１０】
0006575390.tif 000011
【図１１】
0006575390.tif 000012
【図１２Ａ】
0006575390.tif 000013
【図１２Ｂ】
0006575390.tif 000014