(57)【要約】  ミラーリングされた相互接続構造を有するプログラマブル集積回路（ＩＣ）は、水平方向に配列される複数の配列（１０２，１０４）を含む。各配列は、第１のロジックコラム（１０６）と、第１の相互接続コラム（１０８）と、第２の相互接続コラム（１１０）と、第２のロジックコラム（１１２）とを含み、それらは配列内にこの順序で水平方向に配列される。各相互接続コラムは、プログラマブル相互接続ブロック（ＰＩＢ１３０−１４４，１８８−１９６，１９９）を含み、第１および第２のロジックコラムの各々は、プログラマブルロジックブロック（１１４−１２８，１６４−１７１）を含む。各プログラマブル相互接続ブロックは、一側面に複数の入力ポート（１７４）および出力ポート（１７２）を提供する。各プログラマブルロジックブロックは、一側面に第２の入力ポート（１５６）および出力ポート（１５８）を提供する。第１の相互接続コラム（１０８）におけるプログラマブル相互接続ブロックの各々の第１のポートおよび一側面は、第２の相互接続コラム（１１０）における各プログラマブル相互接続ブロックの第１のポートおよび一側面を物理的にミラーリングする。第１の相互接続コラム（１０８）におけるプログラマブル相互接続ブロックの第１のポート（１７２，１７４）は、第１のロジックコラムにおけるプログラマブルロジックブロックの第２のポート（１５６，１５８，１８２，１８４，１８６，１９０，１９４）に結合される。第２の相互接続コラム（１１０）におけるプログラマブル相互接続ブロックの第１のポートは、第２のロジックコラムにおけるプログラマブルロジックブロックの第２のポート（１６０−１６２，１７２−１８０，１９８）に結合される。
2013520074.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブル集積回路（ＩＣ）であって、
前記プログラマブルＩＣ内において水平方向に配列された複数の配列を備え、
各配列は、第１のロジックコラムと、第１の相互接続コラムと、第２の相互接続コラムと、第２のロジックコラムとを含み、それらは前記配列内にその順序で水平方向に配列され、
前記第１および第２の相互接続コラムの各々は、前記相互接続コラムにおいて垂直方向に配列された複数のプログラマブル相互接続ブロックを含み、
前記第１および第２のロジックコラムの各々は、前記ロジックコラムにおいて垂直方向に配列された複数のプログラマブルロジックブロックを含み、
前記プログラマブル相互接続ブロックの各々は、前記プログラマブル相互接続ブロックの一側面に複数の第１の入力ポートおよび出力ポートを提供し、
前記プログラマブルロジックブロックの各々は、前記プログラマブルロジックブロックの一側面に複数の第２の入力ポートおよび出力ポートを提供し、
各配列の前記第１の相互接続コラムにおける前記プログラマブル相互接続ブロックの各々の前記第１のポートおよび前記一側面は、前記配列の前記第２の相互接続コラムにおける各プログラマブル相互接続ブロックの前記第１のポートおよび前記一側面を物理的にミラーリングし、
各配列の前記第１の相互接続コラムにおける前記プログラマブル相互接続ブロックの前記第１のポートは、前記配列の前記第１のロジックコラムにおける前記プログラマブルロジックブロックの前記第２のポートに結合され、
各配列の前記第２の相互接続コラムにおける前記プログラマブル相互接続ブロックの前記第１のポートは、前記配列の前記第２のロジックコラムにおける前記プログラマブルロジックブロックの前記第２のポートに結合される、プログラマブルＩＣ。
【請求項２】
前記配列の前記相互接続コラムにおける前記プログラマブル相互接続ブロックのうちの各ブロックは、前記配列の前記ロジックコラムにおける前記プログラマブルロジックブロックの前記第２の入力ポートを、前記プログラマブル相互接続ブロックのうちの１つの第１の出力ポートを介するとともに、少なくとも４つの前記プログラマブル相互接続ブロックの前記第１の入力ポートを介して、前記プログラマブルロジックブロックの第２の出力ポートに選択的に結合するために、前記少なくとも４つの前記プログラマブル相互接続ブロックに結合される、請求項１に記載のプログラマブルＩＣ。
【請求項３】
各配列は、前記第１のロジックコラムと、前記第１の相互接続コラムと、前記第２の相互接続コラムと、前記第２のロジックコラムを含み、それらは前記配列内に左から右にその順序で水平方向に配置され、
前記プログラマブルロジックブロックの前記一側面は、各第１のロジックコラムにおける前記プログラマブルロジックブロックについての右側であるとともに、各第２のロジックコラムにおける前記プログラマブルロジックブロックについての左側であり、
前記プログラマブル相互接続ブロックの前記一側面は、各第１の相互接続コラムにおける前記プログラマブル相互接続ブロックについての左側であるとともに、各第２の相互接続コラムにおける前記プログラマブル相互接続ブロックについての右側である、請求項１または２に記載のプログラマブルＩＣ。
【請求項４】
各配列の前記第１のロジックコラムにおける前記プログラマブルロジックブロックの右側は、前記配列の前記第１の相互接続コラムにおける前記プログラマブル相互接続ブロックの左側に隣接し、
各配列の前記第２の相互接続コラムにおける前記プログラマブル相互接続ブロックの右側は、前記配列の前記第２のロジックコラムにおける前記プログラマブルロジックブロックの左側に隣接する、請求項３に記載のプログラマブルＩＣ。
【請求項５】
各配列の前記第１の相互接続コラムにおける前記プログラマブル相互接続ブロックの各々は、各配列の前記第２の相互接続コラムにおける前記プログラマブル相互接続ブロックの各々を機能的にミラーリングし、
各配列の各ロジックコラムにおける前記プログラマブルロジックブロックは、複数のタイプのうちの同じタイプを有し、
各々のタイプについて、各配列の前記第１のロジックコラムにおける当該タイプを有するプログラマブルロジックブロックの各々は、各配列の前記第２のロジックコラムにおける当該タイプを有する前記プログラマブルロジックブロックの各々を物理的にミラーリングする、請求項１〜４のいずれか１項に記載のプログラマブルＩＣ。
【請求項６】
前記配列の各々は、前記第１の相互接続コラムと前記第２の相互接続コラムとの間であって、かつそれらに隣接して水平方向に配列された共有コラムをさらに含み、
前記第１および第２の相互接続コラムにおける前記プログラマブル相互接続ブロックの各々は、前記共有コラムの複数のクロックラインおよび制御ラインの各々を、前記プログラマブル相互接続ブロックの前記第１の出力ポートが結合される前記第２の入力ポートの少なくとも１つへ選択的に結合する、請求項１〜５のいずれか１項に記載のプログラマブルＩＣ。
【請求項７】
前記プログラマブルＩＣにおいて、前記配列の第２の配列の前記第１のロジックコラムに隣接する前記配列の第１の配列の前記第２のロジックコラムについて、
前記第２および第１のロジックコラムにおける各プログラマブルロジックブロックは、前記プログラマブルロジックブロックの前記一側面と反対の他の側面に複数の第３のポートを有し、
前記第２および第１のロジックコラムにおける前記プログラマブルロジックブロックは、前記第３のポートを介して結合される、請求項１〜６のいずれか１項に記載のプログラマブルＩＣ。
【請求項８】
各配列の前記第１のロジックブロックにおける前記プログラマブルロジックブロックの前記一側面は、前記配列の前記第１の相互接続コラムにおける前記プログラマブル相互接続ブロックの前記一側面に隣接し、
各配列の前記第２のロジックコラムにおける前記プログラマブルロジックブロックの前記一側面は、前記配列の前記第２の相互接続コラムにおける前記プログラマブル相互接続ブロックの前記一側面に隣接する、請求項１〜７のいずれか１項に記載のプログラマブルＩＣ。
【請求項９】
各配列の各ロジックコラムにおける前記プログラマブルロジックブロックは、複数のタイプのうちの同じタイプを有する、請求項１〜８のいずれか１項に記載のプログラマブルＩＣ。
【請求項１０】
各配列の前記第１のロジックコラムにおける前記プログラマブルロジックブロックの第１の複数のグループは、前記配列の前記第１の相互接続コラムにおける前記プログラマブル相互接続ブロックの第２の複数のグループに対応し、
前記第２のロジックコラムにおける前記プログラマブルロジックブロックの第３の複数のグループは、前記配列の前記第２の相互接続コラムにおける前記プログラマブル相互接続ブロックの第４の複数のグループに対応し、
前記第１のグループの各々における第１の数の前記プログラマブルロジックブロック、および前記第２のグループの各々における第２の数の前記プログラマブル相互接続ブロックについて、前記第１および第２の数は、それぞれ、２と１、１と１、１と２、１と３、１と４、または１と５であり、
前記第３のグループの各々における第３の数の前記プログラマブルロジックブロック、および前記第４のグループの各々における第４の数のプログラマブル相互接続ブロックについて、前記第３および第４の数は、それぞれ、２と１、１と１、１と２、１と３、１と４、または１と５である、請求項９に記載のプログラマブルＩＣ。
【請求項１１】
前記タイプの各々について、前記タイプを有しかつ前記配列の前記第１のロジックコラム内にある前記プログラマブルロジックブロックの各々は、前記タイプを有しかつ前記配列の前記第２のロジックコラム内にある前記プログラマブルロジックブロックの各々を、物理的にミラーリングする、請求項９に記載のプログラマブルＩＣ。
【請求項１２】
前記配列のうちの１つの前記第１のロジックコラムにおける前記プログラマブルロジックブロックの各々は、前記配列のうちの１つの前記第２のロジックコラムにおける前記プログラマブルロジックブロックの各々を、物理的にミラーリングする、請求項１〜１１のいずれか１項に記載のプログラマブルＩＣ。
【請求項１３】
各配列の前記第１のロジックコラムにおける各プログラマブルロジックブロックの前記第２の入力ポートの各々は、前記配列の前記第２のロジックコラムにおける少なくとも３つの前記プログラマブルロジックブロックの前記第２の出力ポートの少なくとも１つに選択的に結合され、
前記第２の入力ポートは、前記配列の前記相互接続コラムの領域全体の範囲内であり、かつ前記配列の前記ロジックコラムの領域に入ることのない、少なくとも３つのプログラマブルロジックブロックの、少なくとも１つの前記第２の出力ポートに選択的に結合される、請求項１に記載のプログラマブルＩＣ。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、概して集積回路に関し、より特定的にはプログラマブル集積回路に関する。
【背景技術】
【０００２】
背景
プログラマブルロジックデバイス（programmable logic device：ＰＬＤ）は、特定の論理関数を実行するようにプログラムされ得る、周知のタイプの集積回路である。ＰＬＤの１つのタイプであるフィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）は、典型的にプログラマブルタイルのアレイを含む。これらのプログラマブルタイルは、たとえば、入出力ブロック（ＩＯＢ）、コンフィギュラブルロジックブロック（configurable logic block：ＣＬＢ）、専用ランダムアクセスメモリブロック（ＢＲＡＭ）、乗算器、デジタル信号処理ブロック（ＤＳＰ）、プロセッサ、クロックマネージャ、遅延ロックループ（ＤＬＬ）などを含み得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
各プログラマブルタイルは、典型的に、プログラマブル相互接続およびプログラマブルロジックの双方を含む。プログラマブル相互接続は、典型的に、プログラム可能な相互接続点（programmable interconnect point：ＰＩＰ）によって相互接続された、可変長さの多くの相互接続ラインを含む。プログラマブルロジックは、たとえば、関数生成器、レジスタ、算術論理などを含み得るプログラム可能な要素を用いて、ユーザ設計のロジックを実現する。
【０００４】
プログラマブル相互接続およびプログラマブルロジックは、典型的に、どのようにプログラム可能な要素が構成されるかを規定する内部設定メモリセル内に、一連の設定データを読み込ませることによってプログラムされる。設定データは、メモリ（たとえば、外部ＰＲＯＭ）から読み出されるか、または、外部装置によってＦＰＧＡ内に書込まれ得る。そして、個々のメモリセルの集合状態が、ＦＰＧＡの機能を決定する。
【０００５】
プログラマブル集積回路において実現され得るユーザ設計のタイプを増加するために、プログラマブル集積回路を改善する一般的なニーズがある。
【０００６】
本発明は、１つまたはより多くの上記の問題に対処し得る。
【課題を解決するための手段】
【０００７】
概要
プログラマブル集積回路（ＩＣ）は、プログラマブルＩＣ内において水平方向に配列された複数の配列を含む。各配列は、第１のロジックコラムと、第１の相互接続コラムと、第２の相互接続コラムと、第２のロジックコラムとを含み、それらは配列内にその順序で水平方向に配列される。第１および第２の相互接続コラムの各々は、当該相互接続コラムにおいて垂直方向に配列された複数のプログラマブル相互接続ブロックを含む。第１および第２のロジックコラムの各々は、当該ロジックコラムにおいて垂直方向に配列された複数のプログラマブルロジックブロックを含む。
【０００８】
プログラマブル相互接続ブロックの各々は、プログラマブル相互接続ブロックの一側面に複数の第１の入力ポートおよび出力ポートを提供する。プログラマブルロジックブロックの各々は、プログラマブルロジックブロックの一側面に複数の第２の入力ポートおよび出力ポートを提供する。各配列の第１の相互接続コラムにおけるプログラマブル相互接続ブロックの各々の第１のポートおよび一側面は、配列の第２の相互接続コラムにおける各プログラマブル相互接続ブロックの第１のポートおよび一側面を物理的にミラーリングする。各配列の第１の相互接続コラムにおけるプログラマブル相互接続ブロックの第１のポートは、配列の第１のロジックコラムにおけるプログラマブルロジックブロックの第２のポートに結合される。各配列の第２の相互接続コラムにおけるプログラマブル相互接続ブロックの第１のポートは、配列の第２のロジックコラムにおけるプログラマブルロジックブロックの第２のポートに結合される。
【０００９】
いくつかの実施形態においては、配列の相互接続コラムにおけるプログラマブル相互接続ブロックのうちの各ブロックは、配列のロジックコラムにおけるプログラマブルロジックブロックの第２の入力ポートを、プログラマブル相互接続ブロックのうちの１つの第１の出力ポートを介するとともに、少なくとも４つのプログラマブル相互接続ブロックの第１の入力ポートを介して、プログラマブルロジックブロックの第２の出力ポートに選択的に結合するために、少なくとも４つのプログラマブル相互接続ブロックに結合される。
【００１０】
いくつかの実施形態においては、各配列は、第１のロジックコラムと、第１の相互接続コラムと、第２の相互接続コラムと、第２のロジックコラムを含み、それらは配列内に左から右にその順序で水平方向に配置される。プログラマブルロジックブロックの一側面は、各第１のロジックコラムにおけるプログラマブルロジックブロックについての右側であるとともに、各第２のロジックコラムにおけるプログラマブルロジックブロックについての左側である。プログラマブル相互接続ブロックの一側面は各第１の相互接続コラムにおけるプログラマブル相互接続ブロックについての左側であるとともに、各第２の相互接続コラムにおけるプログラマブル相互接続ブロックについての右側である。
【００１１】
いくつかの実施形態においては、各配列の第１のロジックコラムにおけるプログラマブルロジックブロックの右側は、配列の第１の相互接続コラムにおけるプログラマブル相互接続ブロックの左側に隣接し、各配列の第２の相互接続コラムにおけるプログラマブル相互接続ブロックの右側は、配列の第２のロジックコラムにおけるプログラマブルロジックブロックの左側に隣接する。
【００１２】
いくつかの実施形態においては、各配列の第１の相互接続コラムにおけるプログラマブル相互接続ブロックの各々は、各配列の第２の相互接続コラムにおけるプログラマブル相互接続ブロックの各々を機能的にミラーリングする。各配列の各ロジックコラムにおけるプログラマブルロジックブロックは、複数のタイプのうちの同じタイプを有する。各々のタイプについて、各配列の第１のロジックコラムにおける当該タイプを有するプログラマブルロジックブロックの各々は、各配列の第２のロジックコラムにおける当該タイプを有するプログラマブルロジックブロックの各々を物理的にミラーリングする。
【００１３】
いくつかの実施形態においては、配列の各々は、第１の相互接続コラムと第２の相互接続コラムとの間であって、かつそれらに隣接して水平方向に配列された共有コラムをさらに含む。第１および第２の相互接続コラムにおけるプログラマブル相互接続ブロックの各々は、共有コラムの複数のクロックラインおよび制御ラインの各々を、プログラマブル相互接続ブロックの第１の出力ポートが結合される第２の入力ポートの少なくとも１つへ選択的に結合する。
【００１４】
いくつかの実施形態においては、プログラマブルＩＣにおいて、配列の第２の配列の第１のロジックコラムに隣接する配列の第１の配列の第２のロジックコラムについて、第２および第１のロジックコラムにおける各プログラマブルロジックブロックはプログラマブルロジックブロックの当該一側面と反対の他の側面に複数の第３のポートを有し、第２および第１のロジックコラムにおけるプログラマブルロジックブロックは第３のポートを介して結合される。
【００１５】
いくつかの実施形態においては、各配列の第１のロジックブロックにおけるプログラマブルロジックブロックの一側面は、配列の第１の相互接続コラムにおけるプログラマブル相互接続ブロックの一側面に隣接し、各配列の第２のロジックコラムにおけるプログラマブルロジックブロックの一側面は、配列の第２の相互接続コラムにおけるプログラマブル相互接続ブロックの一側面に隣接する。
【００１６】
いくつかの実施形態においては、各配列の各ロジックコラムにおけるプログラマブルロジックブロックは、複数のタイプのうちの同じタイプを有する。いくつかのそのような実施形態においては、各配列の第１のロジックコラムにおけるプログラマブルロジックブロックの第１の複数のグループは、配列の第１の相互接続コラムにおけるプログラマブル相互接続ブロックの第２の複数のグループに対応する。第２のロジックコラムにおけるプログラマブルロジックブロックの第３の複数のグループは、配列の第２の相互接続コラムにおけるプログラマブル相互接続ブロックの第４の複数のグループに対応する。第１のグループの各々における第１の数のプログラマブルロジックブロック、および第２のグループの各々における第２の数のプログラマブル相互接続ブロックについて、第１および第２の数は、それぞれ、２と１、１と１、１と２、１と３、１と４、または１と５である。第３のグループの各々における第３の数のプログラマブルロジックブロック、および第４のグループの各々における第４の数のプログラマブル相互接続ブロックについて、第３および第４の数は、それぞれ、２と１、１と１、１と２、１と３、１と４、または１と５である。
【００１７】
いくつかの実施形態においては、タイプの各々について、当該タイプを有しかつ配列の第１のロジックコラム内にあるプログラマブルロジックブロックの各々は、当該タイプを有しかつ配列の第２のロジックコラム内にあるプログラマブルロジックブロックの各々を、物理的にミラーリングする。
【００１８】
いくつかの実施形態においては、配列のうちの１つの第１のロジックコラムにおけるプログラマブルロジックブロックの各々は、配列のうちの１つの第２のロジックコラムにおけるプログラマブルロジックブロックの各々を、物理的にミラーリングする。
【００１９】
いくつかの実施形態においては、各配列の第１のロジックコラムにおける各プログラマブルロジックブロックの第２の入力ポートの各々は、配列の第２のロジックコラムにおける少なくとも３つのプログラマブルロジックブロックの第２の出力ポートの少なくとも１つに選択的に結合される。第２の入力ポートは、配列の相互接続コラムの領域全体の範囲内であり、かつ配列のロジックコラムの領域に入ることのない、少なくとも３つのプログラマブルロジックブロックの、少なくとも１つの第２の出力ポートに選択的に結合される。
【００２０】
さまざまな他の実施形態が、以下の詳細な説明および特許請求の範囲に記載されていることが明らかであろう。
【００２１】
本発明のさまざまな局面および利点は、以下の詳細な説明の検討、および図面の参照によって明らかになるであろう。
【図面の簡単な説明】
【００２２】
【図１】例示的なプログラマブル集積回路のブロック図である。
【図２】例示的なプログラマブルロジックデバイスのレイアウト図である。
【図３】プログラマブル相互接続ブロックおよびプログラマブルロジックブロックの例示的な配列を示すブロック図である。
【発明を実施するための形態】
【００２３】
詳細な説明
図１は、本発明のさまざまな実施形態に従うプログラマブル集積回路のブロック図である。プログラマブル集積回路は、プログラマブルロジックリソースおよびプログラマブル相互接続リソースを含む、配列１０２〜１０４を含む。配列１０２〜１０４は、プログラマブルロジックデバイス内において水平方向に配列される。当該プログラマブル集積回路の単純な回転によって、配列１０２〜１０４は垂直方向に配列されることが理解されるであろう。一実施形態においては、図１のプログラマブル集積回路は、プログラマブルロジックデバイスである。しかしながら、本図は、他のタイプのプログラマブルＩＣにも適用され得ることが理解されるであろう。
【００２４】
一実施形態においては、配列１０２は、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックの４つのコラム１０６，１０８，１１０，１１２を含む。４つのコラム１０６，１０８，１１０，１１２は、配列１０２内において、左から右へその順序で水平方向に配列される。ロジックコラム１０６，１１２は、プログラマブルロジックブロック１１４，１１６，１１８〜１２０，１２２，１２４，１２６〜１２８を含む。プログラマブルロジックブロック１１４，１１６，１１８〜１２０は、ロジックコラム１０６内に垂直方向に配列され、プログラマブルロジックブロック１２２，１２４，１２６〜１２８は、ロジックコラム１１２内に垂直方向に配列される。相互接続コラム１０８，１１０は、プログラマブル相互接続ブロック１３０，１３２，１３４〜１３６，１３８，１４０，１４２〜１４４を含む。プログラマブル相互接続ブロック１３０，１３２，１３４〜１３６は、相互接続コラム１０８内に垂直方向に配列され、プログラマブル相互接続ブロック１３８，１４０，１４２〜１４４は、相互接続コラム１１０内に垂直方向に配列される。
【００２５】
他の実施形態においては、配列１０２は、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックの３つのコラム１０６，１４６，１１２を含む。３つのコラム１０６，１４６，１１２は、配列１０２内において、左から右へその順序で水平方向に配列される。相互接続コラム１４６は、プログラマブル１４８，１５０，１５２〜１５４の垂直配列を含む。プログラマブル相互接続ブロック１４８は、プログラマブル相互接続ブロック１３０，１３８の２つのサブブロックを含み、それらは、プログラマブル相互接続ブロック１４８内に左から右へその順序で水平方向に配列される。
【００２６】
同様に、プログラマブル相互接続ブロック１５０はブロック１３２，１４０を含み、プログラマブル相互接続ブロック１５２はブロック１３４，１４２を含み、プログラマブル相互接続ブロック１５４はブロック１３６，１４４を含む。
【００２７】
一実施形態においては、ロジックコラム１０６内のプログラマブルロジックブロック１１４，１１６，１１８〜１２０は、ロジックコラム１１２内のプログラマブルロジックブロック１２２，１２４，１２６〜１２８と同じタイプであり、ロジックコラム１１２内のプログラマブルロジックブロック１２２，１２４，１２６〜１２８の各々は、ロジックコラム１０６内のプログラマブルロジックブロック１１４，１１６，１１８〜１２０の各々の、物理的なミラーイメージである。この実施形態においては、プログラマブル相互接続ブロック１３０，１３２，１３４〜１３６は各々、プログラマブル相互接続ブロック１３８，１４０，１４２〜１４４を機能的にミラーリングするが、しばしば完全な物理的ミラーリングではない。
【００２８】
他の実施形態においては、ロジックコラム１０６内のプログラマブルロジックブロック１１４，１１６，１１８〜１２０は、ある１つのタイプであり、ロジックコラム１１２内のプログラマブルロジックブロック１２２，１２４６，１２６〜１２８は、他のタイプである。この実施形態においては、プログラマブルロジックブロック１１４の右側面に沿ったポート１５６，１５８は、プログラマブルロジックブロック１２２の左側面に沿ったポート１６０，１６２を物理的にミラーリングするが、プログラマブルロジックブロック１１４，１２２は、これらのブロック１１４，１２２が異なるタイプであるので、互いに物理的にはミラーリングしていない。同様に、ロジックコラム１０６内のプログラマブルロジックブロック１１４，１１６，１１８〜１２０の各々の右側面は、ロジックコラム１１２内のプログラマブルロジックブロック１２２，１２４，１２６〜１２８の各々の左側面を物理的にミラーリングする。
【００２９】
配列１０２〜１０４のいくつかは、すべて同じタイプのプログラマブルロジックブロックを含み得るが、一方、配列１０２〜１０４の他の部分は、複数のタイプのプログラマブルロジックブロックを含み得ることが理解されるであろう。一例においては、配列１０２におけるプログラマブルロジックブロック１１４，１１６，１１８〜１２０，１２２，１２４，１２６〜１２８はすべて同じタイプであるが、配列１０４においては、プログラマブルロジックブロック１６４，１６５，１６６〜１６７は、プログラマブルロジックブロック１６８，１６９，１７０〜１７１とは異なるタイプである。
【００３０】
特定の実施形態においては、各プログラマブルロジックブロックは、対応するプログラマブル相互接続ブロックに接続される。たとえば、プログラマブルロジックブロック１１４の入力ポート１５６はプログラマブル相互接続ブロック１３０の出力ポート１７２に接続され、プログラマブルロジックブロック１１４の出力ポート１５８はプログラマブル相互接続ブロック１３０の入力ポート１７４に接続される。
【００３１】
各プログラマブルロジックブロックの入力ポートは、プログラマブル相互接続ブロックの特定の１つを介して、多くのプログラマブルロジックブロックの出力ポートに結合される。たとえば、プログラマブルロジックブロック１２４の入力ポート１７６は、プログラマブル相互接続ブロック１４０を介してプログラマブルロジックブロック１２４の出力ポート１７８に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１３８を介して、プログラマブルロジックブロック１２２の出力ポート１６２に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１４２を介して、プログラマブルロジックブロック１２６の出力ポート１８０に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１３０を介して、プログラマブルロジックブロック１１４の出力ポート１５８に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１３２を介して、プログラマブルロジックブロック１１６の出力ポート１８２に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１３４を介して、プログラマブルロジックブロック１１８の出力ポート１８４に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１８８を介して、プログラマブルロジックブロック１６４の出力ポート１８６に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１９２を介して、プログラマブルロジックブロック１６５の出力ポート１９０に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１９６を介して、プログラマブルロジックブロック１６６の出力ポート１９４に結合され、入力ポート１７６はプログラマブル相互接続ブロック１４０，１９９を介して、プログラマブルロジックブロック１６９の出力ポート１９８に結合される。要約すると、プログラマブル相互接続ブロックのうちの特定のものは、プログラマブルロジックブロック１２４の入力ポート１７６を、プログラマブルロジックブロック１２４，１２２，１２６，１１４，１１６，１１８，１６４，１６５，１６６，１６９の出力ポートに結合する。プログラマブル相互接続ブロックは、同様に、他のプログラマブルロジックブロックの入力ポートを、多くの他のプログラマブルロジックブロックの出力ポートに結合する。
【００３２】
したがって、各プログラマブル相互接続ブロックは、多くのプログラマブル相互接続ブロックに接続されて、各プログラマブルロジックブロックの入力ポートが、他の多くのプログラマブルロジックブロックの出力ポートに接続されるようにする。たとえば、プログラマブル相互接続ブロック１４０は、プログラマブル相互接続ブロック１３８，１４２，１３０，１３２，１３４，１８８，１９２，１９６，１９９に接続されて、プログラマブルロジックブロック１２４の入力ポート１７６が、プログラマブルロジックブロック１２２，１２６，１１４，１１６，１１８，１６４，１６５，１６６，１６９の出力ポートに接続されるようにする。
【００３３】
プログラマブルロジックブロック１１４，１１６，１１８，１２０，１２２，１２４，１２６，１２８，１６４，１６５，１６６，１６７，１６８，１６９，１７０，１７１の図示されたアレイにおいては、想定する配列１０２，１０４は、プログラマブル集積回路内で隣接し、例示的なプログラマブルロジックブロック１２４に、垂直に、水平に、および直交して隣接するプログラマブルロジックブロックは、プログラマブルロジックブロック１２２，１２６，１１６，１６５，１１４，１１８，１６４，１６６である。図示された実施形態においては、プログラマブル相互接続ブロックは、例示的なプログラマブルロジックブロック１２４を、これらの隣接するプログラマブルロジックブロック１２２，１２６，１１６，１６５，１１４，１１８，１６４，１６６のすべてに結合する。各プログラマブルロジックブロックを、垂直に、水平に、および直交して隣接するプログラマブルロジックブロックへ結合する接続は、単一の接続で示されている。プログラマブル相互接続ブロックは、例示的なプログラマブルロジックブロック１２４をプログラマブルロジックブロック１６９にも結合する。例示的なプログラマブルロジックブロック１２４と、離れたプログラマブルロジックブロック１６９との間の接続のような接続は、長い接続で示されている。長い接続は、さまざまな長さを有し得ることが理解されるであろう。
【００３４】
プログラマブルロジックデバイスの性能は、たとえば、プログラマブルロジックデバイスの配線遅延によって大幅に決定される。単一接続は一般的に長い接続よりも短いので、単一接続は、長い接続よりも少ない配線遅延を有する。プログラマブルロジックデバイス内に実現されるロジック設計の性能を増加するために、実現されたロジックデバイスは、ロジック設計の重要タイミング経路については、主に単一接続を利用するべきである。
【００３５】
本発明のさまざまな実施形態は、プログラマブルロジックデバイスのような、いくつかの単一接続の長さを短縮しかつ配線遅延を低減し、結果としてプログラマブルロジックデバイス内に実現されたロジック設計の性能を改善するプログラマブル集積回路を提供する。実現されたロジック設計の性能は、短くされた長さの単一接続がロジック設計の重要タイミング経路を実現するように優先的に利用される場合に、劇的に改善される。
【００３６】
プログラマブルロジックコラム１０６と１１２との間にプログラマブル相互接続コラム１４６を配置することは、例示的なプログラマブルロジックブロック１２４と、プログラマブルロジックブロック１１４，１１６，１１８との間の単一接続の長さを短縮する。これは、例示的なプログラマブルロジックブロック１２４の入力ポート１７６と、プログラマブルロジックブロック１１４，１１６，１１８のそれぞれの出力ポート１５８，１８２，１８４との間の接続が、プログラマブル相互接続コラム１４６の領域内に残っており、プログラマブルロジックコラム１０６，１１２の領域には入っていないからである。
【００３７】
例示的なプログラマブルロジックブロック１２４の出力ポート１７８を伴う対応する単一接続も、同様に短縮される。例示的なプログラマブルロジックブロック１２４とプログラマブルロジックブロック１１４，１１６，１１８との間の単一接続は、プログラマブルロジックコラム１０６，１１２を横断することから生じるいかなる配線遅延をも伴わずに、これらのプログラマブルロジックブロックを直接的に結合する。
【００３８】
図２は、本発明のさまざまな実施形態に従うプログラマブルロジックブロックのレイアウト図である。プログラマブルロジックデバイスは、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックのコラムの配列２０１，２０２，２０３，２０４を含む。
【００３９】
フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のような最新のプログラマブルロジックデバイスは、アレイ内にいくつかの異なるタイプのプログラマブルタイルを含み得る。たとえば、図２は、多くの数の異なるプログラマブルタイルを有するＦＰＧＡアーキテクチャ２００を示し、プログラマブルタイルは、コンフィギュラブルロジックブロック（ＣＬＢ２１２）、ランダムアクセスメモリ（ＢＲＡＭ２１３）、入出力ロジックブロック（ＩＯＬ２１５）、設定およびクロック生成ブロック２０５、デジタル信号処理ブロック（ＤＳＰ２１４）、専用入出力ブロック（Ｉ／Ｏ２０７）（たとえば、設定ポートおよびクロックポート）、および、デジタルクロックマネージャ、アナログ−デジタル変換器、システム監視ロジックなどのような他のプログラマブルロジック２０８を含む。いくつかのＦＰＧＡは、（図示しない）専用プロセッサブロックも含む。
【００４０】
プログラマブルタイルの多くは、配列２０１，２０２，２０３，２０４内に配置されるが、ダイの中央部は配列内にはなく、プログラマブルロジックおよび相互接続ブロック２０６を含み、それは、図示された実施形態においてはコンフィグラブルロジックブロック、プログラマブル相互接続ブロック、および入出力ブロックを含む。
【００４１】
いくつかのＦＰＧＡにおいては、各プログラマブル相互接続ブロック（ＰＩＢ２１１）は、近隣のプログラマブル相互接続ブロックおよびおそらくいくつかの離れたプログラマブル相互接続接続ブロックへの、またはそれらからの標準化された接続を有する。したがって、プログラマブル相互接続ブロックは一緒になって、図示されたＦＰＧＡについてのプログラマブル相互接続構造を実現する。プログラマブル相互接続ブロック（ＰＩＢ２１１）は、ＣＬＢ２１２、ＢＲＡＭ２１３、ＩＯＬ２１５またはＤＳＰ２１４のような、隣接するプログラマブルロジックブロックへ、またはそれらからの接続も含む。
【００４２】
コンフィギュラブルロジック要素は、プログラマブル相互接続ブロック（ＰＩＢ２１１）と、ユーザロジックを実行するようにプログラムされた、隣接するコンフィギュラブルロジックブロック（ＣＬＢ２１２）とを含み得る。メモリ要素は、１つまたはより多くのプログラマブル相互接続ブロックに加えて、ランダムアクセスメモリ（ＢＲＡＭ２１３）を含み得る。典型的に、プログラマブルロジックブロックについてのこれらの相互接続ブロックの数は、プログラマブルロジックブロックの高さに依存する。図示された実施形態においては、ＣＬＢ２１２は、１つのプログラマブル相互接続ブロック（ＰＩＢ２１１）と同じ高さを有し、ＢＲＡＭ２１３は、５つのプログラマブル相互接続ブロック（ＰＩＢ２１１）と同じ高さを有するが、他の数（たとえば、２、３、または４）も用いられ得る。デジタル信号処理要素は、適当な数の隣接するプログラマブル相互接続ブロック（ＰＩＢ２１１）に加えて、ＤＳＰブロック（ＤＳＰ２１４）を含み得る。入出力要素は、たとえば、プログラマブル相互接続ブロック（ＰＩＢ２１１）の１つのインスタンスに隣接する、入出力ロジックブロック（ＩＯＬ２１５）の２つのインスタンスを含み得る。配列２０１内の入出力ロジックブロック（ＩＯＬ２１５）は、配列２０４内のものを物理的にミラーリングする。当業者には明らかなように、たとえば、各入出力ロジックブロック（ＩＯＬ２１５）に接続される実際のＩ／Ｏパッドは、典型的に、その入出力ロジックブロック（ＩＯＬ２１５）の領域に限定されない。
【００４３】
図示された実施形態においては、設定信号およびクロック信号が生成され、（図２においてハッチングで示される）制御ロジック領域によってダイを通って分配される。ダイの中央部付近の制御生成ブロック２０５は、設定信号、クロック信号、および他の制御信号を生成する。制御生成ブロック２０５から延在する水平領域２０９は、ダイの幅にわたって、これらの制御信号を分配する。コラム状領域２１０は、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックのコラムの配列２０１，２０２，２０３，２０４を通して垂直方向に、クロック信号および設定信号を分配する。配列２０１，２０２，２０３，２０４の各々は、プログラマブル相互接続ブロック（ＰＩＢ２１１）に左側に隣接するとともに、他のプログラマブル相互接続ブロック（ＰＩＢ２１１）に右側に隣接する共有コラム状領域２１０を含む。この共有コラム状領域は、これらのプログラマブル相互接続ブロックを制御するとともに配列内のプログラマブルロジックブロックへさらに分配するためのこれらのプログラマブル相互接続ブロックへ、設定信号、クロック信号、および他の制御信号を分配する。
【００４４】
図２は、例示的なＦＰＧＡアーキテクチャのみを図示することを意図したものであることに注意すべきである。たとえば、コラム内のプログラマブルロジックブロックまたはプログラマブル相互接続ブロックの数、コラムの相対幅、配列の数、コラムに含まれるプログラマブルロジックブロックまたはプログラマブル相互接続ブロックのタイプ、ならびに、プログラマブルロジックブロックおよびプログラマブル相互接続ブロックの相対サイズは、純粋に例である。
【００４５】
図３は、本発明のさまざまな実施形態に従う、プログラマブル相互接続ブロックおよびプログラマブルロジックブロックの配列を示すブロック図である。配列は、プログラマブルロジックブロック３０１，３０２，３０３，３０４，３０５，３０６〜３０７のコラムと、プログラマブル相互接続ブロック３１１，３１２，３１３，３１４，３１５，３１６〜３１７のコラムと、プログラマブル相互接続ブロック３２１，３２２，３２３，３２４，３２５，３２６〜３２７の他のコラムと、プログラマブルロジックブロック３３１，３３２，３３３，３３４，３３５，３３６〜３３７の他のコラムとを含み、これらのコラムは配列内において、左から右へ記載した順序で含まれる。
【００４６】
プログラマブル相互接続ブロック３２３およびプログラマブルロジックブロック３３３は、互いにおよびプログラマブル相互接続ブロック３１２，３１３，３１４，３２１，３２２，３２４，３２５との相互接続の詳細を示すように拡大される。拡大されていないプログラマブルロジックブロック３０１，３０２，３０３，３０４，３０５，３０６〜３０７，３３０，３３２，３３３，３３４，３３５，３３６〜３３７およびプログラマブル相互接続ブロック３１１，３１２，３１３，３１４，３１５，３１６〜３１７，３２１，３２２，３２３，３２４，３２５，３２６〜３２７は、同様の接続を有することが理解されるであろう。
【００４７】
プログラマブルロジックブロック３３３は、入力ポート３４０と出力ポート３４２とを有する。特定の実施形態においては、プログラマブルロジックブロック３３３は、任意的な入力ポート３４４および任意的な出力ポート３４６を有してもよい。プログラマブルロジックブロック３３３は、入力ポート３４０（および任意的な入力ポート３４４）の値から、出力ポート３４２（および任意的な出力ポート３４６）の値を生成する。プログラマブルロジックブロック３３３は、プログラマブルロジックブロック３３３内の記憶された状態のような追加の値から出力ポート３４２（および任意的な出力ポート３４６）の値を生成するとともに、プログラマブルロジックブロック３３２または３３４からの値を、プログラマブルロジックブロック３３１，３３２，３３３，３３４，３３５，３３６，３３７のチェインにわたって実現される加算器のために搬送し得ることが理解されるであろう。
【００４８】
プログラマブル相互接続ブロック３２３の汎用相互接続マルチプレクサ３４８は、その値を、プログラマブルロジックブロック３３３の出力ポート３４２から、プログラマブル相互接続ブロック３１２，３１３，３１４，３２１，３２２，３２４，３２５へ選択的にルーティングし、プログラマブル相互接続ブロック３１２，３１３，３１４，３２１，３２２，３２４，３２５は、その値を、出力ポート３４２からそれぞれのプログラマブルロジックブロック３０２，３０３，３０４，３３１，３３２，３３４，３３５の入力ポートへ選択的に転送する。それに応じて、プログラマブル相互接続ブロック３１２，３１３，３１４，３２１，３２２，３２４，３２５は、その値を、それぞれのプログラマブルロジックブロック３０２，３０３，３０４，３３１，３３２，３３４，３３５の出力ポートから、プログラマブル相互接続ブロック３２３へ選択的に転送し、プログラマブル相互接続ブロック３２３は、これらの値を汎用相互接続マルチプレクサ３４８および入力マルチプレクサ３５０を介して、入力ポート３４０へ選択的にルーティングする。したがって、プログラマブル相互接続ブロック３１１，３１２，３１３，３１４，３１５，３１６〜３１７，３２１，３２２，３２３，３２４，３２５，３２６〜３２７は、プログラマブルロジックポート３０１，３０２，３０３，３０４，３０５，３０６〜３０７，３３１，３３２，３３３，３３４，３３５，３３６〜３３７の出力ポートを、これらのプログラマブルロジックブロックの特定の入力ポートへ選択的に結合する。
【００４９】
入力マルチプレクサ３５０は、プログラマブルロジックブロック３３３の入力ポート３４０へルーティングされた信号値を選択する。入力マルチプレクサ３５０は、汎用相互接続マルチプレクサ３４８およびプログラマブル相互接続ブロック３１２，３１３，３１４，３２１，３２２，３２４，３２５を介して、入力ポート３４０を、出力ポート３４２からのライン３５２上のフィードバック、または共有コラム３５６の信号ライン３５４、またはプログラマブルロジックブロック３０２，３０３，３０４，３３１，３３２，３３４，３３５へ選択的に結合する。共有コラム３５６からの信号ライン３５４は、クロック信号、リセット信号、および他の制御信号を含む。一実施形態においては、共有コラム３５６は、図２に示された配列のうちの１つの共有コラム２１０のうちの１つに対応する。
【００５０】
一実施形態においては、設定メモリセルの値は、マルチプレクサ３４８，３５０を通る信号のルーティングを制御する。したがって、設定メモリの内容は、共有コラム３５６と、プログラマブルロジックブロック３０１，３０２，３０３，３０４，３０５，３０６〜３０７，３３１，３３２，３３３，３３４，３３５，３３６〜２２７の入力ポートおよび出力ポートとの間の相互接続を決定する。
【００５１】
一実施形態においては、プログラマブルロジックブロック３３３は、プログラマブルロジックブロック３３３の動作を構成する、追加の設定メモリを含む。一例においては、プログラマブルロジックブロック３３３は、コンフィギュラブルルックアップテーブルと、バイパスを有するレジスタとを含む。コンフィギュラブルルックアップテーブルは、入力ポート３４０（および任意的な入力ポート３４４）からの値の、任意の論理関数を実現し得る。レジスタは、コンフィギュラブルルックアップテーブルからの結果、または、コンフィギュラブルルックアップテーブルからの前の結果を記憶するレジスタからの結果を用いて、出力ポート３４２（および任意のポート３４６）を直接的に駆動するように構成され得る。
【００５２】
したがって、プログラマブルロジックブロック３０１，３０２，３０３，３０４，３０５，３０６〜３０７，３３１，３３２，３３３，３３４，３３５，３３６〜３３７は、ユーザ設計の論理機械および状態機械を実現するように構成され、プログラマブル相互接続ブロック３１１，３１２，３１３，３１４，３１５，３１６〜３１７，３２１，３２２，３２３，３２４，３２５，３２６〜３２７は、ユーザ設計の論理機械および状態機械を適切に相互接続するように構成され得る。
【００５３】
特定の実施形態においては、プログラマブルロジックブロック３３３は、隣接配列内の他のプログラマブルロジックブロック（図示せず）に隣接する。プログラマブルロジックブロック３３３は、プログラマブルロジックブロック３３３の一側面に入力ポート３４０および出力ポート３４２を有するとともに、反対の側面に入力ポート３４４および出力ポート３４６を有する。ポート３４０，３４２はプログラマブル相互接続ブロック３２３に結合されるが、任意的なポート３４４，３４６は、隣接配列内の隣接するプログラマブルロジックブロックに結合される。プログラマブルロジックブロック３３３と隣接配列内の隣接するプログラマブルロジックブロックとの間の直接接続は、すべてのプログラマブル相互接続ブロックをバイパスするこれら２つのプログラマブルロジックブロック間における高速通信を可能とする。プログラマブルロジックブロック３３３および隣接配列内の隣接するプログラマブルロジックブロックは、一実施形態においては互いにミラーイメージであるが、任意的な出力ポート３４６と隣接するプログラマブルロジックブロックの対応する入力ポートとの間の交差接続（crossover connection）および隣接するプログラマブルロジックブロックの入力ポートと任意的な入力ポート３４４との間の接続は、双方のミラーイメージから排除される。
【００５４】
本発明は、さまざまなプログラマブル集積回路アーキテクチャに適用可能であると考えられる。本発明は、フィールドプログラマブルゲートアレイのようなプログラマブルロジックデバイスを含む例示的な実施形態を用いて示されたが、本発明はそれには限定されない。本発明の他の局面および実施形態は、ここに開示された発明の明細書および実施形態の考慮から、当業者には明らかであろう。以下の特許請求の範囲によって示される発明の真の範囲および精神によって、明細書および図示された実施形態は単なる例示であるとみなされることが意図される。
【図１】
2013520074.tif 000003
【図２】
2013520074.tif 000004
【図３】
2013520074.tif 000005
【国際調査報告】
2013520074.tif 000006
2013520074.tif 000007