(57)【要約】【課題】データに対するクロック信号の位相を調整することができる送信回路を提供することを課題とする。【解決手段】送信回路は、第１のクロック信号と、前記第１のクロック信号より周波数が低い第２のクロック信号を生成するクロック生成回路（１２４，１２５）と、前記第２のクロック信号に基づいて入力データを、前記入力データよりビット幅が狭い中間データに変換する第１の変換回路（１１１）と、前記第１のクロック信号に基づいて前記中間データを、前記中間データよりビット幅が狭い出力データに変換する第２の変換回路（１１３）と、前記出力データのデータ列を順次キャプチャするキャプチャ回路（１１６〜１２３）と、前記キャプチャしたデータ列の解析を行う解析回路（１３７）と、前記解析の結果に基づいて前記第２のクロック信号の位相を調整する位相調整回路（１３８，１２６）とを有する。【選択図】図１
2018139354.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロック信号と、前記第１のクロック信号より周波数が低い第２のクロック信号を生成するクロック生成回路と、
前記第２のクロック信号に基づいて入力データを、前記入力データよりビット幅が狭い中間データに変換する第１の変換回路と、
前記第１のクロック信号に基づいて前記中間データを、前記中間データよりビット幅が狭い出力データに変換する第２の変換回路と、
前記出力データのデータ列を順次キャプチャするキャプチャ回路と、
前記キャプチャしたデータ列の解析を行う解析回路と、
前記解析の結果に基づいて前記第２のクロック信号の位相を調整する位相調整回路と
を有する送信回路。
【請求項２】
前記解析回路は、前記キャプチャしたデータ列のエッジ数を検出し、
前記位相調整回路は、前記検出されたエッジ数に基づいて前記第２のクロック信号の位相を調整する請求項１に記載の送信回路。
【請求項３】
前記解析回路は、前記キャプチャしたデータ列のパルス幅を検出し、
前記位相調整回路は、前記検出されたパルス幅に基づいて前記第２のクロック信号の位相を調整する請求項１に記載の送信回路。
【請求項４】
前記キャプチャ回路は、前記出力データのデータ列の１ＵＩに異なる複数のタイミングでキャプチャする請求項１乃至３のいずれか１項に記載の送信回路。
【請求項５】
さらに、送信データ又はテストデータを選択して前記入力データとして前記第１の変換回路に出力するセレクタを有し、
前記位相調整回路は、前記セレクタが前記テストデータを選択した場合に、前記第２のクロック信号の位相を調整する請求項１乃至４のいずれか１項に記載の送信回路。
【請求項６】
前記解析回路は、前記第２のクロック信号の１周期に相当する位相の範囲に対して、前記キャプチャしたデータ列の解析を行い、
前記位相調整回路は、前記解析の結果が正常である位相の範囲の真中の位相になるように、前記第２のクロック信号の位相を調整する請求項１乃至５のいずれか１項に記載の送信回路。
【請求項７】
前記位相調整回路は、前記検出されるエッジ数が閾値以下になるように、前記第２のクロック信号の位相を調整する請求項２に記載の送信回路。
【請求項８】
前記位相調整回路は、前記検出されるパルス幅が閾値より広くなるように、前記第２のクロック信号の位相を調整する請求項３に記載の送信回路。
【請求項９】
内部データを生成する内部回路と、
前記内部データを受けとる送信回路とを有し、
前記送信回路は、
第１のクロック信号と、前記第１のクロック信号より周波数が低い第２のクロック信号を生成するクロック生成回路と、
前記第２のクロック信号に基づいて入力データを、前記入力データよりビット幅が狭い中間データに変換する第１の変換回路と、
前記第１のクロック信号に基づいて前記中間データを、前記中間データよりビット幅が狭い出力データに変換する第２の変換回路と、
前記出力データのデータ列を順次キャプチャするキャプチャ回路と、
前記キャプチャしたデータ列の解析を行う解析回路と、
前記解析の結果に基づいて前記第２のクロック信号の位相を調整する位相調整回路と
を有する集積回路。
【請求項１０】
前記解析回路は、前記キャプチャしたデータ列のエッジ数を検出し、
前記位相調整回路は、前記検出されたエッジ数に基づいて前記第２のクロック信号の位相を調整する請求項９に記載の集積回路。
【請求項１１】
前記解析回路は、前記キャプチャしたデータ列のパルス幅を検出し、
前記位相調整回路は、前記検出されたパルス幅に基づいて前記第２のクロック信号の位相を調整する請求項９に記載の集積回路。
【請求項１２】
前記キャプチャ回路は、前記出力データのデータ列の１ＵＩに異なる複数のタイミングでキャプチャする請求項９乃至１１のいずれか１項に記載の集積回路。
【請求項１３】
前記送信回路は、さらに、送信データ又はテストデータを選択して前記入力データとして前記第１の変換回路に出力するセレクタを有し、
前記位相調整回路は、前記セレクタが前記テストデータを選択した場合に、前記第２のクロック信号の位相を調整する請求項９乃至１２のいずれか１項に記載の集積回路。
【請求項１４】
前記解析回路は、前記第２のクロック信号の１周期に相当する位相の範囲に対して、前記キャプチャしたデータ列の解析を行い、
前記位相調整回路は、前記解析の結果が正常である位相の範囲の真中の位相になるように、前記第２のクロック信号の位相を調整する請求項９乃至１３のいずれか１項に記載の集積回路。
【請求項１５】
前記位相調整回路は、前記検出されるエッジ数が閾値以下になるように、前記第２のクロック信号の位相を調整する請求項１０に記載の集積回路。
【請求項１６】
前記位相調整回路は、前記検出されるパルス幅が閾値より広くなるように、前記第２のクロック信号の位相を調整する請求項１１に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信回路及び集積回路に関する。
【背景技術】
【０００２】
データ本体と、誤りを検出するための検出情報を含むデータブロックを使用し、基準クロック信号を用いて転送されるデータブロックを取り込む位相キャリブレーション回路が知られている（特許文献１参照）。受信クロック生成部は、基準クロック信号に対して位相をずらした第１のクロック信号と、第１のクロック信号に対して位相を早めた第２のクロック信号と、第１のクロック信号に対して位相を遅らせた第３のクロック信号とを少なくとも含む複数のクロック信号を生成する。判定部は、データブロックを、複数のクロック信号に応じて取り込み、検出情報を用いてリードエラーが発生したか否かを判定する。そして、判定部は、第１のクロック信号に応じて取り込んだデータブロックを判定した第１判定結果、第２のクロック信号に応じて取り込んだデータブロックを判定した第２判定結果、及び第３のクロック信号に応じて取り込んだデータブロックを判定した第３判定結果を少なくとも含む複数の判定結果を出力する。位相調整部は、複数の判定結果に応じて、第１のクロック信号の位相を調整することを受信クロック生成部へ指示する。
【０００３】
また、データ及びクロックを受信装置へ送信する送信装置が知られている（特許文献２参照）。データ送信部は、データを受信装置へ送信する。クロック送信部は、クロックを受信装置へ送信する。受信部は、受信装置からデータを受信する。制御部は、データ送信部によるデータ送信及びクロック送信部によるクロック送信を制御する。制御部は、通常データ、受信装置におけるデータ受信状態またはクロック受信状態を検出するための校正データ、この校正データの送信の開始を受信装置へ指示する校正開始指示データ、及び、受信装置が校正データをサンプリングして得た校正サンプルデータを送出することを受信装置へ指示する送信指示データ、それぞれを所定のタイミングでデータ送信部から受信装置へ送信させる。制御部は、受信装置から送出された校正サンプルデータを受信部が受信すると、この受信した校正サンプルデータに基づいて、データ送信部により送信されるデータとクロック送信部により送信されるクロックとの間の位相の調整、データ送信部により送信されるデータの振幅の調整、データ送信部により送信されるデータのデューティの調整、及び、クロック送信部により送信されるクロックのデューティの調整、のうち何れか１以上の制御を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−９０３６１号公報
【特許文献２】特開２０１１−９１７４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
クロック信号が遅延すると、データに対してクロック信号の位相がずれてしまう。位相がずれたデータが送信されると、受信エラーの発生率が高くなる。特に、クロック信号の周波数が高くなると、受信エラーの発生率が高くなる。
【０００６】
１つの側面では、本発明の目的は、データに対するクロック信号の位相を調整することができる送信回路及び集積回路を提供することである。
【課題を解決するための手段】
【０００７】
送信回路は、第１のクロック信号と、前記第１のクロック信号より周波数が低い第２のクロック信号を生成するクロック生成回路と、前記第２のクロック信号に基づいて入力データを、前記入力データよりビット幅が狭い中間データに変換する第１の変換回路と、前記第１のクロック信号に基づいて前記中間データを、前記中間データよりビット幅が狭い出力データに変換する第２の変換回路と、前記出力データのデータ列を順次キャプチャするキャプチャ回路と、前記キャプチャしたデータ列の解析を行う解析回路と、前記解析の結果に基づいて前記第２のクロック信号の位相を調整する位相調整回路とを有する。
【発明の効果】
【０００８】
１つの側面では、第１の変換回路における第２のクロック信号及び入力データ間、並びに第２の変換回路における第１のクロック信号及び中間データ間のタイミング関係を最適化でき、出力データにおけるビットエラーの発生を防止することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施形態による送信回路の構成例を示す図である。
【図２】図２（Ａ）及び（Ｂ）は、テストデータ生成回路の構成例を示す図である。
【図３】図３は、マルチプレクサの動作例を示す図である。
【図４】図４（Ａ）及び（Ｂ）は、マルチプレクサの動作例を示す図である。
【図５】図５（Ａ）及び（Ｂ）は、Ｄ型フリップフロップ回路の動作例を示す図である。
【図６】図６は、シフトレジスタの構成例を示す図である。
【図７】図７は、エッジカウンタの構成例を示す図である。
【図８】図８は、制御ブロックの制御方法を示すフローチャートである。
【図９】図９は、制御ブロックの処理を説明するための図である。
【図１０】図１０は、制御ブロックが第１の位相コード又は第２の位相コードを選択する方法を示すフローチャートである。
【図１１】図１１（Ａ）〜（Ｃ）は、パルス幅検出回路を説明するための図である。
【図１２】図１２は、ＲＣ時定数に対するノードの電圧レベルの例を示すグラフである。
【図１３】図１３は、集積回路及び受信回路の構成例を示す図である。
【発明を実施するための形態】
【００１０】
図１は、本実施形態による送信回路の構成例を示す図である。送信回路は、３２ビットパラレル送信データＤ１［３１：０］をシリアル送信データＤ８に変換し、シリアル送信データＤ８を送信する。
【００１１】
電圧制御発振器（ＶＣＯ）１２４は、第１のクロック信号ＣＬＫ１を生成する。第１のクロック信号ＣＬＫ１は、例えば２８ＧＨｚである。２分周器１２５は、第１のクロック信号ＣＬＫ１を２分周して第２のクロック信号ＣＬＫ２を生成する。第２のクロック信号ＣＬＫ２は、例えば１４ＧＨｚであり、４相のクロック信号である。第２のクロック信号ＣＬＫ２の周波数は、第１のクロック信号ＣＬＫ１の周波数より低く、第１のクロック信号ＣＬＫ１の周波数の１／２である。位相調整回路１２６は、例えば位相補間回路であり、位相コードＰＩＣに応じて、第２のクロック信号ＣＬＫ２を基に第２のクロック信号ＣＬＫ３の位相を調整する。第２のクロック信号ＣＬＫ３は、４相のクロック信号であり、０°のクロック信号ＣＬＫ３（０°）と９０°のクロック信号ＣＬＫ３（９０°）と１８０°のクロック信号ＣＬＫ３（１８０°）と２７０°のクロック信号ＣＬＫ３（２７０°）を有する。第２のクロック信号ＣＬＫ３の周波数は、第２のクロック信号ＣＬＫ２の周波数と同じである。電圧制御発振器１２４及び２分周器１２５は、第１のクロック信号ＣＬＫ１及び第２のクロック信号ＣＬＫ２を生成するクロック生成回路である。
【００１２】
マルチプレクサ１０１は、第２のクロック信号ＣＬＫ３（０°）及びＣＬＫ３（９０°）に同期して、３２ビットパラレル送信データＤ１［３１：０］を多重化して４ビットパラレル送信データＤ３［０］〜Ｄ３［３］を生成する。すなわち、マルチプレクサ１０１は、第２のクロック信号ＣＬＫ３（０°）及びＣＬＫ３（９０°）に基づいて、３２ビットパラレル送信データＤ１［３１：０］を４ビットパラレル送信データＤ３［０］〜Ｄ３［３］に変換する。４ビットパラレル送信データＤ３［０］〜Ｄ３［３］は、３２ビットパラレル送信データＤ１［３１：０］よりビット幅が狭い。
【００１３】
テストデータ生成回路１０３は、固定値「１」を示すハイレベルの１ビットテストデータＴＤ［０］を生成する。テストデータ生成回路１０４は、固定値「０」を示すローレベルの１ビットテストデータＴＤ［１］を生成する。テストデータ生成回路１０５は、固定値「０」を示すローレベルの１ビットテストデータＴＤ［２］を生成する。テストデータ生成回路１０６は、固定値「１」を示すハイレベルの１ビットテストデータＴＤ［３］を生成する。
【００１４】
図２（Ａ）は、図１のテストデータ生成回路１０３の構成例を示す図である。テストデータ生成回路１０３は、ｐチャネル電界効果トランジスタ２０１を有し、値「１」を示すハイレベルの１ビットテストデータＴＤ［０］を生成する。ｐチャネル電界効果トランジスタ２０１は、ソースが電源電位ＶＤＤのノードに接続され、ゲートがグランド電位のノードに接続され、ドレインが１ビットテストデータＴＤ［０］のノードに接続される。ｐチャネル電界効果トランジスタ２０１は、ゲートがグランド電位であるので、オンする。その結果、１ビットテストデータＴＤ［０］は、値「１」を示すハイレベルに固定される。テストデータ生成回路１０６は、テストデータ生成回路１０３と同様の構成を有し、値「１」を示すハイレベルの１ビットテストデータＴＤ［３］を生成する。
【００１５】
図２（Ｂ）は、図１のテストデータ生成回路１０４の構成例を示す図である。テストデータ生成回路１０４は、ｎチャネル電界効果トランジスタ２０４を有し、値「０」を示すローレベルの１ビットテストデータＴＤ［１］を生成する。ｎチャネル電界効果トランジスタ２０４は、ソースがグランド電位のノードに接続され、ゲートが電源電位ＶＤＤのノードに接続され、ドレインが１ビットテストデータＴＤ［１］のノードに接続される。ｎチャネル電界効果トランジスタ２０４は、ゲートが電源電位ＶＤＤであるので、オンする。その結果、１ビットテストデータＴＤ［１］は、値「０」を示すローレベルに固定される。テストデータ生成回路１０５は、テストデータ生成回路１０４と同様の構成を有し、値「０」を示すローレベルの１ビットテストデータＴＤ［２］を生成する。
【００１６】
図１において、制御ブロック１３８は、位相調整モード又は送信モードを示す選択信号ＳＥＬをセレクタ１０７〜１１０に出力する。セレクタ１０７は、選択信号ＳＥＬが位相調整モードを示す場合には、１ビットテストデータＴＤ［０］を選択し、選択信号ＳＥＬが送信モードを示す場合には、１ビット送信データＤ３［０］を選択し、その選択したデータを１ビット送信データＤ４［０］として出力する。
【００１７】
セレクタ１０８は、選択信号ＳＥＬが位相調整モードを示す場合には、１ビットテストデータＴＤ［１］を選択し、選択信号ＳＥＬが送信モードを示す場合には、１ビット送信データＤ３［１］を選択し、その選択したデータを１ビット送信データＤ４［１］として出力する。
【００１８】
セレクタ１０９は、選択信号ＳＥＬが位相調整モードを示す場合には、１ビットテストデータＴＤ［２］を選択し、選択信号ＳＥＬが送信モードを示す場合には、１ビット送信データＤ３［２］を選択し、その選択したデータを１ビット送信データＤ４［２］として出力する。
【００１９】
セレクタ１１０は、選択信号ＳＥＬが位相調整モードを示す場合には、１ビットテストデータＴＤ［３］を選択し、選択信号ＳＥＬが送信モードを示す場合には、１ビット送信データＤ３［３］を選択し、その選択したデータを１ビット送信データＤ４［３］として出力する。
【００２０】
すなわち、セレクタ１０７〜１１０は、選択信号ＳＥＬが位相調整モードを示す場合には、４ビットテストデータＴＤ［０］〜ＴＤ［３］を選択し、選択信号ＳＥＬが送信モードを示す場合には、４ビット送信データＤ３［０］〜Ｄ３［３］を選択し、その選択したデータを４ビット送信データＤ４［０］〜Ｄ４［３］として出力する。
【００２１】
まず、送信回路は、位相調整モードで、位相調整回路１２６の位相調整量を決定する。その後、送信回路は、送信モードで、位相調整量を固定し、３２ビットパラレル送信データＤ１［３１：０］をシリアル送信データＤ８に変換する。
【００２２】
マルチプレクサ１１１は、第２のクロック信号ＣＬＫ３（０°）及びＣＬＫ３（９０°）に同期して、４ビットパラレル送信データＤ４［０］〜Ｄ４［３］を多重化して２ビット送信データＤ５［０］及びＤ５［１］を生成する。マルチプレクサ１１１は、第１の変換回路であり、第２のクロック信号ＣＬＫ３に基づいて、４ビットパラレル送信データ（入力データ）Ｄ４［０］〜Ｄ４［３］を２ビットパラレル送信データ（中間データ）Ｄ５［０］及びＤ５［１］に変換する。２ビットパラレル送信データＤ５［０］及びＤ５［１］は、４ビットパラレル送信データＤ４［０］〜Ｄ４［３］よりビット幅が狭い。
【００２３】
図３は、図１のマルチプレクサ１１１の動作例を示す図であり、位相調整モードの動作例を示す。セレクタ１０７〜１１０は、テストデータＴＤ［０］〜ＴＤ［３］を選択する。送信データＤ４［０］は、値「１」を示すハイレベル固定のテストデータＴＤ［０］と同じである。送信データＤ４［１］は、値「０」を示すローレベル固定のテストデータＴＤ［１］と同じである。送信データＤ４［２］は、値「０」を示すローレベル固定のテストデータＴＤ［２］と同じである。送信データＤ４［３］は、値「１」を示すハイレベル固定のテストデータＴＤ［３］と同じである。
【００２４】
第２のクロック信号ＣＬＫ３は、例えば１４ＧＨｚである。図１のシリアル送信データＤ８の１ビット期間は１ＵＩ（ユニットインターバル）であり、第２のクロック信号ＣＬＫ３の１周期は４ＵＩである。
【００２５】
マルチプレクサ１１１は、第２のクロック信号ＣＬＫ３（０°）がハイレベルの期間では、送信データＤ４［０］を送信データＤ５［０］として出力し、第２のクロック信号ＣＬＫ３（０°）がローレベルの期間では、送信データＤ４［１］を送信データＤ５［０］として出力する。送信データＤ４［０］がハイレベル固定であり、送信データＤ４［１］がローレベル固定であるので、送信データＤ５［０］は、「１０１０１０」のパターンを繰り返す。
【００２６】
また、マルチプレクサ１１１は、第２のクロック信号ＣＬＫ３（９０°）がハイレベルの期間では、送信データＤ４［２］を送信データＤ５［１］として出力し、第２のクロック信号ＣＬＫ３（９０°）がローレベルの期間では、送信データＤ４［３］を送信データＤ５［１］として出力する。送信データＤ４［２］がローレベル固定であり、送信データＤ４［３］がハイレベル固定であるので、送信データＤ５［１］は、「１０１０１０」のパターンを繰り返す。
【００２７】
図１において、マルチプレクサ１１３は、第１のクロック信号ＣＬＫ１に同期して、２ビットパラレル送信データＤ５［０］及びＤ５［１］を多重化してシリアル送信データＤ６を生成する。すなわち、マルチプレクサ１１３は、第２の変換回路であり、第１のクロック信号ＣＬＫ１に基づいて、２ビットパラレル送信データ（中間データ）Ｄ５［０］及びＤ５［１］をシリアル送信データ（出力データ）Ｄ６に変換する。シリアル送信データＤ６は、２ビットパラレル送信データＤ５［０］及びＤ５［１］よりビット幅が狭い。
【００２８】
プリドライバ回路１１４は、シリアル送信データＤ６を入力し、シリアル送信データＤ７を出力する。ドライバ回路１１５は、シリアル送信データＤ７を入力し、シリアル送信データＤ８を出力する。
【００２９】
図４（Ａ）は、図１のマルチプレクサ１１３の動作例を示す図であり、位相調整モードの動作例を示す。セレクタ１０７〜１１０は、テストデータＴＤ［０］〜ＴＤ［３］を選択する。送信データＤ５［０］は、図３の送信データＤ５［０］と同じであり、「１０１０１０」のパターンを繰り返す。送信データＤ５［１］は、図３の送信データＤ５［１］と同じであり、「１０１０１０」のパターンを繰り返す。
【００３０】
第１のクロック信号ＣＬＫ１は、例えば２８ＧＨｚである。シリアル送信データＤ６の１ビット期間は１ＵＩであり、第１のクロック信号ＣＬＫ１の１周期は２ＵＩである。
【００３１】
マルチプレクサ１１３は、第１のクロック信号ＣＬＫ１がハイレベルの期間では、送信データＤ５［０］を送信データＤ６として出力し、第１のクロック信号ＣＬＫ１がローレベルの期間では、送信データＤ５［１］を送信データＤ６として出力する。送信データＤ５［０］が「１０１０」のパターンの繰り返しであり、送信データＤ５［１］が「１０１０」のパターンの繰り返しであるので、送信データＤ６は、「１１００１１００」のパターンを繰り返す。送信データＤ６のパルス幅は、すべてのサイクルで２ＵＩの一定である。送信データＤ６の４ＵＩでは、エッジ数が１個である。
【００３２】
図４（Ａ）では、送信データＤ５［０］，Ｄ５［１］の位相が、第１のクロック信号ＣＬＫ１の位相に一致している。次に、図４（Ｂ）を参照しながら、送信データＤ５［０］，Ｄ５［１］の位相が第１のクロック信号ＣＬＫ１の位相に対してずれている場合を説明する。
【００３３】
図４（Ｂ）は、送信データＤ５［０］，Ｄ５［１］の位相が第１のクロック信号ＣＬＫ１の位相に対してずれている場合のマルチプレクサ１１３の動作例を示す図である。図４（Ｂ）の送信データＤ５［０］及びＤ５［１］は、図４（Ａ）の送信データＤ５［０］及びＤ５［１］に対して位相がずれている。マルチプレクサ１１３は、第１のクロック信号ＣＬＫ１がハイレベルの期間では、送信データＤ５［０］を送信データＤ６として出力し、第１のクロック信号ＣＬＫ１がローレベルの期間では、送信データＤ５［１］を送信データＤ６として出力する。送信データＤ５［０］は、「１０１０」のパターンの繰り返しである。送信データＤ５［１］は、「１０１０」のパターンの繰り返しである。しかし、送信データＤ６は、パルス幅が１ＵＩのサイクルと、パルス幅が０．５ＵＩのサイクルとを有する。送信データＤ６の４ＵＩでは、エッジ数が５個である。送信データＤ６は、１ＵＩの期間の真中付近でデータ遷移するサイクルがあるので、ビットエラーの発生率が高くなる。
【００３４】
以上のように、図４（Ａ）の送信データＤ６は、送信データＤ５［０］，Ｄ５［１］と第１のクロック信号ＣＬＫ１との位相関係が正常な場合のデータである。これに対し、図４（Ｂ）の送信データＤ６は、送信データＤ５［０］，Ｄ５［１］と第１のクロック信号ＣＬＫ１との位相関係が異常な場合のデータである。
【００３５】
すなわち、図４（Ａ）の送信データＤ６は、位相調整回路１２６が調整する第２のクロック信号ＣＬＫ３の位相が正常である場合のデータである。これに対し、図４（Ｂ）の送信データＤ６は、位相調整回路１２６が調整する第２のクロック信号ＣＬＫ３の位相が異常である場合のデータである。したがって、図４（Ｂ）の異常な送信データＤ６が得られた場合には、位相調整回路１２６が第２のクロック信号ＣＬＫ３の位相を調整することにより、図４（Ａ）の正常な送信データＤ６を得ることができる。以下、その詳細な説明をする。
【００３６】
図１において、４分周器１２８は、図５（Ａ）に示すように、第１のクロック信号ＣＬＫ１を４分周し、０°のクロック信号ＤＩＶ４＿０及び９０°のクロック信号ＤＩＶ４＿９０を生成する。クロック信号ＤＩＶ４＿０及びＤＩＶ４＿９０は、例えば７ＧＨｚである。クロック信号ＤＩＶ４＿０及びＤＩＶ４＿９０の周波数は、第１のクロック信号ＣＬＫ１の周波数より低く、第１のクロック信号ＣＬＫ１の周波数の１／４である。クロック信号ＤＩＶ４＿０及びＤＩＶ４＿９０の間の位相差は２ＵＩである。
【００３７】
インバータ１３１は、第１のクロック信号ＣＬＫ１を論理反転したクロック信号ＣＬＫ５を生成する。４分周器１３２は、クロック信号ＣＬＫ５を４分周し、図５（Ａ）に示すように、４５°のクロック信号ＤＩＶ４＿４５及び１３５°のクロック信号ＤＩＶ４＿１３５を生成する。クロック信号ＤＩＶ４＿４５及びＤＩＶ４＿１３５は、例えば７ＧＨｚである。クロック信号ＤＩＶ４＿４５及びＤＩＶ４＿１３５の周波数は、第１のクロック信号ＣＬＫ１の周波数より低く、第１のクロック信号ＣＬＫ１の周波数の１／４である。クロック信号ＤＩＶ４＿４５及びＤＩＶ４＿１３５の間の位相差は２ＵＩである。クロック信号ＤＩＶ４＿０及びＤＩＶ４＿４５の間の位相差は１ＵＩである。
【００３８】
遅延回路１２９は、クロック信号ＤＩＶ４＿０を遅延し、２２．５°のクロック信号ＤＩＶ４＿０＿２を生成する。遅延回路１３０は、クロック信号ＤＩＶ４＿９０を遅延し、１１２．５°のクロック信号ＤＩＶ４＿９０＿２を生成する。遅延回路１３３は、クロック信号ＤＩＶ４＿４５を遅延し、６７．５°のクロック信号ＤＩＶ４＿４５＿２を生成する。遅延回路１３４は、クロック信号ＤＩＶ４＿１３５を遅延し、１５７．５°のクロック信号ＤＩＶ４＿１３５＿２を生成する。遅延回路１２９，１３０，１３３，１３４の遅延時間は、０．５ＵＩであり、１ＵＩより短い。これらの８個のクロック信号ＤＩＶ４＿０〜ＤＩＶ４＿１３５＿２は、図５（Ａ）に示すように、８相クロック信号である。
【００３９】
図５（Ａ）は、図１のＤ型フリップフロップ回路１１６〜１２３の動作例を示す図であり、図４（Ａ）の正常の場合の動作例を示す。送信データＤ７は、図４（Ａ）の正常な送信データＤ６と同じ論理値である。
【００４０】
Ｄ型フリップフロップ回路１１６は、クロック信号ＤＩＶ４＿０の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ０として出力する。データＯＤ０は、値「１」である。
【００４１】
Ｄ型フリップフロップ回路１１７は、クロック信号ＤＩＶ４＿０＿２の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ０＿２として出力する。データＯＤ０＿２は、値「１」である。
【００４２】
Ｄ型フリップフロップ回路１１８は、クロック信号ＤＩＶ４＿４５の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ１として出力する。データＯＤ１は、値「１」である。
【００４３】
Ｄ型フリップフロップ回路１１９は、クロック信号ＤＩＶ４＿４５＿２の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ１＿２として出力する。データＯＤ１＿２は、値「１」である。
【００４４】
Ｄ型フリップフロップ回路１２０は、クロック信号ＤＩＶ４＿９０の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ２として出力する。データＯＤ２は、値「０」である。
【００４５】
Ｄ型フリップフロップ回路１２１は、クロック信号ＤＩＶ４＿９０＿２の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ２＿２として出力する。データＯＤ２＿２は、値「０」である。
【００４６】
Ｄ型フリップフロップ回路１２２は、クロック信号ＤＩＶ４＿１３５の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ３として出力する。データＯＤ３は、値「０」である。
【００４７】
Ｄ型フリップフロップ回路１２３は、クロック信号ＤＩＶ４＿１３５＿２の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ３＿２として出力する。データＯＤ３＿２は、値「０」である。
【００４８】
以上のように、Ｄ型フリップフロップ回路１１６〜１２３は、送信データＤ７のデータ列を順次キャプチャするキャプチャ回路である。送信データＤ７の４ＵＩのデータ列は、「１１００」である。Ｄ型フリップフロップ回路１１６〜１２３は、送信データＤ７のデータ列の４ＵＩに異なる８個のタイミングでキャプチャする。すなわち、Ｄ型フリップフロップ回路１１６〜１２３は、送信データＤ７のデータ列の１ＵＩに異なる２個のタイミングでキャプチャする。
【００４９】
図５（Ｂ）は、図４（Ｂ）の異常の場合のＤ型フリップフロップ回路１１６〜１２３の動作例を示す図である。送信データＤ７は、図４（Ｂ）の異常な送信データＤ６と同じ論理値である。
【００５０】
Ｄ型フリップフロップ回路１１６は、クロック信号ＤＩＶ４＿０の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ０として出力する。データＯＤ０は、値「１」である。
【００５１】
Ｄ型フリップフロップ回路１１７は、クロック信号ＤＩＶ４＿０＿２の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ０＿２として出力する。データＯＤ０＿２は、値「０」である。
【００５２】
Ｄ型フリップフロップ回路１１８は、クロック信号ＤＩＶ４＿４５の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ１として出力する。データＯＤ１は、値「１」である。
【００５３】
Ｄ型フリップフロップ回路１１９は、クロック信号ＤＩＶ４＿４５＿２の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ１＿２として出力する。データＯＤ１＿２は、値「１」である。
【００５４】
Ｄ型フリップフロップ回路１２０は、クロック信号ＤＩＶ４＿９０の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ２として出力する。データＯＤ２は、値「０」である。
【００５５】
Ｄ型フリップフロップ回路１２１は、クロック信号ＤＩＶ４＿９０＿２の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ２＿２として出力する。データＯＤ２＿２は、値「１」である。
【００５６】
Ｄ型フリップフロップ回路１２２は、クロック信号ＤＩＶ４＿１３５の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ３として出力する。データＯＤ３は、値「０」である。
【００５７】
Ｄ型フリップフロップ回路１２３は、クロック信号ＤＩＶ４＿１３５＿２の立ち上がりエッジに同期して送信データＤ７をラッチし、そのラッチしたデータをデータＯＤ３＿２として出力する。データＯＤ３＿２は、値「０」である。
【００５８】
図１において、分周器１３５は、第１のクロック信号ＣＬＫ１を分周したクロック信号ＣＬＫ６をシフトレジスタ１３６に出力する。シフトレジスタ１３６は、クロック信号ＣＬＫ６に同期して、データＯＤ０，ＯＤ０＿２，ＯＤ１，ＯＤ１＿２，ＯＤ２，ＯＤ２＿２，ＯＤ３，ＯＤ３＿２の列をラッチしてシフトすることにより、データ列Ｄ９を出力する。データ列Ｄ９は、データＯＤ０，ＯＤ０＿２，ＯＤ１，ＯＤ１＿２，ＯＤ２，ＯＤ２＿２，ＯＤ３，ＯＤ３＿２の列である。エッジカウンタ１３７は、データ列Ｄ９のエッジ数ＣＮＴを検出する。制御ブロック１３８は、エッジ数ＣＮＴを基に、位相コードＰＩＣを決定する。位相調整回路１２６は、位相コードＰＩＣを基に、第２のクロック信号ＣＬＫ３の位相を調整する。
【００５９】
図６は、図１のシフトレジスタ１３６の構成例を示す図である。シフトレジスタ１３６は、８個のセレクタ６０１〜６０８及び９個のＤ型フリップフロップ回路６１１〜６１９を有する。８個のセレクタ６０１〜６０８は、それぞれ、８個のデータＯＤ３＿２，ＯＤ３，ＯＤ２＿２，ＯＤ２，ＯＤ１＿２，ＯＤ１，ＯＤ０＿２，ＯＤ０を入力する。
【００６０】
制御ブロック１３８は、位相調整モードでは、ハイレベルのリセット信号ＲＳＴを出力する。すると、Ｄ型フリップフロップ回路６１１〜６１９の記憶値は、０にリセットされる。次に、制御ブロック１３８は、ローレベルのリセット信号ＲＳＴを出力し、Ｄ型フリップフロップ回路６１１〜６１９のリセット状態を解除する。
【００６１】
次に、制御ブロック１３８は、ローレベルのイネーブル信号ＥＮをＤ型フリップフロップ回路６１９に出力する。すると、Ｄ型フリップフロップ回路６１９は、クロック信号ＣＬＫ６に同期して、ローレベルのイネーブル信号ＥＮをラッチし、ローレベルのイネーブル信号ＥＮ１をセレクタ６０１〜６０８に出力する。すると、セレクタ６０１〜６０８は、それぞれ、データＯＤ３＿２，ＯＤ３，ＯＤ２＿２，ＯＤ２，ＯＤ１＿２，ＯＤ１，ＯＤ０＿２，ＯＤ０をＤ型フリップフロップ回路６１１〜６１８の入力端子Ｄに出力する。Ｄ型フリップフロップ回路６１１〜６１８は、それぞれ、クロック信号ＣＬＫ６に同期して、データＯＤ３＿２，ＯＤ３，ＯＤ２＿２，ＯＤ２，ＯＤ１＿２，ＯＤ１，ＯＤ０＿２，ＯＤ０をラッチし、出力端子ＱからデータＯＤ３＿２，ＯＤ３，ＯＤ２＿２，ＯＤ２，ＯＤ１＿２，ＯＤ１，ＯＤ０＿２，ＯＤ０を出力する。
【００６２】
次に、制御ブロック１３８は、ハイレベルのイネーブル信号ＥＮをＤ型フリップフロップ回路６１９に出力する。すると、Ｄ型フリップフロップ回路６１９は、クロック信号ＣＬＫ６に同期して、ハイレベルのイネーブル信号ＥＮをラッチし、ハイレベルのイネーブル信号ＥＮ１をセレクタ６０１〜６０８に出力する。すると、セレクタ６０１は、値「０」をＤ型フリップフロップ回路６１１の入力端子Ｄに出力する。Ｄ型フリップフロップ回路６１１は、クロック信号ＣＬＫ６に同期して、値「０」をラッチし、出力端子Ｑから値「０」を出力する。
【００６３】
セレクタ６０２〜６０８は、それぞれ、Ｄ型フリップフロップ回路６１１〜６１７の出力端子Ｑから出力されるデータＯＤ３＿２，ＯＤ３，ＯＤ２＿２，ＯＤ２，ＯＤ１＿２，ＯＤ１，ＯＤ０＿２をＤ型フリップフロップ回路６１２〜６１８の入力端子Ｄに出力する。Ｄ型フリップフロップ回路６１２〜６１８は、それぞれ、クロック信号ＣＬＫ６に同期して、データＯＤ３＿２，ＯＤ３，ＯＤ２＿２，ＯＤ２，ＯＤ１＿２，ＯＤ１，ＯＤ０＿２をラッチし、出力端子ＱからデータＯＤ３＿２，ＯＤ３，ＯＤ２＿２，ＯＤ２，ＯＤ１＿２，ＯＤ１，ＯＤ０＿２を出力する。
【００６４】
次に、Ｄ型フリップフロップ回路６１３〜６１８は、それぞれ、クロック信号ＣＬＫ６に同期して、データＯＤ３＿２，ＯＤ３，ＯＤ２＿２，ＯＤ２，ＯＤ１＿２，ＯＤ１をラッチして出力する。その後、Ｄ型フリップフロップ回路６１１〜６１８は、クロック信号ＣＬＫ６に同期して、ラッチ及び出力を繰り返す。その結果、最終段のフリップフロップ回路６１８は、データ列Ｄ９として、データＯＤ０，ＯＤ０＿２，ＯＤ１，ＯＤ１＿２，ＯＤ２，ＯＤ２＿２，ＯＤ３，ＯＤ３＿２の列を出力する。図５（Ａ）の場合、データ列Ｄ９は、「１１１１００００」になる。図５（Ｂ）の場合、データ列Ｄ９は、「１０１１０１００」になる。
【００６５】
図７は、図１のエッジカウンタ１３７の構成例を示す図である。エッジカウンタ１３７は、エッジ検出器７０１及び３ビットカウンタ７０２を有する。エッジ検出器７０１は、遅延回路７０３及び排他的論理和回路７０４を有する。遅延回路７０３は、データ列Ｄ９を１データ分遅延したデータ列Ｄ１０を出力する。排他的論理和回路７０４は、データ列Ｄ９及びＤ１０の排他的論理和信号をエッジ信号Ｄ１１として出力する。具体的には、排他的論理和回路７０４は、データ列Ｄ９及びＤ１０の各データが同じ場合には、「０」のエッジ信号Ｄ１１を出力し、データ列Ｄ９及びＤ１０の各データが異なる場合には、「１」のエッジ信号Ｄ１１を出力する。すなわち、エッジ検出器７０１は、データ列Ｄ９のうちのエッジである部分では、「１」のエッジ信号Ｄ１１を出力し、データ列Ｄ９のうちのエッジでない部分では、「０」のエッジ信号Ｄ１１を出力する。
【００６６】
３ビットカウンタ７０２は、Ｄ型フリップフロップ回路７０５〜７０７を有する。Ｄ型フリップフロップ回路７０５は、クロック端子がエッジ信号Ｄ１１を入力し、入力端子Ｑが反転出力端子／Ｑに接続される。Ｄ型フリップフロップ回路７０６は、クロック端子がＤ型フリップフロップ回路７０５の出力端子Ｑに接続され、入力端子Ｑが反転出力端子／Ｑに接続される。Ｄ型フリップフロップ回路７０７は、クロック端子がＤ型フリップフロップ回路７０６の出力端子Ｑに接続され、入力端子Ｑが反転出力端子／Ｑに接続される。Ｄ型フリップフロップ回路７０５〜７０７の出力端子Ｑは、３ビットカウント値として、エッジ数ＣＮＴ［０］〜ＣＮＴ［２］を出力する。エッジ数ＣＮＴ［０］〜ＣＮＴ［２］は、図１のエッジ数ＣＮＴに対応する。
【００６７】
制御ブロック１３８は、ハイレベルのリセット信号ＲＳＴを出力する。すると、Ｄ型フリップフロップ回路７０５〜７０７の記憶値は、０にリセットされる。次に、制御ブロック１３８は、ローレベルのリセット信号ＲＳＴを出力する。すると、Ｄ型フリップフロップ回路７０５〜７０７のリセット状態は解除される。Ｄ型フリップフロップ回路７０５〜７０７は、それぞれ、出力端子Ｑから「０」を出力し、反転出力端子／Ｑから「１」を出力する。
【００６８】
１回目のエッジでは、エッジ信号Ｄ１１が「１」から「０」に変化し、Ｄ型フリップフロップ回路７０５は、入力端子Ｄの「１」をラッチし、「１」のエッジ数ＣＮＴ［０］を出力する。Ｄ型フリップフロップ回路７０６は、「０」のエッジ数ＣＮＴ［１］を出力する。Ｄ型フリップフロップ回路７０７は、「０」のエッジ数ＣＮＴ［２］を出力する。
【００６９】
２回目のエッジでは、エッジ信号Ｄ１１が「１」から「０」に変化し、Ｄ型フリップフロップ回路７０５は、入力端子Ｄの「０」をラッチし、「０」のエッジ数ＣＮＴ［０］を出力する。Ｄ型フリップフロップ回路７０６は、「１」のエッジ数ＣＮＴ［１］を出力する。Ｄ型フリップフロップ回路７０７は、「０」のエッジ数ＣＮＴ［２］を出力する。
【００７０】
同様に、３回目のエッジでは、エッジ数ＣＮＴ［０］及びＣＮＴ［１］は「１」になり、エッジ数ＣＮＴ［２］は「０」になる。エッジ数ＣＮＴ［０］〜ＣＮＴ［２］は、データ列Ｄ９のエッジの３ビットカウント値を示す。図５（Ａ）に示すように、データ列Ｄ９が「１１１１００００」である場合、エッジ数ＣＮＴ［０］〜ＣＮＴ［２］は、１になる。また、図５（Ｂ）に示すように、データ列Ｄ９が「１０１１０１００」である場合、エッジ数ＣＮＴ［０］〜ＣＮＴ［２］は、５になる。
【００７１】
図８は、図１の制御ブロック１３８の制御方法を示すフローチャートである。ステップＳ８０１では、制御ブロック１３８は、位相コードＰＩＣを０にする。位相調整回路１２６は、位相コードＰＩＣに応じて、第２のクロック信号ＣＬＫ３の位相を調整する。
【００７２】
次に、ステップＳ８０２では、制御ブロック１３８は、送信回路の状態安定後、リセット信号ＲＳＴにより、シフトレジスタ１３６及びエッジカウンタ１３７をリセットする。次に、制御ブロック１３８は、イネーブル信号ＥＮにより、エッジカウンタ１３７によるエッジ数ＣＮＴをカウントをスタートさせる。
【００７３】
次に、ステップＳ８０３では、制御ブロック１３８は、４ＵＩ内のエッジ数ＣＮＴが２以下であるか否かを判断する。制御ブロック１３８は、エッジ数ＣＮＴが２以下である場合には、図５（Ａ）のように、位相コードＰＩＣの時の送信データＤ７が正常であると判断し、ステップＳ８０４に処理を進める。これに対し、制御ブロック１３８は、エッジ数ＣＮＴが３以上である場合には、図５（Ｂ）のように、位相コードＰＩＣの時の送信データＤ７が異常であると判断し、ステップＳ８０５に処理を進める。
【００７４】
ステップＳ８０４では、制御ブロック１３８は、位相コードＰＩＣの正常フラグＯＫ［ＰＩＣ］に１を設定し、正常フラグＯＫ［ＰＩＣ］を記録し、ステップＳ８０６に処理を進める。
【００７５】
ステップＳ８０５では、制御ブロック１３８は、位相コードＰＩＣの正常フラグＯＫ［ＰＩＣ］に０を設定し、正常フラグＯＫ［ＰＩＣ］を記録し、ステップＳ８０６に処理を進める。
【００７６】
ステップＳ８０６では、制御ブロック１３８は、位相コードＰＩＣが最大コードであるか否かを判断する。そして、制御ブロック１３８は、位相コードＰＩＣが最大コードでない場合には、ステップＳ８０７に処理を進め、位相コードＰＩＣが最大コードである場合には、ステップＳ８０８に処理を進める。
【００７７】
ステップＳ８０７では、制御ブロック１３８は、位相コードＰＩＣをインクリメントする。位相調整回路１２６は、位相コードＰＩＣに応じて、第２のクロック信号ＣＬＫ３の位相を調整する。その後、制御ブロック１３８は、ステップＳ８０２に処理を戻し、ステップＳ８０２〜Ｓ８０６の処理を繰り返す。これにより、制御ブロック１３８は、図９に示すように、第２のクロック信号ＣＬＫ３の１周期内のすべての位相コードＰＩＣの正常フラグＯＫ［ＰＩＣ］を設定することができる。
【００７８】
ステップＳ８０８では、制御ブロック１３８は、正常フラグＯＫ［ＰＩＣ］を基に、第１の位相コードＰ１及び第２の位相コードＰ２を計算する。その詳細は、図９を参照しながら説明する。
【００７９】
図９は、図８のステップＳ８０８の処理を説明するための図である。上記のように、制御ブロック１３８は、第２のクロック信号ＣＬＫ３の１周期内のすべての位相コードＰＩＣの正常フラグＯＫ［ＰＩＣ］を設定する。例えば、位相範囲９０１は、正常フラグＯＫ［ＰＩＣ］が１に設定されている正常な位相範囲である。位相範囲９０２は、正常フラグＯＫ［ＰＩＣ］が０に設定されている異常な位相範囲である。この場合、制御ブロック１３８は、正常な位相範囲９０１の真中の位相を示す位相コードＰＩＣを決定するために、以下に示す方法により、第１の位相コードＰ１及び第２の位相コードＰ２を計算する。
【００８０】
まず、制御ブロック１３８は、正常コードＯＫ［ＰＩＣ］が１である位相範囲９０１と正常コードＯＫ［ＰＩＣ］が０である位相範囲９０２との間の２個の境界の位相コードＰＩＣのうちの小さい方の位相コードを位相コードＣＭＩＮとして設定し、大きい方の位相コードを位相コードＣＭＡＸとして設定する。
【００８１】
次に、制御ブロック１３８は、下記の第１のデータＤＥＬ１及び第２のデータＤＥＬ２を計算する。ここで、データＭＡＸは、１周期内の最大の位相を示す位相コードＰＩＣである。
ＤＥＬ１＝（ＣＭＡＸ−ＣＭＩＮ）／２
ＤＥＬ２＝｛ＭＡＸ−（ＣＭＡＸ−ＣＭＩＮ）｝／２
【００８２】
次に、制御ブロック１３８は、下記の第１の位相コードＰ１及び第２の位相コードＰ２を計算する。
Ｐ１＝ＣＭＩＮ＋ＤＥＬ１
Ｐ２＿１＝ＣＭＩＮ−ＤＥＬ２
Ｐ２＿２＝ＣＭＡＸ＋ＤＥＬ２
Ｐ２＿２＞ＭＡＸの時には、Ｐ２＝Ｐ２＿１、
Ｐ２＿２≦ＭＡＸの時には、Ｐ２＝Ｐ２＿２
【００８３】
第１の位相コードＰ１は、位相範囲９０１の真中の位相を示す位相コードである。第２の位相コードＰ２は、位相範囲９０２の真中の位相を示す位相コードである。ただし、この時点では、制御ブロック１３８は、位相範囲９０１及び９０２のうちのいずれが正常な位相範囲であるのかは認識していない。次に、制御ブロック１３８は、位相範囲９０１及び９０２のうちのいずれが正常な位相範囲であるのかを判断する。そして、制御ブロック１３８は、位相範囲９０１が正常な位相範囲である場合には、第１の位相コードＰ１を選択し、位相範囲９０２が正常な位相範囲である場合には、第２の位相コードＰ２を選択する。以下、その詳細を図１０を参照しながら説明する。
【００８４】
図１０は、制御ブロック１３８が第１の位相コードＰ１又は第２の位相コードＰ２を選択する方法を示すフローチャートである。ステップＳ１００１では、制御ブロック１３８は、正常フラグＯＫ［Ｐ１］が１であるか否かを判断する。第１の位相コードＰ１は、位相範囲９０１の真中の位相を示す。正常フラグＯＫ［Ｐ１］は、位相範囲９０１の真中の位相を示す第１の位相コードＰ１の正常フラグＯＫ［ＰＩＣ］である。制御ブロック１３８は、正常フラグＯＫ［Ｐ１］が１である場合には、位相範囲９０１が正常な位相範囲であると判断し、ステップＳ１００２に処理を進める。これに対し、制御ブロック１３８は、正常フラグＯＫ［Ｐ１］が０である場合には、位相範囲９０１が正常な位相範囲でないと判断し、ステップＳ１００３に処理を進める。
【００８５】
ステップＳ１００３では、制御ブロック１３８は、正常フラグＯＫ［Ｐ２］が１であるか否かを判断する。第２の位相コードＰ２は、位相範囲９０２の真中の位相を示す。正常フラグＯＫ［Ｐ２］は、位相範囲９０２の真中の位相を示す第２の位相コードＰ２の正常フラグＯＫ［ＰＩＣ］である。制御ブロック１３８は、正常フラグＯＫ［Ｐ２］が１である場合には、位相範囲９０２が正常な位相範囲であると判断し、ステップＳ１００４に処理を進める。これに対し、制御ブロック１３８は、正常フラグＯＫ［Ｐ２］が０である場合には、位相範囲９０２が正常な位相範囲でないと判断し、ステップＳ１００５に処理を進める。
【００８６】
ステップＳ１００２では、制御ブロック１３８は、第１の位相コードＰ１を位相コードＰＩＣとして設定し、処理を終了する。位相調整回路１２６は、位相コードＰＩＣに応じて、第２のクロック信号ＣＬＫ３の位相を調整する。
【００８７】
ステップＳ１００４では、制御ブロック１３８は、第２の位相コードＰ２を位相コードＰＩＣとして設定し、処理を終了する。位相調整回路１２６は、位相コードＰＩＣに応じて、第２のクロック信号ＣＬＫ３の位相を調整する。
【００８８】
ステップＳ１００５では、制御ブロック１３８は、エラーフラグＥＲＲに１を設定することにより、エラーを通知し、処理を終了する。
【００８９】
以上のように、制御ブロック１３８は、ステップＳ１００２又はＳ１００４で、最適な位相コードＰＩＣを設定する。位相調整回路１２６は、正常な位相範囲９０１の真中の位相の位相コードになるように、第２のクロック信号ＣＬＫ３の位相を調整する。具体的には、位相調整回路１２６は、エッジ数ＣＮＴが閾値以下（２以下）になるように、第２のクロック信号ＣＬＫ３の位相を調整する。これにより、図４（Ａ）に示すように、第１のクロック信号ＣＬＫ１と送信データＤ５［０］，Ｄ５［１］の位相が一致し、正常な送信データＤ６を得ることができる。
【００９０】
制御ブロック１３８は、上記の位相調整モードの後、送信モードを示す選択信号ＳＥＬをセレクタ１０７〜１１０に出力する。すると、セレクタ１０７〜１１０は、送信データＤ３［０］〜Ｄ３［３］を送信データＤ４［０］〜Ｄ４［３］として出力する。送信モードでは、送信回路は、３２ビットパラレル送信データＤ１［３１：０］をシリアル送信データＤ８に変換し、シリアル送信データＤ８を送信する。位相調整回路１２６の位相調整により、シリアル送信データＤ８の位相は、第１のクロック信号ＣＬＫ１の位相と一致している。これにより、シリアル送信データＤ８のビットエラー（受信エラー）を低減することができる。
【００９１】
仮に、位相調整回路１２６がない場合には、マルチプレクサ１１１は、第２のクロック信号ＣＬＫ２に同期して動作する。その場合、第２のクロック信号ＣＬＫ２は、第１のクロック信号ＣＬＫ１に対して遅延しているため、図４（Ｂ）のように、異常な送信データＤ６が得られ、ビットエラーが増大する。
【００９２】
また、ユーザが位相調整回路１２６の位相コードＰＩＣを環境に応じてマニュアル設定する方法が考えられが、その方法は煩雑である。本実施形態によれば、制御ブロック１３８は、自動で最適な位相コードＰＩＣを設定することができる。
【００９３】
なお、テストデータＴＤ［０］〜ＴＤ［３］は、送信データＤ６が１１００又は００１１になるようなテストデータであればよい。
【００９４】
図１１（Ａ）は、他の実施形態による送信回路のパルス幅検出回路１１００の構成例を示す図である。パルス幅検出回路１１００は、図１のエッジカウンタ１３７の代わりに設けられる。パルス幅検出回路１１００は、ｎチャネル電界効果トランジスタ１１０１，１１０２、抵抗１１０３、容量１１０４、及び比較器１１０５を有し、データ列Ｄ９のパルス幅を検出する。
【００９５】
ｎチャネル電界効果トランジスタ１１０１は、ドレインが抵抗１１０３を介して電源電位ＶＤＤのノードに接続され、ゲートがデータ列Ｄ９を入力し、ソースがノードＮＰに接続される。容量１１０４は、ノードＮＰ及びグランド電位のノード間に接続される。ｎチャネル電界効果トランジスタ１１０２は、ドレインがノードＮＰに接続され、ゲートがリセット信号ＲＳＴ１を入力し、ソースがグランド電位のノードに接続される。比較器１１０５は、ノードＮＰの電位と参照電位Ｖｒｅｆとを比較し、その比較の結果をパルス幅信号ＯＵＴとして出力する。ノードＮＰの電位が参照電位Ｖｒｅｆより低い場合は、パルス幅信号ＯＵＴは、ハイレベルになる。これに対し、ノードＮＰの電位が参照電位Ｖｒｅｆより高い場合は、パルス幅信号ＯＵＴは、ローレベルになる。ｎチャネル電界効果トランジスタ１１０２は、リセット信号ＲＳＴ１により、所定間隔でオンし、ノードＮＰを０Ｖにリセットする。
【００９６】
図１１（Ｂ）は、図５（Ａ）と同様に、正常なシリアル送信データＤ７を示す図である。シリアル送信データＤ７のパルス幅は、２ＵＩである。この場合、データ列Ｄ９は、「１１１１００００」になる。データ列Ｄ９のパルス幅が２ＵＩの場合、ノードＮＰの電位は、図１２に示すように、参照電位Ｖｒｅｆより高くなり、パルス幅信号ＯＵＴは、ローレベルになる。制御ブロック１３８は、パルス幅信号ＯＵＴがローレベルになると、送信データＤ７が正常であると判断し、正常フラグＯＫ［ＰＩＣ］に１を設定する。
【００９７】
図１１（Ｃ）は、図５（Ｂ）と同様に、異常なシリアル送信データＤ７を示す図である。シリアル送信データＤ７は、１ＵＩのパルス幅と、０．５ＵＩのパルス幅を有する。この場合、データ列Ｄ９は、「１０１１０１００」になる。データ列Ｄ９のパルス幅が１ＵＩ及び０．５ＵＩの場合、ノードＮＰの電位は、図１２に示すように、参照電位Ｖｒｅｆより低くなり、パルス幅信号ＯＵＴは、ハイレベルを維持する。制御ブロック１３８は、パルス幅信号ＯＵＴがハイレベルの場合には、送信データＤ７が異常であると判断し、正常フラグＯＫ［ＰＩＣ］に０を設定する。
【００９８】
図１２は、ＲＣ時定数τに対するノードＮＰの電圧レベルの例を示すグラフである。データ列Ｄ９のパルス幅が２ＵＩの場合、ＲＣ時定数が２τである場合を例に説明する。データ列Ｄ９のパルス幅が１．４ＵＩの場合に、ノードＮＰは、０．７５Ｖになる。そこで、参照電位Ｖｒｅｆは、例えば０．７５Ｖに設定される。比較器１１０５は、データ列Ｄ９のパルス幅が１．４ＵＩより広い場合には、ローレベルのパルス幅信号ＯＵＴを出力する。これに対し、比較器１１０５は、データ列Ｄ９のパルス幅が１．４ＵＩより狭い場合には、ハイレベルのパルス幅信号ＯＵＴを出力する。
【００９９】
図１１（Ｂ）のように、データ列Ｄ９のパルス幅が２ＵＩの場合、比較器１１０５は、０．６ＵＩの期間、ローレベルのパルス幅信号ＯＵＴを出力する。そして、図１１（Ｃ）のように、データ列Ｄ９のパルス幅が１ＵＩ及び０．５ＵＩの場合、比較器１１０５は、ハイレベルのパルス幅信号ＯＵＴを出力する。
【０１００】
上記のように、図１のエッジカウンタ１３７及びパルス幅検出回路１１００は、データ列Ｄ９の解析を行う解析回路である。位相調整回路１２６は、解析回路の解析の結果に基づいて、第２のクロック信号ＣＬＫ３の位相を調整する。例えば、位相調整回路１２６は、データ列Ｄ９のパルス幅が閾値（１．４ＵＩ）より広くなるように、第２のクロック信号ＣＬＫ３の位相を調整する。
【０１０１】
図１３は、集積回路１３０１及び受信回路１３０４の構成例を示す図である。集積回路１３０１は、内部回路１３０２と、送信回路１３０３とを有する。内部回路１３０２は、３２ビットパラレル送信データ（内部データ）Ｄ１［３１：０］を生成する。送信回路１３０３は、図１の送信回路であり、３２ビットパラレル送信データＤ１［３１：０］を内部回路１３０２から受けとり、シリアル送信データＤ８を受信回路１３０４に出力する。受信回路１３０４は、クロックデータリカバリ（ＣＤＲ）回路を有し、シリアル送信データＤ８を基に、データ及びクロック信号を再生する。上記のように、送信回路の位相調整回路１２６が位相調整することにより、受信回路１３０４は、データ再生のエラーを低減することができる。
【０１０２】
本実施形態によれば、マルチプレクサ１１１における第２のクロック信号ＣＬＫ３及び送信データＤ４［０］〜Ｄ４［３］間、並びにマルチプレクサ１１３における第１のクロック信号ＣＬＫ１及び送信データＤ５［０］，Ｄ５［１］間のタイミング関係を最適化でき、送信データＤ６におけるビットエラーの発生を防止することができる。
【０１０３】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１０４】
１０１，１１１，１１３  マルチプレクサ
１０３〜１０６  テストデータ生成回路
１０７〜１１０  セレクタ
１１４  プリドライバ回路
１１５  ドライバ回路
１１６〜１２３  Ｄ型フリップフロップ回路
１２４  電圧制御発振器
１２５  ２分周器
１２６  位相調整回路
１２８，１３２  ４分周器
１２９，１３０，１３３，１３４  遅延回路
１３１  インバータ
１３５  分周器
１３６  シフトレジスタ
１３７  エッジカウンタ
１３８  制御ブロック
【図１】
2018139354.tif 000003
【図２】
2018139354.tif 000004
【図３】
2018139354.tif 000005
【図４】
2018139354.tif 000006
【図５】
2018139354.tif 000007
【図６】
2018139354.tif 000008
【図７】
2018139354.tif 000009
【図８】
2018139354.tif 000010
【図９】
2018139354.tif 000011
【図１０】
2018139354.tif 000012
【図１１】
2018139354.tif 000013
【図１２】
2018139354.tif 000014
【図１３】
2018139354.tif 000015