JPH1092943A - プログラマブル論理素子 - Google Patents
プログラマブル論理素子Info
- Publication number
- JPH1092943A JPH1092943A JP9138772A JP13877297A JPH1092943A JP H1092943 A JPH1092943 A JP H1092943A JP 9138772 A JP9138772 A JP 9138772A JP 13877297 A JP13877297 A JP 13877297A JP H1092943 A JPH1092943 A JP H1092943A
- Authority
- JP
- Japan
- Prior art keywords
- level
- pale
- interconnect
- interconnect bus
- programmable
- 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.)
- Pending
Links
- 230000008878 coupling Effects 0.000 claims abstract description 11
- 238000010168 coupling process Methods 0.000 claims abstract description 11
- 238000005859 coupling reaction Methods 0.000 claims abstract description 11
- 241000940835 Pales Species 0.000 abstract 2
- 208000011751 Posttransplant acute limbic encephalitis Diseases 0.000 abstract 2
- 238000013461 design Methods 0.000 description 52
- 239000011159 matrix material Substances 0.000 description 16
- 238000000034 method Methods 0.000 description 14
- 238000005192 partition Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 239000002184 metal Substances 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 229920000954 Polyglycolide Polymers 0.000 description 5
- 235000010409 propane-1,2-diol alginate Nutrition 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004148 curcumin Substances 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17704—Logic 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 the logic functions being realised by the interconnection of rows and columns
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/1778—Structural details for adapting physical parameters
- H03K19/17796—Structural details for adapting physical parameters for physical disposition of blocks
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 スイッチが少なく、配線長が短い、長い相互
接続可能で、局所的相互接続性を向上させる、タイリン
グ可能な階層的相互接続構造のFPGA。 【解決手段】 PALE100は論理的に複数の階層的
に結合された区分により整理されている。各区分は、独
自の組をなす次に低い区分の一組の階層区分と、その区
分内にある独自の組をなす次に低い区分だけに延びる相
互接続バスによって形成される。最低レベルの階層は、
複数のPALE100の1つである。各PALE100
内に設けられた複数のハイパーリンクによって、PAL
E出力信号と、PALE100を含むそれぞれのより高
い階層レベルにおけるそれぞれの相互接続バス102〜
105がプログラム可能に結合される。PALE100
には、区分の任意の1つの相互接続バスを利用せずに、
PALEデータ出力信号を隣接する近傍PALEに結合
するためのトンネル接続も含まれている。
接続可能で、局所的相互接続性を向上させる、タイリン
グ可能な階層的相互接続構造のFPGA。 【解決手段】 PALE100は論理的に複数の階層的
に結合された区分により整理されている。各区分は、独
自の組をなす次に低い区分の一組の階層区分と、その区
分内にある独自の組をなす次に低い区分だけに延びる相
互接続バスによって形成される。最低レベルの階層は、
複数のPALE100の1つである。各PALE100
内に設けられた複数のハイパーリンクによって、PAL
E出力信号と、PALE100を含むそれぞれのより高
い階層レベルにおけるそれぞれの相互接続バス102〜
105がプログラム可能に結合される。PALE100
には、区分の任意の1つの相互接続バスを利用せずに、
PALEデータ出力信号を隣接する近傍PALEに結合
するためのトンネル接続も含まれている。
Description
【0001】
【発明の属する技術分野】本発明は、一般に、プログラ
マブル論理素子に関するものであり、とりわけ、プログ
ラマブル相互接続を形成するための階層アーキテクチャ
及びハイパーリンクを備えた、フィールド・プログラマ
ブル・ゲート・アレイに関するものである。
マブル論理素子に関するものであり、とりわけ、プログ
ラマブル相互接続を形成するための階層アーキテクチャ
及びハイパーリンクを備えた、フィールド・プログラマ
ブル・ゲート・アレイに関するものである。
【0002】
【従来の技術】フィールド・プログラマブル・ゲート・
アレイ(FPGA)が、顧客設計論理回路の迅速な実施
のために数年間にわたって利用されてきた。しかし、F
PGAの論理密度及び性能は、FPGAの利用者による
プログラムを可能にするのに必要な追加回路要素によっ
て生じるオーバヘッドのため、アプリケーション専用集
積回路(ASIC)テクノロジを用いて実施される回路
よりも1桁低くなる。従って、FPGAは、主として比
較的単純な論理回路の実施に利用される。しかし、回路
設計の検証及び最適化のため、超大型回路の実施が可能
なFPGAの要求が強まっている。ASICの設計を機
能的にエミュレートするように、FPGAを迅速に構成
することが可能である限りにおいて、こうした検証によ
って、ASICの設計に必要な時間量を大幅に短縮する
ことが可能になる。
アレイ(FPGA)が、顧客設計論理回路の迅速な実施
のために数年間にわたって利用されてきた。しかし、F
PGAの論理密度及び性能は、FPGAの利用者による
プログラムを可能にするのに必要な追加回路要素によっ
て生じるオーバヘッドのため、アプリケーション専用集
積回路(ASIC)テクノロジを用いて実施される回路
よりも1桁低くなる。従って、FPGAは、主として比
較的単純な論理回路の実施に利用される。しかし、回路
設計の検証及び最適化のため、超大型回路の実施が可能
なFPGAの要求が強まっている。ASICの設計を機
能的にエミュレートするように、FPGAを迅速に構成
することが可能である限りにおいて、こうした検証によ
って、ASICの設計に必要な時間量を大幅に短縮する
ことが可能になる。
【0003】典型的なFPGAのアーキテクチャは、プ
ログラム可能な相互接続によって、さまざまな回路設計
を実現することが可能な基本論理素子のアレイから構成
される。基本論理素子は、1つ以上のデータ入力信号の
選択された組み合わせ論理関数または順序論理関数であ
る、1つ以上のデータ出力信号を発生するようにプログ
ラム可能にすることができる。代替案として、基本論理
ブロックは、各論理素子に対するデータ入力を選択する
ことによって、所望の組み合わせ出力または順序出力を
発生する、固定された組み合わせのアンド及びオアゲー
トとすることも可能である。論理ブロックは、トランジ
スタのように単純にすることもできるし、あるいは、マ
イクロプロセッサのように複雑にすることも可能であ
る。
ログラム可能な相互接続によって、さまざまな回路設計
を実現することが可能な基本論理素子のアレイから構成
される。基本論理素子は、1つ以上のデータ入力信号の
選択された組み合わせ論理関数または順序論理関数であ
る、1つ以上のデータ出力信号を発生するようにプログ
ラム可能にすることができる。代替案として、基本論理
ブロックは、各論理素子に対するデータ入力を選択する
ことによって、所望の組み合わせ出力または順序出力を
発生する、固定された組み合わせのアンド及びオアゲー
トとすることも可能である。論理ブロックは、トランジ
スタのように単純にすることもできるし、あるいは、マ
イクロプロセッサのように複雑にすることも可能であ
る。
【0004】FPGAは、従来のプログラマブル論理素
子(PLD)と同様に、電気的にプログラム可能なスイ
ッチを用いてプログラムされる。従来、PLDは、1つ
のスイッチを介して、全ての論理素子の出力を全ての論
理ブロック入力に直接接続することが可能な、単純であ
るが、非効率的なクロスバー状の相互接続アーキテクチ
ャを利用している。最新のFPGAは、一般に、各接続
がいくつかのスイッチを通る、より効率的な相互接続ア
ーキテクチャを用いている。
子(PLD)と同様に、電気的にプログラム可能なスイ
ッチを用いてプログラムされる。従来、PLDは、1つ
のスイッチを介して、全ての論理素子の出力を全ての論
理ブロック入力に直接接続することが可能な、単純であ
るが、非効率的なクロスバー状の相互接続アーキテクチ
ャを利用している。最新のFPGAは、一般に、各接続
がいくつかのスイッチを通る、より効率的な相互接続ア
ーキテクチャを用いている。
【0005】FPGA相互接続アーキテクチャの総合的
な目的は、基本論理素子間に豊富なプログラマブル相互
接続を設け、集積回路チップによる多種多様な設計を可
能にし、高速動作のための高データ帯域幅(High data
bandwidth )を与え、マルチチップ・モジュール設計に
よる集積回路チップ間において多量のデータ転送を行う
ことにある。相互接続アーキテクチャは、ステップ・ア
ンド・リピート処理で設計され、製作されるのが望まし
い。
な目的は、基本論理素子間に豊富なプログラマブル相互
接続を設け、集積回路チップによる多種多様な設計を可
能にし、高速動作のための高データ帯域幅(High data
bandwidth )を与え、マルチチップ・モジュール設計に
よる集積回路チップ間において多量のデータ転送を行う
ことにある。相互接続アーキテクチャは、ステップ・ア
ンド・リピート処理で設計され、製作されるのが望まし
い。
【0006】FPGAは、大規模集積回路テクノロジに
よって実施される。一般に、FPGA相互接続アーキテ
クチャには、電気的にプログラム可能なスイッチを介し
て相互接続することができる、さまざまな長さのワイヤ
・セグメントが用いられる。組み込まれるワイヤ・セグ
メント数の選択は、FPGAによって得られる密度に影
響を及ぼす。セグメント数が不十分であれば、論理素子
の利用が不十分になる。ワイヤ・セグメント数が過剰に
なると、スペースが浪費され、相互接続性能は改善され
ない。さまざまな長さのワイヤ・セグメントの分布及び
密度は、FPGAの性能にも影響を及ぼす。全てのセグ
メントが長い場合、局所的相互接続の実施は、面積的に
コストが高くなりすぎ、伝搬遅延が増すことになる。一
方、全てのセグメントが短すぎる場合、長い相互接続に
は、多数のスイッチを直列に接続することが必要にな
り、この結果伝搬遅延が大きくなる。長いワイヤと短い
ワイヤを効率よく割り当てることによって、相互接続構
造に対してあまり多くのチップ面積を犠牲にすることな
く、多種多様な設計を実施するFPGA相互接続アーキ
テクチャが、必要とされている。
よって実施される。一般に、FPGA相互接続アーキテ
クチャには、電気的にプログラム可能なスイッチを介し
て相互接続することができる、さまざまな長さのワイヤ
・セグメントが用いられる。組み込まれるワイヤ・セグ
メント数の選択は、FPGAによって得られる密度に影
響を及ぼす。セグメント数が不十分であれば、論理素子
の利用が不十分になる。ワイヤ・セグメント数が過剰に
なると、スペースが浪費され、相互接続性能は改善され
ない。さまざまな長さのワイヤ・セグメントの分布及び
密度は、FPGAの性能にも影響を及ぼす。全てのセグ
メントが長い場合、局所的相互接続の実施は、面積的に
コストが高くなりすぎ、伝搬遅延が増すことになる。一
方、全てのセグメントが短すぎる場合、長い相互接続に
は、多数のスイッチを直列に接続することが必要にな
り、この結果伝搬遅延が大きくなる。長いワイヤと短い
ワイヤを効率よく割り当てることによって、相互接続構
造に対してあまり多くのチップ面積を犠牲にすることな
く、多種多様な設計を実施するFPGA相互接続アーキ
テクチャが、必要とされている。
【0007】大規模集積回路は、「ステップ・アンド・
リピート」処理によって最も効率よく設計される。ステ
ップ・アンド・リピート設計の場合、小ブロックの回路
要素が設計され、回路の大部分は、小ブロックのアレイ
を形成することによって充填される。こうして、小ブロ
ックまたは「タイル」及び小ブロックの正確な複製が分
布したチップ領域に、設計努力の的をしぼることが可能
になる。ステップ・アンド・リピート設計は、全ての基
本論理ブロックがほぼ同じである、メモリ及び「フラッ
ト」FPGAアーキテクチャのような回路要素に広く用
いられている。あいにく、ステップ・アンド・リピート
設計によって、FPGAの集積回路チップの設計に制限
が加えられ、より高度で、効率のよい相互接続アーキテ
クチャの実施が阻害された。高度で、複雑な相互接続を
可能にし、同時に、チップ領域の大部分にわたるタイル
のステップ・アンド・リピート処理になじみやすいFP
GAアーキテクチャが必要とされている。
リピート」処理によって最も効率よく設計される。ステ
ップ・アンド・リピート設計の場合、小ブロックの回路
要素が設計され、回路の大部分は、小ブロックのアレイ
を形成することによって充填される。こうして、小ブロ
ックまたは「タイル」及び小ブロックの正確な複製が分
布したチップ領域に、設計努力の的をしぼることが可能
になる。ステップ・アンド・リピート設計は、全ての基
本論理ブロックがほぼ同じである、メモリ及び「フラッ
ト」FPGAアーキテクチャのような回路要素に広く用
いられている。あいにく、ステップ・アンド・リピート
設計によって、FPGAの集積回路チップの設計に制限
が加えられ、より高度で、効率のよい相互接続アーキテ
クチャの実施が阻害された。高度で、複雑な相互接続を
可能にし、同時に、チップ領域の大部分にわたるタイル
のステップ・アンド・リピート処理になじみやすいFP
GAアーキテクチャが必要とされている。
【0008】従来のFPGAでは、プログラマブル素子
が、プログラマブル素子グループ間にスペースまたはチ
ャネルを残すように配列される「チャネル経路選択」構
造が用いられている。これらのチャネルは、相互接続配
線を施すために用いられる。チャネル経路選択相互接続
は、ステップ・アンド・リピート処理による実施が容易
であるが、チップの面積効率が悪く、コンパイラ・ソフ
トウェアが低速になる。チャネル経路選択は、順序が強
制されない(ステップ・アンド・リピートICレイアウ
トの観点からすると望ましい)ので、コンパイル(すな
わち、FPGAへの設計の配置、経路選択)が極めて困
難である。大規模集積回路チップが関係する場合、設計
スペース(すなわち、コンパイルの実施に用いられるコ
ンピュータに必要なメモリ・スペース)は、管理不可能
な程度にまで急速に増大する。
が、プログラマブル素子グループ間にスペースまたはチ
ャネルを残すように配列される「チャネル経路選択」構
造が用いられている。これらのチャネルは、相互接続配
線を施すために用いられる。チャネル経路選択相互接続
は、ステップ・アンド・リピート処理による実施が容易
であるが、チップの面積効率が悪く、コンパイラ・ソフ
トウェアが低速になる。チャネル経路選択は、順序が強
制されない(ステップ・アンド・リピートICレイアウ
トの観点からすると望ましい)ので、コンパイル(すな
わち、FPGAへの設計の配置、経路選択)が極めて困
難である。大規模集積回路チップが関係する場合、設計
スペース(すなわち、コンパイルの実施に用いられるコ
ンピュータに必要なメモリ・スペース)は、管理不可能
な程度にまで急速に増大する。
【0009】アプリケーション専用集積回路(ASI
C)設計プロセスにおけるFPGAテクノロジの利用に
対する関心が高まっている。従来、ASICは、設計が
済むと、さまざまなコンポーネントのソフトウェア・モ
デルを用いて、コンピュータでシミュレートされた。シ
ミュレーションは、マスク及びシリコンの高価な発生プ
ロセスに先立って、ASICの機能性を評価するのに役
立つ。しかし、複雑なASICデバイスのためにシミュ
レーション・プログラムを開発するには、多くの工数の
かかる努力が必要になる。さらに、シミュレーション・
プログラム自体、コンピュータで実行するのに何週間も
かかる可能性がある。従って、ASIC設計のシミュレ
ーションよりも、エミュレーションにFPGAテクノロ
ジを用いることに対する関心が高まっている。しかし、
先行技術によるFPGAアーキテクチャは、ASICの
エミュレーションの支援に十分なサイズに合わせてスケ
ーリングを施すと、一般に利用可能なコンピュータまた
はワークステーションでコンパイルすることはできず、
FPGAプログラミングは低速であった。
C)設計プロセスにおけるFPGAテクノロジの利用に
対する関心が高まっている。従来、ASICは、設計が
済むと、さまざまなコンポーネントのソフトウェア・モ
デルを用いて、コンピュータでシミュレートされた。シ
ミュレーションは、マスク及びシリコンの高価な発生プ
ロセスに先立って、ASICの機能性を評価するのに役
立つ。しかし、複雑なASICデバイスのためにシミュ
レーション・プログラムを開発するには、多くの工数の
かかる努力が必要になる。さらに、シミュレーション・
プログラム自体、コンピュータで実行するのに何週間も
かかる可能性がある。従って、ASIC設計のシミュレ
ーションよりも、エミュレーションにFPGAテクノロ
ジを用いることに対する関心が高まっている。しかし、
先行技術によるFPGAアーキテクチャは、ASICの
エミュレーションの支援に十分なサイズに合わせてスケ
ーリングを施すと、一般に利用可能なコンピュータまた
はワークステーションでコンパイルすることはできず、
FPGAプログラミングは低速であった。
【0010】FPGAの物理的及び論理的アーキテクチ
ャは、FPGAによる回路設計の実施に用いられるコン
パイル・ソフトウェアと対話する。コンパイル・ソフト
ウェアすなわちコンパイラは、入力としてゲート・レベ
ル(すなわち、構造的)ネット・リストを受け取り、F
PGAに効率よくプログラムするために用いることが可
能なコマンドを埋め込んだ2進イメージを出力する。コ
ンパイル・ソフトウェアによって実施される2つの主た
る操作は、「配置」と「経路選択」である。配置には、
FPGAにおける単一プログラマブル素子によって実施
するのに十分な程度に小さいネットワークに繰り返し分
割することによって、回路設計を区分化することが含ま
れる。配置は、ピンの配置、論理分析の仕様、及び、顧
客指定の制約条件による制約を受ける。一般には、最小
二分割法(Mincut bipartition)のような対称区分化が
用いられるが、高レベルの相互接続及び経路選択を考慮
すると、シリコン領域の最も効率のよい利用を可能にす
るものではない。従って、経路選択プロセスでは、配置
制約、フォールト・マッピング、ファン・アウト制限、
及び、特定の回路設計に関して指定される他の経路選択
制限を受ける、必要な論理の経路選択が行われる。
ャは、FPGAによる回路設計の実施に用いられるコン
パイル・ソフトウェアと対話する。コンパイル・ソフト
ウェアすなわちコンパイラは、入力としてゲート・レベ
ル(すなわち、構造的)ネット・リストを受け取り、F
PGAに効率よくプログラムするために用いることが可
能なコマンドを埋め込んだ2進イメージを出力する。コ
ンパイル・ソフトウェアによって実施される2つの主た
る操作は、「配置」と「経路選択」である。配置には、
FPGAにおける単一プログラマブル素子によって実施
するのに十分な程度に小さいネットワークに繰り返し分
割することによって、回路設計を区分化することが含ま
れる。配置は、ピンの配置、論理分析の仕様、及び、顧
客指定の制約条件による制約を受ける。一般には、最小
二分割法(Mincut bipartition)のような対称区分化が
用いられるが、高レベルの相互接続及び経路選択を考慮
すると、シリコン領域の最も効率のよい利用を可能にす
るものではない。従って、経路選択プロセスでは、配置
制約、フォールト・マッピング、ファン・アウト制限、
及び、特定の回路設計に関して指定される他の経路選択
制限を受ける、必要な論理の経路選択が行われる。
【0011】先行技術による対称FPGAアーキテクチ
ャは、各ネットが配置される毎に、論理設計の残りの配
置されていない部分と共用する所定の相互接続資源を充
当することになるので、配置及び経路選択の問題に混乱
を生じる。回路設計が配置されると、経路選択資源が浪
費されることになり、回路を「リップ・アップ(ripped
up)」しなければならない。配置、経路選択、及び、
リップ・アップ処理は、対話処理で繰り返され、最終的
なコンパイルが生じる。コンパイル・ソフトウェアは、
FPGAアーキテクチャに従って配置と経路選択のいず
れかに優先順位を与えることによってこの問題に対処し
ている。配置及び経路選択を繰り返す効率の悪さを回避
するため、配置と経路選択の問題を実質的に分離するF
PGAアーキテクチャが必要になる。
ャは、各ネットが配置される毎に、論理設計の残りの配
置されていない部分と共用する所定の相互接続資源を充
当することになるので、配置及び経路選択の問題に混乱
を生じる。回路設計が配置されると、経路選択資源が浪
費されることになり、回路を「リップ・アップ(ripped
up)」しなければならない。配置、経路選択、及び、
リップ・アップ処理は、対話処理で繰り返され、最終的
なコンパイルが生じる。コンパイル・ソフトウェアは、
FPGAアーキテクチャに従って配置と経路選択のいず
れかに優先順位を与えることによってこの問題に対処し
ている。配置及び経路選択を繰り返す効率の悪さを回避
するため、配置と経路選択の問題を実質的に分離するF
PGAアーキテクチャが必要になる。
【0012】市販の「フラットな」または「対称的」F
PGAアーキテクチャの代替案として、研究者は、数年
間にわたって階層アーキテクチャの研究を行ってきた。
Aditya A. Agarwal and David M. Lewis著 「階層フィ
ールド・プログラマブル・ゲート・アレイのための経路
選択アーキテクチャ(Routing Architectures for Hier
archical Field Programmable Gate Arrays)」FPG
A’94(フィールド・プログラマブル・ゲート・アレ
イ第2回国際ACM/SIGDAワークショップ会報)
(1994年2月13日)と題する論文には、階層的相
互接続アーキテクチャの解説がある。階層的相互接続ア
ーキテクチャは、大部分のデジタル回路設計に存在する
階層を利用する。階層的に設計されたシステムには、配
線に局所性を備えている傾向がある(すなわち、物理的
に接近した素子間の短い相互接続数は、物理的に遠い素
子間の長いワイヤ数よりも多い)。階層アーキテクチャ
の場合、論理素子は、グループ、または、階層レベルを
なすように編成され、各グループには、そのグループ内
における通信のみを支援する相互接続ワイヤが含まれ
る。グループ間の通信を可能にするため、独立したワイ
ヤが設けられる。階層的相互接続アーキテクチャによっ
て、利用者は、回路がASICまたは専用IC設計で実
施される場合、結果として生じる混合により厳密に整合
する、短い配線資源と長い配線資源の混合を利用して、
回路設計を実施することが可能になる。
PGAアーキテクチャの代替案として、研究者は、数年
間にわたって階層アーキテクチャの研究を行ってきた。
Aditya A. Agarwal and David M. Lewis著 「階層フィ
ールド・プログラマブル・ゲート・アレイのための経路
選択アーキテクチャ(Routing Architectures for Hier
archical Field Programmable Gate Arrays)」FPG
A’94(フィールド・プログラマブル・ゲート・アレ
イ第2回国際ACM/SIGDAワークショップ会報)
(1994年2月13日)と題する論文には、階層的相
互接続アーキテクチャの解説がある。階層的相互接続ア
ーキテクチャは、大部分のデジタル回路設計に存在する
階層を利用する。階層的に設計されたシステムには、配
線に局所性を備えている傾向がある(すなわち、物理的
に接近した素子間の短い相互接続数は、物理的に遠い素
子間の長いワイヤ数よりも多い)。階層アーキテクチャ
の場合、論理素子は、グループ、または、階層レベルを
なすように編成され、各グループには、そのグループ内
における通信のみを支援する相互接続ワイヤが含まれ
る。グループ間の通信を可能にするため、独立したワイ
ヤが設けられる。階層的相互接続アーキテクチャによっ
て、利用者は、回路がASICまたは専用IC設計で実
施される場合、結果として生じる混合により厳密に整合
する、短い配線資源と長い配線資源の混合を利用して、
回路設計を実施することが可能になる。
【0013】Agarwal他の評価を受けた経路選択アーキ
テクチャによって、局所的相互接続は改善された。ま
た、Agarwalの構造によって、nレベルの階層の任意の
経路における最大スイッチ数が、競合する対称的アーキ
テクチャまたはフラット・アーキテクチャより優れた2
×nであることが立証された。しかし、この最悪のケー
スは、より多くの階層レベルを備えた設計にとってます
ます許容できないものになる。基本的困難は、先行技術
による階層的構造の場合、階層の最低レベルから、より
高い各レベルを経て、最高レベルにまで上方への接続を
行い、その後、各レベルを経て、宛先論理素子まで下方
へ接続しなければならないということである。この接続
では、あるレベルから次のレベルへの各遷移毎に、直列
スイッチを追加し、ある長さのワイヤを消費しなければ
ならない。伝搬遅延は、大きく、相互接続資源は、急速
に使い尽くされる。必要なのは、用いるスイッチが少な
く、配線長が短い、長い相互接続を可能にし、同時に、
局所的相互接続性を向上させる階層的相互接続構造であ
る。
テクチャによって、局所的相互接続は改善された。ま
た、Agarwalの構造によって、nレベルの階層の任意の
経路における最大スイッチ数が、競合する対称的アーキ
テクチャまたはフラット・アーキテクチャより優れた2
×nであることが立証された。しかし、この最悪のケー
スは、より多くの階層レベルを備えた設計にとってます
ます許容できないものになる。基本的困難は、先行技術
による階層的構造の場合、階層の最低レベルから、より
高い各レベルを経て、最高レベルにまで上方への接続を
行い、その後、各レベルを経て、宛先論理素子まで下方
へ接続しなければならないということである。この接続
では、あるレベルから次のレベルへの各遷移毎に、直列
スイッチを追加し、ある長さのワイヤを消費しなければ
ならない。伝搬遅延は、大きく、相互接続資源は、急速
に使い尽くされる。必要なのは、用いるスイッチが少な
く、配線長が短い、長い相互接続を可能にし、同時に、
局所的相互接続性を向上させる階層的相互接続構造であ
る。
【0014】
【発明が解決しようとする課題】1995年10月3日
のHo他に対する米国特許第5、445、525号には、
Agarwal他による解説のものと同様の階層的FPGAア
ーキテクチャの説明がある。Hoのアーキテクチャは、行
バスと列バスによって階層の各レベルを相互接続するの
で、レベル間接続に必要なスイッチは、せいぜい1つで
あった。Ho他による構造は、1度につき1つずつ、階層
レベルを上方に接続することによって、所定のレベルに
基づいて論理グループ間に信号を分配する。代替案とし
て、Ho他は、階層的相互接続構造の資源を利用しない接
続を可能にする、ある階層グループから物理的に隣接し
た同位のグループへの相互接続を考案した。しかし、Ho
他の構造では、非隣接階層グループ(すなわち、同位グ
ループ)の論理素子間における接続に必要なスイッチ数
は減少しない。さらに、Ho他に構造は、相互接続構造が
各階層グループの周辺に沿って形成されるので、基本素
子すなわち「タイル」のタイリング可能な構造における
実施が困難である。あらためて必要なのは、用いるスイ
ッチが少なく、配線長が短い、長い相互接続を可能に
し、同時に、局所的相互接続性を向上させるタイリング
可能な階層的相互接続構造である。
のHo他に対する米国特許第5、445、525号には、
Agarwal他による解説のものと同様の階層的FPGAア
ーキテクチャの説明がある。Hoのアーキテクチャは、行
バスと列バスによって階層の各レベルを相互接続するの
で、レベル間接続に必要なスイッチは、せいぜい1つで
あった。Ho他による構造は、1度につき1つずつ、階層
レベルを上方に接続することによって、所定のレベルに
基づいて論理グループ間に信号を分配する。代替案とし
て、Ho他は、階層的相互接続構造の資源を利用しない接
続を可能にする、ある階層グループから物理的に隣接し
た同位のグループへの相互接続を考案した。しかし、Ho
他の構造では、非隣接階層グループ(すなわち、同位グ
ループ)の論理素子間における接続に必要なスイッチ数
は減少しない。さらに、Ho他に構造は、相互接続構造が
各階層グループの周辺に沿って形成されるので、基本素
子すなわち「タイル」のタイリング可能な構造における
実施が困難である。あらためて必要なのは、用いるスイ
ッチが少なく、配線長が短い、長い相互接続を可能に
し、同時に、局所的相互接続性を向上させるタイリング
可能な階層的相互接続構造である。
【0015】
【課題を解決するための手段】要するに、本発明には、
それぞれ、複数のデータ入力を備え、データ出力信号を
発生する複数のプログラマブル・アトミック論理素子
(PALE)を含むプログラマブル論理素子が必要であ
る。PALEは、複数の階層をなすように結合された区
分として論理的に配列される。各区分は、独自の組をな
す次に低い階層区分と、その区分内にある独自の組をな
す次に低い区分だけに延びる相互接続バスによって形成
される。最低レベルの階層は、複数のPALEの1つで
ある。各PALE内に設けられた複数のハイパーリンク
によって、PALE出力信号と、PALEを含むそれぞ
れのより高い階層レベルにおけるそれぞれの相互接続バ
スがプログラム可能に結合される。PALEには、区分
の任意の1つの相互接続バスを利用せずにPALEデー
タ出力信号を隣接する、近傍PALEに結合するための
トンネル接続も含まれている。
それぞれ、複数のデータ入力を備え、データ出力信号を
発生する複数のプログラマブル・アトミック論理素子
(PALE)を含むプログラマブル論理素子が必要であ
る。PALEは、複数の階層をなすように結合された区
分として論理的に配列される。各区分は、独自の組をな
す次に低い階層区分と、その区分内にある独自の組をな
す次に低い区分だけに延びる相互接続バスによって形成
される。最低レベルの階層は、複数のPALEの1つで
ある。各PALE内に設けられた複数のハイパーリンク
によって、PALE出力信号と、PALEを含むそれぞ
れのより高い階層レベルにおけるそれぞれの相互接続バ
スがプログラム可能に結合される。PALEには、区分
の任意の1つの相互接続バスを利用せずにPALEデー
タ出力信号を隣接する、近傍PALEに結合するための
トンネル接続も含まれている。
【0016】
【発明の実施の形態】効率的な大面積の集積回路は、そ
の設計において、できるだけステップ・アンド・リピー
ト処理が利用されることを必要とする。これは、単一の
複雑なタイルを設計し、さらに、それを繰り返すことに
よって、集積回路本体に規則的なアレイを形成する、
「タイル」・アーキテクチャと呼ばれるものである。基
本素子すなわち「タイル」をタイリング可能にするに
は、該アーキテクチャは、互いに接続されると、垂直方
向及び水平方向に長いバス及び短いバスを形成する、最
小部分及びパーツとして十分な階層バス構造を備えてい
なければならない。
の設計において、できるだけステップ・アンド・リピー
ト処理が利用されることを必要とする。これは、単一の
複雑なタイルを設計し、さらに、それを繰り返すことに
よって、集積回路本体に規則的なアレイを形成する、
「タイル」・アーキテクチャと呼ばれるものである。基
本素子すなわち「タイル」をタイリング可能にするに
は、該アーキテクチャは、互いに接続されると、垂直方
向及び水平方向に長いバス及び短いバスを形成する、最
小部分及びパーツとして十分な階層バス構造を備えてい
なければならない。
【0017】本発明の望ましい実施例の場合、各タイル
は、プログラマブル・アトミック論理素子(PALE)
と呼ばれる基本的なプログラマブル素子から構成され
る。各PALEは、階層的相互接続ネットワークの最小
部分、並びに、いくつかのプログラマブル・スイッチに
包囲されて、タイルを形成する。タイルを並べて配置す
ると、6レベルの相互接続バス階層、並びに、局所目的
及び特殊目的の相互接続が形成される。
は、プログラマブル・アトミック論理素子(PALE)
と呼ばれる基本的なプログラマブル素子から構成され
る。各PALEは、階層的相互接続ネットワークの最小
部分、並びに、いくつかのプログラマブル・スイッチに
包囲されて、タイルを形成する。タイルを並べて配置す
ると、6レベルの相互接続バス階層、並びに、局所目的
及び特殊目的の相互接続が形成される。
【0018】一般に、相互接続ネットワークにおける各
階層レベルは、エミュレーション・システムのサブセク
ション内における電気通信を支援する。これらのサブセ
クションは、「リーフ」、「ブロック」、「セクタ」、
「チップ」、及び、「システム」と呼ばれる。理解しや
すくするため、これらの素子(さらに詳細に後述する)
は、互いに表1に示すように関連づけられている。
階層レベルは、エミュレーション・システムのサブセク
ション内における電気通信を支援する。これらのサブセ
クションは、「リーフ」、「ブロック」、「セクタ」、
「チップ」、及び、「システム」と呼ばれる。理解しや
すくするため、これらの素子(さらに詳細に後述する)
は、互いに表1に示すように関連づけられている。
【0019】
【表1】
【0020】表1の各サブセクション毎に一覧された相
互接続レベルは、そのサブセクション内における素子間
の通信を支援する相互接続レベルを表している。特定の
サブセクション外において通信が必要な場合、より高い
階層レベルを利用して、相互接続することが可能であ
る。
互接続レベルは、そのサブセクション内における素子間
の通信を支援する相互接続レベルを表している。特定の
サブセクション外において通信が必要な場合、より高い
階層レベルを利用して、相互接続することが可能であ
る。
【0021】図1には、4つのデータ入力信号A、B、
C、D、及び、繰上げ入力信号を受信するPALE10
0が、ブロック図の形で示されている。PALE100
は、トンネル出力ドライバ102、レベル1/2出力ド
ライバ103、レベル3出力ドライバ104、及び、レ
ベル4出力ドライバ105、並びに、繰上げ出力信号を
含む4つの出力ドライバで得られる単一データ出力信号
を発生する。PALE100は、単一集積回路チップに
おける5つ以上の相互接続階層レベルを支援するように
設計されている。図1に示す特定の設計は、単なる一例
でしかなく、任意の数のデータ入力及びデータ出力を用
いることが可能である。繰上げ入力及び繰上げ出力は、
オプションである。PALE100にプログラムするの
に必要な入力は、図示されておらず、また、クロック信
号、イネーブル信号、及び、セット/リセット信号のよ
うな制御入力は、説明を容易にするため、図示されてい
ない。
C、D、及び、繰上げ入力信号を受信するPALE10
0が、ブロック図の形で示されている。PALE100
は、トンネル出力ドライバ102、レベル1/2出力ド
ライバ103、レベル3出力ドライバ104、及び、レ
ベル4出力ドライバ105、並びに、繰上げ出力信号を
含む4つの出力ドライバで得られる単一データ出力信号
を発生する。PALE100は、単一集積回路チップに
おける5つ以上の相互接続階層レベルを支援するように
設計されている。図1に示す特定の設計は、単なる一例
でしかなく、任意の数のデータ入力及びデータ出力を用
いることが可能である。繰上げ入力及び繰上げ出力は、
オプションである。PALE100にプログラムするの
に必要な入力は、図示されておらず、また、クロック信
号、イネーブル信号、及び、セット/リセット信号のよ
うな制御入力は、説明を容易にするため、図示されてい
ない。
【0022】望ましい実施例の解説は、直交アレイをな
すように配列された特定のPALE及びタイル設計に関
連して行われるが、もちろん、さまざまなPALE及び
タイル設計が可能であり、代替アレイを用いることも可
能である。本発明の図解及び説明は、その論理構造に関
連して行われる。実際には、半導体集積回路で実施され
る物理的構造が、本書に示す論理構造に似ている場合も
あるが、物理的実施例は、本発明の教示を逸脱すること
なく、論理構造と大幅に異なることもあり得る。望まし
い実施例において指定される特定の用語、サイズ、及
び、スケール制限は、単なる例として示されるものであ
り、本発明の教示に対する制限と解釈すべきではない。
すように配列された特定のPALE及びタイル設計に関
連して行われるが、もちろん、さまざまなPALE及び
タイル設計が可能であり、代替アレイを用いることも可
能である。本発明の図解及び説明は、その論理構造に関
連して行われる。実際には、半導体集積回路で実施され
る物理的構造が、本書に示す論理構造に似ている場合も
あるが、物理的実施例は、本発明の教示を逸脱すること
なく、論理構造と大幅に異なることもあり得る。望まし
い実施例において指定される特定の用語、サイズ、及
び、スケール制限は、単なる例として示されるものであ
り、本発明の教示に対する制限と解釈すべきではない。
【0023】以下にプログラマブル・アトミック論理素
子について説明する。本書で図解され、解説される特定
の例に用いられる基本論理ブロックは、プログラマブル
・アトミック論理素子(PALE)と呼ばれる。本発明
の原理を理解するには、PALEの内部構造及び動作を
詳細に理解することが必要になる。いくつかの入力のプ
ログラマブル論理機能である、出力を発生することが可
能ないくつかの既知のプログラマブル・ビルディング・
ブロックの任意の1つを用いて、PALEを実施すれば
十分である。また、本発明の利点の多くは、基本論理素
子がプログラム可能でなくても実施可能である。本書で
は、完璧を期して、望ましい実施例のPALE設計に関
する詳細及び明細が示される。
子について説明する。本書で図解され、解説される特定
の例に用いられる基本論理ブロックは、プログラマブル
・アトミック論理素子(PALE)と呼ばれる。本発明
の原理を理解するには、PALEの内部構造及び動作を
詳細に理解することが必要になる。いくつかの入力のプ
ログラマブル論理機能である、出力を発生することが可
能ないくつかの既知のプログラマブル・ビルディング・
ブロックの任意の1つを用いて、PALEを実施すれば
十分である。また、本発明の利点の多くは、基本論理素
子がプログラム可能でなくても実施可能である。本書で
は、完璧を期して、望ましい実施例のPALE設計に関
する詳細及び明細が示される。
【0024】図1にブロック図の形で示すPALE10
0は、特定の例において任意の4入力・1出力論理機能
または任意の2出力・1出力機能を実施するように構成
可能である。PALE100は、4つのデータ入力(A
〜Dで表示)を備えている。本発明の論理アーキテクチ
ャを強調するため、実際の構造に必要な各種クロック及
び制御入力は示されていない。こうしたクロック及び制
御構造は、既知のテクノロジを利用して、あるいは、例
えば、本発明の譲受人が所有する米国特許出願第08/
号に解説の制御構造によって実施することが可
能である。
0は、特定の例において任意の4入力・1出力論理機能
または任意の2出力・1出力機能を実施するように構成
可能である。PALE100は、4つのデータ入力(A
〜Dで表示)を備えている。本発明の論理アーキテクチ
ャを強調するため、実際の構造に必要な各種クロック及
び制御入力は示されていない。こうしたクロック及び制
御構造は、既知のテクノロジを利用して、あるいは、例
えば、本発明の譲受人が所有する米国特許出願第08/
号に解説の制御構造によって実施することが可
能である。
【0025】4つのデータ入力A〜Dは、タイル200
(図2に示す)内に終端がきており、タイル間の信号を
結合するために直接利用されることはない。繰上げ入力
ラインは、図1に示す特定の例におけるAデータ入力ラ
インにプログラム可能に結合されるが、省略することも
できるし、あるいは、独立した入力として、PALE1
00に直接結合することも可能である。
(図2に示す)内に終端がきており、タイル間の信号を
結合するために直接利用されることはない。繰上げ入力
ラインは、図1に示す特定の例におけるAデータ入力ラ
インにプログラム可能に結合されるが、省略することも
できるし、あるいは、独立した入力として、PALE1
00に直接結合することも可能である。
【0026】PALE100は、図1に示す黒い三角形
102、103、104、及び、105によって示され
た多重データ出力ドライバに分配される、あるデータ出
力信号を発生する。各出力ドライバ102〜105は、
さらに詳細に後述する階層的相互接続構造の選択された
レベルにプログラム可能に結合される。多重出力ドライ
バは、所定のPALEの出力に直接アクセス可能な階層
レベル数を増すことによって、相互接続の問題を軽減す
るために用いられる。
102、103、104、及び、105によって示され
た多重データ出力ドライバに分配される、あるデータ出
力信号を発生する。各出力ドライバ102〜105は、
さらに詳細に後述する階層的相互接続構造の選択された
レベルにプログラム可能に結合される。多重出力ドライ
バは、所定のPALEの出力に直接アクセス可能な階層
レベル数を増すことによって、相互接続の問題を軽減す
るために用いられる。
【0027】以下にタイル・アーキテクチャについて説
明する。本発明による重要な利点は、ステップ・アンド
・リピート処理を通じて再生することにより、大型FP
GA構造を形成することができる、タイルとして実施す
ることが可能な階層アーキテクチャである。図2に示す
ように、タイル200は、相互接続構造の関連する極小
部分を備えたPALE100から構成される。図2にお
ける2つのラインの交差点の上に位置する中空の円は、
2つのラインを選択的に結合するプログラマブル相互接
続であることを表している。図2における黒のべた塗り
の円は、2つの交差ライン間における固定接続またはハ
ード配線接続を表している。その交差点に中空の円また
はべた塗りの円がない交差ラインは、電気的に結合され
ていない。
明する。本発明による重要な利点は、ステップ・アンド
・リピート処理を通じて再生することにより、大型FP
GA構造を形成することができる、タイルとして実施す
ることが可能な階層アーキテクチャである。図2に示す
ように、タイル200は、相互接続構造の関連する極小
部分を備えたPALE100から構成される。図2にお
ける2つのラインの交差点の上に位置する中空の円は、
2つのラインを選択的に結合するプログラマブル相互接
続であることを表している。図2における黒のべた塗り
の円は、2つの交差ライン間における固定接続またはハ
ード配線接続を表している。その交差点に中空の円また
はべた塗りの円がない交差ラインは、電気的に結合され
ていない。
【0028】既述のように、図2に示す論理構造は、本
発明の物理的実施例に似ている場合もあれば、似ていな
い場合もある。図2に示す論理構造の説明及び図解例
は、既知の任意のICテクノロジで実施することが可能
である。各階層レベルにおけるワイヤ数は、プログラマ
ブル・スイッチの数及びプログラマブル・スイッチの配
置と同様、設計上の選択の問題である。示される特定の
例は、例示により、理解が得られるようにするためのも
のであって、本発明の教示に対する制限と解釈してはな
らない。
発明の物理的実施例に似ている場合もあれば、似ていな
い場合もある。図2に示す論理構造の説明及び図解例
は、既知の任意のICテクノロジで実施することが可能
である。各階層レベルにおけるワイヤ数は、プログラマ
ブル・スイッチの数及びプログラマブル・スイッチの配
置と同様、設計上の選択の問題である。示される特定の
例は、例示により、理解が得られるようにするためのも
のであって、本発明の教示に対する制限と解釈してはな
らない。
【0029】出力ドライバ102は、本書において「レ
ベル0」相互接続または「トンネル」と呼ばれるものに
結合される。トンネルは、各タイル200から、タイル
200の4つの側部のそれぞれにおいて最も近い近傍タ
イルに対してハード配線される。ライン201は、出力
ドライバ102をタイル200の右側のタイルに結合す
る。同様に、ライン202は、出力ドライバ102をタ
イル200の左側のタイルに結合し、ライン203は、
出力ドライバ102をタイル200の上方のタイルに結
合し、ライン204は、出力ドライバ102をタイル2
00の下方のタイルに結合する。
ベル0」相互接続または「トンネル」と呼ばれるものに
結合される。トンネルは、各タイル200から、タイル
200の4つの側部のそれぞれにおいて最も近い近傍タ
イルに対してハード配線される。ライン201は、出力
ドライバ102をタイル200の右側のタイルに結合す
る。同様に、ライン202は、出力ドライバ102をタ
イル200の左側のタイルに結合し、ライン203は、
出力ドライバ102をタイル200の上方のタイルに結
合し、ライン204は、出力ドライバ102をタイル2
00の下方のタイルに結合する。
【0030】ライン206、207、208、及び、2
09は、隣接する最も近い近傍タイルからタイル200
に入ってくるトンネル・ラインである。右のタイルから
のライン206は、プログラマブル・スイッチを介し
て、PALE100へのCデータ入力に選択的に結合さ
れる。タイル200の上方のタイルからのライン207
は、PALE100のCデータ入力に選択的に結合され
る。同様に、左からのライン208及び下方からのライ
ン209は、それぞれ、A及びDデータ入力ラインに、
それぞれ、プログラム可能に結合される。
09は、隣接する最も近い近傍タイルからタイル200
に入ってくるトンネル・ラインである。右のタイルから
のライン206は、プログラマブル・スイッチを介し
て、PALE100へのCデータ入力に選択的に結合さ
れる。タイル200の上方のタイルからのライン207
は、PALE100のCデータ入力に選択的に結合され
る。同様に、左からのライン208及び下方からのライ
ン209は、それぞれ、A及びDデータ入力ラインに、
それぞれ、プログラム可能に結合される。
【0031】8つのライン、201、202、203、
204、205、206、207、208、及び、20
9は、レベル0相互接続から構成され、最も近い近傍タ
イルとの局所的相互接続を可能にする。本発明によれ
ば、レベル0相互接続では、単一のプログラマブル・ス
イッチだけしか利用せずに、任意のPALE100の出
力が最も近い任意のPALE100に結合され、この結
果、低損失で、遅延のわずかな接続が形成される。多く
の回路設計には、近傍PALE間における多数のこうし
た局所的相互接続が必要とされるので、レベル0相互接
続によれば、プログラマブル・スイッチ及びワイヤ専用
のチップ領域に関して、比較的オーバヘッドの少ない相
互接続の要求が、全体として高い割合で満たされる。
204、205、206、207、208、及び、20
9は、レベル0相互接続から構成され、最も近い近傍タ
イルとの局所的相互接続を可能にする。本発明によれ
ば、レベル0相互接続では、単一のプログラマブル・ス
イッチだけしか利用せずに、任意のPALE100の出
力が最も近い任意のPALE100に結合され、この結
果、低損失で、遅延のわずかな接続が形成される。多く
の回路設計には、近傍PALE間における多数のこうし
た局所的相互接続が必要とされるので、レベル0相互接
続によれば、プログラマブル・スイッチ及びワイヤ専用
のチップ領域に関して、比較的オーバヘッドの少ない相
互接続の要求が、全体として高い割合で満たされる。
【0032】望ましい実施例の場合、ライン201〜2
09によって形成されるレベル0相互接続は、タイル2
00の上方及び下方のタイルが、タイル200の左右の
タイルとは異なる階層グループであるため、厳密には階
層的ではない。このため、レベル0相互接続に関して対
称的またはフラットな相互接続アーキテクチャを用いる
ことによって、優れた局所的相互接続性が得られるが、
相互接続が長くなると、より多くの従来の階層的構造に
依存することになる。先行技術に対する本発明のこの卓
越性は、下記の階層的相互接続構造に関する論考におい
てよりいっそう明らかになる。
09によって形成されるレベル0相互接続は、タイル2
00の上方及び下方のタイルが、タイル200の左右の
タイルとは異なる階層グループであるため、厳密には階
層的ではない。このため、レベル0相互接続に関して対
称的またはフラットな相互接続アーキテクチャを用いる
ことによって、優れた局所的相互接続性が得られるが、
相互接続が長くなると、より多くの従来の階層的構造に
依存することになる。先行技術に対する本発明のこの卓
越性は、下記の階層的相互接続構造に関する論考におい
てよりいっそう明らかになる。
【0033】タイル200には、望ましい実施例の場
合、PALE100に対するA、B、C、及び、D入力
と交差する12のワイヤによって形成されるレベル1の
相互接続バス211の最小部分が含まれている。タイル
200には、レベル2の相互接続バス212、レベル3
の相互接続バス213、及び、レベル4の相互接続バス
214も含まれている。出力ドライバ103は、プログ
ラマブル・スイッチを介して、レベル1の相互接続バス
211及びレベル2の相互接続バス212から選択され
たワイヤにPALE100の出力信号を結合する。
合、PALE100に対するA、B、C、及び、D入力
と交差する12のワイヤによって形成されるレベル1の
相互接続バス211の最小部分が含まれている。タイル
200には、レベル2の相互接続バス212、レベル3
の相互接続バス213、及び、レベル4の相互接続バス
214も含まれている。出力ドライバ103は、プログ
ラマブル・スイッチを介して、レベル1の相互接続バス
211及びレベル2の相互接続バス212から選択され
たワイヤにPALE100の出力信号を結合する。
【0034】従来の階層的構造の場合、出力信号は、例
えば、レベル1の相互接続バス211といった、1つの
階層レベルだけにしか結合されない。従って、従来の構
造の場合、信号は、PALE出力からレベル2の相互接
続バスに達するのに、少なくとも2つのスイッチを通過
しなければならない。これに対し、本発明では、各PA
LE100からレベル2の相互接続バスへの直接接続す
なわち「ハイパーリンク」が可能になる。ハイパーリン
クによって、先行技術に比べると、信号経路からスイッ
チが1つ排除される。本発明によるアーキテクチャは、
従来のやり方で(すなわち、各レベルの交差時に、スイ
ッチを利用してレベル毎に)信号を通すことも可能であ
るが、ハイパーリンクによって、スイッチ数が大幅に減
少する。
えば、レベル1の相互接続バス211といった、1つの
階層レベルだけにしか結合されない。従って、従来の構
造の場合、信号は、PALE出力からレベル2の相互接
続バスに達するのに、少なくとも2つのスイッチを通過
しなければならない。これに対し、本発明では、各PA
LE100からレベル2の相互接続バスへの直接接続す
なわち「ハイパーリンク」が可能になる。ハイパーリン
クによって、先行技術に比べると、信号経路からスイッ
チが1つ排除される。本発明によるアーキテクチャは、
従来のやり方で(すなわち、各レベルの交差時に、スイ
ッチを利用してレベル毎に)信号を通すことも可能であ
るが、ハイパーリンクによって、スイッチ数が大幅に減
少する。
【0035】出力ドライバ104がレベル3の相互接続
バス213の選択されたワイヤに結合することによっ
て、レベル3の相互接続バスへのハイパーリンクが形成
される。さらに、出力ドライバ105によって、PAL
E100からレベル4の相互接続バスの選択されたワイ
ヤへのハイパーリンクが形成される。従来の階層的相互
接続は、レベル3の相互接続バス213に達するのに、
少なくとも3つのプログラマブル・スイッチを必要と
し、レベル4の相互接続バス214に達するのに少なく
とも4つのスイッチを必要とする。云うまでもないこと
ではあるが、発明者が、4つ以上の階層レベルを備えた
FPGAを承知しているわけではないので、また、部分
的には、追加される階層レベルが増えるにつれて、必要
とされるスイッチ数も増加するため、従来の相互接続構
造に対する言及は、比較のためだけになされている。
バス213の選択されたワイヤに結合することによっ
て、レベル3の相互接続バスへのハイパーリンクが形成
される。さらに、出力ドライバ105によって、PAL
E100からレベル4の相互接続バスの選択されたワイ
ヤへのハイパーリンクが形成される。従来の階層的相互
接続は、レベル3の相互接続バス213に達するのに、
少なくとも3つのプログラマブル・スイッチを必要と
し、レベル4の相互接続バス214に達するのに少なく
とも4つのスイッチを必要とする。云うまでもないこと
ではあるが、発明者が、4つ以上の階層レベルを備えた
FPGAを承知しているわけではないので、また、部分
的には、追加される階層レベルが増えるにつれて、必要
とされるスイッチ数も増加するため、従来の相互接続構
造に対する言及は、比較のためだけになされている。
【0036】本発明による、基本素子すなわち「タイ
ル」のタイリング可能な構造によれば、ステップ・アン
ド・リピート処理に適した、タイリング可能なアーキテ
クチャによる階層的構造の利点が得られる。
ル」のタイリング可能な構造によれば、ステップ・アン
ド・リピート処理に適した、タイリング可能なアーキテ
クチャによる階層的構造の利点が得られる。
【0037】以下に階層的相互接続構造について説明す
る。本発明の望ましい実施例による階層的相互接続構造
は、集積回路の3つの金属層において実施するのが望ま
しい、マルチレベル(レベル0〜6)論理的階層として
実施される。階層的構造は、望ましい実施例において専
用相互接続を形成する繰上げサブシステムによって補足
される。タイルを並べて配置すると、6つの相互接続バ
ス階層レベル(すなわち、各集積回路チップ毎に4つの
レベルと、複数の集積回路チップを接続する2つのレベ
ル)、並びに、局所的相互接続を可能にするレベル0構
造が形成される。
る。本発明の望ましい実施例による階層的相互接続構造
は、集積回路の3つの金属層において実施するのが望ま
しい、マルチレベル(レベル0〜6)論理的階層として
実施される。階層的構造は、望ましい実施例において専
用相互接続を形成する繰上げサブシステムによって補足
される。タイルを並べて配置すると、6つの相互接続バ
ス階層レベル(すなわち、各集積回路チップ毎に4つの
レベルと、複数の集積回路チップを接続する2つのレベ
ル)、並びに、局所的相互接続を可能にするレベル0構
造が形成される。
【0038】図3には、図2のタイル200と同様の4
つのタイルを組み合わせて、「リーフ」300と呼ばれ
る階層レベルを形成する方法が示されている。任意の数
のタイル200をグループにまとめて、リーフ300を
形成することが可能であるが、高レベルの相互接続及び
経路選択を考慮すると、4つのタイルによって、チップ
領域を最も効率よく利用できることが分かった。階層レ
ベルにおける素子数は、FPGAのプログラムに用いら
れる制御バス(不図示)を効率よく利用するために選択
される。
つのタイルを組み合わせて、「リーフ」300と呼ばれ
る階層レベルを形成する方法が示されている。任意の数
のタイル200をグループにまとめて、リーフ300を
形成することが可能であるが、高レベルの相互接続及び
経路選択を考慮すると、4つのタイルによって、チップ
領域を最も効率よく利用できることが分かった。階層レ
ベルにおける素子数は、FPGAのプログラムに用いら
れる制御バス(不図示)を効率よく利用するために選択
される。
【0039】望ましい実施例の4タイル・リーフ300
によって、繰上げサブシステム(後述する)を介した論
理素子の緊密な結合、及び、直接的な最も近い近傍タイ
ルとの接続が得られるので、マクロ回路(例えば、カウ
ンタ、シフト・レジスタ、加算器等)に対する論理の効
率的なパッキングが可能になる。
によって、繰上げサブシステム(後述する)を介した論
理素子の緊密な結合、及び、直接的な最も近い近傍タイ
ルとの接続が得られるので、マクロ回路(例えば、カウ
ンタ、シフト・レジスタ、加算器等)に対する論理の効
率的なパッキングが可能になる。
【0040】特定の例の場合、水平方向にタイル200
のステップ・アンド・リピートを4回行うことによっ
て、リーフ300が発生する。レベル1の相互接続バス
211は、レベル3の相互接続バス213と同様、リー
フ300を横切って連続状態になる。本発明によれば、
レベル1の相互接続バス211は、リーフ300の境界
に終端がくるが、レベル3の相互接続バス213は、リ
ーフ300を越えて延び、リーフ300の左右に隣接し
たリーフに対する接続を可能にする。これを実施するた
め、リーフ300の設計は、タイル200のステップ・
アンド・リピート後に、レベル3の相互接続バス213
がレベル1の相互接続バス211より遠くまで延びるよ
うに、左側及び右側に変更を加えることによって、修正
される。他の修正を施すことによって、例えば、繰上げ
サブシステムの接続性を高めることも可能である。レベ
ル2の相互接続バス212及びレベル4の相互接続バス
214は、リーフの境界を越えて延び、リーフ300の
上方及び下方のリーフに結合するが、この段階では、修
正の必要はない。
のステップ・アンド・リピートを4回行うことによっ
て、リーフ300が発生する。レベル1の相互接続バス
211は、レベル3の相互接続バス213と同様、リー
フ300を横切って連続状態になる。本発明によれば、
レベル1の相互接続バス211は、リーフ300の境界
に終端がくるが、レベル3の相互接続バス213は、リ
ーフ300を越えて延び、リーフ300の左右に隣接し
たリーフに対する接続を可能にする。これを実施するた
め、リーフ300の設計は、タイル200のステップ・
アンド・リピート後に、レベル3の相互接続バス213
がレベル1の相互接続バス211より遠くまで延びるよ
うに、左側及び右側に変更を加えることによって、修正
される。他の修正を施すことによって、例えば、繰上げ
サブシステムの接続性を高めることも可能である。レベ
ル2の相互接続バス212及びレベル4の相互接続バス
214は、リーフの境界を越えて延び、リーフ300の
上方及び下方のリーフに結合するが、この段階では、修
正の必要はない。
【0041】リーフ300の配置が済むと、それは、
「ブロック」と呼ばれる次に高い階層レベルのためのビ
ルディング・ブロックになる。従って、リーフ300の
右エッジに生じるレベル3の相互接続バス213の変更
は、1回だけしか設計されないので、設計努力が最小限
に抑えられる。リーフ300が、ステップ・アンド・リ
ピート処理を利用して複製されると、「ブロック」と呼
ばれるより高いレベルの階層(その一部が図4に示され
ている)が形成される。ブロック400は、図4に示す
ように、レベル2の相互接続バス212がブロック40
0の全てを横切って延び、その終端がブロック400の
エッジにくるようにして、互いに垂直方向に形成される
いくつかのリーフ300から構成される。
「ブロック」と呼ばれる次に高い階層レベルのためのビ
ルディング・ブロックになる。従って、リーフ300の
右エッジに生じるレベル3の相互接続バス213の変更
は、1回だけしか設計されないので、設計努力が最小限
に抑えられる。リーフ300が、ステップ・アンド・リ
ピート処理を利用して複製されると、「ブロック」と呼
ばれるより高いレベルの階層(その一部が図4に示され
ている)が形成される。ブロック400は、図4に示す
ように、レベル2の相互接続バス212がブロック40
0の全てを横切って延び、その終端がブロック400の
エッジにくるようにして、互いに垂直方向に形成される
いくつかのリーフ300から構成される。
【0042】ブロック400は、ステップ・アンド・リ
ピート処理の後、エッジに修正を施して、次の階層レベ
ルのためのタイリング可能な単位を形成するという点
で、リーフ300と同様に形成される。図4の特定の例
に示すブロック400の場合、レベル2の相互接続バス
212の終端がブロック400の上方及び下方のエッジ
にくるように、一方、レベル4の相互接続バス214
は、ブロック400の境界を越えて外側に延びることが
できるように、上方及び下方のエッジに修正が施され
る。
ピート処理の後、エッジに修正を施して、次の階層レベ
ルのためのタイリング可能な単位を形成するという点
で、リーフ300と同様に形成される。図4の特定の例
に示すブロック400の場合、レベル2の相互接続バス
212の終端がブロック400の上方及び下方のエッジ
にくるように、一方、レベル4の相互接続バス214
は、ブロック400の境界を越えて外側に延びることが
できるように、上方及び下方のエッジに修正が施され
る。
【0043】ステップ・アンド・リピート処理を利用し
て、ブロック400を複製することにより、図5に示す
セクタ500と呼ばれるさらに高いレベルを形成するこ
とができる。レベル3の相互接続バス213は、セクタ
500を横切って延びるが、その内部に制限される。レ
ベル4の相互接続構造は、結合すると、セクタ500の
境界を横切って延び、チップ全体を横断することにな
る。
て、ブロック400を複製することにより、図5に示す
セクタ500と呼ばれるさらに高いレベルを形成するこ
とができる。レベル3の相互接続バス213は、セクタ
500を横切って延びるが、その内部に制限される。レ
ベル4の相互接続構造は、結合すると、セクタ500の
境界を横切って延び、チップ全体を横断することにな
る。
【0044】例示の構造の場合、レベル2の相互接続バ
ス212は、各ブロック400におけるスタックされた
リーフ300の高さに沿って延びる80本のワイヤ(2
0本/タイル×4タイル/リーフ)によって形成され
る。レベル2の相互接続バス212によって、各ブロッ
ク400毎に、16つのリーフ間だけのデータ・トラヒ
ックが可能になる。レベル2の相互接続バス212が、
レベル1の相互接続バス211と交差する位置で、各レ
ベル2のワイヤと各レベル1の交差点に、十分なプログ
ラマブル・クロスバー・マトリックスを形成することが
可能になる。しかし、十分なクロスバー・スイッチはけ
た外れに複雑である。望ましい実施例の場合、粗密なク
ロスバーが用いられる。粗密なクロスバーを用いる場
合、所定の修正を施して、FPGAに対する設計の容易
な配置及び経路選択を可能にするのに十分な多様性を持
たせることが必要になる。これらの修正については、さ
らに詳細に後述する。
ス212は、各ブロック400におけるスタックされた
リーフ300の高さに沿って延びる80本のワイヤ(2
0本/タイル×4タイル/リーフ)によって形成され
る。レベル2の相互接続バス212によって、各ブロッ
ク400毎に、16つのリーフ間だけのデータ・トラヒ
ックが可能になる。レベル2の相互接続バス212が、
レベル1の相互接続バス211と交差する位置で、各レ
ベル2のワイヤと各レベル1の交差点に、十分なプログ
ラマブル・クロスバー・マトリックスを形成することが
可能になる。しかし、十分なクロスバー・スイッチはけ
た外れに複雑である。望ましい実施例の場合、粗密なク
ロスバーが用いられる。粗密なクロスバーを用いる場
合、所定の修正を施して、FPGAに対する設計の容易
な配置及び経路選択を可能にするのに十分な多様性を持
たせることが必要になる。これらの修正については、さ
らに詳細に後述する。
【0045】該プログラマブル・スイッチは、レベル2
の相互接続バス212からレベル1の相互接続バス21
1への信号伝達だけを行うのが望ましいが、レベル1の
相互接続バス211から上位のレベル2の相互接続バス
212への信号伝達を意図したものではない。この特徴
によって、スイッチの設計が単純化され、また、本発明
に従って、FPGAに対する設計の経路選択時における
制約条件として課せられると、コンパイルが大幅に単純
化される。階層レベル間のスイッチを単一方向において
のみ可能にするため、上述のハイパーリンクが必要にな
る。
の相互接続バス212からレベル1の相互接続バス21
1への信号伝達だけを行うのが望ましいが、レベル1の
相互接続バス211から上位のレベル2の相互接続バス
212への信号伝達を意図したものではない。この特徴
によって、スイッチの設計が単純化され、また、本発明
に従って、FPGAに対する設計の経路選択時における
制約条件として課せられると、コンパイルが大幅に単純
化される。階層レベル間のスイッチを単一方向において
のみ可能にするため、上述のハイパーリンクが必要にな
る。
【0046】特定の例の場合、1つのメモリ・ブロック
に加えて、15つのブロック400を並べて配置するこ
とにより、セクタ500が形成される。レベル3の相互
接続バス213が、セクタの長さに沿って延びる352
本までのワイヤ(22本/リーフ×16リーフ/ブロッ
ク)によって形成される。後述のように、レベル3のワ
イヤに利用可能な352本のワイヤの一部については、
利用者がより高い階層レベルに指定することが可能であ
る。従って、レベル3の相互接続バス213における実
際のワイヤ数は、アプリケーション毎に変動することに
なる。解説をしやすくするため、レベル3の相互接続バ
ス213は、レベル3/6相互接続バス213とも称す
ることにする。
に加えて、15つのブロック400を並べて配置するこ
とにより、セクタ500が形成される。レベル3の相互
接続バス213が、セクタの長さに沿って延びる352
本までのワイヤ(22本/リーフ×16リーフ/ブロッ
ク)によって形成される。後述のように、レベル3のワ
イヤに利用可能な352本のワイヤの一部については、
利用者がより高い階層レベルに指定することが可能であ
る。従って、レベル3の相互接続バス213における実
際のワイヤ数は、アプリケーション毎に変動することに
なる。解説をしやすくするため、レベル3の相互接続バ
ス213は、レベル3/6相互接続バス213とも称す
ることにする。
【0047】レベル3/6相互接続バス213によれ
ば、セクタ500の15つのブロック400間における
データ・トラヒックだけが可能になる。レベル6の相互
接続バスによれば、集積回路チップ600(図6に示
す)間のデータ・トラヒックが可能になる。レベル3の
相互接続バス213は、レベル2の相互接続バス212
と交差し、特定の例の場合、レベル3のワイヤとレベル
2のワイヤとの選択された交差点に配置されたプログラ
マブル・スイッチによって、粗密なクロスバーが形成さ
れる。やはり、レベル2の相互接続バス212から上位
のレベル3の相互接続バス213に対してではなく、レ
ベル3の相互接続バス213からレベル2の相互接続バ
ス212に対してのみ、信号を結合できるようにするこ
とが望ましい。
ば、セクタ500の15つのブロック400間における
データ・トラヒックだけが可能になる。レベル6の相互
接続バスによれば、集積回路チップ600(図6に示
す)間のデータ・トラヒックが可能になる。レベル3の
相互接続バス213は、レベル2の相互接続バス212
と交差し、特定の例の場合、レベル3のワイヤとレベル
2のワイヤとの選択された交差点に配置されたプログラ
マブル・スイッチによって、粗密なクロスバーが形成さ
れる。やはり、レベル2の相互接続バス212から上位
のレベル3の相互接続バス213に対してではなく、レ
ベル3の相互接続バス213からレベル2の相互接続バ
ス212に対してのみ、信号を結合できるようにするこ
とが望ましい。
【0048】特定の例の場合、3つのセクタを互いに上
部で組み合わせることによって、図5に示す集積回路チ
ップ600が形成される。レベル4の相互接続バス21
4は、660本のワイヤ(11本/タイル×4タイル/
リーフ×15リーフ/セクタ)によって形成され、その
一部については、利用者が後述のレベル5の相互接続バ
スに指定することが可能である。解説を容易にするた
め、レベル4の相互接続バス214に利用可能な660
本のワイヤは、代わりに、レベル4/5相互接続バス2
14と呼ぶことにする。レベル4の相互接続バス214
のレベル4の部分は、集積回路チップ600のセクタ5
00間におけるデータ・トラヒックだけを伝達する。レ
ベル4の相互接続バス214のレベル5の部分は、デー
タ・トラヒックを他の集積回路チップ600にまで拡張
できるようにする。
部で組み合わせることによって、図5に示す集積回路チ
ップ600が形成される。レベル4の相互接続バス21
4は、660本のワイヤ(11本/タイル×4タイル/
リーフ×15リーフ/セクタ)によって形成され、その
一部については、利用者が後述のレベル5の相互接続バ
スに指定することが可能である。解説を容易にするた
め、レベル4の相互接続バス214に利用可能な660
本のワイヤは、代わりに、レベル4/5相互接続バス2
14と呼ぶことにする。レベル4の相互接続バス214
のレベル4の部分は、集積回路チップ600のセクタ5
00間におけるデータ・トラヒックだけを伝達する。レ
ベル4の相互接続バス214のレベル5の部分は、デー
タ・トラヒックを他の集積回路チップ600にまで拡張
できるようにする。
【0049】特定の例の集積回路チップ600は、従っ
て、幅60タイル×高さ48タイルであり、集積回路チ
ップ上に2880つのタイルを設けられることになる。
レベル4/5相互接続バス214が、レベル3/6相互
接続バス213と交差する。望ましい実施例の場合、粗
密なクロスバーが、レベル4/5相互接続バス214の
ワイヤと、レベル3/6相互接続バス213のワイヤと
の交差点において用いられる。他の階層レベルとは異な
り、レベル4の相互接続バスとレベル3の相互接続バス
を結合するスイッチは、双方向性であることが望まし
い。
て、幅60タイル×高さ48タイルであり、集積回路チ
ップ上に2880つのタイルを設けられることになる。
レベル4/5相互接続バス214が、レベル3/6相互
接続バス213と交差する。望ましい実施例の場合、粗
密なクロスバーが、レベル4/5相互接続バス214の
ワイヤと、レベル3/6相互接続バス213のワイヤと
の交差点において用いられる。他の階層レベルとは異な
り、レベル4の相互接続バスとレベル3の相互接続バス
を結合するスイッチは、双方向性であることが望まし
い。
【0050】これ以上の階層レベルは、既述のように相
互接続バスのうち任意のものを再分割することによって
得られる。図6の場合、2つの対向エッジ(すなわち、
北エッジと南エッジ)にマルチプレクサ(MUX)60
3を形成することによって、レベル4/5相互接続バス
214におけるワイヤから選択されたワイヤが多重化さ
れ、垂直方向に位置するワイヤ・ボンド615によって
示されるレベル5の相互接続バスが形成される。レベル
5の相互接続バスには、複数の集積回路チップ600を
包囲して、集積回路チップ600の非隣接側にボンド・
パッド607を結合するワイヤ605も含まれている。
レベル4/5相互接続バス214における上述の11本
のワイヤのうちの6本をプログラム可能に交換して、こ
れらを複数の集積回路チップ600の相互接続に用いら
れるレベル5のワイヤ605及びワイヤ・ボンド615
にすることが可能である。換言すれば、集積回路チップ
600の周辺において、11本のうち6本までのワイヤ
を選択的にボンド・パッドに結合することが可能であ
る。従って、レベル4及びレベル5の相互接続の実際の
数は、互いに自由に交換できるので、動的である。レベ
ル4の相互接続バス214は、集積回路チップ600の
境界に終端がくるが、レベル5のバスは、隣接集積回路
チップ600内に入り込む。
互接続バスのうち任意のものを再分割することによって
得られる。図6の場合、2つの対向エッジ(すなわち、
北エッジと南エッジ)にマルチプレクサ(MUX)60
3を形成することによって、レベル4/5相互接続バス
214におけるワイヤから選択されたワイヤが多重化さ
れ、垂直方向に位置するワイヤ・ボンド615によって
示されるレベル5の相互接続バスが形成される。レベル
5の相互接続バスには、複数の集積回路チップ600を
包囲して、集積回路チップ600の非隣接側にボンド・
パッド607を結合するワイヤ605も含まれている。
レベル4/5相互接続バス214における上述の11本
のワイヤのうちの6本をプログラム可能に交換して、こ
れらを複数の集積回路チップ600の相互接続に用いら
れるレベル5のワイヤ605及びワイヤ・ボンド615
にすることが可能である。換言すれば、集積回路チップ
600の周辺において、11本のうち6本までのワイヤ
を選択的にボンド・パッドに結合することが可能であ
る。従って、レベル4及びレベル5の相互接続の実際の
数は、互いに自由に交換できるので、動的である。レベ
ル4の相互接続バス214は、集積回路チップ600の
境界に終端がくるが、レベル5のバスは、隣接集積回路
チップ600内に入り込む。
【0051】図6にワイヤ616によって示されたレベ
ル6の相互接続は、マルチプレクサ602を用いて、レ
ベル3/6相互接続バス213の選択されたワイヤとワ
イヤ・ボンド616を結合することによって得られる。
望ましい実施例の場合、マルチプレクサ604は、各集
積回路チップ600の1つのエッジだけにしか形成され
ない。望ましい実施例の場合、マルチプレクサ604
は、各集積回路チップ600のマルチプレクサ602と
は反対の側に設けられる。マルチプレクサ604は、選
択されたレベル3及びレベル4の相互接続ワイヤをユー
ザ入力及び出力に結合するために利用される。図6に示
すように、集積回路チップ600を回転させて、隣接す
る集積回路チップのマルチプレクサ602が互いに向か
い合うようにすることによって、複数の集積回路チップ
が組み合わせられて、相互接続バスの第5及び第6レベ
ルが形成される。レベル3の相互接続バス213におけ
る上述の22本のワイヤのうちの8本までは、集積回路
チップ周辺におけるボンド・パッドに選択的にスイッチ
することができる。ボンド・パッドに結合されると、レ
ベル6のバスは、ワイヤ・ボンドまたは他の既知の集積
回路チップ相互接続方法によって、隣接するFPGAの
集積回路チップ600まで延ばすことが可能である。従
って、レベル3及びレベル6のバスの実際の幅は、互い
に自由に交換できるので、動的である。レベル3の相互
接続バス213は、集積回路チップ600の境界に終端
がくるが、レベル6のバスは、隣接集積回路チップまた
は一次I/Oにまで延びる。
ル6の相互接続は、マルチプレクサ602を用いて、レ
ベル3/6相互接続バス213の選択されたワイヤとワ
イヤ・ボンド616を結合することによって得られる。
望ましい実施例の場合、マルチプレクサ604は、各集
積回路チップ600の1つのエッジだけにしか形成され
ない。望ましい実施例の場合、マルチプレクサ604
は、各集積回路チップ600のマルチプレクサ602と
は反対の側に設けられる。マルチプレクサ604は、選
択されたレベル3及びレベル4の相互接続ワイヤをユー
ザ入力及び出力に結合するために利用される。図6に示
すように、集積回路チップ600を回転させて、隣接す
る集積回路チップのマルチプレクサ602が互いに向か
い合うようにすることによって、複数の集積回路チップ
が組み合わせられて、相互接続バスの第5及び第6レベ
ルが形成される。レベル3の相互接続バス213におけ
る上述の22本のワイヤのうちの8本までは、集積回路
チップ周辺におけるボンド・パッドに選択的にスイッチ
することができる。ボンド・パッドに結合されると、レ
ベル6のバスは、ワイヤ・ボンドまたは他の既知の集積
回路チップ相互接続方法によって、隣接するFPGAの
集積回路チップ600まで延ばすことが可能である。従
って、レベル3及びレベル6のバスの実際の幅は、互い
に自由に交換できるので、動的である。レベル3の相互
接続バス213は、集積回路チップ600の境界に終端
がくるが、レベル6のバスは、隣接集積回路チップまた
は一次I/Oにまで延びる。
【0052】5つ以上の集積回路チップを互いに結合す
ることが可能であり、望ましい実施例の場合、6つの集
積回路チップが結合される。図6に示すように結合する
ことが可能なチップ数に関する実際の制限は、とりわ
け、各集積回路チップ600のPALE100の数、相
互接続バスの各レベルが支援可能な帯域幅、並びに、所
望の性能によって決定される。
ることが可能であり、望ましい実施例の場合、6つの集
積回路チップが結合される。図6に示すように結合する
ことが可能なチップ数に関する実際の制限は、とりわ
け、各集積回路チップ600のPALE100の数、相
互接続バスの各レベルが支援可能な帯域幅、並びに、所
望の性能によって決定される。
【0053】タイルを再生して、階層構造を形成する
と、レベル1の相互接続バス211及びレベル2の相互
接続バス212のラインは比較的短くなり、結果とし
て、ラインの長さに沿ったバッファリングが不要にな
る。しかし、レベル3の相互接続バス213及びレベル
4の相互接続バス214のラインは、チップ600の長
さ及び幅にわたって延びるので、RC効果のために信号
速度がかなり低下する。従って、レベル3及び4のバス
にバッファ(不図示)を配置して、完全な論理状態及び
エッジを確保することが望ましい。各ラインの信号の方
向は、回路の配置及び経路選択の前に分かっているの
で、バッファは、単一方向に動作するようにプログラム
することができる。また、バッファを使用禁止にして、
バッファのいずれかの側のラインの部分をセグメント化
する働きをする、高インピーダンスの開路ブレークをバ
ス・ラインに生じさせることも可能である。バス・ライ
ンをセグメント化すると、バスの未使用部分のリサイク
ルが可能になるので、有効バス幅が増大する。また、セ
グメント化すると、バス・ライン長の選択的短縮によっ
て、RC効果に起因する伝搬遅延を短くすることも可能
になる。
と、レベル1の相互接続バス211及びレベル2の相互
接続バス212のラインは比較的短くなり、結果とし
て、ラインの長さに沿ったバッファリングが不要にな
る。しかし、レベル3の相互接続バス213及びレベル
4の相互接続バス214のラインは、チップ600の長
さ及び幅にわたって延びるので、RC効果のために信号
速度がかなり低下する。従って、レベル3及び4のバス
にバッファ(不図示)を配置して、完全な論理状態及び
エッジを確保することが望ましい。各ラインの信号の方
向は、回路の配置及び経路選択の前に分かっているの
で、バッファは、単一方向に動作するようにプログラム
することができる。また、バッファを使用禁止にして、
バッファのいずれかの側のラインの部分をセグメント化
する働きをする、高インピーダンスの開路ブレークをバ
ス・ラインに生じさせることも可能である。バス・ライ
ンをセグメント化すると、バスの未使用部分のリサイク
ルが可能になるので、有効バス幅が増大する。また、セ
グメント化すると、バス・ライン長の選択的短縮によっ
て、RC効果に起因する伝搬遅延を短くすることも可能
になる。
【0054】階層レベル2及び4/5は、物理的には金
属層3によって実施される。階層レベル3/6は、金属
層2によって実施される。階層レベル1は、金属層1に
よって実施される。金属層2の導体は、金属層1及び3
の導体に対して垂直な配向が施されている。各金属層に
おいて、ワイヤが1つのタイルから隣接タイルに渡る際
に生じる周期的なワイヤの回転を除けば、金属ワイヤ
は、互いにほぼ平行な配向が施されている。
属層3によって実施される。階層レベル3/6は、金属
層2によって実施される。階層レベル1は、金属層1に
よって実施される。金属層2の導体は、金属層1及び3
の導体に対して垂直な配向が施されている。各金属層に
おいて、ワイヤが1つのタイルから隣接タイルに渡る際
に生じる周期的なワイヤの回転を除けば、金属ワイヤ
は、互いにほぼ平行な配向が施されている。
【0055】あるレベルと次のレベルをプログラム可能
に結合して、上述のクロスバー・マトリックスを形成す
るため、あるレベルからのワイヤが、別のレベルからの
ワイヤと交差する位置に、複数のSRAM制御式スイッ
チが配置される。SRAM制御式スイッチは、信号がレ
ベル1からPALE100の入力へ下方にだけしか伝搬
することができないような、単方向性スイッチであるこ
とが望ましい。同様に、単方向性スイッチは、信号が階
層レベル1つ分下方にだけしか伝搬することができない
ように、レベル2をレベル1に、レベル3をレベル2に
接続するために用いられる。レベル4とレベル3との間
の3つのクロスオーバにおけるプログラマブル・スイッ
チは、双方向性であり、上方及び下方への信号の伝搬を
可能にする。
に結合して、上述のクロスバー・マトリックスを形成す
るため、あるレベルからのワイヤが、別のレベルからの
ワイヤと交差する位置に、複数のSRAM制御式スイッ
チが配置される。SRAM制御式スイッチは、信号がレ
ベル1からPALE100の入力へ下方にだけしか伝搬
することができないような、単方向性スイッチであるこ
とが望ましい。同様に、単方向性スイッチは、信号が階
層レベル1つ分下方にだけしか伝搬することができない
ように、レベル2をレベル1に、レベル3をレベル2に
接続するために用いられる。レベル4とレベル3との間
の3つのクロスオーバにおけるプログラマブル・スイッ
チは、双方向性であり、上方及び下方への信号の伝搬を
可能にする。
【0056】本発明の特定の実施例を解説し、例証する
ために、かなりの特定情報が与えられる。本発明が、本
書で示される特定の設計基準によって制限を受けるもの
ではないことはもちろん明白である。各階層レベルにお
ける素子数、並びに、各相互接続レベル毎に用いられる
ワイヤ数によって、さまざまな実施が可能である。スイ
ッチは、指示のある場合(ハイパーリンクが用いられる
場合)、単一方向性とすることもできるし、あるいは、
双方向性とすることも可能である。スイッチは、再度プ
ログラム可能とすることも、あるいは、一度だけプログ
ラム可能とすることも可能である。FPGA設計の熟練
者には明らかな、以上の及びその他の修正は、本発明に
よる構造の単なる拡張であり、同等物である。
ために、かなりの特定情報が与えられる。本発明が、本
書で示される特定の設計基準によって制限を受けるもの
ではないことはもちろん明白である。各階層レベルにお
ける素子数、並びに、各相互接続レベル毎に用いられる
ワイヤ数によって、さまざまな実施が可能である。スイ
ッチは、指示のある場合(ハイパーリンクが用いられる
場合)、単一方向性とすることもできるし、あるいは、
双方向性とすることも可能である。スイッチは、再度プ
ログラム可能とすることも、あるいは、一度だけプログ
ラム可能とすることも可能である。FPGA設計の熟練
者には明らかな、以上の及びその他の修正は、本発明に
よる構造の単なる拡張であり、同等物である。
【0057】以下に繰り上げサブシステムについて説明
する。上述の相互接続構造を補足するため、専用相互接
続を設けることも可能である。例えば、望ましい実施例
の場合、図2に示す繰り上げ入力ライン312及び繰り
上げ出力ライン313、並びに、図3に示す繰り上げリ
ターン・ワイヤ314が実施される。繰り上げサブシス
テムによって、各PALEは、主出力項と繰り上げ出力
項の両方を計算することが可能になる。繰り上げ項は、
タイル200の右側だけにおける近傍PALE100の
選択されたデータ入力(例えば、図2のAデータ入力)
に接続される。
する。上述の相互接続構造を補足するため、専用相互接
続を設けることも可能である。例えば、望ましい実施例
の場合、図2に示す繰り上げ入力ライン312及び繰り
上げ出力ライン313、並びに、図3に示す繰り上げリ
ターン・ワイヤ314が実施される。繰り上げサブシス
テムによって、各PALEは、主出力項と繰り上げ出力
項の両方を計算することが可能になる。繰り上げ項は、
タイル200の右側だけにおける近傍PALE100の
選択されたデータ入力(例えば、図2のAデータ入力)
に接続される。
【0058】繰り上げ信号は、リーフ300内の多くの
PALE100を伝搬することが可能であり、繰り上げ
リターン・ワイヤ314を用いて、次のリーフ300の
始端に戻すことが可能である。本発明のタイリング可能
なアーキテクチャの場合、各タイルには、図2に示すよ
うに、繰り上げリターン・ワイヤの最小部分が含まれて
いる。リーフ300の形成に用いられるステップ・アン
ド・リピート処理の後で、各リーフ300におけるタイ
ル200の繰り上げ出力ライン213は、繰り上げリタ
ーン・ライン314にハード配線される。同様に、繰り
上げ入力ライン312は、リーフ300の反対側におい
て、下方の隣接リーフ300からの繰り上げリターン・
ライン314に結合される。これによって、ブロック4
00内におけるタイル200を最大で全部利用して、レ
ジスタ、カウンタ、または、加算器を形成することが可
能になる。繰り上げシステムは、ブロック400の外側
にまで延びないことが望ましい。
PALE100を伝搬することが可能であり、繰り上げ
リターン・ワイヤ314を用いて、次のリーフ300の
始端に戻すことが可能である。本発明のタイリング可能
なアーキテクチャの場合、各タイルには、図2に示すよ
うに、繰り上げリターン・ワイヤの最小部分が含まれて
いる。リーフ300の形成に用いられるステップ・アン
ド・リピート処理の後で、各リーフ300におけるタイ
ル200の繰り上げ出力ライン213は、繰り上げリタ
ーン・ライン314にハード配線される。同様に、繰り
上げ入力ライン312は、リーフ300の反対側におい
て、下方の隣接リーフ300からの繰り上げリターン・
ライン314に結合される。これによって、ブロック4
00内におけるタイル200を最大で全部利用して、レ
ジスタ、カウンタ、または、加算器を形成することが可
能になる。繰り上げシステムは、ブロック400の外側
にまで延びないことが望ましい。
【0059】以下に相互接続の強化について説明する。
上述のように、粗密なクロスバー・スイッチ・マトリッ
クスを用いて、各相互接続バスと次に低い階層の相互接
続バスを結合するのが望ましい。十分な交差プログラマ
ブル相互接続アレイには、全ての信号について100%
の接続性が得られるという潜在的利点がある。しかし、
各プログラマブル・スイッチは、集積回路チップのかな
りの面積を占めるので、各回路設計には、ほんのわずか
しか用いられず、従って、十分な交差マトリックスは非
効率的である。
上述のように、粗密なクロスバー・スイッチ・マトリッ
クスを用いて、各相互接続バスと次に低い階層の相互接
続バスを結合するのが望ましい。十分な交差プログラマ
ブル相互接続アレイには、全ての信号について100%
の接続性が得られるという潜在的利点がある。しかし、
各プログラマブル・スイッチは、集積回路チップのかな
りの面積を占めるので、各回路設計には、ほんのわずか
しか用いられず、従って、十分な交差マトリックスは非
効率的である。
【0060】本発明のハイパーリンクの特徴によって、
各交差マトリックスは、階層的に下方への信号伝搬だけ
しか必要としなくなるので、交差スイッチ・マトリック
スの重圧がある程度軽減される。ハイパーリンクが階層
的に上方への信号伝搬を取り扱うという点を想起された
い。
各交差マトリックスは、階層的に下方への信号伝搬だけ
しか必要としなくなるので、交差スイッチ・マトリック
スの重圧がある程度軽減される。ハイパーリンクが階層
的に上方への信号伝搬を取り扱うという点を想起された
い。
【0061】相互接続性は、交差マトリックスにおける
擬似ランダム・スイッチ配置によってさらに強化され
る。交差マトリックスにきちんとした順序でスイッチを
配置すると、設計をFPGAにコンパイルする場合に困
難を生じることが分かった。これは、とりわけ、大型F
PGAの場合に当てはまる。一般に、この困難が生じる
のは、集積回路チップ600のある部分において利用可
能な相互接続が、集積回路チップ600の別の部分にお
いて利用可能な相互接続と同一であるためである。つま
り、相互接続の多様性が規則的なスイッチ・アレイによ
って制限される。
擬似ランダム・スイッチ配置によってさらに強化され
る。交差マトリックスにきちんとした順序でスイッチを
配置すると、設計をFPGAにコンパイルする場合に困
難を生じることが分かった。これは、とりわけ、大型F
PGAの場合に当てはまる。一般に、この困難が生じる
のは、集積回路チップ600のある部分において利用可
能な相互接続が、集積回路チップ600の別の部分にお
いて利用可能な相互接続と同一であるためである。つま
り、相互接続の多様性が規則的なスイッチ・アレイによ
って制限される。
【0062】本発明によれば、レベル1〜4の相互接続
バス211〜214のそれぞれから構成されるライン
が、1つのタイル200から隣接するタイル200に渡
る際に回転する。タイル200のエッジに注目すると、
これは図2及び図3に示されている。例えば、タイル2
00の側部の1つにおけるレベル1の相互接続バス21
1の各ワイヤは、回転またはレベル1の相互接続バス2
11の全幅だけ下方に位置調整する最上部のワイヤを除
いて、上方に向かい、ワイヤ位置1つ分だけ位置調整す
る。同様の構成が、バスの全てに存在する。
バス211〜214のそれぞれから構成されるライン
が、1つのタイル200から隣接するタイル200に渡
る際に回転する。タイル200のエッジに注目すると、
これは図2及び図3に示されている。例えば、タイル2
00の側部の1つにおけるレベル1の相互接続バス21
1の各ワイヤは、回転またはレベル1の相互接続バス2
11の全幅だけ下方に位置調整する最上部のワイヤを除
いて、上方に向かい、ワイヤ位置1つ分だけ位置調整す
る。同様の構成が、バスの全てに存在する。
【0063】回転時、1つのラインを除く全てが、ある
方向において位置1つ分だけ回転し、残りの1つのライ
ンは、別の方向に逆回転して、バス全体にわたって延
び、バス内の他の全てのラインと交差する。このワイヤ
の回転によって、相互接続スイッチは、物理的に規則的
パターン内に位置することが可能になるので、各タイル
は同一であるが、同時に、スイッチが隣接タイル200
の相互接続バスにおける電気的に異なる位置に生じるこ
とになる。従って、相互接続の多様性の問題が、簡単に
製造できるタイリング可能な構造を妥協によって損なう
ことなく、解決される。
方向において位置1つ分だけ回転し、残りの1つのライ
ンは、別の方向に逆回転して、バス全体にわたって延
び、バス内の他の全てのラインと交差する。このワイヤ
の回転によって、相互接続スイッチは、物理的に規則的
パターン内に位置することが可能になるので、各タイル
は同一であるが、同時に、スイッチが隣接タイル200
の相互接続バスにおける電気的に異なる位置に生じるこ
とになる。従って、相互接続の多様性の問題が、簡単に
製造できるタイリング可能な構造を妥協によって損なう
ことなく、解決される。
【0064】相互接続性を高めるもう1つの特徴は、上
述のレベル3/6相互接続バス及びレベル4/5相互接
続バスに関する自由に交換できる手段である。FPGA
の設計において、バス幅は、バスに流れると予測される
トラヒックの統計分析に基づいて選択される。統計分析
によって、平均的なバス幅の設計基準及び分散(すなわ
ち、標準偏差の二乗)が得られるので、FPGAにおい
て十分な数の設計を実施することが可能になる。
述のレベル3/6相互接続バス及びレベル4/5相互接
続バスに関する自由に交換できる手段である。FPGA
の設計において、バス幅は、バスに流れると予測される
トラヒックの統計分析に基づいて選択される。統計分析
によって、平均的なバス幅の設計基準及び分散(すなわ
ち、標準偏差の二乗)が得られるので、FPGAにおい
て十分な数の設計を実施することが可能になる。
【0065】可変な共用手段を備えたバスを設計する場
合、バス幅は、各バスの平均バス幅を加算し、さらに、
個々の分散の合計の平方根を加算することによって求め
られる。この結果、2つの独立したバスで実施した場
合、より多くのラインが必要となるトラヒックの処理を
行うことが可能なバス幅が狭くなる。例えば、望ましい
実施例の場合、2つの独立したバスとして実施すると、
幅が22ライン分で、レベルが3/6のバスは、25本
のラインを必要とする。
合、バス幅は、各バスの平均バス幅を加算し、さらに、
個々の分散の合計の平方根を加算することによって求め
られる。この結果、2つの独立したバスで実施した場
合、より多くのラインが必要となるトラヒックの処理を
行うことが可能なバス幅が狭くなる。例えば、望ましい
実施例の場合、2つの独立したバスとして実施すると、
幅が22ライン分で、レベルが3/6のバスは、25本
のラインを必要とする。
【0066】望ましい行い方は、十分なまたは豊富なク
ロスバー・マトリックスを実施して、チップ周辺におい
て、レベル5の相互接続バスとレベル6の相互接続バス
をボンド・パッドに結合する。レベル5の相互接続バス
とレベル6の相互接続バスの各ラインをボンド・パッド
に結合する最小限の相互接続を許容することができる
が、この最小限の相互接続によって、FPGAの1つに
対する設計の配置/経路選択とマルチチップ設計の隣接
FPGAの1つに対する設計の配置/経路選択がリンク
される。十分なクロスバー・マトリックスによって、2
つの設計問題が分離されるので、チップ・レベルの区分
化が完了すると、各集積回路チップに対する設計のコン
パイルを個別に実施することが可能になり、コンパイル
時に同時に処理しなければならない情報量が大幅に減少
する。これには、より小型で、非力なコンピュータ及び
ワークステーションによるコンパイルを可能にするとい
う実用的な効果がある。
ロスバー・マトリックスを実施して、チップ周辺におい
て、レベル5の相互接続バスとレベル6の相互接続バス
をボンド・パッドに結合する。レベル5の相互接続バス
とレベル6の相互接続バスの各ラインをボンド・パッド
に結合する最小限の相互接続を許容することができる
が、この最小限の相互接続によって、FPGAの1つに
対する設計の配置/経路選択とマルチチップ設計の隣接
FPGAの1つに対する設計の配置/経路選択がリンク
される。十分なクロスバー・マトリックスによって、2
つの設計問題が分離されるので、チップ・レベルの区分
化が完了すると、各集積回路チップに対する設計のコン
パイルを個別に実施することが可能になり、コンパイル
時に同時に処理しなければならない情報量が大幅に減少
する。これには、より小型で、非力なコンピュータ及び
ワークステーションによるコンパイルを可能にするとい
う実用的な効果がある。
【0067】結論として、これまでに明らかになったよ
うに、フィールド・プログラマブル・ゲート・アレイ・
アーキテクチャには、設計効率がよく、相互接続資源の
効率のよい利用を可能にする真の階層的相互接続が施さ
れる。望ましい実施例に基づいて例示され、解説された
特定の例の詳細は、完璧を期して示されただけのもので
あり、本発明の教示に関する制限とみなされるものでは
ない。従って、本書で明白に示唆された修正を含む特定
の実施例に関する多くの修正は、本書に解説の望ましい
実施例と同等である。
うに、フィールド・プログラマブル・ゲート・アレイ・
アーキテクチャには、設計効率がよく、相互接続資源の
効率のよい利用を可能にする真の階層的相互接続が施さ
れる。望ましい実施例に基づいて例示され、解説された
特定の例の詳細は、完璧を期して示されただけのもので
あり、本発明の教示に関する制限とみなされるものでは
ない。従って、本書で明白に示唆された修正を含む特定
の実施例に関する多くの修正は、本書に解説の望ましい
実施例と同等である。
【0068】以下に本発明の実施の形態を要約する。 1. それぞれ、複数のデータ入力(101)を備え、
データ出力信号を発生する、複数のプログラマブル・ア
トミック論理素子(PALE)(100)と、それぞ
れ、いくつかのPALE(100)と、リーフ(30
0)内に制限されたレベル1の相互接続バス(211)
とからなる複数のリーフ(300)と、それぞれ、いく
つかのリーフ(300)と、ブロック(400)内に制
限されたレベル2の相互接続バス(212)とからなる
複数のブロック(400)と、それぞれ、複数のブロッ
ク(400)と、セクタ(500)内に制限されたレベ
ル3の相互接続バス(213)とからなる複数のセクタ
(500)と、各PALE(100)内にあって、PA
LE(100)からのデータ出力信号を1つ以上のすぐ
隣接したPALE(100)に送り込むための第1のド
ライバ(102)と、各PALE(100)内にあっ
て、PALE(100)からのデータ出力信号を送り出
すための第2のドライバ(103)と、第2のドライバ
(103)をリーフ(300)の1つにおけるレベル1
の相互接続バス(211)に結合する、各PALE(1
00)に関連した第1のプログラマブル・ハイパーリン
クと、第2のドライバ(103)をブロック(400)
の1つにおけるレベル2の相互接続バス(212)に結
合する、各PALE(100)に関連した第2のプログ
ラマブル・ハイパーリンクと、各PALE(100)内
にあって、PALE(100)からのデータ出力信号を
送り出すための第3のドライバ(104)と、第3のド
ライバ(104)をセクタ(500)の1つにおけるレ
ベル3の相互接続バス(213)に結合する、各PAL
E(100)に関連した第3のプログラマブル・ハイパ
ーリンクとが含まれている、プログラマブル論理素子。
データ出力信号を発生する、複数のプログラマブル・ア
トミック論理素子(PALE)(100)と、それぞ
れ、いくつかのPALE(100)と、リーフ(30
0)内に制限されたレベル1の相互接続バス(211)
とからなる複数のリーフ(300)と、それぞれ、いく
つかのリーフ(300)と、ブロック(400)内に制
限されたレベル2の相互接続バス(212)とからなる
複数のブロック(400)と、それぞれ、複数のブロッ
ク(400)と、セクタ(500)内に制限されたレベ
ル3の相互接続バス(213)とからなる複数のセクタ
(500)と、各PALE(100)内にあって、PA
LE(100)からのデータ出力信号を1つ以上のすぐ
隣接したPALE(100)に送り込むための第1のド
ライバ(102)と、各PALE(100)内にあっ
て、PALE(100)からのデータ出力信号を送り出
すための第2のドライバ(103)と、第2のドライバ
(103)をリーフ(300)の1つにおけるレベル1
の相互接続バス(211)に結合する、各PALE(1
00)に関連した第1のプログラマブル・ハイパーリン
クと、第2のドライバ(103)をブロック(400)
の1つにおけるレベル2の相互接続バス(212)に結
合する、各PALE(100)に関連した第2のプログ
ラマブル・ハイパーリンクと、各PALE(100)内
にあって、PALE(100)からのデータ出力信号を
送り出すための第3のドライバ(104)と、第3のド
ライバ(104)をセクタ(500)の1つにおけるレ
ベル3の相互接続バス(213)に結合する、各PAL
E(100)に関連した第3のプログラマブル・ハイパ
ーリンクとが含まれている、プログラマブル論理素子。
【0069】2. 複数のセクタ(500)が、単一の
集積回路チップ(600)と、該集積回路チップ内に制
限されるレベル4の相互接続バス(214)と、各PA
LE内にあって、PALEからデータ出力信号を送り出
すための第4のドライバ(105)と、第4のドライバ
(105)を集積回路チップのレベル4の相互接続バス
(214)に結合する、各PALE(100)に関連し
た第4のプログラマブル・ハイパーリンクとを含む素子
から形成される上記1に記載のプログラマブル論理素
子。
集積回路チップ(600)と、該集積回路チップ内に制
限されるレベル4の相互接続バス(214)と、各PA
LE内にあって、PALEからデータ出力信号を送り出
すための第4のドライバ(105)と、第4のドライバ
(105)を集積回路チップのレベル4の相互接続バス
(214)に結合する、各PALE(100)に関連し
た第4のプログラマブル・ハイパーリンクとを含む素子
から形成される上記1に記載のプログラマブル論理素
子。
【0070】3. 複数のセクタ(500)が、複数の
集積回路チップ(600)と、各集積回路チップ内に制
限されるレベル4の相互接続バス(214)と、各PA
LE内にあって、PALEからデータ出力信号を送り出
すための第4のドライバ(105)と、第4のドライバ
(105)を集積回路チップのレベル4の相互接続バス
(214)に結合する、各PALE(100)に関連し
た第4のプログラマブル・ハイパーリンクとを含む素子
から形成される上記1に記載のプログラマブル論理素
子。
集積回路チップ(600)と、各集積回路チップ内に制
限されるレベル4の相互接続バス(214)と、各PA
LE内にあって、PALEからデータ出力信号を送り出
すための第4のドライバ(105)と、第4のドライバ
(105)を集積回路チップのレベル4の相互接続バス
(214)に結合する、各PALE(100)に関連し
た第4のプログラマブル・ハイパーリンクとを含む素子
から形成される上記1に記載のプログラマブル論理素
子。
【0071】4. 第4のプログラマブル・ハイパーリ
ンクが、第4のドライバ(105)をプログラム可能に
レベル5の相互接続バス(605)へと結合し、各集積
回路チップ(600)から別の集積回路チップ(60
0)に第1の方向に延びるレベル5の相互接続バス(6
05)と、 第3のプログラマブル・ハイパーリンク
が、第3のドライバ(104)をプログラム可能にレベ
ル6の相互接続バス(606)へと結合し、各集積回路
チップ(600)から別の集積回路チップ(600)に
第2の方向に延びるレベル6の相互接続バス(606)
とが含まれている上記3に記載のプログラマブル論理素
子。
ンクが、第4のドライバ(105)をプログラム可能に
レベル5の相互接続バス(605)へと結合し、各集積
回路チップ(600)から別の集積回路チップ(60
0)に第1の方向に延びるレベル5の相互接続バス(6
05)と、 第3のプログラマブル・ハイパーリンク
が、第3のドライバ(104)をプログラム可能にレベ
ル6の相互接続バス(606)へと結合し、各集積回路
チップ(600)から別の集積回路チップ(600)に
第2の方向に延びるレベル6の相互接続バス(606)
とが含まれている上記3に記載のプログラマブル論理素
子。
【0072】5. 第1のスイッチが、第2のドライバ
(103)をレベル2の相互接続バス(212)の独自
のワイヤに結合する、第1の複数のスイッチからなる第
2のプログラマブル・ハイパーリンクと、各第2のスイ
ッチが、第3のドライバ(104)をレベル3の相互接
続バス(213)の独自のワイヤに結合する第2の複数
のスイッチからなる第3のプログラマブル・ハイパーリ
ンクとが含まれている上記1に記載のプログラマブル論
理素子。
(103)をレベル2の相互接続バス(212)の独自
のワイヤに結合する、第1の複数のスイッチからなる第
2のプログラマブル・ハイパーリンクと、各第2のスイ
ッチが、第3のドライバ(104)をレベル3の相互接
続バス(213)の独自のワイヤに結合する第2の複数
のスイッチからなる第3のプログラマブル・ハイパーリ
ンクとが含まれている上記1に記載のプログラマブル論
理素子。
【0073】6. レベル1の相互接続バス(211)
をリーフ(300)内のPALE(100)データ入力
に結合する、十分に稠密なクロスバー・マトリックス
と、レベル2の相互接続バス(212)をレベル1の相
互接続バス(211)に結合する、第1の粗密なクロス
バー・マトリックスと、レベル3の相互接続バス(21
3)をレベル2の相互接続バス(212)に結合する、
第2の粗密なクロスバー・マトリックスとが含まれてい
る上記1に記載のプログラマブル論理素子。
をリーフ(300)内のPALE(100)データ入力
に結合する、十分に稠密なクロスバー・マトリックス
と、レベル2の相互接続バス(212)をレベル1の相
互接続バス(211)に結合する、第1の粗密なクロス
バー・マトリックスと、レベル3の相互接続バス(21
3)をレベル2の相互接続バス(212)に結合する、
第2の粗密なクロスバー・マトリックスとが含まれてい
る上記1に記載のプログラマブル論理素子。
【0074】7. 稠密なクロスバー・マトリックス
と、第1の粗密なクロスバー・マトリックスと、第2の
粗密なクロスバー・マトリックスとが、それぞれ、高レ
ベルの相互接続バスから低レベルの相互接続バスに第1
の方向に信号を伝導するスイッチからなる上記6に記載
のプログラマブル論理素子。
と、第1の粗密なクロスバー・マトリックスと、第2の
粗密なクロスバー・マトリックスとが、それぞれ、高レ
ベルの相互接続バスから低レベルの相互接続バスに第1
の方向に信号を伝導するスイッチからなる上記6に記載
のプログラマブル論理素子。
【0075】8. それぞれ、複数のデータ入力(10
4)を備え、データ出力信号を発生する、複数のプログ
ラマブル・アトミック論理素子(PALE)(100)
と、各区分が、独自の組をなす次に低い階層区分と、そ
の区分内にある独自の組をなす次に低い区分だけに延び
る相互接続バス(212、213、214)とから構成
され、最低レベルの階層が複数のPALE(100)の
1つである、複数の階層的に結合された区分(100、
300、400、500)と、PALEを含むより高レ
ベルの階層のそれぞれにおける相互接続バスのそれぞれ
に、PALEデータ出力信号をプログラム可能に結合す
る、各PALE内の複数のハイパーリンクとが含まれて
いる、プログラマブル論理素子。
4)を備え、データ出力信号を発生する、複数のプログ
ラマブル・アトミック論理素子(PALE)(100)
と、各区分が、独自の組をなす次に低い階層区分と、そ
の区分内にある独自の組をなす次に低い区分だけに延び
る相互接続バス(212、213、214)とから構成
され、最低レベルの階層が複数のPALE(100)の
1つである、複数の階層的に結合された区分(100、
300、400、500)と、PALEを含むより高レ
ベルの階層のそれぞれにおける相互接続バスのそれぞれ
に、PALEデータ出力信号をプログラム可能に結合す
る、各PALE内の複数のハイパーリンクとが含まれて
いる、プログラマブル論理素子。
【0076】9. プログラマブル論理素子への目標回
路設計のプログラミング方法において、プログラマブル
論理素子の基本プログラマブル単位と、基本プログラマ
ブル単位間の相互接続に関して定義される複数のネット
ワークに、回路設計をマッピングし、各階層レベル毎
に、いくつかの区分が含まれ、所定の階層レベルの各区
分が、所定の階層レベルにおけるいくつかの区分の他の
区分から電気的に分離された、相互接続バスを備えたプ
ログラマブル論理素子に、複数の階層的に関連した論理
区分(100、300、400、500)を設け、各区
分が、基本プログラマブル単位の1つに適合できるまで
マッピングされた回路設計を順次低い階層レベルの区分
に適合する部分をなすように再帰的に分割し、基本プロ
グラマブル単位のそれぞれに関連した複数のハイパーリ
ンクを設け、このハイパーリンクによって、基本プログ
ラマブル単位が、所定の基本プログラマブル単位がメン
バをなすレベルより高いレベルの任意の論理区分の相互
接続バスとの通信が可能であるようにする方法。
路設計のプログラミング方法において、プログラマブル
論理素子の基本プログラマブル単位と、基本プログラマ
ブル単位間の相互接続に関して定義される複数のネット
ワークに、回路設計をマッピングし、各階層レベル毎
に、いくつかの区分が含まれ、所定の階層レベルの各区
分が、所定の階層レベルにおけるいくつかの区分の他の
区分から電気的に分離された、相互接続バスを備えたプ
ログラマブル論理素子に、複数の階層的に関連した論理
区分(100、300、400、500)を設け、各区
分が、基本プログラマブル単位の1つに適合できるまで
マッピングされた回路設計を順次低い階層レベルの区分
に適合する部分をなすように再帰的に分割し、基本プロ
グラマブル単位のそれぞれに関連した複数のハイパーリ
ンクを設け、このハイパーリンクによって、基本プログ
ラマブル単位が、所定の基本プログラマブル単位がメン
バをなすレベルより高いレベルの任意の論理区分の相互
接続バスとの通信が可能であるようにする方法。
【0077】
【発明の効果】従来の階層的構造の場合、出力信号は、
例えば、レベル1の相互接続バス211といった、1つ
の階層レベルだけにしか結合されない。従って、従来の
構造の場合、信号は、PALE出力からレベル2の相互
接続バスに達するのに、少なくとも2つのスイッチを通
過しなければならない。これに対し、本発明では、各P
ALE100からレベル2の相互接続バスへの直接接続
すなわち「ハイパーリンク」が可能になる。ハイパーリ
ンクによって、先行技術に比べると、信号経路からスイ
ッチが1つ排除される。本発明によるアーキテクチャ
は、従来のやり方で(すなわち、各レベルの交差時に、
スイッチを利用してレベル毎に)信号を通すことも可能
であるが、ハイパーリンクによって、スイッチ数が大幅
に減少する。そして、フィールド・プログラマブル・ゲ
ート・アレイ・アーキテクチャには、設計効率がよく、
相互接続資源の効率のよい利用を可能にする真の階層的
相互接続が施される。
例えば、レベル1の相互接続バス211といった、1つ
の階層レベルだけにしか結合されない。従って、従来の
構造の場合、信号は、PALE出力からレベル2の相互
接続バスに達するのに、少なくとも2つのスイッチを通
過しなければならない。これに対し、本発明では、各P
ALE100からレベル2の相互接続バスへの直接接続
すなわち「ハイパーリンク」が可能になる。ハイパーリ
ンクによって、先行技術に比べると、信号経路からスイ
ッチが1つ排除される。本発明によるアーキテクチャ
は、従来のやり方で(すなわち、各レベルの交差時に、
スイッチを利用してレベル毎に)信号を通すことも可能
であるが、ハイパーリンクによって、スイッチ数が大幅
に減少する。そして、フィールド・プログラマブル・ゲ
ート・アレイ・アーキテクチャには、設計効率がよく、
相互接続資源の効率のよい利用を可能にする真の階層的
相互接続が施される。
【図1】本発明によるFPGAアーキテクチャに用いら
れる基本的プログラマブル素子の一例を示すブロック図
である。
れる基本的プログラマブル素子の一例を示すブロック図
である。
【図2】本発明によるFPGAの作製に用いられるタイ
ル例を示す図である。
ル例を示す図である。
【図3】「リーフ」と呼ばれるより高位の階層レベルを
形成するために組み合わせられた、図2のタイル・グル
ープを示す図である。
形成するために組み合わせられた、図2のタイル・グル
ープを示す図である。
【図4】「ブロック」と呼ばれるより高位の階層レベル
の一部を形成するために組み合わせられた、図3に示し
たリーフ・グループを示す図である。
の一部を形成するために組み合わせられた、図3に示し
たリーフ・グループを示す図である。
【図5】複数の階層レベルを有する、本発明によるアー
キテクチャを備えたFPGA集積回路(IC)を示す図
である。
キテクチャを備えたFPGA集積回路(IC)を示す図
である。
【図6】それ以上の階層レベルを形成するために相互接
続された、図5の複数ICを示す図である。
続された、図5の複数ICを示す図である。
100 プログラマブル・アトミック論理素子(PAL
E) 102、103、104、105 出力ドライバ 200 タイル 201、202、203、204、206、207、2
08、209 ライン 211 レベル1の相互接続バス 212 レベル2の相互接続バス 213 レベル3の相互接続バス 214 レベル4の相互接続バス 300 リーフ 314 繰り上げリターン・ワイヤ 400 ブロック 500 セクタ 600 集積回路チップ 602、603、604 マルチプレクサ 605 ワイヤ 607 ボンド・パッド 615、616 ワイヤ・ボンド
E) 102、103、104、105 出力ドライバ 200 タイル 201、202、203、204、206、207、2
08、209 ライン 211 レベル1の相互接続バス 212 レベル2の相互接続バス 213 レベル3の相互接続バス 214 レベル4の相互接続バス 300 リーフ 314 繰り上げリターン・ワイヤ 400 ブロック 500 セクタ 600 集積回路チップ 602、603、604 マルチプレクサ 605 ワイヤ 607 ボンド・パッド 615、616 ワイヤ・ボンド
Claims (1)
- 【請求項1】それぞれ、複数のデータ入力(101)を
備え、データ出力信号を発生する、複数のプログラマブ
ル・アトミック論理素子(PALE)(100)と、 それぞれ、いくつかのPALE(100)と、リーフ
(300)内に制限されたレベル1の相互接続バス(2
11)とからなる複数のリーフ(300)と、 それぞれ、いくつかのリーフ(300)と、ブロック
(400)内に制限されたレベル2の相互接続バス(2
12)とからなる複数のブロック(400)と、 それぞれ、複数のブロック(400)と、セクタ(50
0)内に制限されたレベル3の相互接続バス(213)
とからなる複数のセクタ(500)と、 各PALE(100)内にあって、PALE(100)
からのデータ出力信号を1つ以上のすぐ隣接したPAL
E(100)に送り込むための第1のドライバ(10
2)と、 各PALE(100)内にあって、PALE(100)
からのデータ出力信号を送り出すための第2のドライバ
(103)と、 第2のドライバ(103)をリーフ(300)の1つに
おけるレベル1の相互接続バス(21)に結合する、各
PALE(100)に関連した第1のプログラマブル・
ハイパーリンクと、 第2のドライバ(103)をブロック(400)の1つ
におけるレベル2の相互接続バス(212)に結合す
る、各PALE(100)に関連した第2のプログラマ
ブル・ハイパーリンクと、 各PALE(100)内にあって、PALE(100)
からのデータ出力信号を送り出すための第3のドライバ
(104)と、 第3のドライバ(104)をセクタ(500)の1つに
おけるレベル3の相互接続バス(213)に結合する、
各PALE(100)に関連した第3のプログラマブル
・ハイパーリンクとが含まれている、プログラマブル論
理素子。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US657-990 | 1996-06-04 | ||
| US08/657,990 US5742181A (en) | 1996-06-04 | 1996-06-04 | FPGA with hierarchical interconnect structure and hyperlinks |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1092943A true JPH1092943A (ja) | 1998-04-10 |
Family
ID=24639457
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9138772A Pending JPH1092943A (ja) | 1996-06-04 | 1997-05-28 | プログラマブル論理素子 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5742181A (ja) |
| JP (1) | JPH1092943A (ja) |
| DE (1) | DE19709219A1 (ja) |
| GB (1) | GB2313942A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7020001B2 (en) * | 2000-07-05 | 2006-03-28 | Mosaic Systems, Inc. | Multi-level semiconductor memory architecture and method of forming the same |
| US7584447B2 (en) | 2001-05-06 | 2009-09-01 | Altera Corporation | PLD architecture for flexible placement of IP function blocks |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6185725B1 (en) * | 1997-04-11 | 2001-02-06 | Altera Corporation | Apparatus and method for partitioning logic into a programmable logic device |
| US6289494B1 (en) * | 1997-11-12 | 2001-09-11 | Quickturn Design Systems, Inc. | Optimized emulation and prototyping architecture |
| US6370140B1 (en) * | 1998-01-20 | 2002-04-09 | Cypress Semiconductor Corporation | Programmable interconnect matrix architecture for complex programmable logic device |
| US7389487B1 (en) | 1998-04-28 | 2008-06-17 | Actel Corporation | Dedicated interface architecture for a hybrid integrated circuit |
| US7003719B1 (en) | 1999-01-25 | 2006-02-21 | West Publishing Company, Dba West Group | System, method, and software for inserting hyperlinks into documents |
| US6407576B1 (en) | 1999-03-04 | 2002-06-18 | Altera Corporation | Interconnection and input/output resources for programmable logic integrated circuit devices |
| US6249147B1 (en) | 1999-03-09 | 2001-06-19 | Fujitsu, Ltd. | Method and apparatus for high speed on-chip signal propagation |
| US6697957B1 (en) | 2000-05-11 | 2004-02-24 | Quickturn Design Systems, Inc. | Emulation circuit with a hold time algorithm, logic analyzer and shadow memory |
| US6459136B1 (en) * | 2000-11-07 | 2002-10-01 | Chip Express (Israel) Ltd. | Single metal programmability in a customizable integrated circuit device |
| US7401015B1 (en) | 2001-06-17 | 2008-07-15 | Brian Bailey | Coherent state among multiple simulation models in an EDA simulation environment |
| US7260517B2 (en) * | 2001-06-17 | 2007-08-21 | Brian Bailey | Synchronization of multiple simulation domains in an EDA simulation environment |
| US6594810B1 (en) | 2001-10-04 | 2003-07-15 | M2000 | Reconfigurable integrated circuit with a scalable architecture |
| US7333966B2 (en) * | 2001-12-21 | 2008-02-19 | Thomson Global Resources | Systems, methods, and software for hyperlinking names |
| US6891394B1 (en) * | 2002-06-04 | 2005-05-10 | Actel Corporation | Field-programmable gate array low voltage differential signaling driver utilizing two complimentary output buffers |
| US7378867B1 (en) | 2002-06-04 | 2008-05-27 | Actel Corporation | Field-programmable gate array low voltage differential signaling driver utilizing two complimentary output buffers |
| US7269814B1 (en) | 2002-10-08 | 2007-09-11 | Actel Corporation | Parallel programmable antifuse field programmable gate array device (FPGA) and a method for programming and testing an antifuse FPGA |
| US6946871B1 (en) * | 2002-12-18 | 2005-09-20 | Actel Corporation | Multi-level routing architecture in a field programmable gate array having transmitters and receivers |
| US6891396B1 (en) | 2002-12-27 | 2005-05-10 | Actel Corporation | Repeatable block producing a non-uniform routing architecture in a field programmable gate array having segmented tracks |
| US7385420B1 (en) * | 2002-12-27 | 2008-06-10 | Actel Corporation | Repeatable block producing a non-uniform routing architecture in a field programmable gate array having segmented tracks |
| US6838902B1 (en) * | 2003-05-28 | 2005-01-04 | Actel Corporation | Synchronous first-in/first-out block memory for a field programmable gate array |
| US7385419B1 (en) | 2003-05-30 | 2008-06-10 | Actel Corporation | Dedicated input/output first in/first out module for a field programmable gate array |
| EP3373170A1 (de) * | 2003-07-30 | 2018-09-12 | Synopsys, Inc. | Vorrichtung zur emulation von entwürfen für integrierte schaltkreise |
| EP2270688A1 (en) * | 2003-12-31 | 2011-01-05 | Thomson Reuters Global Resources | Systems, methods, interfaces and software for automated collection and intergration of entity data into online databases and professional directories |
| US7337103B2 (en) * | 2004-01-15 | 2008-02-26 | International Business Machines Corporation | Method and apparatus for the automatic correction of faulty wires in a logic simulation hardware emulator / accelerator |
| US7304496B2 (en) * | 2005-04-28 | 2007-12-04 | Altera Corporation | Mask-programmable logic device with programmable input/output ports |
| US7478261B2 (en) * | 2005-09-13 | 2009-01-13 | M2000 | Reconfigurable circuit with redundant reconfigurable cluster(s) |
| US8010826B2 (en) * | 2005-09-13 | 2011-08-30 | Meta Systems | Reconfigurable circuit with redundant reconfigurable cluster(s) |
| US7275196B2 (en) * | 2005-11-23 | 2007-09-25 | M2000 S.A. | Runtime reconfiguration of reconfigurable circuits |
| US7725863B2 (en) * | 2007-02-27 | 2010-05-25 | Agate Logic, Inc. | Reverse routing methods for integrated circuits having a hierarchical interconnect architecture |
| US8397011B2 (en) * | 2007-10-05 | 2013-03-12 | Joseph Ashwood | Scalable mass data storage device |
| FR3003969B1 (fr) * | 2013-03-28 | 2015-04-17 | Nanoxplore | Dispositif d'interconnexion programmable |
| CN108427829B (zh) * | 2018-02-09 | 2022-11-08 | 京微齐力(北京)科技有限公司 | 一种具有公共线结构的fpga |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5196275A (ja) * | 1975-02-20 | 1976-08-24 | ||
| NZ198054A (en) * | 1981-08-17 | 1986-05-09 | New Zealand Dev Finance | Polernary logic:multilevel circuits |
| US4642487A (en) * | 1984-09-26 | 1987-02-10 | Xilinx, Inc. | Special interconnect for configurable logic array |
| JPH073838B2 (ja) * | 1985-02-28 | 1995-01-18 | 株式会社東芝 | 半導体集積回路 |
| GB8606695D0 (en) * | 1986-03-18 | 1986-04-23 | Sinclair Res Ltd | Random chip addressing algorithm for wsi |
| US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
| US5457409A (en) * | 1992-08-03 | 1995-10-10 | Advanced Micro Devices, Inc. | Architecture of a multiple array high density programmable logic device with a plurality of programmable switch matrices |
| US5384499A (en) * | 1991-04-25 | 1995-01-24 | Altera Corporation | High-density erasable programmable logic device architecture using multiplexer interconnections |
| US5191242A (en) * | 1991-05-17 | 1993-03-02 | Advanced Micro Devices, Inc. | Programmable logic device incorporating digital-to-analog converter |
| US5260610A (en) * | 1991-09-03 | 1993-11-09 | Altera Corporation | Programmable logic element interconnections for programmable logic array integrated circuits |
| US5359242A (en) * | 1993-01-21 | 1994-10-25 | Altera Corporation | Programmable logic with carry-in/carry-out between logic blocks |
| US5474914A (en) * | 1992-07-29 | 1995-12-12 | Chiron Corporation | Method of producing secreted CMV glycoprotein H |
| US5317698A (en) * | 1992-08-18 | 1994-05-31 | Actel Corporation | FPGA architecture including direct logic function circuit to I/O interconnections |
| GB9223226D0 (en) * | 1992-11-05 | 1992-12-16 | Algotronix Ltd | Improved configurable cellular array (cal ii) |
| US5414638A (en) * | 1992-12-18 | 1995-05-09 | Aptix Corporation | Programmable interconnect architecture |
| GB2280293B (en) * | 1993-07-19 | 1997-12-10 | Hewlett Packard Co | Architecture for programmable logic |
| US5457410A (en) * | 1993-08-03 | 1995-10-10 | Btr, Inc. | Architecture and interconnect scheme for programmable logic circuits |
| US5455525A (en) * | 1993-12-06 | 1995-10-03 | Intelligent Logic Systems, Inc. | Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array |
| EP0698312A1 (en) * | 1994-02-15 | 1996-02-28 | Xilinx, Inc. | Tile based architecture for fpga |
| US5594363A (en) * | 1995-04-07 | 1997-01-14 | Zycad Corporation | Logic cell and routing architecture in a field programmable gate array |
| US5631578A (en) * | 1995-06-02 | 1997-05-20 | International Business Machines Corporation | Programmable array interconnect network |
-
1996
- 1996-06-04 US US08/657,990 patent/US5742181A/en not_active Expired - Fee Related
-
1997
- 1997-03-06 DE DE19709219A patent/DE19709219A1/de not_active Withdrawn
- 1997-05-28 JP JP9138772A patent/JPH1092943A/ja active Pending
- 1997-06-03 GB GB9711467A patent/GB2313942A/en not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7020001B2 (en) * | 2000-07-05 | 2006-03-28 | Mosaic Systems, Inc. | Multi-level semiconductor memory architecture and method of forming the same |
| US7584447B2 (en) | 2001-05-06 | 2009-09-01 | Altera Corporation | PLD architecture for flexible placement of IP function blocks |
| US9094014B2 (en) | 2001-05-06 | 2015-07-28 | Altera Corporation | PLD architecture for flexible placement of IP function blocks |
Also Published As
| Publication number | Publication date |
|---|---|
| GB9711467D0 (en) | 1997-07-30 |
| DE19709219A1 (de) | 1997-12-11 |
| US5742181A (en) | 1998-04-21 |
| GB2313942A (en) | 1997-12-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1092943A (ja) | プログラマブル論理素子 | |
| Wilton et al. | Memory-to-memory connection structures in FPGAs with embedded memory arrays | |
| US5455525A (en) | Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array | |
| JP3434292B2 (ja) | プログラマブル論理セル及びその配列体 | |
| CN1124690C (zh) | 用于可缩放多层互联结构的平面布局图 | |
| KR100340310B1 (ko) | 구성가능한논리배열 | |
| US10250262B2 (en) | Integrated circuit including an array of logic tiles, each logic tile including a configurable switch interconnect network | |
| US7138827B1 (en) | Programmable logic device with time-multiplexed interconnect | |
| US8629548B1 (en) | Clock network fishbone architecture for a structured ASIC manufactured on a 28 NM CMOS process lithographic node | |
| US6195788B1 (en) | Mapping heterogeneous logic elements in a programmable logic device | |
| CN1117432C (zh) | 可缩放的多层互联结构 | |
| EP1080531B1 (en) | A dedicated interface architecture for a hybrid circuit | |
| Patel et al. | An architectural exploration of via patterned gate arrays | |
| US5880598A (en) | Tile-based modular routing resources for high density programmable logic device | |
| US5883526A (en) | Hierarchical interconnect for programmable logic devices | |
| JPH11239053A (ja) | 最適化されたエミュレーションとプロトタイピングの体系 | |
| US6882176B1 (en) | High-performance programmable logic architecture | |
| JPH0926870A (ja) | プログラマブル・アレイ相互接続網 | |
| JPH10233676A (ja) | 論理アレイブロック内でローカル相互接続ラインを配列する方法およびプログラマブル論理回路 | |
| Wilton et al. | The memory/logic interface in FPGAs with large embedded memory arrays | |
| Li et al. | Routability improvement using dynamic interconnect architecture | |
| Krambeck | ORCA: a high performance, easy to use SRAM based architecture | |
| US6429681B1 (en) | Programmable logic device routing architecture to facilitate register re-timing | |
| Britton et al. | Second generation ORCA architecture utilizing 0.5/spl mu/m process enhances the speed and usable gate capacity of FPGAs | |
| US7432733B1 (en) | Multi-level routing architecture in a field programmable gate array having transmitters and receivers |