JP6035429B2 - 集積回路のための柔軟性がより高いクロックネットワークアーキテクチャ - Google Patents

集積回路のための柔軟性がより高いクロックネットワークアーキテクチャ Download PDF

Info

Publication number
JP6035429B2
JP6035429B2 JP2015543037A JP2015543037A JP6035429B2 JP 6035429 B2 JP6035429 B2 JP 6035429B2 JP 2015543037 A JP2015543037 A JP 2015543037A JP 2015543037 A JP2015543037 A JP 2015543037A JP 6035429 B2 JP6035429 B2 JP 6035429B2
Authority
JP
Japan
Prior art keywords
clock
routing
spine
horizontal
distribution
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
JP2015543037A
Other languages
English (en)
Other versions
JP2016506106A (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 JP2016506106A publication Critical patent/JP2016506106A/ja
Application granted granted Critical
Publication of JP6035429B2 publication Critical patent/JP6035429B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
    • H03K19/094Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using field-effect transistors
    • H03K19/096Synchronous circuits, i.e. using clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees
    • 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/17736Structural details of routing resources
    • H03K19/1774Structural details of routing resources for global signals, e.g. clock, reset
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Description

本開示は集積回路装置(「IC」)に関する。より具体的には、本開示はICのためのクロックネットワークのアーキテクチャに関する。
背景
たとえばフィールドプログラマブルゲートアレイ(「FGPA」)といったプログラマブルロジックデバイス(「PLD」)のクロックネットワークは、リージョナルクロックおよびグローバルクロックを使用してきた。従来、このようなリージョナルクロックは専らこのようなPLDの「エッジ」から駆動され、このようなグローバルクロックは専らこのようなPLDの中心から駆動されていた。この種のクロックネットワークアーキテクチャは、柔軟性が著しく欠落していた。しかしながら、PLDの大型化に伴い、クロックスキューおよび/またはクロック遅延ならびにタイミングの不確実性の増大という問題がより大きくなり、このような柔軟性の欠落によって、上記問題のうちの1つ以上に対する取り組みがますます困難になった。したがって、これら問題のうちの1つ以上を減じるために柔軟性がより高いICを提供することが望ましく有益である。
概要
装置は、回路ブロックのアレイにおいてクロックネットワークを有する集積回路を備える。クロックネットワークは、ルーティングトラックと、分配スパインと、クロックリーフとを含む。ルーティングトラックおよび分配スパインは双方向性である。
このような装置では、下記のうちの1つ以上が真であろう。ルーティングトラックおよび分配スパインは、回路ブロックの境界でセグメント化されていてもよい。ルーティングトラックは水平および垂直ルーティングトラックを含み得る。分配スパインは水平および垂直分配スパインを含み得る。垂直分配スパインは、水平分配スパインにそれぞれ結合された選択可能な遅延を含み得る。一組のリーフが、回路ブロックのうちの1つの回路ブロックの中の分配スパインのうちの水平分配スパインに、クロック信号をこの水平分配スパインからこの一組のリーフに与えるために、結合されていてもよく、クロック信号を水平分配スパインを通さずに一組のリーフに与えるために、相互接続タイルが局所ゲーティング用に構成されてもよい。分配スパインの交点はクロックルート(clock roots)のプールを与えてもよい。回路ブロックはプログラマブルリソースのファブリックサブリージョンであってもよく、回路ブロックは入出力ブロックおよびマルチギガビットトランシーバブロックに結合されるように構成されてもよい。分配スパインの交点はプログラマブルリソースのファブリックサブリージョン内に位置していてもよい。この装置は、分配スパインに対応付けられた遅延を含み得る。この遅延は漸進的遅延を与えるために選択的に使用可能である。この装置は、クロックリーフに対応付けられた遅延を含み得る。この遅延は、回路ブロックのうちの隣合う回路ブロック間においてスキューの不連続性を広めるために選択的に使用可能である。分配スパインは、クロックリーフの前にあるクロックツリーの部分に対してセグメント化可能で双方向性であってもよい。分配スパインは、低スキュークロックネットワークと低インジェクションクロックネットワークのいずれかに対して結合されていてもよい。
また、上記のような第1および第2の集積回路ダイを含むマルチダイシステムが開示される。第1の集積回路ダイは第1のクロックルーティングリソースの第1のネットワークを有し、第1のクロックルーティングリソースの第1のルーティングトラックは、第1の集積回路ダイのクロックソースを第1のクロックルーティングリソースの第2のルーティングトラックに結合する。第2の集積回路ダイは、第2のクロックルーティングリソースの第2のネットワークを有する。第2のクロックルーティングリソースの第3のルーティングトラックは、第2のルーティングトラックに結合される。回路設計の第1のルートは、第1のルーティングトラックおよび第2のルーティングトラックを介してクロックソースに結合される。回路設計の第2のルートは、第1のルーティングトラック、第2のルーティングトラック、および第3のルーティングトラックを介してクロックソースに結合される。第1のルートは第1の集積回路ダイ上に位置し、第2のルートは第2の集積回路ダイ上に位置する。
このようなマルチダイシステムでは、下記のうちの1つ以上が真であろう。第1のルートは、第2のルーティングトラックと、第1のクロックルーティングリソースの第1の分配スパインのうちの1つの第1の分配スパインとの交点に位置していてもよい。第2のルートは、第3のルーティングトラックと、第2のクロックルーティングリソースの第2の分配スパインのうちの1つの第2の分配スパインとの交点に位置していてもよい。いくつかのシステムでは、第1の分配スパインも第2の分配スパインも、第1の集積回路ダイと第2の集積回路ダイとの間のダイ間ルーティングのために結合されていない。
別の装置において、集積回路ダイは、クロックルーティングリソースのネットワークと、クロックソースとを有する。回路設計はクロックドメインのルートを有する。クロックルーティングリソースのルーティングトラックは、クロックソースとルートとを結合する。クロックルーティングリソースの第1の分配スパインは、ルーティングトラックに結合される。クロックルーティングリソースの第2の分配スパインは、第1の分配スパインとクロックソースとを結合する。第2の分配は、クロック信号のフィードバック経路を与える。
また別の装置において、第1の集積回路ダイは、第1のクロックルーティングリソースの第1のネットワークを有する。第1のクロックルーティングリソースの第1のルーティングトラックは、第1の集積回路ダイのクロックソースを、第1のクロックルーティングリソースの第2のルーティングトラックに結合する。第2の集積回路ダイは、第2のクロックルーティングリソースの第2のネットワークを有する。第2のクロックルーティングリソースの第3のルーティングトラックは、第2のルーティングトラックに結合される。第1のルートは、第1のルーティングトラックおよび第2のルーティングトラックを介してクロックソースに結合される。第2のルートは、第1のルーティングトラック、第2のルーティングトラック、および第3のルーティングトラックを介してクロックソースに結合される。第1のルートは第1の集積回路ダイ上に位置する。第2のルートは第2の集積回路ダイ上に位置する。
添付の図面は典型的なブロック図および回路図を示す。しかしながら、添付の図面は、示されている例を限定するものと解釈されるべきではなく、説明と理解のみを目的としている。
典型的な列状フィールドプログラマブルゲートアレイアーキテクチャを示す簡略ブロック部である。 典型的な集積回路を示すブロック図である。 ファブリックサブリージョン(FSR)のサブセットにおいてインスタンス化された典型的な回路が示された図2のブロック図である。 クロックソースからルートまでの典型的な経路が示された図3のブロック図である。 回路クラウドの典型的な垂直および水平分配スパインが示された図4のブロック図である。 クロックネットワークの典型的なクロックリーフが示された図5のブロック図である。 図2の集積回路の典型的なクロックルーティング階層が示されたブロック図である。 FSRのアレイの典型的な部分を示すブロック/回路図である。 FSRのアレイの典型的な部分を示すブロック/回路図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 マルチダイシステムの、図1〜図8−2の説明に従う典型的なクロックネットワークを示すブロック図である。 FSRの典型的なクロックネットワークを示す回路/ブロック図である。 FSRの典型的なクロックネットワークを示す回路/ブロック図である(本明細書では図21−1と図21−2をまとめて「図21」と呼ぶ)。 クロックネットワークの典型的な「リーフ」を示す回路/ブロック図である。 FSRの典型的な部分を示すブロック図である。 相互接続タイルの典型的な部分を示す回路図である。
詳細な説明
以下の説明では、具体的な例をより詳しく説明するために、数多くの具体的な詳細事項が記載されている。しかしながら、1つ以上の例は下記すべての具体的な詳細事項がなくても実行し得ることが、当業者には明らかなはずである。それ以外の場合では、この1つ以上の例が不明瞭にならないよう、周知の特徴は記載されていない。説明し易くするために、異なる図面における同一項目は同一の参照番号を用いて示しているが、代替の実施形態ではこれら項目が同一ではない場合がある。
いくつかの図面に代表的に示されている例について説明する前に、理解が深まるよう最初に概略を述べる。
先に説明したように、以前のクロックネットワークアーキテクチャは、リージョナルクロックおよびグローバルクロックに対し特化されたネットワークを使用していた。リージョナルクロックは、PLDプログラマブルリソースのアレイの外側のエッジからの駆動に限定され、グローバルクロックは、このようなアレイの中心からの駆動に限定されていた。
上記概略の理解を念頭に置いて、さまざまな典型的なクロックネットワークアーキテクチャについて以下で説明する。下記のように、リージョナルおよびグローバルクロッキングの機能を組合わせたことによって、ユーザは、クロックリソースのプールからの選択を行なってクロックネットワークをプログラマブルリソースにおいてインスタンス化された回路設計に適合させることができる。このため、プログラマブルリソースにおいてインスタンス化された回路設計を、特定用途向け回路にさらによく似たものにすることができる。言い換えると、たとえば、ルートは、集積回路ダイの中心またはこのような集積回路ダイの回路リソースのレイアウトの中心または集積回路ダイ固有のその他のこのような中心位置にある必要はないが、プログラマブルリソースにおいてインスタンス化された回路設計に対して配置されてもよい。
より具体的には、ユーザは、クロック分配ネットワークのルートをこのようなクロックリソースのプールに対してどこに配置するかを選択することができる。このため、ルートは集積回路においてインスタンス化された回路設計内のほぼどの場所にでも配置することができ、したがって、集積回路自体のルート位置による拘束は受けない。一般的に、クロック分配ネットワークのルートは、以下でより詳しく説明するように、クロックネットワーク内のどこに配置してもよい。このような配置を提供するために、セグメント化されバッファされたクロックトラックを設ける。クロック分配スパインの任意の遅延素子を用いて、クロックスキュー(「スキュー」)を少なくともほぼゼロにするかまたは等しくしてもよい。隣合うクロックセグメント間のスキューを小さくするために、任意の遅延素子を用いてホールドタイミング(「ホールド」)の問題を緩和または回避してもよい。
記載されている回路のうちの1つ以上は特定種類のICを用いて例示されるので、このようなICの詳細な説明を以下で行なう。しかしながら、プログラマブルリソースのアレイを有するその他の種類のICが本明細書に記載の例のうちの1つ以上の例の利益を享受し得ることが理解されるはずである。
プログラマブルロジックデバイス(「PLD」)は、指定された論理機能を果たすようにプログラムすることができる周知の種類の集積回路である。一種のPLDとしての、フィールドプログラマブルゲートアレイ(「FPGA」)は一般的にプログラマブルタイルのアレイを含む。これらプログラマブルタイルは、例として、入出力ブロック(「IOB」)、コンフィギュラブルロジックブロック(「CLB」)、専用ランダムアクセスメモリブロック(「BRAM」)、乗算器、デジタル信号処理ブロック(「DSP」)、プロセッサ、クロックマネージャ、遅延ロックループ(「DLL」)等を含み得る。本明細書で使用する「含む」は、限定なしで含むことを意味する。
各プログラマブルタイルは一般的に、プログラマブル相互接続とプログラマブルロジック双方を含む。プログラマブル相互接続は一般的に、プログラマブル相互接続ポイント(「PIP」)によって相互接続された可変長の多数の相互接続線を含む。プログラマブルロジックは、たとえば、関数発生器、レジスタ、算術ロジック等を含み得るプログラマブル素子を用いるユーザ設計のロジックを実装する。
このプログラマブル相互接続およびプログラマブルロジックは一般的に、コンフィギュレーションデータのストリームを、プログラマブル素子を如何にして構成するかを定める内部コンフィギュレーションメモリセルにロードすることによって、プログラムされる。コンフィギュレーションデータは、メモリから(たとえば外部PROMから)読取ってもよく、外部装置によってFPGAに書込んでもよい。そうすると、個々のメモリセルの集合状態が、FPGAの機能を決定する。
別の種類のPLDは、複合プログラマブルロジックデバイスまたはCPLDである。CPLDは、相互に接続されるとともに相互接続スイッチマトリクスによって入出力(「I/O」)リソースに接続された2つ以上の「機能ブロック」を含む。CPLDの各機能ブロックは、プログラマブルロジックアレイ(「PLA」)およびプログラマブルアレイロジック(「PAL」)装置で使用されるものと同様の2レベルのAND/OR構造を含む。CPLDでは、コンフィギュレーションデータは一般的にオンチップで不揮発性メモリに格納される。CPLDの中には、コンフィギュレーションデータがオンチップで不揮発性メモリに格納されその後初期コンフィギュレーション(プログラミング)シーケンスの一部として揮発性メモリにダウンロードされるCPLDがある。
これらプログラマブルロジックデバイス(「PLD」)すべてについて、デバイスの機能はデータビットによって制御される。このデータビットはこの目的のためにデバイスに与えられる。データビットは、揮発性メモリ(たとえばFPGAおよびいくつかのCPLDにあるようなスタティックメモリセル)、不揮発性メモリ(たとえばいくつかのCPLDにあるようなフラッシュメモリ)、またはその他の種類のメモリセルに格納することができる。
これ以外のPLDは、デバイス上のさまざまな素子をプログラマブルに相互接続する金属層等の処理層を与えることによってプログラムされる。これらPLDは、マスクプログラマグルデバイスとして知られている。PLDは、たとえばヒューズまたはアンチヒューズ技術を用いるなど、他のやり方で実装することもできる。「PLD」および「プログラマブルロジックデバイス」という用語は、上記典型的なデバイスを含むがこれに限定される訳ではなく、部分的にのみプログラマブルなデバイスも包含する。たとえば、ある種のPLDは、ハードコーディングされたトランジスタロジックと、ハードコーディングされたトランジスタロジックをプログラマブルに相互接続するプログラマブルスイッチファブリックとを組合わせたものを含む。
上記のように、進化したFPGAは、アレイ内に、数種類のプログラマブルロジックブロックを含み得る。たとえば、図1は、マルチギガビットトランシーバ(「MGT」)101、コンフィギュラブルロジックブロック(「CLB」)102、ランダムアクセスメモリブロック(「BRAM」)103、入出力ブロック(「IOB」)104、コンフィギュレーションおよびクロッキングロジック(「CONFIG/CLOCKS」)105、デジタル信号処理ブロック(「DSP」)106、特化された入出力ブロック(「I/O」)107(たとえばコンフィギュレーションポートおよびクロックポート)、および、デジタルクロックマネージャ、アナログデジタル変換器、システムモニタリングロジック等のその他のプログラマブルロジック108を含む、多数の異なるプログラマブルタイルを備える、FPGAアーキテクチャ100を示す。いくつかのFPGAは、専用プロセッサブロック(「PROC」)110も含む。
いくつかのFPGAにおいて、各プログラマブルタイルは、隣接する各タイルの対応する相互接続素子へのおよびこの素子からの標準化された接続を有するプログラマブル相互接続素子(「INT」)111を含む。したがって、プログラマブル相互接続素子を合わせて、示されているFPGAのプログラマブル相互接続構造を実装する。プログラマブル相互接続素子111はまた、図1の上部に含まれる例によって示される、同一タイル内のプログラマブルロジック素子へのおよびこの素子からの接続を含む。
たとえば、CLB102は、ユーザロジックを実装するようにプログラムすることができるコンフィギュラブルロジック素子(「CLE」)112と、1つのプログラマブル相互接続素子(「INT」)111とを含み得る。BRAM103は、1つ以上のプログラマブル相互接続素子に加えてBRAMロジック素子(「BRL」)113を含み得る。一般的に、1つのタイルに含まれる相互接続素子の数は、このタイルの高さによって決まる。描かれている例では、1つのBRAMタイルは、5つのCLBの高さと同一の高さを有するが、他の数(たとえば4)を用いることもできる。DSPタイル106は、適切な数のプログラマブル相互接続素子に加えてDSPロジック素子(「DSPL」)114を含み得る。IOB104は、たとえば、プログラマブル相互接続素子111の1つのインスタンスに加えて、入出力ロジック素子(「IOL」)115の2つのインスタンスを含み得る。当業者にとっては明らかであるように、たとえば入出力ロジック素子115に接続される実際の入出力パッドは、一般的に、入出力ロジック素子115の領域に限られない。
描かれている例において、(図1に示される)ダイの中心近くの水平方向の領域は、コンフィギュレーション、クロック、およびその他の制御ロジックのために使用される。この水平方向の領域または列から延びる垂直方向の列109は、FPGAの幅全体にわたってクロックおよびコンフィギュレーション信号を分配するために使用される。
図1に示されるアーキテクチャを使用するいくつかのFPGAは、FPGAのかなりの部分を構成している規則的な列状構造を壊しているその他のロジックブロックを含む。その他のロジックブロックは、プログラマブルブロックおよび/または専用ロジックであってもよい。たとえば、プロセッサブロック110は、CLBおよびBRAMの数個の列に跨っている。
なお、図1は、典型的なFPGAアーキテクチャのみを示すことを意図している。たとえば、1行のロジックブロックの数、行の相対的な幅、行の数および順序、行に含まれるロジックブロックの種類、ロジックブロックの相対的なサイズ、および図1の最上部に含まれている相互接続/ロジックの実装は、代表的なものにすぎない。たとえば、実際のFPGAでは一般的に、CLBがどこにあっても隣接する2行以上のCLBを含むことによってユーザロジックを効率的に実装し易くしているが、隣接するCLB行の数はFPGAの全体のサイズに応じて変化する。
図2は、典型的な集積回路200を示すブロック図である。以下でより詳細に説明するように、このような集積回路200は、図1のFPGA100であっても、プログラマブルロジックリソースのアレイを有するその他の集積回路であってもよい。
集積回路200は、プログラマブルリソースのN×Mのアレイ200を含む。プログラマブルリソースは、CLB、プログラマブルロジックアレイブロック(「LABS」)またはその他の形態のファブリックサブリージョン(「FSR」)203を含み得る。各FSR203は、ほぼ同じ高さおよび幅であってもよく、回路リソースの同一セットを含んでいてもよい、すなわち、FSR203は互いの繰返しであってもよい。
FSR203のこのようなアレイ202は、上下ではギガビットトランシーバ(「GT」)205のアレイ201によって挟まれていてもよく、左右ではIOB206のアレイ204によって挟まれていてもよく、その逆であってもよい。アレイ201および204は、集積回路200の一部を形成し得る。たとえば、IOB206は図1のIOB104であってもよく、GT205は図1のMGT101であってもよい。アレイ201、202、および204の特定のサイズが例示として示されているが、このようなアレイについてはこれらまたはその他のサイズを使用してもよい。
図3は、FSR203のサブセットにおいてインスタンス化された回路(「回路クラウド」)300を一般的に示す図2のブロック図である。回路クラウド300は、任意形状のロジッククラウドまたは回路設計であればよい。さらに、IOB206は、クロックソースノード(「クロックソース」)301を一般的に示している。回路クラウド300のクロック負荷位置を、クロックソース301とともに識別してもよい。回路クラウド300のクロック負荷位置を識別することにより、クロックネットワークルート(「ルート」)401の位置が、このような回路クラウド300のクロック分配ネットワークの中心近くにあることがわかるであろう。星印によって一般的に示されているように、ルート401は回路クラウド300の境界内にあってもよい。
アレイ202は、たとえば、クロックリーフおよびクロックトラックを含むクロックネットワーク600等のクロックネットワークを有し得る。クロックトラックには2種類ある、すなわち、水平および垂直クロック分配スパイン(「分配スパイン」)ならびに水平および垂直クロックルーティングトラック(「ルーティングトラック」)である。
図4を参照して、クロックソース301からルート401までの典型的な経路400を示す図3のブロック図が示されている。経路400は、1つ以上の垂直ルーティングトラック402および/または1つ以上の水平ルーティングトラック403で構成されていてもよく、経路400をルーティングトラック400と呼んでもよい。一例において、ルーティングトラック402および403は、FSR203の境界でセグメント化され、このようなルーティングトラック402および403は双方向性である。この例では、経路400は水平方向では4つのFSR203にわたって延びており垂直方向では2つのFSR203にわたって延びている。4つの水平ルーティングトラックセグメントを用いてルーティングトラック402を与えてもよく、2つの垂直ルーティングトラックセグメントを用いてルーティングトラック403を与えてもよい。他の実施形態では異なる数のルーティングトラックセグメントを用いてクロックソースからクロックネットワークルートへの経路を与えてもよい。
ルーティングトラック402および403は、クロックソース301から、水平および垂直分配スパイン502の1つ以上の交点までの経路400を提供するために使用し得る専用クロックリソースである。一例において、このようなスパインの交点は、1つのFSR203当たり2つある。しかしながら、他の実施形態では、1つのFSR203当たりのスパインの交点は2つより少なくても多くてもよい。
要約すると、ルーティングトラック402および/または403等のルーティングトラックを用い、1つ以上の専用クロックリソースを使用して、クロック信号を、回路クラウド300等の回路設計のルート401等の分配クロックネットワークルートまでルーティングしてもよい。一般的に、回路設計のクロックネットワークルートは、最も近い共通ノードから見て、クロックが発せられる場所である。クロックソース301から回路クラウド300のルート401までのルーティングが可能なので、任意の数および任意の形状のロジッククラウドのためのクロックネットワークは、このようなロジッククラウドのこのようなクロックネットワークのほぼ「中心」にクロックノードを有することができる。ルート401までのルーティングを提供できるので、スキューの低減が容易になり、クロック分配ネットワーク内でのスキューを、等しくする、減じる、またはゼロにすることができる。たとえば、クロック信号がクロックネットワークの他の部分に対して発せられる場所である共通クロックルートノードをほぼ中心に配置できるので、このようなクロックネットワーク全体におけるこのようなクロック信号のこのような伝搬における最も大きな遅延を減じることができる。
以下でより詳しく説明するように、ノードを用いてルーティングトラック、分配スパイン、およびリーフの交点を大まかに示すことができるが、このような交点は、直接的な金属交点という意味において必ずしもノード近くにはなく、むしろ、2つの金属またはその他の導電線を選択的に結合するための回路を必要とし得る。さらに、以下でより詳しく説明するように、連続する線を用いてルーティングトラックおよび分配スパインを大まかに示しているが、このようなルーティングトラックおよび分配スパインは、回路によって相互に結合されたルーティングトラックおよび/または分配スパインのセグメントによって形成されていてもよい。
ルーティングトラックを分配スパインから分離することにより、ルーティングトラックはスキューの影響を受け難くなるであろう。たとえば、ルーティングトラックは、レイアウト内で使用する空間を少なくするために、より薄いまたはより細い金属線を用いて形成してもよい。さらに、ルーティングトラックを分配スパインから分離することにより、ソフトウェア配置アルゴリズムを簡略化することができる。なぜなら、このようなソフトウェア配置アルゴリズムはこのようなリソースをルーティング/分配の対として扱い得るからである。しかしながら、別の実施形態では、同一のリソースタイプをルーティングトラックおよび分配スパイン双方に、すなわちこれら機能双方に使用してもよい。
クロックドメインまたはクロック分配サブネットのルートは、回路クラウドのパラメータを満たすように選択された仮想ポイントであってもよい。このようなルートは、扇形に広がるこのようなクロック分配サブネットの根元である中心位置であってもよい。よって、ルートにとって最悪なのは、クロックツリーまたはクロック分配サブネットにおけるいずれか2つの経路の最も近い共通ノードであろう。1つ以上のルーティングトラックが、クロックソースノードから分配スパインの1つ以上の交点まで延びていてもよい。回路クラウドのルート位置を決定することによってクロックスキューを減じても最小にしてもよい。たとえば、ルート位置を、クロックスキューを最小にするのに最適な位置に定めてもよい。1つ以上のルーティングトラックを使用することにより、クロックソースを、回路クラウドのクロックネットワークルートまで、交点を少なくとも1つの分配スパイン交点として、ルーティングしてもよい。ルーティングトラックは、クロックソースからルートまでのルーティングに使用される専用クロックトラックであり、分配スパインは、クロック信号をルートからリーフを介してクロック負荷に分配するための低スキュークロックリソースである。これらの線路に沿って、複数のクロックソースノードを、分配スパインの複数の交点に、このようなクロックソースノードからこのような交点まで延びる複数のルーティングトラックを用いて、結合してもよい。
図5を参照して、回路クラウド300の典型的な垂直および水平分配スパインが描かれた図4のブロック図が示されている。ルート401への経路400は垂直分配スパイン501と交差する。言い換えると、クロック信号は、垂直分配スパイン501を用いてルート401から垂直方向に分配することができる。図5の例において、垂直分配スパイン501は、隣合う4つのFSRを通って延びている。回路クラウド300は垂直方向において4つのFSRに延在しているので、この例では4つの垂直分配スパインセグメントを用いて垂直分配スパイン501を提供するのが効果的である。これらの線路に沿って1つ以上の垂直分配スパインセグメントを用いて1つの垂直分配スパインを提供することができる。水平方向の分配スパインも垂直方向の分配スパインもFSR203の境界においてセグメント化されている。さらに、以下でより詳しく説明するように、分配スパインは双方向性である。
描かれている例において、垂直分配スパイン501と交差しているのは、4つの水平分配スパイン502−1〜502−4(「分配スパイン502」)である。その他の実施形態ではこれよりも少ないまたは多い水平分配スパイン502を用いてもよい。分配スパイン502−1は、回路クラウド300の対応する部分が延在するFSR203に対応する、3つの水平分配スパインセグメントからなり、分配スパイン502−2は、回路クラウド300の対応する部分が延在するFSR203に対応する、4つの水平分配スパインセグメントからなり、分配スパイン502−3は、回路クラウド300の対応する部分が延在するFSR203に対応する、5つの水平分配スパインセグメントからなり、分配スパイン502−4は、回路クラウド300の対応する部分が延在するFSR203に対応する、4つの水平分配スパインセグメントからなる。
垂直分配スパイン501を用いて分配されるクロック信号の垂直方向のスキューを最小にするまたは減じるために、任意の遅延111を使用してもよい。このような遅延は、垂直分配スパインと交差する水平分配スパイン、すなわちこの例では垂直分配スパイン501と交差する水平分配スパイン502から見たときの、垂直方向の遅延を等しくするために、プログラムで設定すればよい。この典型的な構造では、水平分配スパイン502は垂直スパイン501と4つの交点401で交差しており、これら4つの交点401のうちの1つは、星印で示されているルート(「ルート401」)である。ルート401には、少なくとも垂直方向のスキューをゼロにしようとして、最も大きな遅延が加えられる。ルート401に最も近い交点401には、次に大きな遅延が加えられ、以降同様である。ルート401から最も遠い交点401には、最も小さな遅延が加えられる。言い換えると、水平分配スパイン502−2には最も大きな遅延が加えられ、水平分配スパイン502−2に対応付けられている遅延511の単位間隔遅延は2に等しく、水平分配スパイン502−1および502−3には次に大きな遅延が加えられ、これら水平分配スパインに対応付けられている遅延511の単位間隔遅延は1に等しく、水平分配スパイン502−4には最も小さな遅延が加えられ、水平分配スパイン502−4に対応付けられている遅延511の単位間隔遅延はゼロに等しい、すなわち遅延は加えられていない。一般的に、ルートに遅延を加え、いずれかの方向においてこのルートに続く1つ以上の交点ノードには、漸進的に小さくした遅延を加えればよい。
垂直分配スパイン501の垂直セグメントの部分505は、回路クラウド300のクロックドメイン外周504を超えて延在していてもよい。同様に、水平分配スパイン502の水平セグメントの部分503は、回路クラウド300の外周504を超えて延在していてもよい。
図6は、クロックネットワークの典型的なクロックリーフ(「リーフ」)601が示された図5のブロック図である。リーフ601は水平分配スパイン502の水平セグメントと交差する。FSR203の中のいくつかのリーフ601の部分は、回路クラウド300の外周504を超えて延在していてもよい。同様に、回路クラウド300はこの外周504の外側に位置しているリーフ601を含むFSR203の一部を占めているが、いくつかのリーフ601全体が回路クラウド300の外周504の外側にあってもよい。リーフ601は、FSR203の内部に位置し、このようなFSR203の境界でセグメント化または囲まれている。
要約すると、クロックソースを、1つ以上のFSRに跨る回路クラウドのクロックネットワークルートまで、1つ以上のルーティングトラックを用い、水平方向および垂直方向のうちのいずれかまたは水平方向および垂直方向に、ルーティングすることができる。このようなクロックソースはオンチップであってもオフチップであってもよく、このようなクロックソースは、クロック信号を、IOBもしくはギガビットトランシーバ(「GT」)にまたはIOBもしくはGTから与えるためのものであってもよい。さらに、タイルの列等のタイルを用いて1つのダイから別のダイへのルーティングを行なってもよく、クロック分配のルートは、分配スパインのいずれかの交点に存在し得る。逆に、ルートは、このような集積回路ダイのプログラマブルリソースを用いるユーザによってインスタンス化された回路クラウドに固有のものであってもよい。こうすれば、クロック分配を回路クラウドに適合させる能力が大幅に高まる。加えて、このようなルートのルーティングに使用されるリソースは、集積回路ダイに固有の中止位置に限られないルーティングトラック等の専用クロックリソースであってもよい。さらに、ローカル相互接続を用いて、クロック信号を、ルーティングトラックおよび/または分配スパイン等のクロックネットワークの専用クロックリソース上に、ルーティングしてもよい。たとえばルーティングトラック等の専用クロックリソースを設けることにより、クロック分配ネットワークの中心へのまたは回路クラウドのクロックドメインの中心位置への低スキュー経路をインスタンス化することができる。しかしながら、ユーザが、たとえばレジスタ等のクロック負荷へできる限り直接的に到達することを望む場合があり、したがって、低インジェクション遅延ルーティングのために、ルーティングトラックをスキップまたはバイパスしてクロックソースから1つ以上の分配スパインに直接進んでもよい。
要約すると、ルーティングトラックは、水平分配スパインと垂直分配スパインの交点に結合される。このような垂直分配スパインは、集積回路ダイ固有の中心位置に限定されるのではなく、プログラマブルリソースのアレイ全体に広がっており、ルートの位置の変化を促す。さらに、垂直および水平分配スパインは双方向性である。今まで、クロック信号は、集積回路ダイ固有の中心位置までルーティングされてから、このような中心位置から一方向にルーティングされていた。しかしながら、ルートは、プログラマブルリソースのアレイの中において、または、より具体的にはこのようなプログラマブルリソースのアレイの中のクロックネットワークの中において、さまざまな位置を取り得るので、垂直および水平分配スパインの双方向機能により、ルートはこのようなさまざまな位置を取ることができる。言い換えると、このような集積回路ダイのプログラマブルリソースを用いてインスタンス化されたすべての回路クラウドに対してクロックルートを何処に配置するかは、集積回路ダイのレイアウトによって先験的に決められるのではない。逆に、たとえば垂直分配スパインを、回路クラウドのインスタンス化に反応して複数の垂直分配スパインから選択してもよい。ある垂直分配スパインのルートから、クロック信号を、1つ以上の水平分配スパインへ、および、このような垂直分配スパインに沿って上記ルートから離れる方向にルーティングし、ある水平分配スパインから、クロック信号を、1つ以上のリーフへルーティングしクロック信号が回路クラウド内のクロック負荷に達するようにしてもよい。
図7は、図2の上記集積回路200の典型的なクロックルーティング階層700を示すブロック図である。クロックルーティング階層700は、クロックソース710およびクロックネットワークリソース711を含む。クロックソース710は、トランシーバおよびレシーバソースのプール701と、入出力および内部クロックソースのプール702と、ローカル相互接続ソースのプール703とを含む。クロックネットワークリソース711は、限定ではないが水平および垂直クロックルーティングトラック400を含むクロックルーティングトラック400のプールと、垂直分配スパイン501と、水平分配スパイン502と、リーフ601と、1つ以上のルートの交点401とを含む。先に述べたように、矢印731によって一般的に示されているように、クロック信号を、クロックルーティングトラック400から、ルート401であってもよい交点に送ることができる。矢印732によって一般的に示されているように、このようなクロック信号を、ルート401から、1つ以上の垂直分配スパイン501に送ることができる。矢印733によって一般的に示されているように、クロック信号を、垂直分配スパイン501から、1つ以上の水平分配スパイン502に送ることができる。最後に、矢印734によって一般的に示されているように、クロック信号を、水平分配スパイン502から1つ以上のリーフ601に送ることができる。
トランシーバおよびレシーバソースのプール701、入出力および内部クロックソースのプール702、または、ローカル相互接続ソースのプール703から、クロック信号を、矢印722によって一般的に示されているように、クロックルーティングトラックのプール400からの1つ以上のリソースを用いて、直接送ってもよい。内部クロックソース702は、PLL、DLL、またはその他の内部クロックソースを含み得る。
トランシーバおよびレシーバソースのプール701、入出力および内部クロックソースのプール702、または、ローカル相互接続ソースのプール703から、クロック信号を、矢印721によって一般的に示されているように、ローカル相互接続を用いて少なくとも1つのルート401に直接送ってもよく、または、矢印722および731によって一般的に示されているように、クロックルーティングトラックのプール400からの1つ以上のリソースを用いて、クロックルーティングトラックのプール400から少なくとも1つのルート401に送ることにより、間接的に少なくとも1つのルート401に送ってもよい。
入出力および内部クロックソースのプール702またはローカル相互接続ソースのプール703から、クロック信号を、矢印723によって一般的に示されているように、水平分配スパインのプール502からの1つ以上のリソースを用いて直接送ってもよい。ローカル相互接続ソースのプール703から、クロック信号を、矢印724によって一般的に示されているように、リーフ601のプールからの1つ以上のリソースを用いて直接送ってもよい。
図8−1は、FSR203のアレイ202の典型的な部分を示すブロック/回路図である。FSR203の左部分203−2が右部分203−1とともに例示的に示されている。FSR203は、これらの線路に沿い、クロック信号を右から左または左から右に駆動するのに使用し得る水平分配スパイン502を有することが、理解されるはずである。垂直分配スパインまたはセグメント501と水平分配スパインまたはセグメント502とのルートまたは交点401から、クロック信号を任意の遅延511に与えてもよい。遅延511はプログラム可能でありしたがって任意で回路の中にあっても外にあってもよい。しかしながら、このような遅延511の遅延は、インバータチェーンによって与えられる「固定された」遅延であってもよい。遅延511の出力はそれぞれバッファ801の入力に結合されてもよく、バッファ801の出力は、クロック信号を水平分配スパイン502上に駆動し得る。この例は各水平分配スパイン502に対し一対の遅延511と一対のバッファ801を示しているが、別の例では、FSR203のアレイ202の典型的な部分を示す図8−2のブロック/回路図に示されているように、各水平分配スパイン502に対し1つの遅延511と1つのバッファ801が使用されてもよい。
遅延511に対して任意のマルチタップインバータチェーンを使用することにより、事実上遅延ゼロの垂直スパイン501を形成してもよい。ルート401に近いほど大きな遅延を漸進的に加えることにより、各水平分配スパインに対し、全体的に遅延をおよそ150ピコ秒内に等化してもよい。インバータチェーンは、たとえばプロセス−電圧−温度変動に対する金属対トランジスタの遅延のために互いに完璧に一致したものでなくてもよい。したがって、垂直分配スパイン501の遅延はある程度変動してもよい。しかしながら、垂直方向のスキューは低減でき、この低減は、ルートノード401からより大きく離れたノード401ではより顕著であろう。
図9〜図14は、マルチダイシステム900の、図1〜図8−2の上記説明に従うそれぞれの典型的なクロックネットワークを示すブロック図である。以下では、図9〜図14について、同時に図1〜図14を参照しながら説明する。したがって、グローバルクロックは低スキュークロックに置換えられ、リージョナルクロックは低インジェクションクロックに置換えられる。低スキュークロックおよび低インジェクションクロックの具体例が示されるが、このような種類のクロックをクロックネットワーク内で組合わせてもよい。低インジェクションクロックを参照すると、ソースをクロック分配スパインまで直接ルーティングしいずれのクロックルーティングトラックもバイパスすることにより、たとえばI/Oとファブリックとの通信に役立ち得る低インジェクション遅延クロックを提供することができる。
集積回路ダイ910は、入出力バンク902の列と、入出力バンク902にそれぞれ対応付けられたクロッキングブロック903の列と、FSR203の列と、FSR203の列と列の間にあるPCIe/コンフィギュレーションブロック(「PCIeブロック」)列904とを含む。FSR203の列およびPCIeブロック列904はいずれも集積回路ダイ910のファブリックアレイ914の一部である。一例において、独立したGTダイ901をインターポーザ(ここでは図示せず)を通して集積回路ダイ910に結合してもよい。
図9のクロックネットワークの場合、入出力バンク902のクロックソース905は、クロックドメイン906の水平分配スパイン502に直接結合されている。クロックドメイン906は、このような入出力バンク902から、対応するクロッキングブロック903および隣のFSR203まで延在している。クロックドメイン906は低インジェクションリージョナル入出力クロックのためのものである。低インジェクションクロックの場合、一般的にルーティングトラック400は使用されない。
図10のクロックネットワークの場合、入出力バンク902のクロックソース905は、クロックドメイン1006の水平分配スパイン502に直接結合されている。クロックドメイン1006は、低インジェクションリージョナル入出力クロックのためのものである。クロックドメイン1006は、3つの垂直サブリージョンと3つの水平サブリージョンとを含む。このような入出力バンク902から、対応するクロッキングブロック903、隣接する2つのFSR203、およびPICeブロック904まで、水平分配スパイン502が用いられる。クロッキングブロック903の列にある垂直分配スパイン501を用いて、クロックドメインを、上下1行ずつ、これらの行の対応する水平分配スパイン502まで拡大することができる。
図11のクロックネットワークの場合、入出力バンク902のクロックソース905は、クロックドメイン1106の水平分配スパイン502に直接結合されている。クロックドメイン1106は、入出力バンク902からの低スキュークロックのためのものでる。クロックドメイン1106は、3つの垂直サブリージョンと4つの水平サブリージョンとを含む。このような入出力バンク902から、対応するクロッキングブロック903および隣接する2つのFSRまで、ルーティングトラック400が使用される。左から2番目のFSR列にあるルート401は、明確にするために2つの別々のノードとして示されているが、これらノードは同一のノードである。ルート401は、垂直分配スパイン501と水平分配スパイン502の交点にある。このようなFSR203の列にある垂直分配スパイン501を用いて、クロックドメインを、上下1行ずつ、これらの行の対応する水平分配スパイン502まで拡大することができる。
図12のクロックネットワークの場合、GTダイ901のクロックソース905は、クロックドメイン1206の、集積回路ダイ910の垂直分配スパイン501に、結合されている。クロックドメイン1206は、GTダイ901のGTからの低インジェクションGTリージョナルクロックのためのものである。クロックドメイン1206は、3つの垂直サブリージョンと1つの水平サブリージョンとを含む。GTダイ910のGTから、クロック信号が、FSR203の列への垂直分配スパイン501を用いて、集積回路ダイ910に送られる。この例では、隣合う3つのFSR203が、このような垂直分配スパイン501と交差する、対応する3つの水平分配スパイン502とともに使用される。ユーザクロック経路に対する内部基準クロックがあると想定しかつ垂直分配スパイン501に対する任意の遅延は使用しないと想定すると、リターンユーザクロックを使用してデータを転送しないよう、GTダイ901と集積回路ダイ901のプログラマブルリソースファブリックとの間に十分に小さいレイテンシがあってもよい。
垂直分配スパイン501を設けるために使用される垂直分配セグメントによるダイとダイとの相互接続は、ファブリックアレイ914の最も外側の行にあるリソースによって提供されてもよい。したがって、ICのアレイの幅全体を通して、ダイとダイとの相互接続を使用してもよく、そうすることによって、ダイから、このダイに結合されたFPGAダイからのクロックに、より局所的なアクセスを行なうことができる。このように、別のダイとのインターフェイスのために、特定のオフダイの相互接続を与えてもよい。インターポーザ(ここでは図示せず)または回路基板(図示せず)を用いてこのような相互接続を配線してもよい。
図13のクロックネットワークの場合、GTダイ901のクロックソース905は、クロックドメイン1306の、集積回路ダイ910の垂直分配スパイン501に、結合されている。クロックドメイン1306は、GTダイ901のGTからの低インジェクションのマルチリージョンGTクロックのためのものである。クロックドメイン1306は、2つの垂直サブリージョンと4つの水平サブリージョンとを含む。GTダイ901のGTから、クロック信号が、FSR203の列への垂直分配スパイン501を用いて、集積回路ダイ910に送られる。この例では、隣合う2つのFSR203が、このような垂直分配スパイン501と交差する、対応する2つの水平分配スパイン502とともに使用される。このような水平分配スパイン502は、左側のFSR203の1つの列と、右側の2つの列、すなわちPCIe/コンフィギュレーションブロックの列904およびFSR203の列に、広がっている。
図14のクロックネットワークの場合、GTダイ901のクロックソース905は、クロックドメイン1406の、集積回路ダイ910の垂直分配スパイン501に、結合されている。クロックドメイン1406は、GTダイ901のGTからの低スキュークロックのためのものである。クロックドメイン1406は、先に述べたように、グローバルクロックと同じトポロジを有する。クロックドメイン1306は、3つの垂直サブリージョンと、4つの水平サブリージョンとを含む。GTダイ901から隣合う2つのFSR203を通るルーティングトラック400が使用される。左から2番目のFSR列にあるルート401は、明確にするために2つの別々のノードとして示されているが、これらノードは同一のノードである。ルート401は、垂直分配スパイン501と水平分配スパイン502の交点にある。このようなFSR203の列にある垂直分配スパイン501を用いて、クロックドメインを、上下1行ずつ、これらの行の対応する水平分配スパイン502まで拡大することができる。
図15〜図20は、マルチダイシステム1500の、図1〜図8−2の上記説明に従うそれぞれの典型的なクロックネットワークを示すブロック図である。以下では、図15〜図20について、同時に図1〜図20を参照しながら説明する。
図15を参照して、マルチダイシステム1500は、インターポーザ1510に結合された、2つの集積回路ダイ910と2つのGTダイ901とを含む。上側の集積回路ダイ910のクロッキングブロック903にあるクロックソース905は、ルート401との結合のためにルーティングトラック400に結合されている。ルート401は垂直分配スパイン501に結合されており、このスパイン501は、上側の集積回路ダイ910のFSR203の最も上の行まで延びるとともに、下側の集積回路ダイ910のFSR203の最も下の行まで延びている。垂直分配スパイン501を設けるために使用される垂直分配セグメントによるダイとダイとの相互接続は、ファブリックアレイ914の最も外側の行にあるリソースによって提供されてもよい。このように、別のダイとのインターフェイスのために、特定のオフダイの相互接続を与えてもよい。インターポーザ1510を用いてこれら相互接続を配線してもよい。
垂直分配スパイン501と交差する、2つの集積回路ダイ910双方の水平分配スパイン502を用いて、クロック信号を他のFSR203およびPCIeブロック904に伝搬する。したがって、クロックドメイン1506は2つの集積回路ダイ910双方のファブリックアレイ914に広がっている。
図16を参照して、異なる4つのクロックネットワークトポロジが例示的に示されている。このようなトポロジは、相互接続クロックが使用される高ファンアウトの相互接続のためのものである。あるトポロジでは、クロックソース905−4が、ローカル相互接続ルーティングを用いてリーフ601に結合されている。このようなトポロジでは、クロックソース905−4、リーフ601、およびローカル相互接続ルーティングがすべて同一のFSR203内にある。
クロックドメイン1601は、クロックソース905−1がFSR203の中にあること以外、クロックドメイン1006と、FSR203の一列が類似している。クロックソース905−1から、ローカル相互接続ルーティングを用いて入出力クロッキングブロック903のバッファに達することにより入出力または低スキュークロックを生成してもよい。クロックドメイン1602は1つのFSR203に限定されており、このようなFSR203におけるクロックソース905−2は、ローカル相互接続ルーティングを用いて水平分配スパイン502に結合されている。
クロックドメイン1603は、ローカル相互接続を用いて隣の列のFSR203のルート401に結合されている、FSR203のクロックソース905−3を有する。ルート401は垂直分配スパイン501に結合されている。垂直分配スパイン501は、水平分配スパイン502を用いたクロック分配のために、このような隣の列の3つのFSR203に跨る3つのセグメントを有する。
図17を参照して、ファブリックアレイ914の外側の行は、垂直分配スパイン501をオフチップで相互接続するために、ダイとダイとの間のダイ間相互接続のためのリソースを有していてもよい。このようなリソースを同様にモノリシック集積回路ダイ910のGT1701との結合に使用してもよい。このように、垂直分配スパイン501を用いてGT1701に結合してもよい。GT1701リソースをFSR203の列に対応してグループ化してもよい。クロックドメイン1706に関するその他の詳細事項は、繰返しを避けるため、ここでは説明しない。
ダイとダイとのダイ間相互接続のためのさまざまな典型的構造について説明してきた。このように、クロック信号を1つのダイから別のダイに送る方法は複数ある。これらダイはいずれもクロックシンクまたはソースを必要とし得る。クロック信号を、低インジェクション遅延経路の場合は分配スパイン上で送ってもよく、または、クロックルーティングトラック上で送ることにより分配スパインを保護してもよい。加えて、クロック信号をデータ入力に送信することにより、データストローブを垂直分配スパインを通して送ってもよい。
図18を参照して、クロックドメイン1801については、先に説明したように、クロックソース905を、ルーティングトラック400を用いてクロックドメインルート401までルーティングしてもよい。このようなクロックソース905は、クロックマネージャ、すなわちたとえばPLLを有するブロックであってもよい。ルーティングトラック400と同一のFSR行の水平分配スパイン502Fを用いて、スキューをなくす(de-skew)ためにクロック信号をこのようなクロックマネージャにフィードバックしてもよい。クロックマネージャ−PLLブロックへのフィードバッククロックは、実際のクロック分配の遅延に一致するようにこのようなフィードバッククロックを遅延させるために、ルーティングトラックではなく分配スパインを介して与えてもよい。たとえば、このようなフィードバッククロックの遅延は、クロックネットワークがチップの回路境界まで広がっている場合、実際のクロックの遅延に一致するようにしてもよい。クロックドメイン1801の垂直分配スパイン501は、クロックドメイン1801の外側の垂直分配スパイン501Fによるこのようなフィードバックのために、延長してもよい。これらの線路に沿って、クロックドメイン1802は、クロックドメイン1801と、クロックマネージャクロックソース905へのおよびこのソースからのルーティングとを包囲し得る。このようなクロックマネージャを、任意の遅延511間のばらつきを説明するために、遅延を調整するように構成してもよい。クロックドメイン1801に関するその他の詳細事項は、繰返しを避けるため、ここでは説明しない。
このように、垂直分配スパインのいずれかの部分を、クロックソースに戻るようにルーティングされる水平分配スパイン上に引出すことによって、フィードバック補償を提供することができる。任意の遅延を使用し得るので、このような垂直分配スパインをどこで引出すかは問題ではないであろう。
図19を参照して、クロックドメイン1906は、2つのクロックドメインルート401を使用することを除いて、クロックドメイン1506と同様である。クロックドメイン1906において、上側の集積回路ダイ910の水平ルーティングトラック402は、上側および下側の集積回路ダイ910の垂直ルーティングトラック403に結合されている。このような、上側および下側双方の集積回路ダイ910の垂直ルーティングトラック403を用いて、クロックソース905を上側の集積回路ダイ910のルート401に結合するとともに下側の集積回路ダイ910のルート401に結合する。このため、集積回路ダイ910の垂直分配スパイン501は相互接続されていない。クロックドメイン1906に関するその他の詳細事項は、繰返しを避けるため、ここでは説明しない。
図20を参照して、クロックドメイン2006は、クロックドメイン1906と同様であり、同一のクロックネットワークの2つのクロックドメインルート401を有する。クロックドメイン2006において、上側の集積回路ダイ910の中心水平ルーティングトラック「402C」は、上側および下側の集積回路ダイ910の垂直ルーティングトラック403に結合されている。このような垂直ルーティングトラック403を用いて、上側および下側の集積回路ダイ910の水平ルーティングトラック402に結合し、このような水平ルーティングトラック402は各々別々のルート401に結合されている。この2つのルート401はそれぞれ、別々の2つの垂直分配スパイン501に有効に結合されている。別の構成では、クロックドメイン2006が、水平ルーティングトラック402Cのうちの1つの水平ルーティングトラックと垂直ルーティングトラック403のうちの1つの垂直ルーティングトラックとの交点において1つのクロックドメインルート401を有していてもよい。クロックドメイン2006に関するその他の詳細事項は、繰返しを避けるため、ここでは説明しない。
図21−1および図21−2(「図21」)は、FSR203の典型的なクロックネットワーク2100を示す回路/ブロック図である。クロックネットワーク2100は、水平ルーティングトラック402と、垂直ルーティングトラック403と、水平分配スパイン502と、垂直分配スパイン501とを含む。図21−1はFSR203の左部分であり、図21−2はこのFSR203の右部分である。
垂直ルーティングトラック403は、トライステートバッファ2101を通して垂直分配スパイン501に結合されてもよい。トライステートバッファ2101の入力は垂直ルーティングトラック403に結合されてもよく、トライステートバッファ2101の出力は垂直分配スパイン501に結合されてもよい。コンフィギュレーションメモリセル(ここでは図示せず)を用いてトライステートバッファ2101のための制御信号をプログラムしてこれら制御信号をバッファ状態とハイインピーダンストライステートのいずれかにしてもよい。このように、垂直ルーティングトラック403を対応する垂直分配スパイン501に選択的に結合してもよい。
垂直分配スパイン501は、トライステートバッファ2102を通して水平ルーティングトラック402に結合されてもよい。トライステートバッファ2102の入力は水平ルーティングトラック402に結合されてもよく、トライステートバッファ2102の出力は垂直分配スパイン501に結合されてもよい。コンフィギュレーションメモリセル(ここでは図示せず)を用いてトライステートバッファ2102のための制御信号をプログラムしてこれら制御信号をバッファ状態とハイインピーダンストライステートのいずれかにしてもよい。このように、垂直ルーティングトラック402を対応する垂直分配スパイン501に選択的に結合してもよい。
双方向カプラ2122を通して、垂直ルーティングトラック403は水平ルーティングトラック402に結合されてもよく、水平ルーティングトラック402は垂直ルーティングトラック403に結合されてもよい。双方向カプラ2122は、ループ結合されたトライステートバッファ2103とトライステートバッファ2104とを含む。トライステートバッファ2103の入力はトライステートバッファ2104の出力に結合されるとともに垂直ルーティングトラック403に結合される。トライステートバッファ2103の出力は水平ルーティングトラック402に結合される。トライステートバッファ2104の入力はトライステートバッファ2103の出力に結合されるとともに水平ルーティングトラック402に結合される。トライステートバッファ2104の出力は垂直ルーティングトラック403に結合される。コンフィギュレーションメモリセル(ここでは図示せず)を用いてトライステートバッファ2103および2104のための制御信号をプログラムしてこれら制御信号各々をバッファ状態とハイインピーダンストライステートのいずれかにしてもよい。双方向カプラ2122が動作するには、トライステートバッファ2103および2104のうちのいずれかまたはいずれもがトライステート状態である、すなわち、対応付けられているルーティングトラックが電気的に相互接続されていない、または、このようなトライステートバッファ2103および2104のうちの一方がトライステート状態でこのようなトライステートバッファ2103および2104のうちの他方がバッファ状態である。双方向カプラ2122の、トライステートバッファ2103がバッファ状態でトライステートバッファ2104がトライステート状態の場合、垂直ルーティングトラック403上のクロック信号を、このようなトライステートバッファ2103を通して、対応する水平ルーティングトラック402に送ってもよい。同様に、双方向カプラ2122の、トライステートバッファ2104がバッファ状態でトライステートバッファ2103がトライステート状態の場合、水平ルーティングトラック402上のクロック信号を、このようなトライステートバッファ2104を通して、対応する垂直ルーティングトラック403に送ってもよい。
また、ルーティングトラック402および403ならびに分配スパイン501および502が双方向であることがわかるはずである。これらの線路に沿って、限定ではなく明確にするためにここでは示されていない、信号を反対方向に駆動するための対応する回路があってもよく、なくてもよい。
2つの水平分配スパイン502のうちのいずれかが、選択可能なカプラ2121を用いて対応する垂直分配スパイン501に結合されてもよい。選択可能なカプラ2121は、マルチプレクサ2105とトライステートバッファ2106とを含む。コンフィギュレーションメモリセル(ここでは図示せず)を用いてトライステートバッファ2106のための制御信号をプログラムしてこれら制御信号各々をバッファ状態とハイインピーダンストライステートのいずれかにしてもよい。同様に、コンフィギュレーションメモリセル(ここでは図示せず)を用いて、マルチプレクサ2105への制御選択信号をプログラムしてもよい。選択可能なカプラ2121の場合、マルチプレクサ2105の入力は水平分配スパイン502に結合され、マルチプレクサ2105の別の入力は別の水平分配スパイン502に結合される。このようなマルチプレクサ2105から出力する、このような水平分配スパイン502のうちの1つの水平分配スパイン502上のクロック信号を、選択するために、制御選択信号を設定してもよい。このようなマルチプレクサ2105からの出力は、対応するトライステートバッファ2106への入力として与えられる。トライステートバッファ2106の出力は、対応する垂直分配スパイン501に結合される。バッファ状態において、トライステートバッファ2106は、このようなクロック信号をこのような対応する垂直分配スパイン501に送ることができ、トライステート状態において、トライステートバッファ2106はマルチプレクサ2105の出力をこのような垂直分配スパイン501から電気的に切離すことができる。このように、複数の水平分配スパイン502を、垂直分配スパイン501のうちの対応する垂直分配スパイン501に選択的に結合してもよい。
垂直分配スパイン501は、任意の遅延およびクロックゲート511を通して、対応する水平分配スパイン502に結合されてもよい。描かれている例では、任意の遅延およびクロックゲート511は、遅延クロック2107と、マルチプレクサ2108と、ANDゲート2109と、トライステートバッファ2110とを含む。遅延ブロック2107の入力およびマルチプレクサ2108の入力は、垂直分配スパイン501に結合されている。遅延ブロック2107の出力は、マルチプレクサ2108の別の入力に結合されている。マルチプレクサ2108の出力は、ANDゲート2109への入力として与えられる。ANDゲート2109のもう1つの入力は、クロックイネーブル(「CE」)信号2111である。ANDゲート2109の出力は、トライステートバッファ2110の入力として与えられる。トライステートバッファ2110の出力は水平分配スパイン502に結合される。コンフィギュレーションメモリセル(ここでは図示せず)を用いて、トライステートバッファ2110のための制御信号をプログラムしてこれら制御信号をバッファ状態とハイインピーダンストライステートのいずれかにしてもよい。同様に、コンフィギュレーションメモリセル(ここでは図示せず)を用いてマルチプレクサ2108への制御選択信号をプログラムしてもよい。マルチプレクサ2108を用いて、そこからの出力を遅延ブロック2107によって遅延させるか否かを選択してもよい。ANDゲート2109を用いて、CE信号2111が論理ハイのときはクロック信号をトライステートバッファ2110に送り、CE信号2111が論理ローのときはこのようなクロック信号がトライステートバッファ2110に送られないようにしてもよい。CE信号2111が論理ローのとき、ANDゲート2109の出力は論理ローである。バッファ状態のトライステートバッファ2110を用いて、ANDゲート2109の出力をこのような水平分配スパイン502に結合してもよい。ハイインピーダンストライステートのトライステートバッファ2110を用いて、ANDゲート2109の出力をこのような水平分配スパイン502から電気的に切離してもよい。
垂直ルーティングトラック403および水平ルーティングトラック402は、各FSR203の水平および垂直方向の境界でセグメント化され双方向性であるので、トラックシェアリングを採用してもよい。そうすれば、より少ないクロックリソースでより多くのクロック信号を使用することができる。たとえば、1つの水平ルーティングトラックセグメント402を、そのソースノードから、互いに逆の方向に駆動してもよい。言い換えると、同一の水平ルーティングトラックセグメント402に沿って、1つのクロック信号をこのようなソースノードの右方向に駆動し別のクロック信号をこのようなソースノードの左方向に駆動してもよい。これらの線路に沿って、重複しない2つのクロック領域で、同一の水平ルーティングトラック402が共有されてもよい。
図22は、クロックネットワーク2100の典型的なリーフ601を示す回路/ブロック図である。6つのリーフ601が例示されているが、1つのFSR203内で使用されるリーフの数はこれより少なくても多くてもよいことが理解されるはずである。
リーフ601は水平分配スパイン502に結合されている。各リーフ601はドライババッファ2201を含む。ドライババッファ2201は、以下でより詳しく説明するようにトライステートバッファであってもよい。1つ以上のリーフ601は任意の遅延2202を含み得る。コンフィギュレーションメモリセル(ここでは図示せず)を用い、任意の遅延2202を通して遅延を選択的に加えてもよい。リーフ601は、ノード2210において水平分配スパイン502に結合されてもよい。クロック信号を、このようなリーフ601の、上側の任意の遅延2202の入力に送り下側の別の任意の遅延2202の入力に送ってもよい。上側の任意の遅延2202からの出力は上側のドライババッファ2201への入力として与えてもよく、このような上側のドライババッファ2201の出力は回路クラウド300の1つ以上のクロック負荷に結合してもよい。同様に、下側の任意の遅延2202からの出力は下側のドライババッファ2201への入力として与えてもよく、このような下側のドライババッファ2201の出力は回路クラウド300の1つ以上の他のクロック負荷に結合してもよい。1つのリーフ601の任意の遅延2202のうちのいずれもまたはいずれかを遅延を与えるためにプログラム設定してもよく、いずれもプログラム設定しなくてもよい。したがって、たとえば、クロック信号を、リーフ601の上側の任意の遅延2202によって遅延させるが同じリーフ601の下側の任意の遅延2202によって遅延させないようにしてもよく、逆でもよい。すべてのリーフ601が任意の遅延2202を有していなくてもよい。任意の遅延2202がないリーフ601に対し、ノード2210のクロック信号を、このリーフ601の上側および下側のドライババッファ2201の入力に直接与えてもよい。
したがって、水平方向に隣合うFSR203間のホールド時間の問題を回避または低減するには、任意の遅延2202を用いて、たとえば2つ以上のクロックリーフ601間で遅延を広めてもよい。言い換えると、スキューまたはより具体的にはスキューの不連続性を、少しずつなくしてもよく、分散させてもよく、そうでなければFSR203の複数の列に広めてもよい。
図23は、FSR203の典型的な部分2300を示すブロック図である。図24は、相互接続タイル2301の典型的な部分を示す回路図である。図1〜図24を同時に参照しながら部分2300についてさらに説明する。
FSR203は、他の構成要素の中でも特に、コンフィギュラブルロジック素子(「CLE」)2303と、相互接続ブロックまたはタイル2301と、1つ以上の水平分配スパイン502とを含み得る。たとえば各相互接続ブロック2301の専用部分といった部分2302を用いて、CLE2303のデータソースおよび/またはクロックソース等のデータソースおよび/またはクロックソースを、リーフクロックドライババッファ2201に結合してもよい。1つ以上のクロック入力2403を入力としてマルチプレクサ2404に結合してもよい。1つ以上のローカル相互接続入力2401を入力としてマルチプレクサ2402に結合してもよい。1つ以上のローカル相互接続入力2504を入力としてマルチプレクサ2406に結合してもよい。マルチプレクサ2402、2404、および2406への制御選択入力を、このようなマルチプレクサそれぞれからの出力の選択のために、コンフィギュレーションメモリセル(ここでは図示せず)によってプログラム設定してもよい。
マルチプレクサ2406の出力は、トライステートドライババッファ2201のトライステート入力ポートに与えられる。したがって、トライステートドライババッファ2201は、先に説明したようにトライステート状態またはバッファ状態にすることができる。マルチプレクサ2402の出力は、入力としてマルチプレクサ2404に与えられる。これら線路に沿って、クロック信号を、たとえばグローバルクロック入力等のクロック入力2403としてローカル相互接続から送ってもよい。マルチプレクサ2404の出力は、入力としてトライステートドライババッファ2201に与えられる。トライステートドライババッファ2201の出力は、1つ以上のCLE2303の1つ以上のクロック負荷等のクロック負荷に与えられてもよい。
このように、トライステート状態が可能なドライババッファ2201等のリーフクロックドライバ上を通る相互接続を引出してリーフクロックイネーブルマルチプレクサに送ってもよい。このような相互接続は、高ファンアウトデータネットワークのルーティングをさらにサポートし得る。相互接続タイルの専用部分を用いて、リーフクロック入力に使用されるその他の入力をサポートしてもよい。これに加えてまたはこれに代えて、ユーザは、水平分配スパイン502を通っている既存の相互接続を引出してもよい。リーフクロックを別途ゲーティングし水平分配スパイン502を使用せずに局所的に駆動してもよい。クロックをゲーティングすることにより、クロック電力を削減してもよい。
上記説明は典型的な構造の説明であるが、1つ以上の局面に従うこれ以外およびさらに他の構造が以下の請求項およびその均等物によって定められる範囲から逸脱することなく考案されるであろう。商標はその所有者の財産である。

Claims (14)

  1. 装置であって、
    回路ブロックのアレイにおいてクロックネットワークを有する集積回路を備え、
    前記クロックネットワークは、ルーティングトラックと、分配スパインと、クロックリーフと、双方向カプラとを含み、
    前記ルーティングトラックおよび前記分配スパインは双方向性であり、
    前記分配スパインは水平および垂直分配スパインを含み、
    前記ルーティングトラックは水平ルーティングトラックおよび垂直ルーティングトラックを含み、前記水平および垂直ルーティングトラックは、クロックソースから水平および垂直分配スパインの1つ以上の交点のうちのいずれかまでの経路を提供する専用クロックリソースであり、
    前記クロックリーフは、水平分配スパインの水平セグメントと交差し、
    前記双方向カプラは各々、
    前記垂直ルーティングトラックのうちの1つの垂直ルーティングトラックに結合された入力と前記水平ルーティングトラックのうちの1つの水平ルーティングトラックに結合された出力とを有する第1のトライステートバッファと、
    前記第1のトライステートバッファの出力に結合された入力と前記第1のトライステートバッファの入力に結合された出力とを有する第2のトライステートバッファとを含み、
    前記トライステートバッファ各々のための制御信号は、前記トライステートバッファをバッファ状態とハイインピーダンス状態のいずれかにするようにプログラムされ、
    前記垂直ルーティングトラックのうちの1つの垂直ルーティングトラック上の制御信号は、前記第1のトライステートバッファがバッファ状態で前記第2のトライステートバッファがハイインピーダンス状態のとき、前記第1のトライステートバッファを通して前記水平ルーティングトラックのうちの1つの水平ルーティングトラックに送られ、
    前記水平ルーティングトラックのうちの1つの水平ルーティングトラック上の制御信号は、前記第1のトライステートバッファがハイインピーダンス状態で前記第2のトライステートバッファがバッファ状態のとき、前記第2のトライステートバッファを通して前記垂直ルーティングトラックに送られる、装置。
  2. 前記ルーティングトラックおよび前記分配スパインは、前記回路ブロックの境界でセグメント化されている、請求項1に記載の装置。
  3. 前記垂直分配スパインは、前記水平分配スパインにそれぞれ結合された選択可能な遅延を含む、請求項1または2に記載の装置。
  4. 一組のリーフが、前記回路ブロックのうちの1つの回路ブロックの中の前記分配スパインのうちの水平分配スパインに、クロック信号を前記水平分配スパインから前記一組のリーフに与えるために、結合され、
    前記クロック信号を前記水平分配スパインを通さずに前記一組のリーフに与えるために、相互接続タイルが局所ゲーティング用に構成される、請求項1〜3のいずれか一項に記載の装置。
  5. 前記分配スパインの交点はクロックルートのプールを与える、請求項1〜4のいずれか一項に記載の装置。
  6. 前記回路ブロックはプログラマブルリソースのファブリックサブリージョンであり、
    前記回路ブロックは入出力ブロックおよびマルチギガビットトランシーバブロックに結合されるように構成される、請求項1〜5のいずれか一項に記載の装置。
  7. 前記分配スパインの交点はクロックルートのプールを与え、
    前記分配スパインの交点は前記プログラマブルリソースのファブリックサブリージョン内に位置する、請求項6に記載の装置。
  8. 前記分配スパインに対応付けられた遅延をさらに備え、
    前記遅延は漸進的な遅延を与えるために選択的に使用可能である、請求項1〜7のいずれか一項に記載の装置。
  9. 前記クロックリーフに対応付けられた遅延をさらに備え、
    前記遅延は、前記回路ブロックのうちの隣合う回路ブロック間においてスキューの不連続性を広めるために選択的に使用可能である、請求項1〜8のいずれか一項に記載の装置。
  10. 前記分配スパインは、前記クロックリーフの前にあるクロックツリーの部分に対してセグメント化可能で双方向性である、請求項1〜9のいずれか一項に記載の装置。
  11. 前記分配スパインは、低スキュークロックネットワークと低インジェクションクロックネットワークのいずれかに対して結合される、請求項1〜10のいずれか一項に記載の装置。
  12. マルチダイシステムであって、
    請求項1〜11のいずれか一項に記載の第1の集積回路ダイを備え、前記第1の集積回路ダイは、第1のクロックルーティングリソースの第1のネットワークを有し、
    前記第1の集積回路ダイのクロックソースを前記第1のクロックルーティングリソースの第2のルーティングトラックに結合する、前記第1のクロックルーティングリソースの第1のルーティングトラックと、
    請求項1〜11のいずれか一項に記載の第2の集積回路ダイとを備え、前記第2の集積回路ダイは、第2のクロックルーティングリソースの第2のネットワークを有し、
    前記第2のルーティングトラックに結合された前記第2のクロックルーティングリソースの第3のルーティングトラックと、
    前記第1のルーティングトラックおよび前記第2のルーティングトラックを介して前記クロックソースに結合された、回路設計の第1のルートと、
    前記第1のルーティングトラック、前記第2のルーティングトラック、および前記第3のルーティングトラックを介して前記クロックソースに結合された、前記回路設計の第2のルートとを備え、
    前記第1のルートは前記第1の集積回路ダイの上に位置し、
    前記第2のルートは前記第2の集積回路ダイの上に位置する、マルチダイシステム。
  13. 前記第1のルートは、前記第2のルーティングトラックと、前記第1のクロックルーティングリソースの第1の分配スパインのうちの1つの第1の分配スパインとの交点に位置し、
    前記第2のルートは、前記第3のルーティングトラックと、前記第2のクロックルーティングリソースの第2の分配スパインのうちの1つの第2の分配スパインとの交点に位置する、請求項12に記載のマルチダイシステム。
  14. 前記第1の分配スパインも前記第2の分配スパインも、前記第1の集積回路ダイと前記第2の集積回路ダイとの間のダイ間ルーティングのために結合されていない、請求項13に記載のマルチダイシステム。
JP2015543037A 2012-11-15 2013-07-08 集積回路のための柔軟性がより高いクロックネットワークアーキテクチャ Active JP6035429B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/677,971 2012-11-15
US13/677,971 US8937491B2 (en) 2012-11-15 2012-11-15 Clock network architecture
PCT/US2013/049550 WO2014077910A1 (en) 2012-11-15 2013-07-08 Clock network architecture with higher flexibility for an integrated circuit

Publications (2)

Publication Number Publication Date
JP2016506106A JP2016506106A (ja) 2016-02-25
JP6035429B2 true JP6035429B2 (ja) 2016-11-30

Family

ID=48874508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015543037A Active JP6035429B2 (ja) 2012-11-15 2013-07-08 集積回路のための柔軟性がより高いクロックネットワークアーキテクチャ

Country Status (6)

Country Link
US (1) US8937491B2 (ja)
EP (1) EP2920666B1 (ja)
JP (1) JP6035429B2 (ja)
KR (1) KR101917916B1 (ja)
CN (1) CN105051642B (ja)
WO (1) WO2014077910A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors
US9330220B1 (en) * 2014-08-25 2016-05-03 Xilinx, Inc. Clock region partitioning and clock routing
US9405877B1 (en) * 2014-12-22 2016-08-02 Cadence Design Systems, Inc. System and method of fast phase aligned local generation of clocks on multiple FPGA system
US9602106B1 (en) * 2015-03-05 2017-03-21 Altera Corporation Methods for optimizing circuit performance via configurable clock skews
CN106934080B (zh) * 2015-12-29 2020-06-30 京微雅格(北京)科技有限公司 一种高性能时钟信号驱动寄存器的布局方法
CN105866665B (zh) * 2016-03-31 2019-04-05 复旦大学 面向高性能SoC FPGA的功能遍历测试方法
US20180006653A1 (en) * 2016-06-29 2018-01-04 Altera Corporation Integrated circuits with hybrid fixed/configurable clock networks
CN106788353A (zh) * 2016-11-18 2017-05-31 深圳市紫光同创电子有限公司 一种时钟偏斜纠正方法及电路、终端设备
CN108235342A (zh) * 2016-12-21 2018-06-29 中兴通讯股份有限公司 一种通信装置和基站
US10380287B1 (en) * 2017-06-29 2019-08-13 Cadence Design Systems, Inc. Systems and methods for modifying a balanced clock structure
US10110234B1 (en) 2017-07-19 2018-10-23 Xilinx, Inc. Efficient system debug infrastructure for tiled architecture
US10528697B1 (en) * 2017-11-20 2020-01-07 Xilinx, Inc. Timing-closure methodology involving clock network in hardware designs
US10770443B2 (en) * 2018-09-28 2020-09-08 Intel Corporation Clock architecture in heterogeneous system-in-package
US11314277B1 (en) 2019-08-05 2022-04-26 Xilinx, Inc. Serial lane-to-lane skew reduction
CN111934684B (zh) * 2020-07-31 2022-12-20 新华三半导体技术有限公司 一种缓冲器、时钟网格电路和信号驱动方法
US11775004B2 (en) 2021-09-10 2023-10-03 International Business Machines Corporation Phase aligning and calibrating clocks from one phase lock loop (PLL) for a two-chip die module

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075832A (en) * 1997-10-07 2000-06-13 Intel Corporation Method and apparatus for deskewing clock signals
US6292020B1 (en) 2000-08-01 2001-09-18 Xilinx, Inc. Low-skew programmable control routing for a programmable logic device
US6630855B2 (en) * 2001-03-29 2003-10-07 Intel Corporation Clock distribution phase alignment technique
JP2002305439A (ja) * 2001-04-06 2002-10-18 Sharp Corp プログラマブル論理回路および半導体装置
US6952813B1 (en) 2003-07-30 2005-10-04 Xilinx, Inc. Method and apparatus for selecting programmable interconnects to reduce clock skew
US7463062B2 (en) 2004-07-27 2008-12-09 Easic Corporation Structured integrated circuit device
AU2005269568A1 (en) * 2004-07-27 2006-02-09 Easic Corporation Structured integrated circuit device
US7353487B1 (en) 2004-09-10 2008-04-01 Xilinx, Inc. Regional signal-distribution network for an integrated circuit
JP2007336003A (ja) 2006-06-12 2007-12-27 Nec Electronics Corp クロック分配回路、半導体集積回路、クロック分配回路の形成方法及びそのプログラム
US7737751B1 (en) 2006-08-25 2010-06-15 Altera Corporation Periphery clock distribution network for a programmable logic device
US7362135B1 (en) * 2006-10-04 2008-04-22 Hyun-Taek Chang Apparatus and method for clock skew adjustment in a programmable logic fabric
US7576563B1 (en) * 2007-02-06 2009-08-18 Lattice Semiconductor Corporation High fan-out signal routing systems and methods
US7586355B2 (en) * 2007-07-11 2009-09-08 United Memories, Inc. Low skew clock distribution tree
US8271912B2 (en) * 2008-03-19 2012-09-18 International Business Machines Corporation Radiation tolerance by clock signal interleaving
US8742791B1 (en) * 2009-01-31 2014-06-03 Xilinx, Inc. Method and apparatus for preamble detection for a control signal
US7791370B1 (en) * 2009-05-21 2010-09-07 Altera Corporation Clock distribution techniques for channels

Also Published As

Publication number Publication date
JP2016506106A (ja) 2016-02-25
EP2920666B1 (en) 2018-02-21
WO2014077910A1 (en) 2014-05-22
CN105051642B (zh) 2017-10-13
KR20150087256A (ko) 2015-07-29
CN105051642A (zh) 2015-11-11
US20140132305A1 (en) 2014-05-15
US8937491B2 (en) 2015-01-20
EP2920666A1 (en) 2015-09-23
KR101917916B1 (ko) 2018-11-12

Similar Documents

Publication Publication Date Title
JP6035429B2 (ja) 集積回路のための柔軟性がより高いクロックネットワークアーキテクチャ
US6650142B1 (en) Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use
US6184713B1 (en) Scalable architecture for high density CPLDS having two-level hierarchy of routing resources
JP5242810B2 (ja) プログラマブルデバイスを用いたメモリ制御のための方法および装置
JP6364015B2 (ja) 構成可能な混載メモリシステム
US6570404B1 (en) High-performance programmable logic architecture
US8493090B1 (en) Multiplexer-based interconnection network
US7145362B1 (en) Clock signal-distribution network for an integrated circuit
US7049846B1 (en) Clock tree network in a field programmable gate array
US7545168B2 (en) Clock tree network in a field programmable gate array
US7755388B2 (en) Interconnect structure enabling indirect routing in programmable logic
US8120382B2 (en) Programmable integrated circuit with mirrored interconnect structure
US11211933B2 (en) FPGA chip with distributed multifunctional layer structure
US9430433B1 (en) Multi-layer distributed network
US6429681B1 (en) Programmable logic device routing architecture to facilitate register re-timing
Koch et al. Obstacle-free two-dimensional online-routing for run-time reconfigurable FPGA-based systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160512

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160512

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160916

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161031

R150 Certificate of patent or registration of utility model

Ref document number: 6035429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250