(57)【要約】【課題】  位相の異なる入力クロックと出力クロック間（周波数は同じ）におけるポインタデータの同期化を、小ゲートで小さな同期化タイムラグで行う。【解決手段】  第１のクロックに同期する入力データを、第１のクロックと同一の周波数を有する第２のクロックに同期させて出力するにあたり、入力データを第１のクロックに同期したライトポインタ値によって交互に振り分けて記憶し、記憶した各々の入力データを少なくとも２クロック以上保持し、振り分けて記憶したデータを、第２のクロックに同期したリードポインタで交互に読み出して出力する。交互に振り分けて記憶した各々の入力データを少なくとも２クロック以上保持した後、交互に読み出して出力するため、ライトポインタのクロックと、リードポインタのクロックとが互いの立ち上がりエッジが近接した場合でも、安定して正常な値をラッチすることができる。【選択図】  図１
2005311650.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロックに同期する入力データを、該第１のクロックと同一の周波数を有する第２のクロックに同期させて出力するクロック同期化方法において、
前記入力データを前記第１のクロックに同期したライトポインタ値によって交互に振り分けて記憶し、
該記憶した各々の入力データを少なくとも２クロック以上保持し、
前記振り分けて記憶したデータを、前記第２のクロックに同期したリードポインタで交互に読み出して出力することを特徴とするクロック同期化方法。
【請求項２】
第１のクロックに同期する入力データを、該第１のクロックと同一の周波数を有する第２のクロックに同期させて出力するクロック同期化装置であって、
前記入力データを前記第１のクロックに同期したライトポインタ値によって交互に振り分けて格納し、該格納した各々の入力データを少なくとも２クロック以上保持する２つの記憶手段と、
該２つの記憶手段に格納されたデータを、前記第２のクロックに同期したリードポインタで交互に読み出して出力するラッチ手段とを備えることを特徴とするクロック同期化装置。
【請求項３】
第１のクロックに同期するポインタ入力信号と、該第１のクロックに同期化し、前記ポインタ入力信号を更新するストローブ信号から、前記第１のクロックと周期が同じで位相の異なる第２のクロックに同期するポインタ出力信号を生成するクロック同期化装置において、
前記ストローブ信号がHiレベルのときには、次のクロックエッジで出力が反転し、前記第１のクロックに同期する１ビットの第１のレジスタと、
前記ストローブ信号がHiレベルで、かつ、前記第１のレジスタがLoレベルのときには、前記ポインタ入力信号を格納する、前記第１のクロックに同期する第２のレジスタ群と、
前記第２のレジスタ群に１クロックの遅延を加える、前記第１のクロックに同期する第３のレジスタ群と、
前記ストローブ信号がHiレベルで、かつ、前記第１のレジスタがLoレベルのときには、１をセットする、前記第１のクロックに同期する１ビットの第４のレジスタと、
前記第４のレジスタに１クロックの遅延を加える、前記第１のクロックに同期する第５のレジスタと、
前記第４のレジスタと前記第５のレジスタとの出力を論理ORした信号を格納する、前記第１のクロックに同期する１ビットの第６のレジスタと、
前記第６のレジスタの出力がHiレベルのときには、次のクロックエッジで出力が反転し、前記第２のクロックの立ち上がりエッジに同期する１ビットの第７のレジスタと、
前記第６のレジスタの出力がHiレベルのときには、次のクロックエッジで出力が反転し、前記第２のクロックの立ち下がりエッジに同期する１ビットの第８のレジスタと、
前記ストローブ信号がHiレベルで、かつ、前記第１のレジスタがHiレベルのときには、前記ポインタ入力信号を格納し、前記第１のクロックに同期する第９のレジスタ群と、
前記第９のレジスタ群に１クロックの遅延を加える、前記第１のクロックに同期する第１０のレジスタ群と、
前記ストローブ信号がHiレベルで、かつ、前記第１のレジスタがHiレベルのときには、１をセットする、前記第１のクロックに同期する１ビットの第１１のレジスタと、
前記第１１レジスタに１クロックの遅延を加える、前記第１のクロックに同期する第１２のレジスタと、
前記第１１レジスタと前記第１２のレジスタとの出力を論理ORした信号を格納する前記第１のクロックに同期する１ビットの第１３のレジスタと、
前記第１３のレジスタの出力がHiレベルのときには、次のクロックエッジで出力が反転し、前記第２のクロックの立ち上がりエッジに同期する１ビットの第１４のレジスタと、
前記第１３のレジスタの出力がHiレベルのときには、次のクロックエッジで出力が反転し、前記第２のクロックの立ち下がりエッジに同期する１ビットの第１５のレジスタと、
前記第７のレジスタの出力がHiレベルで、かつ、前記第１４のレジスタの出力がHiレベルのときには、前記第７のレジスタの出力をLoレベルにする第１のゲートと、
前記第７のレジスタの出力がHiレベルで、かつ、前記第１４のレジスタの出力がHiレベルのときには、前記第１４のレジスタの出力をLoレベルにする第２のゲートと、
前記第８のレジスタの出力がHiレベルで、かつ、前記第１５のレジスタの出力がHiレベルのときには、前記第８のレジスタの出力をLoレベルにする第３のゲートと、
前記第８のレジスタの出力がHiレベルで、かつ、前記第１５のレジスタの出力がHiレベルのときには、前記第１５のレジスタの出力をLoレベルにする第４のゲートと、
前記第１、第２、第３、第４のゲート出力のいずれか２つ以上が同時にHiレベルとなるときには、前記第１ゲート、第２ゲート、第３ゲート、第４ゲートの順の優先順位をもっていずれか１つのゲートのみHiレベルとして検出する機能を備え、
前記第１のゲート出力がHiレベルのときには、前記第３のレジスタ群の出力を格納し、
前記第２のゲート出力がHiレベルのときには、前記第１０のレジスタ群の出力を格納し、
前記第３のゲート出力がHiレベルのときには、前記第３のレジスタ群の出力を格納し、
前記第４のゲート出力がHiレベルのときには、前記第１０のレジスタ群の出力を格納し、
前記第２のクロックの立ち上がりエッジに同期してポインタ出力信号を出力する第１６のレジスタ群とを備えることを特徴とするクロック同期化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック同期化方法及び同期化装置に関し、特に、入力クロックに同期した複数ビットのデータを、入力クロックと同一の周波数を有する出力クロックに同期して出力させる方法及び装置に関する。
【背景技術】
【０００２】
入力クロックに同期している入力データ（バス信号）を出力クロックに同期させて出力させるにあたって、例えば、特許文献１に記載のクロック同期化方法及びその装置では、
入力と出力とを独立にアクセス可能なメモリを使用し、入力クロック信号に同期したライトポインタ値でデータを一時書き込んだ後、出力クロックに同期したリードポインタで読み出している。
【０００３】
この装置は、リードポインタを更新する際、ライトポインタとリードポインタとの差分を検出するが、ライトポインタとリードポインタは、非同期クロック間の関係であるため、ライトポインタの更新とリードポインタの更新とが同時に継続し、その際に互いのクロック・エッジが近接すると、更新中の不安定なライトポインタの値で差分を検出し、リードポインタの更新の制御に不具合が発生する場合がある。
【０００４】
例えば、図９は、ライトポインタのクロックとリードポインタのクロックが近接し、ライトポインタとリードポインタの更新が同時に行われる動作を示す。ここで、この装置の仕様として、ライトポインタとリードポインタとの差分が４以上ある場合には、リードポインタを４クロック続けて更新するものとする。リードポインタが４クロック更新すると、チェックEN信号をHiレベルにして次の更新を行うか否かを判定する。
【０００５】
クロックＢのT9のタイミングでクロックＡの立ち上がりエッジが一致し、さらに、ライトポインタの更新が行われると、ライトポインタの出力が確定する前の不安定な値に基づいてリードポインタとの差分が算出される。そのため、実際の差分は、図９に示すように、４未満（９−８＝１）であるが、差分が４以上であると誤検出して、リードポインタの更新が起動する。そして、T13のタイミングでは、リードポインタがライトポインタを追い越してしまい、メモリ制御が成り立たなくなる。この不具合を改善する１つの手段として、ライトポインタをリードポインタのクロックに同期化し、同期化したライトポインタとリードポインタとの差分を比較することが行われる。
【０００６】
【特許文献１】特開２０００−１３４１８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記特許文献１に記載の技術においては、周波数が同じで、ライトとリードを位相の異なるクロックでアクセス可能なメモリを使用したメモリ制御方式のポインタ回路部分で、ライトポインタとリードポインタの差分を検出して常時メモリリードを行う場合には、ライトポインタのクロックと、リードポインタのクロックとがクロックラインの遅延や、クロックのジッターにより互いの立ち上がりエッジが近接した状態となると、リードポインタの更新に際し、ライトポインタが更新している不安定な値と、リードポインタの値とが比較され、ライトポインタとリードポインタとの差分を誤検出すると、リードポインタがライトポインタの値を追い越すことなどが発生し、メモリ制御に不具合が発生するという問題があった。
【０００８】
そこで、本発明は、上記従来のクロック同期化方法及び同期化装置における問題点に鑑みてなされたものであって、周波数が同じで位相の異なるクロックで動作するライトポインタと、リードポインタとを比較するメモリ制御方法において、あらゆる位相のずれたタイミングの入力クロックと出力クロックとの間でポインタデータを同期化するとともに、小ゲートの回路で同期化タイムラグの小さいクロック同期化方法及び同期化装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、第１のクロックに同期する入力データを、該第１のクロックと同一の周波数を有する第２のクロックに同期させて出力するクロック同期化方法において、前記入力データを前記第１のクロックに同期したライトポインタ値によって交互に振り分けて記憶し、該記憶した各々の入力データを少なくとも２クロック以上保持し、前記振り分けて記憶したデータを、前記第２のクロックに同期したリードポインタで交互に読み出して出力することを特徴とする。
【００１０】
そして、本発明によれば、ライトポインタ値によって交互に振り分けて記憶した各々の入力データを少なくとも２クロック以上保持した後、第２のクロックに同期したリードポインタで交互に読み出して出力するため、ライトポインタのクロックと、リードポインタのクロックとが互いの立ち上がりエッジが近接した状態となったとしても、安定して正常な値をラッチすることができる。これによって、あらゆる位相のずれたタイミングの入力クロックと出力クロックとの間でポインタデータを同期化することができる。
【００１１】
また、本発明は、第１のクロックに同期する入力データを、該第１のクロックと同一の周波数を有する第２のクロックに同期させて出力するクロック同期化装置であって、前記入力データを前記第１のクロックに同期したライトポインタ値によって交互に振り分けて格納し、該格納した各々の入力データを少なくとも２クロック以上保持する２つの記憶手段と、該２つの記憶手段に格納されたデータを、前記第２のクロックに同期したリードポインタで交互に読み出して出力するラッチ手段とを備えることを特徴とする。
【００１２】
そして、本発明によれば、上述のように、ライトポインタのクロックと、リードポインタのクロックとが互いの立ち上がりエッジが近接した状態となったとしても、安定して正常な値をラッチすることができ、あらゆる位相のずれたタイミングの入力クロックと出力クロックとの間でポインタデータを同期化することが可能となる。
【００１３】
さらに、本発明は、第１のクロックに同期するポインタ入力信号と、該第１のクロックに同期化し、前記ポインタ入力信号を更新するストローブ信号から、前記第１のクロックと周期が同じで位相の異なる第２のクロックに同期するポインタ出力信号を生成するクロック同期化装置において、前記ストローブ信号がHiレベルのときには、次のクロックエッジで出力が反転し、前記第１のクロックに同期する１ビットの第１のレジスタと、前記ストローブ信号がHiレベルで、かつ、前記第１のレジスタがLoレベルのときには、前記ポインタ入力信号を格納する、前記第１のクロックに同期する第２のレジスタ群と、前記第２のレジスタ群に１クロックの遅延を加える、前記第１のクロックに同期する第３のレジスタ群と、前記ストローブ信号がHiレベルで、かつ、前記第１のレジスタがLoレベルのときには、１をセットする、前記第１のクロックに同期する１ビットの第４のレジスタと、前記第４のレジスタに１クロックの遅延を加える、前記第１のクロックに同期する第５のレジスタと、前記第４のレジスタと前記第５のレジスタとの出力を論理ORした信号を格納する、前記第１のクロックに同期する１ビットの第６のレジスタと、前記第６のレジスタの出力がHiレベルのときには、次のクロックエッジで出力が反転し、前記第２のクロックの立ち上がりエッジに同期する１ビットの第７のレジスタと、前記第６のレジスタの出力がHiレベルのときには、次のクロックエッジで出力が反転し、前記第２のクロックの立ち下がりエッジに同期する１ビットの第８のレジスタと、前記ストローブ信号がHiレベルで、かつ、前記第１のレジスタがHiレベルのときには、前記ポインタ入力信号を格納し、前記第１のクロックに同期する第９のレジスタ群と、前記第９のレジスタ群に１クロックの遅延を加える、前記第１のクロックに同期する第１０のレジスタ群と、前記ストローブ信号がHiレベルで、かつ、前記第１のレジスタがHiレベルのときには、１をセットする、前記第１のクロックに同期する１ビットの第１１のレジスタと、前記第１１レジスタに１クロックの遅延を加える、前記第１のクロックに同期する第１２のレジスタと、前記第１１レジスタと前記第１２のレジスタとの出力を論理ORした信号を格納する前記第１のクロックに同期する１ビットの第１３のレジスタと、前記第１３のレジスタの出力がHiレベルのときには、次のクロックエッジで出力が反転し、前記第２のクロックの立ち上がりエッジに同期する１ビットの第１４のレジスタと、前記第１３のレジスタの出力がHiレベルのときには、次のクロックエッジで出力が反転し、前記第２のクロックの立ち下がりエッジに同期する１ビットの第１５のレジスタと、前記第７のレジスタの出力がHiレベルで、かつ、前記第１４のレジスタの出力がHiレベルのときには、前記第７のレジスタの出力をLoレベルにする第１のゲートと、前記第７のレジスタの出力がHiレベルで、かつ、前記第１４のレジスタの出力がHiレベルのときには、前記第１４のレジスタの出力をLoレベルにする第２のゲートと、前記第８のレジスタの出力がHiレベルで、かつ、前記第１５のレジスタの出力がHiレベルのときには、前記第８のレジスタの出力をLoレベルにする第３のゲートと、前記第８のレジスタの出力がHiレベルで、かつ、前記第１５のレジスタの出力がHiレベルのときには、前記第１５のレジスタの出力をLoレベルにする第４のゲートと、前記第１、第２、第３、第４のゲート出力のいずれか２つ以上が同時にHiレベルとなるときには、前記第１ゲート、第２ゲート、第３ゲート、第４ゲートの順の優先順位をもっていずれか１つのゲートのみHiレベルとして検出する機能を備え、前記第１のゲート出力がHiレベルのときには、前記第３のレジスタ群の出力を格納し、前記第２のゲート出力がHiレベルのときには、前記第１０のレジスタ群の出力を格納し、前記第３のゲート出力がHiレベルのときには、前記第３のレジスタ群の出力を格納し、前記第４のゲート出力がHiレベルのときには、前記第１０のレジスタ群の出力を格納し、前記第２のクロックの立ち上がりエッジに同期してポインタ出力信号を出力する第１６のレジスタ群とを備えることを特徴とする。
【００１４】
そして、本発明によれば、ライトポインタのクロックと、リードポインタのクロックとが互いの立ち上がりエッジが近接した状態となったとしても、安定して正常な値をラッチすることができ、あらゆる位相のずれたタイミングの入力クロックと出力クロックとの間でポインタデータを同期化することができるとともに、ポインタデータの同期化を、小ゲートで小さな同期化タイムラグで行うことができる。
【発明の効果】
【００１５】
本発明によれば、周波数が同じで位相の異なるクロックで動作するライトポインタと、リードポインタとを比較するメモリ制御方法において、あらゆる位相のずれたタイミングの入力クロックと出力クロックとの間でポインタデータを同期化するとともに、小ゲートの回路で同期化タイムラグを小さくすることができる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明にかかるクロック同期化装置の一実施の形態を示し、この装置は、レジスタ１〜１６と、インバータ２０〜２９と、ANDゲート３０〜４４と、ORゲート５０〜５３と、NANDゲート６０、６１等で構成される。
【００１７】
レジスタ１は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、クロックCLKAに同期するポインタのストローブ信号CLKA#STBをイネーブルとして入力し、自らの出力をインバータ２０で反転してデータとして入力している。
【００１８】
レジスタ２は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、レジスタ１の出力を反転したインバータ２１の出力と、ストローブ信号CLKA#STBをANDゲート３０で論理ANDした信号をイネーブルとして入力し、CLKAに同期するポインタのデータCLKA#POINTER[x:0]をデータとして入力している。
【００１９】
レジスタ３は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、常時イネーブルで動作し、レジスタ２の出力をデータとして入力している。
【００２０】
レジスタ４は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、常時イネーブルで動作し、レジスタ１の出力を反転したインバータ２２の出力と、ストローブ信号CLKA#STBをANDゲート３１で論理ANDした信号をデータとして入力している。
【００２１】
レジスタ５は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、常時イネーブルで動作し、レジスタ４の出力をデータとして入力している。
【００２２】
レジスタ６は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、常時イネーブルで動作し、レジスタ４の出力とレジスタ５の出力をORゲート５０で論理ORした信号をデータとして入力している。
【００２３】
レジスタ７は、クロックCLKBの立ち上がりエッジに同期するレジスタであり、レジスタ６の出力をイネーブルとして入力し、自らの出力をインバータ２３で反転してデータとして入力している。
【００２４】
レジスタ８は、クロックCLKBの立ち下がりエッジに同期するレジスタであり、レジスタ６の出力をイネーブルとして入力し、自らの出力をインバータ２４で反転してデータとして入力している。
【００２５】
レジスタ９は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、レジスタ１の出力と、ストローブ信号CLKA#STBをANDゲート３２で論理ANDした信号をイネーブルとして入力し、CLKAに同期するポインタのデータCLKA#POINTER[x:0]をデータとして入力している。
【００２６】
レジスタ１０は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、常時イネーブルで動作し、レジスタ９の出力をデータとして入力している。
【００２７】
レジスタ１１は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、常時イネーブルで動作し、レジスタ１の出力と、ストローブ信号CLKA#STBをANDゲート３３で論理ANDした信号をデータとして入力している。
【００２８】
レジスタ１２は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、常時イネーブルで動作し、レジスタ１１の出力をデータとして入力している。
【００２９】
レジスタ１３は、クロックCLKAの立ち上がりエッジに同期するレジスタであり、常時イネーブルで動作し、レジスタ１１の出力とレジスタ１２の出力をORゲート５１で論理ORした信号をデータとして入力している。
【００３０】
レジスタ１４は、クロックCLKBの立ち上がりエッジに同期するレジスタであり、レジスタ１３の出力をイネーブルとして入力し、自らの出力をインバータ２５で反転してデータとして入力している。
【００３１】
レジスタ１５は、クロックCLKBの立ち下がりエッジに同期するレジスタであり、レジスタ１３の出力をイネーブルとして入力し、自らの出力をインバータ２６で反転してデータとして入力している。
【００３２】
ANDゲート３４は、レジスタ７の出力とレジスタ１４の出力とをNANDゲート６０で論理NANDした出力と、レジスタ７の出力とを論理ANDしている。
【００３３】
ANDゲート３５は、レジスタ８の出力とレジスタ１５の出力とをNANDゲート６１で論理NANDした出力と、レジスタ８の出力とを論理ANDしている。
【００３４】
ANDゲート３６は、レジスタ７の出力とレジスタ１４の出力とをNANDゲート６０で論理NANDした出力と、レジスタ１４の出力とを論理ANDしている。
【００３５】
ANDゲート３７は、レジスタ８の出力とレジスタ１５の出力とをNANDゲート６１で論理NANDした出力と、レジスタ１５の出力とを論理ANDしている。
【００３６】
インバータ２７、２８、２９とANDゲート３８、３９、４０は、ANDゲート３４、３５、３６、３７の出力のいずれか１つがHiレベルを出力する優先順位決定回路であり、出力の優先順位は、ANDゲート３４＞ANDゲート３８（ソース信号はANDゲート３５）＞ANDゲート３９（ソース信号はANDゲート３６）＞ANDゲート４０（ソース信号はANDゲート３７）となる回路を構成している。
【００３７】
レジスタ１６は、クロックCLKBの立ち上がりエッジに同期するレジスタであり、ANDゲート４１、４２、４３、４４とORゲート５２、５３により、ANDゲート３４、３８、３９、４０のいずれか１つがHiレベルであれば、イネーブルとなり、ANDゲート３４がHiレベルであれば、レジスタ３の出力をデータとして入力し、ANDゲート３８がHiレベルであれば、レジスタ１０の出力をデータとして入力し、ANDゲート３９がHiレベルであれば、レジスタ３の出力をデータとして入力し、ANDゲート４０がHiレベルであれば、レジスタ１０の出力をデータとして入力する回路を構成している。
【００３８】
次に、上記構成を有するクロック同期化装置の動作について説明する。尚、以下の説明において、クロックCLKAの立ち上がりとクロックCLKBの立ち上がりのタイミングが重ならないケース１を図２を参照しながら説明する。また、クロックCLKAの立ち上がりとクロックCLKBの立ち上がりのタイミングが重なり、クロックCLKA同期のレジスタの出力をラッチするクロックCLKBの立ち上がり同期のレジスタがセットアップ／ホールド時間を満たさず、ラッチの有無により動作が変化したケース２〜４について、図３、図４及び図５を参照しながら説明する。さらに、クロックCLKAの立ち下がりとクロックCLKBの立ち下がりのタイミングが重なり、クロックCLKA同期のレジスタの出力をラッチするクロックCLKBの立ち下がり同期のレジスタがセットアップ／ホールド時間を満たさず、ラッチの有無により動作が変化したケース５〜７について、図６、図７及び図８を参照しながら説明する。
【００３９】
また、図２乃至図８のタイミングチャート上のクロックCLKAの波形の上の添え字１〜15は、クロックの立ち上がりのT（周期）数を表し、クロックCLKBの波形の上の添え字1a、2a、3a〜15aは、クロックの立ち上がりのT（周期）数を表し、添え字1b、2b、3b〜15bは、クロックの立ち下がりのT（周期）数を表す。以後、CLKAのT1、CLKBのT1a、CLKBのT1b等でタイミング位置を表す。
【００４０】
まず、図２を参照しながら、クロックCLKAの立ち上がりとクロックCLKBの立ち上がりのタイミングが重ならないクロック同期化装置の動作ケース１について説明する。
【００４１】
クロックCLKAの立ち上がりに同期したストローブ信号CLKA#STBがHiレベルになると、クロックCLKAの立ち上がりでクロックCLKAに同期するポインタのデータCLKA#POINTER[x:0]が＋１カウントアップ（CLKAのT2〜T7、T9、T11〜T12）する。また、ストローブ信号CLKA#STBがLoレベル（CLKAのT8、T10）であれば、ポインタのデータCLKA#POINTER[x:0]はホールドする。これは、一般的なポインタレジスタと、そのストローブとのタイミング関係である。
【００４２】
レジスタ１は、ストローブ信号CLKA#STBがHiレベルのときには、イネーブル（CLKAのT2〜T7、T9、T11〜T12）となり、インバータ２０により、次のクロックCLKAの立ち上がりで出力を反転し、CLKA#STBがLoレベルのときには、ディセーブル（CLKAのT8、T10）となり、出力をホールドする。
【００４３】
ここから、ポインタのデータCLKA#POINTER[x:0]のクロックCLKAに同期する回路処理について説明する。
【００４４】
CLKA#STBがHiレベルで、かつレジスタ１がLoレベルのときには（CLKAのT2、T4、T6、T9、T12）、インバータ２１とANDゲート３０との組み合わせ回路により、レジスタ２は、CLKA#POINTER[x:0]のデータを格納し、それ以外の条件（CLKAのT3、T5、T7、T8、T10〜T11、T13〜T15）のときには、レジスタ２はホールドする。
【００４５】
CLKA#STBがHiレベルで、かつレジスタ１がHiレベルのときには（CLKAのT3、T5、T7、T11）、ANDゲート３２により、レジスタ９は、CLKA#POINTER[x:0]のデータを格納し、それ以外の条件（CLKAのT2、T4、T6、T8〜T10、T12〜T15）のときには、レジスタ９はホールドする。
【００４６】
これにより、CLKA#POINTER[x:0]の値が＋１カウントアップする毎に、データがレジスタ２とレジスタ９に交互に振り分けられて格納され、レジスタ２とレジスタ９は、最低２クロック以上同じ値を保持する。尚、図２のタイミングチャートでは、レジスタ２に偶数値、レジスタ９に奇数値が格納されているが、ソース信号であるCLKA#POINTER[x:0]の値によっては、このようになるとは限らない。
【００４７】
そして、レジスタ２の出力を１クロック遅らせるのがレジスタ３であり、レジスタ９の出力を１クロック遅らせるのがレジスタ１０である。
【００４８】
ここから、ストローブ信号CLKA#STBのクロックCLKAに同期する回路処理について説明する。
【００４９】
CLKA#STBがHiレベルで、かつレジスタ１がLoレベルのときには、インバータ２２とANDゲート３１の組み合わせ回路により、レジスタ４にHiを格納し、それ以外の条件のときには、Loを格納する。
【００５０】
CLKA#STBがHiレベルで、かつレジスタ１がHiレベルのときには、ANDゲート３３により、レジスタ１１にHiを格納し、それ以外の条件のときには、Loを格納する。
【００５１】
レジスタ４の出力を１クロック遅らせるのがレジスタ５であり、レジスタ１１の出力を１クロック遅らせるのがレジスタ１２である。
【００５２】
そして、レジスタ６は、ORゲート５０によりレジスタ４とレジスタ５をORした信号を格納し、レジスタ１３は、ORゲート５１によりレジスタ１１とレジスタ１２をORした信号を格納する。
【００５３】
ここで、レジスタ６の出力は、レジスタ３が同じ値を保持する２クロック間をHiレベルで表示し（CLKAの[T4-T5]、[T6-T7]、[T8-T9]、[T11-T12]、[T14-T15]）、レジスタ３が３クロック間以上同じ値を保持する場合には、３クロック目からLoレベルで表示する（CLKAのT10、T13）動作となる。
【００５４】
同じくレジスタ１３の出力は、レジスタ１０が同じ値を保持する２クロック間をHiレベルで表示し（CLKAの[T5-T6]、[T7-T8]、[T9-T10]、[T13-T14]）、レジスタ１０が３クロック間以上同じ値を保持する場合には、３クロック目からLoレベルで表示する（CLKAのT11、T12、T15）動作となる。
【００５５】
ここから、レジスタ６とレジスタ１３の出力からクロックCLKBに同期する回路処理について説明する。
【００５６】
レジスタ７（CLKBの立ち上がり同期）は、レジスタ６がHiレベルのとき、イネーブル（CLKBのT3a〜T8a、T10a〜T11a 、T13a〜T14a）となり、インバータ２３により、次のクロックCLKBの立ち上がりで出力を反転し、レジスタ６がLoレベルのときには、ディセーブル（CLKBのT9a、T12a）となり、出力をホールドする。図２において、レジスタ７は、CLKBのT3aのタイミングでラッチを行う。
【００５７】
レジスタ８（CLKBの立ち下がり同期）は、レジスタ６がHiレベルのとき、イネーブル（CLKBのT3b〜T8b、T10b〜T11b 、T13b〜T14b）となり、インバータ２４により、次のクロックCLKBの立ち下がりで出力を反転し、レジスタ６がLoレベルのときには、ディセーブル（CLKBのT9b、T12b）となり、出力をホールドする。図２において、レジスタ８は、CLKBのT3bのタイミングでラッチを行う。
【００５８】
このとき、レジスタ６（CLKAの立ち上がり同期）の出力の変化点と、クロックCLKBの立ち上がりまたは立ち下がりタイミングが重なると、レジスタ７またはレジスタ８は、セットアップ／ホールド時間を満足させることができず、正常な値がラッチできない場合があるが、クロックCLKAとクロックCLKBは、非同期であるが同じ周波数であるため、レジスタ６の１クロック間の出力の安定した期間の信号をクロックCLKBの立ち上がりまたは立ち下がりのどちらかのタイミングでは必ず正常な値をラッチできる。尚、図２のようにクロックCLKBの立ち上がり（レジスタ７）または立ち下がり（レジスタ８）の両方で正常な値をラッチしても、本回路では問題はない。
【００５９】
さらに、レジスタ１４（CLKBの立ち上がり同期）は、レジスタ１３がHiレベルのとき、イネーブル（CLKBのT4a〜T9a、T12a〜T13a）となり、インバータ２５により、次のクロックCLKBの立ち上がりで出力を反転し、レジスタ１３がLoレベルのときには、ディセーブル（CLKBのT10a〜T11a、T14a）となり、出力をホールドする。図２において、レジスタ１４は、CLKBのT4aのタイミングでラッチを行う。
【００６０】
レジスタ１５（CLKBの立ち下がり同期）は、レジスタ１３がHiレベルのとき、イネーブル（CLKBのT4b〜T9b、T12b〜T13b）となり、インバータ２６により、次のクロックCLKBの立ち下がりで出力を反転し、レジスタ１３がLoレベルのときには、ディセーブル（CLKBのT10b〜T11b、T14b）となり、出力をホールドする。図２において、レジスタ１５は、CLKBのT4bのタイミングでラッチを行う。
【００６１】
このとき、レジスタ１３（CLKAの立ち上がり同期）の出力の変化点と、クロックCLKBの立ち上がりまたは立ち下がりタイミングが重なると、レジスタ１４またはレジスタ１５は、セットアップ／ホールド時間を満足させることができず、正常な値がラッチできない場合があるが、クロックCLKAとクロックCLKBとは、非同期であるが同じ周波数であるため、レジスタ１３の１クロック間の出力の安定した期間の信号をクロックCLKBの立ち上がりまたは立ち下がりのどちらかのタイミングでは必ず正常な値をラッチできる。尚、図２のようにクロックCLKBの立ち上がり（レジスタ１４）または立ち下がり（レジスタ１５）の両方で正常な値をラッチしても本回路では問題はない。
【００６２】
レジスタ７とレジスタ８、レジスタ１４とレジスタ１５のタイミング関係は、レジスタ７がレジスタ８より1/2クロック早くなるとともに、レジスタ１４がレジスタ１５より1/2クロック早くなる。
【００６３】
レジスタ７の出力は、NANDゲート６０とANDゲート３４の組み合わせ回路を通過する。この組み合わせ回路は、レジスタ７がHiレベルで、かつレジスタ１４がHiレベルのときにLoレベルを出力し、それ以外の条件のときは、レジスタ７の値を出力する。図２においては、レジスタ７とレジスタ１４の両方が同時にHiレベルとなるタイミングはないので、ANDゲート３４は、常にレジスタ７の値を出力する。
【００６４】
レジスタ８の出力は、NANDゲート６１とANDゲート３５の組み合わせ回路を通過する。この組み合わせ回路は、レジスタ８がHiレベルで、かつレジスタ１５がHiレベルのときLoレベルを出力し、それ以外の条件のときには、レジスタ８の値を出力する。図２においては、レジスタ８とレジスタ１５の両方が同時にHiレベルとなるタイミングはないので、ANDゲート３５は、常にレジスタ８の値を出力する。
【００６５】
レジスタ１４の出力は、NANDゲート６０とANDゲート３６の組み合わせ回路を通過する。この組み合わせ回路は、レジスタ７がHiレベルで、かつレジスタ１４がHiレベルのときLoレベルを出力し、それ以外の条件のときには、レジスタ１４の値を出力する。図２においては、レジスタ７とレジスタ１４の両方が同時にHiレベルとなるタイミングはないので、ANDゲート３６は、常にレジスタ１４の値を出力する。
【００６６】
レジスタ１５の出力は、NANDゲート６１とANDゲート３７の組み合わせ回路を通過する。この組み合わせ回路は、レジスタ８がHiレベルで、かつレジスタ１５がHiレベルのときLoレベルを出力し、それ以外の条件のときは、レジスタ１５の値を出力する。図２においては、レジスタ８とレジスタ１５の両方が同時にHiレベルとなるタイミングはないので、ANDゲート３７は、常にレジスタ１５の値を出力する。
【００６７】
ANDゲート３４、３５、３６、３７の出力は、インバータ２７、２８、２９と、ANDゲート３８、３９、４０で構成する優先順位決定回路を通過する。図１においては、優先順位はANDゲート３４＞ANDゲート３８（ソース信号はANDゲート３５）＞ANDゲート３９（ソース信号はANDゲート３６）＞ANDゲート４０（ソース信号はANDゲート３７）に従い、ANDゲート３４、３８、３９、４０のいずれか１つのみにHiレベルが出力される。
【００６８】
図２において、ANDゲート３４出力のHiレベルとANDゲート３８出力のHiレベルが交互に出力される間は、ANDゲート３９とANDゲート４０の出力は優先順位決定回路によりLoレベルに抑止されている。
【００６９】
レジスタ１６は、CLKBの立ち上がり同期で動作する。ANDゲート３４、３８、３９、４０の出力は、ORゲート５２により論理ORされ、ORゲート５２の出力がHiレベルのときには、レジスタ１６はイネーブルとなり、Loレベルのときには、レジスタ１６はホールドする。
【００７０】
さらに、ANDゲート４１、４２、４３、４４と、ORゲート５３の組み合わせ回路により、ANDゲート３４の出力がHiレベルのCLKBのT4a、T6a、T8a、T11a、T14aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート３８の出力がHiレベルのCLKBのT5a、T7a、T9a、T13aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納され、ANDゲート３９の出力がHiレベルのCLKBのT11b、T14bのタイミングでは、CLKBは、立ち下がりタイミングであるため、レジスタ１６は動作せず、ANDゲート４０の出力がHiレベルのCLKBのT9bのタイミングでは、CLKBは立ち下がりタイミングであるため、レジスタ１６は動作しない。
【００７１】
図２において、レジスタ３とレジスタ１０の出力は、各々２クロック間以上ホールドされているため、レジスタ１６のラッチ条件であるクロックCLKBの立ち上がりと、イネーブルとなるタイミングとで、データは安定していて正しい値がラッチできる。レジスタ３とレジスタ１０が出力するポインタデータが、交互にレジスタ１６に格納されていき、ポインタデータの同期化が完了する。このケースによるポインタ同期化遅延の最大値は４．５クロックである。
【００７２】
次に、図３のCLKAの立ち上がりとクロックCLKBの立ち上がりのタイミングが重なるクロック同期化装置の動作ケース２について説明する。尚、クロックCLKAに同期する回路処理のタイミングは、図２と場合と全く同様である。
【００７３】
レジスタ７（CLKBの立ち上がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3aのタイミングでラッチを行い、レジスタ１４（CLKBの立ち上がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4aのタイミングでラッチを取り逃がし、１クロック後のT5aでラッチを行う。
【００７４】
そのため、レジスタ７とレジスタ１４が同時にHiレベルになるCLKBのT6a、T8a、T14aのタイミングが発生する。この状態では、レジスタ３またはレジスタ１０が出力するポインタデータを選択するセレクト信号のタイミングが競合してしまう。
【００７５】
そこで、レジスタ７の出力を、NANDゲート６０とANDゲート３４との組み合わせ回路により、レジスタ７がHiレベルで、かつレジスタ１４がHiレベルのときにLoレベルを出力させ、レジスタ１４の出力をNANDゲート６０とANDゲート３６の組み合わせ回路により、レジスタ７がHiレベルで、かつレジスタ１４がHiレベルのときに、Loレベルを出力させて無効にする。
【００７６】
次に、レジスタ８（CLKBの立ち下がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3bのタイミングでラッチを行い、レジスタ１５（CLKBの立ち下がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4bのタイミングでラッチを行う。レジスタ８と、レジスタ１５とは、ラッチタイミングが1/2クロックずれているのでどちらもラッチの取り逃がしは起こりえない。
【００７７】
レジスタ７とレジスタ８、及びレジスタ１４とレジスタ１５とのタイミング関係は、レジスタ７がレジスタ８より1/2クロック早くなるとともに、レジスタ１４がレジスタ１５より1/2クロック遅くなる。
【００７８】
以上の動作から優先順位決定回路により、ANDゲート３４の出力がHiレベルのCLKBのT4a、T11aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート３８の出力がHiレベルのCLKBのT10aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納され、ANDゲート３９の出力がHiレベルのCLKBのT6a、T8a、T14aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート４０の出力がHiレベルのCLKBのT5a、T7a、T9a、T13aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納される。ANDゲート３９の出力がHiレベルのCLKBのT4b、T11bでは、CLKBは立ち下がりタイミングであるため、レジスタ１６は動作しない。
【００７９】
従って、図３に示すように、レジスタ３と、レジスタ１０とが出力するポインタデータが交互にレジスタ１６に格納されていき、ポインタデータの同期化が完了する。このケースによるポインタ同期化遅延の最大値は４クロックである。
【００８０】
次に、図４のCLKAの立ち上がりと、クロックCLKBの立ち上がりのタイミングとが重なるクロック同期化装置の動作ケース３について説明する。尚、クロックCLKAに同期する回路処理のタイミングは、図２と全く同様である。
【００８１】
レジスタ７（CLKBの立ち上がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3aのタイミングでラッチでラッチを取り逃がし、１クロック後のT4aでラッチを行い、レジスタ１４（CLKBの立ち上がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4aのタイミングでラッチを行う。
【００８２】
そのため、レジスタ７とレジスタ１４とが同時にHiレベルになるCLKBのT5a、T7a、T9aのタイミングが発生する。この状態は、レジスタ３またはレジスタ１０が出力するポインタデータを選択するセレクト信号のタイミングが競合してしまう。
【００８３】
そこで、レジスタ７の出力をNANDゲート６０とANDゲート３４の組み合わせ回路により、レジスタ７がHiレベルであり、レジスタ１４がHiレベルのときに、Loレベルを出力させ、レジスタ１４の出力をNANDゲート６０とANDゲート３６の組み合わせ回路により、レジスタ７がHiレベルであり、かつレジスタ１４がHiレベルのときに、Loレベルを出力させて無効にする。
【００８４】
次に、レジスタ８（CLKBの立ち下がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3bのタイミングでラッチを行い、レジスタ１５（CLKBの立ち下がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4bのタイミングでラッチを行う。
【００８５】
レジスタ８とレジスタ１５は、ラッチタイミングが1/2クロックずれているので、どちらもラッチの取り逃がしは起こりえない。レジスタ７とレジスタ８、及びレジスタ１４とレジスタ１５のタイミング関係は、レジスタ７がレジスタ８より1/2クロック遅くなるとともに、レジスタ１４がレジスタ１５より1/2クロック早くなる。
【００８６】
以上の動作から優先順位決定回路により、ANDゲート３４の出力がHiレベルのCLKBのT12a、T15aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート３８の出力がHiレベルのCLKBのT13aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納され、ANDゲート３９の出力がHiレベルのCLKBのT4a、T6a、T8a、T11a、T14aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート４０の出力がHiレベルのCLKBのT5a、T7a、T9aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納される。
【００８７】
ANDゲート３８の出力がHiレベルのCLKBのT13bでは、CLKBは立ち下がりタイミングであるため、レジスタ１６は動作しない。
【００８８】
従って、図４に示すように、レジスタ３とレジスタ１０が出力するポインタデータが交互にレジスタ１６に格納されていき、ポインタデータの同期化が完了する。このケースによるポインタ同期化遅延の最大値は４クロックである。
【００８９】
次に、図５のCLKAの立ち上がりとクロックCLKBの立ち上がりのタイミングが重なるクロック同期化装置の動作ケース４について説明する。尚、クロックCLKAに同期する回路処理のタイミングは、図２と全く同様である。
【００９０】
レジスタ７（CLKBの立ち上がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3aのタイミングでラッチを取り逃がし、１クロック後のT4aでラッチを行い、レジスタ１４（CLKBの立ち上がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4aのタイミングでラッチを取り逃がし、１クロック後のT5aでラッチを行う。この場合、レジスタ７とレジスタ１４が同時にHiレベルになるタイミングは発生しない。
【００９１】
次に、レジスタ８（CLKBの立ち下がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3bのタイミングでラッチを行い、レジスタ１５（CLKBの立ち下がり同期）はレジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4bのタイミングでラッチを行う。レジスタ８とレジスタ１５は、ラッチタイミングが1/2クロックずれているのでどちらもラッチの取り逃がしは起こりえない。
【００９２】
レジスタ７とレジスタ８、及びレジスタ１４とレジスタ１５のタイミング関係はレジスタ７がレジスタ８より1/2クロック遅くなるとともに、レジスタ１４がレジスタ１５より1/2クロック遅くなる。
【００９３】
以上の動作から優先順位決定回路により、ANDゲート３４の出力がHiレベルのCLKBのT5a、T7a、T9a、T12a、T15aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート３８の出力がHiレベルのCLKBのT6a、T8a、T10a、T14aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納され、ANDゲート３９の出力がHiレベルのCLKBのT4a、T11aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート４０の出力がHiレベルのCLKBのT13aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納される。
【００９４】
従って、図５に示すように、レジスタ３とレジスタ１０が出力するポインタデータが交互にレジスタ１６に格納されていき、ポインタデータの同期化が完了する。このケースによるポインタ同期化遅延の最大値は４クロックである。
【００９５】
次に、図６のCLKAの立ち下がりとクロックCLKBの立ち上がりのタイミングが重なるクロック同期化装置の動作ケース５について説明する。尚、クロックCLKAに同期する回路処理のタイミングは、図２と全く同様である。
【００９６】
レジスタ７（CLKBの立ち上がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3aのタイミングでラッチを行い、レジスタ１４（CLKBの立ち上がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4aのタイミングでラッチを行う。レジスタ７とレジスタ１４は、ラッチタイミングが1/2クロックずれているのでどちらもラッチの取り逃がしは起こりえない。
【００９７】
次に、レジスタ８（CLKBの立ち下がり同期）はレジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT2bのタイミングでラッチを行い、レジスタ１５（CLKBの立ち下がり同期）はレジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT3bのタイミングでラッチを行う。この場合レジスタ８とレジスタ１５が同時にHiレベルになるタイミングは発生しない。
【００９８】
レジスタ７とレジスタ８、及びレジスタ１４とレジスタ１５のタイミング関係は、レジスタ７がレジスタ８より1/2クロック遅くなるとともに、レジスタ１４がレジスタ１５より1/2クロック遅くなる。
【００９９】
以上の動作から優先順位決定回路により、ANDゲート３４の出力がHiレベルのCLKBのT4a、T6a、T8a、T11a、T14aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート３８の出力がHiレベルのCLKBのT5a、T7a、T9a、T13aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納され、ANDゲート３９の出力がHiレベルのCLKBのT3a、T10aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート４０の出力がHiレベルのCLKBのT12aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納される。
【０１００】
従って、図６に示すように、レジスタ３とレジスタ１０が出力するポインタデータが交互にレジスタ１６に格納されていき、ポインタデータの同期化が完了する。このケースによるポインタ同期化遅延の最大値は３．５クロックである。
【０１０１】
次に、図７のCLKAの立ち下がりとクロックCLKBの立ち上がりのタイミングが重なるクロック同期化装置の動作ケース６について説明する。尚、クロックCLKAに同期する回路処理のタイミングは、図２と全く同様である。
【０１０２】
レジスタ７（CLKBの立ち上がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3aのタイミングでラッチを行い、レジスタ１４（CLKBの立ち上がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4aのタイミングでラッチを行う。レジスタ７とレジスタ１４は、ラッチタイミングが1/2クロックずれているのでどちらもラッチの取り逃がしは起こりえない。
【０１０３】
次に、レジスタ８（CLKBの立ち上がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT2bのタイミングでラッチを行い、レジスタ１５（CLKBの立ち上がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT3bのタイミングでラッチを取り逃がし、１クロック後のT4bでラッチを行う。
【０１０４】
そのため、レジスタ８とレジスタ１５が同時にHiレベルになるCLKBのT5b、T7b、T13bのタイミングが発生する。この状態では、レジスタ３またはレジスタ１０が出力するポインタデータを選択するセレクト信号のタイミングが競合してしまう。
【０１０５】
そこで、レジスタ８の出力をNANDゲート６１とANDゲート３５の組み合わせ回路により、レジスタ８がHiレベルで、かつレジスタ１５がHiレベルのときLoレベルを出力させ、レジスタ１５の出力をNANDゲート６１とANDゲート３７の組み合わせ回路により、レジスタ８がHiレベルで、かつレジスタ１５がHiレベルのときLoレベルを出力させて無効にする。
【０１０６】
レジスタ７とレジスタ８、及びレジスタ１４とレジスタ１５のタイミング関係は、レジスタ７がレジスタ８より1/2クロック遅くなるとともに、レジスタ１４がレジスタ１５より1/2クロック早くなる。
【０１０７】
以上の動作から、優先順位決定回路により、ANDゲート３４の出力がHiレベルのCLKBのT4a、T6a、T8a、T11a、T14aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート３８の出力がHiレベルのCLKBのT5a、T7a、T9a、T13aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納され、
ANDゲート３９の出力がHiレベルのCLKBのT3a、T10aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート４０の出力がHiレベルのCLKBのT9bでは、CLKBは立ち下がりタイミングであるため、レジスタ１６は動作しない。
【０１０８】
従って、図７に示すように、レジスタ３とレジスタ１０が出力するポインタデータが交互にレジスタ１６に格納されていき、ポインタデータの同期化が完了する。このケースによるポインタ同期化遅延の最大値は３．５クロックである。
【０１０９】
次に、図８のCLKAの立ち下がりとクロックCLKBの立ち上がりのタイミングが重なるクロック同期化装置の動作ケース７について説明する。尚、クロックCLKAに同期する回路処理のタイミングは図２と全く同様である。
【０１１０】
レジスタ７（CLKBの立ち上がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT3aのタイミングでラッチを行い、レジスタ１４（CLKBの立ち上がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT4aのタイミングでラッチを行う。レジスタ７とレジスタ１４は、ラッチタイミングが1/2クロックずれているのでどちらもラッチの取り逃がしは起こりえない。
【０１１１】
次に、レジスタ８（CLKBの立ち上がり同期）は、レジスタ６（CLKAの立ち上がり同期）のHiレベルをCLKBのT2bのタイミングでラッチを取り逃がし、１クロック後のT3bでラッチを行い、レジスタ１５（CLKBの立ち上がり同期）は、レジスタ１３（CLKAの立ち上がり同期）のHiレベルをCLKBのT3bのタイミングでラッチでラッチを行う。
【０１１２】
そのため、レジスタ８とレジスタ１５が同時にHiレベルになるCLKBのT4b、T6b、T8bのタイミングが発生する。この状態では、レジスタ３またはレジスタ１０が出力するポインタデータを選択するセレクト信号のタイミングが競合してしまう。
【０１１３】
そこで、レジスタ８の出力をNANDゲート６１とANDゲート３５の組み合わせ回路により、レジスタ８がHiレベルで、かつレジスタ１５がHiレベルのときLoレベルを出力させ、レジスタ１５の出力をNANDゲート６１とANDゲート３７の組み合わせ回路により、レジスタ８がHiレベルで、かつレジスタ１５がHiレベルのときLoレベルを出力させて無効にする。
【０１１４】
レジスタ７とレジスタ８、及びレジスタ１４とレジスタ１５のタイミング関係はレジスタ７がレジスタ８より1/2クロック早くなるとともに、レジスタ１４がレジスタ１５より1/2クロック遅くなる。
【０１１５】
以上の動作から、優先順位決定回路により、ANDゲート３４の出力がHiレベルのCLKBのT4a、T6a、T8a、T11a、T14aのタイミングでは、レジスタ３が出力するポインタデータがレジスタ１６に格納され、ANDゲート３８の出力がHiレベルのCLKBのT5a、T7a、T9a、T13aのタイミングでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納され、
ANDゲート３９の出力がHiレベルのCLKBのT11b、T14bのタイミングでは、CLKBは立ち下がりタイミングであるため、レジスタ１６は動作せず、ANDゲート４０の出力がHiレベルのCLKBのT12aでは、レジスタ１０が出力するポインタデータがレジスタ１６に格納される。
【０１１６】
従って、図８に示すように、レジスタ３とレジスタ１０が出力するポインタデータが交互にレジスタ１６に格納されていき、ポインタデータの同期化が完了する。このケースによるポインタ同期化遅延の最大値は４．５クロックである。その他のレジスタ７とレジスタ８、レジスタ１４とレジスタ１５のタイミング関係として、レジスタ７がレジスタ８より1/2クロック早くなるとともに、レジスタ１４がレジスタ１５より1/2クロック早くなる動作は図２の動作と同じである。
【０１１７】
従って、以上の動作ケースの全てにおいて、クロックCLKA同期のポインタデータCLKA#POINTER[x:0]は、データの一部が抜け落ちることなく、クロックCLKB同期のポインタデータCLKB#POINTER[x:0]（レジスタ１６）に同期化する。
【０１１８】
尚、上記実施の形態において、組み合わせ回路のNANDゲート６０、６１とANDゲート３４、３５、３６、３７及び、優先順位回路のインバータ２７、２８、２９とANDゲート３８、３９、４０、及び、レジスタ１６の制御回路のORゲート５２、５３とANDゲート４１、４２、４３、４４は、図２〜８のタイミングチャートと同一の動作をするものであれば、異なるゲートの組み合わせで構成することができる。
【図面の簡単な説明】
【０１１９】
【図１】本発明にかかるクロック同期化装置の一実施の形態を示す全体構成図である。
【図２】CLKAの立ち上がりとクロックCLKBの立ち上がり及び立ち下がりのタイミングが重ならないケース１のタイミングチャートである。
【図３】CLKAの立ち上がりとクロックCLKBの立ち上がりのタイミングが重なるケース２のタイミングチャートである。
【図４】CLKAの立ち上がりとクロックCLKBの立ち上がりのタイミングが重なるケース３のタイミングチャートである。
【図５】CLKAの立ち上がりとクロックCLKBの立ち上がりのタイミングが重なるケース４のタイミングチャートである。
【図６】CLKAの立ち上がりとクロックCLKBの立ち下がりのタイミングが重なるケース５のタイミングチャートである。
【図７】CLKAの立ち上がりとクロックCLKBの立ち下がりのタイミングが重なるケース６のタイミングチャートである。
【図８】CLKAの立ち上がりとクロックCLKBの立ち下がりのタイミングが重なるケース７のタイミングチャートである。
【図９】従来の非同期のポインタ間の動作を示すタイミングチャートである。
【符号の説明】
【０１２０】
１〜１６        レジスタ
２０〜２９      インバータ
３０〜４４      ANDゲート
５０〜５３      ORゲート
６０、６１      NANDゲート
【図１】
2005311650.tif 000003
【図２】
2005311650.tif 000004
【図３】
2005311650.tif 000005
【図４】
2005311650.tif 000006
【図５】
2005311650.tif 000007
【図６】
2005311650.tif 000008
【図７】
2005311650.tif 000009
【図８】
2005311650.tif 000010
【図９】
2005311650.tif 000011