(57)【特許請求の範囲】
【請求項１】
カスケード入力部およびクロック入力部を含む入力ステージであって、前記カスケード入力部で受信した信号または前記クロック入力部で受信した信号を選択的に送る入力ステージと、
前記入力ステージの出力部に結合され、前記入力ステージから送られた前記信号に、選択された量の遅延を適用することによって遅延信号を発生させるように構成された遅延ブロックと、
前記遅延ブロックの出力部に結合され、前記遅延ブロックによって適用される前記遅延の量に依存するパルス幅を有する反転した状態のパルス信号を発生させるように構成されたパルス発生器と、
前記パルス発生器の出力部に結合された出力ステージであって、プログラマブル遅延回路ブロックのためのカスケード出力部およびクロック出力部を含む出力ステージと
を含み、
前記出力ステージが、前記パルス信号または前記遅延信号を前記カスケード出力部から選択的に送り、かつ、前記クロック入力部で受信した前記信号またはカスケード出力部から送られた同じ信号を、クロック出力部から選択的に送る、プログラマブル遅延回路ブロック。
【請求項２】
前記入力ステージが、メモリセルを含み、前記メモリセルに格納された値に従って、前記カスケード入力部の前記信号または前記クロック入力部で受信した前記信号のいずれかを選択的に送る、請求項１に記載のプログラマブル遅延回路ブロック。
【請求項３】
前記入力ステージが、メモリセルに格納された値に従って、前記クロック入力部で受信した前記信号を選択的にゲート制御する、請求項１に記載のプログラマブル遅延回路ブロック。
【請求項４】
前記パルス発生器が、反転した状態の前記遅延信号と、前記クロック入力部で受信した前記信号とから反転した状態の前記パルス信号を発生させるＮＡＮＤ回路を含む、請求項１から３のいずれか一項に記載のプログラマブル遅延回路ブロック。
【請求項５】
前記遅延ブロックが、
複数のタップを有し、複数の遅延信号候補を発生させる遅延線と、
前記複数の遅延信号候補のうちの１つを前記遅延信号として送る遅延選択部ブロックと
を備える、請求項１から４のいずれか一項に記載のプログラマブル遅延回路ブロック。
【請求項６】
前記遅延選択部ブロックが、メモリセルおよび反転マルチプレクサを含み、
前記反転マルチプレクサが、前記メモリセルに格納された値に従って、前記複数の遅延信号候補から前記遅延信号を選択し、前記遅延信号を送り、かつ反転させて、反転した状態の前記遅延信号を発生させる、請求項５に記載のプログラマブル遅延回路ブロック。
【請求項７】
前記出力ステージが、複数のメモリセル、マルチプレクサ、および反転マルチプレクサをさらに含み、
前記マルチプレクサが、前記複数のメモリセルのうちの第１のメモリセルに格納された値に従って、反転した状態の前記パルス信号または反転した状態の前記遅延信号を、インバータを介して前記カスケード出力部に送り、
前記反転マルチプレクサが、前記第１のメモリセルに格納された前記値および前記複数のメモリセルのうちの第２のメモリセルに格納された値に従って、反転した状態の前記クロック入力部で受信した前記信号、前記反転した状態の前記パルス信号、または前記反転した状態の前記遅延信号を、前記クロック出力部に送り、かつ反転させる、請求項４から６のいずれか一項に記載のプログラマブル遅延回路ブロック。
【請求項８】
第１のカスケード入力部および第１のクロック入力部を含み、前記第１のカスケード入力部または前記第１のクロック入力部で受信した信号を選択的に送る第１の入力ステージと、前記第１の入力ステージの出力部に結合された第１の遅延ブロックであって、前記第１の入力ステージから送られた前記信号に、選択された量の遅延を適用して第１の遅延信号を発生させる第１の遅延ブロックと、前記第１の遅延ブロックの出力部に結合され、かつ選択されたパルス幅を有する反転した状態の第１のパルス信号を発生させるように構成された第１のパルス発生器と、前記第１のパルス発生器の出力部に結合された第１の出力ステージであって、前記第１のパルス信号または前記第１の遅延信号を選択的に出力する第１のカスケード出力部と、前記第１のクロック入力部で受信した信号または前記第１のカスケード出力部から出力された同じ信号を選択的に出力する第１のクロック出力部とを含む第１の出力ステージとを備えた第１のプログラマブル遅延回路ブロックと、
第２のカスケード入力部および第２のクロック入力部を含み、前記第２のカスケード入力部または前記第２のクロック入力部で受信した信号を選択的に送る第２の入力ステージと、前記第２の入力ステージの出力部に結合された第２の遅延ブロックであって、前記第２の入力ステージから送られた前記信号に、選択された量の遅延を適用して第２の遅延信号を発生させる第２の遅延ブロックと、前記第２の遅延ブロックの出力部に結合され、かつ選択されたパルス幅を有する反転した状態の第２のパルス信号を発生させるように構成された第２のパルス発生器と、前記第２のパルス発生器の出力部に結合された第２の出力ステージであって、前記第２のパルス信号または前記第２の遅延信号を選択的に出力する第２のカスケード出力部と、前記第２のクロック入力部で受信した信号または前記第２のカスケード出力部から出力された同じ信号を選択的に出力する第２のクロック出力部とを含む第２の出力ステージとを備えた第２のプログラマブル遅延回路ブロックと
を含み、
前記第１のパルス信号は、前記第１の入力ステージから送られる信号に適用された、前記選択された量の遅延に少なくとも部分的に依存するパルス幅を有し、
前記第２のパルス信号は、前記第２の入力ステージから送られる信号に適用された、前記選択された量の遅延に少なくとも部分的に依存するパルス幅を有し、
前記第１のカスケード出力部が、前記第２のカスケード入力部に結合されている、クロック回路。
【請求項９】
前記第１のプログラマブル遅延回路ブロックが、第１のクロック信号を遅延させ、前記遅延させた第１のクロック信号を、前記第１のカスケード出力部を介して出力し、
前記第２のプログラマブル遅延回路ブロックが、前記遅延させた第１のクロック信号を、前記第２のカスケード入力部を介して受信し、前記遅延させた第１のクロック信号をさらに遅延させる、請求項８に記載のクロック回路。
【請求項１０】
前記第１のクロック信号が、前記第１のカスケード入力部で前記第１のプログラマブル遅延回路ブロックに受信され、
前記第１のプログラマブル遅延回路ブロックが、第２のクロック信号を、前記第１のクロック信号とは独立して、前記第１のクロック入力部において受信し、遅延を適用することなく、前記第２のクロック信号を前記第１のクロック出力部から出力する、請求項９に記載のクロック回路。
【請求項１１】
前記第１のプログラマブル遅延回路ブロックが、第１のクロック信号を遅延させ、前記遅延させた第１のクロック信号を、前記第１のカスケード出力部を介して出力し、
前記第２のプログラマブル遅延回路ブロックが、前記遅延させた第１のクロック信号を、前記第２のカスケード入力部において受信し、前記遅延させた第１のクロック信号をさらに遅延させ、前記さらに遅延させた第１のクロック信号を使用して第２のパルス信号を発生させ、前記第２のパルス信号を出力する、請求項８に記載のクロック回路。
【請求項１２】
前記第２のプログラマブル遅延回路ブロックが、第２のクロック信号を、前記第１のクロック信号とは独立して、前記第２のクロック入力部において受信し、前記第２のクロック信号および前記さらに遅延させた第１のクロック信号を前記第２のパルス発生器内で使用して、前記第２のパルス信号を発生させる、請求項１１に記載のクロック回路。
【請求項１３】
前記第１のプログラマブル遅延回路ブロックが、受信したクロック信号から前記第１のパルス信号を発生させ、前記第１のパルス信号を、前記第１のカスケード出力部を介して出力し、
前記第２のプログラマブル遅延回路ブロックが、前記第１のパルス信号を前記第２のカスケード入力部において受信し、前記第１のパルス信号を遅延させ、前記遅延させた第１のパルス信号を出力する、請求項８に記載のクロック回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は集積回路（ＩＣ）に関し、より詳細には、ＩＣ内で使用するためのプログラマブル遅延回路ブロックに関する。
【背景技術】
【０００２】
集積回路（ＩＣ）は、より一段と小さい寸法を用いて製造されている。より小さい寸法を用いることの１つの結果としては、配線リソースの抵抗および容量が大きくなることがある。抵抗および容量の増加によって信号の遅延が大きくなり、これが次いで回路におけるセットアップおよびホールドのタイミング違反を招くおそれがある。セットアップおよびホールドの違反は、正しい回路動作を妨げ、しばしば回路性能を高める上での制約要因となる。
【０００３】
多くのＩＣのクロックアーキテクチャはあまり柔軟性がなく、現代の回路設計の厳しいタイミング要件を満たすことができないおそれがある。多くの場合、利用可能なクロックアーキテクチャは、内部を伝搬するクロック信号に対する適切なレベルの制御をもたらさない。
【発明の概要】
【０００４】
いくつかの態様では、プログラマブル遅延回路ブロックが説明されている。プログラマブル遅延回路ブロックは、カスケード入力部およびクロック入力部を有する入力ステージを含み、入力ステージは、カスケード入力部で受信した信号またはクロック入力部で受信した信号を送る。プログラマブル遅延回路ブロックはさらに、入力ステージから送られた信号に、選択された量の遅延を適用することによって遅延信号を発生させるように構成された遅延ブロックと、遅延の量に依存するパルス幅を有するパルス信号を発生させるように構成されたパルス発生器とを含んでいてもよい。プログラマブル遅延部はまた、カスケード出力部およびクロック出力部を有する出力ステージを含む。出力ステージは、パルス信号または遅延信号をカスケード出力部から送り、クロック入力部で受信した信号、パルス信号、または遅延信号をクロック出力部から送るように構成されている。
【０００５】
任意選択により、入力ステージは、メモリセルを含んでいてもよく、メモリセルに格納された値に従って、カスケード入力部の信号またはクロック入力部で受信した信号のいずれかを送ることができる。
【０００６】
任意選択により、入力ステージは、メモリセルに格納された値に従って、クロック入力部で受信した信号を選択的にゲート制御することができる。
【０００７】
任意選択により、パルス発生器は、反転した状態の遅延信号と、クロック入力部で受信した信号とからパルス信号を発生させるＮＡＮＤ回路を含んでいてもよい。
【０００８】
任意選択により、遅延ブロックは、複数のタップを有し、複数の遅延信号候補を発生させる遅延線と、複数の遅延信号候補のうちの１つを遅延信号として送る遅延選択部ブロックとを含んでいてもよい。
【０００９】
任意選択により、遅延線は、２進の重みが付けられていてもよい。
【００１０】
任意選択により、遅延選択部ブロックは、メモリセルおよび反転マルチプレクサを含んでいてもよく、反転マルチプレクサは、メモリセルに格納された値に従って、複数の遅延信号候補から遅延信号を選択する。
【００１１】
任意選択により、出力ステージは、複数のメモリセル、マルチプレクサ、および反転マルチプレクサをさらに含んでいてもよい。マルチプレクサは、複数のメモリセルのうちの第１のメモリセルに格納された値に従って、パルス信号または反転した状態の遅延信号をカスケード出力部に送り、反転マルチプレクサは、第１のメモリセルに格納された値および複数のメモリセルのうちの第２のメモリセルに格納された値に従って、クロック入力部で受信した信号、パルス信号、または反転した状態の遅延信号を、反転した状態でクロック出力部に送る。
【００１２】
いくつかの他の態様では、クロック回路が説明されている。クロック回路は、第１のカスケード入力部、第１のクロック入力部、複数のタップを有する第１の遅延線、第１のパルス発生器、第１のカスケード出力部、および第１のクロック出力部を有する第１のプログラマブル遅延回路ブロックと、第２のカスケード入力部、第２のクロック入力部、複数のタップを有する第２の遅延線、第２のパルス発生器、第２のカスケード出力部、および第２のクロック出力部を有する第２のプログラマブル遅延回路ブロックとを含む。第１のカスケード出力部は、第２のカスケード入力部に結合されている。
【００１３】
任意選択により、第１のカスケード出力部は、第１のパルス発生器によって発生させられた第１のパルス信号または第１の遅延線によって発生させられた第１の遅延信号を反転した状態で送ることができる。第２のカスケード出力部は、第２のパルス発生器によって発生させられた第２のパルス信号または第２の遅延線によって発生させられた第２の遅延信号を反転した状態で送ることができる。第１のクロック出力部は、第１のクロック入力部で受信した信号、反転した状態の第１のパルス信号、または第１の遅延信号を送ることができ、第２のクロック出力部は、第２のクロック入力部で受信した第２の信号、反転した状態の第２のパルス信号、または第２の遅延信号を送る。
【００１４】
任意選択により、第１のパルス発生器は、第１の遅延線によって信号に適用された遅延の量に依存するパルス幅を有する第１のパルス信号を発生させることができ、第２のパルス発生器は、第２の遅延線によって信号に適用された遅延の量に依存するパルス幅を有する第２のパルス信号を発生させることができる。
【００１５】
任意選択により、第１のプログラマブル遅延部は、第１のクロック信号を遅延させ、遅延させた第１のクロック信号を、第１のカスケード出力部を介して出力することができ、第２のプログラマブル遅延部は、遅延させた第１のクロック信号を、第２のカスケード入力部を介して受信することができ、遅延させた第１のクロック信号をさらに遅延させることができる。
【００１６】
任意選択により、第１のプログラマブル遅延部は、遅延を適用することなく、第１のクロック信号を第１のクロック出力部からさらに出力してもよい。
【００１７】
任意選択により、第１のクロック信号は、第１のカスケード入力部で第１のプログラマブル遅延部に受信されてもよく、第１のプログラマブル遅延部は、第２のクロック信号を、第１のクロック信号とは独立して、第１のクロック入力部において受信することができ、遅延を適用することなく、第２のクロック信号を第１のクロック出力部から出力する。
【００１８】
任意選択により、第１のプログラマブル遅延部は、第１のクロック信号を遅延させ、遅延させた第１のクロック信号を、第１のカスケード出力部を介して出力し、第２のプログラマブル遅延部は、遅延させた第１のクロック信号を第２のカスケード入力部において受信し、遅延させた第１のクロック信号をさらに遅延させ、さらに遅延させた第１のクロック信号を使用してパルス信号を発生させ、反転した状態のパルス信号を出力する。
【００１９】
任意選択により、第１のプログラマブル遅延部は、第１のクロック信号を遅延なしで第１のクロック出力部を介してさらに出力する。
【００２０】
任意選択により、第２のプログラマブル遅延部は、第２のクロック信号を、第１のクロック信号とは独立して、第２のクロック入力部において受信し、第２のクロック信号およびさらに遅延させた第１のクロック信号をパルス発生器内で使用して、パルス信号を発生させる。
【００２１】
任意選択により、第１のプログラマブル遅延部は、受信したクロック信号からパルス信号を発生させ、反転した状態のパルス信号を、第１のカスケード出力部を介して出力し、第２のプログラマブル遅延部は、反転した状態のパルス信号を第２のカスケード入力部において受信し、反転した状態のパルス信号を遅延させ、遅延させた反転した状態のパルス信号を出力する。
【００２２】
任意選択により、第１のプログラマブル遅延部は、反転した状態のパルス信号を第１のクロック出力部からさらに出力する。
【００２３】
任意選択により、第１のカスケード出力部は、固定回路構成を使用して、第２のカスケード入力部に結合されている。
【００２４】
この発明の概要のセクションは、特許請求される主題の何らかの主要または本質的な特徴を特定するためではなく、ある種の概念を導入するために提示されているにすぎない。本発明の配置構成の他の特徴は、添付の図面および以下の詳細な説明から明らかとなろう。
【００２５】
本発明の配置構成を添付の図面に一例として示している。ただし図面は、図示した特定の実装形態のみに本発明の配置構成を限定するものとして解釈されるべきではない。さまざまな態様および利点は、以下の詳細な説明を検討し、図面を参照することで明らかになろう。
【図面の簡単な説明】
【００２６】
【図１】例示的なプログラマブル遅延回路ブロック（プログラマブル遅延部）を示す回路図である。
【図２】図１を参照して説明するプログラマブル遅延部の１つまたは複数を使用して実現される例示的な遅延を示す表である。
【図３】プログラマブル遅延部を使用した例示的なカスケードアーキテクチャを示す回路図である。
【図４】プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。
【図５】プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。
【図６】プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。
【図７】プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。
【図８】プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。
【図９】プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。
【図１０】プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す構成図である。
【図１１】プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す構成図である。
【図１２】クロックアーキテクチャを集積回路（ＩＣ）内に実装する方法を示すフローチャートである。
【図１３】ＩＣの例示的なアーキテクチャを示す構成図である。
【発明を実施するための形態】
【００２７】
本開示は、新規な特徴を規定した特許請求の範囲を結びとしているが、本開示内に記載されたさまざまな特徴は、図面と併せて記載内容を検討することで、より深く理解されると考えられる。プロセス、機械、製造品および本明細書に記載のそのいずれの変形も、例示のために提示している。本開示内に記載された具体的な構造上および機能上の詳細は、限定として解釈されるべきではなく、単に特許請求の範囲の基礎として、また事実上すべての適切に詳述された構造で記載される特徴をさまざまに用いるように当業者に教示するための代表的な基礎として解釈されるべきである。さらに、本開示内で使用する用語および語句は、限定が意図されているのではなく、むしろ、記載される特徴についての理解できる記述を提示することが意図されている。
【００２８】
本開示は集積回路（ＩＣ）に関し、より詳細には、ＩＣ内で使用するためのプログラマブル遅延回路ブロックに関する。本明細書に開示された本発明の配置構成に従って、クロック信号およびクロック信号発生に対する柔軟性および制御性の向上をもたらすプログラマブル遅延回路ブロックが記載されている。一態様では、クロック信号のスキューを制御することができる。別の態様では、プログラマブルなパルス幅を有するパルス信号を発生させることができる。
【００２９】
プログラマブル遅延回路ブロックは、カスケード入力部およびカスケード出力部を備えることによって、複数のプログラマブル遅延回路ブロックを一続きにデイジーチェーン接続することを可能にしており、クロック信号に適用され得る遅延の漸増量に対する制御を向上させるだけでなく、単一のプログラマブル遅延回路ブロックで個別に可能なものよりも大きい遅延をクロック信号に適用できるようになっている。以下、図面を参照しながらさらに詳述する。
【００３０】
本明細書に記載の本発明の配置構成は、ＩＣとして、ＩＣ内の回路構成として、１つまたは複数の再使用可能な回路ブロックなど、として実装することができる。一態様では、本発明の配置構成は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または少なくとも何らかのプログラマブル回路構成を備える他のタイプのＩＣなどのプログラマブルＩＣ内の回路構成の形で実装することができる。別の態様では、本発明の配置構成は、電子設計自動化（ＥＤＡ）システムによって利用されるときに、回路設計に組み込まれ、ＩＣの一部として製造されてもよい回路構成のデジタル記述を格納した非一時的コンピュータ可読記憶媒体として実装することができる。さらなる態様では、１つもしくは複数のプログラマブル遅延回路ブロックを使用して実施される信号を処理する方法として、かつ／またはＩＣ内にクロックアーキテクチャを実装する方法として実装することができる。
【００３１】
例示を簡単かつ明瞭にするために、図面に示した要素は、必ずしも原寸に比例して描かれているわけではない。たとえば、分かりやすくするために、要素の一部の寸法は、他の要素に対して強調させていることがある。さらに、適切と考えられる場合に、対応する、類似の、または同様の特徴を示すために、各図面の中で参照番号を繰り返している。
【００３２】
図１は、例示的なプログラマブル遅延回路ブロック（プログラマブル遅延部）１００を示す回路図である。プログラマブル遅延部１００は、入力ステージ１０２、遅延ブロック１０４、パルス発生器１０６、および出力ステージ１０８を備える。遅延ブロック１０４は、遅延線１２４および遅延選択部１２６で形成されている。さらに、プログラマブル遅延部１００は複数のメモリセル１１０を含む。一態様では、メモリセル１１０は、構成データを読み込んだ構成メモリセルである。構成データは、回路ブロック１００の１つまたは複数を含むＩＣに読み込まれて、１の値または０の値のいずれかを各メモリセル１１０に格納し、これによってプログラマブル遅延部１００を動作するように構成することができる。
【００３３】
入力ステージ１０２は２つの入力部を含む。第１の入力部は、図１に「Ｃｓｃ  Ｉｎ」として示したカスケード入力部１１２である。第２の入力部は、図１に「Ｃｌｋ  Ｉｎ」として示したクロック入力部１１４である。カスケード入力１１２は、インバータ１１５の入力部に提供される。インバータ１１５の出力は、マルチプレクサ１１６の第１の入力部に提供される。マルチプレクサ１１６は反転マルチプレクサである。クロック入力１１４は、ＮＡＮＤ回路１１８の第１の入力部に提供される。ＮＡＮＤ回路１１８の出力はマルチプレクサ１１６の第２の入力部に提供される。メモリセルＭＣ［４］に格納された値は、マルチプレクサ１１６が遅延ブロック１０４の遅延線１２４に、カスケード入力部１１２で受信した信号を送るか、ＮＡＮＤ回路１１８から出力された信号を送るかを決定する。マルチプレクサ１１６によって送られる信号は、遅延線１２４に入る前に反転される。
【００３４】
ＮＡＮＤ回路１１８の第２の入力部は、ＮＡＮＤ回路１２０またはＮＡＮＤ回路１２２のいずれかから出力を受信する。描かれているように、ＮＡＮＤ回路１２０は、メモリセルＭＣ［２］およびＭＣ［３］から取得した値に対して論理ＮＡＮＤ演算を実施する。ＮＡＮＤ回路１２０は、クロック入力部１１４で受信した信号をゲート制御するか、またはクロック入力部１１４で受信した信号をマルチプレクサ１１６に送ることができる。ＮＡＮＤ回路１２２は、メモリセルＭＣ［２］、ＭＣ［３］、およびＭＣ［４］に格納されている値に対して論理ＮＡＮＤ演算を実施する。ＮＡＮＤ回路１２２は、クロック入力部１１４で受信した信号をゲート制御するか、またはクロック入力部１１４で受信した信号をマルチプレクサ１１６に送ることができる。
【００３５】
クロック入力部１１４で受信した信号を、ＮＡＮＤ回路１２０を使用してゲート制御することに関して、メモリセル１１０は、ＭＣ［２］およびＭＣ［３］が１の値にセットされたときに、ＮＡＮＤ回路１２０からの出力がロジック０になるように構成されてもよい。クロック入力部１１４で受信した信号を、ＮＡＮＤ回路１２２を使用してゲート制御する場合、メモリセル１１０は、ＭＣ［２］、ＭＣ［３］、およびＭＣ［４］が１の値にセットされたときに、ＮＡＮＤ回路１２２からの出力がロジック０になるように構成されてもよい。ロジック０がＮＡＮＤ回路１１８の第２の入力部に提供されると、ＮＡＮＤ回路１１８の出力は、クロック入力部１１４で受信した信号の値にかかわらず、常にロジック１となる。したがって、クロック入力部１１４はゲート制御される。マルチプレクサ１１６の出力はロジック０となり、これによって、遅延線１２４が必要でない、かつ／または使用されていないときに動的電力を減少させるように遅延線１２４が切り替わることを防ぐ。
【００３６】
ＮＡＮＤ回路１２０とＮＡＮＤ回路１２２は代替として設けられる。一態様では、遅延線１２４は、プログラマブル遅延部１００からＮＡＮＤ回路１２２を除いた状態で、２入力部のＮＡＮＤ回路１２０を使用してゲート制御することができる。ＮＡＮＤ回路１２０を使用し、遅延線１２４をゲート制御することで、グラウンドまでの遅延線１２４がゲート制御される。２入力部のＮＡＮＤ回路１２０が要する区域は３入力部のＮＡＮＤ回路１２２よりも小さいが、使用されるメモリセル１１０が少なくなるにつれて、プログラマブル遅延部１００の構成が少なくなる。たとえば、本明細書において図９に示したクロックアーキテクチャは、ＮＡＮＤ回路１２０を使用して実装されなくてもよい。
【００３７】
別の態様では、遅延線１２４は、プログラマブル遅延部１００からＮＡＮＤ回路１２０を除いた状態で、３入力部のＮＡＮＤ回路１２２を使用してゲート制御することができる。上記のように、３入力部のＮＡＮＤ回路１２２の使用は、ＮＡＮＤ回路１２０を使用するよりも大きい区域を要するが、プログラマブル遅延部１００の構成は多くなる。たとえば、ＮＡＮＤ回路１２２を使用して、図９に示したクロックアーキテクチャを実装してもよい。
【００３８】
上記のように、遅延ブロック１０４は、遅延線１２４および遅延選択部１２６を含む。遅延線１２４は、マルチタップの遅延線として実装されてもよい。遅延線１２４はさらに２進の重みが付けられている。図１の例では、遅延線１２４は、バッファ１２５から形成されている。遅延線１２４からの出力タップには、Ｙ１、Ｙ２、Ｙ４、およびＹ８を付している。一態様では、出力タップＹ１は、遅延線１２４に入る任意の信号に５０ピコ秒の遅延を適用することができる。出力タップＹ２は、遅延線１２４に入る任意の信号に１００ピコ秒の遅延を与えることができる。出力タップＹ４は、遅延線１２４に入る任意の信号に２００ピコ秒の遅延を与えることができる。出力タップＹ８は、遅延線１２４に入る任意の信号に４００ピコ秒の遅延を与えることができる。その他の遅延量が与えられてもよい。本明細書において与えられる遅延量は例示的なものであり、限定は意図されていない。
【００３９】
一態様では、遅延線１２４内にバッファ１２５を含めることで、クロックアーキテクチャ内の既存のバッファをバッファ１２５に置き換えることが可能になる。より具体的には、クロックアーキテクチャの１つまたは複数のバッファは、遅延線１２４内のバッファ１２５の使用によって省略することができ、これによって、ＩＣ内のクロックアーキテクチャに必要な区域が減少する。
【００４０】
遅延選択部１２６は、出力タップＹ１、Ｙ２、Ｙ４、およびＹ８のそれぞれを受信する。メモリセル１１０、具体的にはメモリセルＭＣ［０］およびＭＣ［１］内の適切な値を読み込むことによって、出力タップＹ１、Ｙ２、Ｙ４、またはＹ８のうちの特定の１つが信号１３４として選択され、送られる。メモリセルＭＣ［０］は、マルチプレクサ１２８および１３０を制御する。マルチプレクサ１２８は、メモリセルＭＣ［０］に格納された値に応じて、出力タップＹ１またはＹ２のいずれかを送る。マルチプレクサ１３０は、メモリセルＭＣ［０］に格納された値に応じて、出力タップＹ４またはＹ８のいずれかを送る。マルチプレクサ１３２は、メモリセルＭＣ［１］に格納された値に従って、信号１３４として選択された出力タップを送る。マルチプレクサ１３２は反転マルチプレクサである。したがって、信号１３４は、マルチプレクサ１３２によって送られる反転した状態の信号である。本明細書に定義されるように、信号に関しての用語「送る」は、「出力する」および／または「発生させる」を意味する。たとえば、反転マルチプレクサが信号を送るということは、反転マルチプレクサが信号を選択し、選択した信号を反転し、選択して反転した信号を出力することを指す。
【００４１】
パルス発生器１０６はＮＡＮＤ回路１３６を含む。描かれているように、ＮＡＮＤ回路１３６は、遅延選択部１２６からの信号１３４を第１の入力として受信する。ＮＡＮＤ回路１３６は、クロック入力１１４を第２の入力としてさらに受信する。ＮＡＮＤ回路１３６は、信号１３４、すなわち、出力タップＹ１、Ｙ２、Ｙ４、またはＹ８と、クロック入力１１４とに対して論理ＮＡＮＤ演算を実施することによって、選択されたパルス幅を有するパルス信号１３８を発生させる。パルス幅はプログラマブルであり、特定の出力タップに、すなわち、信号１３４として選択されパルス発生器１０６に送られる、遅延線１２４を通って処理される信号に適用される遅延の量に依存する。
【００４２】
一態様では、カスケード入力部１１２で受信された信号は、遅延線１２４に送られ、次いで信号１３４としてパルス発生器１０６に送られてもよい。カスケード入力部１１２で受信される信号は、前にある別のプログラマブル遅延部からの遅延信号であってもよい。カスケード入力部１１２で受信された信号を遅延線１２４を通ってさらに遅延させ、このさらに遅延させた状態の信号を、選択された出力タップから信号１３４としてパルス発生器１０６に送ることによって、他の方法で達成できるものよりも広い幅のパルスを有するパルス信号を生成することができる。パルス発生器１０６は、遅延線１２４を通って処理される信号の立ち上がりエッジを、パルス信号１３８の立ち上がりエッジとして使用することができる。パルス信号１３８は反転されているので、パルス信号１３８は、インバータ１４６またはマルチプレクサ１４８によって反転されて正しいセンスに戻される。描かれているように、マルチプレクサ１４８は反転マルチプレクサである。たとえば、ＮＡＮＤ回路１３６は、信号１３４の立ち上がりエッジを使用して、たとえばセンス補正の後にマルチプレクサ１４８から出力されるパルスの立ち下がりエッジを発生させる。センス補正されたプログラマブル遅延部１００からの出力としてパルス信号１３８を提供することによって、１つまたは複数の下流の同期回路素子、たとえばフリップフロップは、センス補正されたパルス信号１３８によってクロック制御されるとき、タイムボローイング動作を可能にするために選択的にラッチに変換されてもよい。本明細書内では、プログラマブル遅延部１００からの出力として発生したパルス信号を指すときは、反転した状態のパルス信号１３８、すなわち、マルチプレクサ１４８から出力されるセンス補正されたパルス信号を意味する。
【００４３】
出力ステージ１０８は、多種多様な出力オプションを備えている。出力ステージ１０８は、クロック入力１１４をインバータ１４０で受信する。出力ステージ１０８は、パルス信号１３８をマルチプレクサ１４２の入力部で受信する。出力ステージ１０８は、マルチプレクサ１３２からの信号１３４をマルチプレクサ１４２の別の入力部で受信する。マルチプレクサ１４２は、Ｙ１、Ｙ２、Ｙ４、またはＹ８のいずれかであるパルス信号１３８または信号１３４を、出力として信号１４４の形態で送る。マルチプレクサ１４２は、メモリセルＭＣ［２］に格納されている値に基づいて、パルス信号１３８または信号１３４を送る。
【００４４】
信号１４４は、インバータ１４６の入力部とマルチプレクサ１４８の第１の入力部の両方に提供される。インバータ１４６の出力部は、「Ｃｓｃ  Ｏｕｔ」として描かれたカスケード出力１４８を提供する。マルチプレクサ１４８は、反転した状態のクロック信号１１４である信号１５０を第２の入力部で受信する。マルチプレクサ１４８は、メモリセルＭＣ［３］に格納された値に基づいて、信号１４４または信号１５０のいずれかを送り、送られる信号を反転してクロック出力１５２とする。遅延させられていないときに、クロック入力部１１４からインバータ１４０を通過し、マルチプレクサ１４８に至る中で処理されるクロック信号のための経路は、ジッタを最小限にするために低閾値のトランジスタを経路内で利用することができる。
【００４５】
プログラマブル遅延部１００は、クロック信号を歪ませ、かつ／またはプログラマブルな長さのパルス幅を有するパルス信号を発生させるために、ＩＣクロックアーキテクチャ内で使用されてもよい。複数のプログラマブル遅延部１００がＩＣクロックアーキテクチャに組み込まれているとき、プログラマブル遅延部のうち、これ以外の場合には使用されず、別のプログラマブル遅延部に隣接しているものは、カスケード入力部とカスケード出力部を使用してカスケード接続されていてもよい。クロック入力部１１４またはカスケード入力部１１２のいずれかに遅延線１２４が結合することを可能にするマルチプレクサが使用され、この結合先は、別の異なるプログラマブル遅延部のカスケード出力部に結合させることができる。カスケード接続されたプログラマブル遅延部は、これ以外の場合に可能なものと比べて、より細かいレベルの細分性でより大きい遅延を作り出すことを容易にする多様な接続を可能にすることができる。
【００４６】
さらに、プログラマブル遅延部１００はスキュー調整のためにクロック信号を処理し、パルス信号を発生させ、このパルス信号はいずれも、カスケード接続された別のプログラマブル遅延部においてさらに遅延させられてもよいので、位相シフトされたクロックおよび位相シフトされたパルス信号は、ＩＣ内での余分なクロックトラックの使用を必要とすることなく、プログラマブル遅延部１００をＩＣ全体でクロックアーキテクチャの一部として葉ノードに分散させることによって、クロックアーキテクチャの葉に発生させることができる。そのような配置構成は、電力と、複数の位相シフトされた状態の同じクロック信号を利用する回路構成の区域とを節約する。
【００４７】
図２は、図１を参照しながら説明したプログラマブル遅延部の１つまたは複数を使用して実現される例示的な遅延を示す表２００である。「プログラマブル遅延部の数」と題した左列は、「実現される遅延」と題した右列内の遅延の総量を実現するために、たとえばカスケード接続またはデイジーチェーン接続されるなどして、一続きに使用されなければならないプログラマブル遅延部の数を示す。「遅延寄与」と題した中央列は、一続きに接続された個々のプログラマブル遅延部のそれぞれが寄与する遅延の量を示す。
【００４８】
遅延線１２４における２進重み付けにより、各プログラマブル回路は、わずか５０ピコ秒の遅延から最大４００ピコ秒の遅延に寄与することができる。表２００に示されているように、４つのプログラマブル遅延部を互いにカスケード接続することによって、１，０５０ピコ秒を超える遅延が実現できる。カスケードアーキテクチャを使用して１つまたは複数のプログラマブル遅延部によって適用される遅延の量は５０ピコ秒ずつ増加し、これはプログラマブル遅延部１００のうちの１つによって適用され得る最小の遅延である。
【００４９】
図３〜９は、メモリセル内に適切な値を格納することによって実装できる例示的なカスケードアーキテクチャを示す。図３〜９内では、図示したプログラマブル遅延部を通るアクティブ状態の信号経路は、ワイヤ（信号）および端子について太線を使用して示している。図３〜９内に示したプログラマブル遅延部は、例示しやすくするために簡略化している。インバータやメモリセルなどの種々の回路素子は、分かりやすくするために省略している。
【００５０】
図３〜９に示した例のそれぞれにおいて、プログラマブル遅延部Ａとプログラマブル遅延部Ｂは独立に構成可能であることを認識されたい。各プログラマブル遅延部は、自らの構成用メモリセルのセットを有している。したがって、プログラマブル遅延部Ａの遅延線によって適用される遅延の量は、プログラマブル遅延部Ｂの遅延線によって適用される遅延の量とは異なることがある。さらに、プログラマブル遅延部Ａが発生させるパルス信号は、たとえば、プログラマブル遅延部Ｂが発生させるパルス信号とは異なるパルス幅および／または異なる遅延など、異なるものであってもよい。さらに、プログラマブル遅延部Ａおよび／またはＢの一方または両方のいずれかのＣｌｋ  Ｏｕｔからの任意の信号出力が、それぞれのプログラマブル遅延部に対するローカルなクロック負荷を駆動するために利用可能である。
【００５１】
図３は、プログラマブル遅延部を使用した例示的なカスケードアーキテクチャ３００を示す回路図である。図３は、プログラマブル遅延部Ａが第１のクロック信号を処理する一方で、プログラマブル遅延部Ｂが第２の独立したクロック信号を処理する例を示す。たとえば、図３を参照すると、クロック信号がプログラマブル遅延部ＡおよびＢのそれぞれのＣｌｋ  Ｉｎ（クロック入力部１１４）で受信され、各プログラマブル遅延部の遅延線を通って送られ、次いでプログラマブル遅延部ＡおよびＢのＣｌｋ  Ｏｕｔ（クロック出力部１５２）に送られる。Ｃｓｃ  Ｏｕｔ（カスケード出力部１４８）とＣｓｃ  Ｉｎ（カスケード入力部１１２）は互いに結合されているが、カスケード入力部およびカスケード出力部はカスケードアーキテクチャ３００において使用されていない。
【００５２】
図４は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ４００を示す回路図である。図４は、プログラマブル遅延部Ｂが使用されておらず、したがって、プログラマブル遅延部Ａを使用して最初に処理されたクロック信号をさらに処理するためにプログラマブル遅延部Ｂが利用可能である例を示す。たとえば、クロック信号がプログラマブル遅延部ＡのＣｌｋ  Ｉｎで受信され、遅延線を通って遅延させられ、プログラマブル遅延部ＡのＣｓｃ  Ｏｕｔで出力される。さらに、プログラマブル遅延部ＡのＣｌｋ  Ｉｎで受信された最初のクロック信号は、Ｃｌｋ  Ｏｕｔから出力されて、１つまたは複数のクロック負荷によって使用される。描かれているように、プログラマブル遅延部ＡのＣｓｃ  Ｏｕｔは、プログラマブル遅延部ＢのＣｓｃ  Ｉｎに結合されている。カスケードアーキテクチャ４００は、プログラマブル遅延部ＢのＣｌｋ  Ｏｕｔから出力される信号について発生させることができる遅延の量が、個々のプログラマブル遅延部による遅延量の２倍になり得る例を示す。
【００５３】
図５は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ５００を示す回路図である。カスケードアーキテクチャ５００では、第１のクロック信号がプログラマブル遅延部ＡのＣｓｃ  Ｉｎで受信され、遅延線を通って処理され、プログラマブル遅延部ＡのＣｓｃ  Ｏｕｔから出力される。図示されているように、プログラマブル遅延部ＡのＣｓｃ  Ｏｕｔは、プログラマブル遅延部ＢのＣｓｃ  Ｉｎに結合され、プログラマブル遅延部Ｂの遅延線を通ってさらに遅延させられ、その後、プログラマブル遅延部ＢのＣｌｋ  Ｏｕｔで出力される。プログラマブル遅延部ＡのＣｓｃ  Ｉｎは、前にある図示されていないプログラマブル遅延部のＣｓｃ  Ｏｕｔによって供給されるので、プログラマブル遅延部ＢのＣｌｋ  Ｏｕｔを通って出力される第１のクロック信号は、プログラマブル遅延部のうちの１つによって与えられる有効な遅延全体の最大で３倍の遅延となり得る。
【００５４】
ただし、プログラマブル遅延部Ａは、第２の独立したクロック信号をＣｌｋ  Ｉｎでさらに受信する。第２のクロック信号は、追加の遅延を加えずにプログラマブル遅延部Ａを通って送られ、Ｃｌｋ  Ｏｕｔを通って出力される。
【００５５】
図６は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ６００を示す回路図である。カスケードアーキテクチャ６００では、２つの別個かつ独立したクロック信号が処理されて、２つの別個かつ独立したパルス信号を発生させる。プログラマブル遅延部ＡおよびＢのそれぞれは、クロック信号をＣｌｋ  Ｉｎで受信する。クロック信号は、プログラマブル遅延部ＡおよびＢのそれぞれの遅延線で遅延させられ、次いで、遅延させられたクロック信号および遅延なしの最初のクロック信号にＮＡＮＤ演算を実施することによってパルス信号を作り出すために使用される。得られたパルス信号は、プログラマブル遅延部ＡおよびＢのそれぞれのＣｌｋ  Ｏｕｔから出力される。
【００５６】
図７は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ７００を示す回路図である。カスケードアーキテクチャ７００の例では、プログラマブル遅延部ＡとＢは、プログラマブル遅延部のうちの１つによる遅延の２倍の遅延を実現するためにカスケード接続されている。次いで、遅延信号は、プログラマブル遅延部のうちの１つを使用して発生させられるパルス信号の２倍のパルス幅を有するパルス信号をプログラマブル遅延部Ｂで作り出すために使用される。
【００５７】
描かれているように、クロック信号がプログラマブル遅延部ＡのＣｌｋ  Ｉｎで受信される。クロック信号は、プログラマブル遅延部Ａにおける遅延線を使用して遅延させられ、Ｃｓｃ  Ｏｕｔから出力される。遅延させられたクロック信号は、プログラマブル遅延部ＢのＣｓｃ  Ｉｎで受信され、プログラマブル遅延部Ｂの遅延線を使用してさらに遅延させられ、内部のパルス発生器に提供される。
【００５８】
プログラマブル遅延部ＡのＣｌｋ  Ｉｎで受信された最初のクロック信号はまた、遅延を加えずにプログラマブル遅延部ＡのＣｌｋ  Ｏｕｔまで通って送られ、プログラマブル遅延部Ａにローカルなクロック負荷によって使用可能になる。描かれているように、最初のクロック信号はまた、プログラマブル遅延部Ａの外部にある追加のワイヤリソースを使用してプログラマブル遅延部ＢのＣｌｋ  Ｉｎに送られ、プログラマブル遅延部Ｂにおけるパルス発生器によるパルス信号の発生のために使用されてもよい。あるいは、第２の独立したクロック信号が、破線で示したプログラマブル遅延部ＢのＣｌｋ  Ｉｎに与えられてもよい。得られたパルス信号は、プログラマブル遅延部ＢのＣｌｋ  Ｏｕｔから出力される。
【００５９】
図８は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ８００を示す回路図である。アーキテクチャ８００の例では、プログラマブル遅延部Ａは、クロック信号をＣｌｋ  Ｉｎで受信する。クロック信号はプログラマブル遅延部Ａの遅延線を使用して遅延させられる。遅延させられたクロック信号は、次いで、プログラマブル遅延部Ａのパルス発生器を使用してパルス信号を発生させるために、最初のクロック信号とともにパルス発生器に提供される。パルス信号は、プログラマブル遅延部ＡのＣｓｃ  ＯｕｔとＣｌｋ  Ｏｕｔの両方によって出力される。Ｃｌｋ  Ｏｕｔからのパルス信号は、プログラマブル遅延部ＡのＣｌｋ  Ｏｕｔ内およびその周囲のクロック負荷を駆動するために使用されてもよい。Ｃｓｃ  Ｏｕｔからのパルス信号は、プログラマブル遅延部ＢのＣｓｃ  Ｉｎに提供される。パルス信号は、プログラマブル遅延部Ｂの遅延線を使用して遅延させられ、プログラマブル遅延部ＢのＣｌｋ  Ｏｕｔを通って出力される。
【００６０】
図９は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ９００を示す回路図である。カスケードアーキテクチャ９００の例は、カスケードアーキテクチャ８００のものと実質的に類似している。１つの例外は、プログラマブル遅延部ＡがＣｓｃ  ＯｕｔとＣｌｋ  Ｏｕｔの両方からはパルス信号を出力しないことである。ここでは、プログラマブル遅延部Ａは、パルス信号をＣｓｃ  Ｏｕｔから出力し、一方で、最初のクロック信号を追加の遅延なしでＣｌｋ  Ｏｕｔから出力する。Ｃｓｃ  Ｏｕｔから出力されるパルス信号は、プログラマブル遅延部ＢのＣｓｃ  Ｉｎに提供され、プログラマブル遅延部Ｂの遅延線を通って遅延させられ、Ｃｌｋ  Ｏｕｔを通って出力される。
【００６１】
図１０は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ１０００を示す構成図である。カスケードアーキテクチャ１０００は、互いにカスケード接続された４つのプログラマブル遅延部Ａ、Ｂ、Ｃ、およびＤを含む。描かれているように、プログラマブル遅延部Ａのカスケード出力部１４８は、プログラマブル遅延部Ｂのカスケード入力部１１２に結合されている。プログラマブル遅延部Ｂのカスケード出力部１４８は、プログラマブル遅延部Ｃのカスケード入力部１１２に結合されている。プログラマブル遅延部Ｃのカスケード出力部１４８は、プログラマブル遅延部Ｄのカスケード入力部１１２に結合されている。最後に、プログラマブル遅延部Ｄのカスケード出力部１４８は、プログラマブル遅延部Ａのカスケード入力部１１２に結合されている。
【００６２】
カスケードアーキテクチャ１０００は、単一のプログラマブル遅延部による遅延の最大で４倍の全体的な遅延を、受信したクロック信号に適用可能である。さらに、単一のプログラマブル遅延部が発生させるパルス信号のパルス幅の最大で４倍のパルス幅を有するパルス信号を発生させることができる。この場合、プログラマブル遅延部Ａは信号入力点として使用され、得られた出力信号は、プログラマブル遅延部Ｄのクロック出力部１５２から出力される。
【００６３】
しかしながら、出力信号は、遅延の量、所望のパルス幅、および／またはクロック信号が必要とされるＩＣにおける位置に応じて、プログラマブル遅延部Ａ、Ｂ、Ｃ、および／またはＤのいずれのクロック出力部１５２から取り出されてもよいことが理解されるはずである。同様に、信号入力点は変化してもよく、プログラマブル遅延部Ａ、Ｂ、Ｃ、および／またはＤのいずれのクロック入力部１１４であってもよい。たとえば、図１０に示したループバック構成を使用して、信号が、クロック入力部１１４を通ってプログラマブル遅延部Ｂに入り、カスケード出力部１４８を使用してプログラマブル遅延部ＣおよびＤをカスケード式に通り、ループバック接続を使用してプログラマブル遅延部Ａにカスケード式に送られるクロックアーキテクチャを作成してもよい。得られた信号は、プログラマブル遅延部Ａのクロック出力部１５２から出力されてもよい。図１０を参照しながら説明した例は、図示したプログラマブル遅延部を４つすべて利用しているが、遅延部が図示したすべてよりも少ないクロックアーキテクチャを作成してもよい。ＩＣ内の図示したようなループバック構成に配置された所与のセットのプログラマブル遅延部、たとえば、ループバック構成のための２、３、４、またはそれ以上のいずれでもよいプログラマブル遅延部内では、クロック信号のための入力点と出力点は互いに独立に選択されてもよい。
【００６４】
図１１は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ１１００を示す構成図である。カスケードアーキテクチャ１１００は、４つのプログラマブル遅延部Ａ、Ｂ、Ｃ、およびＤを含む。図１１の例では、プログラマブル遅延部は、２つの別個の部分として互いにカスケード接続されている。
【００６５】
プログラマブル遅延部の第１の対において、プログラマブル遅延部Ａのカスケード出力部１４８は、プログラマブル遅延部Ｂのカスケード入力部１１２に結合されている。プログラマブル遅延部Ｂのカスケード出力部１４８は、プログラマブル遅延部Ａのカスケード入力部１１２に結合されている。
【００６６】
プログラマブル遅延部の第２の対において、プログラマブル遅延部Ｃのカスケード出力部１４８は、プログラマブル遅延部Ｄのカスケード入力部１１２に結合されている。プログラマブル遅延部Ｄのカスケード出力部１４８は、プログラマブル遅延部Ｃのカスケード入力部１１２に結合されている。
【００６７】
カスケード接続されたプログラマブル遅延部の各対は、単一のプログラマブル遅延部の最大で２倍の遅延と、単一のプログラマブル遅延部の最大で２倍のパルス幅を有するパルス信号とを提供することができる。ある得られた出力信号は、プログラマブル遅延部Ｂのクロック出力部１５２から出力される。別の得られた出力信号は、プログラマブル遅延部Ｄのクロック出力部１５２から出力される。
【００６８】
図１０および図１１のそれぞれにおいて、プログラマブル遅延部のカスケード出力部とカスケード入力部の間の接続は、固定されていてもよく、すなわち、プログラマブル遅延部が実装されているＩＣの部分として有線接続に形成されていてもよい。
【００６９】
図１２は、クロックアーキテクチャをＩＣ内に実装する方法１２００を示すフローチャートである。ブロック１２０５において、第１のプログラマブル遅延部が、クロックアーキテクチャ、たとえば内部に実装されたクロックツリーの一部としてＩＣ内に設けられる。ブロック１２１０において、第２以降のプログラマブル遅延部が、クロックアーキテクチャの一部としてＩＣに設けられる。プログラマブル遅延部は、クロックアーキテクチャ全体に追加されてもよい。一態様では、プログラマブル遅延部は、クロックアーキテクチャの各葉に追加される。クロックアーキテクチャ、すなわちクロックツリーの葉は、クロックソースからＩＣの特定の領域またはゾーンにクロック信号を送達するルーティングトラック（ワイヤ）から、クロック信号が出ていくノードであり、この点特定の領域またはゾーンにおいて、クロック信号は分散トラック（ワイヤ）にスイッチして、葉ノードにローカルな１つまたは複数のクロック負荷に分散する。
【００７０】
ブロック１２１５において、プログラマブル遅延部のうち、選択されたものが互いに結合されて、本明細書内に示したように１つまたは複数のカスケードアーキテクチャを形成する。あるプログラマブル遅延部のカスケード出力部を別のプログラマブル遅延部のカスケード入力部に接続することによって、２つ以上のプログラマブル遅延部が結合される。
【００７１】
ブロック１２２０において、実装中の回路設計が必要とするか、または要求するクロック信号を発生させるために、それぞれのプログラマブル遅延部のメモリセル内の適切な値を読み込むことによってプログラマブル遅延部を構成することができる。
【００７２】
一態様では、カスケードアーキテクチャの形成は、有線回路構成を使用して実施してもよい。たとえば、各プログラマブル遅延部は、構成可能な、有線、すなわち固定の回路ブロックであってもよい。カスケード出力部をカスケード入力部に接続している２つ以上のカスケード接続されたプログラマブル遅延部間の配線は、ＩＣ内の有線、すなわち固定の接続であってもよい。
【００７３】
図１３は、ＩＣの例示的なアーキテクチャ１３００を示す構成図である。一態様では、アーキテクチャ１３００は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）タイプのＩＣ内に実装される。アーキテクチャ１３００はまた、ＳＯＣタイプのＩＣの代表でもある。上記のように、ＳＯＣは、プログラムコードを実行するプロセッサと、１つもしくは複数の他の回路および／または回路システムとを備えるＩＣである。回路および／または回路システムは、互いに、またプロセッサと協働して動作してもよい。いずれの場合でも、本開示内で説明したプログラマブル遅延部は、図１３に示したクロック区域の全体に実装されてもよい。
【００７４】
図示されているように、アーキテクチャ１３００は、たとえばロジックやブロックといった、いくつかの異なるタイプのプログラマブル回路を備える。たとえば、アーキテクチャ１３００は、マルチギガビット送受信機（ＭＧＴ）１３０１、構成可能なロジックブロック（ＣＬＢ）１３０２、ランダムアクセスメモリブロック（ＢＲＡＭ）１３０３、入力／出力ブロック（ＩＯＢ）１３０４、構成およびクロックのロジック（ＣＯＮＦＩＧ／ＣＬＯＣＫＳ）１３０５、デジタル信号処理ブロック（ＤＳＰ）１３０６、専用Ｉ／Ｏブロック１３０７（たとえば、構成ポートおよびクロックポート）、ならびにデジタルクロックマネージャ、アナログ−デジタルコンバータ、システム監視ロジックなどの他のプログラマブルロジック１３０８を含む、多くの異なるプログラマブルなタイルを備えていてもよい。
【００７５】
一部のＩＣでは、各プログラマブルなタイルは、プログラマブルな相互接続要素（ＩＮＴ）１３１１を含み、ＩＮＴ  １３１１は、各隣接タイルにおける対応するＩＮＴ  １３１１との標準化された接続を有する。したがって、ＩＮＴ  １３１１は互いに合わさって、図示したＩＣのためのプログラマブルな相互接続構造を実現する。各ＩＮＴ  １３１１はまた、図１３の上部に含めた例によって示されるように、同じタイル内のプログラマブル論理素子との接続も含む。
【００７６】
たとえば、ＣＬＢ  １３０２は、単一のＩＮＴ  １３１１に加えて、ユーザロジックを実装するためにプログラムされてもよい構成可能な論理素子（ＣＬＥ）１３１２を含むことができる。ＢＲＡＭ  １３０３は、１つまたは複数のＩＮＴ  １３１１に加えて、ＢＲＡＭ論理素子（ＢＲＬ）１３１３を備えていてもよい。典型的には、あるタイルに含まれるＩＮＴ  １３１１の数は、タイルの高さに依存する。描かれているように、ＢＲＡＭタイルは、５つのＣＬＢと同じ高さを有するが、他の数（たとえば、４つ）が使用されてもよい。ＤＳＰタイル１３０６は、適切な数のＩＮＴ  １３１１に加えて、ＤＳＰ論理素子（ＤＳＰＬ）１３１４を備えていてもよい。ＩＯＢ  １３０４は、たとえば、１つのインスタンスのＩＮＴ  １３１１に加えて、２つのインスタンスのＩ／Ｏ論理素子（ＩＯＬ）１３１５を備えていてもよい。当業者には明らかなように、たとえばＩＯＬ  １３１５に接続された実際のＩ／Ｏパッドは、通常はＩＯＬ  １３１５の区域に制限されることはない。
【００７７】
図１３に描かれている例では、たとえば領域１３０５、１３０７、および１３０８から形成された、ダイの中央近くにある列の区域が、構成、クロック、およびその他の制御ロジックに使用されてもよい。この列から延びる水平の区域１３０９は、クロックおよび構成信号をプログラマブルＩＣの横幅にわたって分散させるために使用される。１つまたは複数のプログラマブル遅延部は、領域１３０５、１３０７、１３０８、および／または１３０９全体に分散したクロックラインに実装されてもよい。
【００７８】
一態様では、クロック回路、または葉のクロック回路は、アーキテクチャ３００内の種々の位置に実装されてもよい。そのようなクロック回路は、本開示内で説明したようにプログラマブル遅延部を備えていてもよい。たとえば、プログラマブル遅延部を備えるクロック回路は、ＣＬＢ  １３０２、ＢＲＡＭ  １３０３、および／またはＤＳＰ  １３０６を含む列の１つもしくは複数またはそれぞれとの領域１３０９の交差部に含められ、または配置されてもよい。ただし、プログラマブル遅延部は、アーキテクチャ３００内の他の場所に含められるか、または配置されてもよく、また、本明細書で提供された例は、限定を意図されていないことが理解されるはずである。
【００７９】
図１３に示したアーキテクチャを利用する一部のＩＣは、ＩＣの大きい部分を占める規則的な列構造を中断させる追加のロジックブロックを含む。追加のロジックブロックは、プログラマブルブロックおよび／または専用回路構成であってもよい。たとえば、ＰＲＯＣ  １３１０として描かれたプロセッサブロックは、いくつかの列のＣＬＢおよびＢＲＡＭにまたがっている。
【００８０】
一態様では、ＰＲＯＣ  １３１０は、ＩＣのプログラマブル回路構成を実装するダイの一部として製作された専用回路構成、たとえば、有線プロセッサとして実装される。ＰＲＯＣ  １３１０は、複雑さの範囲が、個々のプロセッサ、たとえば、プログラムコードを実行することが可能な単一のコアから、１つまたは複数のコア、モジュール、コプロセッサ、またはインターフェースなどを有するプロセッサシステム全体に至るまでの多種多様なプロセッサタイプおよび／またはシステムのいずれかを表すことができる。
【００８１】
別の態様では、ＰＲＯＣ  １３１０はアーキテクチャ１３００から省かれ、記載した他の多様なプログラマブルブロックの１つまたは複数で置き換えられる。さらに、そのようなブロックは、ＰＲＯＣ  １３１０と同様にプログラムコードを実行するプロセッサを形成するためにプログラマブル回路構成の種々のブロックが使用されてもよいという点で「ソフトプロセッサ」を形成するために利用することができる。
【００８２】
「プログラマブル回路構成」という語句は、ＩＣ内のプログラマブル回路素子、たとえば、本明細書に記載の種々のプログラマブルまたは構成可能な回路ブロックまたはタイルだけでなく、種々の回路ブロック、タイル、および／または要素を、ＩＣに読み込まれる構成データに従って選択的に結合する相互接続回路構成を意味する。たとえば、ＣＬＢ  １３０２およびＢＲＡＭ  １３０３などの、ＰＲＯＣ  １３１０の外部にある図１３に示した部分は、ＩＣのプログラマブル回路構成と考えられる。プログラマブル回路構成は、異なる物理回路を内部に実装するために構成またはプログラムされてもよい。
【００８３】
一般に、プログラマブル回路構成の機能群は、構成データがＩＣに読み込まれるまで確立されない。構成ビットのセットは、ＦＰＧＡなどのＩＣのプログラマブル回路構成をプログラムするために使用されてもよい。構成ビットは、典型的には「構成ビットストリーム」と呼ばれる。一般に、プログラマブル回路構成は、最初に構成ビットストリームをＩＣに読み込まなければ動作も機能もしない。構成ビットストリームは、プログラマブル回路構成内に特定の物理回路を事実上実装するか、またはインスタンス化する。構成ビットストリームまたは回路設計は、たとえば、プログラマブル回路ブロックの機能的な側面と、これ以外の場合には存在しない種々のプログラマブル回路ブロックの中での物理的な接続性とを指定する。構成ビットストリームはさらに、本明細書に記載のプログラマブル遅延部の動作を制御するために使用されるメモリセルに読み込まれることがある値を指定する。
【００８４】
「有線の」または「固定化された」、すなわちプログラマブルでない回路構成が、ＩＣの一部として製造される。プログラマブル回路構成とは異なり、有線回路構成または回路ブロックは、ＩＣの製造後に構成ビットストリームを読み込むことでは実装されない。有線回路構成は、たとえば、最初に構成ビットストリームをＩＣに読み込まなければ機能しない専用回路ブロックおよび相互接続部を有する。有線回路構成の例はＰＲＯＣ  １３１０である。
【００８５】
場合によっては、有線回路構成、たとえばプログラマブル遅延部は、レジスタ設定またはＩＣ内の１つまたは複数のメモリ要素に格納された値に従って設定または選択することができる１つまたは複数の動作モードを有していてもよい。動作モードは、たとえば、構成ビットストリームをＩＣに読み込むことによって設定されてもよい。この能力はあるものの、有線回路構成は、ＩＣの一部として製造されたときに動作可能であり、特定の機能を有するので、プログラマブル回路構成とはみなされない。
【００８６】
図１３は、プログラマブル回路構成、たとえば、プログラマブルファブリックを含むＩＣを実装するために使用できる例示的なアーキテクチャを示すことが意図されている。たとえば、ある列におけるロジックブロックの数、列の相対的な幅、列の数と順序、列に含まれるロジックブロックのタイプ、ロジックブロックの相対的なサイズ、および図１３の上部に含めた相互接続部／ロジックの実装は、純粋に例示的なものである。実際のＩＣでは、ユーザ回路設計の効率的な実装を容易にするために、たとえば２つ以上の隣り合う列のＣＬＢは、そのＣＬＢが現れるところであればどこに含めてもよい。ただし、隣り合うＣＬＢ列の数は、ＩＣの全体的なサイズに合わせて変化し得る。さらに、ＩＣ内のＰＲＯＣ  １３１０などのブロックのサイズおよび／または位置取りは、例示のためのものにすぎず、限定は意図されていない。
【００８７】
本明細書に開示された本発明の配置構成に従って、プログラマブル遅延回路ブロック、および２つ以上のプログラマブル遅延部から形成されたカスケードアーキテクチャを説明する。本発明の配置構成は、ＩＣのクロックアーキテクチャに組み込まれているとき、クロック信号およびクロック信号発生に対する柔軟性および制御性の向上をもたらす。クロック信号のスキューは、向上した精度で制御できる。さらに、プログラマブルなパルス幅を有するパルス信号を発生させることができ、これによって、選択されたクロック制御される回路素子がパルス信号を使用してクロック制御されるとき、タイムボローイング動作を実現するために、そのような選択されたクロック制御される素子のラッチへの変換が容易になる。
【００８８】
説明の目的で、本明細書において開示された種々の発明の概念を十分に理解してもらうために、具体的な専門語を用いている。ただし、本明細書で使用される用語は、本発明の配置構成の特定の側面を説明するためのものにすぎず、限定は意図されていない。
【００８９】
本開示内で定義されるように、「ある（ａ）」および「一（ａｎ）」という用語は、１つまたは２つ以上を意味する。「複数」という用語は、本明細書に定義されるように、２つまたは３つ以上を意味する。「別の」という用語は、本明細書に定義されるように、少なくとも第２以降を意味する。「結合されている」という用語は、本明細書に定義されるように、別段の記載がない限り、介在する要素が直接的に存在しないか、１つまたは複数の介在する要素が間接的に存在するかにかかわらず、接続されていることを意味する。２つの要素はまた、通信チャネル、通路、ネットワーク、またはシステムを通って、機械的、電気的、または通信可能にリンクされていてもよい。
【００９０】
本開示内で定義されるように、「および／または」という用語は、関連する列挙した項目のうちの１つまたは複数のあらゆる可能な組み合わせを意味する。「含む」および／または「含んだ」という用語は、本開示で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、および／または構成要素の存在を特定するが、１つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および／またはこれらの群の存在または追加を排除するものではない。「第１の」、「第２の」などの用語は、本明細書において種々の要素について述べるために使用されることがあるが、これらの用語は、文脈上異なる場合を除き、ある要素を別の要素と区別するために使用されているにすぎないので、これらの要素は、こういった用語によって限定されるべきではない。
【００９１】
本明細書に定義されるように、「場合（ｉｆ）」という用語は、文脈に応じて、「とき（ｗｈｅｎ）」、「〜すると（ｕｐｏｎ）」、「判定に応答して」、「検出に応答して」、「判定に応じて」、または「検出に応じて」を意味する。同様に、「判定された場合」という語句または「［述べられた条件または事象］が検出された場合」という語句は、本明細書に定義されるように、文脈に応じて、「判定すると」、「判定に応答して」、「判定に応じて」、「［述べられた条件または事象］を検出すると」、「［述べられた条件または事象］の検出に応答して」、または「［述べられた条件または事象］の検出に応じて」を意味する。
【００９２】
本開示内では、同じ参照符号は、端子、信号線、ワイヤ、およびこれらの対応する信号を指すために使用される。この点に関して、「信号」、「ワイヤ」、「接続」、「端子」、および「ピン」という用語は、本開示内では時として互換可能に使用されることがある。「信号」または「ワイヤ」などの用語は、１つまたは複数の信号、たとえば、単一のワイヤを通る単一のビットの搬送または複数の平行ワイヤを通る複数の平行ビットの搬送を表し得ることも認識されたい。さらに、各ワイヤまたは信号は、場合により、信号またはワイヤによって接続された２つ以上の構成要素間の双方向通信を表すことがある。
【００９３】
１つまたは複数の態様は、本明細書に記載の方法および／または回路の実装を可能にするすべての特徴を含んだコンピュータプログラム製品にさらに埋め込まれていてもよい。コンピュータプログラム製品は、コンピュータ可読データ記憶媒体を含む。本明細書に定義されるように、「コンピュータ可読記憶媒体」という語句は、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連して使用されるために、プログラムコードを収納または格納した記憶媒体を意味する。本明細書に定義されるように、「コンピュータ可読記憶媒体」は一時的なものではなく、したがって、一時的な伝搬信号自体ではない。コンピュータ可読記憶媒体の例には、限定はされないが、光学媒体、磁気媒体、光磁気媒体、ランダムアクセスメモリなどのコンピュータメモリ、大容量記憶装置デバイス、たとえば、ハードディスクなどが含まれてもよい。
【００９４】
図面におけるフローチャートおよび構成図は、本明細書において開示された本発明の配置構成のさまざまな態様によるシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能群、および動作を示す。この点については、フローチャートまたは構成図における各ブロックは、モジュール、セグメント、またはコードの一部を表すことができ、コードは、特定の機能を実現するための１つまたは複数の実行可能な命令を含む。構成図および／またはフローチャート図の各ブロック、ならびに構成図および／またはフローチャート図におけるブロックの組み合わせは、特定の機能もしくは行為、または特殊用途のハードウェアとコンピュータ命令の組み合わせを実施する特殊用途のハードウェアベースのシステムによって実装され得ることにも留意されたい。
【００９５】
一態様では、フローチャート図におけるブロックは、種々のブロックの数字に対応する昇順で実施され得る。他の態様では、ブロックは、ブロックの数字とは異なる、すなわちさまざまな順序で実施されてもよい。たとえば、連続して示された２つ以上のブロックは、実質的に同時に実行されてもよい。他の場合では、２つ以上のブロックが、関与する機能群に応じて、時として逆の順序で実行されてもよい。さらに他の場合では、１つまたは複数のブロックは、直後ではない後続または他のブロックに結果が保存され、利用されるようにして、さまざまな順序で実施されてもよい。
【００９６】
以下の特許請求の範囲におけるすべてのミーンズプラスファンクションまたはステッププラスファンクションの要素の対応する構造、材料、行為、および均等物は、他の特許請求される要素と組み合わせて、具体的に特許請求されたものとして機能を実施する任意の構造、材料、または行為を含むことが意図されている。
【００９７】
プログラマブル遅延回路ブロックは、カスケード入力部およびクロック入力部を有する入力ステージを含み、入力ステージは、カスケード入力部で受信した信号またはクロック入力部で受信した信号を送り、プログラマブル遅延回路ブロックはさらに、入力ステージから送られた信号に、選択された量の遅延を適用することによって遅延信号を発生させるように構成された遅延ブロックと、遅延の量に依存するパルス幅を有するパルス信号を発生させるように構成されたパルス発生器とを含む。プログラマブル遅延回路ブロックはまた、カスケード出力部およびクロック出力部を有する出力ステージを含む。出力ステージは、反転した状態のパルス信号または遅延信号をカスケード出力部から送り、クロック入力部で受信した信号、反転した状態のパルス信号、または遅延信号をクロック出力部から送るように構成されている。
【００９８】
入力ステージは、メモリセルを含んでいてもよく、メモリセルに格納された値に従って、カスケード入力部の信号またはクロック入力部で受信した信号のいずれかを送ることができる。さらに、入力ステージは、メモリセルに格納された値に従って、クロック入力部で受信した信号を選択的にゲート制御することができる。
【００９９】
パルス発生器は、反転した状態の遅延信号と、クロック入力部で受信した信号とからパルス信号を発生させるＮＡＮＤ回路を含んでいてもよい。
【０１００】
遅延ブロックは、複数のタップを有し、複数の遅延信号候補を発生させる遅延線を含んでいてもよい。遅延ブロックはまた、複数の遅延信号候補のうちの１つを遅延信号として送る遅延選択部ブロックを含んでいてもよい。遅延線は、２進の重みが付けられていてもよい。
【０１０１】
遅延選択部ブロックは、メモリセルおよび反転マルチプレクサを含んでいてもよい。反転マルチプレクサは、メモリセルに格納された値に従って、複数の遅延信号候補から遅延信号を選択することができる。
【０１０２】
出力ステージは、複数のメモリセル、マルチプレクサ、および反転マルチプレクサを含んでいてもよい。マルチプレクサは、複数のメモリセルのうちの第１のメモリセルに格納された値に従って、パルス信号または反転した状態の遅延信号をカスケード出力部に送ることができる。反転マルチプレクサは、第１のメモリセルに格納された値および複数のメモリセルのうちの第２のメモリセルに格納された値に従って、クロック入力部で受信した信号、パルス信号、または反転した状態の遅延信号を、反転した状態でクロック出力部に送ることができる。
【０１０３】
クロック回路は、第１のカスケード入力部、第１のクロック入力部、複数のタップを有する第１の遅延線、第１のパルス発生器、第１のカスケード出力部、および第１のクロック出力部を有する第１のプログラマブル遅延回路ブロックを含む。クロック回路はまた、第２のカスケード入力部、第２のクロック入力部、複数のタップを有する第２の遅延線、第２のパルス発生器、第２のカスケード出力部、および第２のクロック出力部を有する第２のプログラマブル遅延回路ブロックを含む。第１のカスケード出力部は、第２のカスケード入力部に結合されている。
【０１０４】
第１のカスケード出力部は、第１のパルス発生器によって発生させられた第１のパルス信号または第１の遅延線によって発生させられた第１の遅延信号を反転した状態で送ることができる。第２のカスケード出力部は、第２のパルス発生器によって発生させられた第２のパルス信号または第２の遅延線によって発生させられた第２の遅延信号を反転した状態で送ることができる。第１のクロック出力部は、第１のクロック入力部で受信した信号、反転した状態の第１のパルス信号、または第１の遅延信号を送ることができる。第２のクロック出力部は、第２のクロック入力部で受信した第２の信号、反転した状態の第２のパルス信号、または第２の遅延信号を送ることができる。
【０１０５】
第１のパルス発生器は、第１の遅延線によって信号に適用された遅延の量に依存するパルス幅を有する第１のパルス信号を発生させることができる。第２のパルス発生器は、第２の遅延線によって信号に適用された遅延の量に依存するパルス幅を有する第２のパルス信号を発生させることができる。
【０１０６】
一態様では、第１のプログラマブル遅延部は、第１のクロック信号を遅延させ、遅延させた第１のクロック信号を、第１のカスケード出力部を介して出力することができる。第２のプログラマブル遅延部は、遅延させた第１のクロック信号を、第２のカスケード入力部を介して受信し、遅延させた第１のクロック信号をさらに遅延させることができる。たとえば、第１のプログラマブル遅延部は、遅延を適用することなく、第１のクロック信号を第１遅延のクロック出力部から出力してもよい。別の例では、第１のクロック信号は、第１のカスケード入力部で第１のプログラマブル遅延部に受信されてもよい。この場合、第１のプログラマブル遅延部は、第２のクロック信号を、第１のクロック信号とは独立して、第１のクロック入力部において受信し、遅延を適用することなく、第２のクロック信号を第１のクロック出力部から出力することができる。
【０１０７】
別の態様では、第１のプログラマブル遅延部は、第１のクロック信号を遅延させ、遅延させた第１のクロック信号を、第１のカスケード出力部を介して出力することができる。第２のプログラマブル遅延部は、遅延させた第１のクロック信号を、第２のカスケード入力部において受信し、遅延させた第１のクロック信号をさらに遅延させ、さらに遅延させた第１のクロック信号を使用してパルス信号を発生させ、反転した状態のパルス信号を出力することができる。ある例においては、第１のプログラマブル遅延部は、第１のクロック信号を遅延なしで第１のクロック出力部を介してさらに出力することができる。さらに別の例では、第２のプログラマブル遅延部は、第２のクロック信号を、第１のクロック信号とは独立して、第２のクロック入力部において受信し、第２のクロック信号およびさらに遅延させた第１のクロック信号をパルス発生器内で使用して、パルス信号を発生させることができる。
【０１０８】
さらに別の態様では、第１のプログラマブル遅延部は、受信したクロック信号からパルス信号を発生させ、反転した状態のパルス信号を、第１のカスケード出力部を介して出力することができる。第２のプログラマブル遅延部は、反転した状態のパルス信号を第２のカスケード入力部において受信し、反転した状態のパルス信号を遅延させ、遅延させた反転した状態のパルス信号を出力することができる。この場合、第１のプログラマブル遅延部は、反転した状態のパルス信号を第１のクロック出力部からさらに出力することができる。
【０１０９】
第１のカスケード出力部は、固定回路構成を使用して、第２のカスケード入力部に結合されていてもよい。
【０１１０】
本開示内に記載した特徴は、趣旨またはその本質的な性質から逸脱することなく、他の形で具体化されてもよい。したがって、そのような特徴および実装の範囲を示すものとしては、上記の開示内容ではなく、添付の特許請求の範囲を参照すべきである。
【図１】
0006602849.tif 000002
【図２】
0006602849.tif 000003
【図３】
0006602849.tif 000004
【図４】
0006602849.tif 000005
【図５】
0006602849.tif 000006
【図６】
0006602849.tif 000007
【図７】
0006602849.tif 000008
【図８】
0006602849.tif 000009
【図９】
0006602849.tif 000010
【図１０】
0006602849.tif 000011
【図１１】
0006602849.tif 000012
【図１２】
0006602849.tif 000013
【図１３】
0006602849.tif 000014