(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5698268
(24)【登録日】2015年2月20日
(45)【発行日】2015年4月8日
(54)【発明の名称】ミラーリングされた相互接続構造を有するプログラマブル集積回路
(51)【国際特許分類】
H03K 19/177 20060101AFI20150319BHJP
【FI】
H03K19/177
【請求項の数】13
【全頁数】17
(21)【出願番号】特願2012-552857(P2012-552857)
(86)(22)【出願日】2010年10月20日
(65)【公表番号】特表2013-520074(P2013-520074A)
(43)【公表日】2013年5月30日
(86)【国際出願番号】US2010053308
(87)【国際公開番号】WO2011109045
(87)【国際公開日】20110909
【審査請求日】2012年8月10日
(31)【優先権主張番号】12/718,848
(32)【優先日】2010年3月5日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】バウアー,トレバー・ジェイ
(72)【発明者】
【氏名】タニケラ,ラマクリシュナ・ケイ
(72)【発明者】
【氏名】ヤン,スティーブン・ピィ
【審査官】
柳下 勝幸
(56)【参考文献】
【文献】
米国特許出願公開第2004/0150422(US,A1)
【文献】
特表2007−522699(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 19/177
H03K 19/173
(57)【特許請求の範囲】
【請求項1】
プログラマブル集積回路(IC)であって、
前記プログラマブルIC内において水平方向に配列された複数の配列を備え、
各配列は前記複数の配列の他の配列に隣接し、第1のロジックコラムと、第1の相互接続コラムと、第2の相互接続コラムと、第2のロジックコラムとを含み、それらは前記配列内にその順序で水平方向に配列され、
前記第1および第2の相互接続コラムの各々は、前記相互接続コラムにおいて垂直方向に配列された複数のプログラマブル相互接続ブロックを含み、
前記第1および第2のロジックコラムの各々は、前記ロジックコラムにおいて垂直方向に配列された複数のプログラマブルロジックブロックを含み、
前記第1の相互接続コラムにおける複数の前記プログラマブル相互接続ブロックの数は、前記第1のロジックコラムにおける複数の前記プログラマブルロジックブロックの数と同一であり、さらに、前記第2の相互接続コラムにおける複数の前記プログラマブル相互接続ブロックの数は、前記第2のロジックコラムにおける複数の前記プログラマブルロジックブロックの数と同一であり、
前記プログラマブル相互接続ブロックの各々は、前記プログラマブル相互接続ブロックの一側面に複数の第1の入力ポートおよび出力ポートを提供し、
前記プログラマブルロジックブロックの各々は、前記プログラマブルロジックブロックの一側面に複数の第2の入力ポートおよび出力ポートを提供し、
各配列の前記第1の相互接続コラムにおける前記プログラマブル相互接続ブロックの各々の前記第1のポートおよび前記一側面は、前記配列の前記第2の相互接続コラムにおける各プログラマブル相互接続ブロックの前記第1のポートおよび前記一側面を物理的にミラーリングし、
各配列の前記第1の相互接続コラムにおける前記プログラマブル相互接続ブロックの前記第1のポートは、前記配列の前記第1のロジックコラムにおける前記プログラマブルロジックブロックの前記第2のポートに結合され、
各配列の前記第2の相互接続コラムにおける前記プログラマブル相互接続ブロックの前記第1のポートは、前記配列の前記第2のロジックコラムにおける前記プログラマブルロジックブロックの前記第2のポートに結合される、プログラマブルIC。
【請求項2】
前記配列の前記相互接続コラムにおける前記プログラマブル相互接続ブロックのうちの各ブロックは、前記配列の前記ロジックコラムにおける前記プログラマブルロジックブロックの前記第2の入力ポートを、前記プログラマブル相互接続ブロックのうちの1つの第1の出力ポートを介するとともに、少なくとも4つの前記プログラマブル相互接続ブロックの前記第1の入力ポートを介して、前記プログラマブルロジックブロックの第2の出力ポートに選択的に結合するために、前記少なくとも4つの前記プログラマブル相互接続ブロックに結合される、請求項1に記載のプログラマブルIC。
【請求項3】
各配列は、前記第1のロジックコラムと、前記第1の相互接続コラムと、前記第2の相互接続コラムと、前記第2のロジックコラムを含み、それらは前記配列内に左から右にその順序で水平方向に配置され、
前記プログラマブルロジックブロックの前記一側面は、各第1のロジックコラムにおける前記プログラマブルロジックブロックについての右側であるとともに、各第2のロジックコラムにおける前記プログラマブルロジックブロックについての左側であり、
前記プログラマブル相互接続ブロックの前記一側面は、各第1の相互接続コラムにおける前記プログラマブル相互接続ブロックについての左側であるとともに、各第2の相互接続コラムにおける前記プログラマブル相互接続ブロックについての右側である、請求項1または2に記載のプログラマブルIC。
【請求項4】
各配列の前記第1のロジックコラムにおける前記プログラマブルロジックブロックの右側は、前記配列の前記第1の相互接続コラムにおける前記プログラマブル相互接続ブロックの左側に隣接し、
各配列の前記第2の相互接続コラムにおける前記プログラマブル相互接続ブロックの右側は、前記配列の前記第2のロジックコラムにおける前記プログラマブルロジックブロックの左側に隣接する、請求項3に記載のプログラマブルIC。
【請求項5】
各配列の前記第1の相互接続コラムにおける前記プログラマブル相互接続ブロックの各々は、各配列の前記第2の相互接続コラムにおける前記プログラマブル相互接続ブロックの各々を機能的にミラーリングし、
各配列の各ロジックコラムにおける前記プログラマブルロジックブロックは、複数のタイプのうちの同じタイプを有し、
各々のタイプについて、各配列の前記第1のロジックコラムにおける当該タイプを有するプログラマブルロジックブロックの各々は、各配列の前記第2のロジックコラムにおける当該タイプを有する前記プログラマブルロジックブロックの各々を物理的にミラーリングする、請求項1〜4のいずれか1項に記載のプログラマブルIC。
【請求項6】
前記配列の各々は、前記第1の相互接続コラムと前記第2の相互接続コラムとの間であって、かつそれらに隣接して水平方向に配列された共有コラムをさらに含み、
前記第1および第2の相互接続コラムにおける前記プログラマブル相互接続ブロックの各々は、前記共有コラムの複数のクロックラインおよび制御ラインの各々を、前記プログラマブル相互接続ブロックの前記第1の出力ポートが結合される前記第2の入力ポートの少なくとも1つへ選択的に結合する、請求項1〜5のいずれか1項に記載のプログラマブルIC。
【請求項7】
前記プログラマブルICにおいて、前記配列の第2の配列の前記第1のロジックコラムに隣接する前記配列の第1の配列の前記第2のロジックコラムについて、
前記第2および第1のロジックコラムにおける各プログラマブルロジックブロックは、前記プログラマブルロジックブロックの前記一側面と反対の他の側面に複数の第3のポートを有し、
前記第2および第1のロジックコラムにおける前記プログラマブルロジックブロックは
、前記第3のポートを介して結合される、請求項1〜6のいずれか1項に記載のプログラマブルIC。
【請求項8】
各配列の前記第1のロジックブロックにおける前記プログラマブルロジックブロックの前記一側面は、前記配列の前記第1の相互接続コラムにおける前記プログラマブル相互接続ブロックの前記一側面に隣接し、
各配列の前記第2のロジックコラムにおける前記プログラマブルロジックブロックの前記一側面は、前記配列の前記第2の相互接続コラムにおける前記プログラマブル相互接続ブロックの前記一側面に隣接する、請求項1〜7のいずれか1項に記載のプログラマブルIC。
【請求項9】
各配列の各ロジックコラムにおける前記プログラマブルロジックブロックは、複数のタイプのうちの同じタイプを有する、請求項1〜8のいずれか1項に記載のプログラマブルIC。
【請求項10】
各配列の前記第1のロジックコラムにおける前記プログラマブルロジックブロックの第1の複数のグループは、前記配列の前記第1の相互接続コラムにおける前記プログラマブル相互接続ブロックの第2の複数のグループに対応し、
前記第2のロジックコラムにおける前記プログラマブルロジックブロックの第3の複数のグループは、前記配列の前記第2の相互接続コラムにおける前記プログラマブル相互接続ブロックの第4の複数のグループに対応し、
前記第1のグループの各々における第1の数の前記プログラマブルロジックブロック、および前記第2のグループの各々における第2の数の前記プログラマブル相互接続ブロックについて、前記第1および第2の数は、それぞれ、2と1、1と1、1と2、1と3、1と4、または1と5であり、
前記第3のグループの各々における第3の数の前記プログラマブルロジックブロック、および前記第4のグループの各々における第4の数のプログラマブル相互接続ブロックについて、前記第3および第4の数は、それぞれ、2と1、1と1、1と2、1と3、1と4、または1と5である、請求項9に記載のプログラマブルIC。
【請求項11】
前記タイプの各々について、前記タイプを有しかつ前記配列の前記第1のロジックコラム内にある前記プログラマブルロジックブロックの各々は、前記タイプを有しかつ前記配列の前記第2のロジックコラム内にある前記プログラマブルロジックブロックの各々を、物理的にミラーリングする、請求項9に記載のプログラマブルIC。
【請求項12】
前記配列のうちの1つの前記第1のロジックコラムにおける前記プログラマブルロジックブロックの各々は、前記配列のうちの1つの前記第2のロジックコラムにおける前記プログラマブルロジックブロックの各々を、物理的にミラーリングする、請求項1〜11のいずれか1項に記載のプログラマブルIC。
【請求項13】
各配列の前記第1のロジックコラムにおける各プログラマブルロジックブロックの前記第2の入力ポートの各々は、前記配列の前記第2のロジックコラムにおける少なくとも3つの前記プログラマブルロジックブロックの前記第2の出力ポートの少なくとも1つに選択的に結合され、
前記第2の入力ポートは、前記配列の前記相互接続コラムの領域全体の範囲内であり、かつ前記配列の前記ロジックコラムの領域に入ることのない、少なくとも3つのプログラマブルロジックブロックの、少なくとも1つの前記第2の出力ポートに選択的に結合される、請求項1に記載のプログラマブルIC。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、概して集積回路に関し、より特定的にはプログラマブル集積回路に関する。
【背景技術】
【0002】
背景
プログラマブルロジックデバイス(programmable logic device:PLD)は、特定の論理関数を実行するようにプログラムされ得る、周知のタイプの集積回路である。PLDの1つのタイプであるフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)は、典型的にプログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、たとえば、入出力ブロック(IOB)、コンフィギュラブルロジックブロック(configurable logic block:CLB)、専用ランダムアクセスメモリブロック(BRAM)、乗算器、デジタル信号処理ブロック(DSP)、プロセッサ、クロックマネージャ、遅延ロックループ(DLL)などを含み得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
各プログラマブルタイルは、典型的に、プログラマブル相互接続およびプログラマブルロジックの双方を含む。プログラマブル相互接続は、典型的に、プログラム可能な相互接続点(programmable interconnect point:PIP)によって相互接続された、可変長さの多くの相互接続ラインを含む。プログラマブルロジックは、たとえば、関数生成器、レジスタ、算術論理などを含み得るプログラム可能な要素を用いて、ユーザ設計のロジックを実現する。
【0004】
プログラマブル相互接続およびプログラマブルロジックは、典型的に、どのようにプログラム可能な要素が構成されるかを規定する内部設定メモリセル内に、一連の設定データを読み込ませることによってプログラムされる。設定データは、メモリ(たとえば、外部PROM)から読み出されるか、または、外部装置によってFPGA内に書込まれ得る。そして、個々のメモリセルの集合状態が、FPGAの機能を決定する。
【0005】
プログラマブル集積回路において実現され得るユーザ設計のタイプを増加するために、プログラマブル集積回路を改善する一般的なニーズがある。
【0006】
本発明は、1つまたはより多くの上記の問題に対処し得る。
【課題を解決するための手段】
【0007】
概要
プログラマブル集積回路(IC)は、プログラマブルIC内において水平方向に配列された複数の配列を含む。各配列は、第1のロジックコラムと、第1の相互接続コラムと、第2の相互接続コラムと、第2のロジックコラムとを含み、それらは配列内にその順序で水平方向に配列される。第1および第2の相互接続コラムの各々は、当該相互接続コラムにおいて垂直方向に配列された複数のプログラマブル相互接続ブロックを含む。第1および第2のロジックコラムの各々は、当該ロジックコラムにおいて垂直方向に配列された複数のプログラマブルロジックブロックを含む。
【0008】
プログラマブル相互接続ブロックの各々は、プログラマブル相互接続ブロックの一側面に複数の第1の入力ポートおよび出力ポートを提供する。プログラマブルロジックブロックの各々は、プログラマブルロジックブロックの一側面に複数の第2の入力ポートおよび出力ポートを提供する。各配列の第1の相互接続コラムにおけるプログラマブル相互接続ブロックの各々の第1のポートおよび一側面は、配列の第2の相互接続コラムにおける各プログラマブル相互接続ブロックの第1のポートおよび一側面を物理的にミラーリングする。各配列の第1の相互接続コラムにおけるプログラマブル相互接続ブロックの第1のポートは、配列の第1のロジックコラムにおけるプログラマブルロジックブロックの第2のポートに結合される。各配列の第2の相互接続コラムにおけるプログラマブル相互接続ブロックの第1のポートは、配列の第2のロジックコラムにおけるプログラマブルロジックブロックの第2のポートに結合される。
【0009】
いくつかの実施形態においては、配列の相互接続コラムにおけるプログラマブル相互接続ブロックのうちの各ブロックは、配列のロジックコラムにおけるプログラマブルロジックブロックの第2の入力ポートを、プログラマブル相互接続ブロックのうちの1つの第1の出力ポートを介するとともに、少なくとも4つのプログラマブル相互接続ブロックの第1の入力ポートを介して、プログラマブルロジックブロックの第2の出力ポートに選択的に結合するために、少なくとも4つのプログラマブル相互接続ブロックに結合される。
【0010】
いくつかの実施形態においては、各配列は、第1のロジックコラムと、第1の相互接続コラムと、第2の相互接続コラムと、第2のロジックコラムを含み、それらは配列内に左から右にその順序で水平方向に配置される。プログラマブルロジックブロックの一側面は、各第1のロジックコラムにおけるプログラマブルロジックブロックについての右側であるとともに、各第2のロジックコラムにおけるプログラマブルロジックブロックについての左側である。プログラマブル相互接続ブロックの一側面は各第1の相互接続コラムにおけるプログラマブル相互接続ブロックについての左側であるとともに、各第2の相互接続コラムにおけるプログラマブル相互接続ブロックについての右側である。
【0011】
いくつかの実施形態においては、各配列の第1のロジックコラムにおけるプログラマブルロジックブロックの右側は、配列の第1の相互接続コラムにおけるプログラマブル相互接続ブロックの左側に隣接し、各配列の第2の相互接続コラムにおけるプログラマブル相互接続ブロックの右側は、配列の第2のロジックコラムにおけるプログラマブルロジックブロックの左側に隣接する。
【0012】
いくつかの実施形態においては、各配列の第1の相互接続コラムにおけるプログラマブル相互接続ブロックの各々は、各配列の第2の相互接続コラムにおけるプログラマブル相互接続ブロックの各々を機能的にミラーリングする。各配列の各ロジックコラムにおけるプログラマブルロジックブロックは、複数のタイプのうちの同じタイプを有する。各々のタイプについて、各配列の第1のロジックコラムにおける当該タイプを有するプログラマブルロジックブロックの各々は、各配列の第2のロジックコラムにおける当該タイプを有するプログラマブルロジックブロックの各々を物理的にミラーリングする。
【0013】
いくつかの実施形態においては、配列の各々は、第1の相互接続コラムと第2の相互接続コラムとの間であって、かつそれらに隣接して水平方向に配列された共有コラムをさらに含む。第1および第2の相互接続コラムにおけるプログラマブル相互接続ブロックの各々は、共有コラムの複数のクロックラインおよび制御ラインの各々を、プログラマブル相互接続ブロックの第1の出力ポートが結合される第2の入力ポートの少なくとも1つへ選択的に結合する。
【0014】
いくつかの実施形態においては、プログラマブルICにおいて、配列の第2の配列の第1のロジックコラムに隣接する配列の第1の配列の第2のロジックコラムについて、第2および第1のロジックコラムにおける各プログラマブルロジックブロックはプログラマブルロジックブロックの当該一側面と反対の他の側面に複数の第3のポートを有し、第2および第1のロジックコラムにおけるプログラマブルロジックブロックは第3のポートを介して結合される。
【0015】
いくつかの実施形態においては、各配列の第1のロジックブロックにおけるプログラマブルロジックブロックの一側面は、配列の第1の相互接続コラムにおけるプログラマブル相互接続ブロックの一側面に隣接し、各配列の第2のロジックコラムにおけるプログラマブルロジックブロックの一側面は、配列の第2の相互接続コラムにおけるプログラマブル相互接続ブロックの一側面に隣接する。
【0016】
いくつかの実施形態においては、各配列の各ロジックコラムにおけるプログラマブルロジックブロックは、複数のタイプのうちの同じタイプを有する。いくつかのそのような実施形態においては、各配列の第1のロジックコラムにおけるプログラマブルロジックブロックの第1の複数のグループは、配列の第1の相互接続コラムにおけるプログラマブル相互接続ブロックの第2の複数のグループに対応する。第2のロジックコラムにおけるプログラマブルロジックブロックの第3の複数のグループは、配列の第2の相互接続コラムにおけるプログラマブル相互接続ブロックの第4の複数のグループに対応する。第1のグループの各々における第1の数のプログラマブルロジックブロック、および第2のグループの各々における第2の数のプログラマブル相互接続ブロックについて、第1および第2の数は、それぞれ、2と1、1と1、1と2、1と3、1と4、または1と5である。第3のグループの各々における第3の数のプログラマブルロジックブロック、および第4のグループの各々における第4の数のプログラマブル相互接続ブロックについて、第3および第4の数は、それぞれ、2と1、1と1、1と2、1と3、1と4、または1と5である。
【0017】
いくつかの実施形態においては、タイプの各々について、当該タイプを有しかつ配列の第1のロジックコラム内にあるプログラマブルロジックブロックの各々は、当該タイプを有しかつ配列の第2のロジックコラム内にあるプログラマブルロジックブロックの各々を、物理的にミラーリングする。
【0018】
いくつかの実施形態においては、配列のうちの1つの第1のロジックコラムにおけるプログラマブルロジックブロックの各々は、配列のうちの1つの第2のロジックコラムにおけるプログラマブルロジックブロックの各々を、物理的にミラーリングする。
【0019】
いくつかの実施形態においては、各配列の第1のロジックコラムにおける各プログラマブルロジックブロックの第2の入力ポートの各々は、配列の第2のロジックコラムにおける少なくとも3つのプログラマブルロジックブロックの第2の出力ポートの少なくとも1つに選択的に結合される。第2の入力ポートは、配列の相互接続コラムの領域全体の範囲内であり、かつ配列のロジックコラムの領域に入ることのない、少なくとも3つのプログラマブルロジックブロックの、少なくとも1つの第2の出力ポートに選択的に結合される。
【0020】
さまざまな他の実施形態が、以下の詳細な説明および特許請求の範囲に記載されていることが明らかであろう。
【0021】
本発明のさまざまな局面および利点は、以下の詳細な説明の検討、および図面の参照によって明らかになるであろう。
【図面の簡単な説明】
【0022】
【
図1】例示的なプログラマブル集積回路のブロック図である。
【
図2】例示的なプログラマブルロジックデバイスのレイアウト図である。
【
図3】プログラマブル相互接続ブロックおよびプログラマブルロジックブロックの例示的な配列を示すブロック図である。
【発明を実施するための形態】
【0023】
詳細な説明
図1は、本発明のさまざまな実施形態に従うプログラマブル集積回路のブロック図である。プログラマブル集積回路は、プログラマブルロジックリソースおよびプログラマブル相互接続リソースを含む、配列102〜104を含む。配列102〜104は、プログラマブルロジックデバイス内において水平方向に配列される。当該プログラマブル集積回路の単純な回転によって、配列102〜104は垂直方向に配列されることが理解されるであろう。一実施形態においては、
図1のプログラマブル集積回路は、プログラマブルロジックデバイスである。しかしながら、本図は、他のタイプのプログラマブルICにも適用され得ることが理解されるであろう。
【0024】
一実施形態においては、配列102は、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックの4つのコラム106,108,110,112を含む。4つのコラム106,108,110,112は、配列102内において、左から右へその順序で水平方向に配列される。ロジックコラム106,112は、プログラマブルロジックブロック114,116,118〜120,122,124,126〜128を含む。プログラマブルロジックブロック114,116,118〜120は、ロジックコラム106内に垂直方向に配列され、プログラマブルロジックブロック122,124,126〜128は、ロジックコラム112内に垂直方向に配列される。相互接続コラム108,110は、プログラマブル相互接続ブロック130,132,134〜136,138,140,142〜144を含む。プログラマブル相互接続ブロック130,132,134〜136は、相互接続コラム108内に垂直方向に配列され、プログラマブル相互接続ブロック138,140,142〜144は、相互接続コラム110内に垂直方向に配列される。
【0025】
他の実施形態においては、配列102は、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックの3つのコラム106,146,112を含む。3つのコラム106,146,112は、配列102内において、左から右へその順序で水平方向に配列される。相互接続コラム146は、プログラマブル148,150,152〜154の垂直配列を含む。プログラマブル相互接続ブロック148は、プログラマブル相互接続ブロック130,138の2つのサブブロックを含み、それらは、プログラマブル相互接続ブロック148内に左から右へその順序で水平方向に配列される。
【0026】
同様に、プログラマブル相互接続ブロック150はブロック132,140を含み、プログラマブル相互接続ブロック152はブロック134,142を含み、プログラマブル相互接続ブロック154はブロック136,144を含む。
【0027】
一実施形態においては、ロジックコラム106内のプログラマブルロジックブロック114,116,118〜120は、ロジックコラム112内のプログラマブルロジックブロック122,124,126〜128と同じタイプであり、ロジックコラム112内のプログラマブルロジックブロック122,124,126〜128の各々は、ロジックコラム106内のプログラマブルロジックブロック114,116,118〜120の各々の、物理的なミラーイメージである。この実施形態においては、プログラマブル相互接続ブロック130,132,134〜136は各々、プログラマブル相互接続ブロック138,140,142〜144を機能的にミラーリングするが、しばしば完全な物理的ミラーリングではない。
【0028】
他の実施形態においては、ロジックコラム106内のプログラマブルロジックブロック114,116,118〜120は、ある1つのタイプであり、ロジックコラム112内のプログラマブルロジックブロック122,1246,126〜128は、他のタイプである。この実施形態においては、プログラマブルロジックブロック114の右側面に沿ったポート156,158は、プログラマブルロジックブロック122の左側面に沿ったポート160,162を物理的にミラーリングするが、プログラマブルロジックブロック114,122は、これらのブロック114,122が異なるタイプであるので、互いに物理的にはミラーリングしていない。同様に、ロジックコラム106内のプログラマブルロジックブロック114,116,118〜120の各々の右側面は、ロジックコラム112内のプログラマブルロジックブロック122,124,126〜128の各々の左側面を物理的にミラーリングする。
【0029】
配列102〜104のいくつかは、すべて同じタイプのプログラマブルロジックブロックを含み得るが、一方、配列102〜104の他の部分は、複数のタイプのプログラマブルロジックブロックを含み得ることが理解されるであろう。一例においては、配列102におけるプログラマブルロジックブロック114,116,118〜120,122,124,126〜128はすべて同じタイプであるが、配列104においては、プログラマブルロジックブロック164,165,166〜167は、プログラマブルロジックブロック168,169,170〜171とは異なるタイプである。
【0030】
特定の実施形態においては、各プログラマブルロジックブロックは、対応するプログラマブル相互接続ブロックに接続される。たとえば、プログラマブルロジックブロック114の入力ポート156はプログラマブル相互接続ブロック130の出力ポート172に接続され、プログラマブルロジックブロック114の出力ポート158はプログラマブル相互接続ブロック130の入力ポート174に接続される。
【0031】
各プログラマブルロジックブロックの入力ポートは、プログラマブル相互接続ブロックの特定の1つを介して、多くのプログラマブルロジックブロックの出力ポートに結合される。たとえば、プログラマブルロジックブロック124の入力ポート176は、プログラマブル相互接続ブロック140を介してプログラマブルロジックブロック124の出力ポート178に結合され、入力ポート176はプログラマブル相互接続ブロック140,138を介して、プログラマブルロジックブロック122の出力ポート162に結合され、入力ポート176はプログラマブル相互接続ブロック140,142を介して、プログラマブルロジックブロック126の出力ポート180に結合され、入力ポート176はプログラマブル相互接続ブロック140,130を介して、プログラマブルロジックブロック114の出力ポート158に結合され、入力ポート176はプログラマブル相互接続ブロック140,132を介して、プログラマブルロジックブロック116の出力ポート182に結合され、入力ポート176はプログラマブル相互接続ブロック140,134を介して、プログラマブルロジックブロック118の出力ポート184に結合され、入力ポート176はプログラマブル相互接続ブロック140,188を介して、プログラマブルロジックブロック164の出力ポート186に結合され、入力ポート176はプログラマブル相互接続ブロック140,192を介して、プログラマブルロジックブロック165の出力ポート190に結合され、入力ポート176はプログラマブル相互接続ブロック140,196を介して、プログラマブルロジックブロック166の出力ポート194に結合され、入力ポート176はプログラマブル相互接続ブロック140,199を介して、プログラマブルロジックブロック169の出力ポート198に結合される。要約すると、プログラマブル相互接続ブロックのうちの特定のものは、プログラマブルロジックブロック124の入力ポート176を、プログラマブルロジックブロック124,122,126,114,116,118,164,165,166,169の出力ポートに結合する。プログラマブル相互接続ブロックは、同様に、他のプログラマブルロジックブロックの入力ポートを、多くの他のプログラマブルロジックブロックの出力ポートに結合する。
【0032】
したがって、各プログラマブル相互接続ブロックは、多くのプログラマブル相互接続ブロックに接続されて、各プログラマブルロジックブロックの入力ポートが、他の多くのプログラマブルロジックブロックの出力ポートに接続されるようにする。たとえば、プログラマブル相互接続ブロック140は、プログラマブル相互接続ブロック138,142,130,132,134,188,192,196,199に接続されて、プログラマブルロジックブロック124の入力ポート176が、プログラマブルロジックブロック122,126,114,116,118,164,165,166,169の出力ポートに接続されるようにする。
【0033】
プログラマブルロジックブロック114,116,118,120,122,124,126,128,164,165,166,167,168,169,170,171の図示されたアレイにおいては、想定する配列102,104は、プログラマブル集積回路内で隣接し、例示的なプログラマブルロジックブロック124に、垂直に、水平に、および直交して隣接するプログラマブルロジックブロックは、プログラマブルロジックブロック122,126,116,165,114,118,164,166である。図示された実施形態においては、プログラマブル相互接続ブロックは、例示的なプログラマブルロジックブロック124を、これらの隣接するプログラマブルロジックブロック122,126,116,165,114,118,164,166のすべてに結合する。各プログラマブルロジックブロックを、垂直に、水平に、および直交して隣接するプログラマブルロジックブロックへ結合する接続は、単一の接続で示されている。プログラマブル相互接続ブロックは、例示的なプログラマブルロジックブロック124をプログラマブルロジックブロック169にも結合する。例示的なプログラマブルロジックブロック124と、離れたプログラマブルロジックブロック169との間の接続のような接続は、長い接続で示されている。長い接続は、さまざまな長さを有し得ることが理解されるであろう。
【0034】
プログラマブルロジックデバイスの性能は、たとえば、プログラマブルロジックデバイスの配線遅延によって大幅に決定される。単一接続は一般的に長い接続よりも短いので、単一接続は、長い接続よりも少ない配線遅延を有する。プログラマブルロジックデバイス内に実現されるロジック設計の性能を増加するために、実現されたロジックデバイスは、ロジック設計の重要タイミング経路については、主に単一接続を利用するべきである。
【0035】
本発明のさまざまな実施形態は、プログラマブルロジックデバイスのような、いくつかの単一接続の長さを短縮しかつ配線遅延を低減し、結果としてプログラマブルロジックデバイス内に実現されたロジック設計の性能を改善するプログラマブル集積回路を提供する。実現されたロジック設計の性能は、短くされた長さの単一接続がロジック設計の重要タイミング経路を実現するように優先的に利用される場合に、劇的に改善される。
【0036】
プログラマブルロジックコラム106と112との間にプログラマブル相互接続コラム146を配置することは、例示的なプログラマブルロジックブロック124と、プログラマブルロジックブロック114,116,118との間の単一接続の長さを短縮する。これは、例示的なプログラマブルロジックブロック124の入力ポート176と、プログラマブルロジックブロック114,116,118のそれぞれの出力ポート158,182,184との間の接続が、プログラマブル相互接続コラム146の領域内に残っており、プログラマブルロジックコラム106,112の領域には入っていないからである。
【0037】
例示的なプログラマブルロジックブロック124の出力ポート178を伴う対応する単一接続も、同様に短縮される。例示的なプログラマブルロジックブロック124とプログラマブルロジックブロック114,116,118との間の単一接続は、プログラマブルロジックコラム106,112を横断することから生じるいかなる配線遅延をも伴わずに、これらのプログラマブルロジックブロックを直接的に結合する。
【0038】
図2は、本発明のさまざまな実施形態に従うプログラマブルロジックブロックのレイアウト図である。プログラマブルロジックデバイスは、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックのコラムの配列201,202,203,204を含む。
【0039】
フィールドプログラマブルゲートアレイ(FPGA)のような最新のプログラマブルロジックデバイスは、アレイ内にいくつかの異なるタイプのプログラマブルタイルを含み得る。たとえば、
図2は、多くの数の異なるプログラマブルタイルを有するFPGAアーキテクチャ200を示し、プログラマブルタイルは、コンフィギュラブルロジックブロック(CLB212)、ランダムアクセスメモリ(BRAM213)、入出力ロジックブロック(IOL215)、設定およびクロック生成ブロック205、デジタル信号処理ブロック(DSP214)、専用入出力ブロック(I/O207)(たとえば、設定ポートおよびクロックポート)、および、デジタルクロックマネージャ、アナログ−デジタル変換器、システム監視ロジックなどのような他のプログラマブルロジック208を含む。いくつかのFPGAは、(図示しない)専用プロセッサブロックも含む。
【0040】
プログラマブルタイルの多くは、配列201,202,203,204内に配置されるが、ダイの中央部は配列内にはなく、プログラマブルロジックおよび相互接続ブロック206を含み、それは、図示された実施形態においてはコンフィグラブルロジックブロック、プログラマブル相互接続ブロック、および入出力ブロックを含む。
【0041】
いくつかのFPGAにおいては、各プログラマブル相互接続ブロック(PIB211)は、近隣のプログラマブル相互接続ブロックおよびおそらくいくつかの離れたプログラマブル相互接続接続ブロックへの、またはそれらからの標準化された接続を有する。したがって、プログラマブル相互接続ブロックは一緒になって、図示されたFPGAについてのプログラマブル相互接続構造を実現する。プログラマブル相互接続ブロック(PIB211)は、CLB212、BRAM213、IOL215またはDSP214のような、隣接するプログラマブルロジックブロックへ、またはそれらからの接続も含む。
【0042】
コンフィギュラブルロジック要素は、プログラマブル相互接続ブロック(PIB211)と、ユーザロジックを実行するようにプログラムされた、隣接するコンフィギュラブルロジックブロック(CLB212)とを含み得る。メモリ要素は、1つまたはより多くのプログラマブル相互接続ブロックに加えて、ランダムアクセスメモリ(BRAM213)を含み得る。典型的に、プログラマブルロジックブロックについてのこれらの相互接続ブロックの数は、プログラマブルロジックブロックの高さに依存する。図示された実施形態においては、CLB212は、1つのプログラマブル相互接続ブロック(PIB211)と同じ高さを有し、BRAM213は、5つのプログラマブル相互接続ブロック(PIB211)と同じ高さを有するが、他の数(たとえば、2、3、または4)も用いられ得る。デジタル信号処理要素は、適当な数の隣接するプログラマブル相互接続ブロック(PIB211)に加えて、DSPブロック(DSP214)を含み得る。入出力要素は、たとえば、プログラマブル相互接続ブロック(PIB211)の1つのインスタンスに隣接する、入出力ロジックブロック(IOL215)の2つのインスタンスを含み得る。配列201内の入出力ロジックブロック(IOL215)は、配列204内のものを物理的にミラーリングする。当業者には明らかなように、たとえば、各入出力ロジックブロック(IOL215)に接続される実際のI/Oパッドは、典型的に、その入出力ロジックブロック(IOL215)の領域に限定されない。
【0043】
図示された実施形態においては、設定信号およびクロック信号が生成され、(
図2においてハッチングで示される)制御ロジック領域によってダイを通って分配される。ダイの中央部付近の制御生成ブロック205は、設定信号、クロック信号、および他の制御信号を生成する。制御生成ブロック205から延在する水平領域209は、ダイの幅にわたって、これらの制御信号を分配する。コラム状領域210は、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックのコラムの配列201,202,203,204を通して垂直方向に、クロック信号および設定信号を分配する。配列201,202,203,204の各々は、プログラマブル相互接続ブロック(PIB211)に左側に隣接するとともに、他のプログラマブル相互接続ブロック(PIB211)に右側に隣接する共有コラム状領域210を含む。この共有コラム状領域は、これらのプログラマブル相互接続ブロックを制御するとともに配列内のプログラマブルロジックブロックへさらに分配するためのこれらのプログラマブル相互接続ブロックへ、設定信号、クロック信号、および他の制御信号を分配する。
【0044】
図2は、例示的なFPGAアーキテクチャのみを図示することを意図したものであることに注意すべきである。たとえば、コラム内のプログラマブルロジックブロックまたはプログラマブル相互接続ブロックの数、コラムの相対幅、配列の数、コラムに含まれるプログラマブルロジックブロックまたはプログラマブル相互接続ブロックのタイプ、ならびに、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックの相対サイズは、純粋に例である。
【0045】
図3は、本発明のさまざまな実施形態に従う、プログラマブル相互接続ブロックおよびプログラマブルロジックブロックの配列を示すブロック図である。配列は、プログラマブルロジックブロック301,302,303,304,305,306〜307のコラムと、プログラマブル相互接続ブロック311,312,313,314,315,316〜317のコラムと、プログラマブル相互接続ブロック321,322,323,324,325,326〜327の他のコラムと、プログラマブルロジックブロック331,332,333,334,335,336〜337の他のコラムとを含み、これらのコラムは配列内において、左から右へ記載した順序で含まれる。
【0046】
プログラマブル相互接続ブロック323およびプログラマブルロジックブロック333は、互いにおよびプログラマブル相互接続ブロック312,313,314,321,322,324,325との相互接続の詳細を示すように拡大される。拡大されていないプログラマブルロジックブロック301,302,303,304,305,306〜307,330,332,333,334,335,336〜337およびプログラマブル相互接続ブロック311,312,313,314,315,316〜317,321,322,323,324,325,326〜327は、同様の接続を有することが理解されるであろう。
【0047】
プログラマブルロジックブロック333は、入力ポート340と出力ポート342とを有する。特定の実施形態においては、プログラマブルロジックブロック333は、任意的な入力ポート344および任意的な出力ポート346を有してもよい。プログラマブルロジックブロック333は、入力ポート340(および任意的な入力ポート344)の値から、出力ポート342(および任意的な出力ポート346)の値を生成する。プログラマブルロジックブロック333は、プログラマブルロジックブロック333内の記憶された状態のような追加の値から出力ポート342(および任意的な出力ポート346)の値を生成するとともに、プログラマブルロジックブロック332または334からの値を、プログラマブルロジックブロック331,332,333,334,335,336,337のチェインにわたって実現される加算器のために搬送し得ることが理解されるであろう。
【0048】
プログラマブル相互接続ブロック323の汎用相互接続マルチプレクサ348は、その値を、プログラマブルロジックブロック333の出力ポート342から、プログラマブル相互接続ブロック312,313,314,321,322,324,325へ選択的にルーティングし、プログラマブル相互接続ブロック312,313,314,321,322,324,325は、その値を、出力ポート342からそれぞれのプログラマブルロジックブロック302,303,304,331,332,334,335の入力ポートへ選択的に転送する。それに応じて、プログラマブル相互接続ブロック312,313,314,321,322,324,325は、その値を、それぞれのプログラマブルロジックブロック302,303,304,331,332,334,335の出力ポートから、プログラマブル相互接続ブロック323へ選択的に転送し、プログラマブル相互接続ブロック323は、これらの値を汎用相互接続マルチプレクサ348および入力マルチプレクサ350を介して、入力ポート340へ選択的にルーティングする。したがって、プログラマブル相互接続ブロック311,312,313,314,315,316〜317,321,322,323,324,325,326〜327は、プログラマブルロジックポート301,302,303,304,305,306〜307,331,332,333,334,335,336〜337の出力ポートを、これらのプログラマブルロジックブロックの特定の入力ポートへ選択的に結合する。
【0049】
入力マルチプレクサ350は、プログラマブルロジックブロック333の入力ポート340へルーティングされた信号値を選択する。入力マルチプレクサ350は、汎用相互接続マルチプレクサ348およびプログラマブル相互接続ブロック312,313,314,321,322,324,325を介して、入力ポート340を、出力ポート342からのライン352上のフィードバック、または共有コラム356の信号ライン354、またはプログラマブルロジックブロック302,303,304,331,332,334,335へ選択的に結合する。共有コラム356からの信号ライン354は、クロック信号、リセット信号、および他の制御信号を含む。一実施形態においては、共有コラム356は、
図2に示された配列のうちの1つの共有コラム210のうちの1つに対応する。
【0050】
一実施形態においては、設定メモリセルの値は、マルチプレクサ348,350を通る信号のルーティングを制御する。したがって、設定メモリの内容は、共有コラム356と、プログラマブルロジックブロック301,302,303,304,305,306〜307,331,332,333,334,335,336〜227の入力ポートおよび出力ポートとの間の相互接続を決定する。
【0051】
一実施形態においては、プログラマブルロジックブロック333は、プログラマブルロジックブロック333の動作を構成する、追加の設定メモリを含む。一例においては、プログラマブルロジックブロック333は、コンフィギュラブルルックアップテーブルと、バイパスを有するレジスタとを含む。コンフィギュラブルルックアップテーブルは、入力ポート340(および任意的な入力ポート344)からの値の、任意の論理関数を実現し得る。レジスタは、コンフィギュラブルルックアップテーブルからの結果、または、コンフィギュラブルルックアップテーブルからの前の結果を記憶するレジスタからの結果を用いて、出力ポート342(および任意のポート346)を直接的に駆動するように構成され得る。
【0052】
したがって、プログラマブルロジックブロック301,302,303,304,305,306〜307,331,332,333,334,335,336〜337は、ユーザ設計の論理機械および状態機械を実現するように構成され、プログラマブル相互接続ブロック311,312,313,314,315,316〜317,321,322,323,324,325,326〜327は、ユーザ設計の論理機械および状態機械を適切に相互接続するように構成され得る。
【0053】
特定の実施形態においては、プログラマブルロジックブロック333は、隣接配列内の他のプログラマブルロジックブロック(図示せず)に隣接する。プログラマブルロジックブロック333は、プログラマブルロジックブロック333の一側面に入力ポート340および出力ポート342を有するとともに、反対の側面に入力ポート344および出力ポート346を有する。ポート340,342はプログラマブル相互接続ブロック323に結合されるが、任意的なポート344,346は、隣接配列内の隣接するプログラマブルロジックブロックに結合される。プログラマブルロジックブロック333と隣接配列内の隣接するプログラマブルロジックブロックとの間の直接接続は、すべてのプログラマブル相互接続ブロックをバイパスするこれら2つのプログラマブルロジックブロック間における高速通信を可能とする。プログラマブルロジックブロック333および隣接配列内の隣接するプログラマブルロジックブロックは、一実施形態においては互いにミラーイメージであるが、任意的な出力ポート346と隣接するプログラマブルロジックブロックの対応する入力ポートとの間の交差接続(crossover connection)および隣接するプログラマブルロジックブロックの入力ポートと任意的な入力ポート344との間の接続は、双方のミラーイメージから排除される。
【0054】
本発明は、さまざまなプログラマブル集積回路アーキテクチャに適用可能であると考えられる。本発明は、フィールドプログラマブルゲートアレイのようなプログラマブルロジックデバイスを含む例示的な実施形態を用いて示されたが、本発明はそれには限定されない。本発明の他の局面および実施形態は、ここに開示された発明の明細書および実施形態の考慮から、当業者には明らかであろう。以下の特許請求の範囲によって示される発明の真の範囲および精神によって、明細書および図示された実施形態は単なる例示であるとみなされることが意図される。