(57)【特許請求の範囲】
【請求項１】
回路であって、
各々が共通データ入力を通してデータを受信するように結合されたＭ＋１個からなる複数のラッチを備え、前記共通データ入力を通して受信したデータは、第１のクロックドメインにおける第１のクロック信号に同期しており、
マルチプレクサとを備え、前記マルチプレクサは、各々が前記Ｍ＋１個のラッチのうちの対応する１つのラッチの出力からデータを受信するように結合されたＭ＋１個の入力と、出力とを有し、前記マルチプレクサは、前記マルチプレクサの入力のうちの、前記出力に結合する１つの入力を選択するように構成されたワンホットマルチプレクサであり、
制御回路を備え、前記制御回路は、前記マルチプレクサに、Ｎ個の連続するクロックパルスに応答して前記Ｍ＋１個のラッチのうちの選択されたラッチの出力を順次選択させるように構成され、さらに、前記Ｍ＋１個のラッチのうちの選択されたラッチに、前記共通データ入力を通して受信されたデータを順次ラッチさせるように構成され、
前記制御回路は、
所与の時刻において前記Ｍ＋１個のラッチのうちの１つのみがトランスペアレントであるように前記Ｍ＋１個のラッチの各々に対してクロックパルスを生成するように構成された第１のシフトレジスタと、
所与の時刻において１つの選択信号のみがアサートされるように前記マルチプレクサに与えられる複数の選択信号を生成するように構成された第２のシフトレジスタとを含み、
前記第１および第２のシフトレジスタの各々は、第２のクロックドメインにおける第２のクロック信号に同期している、回路。
【請求項２】
前記Ｍ＋１個のラッチは各々クロック入力を含み、前記制御回路は、Ｎ個の連続するクロックパルスのうちの１つに応答して前記Ｍ＋１個のラッチのうちの選択された１つのラッチにパルスを与えるように構成される、請求項１に記載の回路。
【請求項３】
前記Ｍ＋１個のラッチは各々、前記制御回路から前記パルスを受信したことに応じて、前記共通データ入力を通して受信されたデータをラッチするように構成され、さらに、前記制御回路からのパルスの受信がないときのサイクル中はデータがラッチされることを抑止するように構成される、請求項２に記載の回路。
【請求項４】
前記制御回路は、前記Ｎ個の連続するクロックパルスのうちの１つのクロックパルスに応答して、前記Ｍ＋１個のラッチのうちの選択された１つのラッチの出力を選択するように構成され、前記１つのクロックパルスは、前記Ｍ＋１個のラッチのうちの前記選択された１つのラッチにデータがラッチされたときの前記Ｎ個の連続するクロックパルスのうちの１つのクロックパルスの、次に生じる、クロックパルスである、請求項２または３に記載の回路。
【請求項５】
前記制御回路は、前記Ｍ＋１個のラッチのうちの所与の１つのラッチにデータがラッチされるサイクルと、前記Ｍ＋１個のラッチのうちの前記所与の１つのラッチの出力が前記マルチプレクサによって選択されるサイクルとの間のクロックパルスの数を制御するように調整可能である、請求項４に記載の回路。
【請求項６】
前記複数のラッチは各々、シングルエンドデータ出力を与えるように構成される、請求項４または５に記載の回路。
【請求項７】
前記制御回路は、前記Ｎ個の連続するクロックパルスのうちの所与の１つのパルスに応答して、前記Ｍ＋１個のラッチのうちの第１のラッチにデータをラッチさせるとともに前記マルチプレクサに前記Ｍ＋１個のラッチのうちの第２のラッチの出力を選択させるように構成される、請求項１〜６のいずれか１項に記載の回路。
【請求項８】
前記Ｍ＋１個のラッチ各々に結合される前記共通データ入力は、真のデータ入力と相補データ入力とを含む差動データ入力である、請求項１〜７のいずれか１項に記載の回路。
【請求項９】
方法であって、
マルチプレクサの入力を順次選択することを含み、前記マルチプレクサの前記入力は各々、Ｍ＋１個のラッチのうちの対応する１つのラッチの出力に結合され、前記マルチプレクサはＭ＋１個の入力を含むワンホットマルチプレクサであり、前記入力は一回につき一つ選択され、前記マルチプレクサの前記順次選択される入力は、選択信号を一回につき１つずつ順次アサートする制御回路の第１のシフトレジスタに対応し、前記方法はさらに、
前記Ｍ＋１個のラッチのうちの２つ以上のラッチにデータを順次ラッチすることを含み、前記Ｍ＋１個のラッチは各々、共通データ入力を通してデータを受信するように結合され、前記共通データ入力を通して受信したデータは、第１のクロックドメインにおける第１のクロック信号に同期しており、前記Ｍ＋１個のラッチは各々、２つ以上の連続するクロックパルスのうちの特定の１つのクロックパルスを受信したことに応じてデータをラッチするように構成され、データは、２つ以上の連続するクロックパルスを一回につき１つずつアサートする前記制御回路の第２のシフトレジスタに応答して、前記Ｍ＋１個のラッチのうちの２つ以上のラッチに、一回につき一つのラッチにラッチされ、前記第１および第２のシフトレジスタは第２のクロックドメインにおける第２のクロック信号に同期して前記選択信号および前記クロックパルスをそれぞれアサートする、方法。
【請求項１０】
シンクロナイザであって、
共通データ入力とマルチプレクサの出力との間において並列接続されたＭ＋１個からなる複数のデータ経路を備え、前記Ｍ＋１個のデータ経路は各々、Ｍ＋１個のラッチ回路のうちの１つを含み、前記Ｍ＋１個のラッチ回路は各々、前記共通データ入力から第１のクロックドメインにおける第１のクロック信号に同期したデータを受信するように結合され、かつ、前記マルチプレクサのＭ＋１個の入力のうちの対応する１つの入力に結合される出力を有し、前記マルチプレクサは、Ｍ＋１個の選択信号のうちの対応する１つの選択信号を受信したことに応じて前記マルチプレクサのＭ＋１個の入力のうちの１つを選択するように構成されたワンホットマルチプレクサであり、
制御回路を備え、前記制御回路は、前記Ｍ＋１個のラッチ回路のうちの２つ以上のラッチ回路に、繰返しシーケンスにおいて一回につき一つのデータをラッチするように構成され、さらに、前記Ｍ＋１個のラッチ回路のうちの２つ以上のラッチ回路の出力を、前記繰返しシーケンスにおいて一回につき１つ、前記マルチプレクサに選択させるように構成され、前記制御回路は、動作サイクル中に前記Ｍ＋１個のラッチ回路のうちの所与の１つのラッチ回路の出力を前記マルチプレクサに選択させるように構成され、前記動作サイクルは、前記Ｍ＋１個のラッチ回路のうちの所与の１つのラッチ回路がアクティブにされる動作サイクルの次の動作サイクルであり、
前記制御回路は、
前記Ｍ＋１個のラッチ回路の各々に与えられるクロックパルスを生成するように構成された第１のシフトレジスタと、
１つ選択信号のみが所与の時間にアサートされるように前記マルチプレクサに与えられる選択信号を生成するように構成された第２のシフトレジスタとを含み、
前記第１および第２のシフトレジスタは第２のクロックドメインの第２のクロック信号に同期している、シンクロナイザ。
【請求項１１】
前記制御回路はさらに、前記Ｍ＋１個のラッチ回路のうちの選択されていないラッチ回路に、データをラッチすることを抑止させるように構成される、請求項１０に記載のシンクロナイザ。
【請求項１２】
前記共通データ入力は、真の信号入力と相補信号入力とを有する差動入力であり、前記マルチプレクサの出力は、真のデータ出力を有するシングルエンド出力である、請求項１０または１１に記載のシンクロナイザ。
【請求項１３】
前記Ｍ＋１個のデータ経路各々のラッチ回路は、真の論理状態と相補論理状態とを有する差動信号としてデータを受信するように結合され、前記Ｍ＋１個のデータ経路各々のラッチ回路は、その出力において、真の論理状態のシングルエンド信号としてデータを与えるように結合される、請求項１２に記載のシンクロナイザ。
【請求項１４】
前記制御回路は、前記繰返しシーケンス中に、Ｍ＋１個のラッチのうちの、２とＭ＋１との間の整数個のラッチをアクティブにするように調整可能であり、Ｍは２以上の整数である、請求項１０〜１３のいずれか１項に記載のシンクロナイザ。
【請求項１５】
前記制御回路は、前記繰返しシーケンス中にアクティブにされる前記Ｍ＋１個のラッチのうちの特定のラッチを前記マルチプレクサに選択させるために選択信号を前記繰返しシーケンス中に生成するように構成される、請求項１４に記載のシンクロナイザ。
【請求項１６】
前記制御回路は、前記Ｍ＋１個のラッチのうちの所与の１つのラッチにデータがラッチされるサイクルと、前記Ｍ＋１個のラッチのうちの前記所与の１つのラッチの出力が前記マルチプレクサによって選択される次のサイクルとの間のサイクル数を制御するように調整可能である、請求項１４または１５に記載のシンクロナイザ。
【請求項１７】
前記マルチプレクサの出力を受信するように結合されたフリップフロップをさらに備え、前記フリップフロップは前記第２のクロックドメインにおける前記第２のクロック信号に同期している、請求項１〜８のいずれか１項に記載の回路。
【請求項１８】
前記第２のクロックドメインにおける前記第２のクロック信号に同期するフリップフロップに、前記マルチプレクサからのデータ出力を与えることをさらに含む、請求項９に記載の方法。
【請求項１９】
前記マルチプレクサの出力を受信するように結合されたフリップフロップをさらに備え、前記フリップフロップは前記第２のクロックドメインの前記第２のクロック信号に同期している、請求項１０〜１６のいずれか１項に記載のシンクロナイザ。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
１．技術分野
本開示は集積回路に関し、より具体的には、あるクロックドメインから別のクロックドメインに送られる信号を同期させるための回路に関する。
【背景技術】
【０００２】
２．関連技術の説明
現代の集積回路は、互いに異なるクロックドメインおよび／または電圧ドメインにある複数の機能ブロックを含むことが多い。互いに異なるクロックドメインにある回路は共通クロック信号を共有するのではなく、それぞれのクロック信号は互いに異なる周波数で動作することがある。互いに異なる電圧ドメインにある回路は、互いに異なる電圧の電力を受けることがある。動作クロック周波数および受信電圧の相違にもかかわらず、互いに異なるクロックドメインおよび／または電圧ドメインにある回路が、相互に通信するように配置されることがある。このように、さまざまな種類の回路が、あるクロックおよび／または電圧ドメインから別のクロックおよび／または電圧ドメインに信号を転送するために設けられることがある。
【０００３】
互いに異なる周波数で動作する第１および第２のクロックドメイン間での信号の送信のために、シンクロナイザを使用してもよい。シンクロナイザは、直列接続されたマスタースレーブフリップフロップのチェーンを用いて実現してもよい。これらクロックドメインは互いに異なる周波数で動作し得るので、送信側のクロックドメインから受信したデータ信号と、受信側のクロックドメインにおけるクロック信号との間に、保証された関係はない。データ信号が、セットアップおよびホールドタイム要件が満たされていない状態で届いた場合、第１のフリップフロップがメタステーブル状態になる可能性がある。メタステーブル状態では、（たとえばフリップフロップ内の）状態素子は、論理１も論理０も記憶しない不安定平衡の状態となり得る。数クロックサイクルを経て、シンクロナイザを実現するために使用される直列接続されたフリップフロップのチェーンは、メタスタビリティを解決して、このチェーンにおける最後のフリップフロップから論理１または論理０を出力することができる。
【０００４】
互いに異なる電源電圧の電力を受信する第１および第２の電圧ドメイン間での信号の送信のために、レベルシフタ回路を使用してもよい。レベルシフタ回路は、第１の電圧振幅を有する論理信号を受信して、それに対応する、第２の電圧振幅を有する論理信号を出力してもよい。あるレベルシフタでは、第１の電圧振幅が第２の電圧振幅よりも大きい場合がある。それ以外のレベルシフタでは、第１の電圧振幅が第２の電圧振幅よりも小さい場合がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
開示の概要
メタスタビリティ解決のための回転シンクロナイザが開示される。一実施形態において、シンクロナイザは、各々が共通データ入力を通してデータを受信するように結合されたＭ＋１個からなる複数のラッチを含む。シンクロナイザはさらにマルチプレクサを含み、マルチプレクサは、各々がＭ＋１個のラッチのうちの対応する１つのラッチの出力からデータを受信するように結合されたＮ個の入力と、出力とを有する。マルチプレクサは、上記マルチプレクサの入力のうちの、上記出力に結合する１つの入力を選択するように構成される。制御回路は、マルチプレクサに、Ｎ個の連続するクロックパルスに応答してＭ＋１個のラッチの出力を順次選択させるように構成され、さらに、Ｍ＋１個のラッチに、共通データ入力を通して受信されたデータを順次ラッチさせるように構成される。
【０００６】
一実施形態において、方法は、マルチプレクサの入力を順次選択することを含み、マルチプレクサの入力は各々、Ｍ＋１個のラッチのうちの対応する１つのラッチの出力に結合され、マルチプレクサはＮ個の入力を含み、これら入力は、一回につき一つ選択される。この方法はさらに、Ｍ＋１個のラッチのうちの２つ以上のラッチにデータを順次ラッチすることを含み、Ｍ＋１個のラッチは各々、共通データ入力を通してデータを受信するように結合される。Ｍ＋１個のラッチは各々、その出力がマルチプレクサへの入力として選択されるときのクロックパルスと同じクロックパルス中に、２つ以上の連続するクロックパルスのうちの特定の１つのクロックパルスを受信したことに応じてデータをラッチするように構成され、データは、Ｍ＋１個のラッチのうちの２つ以上のラッチに、一回につき一つのラッチにラッチされる。
【０００７】
本開示の他の局面は、以下の詳細な説明を読み添付の図面を参照すれば明らかになるであろう。これら図面の簡単な説明は以下の通りである。
【図面の簡単な説明】
【０００８】
【図１】複数の電圧ドメインおよび複数のクロックドメインを有する集積回路（ＩＣ）の一実施形態のブロック図である。
【図２】シンクロナイザの一実施形態の図である。
【図３】シンクロナイザの一実施形態の動作を示すタイミング図である。
【図４】シンクロナイザにおいて使用されるラッチの一実施形態の概略図である。
【図５】レベルシフタの一実施形態の論理図である。
【図６Ａ】レベルシフタの一実施形態の概略図である。
【図６Ｂ】レベルシフタの別の実施形態の概略図である。
【図６Ｃ】レベルシフタの第３の実施形態の概略図である。
【図７】シンクロナイザを動作させる方法の一実施形態を示すフロー図である。
【図８】第１の電圧／クロックドメインから第２の電圧／クロックドメインに信号を送信する方法の一実施形態を示すフロー図である。
【発明を実施するための形態】
【０００９】
本明細書において開示される主題には、さまざまな変形および代替形態が可能であるが、その具体的な実施形態を例示のために図面に示すとともに本明細書で詳細に説明する。しかしながら、その図面および説明は、開示されている特定の形態への限定を意図したものではなく、それとは逆に、以下の請求項によって定められる本開示の精神および範囲に含まれる、すべての変形、均等物、および代替物をカバーしようとするものであることが、理解されるはずである。
【００１０】
詳細な説明
ここで図１を参照すると、集積回路（ＩＣ）の一実施形態のブロック図が示されている。なお、示されているこの実施形態のＩＣ１０は代表的な実施形態であり、したがって他の実施形態が可能であり意図されている。ここではＩＣ１０のいくつかの構成要素が説明のために示されているが、本明細書では明確に示されても説明されてもいない他の構成要素がＩＣ１０に含まれ得ることが理解されるはずである。また、いくつかの実施形態においてクロックおよび電圧ドメインは必ずしも同時に同じ場所に存在する訳ではないが、ここでそのように示されているのは説明のためである。
【００１１】
第１の電源電圧Ｖｄｄ１は、示されている実施形態において、クロック／電圧ドメイン＃１（「第１のドメイン」）の回路に与えられる。同様に、クロック／電圧ドメイン＃２（「第２のドメイン」）の回路は、第２の電源電圧Ｖｄｄ２を受けるように結合されている。これら２つの電源電圧は、さまざまな実施形態において、互いに異なっていてもよい。いくつかの実施形態において、これら２つの電源電圧は、所望の電力および／または性能レベルに合うように、互いに独立して調整可能であってもよい。したがって、あるときには第１および第２の電源電圧が互いに異なりそれ以外のときには第１および第２の電源電圧が同一である実施形態が可能であり意図されている。第１および第２の電源電圧が実質的に固定された値に設定されている実施形態も可能であり意図されている。
【００１２】
示されている実施形態のＩＣ１０は、クロック／電圧ドメイン＃１にある第１の機能ユニット１２を含む。第２の機能ユニット２４はクロック／電圧ドメイン＃２に含まれている。なお、いくつかの実施形態において、クロックおよび電圧ドメインは必ずしも同時に同じ場所に存在する訳ではないが、ここでそのように示されているのは説明のためである。クロック／電圧ドメイン＃１は、（任意の適切な種類のクロック生成回路であればよい）クロックジェネレータ１１によって生成された第１のクロック信号Ｃｌｋ１Ｐに従って動作してもよい。すなわち、クロック／電圧ドメイン＃１内の同期回路は、第１のクロック信号に同期されてもよい。クロック／電圧ドメイン＃２の同期回路は、（クロックジェネレータ１１と同様であってもよい）クロックジェネレータ２３によって生成された第２のクロック信号Ｃｌｋ２Ｐによって同期が取られてもよい。第１および第２のクロック信号は、互いに異なる周波数で動作してもよい。いくつかの実施形態において、第１および／または第２のクロック信号の周波数は、所望の性能レベルまたは所望の消費電力レベルに合わせて互いに独立して調整可能であってもよい。よって、いくつかの実施形態において、あるときには第１および第２のクロック信号それぞれの周波数が等しくてもよくそれ以外のときにはこれら周波数が異なっていてもよい。これら２つのクロック周波数が互いに異なる値に固定されている実施形態も可能であり意図されている。
【００１３】
機能ユニット１２は、ＩＣ１０の動作中に、データを機能ユニット２４に送信してもよい。これら２つの機能ユニットは互いに異なるクロックおよび電圧ドメインにあるので、クロック／電圧ドメイン＃１内の機能ユニット１２から送られる信号は、クロック／電圧ドメイン＃２内の機能ユニット２４による受信に合わせて調節される。ＩＣ１０において、機能ユニット１２は、機能ユニット２４が受信するデータを搬送するＮ＋１個からなる複数のデータ信号（Ｎは整数）Ｄ０〜ＤＮを送信してもよい。これら信号は（真の論理値を有する）シングルエンド信号として機能ユニット２４に送信される。ＩＣ１０は、機能ユニット１２から受けたシングルエンド信号を受信してこれら信号を真の論理値および相補論理値双方を有する差動信号に変換するように結合された、Ｎ＋１個からなる複数の生成回路（Ｇｅｎ）１３を含む。たとえば、第１の生成回路１３は、真の論理値のＤ０を受信するように結合され、かつ、クロック／電圧ドメイン＃１とクロック／電圧ドメイン＃２との間の境界を超えて送信するために真の論理値（Ｄ０）と相補論理値（ＤＸ０）とを生成するように構成される。
【００１４】
クロック／電圧ドメイン＃２において、これら差動信号は対応するレベルシフタ（ＬＳ）１５によって受信されてもよい。これら２つのドメインが受信する電源電圧は互いに異なり得るので、論理信号の電圧振幅（すなわち論理ハイと論理ローとの差）も異なり得る。各レベルシフタ１５はしたがって、第１のドメインから受信した信号の電圧レベルを、第２のドメインでの動作に適したレベルにシフトしてもよい。この特定の実施形態において、これら２つのドメインは共通の接地ノード（または基準ノード）を共有し、よって、論理０の電圧レベルはこれら２つのドメインで同一であってもよい。しかしながら、クロック／電圧ドメイン＃１における論理１の論理レベルは電源電圧Ｖｄｄ１とほぼ同一であってもよく、クロック／電圧ドメイン＃２における論理１は電源電圧Ｖｄｄ２とほぼ同一の電圧レベルを有していてもよい。したがって、各レベルシフタ１５は、第１のドメインから受けた約Ｖｄｄ１の論理１を、約Ｖｄｄ２の論理１に変換してもよい。加えて、以下でさらに説明するように、各レベル１５を、信号がクロック／電圧ドメイン＃２で十分なセットアップ／ホールドタイムなしで受信されるときに生じ得るメタスタビリティを解決するために用いられる特定の種類のラッチとともに使用するために、最適化してもよい。
【００１５】
示されている実施形態の各レベルシフタ１５は、第２のドメインに適した電圧レベルの真の論理値および相補論理値を有する差動信号を出力してもよい。レベルシフタ１５の所与のインスタンスによって出力される差動信号は、シンクロナイザ２０の対応するインスタンスによって受信されてもよい。各シンクロナイザ２０は、多数のラッチ回路を含んでいてもよく、第１のドメインから受信した信号を、第２のドメインのクロック信号（Ｃｌｋ２Ｐ）と同期させるために使用されてもよい。先に述べたように、第１のドメインのクロック周波数Ｃｌｋ１Ｐは、第２のドメインのクロック信号の周波数と異なり得る。このため、各シンクロナイザ２０において使用されるラッチを用いて、適量のセットアップ／ホールドタイムを考慮せずに信号が受信されたときに生じ得るメタスタビリティの問題を解決してもよい。加えて、各シンクロナイザ２０はまた、差動信号をシングルエンド信号に戻す変換を行なってもよい。各シンクロナイザ２０の出力は、最初に機能ユニット１２から送信された信号の真の論理値に対応する論理値を有してもよい。各シンクロナイザ２０から出力される信号は、機能ユニット２４によって受信されてもよい。
【００１６】
図２は、シンクロナイザの一実施形態の図である。示されている実施形態において、シンクロナイザ２０は、各々が共通の（すなわち同一の）入力２９からデータを受信するように結合された複数のラッチ２１を含む。示されている実施形態において、シンクロナイザ２０は、Ｍ＋１個のラッチ２１を含み、Ｍは少なくとも１である整数である。ラッチ２１各々の出力は、マルチプレクサ２４の対応する入力に結合される。マルチプレクサ２４も、対応する数の選択信号を受信するように結合され、この実施形態ではワンホット（one-hot）マルチプレクサとして実現される。このため、所与の時点で、ラッチ出力１つのみが、データをマルチプレクサ２４のＱ出力に送るために選択される。
【００１７】
ラッチ２１は各々、その入力でクロックパルスを受信したことに応じてデータをラッチしてもよい。本明細書で使用する、動詞として用いるときの「ラッチ」という用語は、記憶回路がトランスペアレント（transparent）でありしたがってデータを受入れることができるときにデータをこの記憶回路に入力することであると定義し得る。本明細書で使用する「トランスペアレント」という用語は、記憶素子の、データをこの記憶素子に書込むことができ先に記憶されているデータを上書きしてもよい状態を意味し得る。これに対し、「非トランスペアレント（non-transparent）」は、記憶素子の、たとえ新たなデータがそのデータ入力にあってもこの新たなデータを現在記憶されているデータに上書きできない状態を意味し得る。名詞として用いるときの「ラッチ」という用語は、１つの段を有する、クロックで制御される（clocked）記憶素子であると定義し得る。本明細書に記載のクロック信号は、一状態のラッチがフリップフロップとして機能できるようショートパルス（たとえばデューティサイクルが５０％未満）であってもよい。すなわち、ラッチは、クロックがハイに遷移したときにデータをラッチしラッチした値をその出力においてこのサイクルの残りの間（クロックが再びローに低下するときを含む）保持してもよい。よって、本明細書に記載のラッチは、異なる２つの段を有する（直列接続された２つのラッチで構成されてもよい）記憶素子としてここで定義し得る従来のフリップフロップと区別されるものであってもよい。
【００１８】
シンクロナイザ２０は、任意の所与の時点でラッチ２１のうちの１つのみがトランスペアレントであるように配置される。加えて、シンクロナイザ２０は、そのラッチ２１が、循環する順番で、言換えると繰返しシーケンスに従って、トランスペアレントになるように配置される。たとえば、ラッチ０、ラッチ１、ラッチ２、およびラッチ３として示される、ラッチ２１の４つのインスタンスを有する実施形態では、最初にトランスペアレントになるのがラッチ０で他の３つのラッチが非トランスペアレントなままであってもよい。次にトランスペアレントになるラッチがラッチ１でラッチ０、ラッチ２、およびラッチ３が非トランスペアレントなままであってもよい。これに続いて、ラッチ２がトランスペアレントになりそれ以外の３つのラッチが非トランスペアレントなままで、その後ラッチ３がトランスペアレントになりそれ以外の３つのラッチが非トランスペアレントなままであってもよい。次にこのシーケンスが再びラッチ０から繰返されてもよい。シンクロナイザ２０はしたがって、共通入力２９とマルチプレクサ２４の出力Ｑ（以下で説明する）との間に並列接続された複数のデータ経路を有するものであるとみなしてもよく、任意の所与の時点では１つのデータ経路のみのラッチ回路がアクティブであり、データ経路それぞれのラッチ回路は繰返しシーケンスに従ってアクティブにされる。また、シンクロナイザ２０の構造は、データが所与の場所（この場合ラッチ２１）に順番に書込まれその後同じ場所から同じ順番で読出される先入れ先出し（ＦＩＦＯ）メモリと同様のものであるとみなしてもよい。ラッチ２１は各々、制御回路２５からラッチのクロック入力に出力された対応する論理「１」によってアクティブにされてもよい。たとえば、制御ロジック２５は、第１のサイクルにおいてＣｌｋ＿Ｌ０Ｐ上の論理「１」をラッチ０に出力してもよく、一方で論理「０」をその他のラッチ各々のクロック入力に出力してもよい。論理「１」は、Ｃｌｋ２Ｐの次の各サイクルで１つのラッチのクロック入力から次のラッチのクロック入力に進んでもよい。所与のシーケンス中にアクティブにされるラッチの総数は、制御ロジック２５内の調整可能なフィードバックループの設定に応じて決まるであろう。調整可能なフィードバックループの長さに応じて、このループにおける論理「１」は、Ｍ、Ｍ−１…２、または１つのラッチ位置を通って循環するであろう。
【００１９】
共通入力２９を通して受信された入力データは第２のクロック信号Ｃｌｋ２Ｐと同期が取られていないので、このデータを搬送する信号は、適量のセットアップ／ホールド時間なしでラッチ２１のうちのトランスペアレントなラッチの入力に到達し得る。したがって、ラッチ２１のうちのトランスペアレントなラッチは、少なくとも最初は入力された論理値を正しく解釈することができずメタステーブル状態になる可能性がある。しかしながら、このラッチが非トランスペアレントである残りのクロックサイクルを通して、同じラッチ２１がこのメタスタビリティを解決し受信データが特定の論理値であると判断することができる。一般的に、上記繰返しシーケンスの所与の数のクロックサイクルの間に、特定のラッチが、特定のクロックサイクルのうちの１つでデータをラッチしてもよく、発生したメタスタビリティを残りのクロックサイクルで解決してもよい。以下で述べるように、データが特定のラッチに書込まれる時点と、（マルチプレクサにその出力を選択させることによって）この特定のラッチから読出される時点との間のクロックサイクルの数は、調整可能であってもよい。
【００２０】
ラッチ２１は、制御回路２５の制御の下でトランスペアレントまたは非トランスペアレントになってもよい。具体的には、制御回路２５はクロックパルスを順次ラッチ２１に与えるように構成される。第１のラッチ２１は第１のクロックパルスＣｌｋ＿Ｌ０Ｐを制御回路２５から受信するように結合され、（Ｍ＋１）番目のラッチはクロックパルスＣｌｋ＿ＬＭＰを制御回路２５から受信するように結合される。さらに、制御回路２５は、クロックパルスを、一回につき１つのラッチ２１のみに与えるように構成される。したがって、任意の所与の時点でトランスペアレントなラッチ２１は１つだけである。さらに、ラッチに与えられるクロックパルスのデューティサイクルが（本実施形態のように）５０％未満の場合、クロックパルスとクロックパルスの間において、トランスペアレントなラッチ２１はない。クロックパルスはラッチ２１に繰返しシーケンスに従って与えられてもよい。たとえば、ラッチ０が第１のクロックパルスを受信してもよく、（存在することは理解されるが示されていない）ラッチ１が第２のクロックパルスを受信してもよく、これがラッチＭまで続いてもよい。また、制御回路２５は、動作中にアクティブにし得るラッチの数を調整するように構成可能である。たとえば、シンクロナイザ２０のある実施形態が８つのラッチを含む場合、その制御回路２５は、特定の１動作構成に対してラッチのうちの４つのみをアクティブにするように調整可能であってもよい。アクティブにするラッチの数の調整は、ここでは「調整」として示される、制御回路２５へのプログラミング入力を通してプログラムされてもよい。
【００２１】
図２に示される制御回路２５は、ラッチ２１がアクティブにされるシーケンスに対応するシーケンスに従い、マルチプレクサ２４に与えられる選択信号をアサートしてもよい。一般的に、マルチプレクサ２４は、最初に（ラッチ０の出力を選択するために）Ｓｅｌ０をアサートし、次に（ラッチ１の出力を選択するために）Ｓｅｌ１をアサートし、以降同様に続けてもよい。しかしながら、所与の選択信号がアサートされるサイクルは、データをラッチするために対応するラッチがアクティブにされるサイクルと同一でない場合がある。たとえば、ラッチ０は第１のサイクル中にトランスペアレントになるものの、第１のサイクルから１つ以上のサイクル後にＳｅｌ０のアサートによってＬａｔｃｈ０＿Ｏｕｔが選択される場合がある。特定のラッチ２１がアクティブにされてデータをラッチする時点とその出力がその後マルチプレクサ２４によって選択される時点との間のサイクルの数は、「調整」入力を通してプログラムし得る、シンクロナイザ２０の別の調整可能なパラメータである。一般的に、所与のラッチ２１がアクティブにされてデータをラッチする時点とこの所与のラッチ２１の出力がマルチプレクサ２４によって選択される時点との間のサイクルの数は、１シーケンス全体の間にアクティブにすべきラッチ２１の数によって上限が制限される範囲の中で変動してもよい。たとえば、所与の１シーケンスの間に４つのラッチ２１がアクティブにされる場合、この所与のシーケンスはしたがって４つの動作サイクルを費やす。これら４つの動作サイクル内で、マルチプレクサ２４は、「調整」入力を通して如何にしてプログラムされたかに応じて、所与のラッチの出力を、このラッチが書込まれたサイクルから１、２、または３動作サイクル後に、選択すればよい。データをラッチ２１に書込む時点と（マルチプレクサ２４がその出力を選択することによって）データを同じラッチ２１から読出す時点との間の動作サイクルの数の選択におけるこの遅延によって、最適量のセットアップおよびホールドタイムなしでデータがラッチされたときに生じ得るメタスタビリティの問題の解決のための時間を確保し得る。
【００２２】
制御回路２５の機能は、ＦＩＦＯに対して読出および書込ポインタを生成するのに使用される回路の機能と同様であってもよい。書込ポインタは、ラッチ２１のうちの対応するラッチに与えられるクロックパルスを生成する信号に対応し得る。読出ポインタは、マルチプレクサ２４への選択信号を生成する信号に対応し得る。これら信号間の時間間隔は、読出ポインタと書込ポインタとの間隔と同様に設定することによって、読出される前に記憶場所（この場合はラッチ２１）が上書きされないことを保証すればよい。
【００２３】
さまざまな種類の回路を用いて制御回路２５を実現することができる。一実施形態では、１つ以上のシフトレジスタを用いて、結果としてラッチ２１へのクロックパルスをアサートする１つまたは複数の信号およびマルチプレクサ２４に与えられる選択信号を生成してもよい。１つの代表的な実施形態において、制御回路２５はクロックパルスを生成するための第１のシフトレジスタを含んでいてもよく、選択信号を生成するために第２のシフトレジスタが使用されてもよい。シフトレジスタ各々は、１つの位置に１つの論理１を有し残りの位置各々に論理０を有していてもよい。シフトレジスタはまた、選択されたシーケンスを実現するために調整可能なフィードバックを含み得る。シフトレジスタのうちの第１のシフトレジスタからの論理１を用いて、現在選択されているラッチ２１に与えられるクロックパルスを生成してもよく、シフトレジスタのうちの第２のシフトレジスタからの論理１を用いてマルチプレクサ２４に与えられる選択信号をアサートしてもよい。第１および第２のシフトレジスタにおける論理１の相対位置は、所与のラッチ２１の出力が、これがトランスペアレントであるサイクルと同じサイクル中にマルチプレクサ２４によって選択されないように、異なっていてもよい。
【００２４】
他の実施形態において、制御回路２５は、１つのシフトレジスタおよびその他サポート組合せ論理、ステートマシンを用いて、プロセッサが命令を実行することで実現されてもよく、または、その他適切なハードウェアおよび／またはソフトウェアによって実現されてもよい。一般的に、制御回路２５は、所望のシーケンスを提供することができる何らかのやり方で、および／またはＦＩＦＯに対して読出および書込ポインタを生成するのと同様のやり方で実現されてもよい。さらに、制御回路２５は、動作の１シーケンス中にアクティブにされる特定の数の利用可能なラッチを制御するように、かつ、データが所与のラッチに書込まれる時点と所与のラッチから読出される時点との間の動作サイクルの数を制御するようにプログラム可能に実現されてもよい。
【００２５】
ラッチが書込まれる時点と読出される時点との間のサイクルの数、および、所与の１シーケンス中にアクティブにされるラッチの数を、制御することにより、特定の用途向けにシンクロナイザ２０を最適化してもよい。たとえば、より高いビットエラーレート（ＢＥＲ）を許容できる用途では、メタスタビリティの解決のために割当てるサイクルをより少なくすることによってデータスループットを高めてもよい。こうすることによって、所与の１シーケンス中にアクティブにされるラッチの数を少なくすることもできる。逆に、ＢＥＲを低く保つことが望ましい用途では、メタスタビリティの解決のために割当てる動作サイクルを多くしてもよい。これに応じて、このような１シーケンスの間にアクティブにされるラッチの数は増すであろう。一般的に、制御回路２５のプログラム可能性によって、その動作を、ＢＥＲとデータスループットとの最適な兼ね合いに合わせて微調整することができる。
【００２６】
データをフリップフロップ２８に送るためにラッチ出力を選択する機能を提供することに加えて、示されている実施形態のマルチプレクサ２４は、最小遅延パディング要件も満たし得る。すなわち、マルチプレクサ２４は、信号が誤って複数の記憶素子を通って伝搬しそれによって下流での回路誤動作を生じさせる可能性がある競合状態を引起し得る高速経路を排除してもよい。マルチプレクサ２４は、所与のラッチがトランスペアレントである時点に続く動作サイクル中に所与のラッチ２１の出力を選択し得るので、マルチプレクサ２４は、さもなければ競合状態を生じさせるかもしれない信号伝搬を有効に遮断し得る。
【００２７】
シンクロナイザ２０は、直列の多段フリップフロップではなく並列の一段ラッチを用いて実現できるので、回路面積は減じられるであろう。より具体的には、フリップフロップは、一般的に２つのラッチを必要とするので、シンクロナイザ２０で使用されるラッチの数と比較すると、２倍の数のラッチを用いて直列シンクロナイザを実現することになるであろう。さらに、直列シンクロナイザの段と段の間には遅延素子が実現されることがあるので、マルチプレクサ２４が最小時間遅延パディングを実現するときには、シンクロナイザ２０と比較するとより多くの面積が占有されることになるであろう。直列シンクロナイザにおける遅延素子は、メタスタビリティの解決に貢献しないので、時間を浪費し得る。したがって、シンクロナイザ２０は、ラッチを並列データ経路において実現しマルチプレクサ２４を用いることによって、最小時間遅延パディングを提供し、メタスタビリティの解決に貢献しない回路素子の数を減じることができる。
【００２８】
上記のように、示されている実施形態のシンクロナイザ２０は、マルチプレクサ２４のＱ出力に結合されたフリップフロップ２８を含む。いくつかの実施形態において、フリップフロップ２８は、直列接続された２つのラッチ２７を有するマスタースレーブフリップフロップである。（マルチプレクサのＱ出力に接続されたＤ入力を有する）第１のラッチ２７は、Ｃｌｋ２Ｐが低い部分の間はトランスペアレントであるように配置される。第２のラッチは、Ｃｌｋ２Ｐが高い部分の間はトランスペアレントであるように配置される。いくつかの実施形態において、フリップフロップ２８はさらに、ラッチ２７のうち所与の１つのラッチにおけるデータ遷移が受信したクロック信号のレベルではなくクロックエッジに応じて発生するエッジトリガラッチとなるように、配置されてもよい。
【００２９】
図３は、シンクロナイザ２０の動作をさらに示すタイミング図である。図３に示される例は、シンクロナイザ２０の２つ以上の実施形態に適用し得る。図３は、示されているシーケンス中に各々がイネーブルにされる４つのデータ経路を有し上記フィードバック経路を固定し得るまたは調整可能な実施形態に適用し得る。図３は、５つ以上のデータ経路を有するが４つのみがイネーブルにされるシンクロナイザ２０の調整可能フィードバックの実施形態にも適用し得る。図３が適用される特定の実施形態とは関係なく、ここに示される例は、４つのラッチとしてラッチ０〜３を含むデータ経路およびそのうちの１つのみが所与の時点でアサートされる４つの選択入力Ｓｅｌ０〜Ｓｅｌ３を有するマルチプレクサの動作を含む。ラッチ０〜３は各々、受信側クロックドメインのクロック信号であるＣｌｋ２Ｐに基づいて生成されるクロックパルスＣｌｋ＿Ｌ０Ｐ〜Ｃｌｋ＿Ｌ３Ｐのうちの対応する１つを受ける。
【００３０】
図３に示されるシーケンスの反復１は、サイクルＡ中の、ラッチ０のクロック入力におけるクロックパルスＣｌｋ＿Ｌ０Ｐのアサートで始まる。ラッチ０は、このクロックパルスの受信に応じてトランスペアレントになり、このクロックパルスがローに落ちるまではトランスペアレントなままである。このクロックパルスがローに落ちた後は、ラッチ０は非トランスペアレントである。データが、ラッチ０によって、そのトランスペアレントフェーズの間に、適切なセットアップおよびホールドタイムなしで受信された場合、サイクルＡにおいて初期にラッチ０がメタステーブル状態になるであろう。しかしながら、このメタスタビリティは、サイクルＡの残りの時間およびＣｌｋ＿Ｌ０Ｐが非アクティブである後続のサイクルにおいて解決されるであろう。この特定の例では、（１）によって示されるように、Ｓｅｌ０が、Ｃｌｋ＿Ｌ０Ｐがアサートされてから３つの完全なサイクル後のサイクルＤの最初にアサートされる。したがって、メタスタビリティの解決のために、３つの完全なサイクル、すなわち、サイクルＡの始めにラッチ０が最初にトランスペアレントになった時点から、サイクルＤでデータが読出される時点までが、与えられる。
【００３１】
反復１のサイクルＢの最初に、Ｃｌｋ＿Ｌ１Ｐがアサートされることによってラッチ１がトランスペアレントになる。（２）によって示されるように、Ｓｅｌ１は、その３サイクル後の、反復２のサイクルＡでアサートされる。同様に、Ｃｌｋ＿Ｌ２Ｐは反復１のサイクルＣの間にアサートされ、（３）によって示されるように、Ｓｅｌ２は３サイクル後の反復２のサイクルＢの間にアサートされる。Ｃｌｋ＿Ｌ３Ｐは、反復１のサイクルＤの最初にアサートされ、（４）によって示されるように、Ｓｅｌ３は３サイクル後の反復２のサイクルＣでアサートされる。一般的に、図３は、データが所与の動作サイクルでラッチに書込まれ３サイクル後に同じラッチから読出されるという代表的な１つのシナリオを示している。したがって、示されているシーケンスの間において、ラッチへの書込の始まりからラッチからの読出の始まりまで３動作サイクルが経過する。この割当てられた時間の間に、最適なタイミングなしでデータが受信された場合に生じ得るラッチのメタステーブル状態を解決することができる。
【００３２】
さらに、図３のＳｅｌ０、Ｓｅｌ１、Ｓｅｌ２、およびＳｅｌ３は、１サイクル分右にシフトすることができる。これにより、各ラッチ２１にメタスタビリティの解決のために２サイクルが与えられる。２サイクル分シフトすることによってメタスタビリティの解決に３サイクルが与えられる。３サイクル分シフトすることによってメタスタビリティの解決に４サイクルが与えられる。このようにして、全回路のＢＥＲを、レイテンシの追加という代償を払って調整することができる。
【００３３】
図３に示される反復は、シンクロナイザ２０が実現されるシステムの動作中、無限に繰返される可能性がある。このシーケンスは各反復について同じままであり、したがって、データが最初にラッチされたときに生じ得るメタスタビリティの問題を解決するために各ラッチに与えられる時間の量は、実質的に同一であろう。なお、入力データは第２のクロック信号Ｃｌｋ２Ｐと関係がないので、場合によってはメタスタビリティが生じる可能性はゼロではないが、所与のラッチがトランスペアレントであるときにメタスタビリティがすべての場合に生じる訳ではない。
【００３４】
次に図４を参照すると、シンクロナイザ２０において使用されるラッチ２１の一実施形態の概略図が示されている。示されている実施形態において、ラッチ２１は、真のデータ入力Ｄと、相補入力ＤＸと、クロック入力Ｃｌｋ＿Ｐとを含む。上記のように、真の入力信号および相補入力信号は、以下でさらに詳細に説明するレベルシフタ１５から与えられる。
【００３５】
示されている実施形態および本明細書に記載の他の回路の実施形態において、「Ｐ」（たとえばＰ１）で示されるトランジスタは、ｐチャネル金属酸化物半導体（ＰＭＯＳ）トランジスタである。「Ｎ」（たとえばＮ１）で示されるトランジスタは、ｎチャネル金属酸化物半導体（ＮＭＯＳ）トランジスタである。しかしながら、本明細書に記載のさまざまな回路の実施形態は、他の種類のトランジスタでも実現し得る。したがって、本開示は、本明細書に明確に記載されている実施形態に限定されることを意図したものではない。
【００３６】
示されている実施形態のラッチ２１は、ＣｌｋＰがハイのときにトランスペアレントであるように構成される。ＣｌｋＰがハイのとき、トランジスタＮ１のゲート端子で論理ハイが受信され、論理ローがインバータＩ１を介してトランジスタＰ２に与えられる。ＣｌｋＰがローのとき、ラッチ２１は非トランスペアレントでありしたがってラッチ２１にラッチされるデータはないであろう。
【００３７】
ラッチ２１がトランスペアレントであるときにＤＸがローでＤがハイの場合、トランジスタＰ１がアクティブにされてもよい。ノードＳ１は、Ｐ１およびＰ２を通るプルアップ経路を通してＶｄｄ２に向けてプルされてもよい。トランジスタＮ４は、入力Ｄのハイに応じてアクティブにされてもよい。ノードＳ２は、Ｎ３およびＮ４を通して接地に向けてローにプルされてもよい。相互結合されたインバータＩ３およびＩ４を含むラッチ２１の記憶素子は、前に記憶されたデータを上書きし、ＣｌｋＰがローに落ちた後にＳ１でハイを維持しＳ２でローを維持してもよい。ＤＸがハイでＤがローの場合、Ｓ１がＮ１およびＮ２を通してローにプルされノードＳ２がＰ３およびＰ４を通してハイにプルされてもよい。ラッチ２１の出力は、ノードＳ２からインバータＩ２を通して伝達されてもよく、一旦入力データが記憶素子に書込まれるとＤ入力と論理的に等価であってもよい。
【００３８】
ラッチ２１において真のデータと相補データを受信する１つの利点は、データを記憶素子に書込む間、回路の一部分が、記憶ノードを、回路の他の部分が他の記憶ノードを接地に向かって引上げ始めるのとほぼ同時に、Ｖｄｄ２に向けて引下げ始めることにある。真のデータ値と相補データ値をほぼ同時に受信するために、レベルシフタ１５のさまざまな実施形態がラッチ２１とともに使用されてもよい。次に図５を参照すると、レベルシフタ１５の一実施形態を示す論理図が示されている。
【００３９】
図５の例において、レベルシフタ１５は、生成回路１３から真のデータＤと相補データＤＸとを受けるように結合されている。レベルシフタ１５のトランジスタは、Ｖｄｄ２が供給される受信側電圧ドメインにあり、生成回路１３のトランジスタは、Ｖｄｄ１が供給される送信側電圧ドメインにある。いくつかのインスタンスにおいてＶｄｄ１がＶｄｄ２よりも大きくてもよく、その他のインスタンスにおいてＶｄｄ２がＶｄｄ１よりも大きくてもよい。したがって、図５に示される回路のトランジスタおよび以下で述べる他のレベルシフタの実施形態のトランジスタの大きさは、論理電圧を所望の通りにシフトアップまたはシフトダウンするように定められてもよい。
【００４０】
示されている実施形態のレベルシフタ１５は、ＮＯＲゲートとしてＮＯＲ１およびＮＯＲ２を含むセット−リセット（ＳＲ）ラッチを実現する。記憶素子をＳＲラッチとして実現することにより、クローバー（crowbar）電流を引起すことなく状態を書込む（または上書きする）ことができる。さらに、この回路は、状態ノードＳ１およびＳ２の切替えがほぼ同時に（たとえば一方の切替えと他方の切替えとの間が１０ピコ秒以内）生じるように配置されてもよい。このため、（インバータＩ７およびＩ８を介してそれぞれ送信される）レベルシフタ１５のＤ出力およびＤＸ出力は、実質的に同時に切替わるであろう。したがって、レベルシフタ１５からＤ出力およびＤＸ出力を受けるように結合されたラッチ２１は、その入力の切替えをほぼ同時に検出し得るので、上記利点を提供し得る。
【００４１】
図６Ａは、図５に示されるレベルシフタ１５と論理的に等価であるレベルシフタの一実施形態を示す概略図である。示されている実施形態において、レベルシフタ１５Ａは、第１および第２のＮＯＲゲートによって形成されている状態素子を含む。第１のＮＯＲゲートは、トランジスタＮ５、Ｎ６、Ｐ５、およびＰ６によって形成されている。第２のＮＯＲゲートは、Ｎ７、Ｎ８、Ｐ７、およびＰ８によって形成されている。回路の真の出力はインバータＩ１０を介して与えられ、回路の相補出力はインバータＩ９を介して与えられる。レベルシフタ１５のトランジスタの大きさは、入力信号を、より高い電圧のドメイン（Ｖｄｄ２＞Ｖｄｄ１のとき）にシフトするように、または、より低い電圧のドメイン（Ｖｄｄ２＜Ｖｄｄ１のとき）にシフトするように、定めればよい。
【００４２】
レベルシフタ１５Ａのこの配置により、内部状態ノードＳ１およびＳ２がある状態から別の状態に切替わる間にクローバー電流が発生するのを防止することができる。さらに、この回路の配置により、真の出力の切替え時間と相補出力の切替え時間との差を、対応する入力が互いに異なる時間に到達した場合に、減じることもできる。
【００４３】
（Ｐ５、Ｐ６、Ｎ５、およびＮ６を含む）回路の左半分は真の入力ノードによって制御され、（Ｐ７、Ｐ８、Ｎ７、およびＮ８を含む）回路の右半分は相補入力ノードによって制御される。図５に示されるように生成回路１３と対にされたとき、新たなデータは、真の入力ノードに到達する少し前に相補入力ノードに到達するであろう。
【００４４】
次にこの回路の動作について、初期状態から説明する。この初期状態では、ノードＳ１および真の入力ノードは論理ロー状態であり、ノードＳ２および相補入力ノードは各々論理ハイ状態である。Ｓ１および真の入力ノードがいずれもローのとき、Ｐ５およびＰ６はいずれもアクティブでありノードＳ２を論理ハイ状態にプルする。Ｓ２がハイのとき、トランジスタＮ７はアクティブでありＳ１をローにプルする。相補入力ノードがハイのとき、トランジスタＮ８はアクティブでありこれもＳ１をローにプルする。
【００４５】
論理ローが相補入力ノードに到達したとき、この論理ローは、トランジスタＰ８をアクティブにしトランジスタＮ８を非アクティブにし得る。ノードＮ２は最初、トランジスタＮ７が依然としてアクティブなのでロー状態のままである。論理ハイが真の入力ノードに到達したとき、トランジスタＮ５がアクティブにされトランジスタＰ６が非アクティブにされる。トランジスタＰ６が非アクティブにされたことにより、Ｐ５およびＰ６を通るプルアップ経路が遮断され、Ｎ５がアクティブにされたことにより、Ｓ２と接地との間にプルダウン経路が形成される。したがって、Ｓ２がローにプルされ、よってＰ７がアクティブにされる。Ｐ７がアクティブにされると、Ｓ１とＶｄｄ２との間にプルアップ経路が形成される。その原因の一部は、相補入力ノードでローを受けたときにＰ８がアクティブにされたことにある。Ｓ１からＶｄｄ２までのプルアップ経路はＳ２がローにプルされるまでアクティブにされないので、真の出力ノードの切替えと相補出力ノードの切替えとの間の時間量は、対応するそれぞれの入力の受信間の時間量と比較して少なくなるであろう。
【００４６】
上記のようにＳ１に論理ハイを書込みＳ２に論理ローを書込んだ後に、相補入力ノードが論理ハイを受け、その後まもなく真の入力ノードが論理ローを受けるであろう。相補入力ノードの論理ハイに応じて、トランジスタＰ８が非アクティブにされ、トランジスタＮ８がアクティブになりＳ１をローにプルする。Ｓ１がローにプルされると、トランジスタＰ５がアクティブにされる。真の入力がローに落ちたとき、トランジスタＰ６がアクティブにされ、よって、Ｓ２とＶｄｄ２との間にプルアップ経路が形成される。この段落に記載の動作において、相補出力ノードは、真の出力ノードの少し前に切替わるであろう。しかしながら、Ｎ８をアクティブにする際の遅延が十分に大きい場合、上記切替え時間の差は、Ｎ８が完全にアクティブになりＳ１をローにプルする前に真の入力ノードがローに落ちるのであれば、最小になるであろう。
【００４７】
図６Ｂは、レベルシフタの別の実施形態の概略図である。レベルシフタ１５Ａと同様、レベルシフタ１５Ｂは（Ｎ１０、Ｎ１２、Ｐ９、およびＰ１０によって形成されている）第１のＮＯＲゲートと、（Ｎ１４、Ｎ１６、Ｐ１１、およびＰ１２によって形成されている）第２のＮＯＲゲートとを含む。レベルシフタ１５Ｂはまた、４つの追加のＮＭＯＳトランジスタＮ９、Ｎ１１、Ｎ１３、およびＮ１５と、２つの追加のインバータＩ１３およびＩ１４とを含む。この追加の装置の効果は、図６Ａに示される実施形態と比較して、上記出力それぞれの切替えと切替えの間の時間量が短縮されることであろう。これは、少なくとも一部、内部状態ノードを先に説明した実施形態よりも早くプルアップすることによって得られるであろう。
【００４８】
プルアップ時間はトランジスタＮ９およびＮ１５によって短縮することができる。相補入力ノードがハイに遷移した場合、トランジスタＮ９はオンになりノードＳ２はおよそ電圧Ｖｄｄ２−Ｖｔｈまでプルアップされる。Ｖｔｈはトランジスタのしきい値電圧である。続いてＰ９およびＰ１０がアクティブにされると、残余分としてＳ２は電圧Ｖｄｄ２までプルアップされるであろう。同様に、論理ハイが真の入力ノードに到達したとき、Ｎ１５はアクティブにされＳ１をおよそ電圧Ｖｄｄ２−Ｖｔｈまでプルアップする。トランジスタＰ１１およびＰ１２がアクティブにされたことに応じて、残余分としてノードＳ１は電圧Ｖｄｄ２までプルアップされるであろう。トランジスタＮ９およびＮ１５はそれぞれに結合された内部状態ノードを部分的におよそＶｄｄ２−Ｖｔｈまでプルアップするので、プルアップ動作の残りの部分は、それぞれの状態ノードに結合されたＰＭＯＳプルアップ経路が一旦アクティブにされると、より速く生じるであろう。
【００４９】
内部状態ノードのプルダウンは、トランジスタＮ１６およびＮ１０を用いて行なってもよい。相補入力ノードがハイに遷移すると、トランジスタＮ１６がアクティブにされる。トランジスタＮ１３は相補入力ノードの遷移に先立ってオンになっている。なぜならＳ１もハイであるからである（Ｓ１からのハイは、Ｉ１１によってローに反転され、Ｉ１４によって再度反転され、これによってＮ１３のゲートが駆動される）。よって、トランジスタＮ１６がアクティブにされると、Ｓ１と接地との間にプルダウン経路が設けられ、結果としてＰ９もアクティブにされる。相補ノードがハイに遷移することによって、Ｐ１２も非アクティブになり、Ｖｄｄ２とノードＳ１との間のプルアップ経路を遮断し、よって、クローバー電流が防止される。真の入力ノードがローに落ちると、Ｐ１０がアクティブにされる。よって、Ｓ２がＶｄｄ２に向けてプルアップされ、それにより、Ｎ１４がアクティブになり、Ｓ１と接地との間に第２のプルダウン経路が形成される。Ｓ１がローに落ちるとＩ１１は論理ハイを出力し、これは再びＩ１４によって論理ローに反転される。Ｉ１４の出力がローに落ちると、トランジスタＮ１３は非アクティブにされるが、Ｓ１はそれでもアクティブにされたＮ１４によってローに保持される。
【００５０】
Ｓ２をプルダウンすることも同様に実現し得る。真の入力ノードがハイに遷移した時点で、Ｎ１１はアクティブであり、よって、Ｎ１０がアクティブになることによりＳ２と接地との間にプルダウン経路が形成される。そうすると、結果としてＰ１１がアクティブにされ、Ｓ１とＶｄｄ２との間にプルアップ経路が形成される。Ｐ１２は真の入力がハイに遷移するのに伴って相補入力がローに落ちることによりアクティブにされるからである。トランジスタＮ２がアクティブにされ、Ｓ１がハイにプルされたことに応じてＳ２と接地との間の第２のプルダウン経路を形成する。一方、Ｓ２のローはＩ１２によってハイに反転されインバータＩ１３によって再びローに反転され、それによってＮ１１を非アクティブにする。その後、Ｓ２は、入力の次の遷移まで、Ｎ１２によってローに保たれる。
【００５１】
図６Ｃは、レベルシフタ回路の第３の実施形態を示す。レベルシフタ１５Ｃは先に述べた実施形態の特徴を取入れている。しかしながら、レベルシフタ１５Ｃでは、出力信号は１つのノード（この場合はＳ２であるが、出力がＳ１から得られる同様の実施形態を構築することが可能である）から得られる。１つのノードから得られる出力を組合わせた、レベルシフタ１５Ｂの説明で導入されている追加の装置がない、レベルシフタの実施形態も、可能であり意図されている。
【００５２】
レベルシフタ１５Ｃの相補出力ＤＸは、この実施形態のノードＳ２と論理的に等価である。したがって、Ｓ２はインバータＩ１６およびＩ１７を通して相補出力ノードに結合される。ノードＳ２はＩ１５および反転されていないパスゲートＰＧ１を通して真の出力ノードに結合される。１つの出力経路における２つのインバータと他の経路におけるパスゲートとインバータの組合せを用いることによって、インバータを含むがパスゲートは含まない実施形態に関連する遅延を短縮してもよい。よって、Ｓ２から真の出力への伝搬遅延とＳ２から相補出力への伝搬遅延との差はごくわずかであろう。さらに、レベルシフタ１５Ｃのように出力回路が配置される実施形態において、プロセス、電圧、および温度のばらつきは、真の出力と相補出力との間の関連する切替え時間の差に影響しにくいであろう。
【００５３】
上記のように、先に述べたさまざまなレベルシフタの実施形態は、これもまた先に述べたラッチ２１とともに使用すべく最適化されてもよい。より具体的には、真の信号の切替えと相補信号の切替えとの時間差を最小にすることによって、本明細書に開示されるレベルシフタのうちの１つからラッチ２１が受けるときのメタスタビリティの解決に役立ち得る。上記レベルシフタ回路のうちのいずれかを使用する集積レベルシフタ／ラッチ回路の実施形態もしたがって可能であり意図されている。
【００５４】
次に図７を参照すると、シンクロナイザを動作させる方法の一実施形態が示されている。本明細書に記載の方法７００は、シンクロナイザ２０の任意の変形およびこれを実現し得るさまざまな回路に対して使用し得る。さらに、方法７００は、本明細書では明確に記載されていないハードウェアを用いて実現してもよい。
【００５５】
方法７００は、シンクロナイザの第１のラッチにクロックパルスを与えることで始まる（ブロック７０５）。このラッチは、シンクロナイザの２つ以上の対応する並列データ経路において実現される２つ以上のラッチのうちの１つである。他のすべてのデータ経路のラッチを除いて、第１のラッチは、クロックパルスを受信し得る。第１のラッチは、クロックパルスを受けるとトランスペアレントになり、よって、その入力で受信したデータをラッチすることができる。
【００５６】
選択信号がマルチプレクサに与えられて、読出すべき次のラッチの出力が、マルチプレクサのアクティブな入力として選択される（ブロック７１０）。読出すべき次のラッチの出力の選択は、第１のラッチがクロックサイクルを受信するのと同時に生じる。読出すべき次のラッチは、第１のラッチとは異なっており、そこに書込まれた前の値を格納しているであろう。読出すべき次のラッチの出力が選択されると、そこに前に書込まれていたデータが、マルチプレクサを通して送られるであろう。選択されたラッチは、自身の状態として、データが最適なセットアップおよびホールドタイムなしで受信された場合に生じ得るメタステーブルな状態を、解決済であろう。
【００５７】
第１のクロックパルスがローに低下すると、それに続いて、他の並列データ経路のラッチを除いて、第２のラッチに、第２のクロックパルスが与えられる（ブロック７１５）。第２のラッチもこの時点でデータをラッチするであろう。一方、第１のラッチは前のクロックサイクルから発生しているメタスタビリティの問題を解決しているであろう。第２のクロックパルスのアサートと同時に、第２の選択信号をアサートして、マルチプレクサに、第２のラッチとは異なる別の読出すべきラッチの出力を、選択させてもよい（ブロック７２０）。前にラッチにラッチされていたデータは、第２の選択信号がアサートされたときにマルチプレクサを通して送られるであろう。
【００５８】
シンクロナイザに含まれるデータ経路が２つのみである場合または利用できる３つ以上のデータ経路のうちの２つのみをシンクロナイザが使用している場合（ブロック７２５でＮＯ）、この方法はブロック７０５に戻る。シンクロナイザの動作において３つ以上のデータ経路を使用する場合、この方法はブロック７３０に進み別のクロックパルスが、専ら別のデータ経路のラッチにのみ与えられる。ラッチは、クロックパルスに応じてデータをラッチし得る。同時に、選択信号が、さらに他の読出すべきラッチの出力を選択するために、マルチプレクサに与えられてもよい（ブロック７３５）。この方法は７２５に戻ってもよい。その他のラッチ各々に対し、ブロック７３０および７３５を繰返してもよい。シンクロナイザが、データ経路各々におけるラッチへの書込とラッチからの読出とを一巡すると、方法７００はブロック７０５に戻りプロセス全体を繰返してもよい。
【００５９】
図８は、第１の電圧／クロックドメインから第２の電圧／クロックドメインに信号を送信する方法の一実施形態を示すフロー図である。方法８００は、上記回路／ハードウェアの実施形態のうちいずれか、および本明細書では明確に示されていない実施形態に対して使用し得る。
【００６０】
方法８００は、第１のクロック／電圧ドメインのシングルエンドデータ信号を、真の信号および相補信号を有する差動データに変換することで始まる（ブロック８０５）。差動データへの変換後、真の信号および相補信号は、第１のクロック／電圧ドメインから第２のクロック／電圧ドメインに送られてもよい（ブロック８１０）。第１および第２のクロック／電圧ドメインそれぞれの電源電圧が互いに異なると仮定すると、真の信号および相補信号のうちの少なくとも一方の電圧レベルをシフトすればよい（ブロック８１５）。いくつかの実施形態において、これら２つの電圧ドメインは共通の接地を共有してもよく、したがって、シフトはロー信号ではなくハイ信号に対して行なわれてもよい。
【００６１】
このレベルシフトに続いて、差動データ信号が受信されシンクロナイザのラッチ回路にラッチされてもよい（ブロック８２０）。ラッチ回路およびラッチ回路が実現されているシンクロナイザは、適量のセットアップおよびホールドタイムなしで差動データ信号が受信された場合に生じ得るメタスタビリティを解決すべく最適化されてもよい。ラッチは、シンクロナイザにおいて使用されているＭ個の並列データ経路のうちの１つにおいて実現されてもよく、メタスタビリティを解決するためにＭ個のクロックサイクルが割当てられてもよい。Ｍ個のクロックサイクルの経過後、シンクロナイザはデータをシングルエンドデータとして出力してもよく（ブロック８２５）、その後このデータは、第２のクロック／電圧ドメイン内の機能ユニットによりさらに処理されるために受信されてもよい（ブロック８３０）。
【００６２】
なお、本明細書に開示されるシンクロナイザは、信号がある電圧ドメインから別の電圧ドメインに渡ることなくあるクロックドメインから別のクロックドメインに渡る実施形態で使用されてもよい。このような実施形態では、レベルシフタ１５および１５Ａ〜１５Ｃならびにその変形と同様の回路を、ラッチ２１等のラッチまたはその他適切なラッチ回路とともに使用することにより、そうでない場合にレベルシフト動作を実行することなく、メタスタビリティの解決を最適化し得る。
【００６３】
本発明を特定の実施形態を参照しながら説明してきたが、これら実施形態は例示であって発明の範囲はそれに限定されないことが理解されるであろう。記載されている実施形態の変形、修正、追加、および改善が可能である。これら変形、修正、追加、および改善は、以下の請求項で詳述される発明の範囲に含まれるであろう。
【図１】
0006397829.tif 000002
【図２】
0006397829.tif 000003
【図３】
0006397829.tif 000004
【図４】
0006397829.tif 000005
【図５】
0006397829.tif 000006
【図６Ａ】
0006397829.tif 000007
【図６Ｂ】
0006397829.tif 000008
【図６Ｃ】
0006397829.tif 000009
【図７】
0006397829.tif 000010
【図８】
0006397829.tif 000011