JP4410853B2 - プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ - Google Patents
プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ Download PDFInfo
- Publication number
- JP4410853B2 JP4410853B2 JP51262698A JP51262698A JP4410853B2 JP 4410853 B2 JP4410853 B2 JP 4410853B2 JP 51262698 A JP51262698 A JP 51262698A JP 51262698 A JP51262698 A JP 51262698A JP 4410853 B2 JP4410853 B2 JP 4410853B2
- Authority
- JP
- Japan
- Prior art keywords
- ram
- line
- block
- lines
- blocks
- 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.)
- Expired - Lifetime
Links
- 239000000872 buffer Substances 0.000 claims description 45
- 230000009977 dual effect Effects 0.000 claims description 17
- 230000002457 bidirectional effect Effects 0.000 claims description 11
- 230000015654 memory Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000002370 liquid polymer infiltration Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 102100037123 Exosome RNA helicase MTR4 Human genes 0.000 description 4
- 101001029120 Homo sapiens Exosome RNA helicase MTR4 Proteins 0.000 description 4
- HCUOEKSZWPGJIM-YBRHCDHNSA-N (e,2e)-2-hydroxyimino-6-methoxy-4-methyl-5-nitrohex-3-enamide Chemical compound COCC([N+]([O-])=O)\C(C)=C\C(=N/O)\C(N)=O HCUOEKSZWPGJIM-YBRHCDHNSA-N 0.000 description 3
- 241001649081 Dina Species 0.000 description 3
- 101001109689 Homo sapiens Nuclear receptor subfamily 4 group A member 3 Proteins 0.000 description 3
- 101000598778 Homo sapiens Protein OSCP1 Proteins 0.000 description 3
- 101001067395 Mus musculus Phospholipid scramblase 1 Proteins 0.000 description 3
- 102100022673 Nuclear receptor subfamily 4 group A member 3 Human genes 0.000 description 3
- 101100297694 Arabidopsis thaliana PIP2-7 gene Proteins 0.000 description 2
- 101150013440 DI19-1 gene Proteins 0.000 description 2
- 101000908657 Rattus norvegicus Deoxyuridine 5'-triphosphate nucleotidohydrolase Proteins 0.000 description 2
- 101100456541 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MEC3 gene Proteins 0.000 description 2
- 101100483663 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UFD1 gene Proteins 0.000 description 2
- 108010033711 Telomeric Repeat Binding Protein 1 Proteins 0.000 description 2
- 102100036497 Telomeric repeat-binding factor 1 Human genes 0.000 description 2
- 101100391178 Dictyostelium discoideum forE gene Proteins 0.000 description 1
- 101100476085 Dictyostelium discoideum mrps4 gene Proteins 0.000 description 1
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 1
- 101000929940 Homo sapiens Adrenocortical dysplasia protein homolog Proteins 0.000 description 1
- 101000805864 Homo sapiens Divergent protein kinase domain 2A Proteins 0.000 description 1
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 1
- 101001035237 Homo sapiens Integrin alpha-D Proteins 0.000 description 1
- 101000998623 Homo sapiens NADH-cytochrome b5 reductase 3 Proteins 0.000 description 1
- 101000730648 Homo sapiens Phospholipase A-2-activating protein Proteins 0.000 description 1
- 101000928408 Homo sapiens Protein diaphanous homolog 2 Proteins 0.000 description 1
- 101000773153 Homo sapiens Thioredoxin-like protein 4A Proteins 0.000 description 1
- 101000730577 Homo sapiens p21-activated protein kinase-interacting protein 1 Proteins 0.000 description 1
- 102100039904 Integrin alpha-D Human genes 0.000 description 1
- 102100033153 NADH-cytochrome b5 reductase 3 Human genes 0.000 description 1
- 101150037263 PIP2 gene Proteins 0.000 description 1
- 102100032572 Phospholipase A-2-activating protein Human genes 0.000 description 1
- 102100036469 Protein diaphanous homolog 2 Human genes 0.000 description 1
- 101100030422 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) DIA3 gene Proteins 0.000 description 1
- 101100262439 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBA2 gene Proteins 0.000 description 1
- -1 TB4 Proteins 0.000 description 1
- 102100030272 Thioredoxin-like protein 4A Human genes 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000002789 length control Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 102100032579 p21-activated protein kinase-interacting protein 1 Human genes 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003079 width control Methods 0.000 description 1
Images
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/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- 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/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- 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/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- 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
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)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Static Random-Access Memory (AREA)
Description
本出願は下記の特許出願に関連し、これらはいずれも上記出願の譲渡人であるザイリンクス社(Xilinx,Inc)に譲渡され、引用によって援用される。
1.1994年4月1日付のダネッシュ・タバナ(Danesh Tavana)、ウィルソン・ケイ・イー(Wilson K.Yee)およびビクター・エイ・ホーレン(Victor A.Holen)によって出願され、引用によって援用される、「FPGAのためのタイルベースのアーキテクチャ(Tile Based Architecture for FPGA)」と題された係属中の米国特許出願連続番号第08/222,138号[M−2257−1N]。
2.スティーブン・ピィ・ヤング(Steven P.Young)によって1995年7月26日に出願され、1996年5月14日に発行された「デフォルト入力を有する双方向トライステートバッファ(Bidirectional Tristate Buffer with Default Input)」と題された米国特許第5,517,135号[X−195]。
発明の分野
この発明は集積回路に形成されたプログラマブル論理デバイスに関し、特にフィールドプログラマブル論理デバイスまたはフィールドプログラマブルゲートアレイに関する。
発明の背景
フィールドプログラマブルゲートアレイ(FPGA)は、ユーザが希望する論理機能をもたらすようにプログラム可能に相互接続され得るプログラマブル論理ブロックのアレイを含む。ロス・フリーマン(Ross Freeman)に対して米国特許第Re34,363号として再発行された米国特許第4,870,302号には最初のFPGAが記載されており、これを引用によって援用する。エルガマル(Elgamal)の米国特許第4,758,745号、キーン(Kean)の第5,243,238号およびファーテック(Furtek)によって発明されかつコンカレントロジック社(Concurrent Logic,Inc.)が所有する公開されている出願WO 93/05577などの後の特許には、他のFPGAアーキテクチャが記載されている。これらの特許および出願もまた引用によって援用される。ザイリンクス社(2100 Logic Drive,San Jose,California 95124)から入手可能な「プログラマブル論理データブック(The programmable Logic Data Book)」と題された1994年度のザイリンクス社のデータブックにはいくつかのFPGA製品が記載されている。ザイリンクス社のデータブックのたとえば第2頁から第114頁に示されるように、典型的にFPGA製品は不規則な論理ブロックのアレイを含み、この論理ブロックの数は製品によって異なる。
FPGAアーキテクチャはプログラムルーチング構造と、再構成可能な(configurable)論理ブロックのアレイとを含む。プログラマブルルーチングマトリックスは論理ブロックを互いに接続するための手段を含む。これにより、FPGAは一般的なルーチング構造にプログラム論理とプログラム可能な接続との組合せをもたらす。
典型的なFPGAの用途において、PIPは、PIPに関連した構成(configuration)メモリセルに適切な値をロードすることにより意外に早くオンになり、これにより経路をもたらし、再構成可能な論理ブロックによって行なわれる論理を確立する。動作時には、フリップフロップから値が書込まれたり読出されたりする際に経路上の信号が大きく変化する。
たとえば、FPGAチップの1つの部分において生成される複素関数が、チップの別の部分において生成される複素論理と同期するようにするために、ユーザの中にはランダムアクセスメモリ(RAM)のブロックを必要とするものもいる。別の例では、高速データをチップに対してバッファリングするためのFIFO(先入れ先出し方式のレジスタ)を設けるか、またはチップの他の論理によって使用するためのレジスタバンクを設けることを希望するユーザもいる。ディー・バースキィ(D.Bursky)は、米国オハイオ州クリーブランド(Cleveland,Ohio,U.S.)における1996年1月22日付のElectronic Design第44巻第2号の第53、54、58、60および62頁に記載されている「効率の高いRAMベースのFPGAの容易なシステム設計(“Efficient RAM-Based FPGAs Ease System Design”)」と題された論文において、アルテラ社によるFLEX 10K(商標)ファミリーおよびアクテル社(Actel)による3200DXファミリーの2つのこのようなアーキテクチャを記載している(「FLEX 10K」はアルテラ社の商標である)。クリフ他(Cliff et al.)もまた、「プログラマブル論理アレイ集積回路(“Programmable Logic Array Integrated Circuits”)」と題された米国特許第5,550,782号においてこのようなアーキテクチャを記載している。クリフ他によって記載されているアーキテクチャにおいて、プログラマブルRAMブロックは列に含まれ、これらの列は多数のRAMブロックにわたってプログラム可能に延びる多くの目的のための垂直方向の信号ラインによってアクセスされる。
従来のFPGAチップにおいては、RAMのこれらのブロックはFPGAのうちプログラム可能な部分が再構成されるため、FPGAのこれらの部分は他の用途に利用できない。RAMなどの共通の機能が多数のユーザによって希望される場合、チップの一部分をこの目的のための専用のものにすると経済的になり、特定の機能を高密度で実現することができ、FPGAの他の部分をあまり予想できない用途に自由に用いることができるようになる。
Altera FLEX 10Kチップは、チップの論理ブロックによってアクセスされ得るRAMのブロックを含む。Altera FLEX 10Kの構造は「FLEX 10Kデバイスの埋込RAMによる利益(Benefits of Embedded RAM in FLEX 10K)」と題された1996年1月付のアルテラ社(Altera Corp.)による製品情報会報に簡単に記載されている。この出版物のブロック図にはいくつかの構成を有するRAM/ROMブロックが示されている。RAM/ROMブロックは、入力フリップフロップと、書込パルス回路と、データ、アドレス、書込イネーブルおよび入力クロック信号からデータ、アドレスおよび書込イネーブル信号を生成するための入力マルチプレクサとを含むEAB(埋込アレイブロック)の形態である。EABは、データ出力フリップフロップと、データ出力信号を発生するためのマルチプレクサとをさらに含む。アルテラ社の出版物には、大きなRAMが望まれる場合には、大きなRAMを実現するためにEABを縦続接続することができると示されている。
しかしながら、これらの専用RAMブロックは汎用相互接続ラインを介してアクセスされ、RAMにアクセスするために汎用制御接続ラインを用いる場合、他の論理信号を経路付けるための汎用相互接続ラインの利用度が低下する。
発明の概要
この発明によると、FPGA再構成可能な論理ブロックと一体化された、ランダムアクセスメモリまたはRAMのブロックは、専用ルーチングラインを含む。再構成可能な論理ブロックにアクセスする汎用ルーチングラインもまた、専用ルーチングラインを介してRAMブロックのアドレス、データおよびコントロールラインにアクセスする。別個の専用アドレスおよびデータルーチングラインが設けられ、専用ルーチングラインは1つより多いRAMブロックにプログラム可能に接続される。このため、FPGAの論理ブロックはRAMの部分にアクセスするためにこれらの汎用および専用ルーチングラインを用いることができる。これらの専用ルーチングラインにより、RAMブロックの構成が長いか、幅が広いか、小型であるか大型であるかにかかわらず、RAMブロックおよびRAMブロックのアレイが効率よく接続されるようになる。さらに、専用ルーチングラインにより、論理ブロックがチップのリモート部分にあるRAMブロックに好都合にアクセスできるようになる。RAMブロックへのアクセスはいかなるRAM構成においても効率がよい。双方向バッファまたはパスデバイスは各RAMブロックにおけるアドレスおよびデータラインを分けるため、選択可能な数のRAMブロックをRAMとして合わせて動作することができる。
発明の1つの実施例において、隣接するRAMブロックはトライステート双方向バッファを介して結合される。これらのバッファはデフォルト入力を含むため、双方向バッファに接続されたラインのうちの1本に与えれた信号が常にバッファエレメントの入力端子に与えられ、かつバッファエレメントの出力端子によって、バッファ出力端子に接続され得る任意の負荷に与えられるようになる。このためバッファがフローティング状態にされることはなく、バッファの出力端子に接続された負荷は、対称な双方向バッファを用いる場合のように別のパストランジスタに信号が流れる必要がある場合よりも、より迅速に切換わる。好ましい実施例において、デフォルト入力を有するトライステート双方向バッファには、4つのルーチングトランジスタと、メモリセルおよびバッファエレメントを含むトランジスタしか必要でない。さらに、バッファエレメントの出力端子に負荷を取付ける場合には、バッファリングされた信号を伝えるラインに負荷を直接取付ける場合よりも同じ切換速度に対して方向制御トランジスタを小さくすることができる。このバッファは米国特許第5,517,135号[X−195]にさらに記載されている。
この発明のさらに別の局面によると、専用RAMを能動化するデコーダは、種々の多くのやり方でデコーダ入力信号に応答するよう再構成することができる。デコーダはデコーダ入力信号の組合せがいかなるものであっても能動化できるようにプログラミングすることができ、かつ任意の数のデコーダ入力信号を無視するようにプログラミングすることができる。入力信号を無視する能力はFPGAにおいては重要である。なぜなら、不能化信号を未使用のデコーダ入力端子に経路付ける必要がなくなるからである。デコーダはまた、デコーダ入力信号にかかわらず不能化されるようにプログラミングすることができる。1組の入力信号をアドレスとして扱うようにプログラミングすることができる。それはアドレスを反転したりしなかったりすることができる。
1つの実施例において、1つのRAMブロックのデータバスラインセグメントは、交互に配置されたまたは回転する態様で別のRAMブロックのラインセグメントに結合される。たとえば、1つのRAMブロックのライン8が次のRAMブロックのライン7に結合される。これは、いくつかのRAMが高さ方向に大きいが幅は大きくなく構成することができ、このため1つのRAMブロックのRAMはそれ自体のデータラインのすべてを使用せず、隣接したRAMブロックがそれらのラインのうちのいくつかを使用することができ、これらの隣接したRAMブロックのデータを、それが競合しないデータラインに好都合にアクセスすることができることを意味する。
【図面の簡単な説明】
図1Aは、この発明によるRAMブロックを含むFPGAチップを示す図である。
図1Bおよび図1Cは、外部接続のみを示す、図1AのRAMブロック13の2つの実施例を示す図である。
図2は、RAMを含む、図1BのRAMブロックの内部接続を示す図である。
図3Aから図3Dは、図2および図7Aに使用される記号のうちのいくつかを示す図である。
図4Aおよび図4Bは、図1B、図1Cおよび図2に用いられる双方向バッファの記号と、この発明に用いることができる関連した双方向バッファとを示す図である。
図5は、図2のRAMブロックに用いられ得るこの発明によるデコーダの1つの実施例を示す図である。
図6Aから図6Cは、種々のワード長を有するRAMを形成するように、可能な3つの構成において構成された図2の実施例の4つの隣接したRAMブロックを示す図である。
図7Aは、図1CのRAMブロックの内部接続を示す図である。
図7Bおよび図7Cは、図7AにおけるRAM531付近の部分を拡大して示す図である。
図8Aから図8Cは、図7Aから図7Cの実施例の4つの隣接したRAMブロックによって構成されたRAMを示す図である。
詳細な説明
図1Aは、この発明によるFPGAチップを示す。チップの中央部分には複数の論理ブロック1が配置され、これらはRAMブロック13の列によって定期的に隔てられる。各RAMブロックは4つの論理ブロック1の縦方向の長さにわたって延びる。(別の実施例では、RAMブロックはより少ない数のまたはより多い数の論理ブロックにわたって延びてもよく、RAMブロックの列はFPGAの縦方向の長さ全体にわたって延びる必要はない。)チップの4つのエッジに沿って、入力/出力ブロックを含むエッジブロック2が配置される。チップにはさらに、チップを保持するパッケージの外部ピンに接続するためのパッド(図示せず)が配置される。パッドはエッジブロック2に接続され、各エッジブロックは少なくとも1つの論理ブロック1に接続される。さらに、RAMブロック13に接続されるRAMエッジブロック4と、エッジブロック2に接続され、かつ典型的にはグローバルクロック信号および境界走査信号などのいくつかのグローバル信号を与えるコーナブロック5とが配置される。エッジブロック2、コーナブロック5および論理ブロック1は出願連続番号第08/222,138号[M−2257−1N]に詳細に説明され、引用によって援用され、ここでは再度説明しない。
RAMブロックのグループ101は図6Aから図6Cに関して後に説明する。
図1Bは図1AのRAMブロック13の第1の実施例を示し、かつRAMブロック13に接続される外部信号ラインまたはバスを示す。このRAMブロックは256×9RAMとして構成された2304個のメモリセルを含む。RAMブロック13は論理ブロック1の4つ分の縦方向の長さである。典型的に、論理ブロック1はそれ自体の位置の上または下にあるRAMブロック13にアクセスする必要がある。RAMブロック13には、隣接した論理ブロックから4組のルーチングラインL0からL3が延び、1組のラインは隣接した論理ブロックの各行に関連する。これらの水平ラインより上または下にあるRAMブロックへのアクセスを容易にするために、専用の垂直ラインはアドレスおよびデータ信号をRAMブロックに伝える。アドレスバスADDR、データ入力バスDINおよびデータ出力バスDOUTはRAMブロック中を垂直に延び、隣接した次のRAMブロックにプログラム可能に接続される。さらに、RAMブロック13には、グローバルおよびローカルクロックラインGCLKおよびLCLK、書込イネーブルラインWE、ならびにブロックイネーブルラインENが垂直に延びる。グローバルクロックラインGCLKはチップ全体にわたるRAMブロックに永久的に接続され、他のラインは上のRAMブロックにプログラム可能に接続され得る。
図1Cは、図1AのRAMブロック13の第2の実施例を示す。図1CではイネーブルラインENは設けられない。その代わりに、データ入力およびデータ出力ラインを経路付けることによりイネーブルラインが必要でなくなる。書込イネーブルラインの代わりに、図1Cの実施例は、ある実施例では4本分のラインの幅である書込イネーブルバス33を含む。図1Bおよび図1Cではいずれも、別個のデータ入力およびデータ出力バスが設けられる。
図1Bの実施例では、いくつかのRAMブロックのデータ出力バスが互いに接続され得り、この場合いくつかのRAMブロックからのデータ出力信号を同じラインで受ける。共通に接続された1つだけのRAMブロックに対するイネーブル信号を一度に活性化することにより競合がなくなる。図1Cでは、いくつかのRAMブロックを互いに接続することができ、データライン接続を交互にしまたは回転させ、いくつかのRAMブロックに対する信号が同じライン上に現れないようにすることにより、競合が回避される。図1CのRAMブロックは4096個のメモリセルを含み、これは異なった4つの内部構成4096×1、2048×2、1024×4および512×8を有し得り、図1BのRAMブロックは1つの内部構成256×9を有する。他の構成も可能である。効率をよくするために、図3における幅の選択は2の累乗であるべきであり、図1Bではいかなる幅が用いられてもよい。図1Bの詳細を以下に図2に関して説明する。図1Cの詳細は図7Aから図7Cに関して後に説明する。
第1の実施例、図2
図2は、図1BのデュアルポートRAMブロック13を詳細に示す。このRAMブロックはデュアルポートRAM131を含む。デュアルポートRAMにより、同じメモリ場所にアクセスするための独立した2組のアドレス、データおよびコントロールラインが提供される。デュアルポートRAMは、同じメモリにおける2つのアドレスに対してユーザが同時に読出または書込を希望する場合に有用である。たとえば、外部ソースからデータのバーストを受け、かつデータを記憶して内部処理するFIFOは、一方のポートを外部ソースからの書込のために用い、他方のポートを内部論理による読出のために用いることによりデュアルポートを有益に利用する。
図2では、図1Bにおけるように、隣接した論理ブロックに接続される4組のローカル相互接続ラインL0からL3がデュアルポートRAMブロック13において水平方向に延びる。デュアルポートRAMブロック13ではRAMブロックのアドレス、データおよびコントロールラインが垂直に延びる。4本のグローバルクロックラインGCLKは図示されるRAMブロック13の上下のRAMブロックに永久的に接続される。2本のローカルクロックラインLCLKは上下のRAMブロックにプログラム可能に接続される。クロックラインGCLKおよびLCLKはいずれもRAM131にプログラム可能に接続される。図1Bの上エッジに示されるプログラム可能な接続は、RAM131の左側の五角形の記号によって表わされる。五角形の記号は後に図4Aに関して説明する。書込イネーブルラインWEAおよびWEBならびにアドレスイネーブルバスENBおよびENAは、アドレスバスADDRBおよびADDRAと同様に上下のRAMブロックにプログラム可能に接続される。
別個のデータ入力およびデータ出力ラインを用いると、多くの構成のFPGAが好都合に実現される。なぜなら、相互接続ラインは単一ソースによって駆動される必要があり、RAMがすべてのデータ出力ドライバに対してトライステート制御を行なう必要がある場合には、RAMに対してトライステート制御をもたらすために信号を経路付けることが困難であるからである。このため、データ入力およびデータ出力信号が同じ信号を共有しないことが好ましい。したがって、デュアルポートRAMブロック13は、RAM131への書込のためのデータ入力バスDINBおよびDINAならびにRAM131からの読出のためのデータ出力バスDOUTBおよびDOUTAの両方を含む。これらのデータバスは示されるものの上下のRAMに対して接続可能である。1つの実施例において、LCLK、WEA、WEB、ENA.およびENBラインならびにADDRA、ADDRB、DINAおよびDINBバスは(五角形で示されかつ後に説明する)バッファリングされた接続を用い、DOUTAおよびDOUTBバスは(白い丸で示される)バッファリングされていない接続を用いる。
図3Aは、2本のラインの交差部を囲む丸が、2本のラインを接続するためのメモリセルMによって制御されるパストランジスタを表わすことを示す。図3Bは、2つのラインセグメントを結合する白丸がさらに、2つのラインセグメントを接続するためのメモリセルによって制御されるパストランジスタを表わすことを示す。
図3Cは、1つのラインセグメントの方向を指す三角形が、三角形の平らなエッジ上のラインから、三角形が指すラインに信号を与える、プログラム可能な接続を表わすことを示す。(もちろんこの信号は後にラインの全長上に存在する。反対方向を指す三角形は同じワイヤを示し得るため同じ意味を持つ。)。信号の流れが常に同じ方向である場合、三角形の記号は信号の流れに続くことによりリーダを補助する。図3Cに示されるように簡単なパストランジスタにより接続をもたらすことができる。
1本のラインがいくつかのプログラム可能な接続によってアクセスされる場合、それらはマルチプレクサとして実現されることが多い。図3Dには、各々が信号を水平ラインHに送ることができる4本の垂直ラインV1からV4が示される。図3Dの右側に示されるように、2つのメモリセルM1およびM2は、垂直ラインV1からV4のうちバッファBを介して水平ラインHに接続されるものを選択する。
双方向バッファ
図4Aは、ラインセグメントAによって部分的に覆われたラインセグメントAおよびB間の五角形が双方向バッファであり、かつバッファがトライステートモードにあるときにはラインセグメント間の双方向バッファ接続がラインAからバッファまでのデフォルト入力を含む、というバッファの別の局面を示す。
図4Aに示されるように、双方向バッファは1つのバッファエレメント41を含む。2つのメモリセルM1およびM2は信号の流れの方向と、バッファがトライステートモードにあるかどうかを制御する。M1およびM2がいずれも論理0を保持する場合、バッファはトライステートモードにあり、ラインセグメントAまたはBのいずれも駆動しない。しかしPチャネルトランジスタT43がオンであるため、ラインセグメントA上の信号がバッファ41の入力端子に与えられる。このバッファはヤングによって米国特許第5,517、135号にさらに記載されており、引用によって援用される。
RAMブロック
再度図2を参照して、デュアルポートRAMブロック13およびデュアルポートRAMメモリ131への接続を以下に説明する。デュアルポートRAMブロック13は、RAMブロック13が位置付けられる4行の論理ブロックに接続され得る。ローカル相互接続ラインL0−L3の組により、RAMブロック13にわたって延びる4つのそれぞれの行にある論理ブロックに対してプログラム可能な接続が形成される。さらに、示されるものの上または下にあるRAMブロックのラインL0−L3にRAM131が接続され得る。
図4Aの五角形の記号で示されるようなプログラム可能な接続が図2に示される。五角形で示されるように、図2のRAM131への入力信号の各々はバッファエレメント41(図4A)によってバッファリングされ、このバッファエレメント41はRAMブロック13(図2)の水平および垂直ラインの交差部に位置付けられる。このため、RAM131の左エッジまで延びる水平ラインは、水平ラインが接続される図2の垂直ライン上の信号の、バッファリングされたものである。信号駆動RAM131のソースが水平ラインの上または下にあるかは、メモリセルM1(図4)にある値に依存する。RAM131への入力端子の駆動する信号は水平ラインL0からL3から引出されるか、図2に示されるものの上または下にあるRAMブロックから引出すことができる。
たとえば、図2では、ラインL3によってアクセスされる論理ブロックの行において、ラインL3−0はデータ入力ラインとしての役割を果たし、かつDINAバスラインDIA2にプログラム可能に接続され得る。これに代えて、ラインL3−0はアドレスラインとしての役割を果たし、かつラインL3−0とラインADDRB2との交差部に丸で示されるようにADDRBラインADDRB2にプログラム可能に接続され得る。ラインADDRB2は、ラインADB2を駆動するよう双方向バッファによってバッファリングされる。五角形で示されるプログラム可能な接続は図4Aに示され、後に説明される。
同様に、ラインL1−15はラインL1によってアクセスされる行の論理ブロックによって駆動されるローカルクロックラインとしての役割を果たし、かつローカルクロックラインLCLK1にプログラム可能に接続され得り、このLCLK1は双方向バッファによってラインLCK1に接続される。ラインLCK1はRAM131のBまたはAポートのいずれかのクロック入力端子CKBまたはCKAに接続され得る。ラインCLK1とRAM131への2本のクロック入力ラインCKAおよびCKBとの交差部において三角形で表わされるプログラム可能な接続は図3Cに示され、先に説明した。
これに代えて、ラインL1−15はデータ出力ラインとしての役割を果たし、DOUTBラインDOB7にプログラム可能に接続され得る。
これらおよび他のプログラム可能な接続は、それぞれの交差部において丸、三角形および五角形で示される。
パイピュレーション
PIPという用語はプログラム可能な交差点を意味する。パイピュレーション(pipulation)という用語はPIP集合を意味する。多くの構成のパイピュレーションが可能である。チップ領域を最小にすることが望まれる場合、少ない数のPIPが設けられ(まばらなパイピュレーション)、PIPの場所は共通の用途の構造に対して最高の柔軟性と速度をもたらすように選択される。PIPがEPROMセルまたはアンチヒューズなどの非常に小型なデバイスによって形成される場合、柔軟性を高めるために多くの交差部にPIPが設けられ得る。一般に、パイピュレーションは十分でなければならず、ローカル相互接続ラインの本数は、構成に用いられるアドレス、データおよびコントロールラインのすべてにユーザがアクセスできるよう十分でなければならない。幅の広いメモリでは、データラインが共有されるため、図6Aから図6Cに関して説明するように、各データトラックに対してアクセス点がなければならない。垂直方向に隣接したRAMブロックによってデータラインが用いられる場合、それらは垂直に接続されてはならず、同じRAMブロックにおいて垂直なデータラインを水平な相互接続ラインに接続するためには十分なパイピュレーションを設ける必要がある。
デコーダブロック
図2のデコーダブロック132および133は図5に示されるように形成され得る。図5において、デコーダブロック132は4つの2入力マルチプレクサMUX0−MUX3を含む。各マルチプレクサはイネーブルラインENB0−ENB3によって制御され、これらは水平ラインL0からL3のうち2本のラインによってアクセスされ得る。図5に示される実施例では、8個のメモリセルM1−M8により4つの2入力マルチプレクサMUX0−MUX3が提供される。(図示しない別の実施例では、図2に示される4つのマルチプレクサ制御入力信号と同様に、隣接する論理ブロックから8つのマルチプレクサ入力が経路付けられる。)RAM131(図2)を制御するデコーダ出力信号ENBは4つのマルチプレクサMUX0からMUX3からの出力信号に応答してNORゲートNOR1(図5)によって発生される。
デコーダブロック132および133はバスENBおよびENAのイネーブルラインが付加的なアドレスラインとして用いられるようにするか、または無視されるようにする。これらのブロックはまた、RAMポート全体を不能化するために用いることもできる。図5の構成はFPGAのユーザに高いレベルの自由を与える。ポートBに関し、ユーザは垂直方向に隣接した2つのRAMブロック13を対にし、それらの2つの間で選択を行なうよう各ブロックにおいてデコーダ132を用いる。このような構成にはデコーダブロック132への4本の入力ラインのうち1本しか必要ではない。たとえば、隣接した2つのRAMブロックにおいて、マルチプレクサMUX1からMUX3は、論理0をメモリセルM3からM8にロードすることによりそれらのそれぞれのコントロール信号を無視するようにされる。2つのRAMブロックの一方においては、メモリセルM1およびM2には01がロードされ、他方においてはメモリセルM1およびM2に10がロードされる。この構成において、ラインENB0に与えられた論理0により、01で構成されたRAMブロックが選択され、論理1により、10で構成されたRAMブロックが選択される。
たとえばM1およびM2である任意の対のマルチプレクサ入力に11を入れると、NORゲートNOR1が論理0の出力信号を与えるようになり、これによりB RAMブロックポートが不能化される。これにより4本のイネーブルラインが、図示されるブロックの上または下の場所に対して信号を経路付けるようになる。
任意の対のマルチプレクサ入力に00を入れると、マルチプレクサがドントケアにされ、デコーダ132がそのマルチプレクサのコントロール入力上の信号を無視するようにされる。たとえば、メモリセルM1およびM2に00を入れると、マルチプレクサMUX0がドントケアになり、どこかに信号を経路付けるためにラインENB0が用いられるようになり、デコーダ132が他のイネーブル信号に応答するようになる。
この状況において、3対のメモリセルM3−M8に01 01 01を入れると、イネーブルラインENB1−ENB3上のアドレス000に応答してデコーダ132が能動化される。対に01の値があると、それぞれのマルチプレクサがコントロール信号を出力に送るようにされる。対に10の値があると、マルチプレクサがコントロール信号の補数を出力に送るようにされる。8つのRAMブロック13は、8つのRAMブロック13のメモリセルM3−M8の3対のマルチプレクサ入力に0および1の、異なった順列を入れ、ラインENB1−ENB3にアドレスを入れることにより、別々にアドレス指定され得る。もちろん、16個のRAMブロックは4本のイネーブルラインすべてを用いてアドレス指定されてもよい。
8つのメモリセルM1−M8に11 11 11 11のデフォルト値がロードされるとRAMが不能化されるため、電力が消費されず、RAMブロック13の他の部分の任意の構成に応じた競合がなくなる。
図5にはコントロール出力信号ENBを発生するためのNORゲートが示されるが、所望の目的を達成するメモリセルM1−M8に異なった値を用いることによっても同様に、OR、NANDまたはANDゲートを用いることができる。たとえば、ANDゲートが用いられる場合、デフォルト値は00 00 00 00となるであろう。イネーブルラインENB1−ENB3上に異なった値を用いることによっても所望の結果がもたらされる。
1つの実施例において、(たとえばNORゲートNOR1からの論理0である)不能化デコーダ出力信号もまた、(たとえばDOUTBバスラインDOB0−DOB8を駆動するRAM131からのすべての信号である)そのポートからのすべての出力信号がトライステートになるようにする。これによりラインDOB0−DOB8が、示されるものの上または下にある別のRAM131によって駆動されるようになる。しかしながら、トライステートはまた、RAM出力信号がラインを駆動していないときにラインDOB0−DOB8(および他のデータ出力ライン)がフローティング状態にされることを可能にする。このため、これらのラインには小さなキーパー回路またはプルアップ抵抗器が装着される。
図4B
図1Bまたは図2に示されるもののいくつかの複製品が互いに隣接して垂直方向に置かれると、1つの複製品の上にある線または円により、別の複製品の下にある直線が結合されることとなる。図4Bの記号のラインBは上複製品(またはブロック)にあり、図4Bの記号のラインAおよび円は下の複製品にある。図4Bの左側に示される三角形および白丸およびその中心へのラインの組合せにより、図4Bの右側に示されるデフォルト入力を有する双方向バッファが示される。これは図4Aに示されるものと同じ回路であるため再度説明しない。後に説明するように、図4Bの記号の部分は図6A−6Cに示される。図4Bの記号もまた、後に説明する図7A−図7Cに示される。
RAMブロックのグループ分けおよびメモリ長/幅の制御
図6Aは隣接した4つのRAMブロック13−5から13−8を含むRAMブロックグループ101を示し、各々は図2に示されるように構成される。他の数のRAMブロックをともに用いてもよい。RAMブロックグループ101は図1Aにも示される。各RAMブロックは4つの論理ブロックにわたって延びるため、グループ101の4つのRAMブロックは16個の論理ブロックにわたって延びる。隣接した4つのブロックは1024×9RAM、512×18RAMまたは256×36RAMとして構成され得る。各RAMブロックはRAM256×9を含み、すなわちRAMは256ワードの大きさを有し、各ワードは9ビットの幅を有する。この実施例では8ビットワードの代わりに9ビットワードが用いられる。なぜなら、多くのユーザはパリティビットを希望し、8ビットワードのみでパリティビットを得ることは矛盾しているからである。未使用である場合に9番目のビットを与えることはさほど費用が掛かることではない。なぜなら、9番目のビットは他の8ビットのデコード論理を共有し、メモリ面積が12%増加すると面積の合計がわずかに増加するからである。この実施例において、幅(ワード長)および長さ(アドレス数)は、双方向バッファおよび隣接したRAMブロック13の間のパスゲートがいかにしてオンにされるかに依存する。図6Bおよび図6CにはRAMブロックグループ101の代替的な構成が示される。
図6Aにおいて、4つのRAMブロック13−5から13−8は1024×9メモリとして構成される。1024×9の場合、10個のアドレスビットがなければならない。ADDRバス(図2のバスADDRAおよびADDRB)は8ビットを有する。図6Aに示されるように、隣接した4つのRAMブロック13−5から13−8の4つの隣接したADDRバスは互いに接続される。ADDRバスの8つのアドレスビット(または図2のデュアルアドレスバスADDRAおよびADDRB上の16個のもの)によりRAM131の内部の256ワード(28)がアドレス指定される。各々が各RAM131にある4つの場所は、BUSADDR上の同じ8ビットアドレスによってアドレス指定されるため、2本のイネーブルラインEN(図2のENAまたはENB)をアドレスビットとして用い、図5に関して先に説明したように9番目および10番目のアドレスビットをもたらすために互いに接続してもよい。1つのRAMブロックのデータ入力およびデータ出力ラインは隣接するRAMブロックの、対応するデータ入力およびデータ出力ラインに接続される。これは、4つのRAMブロックのうちの1つのRAMしか一度にアドレス指定されないからである。データ出力ラインに入れられたデータは4つのRAMブロック(または16個の論理ブロック)に沿ったいくつかの場所でローカル水平ラインにおいて拾い上げることができる。書込イネーブルWEおよびローカルクロックLCLKラインもまた、4つのRAMブロックをともにグループ分けするために互いに接続される。黒丸は双方向バッファまたはパスゲートを介して接続された隣接したブロックにラインを有するバスを示し、白丸は、双方向バッファまたはパスゲートを介して接続されていないラインを示す。図6Aの上下の部分において、双方向バッファおよびパスゲートは上にある次のRAMブロックからの切断されたラインを示し、4つのグループの内部では、隣接したRAMブロックのラインのすべての対は接続されていることに注目されたい。
図6Bに示されるように、512×18メモリを形成するために、4つのRAMブロックのデータラインは白丸PIN2およびPOUT2で示されるように2つのグループに分割され、アドレス、イネーブル、書込イネーブルおよびローカルクロックラインは一緒にされる。イネーブルラインのうち1つだけがアドレスラインとして用いられ、その他のものは図5に関して先に述べたデコーダの構成がドントケアであるため無視される。したがって、たとえばRAMブロック13−5の1つのRAMセルおよびRAMブロック13−7の1つのRAMセルである2つのRAMセルが1つの9ビットアドレスに応答してアクセスされる。読出時には、アドレス指定された2つのRAMセルの各々がそれらの9ビットのデータをデータ出力バスDOUTに同時に送る。書込時には、アドレス指定された2つのRAMセルの各々が、それらの9ビットデータをデータ入力バスDINから同時に取出す。データ入力およびデータ出力ラインはPIN2およびPOUT2の中間で2つのグループに分割される。上および下グループの各々にある水平データラインによりデータの読出および書込が行なわれ、データラインは分割されるため競合はない。上の2つのRAMブロックに記憶されたデータビットは上の2つのRAMブロック13−5および13−6に接続された水平ライン上で検出される必要があり、下位ビットはRAMブロック13−7および13−8に接続された下ライン上で検出される必要がある。この例では、アドレスは4つのRAMブロックのうちのいずれかに隣接した論理ブロック場所からか、または示される水平ラインに接続され得るより遠くにある場所から入来し得る。別の例では、RAMブロック13−5のバスADDRは上のアドレスバス(図示せず)に接続されてもよく、この場合アドレスは、アドレス指定されたRAMブロックよりさらに遠くの論理ブロックから引出されてもよい。このように、1つの9ビットアドレスに応答して、18個のデータビットの書込または読出が行なわれる。9ビットアドレスによって512個の別個の場所がアドレス指定されるため、メモリは512×18である。
図6Cに示されるように、256×36メモリの場合、4つのRAMブロックのデータ入力および出力ラインは4つのグループに分けられ、アドレスラインADDRは互いに接続される。この構成では8本のアドレスラインしか用いられない。イネーブルラインはアドレス指定のためには用いられない。このため、4つのRAMブロックにより、単一アドレスに応答してデータワードがデータ出力バス上に入れられるか、またはデータ入力バスからデータワードが読出される。その後、4組のデータが検出されるか、またはそれぞれのRAMブロックの領域にある論理ブロックによって与えられなければならない。
デュアルポートRAM構成
各256×9RAMはデュアルポートRAMであるため、2つの別個の単一ポート128×9RAMか、または1つの単一ポート128×18RAMとして構成され得る。256×9=2304個のRAMビットのすべてが両方のアドレスバスからアドレス指定可能であることを思い出されたい。
2つの128×9RAMを形成するために、8個のアドレスビットのうちの1つ、たとえば最上位アドレスビットが、一方のポートのアドレスバス上では一方の状態に、かつ他方のポートに関しては他方の状態に永久的に設定される。これにより、一方のアドレスバス上の残りの7つのビットによってRAMの半分が、かつ他方のアドレスバス上の7つのビットによってもう半分がアドレス指定されるようになる。一方のアドレスポートの最下位の7本のアドレスラインは1組の7本の垂直アドレスラインに接続され、他方のアドレスポートの最下位の7本のアドレスラインは別の組の7本の垂直アドレスラインに接続される。データ入力ポートは別個のデータ入力ラインに接続され、データ出力ポートは別個のデータ出力ラインに接続される。
1つの単一ポート128×18RAMを形成するために、一方のアドレスポートの最上位ビットは、たとえば論理1である能動化電圧源に接続され、他方のアドレスポートの最上位ビットは接地に接続される。2つのポートの残りの7本のアドレスラインは同じ7本の垂直アドレスラインに接続される。このため、7本の垂直アドレスライン上の任意のアドレスによって2組のRAMセルがアドレス指定される。18本の垂直データ出力ラインは2つのポートの18本のデータ出力ラインに接続されるため、アドレス指定された2組のRAMセルの内容を受け、これは単一の18ビットワードを含む。
第2の実施例、図7A−図7C
この発明のRAMブロックの第2の実施例が図7A−図7Cに示される。図7AのRAMブロックは、RAM531と、チップの他の部分にRAM531を接続するためのラインとを含む。RAM531は異なった4つの構成、すなわち4096×1、2048×2、1024×4および512×8に構成することができる。水平ラインはRAM531から左方向に延びる。これらによりアドレス、データ入力およびコントロール信号がRAM531に与えられる。RAM531から右方向に延びる水平ラインはRAM531からのデータ出力信号を受ける。図2に示されるように、図7AのRAMブロックを通って延びる専用の垂直ラインにより、FPGAチップの論理ブロックとチップのRAMブロックのRAM531との間にインターフェイスが提供される。図2に示されるように、図面の上方にあるプログラマブルコネクタにより、図7AのRAMブロックが、上にある同一のRAMブロックに接続されるようになる。RAM531の内部構成は周知の方法または1996年7月29日に出願された同時係属中の出願連続番号第08/687,902号[X−264−1N]においてナンス他(Nance et al.)によって説明されている新規な構造によって、図6A−6Cに関して先に述べたものに類似した態様で制御され得る。
図2と同様に、組にされた4つのグループの水平ラインL0からL3が図7AのRAMブロックを通って延びる。これらのラインはFPGAチップの論理ブロックのための汎用相互接続構造の部分である。プログラマブルコネクタにより、これらの水平ラインが、垂直方向に延びるアドレス、データ入力、データ出力およびコントロールラインに接続されるようになる。図7Aの実施例では、より長い水平ラインHL0からHL3によりデータ出力信号がさらに遠くの論理ブロックまで伝えられる。水平ラインおよび垂直ラインの、選択された交差部における明示されていない三角形により、交差部におけるプログラム可能な接続が可能になる。図4Bに関して説明したように、三角形およびその中心へのラインを有する白丸の組合せにより、デフォルト入力を有する双方向バッファが示される。図4Bまたは図7Aから図7Cでは、丸は、図面の上方または下方にあるRAMブロックに対するバッファリングされたプログラム可能な接続であると考えることができる。(上方に丸を有する)三角形はRAM531へのバッファリングされたプログラム可能な接続であると考えることができる。
実施例の相違点
図2および図7Aから図7Cに示される実施例の間には基本的な相違点がある。図2では、いくつかのRAMからのデータ出力ラインは同じ垂直データ出力ラインに接続され、(たとえば図6Aに示される1024×9である)大きな構成ではいくつかのRAMブロックは同じラインに接続され得る。1つより多い信号を一度にデータ出力ラインに送ることを回避するようイネーブルラインを用いることによって競合が避けられる。
図7Aから図7Cの実施例ではイネーブルラインは設けられない。データ入力およびデータ出力ラインを交互に配置することにより競合が避けられる。図7Aから図7Cの上方には、図7Bにおいて明示されたDIC31およびDIC30などのプログラマブルコネクタが、上のRAMブロックに延びるラインに接続される。図7Bを参照して、データ入力ラインDI30はプログラムデータ入力コネクタDIC30を介してデータ入力ラインDI31′に接続され、これは上のRAMブロックのラインDI31として続く。最も左のラインDI31はプログラマブルデータ入力コネクタDIC31を介してラインDI16′に接続され、これは上のRAMブロックのラインDI16として続く。他のラインは、上のRAMブロックにおいて左の方向に移動するようそれらのそれぞれのプログラマブルコネクタの上のラインと交互に配置される。RAM531の右にあるデータ出力ラインの場合にも同じ交互の配置がもたらされる。図7Aおよび図7Bの両方を見ると、ラインL3の上ラインL3−23(図7A)が垂直ラインDI31にプログラム可能に接続され、かつデータ入力PIP DIP31(図7B)を介してRAM531のデータ入力ラインDIB3にプログラム可能に接続され得ることがわかるだろう。これに代えて、または付加的に、上向きに信号を伝えるようにプログラマブルコネクタDIC31を設定することによりRAM531上のRAMを用い、上のRAMブロックのラインDI16として続くラインDI16′にラインDI31を接続するようにしてもよい。ラインDI16は図7BにおいてPIP DIP16を介してデータ入力ラインDIB7に接続されることがわかる。このように、ラインDI31は図示されたRAMブロックのデータ入力ラインDIB3に、または上のRAMブロックのラインDIB7に接続され得る。
すべてのRAM構成において柔軟性を最大にするための、交互配置されたラインの分離
図7Bおよび図7Cのデータ入力およびデータ出力ラインの数に注目されたい。RAM531のデータ入力およびデータ出力ラインはどのビットが最上位であるかに従って番号が付されており、ここでビット7は最上位であり、ビット0は最下位である。数は連続していない。(もちろん図面では連続した数が付され、RAM531の外部にあるPIPのパターンはこれに対応して異なって示される。)PIPおよび交互配置された垂直ラインは、×1、×2、×4および×8RAMメモリのすべてが、設けられた垂直データラインの数に関して垂直方向に隣接したRAMブロックの、可能な最も大きな長さにわたって競合が生じないようにアクセスすることができる。×1RAMの場合、すなわちRAM531がデータワードの1ビットによって構成されている場合、(たとえばラインDIA0、DIB0、DOA0およびDOB0である)D0ラインしか用いられず、特定の水平D0ラインに接続される垂直ラインは16個のRAMブロックを通るまで同じ垂直ラインに接続されない。×2RAMの場合、すなわちRAM531がデータワードの2ビットで構成されている場合、ラインD0およびD1しか用いられない。それらは図7Aから図7Cの上に示される交互配置構造によって互いに隔てられるため、D0ラインは8個のRAMブロックを通るまでD1ラインと衝突しない。同様に、×4RAMの場合、ラインD0、D1、D2およびD3が用いられ、4つのRAMブロックを通るまで衝突は生じない。最後に、×8構成の場合、すべての水平データラインが用いられる。8本の水平データラインおよび16本の垂直データラインがあるため、8本のデータラインが用いられても、2個のRAMブロックを通るまで衝突が生じない構成にすることができる。
図7Aの実施例では、×1のメモリは0番目のデータポートしか用いないと仮定している。しかしながら、別の実施例では、×1のメモリ構成のRAMブロックにより単一信号がいくつかのまたはすべてのデータポート上に送られ、それにより、パイピュレーションに必要なスペースを増加させることなく経路付けの柔軟性を高めることができる。同様に、×2構成は2つより多いデータポートを用い、×4構成は4つより多いデータポートを用い得る。
パイピュレーション
図7Aを参照して、PIPの規則正しいパターンにより、相互接続ラインL0からL3がRAMブロック531および図面の上下にある他のRAMブロックにアクセスするようになる。L0からL3までの組のラインはアドレスラインまたはデータラインとしての役割を果たし得る。たとえば組L3のラインL3−23はラインL3−23と垂直アドレスラインA23との交差部にあるPIPをオンにすることによりアドレスラインとして用いられ得る。垂直アドレスラインA23はそれらの2本のラインの交差部にあるPIPをオンにすることにより、水平AポートアドレスラインADA11または水平BポートアドレスラインADB11にアクセスし得る。垂直アドレスラインA23は、図面の上の部分にあるコネクタAC23をオンにすることにより図面の上のRAMブロックの別の垂直アドレスラインA23に接続され得り、この垂直アドレスラインは図7Aに示されるように水平アドレスラインに接続され得る。これにより、ラインL3−23は多くの異なったRAMブロックにおける多くの異なった水平アドレスラインにアクセスすることができる。組L3のラインL3−0からL3−23の各々は、RAM531に至る水平アドレスラインのうちの1つにアクセスし得る。
組L2を垂直アドレスバスADDRに接続するためのPIPは、組L3に関する対応するPIPからオフセットして配置される。組L1およびL0のPIPも同様にオフセットされる。4つの組L0からL3の各々はAポートのすべての水平アドレスラインADA11−ADA0およびBポートのすべての水平アドレスラインADB11−ADB0に垂直アドレスバスADDRを介してアクセスし得るが、PIPのオフセットは4組のラインL0−L3について異なるため、4組のラインL0−L3には異なった垂直アドレスラインが用いられる。たとえば、組L3ではラインL3−23は水平アドレスラインADA11、ADA10、ADB4およびADB5にアクセスし得る。組L2では、ラインL2−23はラインL3−23と同じ水平アドレスラインにアクセスし得るが、垂直アドレスラインA22を介してアクセスする。ラインL2−23およびL1−23は垂直アドレスラインA21およびA20をそれぞれ介して水平アドレスラインADA10、ADA9、ADB4およびADB3にアクセスする。
組L0−L3のラインはデータ入力またはデータ出力ラインとしての役割も果たし得る。たとえば、組L3のラインL3−23はラインL3−23と垂直データ入力ラインDI31との交差部にあるPIPをオンにし、かつ垂直データ入力ラインDI31と水平データ入力ラインDIB3およびDIA3(図7Bの表示を参照)との交差部にある1つまたはそれ以上のPIPをオンにすることにより、データ入力ラインとして用いられる。
ラインL3−23は図7AのRAM531のBポートからのデータ出力ラインとしての役割を果たさないことに留意されたい。PIPはラインL3−23と垂直データ出力ラインDO27との交差部にあるが、垂直データ出力ラインDO27とRAM531のBポートからの任意の水平データ出力ラインとの間の交差部にはPIPはない。しかしながら、ラインL3−23は図7Aの上の、対応するRAM531のBポートからのデータ出力ラインとしての役割を果たし得る。コネクタDOC31(図7Cを参照)をオンにすると垂直データ出力ラインDO31がデータ出力ラインDO16′に接続され、これは図の上にあるRAMブロックのデータ出力ラインDO16として続く。図7Cに示されるように、垂直データ出力ラインDO16はその交差部にあるPIPをオンにすることにより水平データ出力ラインDOB0からのデータを受けることができる。他のパターンのPIPを用いることにより他の選択肢が可能となる。上述のとおり、パイピュレーションの密度を高めるとより多くの選択肢がもたらされるが、実現するために必要なチップ面積が増加する。
デュアルポートRAMの特徴
別個のデータ入力およびデータ出力ラインを用いると、いくつかの論理ブロックによりポートBを介してRAM531に対する読出を行なうことができ、他の論理ブロックによりポートAを介してRAM531に対する書込を行なうことができる。24本の垂直アドレスラインA0−A23が設けられ、4096の大きさの構成において12本のアドレスラインが用いられることに留意されたい。たとえば、アドレスラインA0−A23のうちの奇数のものがデータ入力ポートAに対する書込を行なうために用いられるならば、データ出力ポートBからの読出のためには偶数のアドレスラインが用いられ得る。(十分なラインおよび十分なPIPがあるならばいかなるラインの組合せをポートAおよびBに用いてもよい。)
4096×4RAMにおいてポートAに対する書込およびポートBからの読出を行なうために、4対のPIPをオンにすることにより4つのデータビットが垂直データ入力ラインDI0からDI3に書込まれる。水平ラインL3−20と垂直データ入力ラインDI19との交差部において1つのPIPが、水平ラインL2−20と垂直データ入力ラインDI18との交差部において第2のPIPが、水平ラインL1−20と垂直データ入力ラインDI17との交差部において第3のものが、かつ水平ラインL0−20と垂直データ入力ラインDI16との交差部において第4のものがオンになる。
経路を完成するために、RAM531のPIP DIP19がラインL3−20をデータ入力ポートDIB0に接続するためにオンになる。このため、ラインL3−20上の信号がRAM531のラインDIA0上に受けられ、周知の手段によって、RAM531の、アドレス指定されたメモリセルに書込まれる。PIP DIP18はオンにならない。したがって、ラインL2−20上の信号はRAM531のラインDIA0には接続されない。しかしながら、上にある同一のRAMブロックにおいては、PIP DIP19がオンになるため、ラインL2−12上の信号がRAM531の上にあるRAMのラインDIA0上に受けられる。垂直データ入力ラインDI17上にあるラインLI−20上の信号は、コネクタDIC17によって、図7Aの上にあるRAMブロックの垂直データ入力ラインDI18に接続され、図7Aの上にあるRAMブロックのコネクタDIC18を介して図7Aの2つ上にあるRAMブロックの垂直データ入力ラインDI19にさらに接続される。そこからそれは、PIP DIP19を介して水平データ入力ラインDIA0に、かつ図7Aの2つ上にあるRAMに接続される。同様に、図7AのラインDI16にあるラインL0−20上の信号は、図7Aより3つ上のRAMブロックの水平データ入力ラインDIA0に接続される。
これにより、図7AのRAMブロックに隣接した論理ブロックによってラインL3−20、L2−20、L1−20およびL0−20上に送られた、データワードのうちの4ビットが、異なった4つのRAMブロックのメモリセルの中に書込まれ、これらのうちの3つは図7Aより上にある。
4つのRAMブロックの各々では、水平データ出力ラインDOB0しか用いられない。この結果、4つのデータ出力信号が図7Cまたは図7Aの垂直データ出力ラインDO16からDO19上に送られることとなる。PIPはこれらの4本のラインと水平ラインL3−20、L2−20、L1−20およびL0−20との交差部にはないが、これらの4本の水平ラインは読出のために用いることができない。なぜなら、それらは上述の書込動作のために既に用いられているからである。しかしながら、ラインL3−14、L2−14、L1−14およびL0−14との交差部にもPIPはあり、これらのラインはそれぞれのPIPをオンにすることにより書込のために用いることができる。
図7Aから図7CのRAMブロックの例示的な用途
RAM531は4つの構成を有するデュアルポートRAMである。RAM531は4096個のメモリセルを含み、これらは周知の内部構造によって4096×1RAM、2048×2RAM、1024×4RAMまたは512×8RAMとして構成され得る。図7Aの実施例では各ポートに対して12本ずつ、24本の水平アドレスラインがある。
4096×1構成では、12本の水平アドレスラインにより各ポート(212=4096)がアドレス指定される。4096×1構成では、水平データ入力ラインDIA0およびDIB0ならびに水平データ出力ラインDOA0およびDOB0しか用いられない。
2048×2RAM構成では、11本の水平アドレスラインにより各ポート(211=2048)がアドレス指定され、各ポートの最上位アドレスビットは未使用のままとされる。ポートDIA0、DIA1、DIB0およびDIB1の各々に関する2本のデータ入力ラインならびにポートDOA0、DOA1、DOB0およびDOB1の各々に関する2本のデータ出力ラインが用いられる。
512×8RAMでは、アドレス指定のために各ポートに対して9本のアドレスライン、すなわちラインADB8−ADB0およびADA8−ADA0が用いられる。3つの最上位アドレスラインは無視される。512×8構成では、各ポートに関する8本のデータラインのすべてが用いられる。
図8Aは、RAMブロックが512×8構成である場合の、図7Aから図7Cの実施例の例示的な用途を示す。4つのRAMブロックが関連して用いられる。それらは512×32RAMとして構成される。4つの隣接したRAMブロックのメモリセルにアクセスする論理は各論理ブロックにより隣接したRAMブロックがアクセスされるように配置されているため、1つのRAMブロックから次のものへの垂直方向の接続は必要ないか、または使用されない。図8Aは、RAMブロック出力ポートから論理ブロック入力ポートに信号を伝えるために用いられる1つのRAMブロック内の垂直方向のデータ出力ルーチングラインを示す。
RAMブロック531−8のメモリセルにより32ビットワードの各々の最下位ビット0から7が記憶される。RAMブロック531−8の出力ポートDOB0からDOB7は、垂直データ出力ラインへのPIPをオンにすることにより、RAMブロック531−8に隣接した4つの行の論理ブロックに接続される。簡略化のために、垂直データ出力ラインDO−16と水平ラインのうちの1本との交差部におけるPIPしか例示しない。図示した例では、RAMブロック531−8のデータ出力ポートDOB0はこれら2本のラインの交差部のPIPをオンにすることにより垂直データ出力ラインDO−16に接続される。垂直ラインDO−16と水平ラインLO−5との交差部のPIPをオンにすることにより、データ出力ポートDOB0がラインL0−5に接続され、0のデータビットを論理ブロック25−40に与える。同様に、データ出力ポートDOB1は垂直ラインDO−22に接続され、これは論理ブロック25−40のラインL0−7に接続される。32ビットワードの他の30個のデータビットは示されるように接続される。図8Aには示されない付加的な接続により論理ブロックが垂直アドレスラインおよびデータ入力ラインにアクセスするようになり、かつ所望のメモリ機能を実現するようにクロックおよび他の必要な信号を与えるようになる。
垂直ライン間の接続を用いる大きなRAM
示される専用の垂直ラインおよびPIPパターンを用いると、垂直アドレス、データ、およびコントロールラインを互いに接続することにより大きなRAMが好都合に形成される。図8Bは隣接した4つのRAMブロックの2048×8RAMメモリを実現する、隣接したRAMブロックの垂直データ出力ライン間のプログラム可能な相互接続の用途を示す。図8Bはまた、この構成の論理ブロックにいかにしてデータ出力ラインが接続されるかを示す。論理ブロック25−33から25−36はデータワードの8個のビット0から7を受ける。これらの4つの論理ブロックはRAMブロック531−7に隣接する。しかし、論理ブロック25−33から25−36に隣接しないRAMブロックにいくつかのデータが記憶される。このため、好都合に転送を行なうために垂直ラインが用いられる。たとえば、論理ブロック25−35に与えられたメモリビット2はRAMブロック531−8に記憶され、ポートDOB0を介してアクセスされる。RAMブロック531−8に隣接するDOB0およびDO−16の交差部のPIPをオンにし、RAMブロック531−7に隣接するDO−17およびL1−5の交差部のPIPをオンにし、トライステートバッファTB−1をオンにし、これにより、RAMブロック531−8に隣接した垂直ラインDO−16をRAMブロック531−7に隣接した垂直ラインDO−17に接続することにより、ルーチングが接続される。ビット2、3、6および7を与えるためには1つのトライステートバッファが各ビットに対してオンになる必要がある。ビット4および5を与えるためには2つのトライステートバッファが各ビットに対してオンになる必要がある。たとえば、RAMブロック531−5の出力ポートDOB1に与えられるビットは、トライステートバッファTB2およびTB3ならびにRAMブロック531−5に隣接したDOB1およびDO−24の交差部のPIPおよびRAMブロック531−7に隣接したDO−22およびラインL2−6の交差部のPIPをオンにすることにより、論理ブロック25−34におけるその宛先に経路付けられる。
RAMブロックおよび論理を用いるRAM
特に大きなRAMであるRAMを形成するためのさらなる柔軟性は、FPGAの論理およびルーチング構造とRAMブロックとを組合せることによって達成される。
図8Cは、信号を多重化するための2つの論理ブロックと、信号を経路付けるための2つの付加的な論理ブロックとを用いて形成された8192×2RAMを示す。図8Cは、アドレスおよびデータ入力ラインならびに図8Aおよび図8Bに示されるデータ出力ラインを示す。
図7Aの実施例はRAMブロックにおいて4096個のメモリセルを用いるため、すべてのワードの1ビットを記憶するために2個のRAMブロックを要する。図8Cでは、RAMブロック531−7および531−8にはビット0が記憶され、RAMブロック531−5および531−6にはビット1が記憶される。読出および書込の両方のために、メモリにアクセスするためにポートBが選択されている。書込はポートDIB0に対して行なわれ、読出はポートDOB0から行なわれる。メモリが8192個のセルの大きさの場合13本のアドレスラインが必要である。ポートBは12本のアドレスラインしか有さない。したがって、12個のアドレス信号A0からA11が12個のアドレスポートに与えられる。12個のアドレス信号のうちの10個は、論理ブロックと垂直アドレスラインとの間のひとつのPIPおよび垂直アドレスラインとアドレスポートとの間の1つのPIPをオンにすることによって与えられる。2つのアドレス信号A8およびA11は、隣接した論理ブロックにアドレス信号を経路付け、そこから垂直アドレスラインに、かつアドレスポートに経路付けることにより、対応するアドレスポートに与えられる。たとえば、アドレス信号A11はローカル相互接続ラインI1に与えられ、かつPIP9をオンにすることにより水平ラインL2−15に与えられ、これはPIP10をオンにすることにより垂直相互接続ラインADDR14に接続される。その後PIPはこの垂直相互接続ラインをRAMブロック531−5から531−8の各々のアドレスポートADB11に接続する。
アドレス指定されたメモリセルだけが書込まれるようにするために、13番目のアドレス信号A12は書込イネーブル信号DWEと論理結合される。この論理結合はいくつかのやり方で行なうことができる。図8Cでは、論理ブロック24−31および24−32は書込イネーブルおよびアドレス信号の論理結合を行なう。論理ブロック24−31はDWEおよびA12のAND関数をもたらす。AND関数出力はRAMブロック531−5および531−7の書込イネーブルポートWEBに与えられるため、DWEがハイ(データが書込まれる)であり、A12がハイ(その範囲の上半分にアドレスがある)場合、書込イネーブル信号はRAMブロック531−5および531−7に与えられることとなる。論理ブロック24−32はDWEのAND関数およびA12の反転をもたらすため、その範囲の下半分にあるアドレスが書込まれる場合には、RAMブロック531−6および531−8が能動化される。
データ出力側では、アドレス信号A12との論理結合が論理ブロック25−35および25−36において行なわれ、これらの各々はマルチプレクサとして構成される。データビットDO1は論理ブロック25−35において発生する。論理ブロック25−35はRAMブロック531−6および531−8からのDOB0出力信号を受ける。A12がハイのとき、論理ブロック25−35のマルチプレクサはRAMブロック531−6からのデータビットを選択し、A12がローのとき、論理ブロック25−35のマルチプレクサはRAMブロック531−8からデータビットを選択する。論理ブロック25−36における状況も似ている。このため、論理ブロック25−35および25−36からのマルチプレクサ出力は、8192の大きさのメモリにおけるアドレス指定されたワードの2つのビットDO0およびDO1である。
RAMブロックの垂直ラインのPIPがRAMブロック531−5からの出力信号を論理ブロック25−35に接続するために利用できない場合には、典型的にはFBGA論理ブロックに設けられるローカル相互接続により信号が伝えられる。この例では、RAMブロック531−5のデータ出力ポートDOB0はPIP1、TB5、TB4、PIP2、PIP3およびPIP4をオンにすることにより論理ブロック25−35に接続される。これらのうちPIP3およびPIP4は従来のFPGAに見られるような論理ブロックローカル相互接続構造の部分である。
アドレスラインA12はPIP5からPIP8をオンにすることにより汎用相互接続構造を介して論理ブロック25−35および25−36のマルチプレクサコントロールラインに経路付けられる。
図8Cには示されないが先行技術においては周知である多くのルーチンラインおよび相互接続構造ももちろん、FPGAの商用の実施例において提供されるであろう。このような構造を示すとこの発明の理解が不明瞭になると確信されるため、それらはここでは示されない。
大きなRAM
垂直アドレス、データ入力およびデータ出力ラインに競合が生ずる前に垂直の列にある16個のRAMブロックを互いに結合することにより4096×16RAMを形成することが可能である。同じ垂直方向の列のRAMブロックを分割するか、1つより多い列からのRAMブロックを用いるか、またはRAMの部分を相互接続するかまたはそれにアクセスするための垂直方向の一般的な相互接続(FPGAアーキテクチャにおいて周知である)を用いることにより、大きなメモリを形成することができる。図1Aに示されるように、FPGAチップは典型的に多数の列のRAMブロックのを含む。L0からL3などの水平ラインは、1つより多い、RAMブロックの列にアクセスするために用いられ得る。垂直方向の列にあるより多くのRAMブロックを互いに接続すると、より幅の広いRAMが形成される。
他の実施例
図7Aの実施例では、各ポートに対して24本のアドレスラインと、16本のデータ入力およびデータ出力ラインとが示される。したがって16個の垂直方向に隣接するRAMブロックを好都合に組合せることができ、すなわちデータ出力ライン間での競合または入力ラインに対する暖昧さをもたらすことなく組合せて用いることができる。もちろん、他の数のライン、他のパターンのPIPおよび他のサイズのRAMを用いてもよい。
Claims (8)
- RAMを備えた、
RAM機能のための専用のものであり、かつ列に沿って配置された複数のRAMブロック(531−5から531−8)を含み、前記RAMブロックはアドレスポート(ADB11−ADB0)およびデータポート(DIB7−DIB0)を有し、さらに
前記複数のRAMブロックの各々に対応付けて配置された、複数の論理ブロック(25−33から25−36)と、
前記複数の論理ブロックに対応付けて、行(L0からL3、HL0からHL3)に沿って配置された複数の導電性ラインを含む相互接続構造と、
前記論理ブロックを対応する前記相互接続構造に接続するための手段(DATA OUT)と、
アドレス信号のみを伝えるための専用の1組の垂直ライン(ADDR)とを含み、前記1組の垂直ラインの各ラインは、前記複数のRAMブロックに対応する列にわたって延びており、さらに
データ信号のみを伝えるための専用の垂直データライン(DATA IN)のグループを含み、前記各グループは、前記複数のRAMブロックに対応する列にわたって延びており、さらに
前記相互接続構造のうち前記論理ブロックからアドレス信号が与えられる導電性ラインと前記垂直ラインとをプログラム可能に接続するための手段(PIP)と、
前記垂直ラインと前記アドレスポートとをプログラム可能に接続するための手段(PIP)と、
前記データポートと前記垂直データラインとをプログラム可能に接続するための手段(PIP)と、
前記垂直データラインと前記相互接続構造のうち前記論理ブロックのデータ入出力に用いられる導電性ラインとをプログラム可能に接続するための手段(PIP)と、
前記垂直ラインを前記複数のRAMブロックの各々に対応する区間に分割するための手段(AC−23)と、
前記垂直データラインを前記複数のRAMブロックの各々に対応する区間に分割するための手段(DIC31)とを含み、
前記分割するための手段は、前記論理ブロックから対応する行に配置されるRAMブロックへアクセスされる際に、前記垂直ラインおよび前記垂直データラインを対応する区間に分割し、前記論理ブロックから対応する行に配置されるRAMブロックと垂直方向に隣接するRAMブロックへアクセスされる際に、前記垂直ラインおよび前記垂直データラインの隣接する区間を相互接続状態にする、RAMを備えたFPGA。 - 前記分割するための手段のうちいくつかが双方向バッファである、請求項1に記載のRAMを備えたFPGA。
- 前記分割するための手段のうちいくつかがパストランジスタである、請求項1に記載のRAMを備えたFPGA。
- 前記双方向バッファが対応するラインをラインセグメントに分割し、前記各セグメントはRAMブロックに隣接する、請求項3に記載のRAMを備えたFPGA。
- 前記RAMブロックのうちいくつかが、2つのアドレスポート(ADA11−ADA0,ADB11−ADB0)と少なくとも2つのデータポート(DIA7−DIA0,DIB7−DIB0)とを有するデュアルポートRAM(531)を含み、前記アドレスポートはすべて前記垂直ラインによってアクセス可能である、請求項1に記載のRAMを備えたFPGA。
- 前記RAMブロックの各々が、複数の、長さ対幅の比を有するよう再構成可能である、請求項1に記載のRAMを備えたFPGA。
- 前記RAMブロック(531−7)が4つの論理ブロック(25−33から25−36)にわたって延びる、請求項1に記載のRAMを備えたFPGA。
- 前記複数のRAMブロックのうち第1のRAMブロックを駆動するデータラインの前記グループのうちの第1のもの(DI31)が、前記複数のRAMブロックのうち第2のRAMブロックを駆動するデータラインの前記グループのうちの異なったもの(DI16′)に、前記相互接続構造を用いることなく接続することができ、それにより、前記第1のRAMブロックの所与のデータポート(DIB3)を駆動する信号が、前記第2のRAMブロックの、同じ所与のデータポートを駆動する信号と衝突しない、請求項1に記載のRAMを備えたFPGA。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/708,247 US5933023A (en) | 1996-09-03 | 1996-09-03 | FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines |
US08/708,247 | 1996-09-03 | ||
PCT/US1997/010279 WO1998010517A1 (en) | 1996-09-03 | 1997-06-16 | Fpga architecture having ram blocks with programmable word length and width and dedicated address and data lines |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001500682A JP2001500682A (ja) | 2001-01-16 |
JP4410853B2 true JP4410853B2 (ja) | 2010-02-03 |
Family
ID=24845004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51262698A Expired - Lifetime JP4410853B2 (ja) | 1996-09-03 | 1997-06-16 | プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ |
Country Status (5)
Country | Link |
---|---|
US (2) | US5933023A (ja) |
EP (2) | EP1239592A3 (ja) |
JP (1) | JP4410853B2 (ja) |
DE (1) | DE69716623T2 (ja) |
WO (1) | WO1998010517A1 (ja) |
Families Citing this family (179)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
US5715197A (en) | 1996-07-29 | 1998-02-03 | Xilinx, Inc. | Multiport RAM with programmable data port configuration |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
EP1329816B1 (de) | 1996-12-27 | 2011-06-22 | Richter, Thomas | Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.) |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US5963050A (en) | 1997-02-26 | 1999-10-05 | Xilinx, Inc. | Configurable logic element with fast feedback paths |
US6396303B1 (en) * | 1997-02-26 | 2002-05-28 | Xilinx, Inc. | Expandable interconnect structure for FPGAS |
US6011744A (en) * | 1997-07-16 | 2000-01-04 | Altera Corporation | Programmable logic device with multi-port memory |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
US6052327A (en) | 1997-10-14 | 2000-04-18 | Altera Corporation | Dual-port programmable logic device variable depth and width memory array |
US6191998B1 (en) | 1997-10-16 | 2001-02-20 | Altera Corporation | Programmable logic device memory array circuit having combinable single-port memory arrays |
US6288970B1 (en) | 1997-10-16 | 2001-09-11 | Altera Corporation | Programmable logic device memory array circuit having combinable single-port memory arrays |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6127843A (en) * | 1997-12-22 | 2000-10-03 | Vantis Corporation | Dual port SRAM memory for run time use in FPGA integrated circuits |
US6104208A (en) * | 1998-03-04 | 2000-08-15 | Altera Corporation | Programmable logic device incorporating function blocks operable as wide-shallow RAM |
US7146441B1 (en) * | 1998-03-16 | 2006-12-05 | Actel Corporation | SRAM bus architecture and interconnect to an FPGA |
US6467017B1 (en) * | 1998-06-23 | 2002-10-15 | Altera Corporation | Programmable logic device having embedded dual-port random access memory configurable as single-port memory |
US6081473A (en) * | 1998-12-15 | 2000-06-27 | Lattice Semiconductor Corporation | FPGA integrated circuit having embedded sram memory blocks each with statically and dynamically controllable read mode |
US6346826B1 (en) * | 1998-12-23 | 2002-02-12 | Integrated Logic Systems, Inc | Programmable gate array device |
US6181163B1 (en) * | 1999-01-21 | 2001-01-30 | Vantis Corporation | FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals |
US6211695B1 (en) | 1999-01-21 | 2001-04-03 | Vantis Corporation | FPGA integrated circuit having embedded SRAM memory blocks with registered address and data input sections |
US6212591B1 (en) * | 1999-04-02 | 2001-04-03 | Cradle Technologies | Configurable I/O circuitry defining virtual ports |
US8230411B1 (en) | 1999-06-10 | 2012-07-24 | Martin Vorbach | Method for interleaving a program over a plurality of cells |
US6347346B1 (en) * | 1999-06-30 | 2002-02-12 | Chameleon Systems, Inc. | Local memory unit system with global access for use on reconfigurable chips |
GB2391671B (en) * | 1999-07-02 | 2004-04-28 | Altera Corp | Embedded memory blocks for programmable logic |
GB2351824B (en) | 1999-07-02 | 2004-03-31 | Altera Corp | Embedded memory blocks for programmable logic |
KR100374632B1 (ko) * | 1999-08-09 | 2003-03-04 | 삼성전자주식회사 | 반도체 메모리장치 및 이의 메모리셀 어레이 블락 제어방법 |
US6662302B1 (en) * | 1999-09-29 | 2003-12-09 | Conexant Systems, Inc. | Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device |
US6404660B1 (en) * | 1999-12-23 | 2002-06-11 | Rambus, Inc. | Semiconductor package with a controlled impedance bus and method of forming same |
US6864710B1 (en) * | 1999-12-30 | 2005-03-08 | Cypress Semiconductor Corp. | Programmable logic device |
US6388464B1 (en) | 1999-12-30 | 2002-05-14 | Cypress Semiconductor Corp. | Configurable memory for programmable logic circuits |
US6438737B1 (en) * | 2000-02-15 | 2002-08-20 | Intel Corporation | Reconfigurable logic for a computer |
US6400635B1 (en) | 2000-03-15 | 2002-06-04 | Altera Corporation | Memory circuitry for programmable logic integrated circuit devices |
US6608500B1 (en) | 2000-03-31 | 2003-08-19 | Cypress Semiconductor Corp. | I/O architecture/cell design for programmable logic device |
US6356110B1 (en) * | 2000-04-03 | 2002-03-12 | Altera Corporation San Jose Ca | Multifunction memory array in a programmable logic device |
US6362650B1 (en) * | 2000-05-18 | 2002-03-26 | Xilinx, Inc. | Method and apparatus for incorporating a multiplier into an FPGA |
US6373779B1 (en) | 2000-05-19 | 2002-04-16 | Xilinx, Inc. | Block RAM having multiple configurable write modes for use in a field programmable gate array |
JP2004506261A (ja) | 2000-06-13 | 2004-02-26 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | パイプラインctプロトコルおよびct通信 |
US6346825B1 (en) | 2000-10-06 | 2002-02-12 | Xilinx, Inc. | Block RAM with configurable data width and parity for use in a field programmable gate array |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US7187673B2 (en) * | 2000-12-18 | 2007-03-06 | Koninklijke Philips Electronics N.V. | Technique for creating a machine to route non-packetized digital signals using distributed RAM |
US6662285B1 (en) | 2001-01-09 | 2003-12-09 | Xilinx, Inc. | User configurable memory system having local and global memory blocks |
US6522167B1 (en) | 2001-01-09 | 2003-02-18 | Xilinx, Inc. | User configurable on-chip memory system |
US6889304B2 (en) | 2001-02-28 | 2005-05-03 | Rambus Inc. | Memory device supporting a dynamically configurable core organization |
US7581076B2 (en) * | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US7500075B1 (en) | 2001-04-17 | 2009-03-03 | Rambus Inc. | Mechanism for enabling full data bus utilization without increasing data granularity |
US6605962B2 (en) | 2001-05-06 | 2003-08-12 | Altera Corporation | PLD architecture for flexible placement of IP function blocks |
US7236008B1 (en) * | 2001-05-06 | 2007-06-26 | Altera Corporation | Multiple size memories in a programmable logic device |
US7076595B1 (en) * | 2001-05-18 | 2006-07-11 | Xilinx, Inc. | Programmable logic device including programmable interface core and central processing unit |
US7657877B2 (en) * | 2001-06-20 | 2010-02-02 | Pact Xpp Technologies Ag | Method for processing data |
EP1271783B1 (en) | 2001-06-29 | 2013-07-31 | Sicronic Remote KG, LLC | FPGA with a simplified interface between the program memory and the programmable logic blocks |
EP1271782B1 (en) * | 2001-06-29 | 2005-05-18 | STMicroelectronics Pvt. Ltd | FPGA with at least two different and independently configurable memory structures |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
US6781407B2 (en) | 2002-01-09 | 2004-08-24 | Xilinx, Inc. | FPGA and embedded circuitry initialization and processing |
US7420392B2 (en) * | 2001-09-28 | 2008-09-02 | Xilinx, Inc. | Programmable gate array and embedded circuitry initialization and processing |
US6798239B2 (en) * | 2001-09-28 | 2004-09-28 | Xilinx, Inc. | Programmable gate array having interconnecting logic to support embedded fixed logic circuitry |
US7406674B1 (en) | 2001-10-24 | 2008-07-29 | Cypress Semiconductor Corporation | Method and apparatus for generating microcontroller configuration information |
US6871335B1 (en) | 2001-10-30 | 2005-03-22 | Xilinx, Inc. | Methods and circuits for measuring clock skew on programmable logic devices |
US6862548B1 (en) * | 2001-10-30 | 2005-03-01 | Xilinx, Inc. | Methods and circuits for measuring clock skew on programmable logic devices |
US8078970B1 (en) | 2001-11-09 | 2011-12-13 | Cypress Semiconductor Corporation | Graphical user interface with user-selectable list-box |
US8042093B1 (en) | 2001-11-15 | 2011-10-18 | Cypress Semiconductor Corporation | System providing automatic source code generation for personalization and parameterization of user modules |
US6996758B1 (en) | 2001-11-16 | 2006-02-07 | Xilinx, Inc. | Apparatus for testing an interconnecting logic fabric |
US6983405B1 (en) | 2001-11-16 | 2006-01-03 | Xilinx, Inc., | Method and apparatus for testing circuitry embedded within a field programmable gate array |
US8069405B1 (en) | 2001-11-19 | 2011-11-29 | Cypress Semiconductor Corporation | User interface for efficiently browsing an electronic document using data-driven tabs |
US6886092B1 (en) | 2001-11-19 | 2005-04-26 | Xilinx, Inc. | Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion |
US6971004B1 (en) | 2001-11-19 | 2005-11-29 | Cypress Semiconductor Corp. | System and method of dynamically reconfiguring a programmable integrated circuit |
US7774190B1 (en) | 2001-11-19 | 2010-08-10 | Cypress Semiconductor Corporation | Sleep and stall in an in-circuit emulation system |
US7844437B1 (en) | 2001-11-19 | 2010-11-30 | Cypress Semiconductor Corporation | System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit |
US7770113B1 (en) | 2001-11-19 | 2010-08-03 | Cypress Semiconductor Corporation | System and method for dynamically generating a configuration datasheet |
US8281108B2 (en) | 2002-01-19 | 2012-10-02 | Martin Vorbach | Reconfigurable general purpose processor having time restricted configurations |
US6590826B1 (en) | 2002-01-22 | 2003-07-08 | Xilinx, Inc. | Self-addressing FIFO |
US6820248B1 (en) | 2002-02-14 | 2004-11-16 | Xilinx, Inc. | Method and apparatus for routing interconnects to devices with dissimilar pitches |
EP1514193B1 (de) | 2002-02-18 | 2008-07-23 | PACT XPP Technologies AG | Bussysteme und rekonfigurationsverfahren |
US6754882B1 (en) | 2002-02-22 | 2004-06-22 | Xilinx, Inc. | Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC) |
US6976160B1 (en) | 2002-02-22 | 2005-12-13 | Xilinx, Inc. | Method and system for controlling default values of flip-flops in PGA/ASIC-based designs |
US7007121B1 (en) | 2002-02-27 | 2006-02-28 | Xilinx, Inc. | Method and apparatus for synchronized buses |
US6934922B1 (en) | 2002-02-27 | 2005-08-23 | Xilinx, Inc. | Timing performance analysis |
US7111217B1 (en) | 2002-02-28 | 2006-09-19 | Xilinx, Inc. | Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC) |
US6839874B1 (en) | 2002-02-28 | 2005-01-04 | Xilinx, Inc. | Method and apparatus for testing an embedded device |
US7088767B1 (en) | 2002-03-01 | 2006-08-08 | Xilinx, Inc. | Method and apparatus for operating a transceiver in different data rates |
US7187709B1 (en) | 2002-03-01 | 2007-03-06 | Xilinx, Inc. | High speed configurable transceiver architecture |
US7111220B1 (en) | 2002-03-01 | 2006-09-19 | Xilinx, Inc. | Network physical layer with embedded multi-standard CRC generator |
US6961919B1 (en) | 2002-03-04 | 2005-11-01 | Xilinx, Inc. | Method of designing integrated circuit having both configurable and fixed logic circuitry |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US8103497B1 (en) | 2002-03-28 | 2012-01-24 | Cypress Semiconductor Corporation | External interface for event architecture |
US6996713B1 (en) | 2002-03-29 | 2006-02-07 | Xilinx, Inc. | Method and apparatus for protecting proprietary decryption keys for programmable logic devices |
US7162644B1 (en) | 2002-03-29 | 2007-01-09 | Xilinx, Inc. | Methods and circuits for protecting proprietary configuration data for programmable logic devices |
US7308608B1 (en) | 2002-05-01 | 2007-12-11 | Cypress Semiconductor Corporation | Reconfigurable testing system and method |
US6973405B1 (en) | 2002-05-22 | 2005-12-06 | Xilinx, Inc. | Programmable interactive verification agent |
US7191342B1 (en) | 2002-06-04 | 2007-03-13 | Xilinx, Inc. | Methods and circuits for allowing encrypted and unencrypted configuration data to share configuration frames |
US6772405B1 (en) | 2002-06-13 | 2004-08-03 | Xilinx, Inc. | Insertable block tile for interconnecting to a device embedded in an integrated circuit |
US7085973B1 (en) | 2002-07-09 | 2006-08-01 | Xilinx, Inc. | Testing address lines of a memory controller |
US6919736B1 (en) * | 2002-07-12 | 2005-07-19 | Lattice Semiconductor Corporation | Field programmable gate array having embedded memory with configurable depth and width |
US7143295B1 (en) | 2002-07-18 | 2006-11-28 | Xilinx, Inc. | Methods and circuits for dedicating a programmable logic device for use with specific designs |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7099426B1 (en) | 2002-09-03 | 2006-08-29 | Xilinx, Inc. | Flexible channel bonding and clock correction operations on a multi-block data path |
US7394284B2 (en) | 2002-09-06 | 2008-07-01 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US7761845B1 (en) | 2002-09-09 | 2010-07-20 | Cypress Semiconductor Corporation | Method for parameterizing a user module |
US7092865B1 (en) | 2002-09-10 | 2006-08-15 | Xilinx, Inc. | Method and apparatus for timing modeling |
US7111110B1 (en) * | 2002-12-10 | 2006-09-19 | Altera Corporation | Versatile RAM for programmable logic device |
US7278128B1 (en) | 2003-04-11 | 2007-10-02 | Xilinx, Inc. | Method of altering a bitstream |
US6897676B1 (en) | 2003-06-04 | 2005-05-24 | Xilinx, Inc. | Configuration enable bits for PLD configurable blocks |
JP4700611B2 (ja) | 2003-08-28 | 2011-06-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理装置およびデータ処理方法 |
DE10340405B3 (de) * | 2003-09-02 | 2004-12-23 | Infineon Technologies Ag | Integrierter Halbleiterspeicher |
US7421014B2 (en) * | 2003-09-11 | 2008-09-02 | Xilinx, Inc. | Channel bonding of a plurality of multi-gigabit transceivers |
US7257799B2 (en) | 2003-11-14 | 2007-08-14 | Lsi Corporation | Flexible design for memory use in integrated circuits |
US7865542B2 (en) * | 2003-12-29 | 2011-01-04 | Xilinx, Inc. | Digital signal processing block having a wide multiplexer |
US7467177B2 (en) * | 2003-12-29 | 2008-12-16 | Xilinx, Inc. | Mathematical circuit with dynamic rounding |
US7853632B2 (en) * | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Architectural floorplan for a digital signal processing circuit |
US7472155B2 (en) * | 2003-12-29 | 2008-12-30 | Xilinx, Inc. | Programmable logic device with cascading DSP slices |
US7853636B2 (en) * | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit for convergent rounding |
US7840630B2 (en) | 2003-12-29 | 2010-11-23 | Xilinx, Inc. | Arithmetic logic unit circuit |
US7870182B2 (en) * | 2003-12-29 | 2011-01-11 | Xilinx Inc. | Digital signal processing circuit having an adder circuit with carry-outs |
US7567997B2 (en) * | 2003-12-29 | 2009-07-28 | Xilinx, Inc. | Applications of cascading DSP slices |
US7467175B2 (en) * | 2003-12-29 | 2008-12-16 | Xilinx, Inc. | Programmable logic device with pipelined DSP slices |
US8495122B2 (en) * | 2003-12-29 | 2013-07-23 | Xilinx, Inc. | Programmable device with dynamic DSP architecture |
US7844653B2 (en) | 2003-12-29 | 2010-11-30 | Xilinx, Inc. | Digital signal processing circuit having a pre-adder circuit |
US7882165B2 (en) * | 2003-12-29 | 2011-02-01 | Xilinx, Inc. | Digital signal processing element having an arithmetic logic unit |
US7840627B2 (en) * | 2003-12-29 | 2010-11-23 | Xilinx, Inc. | Digital signal processing circuit having input register blocks |
US7480690B2 (en) * | 2003-12-29 | 2009-01-20 | Xilinx, Inc. | Arithmetic circuit with multiplexed addend inputs |
US7853634B2 (en) * | 2003-12-29 | 2010-12-14 | Xilinx, Inc. | Digital signal processing circuit having a SIMD circuit |
US7860915B2 (en) * | 2003-12-29 | 2010-12-28 | Xilinx, Inc. | Digital signal processing circuit having a pattern circuit for determining termination conditions |
US7849119B2 (en) * | 2003-12-29 | 2010-12-07 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit |
US7295049B1 (en) | 2004-03-25 | 2007-11-13 | Cypress Semiconductor Corporation | Method and circuit for rapid alignment of signals |
JP4451733B2 (ja) | 2004-06-30 | 2010-04-14 | 富士通マイクロエレクトロニクス株式会社 | 半導体装置 |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
US8190808B2 (en) | 2004-08-17 | 2012-05-29 | Rambus Inc. | Memory device having staggered memory operations |
US7254075B2 (en) * | 2004-09-30 | 2007-08-07 | Rambus Inc. | Integrated circuit memory system having dynamic memory bank count and page size |
US7280428B2 (en) * | 2004-09-30 | 2007-10-09 | Rambus Inc. | Multi-column addressing mode memory system including an integrated circuit memory device |
US7386654B2 (en) * | 2004-10-15 | 2008-06-10 | Intel Corporation | Non-volatile configuration data storage for a configurable memory |
US7755387B2 (en) | 2004-11-01 | 2010-07-13 | Sicronic Remote Kg, Llc | FPGA having a direct routing structure |
US8595459B2 (en) | 2004-11-29 | 2013-11-26 | Rambus Inc. | Micro-threaded memory |
US7187203B1 (en) | 2004-12-17 | 2007-03-06 | Lattice Semiconductor Corporation | Cascadable memory |
US7332976B1 (en) | 2005-02-04 | 2008-02-19 | Cypress Semiconductor Corporation | Poly-phase frequency synthesis oscillator |
US20060248305A1 (en) * | 2005-04-13 | 2006-11-02 | Wayne Fang | Memory device having width-dependent output latency |
US7400183B1 (en) | 2005-05-05 | 2008-07-15 | Cypress Semiconductor Corporation | Voltage controlled oscillator delay cell and method |
US7327159B1 (en) * | 2005-11-28 | 2008-02-05 | Lattice Semiconductor Corporation | Interface block architectures |
US8085067B1 (en) | 2005-12-21 | 2011-12-27 | Cypress Semiconductor Corporation | Differential-to-single ended signal converter circuit and method |
EP1974265A1 (de) | 2006-01-18 | 2008-10-01 | PACT XPP Technologies AG | Hardwaredefinitionsverfahren |
CN101374657A (zh) | 2006-01-26 | 2009-02-25 | 三井化学株式会社 | 叠层体 |
US8067948B2 (en) | 2006-03-27 | 2011-11-29 | Cypress Semiconductor Corporation | Input/output multiplexer bus |
US20070260841A1 (en) | 2006-05-02 | 2007-11-08 | Hampel Craig E | Memory module with reduced access granularity |
US8892806B2 (en) * | 2007-03-07 | 2014-11-18 | Intel Mobile Communications GmbH | Integrated circuit, memory device, method of operating an integrated circuit, and method of designing an integrated circuit |
US8026739B2 (en) | 2007-04-17 | 2011-09-27 | Cypress Semiconductor Corporation | System level interconnect with programmable switching |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US8130025B2 (en) | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8040266B2 (en) | 2007-04-17 | 2011-10-18 | Cypress Semiconductor Corporation | Programmable sigma-delta analog-to-digital converter |
US8516025B2 (en) | 2007-04-17 | 2013-08-20 | Cypress Semiconductor Corporation | Clock driven dynamic datapath chaining |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US9720805B1 (en) | 2007-04-25 | 2017-08-01 | Cypress Semiconductor Corporation | System and method for controlling a target device |
US8065653B1 (en) | 2007-04-25 | 2011-11-22 | Cypress Semiconductor Corporation | Configuration of programmable IC design elements |
US8266575B1 (en) | 2007-04-25 | 2012-09-11 | Cypress Semiconductor Corporation | Systems and methods for dynamically reconfiguring a programmable system on a chip |
US8049569B1 (en) | 2007-09-05 | 2011-11-01 | Cypress Semiconductor Corporation | Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes |
US7893772B1 (en) | 2007-12-03 | 2011-02-22 | Cypress Semiconductor Corporation | System and method of loading a programmable counter |
US8479133B2 (en) | 2009-01-27 | 2013-07-02 | Xilinx, Inc. | Method of and circuit for implementing a filter in an integrated circuit |
US8543635B2 (en) | 2009-01-27 | 2013-09-24 | Xilinx, Inc. | Digital signal processing block with preadder stage |
US9448964B2 (en) | 2009-05-04 | 2016-09-20 | Cypress Semiconductor Corporation | Autonomous control in a programmable system |
WO2011066459A2 (en) | 2009-11-25 | 2011-06-03 | Howard University | Multiple-memory application-specific digital signal processor |
US9268719B2 (en) | 2011-08-05 | 2016-02-23 | Rambus Inc. | Memory signal buffers and modules supporting variable access granularity |
TWI455485B (zh) * | 2012-02-22 | 2014-10-01 | Global Unichip Corp | 由數位電路與類比電路所共用之輸入輸出單元 |
US9478272B1 (en) | 2014-04-04 | 2016-10-25 | Altera Corporation | Configurable storage blocks with embedded first-in first-out and last-in first-out circuitry |
US9973194B2 (en) * | 2015-09-01 | 2018-05-15 | Flex Logix Technologies, Inc. | Block memory layout and architecture for programmable logic IC, and method of operating same |
CN110506393B (zh) | 2017-05-26 | 2023-06-20 | 弗莱克斯-罗技克斯技术公司 | 具有逻辑瓦片的虚拟阵列的fpga及其配置和操作的方法 |
EP3639370A4 (en) | 2017-06-13 | 2020-07-29 | Flex Logix Technologies, Inc. | CLOCK DISTRIBUTION AND GENERATION ARCHITECTURE FOR LOGIC PAVERS OF AN INTEGRATED CIRCUIT AND ITS OPERATING PROCESS |
US10348308B2 (en) | 2017-07-01 | 2019-07-09 | Flex Logix Technologies, Inc. | Clock architecture, including clock mesh fabric, for FPGA, and method of operating same |
US10686447B1 (en) | 2018-04-12 | 2020-06-16 | Flex Logix Technologies, Inc. | Modular field programmable gate array, and method of configuring and operating same |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4870302A (en) * | 1984-03-12 | 1989-09-26 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
US4758745B1 (en) * | 1986-09-19 | 1994-11-15 | Actel Corp | User programmable integrated circuit interconnect architecture and test method |
GB8906145D0 (en) * | 1989-03-17 | 1989-05-04 | Algotronix Ltd | Configurable cellular array |
US5343406A (en) * | 1989-07-28 | 1994-08-30 | Xilinx, Inc. | Distributed memory architecture for a configurable logic array and method for using distributed memory |
US5245227A (en) * | 1990-11-02 | 1993-09-14 | Atmel Corporation | Versatile programmable logic cell for use in configurable logic arrays |
US5550782A (en) * | 1991-09-03 | 1996-08-27 | Altera Corporation | Programmable logic array integrated circuits |
US5250859A (en) * | 1991-09-27 | 1993-10-05 | Kaplinsky Cecil H | Low power multifunction logic array |
US5315178A (en) * | 1993-08-27 | 1994-05-24 | Hewlett-Packard Company | IC which can be used as a programmable logic cell array or as a register file |
US5504440A (en) * | 1994-01-27 | 1996-04-02 | Dyna Logic Corporation | High speed programmable logic architecture |
US5465055A (en) * | 1994-10-19 | 1995-11-07 | Crosspoint Solutions, Inc. | RAM-logic tile for field programmable gate arrays |
US5636368A (en) * | 1994-12-23 | 1997-06-03 | Xilinx, Inc. | Method for programming complex PLD having more than one function block type |
US5742180A (en) * | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
US6049223A (en) * | 1995-03-22 | 2000-04-11 | Altera Corporation | Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory |
US5572148A (en) * | 1995-03-22 | 1996-11-05 | Altera Corporation | Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory |
US5517135A (en) * | 1995-07-26 | 1996-05-14 | Xilinx, Inc. | Bidirectional tristate buffer with default input |
US5559450A (en) * | 1995-07-27 | 1996-09-24 | Lucent Technologies Inc. | Field programmable gate array with multi-port RAM |
US5804986A (en) * | 1995-12-29 | 1998-09-08 | Cypress Semiconductor Corp. | Memory in a programmable logic device |
US5744980A (en) * | 1996-02-16 | 1998-04-28 | Actel Corporation | Flexible, high-performance static RAM architecture for field-programmable gate arrays |
US5894565A (en) * | 1996-05-20 | 1999-04-13 | Atmel Corporation | Field programmable gate array with distributed RAM and increased cell utilization |
-
1996
- 1996-09-03 US US08/708,247 patent/US5933023A/en not_active Expired - Lifetime
-
1997
- 1997-06-16 JP JP51262698A patent/JP4410853B2/ja not_active Expired - Lifetime
- 1997-06-16 EP EP02011003A patent/EP1239592A3/en not_active Withdrawn
- 1997-06-16 DE DE69716623T patent/DE69716623T2/de not_active Expired - Lifetime
- 1997-06-16 EP EP97929977A patent/EP0925649B1/en not_active Expired - Lifetime
- 1997-06-16 WO PCT/US1997/010279 patent/WO1998010517A1/en active IP Right Grant
-
1999
- 1999-06-01 US US09/323,879 patent/US6144220A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0925649B1 (en) | 2002-10-23 |
US5933023A (en) | 1999-08-03 |
EP1239592A3 (en) | 2003-01-02 |
DE69716623T2 (de) | 2003-09-11 |
DE69716623D1 (de) | 2002-11-28 |
WO1998010517A1 (en) | 1998-03-12 |
JP2001500682A (ja) | 2001-01-16 |
EP0925649A1 (en) | 1999-06-30 |
US6144220A (en) | 2000-11-07 |
EP1239592A2 (en) | 2002-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4410853B2 (ja) | プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ | |
JP3885119B2 (ja) | フィールドプログラマブルプロセッサデバイス | |
US5530814A (en) | Bi-directional crossbar switch with control memory for selectively routing signals between pairs of signal ports | |
JP3434292B2 (ja) | プログラマブル論理セル及びその配列体 | |
US6747903B1 (en) | Configurable decoder for addressing a memory | |
JP4014116B2 (ja) | フィールドプログラマブルプロセッサアレイ | |
US5315178A (en) | IC which can be used as a programmable logic cell array or as a register file | |
US7088134B1 (en) | Programmable logic device with flexible memory allocation and routing | |
US5705938A (en) | Programmable switch for FPGA input/output signals | |
US6567969B1 (en) | Configurable logic array including lookup table means for generating functions of different numbers of input terms | |
US5737235A (en) | FPGA with parallel and serial user interfaces | |
US5804986A (en) | Memory in a programmable logic device | |
US6069489A (en) | FPGA having fast configuration memory data readback | |
JP3589501B2 (ja) | フィールド・プログラマブルゲートアレイのためのプログラマブル論理モジュール及びアーキテクチャ | |
EP1158402A1 (en) | FPGA with column set/reset lines | |
EP0461798A2 (en) | Configurable interconnect structure | |
US5905385A (en) | Memory bits used to couple look up table inputs to facilitate increased availability to routing resources particularly for variable sized look up tables for a field programmable gate array (FPGA) | |
JPH04225621A (ja) | 集積回路 | |
WO1999048004A1 (en) | Sram bus architecture and interconnect to an fpga | |
US10020811B2 (en) | FPGA RAM blocks optimized for use as register files | |
US6556502B2 (en) | Memory circuitry for programmable logic integrated circuit devices | |
US7444456B2 (en) | SRAM bus architecture and interconnect to an FPGA | |
US6262933B1 (en) | High speed programmable address decoder | |
US6356110B1 (en) | Multifunction memory array in a programmable logic device | |
EP0769223B1 (en) | Programmable switch for fpga input/output signals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040527 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060919 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061024 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070418 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070823 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20070920 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091116 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131120 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |