(57)【要約】クロック信号に対して相対的に、データ信号に静的および／または動的な位相調整を行なうためのシステムおよび方法が開示される。たとえば、データ信号を粗遅延部および／または微遅延部によって遅延させて、各々の入力経路につき独立に（たとえば入力パッドごとに）クロック信号のタイミングと整合させることができる。この遅延は、正および／または負のクロックエッジの関数とすることができる。
2006516839.tif 000002
【特許請求の範囲】
【請求項１】
回路であって、
第１の信号を受取って、選択可能な遅延を前記第１の信号に付加し、遅延させた第１の信号を出力するように適合された遅延回路を備え、前記遅延させた第１の信号は、前記第１の信号についての複数の遅延させたバージョンを含み、かつ、クロック信号に対して相対的なタイミング関係を有し、前記回路はさらに、
前記遅延回路に結合され、前記遅延させた第１の信号および前記クロック信号を受取って、前記クロック信号のタイミングに基づいて前記遅延させた第１の信号を格納するように適合された第１のレジスタを備える、回路。
【請求項２】
さらに、
前記第１のレジスタに結合された第１のマルチプレクサと、
前記遅延回路、前記第１のレジスタおよび前記第１のマルチプレクサに結合され、前記クロック信号および前記第１の信号についての前記複数の遅延させたバージョンを監視して、前記遅延回路により付加されるべき前記選択可能な遅延を決定するとともに、各々が異なる遅延量を有する前記第１の信号についての前記複数の遅延させたバージョンのうち前記第１のレジスタから前記第１のマルチプレクサにより選択されて第１の出力信号として出力されるべきものを決定するように適合された、制御回路とを備える、請求項１に記載の回路。
【請求項３】
前記遅延回路は、前記第１の信号に粗遅延および微遅延を付加して、前記第１の信号についての前記複数の遅延させたバージョンを含む前記遅延させた第１の信号を生成し、前記第１のレジスタは、前記第１の信号についての前記複数の遅延させたバージョンを格納するように適合される、請求項２に記載の回路。
【請求項４】
前記制御回路は、前記第１のレジスタのレジスタビットのうちどれがセットアップおよび保持時間の要件を満足させたかに基づいて、前記第１の信号についての前記複数の遅延させたバージョンのうちいずれか１つを前記第１のレジスタから前記第１のマルチプレクサにより選択する、請求項２に記載の回路。
【請求項５】
さらに、
前記遅延回路に結合され、前記遅延させた第１の信号および前記クロック信号を受取って、前記クロック信号のタイミングに基づいて前記遅延させた第１の信号を格納するように適合された第２のレジスタと、
前記第２のレジスタに結合された第２のマルチプレクサとを備え、前記制御回路は、前記第２のレジスタおよび前記第２のマルチプレクサに結合されて、前記第１の信号についての前記複数の遅延させたバージョンのうち前記第２のレジスタから前記第２のマルチプレクサによって選択されて第２の出力信号として出力されるべきものを決定する、請求項２に記載の回路。
【請求項６】
前記制御回路は、前記第１のレジスタおよび前記第２のレジスタのレジスタビットのうちどれがセットアップおよび保持時間の要件を満足させたかに基づいて、前記第１の信号についての前記複数の遅延させたバージョンのうちいずれか１つを前記第１のレジスタから前記第１のマルチプレクサにより選択し、前記第２のマルチプレクサを用いて、前記第２のレジスタから前記第１の信号についての前記複数の遅延させたバージョンのうち１つを選択する、請求項５に記載の回路。
【請求項７】
前記第１のレジスタは、前記クロック信号の立上りエッジにおいて前記第１の信号の前記複数の遅延させたバージョンを格納し、前記第２のレジスタは、前記クロック信号の立
下がりエッジにおいて前記第１の信号についての前記複数の遅延させたバージョンを格納する、請求項５に記載の回路。
【請求項８】
単一倍データレート用途については前記第１の出力信号または前記第２の出力信号が利用され、二倍データレート用途については前記第１の出力信号および前記第２の出力信号が利用される、請求項７に記載の回路。
【請求項９】
前記制御回路は、それぞれ前記粗遅延および前記微遅延について付加されるべき静的遅延の量および動的遅延の量を決定する、請求項３に記載の回路。
【請求項１０】
前記制御回路は、
前記クロック信号のエッジに対して相対的に前記第１の信号の信号遷移エッジを判定するように適合されたエッジ検出器と、
前記エッジ検出器に結合され、前記第１の信号についての前記複数の遅延させたバージョンのうち選択されるべきものを決定するように適合された方向検出器と、
前記方向検出器に結合され、前記第１の信号についての前記複数の遅延させたバージョンのうちの異なるものについての選択を遅延させるように適合された待ちカウンタと、
前記待ちカウンタに結合され、制御信号を出力して前記選択可能な遅延を設定し前記第１および第２のマルチプレクサを制御するように適合された移動カウンタとを含む、請求項５に記載の回路。
【請求項１１】
前記方向検出器は、前記第１の信号についての前記複数の遅延させたバージョンについての１つ以上の以前の決定についての情報を利用して、前記第１の信号についての前記複数の遅延させたバージョンからの現在または将来の選択を決定することを助ける、請求項１０に記載の回路。
【請求項１２】
前記移動カウンタは、動的遅延についての初期遅延設定または静的遅延の量を設定するために利用される、請求項１０に記載の回路。
【請求項１３】
さらに、前記方向検出器、前記待ちカウンタおよび前記移動カウンタに結合され、最小持続時間につき最小マージン量が満足されたか否かを示すロック信号を出力するように適合されたロックカウンタを備える、請求項１０に記載の回路。
【請求項１４】
前記ロック信号が前記ロックカウンタによりアサートされた場合、前記ロック信号は、前記第１の信号についての前記複数の遅延させたバージョンのうち異なるものについての選択が行なわれた場合でもアサートされたまま留まるが、ビットスワッピングが行なわれた場合には前記ロックカウンタは前記ロック信号をデアサートする、請求項１３に記載の回路。
【請求項１５】
集積回路であって、
入力信号を遅延させて、前記入力信号についての複数の遅延させたバージョンを出力する遅延手段を備え、前記複数の遅延させたバージョンの各々には異なる量の遅延が付加されており、前記集積回路はさらに、
クロック信号に対して相対的に前記入力信号についての前記複数の遅延させたバージョンを格納する格納手段と、
前記遅延手段によって付加された遅延の量を制御して、前記格納手段に入っている前記入力信号についての前記複数の遅延させたバージョンのうち出力信号として出力されるべきものを決定する制御手段とを備える、集積回路。
【請求項１６】
前記遅延手段は、粗遅延および微遅延を出力し、前記制御手段は、前記粗遅延および前
記微遅延についての静的および動的な設定を出力する、請求項１５に記載の集積回路。
【請求項１７】
前記格納手段は、前記クロック信号の立上りエッジまたは立下がりエッジに対して相対的に前記入力信号についての前記複数の遅延させたバージョンを格納する、請求項１６に記載の集積回路。
【請求項１８】
前記遅延手段は、クロック分配網路を通じて前記クロック信号の遅延について補償する、請求項１７に記載の集積回路。
【請求項１９】
前記集積回路はプログラミング可能な論理素子である、請求項１８に記載の集積回路。
【請求項２０】
前記制御手段は、単一倍データレートおよび二倍データレート用途に対応できるように適合される、請求項１９に記載の集積回路。
【請求項２１】
入力信号とクロック信号との間のタイミング関係を制御する方法であって、
前記入力信号を受取るステップと、
前記入力信号を遅延させて、前記入力信号についての遅延させたバージョンを出力するステップと、
前記入力信号についての前記遅延させたバージョンを格納するステップと、
前記クロック信号のタイミングに対して相対的に前記入力信号に付加される遅延の量を制御するステップとを含む、方法。
【請求項２２】
前記入力信号についての前記遅延させたバージョンは、各々が異なる遅延の量を有する前記入力信号についての複数の遅延させたバージョンを含む、請求項２１に記載の方法。
【請求項２３】
前記格納するステップは、前記クロック信号の立上りエッジまたは立下がりエッジに対して相対的に前記入力信号についての前記遅延させたバージョンを格納する、請求項２２に記載の方法。
【請求項２４】
さらに、前記入力信号についての前記複数の遅延させたバージョンのうち出力信号として出力されるべきものを選択するステップを含む、請求項２３に記載の方法。
【請求項２５】
前記制御するステップはさらに、前記入力信号に静的な遅延量および動的な遅延量を与える、請求項２１に記載の方法。
【請求項２６】
入力信号とクロック信号との間のタイミング関係を与える方法であって、
前記入力信号を受取るステップと、
選択可能な遅延を前記入力信号に付加して、遅延させた入力信号を出力するステップとを含み、前記遅延させた入力信号は、前記入力信号についての複数の遅延させたバージョンを含み、かつ、前記クロック信号に対して相対的なタイミング関係を有し、前記方法はさらに、
前記クロック信号のタイミングに基づいて前記遅延させた入力信号を格納するステップを含む、方法。
【請求項２７】
さらに、
前記クロック信号、および前記入力信号についての前記複数の遅延させたバージョンを監視するステップと、
付加されるべき前記選択可能な遅延、および、各々が異なる遅延量を有する前記入力信号についての前記複数の遅延させたバージョンのうち選択されて出力信号として出力されるべきもの、を決定するステップとを含む、請求項２６に記載の方法。
【請求項２８】
前記選択可能な遅延は、粗遅延および微遅延を含む、請求項２７に記載の方法。
【請求項２９】
前記入力信号についての前記複数の遅延させたバージョンのうち選択されて出力信号として出力されるべきものを決定する前記ステップは、前記入力信号についての前記複数の遅延させたバージョンのうちどれがセットアップおよび保持時間の要件を満足させたかに依存する、請求項２８に記載の方法。
【請求項３０】
前記クロック信号のタイミングに基づいて前記遅延させた入力信号を格納する前記ステップは、前記クロック信号の立上りエッジおよび／または立下がりエッジに基づいて前記入力信号についての前記複数の遅延させたバージョンを格納するステップを含む、請求項２９に記載の方法。
【請求項３１】
前記選択可能な遅延は、前記粗遅延および前記微遅延についての静的遅延および／または動的遅延を含む、請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
この発明は一般的に電気回路に関し、より特定的には、位相調整を実行する適応入力ロジックに関する。
【背景技術】
【０００２】
背景
集積回路がその密度および複雑さにおいて増大しかつ、より厳しく多様でより高速の入出力（Ｉ／Ｏ）インターフェイス規格を満足させることが必要となるのに伴い、クロック−データタイミング管理が重要な設計上の考慮事項となっている。典型的には、位相ロックループ（ＰＬＬ）または遅延ロックループ（ＤＬＬ）を用いてクロック管理を行ない、クロック・スキュー、クロック遅延およびクロック・ジッタといったタイミング上の問題の最小化を図っている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一般的に、ＰＬＬは、システムクロックといった基準信号を監視してこれに対してロックすることで種々のクロック信号を管理または合成する。ＤＬＬもまた、基準信号（たとえばシステムクロック）を監視してこれに対してロックするが、電圧制御発振器でなく遅延ラインを用いてクロック管理機能を管理および提供している。これら種類のシステムにおける欠点として、ＰＬＬおよびＤＬＬによる方法には多数のクロック信号およびルーティング構造の生成が伴う（たとえばＰＬＬまたはＤＬＬおよびこれに関連したクロック分配網路が、対応されている入出力インターフェイス規格の各種類につき設けられる）というものがある。これは非効率的でかつ貴重な回路面積を消費し、場合によっては結果として厳しいレイアウト上の制約を伴うことになる。その結果、クロックおよびデータタイミング関係を管理するための改良された技術が必要とされている。
【課題を解決するための手段】
【０００４】
概要
本願明細書においては、クロックとデータとの関係に対する動的および静的な位相調整のための適応ロジックをもたらすシステムおよび方法が開示される。たとえば、この発明における一実施例に従うと、入力データを、データ取得要素で受取るのに先立って粗遅延量および微遅延量だけ遅延させることにより、上記データ取得要素で受取られるクロックのタイミングと整合させる。さらに、この発明における１以上の実施例に従うと、上記入力データ遅延は、個々の入力データごとに（たとえば各々の関連の入力パッドごとに）立上りおよび／または立下がりのクロックエッジの関数として静的および／または動的に調整されるようにすることができる。これに従い、本願明細書にて述べられる技術を利用すれば、クロックとデータとのタイミング関係を適切化するために従来のＰＬＬ回路およびＤＬＬ回路が必要ではなくなる。
【０００５】
この発明の一実施例に従うと、回路であって、第１の信号を受取り、選択可能な遅延を上記第１の信号に付加することにより、クロック信号に対して相対的なタイミング関係を有する遅延させた第１の信号を出力するように適合された遅延回路と、上記遅延回路に結合され、上記遅延させた第１の信号および上記クロック信号を受取り、上記クロック信号のタイミングに基づいて上記遅延させた第１の信号を格納するように適合された第１のレジスタとを含む。
【０００６】
この発明の一実施例に従うと、集積回路であって、入力信号を遅延させて、各々が異なる遅延量が付加された上記入力信号についての複数の遅延させたバージョンを出力するための遅延手段と、クロック信号に対して相対的に上記入力信号についての上記複数の遅延させたバージョンを格納するための格納手段と、上記遅延手段によって付加された遅延量を制御し、上記格納手段内にあって上記入力信号についての上記複数の遅延させたバージョンのうち出力信号として出力されるべきものを決定するための制御手段とを含む。
【０００７】
この発明の別の実施例に従うと、入力信号とクロック信号との間のタイミング関係を制御する方法であって、上記入力信号を受取るステップと、上記入力信号を遅延させて、上記入力信号についての遅延させたバージョンを出力するステップと、上記入力信号についての上記遅延させたバージョンを格納するステップと、上記クロック信号のタイミングに対して相対的に上記入力信号に付加される遅延量を制御するステップとを含む。
【０００８】
この発明の範囲は、前掲の特許請求の範囲により画定される。この特許請求の範囲は引用によりこの節に援用される。以下に記載の１以上の実施例についての詳細な説明を検討することにより、この発明の各実施例についてのより完全な理解と、その追加の利点の認識とが当業者にもたらされるであろう。後に簡単な説明を行なう添付の図面が参照される。
【０００９】
この発明の好ましい実施例およびその利点は、以下の詳細な説明を参照することで最もよく理解される。なお、同様の参照番号は、１以上の図面に示す同様の要素を特定するために用いられる。
【発明を実施するための最良の形態】
【００１０】
詳細な説明
図１は、この発明の一実施例に従う適応入力ロジック１００を例示するブロック図を示す。適応入力ロジック１００は、プログラミング可能な論理素子（たとえばフィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）またはコンプレックス・プログラマブル・ロジックデバイス（ＣＰＬＤ））といった集積回路の一部として形成されたり、または特定用途向け集積回路（ＡＳＩＣ）の設計内に組込まれたりして、クロックに対する相対的なデータのタイミング関係を維持することのできる回路のブロック図である。
【００１１】
たとえば、適応入力ロジック１００は、ＦＰＧＡ入力バッファの一部として実現されてもよく、これにより入力パッドからデータを取得する際の必要な管理（たとえば論理）を与える一方、所望のデータ／クロックタイミングの要件を維持する。適応入力ロジック１００は、入力データの遅延を（たとえば個々のパッドごとに）調整することにより、入力クロックと入力データとの間のスキューといったタイミング上の問題を補償する。本願明細書中でより詳細に説明するように、入力クロックと入力データとのタイミング関係は、たとえばＳＤＲ（Single Data Rate）およびＤＤＲ（Double Data Rate）用途におけるような立上りおよび／または立下がりのクロックエッジについて監視および維持されるようにすることができる。
【００１２】
適応入力ロジック１００は、粗遅延部１０２、微遅延部１０４、レジスタ１０６，１０８、マルチプレクサ１１０，１１２、および制御ロジック１１４を含む。粗遅延部１０２はデータ入力リード１２０からデータ信号を受取り、このデータ信号に対して粗遅延調整（すなわちタイミング遅延）を与え、これに続いて微遅延部１０４が上記データ信号に対して微遅延調整を与える。粗遅延部１０２および微遅延部１０４によりデータ信号に付加される遅延量は、それぞれリード１３０，１３２からの粗遅延制御信号および微遅延制御信号を介して制御ロジック１１４により決定される（本願明細書中で言うリードとは、バス構造を含み１以上の信号経路のことであり得る）。次に、データ信号は、レジスタ１０
６，１０８（入力データ取得要素とも称す）に格納されてから、制御ロジック１１４の制御下で対応のマルチプレクサ１１０，１１２によって選択的に読出される。
【００１３】
データ信号（たとえば当該集積回路の入力パッドからのもの）は、レジスタ１０６，１０８に達する前に遅延させられ、こうしてレジスタ１０６，１０８により（クロック入力リード１１８で）受取られるクロック信号の位相と整合する。たとえば、データ信号を遅延（すなわち粗遅延部１０２および微遅延部１０４により遅延）させることによって、クロック信号が入力パッドからクロック分配網路１１６経由でレジスタ１０６，１０８へ至る経路の伝播時間の結果生じたクロック信号の遅延と整合させる（または最小位相関係を満足させる）。クロック分配網路１１６は、或る種のクロックルーティング構造であることも、または或る数のカスタムルーティング構成となるように構成（たとえばプログラミング）され得るフレキシブル・クロックルーティング構造であることもある。
【００１４】
粗遅延部１０２および微遅延部１０４は、データ信号に付加される遅延量に最大限の柔軟性を与えるように機能する。しかし、用途によっては、必要となるのは粗遅延部１０２または微遅延部１０４のいずれか一方のみのこともあり、これにはたとえば限られた数の類似の入出力インターフェイス規格に対応するだけの場合や、またはクロック信号とデータ信号との経路同士がよく整合されている場合などがある。
【００１５】
粗遅延部１０２は、たとえば、或る特定の環境設定において（たとえばプロセス、電圧および温度（ＰＶＴ）について予想される条件下で）クロック分配網路１１６の種類に対しデータ信号の遅延を整合させるために用いられる。微遅延部１０４は、たとえば、ＰＶＴ条件の変化や、システムノイズや、クロック信号に対する相対的なデータ信号のスキュー変動や、およびジッタ効果など、を含む広範囲の条件について補償するために用いられ、さらにはデータ信号の遅延を、粗遅延部１０２の設定付近の或る範囲内において静的および／または連続的に調整するために用いられる。すなわち、粗遅延部１０２は、予想される条件に基づいて粗遅延設定を与え、微遅延部１０４は、追加の微遅延設定を与えて、クロック信号に対して相対的にデータ信号の遅延量を微調整する。
【００１６】
制御ロジック１１４は、レジスタ１０６，１０８でのクロック信号（すなわちリード１２８からの信号）を監視し、レジスタ１０６，１０８から（すなわち対応のリード１２６，１２４から）信号を出力し、粗遅延部１０２および微遅延部１０４により付加されるべき遅延量を決定する。たとえば、制御ロジック１１４は、クロック信号とデータ信号との間のプログラミング可能な位相関係を維持するために用いられる。制御ロジック１１４はまた、本願明細書中でより詳細に説明されるように、クロック信号に対する相対的なデータ信号のタイミング関係が、所与の期間につき所望の（たとえばプログラミング可能な）仕様内であるときに、ロック信号を（リード１２２に）出力することができる。
【００１７】
制御ロジック１１４は、制御信号によりプログラミングまたは指令されて適応入力ロジック１００の種々の設定（たとえば機能またはパラメータ）を制御することができ、これにはクロック信号に対する相対的なデータ信号のタイミング関係が含まれる。これら設定を設定またはプログラミングするには、たとえばメモリ（たとえばプログラミング可能ランダム・アクセス・メモリ（ＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）、これはＰＬＤで典型的に見られる）、プログラミング可能ヒューズ、配線（たとえばＡＳＩＣ内の金属層）および／または、制御ロジック１１４で受取られるユーザ入力の制御信号、などを用いることができる。
【００１８】
具体例として、上記設定には、クロック／データマージン、遅延範囲、ビットスワッピング、レジスタリセット、動的調節オプション、ラン（run）設定、およびロジックリセット、などが含まれる。クロック／データマージンでは、データエッジとクロックエッジ
との間で許される遅延マージンの量が設定される。遅延範囲では、許される遅延の範囲（たとえば狭い遅延範囲から広い遅延範囲まで）が設定される。ビットスワッピングは、プログラミングされる遅延が、その最大または最小の設定に達した際に反対側の設定から継続するようにするものである。
【００１９】
レジスタリセットは、レジスタ１０６，１０８のリセットの際に制御ロジック１１４を同期的にリセットすることを可能にするものである。動的調整オプションでは、動的な遅延についてオン／オフ設定が与えられる。たとえばオン設定では、粗遅延部１０２および／または微遅延部１０４でもたらされる遅延量を制御ロジック１１４で動的に調整（すなわち連続的または周期的）できる一方、オフ設定では、制御ロジック１１４は、粗遅延部１０２および／または微遅延部１０４についての静的な遅延設定を維持するよう強制される。
【００２０】
ラン設定は、動的遅延調整が可能となるよう動的調整オプションが設定されたとき動的遅延調整が実行されるか否かを制御する。たとえば、ラン設定がアサートされた場合、動的遅延調整の実行が可能となるが、ラン設定がアサートされていなければ、動的遅延調整は阻止される（すなわち現在の遅延設定が変更されない）。また、ロジックリセットは、非同期的リセットまたは同期的リセットを可能にするものである。
【００２１】
図２は、この発明の一実施例に従う適応入力ロジック１００の一部についての入力データ遅延構造（ＩＩＤＳ）２００の実現および適用を例示するブロック図を示す。この実現例は、データ信号経路についてさらに詳細に説明するものである。制御ロジック１１４の実現例についてのさらなる詳細は、図３を参照して記載される。
【００２２】
図２に示すように、粗遅延部１０２はリード１２０からデータ信号を受取って粗遅延を付加する。この粗遅延としては、たとえば入力パッドからリード１１８を経由しクロック分配網路１１６を通ってレジスタ１０６，１０８に至るリード１２８上のクロック信号のクロック遅延（たとえば注入（injection）時間）にほぼ整合する遅延とする。上述のように、クロック分配網路１１６は、ＰＬＤで見られるような多数の種類の異なるクロック分配構造であって、ユーザの設計で望まれ得る種々のクロック制御要件を満足させるものであり得る。こうして、粗遅延部１０２によって、クロック分配網路１１６における選択されたクロック分配構造に対応する遅延に整合するような種々の選択可能な遅延が得られる。
【００２３】
たとえばデータ信号の遅延を調整することにより、レジスタ１０６，１０８（すなわち入力取得要素）におけるデータのセットアップおよび／または保持時間についての最小マージン量を満足させることができる。マージンの量はユーザによってプログラミング可能であり、こうして種々の入出力インターフェイス規格（たとえば種々の仕様、たとえば周波数またはデータレート）に合わせて調整される。また、遅延調整の総量をプログラミング可能とし、または入力遅延が特定の静的遅延となるようプログラミングされ得るようにしてもよい。
【００２４】
粗遅延がある場合には、粗遅延部１０２により付加される粗遅延の量は、制御ロジック１１４（図１）により与えられるリード１３０上の粗遅延制御信号により決定される。制御ロジック１１４としては、たとえば、図３を参照して説明されるような論理回路またはマイクロプロセッサもしくはマイクロコントローラを用いることができる。上記粗遅延制御信号は、マルチプレクサ２０２を制御して、データ信号に付加される適当な遅延量を選択する。この遅延量は、遅延０、遅延１、遅延２、…遅延ｍでの代表的な各遅延によって選択され得る。ここで、遅延０は最小遅延または遅延なしを表わし、遅延ｍは最大量の遅延を表わす。「ｍ」に１を加えたものが、提供可能な遅延の選択肢の数となる。
【００２５】
上述のように、データ信号はさらに、微遅延部１０４によって遅延させられて、粗遅延部１０２から提供可能なよりも小さな遅延増分をもたらすようにすることができる（これはたとえば物理的条件および周囲の環境条件に合わせて調整することを目的とする）。微遅延部１０４により付加される遅延量は、制御ロジック１１４からリード１３２上で送られる微遅延制御信号によって制御される。たとえば、微遅延部１０４が多段遅延要素を含むようにすることができ、遅延の量は微遅延制御信号により選択可能とする。多段遅延要素はｎ個の段を含むことができ、当該要素における各々の段は異なる遅延調整範囲および制御設定を有し、対応の遅延を伴うデータ信号を出力する。別の例として、多段遅延要素が含むｎ個の段が、狭い遅延範囲から、またはより広い遅延範囲からプログラミング可能に選択を行なうことができるようにしてもよい。
【００２６】
具体例として、図４は、この発明の一実施例に従う適応入力ロジック１００の微遅延部１０４についての回路実現例を示す。図４に示すように、データ信号（「データ」で標示される）は複数の遅延要素４０２によって受取られる（これら複数の遅延要素４０２は、遅延要素４０２（１），４０２（２），…４０２（ｎ）として別個に参照され、ここでｎは遅延要素４０２の数を表わす）。遅延要素４０２の各々には、データ信号に遅延を生じさせるための１対のインバータまたはその他任意の種類の遅延要素を用いることができる。
【００２７】
マルチプレクサ４０４〜４１８は、図示するように遅延要素４０２間より或る数のタップから選択を行ない、対応の出力信号をレジスタ４２０〜４３４に与える。マルチプレクサ４３６は、データ信号についての遅延させたバージョンを生成するにはレジスタ４２０〜４３０のうちどれを利用すべきかを、ＮＳ制御信号またはＰＳ制御信号によって選択する。提供可能な遅延の範囲は、マルチプレクサ４０４〜４１８への複数の入力のうちただ１つのみが利用される場合には狭い範囲と見なすことができ、または、マルチプレクサ４０４〜４１８への複数の入力のすべてが利用される場合には広い範囲と見なすことができる。遅延の範囲が狭いか広いかについては、ＮＷ制御信号またはＰＷ制御信号によって制御することができる。したがって、上記広い遅延の場合、遅延量は、４個の遅延要素４０２からなる群単位でシフトし、データ信号に与えられ得る提供可能な遅延量を変化させる。
【００２８】
粗遅延部１０２は、微遅延部１０４について図４で示すのと同様の仕方で実現され得る。これに代えて、粗遅延部１０２は、データ信号に選択可能な遅延を与える遅延チェーン（たとえばインバータチェーン）であってもよい。
【００２９】
再び図２を参照して、微遅延部１０４は、データ信号についてのｎ個の異なる遅延させたバージョンを、ｎビットレジスタであるレジスタ１０６，１０８に与える。たとえば、微遅延部１０４により与えられる、データ信号についてのｎ個の異なる遅延させたバージョンは、レジスタ１０６および／またはレジスタ１０８内にある対応のビットで取得される。レジスタ１０６は、クロック信号の立上りエッジに関連付けられたデータ（図１および図２ではそれぞれ「データＰ」または「正のデータ」と呼ぶ）を取得するために用いられ、レジスタ１０８は、クロック信号の立下がりエッジに関連付けられたデータ（図１および図２でそれぞれ「データＮ」または「負のデータ」と呼ぶ）を取得するために用いられるようにすることができる。したがって、ＤＤＲ用途ではレジスタ１０６およびレジスタ１０８の両方が用いられることになる一方、ＳＤＲ用途ではレジスタ１０６またはレジスタ１０８のいずれか一方のみが用いられることになる（これは、ＳＤＲ用途におけるデータ信号をクロック制御するところがクロック信号のクロックエッジのうち立上りの側であるのか立下がりの側であるのかに依存する）。
【００３０】
制御ロジック１１４は、大まかには、データ信号を出力するためにはレジスタ１０６および／または１０８からのどのレジスタビットが用いられることになるのかを決定する。たとえば、制御ロジック１１４によりリード２０８でマルチプレクサ１１０に与えられる制御信号およびリード２１０でマルチプレクサ１１２に与えられる制御信号によって、データ信号（図２ではそれぞれ「正のデータ」および「負のデータ」で標示される）を出力するためには対応のレジスタ１０６，１０８からのどのレジスタビットが用いられるのかを選択する。
【００３１】
制御ロジック１１４はさらに、レジスタ１０６，１０８から（図１に示すようにそれぞれリード１２６，１２４で）送られる出力信号を監視して、各々のレジスタビットにつきクロックエッジへのデータエッジの近接度を判定することができる。マルチプレクサ１１０および／またはマルチプレクサ１１２を介してデータ信号を出力するために用いられる現在選択されているレジスタビットについて、クロックエッジに対して一連のデータビットが近すぎると判断された場合、制御ロジック１１４は、レジスタ１０６および／または１０８からのレジスタビットのうちデータ信号を出力するために用いられるレジスタビットを再選択することができる。
【００３２】
図３は、この発明の一実施例に従う適応入力ロジック１００における制御ロジック１１４の一実現例を示す制御ロジック３００のブロック図を示す。制御ロジック３００は、エッジ検出器３０２、方向検出器３０４、待ちカウンタ３０６、移動カウンタ３０８、およびロックカウンタ３１０を含む。
【００３３】
エッジ検出器３０２は、レジスタ１０６，１０８（たとえば正および負のデータレジスタ）から対応のリード１２６，１２４で送られる出力信号を監視して、レジスタ１０６，１０８からのレジスタビットのすべてにつき、クロックエッジに対するデータ遷移の相対的な場所を判断する。エッジ検出器３０２にはマージン範囲信号（たとえばデジタル信号）が与えられ、クロックエッジからの距離を設定または制御してデータ遷移を探す。
【００３４】
方向検出器３０４は、現在選択されているレジスタビットに対するデータ遷移の相対的な位置を判定する。方向検出器３０４は待ちカウンタ３０６に出力信号を与え、現在選択されているレジスタビットを増加させたり、減少させたり、または変更せずにおいたりする。方向検出器３０４にはラン信号が与えられる。このラン信号は、たとえばアサートされたときには、選択されているレジスタビットを方向検出器３０４が変化させることを可能にし、アサートされていないときには、データ信号の出力に選択されているレジスタビットを方向検出器３０４が変化させることを阻止するものである。さらに、方向検出器３０４にはＤＤＲモード信号が与えられる。ＤＤＲモード信号は、受取られているデータ信号がＳＤＲかＤＤＲか（すなわちレジスタ１０６，１０８のうち監視されるのは一方のみかまたは両方か）を示す。
【００３５】
方向検出器３０４はまた、以前に出力信号で与えた方向指令、すなわち、現在選択されているレジスタビットを増加させるか、減少させるか、変化させずにおくかについての方向指令のうち１つ以上に関しての情報を保持することができる。この情報（たとえばメモリに記憶される）を助けとして、方向検出器３０４は、選択されたレジスタビットでの変化を指令すべきか否かについてより知的な決定を行なうことができる。
【００３６】
たとえば、現在選択されているレジスタビットが、ジッタの生じているクロックエッジに対して近いタイミング関係にある場合、方向検出器３０４は、選択されたレジスタビットごとに、その一方の側そして他方の側にあるクロックエッジを調べて逐次決定していく。これに従って、方向検出器３０４は、たとえば、次のレジスタビットへ増加してクロックエッジから離れる旨の指令を発行し、その後には、ジッタがあることから、より低いレ
ジスタビットへ減少する旨の指令を発行することもある。これに伴ない、方向検出器３０４は、クロックエッジ近くのジッタ区域から離れることができない場合もある。方向検出器３０４による最後の指令でどの方向が選択されたかのがわかっていれば、方向検出器３０４は、たとえば、引続きこの同じ方向で動いてクロック信号のジッタ区域から逃れる（すなわち、データ信号についての選択されたレジスタビットがクロック信号のジッタ区域から完全に出るまで動く）ことを選択するようにしてもよい。
【００３７】
待ちカウンタ３０６は、方向検出器３０４からの命令同士の間の時間の緩衝を与えるために用いられ、時間制御ロジック３００は、データ信号を出力するためのレジスタ１０６，１０８の新たなデータレジスタ位置を選択する。待ちカウンタ３０６は、所望の方向への移動に先立ち方向検出器３０４からの最小数の命令だけ待つ。待ち時間量は選択可能（たとえば入力信号による制御下またはプログラミング可能）とすることができる。待ちカウンタ３０６からは、カウンタ３０８を動かして選択レジスタビットを変更するための出力信号（たとえば命令）が与えられ、その結果データ信号に付加される遅延量に増加または減少がもたらされる（すなわち各々のレジスタビットは異なる遅延量に対応する）。
【００３８】
待ちカウンタ３０６では折返し信号が受取られる。折返し信号がアサートされた場合、待ちカウンタ３０６は、最大または最小の遅延量への到達時に移動カウンタ３０８が反対の最端の遅延設定へ（すなわち最大遅延量から最小遅延量へ、またはその逆）折返しできるようにする。折返し信号がアサートされていなければ、待ちカウンタ３０６は移動カウンタ３０８が折返しすることを阻止する。
【００３９】
移動カウンタ３０８は、データ信号を適切に取得するために付加される正しい遅延量でのレジスタビットを選択する。移動カウンタ３０８で受取られる遅延範囲信号では、総遅延量に合わせて設定可能または調整可能な限界または遅延範囲が設定され、この遅延範囲は任意の数のレジスタビットである。たとえば、遅延範囲信号で総遅延量が設定される。データエッジがこのマージンに侵入し始めた場合、移動カウンタ３０８はこのマージンを維持するために異なるレジスタビットを選択する。移動カウンタ３０８で受取られる遅延設定信号は、（たとえば動的調整でない場合には）データ信号に付加されるべき静的遅延量を設定し、または、動的調整が許されている場合には開始の初期値を与えることができる。
【００４０】
移動カウンタ３０８で受取られるオート信号は、アサートされると、制御ロジック３００が、データ信号−クロック信号関係の関数として、データ信号に付加される入力遅延およびレジスタビット選択を調整（すなわち動的調整）できるようにする。オート信号がアサートされていないとき、データ信号に付加される入力遅延は固定の遅延設定によって設定される（すなわち静的調整）。移動カウンタ３０８は遅延・レジスタ選択信号を出力し、データ信号に付加される遅延量を制御およびマルチプレクサ１１０，１１２からの特定のレジスタビットを選択する（たとえばマルチプレクサ２０２への粗遅延制御信号および微遅延部１０４への微遅延制御信号を制御してマルチプレクサ１１０，１１２を制御する）。
【００４１】
ロックカウンタ３１０は、ラン信号とともに、方向検出器３０４、待ちカウンタ３０６および移動カウンタ３０８を監視し、最小時間量について最小マージン量が満足されたときにロック信号（たとえばリード１２２上のフラグ信号）を生成する。時間およびマージンの量はユーザにより選択可能としてもよい。
【００４２】
たとえば、ロックカウンタ３１０は、方向検出器３０４を監視し、或る期間だけレジスタビットにおいて要求される変化がなされなければロック信号をアサートする。ロック信号が一旦アサートされると、選択されたレジスタビットにおける変化が実行された場合で
もロック信号がアサートされたまま留まるようにすることができる（これはすなわち所望のマージンを維持することを目的とする）。リセットが行なわれた場合、またはビットスワッピングが行なわれた場合には、ロックカウンタ３１０がロックを緩める（すなわちロック信号をデアサートする）ようにすることができる。
【００４３】
図５は、この発明の一実施例に従う適応入力ロジック１００の回路実現例５００を示す。データ信号（「ＤＩＮ」で標示される）は遅延要素５０２に入力される。遅延要素５０２は、粗遅延および微遅延をもたらし（すなわち粗遅延部１０２および微遅延部１０４を含み）、遅延の量は、（それぞれＰＷ［１：０］およびＮＷ（［１：０］制御信号を介した立上りおよび立下がりのクロックエッジデータに対応して）マルチプレクサ５０４，５０６により選択可能であり、その後それぞれレジスタ１０６，１０８による取得がなされる。レジスタ１０６，１０８からの所望のレジスタビットは、それぞれＰＳ制御信号およびＮＳ制御信号を介してマルチプレクサ１１０，１１２により選択される（なお、「ＤＤＲＰ」および「ＤＤＲＮ」の標示は、図１の「データＰ」および「データＮ」の標示に対応する）。
【００４４】
図１の制御ロジック１１４は、図５に示すモジュールＡＩＬＸＯＲ５０８、ＡＩＬＭＵＸ５１０、ＡＩＬＷＡＩＴ５１２、ＡＩＬＭＯＶＥ５１４およびＡＩＬＬＯＣＫ５１６回路ブロックで表わされている。より具体的には、ＡＩＬＸＯＲおよびＡＩＬＭＵＸ回路ブロックは、たとえば実質的に図３のエッジ検出器３０２および方向検出器３０４の各機能を実行するものと見なすことができる。ＡＩＬＷＡＩＴ、ＡＩＬＭＯＶＥおよびＡＩＬＬＯＣＫ回路ブロックは、図３の待ちカウンタ３０６、移動カウンタ３０８およびロックカウンタ３１０に対応しかつ実質的にその各機能を実行するものとして見なすことができる。
【００４５】
図６は、この発明の一実施例に従う、図５の適応入力ロジック回路実現例におけるＡＩＬＸＯＲ５０８の特定の回路実現例を示す。図７は、この発明の一実施例に従う、図５の適応入力ロジック回路実現例におけるＡＩＬＭＵＸ５１０についての特定の回路実現例を示す。
【００４６】
図８は、この発明の一実施例に従う、図５の適応入力ロジック回路実現例におけるＡＩＬＷＡＩＴ５１２の回路実現例を示す。図９は、この発明の一実施例に従う、図５の適応入力ロジック回路実現例におけるＡＩＬＭＯＶＥ５１４の回路実現例を示す。図１０は、この発明の一実施例に従う、図５の適応入力ロジック回路実現例におけるＡＩＬＬＯＣＫ５１６の回路実現例を示す。
【００４７】
入出力インターフェイス規格（たとえばＦＰＧＡ入出力インターフェイス要件）における性能の高速化の要件と、多数の入出力インターフェイス規格に柔軟に対応する必要性とから集積回路の性能要件が増加するのに伴い、この発明における１以上の実施例は、高速入力データを取得するための改良されたシステムおよび方法を提供する。たとえば、一実施例に従うと、入力データに対する集積回路（たとえばＦＰＧＡ）セットアップおよび保持要件が減じられ、ＰＬＬまたはＤＬＬが入力クロックの位相を調整する必要がなくなり、かつ所与の入力パッドからの入力データを独立に調整することが可能となる。
【００４８】
クロックについての異なる位相を選択する従来技術を採用するのに代えて、入力データの遅延を調整する。従来技術の場合、ＰＬＬが多数のクロック信号およびそれに関連したクロックルーティング構造を有することに起因して厳しいレイアウト上の制約が必要となって貴重な回路面積および電力が消費されるおそれがある。したがって、いくつかの実施例に従い、動的および静的な高速入力経路のために入力データ経路すべてを使用し、かつ多数のＰＬＬと、それに対応する、各々の入出力インターフェイスに典型的に関連付けら
れるクロックルーティング構造と（たとえばＰＬＬが所与のデータレートにおける各々の入出力インターフェイス規格に割当てられクロック位相調整を必要とする）が要件とはならない。
【００４９】
１以上の実施例は、データ経路に自己調整遅延技術を採用することによって多数の種類の入出力インターフェイス規格に対応した汎用入出力ブロックとして実現可能である。立上りおよび立下がりのクロックエッジを監視してデータ経路における遅延を調整することによりクロックとデータとの間のスキューについて補償を行なう（たとえばＳＤＲおよびＤＤＲ用途）。遅延をクロックに対して相対的に静的設定および／または動的調整して各々のデータ経路につきデータとクロックとの位相関係を（たとえば個々のパッドごとに）維持することができる。さらに、１以上の実施例は、任意の種類のクロック分配（たとえば汎用またはカスタム分配方式）に対して適用可能である。
【００５０】
上述の各実施例はこの発明を例示するものであり、限定するものではない。さらに、この発明の原理に従い多数の変更および変形が可能であると理解されたい。したがって、この発明の範囲は前掲の特許請求によってのみ画定される。
【図面の簡単な説明】
【００５１】
【図１】この発明の一実施例に従う適応入力ロジックを例示するブロック図である。
【図２】この発明の一実施例に従う適応入力ロジックの一部についての入力データ遅延構造の実現例を示すブロック図である。
【図３】この発明の一実施例に従う適応入力ロジックにおける制御ロジックの実現例を示すブロック図である。
【図４Ａ】この発明の一実施例に従う適応入力ロジックの微遅延部分についての回路実現例を示す図である。
【図４Ｂ】この発明の一実施例に従う適応入力ロジックの微遅延部分についての回路実現例を示す図である。
【図５Ａ】この発明の一実施例に従う適応入力ロジックの回路実現例を示す図である。
【図５Ｂ】この発明の一実施例に従う適応入力ロジックの回路実現例を示す図である。
【図６】この発明の一実施例に従う、図５の適応入力ロジックのＡＩＬＸＯＲ部分についての回路実現例を示す図である。
【図７】この発明の一実施例に従う、図５の適応入力ロジックのＡＩＬＭＵＸ部分についての回路実現例を示す図である。
【図８】この発明の一実施例に従う、図５の適応入力ロジックのＡＩＬＷＡＩＴ部分についての回路実現例を示す図である。
【図９Ａ】この発明の一実施例に従う、図５の適応入力ロジックのＡＩＬＭＯＶＥ部分についての回路実現例を示す図である。
【図９Ｂ】この発明の一実施例に従う、図５の適応入力ロジックのＡＩＬＭＯＶＥ部分についての回路実現例を示す図である。
【図１０】この発明の一実施例に従う、図５の適応入力ロジックのＡＩＬＬＯＣＫ部分についての回路実現例を示す図である。
【図１】
2006516839.tif 000003
【図２】
2006516839.tif 000004
【図３】
2006516839.tif 000005
【図４Ａ】
2006516839.tif 000006
【図４Ｂ】
2006516839.tif 000007
【図５Ａ】
2006516839.tif 000008
【図５Ｂ】
2006516839.tif 000009
【図６】
2006516839.tif 000010
【図７】
2006516839.tif 000011
【図８】
2006516839.tif 000012
【図９Ａ】
2006516839.tif 000013
【図９Ｂ】
2006516839.tif 000014
【図１０】
2006516839.tif 000015
【手続補正書】
【提出日】平成17年8月3日(2005.8.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
回路であって、
第１の信号を受取って、選択可能な遅延を前記第１の信号に付加し、遅延させた第１の信号を出力するように適合された遅延回路を備え、前記遅延させた第１の信号は、各々が異なる遅延を伴って前記遅延回路から同時に提供可能な、前記第１の信号についての複数の遅延させたバージョンを含み、かつ、クロック信号に対して相対的なタイミング関係を有し、前記回路はさらに、
前記遅延回路に結合され、前記遅延させた第１の信号および前記クロック信号を受取って、前記クロック信号のタイミングに基づいて前記遅延させた第１の信号を格納するように適合された第１のレジスタと、
前記第１のレジスタに結合された第１のマルチプレクサと、
前記遅延回路、前記第１のレジスタおよび前記第１のマルチプレクサに結合され、前記クロック信号および前記第１の信号についての前記複数の遅延させたバージョンを監視して、前記遅延回路により付加されるべき前記選択可能な遅延を決定するとともに、各々が異なる遅延量を有する前記第１の信号についての前記複数の遅延させたバージョンのうち前記第１のレジスタから前記第１のマルチプレクサにより選択されて第１の出力信号として出力されるべきものを決定するように適合された、制御回路とを備える、回路。
【請求項２】
前記遅延回路は、前記第１の信号に粗遅延および微遅延を付加して、前記第１の信号についての前記複数の遅延させたバージョンを含む前記遅延させた第１の信号を生成し、前記第１のレジスタは、前記第１の信号についての前記複数の遅延させたバージョンを格納するように適合される、請求項１に記載の回路。
【請求項３】
前記制御回路は、前記第１のレジスタのレジスタビットのうちどれがセットアップおよび保持時間の要件を満足させたかに基づいて、前記第１の信号についての前記複数の遅延させたバージョンのうちいずれか１つを前記第１のレジスタから前記第１のマルチプレクサにより選択する、請求項１に記載の回路。
【請求項４】
さらに、
前記遅延回路に結合され、前記遅延させた第１の信号および前記クロック信号を受取って、前記クロック信号のタイミングに基づいて前記遅延させた第１の信号を格納するように適合された第２のレジスタと、
前記第２のレジスタに結合された第２のマルチプレクサとを備え、前記制御回路は、前記第２のレジスタおよび前記第２のマルチプレクサに結合されて、前記第１の信号についての前記複数の遅延させたバージョンのうち前記第２のレジスタから前記第２のマルチプレクサによって選択されて第２の出力信号として出力されるべきものを決定する、請求項１に記載の回路。
【請求項５】
前記制御回路は、
前記クロック信号のエッジに対して相対的に前記第１の信号の信号遷移エッジを判定するように適合されたエッジ検出器と、
前記エッジ検出器に結合され、前記第１の信号についての前記複数の遅延させたバージョンのうち選択されるべきものを決定するように適合された方向検出器と、
前記方向検出器に結合され、前記第１の信号についての前記複数の遅延させたバージョンのうちの異なるものについての選択を遅延させるように適合された待ちカウンタと、
前記待ちカウンタに結合され、制御信号を出力して前記選択可能な遅延を設定し前記第１および第２のマルチプレクサを制御するように適合された移動カウンタとを含む、請求項４に記載の回路。
【請求項６】
入力信号とクロック信号との間のタイミング関係を与える方法であって、
前記入力信号を受取るステップと、
選択可能な遅延を前記入力信号に付加して、遅延させた入力信号を出力するステップとを含み、前記遅延させた入力信号は、各々が異なる遅延を伴って同時に提供可能な、前記入力信号についての複数の遅延させたバージョンを含み、かつ、前記クロック信号に対して相対的なタイミング関係を有し、前記方法はさらに、
前記クロック信号のタイミングに基づいて前記クロック信号の立上りエッジおよび立下がりエッジにおいて前記遅延させた入力信号を格納するステップと、
前記入力信号についての前記複数の遅延させたバージョンを監視することによって、前記遅延させた入力信号に状態遷移が生じたか否かを判断するステップとを含む、方法。
【請求項７】
さらに、
前記クロック信号、および前記入力信号についての前記複数の遅延させたバージョンを監視するステップと、
付加されるべき前記選択可能な遅延、および、各々が異なる遅延量を有する前記入力信号についての前記複数の遅延させたバージョンのうち選択されて出力信号として出力されるべきもの、を決定するステップとを含む、請求項６に記載の方法。
【請求項８】
回路であって、
第１の信号を受取って、選択可能な遅延を前記第１の信号に付加し、遅延させた第１の信号を出力するように適合された遅延回路を備え、前記遅延させた第１の信号は、各々が異なる遅延を伴って前記遅延回路から同時に提供可能な、前記第１の信号についての複数の遅延させたバージョンを含み、かつ、クロック信号に対して相対的なタイミング関係を有し、前記選択可能な遅延は、粗遅延成分および微遅延成分を含み、前記微遅延成分は、前記粗遅延成分により与えられ得るよりも短い遅延期間を有し、前記回路はさらに、
前記遅延回路に結合され、前記遅延させた第１の信号および前記クロック信号を受取って、前記クロック信号のタイミングに基づいて前記遅延させた第１の信号を格納するように適合された第１のレジスタと、
前記遅延回路および前記第１のレジスタに結合され、前記第１のレジスタに格納された前記第１の信号についての前記複数の遅延させたバージョンの監視に基づいて、前記遅延
回路によって前記第１の信号に付加されるべき前記選択可能な遅延を決定するように適合された制御回路とを備える、回路。
【請求項９】
前記制御回路は、前記第１のレジスタに格納された前記第１の信号についての前記複数の遅延させたバージョンを監視することによって、前記遅延させた第１の信号に状態遷移が生じたか否かを判断するように適合される、請求項８に記載の回路。
【請求項１０】
前記制御回路は、決定された選択遅延を前記遅延回路に通信するように適合され、前記遅延回路は、前記通信に応答して前記遅延回路での遅延を調整するように適合される、請求項８に記載の回路。
【国際調査報告】
2006516839.tif 000016
2006516839.tif 000017