(57)【要約】      （修正有）【課題】第１クロック信号に同期したデータを第２クロック信号で同期化する半導体装置を提供する。【解決手段】第２クロック信号を所定時間遅延した第１遅延クロック信号、第１遅延クロック信号を所定時間遅延した第２遅延クロック信号を生成し、第２クロック信号が第１から第２論理値へ遷移時点の第１取込データと、第２遅延クロック信号が第１から第２論理値へ遷移時点の第２取込データを取り込む。第２クロック信号が第１から第２論理値へ遷移時点での第１クロック信号値（第１クロック値）と、第１遅延クロック信号が第１から第２論理値へ遷移時点での第１クロック信号値（第２クロック値）を取り込む。第１及び第２クロック値が共に第１の論理値の場合は第１取込データを第２クロック信号で同期化したデータを出力し、第１及び第２クロック値のうちの一方又は双方が第２の論理値の場合は第２取込データを第２クロック信号で同期化したデータを出力する。【選択図】図２
2018137694.tif 000002
【特許請求の範囲】
【請求項１】
第１の論理値及び第２の論理値の状態を交互に繰り返す第１クロック信号に同期した入力データを、前記第１の論理値及び前記第２の論理値の状態を交互に繰り返す第２クロック信号に同期化する半導体装置であって、
前記第２クロック信号を所定時間だけ遅延した信号を第１遅延クロック信号として生成すると共に、前記第１遅延クロック信号を前記所定時間だけ遅延した信号を第２遅延クロック信号として生成するクロック遅延部と、
前記第２クロック信号が前記第１の論理値から前記第２の論理値に遷移するタイミングで前記入力データを取り込み第１取込データとして得る第１の同期取込部と、
前記第２遅延クロック信号が前記第１の論理値から前記第２の論理値に遷移するタイミングで前記入力データを取り込み第２取込データとして得る第２の同期取込部と、
前記第２クロック信号が前記第１の論理値から前記第２の論理値に遷移する時点での前記第１クロック信号の値を第１クロック値として取り込むと共に、前記第１遅延クロック信号が前記第１の論理値から前記第２の論理値に遷移する時点での前記第１クロック信号の値を第２クロック値として取り込むクロック値取込部と、
前記第１クロック値及び前記第２クロック値が共に前記第１の論理値を示す場合は前記第１取込データを前記第２クロック信号で同期化したデータを同期化データとして出力する一方、前記第１クロック値及び前記第２クロック値のうちの一方又は双方が前記第２の論理値を示す場合は前記第２取込データを前記第２クロック信号で同期化したデータを前記同期化データとして出力する出力部と、を有することを特徴とする半導体装置。
【請求項２】
前記第１の同期取込部及び前記第２の同期取込部の各々は、フリップフロップを含み、
前記所定時間は、前記フリップフロップのセットアップ時間にホールド時間を加えた時間以上の時間であることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記第１クロック信号は前記第２クロック信号とは非同期であり、且つ前記第１クロック信号の周波数と前記第２クロック信号の周波数とが異なることを特徴とする請求項１又は２に記載の半導体装置。
【請求項４】
前記出力部は、
前記第１取込データ及び前記第２取込データのうちの一方を選択するセレクタと、
前記第１クロック値及び前記第２クロック値が共に前記第１の論理値を示す場合には前記第１取込データを選択させ、前記第１クロック値及び前記第２クロック値のうちの一方又は双方が前記第２の論理値を示す場合には前記第２取込データを選択させるように前記セレクタを制御する選択判定部と、
前記セレクタで選択された前記第１取込データ又は前記第２取込データを、前記第２クロック信号が前記第２の論理値から前記第１の論理値に遷移するタイミングで取り込み前記同期化データとして出力する出力取込部と、を含むことを特徴とする請求項１〜３のいずれか１に記載の半導体装置。
【請求項５】
第１の論理値及び第２の論理値の状態を交互に繰り返す第１クロック信号に同期した入力データを、前記第１の論理値及び前記第２の論理値の状態を交互に繰り返す第２クロック信号に同期化するデータ同期化方法であって、
前記第２クロック信号を所定時間だけ遅延した信号を第１遅延クロック信号として生成すると共に、前記第１遅延クロック信号を前記所定時間だけ遅延した信号を第２遅延クロック信号として生成し、
前記第２クロック信号が前記第１の論理値から前記第２の論理値に遷移するタイミングで前記入力データを取り込み第１取込データとして得ると共に、前記第２遅延クロック信号が前記第１の論理値から前記第２の論理値に遷移するタイミングで前記入力データを取り込み第２取込データとして得て、
前記第２クロック信号が前記第１の論理値から前記第２の論理値に遷移する時点での前記第１クロック信号の値を第１クロック値として得ると共に、前記第１遅延クロック信号が前記第１の論理値から前記第２の論理値に遷移する時点での前記第１クロック信号の値を第２クロック値として得て、
前記第１クロック値及び前記第２クロック値が共に前記第１の論理値を示す場合は前記第１取込データを前記第２クロック信号で同期化したデータを同期化データとして出力する一方、前記第１クロック値及び前記第２クロック値のうちの一方又は双方が前記第２の論理値を示す場合は前記第２取込データを前記第２クロック信号で同期化したデータを前記同期化データとして出力することを特徴とするデータ同期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを同期化する半導体装置及びデータ同期方法に関する。
【背景技術】
【０００２】
現在、半導体装置に形成されるデータ処理回路として、クロック同期設計が施されたものが主流となっている。また、近年、このようなデータ処理回路に対して高速化及び低消費電力化を図る為に、当該データ処理回路を構成する各機能モジュールを、互いに非同期な独立したクロック信号で動作させる場合がある。例えば、第１のクロック信号で動作する第１の機能モジュールで生成された出力信号を、第２のクロック信号で動作する第２の機能モジュールに転送する場合には、第２の機能モジュールに含まれるフリップフロップ（以下、ＦＦとも称する）が、第２のクロック信号に同期して当該出力信号の取り込みを行う。
【０００３】
ところで、ＦＦには、自身に入力されたデータを正しく取り込ませる為に、クロック信号の立ち上がり又は立ち下がりエッジの時点の前後に、データを一定値（論理値０又は１）に維持させておかなければならないデータ変化禁止期間（セットアップ時間、ホールド時間）が規定されている。かかるデータ変化禁止期間中に、入力データの値が変化すると、ＦＦの出力が所定期間に亘り発振して不定値となる、いわゆるメタステーブルが発生する。メタステーブルが発生すると、所定期間後にＦＦの出力は安定するが、その出力値が入力されたデータの値と同一になるとは限らないので、入力されたデータが後段のＦＦに正しく伝搬されないという不具合が生じる。
【０００４】
よって、互いに非同期なクロック信号で動作する機能モジュール間で直接データの転送を行うと、受け側の機能モジュールのＦＦでメタステーブルが発生するという不具合が生じる。
【０００５】
そこで、メタステーブルに起因する不具合を解消する為に、クロック信号の立ち上がりエッジのタイミングでデータを取り込む第１のＦＦと、このクロック信号の立ち下がりエッジのタイミングでデータを取り込む第２のＦＦを含む同期化回路が提案された（例えば特許文献１参照）。この同期化回路では、第１のＦＦの出力信号及び第２のＦＦの出力信号うちの一方を以下のように選択し、その選択結果を第３のＦＦにてクロック信号のタイミングで取り込んで出力するようにしている。つまり、入力されたデータの値と第１のＦＦの出力信号の値とが同一となるか否かを判定し、同一となる場合には、第１のＦＦの出力信号を選択する一方、両者が不一致となる場合には第２のＦＦの出力信号を選択する。すなわち、入力されたデータの値と、第１のＦＦから出力された出力信号の値とが異なる場合には、上記したデータ変化禁止期間中にデータの値が変化し、第１のＦＦの出力にメタステーブルが発生するという不具合が生じる。そこで、この際、第１及び第２のＦＦの出力結果のうちの第２のＦＦの出力結果を選択し、これを第３のＦＦを介して出力するのである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１４７８６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記した同期化回路の構成では、データの送り元のクロック信号（第１クロック信号と称する）の周波数が同期化回路で用いるクロック信号（第２クロック信号と称する）よりも高いと、データの変化周期が第２クロック信号の周期に比して短くなる場合がある。よって、この場合、入力されたデータの値と、第１のＦＦの出力信号の値とが一致するか否かの判定結果は、メタステーブルが発生しているか否かに拘わらず、入力されたデータの値の変化に依存してしまう。従って、データの送り元の第１クロック信号の周波数が第２クロック信号よりも高い場合には、上記した従来の同期化回路を用いることはできなかった。
【０００８】
そこで、本発明は、メタステーブルに起因する不具合を生じさせることなく、第１クロック信号に同期したデータを当該第１クロック信号とは非同期であり且つ周波数が異なる第２クロック信号で同期化することが可能な半導体装置及びデータ同期方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る半導体装置は、第１の論理値及び第２の論理値の状態を交互に繰り返す第１クロック信号に同期した入力データを、前記第１の論理値及び前記第２の論理値の状態を交互に繰り返す第２クロック信号に同期化する半導体装置であって、前記第２クロック信号を所定時間だけ遅延した信号を第１遅延クロック信号として生成すると共に、前記第１遅延クロック信号を前記所定時間だけ遅延した信号を第２遅延クロック信号として生成するクロック遅延部と、前記第２クロック信号が前記第１の論理値から前記第２の論理値に遷移するタイミングで前記入力データを取り込み第１取込データとして得る第１の同期取込部と、前記第２遅延クロック信号が前記第１の論理値から前記第２の論理値に遷移するタイミングで前記入力データを取り込み第２取込データとして得る第２の同期取込部と、前記第２クロック信号が前記第１の論理値から前記第２の論理値に遷移する時点での前記第１クロック信号の値を第１クロック値として取り込むと共に、前記第１遅延クロック信号が前記第１の論理値から前記第２の論理値に遷移する時点での前記第１クロック信号の値を第２クロック値として取り込むクロック値取込部と、前記第１クロック値及び前記第２クロック値が共に前記第１の論理値を示す場合は前記第１取込データを前記第２クロック信号で同期化したデータを同期化データとして出力する一方、前記第１クロック値及び前記第２クロック値のうちの一方又は双方が前記第２の論理値を示す場合は前記第２取込データを前記第２クロック信号で同期化したデータを前記同期化データとして出力する出力部と、を有する。
【００１０】
本発明に係るデータ同期方法は、第１の論理値及び第２の論理値の状態を交互に繰り返す第１クロック信号に同期した入力データを、前記第１の論理値及び前記第２の論理値の状態を交互に繰り返す第２クロック信号に同期化するデータ同期化方法であって、前記第２クロック信号を所定時間だけ遅延した信号を第１遅延クロック信号として生成すると共に、前記第１遅延クロック信号を前記所定時間だけ遅延した信号を第２遅延クロック信号として生成し、前記第２クロック信号が前記第１の論理値から前記第２の論理値に遷移するタイミングで前記入力データを取り込み第１取込データとして得ると共に、前記第２遅延クロック信号が前記第１の論理値から前記第２の論理値に遷移するタイミングで前記入力データを取り込み第２取込データとして得て、前記第２クロック信号が前記第１の論理値から前記第２の論理値に遷移する時点での前記第１クロック信号の値を第１クロック値として得ると共に、前記第１遅延クロック信号が前記第１の論理値から前記第２の論理値に遷移する時点での前記第１クロック信号の値を第２クロック値として得て、前記第１クロック値及び前記第２クロック値が共に前記第１の論理値を示す場合は前記第１取込データを前記第２クロック信号で同期化したデータを同期化データとして出力する一方、前記第１クロック値及び前記第２クロック値のうちの一方又は双方が前記第２の論理値を示す場合は前記第２取込データを前記第２クロック信号で同期化したデータを前記同期化データとして出力する。
【発明の効果】
【００１１】
本発明では、第１クロック信号に同期した入力データを第２クロック信号に同期化するにあたり、第２クロック信号が第１の論理値から第２の論理値に遷移する時点での第１クロック信号の値を第１クロック値として得ると共に、第２クロック信号を所定時間だけ遅延させた第１遅延クロック信号が第１の論理値から第２の論理値に遷移する時点での第１クロック信号の値を第２クロック値として得る。更に、第２クロック信号が第１の論理値から第２の論理値に遷移するタイミングで入力データを取り込みこれを第１取込データとして得ると共に、第２クロック信号を所定時間の２倍の時間だけ遅延させた第２遅延クロック信号が第１の論理値から第２の論理値に遷移するタイミングで入力データを取り込みこれを第２取込データとして得る。
【００１２】
この際、第１クロック値及び第２クロック値が共に第１の論理値を示す場合には、第１クロック信号が第１の論理値から第２の論理値に遷移する時点と、第２クロック信号が第１の論理値から第２の論理値に遷移する時点とは必ず所定時間以上離間していることになる。つまり、この際、第２クロック信号に応じて取り込んだ上記第１取込データにはメタステーブルが生じていないので、この第１取込データを第２クロック信号に同期したデータを同期化データとして出力する。一方、第１クロック値及び第２クロック値のうちの一方又は双方が第２の論理値を示す場合には、第１クロック信号が第１の論理値から第２の論理値に遷移する時点と、第２遅延クロック信号が第１の論理値から第２の論理値に遷移する時点とは必ず所定時間以上離間していることになる。つまり、この際、第２遅延クロック信号に応じて取り込んだ上記第２取込データにはメタステーブルが生じていないので、第２遅延クロック信号に応じて取り込んだ上記第２取込データを第２クロック信号に同期したデータを同期化データとして出力する。
【００１３】
ここで、本発明では、第２クロック信号が第１の論理値から第２の論理値に遷移する時点での第１クロック信号の値（第１クロック値）、及び第１遅延クロック信号が第１の論理値から第２の論理値に遷移する時点での第１クロック信号の値（第２クロック値）に基づいて、第１取込データ及び第２取込データのうちで、メタステーブルが生じていない方を判定している。これにより、第１クロック信号の周波数が第２クロック信号の周波数よりも高い場合、又は低い場合、或いは同一である場合のいずれの場合でも第１及び第２クロック値を取得することができる。従って、第１クロック信号の周波数及び第２クロック信号の周波数の高低関係に依存せずに、上記した第１取込データ及び第２取込データのうちで、メタステーブルが生じていない方を判定することが可能となる。
【００１４】
よって、本発明によれば、メタステーブルに起因する不具合を生じさせることなく、第１クロック信号に同期したデータを当該第１クロック信号とは非同期であり且つ周波数が異なる第２クロック信号で同期化することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係る半導体装置としての同期化回路２０を含む無線タグ１００の内部構成を概略的に示すブロック図である。
【図２】同期化回路３０の内部構成の一例を示す回路図である。
【図３】フリップフロップに入力されるクロック及びデータと、セットアップ時間及びホールド時間との関係を表す図である。
【図４】同期化クロック信号ＣＫ２、遅延同期化クロック信号ＣＫ２ａ及びＣＫ２ｂの一例を表すタイムチャートである。
【図５】選択判定回路３８の動作を表す図である。
【図６】メモリクロック信号ＣＫ１と、ＣＫ２、ＣＫ２ａ及びＣＫ２ｂ各々の立ち上がりエッジとの位置関係を表す図である。
【図７】状態（ａ）〜（ｎ）毎のクロック値ＣＬ１〜ＣＬ３と、ＣＫ２、ＣＫ２ａ及びＣＫ２ｂでのデータ取り込み結果との対応関係を示す図である。
【図８】同期化回路３０の内部動作の一例を示すタイムチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【００１７】
図１は、本発明に係る半導体装置としての同期化回路２０を含む無線タグ１００の内部構成を概略的に示すブロック図である。図１に示すように、無線タグ１００は、メモリ１０、無線通信部２０及び同期化回路３０を含む。メモリ１０、無線通信部２０及び同期化回路３０は単一の半導体チップに形成されている。尚、同期化回路３０のみが独立した半導体チップに形成されていても良い。
【００１８】
メモリ１０には無線タグ１００自体を示す識別情報や、そのユーザに関するユーザ情報等を含む例えば８ビットのデータが記憶されている。メモリ１０は、無線通信部２０から供給された読出指令に応じて、記憶されている８ビットのデータをデータＤＴとして読み出し、メモリクロック信号ＣＫ１の立ち上がりエッジに同期したタイミングで同期化回路３０に供給する。尚、メモリクロック信号ＣＫ１は、論理値０の状態及び論理値１の状態を交互に繰り返す２値の発振信号である。
【００１９】
同期化回路３０は、８ビットのデータＤＴを同期化クロック信号ＣＫ２に同期したタイミングで取り込み、取り込んだデータを８ビットの同期化データＲＤＴとして、無線通信部２０に供給する。尚、同期化クロック信号ＣＫ２もメモリクロック信号ＣＫ１と同様に論理値０の状態及び論理値１の状態を交互に繰り返す２値の発振信号である。ただし、同期化クロック信号ＣＫ２は、メモリクロック信号ＣＫ１とは非同期であり、且つメモリクロック信号ＣＫ１の周波数と同期化クロック信号ＣＫ２の周波数は異なっている。
【００２０】
無線通信部２０は、同期化データＲＤＴに対して所定の変調処理を施すことにより当該同期化データＲＤＴを無線送信する。
【００２１】
図２は、同期化回路３０の内部構成の一例を示す回路図である。図２に示すように同期化回路３０は、遅延素子３１、３２、１ビットＤ型のフリップフロップであるＦＦ３３〜ＦＦ３５、８ビットＤ型のフリップフロップであるＦＦ３６及びＦＦ３７、選択判定回路３８、セレクタ３９、及び８ビットＤ型のフリップフロップであるＦＦ４０を有する。尚、ＦＦ３３〜３７及び４０は、クロック信号の立ち上がりエッジのタイミングでデータの取り込みを行うエッジトリガタイプのフリップフロップであり、図３に示すように、セットアップ時間ＴST及びホールド時間ＴHDが規定されている。
【００２２】
遅延素子３１は、図４に示すように、同期化クロック信号ＣＫ２を所定の所定時間ＴＤだけ遅延させた信号を遅延同期化クロック信号ＣＫ２ａとして生成し、これを遅延素子３２及びＦＦ３４のクロック端子に供給する。
【００２３】
遅延素子３２は、遅延同期化クロック信号ＣＫ２ａを図４に示すように上記した所定時間ＴＤだけ遅延させた信号を遅延同期化クロック信号ＣＫ２ｂとして生成し、これをＦＦ３５及び３７各々のクロック端子に供給する。
【００２４】
尚、所定時間ＴＤは、例えば図３に示すセットアップ時間ＴSTにホールド時間ＴHDを加えた時間長を有する。
【００２５】
ＦＦ３３は、同期化クロック信号ＣＫ２を自身のクロック端子で受け、メモリクロック信号ＣＫ１をデータ端子で受ける。ＦＦ３３は、同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の値（論理値０又は１）を取り込みその値を表すクロック値ＣＬ１を選択判定回路３８に供給する。
【００２６】
ＦＦ３４は、遅延同期化クロック信号ＣＫ２ａを自身のクロック端子で受け、メモリクロック信号ＣＫ１をデータ端子で受ける。ＦＦ３４は、遅延同期化クロック信号ＣＫ２ａの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の値（論理値０又は１）を取り込みその値を表すクロック値ＣＬ２を選択判定回路３８に供給する。
【００２７】
ＦＦ３５は、遅延同期化クロック信号ＣＫ２ｂを自身のクロック端子で受け、メモリクロック信号ＣＫ１をデータ端子で受ける。ＦＦ３５は、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の値（論理値０又は１）を取り込みその値を表すクロック値ＣＬ３を選択判定回路３８に供給する。
【００２８】
ＦＦ３６は、同期化クロック信号ＣＫ２を自身のクロック端子で受け、データＤＴをデータ端子で受ける。尚、データＤＴは、前述したように、メモリクロック信号ＣＫ１に同期したタイミングでメモリ１０から読み出された８ビットのデータである。ＦＦ３６は、同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングでデータＤＴにて表される８ビット分の論理値（以降、当該８ビット分の論理値をデータ値と称する）を取り込む。そして、ＦＦ３６は、取り込んだデータ値を表す８ビットの取込データＤＡをセレクタ３９に供給する。
【００２９】
ＦＦ３７は、遅延同期化クロック信号ＣＫ２ｂを自身のクロック端子で受け、データＤＴをデータ端子で受ける。ＦＦ３７は、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジのタイミングでデータＤＴにて表されるデータ値を取り込む。そして、ＦＦ３７は、取り込んだデータ値を表す８ビットの取込データＤＢをセレクタ３９に供給する。
【００３０】
選択判定回路３８は、上記したクロック値ＣＬ１〜ＣＬ３に基づき、取込データＤＡ、及び取込データＤＢのうちからメタステーブルが生じていない方を判定する。選択判定回路３８は、その判定結果に基づき、メタステーブルが生じていない方を選択する選択信号ＳＥＬをセレクタ３９に供給する。
【００３１】
例えば、選択判定回路３８は、図５に示すように、クロック値ＣＬ１〜ＣＬ３のうちのＣＬ１及びＣＬ２が共に論理値０となる場合には、取込データＤＡをメタステーブルが生じていないデータと判定する。この際、選択判定回路３８は、取込データＤＡを選択させる論理値０の選択信号ＳＥＬをセレクタ３９に供給する。一方、クロック値ＣＬ１及びＣＬ２のうちの一方、又は両者が論理値１となる場合には、選択判定回路３８は、取込データＤＢをメタステーブルが生じていないデータと判定する。この際、選択判定回路３８は、取込データＤＢを選択させる論理値０の選択信号ＳＥＬをセレクタ３９に供給する。
【００３２】
セレクタ３９は、取込データＤＡ及び取込データＤＢを受け、選択信号ＳＥＬが論理値０を表す場合には取込データＤＡを選択してＦＦ４０に供給する。一方、選択信号ＳＥＬが論理値１を表す場合には、セレクタ３９は、取込データＤＡ及び取込データＤＢのうちから取込データＤＢを選択してＦＦ４０に供給する。
【００３３】
ＦＦ４０は、セレクタ３９から供給された取込データＤＡによって表されるデータ値、又は取込データＤＢによって表されるデータ値を同期化クロック信号ＣＫ２の立ち下がりエッジのタイミングで取り込む。そして、ＦＦ４０は、取り込んだデータ値を表す同期化データＲＤＴを出力する。
【００３４】
以下に、上記した構成からなる同期化回路３０における、メタステーブルに起因する不具合の防止動作について説明する。
【００３５】
同期化回路３０には、取込データＤＡ及び取込データＤＢのうちで、メタステーブルが生じていない方を判定する為に、遅延素子３１、３２、ＦＦ３３〜ＦＦ３５及び選択判定回路３８が含まれている。
【００３６】
ここで、データＤＴの値が論理値０から１、或いは論理値１から０に遷移するタイミングは、必ず、メモリクロック信号ＣＫ１の立ち上がりエッジの時点となる。よって、メモリクロック信号ＣＫ１の立ち上がりエッジの時点よりもホールド時間ＴHDだけ前方の時点から、当該立ち上がりエッジの時点よりもセットアップ時間ＴSTだけ後方の時点までの範囲が、メタステーブルが発生する可能性が高いメタステーブル発生区間となる。
【００３７】
そこで、ＦＦ３３〜ＦＦ３５が、ＣＫ２、ＣＫ２ａ及びＣＫ２ｂによる３つの時点でメモリクロック信号ＣＫ１の値を取り込む。
【００３８】
尚、メモリクロック信号ＣＫ１と同期化クロック信号ＣＫ２とは非同期である為、メモリクロック信号ＣＫ１と、ＣＫ２、ＣＫ２ａ及びＣＫ２ｂ各々の立ち上がりエッジとの位置関係は、図６に示すような１４通りの状態（ａ）〜（ｎ）にて表される。
【００３９】
よって、例えば、図６に示す状態（ａ）の場合、ＦＦ３３は、同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、図７に示すように論理値０を表すクロック値ＣＬ１を出力する。また、この状態（ａ）の場合、ＦＦ３４は、遅延同期化クロック信号ＣＫ２ａの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、図７に示すように、論理値０を表すクロック値ＣＬ２を出力する。また、状態（ａ）の場合、ＦＦ３５は、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、図７に示すように論理値０を表すクロック値ＣＬ３を出力する。
【００４０】
又、図６に示す状態（ｂ）の場合、ＦＦ３３は、同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、図７に示すように、論理値０を表すクロック値ＣＬ１を出力する。また、この状態（ｂ）の場合、ＦＦ３４は、遅延同期化クロック信号ＣＫ２ａの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、図７に示すように、論理値０を表すクロック値ＣＬ２を出力する。また、状態（ｂ）の場合、ＦＦ３５は、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、図７に示すように、論理値０を表すクロック値ＣＬ３を出力する。ただし、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジの時点は、図６に示すようにメモリクロック信号ＣＫ１の立ち上がりエッジの時点（レベル変化時点）よりも前方であり且つ当該立ち上がりエッジの時点からホールド時間ＴHD以上離間していない。よって、この際、メタステーブルが発生している可能性が高いので、図６に示す状態（ｂ）の場合、ＦＦ３５に取り込まれた値は論理値０であるものの、論理値１となる可能性もある不定値である。
【００４１】
また、図６に示す状態（ｃ）の場合、ＦＦ３３は、同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、論理値０を表すクロック値ＣＬ１を出力する。また、この状態（ｃ）の場合、ＦＦ３４は、遅延同期化クロック信号ＣＫ２ａの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、論理値０を表すクロック値ＣＬ２を出力する。また、状態（ｃ）の場合、ＦＦ３５は、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値１を取り込み、論理値０を表すクロック値ＣＬ３を出力する。ただし、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジの時点は、図６に示すようにメモリクロック信号ＣＫ１の立ち上がりエッジの時点よりも後方であり且つこの立ち上がりエッジの時点から、セットアップ時間ＴST以上離間していない。よって、この際、メタステーブルが発生している可能性が高いので、図６に示す状態（ｃ）の場合、ＦＦ３５に取り込まれた値は論理値１であるものの、論理値０となる可能性もある不定値である。
【００４２】
図７は、図６に示される状態（ａ）〜（ｎ）毎に、ＦＦ３３〜ＦＦ３５が出力するクロック値ＣＬ１〜ＣＬ３を示す図である。尚、図４に示すように遅延同期化クロック信号ＣＫ２ａの立ち上がりエッジは、同期化クロック信号ＣＫ２の立ち上がりエッジから所定の所定時間ＴＤだけ遅延しており、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジは、遅延同期化クロック信号ＣＫ２ａの立ち上がりエッジから所定時間ＴＤだけ遅延している。ここで、所定時間ＴＤは、前述したようにＦＦのセットアップ時間ＴSTにホールド時間ＴHDを加えた時間長を有する。これにより、ＣＫ２、ＣＫ２ａ及びＣＫ２ｂ各々の立ち上がりエッジによる３つの時点で取り込んだクロック値ＣＬ１〜ＣＬ３は、そのうちの１つが不定値となる場合には必ず他の２つが正常値となる。尚、図７では、「１（０）」又は「０（１）」なる表記にて不定値を表し、「０」又は「１」にて正常値を表している。
【００４３】
ここで、データＤＴを仮に、上記した３つの時点（ＣＫ２、ＣＫ２ａ、ＣＫ２ｂ）で取り込むと、その取り込み結果（正常値の取込、又は不定値の取込）は、状態（ａ）〜（ｎ）毎に、図７に示すようになる。尚、図７では、正常値の取り込みを白丸にて示し、不定値の取り込みを黒丸にて示す。
【００４４】
この際、図７に示すように、クロック値ＣＬ１及びＣＬ２が共に論理値０となる場合、つまり、状態（ａ）〜（ｄ）又は（ｎ）では、破線にて囲まれた領域で示されるように、必ず、同期化クロック信号ＣＫ２でデータＤＴを正常値として取り込むことができる。そこで、選択判定回路３８は、ＦＦ３６から出力された取込データＤＡを、メタステーブルが生じていないデータであると判定する。そして、選択判定回路３８は、取込データＤＡを選択させる論理値０の選択信号ＳＥＬをセレクタ３９に供給する。これにより、セレクタ３９は、取込データＤＡをＦＦ４０に供給する。ＦＦ４０は、セレクタ３９を介して供給された取込データＤＡを同期化クロック信号ＣＫ２の立ち下がりエッジのタイミングで取り込み、これらを同期化データＲＤＴとして出力する。
【００４５】
ところで、上記した一例では、データＤＴは、メモリクロック信号ＣＫ１の立ち上がりエッジに同期した信号である。よって、メモリクロック信号ＣＫ１の立ち下がりエッジでデータＤＴの値が変化することはない。つまり、図６に示すように、メモリクロック信号ＣＫ１の立ち上がりエッジよりもホールド時間ＴHDだけ前の時点から、当該ＣＫ１の立ち上がりエッジよりもセットアップ時間ＴSTだけ後方の時点までの区間がメタステーブルの発生区間となる。一方、メモリクロック信号ＣＫ１の立ち下がりエッジ付近にはメタステーブルの発生区間は存在しない。よって、図７に示すように、状態（ｉ）〜（ｎ）では、例えクロック値ＣＬ１〜ＣＬ３のうちの１つが不定値であっても、上記した３つの時点（ＣＫ２、ＣＫ２ａ、ＣＫ２ｂ）の全てで正常値の取り込みが行われることになる。
【００４６】
以上のことから、クロック値ＣＬ１及びＣＬ２のうちの一方又は両者が論理値１となる場合、つまり状態（ｅ）〜（ｍ）となる場合には、一点鎖線に囲まれた領域で示されるように、遅延同期化クロック信号ＣＫ２ｂによってデータＤＴを正常値として取り込むことができる。そこで、この際、選択判定回路３８は、ＦＦ３７から出力された取込データＤＢを、メタステーブルが生じていないデータであると判定する。そして、選択判定回路３８は、取込データＤＢを選択させる論理値１の選択信号ＳＥＬをセレクタ３９に供給する。これにより、セレクタ３９は、取込データＤＢをＦＦ４０に供給する。ＦＦ４０は、セレクタ３９を介して供給された取込データＤＢを同期化クロック信号ＣＫ２の立ち下がりエッジのタイミングで取り込み、これらを同期化データＲＤＴとして出力する。
【００４７】
図８は、図２に示される同期化回路３０の動作の一例を示すタイムチャートである。図８に示す一例では、データＤＴによって表されるデータ値が、メモリクロック信号ＣＫ１の立ち上がりエッジのタイミングで、データ値「ｙ１」からデータ値「ｙ２」に遷移している。また、図８に示す一例では、メモリクロック信号ＣＫ１と、ＣＫ２、ＣＫ２ａ及びＣＫ２ｂ各々の立ち上がりエッジとの位置関係は、図６に示す状態（ｅ）である。この際、データＤＴを受けると、同期化回路３０のＦＦ３６は、同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングで、データＤＴにて表されるデータ値「ｙ１」を取り込み、当該データ値「ｙ１」を示す取込データＤＡをセレクタ３９に供給する。同期化回路３０のＦＦ３７は、遅延同期化クロック信号ＣＫ２ｂの立ち上がりエッジのタイミングで、データＤＴにて表されるデータ値「ｙ２」データＤＴを取り込み、当該データ値「ｙ２」を示す取込データＤＢをセレクタ３９に供給する。
【００４８】
ＦＦ３３は、同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値０を取り込み、論理値０を示すクロック値ＣＬ１を選択判定回路３８に供給する。ＦＦ３４は、遅延同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値１を取り込み、論理値１を示すクロック値ＣＬ２を選択判定回路３８に供給する。ＦＦ３５は、遅延同期化クロック信号ＣＫ２ａの立ち上がりエッジのタイミングでメモリクロック信号ＣＫ１の論理値１を取り込み、論理値１を示すクロック値ＣＬ３を選択判定回路３８に供給する。よって、選択判定回路３８は、論理値０を示すクロック値ＣＬ１、論理値１を示すクロック値ＣＬ２及びＣＬ３に基づき、図５に示すように、論理値１を示す選択信号ＳＥＬをセレクタ３９に供給する。これにより、セレクタ３９は、データ値「ｙ２」を示す取込データＤＢをＦＦ４０に供給する。ＦＦ４０は、同期化クロック信号ＣＫ２の立ち下がりエッジのタイミングでデータ値「ｙ２」を示す取込データＤＢを取り込み、当該データ値「ｙ２」を示す同期化データＲＤＴを出力する。
【００４９】
尚、図８に示す一例では、メモリクロック信号ＣＫ１と、ＣＫ２、ＣＫ２ａ及びＣＫ２ｂ各々の立ち上がりエッジとの位置関係が図６に示す状態（ｅ）であるが、例えば図６に示す状態（ｃ）となる場合には、選択判定回路３８は、論理値０を示す選択信号ＳＥＬをセレクタ３９に供給する。これにより、セレクタ３９は、データ値「ｙ１」を示す取込データＤＡをＦＦ４０に供給する。
【００５０】
よって、同期化回路３０では、メモリクロック信号ＣＫ１及び同期化クロック信号ＣＫ２の立ち上がりエッジ同士が重なっていても、上記したデータ値（ｙ１）及びデータ値（ｙ２）のうちで、メタステーブルの影響を受けていない方が、同期化クロック信号ＣＫ２で同期化される。従って、同期化回路３０によれば、同期化データＲＤＴによって表されるデータ値に、メタステーブルに起因する不定値が含まれないことが保証されるのである。
【００５１】
また、同期化回路３０では、データＤＴを取り込むＦＦ３６及びＦＦ３７のうちの一方でメタステーブルが生じていても、同期化データＲＤＴにて表されるデータ値は、メモリクロック信号ＣＫ１の立ち上がりエッジ直前のデータ値（ｙ１）又は直後のデータ値（ｙ２）である。よって、メタステーブルの影響により、例えば８ビットデータの最上位ビットが論理値０から１、又は論理値１から０に遷移してそのデータ値が大幅に変化してしまうという不具合が生じることはない。これにより、同期化データＲＤＴにて表されるデータ値がシステムで使用不可な不正値にはならないので、当該同期化データＲＤＴを用いる後段の装置においてデータの有効性を判断する回路を設ける必要がなくなる。
【００５２】
また、同期化回路３０では、メモリクロック信号ＣＫ１を２つの時点（ＣＫ２、ＣＫ２ａ）で取り込んで得られたクロック値ＣＬ１及びＣＬ２に基づき、ＣＫ２で取り込んだデータ（ＤＡ）及びＣＫ２ｂで取り込んだデータ（ＤＢ）のうちから、メタステーブルが生じていない方を判定するようにしている。この際、ＣＫ２ａは、ＣＫ２を、ＦＦのホールド時間（ＴHD）とセットアップ時間（ＴST）とを合計した所定時間ＴＤだけ遅延したものである。
【００５３】
よって、メモリクロック信号ＣＫ１の周波数が同期化クロック信号ＣＫ２の周波数よりも高い場合、又は低い場合、或いは同一である場合のいずれの場合でも、クロック値ＣＬ１及びＣＬ２を取得することが可能である。従って、メモリクロック信号ＣＫ１及び同期化クロック信号ＣＫ２各々の周波数に依存せずに、同期化クロック信号ＣＫ２で取り込んだデータ（ＤＡ）及びＣＫ２ｂで取り込んだデータ（ＤＢ）のうちから、メタステーブルが生じていない方を判定することができる。
【００５４】
更に、ＣＫ２ｂで取り込んだデータ（ＤＢ）が選択される場合でも、その遅延時間は同期化クロック信号ＣＫ２の立ち上がりエッジに対して２・（ＴST＋ＴHD）だけとなるので、同期化回路３０での出力遅延を抑えることができる。
【００５５】
以上のように、同期化回路３０によれば、出力遅延を抑え且つメタステーブルに起因するデータ不定値の状態を生じさせることなく、メモリクロック信号ＣＫ１に同期した８ビットのデータＤＴを、当該メモリクロック信号ＣＫ１とは非同期であり且つ周波数が異なる同期化クロック信号ＣＫ２で同期化することが可能となる。
【００５６】
尚、上記実施例では、ＦＦ４０は、セレクタ３９から供給された取込データＤＡ又は取込データＤＢを、同期化クロック信号ＣＫ２の立ち下がりエッジのタイミングで取り込んで同期化データＲＤＴとして出力している。しかしながら、ＦＦ４０は、セレクタ３９から供給されたデータ（ＤＡ又はＤＢ）を、同期化クロック信号ＣＫ２の立ち上がりエッジのタイミングで取り込み、同期化データＲＤＴとして出力するようにしても良い。
【００５７】
また、上記実施例では、同期化回路３０は、メモリクロック信号ＣＫ１に同期してメモリ１０から読み出された８ビットのデータＤＴを同期化クロック信号ＣＫ２に同期させるようにしている。しかしながら、同期化の対象となるデータはメモリから読み出されたデータに限らず、そのビット数も８ビットに限定されない。
【００５８】
また、上記実施例では、遅延素子３１及び３２各々での遅延時間、つまり所定時間ＴＤを、ＦＦのセットアップ時間ＴSTにホールド時間ＴHDを加えた時間（ＴST＋ＴHD）としているが、セットアップ時間ＴST自体を所定時間ＴＤとしても良い。また、当該所定時間ＴＤとしては、時間（ＴST＋ＴHD）に所定のマージンを加えたもの、或いは当該時間（ＴST＋ＴHD）をｔ倍（ｔは１以上の整数）したもの、つまり時間（ＴST＋ＴHD）以上であっても良い。
【００５９】
また、上記実施例では、ＦＦ３３〜ＦＦ３７としてクロック信号の立ち上がりエッジのタイミング、つまりクロック信号の値が論理値０から論理値１に遷移する時点でデータを取り込む、いわゆるポジティブエッジトリガ型のフリップフロップを用いている。しかしながら、ＦＦ３３〜ＦＦ３７としては、クロック信号の立ち下がりエッジのタイミング、つまりクロック信号の値が論理値１から論理値０に遷移する時点でデータの取り込みを行う、いわゆるネガティブエッジトリガ型のフリップフロップを採用しても良い。
【００６０】
また、図２に示す実施例では、ＦＦ３３〜ＦＦ３７としてフリップフロップを採用しているが、入力されたクロック信号に同期してデータを取り込んで出力する同期取込動作を行うことができる素子であれば、フリップフロップに限定されない。また、図２に示す選択判定回路３８、セレクタ３９及びＦＦ４０を１つのブロックで構成するようにしても良い。
【００６１】
要するに、第１及び第２の論理値（０、１）の状態を交互に繰り返す第１クロック信号（ＣＫ１）に同期した入力データ（ＤＴ）を、第１及び第２の論理値の状態を交互に繰り返す第２クロック信号（ＣＫ２）に同期化する同期化回路（３０）としては、以下のクロック遅延部、第１及び第２の同期取込部、クロック値取込部及び出力部を有するものであれば良いのである。クロック遅延部（３１、３２）は、第２クロック信号を所定時間（ＴST＋ＴHD）だけ遅延した信号を第１遅延クロック信号（ＣＫ２ａ）として生成すると共に、この第１遅延クロック信号を所定時間だけ遅延した信号を第２遅延クロック信号（ＣＫ２ｂ）として生成する。第１の同期取込部（３６）は、第２クロック信号が第１の論理値（例えば０）から第２の論理値（例えば１）に遷移するタイミングで入力データを取り込み第１取込データ（ＤＡ）として得る。第２の同期取込部（３７）は、第２遅延クロック信号が第１の論理値（例えば０）から第２の論理値（例えば１）に遷移するタイミングで入力データを取り込み第２取込データ（ＤＢ）として得る。クロック値取込部（３３、３４）は、第２クロック信号が第１の論理値から第２の論理値に遷移する時点での第１クロック信号の値を第１クロック値（ＣＬ１）、第１遅延クロック信号が第１の論理値から第２の論理値に遷移する時点での第１クロック信号の値を第２クロック値（ＣＬ２）として取り込む。出力部（３８〜４０）は、第１クロック値及び第２クロック値が共に第１の論理値（例えば０）を示す場合は第１取込データ（ＤＡ）を第２クロック信号で同期化したデータを同期化データ（ＲＤＴ）として出力する。一方、第１クロック値及び第２クロック値のうちの一方又は双方が第２の論理値を示す場合は、出力部は、第２取込データ（ＤＢ）を第２クロック信号で同期化したデータを同期化データ（ＲＤＴ）として出力する。
【符号の説明】
【００６２】
３０                同期化回路
３１、３２          遅延素子
３３〜３７、４０    フリップフロップ（ＦＦ）
３８                選択判定回路
３９                セレクタ
１００              無線タグ
【図１】
2018137694.tif 000003
【図２】
2018137694.tif 000004
【図３】
2018137694.tif 000005
【図４】
2018137694.tif 000006
【図５】
2018137694.tif 000007
【図６】
2018137694.tif 000008
【図７】
2018137694.tif 000009
【図８】
2018137694.tif 000010