JP2016509810A - メタスタビリティ解決のための回転シンクロナイザ回路 - Google Patents

メタスタビリティ解決のための回転シンクロナイザ回路 Download PDF

Info

Publication number
JP2016509810A
JP2016509810A JP2015556166A JP2015556166A JP2016509810A JP 2016509810 A JP2016509810 A JP 2016509810A JP 2015556166 A JP2015556166 A JP 2015556166A JP 2015556166 A JP2015556166 A JP 2015556166A JP 2016509810 A JP2016509810 A JP 2016509810A
Authority
JP
Japan
Prior art keywords
latches
latch
data
multiplexer
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015556166A
Other languages
English (en)
Other versions
JP6397829B2 (ja
JP2016509810A5 (ja
Inventor
マスレイド,ロバート・ピィ
バヒドサファ,アリ
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2016509810A publication Critical patent/JP2016509810A/ja
Publication of JP2016509810A5 publication Critical patent/JP2016509810A5/ja
Application granted granted Critical
Publication of JP6397829B2 publication Critical patent/JP6397829B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/05Electric or magnetic storage of signals before transmitting or retransmitting for changing the transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/005Correction by an elastic buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Logic Circuits (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

メタスタビリティ解決のための回転シンクロナイザが開示される。シンクロナイザは、各々が共通データ入力を通してデータを受信するように結合されたM+1個からなる複数のラッチを含む。シンクロナイザはさらにマルチプレクサを含み、マルチプレクサは、各々がM+1個のラッチのうちの対応する1つのラッチの出力からデータを受信するように結合されたM+1個の入力と、出力とを有する。マルチプレクサは、上記マルチプレクサの入力のうちの、上記出力に結合する1つの入力を選択するように構成される。制御回路は、マルチプレクサに、M+1個の連続するクロックパルスに応答してM+1個のラッチの出力を順次選択させるように構成され、さらに、M+1個のラッチに、共通データ入力を通して受信されたデータを順次ラッチさせるように構成される。

Description

背景
1.技術分野
本開示は集積回路に関し、より具体的には、あるクロックドメインから別のクロックドメインに送られる信号を同期させるための回路に関する。
2.関連技術の説明
現代の集積回路は、互いに異なるクロックドメインおよび/または電圧ドメインにある複数の機能ブロックを含むことが多い。互いに異なるクロックドメインにある回路は共通クロック信号を共有するのではなく、それぞれのクロック信号は互いに異なる周波数で動作することがある。互いに異なる電圧ドメインにある回路は、互いに異なる電圧の電力を受けることがある。動作クロック周波数および受信電圧の相違にもかかわらず、互いに異なるクロックドメインおよび/または電圧ドメインにある回路が、相互に通信するように配置されることがある。このように、さまざまな種類の回路が、あるクロックおよび/または電圧ドメインから別のクロックおよび/または電圧ドメインに信号を転送するために設けられることがある。
互いに異なる周波数で動作する第1および第2のクロックドメイン間での信号の送信のために、シンクロナイザを使用してもよい。シンクロナイザは、直列接続されたマスタースレーブフリップフロップのチェーンを用いて実現してもよい。これらクロックドメインは互いに異なる周波数で動作し得るので、送信側のクロックドメインから受信したデータ信号と、受信側のクロックドメインにおけるクロック信号との間に、保証された関係はない。データ信号が、セットアップおよびホールドタイム要件が満たされていない状態で届いた場合、第1のフリップフロップがメタステーブル状態になる可能性がある。メタステーブル状態では、(たとえばフリップフロップ内の)状態素子は、論理1も論理0も記憶しない不安定平衡の状態となり得る。数クロックサイクルを経て、シンクロナイザを実現するために使用される直列接続されたフリップフロップのチェーンは、メタスタビリティを解決して、このチェーンにおける最後のフリップフロップから論理1または論理0を出力することができる。
互いに異なる電源電圧の電力を受信する第1および第2の電圧ドメイン間での信号の送信のために、レベルシフタ回路を使用してもよい。レベルシフタ回路は、第1の電圧振幅を有する論理信号を受信して、それに対応する、第2の電圧振幅を有する論理信号を出力してもよい。あるレベルシフタでは、第1の電圧振幅が第2の電圧振幅よりも大きい場合がある。それ以外のレベルシフタでは、第1の電圧振幅が第2の電圧振幅よりも小さい場合がある。
開示の概要
メタスタビリティ解決のための回転シンクロナイザが開示される。一実施形態において、シンクロナイザは、各々が共通データ入力を通してデータを受信するように結合されたM+1個からなる複数のラッチを含む。シンクロナイザはさらにマルチプレクサを含み、マルチプレクサは、各々がM+1個のラッチのうちの対応する1つのラッチの出力からデータを受信するように結合されたN個の入力と、出力とを有する。マルチプレクサは、上記マルチプレクサの入力のうちの、上記出力に結合する1つの入力を選択するように構成される。制御回路は、マルチプレクサに、N個の連続するクロックパルスに応答してM+1個のラッチの出力を順次選択させるように構成され、さらに、M+1個のラッチに、共通データ入力を通して受信されたデータを順次ラッチさせるように構成される。
一実施形態において、方法は、マルチプレクサの入力を順次選択することを含み、マルチプレクサの入力は各々、M+1個のラッチのうちの対応する1つのラッチの出力に結合され、マルチプレクサはN個の入力を含み、これら入力は、一回につき一つ選択される。この方法はさらに、M+1個のラッチのうちの2つ以上のラッチにデータを順次ラッチすることを含み、M+1個のラッチは各々、共通データ入力を通してデータを受信するように結合される。M+1個のラッチは各々、その出力がマルチプレクサへの入力として選択されるときのクロックパルスと同じクロックパルス中に、2つ以上の連続するクロックパルスのうちの特定の1つのクロックパルスを受信したことに応じてデータをラッチするように構成され、データは、M+1個のラッチのうちの2つ以上のラッチに、一回につき一つのラッチにラッチされる。
本開示の他の局面は、以下の詳細な説明を読み添付の図面を参照すれば明らかになるであろう。これら図面の簡単な説明は以下の通りである。
複数の電圧ドメインおよび複数のクロックドメインを有する集積回路(IC)の一実施形態のブロック図である。 シンクロナイザの一実施形態の図である。 シンクロナイザの一実施形態の動作を示すタイミング図である。 シンクロナイザにおいて使用されるラッチの一実施形態の概略図である。 レベルシフタの一実施形態の論理図である。 レベルシフタの一実施形態の概略図である。 レベルシフタの別の実施形態の概略図である。 レベルシフタの第3の実施形態の概略図である。 シンクロナイザを動作させる方法の一実施形態を示すフロー図である。 第1の電圧/クロックドメインから第2の電圧/クロックドメインに信号を送信する方法の一実施形態を示すフロー図である。
本明細書において開示される主題には、さまざまな変形および代替形態が可能であるが、その具体的な実施形態を例示のために図面に示すとともに本明細書で詳細に説明する。しかしながら、その図面および説明は、開示されている特定の形態への限定を意図したものではなく、それとは逆に、以下の請求項によって定められる本開示の精神および範囲に含まれる、すべての変形、均等物、および代替物をカバーしようとするものであることが、理解されるはずである。
詳細な説明
ここで図1を参照すると、集積回路(IC)の一実施形態のブロック図が示されている。なお、示されているこの実施形態のIC10は代表的な実施形態であり、したがって他の実施形態が可能であり意図されている。ここではIC10のいくつかの構成要素が説明のために示されているが、本明細書では明確に示されても説明されてもいない他の構成要素がIC10に含まれ得ることが理解されるはずである。また、いくつかの実施形態においてクロックおよび電圧ドメインは必ずしも同時に同じ場所に存在する訳ではないが、ここでそのように示されているのは説明のためである。
第1の電源電圧Vdd1は、示されている実施形態において、クロック/電圧ドメイン#1(「第1のドメイン」)の回路に与えられる。同様に、クロック/電圧ドメイン#2(「第2のドメイン」)の回路は、第2の電源電圧Vdd2を受けるように結合されている。これら2つの電源電圧は、さまざまな実施形態において、互いに異なっていてもよい。いくつかの実施形態において、これら2つの電源電圧は、所望の電力および/または性能レベルに合うように、互いに独立して調整可能であってもよい。したがって、あるときには第1および第2の電源電圧が互いに異なりそれ以外のときには第1および第2の電源電圧が同一である実施形態が可能であり意図されている。第1および第2の電源電圧が実質的に固定された値に設定されている実施形態も可能であり意図されている。
示されている実施形態のIC10は、クロック/電圧ドメイン#1にある第1の機能ユニット12を含む。第2の機能ユニット24はクロック/電圧ドメイン#2に含まれている。なお、いくつかの実施形態において、クロックおよび電圧ドメインは必ずしも同時に同じ場所に存在する訳ではないが、ここでそのように示されているのは説明のためである。クロック/電圧ドメイン#1は、(任意の適切な種類のクロック生成回路であればよい)クロックジェネレータ11によって生成された第1のクロック信号Clk1Pに従って動作してもよい。すなわち、クロック/電圧ドメイン#1内の同期回路は、第1のクロック信号に同期されてもよい。クロック/電圧ドメイン#2の同期回路は、(クロックジェネレータ11と同様であってもよい)クロックジェネレータ23によって生成された第2のクロック信号Clk2Pによって同期が取られてもよい。第1および第2のクロック信号は、互いに異なる周波数で動作してもよい。いくつかの実施形態において、第1および/または第2のクロック信号の周波数は、所望の性能レベルまたは所望の消費電力レベルに合わせて互いに独立して調整可能であってもよい。よって、いくつかの実施形態において、あるときには第1および第2のクロック信号それぞれの周波数が等しくてもよくそれ以外のときにはこれら周波数が異なっていてもよい。これら2つのクロック周波数が互いに異なる値に固定されている実施形態も可能であり意図されている。
機能ユニット12は、IC10の動作中に、データを機能ユニット24に送信してもよい。これら2つの機能ユニットは互いに異なるクロックおよび電圧ドメインにあるので、クロック/電圧ドメイン#1内の機能ユニット12から送られる信号は、クロック/電圧ドメイン#2内の機能ユニット24による受信に合わせて調節される。IC10において、機能ユニット12は、機能ユニット24が受信するデータを搬送するN+1個からなる複数のデータ信号(Nは整数)D0〜DNを送信してもよい。これら信号は(真の論理値を有する)シングルエンド信号として機能ユニット24に送信される。IC10は、機能ユニット12から受けたシングルエンド信号を受信してこれら信号を真の論理値および相補論理値双方を有する差動信号に変換するように結合された、N+1個からなる複数の生成回路(Gen)13を含む。たとえば、第1の生成回路13は、真の論理値のD0を受信するように結合され、かつ、クロック/電圧ドメイン#1とクロック/電圧ドメイン#2との間の境界を超えて送信するために真の論理値(D0)と相補論理値(DX0)とを生成するように構成される。
クロック/電圧ドメイン#2において、これら差動信号は対応するレベルシフタ(LS)15によって受信されてもよい。これら2つのドメインが受信する電源電圧は互いに異なり得るので、論理信号の電圧振幅(すなわち論理ハイと論理ローとの差)も異なり得る。各レベルシフタ15はしたがって、第1のドメインから受信した信号の電圧レベルを、第2のドメインでの動作に適したレベルにシフトしてもよい。この特定の実施形態において、これら2つのドメインは共通の接地ノード(または基準ノード)を共有し、よって、論理0の電圧レベルはこれら2つのドメインで同一であってもよい。しかしながら、クロック/電圧ドメイン#1における論理1の論理レベルは電源電圧Vdd1とほぼ同一であってもよく、クロック/電圧ドメイン#2における論理1は電源電圧Vdd2とほぼ同一の電圧レベルを有していてもよい。したがって、各レベルシフタ15は、第1のドメインから受けた約Vdd1の論理1を、約Vdd2の論理1に変換してもよい。加えて、以下でさらに説明するように、各レベル15を、信号がクロック/電圧ドメイン#2で十分なセットアップ/ホールドタイムなしで受信されるときに生じ得るメタスタビリティを解決するために用いられる特定の種類のラッチとともに使用するために、最適化してもよい。
示されている実施形態の各レベルシフタ15は、第2のドメインに適した電圧レベルの真の論理値および相補論理値を有する差動信号を出力してもよい。レベルシフタ15の所与のインスタンスによって出力される差動信号は、シンクロナイザ20の対応するインスタンスによって受信されてもよい。各シンクロナイザ20は、多数のラッチ回路を含んでいてもよく、第1のドメインから受信した信号を、第2のドメインのクロック信号(Clk2P)と同期させるために使用されてもよい。先に述べたように、第1のドメインのクロック周波数Clk1Pは、第2のドメインのクロック信号の周波数と異なり得る。このため、各シンクロナイザ20において使用されるラッチを用いて、適量のセットアップ/ホールドタイムを考慮せずに信号が受信されたときに生じ得るメタスタビリティの問題を解決してもよい。加えて、各シンクロナイザ20はまた、差動信号をシングルエンド信号に戻す変換を行なってもよい。各シンクロナイザ20の出力は、最初に機能ユニット12から送信された信号の真の論理値に対応する論理値を有してもよい。各シンクロナイザ20から出力される信号は、機能ユニット24によって受信されてもよい。
図2は、シンクロナイザの一実施形態の図である。示されている実施形態において、シンクロナイザ20は、各々が共通の(すなわち同一の)入力29からデータを受信するように結合された複数のラッチ21を含む。示されている実施形態において、シンクロナイザ20は、M+1個のラッチ21を含み、Mは少なくとも1である整数である。ラッチ21各々の出力は、マルチプレクサ24の対応する入力に結合される。マルチプレクサ24も、対応する数の選択信号を受信するように結合され、この実施形態ではワンホット(one-hot)マルチプレクサとして実現される。このため、所与の時点で、ラッチ出力1つのみが、データをマルチプレクサ24のQ出力に送るために選択される。
ラッチ21は各々、その入力でクロックパルスを受信したことに応じてデータをラッチしてもよい。本明細書で使用する、動詞として用いるときの「ラッチ」という用語は、記憶回路がトランスペアレント(transparent)でありしたがってデータを受入れることができるときにデータをこの記憶回路に入力することであると定義し得る。本明細書で使用する「トランスペアレント」という用語は、記憶素子の、データをこの記憶素子に書込むことができ先に記憶されているデータを上書きしてもよい状態を意味し得る。これに対し、「非トランスペアレント(non-transparent)」は、記憶素子の、たとえ新たなデータがそのデータ入力にあってもこの新たなデータを現在記憶されているデータに上書きできない状態を意味し得る。名詞として用いるときの「ラッチ」という用語は、1つの段を有する、クロックで制御される(clocked)記憶素子であると定義し得る。本明細書に記載のクロック信号は、一状態のラッチがフリップフロップとして機能できるようショートパルス(たとえばデューティサイクルが50%未満)であってもよい。すなわち、ラッチは、クロックがハイに遷移したときにデータをラッチしラッチした値をその出力においてこのサイクルの残りの間(クロックが再びローに低下するときを含む)保持してもよい。よって、本明細書に記載のラッチは、異なる2つの段を有する(直列接続された2つのラッチで構成されてもよい)記憶素子としてここで定義し得る従来のフリップフロップと区別されるものであってもよい。
シンクロナイザ20は、任意の所与の時点でラッチ21のうちの1つのみがトランスペアレントであるように配置される。加えて、シンクロナイザ20は、そのラッチ21が、循環する順番で、言換えると繰返しシーケンスに従って、トランスペアレントになるように配置される。たとえば、ラッチ0、ラッチ1、ラッチ2、およびラッチ3として示される、ラッチ21の4つのインスタンスを有する実施形態では、最初にトランスペアレントになるのがラッチ0で他の3つのラッチが非トランスペアレントなままであってもよい。次にトランスペアレントになるラッチがラッチ1でラッチ0、ラッチ2、およびラッチ3が非トランスペアレントなままであってもよい。これに続いて、ラッチ2がトランスペアレントになりそれ以外の3つのラッチが非トランスペアレントなままで、その後ラッチ3がトランスペアレントになりそれ以外の3つのラッチが非トランスペアレントなままであってもよい。次にこのシーケンスが再びラッチ0から繰返されてもよい。シンクロナイザ20はしたがって、共通入力29とマルチプレクサ24の出力Q(以下で説明する)との間に並列接続された複数のデータ経路を有するものであるとみなしてもよく、任意の所与の時点では1つのデータ経路のみのラッチ回路がアクティブであり、データ経路それぞれのラッチ回路は繰返しシーケンスに従ってアクティブにされる。また、シンクロナイザ20の構造は、データが所与の場所(この場合ラッチ21)に順番に書込まれその後同じ場所から同じ順番で読出される先入れ先出し(FIFO)メモリと同様のものであるとみなしてもよい。ラッチ21は各々、制御回路25からラッチのクロック入力に出力された対応する論理「1」によってアクティブにされてもよい。たとえば、制御ロジック25は、第1のサイクルにおいてClk_L0P上の論理「1」をラッチ0に出力してもよく、一方で論理「0」をその他のラッチ各々のクロック入力に出力してもよい。論理「1」は、Clk2Pの次の各サイクルで1つのラッチのクロック入力から次のラッチのクロック入力に進んでもよい。所与のシーケンス中にアクティブにされるラッチの総数は、制御ロジック25内の調整可能なフィードバックループの設定に応じて決まるであろう。調整可能なフィードバックループの長さに応じて、このループにおける論理「1」は、M、M−1…2、または1つのラッチ位置を通って循環するであろう。
共通入力29を通して受信された入力データは第2のクロック信号Clk2Pと同期が取られていないので、このデータを搬送する信号は、適量のセットアップ/ホールド時間なしでラッチ21のうちのトランスペアレントなラッチの入力に到達し得る。したがって、ラッチ21のうちのトランスペアレントなラッチは、少なくとも最初は入力された論理値を正しく解釈することができずメタステーブル状態になる可能性がある。しかしながら、このラッチが非トランスペアレントである残りのクロックサイクルを通して、同じラッチ21がこのメタスタビリティを解決し受信データが特定の論理値であると判断することができる。一般的に、上記繰返しシーケンスの所与の数のクロックサイクルの間に、特定のラッチが、特定のクロックサイクルのうちの1つでデータをラッチしてもよく、発生したメタスタビリティを残りのクロックサイクルで解決してもよい。以下で述べるように、データが特定のラッチに書込まれる時点と、(マルチプレクサにその出力を選択させることによって)この特定のラッチから読出される時点との間のクロックサイクルの数は、調整可能であってもよい。
ラッチ21は、制御回路25の制御の下でトランスペアレントまたは非トランスペアレントになってもよい。具体的には、制御回路25はクロックパルスを順次ラッチ21に与えるように構成される。第1のラッチ21は第1のクロックパルスClk_L0Pを制御回路25から受信するように結合され、(M+1)番目のラッチはクロックパルスClk_LMPを制御回路25から受信するように結合される。さらに、制御回路25は、クロックパルスを、一回につき1つのラッチ21のみに与えるように構成される。したがって、任意の所与の時点でトランスペアレントなラッチ21は1つだけである。さらに、ラッチに与えられるクロックパルスのデューティサイクルが(本実施形態のように)50%未満の場合、クロックパルスとクロックパルスの間において、トランスペアレントなラッチ21はない。クロックパルスはラッチ21に繰返しシーケンスに従って与えられてもよい。たとえば、ラッチ0が第1のクロックパルスを受信してもよく、(存在することは理解されるが示されていない)ラッチ1が第2のクロックパルスを受信してもよく、これがラッチMまで続いてもよい。また、制御回路25は、動作中にアクティブにし得るラッチの数を調整するように構成可能である。たとえば、シンクロナイザ20のある実施形態が8つのラッチを含む場合、その制御回路25は、特定の1動作構成に対してラッチのうちの4つのみをアクティブにするように調整可能であってもよい。アクティブにするラッチの数の調整は、ここでは「調整」として示される、制御回路25へのプログラミング入力を通してプログラムされてもよい。
図2に示される制御回路25は、ラッチ21がアクティブにされるシーケンスに対応するシーケンスに従い、マルチプレクサ24に与えられる選択信号をアサートしてもよい。一般的に、マルチプレクサ24は、最初に(ラッチ0の出力を選択するために)Sel0をアサートし、次に(ラッチ1の出力を選択するために)Sel1をアサートし、以降同様に続けてもよい。しかしながら、所与の選択信号がアサートされるサイクルは、データをラッチするために対応するラッチがアクティブにされるサイクルと同一でない場合がある。たとえば、ラッチ0は第1のサイクル中にトランスペアレントになるものの、第1のサイクルから1つ以上のサイクル後にSel0のアサートによってLatch0_Outが選択される場合がある。特定のラッチ21がアクティブにされてデータをラッチする時点とその出力がその後マルチプレクサ24によって選択される時点との間のサイクルの数は、「調整」入力を通してプログラムし得る、シンクロナイザ20の別の調整可能なパラメータである。一般的に、所与のラッチ21がアクティブにされてデータをラッチする時点とこの所与のラッチ21の出力がマルチプレクサ24によって選択される時点との間のサイクルの数は、1シーケンス全体の間にアクティブにすべきラッチ21の数によって上限が制限される範囲の中で変動してもよい。たとえば、所与の1シーケンスの間に4つのラッチ21がアクティブにされる場合、この所与のシーケンスはしたがって4つの動作サイクルを費やす。これら4つの動作サイクル内で、マルチプレクサ24は、「調整」入力を通して如何にしてプログラムされたかに応じて、所与のラッチの出力を、このラッチが書込まれたサイクルから1、2、または3動作サイクル後に、選択すればよい。データをラッチ21に書込む時点と(マルチプレクサ24がその出力を選択することによって)データを同じラッチ21から読出す時点との間の動作サイクルの数の選択におけるこの遅延によって、最適量のセットアップおよびホールドタイムなしでデータがラッチされたときに生じ得るメタスタビリティの問題の解決のための時間を確保し得る。
制御回路25の機能は、FIFOに対して読出および書込ポインタを生成するのに使用される回路の機能と同様であってもよい。書込ポインタは、ラッチ21のうちの対応するラッチに与えられるクロックパルスを生成する信号に対応し得る。読出ポインタは、マルチプレクサ24への選択信号を生成する信号に対応し得る。これら信号間の時間間隔は、読出ポインタと書込ポインタとの間隔と同様に設定することによって、読出される前に記憶場所(この場合はラッチ21)が上書きされないことを保証すればよい。
さまざまな種類の回路を用いて制御回路25を実現することができる。一実施形態では、1つ以上のシフトレジスタを用いて、結果としてラッチ21へのクロックパルスをアサートする1つまたは複数の信号およびマルチプレクサ24に与えられる選択信号を生成してもよい。1つの代表的な実施形態において、制御回路25はクロックパルスを生成するための第1のシフトレジスタを含んでいてもよく、選択信号を生成するために第2のシフトレジスタが使用されてもよい。シフトレジスタ各々は、1つの位置に1つの論理1を有し残りの位置各々に論理0を有していてもよい。シフトレジスタはまた、選択されたシーケンスを実現するために調整可能なフィードバックを含み得る。シフトレジスタのうちの第1のシフトレジスタからの論理1を用いて、現在選択されているラッチ21に与えられるクロックパルスを生成してもよく、シフトレジスタのうちの第2のシフトレジスタからの論理1を用いてマルチプレクサ24に与えられる選択信号をアサートしてもよい。第1および第2のシフトレジスタにおける論理1の相対位置は、所与のラッチ21の出力が、これがトランスペアレントであるサイクルと同じサイクル中にマルチプレクサ24によって選択されないように、異なっていてもよい。
他の実施形態において、制御回路25は、1つのシフトレジスタおよびその他サポート組合せ論理、ステートマシンを用いて、プロセッサが命令を実行することで実現されてもよく、または、その他適切なハードウェアおよび/またはソフトウェアによって実現されてもよい。一般的に、制御回路25は、所望のシーケンスを提供することができる何らかのやり方で、および/またはFIFOに対して読出および書込ポインタを生成するのと同様のやり方で実現されてもよい。さらに、制御回路25は、動作の1シーケンス中にアクティブにされる特定の数の利用可能なラッチを制御するように、かつ、データが所与のラッチに書込まれる時点と所与のラッチから読出される時点との間の動作サイクルの数を制御するようにプログラム可能に実現されてもよい。
ラッチが書込まれる時点と読出される時点との間のサイクルの数、および、所与の1シーケンス中にアクティブにされるラッチの数を、制御することにより、特定の用途向けにシンクロナイザ20を最適化してもよい。たとえば、より高いビットエラーレート(BER)を許容できる用途では、メタスタビリティの解決のために割当てるサイクルをより少なくすることによってデータスループットを高めてもよい。こうすることによって、所与の1シーケンス中にアクティブにされるラッチの数を少なくすることもできる。逆に、BERを低く保つことが望ましい用途では、メタスタビリティの解決のために割当てる動作サイクルを多くしてもよい。これに応じて、このような1シーケンスの間にアクティブにされるラッチの数は増すであろう。一般的に、制御回路25のプログラム可能性によって、その動作を、BERとデータスループットとの最適な兼ね合いに合わせて微調整することができる。
データをフリップフロップ28に送るためにラッチ出力を選択する機能を提供することに加えて、示されている実施形態のマルチプレクサ24は、最小遅延パディング要件も満たし得る。すなわち、マルチプレクサ24は、信号が誤って複数の記憶素子を通って伝搬しそれによって下流での回路誤動作を生じさせる可能性がある競合状態を引起し得る高速経路を排除してもよい。マルチプレクサ24は、所与のラッチがトランスペアレントである時点に続く動作サイクル中に所与のラッチ21の出力を選択し得るので、マルチプレクサ24は、さもなければ競合状態を生じさせるかもしれない信号伝搬を有効に遮断し得る。
シンクロナイザ20は、直列の多段フリップフロップではなく並列の一段ラッチを用いて実現できるので、回路面積は減じられるであろう。より具体的には、フリップフロップは、一般的に2つのラッチを必要とするので、シンクロナイザ20で使用されるラッチの数と比較すると、2倍の数のラッチを用いて直列シンクロナイザを実現することになるであろう。さらに、直列シンクロナイザの段と段の間には遅延素子が実現されることがあるので、マルチプレクサ24が最小時間遅延パディングを実現するときには、シンクロナイザ20と比較するとより多くの面積が占有されることになるであろう。直列シンクロナイザにおける遅延素子は、メタスタビリティの解決に貢献しないので、時間を浪費し得る。したがって、シンクロナイザ20は、ラッチを並列データ経路において実現しマルチプレクサ24を用いることによって、最小時間遅延パディングを提供し、メタスタビリティの解決に貢献しない回路素子の数を減じることができる。
上記のように、示されている実施形態のシンクロナイザ20は、マルチプレクサ24のQ出力に結合されたフリップフロップ28を含む。いくつかの実施形態において、フリップフロップ28は、直列接続された2つのラッチ27を有するマスタースレーブフリップフロップである。(マルチプレクサのQ出力に接続されたD入力を有する)第1のラッチ27は、Clk2Pが低い部分の間はトランスペアレントであるように配置される。第2のラッチは、Clk2Pが高い部分の間はトランスペアレントであるように配置される。いくつかの実施形態において、フリップフロップ28はさらに、ラッチ27のうち所与の1つのラッチにおけるデータ遷移が受信したクロック信号のレベルではなくクロックエッジに応じて発生するエッジトリガラッチとなるように、配置されてもよい。
図3は、シンクロナイザ20の動作をさらに示すタイミング図である。図3に示される例は、シンクロナイザ20の2つ以上の実施形態に適用し得る。図3は、示されているシーケンス中に各々がイネーブルにされる4つのデータ経路を有し上記フィードバック経路を固定し得るまたは調整可能な実施形態に適用し得る。図3は、5つ以上のデータ経路を有するが4つのみがイネーブルにされるシンクロナイザ20の調整可能フィードバックの実施形態にも適用し得る。図3が適用される特定の実施形態とは関係なく、ここに示される例は、4つのラッチとしてラッチ0〜3を含むデータ経路およびそのうちの1つのみが所与の時点でアサートされる4つの選択入力Sel0〜Sel3を有するマルチプレクサの動作を含む。ラッチ0〜3は各々、受信側クロックドメインのクロック信号であるClk2Pに基づいて生成されるクロックパルスClk_L0P〜Clk_L3Pのうちの対応する1つを受ける。
図3に示されるシーケンスの反復1は、サイクルA中の、ラッチ0のクロック入力におけるクロックパルスClk_L0Pのアサートで始まる。ラッチ0は、このクロックパルスの受信に応じてトランスペアレントになり、このクロックパルスがローに落ちるまではトランスペアレントなままである。このクロックパルスがローに落ちた後は、ラッチ0は非トランスペアレントである。データが、ラッチ0によって、そのトランスペアレントフェーズの間に、適切なセットアップおよびホールドタイムなしで受信された場合、サイクルAにおいて初期にラッチ0がメタステーブル状態になるであろう。しかしながら、このメタスタビリティは、サイクルAの残りの時間およびClk_L0Pが非アクティブである後続のサイクルにおいて解決されるであろう。この特定の例では、(1)によって示されるように、Sel0が、Clk_L0Pがアサートされてから3つの完全なサイクル後のサイクルDの最初にアサートされる。したがって、メタスタビリティの解決のために、3つの完全なサイクル、すなわち、サイクルAの始めにラッチ0が最初にトランスペアレントになった時点から、サイクルDでデータが読出される時点までが、与えられる。
反復1のサイクルBの最初に、Clk_L1Pがアサートされることによってラッチ1がトランスペアレントになる。(2)によって示されるように、Sel1は、その3サイクル後の、反復2のサイクルAでアサートされる。同様に、Clk_L2Pは反復1のサイクルCの間にアサートされ、(3)によって示されるように、Sel2は3サイクル後の反復2のサイクルBの間にアサートされる。Clk_L3Pは、反復1のサイクルDの最初にアサートされ、(4)によって示されるように、Sel3は3サイクル後の反復2のサイクルCでアサートされる。一般的に、図3は、データが所与の動作サイクルでラッチに書込まれ3サイクル後に同じラッチから読出されるという代表的な1つのシナリオを示している。したがって、示されているシーケンスの間において、ラッチへの書込の始まりからラッチからの読出の始まりまで3動作サイクルが経過する。この割当てられた時間の間に、最適なタイミングなしでデータが受信された場合に生じ得るラッチのメタステーブル状態を解決することができる。
さらに、図3のSel0、Sel1、Sel2、およびSel3は、1サイクル分右にシフトすることができる。これにより、各ラッチ21にメタスタビリティの解決のために2サイクルが与えられる。2サイクル分シフトすることによってメタスタビリティの解決に3サイクルが与えられる。3サイクル分シフトすることによってメタスタビリティの解決に4サイクルが与えられる。このようにして、全回路のBERを、レイテンシの追加という代償を払って調整することができる。
図3に示される反復は、シンクロナイザ20が実現されるシステムの動作中、無限に繰返される可能性がある。このシーケンスは各反復について同じままであり、したがって、データが最初にラッチされたときに生じ得るメタスタビリティの問題を解決するために各ラッチに与えられる時間の量は、実質的に同一であろう。なお、入力データは第2のクロック信号Clk2Pと関係がないので、場合によってはメタスタビリティが生じる可能性はゼロではないが、所与のラッチがトランスペアレントであるときにメタスタビリティがすべての場合に生じる訳ではない。
次に図4を参照すると、シンクロナイザ20において使用されるラッチ21の一実施形態の概略図が示されている。示されている実施形態において、ラッチ21は、真のデータ入力Dと、相補入力DXと、クロック入力Clk_Pとを含む。上記のように、真の入力信号および相補入力信号は、以下でさらに詳細に説明するレベルシフタ15から与えられる。
示されている実施形態および本明細書に記載の他の回路の実施形態において、「P」(たとえばP1)で示されるトランジスタは、pチャネル金属酸化物半導体(PMOS)トランジスタである。「N」(たとえばN1)で示されるトランジスタは、nチャネル金属酸化物半導体(NMOS)トランジスタである。しかしながら、本明細書に記載のさまざまな回路の実施形態は、他の種類のトランジスタでも実現し得る。したがって、本開示は、本明細書に明確に記載されている実施形態に限定されることを意図したものではない。
示されている実施形態のラッチ21は、ClkPがハイのときにトランスペアレントであるように構成される。ClkPがハイのとき、トランジスタN1のゲート端子で論理ハイが受信され、論理ローがインバータI1を介してトランジスタP2に与えられる。ClkPがローのとき、ラッチ21は非トランスペアレントでありしたがってラッチ21にラッチされるデータはないであろう。
ラッチ21がトランスペアレントであるときにDXがローでDがハイの場合、トランジスタP1がアクティブにされてもよい。ノードS1は、P1およびP2を通るプルアップ経路を通してVdd2に向けてプルされてもよい。トランジスタN4は、入力Dのハイに応じてアクティブにされてもよい。ノードS2は、N3およびN4を通して接地に向けてローにプルされてもよい。相互結合されたインバータI3およびI4を含むラッチ21の記憶素子は、前に記憶されたデータを上書きし、ClkPがローに落ちた後にS1でハイを維持しS2でローを維持してもよい。DXがハイでDがローの場合、S1がN1およびN2を通してローにプルされノードS2がP3およびP4を通してハイにプルされてもよい。ラッチ21の出力は、ノードS2からインバータI2を通して伝達されてもよく、一旦入力データが記憶素子に書込まれるとD入力と論理的に等価であってもよい。
ラッチ21において真のデータと相補データを受信する1つの利点は、データを記憶素子に書込む間、回路の一部分が、記憶ノードを、回路の他の部分が他の記憶ノードを接地に向かって引上げ始めるのとほぼ同時に、Vdd2に向けて引下げ始めることにある。真のデータ値と相補データ値をほぼ同時に受信するために、レベルシフタ15のさまざまな実施形態がラッチ21とともに使用されてもよい。次に図5を参照すると、レベルシフタ15の一実施形態を示す論理図が示されている。
図5の例において、レベルシフタ15は、生成回路13から真のデータDと相補データDXとを受けるように結合されている。レベルシフタ15のトランジスタは、Vdd2が供給される受信側電圧ドメインにあり、生成回路13のトランジスタは、Vdd1が供給される送信側電圧ドメインにある。いくつかのインスタンスにおいてVdd1がVdd2よりも大きくてもよく、その他のインスタンスにおいてVdd2がVdd1よりも大きくてもよい。したがって、図5に示される回路のトランジスタおよび以下で述べる他のレベルシフタの実施形態のトランジスタの大きさは、論理電圧を所望の通りにシフトアップまたはシフトダウンするように定められてもよい。
示されている実施形態のレベルシフタ15は、NORゲートとしてNOR1およびNOR2を含むセット−リセット(SR)ラッチを実現する。記憶素子をSRラッチとして実現することにより、クローバー(crowbar)電流を引起すことなく状態を書込む(または上書きする)ことができる。さらに、この回路は、状態ノードS1およびS2の切替えがほぼ同時に(たとえば一方の切替えと他方の切替えとの間が10ピコ秒以内)生じるように配置されてもよい。このため、(インバータI7およびI8を介してそれぞれ送信される)レベルシフタ15のD出力およびDX出力は、実質的に同時に切替わるであろう。したがって、レベルシフタ15からD出力およびDX出力を受けるように結合されたラッチ21は、その入力の切替えをほぼ同時に検出し得るので、上記利点を提供し得る。
図6Aは、図5に示されるレベルシフタ15と論理的に等価であるレベルシフタの一実施形態を示す概略図である。示されている実施形態において、レベルシフタ15Aは、第1および第2のNORゲートによって形成されている状態素子を含む。第1のNORゲートは、トランジスタN5、N6、P5、およびP6によって形成されている。第2のNORゲートは、N7、N8、P7、およびP8によって形成されている。回路の真の出力はインバータI10を介して与えられ、回路の相補出力はインバータI9を介して与えられる。レベルシフタ15のトランジスタの大きさは、入力信号を、より高い電圧のドメイン(Vdd2>Vdd1のとき)にシフトするように、または、より低い電圧のドメイン(Vdd2<Vdd1のとき)にシフトするように、定めればよい。
レベルシフタ15Aのこの配置により、内部状態ノードS1およびS2がある状態から別の状態に切替わる間にクローバー電流が発生するのを防止することができる。さらに、この回路の配置により、真の出力の切替え時間と相補出力の切替え時間との差を、対応する入力が互いに異なる時間に到達した場合に、減じることもできる。
(P5、P6、N5、およびN6を含む)回路の左半分は真の入力ノードによって制御され、(P7、P8、N7、およびN8を含む)回路の右半分は相補入力ノードによって制御される。図5に示されるように生成回路13と対にされたとき、新たなデータは、真の入力ノードに到達する少し前に相補入力ノードに到達するであろう。
次にこの回路の動作について、初期状態から説明する。この初期状態では、ノードS1および真の入力ノードは論理ロー状態であり、ノードS2および相補入力ノードは各々論理ハイ状態である。S1および真の入力ノードがいずれもローのとき、P5およびP6はいずれもアクティブでありノードS2を論理ハイ状態にプルする。S2がハイのとき、トランジスタN7はアクティブでありS1をローにプルする。相補入力ノードがハイのとき、トランジスタN8はアクティブでありこれもS1をローにプルする。
論理ローが相補入力ノードに到達したとき、この論理ローは、トランジスタP8をアクティブにしトランジスタN8を非アクティブにし得る。ノードN2は最初、トランジスタN7が依然としてアクティブなのでロー状態のままである。論理ハイが真の入力ノードに到達したとき、トランジスタN5がアクティブにされトランジスタP6が非アクティブにされる。トランジスタP6が非アクティブにされたことにより、P5およびP6を通るプルアップ経路が遮断され、N5がアクティブにされたことにより、S2と接地との間にプルダウン経路が形成される。したがって、S2がローにプルされ、よってP7がアクティブにされる。P7がアクティブにされると、S1とVdd2との間にプルアップ経路が形成される。その原因の一部は、相補入力ノードでローを受けたときにP8がアクティブにされたことにある。S1からVdd2までのプルアップ経路はS2がローにプルされるまでアクティブにされないので、真の出力ノードの切替えと相補出力ノードの切替えとの間の時間量は、対応するそれぞれの入力の受信間の時間量と比較して少なくなるであろう。
上記のようにS1に論理ハイを書込みS2に論理ローを書込んだ後に、相補入力ノードが論理ハイを受け、その後まもなく真の入力ノードが論理ローを受けるであろう。相補入力ノードの論理ハイに応じて、トランジスタP8が非アクティブにされ、トランジスタN8がアクティブになりS1をローにプルする。S1がローにプルされると、トランジスタP5がアクティブにされる。真の入力がローに落ちたとき、トランジスタP6がアクティブにされ、よって、S2とVdd2との間にプルアップ経路が形成される。この段落に記載の動作において、相補出力ノードは、真の出力ノードの少し前に切替わるであろう。しかしながら、N8をアクティブにする際の遅延が十分に大きい場合、上記切替え時間の差は、N8が完全にアクティブになりS1をローにプルする前に真の入力ノードがローに落ちるのであれば、最小になるであろう。
図6Bは、レベルシフタの別の実施形態の概略図である。レベルシフタ15Aと同様、レベルシフタ15Bは(N10、N12、P9、およびP10によって形成されている)第1のNORゲートと、(N14、N16、P11、およびP12によって形成されている)第2のNORゲートとを含む。レベルシフタ15Bはまた、4つの追加のNMOSトランジスタN9、N11、N13、およびN15と、2つの追加のインバータI13およびI14とを含む。この追加の装置の効果は、図6Aに示される実施形態と比較して、上記出力それぞれの切替えと切替えの間の時間量が短縮されることであろう。これは、少なくとも一部、内部状態ノードを先に説明した実施形態よりも早くプルアップすることによって得られるであろう。
プルアップ時間はトランジスタN9およびN15によって短縮することができる。相補入力ノードがハイに遷移した場合、トランジスタN9はオンになりノードS2はおよそ電圧Vdd2−Vthまでプルアップされる。Vthはトランジスタのしきい値電圧である。続いてP9およびP10がアクティブにされると、残余分としてS2は電圧Vdd2までプルアップされるであろう。同様に、論理ハイが真の入力ノードに到達したとき、N15はアクティブにされS1をおよそ電圧Vdd2−Vthまでプルアップする。トランジスタP11およびP12がアクティブにされたことに応じて、残余分としてノードS1は電圧Vdd2までプルアップされるであろう。トランジスタN9およびN15はそれぞれに結合された内部状態ノードを部分的におよそVdd2−Vthまでプルアップするので、プルアップ動作の残りの部分は、それぞれの状態ノードに結合されたPMOSプルアップ経路が一旦アクティブにされると、より速く生じるであろう。
内部状態ノードのプルダウンは、トランジスタN16およびN10を用いて行なってもよい。相補入力ノードがハイに遷移すると、トランジスタN16がアクティブにされる。トランジスタN13は相補入力ノードの遷移に先立ってオンになっている。なぜならS1もハイであるからである(S1からのハイは、I11によってローに反転され、I14によって再度反転され、これによってN13のゲートが駆動される)。よって、トランジスタN16がアクティブにされると、S1と接地との間にプルダウン経路が設けられ、結果としてP9もアクティブにされる。相補ノードがハイに遷移することによって、P12も非アクティブになり、Vdd2とノードS1との間のプルアップ経路を遮断し、よって、クローバー電流が防止される。真の入力ノードがローに落ちると、P10がアクティブにされる。よって、S2がVdd2に向けてプルアップされ、それにより、N14がアクティブになり、S1と接地との間に第2のプルダウン経路が形成される。S1がローに落ちるとI11は論理ハイを出力し、これは再びI14によって論理ローに反転される。I14の出力がローに落ちると、トランジスタN13は非アクティブにされるが、S1はそれでもアクティブにされたN14によってローに保持される。
S2をプルダウンすることも同様に実現し得る。真の入力ノードがハイに遷移した時点で、N11はアクティブであり、よって、N10がアクティブになることによりS2と接地との間にプルダウン経路が形成される。そうすると、結果としてP11がアクティブにされ、S1とVdd2との間にプルアップ経路が形成される。P12は真の入力がハイに遷移するのに伴って相補入力がローに落ちることによりアクティブにされるからである。トランジスタN2がアクティブにされ、S1がハイにプルされたことに応じてS2と接地との間の第2のプルダウン経路を形成する。一方、S2のローはI12によってハイに反転されインバータI13によって再びローに反転され、それによってN11を非アクティブにする。その後、S2は、入力の次の遷移まで、N12によってローに保たれる。
図6Cは、レベルシフタ回路の第3の実施形態を示す。レベルシフタ15Cは先に述べた実施形態の特徴を取入れている。しかしながら、レベルシフタ15Cでは、出力信号は1つのノード(この場合はS2であるが、出力がS1から得られる同様の実施形態を構築することが可能である)から得られる。1つのノードから得られる出力を組合わせた、レベルシフタ15Bの説明で導入されている追加の装置がない、レベルシフタの実施形態も、可能であり意図されている。
レベルシフタ15Cの相補出力DXは、この実施形態のノードS2と論理的に等価である。したがって、S2はインバータI16およびI17を通して相補出力ノードに結合される。ノードS2はI15および反転されていないパスゲートPG1を通して真の出力ノードに結合される。1つの出力経路における2つのインバータと他の経路におけるパスゲートとインバータの組合せを用いることによって、インバータを含むがパスゲートは含まない実施形態に関連する遅延を短縮してもよい。よって、S2から真の出力への伝搬遅延とS2から相補出力への伝搬遅延との差はごくわずかであろう。さらに、レベルシフタ15Cのように出力回路が配置される実施形態において、プロセス、電圧、および温度のばらつきは、真の出力と相補出力との間の関連する切替え時間の差に影響しにくいであろう。
上記のように、先に述べたさまざまなレベルシフタの実施形態は、これもまた先に述べたラッチ21とともに使用すべく最適化されてもよい。より具体的には、真の信号の切替えと相補信号の切替えとの時間差を最小にすることによって、本明細書に開示されるレベルシフタのうちの1つからラッチ21が受けるときのメタスタビリティの解決に役立ち得る。上記レベルシフタ回路のうちのいずれかを使用する集積レベルシフタ/ラッチ回路の実施形態もしたがって可能であり意図されている。
次に図7を参照すると、シンクロナイザを動作させる方法の一実施形態が示されている。本明細書に記載の方法700は、シンクロナイザ20の任意の変形およびこれを実現し得るさまざまな回路に対して使用し得る。さらに、方法700は、本明細書では明確に記載されていないハードウェアを用いて実現してもよい。
方法700は、シンクロナイザの第1のラッチにクロックパルスを与えることで始まる(ブロック705)。このラッチは、シンクロナイザの2つ以上の対応する並列データ経路において実現される2つ以上のラッチのうちの1つである。他のすべてのデータ経路のラッチを除いて、第1のラッチは、クロックパルスを受信し得る。第1のラッチは、クロックパルスを受けるとトランスペアレントになり、よって、その入力で受信したデータをラッチすることができる。
選択信号がマルチプレクサに与えられて、読出すべき次のラッチの出力が、マルチプレクサのアクティブな入力として選択される(ブロック710)。読出すべき次のラッチの出力の選択は、第1のラッチがクロックサイクルを受信するのと同時に生じる。読出すべき次のラッチは、第1のラッチとは異なっており、そこに書込まれた前の値を格納しているであろう。読出すべき次のラッチの出力が選択されると、そこに前に書込まれていたデータが、マルチプレクサを通して送られるであろう。選択されたラッチは、自身の状態として、データが最適なセットアップおよびホールドタイムなしで受信された場合に生じ得るメタステーブルな状態を、解決済であろう。
第1のクロックパルスがローに低下すると、それに続いて、他の並列データ経路のラッチを除いて、第2のラッチに、第2のクロックパルスが与えられる(ブロック715)。第2のラッチもこの時点でデータをラッチするであろう。一方、第1のラッチは前のクロックサイクルから発生しているメタスタビリティの問題を解決しているであろう。第2のクロックパルスのアサートと同時に、第2の選択信号をアサートして、マルチプレクサに、第2のラッチとは異なる別の読出すべきラッチの出力を、選択させてもよい(ブロック720)。前にラッチにラッチされていたデータは、第2の選択信号がアサートされたときにマルチプレクサを通して送られるであろう。
シンクロナイザに含まれるデータ経路が2つのみである場合または利用できる3つ以上のデータ経路のうちの2つのみをシンクロナイザが使用している場合(ブロック725でNO)、この方法はブロック705に戻る。シンクロナイザの動作において3つ以上のデータ経路を使用する場合、この方法はブロック730に進み別のクロックパルスが、専ら別のデータ経路のラッチにのみ与えられる。ラッチは、クロックパルスに応じてデータをラッチし得る。同時に、選択信号が、さらに他の読出すべきラッチの出力を選択するために、マルチプレクサに与えられてもよい(ブロック735)。この方法は725に戻ってもよい。その他のラッチ各々に対し、ブロック730および735を繰返してもよい。シンクロナイザが、データ経路各々におけるラッチへの書込とラッチからの読出とを一巡すると、方法700はブロック705に戻りプロセス全体を繰返してもよい。
図8は、第1の電圧/クロックドメインから第2の電圧/クロックドメインに信号を送信する方法の一実施形態を示すフロー図である。方法800は、上記回路/ハードウェアの実施形態のうちいずれか、および本明細書では明確に示されていない実施形態に対して使用し得る。
方法800は、第1のクロック/電圧ドメインのシングルエンドデータ信号を、真の信号および相補信号を有する差動データに変換することで始まる(ブロック805)。差動データへの変換後、真の信号および相補信号は、第1のクロック/電圧ドメインから第2のクロック/電圧ドメインに送られてもよい(ブロック810)。第1および第2のクロック/電圧ドメインそれぞれの電源電圧が互いに異なると仮定すると、真の信号および相補信号のうちの少なくとも一方の電圧レベルをシフトすればよい(ブロック815)。いくつかの実施形態において、これら2つの電圧ドメインは共通の接地を共有してもよく、したがって、シフトはロー信号ではなくハイ信号に対して行なわれてもよい。
このレベルシフトに続いて、差動データ信号が受信されシンクロナイザのラッチ回路にラッチされてもよい(ブロック820)。ラッチ回路およびラッチ回路が実現されているシンクロナイザは、適量のセットアップおよびホールドタイムなしで差動データ信号が受信された場合に生じ得るメタスタビリティを解決すべく最適化されてもよい。ラッチは、シンクロナイザにおいて使用されているM個の並列データ経路のうちの1つにおいて実現されてもよく、メタスタビリティを解決するためにM個のクロックサイクルが割当てられてもよい。M個のクロックサイクルの経過後、シンクロナイザはデータをシングルエンドデータとして出力してもよく(ブロック825)、その後このデータは、第2のクロック/電圧ドメイン内の機能ユニットによりさらに処理されるために受信されてもよい(ブロック830)。
なお、本明細書に開示されるシンクロナイザは、信号がある電圧ドメインから別の電圧ドメインに渡ることなくあるクロックドメインから別のクロックドメインに渡る実施形態で使用されてもよい。このような実施形態では、レベルシフタ15および15A〜15Cならびにその変形と同様の回路を、ラッチ21等のラッチまたはその他適切なラッチ回路とともに使用することにより、そうでない場合にレベルシフト動作を実行することなく、メタスタビリティの解決を最適化し得る。
本発明を特定の実施形態を参照しながら説明してきたが、これら実施形態は例示であって発明の範囲はそれに限定されないことが理解されるであろう。記載されている実施形態の変形、修正、追加、および改善が可能である。これら変形、修正、追加、および改善は、以下の請求項で詳述される発明の範囲に含まれるであろう。

Claims (20)

  1. 回路であって、
    各々が共通データ入力を通してデータを受信するように結合されたM+1個からなる複数のラッチと、
    マルチプレクサとを備え、前記マルチプレクサは、各々が前記M+1個のラッチのうちの対応する1つのラッチの出力からデータを受信するように結合されたM+1個の入力と、出力とを有し、前記マルチプレクサは、前記マルチプレクサの入力のうちの、前記出力に結合する1つの入力を選択するように構成され、
    制御回路を備え、前記制御回路は、前記マルチプレクサに、M+1個の連続するクロックパルスに応答して前記M+1個のラッチの出力を順次選択させるように構成され、さらに、前記M+1個のラッチに、前記共通データ入力を通して受信されたデータを順次ラッチさせるように構成される、回路。
  2. 前記M+1個のラッチは各々クロック入力を含み、前記制御回路は、N個の連続するクロックパルスのうちの1つに応答して前記M+1個のラッチのうちの選択された1つのラッチにパルスを与えるように構成される、請求項1に記載の回路。
  3. 前記M+1個のラッチは各々、前記制御回路からパルスを受信したことに応じて、前記共通データ入力を通して受信されたデータをラッチするように構成され、さらに、前記制御回路からのパルスの受信がないときのサイクル中はデータがラッチされることを抑止するように構成される、請求項2に記載の回路。
  4. 前記制御回路は、前記N個の連続するクロックパルスのうちの1つのクロックパルスに応答して、前記M+1個のラッチのうちの選択された1つのラッチの出力を選択するように構成され、前記1つのクロックパルスは、前記M+1個のラッチのうちの前記選択された1つのラッチにデータがラッチされたときの前記N個の連続するクロックパルスのうちの1つのクロックパルスの、次に生じる、クロックパルスである、請求項2に記載の回路。
  5. 前記制御回路は、前記M+1個のラッチのうちの所与の1つのラッチにデータがラッチされるサイクルと、前記M+1個のラッチのうちの前記所与の1つのラッチの出力が前記マルチプレクサによって選択されるサイクルとの間のクロックパルスの数を制御するように調整可能である、請求項4に記載の回路。
  6. 前記制御回路は、前記N個の連続するクロックパルスのうちの所与の1つのパルスに応答して、前記M+1個のラッチのうちの第1のラッチにデータをラッチさせるとともに前記マルチプレクサに前記M+1個のラッチのうちの第2のラッチの出力を選択させるように構成される、請求項1に記載の回路。
  7. 前記M+1個のラッチ各々に結合される前記共通データ入力は、真のデータ入力と相補データ入力とを含む差動データ入力である、請求項1に記載の回路。
  8. 前記複数のラッチは各々、シングルエンドデータ出力を与えるように構成される、請求項4に記載の回路。
  9. 方法であって、
    マルチプレクサの入力を順次選択することを含み、前記マルチプレクサの前記入力は各々、M+1個のラッチのうちの対応する1つのラッチの出力に結合され、前記マルチプレクサはM+1個の入力を含み、前記入力は一回につき一つ選択され、
    前記M+1個のラッチのうちの2つ以上のラッチにデータを順次ラッチすることを含み、前記M+1個のラッチは各々、共通データ入力を通してデータを受信するように結合され、前記M+1個のラッチは各々、その出力が前記マルチプレクサへの入力として選択されるときのクロックパルスと同じクロックパルス中に、2つ以上の連続するクロックパルスのうちの特定の1つのクロックパルスを受信したことに応じてデータをラッチするように構成され、データは、前記M+1個のラッチのうちの2つ以上のラッチに、一回につき一つのラッチにラッチされる、方法。
  10. 制御回路が、前記M+1個のラッチのうちの第1のラッチにパルスを与え、前記M+1個のラッチのうちの選択された1つのラッチにクロックパルスを与えるのと同時に、前記M+1個のラッチのうちの第2のラッチの出力を前記マルチプレクサに選択させる選択信号を与えることをさらに含む、請求項9に記載の方法。
  11. 前記制御回路が、前記M+1個のラッチのうちの選択されていない各ラッチにパルスが与えられることを抑止することと、
    選択されていないラッチ各々が、クロックパルスが前記ラッチに与えられていないときにデータが前記ラッチにラッチされることを抑止することとをさらに含む、請求項10に記載の方法。
  12. 真の論理値と相補論理値とを有する差動信号としてデータを前記共通データ入力に与えることと、
    真の論理値を有するシングルエンド信号としてデータを前記マルチプレクサの出力から与えることとをさらに含む、請求項9に記載の方法。
  13. 前記制御回路が、前記M+1個のラッチのうちの所与の1つのラッチの出力を、前記M+1個のラッチのうちの前記所与の1つのラッチにデータがラッチされたときから1つ以上のサイクル後に、前記マルチプレクサに選択させることと、
    前記M+1個のラッチのうちの所与の1つのラッチにデータがラッチされる時点と前記M+1個のラッチのうちの所与の1つのラッチの出力を前記マルチプレクサが選択する時点との間のサイクルの数を、前記制御回路に変更させることとをさらに含む、請求項9に記載の方法。
  14. シンクロナイザであって、
    共通データ入力とマルチプレクサの出力との間において並列接続されたM+1個からなる複数のデータ経路を備え、前記M+1個のデータ経路は各々、M+1個のラッチ回路のうちの1つを含み、前記M+1個のラッチ回路は各々、前記共通データ入力からデータを受信するように結合され、かつ、前記マルチプレクサのM+1個の入力のうちの対応する1つの入力に結合される出力を有し、前記マルチプレクサは、M+1個の選択信号のうちの対応する1つの選択信号を受信したことに応じて前記マルチプレクサのM+1個の入力のうちの1つを選択するように構成され、
    制御回路を備え、前記制御回路は、前記M+1個のラッチ回路のうちの2つ以上のラッチ回路に、繰返しシーケンスにおいて一回につき一つのデータをラッチするように構成され、さらに、前記M+1個のラッチ回路のうちの2つ以上のラッチ回路の出力を、前記繰返しシーケンスにおいて一回につき1つ、前記マルチプレクサに選択させるように構成され、前記制御回路は、動作サイクル中に前記M+1個のラッチ回路のうちの所与の1つのラッチ回路の出力を前記マルチプレクサに選択させるように構成され、前記動作サイクルは、前記M+1個のラッチ回路のうちの所与の1つのラッチ回路がアクティブにされる動作サイクルの次の動作サイクルである、シンクロナイザ。
  15. 前記制御回路はさらに、前記M+1個のラッチ回路のうちの選択されていないラッチ回路に、データをラッチすることを抑止させるように構成される、請求項14に記載のシンクロナイザ。
  16. 前記共通データ入力は、真の信号入力と相補信号入力とを有する差動入力であり、前記マルチプレクサの出力は、真のデータ出力を有するシングルエンド出力である、請求項14に記載のシンクロナイザ。
  17. 前記M+1個のデータ経路各々のラッチ回路は、真の論理状態と相補論理状態とを有する差動信号としてデータを受信するように結合され、前記M+1個のデータ経路各々のラッチ回路は、その出力において、真の論理状態のシングルエンド信号としてデータを与えるように結合される、請求項16に記載のシンクロナイザ。
  18. 前記制御回路は、前記繰返しシーケンス中に、M+1個のラッチのうちの、2とM+1との間の整数個のラッチをアクティブにするように調整可能であり、Mは2以上の整数である、請求項14に記載のシンクロナイザ。
  19. 前記制御回路は、前記繰返しシーケンス中にアクティブにされる前記M+1個のラッチのうちの特定のラッチを前記マルチプレクサに選択させるために選択信号を前記繰返しシーケンス中に生成するように構成される、請求項18に記載のシンクロナイザ。
  20. 前記制御回路は、前記M+1個のラッチのうちの所与の1つのラッチにデータがラッチされるサイクルと、前記M+1個のラッチのうちの前記所与の1つのラッチの出力が前記マルチプレクサによって選択される次のサイクルとの間のサイクル数を制御するように調整可能である、請求項18に記載のシンクロナイザ。
JP2015556166A 2013-01-31 2014-01-31 メタスタビリティ解決のための回転シンクロナイザ回路 Active JP6397829B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/755,056 2013-01-31
US13/755,056 US9509317B2 (en) 2013-01-31 2013-01-31 Rotational synchronizer circuit for metastablity resolution
PCT/US2014/014114 WO2014121057A1 (en) 2013-01-31 2014-01-31 Rotational synchronizer circuit for metastablity resolution

Publications (3)

Publication Number Publication Date
JP2016509810A true JP2016509810A (ja) 2016-03-31
JP2016509810A5 JP2016509810A5 (ja) 2017-02-16
JP6397829B2 JP6397829B2 (ja) 2018-09-26

Family

ID=50102275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015556166A Active JP6397829B2 (ja) 2013-01-31 2014-01-31 メタスタビリティ解決のための回転シンクロナイザ回路

Country Status (5)

Country Link
US (1) US9509317B2 (ja)
EP (1) EP2951943B1 (ja)
JP (1) JP6397829B2 (ja)
CN (1) CN105191205B (ja)
WO (1) WO2014121057A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10110232B2 (en) * 2015-06-30 2018-10-23 Taiwan Semiconductor Manufacturing Company, Ltd. Multiplexer and latch system
CN105607689B (zh) * 2015-12-22 2017-12-22 邓晨曦 高速多相时钟同步方法
KR102501754B1 (ko) * 2016-03-28 2023-02-20 삼성전자주식회사 불균형 멀티플렉서 및 이를 적용하는 스캔 플립플롭
US9825636B1 (en) * 2016-10-20 2017-11-21 Arm Limited Apparatus and method for reduced latency signal synchronization
US9793894B1 (en) * 2016-11-18 2017-10-17 Via Alliance Semiconductor Co., Ltd. Data synchronizer for registering a data signal into a clock domain
CN107729614A (zh) * 2017-09-18 2018-02-23 北京空间飞行器总体设计部 一种可扩展的通用功能级异步电路
US11360704B2 (en) * 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device
CN112800000B (zh) * 2019-11-14 2023-07-18 海思光电子有限公司 一种电路以及电子设备
US20230268010A1 (en) * 2022-02-18 2023-08-24 Infineon Technologies LLC Data path circuit and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5045801A (en) * 1990-05-29 1991-09-03 The United States Of America As Represented By The Secretary Of The Air Force Metastable tolerant asynchronous interface
JPH07131302A (ja) * 1993-11-08 1995-05-19 Nec Corp レジスタ回路
US5598113A (en) * 1995-01-19 1997-01-28 Intel Corporation Fully asynchronous interface with programmable metastability settling time synchronizer
US6137851A (en) * 1998-02-13 2000-10-24 Agilent Technologies System and method for synchronizing a signal with respect to another signal
JP2005236471A (ja) * 2004-02-18 2005-09-02 Asahi Kasei Microsystems Kk 同期化回路
WO2009074603A1 (de) * 2007-12-11 2009-06-18 Robert Bosch Gmbh Verfahren zur ermittlung der taktrate eines von einem teilnehmer eines kommunikationssystems empfangenen datensignals, aktiver sternkoppler zur ausführung des verfahrens und kommunikationssystem mit einem solchen aktiven sternkoppler

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3696077B2 (ja) * 2000-11-13 2005-09-14 シャープ株式会社 電圧変換回路及びこれを備えた半導体集積回路装置
JP2002325041A (ja) * 2001-04-25 2002-11-08 Nec Corp デコード回路及び符号変換回路と方法
US6819156B1 (en) * 2001-11-26 2004-11-16 Xilinx, Inc. High-speed differential flip-flop
US7656745B2 (en) * 2007-03-15 2010-02-02 Micron Technology, Inc. Circuit, system and method for controlling read latency

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5045801A (en) * 1990-05-29 1991-09-03 The United States Of America As Represented By The Secretary Of The Air Force Metastable tolerant asynchronous interface
JPH07131302A (ja) * 1993-11-08 1995-05-19 Nec Corp レジスタ回路
US5598113A (en) * 1995-01-19 1997-01-28 Intel Corporation Fully asynchronous interface with programmable metastability settling time synchronizer
US6137851A (en) * 1998-02-13 2000-10-24 Agilent Technologies System and method for synchronizing a signal with respect to another signal
JP2005236471A (ja) * 2004-02-18 2005-09-02 Asahi Kasei Microsystems Kk 同期化回路
WO2009074603A1 (de) * 2007-12-11 2009-06-18 Robert Bosch Gmbh Verfahren zur ermittlung der taktrate eines von einem teilnehmer eines kommunikationssystems empfangenen datensignals, aktiver sternkoppler zur ausführung des verfahrens und kommunikationssystem mit einem solchen aktiven sternkoppler

Also Published As

Publication number Publication date
EP2951943A1 (en) 2015-12-09
CN105191205A (zh) 2015-12-23
US20140210526A1 (en) 2014-07-31
CN105191205B (zh) 2019-01-18
JP6397829B2 (ja) 2018-09-26
EP2951943B1 (en) 2022-09-07
WO2014121057A1 (en) 2014-08-07
US9509317B2 (en) 2016-11-29

Similar Documents

Publication Publication Date Title
JP6397829B2 (ja) メタスタビリティ解決のための回転シンクロナイザ回路
US8994402B2 (en) Level shifter circuit optimized for metastability resolution and integrated level shifter and metastability resolution circuit
US7320098B2 (en) Semiconductor integrated circuit device having scan flip-flop circuit
US7358786B2 (en) Control signal generator, latch circuit, flip flop and method for controlling operations of the flip-flop
US6333959B1 (en) Cross feedback latch-type bi-directional shift register in a delay lock loop circuit
KR100631166B1 (ko) 지연고정 시간을 줄인 레지스터 제어 지연고정루프
KR100612417B1 (ko) 펄스-기반 고속 저전력 게이티드 플롭플롭 회로
JP4986318B2 (ja) 半導体装置
KR20090099735A (ko) 고속 동작이 가능한 플립플롭
US7178048B2 (en) System and method for signal synchronization based on plural clock signals
US20160301395A1 (en) Flip-flop circuit, and semiconductor integrated circuit device
JP2008172779A (ja) 高速動作のためのフリップフロップ
KR100807111B1 (ko) 출력 제어장치
US8694818B2 (en) Control circuit and operating method thereof
KR20100041200A (ko) 클럭 버퍼 및 이를 이용하는 반도체 메모리 장치
US8248129B2 (en) Signal delay circuit, clock transfer control circuit and semiconductor device having the same
KR100486199B1 (ko) 반도체메모리장치의하이임피던스제어신호발생회로
KR20210074657A (ko) 반도체 장치의 클럭 생성 회로
US11469747B1 (en) Shift register and electronic device including the same
US20160344394A1 (en) Selector circuit, equalizer circuit, and semiconductor integrated circuit
KR102598913B1 (ko) 반도체장치
KR100609135B1 (ko) 셋업/홀드 타임 제어 회로
CN116913338A (zh) 振荡信号生成电路及使用其的半导体装置
JP2011008844A (ja) 半導体装置
KR20210069530A (ko) 다위상 신호의 위상을 조절하는 반도체 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180903

R150 Certificate of patent or registration of utility model

Ref document number: 6397829

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250