(57)【要約】【課題】高速動作ブロックおよび低速動作ブロック間の受信あるいは送信におけるデータ転送時に、非同期対策やスキュー合わせが不要になるデータ転送装置を得る。【解決手段】高速動作ブロック１に、ロードイネーブル信号ｌｄ　ｅｎに基づいてシリアルデータ／パラレルデータ変換するシフトレジスタ１２と、クロックＣＬＫ　Ａのカウント値に応じてクロックＣＬＫ　Ａの整数倍の周期を有するクロックＣＬＫ　Ｂを生成するクロック生成ブロック１７と、クロックＣＬＫ　Ａのカウント値に応じてクロックＣＬＫ　Ｂと同一の周期を有するロードイネーブル信号ｌｄ　ｅｎを生成し、シフトレジスタ１２に供給するサンプリング回路１５とを備えた。【選択図】　　　　図１
2004072511.tif 000002
【特許請求の範囲】
【請求項１】
伝送速度もしくはそれ以上速い第１のクロックに同期して動作する高速動作ブロックと、
伝送速度よりも遅い第２のクロックに同期して動作する低速動作ブロックとを備え、
前記高速動作ブロックは、受信されるデータが所定ビット連続して一定値である場合にその次のビットにスタフビットが挿入されたシリアルデータのスタフビットを除去し、そのシリアルデータをパラレルデータに変換して前記低速動作ブロックに出力すると共に、前記低速動作ブロックから入力されるパラレルデータをシリアルデータに変換し且つそのシリアルデータが所定ビット以上連続して一定値である場合にその所定ビット毎にスタフビットを挿入して送信し、
前記低速動作ブロックは、前記高速動作ブロックから入力されるパラレルデータのプロトコル処理をすると共に、送信するパラレルデータのプロトコル処理をして前記高速動作ブロックに出力するデータ転送装置において、
前記高速動作ブロックは、
第１の制御信号に基づいて受信されるシリアルデータをパラレルデータに変換し前記低速動作ブロックに出力すると共に、第１の制御信号に基づいて前記低速動作ブロックから入力されるパラレルデータをシリアルデータに変換するシリアル／パラレル変換部と、
第１のクロックのカウント値に応じて第１のクロックの整数倍の周期を有する第２のクロックを生成するクロック生成部と、
第１のクロックのカウント値に応じて第２のクロックと同一の周期を有する第１の制御信号を生成し、前記シリアル／パラレル変換部に供給する第１の制御信号生成部とを備えたことを特徴とするデータ転送装置。
【請求項２】
受信されるシリアルデータおよびシリアル／パラレル変換部により変換されたシリアルデータが所定ビット連続して一定値である場合に第２の制御信号を生成する第２の制御信号生成部を備え、
クロック生成部は、前記第２の制御信号生成部からの第２の制御信号に応じて第２のクロックの周期を第１のクロックの周期単位で伸ばすことを特徴とする請求項１記載のデータ転送装置。
【請求項３】
第１の制御信号生成部は、第２のクロックと同一の周期を有し、タイミングをシフトした第１の制御信号を生成することを特徴とする請求項１記載のデータ転送装置。
【請求項４】
第１の制御信号生成部は、データの送信時と受信時とでタイミングの異なる第１の制御信号を生成することを特徴とする請求項３記載のデータ転送装置。
【請求項５】
第１の制御信号生成部は、ソフトウェアまたは外部端子からの選択信号に応じてタイミングを変更自在にした第１の制御信号を生成することを特徴とする請求項１記載のデータ転送装置。
【請求項６】
クロック生成部は、立上りおよび立下りタイミングをシフトした第２のクロックを生成することを特徴とする請求項１記載のデータ転送装置。
【請求項７】
クロック生成部は、ソフトウェアまたは外部端子からの選択信号に応じて立上りおよび立下りタイミングを変更自在にした第２のクロックを生成することを特徴とする請求項６記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、高速シリアル通信装置において、異なるクロックドメイン間のデータ転送を同期で行うデータ転送装置に関するものである。
【０００２】
【従来の技術】
図２０は従来のデータ転送装置を示すブロック図であり、図において、Ａは高速動作ブロック、Ｂは低速動作ブロック、Ｃはクロック生成ブロックである。
【０００３】
次に動作について説明する。
高速シリアル通信装置において、伝送速度もしくはそれ以上の速いクロックに同期してプロトコル処理や信号処理を行うことは、１周期当たりのゲート段数から考えてゲート段数が増大し、回路の実装面から考えて非常に困難である。
このため、図２０に示したような従来の高速シリアル通信装置では、高速動作ブロックＡにおいて、伝送速度と同等もしくはそれ以上の高速なクロックＣＬＫＡで受信したシリアルデータをパラレルデータに変換し、低速動作ブロックＢにおいて、伝送速度よりも遅いクロックＣＬＫ　Ｂでプロトコル処理するのが一般的である。
また、送信についても、低速動作ブロックＢにおいて、パラレルデータ単位でプロトコル処理のほとんどを行い、高速動作ブロックＡにおいて、シリアルデータへの変換後に最小限の処理のみを行って送信している。
【０００４】
【発明が解決しようとする課題】
従来のデータ転送装置は以上のように構成されているので、次の２つの課題があった。
（１）各ブロックは、異なる周波数のクロックである。つまり、ブロック間の転送は非同期である。このため、ブロック間転送にはメタステーブル対策を施す必要がある。メタステーブル対策を施すことにより、Ｆ／Ｆ（レジスタ）の増加による消費電力およびゲート規格の増加、内部遅延の増加等の課題がある。
（２）低速動作ブロックＢのクロックＣＬＫ　Ｂと、高速動作ブロックＡのクロックＣＬＫ　Ａとの関係が、
（ＣＬＫ　Ｂの周波数）＝（ＣＬＫ　Ａの周波数）＊（パラレルデータ幅）
のときは、クロックＣＬＫ　ＢとクロックＣＬＫ　Ａとのクロックスキューを合わせることで、メタステーブル対策を施すことなく、転送（同期転送）ができる。例えば、クロックＣＬＫ　Ａの周波数が４８０ＭＨｚで、クロックＣＬＫ　Ｂの周波数が６０ＭＨｚで、パラレルデータ幅が８ビットのときが挙げられる。
しかし、この方法では、レイアウト毎にクロックＣＬＫ　ＡとクロックＣＬＫＢとのクロックスキューを合わせる必要があり、開発期間の増大につながるという課題がある。
【０００５】
シリアル通信データがＮＲＺＩ，ＲＸ，ＡＭＩ等の符号化および自己同期の場合、シリアル通信データは、自己同期のために、ビット・スタッフィング処理を行っていることがある「文献１：Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ　Ｓｐｅｃｉｆｉｃａｔｉｏｎ　Ｒｅｖｉｓｉｏｎ　２．０のＰ１５７，Ｐ１５８」。
ビット・スタッフィング処理によって、自己同期を実現しているシリアル通信装置では、シリアル通信データに対して、受信時にはスタフビットを取り除き、送信時にはスタフビットを挿入しなければならない。このことは、上術の（１）、（２）の方法を単純に実施しただけでは転送できないことを意味する。
これに対して、従来、次の２つの方法が採られていた。
（１）ブロック間のパラレルデータの受け渡しをハンドシェークによって制御する。
（２）スタフビットをカウントし、スタフビットのカウント値がパラレルデータのビット幅に到達したら、受信時にはパラレルデータに対するＲｘＶａｌｉｄ信号をネゲートする。このときパラレルデータはＩｎｖａｌｉｄなデータである「文献２：ＵＴＭ２．０　Ｔｒａｎｓｃｅｉｖｅｒ　Ｍａｃｒｏｃｅｌｌ　Ｉｎｔｅｒｆａｃｅ（ＵＴＭＩ）Ｓｐｅｃｉｆｉｃａｔｉｏｎ　Ｖｅｒ１．０５　Ｐａｇｅ２３　５．６　Ｂｉｔ　Ｕｎｓｔｕｆｆ　Ｌｏｇｉｃ＆Ｆｕｇｕｒｅ５」。
送信時には、プロトコル処理部に対して送信データの送出を停止するＴｘＲｅａｄｙ信号をネゲートする「文献３：ＵＴＭ２．０　Ｔｒａｎｓｃｅｉｖｅｒ　Ｍａｃｒｏｃｅｌｌ　Ｉｎｔｅｒｆａｃｅ（ＵＴＭＩ）Ｓｐｅｃｉｆｉｃａｔｉｏｎ　Ｖｅｒ１．０５　Ｐａｇｅ２９　５．１１　Ｂｉｓｔｕｆｆ　Ｌｏｇｉｃ＆Ｆｕｇｕｒｅ１１」。
しかしこれら従来の方法では、スタフビットあるいは有効なデータ数をカウントするカウンタ、データの制御信号を作る論理回路が必要であり、動作周波数が高い回路では、Ｆ／Ｆ（レジスタ）間の論理回路段数を増やすこともできないため、これらの論理回路を実装するのが困難である。また、実装できたとしても消費電力およびゲート規模を増大してしまうという課題があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、高速動作ブロックおよび低速動作ブロック間の受信あるいは送信におけるデータ転送時に、データのサンプリングタイミングに対して、データのセットアップおよびホールド期間を長く確保し、非同期対策やスキュー合わせが不要になるデータ転送装置を得ることを目的とする。
また、この発明は、スタフビットを検出もしくは挿入したとき、クロックの周期をスタフビットの除去あるいは挿入分伸ばし、受信データと送信データとの間の同期関系が確保し、オーバーフローやアンダーフロー対策によるゲート数増加やゲート段数増加を回避すると共に、ゲート数増加による消費電力の増加を防ぐデータ転送装置を得ることを目的とする。
【０００７】
【課題を解決するための手段】
この発明に係るデータ転送装置は、高速動作ブロックに、第１の制御信号に基づいて受信されるシリアルデータをパラレルデータに変換し低速動作ブロックに出力すると共に、第１の制御信号に基づいて低速動作ブロックから入力されるパラレルデータをシリアルデータに変換するシリアル／パラレル変換部と、第１のクロックのカウント値に応じて第１のクロックの整数倍の周期を有する第２のクロックを生成するクロック生成部と、第１のクロックのカウント値に応じて第２のクロックと同一の周期を有する第１の制御信号を生成し、シリアル／パラレル変換部に供給する第１の制御信号生成部とを備えたものである。
【０００８】
この発明に係るデータ転送装置は、受信されるシリアルデータおよびシリアル／パラレル変換部により変換されたシリアルデータが所定ビット連続して一定値である場合に第２の制御信号を生成する第２の制御信号生成部を備え、クロック生成部は、第２の制御信号生成部からの第２の制御信号に応じて第２のクロックの周期を第１のクロックの周期単位で伸ばすようにしたものである。
【０００９】
この発明に係るデータ転送装置は、第１の制御信号生成部において、第２のクロックと同一の周期を有し、タイミングをシフトした第１の制御信号を生成するようにしたものである。
【００１０】
この発明に係るデータ転送装置は、第１の制御信号生成部において、データの送信時と受信時とでタイミングの異なる第１の制御信号を生成するようにしたものである。
【００１１】
この発明に係るデータ転送装置は、第１の制御信号生成部において、ソフトウェアまたは外部端子からの選択信号に応じてタイミングを変更自在にした第１の制御信号を生成するようにしたものである。
【００１２】
この発明に係るデータ転送装置は、クロック生成部において、立上りおよび立下りタイミングをシフトした第２のクロックを生成するようにしたものである。
【００１３】
この発明に係るデータ転送装置は、クロック生成部において、ソフトウェアまたは外部端子からの選択信号に応じて立上りおよび立下りタイミングを変更自在にした第２のクロックを生成するようにしたものである。
【００１４】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるデータ転送装置を示すブロック図である。この実施の形態１では、次のようなシリアル転送を想定している。具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）である。
（１）受信したシリアルデータが６ビット連続して“Ｈｉｇｈ”のとき、次の７ビット目はスタフビットとして“Ｌｏｗ”が挿入される。
（２）送信するシリアルデータが６ビット以上連続して“Ｈｉｇｈ”のとき、必ず６ビット毎にスタフビットとして“Ｌｏｗ”を挿入する。
図１において、高速動作ブロック１と低速動作ブロック２との間の信号は、クロックＣＬＫ　Ｂ（３１２）、受信データＲｘＤａｔａ（３２１）および送信データＴｘＤａｔａ（３２２）について示しているが、ＲｘＶａｌｉｄ、ＲｘＡｃｔｉｖｅ、ＴｘＲｅａｄｙ等の制御信号は省略している。これらの信号のドライブタイミングは、受信データＲｘＤａｔａ（３２１）もしくは送信データＴｘＤａｔａ（３２２）と同じである。
図２はデータ転送装置の各種信号を示す説明図である。
図３はサンプリング回路の詳細を示す回路図である。
図４はクロック生成ブロックの詳細を示す回路図である。
図５はシリアルデータ受信時の動作を示すタイミングチャートであり、受信データとして、ＦＦ，８０，５Ａ，７Ｅを受信した様子を示している。
図６はシリアルデータ送信時の動作を示すタイミングチャートであり、送信データとして、８０，５Ａ，ＦＦ，Ｆ０を送信した様子を示している。
【００１５】
次に、図１の各ブロックの構成について説明する。
１は高速動作ブロックであり、伝送クロックもしくはそれ以上の速いクロックでシリアルデータを受信もしくは送信するクロックである。
２は低速動作ブロックであり、高速動作ブロック１で処理されたパラレルデータ３２１，３２２、ＲｘＶａｌｉｄ信号、クロックＣＬＫ　Ｂ（３２１）等を基に、高速動作ブロック１よりも低い周波数でプロトコル処理するブロックである。また、送信するデータのプロトコル処理を行い、送信データを高速動作ブロック１へ渡すブロックである。
１２はシフトレジスタ（シリアル／パラレル変換部）であり、受信時には受信シリアルデータＳＤＩＮ（３２３）を入力とし、８ビットのパラレルデータへ変換するブロックである。受信時は、ロードイネーブル信号ｌｄ　ｅｎ（３３１）の値に関わりなく、右シフトが実施される。また、送信時には、ロードイネーブル信号ｌｄ　ｅｎ（３３１）が“Ｈｉｇｈ”のとき低速動作ブロック２からの送信パラレルデータＴｘＤａｔａ（３２２）をサンプリングし、ロードイネーブル信号ｌｄ　ｅｎ（３３１）が“Ｌｏｗ”のときは右シフトすることでパラレルデータをシリアルデータに変換する。なお、受信および送信時共、ホールド信号ｈｏｌｄ（３３２）が“Ｈｉｇｈ”のとき、シフトレジスタ１２は、シフト動作せず、内容を保持する。この実施の形態１では、シフトレジスタ１２を送信、受信共用しているが、別々に分ける手段もある。
１１はホールドレジスタ（シリアル／パラレル変換部）であり、ロードイネーブル信号ｌｄ　ｅｎ（３３１）が“Ｈｉｇｈ”のとき、シフトレジスタ１２でパラレルデータに変換されたデータｓｆｔ　ｒｅｇｓ［７：０］（３３５）をサンプルし（図５のＣ２，Ｃ１０およびＣ１９）、保持するブロックである。ホールドレジスタ１１の出力は、受信パラレルデータＲｘＤａｔａ（３２１）であり、低速動作ブロック２へ出力される。
１３はスタフビット検出ブロック（第２の制御信号生成部）であり、スタフビットを検出するブロックである。例えば、ＵＳＢでは受信および送信シリアルデータが６ビット連続して“１”のとき、７ビット目には必ず“０”が挿入されることになっている。本ブロックがＵＳＢの回路であるならば、受信シリアルデータＳＤＩＮ（３２３）もしくはｓｆｔ　ｒｅｇｓ［０］（３３４）が６ビット連続して“１”になったときのみ出力信号ｈｏｌｄ（３３２）は“Ｈｉｇｈ”になる。それ以外のときは“Ｌｏｗ”である。
１６はカウンタ（クロック生成部）であり、クロックＣＬＫ　Ａ（３１１）に同期してカウントするカウンタである。カウント範囲は、高速動作ブロック１と低速動作ブロック２のデータバス幅に依存する。この実施の形態１では、データバス幅は８ビットのため、０〜７まで１刻みのアップカウンタであり、７までカウントすると次は０となり、再びカウントする。なお、ホールド信号ｈｏｌｄ（３３２）が“Ｈｉｇｈ”のときは、カウント値は前の値を保持する（図５のＣ１７および図６のＣ２１）。
１７はクロック生成ブロック（クロック生成部）であり、クロックＣＬＫ　Ｂ（３１２）を生成するブロックである。図４にクロック生成ブロックの詳細を示す。図において、１６１，１６３はアンド、１６２，１６４，１６７はフリップフロップ、１６５はエクスクルーシブノア、１６６はセレクタである。次にこのクロック生成ブロック１７の動作について説明する。カウント信号ｃｎｔ［３］（３５３）が“Ｈｉｇｈ”（カウント値が“３”）且つホールド信号ｈｏｌｄ（３３２）が“Ｌｏｗ”のときのみ、アンド１６１の出力は“Ｈｉｇｈ”となり、クロックＣＬＫ　Ａ（３１１）の立上りでフリップフロップ１６２の出力である立上りイネーブル信号ｃｌｋ　ｎｅｇ　ｅｄｇｅ（３６０）が“Ｈｉｇｈ”になる（図５のＣ５，Ｃ１３およびＣ２２並びに図６のＣ８およびＣ１６）。カウント信号ｃｎｔ［７］（３５７）が“Ｈｉｇｈ”（カウント値が“７”）且つホールド信号ｈｏｌｄ（３３２）が“Ｌｏｗ”のときのみ、アンド１６３の出力は“Ｈｉｇｈ”となり、クロックＣＬＫ　Ａ（３１１）の立上りでフリップフロップ１６４の出力である立下りイネーブル信号ｃｌｋ　ｐｏｓ　ｅｄｇｅ（３６１）が“Ｈｉｇｈ”になる（図５のＣ１，Ｃ９およびＣ１８並びに図６のＣ５，Ｃ１３およびＣ２２）。クロックＣＬＫ　Ｂ（３１２）は、エクスクルーシブノア１６５、セレクタ１６６、フリップフロップ１６７によって、立上りイネーブル信号ｃｌｋ　ｎｅｇ　ｅｄｇｅ（３６０）が“Ｈｉｇｈ”のときに立上り（図５のＣ６，Ｃ１４およびＣ２３並びに図６のＣ１，Ｃ９およびＣ１７）、立下りイネーブル信号ｃｌｋ　ｐｏｓ　ｅｄｇｅ（３６１）が“Ｈｉｇｈ”のときに立下る（図５のＣ２，Ｃ１０およびＣ１９並びに図６のＣ６，Ｃ１４およびＣ２３）。１５はサンプリング回路（第１の制御信号生成部）であり、シフトレジスタ１２の出力信号ｓｆｔ　ｒｅｇｓ［７：０］（３３５）をホールドレジスタ１１にセット、および低速動作ブロック２からの送信データＴｘＤａｔａ［７：０］（３２２）をシフトレジスタ１２にサンプルするタイミング信号であるロードイネーブル信号ｌｄ　ｅｎ（３３１）を生成している。図３にサンプリング回路の詳細を示す。図において、１５１はアンド、１５２はフリップフロップである。次にこのサンプリング回路１５の動作について説明する。ロードイネーブル信号ｌｄ　ｅｎ（３３１）は、カウント信号ｃｎｔ［７］（３５７）が“Ｈｉｇｈ”（カウント値が“７”）且つホールド信号ｈｏｌｄ（３３２）が“Ｌｏｗ”のときのみ、“Ｈｉｇｈ”となる（図５のＣ１，Ｃ９およびＣ１８並びに図６のＣ５，Ｃ１３およびＣ２２）。
１４はスタフビット挿入ブロックであり、送信時、スタフビットを挿入するブロックである。動作は、ホールド信号ｈｏｌｄ（３３２）が“Ｈｉｇｈ”のとき、シリアルデータｓｆｔ　ｒｅｇｓ［０］（３３４）を強制的に“Ｌｏｗ”にして、出力シリアルデータＳＤＯＵＴ（３２４）として出力する（図５のＣ２１）。
【００１６】
次に動作について説明する。
（１）スタフビットを検出もしくは挿入したとき、クロックＣＬＫ　Ｂ（３１２）の周期はスタフビットの検出もしくは挿入分伸びる。
図５に示される受信時においては、Ｃ１０からＣ１５までの期間、シリアルデータの入力信号ＳＤＩＮ（３２３）が６ビット連続して“Ｈｉｇｈ”が続いているため、スタフビット検出ブロック１３は、ホールド信号ｈｏｌｄ（３３２）を“Ｈｉｇｈ”にする（図５のＣ１６）。
このとき、高速動作ブロック１のホールドレジスタ１１およびスタフビット挿入ブロック１４を除いたブロックの出力信号は、ホールド状態となる（図５のＣ１７）。
このホールド状態により、クロックＣＬＫ　Ｂ（３１２）の周期は、通常“８ＣＬＫ　Ａ”期間であるのに対して、スタフビット除去分伸びて“９ＣＬＫ　Ａ”期間となる（図５のＣ１６）。
また、シフトレジスタ１２では、シリアルデータのスタフビットを取り除いたパラレルデータを得ている。この結果、受信データとクロックＣＬＫ　Ｂ（３１２）間にはビットずれは起きず、同期関係が得られている。
同様に、図６に示される送信時においては、Ｃ１４から送信データであるシリアルデータｓｆｔ　ｒｅｇｓ［０］（３３４）が６ビット以上連続して“Ｈｉｇｈ”が続いている。
このとき、スタフビット検出ブロック１３は、シリアルデータｓｆｔ　ｒｅｇｓ［０］（３３４）が６ビット以上連続して“Ｈｉｇｈ”になった時点でホールド信号ｈｏｌｄ（３３２）を“Ｈｉｇｈ”にし、受信時同様に、高速動作ブロック１のホールドレジスタ１１およびスタフビット検出ブロック１３を除いたブロックの出力信号は、スタフビット検出ブロック１３でスタフビットの“Ｌｏｗ”を挿入するためホールド状態となる（図６のＣ２１）。
このホールド状態により、クロックＣＬＫ　Ｂ（３１２）の周期は、通常“８ＣＬＫ　Ａ”期間であるのに対して、スタフビット挿入分伸びる。
この結果、送信パラレルデータＴｘＤａｔａ（３２２）は、クロックＣＬＫ　Ｂ（３１２）の立上りでデータがドライブされるため、スタフビット挿入による送信データのアンダーフローは生じない。
【００１７】
（２）高速動作ブロック１から低速動作ブロック２へのデータＲｘＤａｔａ（３２１）は、高速動作ブロック１において、クロックＣＬＫ　Ｂ（３１２）の立下りでドライブされ、クロックＣＬＫ　Ｂ（３１２）の立上りで低速動作ブロック２にサンプルされる。
例として、図５の受信動作時のタイミングチャートを用いて説明する。図５において、データの送り手である高速動作ブロック１は、クロックＣＬＫ　Ｂ（３１２）の立下りで受信パラレルデータＲｘＤａｔａ（３２１）がドライブされており（Ｃ２，Ｃ１０およびＣ１８）、受け手である低速動作ブロック２では、クロックＣＬＫ　Ｂ（３１２）の立上りでＲｘＤａｔａ（３２１）をサンプルする。このとき、ＲｘＤａｔａ（３２１）はクロックＣＬＫ　Ｂ（３１２）の立上りに対してセットアップおよびホールド共、少なくとも“４ＣＬＫ　Ａ”期間確保することができており、“４ＣＬＫ　Ａ”期間を越える遅延、スキュー等がない限り、クロックＣＬＫ　Ａ（３１１）とクロックＣＬＫ　Ｂ（３１２）とのスキュー合わせや非同期転送の処理を行わなくても良く、同期転送として回路設計ができる。
【００１８】
（３）送信データは、クロックＣＬＫ　Ｂ（３１２）の立上りで低速動作ブロック２からドライブされ、クロックＣＬＫ　Ｂ（３１２）の立下りで高速動作ブロック１にサンプルされる。
例として、図６の送信動作時のタイミングチャートを用いて説明する。図６において、データの送り手である低速動作ブロック２は、クロックＣＬＫ　Ｂ（３１２）の立上りで送信パラレルデータＴｘＤａｔａ（３２２）がドライブされており（図６のＣ２，Ｃ１０およびＣ１８）、受け手である高速動作ブロック１では、クロックＣＬＫ　Ｂ（３１２）の立下りでＴｘＤａｔａ（３２２）をサンプルする。このとき、ＴｘＤａｔａ（３２２）はクロックＣＬＫ　Ｂ（３１２）の立下りに対してセットアップおよびホールド共、少なくとも“４ＣＬＫ　Ａ”期間確保することができる。このため、送信パラレルデータＴｘＤａｔａ（３２２）は安定しており、クロックＣＬＫ　Ｂ（３１２）の立上りから“４ＣＬＫ　Ａ”期間を越える遅延がない限り、クロックＣＬＫ　Ａ（３１１）とクロックＣＬＫ　Ｂ（３１２）とのスキュー合わせや非同期転送の処理を行わなくても良い。
【００１９】
以上のように、この実施の形態１によれば、次の効果が得られる。
（１）スタフビットを検出もしくは挿入したとき、クロックＣＬＫ　Ｂ（３１２）の周期はスタフビットの除去あるいは挿入分伸びることで、受信データおよび送信データとの間は同期関系が確保される。このため、オーバーフローやアンダーフロー対策によるゲート数増加、ゲート段数増加を回避することができる。また、ゲート数増加による消費電力の増加を防ぐことができる。
（２）高速動作ブロック１および低速動作ブロック２間のデータ転送は、データのサンプリングタイミングに対して、少なくとも“４ＣＬＫ　Ａ”期間確保できるため、非同期対策やスキュー合わせが不要になる。
【００２０】
実施の形態２．
実施の形態１は、送信パラレルデータＴｘＤａｔａ（３２２）のサンプリングタイミングと受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングとが同じである。例えば、実施の形態１の装置において、送信パラレルデータＴｘＤａｔａ（３２２）の確定がクロックＣＬＫ　Ｂ（３１２）の立上りから、“４ＣＬＫ　Ａ”期間以上の場合、シフトレジスタ１２に取り込むタイミングがずれてしまい、高速動作ブロック１と低速動作ブロック２間の同期関係を満たさなくなる恐れがある。この課題を解決する一案としては、ロードイネーブル信号ｌｄ　ｅｎ（３３１）のイネーブルタイミングをクロックＣＬＫ　Ｂ（３１２）の立上りエッジからさらに後ろへずらすことで、送信パラレルデータＴｘＤａｔａ（３２２）のサンプリングポイントおよび受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングを変える方法がある。しかし、この方法では、送信パラレルデータＴｘＤａｔａ（３２２）のサンプリングポイントの課題は解決したとしても、低速動作ブロック２において、クロックＣＬＫ　Ｂ（３１２）の立上りエッジで受信パラレルデータＲｘＤａｔａ（３２１）がサンプルできない場合もある。
この課題を解決するため、この実施の形態２では、送信パラレルデータＴｘＤａｔａ（３２２）のサンプリングポイントと受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングとをそれぞれ異なるタイミングで行う。
【００２１】
図７はこの発明の実施の形態２によるデータ転送装置を示すブロック図である。図７のブロック図は、図１のブロック図と異なり、直接、送信パラレルデータＴｘＤａｔａ（３２２）をシフトレジスタ１２に取り込むのではなく、一旦、ホールドレジスタ２１に取り込んだ後、シフトレジスタ１２に取り込む装置の例である。このため、ホールドレジスタ２１からシフトレジスタ１２への取り込みイネーブル信号ｓｆｔ　ｅｎ（３３６）を追加している。なお、この実施の形態２において、図１のように送信パラレルデータＴｘＤａｔａ（３２２）を直接にシフトレジスタ１２で取り込む構成であっても構わない。
次に図７において、図１とは異なる構成について説明する。
２１はホールドレジスタ（シリアル／パラレル変換部）であり、図１のホールドレジスタ１１とは異なり、シフトレジスタ１２からの受信データｓｆｔ　ｒｅｇｓ［７：０］（３３５）をサンプルし、保持するだけではなく、送信時においては、送信パラレルデータＴｘＤａｔａ（３２２）の値をサンプルし、保持する。
送信パラレルデータＴｘＤａｔａ（３２２）のサンプリングタイミングは、受信時におけるシフトレジスタ１２からのサンプリングタイミング同様、ロードイネーブル信号ｌｄ　ｅｎ（３３１）がイネーブル（“Ｈｉｇｈ”）のときにサンプルされる。
２２はサンプリング回路（第１の制御信号生成部）であり、この実施の形態２において最も重要なブロックである。図８にサンプリング回路の詳細を示す。図において、４２１はセレクタであり、その他の構成については、図３と同等である。次にこのサンプリング回路２２の動作について説明する。このサンプリング回路２２は、図１および図３で示したサンプリング回路１５とは異なり、ロードイネーブル信号ｌｄ　ｅｎ（３３１）のイネーブルタイミングが送信時と受信時とでは異なる。サンプリング回路１５では、カウント信号ｃｎｔ［７］（３５７）が“Ｈｉｇｈ”（カウント値が“７”）且つホールド信号ｈｏｌｄ（３３２）が“Ｌｏｗ”のときに、送信および受信時共に、ロードイネーブル信号ｌｄ　ｅｎ（３３１）が“Ｈｉｇｈ”になっていた。これに対して、サンプリング回路２２は、受信時はサンプリング回路１５と同様に、カウント信号ｃｎｔ［７］（３５７）が“Ｈｉｇｈ”（カウント値が“７”）且つホールド信号ｈｏｌｄ（３３２）が“Ｌｏｗ”のときに、ロードイネーブル信号ｌｄ　ｅｎ（３３１）が“Ｈｉｇｈ”になるが、送信時は、カウント信号ｃｎｔ［２］（３５２）が“Ｈｉｇｈ”　（カウント値が“２”）且つホールド信号ｈｏｌｄ（３３２）が“Ｌｏｗ”のときに、ロードイネーブル信号ｌｄ　ｅｎ（３３１）が“Ｈｉｇｈ”になる。このため、図８に示すように、送信時と受信時でカウント信号を切換えるセレクタ４２１を実施の形態１のサンプリング回路１５に追加している。
また、サンプリング回路２２には、シフトイネーブル信号ｓｆｔ　ｅｎ（３３６）を生成する機能が追加されている。シフトイネーブル信号ｓｆｔ　ｅｎ（３３６）は、送信時、カウント信号［３］（３５３）が“Ｈｉｇｈ”（カウント値が“３”）のとき“Ｌｏｗ”になり、カウント信号［３］（３５３）が“Ｌｏｗ”（カウント値が“３”以外）のとき“Ｈｉｇｈ”になる。但し、ホールド信号ｈｏｌｄ（３３２）が“Ｈｉｇｈ”のときは、直前のシフトイネーブル信号ｓｆｔ　ｅｎ値を保持する。
【００２２】
次に動作について説明する。
受信時におけるこの実施の形態２の動作は、実施の形態１の受信動作と同じである。
図９はシリアルデータ送信時の動作を示すタイミングチャートであり、次に送信時の動作について説明する。
この実施の形態２の送信時の動作は、実施の形態１と同様に、送り手である低速動作ブロック２は、送信パラレルデータＴｘＤａｔａ（３２２）のドライブをクロックＣＬＫ　Ｂ（３１２）の立上りで行う（図９のＣ２，Ｃ１０およびＣ１９）。一方、受け手である高速動作ブロック１は、ロードイネーブル信号ｌｄ　ｅｎ（３３１）がカウント値“２”で“Ｈｉｇｈ”に変化するため（図９のＣ８Ｃ１６）、クロックＣＬＫ　Ｂ（３１２）の立上りから“７ＣＬＫ　Ａ”期間後にホールドレジスタ２１にサンプルされている（図９のＣ１，Ｃ９およびＣ１７）。
【００２３】
以上のように、この実施の形態２によれば、次の効果が得られる。
ロードイネーブル信号ｌｄ　ｅｎ（３３１）のイネーブルタイミングを送信時と受信時とで変更することで、高速動作ブロック１における低速動作ブロック２からの送信データのサンプリングタイミング、および低速動作ブロック２への受信データのドライブタイミングをそれぞれ最適に設定することができる。
なお、この実施の形態２では、送信および受信時共に、ロードイネーブル信号ｌｄ　ｅｎ（３３１）のイネーブル信号を実現したが、装置の構成によって、送信および受信用のロードイネーブル信号を、それぞれ独立に持たせて実現する方法もある。
【００２４】
実施の形態３．
実施の形態１と実施の形態２では、送信パラレルデータＴｘＤａｔａ（３２２）のサンプルポイントおよび受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングは固定である。これらに対し、この実施の形態３は、送信パラレルデータＴｘＤａｔａ（３２２）のサンプルポイントおよび受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングをＳ／Ｗ（ソフトウェア）や外部端子からの選択信号によって変更自在にするものである。
図１０はこの発明の実施の形態３によるデータ転送装置を示すブロック図であり、実施の形態２の図７に対して、サンプリング回路２２をサンプリング回路（第１の制御信号生成部）３１に置き換え、外部入力として送信データサンプルポイントのセレクト信号ＳＥＬ　ＣＮＴ［２：０］（３２６）を新たに追加しただけであり、実施の形態１についても同様のサンプリング回路の置換および信号の追加を行うことで、サンプルポイントの変更を特徴とするこの実施の形態３を実現することができる。
図１１はサンプリング回路の詳細を示す回路図であり、図において、７１１はセレクタである。その他の構成については図８と同等である。この図１１は送信パラレルデータＴｘＤａｔａ（３２２）のサンプルポイントについてのみ可変にした回路例である。図１１では、図８に示したサンプリング回路２２に対して、７ｔｏ１のセレクタ７１１と、そのセレクト信号としてＳＥＬ　ＣＮＴ［２：０］（３２６）を追加している。セレクタ７１１は、送信時、出力信号ｌｄ　ｅｎ（３３１）のイネーブルタイミングをセレクト信号ＳＥＬ　ＣＮＴ［２：０］（３２６）の値に応じてカウント値“０”から“７”のいずれか１つを選択する。なお、セレクタ７１１と同様なセレクタを受信側にも設けることで、受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングを変更することができる。
【００２５】
次に動作について説明する。
図１２はシリアルデータ送信時の動作を示すタイミングチャートであり、送信パラレルデータＴｘＤａｔａ（３２２）のサンプルポイントをカウント値“１”にしたときのものである。送信パラレルデータＴｘＤａｔａ（３２２）のサンプルポイントをカウント値“１”にするため、セレクト信号ＳＥＬ　ＣＮＴ［２：０］（３２６）は、“０ｘ１”になるようにＳ／Ｗまたは外部端子等で設定している。図１２では、セレクト信号ＳＥＬ　ＣＮＴ［２：０］（３２６）を“０ｘ１”に設定しているため、送信パラレルデータＴｘＤａｔａ（３２２）のサンプルポイントは、クロックＣＬＫ　Ｂ（３１２）の立上りから、“６ＣＬＫ　Ａ”期間後である。
同様に、セレクト信号ＳＥＬ　ＣＮＴ［２：０］（３２６）を“０ｘ２”に設定すると、実施の形態２の図９で示したタイミングとなり、クロックＣＬＫ　Ｂ（３１２）の立上りから、“７ＣＬＫ　Ａ”期間後に送信パラレルデータＴｘＤａｔａ（３２２）はサンプルされる。
【００２６】
以上のように、この実施の形態３によれば、次の効果が得られる。
送信パラレルデータＴｘＤａｔａ（３２２）のサンプルタイミングおよび受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングを、Ｓ／Ｗ（ソフトウェア）や外部端子で設定できるため、回路実装後であってもサンプルタイミングやドライブタイミングの変更が可能である。例えば、ＬＳＩに実装後、遅延モデルと実遅延モデルが異なっていた等により、高速動作ブロック１と低速動作ブロック２間でのクロックＣＬＫ　Ｂ（３１２）に同期してデータ転送ができないトラブルにも、Ｓ／Ｗ、外部端子等を設定するだけで、救済することが可能となる。
【００２７】
実施の形態４．
実施の形態２と実施の形態３では、クロックＣＬＫ　Ｂ（３１２）の立上りおよび立下りに対して、ロードイネーブル信号ｌｄ　ｅｎ（３３１）のイネーブルタイミングを変更することで、送信パラレルデータＴｘＤａｔａ（３２２）のサンプルポイントおよび受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングを調整する方法である。もしくは、クロックＣＬＫ　Ｂ（３１２）は、常にカウント値が“３”および“７”のときに、立上りおよび立下り動作を行うことを前提としているため、ロードイネーブル信号ｌｄ　ｅｎ（３３１）のイネーブルタイミングを変更（適切なカウント値の選択）することで、送信パラレルデータＴｘＤａｔａ（３２２）のサンプルタイミングおよび受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングを調整する方法である。
この実施の形態４は、ロードイネーブル信号ｌｄ　ｅｎ（３３１）のイネーブルタイミングを基準に、クロックＣＬＫ　Ｂ（３１２）の立上りおよび立下りを調整することで、送信パラレルデータＴｘＤａｔａ（３２２）のサンプルタイミングおよび受信パラレルデータＲｘＤａｔａ（３２１）のドライブタイミングを調整する方法である。
具体的には、実施の形態１がカウント値“３”および“７”によってクロックＣＬＫ　Ｂ（３１２）の立上りおよび立下りが行われているのに対して、この実施の形態４では、カウント値“２”および“６”によって立上りおよび立下り動作を行う。なお、ロードイネーブル信号ｌｄ　ｅｎ（３３１）は、実施の形態１同様、カウント値“７”によってイネーブル状態となる。つまり、この実施の形態４は、実施の形態１に対して、クロックＣＬＫ　Ｂ（３１２）が１サイクル（ＣＬＫ　Ａ換算）前倒しで出力する。
【００２８】
図１３はこの発明の実施の形態４によるデータ転送装置を示すブロック図であり、実施の形態１の図１に対して、クロック生成ブロック１７の入力であるカウント信号ｃｎｔ［７］とｃｎｔ［３］が、ｃｎｔ［６］とｃｎｔ［２］に置き換えただけである。
【００２９】
次に動作について説明する。
図１４はシリアルデータ受信時の動作を示すタイミングチャートであり、図１５はシリアルデータ送信時の動作を示すタイミングチャートである。
この実施の形態４では、実施の形態１の図５および図６に対して、クロックＣＬＫ　Ｂ（３１２）の立上りおよび立下りが１サイクル（クロックＣＬＫ　Ａ（３１１）換算）早くなっているだけである。この結果、受信パラレルデータＲｘＤａｔａ（３２１）のサンプルポイントは、ＲｘＤａｔａ（３２１）が変化してから（図１４のＣ２，Ｃ１０およびＣ１９）、３サイクル後（クロックＣＬＫ　Ａ（３１１）換算）である（図１４のＣ５，Ｃ１３およびＣ２２）。一方、送信パラレルデータＴｘＤａｔａ（３２２）のドライブタイミングはクロックＣＬＫＢ（３１２）の立上りで行われるため（図１５のＣ１，Ｃ９およびＣ１７）、サンプルポイントまで５サイクル後（クロックＣＬＫ　Ａ（３１１）換算）である（図１４のＣ６，Ｃ１４およびＣ２３）。なお、図１５のＣ２３でのサンプルは、クロックＣＬＫ　Ｂ（３１２）の立上り（Ｃ１７）から６サイクル（クロックＣＬＫ　Ａ（３１１）換算）である。これは、Ｃ２１においてスタフビット処理が行われ、その分（１サイクル）ホールド状態があったためである。
【００３０】
以上のように、この実施の形態４によれば、次の効果が得られる。
クロックＣＬＫ　Ｂ（３１２）の立上りから送信データが確定するまで余裕がないもしくは間に合わないが、受信データのサンプルタイミングには余裕があるとき、クロックＣＬＫ　Ｂ（３１２）の立上りおよび立下りタイミングを変更することで、実装が可能となる。
また、この実施の形態４と実施の形態２に示した受信および送信時でそれぞれロードイネーブルタイミングを独立に持たせることで、受信データおよび送信データのサンプルタイミングやドライブタイミングをきめ細かく設定することができる。
【００３１】
実施の形態５．
実施の形態１と実施の形態４では、クロックＣＬＫ　Ｂ（３１２）の立上りおよび立下りタイミングは異なるが、回路実装後にこれらのタイミングを変更することはできない。この実施の形態５は回路実装後でもクロックＣＬＫ　Ｂ（３１２）の立上りおよび立下りタイミングが変更できるように、Ｓ／Ｗ（ソフトウェア）や外部端子からの選択信号により立上りおよび立下りタイミングを制御するものである。
【００３２】
図１６はこの発明の実施の形態５によるデータ転送装置を示すブロック図であり、実施の形態４の図１３に対して、クロック生成ブロック１７をクロック生成ブロック（クロック生成部）５１に置き換え、外部入力としてクロックＣＬＫ　Ｂ（３１２）の立上りタイミングのセレクト信号ＳＥＬ　ＰＥ［２：０］（３２７）および立下りタイミングのセレクト信号ＳＥＬ　ＮＥ［２：０］（３２８）を追加している。なお、セレクト信号ＳＥＬ　ＰＥ［２：０］（３２７）およびセレクト信号ＳＥＬ　ＮＥ［２：０］（３２８）は、Ｓ／Ｗによってリード／ライト可能なレジスタや外部端子によって設定される。
図１７はクロック生成ブロックの詳細を示す回路図であり、図において、５１０，５１１はセレクタである。その他の構成については図４と同等である。図１７は、図４のクロック生成ブロック１７に対して、７ｔｏ１のセレクタ５１０，５１１と、セレクタ５１０のセレクト信号としてＳＥＬ　ＮＥ［２：０］（３２８、およびセレクタ５１１のセレクト信号としてＳＥＬ　ＰＥ［２：０］（３２７）を追加している。
セレクタ５１０は、立下りタイミングセレクト信号ＳＥＬ　ＮＥ［２：０］（３２８）の値に応じてカウント値ｃｎｔ［０］からｃｎｔ［７］のいずれかの信号が選択される。選択されたセレクタ５１０の出力は、アンド１６１およびフリップフロップ１６２によって、クロックＣＬＫ　Ｂ（３１２）の立下りイネーブル信号ｃｌｋ　ｎｅｇ　ｅｄｇｅ（３６０）となる。
同様に、セレクタ５１１は、立上りタイミングセレクト信号ＳＥＬ　ＰＥ［２：０］（３２７）の値に応じてカウント値ｃｎｔ［０］からｃｎｔ［７］のいずれかの信号が選択される。選択されたセレクタ５１１の出力は、アンド１６３およびフリップフロップ１６４によって、クロックＣＬＫ　Ｂ（３１２）の立上りイネーブル信号ｃｌｋ　ｐｏｓ　ｅｄｇｅ（３６１）となる。
【００３３】
次に動作について説明する。
図１８はシリアルデータ受信時の動作を示すタイミングチャートであり、図１９はシリアルデータ送信時の動作を示すタイミングチャートである。図１８および図１９のタイミングチャートは、立上りタイミングセレクト信号ＳＥＬ　ＰＥ［２：０］（３２７）を“０ｘ０”、立下りタイミングセレクト信号ＳＥＬ　ＮＥ［２：０］（３２８）を“０ｘ４”に設定したときの例である。この場合、受信パラレルデータＲｘＤａｔａ（３２１）のサンプルポイントは、ＲｘＤａｔａ（３２１）がドライブされてから（図１８のＣ２，Ｃ１０およびＣ１９）、１サイクル後（クロックＣＬＫ　Ａ（３１１）換算）である（図１８のＣ３，Ｃ１１およびＣ２０）。
一方、送信パラレルデータＴｘＤａｔａ（３２２）のドライブタイミングはクロックＣＬＫ　Ｂ（３１２）の立上りで行われるため（図１９のＣ１，Ｃ９およびＣ１７）、ＴｘＤａｔａ（３２２）のサンプルポイントは、データがドライブされてから７サイクル後（クロックＣＬＫ　Ａ（３１１）換算）である（図１９のＣ８，Ｃ１６およびＣ２５）。なお、図１９のＣ２５でのサンプルは、クロックＣＬＫ　Ｂ（３１２）の立上り（Ｃ１７）から８サイクル（クロックＣＬＫ　Ａ（３１１）換算）である。これは、Ｃ２３においてスタフビット処理が行われ、その分（１サイクル）ホールド状態があったためである。
なお、立上りタイミングセレクト信号ＳＥＬ　ＰＥ［２：０］（３２７）を“０ｘ２”、立下りタイミングセレクト信号ＳＥＬ　ＮＥ［２：０］（３２８）を“０ｘ６”に設定したときの動作は、実施の形態４と同じである。
立上りタイミングセレクト信号ＳＥＬ　ＰＥ［２：０］（３２７）を“０ｘ０”に設定した場合、受信パラレルデータＲｘＤａｔａ（３２１）のサンプリングタイミングは、ＲｘＤａｔａ（３２１）が確定してから１サイクルである。これは、品種によっては十分余裕があると言い難い。このようなときは、この実施の形態５と実施の形態２もしくは実施の形態３を組み合せることで、受信パラレルデータＲｘＤａｔａ（３２１）のサンプリングタイミングに余裕を持たせることができる。
【００３４】
以上のように、この実施の形態５によれば、次の効果が得られる。
タイミングセレクト信号ＳＥＬ　ＰＥ［２：０］（３２７）およびＳＥＬ　ＮＥ［２：０］（３２８）をソフトウェアや外部端子等で設定を可能とすることで、回路実装後であってもクロックＣＬＫ　Ｂ（３１２）の立上りおよび立下りタイミングを変更することが可能となる。
例えば、高速動作ブロック１をハードマクロ（レイアウト固定）、低速動作ブロック２をソフトマクロとして開発し、これらを多品種にも流用する場合、対象品種のプロセス、テクノロジ等によって、低速動作ブロック２の遅延は異なってくる。このため、高速動作ブロック１と低速動作ブロック２間のインタフェースは、品種毎によってはタイミングを見直す必要がある。このとき、高速動作ブロック１と低速動作ブロック２間のインタフェースのタイミング遅延を満たすため、ハードマクロ化された高速動作ブロック１の改定が生じた場合、実施の形態１、２および４の方法では、改定期間、人工等のコストは非常に大きい。しかし、この実施の形態５を用いた場合には、クロックＣＬＫ　Ｂ（３１２）の立上りタイミングセレクト信号ＳＥＬ　ＰＥ［２：０］（３２７）および立下りタイミングセレクト信号ＳＥＬ　ＮＥ［２：０］（３２８）を適切な値に設定するだけで良く、高速動作ブロック１のハードマクロを改定する必要がなくなる。
【００３５】
【発明の効果】
以上のように、この発明によれば、高速動作ブロックに、第１の制御信号に基づいて受信されるシリアルデータをパラレルデータに変換し低速動作ブロックに出力すると共に、第１の制御信号に基づいて低速動作ブロックから入力されるパラレルデータをシリアルデータに変換するシリアル／パラレル変換部と、第１のクロックのカウント値に応じて第１のクロックの整数倍の周期を有する第２のクロックを生成するクロック生成部と、第１のクロックのカウント値に応じて第２のクロックと同一の周期を有する第１の制御信号を生成し、シリアル／パラレル変換部に供給する第１の制御信号生成部とを備えるように構成したので、高速動作ブロックおよび低速動作ブロック間の受信あるいは送信におけるデータ転送時に、データのサンプリングタイミングに対して、データのセットアップおよびホールド期間を長く確保することができるため、非同期対策やスキュー合わせが不要になる効果がある。
【００３６】
この発明によれば、受信されるシリアルデータおよびシリアル／パラレル変換部により変換されたシリアルデータが所定ビット連続して一定値である場合に第２の制御信号を生成する第２の制御信号生成部を備え、クロック生成部は、第２の制御信号生成部からの第２の制御信号に応じて第２のクロックの周期を第１のクロックの周期単位で伸ばすように構成したので、スタフビットを検出もしくは挿入したとき、第２のクロックの周期は、スタフビットの除去あるいは挿入分伸びることで、受信データと送信データとの間の同期関系が確保される。このため、オーバーフローやアンダーフロー対策によるゲート数増加やゲート段数増加を回避することができる。また、ゲート数増加による消費電力の増加を防ぐことができる効果がある。
【００３７】
この発明によれば、第１の制御信号生成部において、第２のクロックと同一の周期を有し、タイミングをシフトした第１の制御信号を生成するように構成したので、高速動作ブロックおよび低速動作ブロック間の受信あるいは送信におけるデータ転送時に、データのサンプリングタイミングに対して、データのセットアップおよびホールド期間をさらに長く確保することができる効果がある。
【００３８】
この発明によれば、第１の制御信号生成部において、データの送信時と受信時とでタイミングの異なる第１の制御信号を生成するように構成したので、高速動作ブロックにおける低速動作ブロックからの送信データのサンプリングタイミング、および低速動作ブロックへの受信データのドライブタイミングをそれぞれ最適に設定することができる効果がある。
【００３９】
この発明によれば、第１の制御信号生成部において、ソフトウェアまたは外部端子からの選択信号に応じてタイミングを変更自在にした第１の制御信号を生成するように構成したので、回路実装後であってもサンプリングタイミングやドライブタイミングの変更が可能となる効果がある。
【００４０】
この発明によれば、クロック生成部において、立上りおよび立下りタイミングをシフトした第２のクロックを生成するように構成したので、高速動作ブロックおよび低速動作ブロック間の受信あるいは送信におけるデータ転送時に、データのサンプリングタイミングに対して、データのセットアップおよびホールド期間をさらに長く確保することができる効果がある。
【００４１】
この発明によれば、クロック生成部において、ソフトウェアまたは外部端子からの選択信号に応じて立上りおよび立下りタイミングを変更自在にした第２のクロックを生成するように構成したので、回路実装後であっても第２のクロックの立上りおよび立下りタイミングの変更が可能となる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるデータ転送装置を示すブロック図である。
【図２】データ転送装置の各種信号を示す説明図である。
【図３】サンプリング回路の詳細を示す回路図である。
【図４】クロック生成ブロックの詳細を示す回路図である。
【図５】シリアルデータ受信時の動作を示すタイミングチャートである。
【図６】シリアルデータ送信時の動作を示すタイミングチャートである。
【図７】この発明の実施の形態２によるデータ転送装置を示すブロック図である。
【図８】サンプリング回路の詳細を示す回路図である。
【図９】シリアルデータ送信時の動作を示すタイミングチャートである。
【図１０】この発明の実施の形態３によるデータ転送装置を示すブロック図である。
【図１１】サンプリング回路の詳細を示す回路図である。
【図１２】シリアルデータ送信時の動作を示すタイミングチャートである。
【図１３】この発明の実施の形態４によるデータ転送装置を示すブロック図である。
【図１４】シリアルデータ受信時の動作を示すタイミングチャートである。
【図１５】シリアルデータ送信時の動作を示すタイミングチャートである。
【図１６】この発明の実施の形態５によるデータ転送装置を示すブロック図である。
【図１７】クロック生成ブロックの詳細を示す回路図である。
【図１８】シリアルデータ受信時の動作を示すタイミングチャートである。
【図１９】シリアルデータ送信時の動作を示すタイミングチャートである。
【図２０】従来のデータ転送装置を示すブロック図である。
【符号の説明】
１　高速動作ブロック、２　低速動作ブロック、１１，２１　ホールドレジスタ（シリアル／パラレル変換部）、１２　シフトレジスタ（シリアル／パラレル変換部）、１３　スタフビット検出ブロック（第２の制御信号生成部）、１４　スタフビット挿入ブロック、１５，２２，３１　サンプリング回路（第１の制御信号生成部）、１６　カウンタ（クロック生成部）、１７，５１　クロック生成ブロック（クロック生成部）、１５１，１６１，１６３　アンド、１５２，１６２，１６４，１６７　フリップフロップ、１６５　エクスクルーシブノア、１６６，４２１，５１０，５１１，７１１　セレクタ、３１１　ＣＬＫ　Ａ、３１２ＣＬＫ　Ｂ、３２１　ＲｘＤａｔａ［７：０］、３２２　ＴｘＤａｔａ［７：０］、３２３　ＳＤＩＮ、３２４　ＳＤＯＵＴ、３２５　ＳＥＬ　ＲＸ　ＴＸ、３２６　ＳＥＬ　ＣＮＴ［２：０］、３２７　ＳＥＬ　ＰＥ［２：０］、３２８ＳＥＬ　ＮＥ［２：０］、３３１　ｌｄ　ｅｎ、３３２　ｈｏｌｄ、３３３　ｃｎｔ、３３４　ｓｈｉｆｔ　ｒｅｇｓ［０］、３３５　ｓｈｉｆｔ　ｒｅｇｓ［７：０］、３３６　ｓｆｔ　ｅｎ、３５２　ｃｎｔ［２］、３５３　ｃｎｔ［３］、３５６　ｃｎｔ［６］、３５７　ｃｎｔ［７］、３６０　ｃｌｋ　ｎｅｇｅｄｇｅ、３６１　ｃｌｋ　ｐｏｓ　ｅｄｇｅ。
【図１】
2004072511.tif 000003
【図２】
2004072511.tif 000004
【図３】
2004072511.tif 000005
【図４】
2004072511.tif 000006
【図５】
2004072511.tif 000007
【図６】
2004072511.tif 000008
【図７】
2004072511.tif 000009
【図８】
2004072511.tif 000010
【図９】
2004072511.tif 000011
【図１０】
2004072511.tif 000012
【図１１】
2004072511.tif 000013
【図１２】
2004072511.tif 000014
【図１３】
2004072511.tif 000015
【図１４】
2004072511.tif 000016
【図１５】
2004072511.tif 000017
【図１６】
2004072511.tif 000018
【図１７】
2004072511.tif 000019
【図１８】
2004072511.tif 000020
【図１９】
2004072511.tif 000021
【図２０】
2004072511.tif 000022