(57)【特許請求の範囲】
【請求項１】
データ信号を第１クロック・ドメインから第２クロック・ドメインに転送するシステムであって、
該第１クロック・ドメインが該第２クロック・ドメイン内の第２クロックの周波数よりも高い周波数を有する第１クロックを含み、
該システムは、
該第１クロック・ドメインからの入力信号を受信するための信号入力部と、
該第２クロックを確認して、該第２クロックが、次に来る該第２クロックの遷移から離れた、該遷移の前の該第２クロックのサイクルの一部分、にあるかどうかの判定を行う確認手段であって、直列に接続された２個のみのフリップ・フロップを含み、かつ、該第１クロックによってクロック供給される確認手段と、そして、
該第２クロックが、該次に来る第２クロックの該遷移から離れた、該遷移の前の該第２クロックのサイクルの一部分、にあると、該確認手段が判定した場合に、該入力信号を該第２クロック・ドメインに転送する手段と、
を含んでいること、を特徴とするシステム。
【請求項２】
前記次に来る遷移が、次に来る正の遷移であること、を特徴とする、請求項１に記載のシステム。
【請求項３】
前記入力信号が少なくとも８、１６又は３２ビットであること、を特徴とする、請求項１、又は２に記載のシステム。
【請求項４】
前記第２クロックの前記確認は、前記入力信号が、該第２クロックのサイクル内の正の部分内にあるかどうかを判定するステップを含むこと、を特徴とする、請求項１から３のいずれかの請求項に記載のシステム。
【請求項５】
前記第１クロックの周波数は、前記第２クロックの周波数の少なくとも４倍の周波数であること、を特徴とする、請求項１から４のいずれかの請求項に記載のシステム。
【請求項６】
前記第２クロックの前記確認が第１クロックの立ち上がりエッジで行われること、を特徴とする、請求項１から５のいずれかの請求項に記載のシステム。
【請求項７】
第２クロックがアクティブであるかどうかを判断するための手段を備えること、を特徴とする、請求項１から６のいずれかの請求項に記載のシステム。
【請求項８】
前記第１クロック・ドメインからの新しい入力信号があるかどうかを検出する手段を含むこと、を特徴とする、請求項１から７のいずれかの請求項に記載のシステム。
【請求項９】
前記検出手段は、前記第１クロック・ドメインからの前記入力信号と前記第２クロック・ドメインへの出力信号との間の比較器を含むこと、を特徴とする、請求項８に記載のシステム。
【請求項１０】
前記第２クロックの前記確認を開始するための手段を含むこと、を特徴とする、請求項１から９のいずれかの請求項に記載のシステム。
【請求項１１】
前記入力信号を記憶する手段を含むこと、を特徴とする、請求項１から１０のいずれかの請求項に記載のシステム。
【請求項１２】
データ信号を第１クロック・ドメインから第２クロック・ドメインへ転送するための方法であって、
該第１クロック・ドメインが、該第２クロック・ドメイン内の第２クロックの周波数よりも高い周波数を有する第１クロックを有しており、
該方法は、
該第１クロック・ドメインからの入力信号を受信する受信ステップと、
該第２クロックが、次に来る該第２クロックの遷移から離れた、該遷移の前の該第２クロックのサイクルの一部分、にあるかどうかの判定を、直列に接続された２個のみのフリップ・フロップを含み、かつ、該第１クロックによってクロックが供給される確認手段を用いて確認する確認ステップと、そして、
該第２クロックが、該次に来る第２クロックの該遷移から離れた、該遷移の前の該第２クロックのサイクルの一部分、にあると、該確認ステップが判定する場合、該入力信号を該第２クロック・ドメインに転送する転送ステップと、
を含むこと、を特徴とする方法。
【請求項１３】
該次に来る遷移が、正の遷移であること、を特徴とする、請求項１２に記載の方法。
【請求項１４】
前記入力信号が少なくとも８、１６又は３２ビットであること、を特徴とする、請求項１２、又は１３に記載の方法。
【請求項１５】
前記第２クロックの前記確認ステップは、前記入力信号が該第２クロックのサイクル内の正の部分内にあるかどうかを判定するステップを含むこと、を特徴とする、請求項１２から１４のいずれかに記載の方法。
【請求項１６】
前記第１クロックの周波数は、前記第２クロックの周波数の少なくとも４倍の周波数であること、を特徴とする、請求項１２から１５のいずれかに記載の方法。
【請求項１７】
前記第２クロックの前記確認ステップは、前記第１クロックの立ち上がり時に行われること、を特徴とする、請求項１２から１６のいずれかに記載の方法。
【請求項１８】
前記第２クロックがアクティブかどうかを判定するステップを含むこと、を特徴とする、請求項１２から１７のいずれかに記載の方法。
【請求項１９】
前記第１クロック・ドメインから新しい前記入力信号があるかどうかを検出するステップを含むこと、を特徴とする、請求項１２から１８のいずれかに記載の方法。
【請求項２０】
前記検出するステップは、前記第１クロック・ドメインからの前記入力信号と前記第２クロック・ドメインへの出力信号との間の比較器を使用するステップを含むこと、を特徴とする、請求項１９に記載の方法。
【請求項２１】
前記第２クロックの前記確認ステップを起動するステップを含むこと、を特徴とする、請求項１２から２０のいずれかに記載の方法。
【請求項２２】
前記入力信号を記憶するステップを含むこと、を特徴とする、請求項１２から２１のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル・システム、特に、クロック・ドメインが同期されていないデジタル・システムにおいて、クロック・ドメイン間でデータ信号を転送するためのシステム及び方法に関する。
【背景技術】
【０００２】
無線（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標））システムなどの各種電子システムの多くでは、異なる周波数で動作するが少なくとも散発的に相互通信が必要な、複数のクロック・ドメインが存在する。例えば、中央プロセッサは高い周波数で動作するが、接続される１つ又は複数の周辺機器は低周波数で動作する場合がある。また、該クロック・ドメインの一つは、非アクティブな期間、例えば、スリープ・モード又はスタンバイ・モードに入ることがある。これは、未使用中に電力を節約するためである。このような期間中には、２つのクロック・ドメイン間の通信はない。しかし、該クロック・ドメインの一つがスリープ・モード又はスタンバイ・モードを終了するとき、該クロック・ドメインは、多くの場合、他のクロック・ドメインと通信する必要がある。さらに、前記高速及び低速クロック・ドメインは、通常は相互の同期をとっていない。
【０００３】
相互に同期していず、かつ周波数が異なっていてもよい、異なるクロック・ドメインを含むシステムでは、「ハンドシェイク」手順を使用することが知られている。該手順では、該クロック・ドメイン間でパラメータを交換して、低速クロック・ドメインが高速クロック・ドメインからの信号を受信する準備ができていることを、例えば、ビジー・フラグの使用によって確認する。これは、信号の高速クロック・ドメインからの転送を、低速クロック・ドメインの安全期間、すなわち、低速クロック・ドメインでの正の遷移（クロックの零（０）から一（１）への変化）から離れている時に行い、該信号の破壊又は該システムの準安定状態を回避するために必要である。しかし、既知のハンドシェイク手順は比較的速度が遅い。この理由は、クロック・ドメイン間の同期を確立するために、該手順へのクロック供給が低速クロック・ドメインによってなされ、かつ、複数のサイクルを必要とするからである。速度が遅いだけでなく、かなりの量の電力を消費する。その理由は、該手順の間、高速クロック・ドメインが動作を継続する必要があるからである。
【０００４】
さらに、特に、データの転送を高速クロック・ドメインから低速クロック・ドメインに、従来のハンドシェイク手順を使用して行う場合に保証が必要なことは、該高速クロック・ドメイン内のソース・データが、該手順の期間中、該データが転送されるまで変化しないことである。さもなければ、いくつかのビットが転送されて新しい方のデータを表わすが、他方では、いくつかのビットは転送されずに古い方のデータを表わすことになり、データ破損を引き起こす。このため、従来は、「凍結」がソース・データに対してなされていたが、これは、特に、上記で説明した転送の遅れを考慮すると不利である。この遅れが生じる原因は、複数の同期信号を２つのクロック・ドメイン間で往復して送信して、データ転送のためにすべてが安全であることを確認する必要があるからである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、異なる周波数の２つのクロック・ドメイン間の通信のための、改良されたシステム及び方法を提供することである。
【課題を解決するための手段】
【０００６】
第１の側面から見ると、本発明は、データ信号を第１クロック・ドメインから第２クロック・ドメインに転送するシステムであり、該第１クロック・ドメインは第１クロックを有し、かつ該第２クロック・ドメインは第２クロック有している。該システムは、
該第１クロック・ドメインからの入力信号を受信するための信号入力部と、
該第１又は第２クロックのうち遅い方のクロックが、次に来る遷移から離れた自サイクルの一期間にあるかどうかの確認を行い、該第１及び第２クロックのうちの速い方のクロックによってクロックが供給される確認手段と、そして、
該確認手段が、該遅い方のクロックが、該次に来る遷移から離れた自サイクルの一期間にあると判断する場合、該入力信号を該第２クロック・ドメインに転送する手段と、を含んでいる。
【０００７】
本発明は、また、データ信号を第１クロック・ドメインから第２クロック・ドメインへ転送する方法であって、該第１クロック・ドメインは第１クロックを含み、該第２クロック・ドメインは第２クロックを含む方法を提供する。該方法は、
該第１クロック・ドメインからの入力信号を受信するステップと、
該第１又は第２クロックのうち遅い方のクロックが、次に来る遷移から離れた自サイクルの一期間にあるかどうかの確認を、該第１及び第２クロックのうちの速い方のクロックによってクロックが供給される確認手段を用いて行う確認ステップと、そして、
該確認ステップが、該遅い方のクロックが、該次に来る遷移から離れた自サイクルの一期間にあると判断する場合、該入力信号を該第２クロック・ドメインに転送するステップと、を含んでいる。
【０００８】
本発明は、データ信号を第１の低速クロック・ドメインから第２の高速クロック・ドメインへ転送するために使用することができる。しかし、本発明が特に有益であるのは、データ信号を第１の高速クロック・ドメインから第２の低速クロック・ドメインへ転送する場合である。
【０００９】
したがって、別の側面から見ると、本発明は、データ信号を第１クロック・ドメインから第２クロック・ドメインへ転送するためのシステムであって、該第１クロック・ドメインが該第２クロック・ドメイン内の第２クロックの周波数よりも高い周波数の第１クロックを有するシステムを提供する。該システムは、
該第１クロック・ドメインからの入力信号を受信するための信号入力部と、
該第２クロックが、次に来る遷移から離れた自サイクルの一期間にあるかどうかの確認を行い、かつ、該第１クロックによってクロックが供給される確認手段と、そして、
該確認手段が、該第２クロックが、該次に来る遷移から離れた自サイクルの一期間にあると、判断する場合、該入力信号を該第２クロック・ドメインに転送する手段と、を含んでいる。
【００１０】
本発明は、また、データ信号を第１クロック・ドメインから第２クロック・ドメインへ転送するための方法であって、該第１クロック・ドメインが該第２クロック・ドメイン内の第２クロックの周波数よりも高い周波数の第１クロックを有する。該方法は、以下のステップを含む。
該第１クロック・ドメインからの入力信号を受信するステップと、
該第２クロックが、次に来る遷移から離れた自サイクルの一期間にあるかどうかの確認を、該第１クロックによってクロックが供給される確認手段を用いて確認するステップと、そして、
該確認ステップが、該第２クロックが該次に来る遷移から離れた自サイクルの一期間にあると判断する場合、該入力信号を該第２クロック・ドメインに転送するステップと、を含んでいる。
【００１１】
前記確認手段の設定は、正及び／又は負の遷移を検出するように設定することができる。すなわち、第２クロック・ドメインにおけるデータ値は、第２クロックの正及び負の遷移の一方又は両方において変化することができる。しかし、一連の実施形態では、検出される遷移は正の遷移とする。
【００１２】
したがって、ハンドシェイク及び／又はビジー・フラグを使用する代わりに、本願発明に従い、前記低速クロック・ドメインが自サイクルのどの期間にあるかに関して確認が実行され、そして、該低速クロック・ドメインが自サイクルの「安全」な部分にある、すなわち、差し迫った遷移が存在しない限り、該高速クロック・ドメインからの信号を、単純に、該低速クロック・ドメインに転送する、又は、該低速クロック・ドメインからの信号は、単に、該高速クロック・ドメインによって読み取ることができる。出願人は、この結果、該低速クロックの確認部が該高速クロックによってクロック供給されているので、信号の高速な転送を前記第１クロック・ドメインから第２クロック・ドメインへ行えたことを評価している。例えば、ハンドシェイクを含む既知の機構では、同期時間及び転送時間は一般的には少なくとも２低速クロック・サイクルであるが、これと比較して、本発明の実施形態に対する同期時間及び転送時間は、２高速クロック・サイクル相当に短くすることができる。本発明は、第１の低速クロック・ドメインから第２の高速クロック・ドメインへのデータ信号の転送に対しても有益であるが、以降においては、主に、第１クロックが第２クロックよりも高い周波数を有する一連の実施形態に対して言及する。
【００１３】
前記第２クロックの確認を行う目的は、該クロックのサイクルが次に来る０から１への正の遷移から離れていることを確認して、第１クロック・ドメインから第２クロック・ドメインへの入力信号の転送が該第２クロックのサイクルにおける遷移と同時に起こらないようにするためである。この理由は、第２クロック・ドメインにおけるデータ値が正のエッジで読み込まれるので、この時点で該第２クロック・ドメインへ値を転送すると、データの破壊又は準安定状態への移行につながる可能性があるからである。
【００１４】
出願人は、前記転送の実行が、第２クロックである低速クロックのサイクルの安全な期間で行われるので、転送されるデータ信号を同期させる必要がないことを評価している。このため、一連の好ましい実施形態では、前記入力信号が第１クロック・ドメインから第２クロック・ドメインへ確認手段を経由して転送されることはない。実施形態の特定の組では、第１クロック・ドメインの入力と第２クロック・ドメインの出力の間に１クロック・サイクルの時間遅延を引き起こす要因は存在しない。
【００１５】
上記は、単一のビット信号に対して、特に、第１及び第２クロック・ドメインの周波数の差が大きい場合に有利であるが、マルチ・ビット・バスに対して顕著な利点がある。この理由は、全部の信号の転送を第２クロックに対する確認に基づいて行うことができ、すべてのビットの確認を行なわないでよいからである。すべてのビットの確認には、相当な数のゲートを必要とし、集積回路上の相当大きな領域と大きな電力消費が必要になるからである。これの意味するところは、本発明の実施形態では、クロック・ドメインを同期させるために従来技術で使用していた、直列接続のフリップ・フロップ、又は、他の機構に起因する待ち時間を追加する必要がないということである。
【００１６】
本発明のいくつかの実施形態では、入力信号は、例えば、１つのバスからの少なくとも８、１６、又は３２ビットを含んでいるが、当然のことながら、バスは、複数ビットを任意の数だけ含んでよい。本明細書で転送データに関して言及する場合、該データには、単一ビット信号及びマルチ・ビット・バスの両方を包む。
【００１７】
更に有利な消費電力低減は、より迅速な転送を用いて達成することができる。この迅速な転送により、１つ又は両方のクロックが、より迅速にスリープ状態に入る又は復帰することが、スリープを適用できる場合には可能になる。このようなドメインは、通常、より高速で、より多くの電力を消費する、第１クロック・ドメインである。例えば、低電力タイマとして動作可能な第２クロック・ドメインから定期的にデータを読み出す第１クロック・ドメインがある。
【００１８】
前記第２クロックの確認は任意の適切な方法を含むことができる。該方法では、該第２クロックのクロック・サイクルにおいて遷移（０から１又は１から０）が発生しようとしていないことの判断を、前記入力信号が第１クロック・ドメインから第２クロック・ドメインへ転送される前に行う。実施形態の一つの組では、該第２クロックの確認は、該第２クロックが自サイクル内の正の部分にあるかどうかを決定するステップを含む。この場合には、必要な確認を行って入力信号を転送するために、少なくとも低速クロック・サイクルの半分が必要である。該実施形態の組では、第１クロックの周波数（この周波数で確認手段にクロックが供給される）は、第２クロックの周波数よりも、該確認ステップのステップ数の複数倍、少なくとも２倍、高くする必要がある。この目的は、十分な時間を確保して、該確認ステップのすべてのステップを実行し、該入力信号の第１クロック・ドメインから第２クロック・ドメインへの転送を、第２クロック・ドメインの安全な期間内に行うことができるようにするためである。
【００１９】
第１クロックの周波数は第２クロックの周波数の整数倍であり、及び／又は固定的な位相を有する可能性があるが、一般には、同期も特定の関係も、本発明に従う場合必要ではない。さらに、本発明の実施形態では、第２クロック・ドメインがスリープ又はスタンバイ・モードに入り、そして再び非同期的に起動されることが可能である。
【００２０】
実施形態の一つの組では、第１クロックの周波数は、第２クロックの周波数の少なくとも４倍の周波数、例えば少なくとも１０倍の周波数、例えば少なくとも１００倍の周波数、例えば少なくとも１０００倍の周波数にすることができる。これによって保証されることは、十分な時間をかけて、第２クロックの確認、及び、前記信号の第１クロック・ドメインから第２クロック・ドメインへの転送を、該転送中における第２クロックの遷移の危険及びこれに伴うデータの破損又は準安定性の危険なしに行えることである。これは、また、さまざまなクロック・ドメインが商業製品に存在することを反映している。一連の例示的な実施形態では、第１クロックの周波数は、１６ＭＨｚであり、第２クロックの周波数は３２ｋＨｚである。
【００２１】
第２クロックの確認は、第１クロックのサイクル中の任意の時点で行うことができ、固定する必要はない。実施形態の一つの組では、該確認が第１クロックの立ち上がりエッジで実行される。該確認は複数のステップを含むことができ、後に続くステップは、後に続く、例えば、第１クロックの次の立ち上がりエッジにおいて実行することができる。前述のように、第１クロックの周波数は、第２クロックの周波数よりも、該確認ステップのステップ数の複数倍、少なくともそのステップ数倍だけ高くする必要がある。この目的は、十分な時間を確保して、該確認ステップのすべてのステップを実行し、該入力信号の第１クロック・ドメインから第２クロック・ドメインへの転送を第２クロック・サイクルの安全な期間内に行うことができるようにするためである。
【００２２】
実施形態の一つの組では、第２クロックは、非アクティブ期間、すなわち、スリープ・モード又はスタンバイ・モードに入ることができる。しかし、第２クロックが非アクティブ、すなわち自クロック・サイクルが動作していなくても、第１クロック・ドメインから第２クロック・ドメインへ信号を転送することが依然として望まれる場合がある。この状況では、第２クロックが自サイクルのどの期間にあるかの確認は不可能であり、したがって、該システムは、第２クロックが動作中かどうかを判断する手段を含んでいてもよい。この確認が条件を満足する場合、すなわち、第２クロックが非アクティブであることが判明した場合、次に、該入力信号を第１クロック・ドメインから第２クロック・ドメインに転送することができる。この状況では、該入力信号は安全に転送されるであろう。その理由は、第２クロックが非アクティブであることによって、第２クロックの遷移が、該転送の間には起こらないことが保証できるからである。
【００２３】
前記確認手段は、任意の適切な機構を該確認の性質に応じて含むことができる。実施形態の一つの組では、該確認を実行する手段は、フリップ・フロップ、例えばＤタイプ・フリップ・フロップを含むが、任意のタイプのクロック付きフリップ・フロップを使用することができる。これが適している場合は、例えば、該確認に第２クロックがハイかどうかを決定するステップが含まれる場合である。好ましくは、該確認を実行する手段は２つのフリップ・フロップを直列に含む方がよい。複数のフリップ・フロップを備えることの効果は、該フリップ・フロップによって実行される確認の確実性の向上である。該フリップ・フロップからの出力が不安定な状態になることはまれである。該不安定な状態は、解消するためにある程度の時間が必要であり、例えば、第２クロックの遷移の最中に該確認を実行する場合に起こる。しかしながら、この出力が、さらにもう一つのフリップ・フロップの入力に供給される場合は、不安定な状態がフリップ・フロップの両方を通過する可能性は非常に小さい、すなわち、その確率は倍数的に減少する。
【００２４】
前記フリップ・フロップは、各々が前記第１クロックによってクロック供給される。故に、実施形態の好ましい組では、該フリップ・フロップは、各々が第１クロックの立ち上がりエッジによってトリガされ、該第２の確認を行うフリップ・フロップは、該第１の確認を行うフリップ・フロップをトリガする立ち上がりエッジに続く次の立ち上がりエッジによってトリガされることを理解されたい。３つ以上の直列接続されたフリップ・フロップを使用することもできる。余分のフリップ・フロップを追加することの効果は、第２クロックの確認の精度がさらに向上することである。非常に高い周波数でも同様であり、準安定状態の危険が大きい場合、３つ以上のフリップ・フロップを備えることが必要になるであろう。
【００２５】
実施形態の一つの組では、前記システムには、第一クロック・ドメインからの新しい入力信号があるかどうか、例えば、入力信号が以前に転送された値から変化したかどうか、を検出する手段が含まれる。これによって、該システムが第１及び第２クロック・ドメイン間の同期を実行する必要がある時期を知ることが可能になり、また、第２クロックがスリープ・モードに入ることが、該信号が転送された後、かつ新しい信号が検出される前までの期間中に可能になり、こうして電力節約ができる。好ましくは、該検出手段は、比較器、例えば、排他的論理和（ＸＯＲ）ゲート−第１クロック・ドメインからの入力信号と第２クロック・ドメインへの出力信号との間の排他的論理和（ＸＯＲ）ゲートを備えている。これらの２つの信号が等しくないときには、該入力信号が変化したが、まだ出力信号に伝播されていないので、該比較器は、該入力信号が変化したことを示す、該システムへの信号を生成する。
【００２６】
実施形態の一つの組では、前記第２クロックの確認は連続して、例えば、第１クロックのサイクル毎に実行することができる。しかしながら、実施形態の別の組においては、該システムは第２クロックの確認を起動するための手段を含む。これは、該確認を実行するために送信される専用の信号でありうる。又は、該システム内の他の信号又はサイクルに組み合されることもありうる。例えば、該確認は、前記のように、該入力信号の変化により起動することができる。又は、スタンバイ・モード又はスリープ・モードに入る、又は出るシステムによって起動することができる。該確認が、起動され、継続的に実行されるのではない実施形態が有利である理由は、この実施形態では、該確認が必要なときにのみ実行されるので、システムの消費電力削減の助けになることである。
【００２７】
実施形態の一つの組では、前記システムは、前記入力信号が、同期期間中の任意の時点で変化可能であり、同期プロセス、又は結果として得られる第１クロック・ドメインから第２クロック・ドメインへの入力信号の転送に、例えば、出力信号の準安定性を引き起こすことによって、影響を与えることがないようなシステムである。このようなシステムは、前記第２クロックの確認が該入力信号の状態から独立して行なわれる場合、例えば、前記のように、該確認が入力として第２クロックをとる実施形態の組で実現できる。しかし、また、該入力信号が、該確認を実行する手段を迂回するという事実にも拠っている。実施形態のこの組では、該確認手段は、第１クロックによってクロック供給され、該確認手段の入力は第２クロック・ドメインである。このため、該確認手段は、単に「安全」同期信号を生成して、該システムが該入力信号を転送しても安全であることを知ることができるようにする。このため、該システムで該入力信号の状態は問題ではなく、該入力信号はこの同期期間中に変化することができる。これは従来のハンドシェイク手順とは対照的である。従来の手順では、凍結が、第１クロック・ドメインから転送されたデータ信号に対してなされる。例えば、ビジー・フラグを使用することにより、第１及び第２クロック・ドメイン間の同期がとられる。これは明らかに時間を増大させ、したがって該システムによって消費される電力を増大させる。本発明の実施形態は、これらの制限を取り除き、結果としてデータ信号転送の高速化をもたらし、消費電力の削減に寄与する。
【００２８】
実施形態の一つの組では、前記システムは前記入力信号を記憶する手段、すなわち、記憶装置又は記憶部を含み、また、前記方法は該入力信号を記憶するステップを含む。これによって、前記第２クロックを確認している間、該入力信号を該システムに記憶しておくこと、及び、該システムから該信号を出力することが可能になる。しかしながら、前述の特徴、つまり、該入力信号とは独立して第２クロックの確認を行うことは、このような記憶手段の具備が必要でない場合があることを意味している。実施形態の一つの組では、第１クロック・ドメインからの信号入力と第２クロック・ドメインへの出力との間を直接的に接続することができる。このようにして、いったん第２クロックの確認が行われた後は、該システムを「開門」して、単に、入力信号の転送を第１クロック・ドメインから第２クロック・ドメインへ行うことが可能になる。
【００２９】
前記第１クロック・ドメインからの入力信号を記憶する手段は、任意の適切なデータ記憶用の構成要素、機構、又はデバイスを含むことができる。該手段は、該信号を、第２クロック・サイクルの危険な期間及び／又は同期プロセス中は記憶しておくことができ、第２クロック・ドメインが自サイクルの安全な期間に入ったときに、第２クロック・ドメインに出力する準備ができている。該手段は、レジスタ／フリップ・フロップを含んでもよい。このような構成要素は、該入力信号の記憶を、例えば、前記同期プロセスから該入力信号の第２クロック・ドメインへの転送が安全であることを示す信号を受信するまで、保持しておくことができる。該記憶手段は、前記信号入力部から前記入力信号を受信することができる、すなわち、該記憶手段と該信号入力部は、別々の構成要素を含むことができる。一つは該入力信号を受信する構成要素であり、一つは該入力信号を記憶する構成要素である。しかしながら、該機能は単一の構成要素で実行することができる。該単一の構成要素は、第１クロック・ドメインから入力される信号を受信・記憶する。
【００３０】
前記第２クロック・ドメインへの出力部は、単に、出力ライン又はワイアを含むことができる。代替的に又は追加で、該出力部は、第２クロックが、次に来る遷移から離れた期間にあることの確認を実行する前記手段からの信号を受信して、次に該信号を第２クロック・ドメインへ出力する構成要素を含むことができる。該出力部は、該システム内の他の手段のいくつかとは別の構成要素であるか、又は同じ構成要素であってもよい。例えば、該入力信号を受信及び／又は記憶するための前記手段が、また、該入力信号の第２クロック・ドメインへの転送が安全であるという前記信号を受信した場合に該入力信号を出力してもよい。好ましくは、該出力部は、第１クロックによってクロック供給される方がよい。これによって、第１クロック・ドメインからの該入力信号の第２クロック・ドメインへの迅速な出力を、第２クロックの条件を満足する確認がとられた直後に行うことが可能になる。
【００３１】
前記システム内の各構成要素、例えば、前記受信手段、第２クロック・ドメインの前記確認手段、前記出力手段は、前述のように、論理構成要素を含むことができる。実施形態の一つの組では、前記構成要素の論理は設計コンパイラを用いて合成される。該システムは、シリコン・チップ又は同等物の上に集積回路の一部として提供されることが好ましい。
【図面の簡単な説明】
【００３２】
本発明の特定の実施形態の説明を、以降、例示のみによって、以下の添付図面を参照しながら行う。
【図１】本発明による、論理回路の一実施形態を示す図である。
【図２】図１に示す回路図に関係づけられたタイミング図を示す。
【図３】本発明による、別の論理回路の一実施形態を示す図である。
【図４】図３と同様であるが、バスに使用される実施形態を示す図である。
【発明を実施するための形態】
【００３３】
図１は、本発明による実施形態に対応する模式的な論理回路図を示している。回路１は、入力信号、ｓｉｇ＿ｆａｓｔを、第１クロック・ドメイン４から第２クロック・ドメイン８へ、出力信号、ｓｉｇ＿ｓｌｏｗとして、転送するように構成されている。第１クロックの周波数は第２クロックの周波数よりも高く、典型的な周波数では、第１クロックは５０ＭＨｚで第２クロックは３２ｋＨｚである。
【００３４】
回路１は、比較器として動作するＸＯＲゲート１０を含み、該ゲート１０は入力として前記入力信号、ｓｉｇ＿ｆａｓｔ、及び前記出力信号、ｓｉｇ＿ｓｌｏｗを受け取る。該ＸＯＲゲート１０からの出力は２つのＡＮＤゲート１２及び１４に供給される。第１のＡＮＤゲート１２は、また、入力として、クロック、ｃｋ＿ｓｌｏｗを、第２の低周波のクロック・ドメイン８から受取る。第２のＡＮＤゲート１４は、入力としてＸＯＲゲート１０の出力、ｓｉｇ＿ｄｉｆｆ、及び、２つのＤタイプ・フリップ・フロップ１６、１８の出力ｓｙｎｃ＿ｓａｆｅを受け取る。２つのＤタイプ・フリップ・フロップ１６、１８は、直列に配置されている。
【００３５】
第１のフリップ・フロップ１６は、Ｄ入力として第１のＡＮＤゲート１２の出力を有し、第１の高周波数のクロック・ドメイン４からクロック、ｃｋ＿ｆａｓｔが供給される。第１のフリップ・フロップ１６のＱ出力ｓａｆｅ＿ａｘが、第２のフリップ・フロップ１８のＤ入力に供給される。該第２のフリップ・フロップ１８もまた、該高速クロック、ｃｋ＿ｆａｓｔによってクロック供給される。上述のように、第２のフリップ・フロップのＱ出力ｓｙｎｃ＿ｓａｆｅは、第２のＡＮＤゲート１４の入力に供給される。
【００３６】
第２のＡＮＤゲート１４の出力は、マルチプレクサ２０のセレクタ入力に供給される。マルチプレクサ２０への入力は、入力信号、ｓｉｇ＿ｆａｓｔ、及び、最終段のフリップ・フロップ２２の出力信号、ｓｉｇ＿ｓｌｏｗである。該マルチプレクサ２０の出力は、さらにＤタイプ・フリップ・フロップ２２に供給される。該Ｄタイプ・フリップ・フロップ２２もまた、前記高速クロック、ｃｋ＿ｆａｓｔによってクロック供給される。最終段のフリップ・フロップ２２のＱ出力は、第２クロック・ドメイン８への出力、ｓｉｇ＿ｓｌｏｗである。
【００３７】
前記システムの動作について、図１ならびに図２を参照して説明する。図２は、該システムを通る１ビットの論理信号のシーケンスを示している。説明用のタイム・スケール２４は、５０ｎｓの小区分毎に示されている。図２に示すように、説明目的のために、第１の高周波のクロック・ドメイン４のクロック、ｃｋ＿ｆａｓｔの周波数は１６ＭＨｚとされており、第２の低周波のクロック・ドメイン８のクロック、ｃｋ＿ｓｌｏｗの周波数は１．５ＭＨｚとされている。実際にはこれらのクロックは、先に詳述したように、より大きく異なっている可能性が高い。しかし、ここでは、これらのより比較し易い値を選択して、説明上の便宜を図っている。
【００３８】
システムの最初の状態では、第１クロック・ドメイン４からの入力信号、ｓｉｇ＿ｆａｓｔと第２クロック・ドメイン８への出力信号、ｓｉｇ＿ｓｌｏｗの両方が、共に０である。この結果、ＸＯＲゲート１０の出力、ｓｉｇ＿ｄｉｆｆは０になり、従って第２のＡＮＤゲート１４の出力は０であり、これによって、マルチプレクサ２０は最終段のフリップ・フロップ２２に０側入力、すなわち、ｓｉｇ＿ｓｌｏｗを出力する。このため、第２クロック・ドメイン８への出力、ｓｉｇ＿ｓｌｏｗは０のままである。
【００３９】
５００ｎｓ時点で、入力信号、ｓｉｇ＿ｆａｓｔは、０から１に変化する。この結果、ＸＯＲゲート１０の出力、ｓｉｇ＿ｄｉｆｆは同時刻に１へ変化する。６６６．６７ｎｓ時点では、低速クロック、ｃｋ＿ｓｌｏｗが、０から１へ変化する。この時点直後は、低速クロック、ｃｋ＿ｓｌｏｗのサイクルは信号の転送にとって安全な期間になる。この理由は、望ましくない、正（０から１へ）の遷移までに少なくとも半分の低速クロック・サイクルがあるからである。その結果、第１のＡＮＤゲート１２の出力が０から１に変化する。次いで、該ＡＮＤゲート１２の出力が第１のフリップ・フロップ１６のＤ入力へ供給される。６８７．５ｎｓ時点で、高速クロック、ｃｋ＿ｆａｓｔは０から１へ変化する。すなわち、ｃｋ＿ｓｌｏｗの立ち上がりエッジ後、最初の、ｃｋ＿ｆａｓｔの立ち上がりエッジが続く。第１のフリップ・フロップ１６がトリガされて、該フリップ・フロップ１６のＤ入力がクロック供給されて該フリップ・フロップ１６のＱ出力、ｓａｆｅ＿ａｘに伝えられる。該信号、ｓａｆｅ＿ａｘは、第２のフリップ・フロップ１８のＤ入力に供給され、次に、前記高速クロック、ｃｋ＿ｆａｓｔの次の立ち上がりエッジの時点、７５０ｎｓ時点で、該Ｄ入力は該フリップ・フロップ１８のＱ出力、ｓｙｎｃ＿ｓａｆｅに伝えられる。 
【００４０】
両方の信号、ｓｙｎｃ＿ｓａｆｅとｓｉｇ＿ｄｉｆｆが１になったこの時点で、第２のＡＮＤゲート１４の出力が１になり、したがって、マルチプレクサ２０の出力は、０側入力から１側入力に変わる。すなわち、マルチプレクサ２０の出力は、この時点で、信号ｓｉｇ＿ｆａｓｔの１になる。該マルチプレクサ２０の出力は、最終段フリップ・フロップ２２のＤ入力に供給され、次の高速クロック、ｃｋ＿ｆａｓｔの立ち上がりエッジの時点、８１２．５ｎｓ時点で、クロック供給されて最終段フリップ・フロップ２２のＱ出力に伝えられ、第２クロック・ドメイン８へ、ｓｉｇ＿ｓｌｏｗとして出力される。
【００４１】
第２クロック・ドメイン８への出力、ｓｉｇ＿ｓｌｏｗがいったん１に変化すると、該出力、ｓｉｇ＿ｓｌｏｗはＸＯＲゲート１０に帰還され、これにより、該ＸＯＲゲート１０の出力、ｓｉｇ＿ｄｉｆｆの０への変化が引き起こされ、ｓｉｇ＿ｆａｓｔの変化がｓｉｇ＿ｓｌｏｗまで伝播されたことを示す。一方、第１クロック・ドメイン４からの入力信号、ｓｉｇ＿ｆａｓｔは、１のままである。これによって、第２のＡＮＤゲート１４から０信号が出力され、この結果、マルチプレクサ２０の０側入力が最終段フリップ・フロップに出力される。しかし、該出力は、単に第２クロック・ドメイン８への出力、ｓｉｇ＿ｓｌｏｗであるので同じ値のまま残り、変化は、入力信号、ｓｉｇ＿ｆａｓｔの変化が検出されて、前記同期の確認部、すなわち、前段の２つのフリップ・フロップ１６、１８によって、第２クロックが自サイクルの安全な期間にあり、入力信号を転送できること、が確認されるまで起こらない。
【００４２】
ｓｉｇ＿ｄｉｆｆの０への変化によって、再び、０信号が、第１のＡＮＤゲート１２、及び、第１及び第２のフリップ・フロップ１６、１８を通過する。この結果、出力ｓｙｎｃ＿ｓａｆｅが０になる。これによって、０信号が第２のＡＮＤゲート１４から出力され、マルチプレクサ２０の０側入力が最終段フリップ・フロップ２２に出力され続ける。すなわち、マルチプレクサ２０からの出力値は変化しない。該信号は第１クロック・ドメイン４からの入力信号、ｓｉｇ＿ｆａｓｔであり、該信号もまた変化していない。そのため、第２クロック・ドメイン８への出力、ｓｉｇ＿ｓｌｏｗは、１のままである。
【００４３】
したがって、新しい信号が第１クロック・ドメイン４から第２クロック・ドメイン８に転送される時間は、第２クロック・ドメイン８の半サイクルと第１クロック・ドメイン４の２サイクルの和、すなわち、図２に示すクロック・ドメインの周波数で、最大転送時間が４５８．３３ｎｓ未満であることがわかる。しかしながら、上記説明と図２に示したような、特定の信号シーケンスでは、転送時間は、実際には、さらに小さく、３１２．５ｎｓである。
【００４４】
９７５ｎｓ時点で、第１クロック・ドメイン４からの入力、ｓｉｇ＿ｆａｓｔは、１から０へ変化する。これによって、ＸＯＲゲート１０からの出力、ｓｉｇ＿ｄｉｆｆの０から１への変化が引き起こされる。すなわち、入力信号、ｓｉｇ＿ｆａｓｔは、この時点では、出力信号、ｓｉｇ＿ｓｌｏｗとは異なるからである。第２クロック・ドメイン８が、まだ自サイクルの正、すなわち、その値が１の期間にあるので、これによって、さらにもう１つの信号が前段の２つのフリップ・フロップ１６、１８を経由して伝達され、値１のｓｙｎｃ＿ｓａｆｅ信号が生成され、新たな入力信号、ｓｉｇ＿ｆａｓｔが最終段のフリップ・フロップ２２を経由して転送され、第２クロック・ドメイン８の出力、ｓｉｇ＿ｓｌｏｗになる。入力ｓｉｇ＿ｆａｓｔの１から０への変化後すぐに、第２クロック・ドメイン８は、１から０へ変化することがわかる。しかし、上記変化は第１クロック・ドメイン４の正のエッジで発生した為、第２クロック・ドメイン８のサンプリングされた値は１であり、この値が、前段の２つのフリップ・フロップ１６、１８を通って伝達される値である。入力信号、ｓｉｇ＿ｆａｓｔは、依然として、安全に、第１クロック・ドメイン４から第２クロック・ドメイン８に転送することができる。この理由は、望ましくない正の遷移まで、第２クロックの周期の半分があるからであり、この時間は、必要な同期確認を実行して、入力信号、ｓｉｇ＿ｆａｓｔを転送するには十分な時間である。本例では、該データの転送は、入力信号、ｓｉｇ＿ｆａｓｔの変化に続いてわずか１５０ｎｓ以内に起こっている。しかし、データ信号、ｓｉｇ＿ｓｌｏｗが、この時点で、第２クロック・ドメイン８において、該クロック・ドメインによって様々な他の値の更新のために使用されることはない。第２クロック・ドメイン８の次の正の遷移、すなわち、１３３３．３３ｎｓの時点になって使用される。
【００４５】
図３の論理回路の模式図１０１は、本発明による第２の実施形態を示している。図１に示した回路図と同様、システムの中心にあるのは、２つのフリップ・フロップ１１６、１１８であり、直列に配置されて、第１のフリップ・フロップ１１６のＱ出力が第２のフリップ・フロップ１１８のＤ入力に転送される。また、該２つのフリップ・フロップ１１６、１１８は、第２クロック・ドメイン１０８が、正のエッジから離れた自サイクルの期間にあることを保証して、入力信号、ｓｉｇ＿ｆａｓｔが、第１クロック・ドメイン１０４から安全に転送することができるように動作する。図１及び図２のシステムと同様に、第１クロック・ドメインからのクロック信号ｃｋ＿ｆａｓｔの周波数は、第２クロック・ドメインからのクロック信号、ｃｋ＿ｓｌｏｗの周波数よりもはるかに高い。
【００４６】
前段の二つのフリップ・フロップ１１６，１１８は、第１クロック・ドメイン１０４からのクロック、ｃｋ＿ｆａｓｔからクロック供給され、第１及び第２クロック・ドメイン１０４、１０８の同期が非常に迅速に行われるようにされている。フリップ・フロップ１１６のＤ入力はＯＲゲート１１１の出力であり、該ＯＲゲート１１１は、入力として、第２クロック・ドメイン１０８からのクロック、ｃｋ＿ｓｌｏｗ、及び、フラグ、ｒｕｎｎｉｎｇ＿ｃｋ＿ｓｌｏｗを有する。該フラグ、ｒｕｎｎｉｎｇ＿ｃｋ＿ｓｌｏｗは、第２クロック・ドメイン１０８がアクティブであるか否かを示し、まずＮＯＴゲート１１０を通過する。さらに、非同期リセット信号、ａｒｓｔ＿ｆａｓｔが、該高速ドメイン１０４から、フリップ・フロップ１１６、１１８のＳ（セット）入力に供給され、第１クロック・ドメイン１０４からの前記高速クロックｃｋ＿ｆａｓｔによるクロック供給を無効にし、Ｄ入力のフリップ・フロップ１１６、１１８のＱ出力への転送を無効にする。 
【００４７】
第２のフリップ・フロップ１１８の前記Ｑ出力、ｓｙｎｃ＿ｓａｆｅは、ラッチ１２２のイネーブル入力に供給される。該ラッチ１２２は、そのＤ入力として入力信号、ｓｉｇ＿ｆａｓｔを第１クロック・ドメイン１０４から受け取る。該ラッチ１２２のＱ出力は、前記出力、ｓｉｇ＿ｓｌｏｗであり、第２クロック・ドメイン１０８に出力される。該ラッチ１２２の使用目的は、第１クロック・ドメイン１０４から第２クロック・ドメイン１０８へのデータ信号の通常の転送であり、該転送は、該２つのドメインが回路１０１によって一度同期されてから行われる。また、ラッチ１２３は、イネーブル入力として第２のフリップ・フロップ１１８のＱ出力、ｓｙｎｃ＿ｓａｆｅを有する。該ラッチ１２３は、該ラッチ１２３のＤ入力に接地信号を、Ｓ入力に入力、ｒｅｓｅｔ＿ｆａｓｔを有する。該ラッチのＱ出力、ｒｅｓｅｔ＿ｓｌｏｗは、リセット信号の第１クロック・ドメイン１０４から第２クロック・ドメイン１０８への転送を可能にする。図３において、該ラッチ１２３は、アクテイブ・ハイの構成で示されている、すなわち、値１の信号が該Ｑ出力からｒｅｓｅｔ＿ｓｌｏｗに出力されるのは、前記ｒｅｓｅｔ＿ｆａｓｔ信号が該ラッチ１２３のＳ入力に印加されるときである。また、代替的に、該ラッチ１２３は、アクティブ・ロー・モードで動作してもよく、このモードでは、ｒｅｓｅｔ＿ｆａｓｔ入力が該ラッチ１２３のＲ（リセット）入力に接続される。
【００４８】
図３に示した回路の動作を以降説明する。第２クロック・ドメイン１０８がアクティブでない場合、信号、ｒｕｎｎｉｎｇ＿ｃｋ＿ｓｌｏｗは０である。第２クロック、ｃｋ＿ｓｌｏｗが動いてない場合、信号の正の遷移の可能性はなく、準安定性を起こすこともない。このため、ｃｋ＿ｓｌｏｗが動いてない限り、第２クロック・ドメイン１０８へのデータ転送は常に安全である。ｒｕｎｎｉｎｇ＿ｃｋ＿ｓｌｏｗのこの０値は、ＮＯＴゲート１１０によって１値信号に変換される。これによって、１値信号がＯＲゲート１１１から出力される。したがって、１値信号が第１のフリップ・フロップ１１６のＤ入力に送られ、該Ｄ入力が、第１クロック・ドメイン１０４のクロック・サイクル信号、ｃｋ＿ｆａｓｔの次の複数回の立ち上がりエッジで、第２のフリップ・フロップ１１８のＱ出力に転送される。
【００４９】
第１クロック・ドメイン１０４がリセット・フェーズにある場合、信号、ａｒｓｔ＿ｆａｓｔは、前記フリップ・フロップ１１６、１１８のＤ入力を無効化するために使用することができる。これによって、既知の出力を、ラッチ１２２、１２３に、該リセット期間中に配信することが可能になり、従って、ｓｉｇ＿ｓｌｏｗとして出力することができる既知の値を第２クロック・ドメイン１０８に提供できる。これが第２クロック・ドメイン１０８における出力信号、ｓｉｇ＿ｓｌｏｗの同期を妨害しないように、第２クロック、ｃｋ＿ｓｌｏｗの動作開始が許可されるのは、第１クロック・ドメイン１０４のリセット期間の後、及び、前記２つのフリップ・フロップ１１６，１１８の出力が０に設定し直された後であり、これに続いて、回路１０１の通常動作を開始することができる。
【００５０】
第２クロック・ドメイン１０８がアクティブである場合、信号、ｒｕｎｎｉｎｇ＿ｃｋ＿ｓｌｏｗは、１になる。その意味は、第２クロック、ｃｋ＿ｓｌｏｗが動作中なので、該第２クロックの正の遷移を監視して、データ信号を第１クロック・ドメイン１０４から第２クロック・ドメイン１０８へ転送しても安全な時期を決定する必要があるということである。ｒｕｎｎｉｎｇ＿ｃｋ＿ｓｌｏｗのこの１の値は、ＮＯＴゲート１１０によって０に変換される。したがって低速クロック、ｃｋ＿ｓｌｏｗは、ＯＲゲート１１１が出力１を提供するためには、１であることが必要である。すなわち、第２クロック、ｃｋ＿ｓｌｏｗは、自信号の正の部分にあって、次に来る正の遷移から十分遠くに離れていることを保証し、第１及び第２クロック・ドメイン１０４、１０８の同期の発生を可能にして、入力信号、ｓｉｇ＿ｆａｓｔが、第１クロック・ドメイン１０４から安全に転送することができるようにする必要がある。したがって、低速クロック、ｃｋ＿ｓｌｏｗが、いったん１に変化すると、この変化を、フリップ・フロップ、１１６、１１８を通過して、伝えることができる。 
【００５１】
前記の結果、第２クロック・ドメインがアクティブであるかどうかは、安全な１値の信号になり、ラッチ１２２のイネーブル入力に渡される。これによって、入力信号、ｓｉｇ＿ｆａｓｔが、第１クロック・ドメイン１０４から直接転送されて、ｓｉｇ＿ｓｌｏｗとして第２クロック・ドメイン１０８へ出力される。同期プロセスからの安全な１値の信号によって、また、ロー・ゼロ信号がもう一つのラッチ型フリップ・フロップ１２３を経由して転送され、リセット信号、ｒｅｓｅｔ＿ｓｌｏｗのキャンセルを引き起こす。これは、第２クロック・ドメイン１０８が自クロック・サイクルの安全な期間にある時に起こり、リセット信号、ｒｅｓｅｔ＿ｆａｓｔが、第１クロック・ドメイン１０４からフリップ・フロップ１２３のＳ入力に受信されない限り続く。
【００５２】
図４は、図３とほぼ同一の回路２０１を示しており、非常に類似した動作をする。唯一の違いは、図３の出力ラッチ１２２、１２３が、複数の並列な出力ラッチ２２２、２２３に置き換えられていることである。したがって、回路２０１は、バスでの使用に簡単に適合させることができることがわかる。該回路２０１の動作は、図３の場合と同じである。相違点は、データ信号、ｓｉｇ＿ｆａｓｔ、又はリセット信号、ｒｅｓｅｔ＿ｆａｓｔを、第１クロック・ドメイン内のバスから第２クロック・ドメイン内のバスに転送するときに、該転送が、それぞれ、複数の出力ラッチ２２２、２２３を用いて並行して行われ、これらすべての出力ラッチが同一の信号、ｓｙｎｃ＿ｓａｆｅによって制御されることである。
【００５３】
当業者には、上述の実施形態に対する多くの変形及び修正が、本明細書で述べた発明の様々な態様の範囲内で行うことができることが理解できよう。例えば、最終段のフリップフリップは、前記転送される信号を第２クロック・ドメインへ出力するために設ける必要はなく、これは、他のデータ記憶用構成要素によって行うことができる、又は、ただ単に該回路を開門して、該入力信号を直接、第１クロック・ドメインの入力から、第２クロック・ドメインへ出力することも可能である。
【図１】
0006356669.tif 000002
【図２】
0006356669.tif 000003
【図３】
0006356669.tif 000004
【図４】
0006356669.tif 000005