JP6602849B2 - プログラマブル遅延回路ブロック - Google Patents

プログラマブル遅延回路ブロック Download PDF

Info

Publication number
JP6602849B2
JP6602849B2 JP2017513104A JP2017513104A JP6602849B2 JP 6602849 B2 JP6602849 B2 JP 6602849B2 JP 2017513104 A JP2017513104 A JP 2017513104A JP 2017513104 A JP2017513104 A JP 2017513104A JP 6602849 B2 JP6602849 B2 JP 6602849B2
Authority
JP
Japan
Prior art keywords
signal
clock
delay
output
cascade
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.)
Active
Application number
JP2017513104A
Other languages
English (en)
Other versions
JP2017532850A (ja
Inventor
イリヤ ケー. ガヌソフ,
ベンジャミン エス. デヴリン,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2017532850A publication Critical patent/JP2017532850A/ja
Application granted granted Critical
Publication of JP6602849B2 publication Critical patent/JP6602849B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/14Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of delay lines
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/15Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors
    • H03K5/15006Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with two programmable outputs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/156Arrangements in which a continuous pulse train is transformed into a train having a desired pattern

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Pulse Circuits (AREA)
  • Manipulation Of Pulses (AREA)

Description

本開示は集積回路(IC)に関し、より詳細には、IC内で使用するためのプログラマブル遅延回路ブロックに関する。
集積回路(IC)は、より一段と小さい寸法を用いて製造されている。より小さい寸法を用いることの1つの結果としては、配線リソースの抵抗および容量が大きくなることがある。抵抗および容量の増加によって信号の遅延が大きくなり、これが次いで回路におけるセットアップおよびホールドのタイミング違反を招くおそれがある。セットアップおよびホールドの違反は、正しい回路動作を妨げ、しばしば回路性能を高める上での制約要因となる。
多くのICのクロックアーキテクチャはあまり柔軟性がなく、現代の回路設計の厳しいタイミング要件を満たすことができないおそれがある。多くの場合、利用可能なクロックアーキテクチャは、内部を伝搬するクロック信号に対する適切なレベルの制御をもたらさない。
いくつかの態様では、プログラマブル遅延回路ブロックが説明されている。プログラマブル遅延回路ブロックは、カスケード入力部およびクロック入力部を有する入力ステージを含み、入力ステージは、カスケード入力部で受信した信号またはクロック入力部で受信した信号を送る。プログラマブル遅延回路ブロックはさらに、入力ステージから送られた信号に、選択された量の遅延を適用することによって遅延信号を発生させるように構成された遅延ブロックと、遅延の量に依存するパルス幅を有するパルス信号を発生させるように構成されたパルス発生器とを含んでいてもよい。プログラマブル遅延部はまた、カスケード出力部およびクロック出力部を有する出力ステージを含む。出力ステージは、パルス信号または遅延信号をカスケード出力部から送り、クロック入力部で受信した信号、パルス信号、または遅延信号をクロック出力部から送るように構成されている。
任意選択により、入力ステージは、メモリセルを含んでいてもよく、メモリセルに格納された値に従って、カスケード入力部の信号またはクロック入力部で受信した信号のいずれかを送ることができる。
任意選択により、入力ステージは、メモリセルに格納された値に従って、クロック入力部で受信した信号を選択的にゲート制御することができる。
任意選択により、パルス発生器は、反転した状態の遅延信号と、クロック入力部で受信した信号とからパルス信号を発生させるNAND回路を含んでいてもよい。
任意選択により、遅延ブロックは、複数のタップを有し、複数の遅延信号候補を発生させる遅延線と、複数の遅延信号候補のうちの1つを遅延信号として送る遅延選択部ブロックとを含んでいてもよい。
任意選択により、遅延線は、2進の重みが付けられていてもよい。
任意選択により、遅延選択部ブロックは、メモリセルおよび反転マルチプレクサを含んでいてもよく、反転マルチプレクサは、メモリセルに格納された値に従って、複数の遅延信号候補から遅延信号を選択する。
任意選択により、出力ステージは、複数のメモリセル、マルチプレクサ、および反転マルチプレクサをさらに含んでいてもよい。マルチプレクサは、複数のメモリセルのうちの第1のメモリセルに格納された値に従って、パルス信号または反転した状態の遅延信号をカスケード出力部に送り、反転マルチプレクサは、第1のメモリセルに格納された値および複数のメモリセルのうちの第2のメモリセルに格納された値に従って、クロック入力部で受信した信号、パルス信号、または反転した状態の遅延信号を、反転した状態でクロック出力部に送る。
いくつかの他の態様では、クロック回路が説明されている。クロック回路は、第1のカスケード入力部、第1のクロック入力部、複数のタップを有する第1の遅延線、第1のパルス発生器、第1のカスケード出力部、および第1のクロック出力部を有する第1のプログラマブル遅延回路ブロックと、第2のカスケード入力部、第2のクロック入力部、複数のタップを有する第2の遅延線、第2のパルス発生器、第2のカスケード出力部、および第2のクロック出力部を有する第2のプログラマブル遅延回路ブロックとを含む。第1のカスケード出力部は、第2のカスケード入力部に結合されている。
任意選択により、第1のカスケード出力部は、第1のパルス発生器によって発生させられた第1のパルス信号または第1の遅延線によって発生させられた第1の遅延信号を反転した状態で送ることができる。第2のカスケード出力部は、第2のパルス発生器によって発生させられた第2のパルス信号または第2の遅延線によって発生させられた第2の遅延信号を反転した状態で送ることができる。第1のクロック出力部は、第1のクロック入力部で受信した信号、反転した状態の第1のパルス信号、または第1の遅延信号を送ることができ、第2のクロック出力部は、第2のクロック入力部で受信した第2の信号、反転した状態の第2のパルス信号、または第2の遅延信号を送る。
任意選択により、第1のパルス発生器は、第1の遅延線によって信号に適用された遅延の量に依存するパルス幅を有する第1のパルス信号を発生させることができ、第2のパルス発生器は、第2の遅延線によって信号に適用された遅延の量に依存するパルス幅を有する第2のパルス信号を発生させることができる。
任意選択により、第1のプログラマブル遅延部は、第1のクロック信号を遅延させ、遅延させた第1のクロック信号を、第1のカスケード出力部を介して出力することができ、第2のプログラマブル遅延部は、遅延させた第1のクロック信号を、第2のカスケード入力部を介して受信することができ、遅延させた第1のクロック信号をさらに遅延させることができる。
任意選択により、第1のプログラマブル遅延部は、遅延を適用することなく、第1のクロック信号を第1のクロック出力部からさらに出力してもよい。
任意選択により、第1のクロック信号は、第1のカスケード入力部で第1のプログラマブル遅延部に受信されてもよく、第1のプログラマブル遅延部は、第2のクロック信号を、第1のクロック信号とは独立して、第1のクロック入力部において受信することができ、遅延を適用することなく、第2のクロック信号を第1のクロック出力部から出力する。
任意選択により、第1のプログラマブル遅延部は、第1のクロック信号を遅延させ、遅延させた第1のクロック信号を、第1のカスケード出力部を介して出力し、第2のプログラマブル遅延部は、遅延させた第1のクロック信号を第2のカスケード入力部において受信し、遅延させた第1のクロック信号をさらに遅延させ、さらに遅延させた第1のクロック信号を使用してパルス信号を発生させ、反転した状態のパルス信号を出力する。
任意選択により、第1のプログラマブル遅延部は、第1のクロック信号を遅延なしで第1のクロック出力部を介してさらに出力する。
任意選択により、第2のプログラマブル遅延部は、第2のクロック信号を、第1のクロック信号とは独立して、第2のクロック入力部において受信し、第2のクロック信号およびさらに遅延させた第1のクロック信号をパルス発生器内で使用して、パルス信号を発生させる。
任意選択により、第1のプログラマブル遅延部は、受信したクロック信号からパルス信号を発生させ、反転した状態のパルス信号を、第1のカスケード出力部を介して出力し、第2のプログラマブル遅延部は、反転した状態のパルス信号を第2のカスケード入力部において受信し、反転した状態のパルス信号を遅延させ、遅延させた反転した状態のパルス信号を出力する。
任意選択により、第1のプログラマブル遅延部は、反転した状態のパルス信号を第1のクロック出力部からさらに出力する。
任意選択により、第1のカスケード出力部は、固定回路構成を使用して、第2のカスケード入力部に結合されている。
この発明の概要のセクションは、特許請求される主題の何らかの主要または本質的な特徴を特定するためではなく、ある種の概念を導入するために提示されているにすぎない。本発明の配置構成の他の特徴は、添付の図面および以下の詳細な説明から明らかとなろう。
本発明の配置構成を添付の図面に一例として示している。ただし図面は、図示した特定の実装形態のみに本発明の配置構成を限定するものとして解釈されるべきではない。さまざまな態様および利点は、以下の詳細な説明を検討し、図面を参照することで明らかになろう。
例示的なプログラマブル遅延回路ブロック(プログラマブル遅延部)を示す回路図である。 図1を参照して説明するプログラマブル遅延部の1つまたは複数を使用して実現される例示的な遅延を示す表である。 プログラマブル遅延部を使用した例示的なカスケードアーキテクチャを示す回路図である。 プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。 プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。 プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。 プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。 プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。 プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す回路図である。 プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す構成図である。 プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャを示す構成図である。 クロックアーキテクチャを集積回路(IC)内に実装する方法を示すフローチャートである。 ICの例示的なアーキテクチャを示す構成図である。
本開示は、新規な特徴を規定した特許請求の範囲を結びとしているが、本開示内に記載されたさまざまな特徴は、図面と併せて記載内容を検討することで、より深く理解されると考えられる。プロセス、機械、製造品および本明細書に記載のそのいずれの変形も、例示のために提示している。本開示内に記載された具体的な構造上および機能上の詳細は、限定として解釈されるべきではなく、単に特許請求の範囲の基礎として、また事実上すべての適切に詳述された構造で記載される特徴をさまざまに用いるように当業者に教示するための代表的な基礎として解釈されるべきである。さらに、本開示内で使用する用語および語句は、限定が意図されているのではなく、むしろ、記載される特徴についての理解できる記述を提示することが意図されている。
本開示は集積回路(IC)に関し、より詳細には、IC内で使用するためのプログラマブル遅延回路ブロックに関する。本明細書に開示された本発明の配置構成に従って、クロック信号およびクロック信号発生に対する柔軟性および制御性の向上をもたらすプログラマブル遅延回路ブロックが記載されている。一態様では、クロック信号のスキューを制御することができる。別の態様では、プログラマブルなパルス幅を有するパルス信号を発生させることができる。
プログラマブル遅延回路ブロックは、カスケード入力部およびカスケード出力部を備えることによって、複数のプログラマブル遅延回路ブロックを一続きにデイジーチェーン接続することを可能にしており、クロック信号に適用され得る遅延の漸増量に対する制御を向上させるだけでなく、単一のプログラマブル遅延回路ブロックで個別に可能なものよりも大きい遅延をクロック信号に適用できるようになっている。以下、図面を参照しながらさらに詳述する。
本明細書に記載の本発明の配置構成は、ICとして、IC内の回路構成として、1つまたは複数の再使用可能な回路ブロックなど、として実装することができる。一態様では、本発明の配置構成は、フィールドプログラマブルゲートアレイ(FPGA)または少なくとも何らかのプログラマブル回路構成を備える他のタイプのICなどのプログラマブルIC内の回路構成の形で実装することができる。別の態様では、本発明の配置構成は、電子設計自動化(EDA)システムによって利用されるときに、回路設計に組み込まれ、ICの一部として製造されてもよい回路構成のデジタル記述を格納した非一時的コンピュータ可読記憶媒体として実装することができる。さらなる態様では、1つもしくは複数のプログラマブル遅延回路ブロックを使用して実施される信号を処理する方法として、かつ/またはIC内にクロックアーキテクチャを実装する方法として実装することができる。
例示を簡単かつ明瞭にするために、図面に示した要素は、必ずしも原寸に比例して描かれているわけではない。たとえば、分かりやすくするために、要素の一部の寸法は、他の要素に対して強調させていることがある。さらに、適切と考えられる場合に、対応する、類似の、または同様の特徴を示すために、各図面の中で参照番号を繰り返している。
図1は、例示的なプログラマブル遅延回路ブロック(プログラマブル遅延部)100を示す回路図である。プログラマブル遅延部100は、入力ステージ102、遅延ブロック104、パルス発生器106、および出力ステージ108を備える。遅延ブロック104は、遅延線124および遅延選択部126で形成されている。さらに、プログラマブル遅延部100は複数のメモリセル110を含む。一態様では、メモリセル110は、構成データを読み込んだ構成メモリセルである。構成データは、回路ブロック100の1つまたは複数を含むICに読み込まれて、1の値または0の値のいずれかを各メモリセル110に格納し、これによってプログラマブル遅延部100を動作するように構成することができる。
入力ステージ102は2つの入力部を含む。第1の入力部は、図1に「Csc In」として示したカスケード入力部112である。第2の入力部は、図1に「Clk In」として示したクロック入力部114である。カスケード入力112は、インバータ115の入力部に提供される。インバータ115の出力は、マルチプレクサ116の第1の入力部に提供される。マルチプレクサ116は反転マルチプレクサである。クロック入力114は、NAND回路118の第1の入力部に提供される。NAND回路118の出力はマルチプレクサ116の第2の入力部に提供される。メモリセルMC[4]に格納された値は、マルチプレクサ116が遅延ブロック104の遅延線124に、カスケード入力部112で受信した信号を送るか、NAND回路118から出力された信号を送るかを決定する。マルチプレクサ116によって送られる信号は、遅延線124に入る前に反転される。
NAND回路118の第2の入力部は、NAND回路120またはNAND回路122のいずれかから出力を受信する。描かれているように、NAND回路120は、メモリセルMC[2]およびMC[3]から取得した値に対して論理NAND演算を実施する。NAND回路120は、クロック入力部114で受信した信号をゲート制御するか、またはクロック入力部114で受信した信号をマルチプレクサ116に送ることができる。NAND回路122は、メモリセルMC[2]、MC[3]、およびMC[4]に格納されている値に対して論理NAND演算を実施する。NAND回路122は、クロック入力部114で受信した信号をゲート制御するか、またはクロック入力部114で受信した信号をマルチプレクサ116に送ることができる。
クロック入力部114で受信した信号を、NAND回路120を使用してゲート制御することに関して、メモリセル110は、MC[2]およびMC[3]が1の値にセットされたときに、NAND回路120からの出力がロジック0になるように構成されてもよい。クロック入力部114で受信した信号を、NAND回路122を使用してゲート制御する場合、メモリセル110は、MC[2]、MC[3]、およびMC[4]が1の値にセットされたときに、NAND回路122からの出力がロジック0になるように構成されてもよい。ロジック0がNAND回路118の第2の入力部に提供されると、NAND回路118の出力は、クロック入力部114で受信した信号の値にかかわらず、常にロジック1となる。したがって、クロック入力部114はゲート制御される。マルチプレクサ116の出力はロジック0となり、これによって、遅延線124が必要でない、かつ/または使用されていないときに動的電力を減少させるように遅延線124が切り替わることを防ぐ。
NAND回路120とNAND回路122は代替として設けられる。一態様では、遅延線124は、プログラマブル遅延部100からNAND回路122を除いた状態で、2入力部のNAND回路120を使用してゲート制御することができる。NAND回路120を使用し、遅延線124をゲート制御することで、グラウンドまでの遅延線124がゲート制御される。2入力部のNAND回路120が要する区域は3入力部のNAND回路122よりも小さいが、使用されるメモリセル110が少なくなるにつれて、プログラマブル遅延部100の構成が少なくなる。たとえば、本明細書において図9に示したクロックアーキテクチャは、NAND回路120を使用して実装されなくてもよい。
別の態様では、遅延線124は、プログラマブル遅延部100からNAND回路120を除いた状態で、3入力部のNAND回路122を使用してゲート制御することができる。上記のように、3入力部のNAND回路122の使用は、NAND回路120を使用するよりも大きい区域を要するが、プログラマブル遅延部100の構成は多くなる。たとえば、NAND回路122を使用して、図9に示したクロックアーキテクチャを実装してもよい。
上記のように、遅延ブロック104は、遅延線124および遅延選択部126を含む。遅延線124は、マルチタップの遅延線として実装されてもよい。遅延線124はさらに2進の重みが付けられている。図1の例では、遅延線124は、バッファ125から形成されている。遅延線124からの出力タップには、Y1、Y2、Y4、およびY8を付している。一態様では、出力タップY1は、遅延線124に入る任意の信号に50ピコ秒の遅延を適用することができる。出力タップY2は、遅延線124に入る任意の信号に100ピコ秒の遅延を与えることができる。出力タップY4は、遅延線124に入る任意の信号に200ピコ秒の遅延を与えることができる。出力タップY8は、遅延線124に入る任意の信号に400ピコ秒の遅延を与えることができる。その他の遅延量が与えられてもよい。本明細書において与えられる遅延量は例示的なものであり、限定は意図されていない。
一態様では、遅延線124内にバッファ125を含めることで、クロックアーキテクチャ内の既存のバッファをバッファ125に置き換えることが可能になる。より具体的には、クロックアーキテクチャの1つまたは複数のバッファは、遅延線124内のバッファ125の使用によって省略することができ、これによって、IC内のクロックアーキテクチャに必要な区域が減少する。
遅延選択部126は、出力タップY1、Y2、Y4、およびY8のそれぞれを受信する。メモリセル110、具体的にはメモリセルMC[0]およびMC[1]内の適切な値を読み込むことによって、出力タップY1、Y2、Y4、またはY8のうちの特定の1つが信号134として選択され、送られる。メモリセルMC[0]は、マルチプレクサ128および130を制御する。マルチプレクサ128は、メモリセルMC[0]に格納された値に応じて、出力タップY1またはY2のいずれかを送る。マルチプレクサ130は、メモリセルMC[0]に格納された値に応じて、出力タップY4またはY8のいずれかを送る。マルチプレクサ132は、メモリセルMC[1]に格納された値に従って、信号134として選択された出力タップを送る。マルチプレクサ132は反転マルチプレクサである。したがって、信号134は、マルチプレクサ132によって送られる反転した状態の信号である。本明細書に定義されるように、信号に関しての用語「送る」は、「出力する」および/または「発生させる」を意味する。たとえば、反転マルチプレクサが信号を送るということは、反転マルチプレクサが信号を選択し、選択した信号を反転し、選択して反転した信号を出力することを指す。
パルス発生器106はNAND回路136を含む。描かれているように、NAND回路136は、遅延選択部126からの信号134を第1の入力として受信する。NAND回路136は、クロック入力114を第2の入力としてさらに受信する。NAND回路136は、信号134、すなわち、出力タップY1、Y2、Y4、またはY8と、クロック入力114とに対して論理NAND演算を実施することによって、選択されたパルス幅を有するパルス信号138を発生させる。パルス幅はプログラマブルであり、特定の出力タップに、すなわち、信号134として選択されパルス発生器106に送られる、遅延線124を通って処理される信号に適用される遅延の量に依存する。
一態様では、カスケード入力部112で受信された信号は、遅延線124に送られ、次いで信号134としてパルス発生器106に送られてもよい。カスケード入力部112で受信される信号は、前にある別のプログラマブル遅延部からの遅延信号であってもよい。カスケード入力部112で受信された信号を遅延線124を通ってさらに遅延させ、このさらに遅延させた状態の信号を、選択された出力タップから信号134としてパルス発生器106に送ることによって、他の方法で達成できるものよりも広い幅のパルスを有するパルス信号を生成することができる。パルス発生器106は、遅延線124を通って処理される信号の立ち上がりエッジを、パルス信号138の立ち上がりエッジとして使用することができる。パルス信号138は反転されているので、パルス信号138は、インバータ146またはマルチプレクサ148によって反転されて正しいセンスに戻される。描かれているように、マルチプレクサ148は反転マルチプレクサである。たとえば、NAND回路136は、信号134の立ち上がりエッジを使用して、たとえばセンス補正の後にマルチプレクサ148から出力されるパルスの立ち下がりエッジを発生させる。センス補正されたプログラマブル遅延部100からの出力としてパルス信号138を提供することによって、1つまたは複数の下流の同期回路素子、たとえばフリップフロップは、センス補正されたパルス信号138によってクロック制御されるとき、タイムボローイング動作を可能にするために選択的にラッチに変換されてもよい。本明細書内では、プログラマブル遅延部100からの出力として発生したパルス信号を指すときは、反転した状態のパルス信号138、すなわち、マルチプレクサ148から出力されるセンス補正されたパルス信号を意味する。
出力ステージ108は、多種多様な出力オプションを備えている。出力ステージ108は、クロック入力114をインバータ140で受信する。出力ステージ108は、パルス信号138をマルチプレクサ142の入力部で受信する。出力ステージ108は、マルチプレクサ132からの信号134をマルチプレクサ142の別の入力部で受信する。マルチプレクサ142は、Y1、Y2、Y4、またはY8のいずれかであるパルス信号138または信号134を、出力として信号144の形態で送る。マルチプレクサ142は、メモリセルMC[2]に格納されている値に基づいて、パルス信号138または信号134を送る。
信号144は、インバータ146の入力部とマルチプレクサ148の第1の入力部の両方に提供される。インバータ146の出力部は、「Csc Out」として描かれたカスケード出力148を提供する。マルチプレクサ148は、反転した状態のクロック信号114である信号150を第2の入力部で受信する。マルチプレクサ148は、メモリセルMC[3]に格納された値に基づいて、信号144または信号150のいずれかを送り、送られる信号を反転してクロック出力152とする。遅延させられていないときに、クロック入力部114からインバータ140を通過し、マルチプレクサ148に至る中で処理されるクロック信号のための経路は、ジッタを最小限にするために低閾値のトランジスタを経路内で利用することができる。
プログラマブル遅延部100は、クロック信号を歪ませ、かつ/またはプログラマブルな長さのパルス幅を有するパルス信号を発生させるために、ICクロックアーキテクチャ内で使用されてもよい。複数のプログラマブル遅延部100がICクロックアーキテクチャに組み込まれているとき、プログラマブル遅延部のうち、これ以外の場合には使用されず、別のプログラマブル遅延部に隣接しているものは、カスケード入力部とカスケード出力部を使用してカスケード接続されていてもよい。クロック入力部114またはカスケード入力部112のいずれかに遅延線124が結合することを可能にするマルチプレクサが使用され、この結合先は、別の異なるプログラマブル遅延部のカスケード出力部に結合させることができる。カスケード接続されたプログラマブル遅延部は、これ以外の場合に可能なものと比べて、より細かいレベルの細分性でより大きい遅延を作り出すことを容易にする多様な接続を可能にすることができる。
さらに、プログラマブル遅延部100はスキュー調整のためにクロック信号を処理し、パルス信号を発生させ、このパルス信号はいずれも、カスケード接続された別のプログラマブル遅延部においてさらに遅延させられてもよいので、位相シフトされたクロックおよび位相シフトされたパルス信号は、IC内での余分なクロックトラックの使用を必要とすることなく、プログラマブル遅延部100をIC全体でクロックアーキテクチャの一部として葉ノードに分散させることによって、クロックアーキテクチャの葉に発生させることができる。そのような配置構成は、電力と、複数の位相シフトされた状態の同じクロック信号を利用する回路構成の区域とを節約する。
図2は、図1を参照しながら説明したプログラマブル遅延部の1つまたは複数を使用して実現される例示的な遅延を示す表200である。「プログラマブル遅延部の数」と題した左列は、「実現される遅延」と題した右列内の遅延の総量を実現するために、たとえばカスケード接続またはデイジーチェーン接続されるなどして、一続きに使用されなければならないプログラマブル遅延部の数を示す。「遅延寄与」と題した中央列は、一続きに接続された個々のプログラマブル遅延部のそれぞれが寄与する遅延の量を示す。
遅延線124における2進重み付けにより、各プログラマブル回路は、わずか50ピコ秒の遅延から最大400ピコ秒の遅延に寄与することができる。表200に示されているように、4つのプログラマブル遅延部を互いにカスケード接続することによって、1,050ピコ秒を超える遅延が実現できる。カスケードアーキテクチャを使用して1つまたは複数のプログラマブル遅延部によって適用される遅延の量は50ピコ秒ずつ増加し、これはプログラマブル遅延部100のうちの1つによって適用され得る最小の遅延である。
図3〜9は、メモリセル内に適切な値を格納することによって実装できる例示的なカスケードアーキテクチャを示す。図3〜9内では、図示したプログラマブル遅延部を通るアクティブ状態の信号経路は、ワイヤ(信号)および端子について太線を使用して示している。図3〜9内に示したプログラマブル遅延部は、例示しやすくするために簡略化している。インバータやメモリセルなどの種々の回路素子は、分かりやすくするために省略している。
図3〜9に示した例のそれぞれにおいて、プログラマブル遅延部Aとプログラマブル遅延部Bは独立に構成可能であることを認識されたい。各プログラマブル遅延部は、自らの構成用メモリセルのセットを有している。したがって、プログラマブル遅延部Aの遅延線によって適用される遅延の量は、プログラマブル遅延部Bの遅延線によって適用される遅延の量とは異なることがある。さらに、プログラマブル遅延部Aが発生させるパルス信号は、たとえば、プログラマブル遅延部Bが発生させるパルス信号とは異なるパルス幅および/または異なる遅延など、異なるものであってもよい。さらに、プログラマブル遅延部Aおよび/またはBの一方または両方のいずれかのClk Outからの任意の信号出力が、それぞれのプログラマブル遅延部に対するローカルなクロック負荷を駆動するために利用可能である。
図3は、プログラマブル遅延部を使用した例示的なカスケードアーキテクチャ300を示す回路図である。図3は、プログラマブル遅延部Aが第1のクロック信号を処理する一方で、プログラマブル遅延部Bが第2の独立したクロック信号を処理する例を示す。たとえば、図3を参照すると、クロック信号がプログラマブル遅延部AおよびBのそれぞれのClk In(クロック入力部114)で受信され、各プログラマブル遅延部の遅延線を通って送られ、次いでプログラマブル遅延部AおよびBのClk Out(クロック出力部152)に送られる。Csc Out(カスケード出力部148)とCsc In(カスケード入力部112)は互いに結合されているが、カスケード入力部およびカスケード出力部はカスケードアーキテクチャ300において使用されていない。
図4は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ400を示す回路図である。図4は、プログラマブル遅延部Bが使用されておらず、したがって、プログラマブル遅延部Aを使用して最初に処理されたクロック信号をさらに処理するためにプログラマブル遅延部Bが利用可能である例を示す。たとえば、クロック信号がプログラマブル遅延部AのClk Inで受信され、遅延線を通って遅延させられ、プログラマブル遅延部AのCsc Outで出力される。さらに、プログラマブル遅延部AのClk Inで受信された最初のクロック信号は、Clk Outから出力されて、1つまたは複数のクロック負荷によって使用される。描かれているように、プログラマブル遅延部AのCsc Outは、プログラマブル遅延部BのCsc Inに結合されている。カスケードアーキテクチャ400は、プログラマブル遅延部BのClk Outから出力される信号について発生させることができる遅延の量が、個々のプログラマブル遅延部による遅延量の2倍になり得る例を示す。
図5は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ500を示す回路図である。カスケードアーキテクチャ500では、第1のクロック信号がプログラマブル遅延部AのCsc Inで受信され、遅延線を通って処理され、プログラマブル遅延部AのCsc Outから出力される。図示されているように、プログラマブル遅延部AのCsc Outは、プログラマブル遅延部BのCsc Inに結合され、プログラマブル遅延部Bの遅延線を通ってさらに遅延させられ、その後、プログラマブル遅延部BのClk Outで出力される。プログラマブル遅延部AのCsc Inは、前にある図示されていないプログラマブル遅延部のCsc Outによって供給されるので、プログラマブル遅延部BのClk Outを通って出力される第1のクロック信号は、プログラマブル遅延部のうちの1つによって与えられる有効な遅延全体の最大で3倍の遅延となり得る。
ただし、プログラマブル遅延部Aは、第2の独立したクロック信号をClk Inでさらに受信する。第2のクロック信号は、追加の遅延を加えずにプログラマブル遅延部Aを通って送られ、Clk Outを通って出力される。
図6は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ600を示す回路図である。カスケードアーキテクチャ600では、2つの別個かつ独立したクロック信号が処理されて、2つの別個かつ独立したパルス信号を発生させる。プログラマブル遅延部AおよびBのそれぞれは、クロック信号をClk Inで受信する。クロック信号は、プログラマブル遅延部AおよびBのそれぞれの遅延線で遅延させられ、次いで、遅延させられたクロック信号および遅延なしの最初のクロック信号にNAND演算を実施することによってパルス信号を作り出すために使用される。得られたパルス信号は、プログラマブル遅延部AおよびBのそれぞれのClk Outから出力される。
図7は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ700を示す回路図である。カスケードアーキテクチャ700の例では、プログラマブル遅延部AとBは、プログラマブル遅延部のうちの1つによる遅延の2倍の遅延を実現するためにカスケード接続されている。次いで、遅延信号は、プログラマブル遅延部のうちの1つを使用して発生させられるパルス信号の2倍のパルス幅を有するパルス信号をプログラマブル遅延部Bで作り出すために使用される。
描かれているように、クロック信号がプログラマブル遅延部AのClk Inで受信される。クロック信号は、プログラマブル遅延部Aにおける遅延線を使用して遅延させられ、Csc Outから出力される。遅延させられたクロック信号は、プログラマブル遅延部BのCsc Inで受信され、プログラマブル遅延部Bの遅延線を使用してさらに遅延させられ、内部のパルス発生器に提供される。
プログラマブル遅延部AのClk Inで受信された最初のクロック信号はまた、遅延を加えずにプログラマブル遅延部AのClk Outまで通って送られ、プログラマブル遅延部Aにローカルなクロック負荷によって使用可能になる。描かれているように、最初のクロック信号はまた、プログラマブル遅延部Aの外部にある追加のワイヤリソースを使用してプログラマブル遅延部BのClk Inに送られ、プログラマブル遅延部Bにおけるパルス発生器によるパルス信号の発生のために使用されてもよい。あるいは、第2の独立したクロック信号が、破線で示したプログラマブル遅延部BのClk Inに与えられてもよい。得られたパルス信号は、プログラマブル遅延部BのClk Outから出力される。
図8は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ800を示す回路図である。アーキテクチャ800の例では、プログラマブル遅延部Aは、クロック信号をClk Inで受信する。クロック信号はプログラマブル遅延部Aの遅延線を使用して遅延させられる。遅延させられたクロック信号は、次いで、プログラマブル遅延部Aのパルス発生器を使用してパルス信号を発生させるために、最初のクロック信号とともにパルス発生器に提供される。パルス信号は、プログラマブル遅延部AのCsc OutとClk Outの両方によって出力される。Clk Outからのパルス信号は、プログラマブル遅延部AのClk Out内およびその周囲のクロック負荷を駆動するために使用されてもよい。Csc Outからのパルス信号は、プログラマブル遅延部BのCsc Inに提供される。パルス信号は、プログラマブル遅延部Bの遅延線を使用して遅延させられ、プログラマブル遅延部BのClk Outを通って出力される。
図9は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ900を示す回路図である。カスケードアーキテクチャ900の例は、カスケードアーキテクチャ800のものと実質的に類似している。1つの例外は、プログラマブル遅延部AがCsc OutとClk Outの両方からはパルス信号を出力しないことである。ここでは、プログラマブル遅延部Aは、パルス信号をCsc Outから出力し、一方で、最初のクロック信号を追加の遅延なしでClk Outから出力する。Csc Outから出力されるパルス信号は、プログラマブル遅延部BのCsc Inに提供され、プログラマブル遅延部Bの遅延線を通って遅延させられ、Clk Outを通って出力される。
図10は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ1000を示す構成図である。カスケードアーキテクチャ1000は、互いにカスケード接続された4つのプログラマブル遅延部A、B、C、およびDを含む。描かれているように、プログラマブル遅延部Aのカスケード出力部148は、プログラマブル遅延部Bのカスケード入力部112に結合されている。プログラマブル遅延部Bのカスケード出力部148は、プログラマブル遅延部Cのカスケード入力部112に結合されている。プログラマブル遅延部Cのカスケード出力部148は、プログラマブル遅延部Dのカスケード入力部112に結合されている。最後に、プログラマブル遅延部Dのカスケード出力部148は、プログラマブル遅延部Aのカスケード入力部112に結合されている。
カスケードアーキテクチャ1000は、単一のプログラマブル遅延部による遅延の最大で4倍の全体的な遅延を、受信したクロック信号に適用可能である。さらに、単一のプログラマブル遅延部が発生させるパルス信号のパルス幅の最大で4倍のパルス幅を有するパルス信号を発生させることができる。この場合、プログラマブル遅延部Aは信号入力点として使用され、得られた出力信号は、プログラマブル遅延部Dのクロック出力部152から出力される。
しかしながら、出力信号は、遅延の量、所望のパルス幅、および/またはクロック信号が必要とされるICにおける位置に応じて、プログラマブル遅延部A、B、C、および/またはDのいずれのクロック出力部152から取り出されてもよいことが理解されるはずである。同様に、信号入力点は変化してもよく、プログラマブル遅延部A、B、C、および/またはDのいずれのクロック入力部114であってもよい。たとえば、図10に示したループバック構成を使用して、信号が、クロック入力部114を通ってプログラマブル遅延部Bに入り、カスケード出力部148を使用してプログラマブル遅延部CおよびDをカスケード式に通り、ループバック接続を使用してプログラマブル遅延部Aにカスケード式に送られるクロックアーキテクチャを作成してもよい。得られた信号は、プログラマブル遅延部Aのクロック出力部152から出力されてもよい。図10を参照しながら説明した例は、図示したプログラマブル遅延部を4つすべて利用しているが、遅延部が図示したすべてよりも少ないクロックアーキテクチャを作成してもよい。IC内の図示したようなループバック構成に配置された所与のセットのプログラマブル遅延部、たとえば、ループバック構成のための2、3、4、またはそれ以上のいずれでもよいプログラマブル遅延部内では、クロック信号のための入力点と出力点は互いに独立に選択されてもよい。
図11は、プログラマブル遅延部を使用した別の例示的なカスケードアーキテクチャ1100を示す構成図である。カスケードアーキテクチャ1100は、4つのプログラマブル遅延部A、B、C、およびDを含む。図11の例では、プログラマブル遅延部は、2つの別個の部分として互いにカスケード接続されている。
プログラマブル遅延部の第1の対において、プログラマブル遅延部Aのカスケード出力部148は、プログラマブル遅延部Bのカスケード入力部112に結合されている。プログラマブル遅延部Bのカスケード出力部148は、プログラマブル遅延部Aのカスケード入力部112に結合されている。
プログラマブル遅延部の第2の対において、プログラマブル遅延部Cのカスケード出力部148は、プログラマブル遅延部Dのカスケード入力部112に結合されている。プログラマブル遅延部Dのカスケード出力部148は、プログラマブル遅延部Cのカスケード入力部112に結合されている。
カスケード接続されたプログラマブル遅延部の各対は、単一のプログラマブル遅延部の最大で2倍の遅延と、単一のプログラマブル遅延部の最大で2倍のパルス幅を有するパルス信号とを提供することができる。ある得られた出力信号は、プログラマブル遅延部Bのクロック出力部152から出力される。別の得られた出力信号は、プログラマブル遅延部Dのクロック出力部152から出力される。
図10および図11のそれぞれにおいて、プログラマブル遅延部のカスケード出力部とカスケード入力部の間の接続は、固定されていてもよく、すなわち、プログラマブル遅延部が実装されているICの部分として有線接続に形成されていてもよい。
図12は、クロックアーキテクチャをIC内に実装する方法1200を示すフローチャートである。ブロック1205において、第1のプログラマブル遅延部が、クロックアーキテクチャ、たとえば内部に実装されたクロックツリーの一部としてIC内に設けられる。ブロック1210において、第2以降のプログラマブル遅延部が、クロックアーキテクチャの一部としてICに設けられる。プログラマブル遅延部は、クロックアーキテクチャ全体に追加されてもよい。一態様では、プログラマブル遅延部は、クロックアーキテクチャの各葉に追加される。クロックアーキテクチャ、すなわちクロックツリーの葉は、クロックソースからICの特定の領域またはゾーンにクロック信号を送達するルーティングトラック(ワイヤ)から、クロック信号が出ていくノードであり、この点特定の領域またはゾーンにおいて、クロック信号は分散トラック(ワイヤ)にスイッチして、葉ノードにローカルな1つまたは複数のクロック負荷に分散する。
ブロック1215において、プログラマブル遅延部のうち、選択されたものが互いに結合されて、本明細書内に示したように1つまたは複数のカスケードアーキテクチャを形成する。あるプログラマブル遅延部のカスケード出力部を別のプログラマブル遅延部のカスケード入力部に接続することによって、2つ以上のプログラマブル遅延部が結合される。
ブロック1220において、実装中の回路設計が必要とするか、または要求するクロック信号を発生させるために、それぞれのプログラマブル遅延部のメモリセル内の適切な値を読み込むことによってプログラマブル遅延部を構成することができる。
一態様では、カスケードアーキテクチャの形成は、有線回路構成を使用して実施してもよい。たとえば、各プログラマブル遅延部は、構成可能な、有線、すなわち固定の回路ブロックであってもよい。カスケード出力部をカスケード入力部に接続している2つ以上のカスケード接続されたプログラマブル遅延部間の配線は、IC内の有線、すなわち固定の接続であってもよい。
図13は、ICの例示的なアーキテクチャ1300を示す構成図である。一態様では、アーキテクチャ1300は、フィールドプログラマブルゲートアレイ(FPGA)タイプのIC内に実装される。アーキテクチャ1300はまた、SOCタイプのICの代表でもある。上記のように、SOCは、プログラムコードを実行するプロセッサと、1つもしくは複数の他の回路および/または回路システムとを備えるICである。回路および/または回路システムは、互いに、またプロセッサと協働して動作してもよい。いずれの場合でも、本開示内で説明したプログラマブル遅延部は、図13に示したクロック区域の全体に実装されてもよい。
図示されているように、アーキテクチャ1300は、たとえばロジックやブロックといった、いくつかの異なるタイプのプログラマブル回路を備える。たとえば、アーキテクチャ1300は、マルチギガビット送受信機(MGT)1301、構成可能なロジックブロック(CLB)1302、ランダムアクセスメモリブロック(BRAM)1303、入力/出力ブロック(IOB)1304、構成およびクロックのロジック(CONFIG/CLOCKS)1305、デジタル信号処理ブロック(DSP)1306、専用I/Oブロック1307(たとえば、構成ポートおよびクロックポート)、ならびにデジタルクロックマネージャ、アナログ−デジタルコンバータ、システム監視ロジックなどの他のプログラマブルロジック1308を含む、多くの異なるプログラマブルなタイルを備えていてもよい。
一部のICでは、各プログラマブルなタイルは、プログラマブルな相互接続要素(INT)1311を含み、INT 1311は、各隣接タイルにおける対応するINT 1311との標準化された接続を有する。したがって、INT 1311は互いに合わさって、図示したICのためのプログラマブルな相互接続構造を実現する。各INT 1311はまた、図13の上部に含めた例によって示されるように、同じタイル内のプログラマブル論理素子との接続も含む。
たとえば、CLB 1302は、単一のINT 1311に加えて、ユーザロジックを実装するためにプログラムされてもよい構成可能な論理素子(CLE)1312を含むことができる。BRAM 1303は、1つまたは複数のINT 1311に加えて、BRAM論理素子(BRL)1313を備えていてもよい。典型的には、あるタイルに含まれるINT 1311の数は、タイルの高さに依存する。描かれているように、BRAMタイルは、5つのCLBと同じ高さを有するが、他の数(たとえば、4つ)が使用されてもよい。DSPタイル1306は、適切な数のINT 1311に加えて、DSP論理素子(DSPL)1314を備えていてもよい。IOB 1304は、たとえば、1つのインスタンスのINT 1311に加えて、2つのインスタンスのI/O論理素子(IOL)1315を備えていてもよい。当業者には明らかなように、たとえばIOL 1315に接続された実際のI/Oパッドは、通常はIOL 1315の区域に制限されることはない。
図13に描かれている例では、たとえば領域1305、1307、および1308から形成された、ダイの中央近くにある列の区域が、構成、クロック、およびその他の制御ロジックに使用されてもよい。この列から延びる水平の区域1309は、クロックおよび構成信号をプログラマブルICの横幅にわたって分散させるために使用される。1つまたは複数のプログラマブル遅延部は、領域1305、1307、1308、および/または1309全体に分散したクロックラインに実装されてもよい。
一態様では、クロック回路、または葉のクロック回路は、アーキテクチャ300内の種々の位置に実装されてもよい。そのようなクロック回路は、本開示内で説明したようにプログラマブル遅延部を備えていてもよい。たとえば、プログラマブル遅延部を備えるクロック回路は、CLB 1302、BRAM 1303、および/またはDSP 1306を含む列の1つもしくは複数またはそれぞれとの領域1309の交差部に含められ、または配置されてもよい。ただし、プログラマブル遅延部は、アーキテクチャ300内の他の場所に含められるか、または配置されてもよく、また、本明細書で提供された例は、限定を意図されていないことが理解されるはずである。
図13に示したアーキテクチャを利用する一部のICは、ICの大きい部分を占める規則的な列構造を中断させる追加のロジックブロックを含む。追加のロジックブロックは、プログラマブルブロックおよび/または専用回路構成であってもよい。たとえば、PROC 1310として描かれたプロセッサブロックは、いくつかの列のCLBおよびBRAMにまたがっている。
一態様では、PROC 1310は、ICのプログラマブル回路構成を実装するダイの一部として製作された専用回路構成、たとえば、有線プロセッサとして実装される。PROC 1310は、複雑さの範囲が、個々のプロセッサ、たとえば、プログラムコードを実行することが可能な単一のコアから、1つまたは複数のコア、モジュール、コプロセッサ、またはインターフェースなどを有するプロセッサシステム全体に至るまでの多種多様なプロセッサタイプおよび/またはシステムのいずれかを表すことができる。
別の態様では、PROC 1310はアーキテクチャ1300から省かれ、記載した他の多様なプログラマブルブロックの1つまたは複数で置き換えられる。さらに、そのようなブロックは、PROC 1310と同様にプログラムコードを実行するプロセッサを形成するためにプログラマブル回路構成の種々のブロックが使用されてもよいという点で「ソフトプロセッサ」を形成するために利用することができる。
「プログラマブル回路構成」という語句は、IC内のプログラマブル回路素子、たとえば、本明細書に記載の種々のプログラマブルまたは構成可能な回路ブロックまたはタイルだけでなく、種々の回路ブロック、タイル、および/または要素を、ICに読み込まれる構成データに従って選択的に結合する相互接続回路構成を意味する。たとえば、CLB 1302およびBRAM 1303などの、PROC 1310の外部にある図13に示した部分は、ICのプログラマブル回路構成と考えられる。プログラマブル回路構成は、異なる物理回路を内部に実装するために構成またはプログラムされてもよい。
一般に、プログラマブル回路構成の機能群は、構成データがICに読み込まれるまで確立されない。構成ビットのセットは、FPGAなどのICのプログラマブル回路構成をプログラムするために使用されてもよい。構成ビットは、典型的には「構成ビットストリーム」と呼ばれる。一般に、プログラマブル回路構成は、最初に構成ビットストリームをICに読み込まなければ動作も機能もしない。構成ビットストリームは、プログラマブル回路構成内に特定の物理回路を事実上実装するか、またはインスタンス化する。構成ビットストリームまたは回路設計は、たとえば、プログラマブル回路ブロックの機能的な側面と、これ以外の場合には存在しない種々のプログラマブル回路ブロックの中での物理的な接続性とを指定する。構成ビットストリームはさらに、本明細書に記載のプログラマブル遅延部の動作を制御するために使用されるメモリセルに読み込まれることがある値を指定する。
「有線の」または「固定化された」、すなわちプログラマブルでない回路構成が、ICの一部として製造される。プログラマブル回路構成とは異なり、有線回路構成または回路ブロックは、ICの製造後に構成ビットストリームを読み込むことでは実装されない。有線回路構成は、たとえば、最初に構成ビットストリームをICに読み込まなければ機能しない専用回路ブロックおよび相互接続部を有する。有線回路構成の例はPROC 1310である。
場合によっては、有線回路構成、たとえばプログラマブル遅延部は、レジスタ設定またはIC内の1つまたは複数のメモリ要素に格納された値に従って設定または選択することができる1つまたは複数の動作モードを有していてもよい。動作モードは、たとえば、構成ビットストリームをICに読み込むことによって設定されてもよい。この能力はあるものの、有線回路構成は、ICの一部として製造されたときに動作可能であり、特定の機能を有するので、プログラマブル回路構成とはみなされない。
図13は、プログラマブル回路構成、たとえば、プログラマブルファブリックを含むICを実装するために使用できる例示的なアーキテクチャを示すことが意図されている。たとえば、ある列におけるロジックブロックの数、列の相対的な幅、列の数と順序、列に含まれるロジックブロックのタイプ、ロジックブロックの相対的なサイズ、および図13の上部に含めた相互接続部/ロジックの実装は、純粋に例示的なものである。実際のICでは、ユーザ回路設計の効率的な実装を容易にするために、たとえば2つ以上の隣り合う列のCLBは、そのCLBが現れるところであればどこに含めてもよい。ただし、隣り合うCLB列の数は、ICの全体的なサイズに合わせて変化し得る。さらに、IC内のPROC 1310などのブロックのサイズおよび/または位置取りは、例示のためのものにすぎず、限定は意図されていない。
本明細書に開示された本発明の配置構成に従って、プログラマブル遅延回路ブロック、および2つ以上のプログラマブル遅延部から形成されたカスケードアーキテクチャを説明する。本発明の配置構成は、ICのクロックアーキテクチャに組み込まれているとき、クロック信号およびクロック信号発生に対する柔軟性および制御性の向上をもたらす。クロック信号のスキューは、向上した精度で制御できる。さらに、プログラマブルなパルス幅を有するパルス信号を発生させることができ、これによって、選択されたクロック制御される回路素子がパルス信号を使用してクロック制御されるとき、タイムボローイング動作を実現するために、そのような選択されたクロック制御される素子のラッチへの変換が容易になる。
説明の目的で、本明細書において開示された種々の発明の概念を十分に理解してもらうために、具体的な専門語を用いている。ただし、本明細書で使用される用語は、本発明の配置構成の特定の側面を説明するためのものにすぎず、限定は意図されていない。
本開示内で定義されるように、「ある(a)」および「一(an)」という用語は、1つまたは2つ以上を意味する。「複数」という用語は、本明細書に定義されるように、2つまたは3つ以上を意味する。「別の」という用語は、本明細書に定義されるように、少なくとも第2以降を意味する。「結合されている」という用語は、本明細書に定義されるように、別段の記載がない限り、介在する要素が直接的に存在しないか、1つまたは複数の介在する要素が間接的に存在するかにかかわらず、接続されていることを意味する。2つの要素はまた、通信チャネル、通路、ネットワーク、またはシステムを通って、機械的、電気的、または通信可能にリンクされていてもよい。
本開示内で定義されるように、「および/または」という用語は、関連する列挙した項目のうちの1つまたは複数のあらゆる可能な組み合わせを意味する。「含む」および/または「含んだ」という用語は、本開示で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を特定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはこれらの群の存在または追加を排除するものではない。「第1の」、「第2の」などの用語は、本明細書において種々の要素について述べるために使用されることがあるが、これらの用語は、文脈上異なる場合を除き、ある要素を別の要素と区別するために使用されているにすぎないので、これらの要素は、こういった用語によって限定されるべきではない。
本明細書に定義されるように、「場合(if)」という用語は、文脈に応じて、「とき(when)」、「〜すると(upon)」、「判定に応答して」、「検出に応答して」、「判定に応じて」、または「検出に応じて」を意味する。同様に、「判定された場合」という語句または「[述べられた条件または事象]が検出された場合」という語句は、本明細書に定義されるように、文脈に応じて、「判定すると」、「判定に応答して」、「判定に応じて」、「[述べられた条件または事象]を検出すると」、「[述べられた条件または事象]の検出に応答して」、または「[述べられた条件または事象]の検出に応じて」を意味する。
本開示内では、同じ参照符号は、端子、信号線、ワイヤ、およびこれらの対応する信号を指すために使用される。この点に関して、「信号」、「ワイヤ」、「接続」、「端子」、および「ピン」という用語は、本開示内では時として互換可能に使用されることがある。「信号」または「ワイヤ」などの用語は、1つまたは複数の信号、たとえば、単一のワイヤを通る単一のビットの搬送または複数の平行ワイヤを通る複数の平行ビットの搬送を表し得ることも認識されたい。さらに、各ワイヤまたは信号は、場合により、信号またはワイヤによって接続された2つ以上の構成要素間の双方向通信を表すことがある。
1つまたは複数の態様は、本明細書に記載の方法および/または回路の実装を可能にするすべての特徴を含んだコンピュータプログラム製品にさらに埋め込まれていてもよい。コンピュータプログラム製品は、コンピュータ可読データ記憶媒体を含む。本明細書に定義されるように、「コンピュータ可読記憶媒体」という語句は、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連して使用されるために、プログラムコードを収納または格納した記憶媒体を意味する。本明細書に定義されるように、「コンピュータ可読記憶媒体」は一時的なものではなく、したがって、一時的な伝搬信号自体ではない。コンピュータ可読記憶媒体の例には、限定はされないが、光学媒体、磁気媒体、光磁気媒体、ランダムアクセスメモリなどのコンピュータメモリ、大容量記憶装置デバイス、たとえば、ハードディスクなどが含まれてもよい。
図面におけるフローチャートおよび構成図は、本明細書において開示された本発明の配置構成のさまざまな態様によるシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能群、および動作を示す。この点については、フローチャートまたは構成図における各ブロックは、モジュール、セグメント、またはコードの一部を表すことができ、コードは、特定の機能を実現するための1つまたは複数の実行可能な命令を含む。構成図および/またはフローチャート図の各ブロック、ならびに構成図および/またはフローチャート図におけるブロックの組み合わせは、特定の機能もしくは行為、または特殊用途のハードウェアとコンピュータ命令の組み合わせを実施する特殊用途のハードウェアベースのシステムによって実装され得ることにも留意されたい。
一態様では、フローチャート図におけるブロックは、種々のブロックの数字に対応する昇順で実施され得る。他の態様では、ブロックは、ブロックの数字とは異なる、すなわちさまざまな順序で実施されてもよい。たとえば、連続して示された2つ以上のブロックは、実質的に同時に実行されてもよい。他の場合では、2つ以上のブロックが、関与する機能群に応じて、時として逆の順序で実行されてもよい。さらに他の場合では、1つまたは複数のブロックは、直後ではない後続または他のブロックに結果が保存され、利用されるようにして、さまざまな順序で実施されてもよい。
以下の特許請求の範囲におけるすべてのミーンズプラスファンクションまたはステッププラスファンクションの要素の対応する構造、材料、行為、および均等物は、他の特許請求される要素と組み合わせて、具体的に特許請求されたものとして機能を実施する任意の構造、材料、または行為を含むことが意図されている。
プログラマブル遅延回路ブロックは、カスケード入力部およびクロック入力部を有する入力ステージを含み、入力ステージは、カスケード入力部で受信した信号またはクロック入力部で受信した信号を送り、プログラマブル遅延回路ブロックはさらに、入力ステージから送られた信号に、選択された量の遅延を適用することによって遅延信号を発生させるように構成された遅延ブロックと、遅延の量に依存するパルス幅を有するパルス信号を発生させるように構成されたパルス発生器とを含む。プログラマブル遅延回路ブロックはまた、カスケード出力部およびクロック出力部を有する出力ステージを含む。出力ステージは、反転した状態のパルス信号または遅延信号をカスケード出力部から送り、クロック入力部で受信した信号、反転した状態のパルス信号、または遅延信号をクロック出力部から送るように構成されている。
入力ステージは、メモリセルを含んでいてもよく、メモリセルに格納された値に従って、カスケード入力部の信号またはクロック入力部で受信した信号のいずれかを送ることができる。さらに、入力ステージは、メモリセルに格納された値に従って、クロック入力部で受信した信号を選択的にゲート制御することができる。
パルス発生器は、反転した状態の遅延信号と、クロック入力部で受信した信号とからパルス信号を発生させるNAND回路を含んでいてもよい。
遅延ブロックは、複数のタップを有し、複数の遅延信号候補を発生させる遅延線を含んでいてもよい。遅延ブロックはまた、複数の遅延信号候補のうちの1つを遅延信号として送る遅延選択部ブロックを含んでいてもよい。遅延線は、2進の重みが付けられていてもよい。
遅延選択部ブロックは、メモリセルおよび反転マルチプレクサを含んでいてもよい。反転マルチプレクサは、メモリセルに格納された値に従って、複数の遅延信号候補から遅延信号を選択することができる。
出力ステージは、複数のメモリセル、マルチプレクサ、および反転マルチプレクサを含んでいてもよい。マルチプレクサは、複数のメモリセルのうちの第1のメモリセルに格納された値に従って、パルス信号または反転した状態の遅延信号をカスケード出力部に送ることができる。反転マルチプレクサは、第1のメモリセルに格納された値および複数のメモリセルのうちの第2のメモリセルに格納された値に従って、クロック入力部で受信した信号、パルス信号、または反転した状態の遅延信号を、反転した状態でクロック出力部に送ることができる。
クロック回路は、第1のカスケード入力部、第1のクロック入力部、複数のタップを有する第1の遅延線、第1のパルス発生器、第1のカスケード出力部、および第1のクロック出力部を有する第1のプログラマブル遅延回路ブロックを含む。クロック回路はまた、第2のカスケード入力部、第2のクロック入力部、複数のタップを有する第2の遅延線、第2のパルス発生器、第2のカスケード出力部、および第2のクロック出力部を有する第2のプログラマブル遅延回路ブロックを含む。第1のカスケード出力部は、第2のカスケード入力部に結合されている。
第1のカスケード出力部は、第1のパルス発生器によって発生させられた第1のパルス信号または第1の遅延線によって発生させられた第1の遅延信号を反転した状態で送ることができる。第2のカスケード出力部は、第2のパルス発生器によって発生させられた第2のパルス信号または第2の遅延線によって発生させられた第2の遅延信号を反転した状態で送ることができる。第1のクロック出力部は、第1のクロック入力部で受信した信号、反転した状態の第1のパルス信号、または第1の遅延信号を送ることができる。第2のクロック出力部は、第2のクロック入力部で受信した第2の信号、反転した状態の第2のパルス信号、または第2の遅延信号を送ることができる。
第1のパルス発生器は、第1の遅延線によって信号に適用された遅延の量に依存するパルス幅を有する第1のパルス信号を発生させることができる。第2のパルス発生器は、第2の遅延線によって信号に適用された遅延の量に依存するパルス幅を有する第2のパルス信号を発生させることができる。
一態様では、第1のプログラマブル遅延部は、第1のクロック信号を遅延させ、遅延させた第1のクロック信号を、第1のカスケード出力部を介して出力することができる。第2のプログラマブル遅延部は、遅延させた第1のクロック信号を、第2のカスケード入力部を介して受信し、遅延させた第1のクロック信号をさらに遅延させることができる。たとえば、第1のプログラマブル遅延部は、遅延を適用することなく、第1のクロック信号を第1遅延のクロック出力部から出力してもよい。別の例では、第1のクロック信号は、第1のカスケード入力部で第1のプログラマブル遅延部に受信されてもよい。この場合、第1のプログラマブル遅延部は、第2のクロック信号を、第1のクロック信号とは独立して、第1のクロック入力部において受信し、遅延を適用することなく、第2のクロック信号を第1のクロック出力部から出力することができる。
別の態様では、第1のプログラマブル遅延部は、第1のクロック信号を遅延させ、遅延させた第1のクロック信号を、第1のカスケード出力部を介して出力することができる。第2のプログラマブル遅延部は、遅延させた第1のクロック信号を、第2のカスケード入力部において受信し、遅延させた第1のクロック信号をさらに遅延させ、さらに遅延させた第1のクロック信号を使用してパルス信号を発生させ、反転した状態のパルス信号を出力することができる。ある例においては、第1のプログラマブル遅延部は、第1のクロック信号を遅延なしで第1のクロック出力部を介してさらに出力することができる。さらに別の例では、第2のプログラマブル遅延部は、第2のクロック信号を、第1のクロック信号とは独立して、第2のクロック入力部において受信し、第2のクロック信号およびさらに遅延させた第1のクロック信号をパルス発生器内で使用して、パルス信号を発生させることができる。
さらに別の態様では、第1のプログラマブル遅延部は、受信したクロック信号からパルス信号を発生させ、反転した状態のパルス信号を、第1のカスケード出力部を介して出力することができる。第2のプログラマブル遅延部は、反転した状態のパルス信号を第2のカスケード入力部において受信し、反転した状態のパルス信号を遅延させ、遅延させた反転した状態のパルス信号を出力することができる。この場合、第1のプログラマブル遅延部は、反転した状態のパルス信号を第1のクロック出力部からさらに出力することができる。
第1のカスケード出力部は、固定回路構成を使用して、第2のカスケード入力部に結合されていてもよい。
本開示内に記載した特徴は、趣旨またはその本質的な性質から逸脱することなく、他の形で具体化されてもよい。したがって、そのような特徴および実装の範囲を示すものとしては、上記の開示内容ではなく、添付の特許請求の範囲を参照すべきである。

Claims (13)

  1. カスケード入力部およびクロック入力部を含む入力ステージであって、前記カスケード入力部で受信した信号または前記クロック入力部で受信した信号を選択的に送る入力ステージと、
    前記入力ステージの出力部に結合され、前記入力ステージから送られた前記信号に、選択された量の遅延を適用することによって遅延信号を発生させるように構成された遅延ブロックと、
    前記遅延ブロックの出力部に結合され、前記遅延ブロックによって適用される前記遅延の量に依存するパルス幅を有する反転した状態のパルス信号を発生させるように構成されたパルス発生器と、
    前記パルス発生器の出力部に結合された出力ステージであって、プログラマブル遅延回路ブロックのためのカスケード出力部およびクロック出力部を含む出力ステージと
    を含み、
    前記出力ステージが、前記パルス信号または前記遅延信号を前記カスケード出力部から選択的に送り、かつ、前記クロック入力部で受信した前記信号またはカスケード出力部から送られた同じ信号を、クロック出力部から選択的に送る、プログラマブル遅延回路ブロック。
  2. 前記入力ステージが、メモリセルを含み、前記メモリセルに格納された値に従って、前記カスケード入力部の前記信号または前記クロック入力部で受信した前記信号のいずれかを選択的に送る、請求項1に記載のプログラマブル遅延回路ブロック。
  3. 前記入力ステージが、メモリセルに格納された値に従って、前記クロック入力部で受信した前記信号を選択的にゲート制御する、請求項1に記載のプログラマブル遅延回路ブロック。
  4. 前記パルス発生器が、反転した状態の前記遅延信号と、前記クロック入力部で受信した前記信号とから反転した状態の前記パルス信号を発生させるNAND回路を含む、請求項1から3のいずれか一項に記載のプログラマブル遅延回路ブロック。
  5. 前記遅延ブロックが、
    複数のタップを有し、複数の遅延信号候補を発生させる遅延線と、
    前記複数の遅延信号候補のうちの1つを前記遅延信号として送る遅延選択部ブロックと
    を備える、請求項1から4のいずれか一項に記載のプログラマブル遅延回路ブロック。
  6. 前記遅延選択部ブロックが、メモリセルおよび反転マルチプレクサを含み、
    前記反転マルチプレクサが、前記メモリセルに格納された値に従って、前記複数の遅延信号候補から前記遅延信号を選択し、前記遅延信号を送り、かつ反転させて、反転した状態の前記遅延信号を発生させる、請求項5に記載のプログラマブル遅延回路ブロック。
  7. 前記出力ステージが、複数のメモリセル、マルチプレクサ、および反転マルチプレクサをさらに含み、
    前記マルチプレクサが、前記複数のメモリセルのうちの第1のメモリセルに格納された値に従って、反転した状態の前記パルス信号または反転した状態の前記遅延信号を、インバータを介して前記カスケード出力部に送り、
    前記反転マルチプレクサが、前記第1のメモリセルに格納された前記値および前記複数のメモリセルのうちの第2のメモリセルに格納された値に従って、反転した状態の前記クロック入力部で受信した前記信号、前記反転した状態の前記パルス信号、または前記反転した状態の前記遅延信号を、前記クロック出力部に送り、かつ反転させる、請求項からのいずれか一項に記載のプログラマブル遅延回路ブロック。
  8. 第1のカスケード入力部および第1のクロック入力部を含み、前記第1のカスケード入力部または前記第1のクロック入力部で受信した信号を選択的にる第1の入力ステージと、前記第1の入力ステージの出力部に結合された第1の遅延ブロックであって、前記第1の入力ステージから送られた前記信号に、選択された量の遅延を適用して第1の遅延信号を発生させる第1の遅延ブロックと、前記第1の遅延ブロックの出力部に結合され、かつ選択されたパルス幅を有する反転した状態の第1のパルス信号を発生させるように構成された第1のパルス発生器と、前記第1のパルス発生器の出力部に結合された第1の出力ステージであって、前記第1のパルス信号または前記第1の遅延信号を選択的に出力する第1のカスケード出力部と、前記第1のクロック入力部で受信した信号または前記第1のカスケード出力部から出力された同じ信号を選択的に出力する第1のクロック出力部とを含む第1の出力ステージとを備えた第1のプログラマブル遅延回路ブロックと、
    第2のカスケード入力部および第2のクロック入力部を含み、前記第2のカスケード入力部または前記第2のクロック入力部で受信した信号を選択的にる第2の入力ステージと、前記第2の入力ステージの出力部に結合された第2の遅延ブロックであって、前記第2の入力ステージから送られた前記信号に、選択された量の遅延を適用して第2の遅延信号を発生させる第2の遅延ブロックと、前記第2の遅延ブロックの出力部に結合され、かつ選択されたパルス幅を有する反転した状態の第2のパルス信号を発生させるように構成された第2のパルス発生器と、前記第2のパルス発生器の出力部に結合された第2の出力ステージであって、前記第2のパルス信号または前記第2の遅延信号を選択的に出力する第2のカスケード出力部と、前記第2のクロック入力部で受信した信号または前記第2のカスケード出力部から出力された同じ信号を選択的に出力する第2のクロック出力部とを含む第2の出力ステージとを備えた第2のプログラマブル遅延回路ブロックと
    を含み、
    前記第1のパルス信号は、前記第1の入力ステージから送られる信号に適用された、前記選択された量の遅延に少なくとも部分的に依存するパルス幅を有し、
    前記第2のパルス信号は、前記第2の入力ステージから送られる信号に適用された、前記選択された量の遅延に少なくとも部分的に依存するパルス幅を有し、
    前記第1のカスケード出力部が、前記第2のカスケード入力部に結合されている、クロック回路。
  9. 前記第1のプログラマブル遅延回路ブロックが、第1のクロック信号を遅延させ、前記遅延させた第1のクロック信号を、前記第1のカスケード出力部を介して出力し、
    前記第2のプログラマブル遅延回路ブロックが、前記遅延させた第1のクロック信号を、前記第2のカスケード入力部を介して受信し、前記遅延させた第1のクロック信号をさらに遅延させる、請求項8に記載のクロック回路。
  10. 前記第1のクロック信号が、前記第1のカスケード入力部で前記第1のプログラマブル遅延回路ブロックに受信され、
    前記第1のプログラマブル遅延回路ブロックが、第2のクロック信号を、前記第1のクロック信号とは独立して、前記第1のクロック入力部において受信し、遅延を適用することなく、前記第2のクロック信号を前記第1のクロック出力部から出力する、請求項に記載のクロック回路。
  11. 前記第1のプログラマブル遅延回路ブロックが、第1のクロック信号を遅延させ、前記遅延させた第1のクロック信号を、前記第1のカスケード出力部を介して出力し、
    前記第2のプログラマブル遅延回路ブロックが、前記遅延させた第1のクロック信号を、前記第2のカスケード入力部において受信し、前記遅延させた第1のクロック信号をさらに遅延させ、前記さらに遅延させた第1のクロック信号を使用して第2のパルス信号を発生させ、前記第2のパルス信号を出力する、請求項8に記載のクロック回路。
  12. 前記第2のプログラマブル遅延回路ブロックが、第2のクロック信号を、前記第1のクロック信号とは独立して、前記第2のクロック入力部において受信し、前記第2のクロック信号および前記さらに遅延させた第1のクロック信号を前記第2のパルス発生器内で使用して、前記第2のパルス信号を発生させる、請求項11に記載のクロック回路。
  13. 前記第1のプログラマブル遅延回路ブロックが、受信したクロック信号から前記第1のパルス信号を発生させ、前記第1のパルス信号を、前記第1のカスケード出力部を介して出力し、
    前記第2のプログラマブル遅延回路ブロックが、前記第1のパルス信号を前記第2のカスケード入力部において受信し、前記第1のパルス信号を遅延させ、前記遅延させた第1のパルス信号を出力する、請求項8に記載のクロック回路。
JP2017513104A 2014-09-10 2015-04-01 プログラマブル遅延回路ブロック Active JP6602849B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/482,832 US9118310B1 (en) 2014-09-10 2014-09-10 Programmable delay circuit block
US14/482,832 2014-09-10
PCT/US2015/023790 WO2016039814A1 (en) 2014-09-10 2015-04-01 Programmable delay circuit block

Publications (2)

Publication Number Publication Date
JP2017532850A JP2017532850A (ja) 2017-11-02
JP6602849B2 true JP6602849B2 (ja) 2019-11-06

Family

ID=52875315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017513104A Active JP6602849B2 (ja) 2014-09-10 2015-04-01 プログラマブル遅延回路ブロック

Country Status (6)

Country Link
US (1) US9118310B1 (ja)
EP (1) EP3192171B1 (ja)
JP (1) JP6602849B2 (ja)
KR (1) KR102263674B1 (ja)
CN (1) CN106688182B (ja)
WO (1) WO2016039814A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9537491B1 (en) 2015-03-24 2017-01-03 Xilinx, Inc. Leaf-level generation of phase-shifted clocks using programmable clock delays
US10284185B1 (en) * 2017-12-18 2019-05-07 Xilinx, Inc. Selectively providing clock signals using a programmable control circuit
US11803668B2 (en) * 2021-07-30 2023-10-31 Nvidia Corporation Isolating a region of a system on a chip for safety critical operations

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69407588T2 (de) * 1994-09-21 1998-07-09 Sgs Thomson Microelectronics Programmierbare digitale Verzögerungsschaltungseinheit
JP3319340B2 (ja) * 1997-05-30 2002-08-26 日本電気株式会社 半導体回路装置
US5923197A (en) * 1997-07-31 1999-07-13 Credence Systems Corporation Pulse stuffing circuit for programmable delay line
US6043677A (en) * 1997-10-15 2000-03-28 Lucent Technologies Inc. Programmable clock manager for a programmable logic device that can implement delay-locked loop functions
KR100266679B1 (ko) * 1998-04-16 2000-09-15 김영환 디램용 펄스발생회로
US20030222693A1 (en) * 1999-12-28 2003-12-04 Shai Cohen Variable delay generator
JP4986318B2 (ja) * 2000-08-28 2012-07-25 ルネサスエレクトロニクス株式会社 半導体装置
US7250800B2 (en) * 2005-07-12 2007-07-31 Hewlett-Packard Development Company, L.P. Clock pulse width control circuit
CN201113942Y (zh) * 2007-08-03 2008-09-10 核工业理化工程研究院 脉冲延迟信号发生器
CN102771049A (zh) * 2010-03-26 2012-11-07 古河电气工业株式会社 延迟控制装置
US8949652B2 (en) * 2011-11-03 2015-02-03 Nvidia Corporation Glitchless programmable clock shaper
WO2013076524A1 (en) * 2011-11-21 2013-05-30 Freescale Semiconductor, Inc. Clock signal generator module, integrated circuit, electronic device and method therefore
CN102684651B (zh) * 2012-05-25 2015-07-08 华为技术有限公司 用于数字电路的信号延迟方法、装置及数字电路系统

Also Published As

Publication number Publication date
EP3192171A1 (en) 2017-07-19
KR20170051490A (ko) 2017-05-11
EP3192171B1 (en) 2020-03-11
US9118310B1 (en) 2015-08-25
CN106688182A (zh) 2017-05-17
CN106688182B (zh) 2020-09-08
WO2016039814A1 (en) 2016-03-17
KR102263674B1 (ko) 2021-06-09
JP2017532850A (ja) 2017-11-02

Similar Documents

Publication Publication Date Title
US9075930B2 (en) Configurable embedded memory system
CN111512552B (zh) 使用可编程控制电路选择性地提供时钟信号
US10141936B2 (en) Pipelined interconnect circuitry with double data rate interconnections
US9660650B1 (en) Integrated circuits with improved register circuitry
US7724028B1 (en) Clocking for a hardwired core embedded in a host integrated circuit device
US7145362B1 (en) Clock signal-distribution network for an integrated circuit
CN109905116B (zh) 可编程流水线接口电路
JP2017038247A (ja) 再構成可能な半導体装置
US7617472B1 (en) Regional signal-distribution network for an integrated circuit
JP6602849B2 (ja) プログラマブル遅延回路ブロック
US8963581B1 (en) Pipelined direct drive routing fabric
US9007110B1 (en) Register circuits and methods of storing data in a register circuit
US9577615B1 (en) Circuits for and methods of reducing duty-cycle distortion in an integrated circuit implementing dual-edge clocking
US8988125B1 (en) Circuits for and methods of routing signals in an integrated circuit
US9729153B1 (en) Multimode multiplexer-based circuit
US9235660B1 (en) Selective addition of clock buffers to a circuit design
US10340898B1 (en) Configurable latch circuit
US9235498B1 (en) Circuits for and methods of enabling the modification of an input data stream
US8773164B1 (en) Programmable interconnect network
US10210919B2 (en) Integrated circuits with embedded double-clocked components
US10069486B1 (en) Multimode registers with pulse latches
US9372953B1 (en) Increasing operating frequency of circuit designs using dynamically modified timing constraints
US20150162918A1 (en) Digital output clock generation
Ogino et al. Implementation of Tree Arbiter for FPGA and Metastability Analysis

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20170424

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190408

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: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191009

R150 Certificate of patent or registration of utility model

Ref document number: 6602849

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