JP2001500682A - プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ - Google Patents

プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ

Info

Publication number
JP2001500682A
JP2001500682A JP10512626A JP51262698A JP2001500682A JP 2001500682 A JP2001500682 A JP 2001500682A JP 10512626 A JP10512626 A JP 10512626A JP 51262698 A JP51262698 A JP 51262698A JP 2001500682 A JP2001500682 A JP 2001500682A
Authority
JP
Japan
Prior art keywords
ram
lines
blocks
line
block
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.)
Granted
Application number
JP10512626A
Other languages
English (en)
Other versions
JP4410853B2 (ja
Inventor
ヤング,スティーブン・ピィ
Original Assignee
ザイリンクス・インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ザイリンクス・インコーポレイテッド filed Critical ザイリンクス・インコーポレイテッド
Publication of JP2001500682A publication Critical patent/JP2001500682A/ja
Application granted granted Critical
Publication of JP4410853B2 publication Critical patent/JP4410853B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources

Abstract

(57)【要約】 ランダムアクセスメモリまたはRAMのブロックがFPGA再構成可能な論理ブロックと一体化される構造である。再構成可能な論理ブロックにアクセスするルーチングラインは、RAMブロックのアドレス、データおよびコントロールラインにもアクセスする。このため、FPGAの論理ブロックはRAMの部分にアクセスするためにこれらのルーチングラインを用いることができる。1つの実施例において、専用のアドレスおよびデータラインはこの発明のRAMブロックにアクセスし、かつ相互接続構造のルーチングラインに接続可能である。これらのラインにより、RAMブロックおよびRAMブロックのアレイが長く、幅が広く、またはそれらの間になるよう形成することができるようになり、かつ論理ブロックがチップのリモート部分のRAMブロックに好都合にアクセスすることができるようになる。RAMブロックへのアクセスはいかなるRAM構成においても効率がよい。双方向バッファまたはパスデバイスは各RAMブロックのアドレスおよびデータラインを分割するため、選択可能な数のRAMブロックをRAMとして合わせて動作することができる。別の実施例では専用データラインを交互配置でプログラム可能に接続することができ、これにより、RAMブロック間で衝突することなく長い距離にわたってRAMブロックを接続することができる。

Description

【発明の詳細な説明】 プログラム可能なワード長および幅を有するRAMブロックと 専用アドレスおよびデータラインとを有するFPGAアーキテクチャ関連の特許出願 本出願は下記の特許出願に関連し、これらはいずれも上記出願の譲渡人である ザイリンクス社(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−1 N]。 2.スティーブン・ピィ・ヤング(Steven P.Young)によって1995年7月 26日に出願され、1996年5月14日に発行された「デフォルト入力を有す る双方向トライステートバッファ(Bidirectional Tristate Buffer with Defau lt Input)」と題された米国特許第5,517,135号[X−195]。発明の分野 この発明は集積回路に形成されたプログラマブル論理デバイスに関し、特にフ ィールドプログラマブル論理デバイスまたはフィールドプログラマブルゲートア レイに関する。発明の背景 フィールドプログラマブルゲートアレイ(FPGA)は、ユーザが希望する論 理機能をもたらすようにプログラム可能に相互接続され得るプログラマブル論理 ブロックのアレイを含む。ロス・フリーマン(Ross Freeman)に対して米国特許 第Re34,363号として再発行された米国特許第4,870,302号には 最初のFPGAが記載されており、これを引用によって援用する。エルガマル( Elgamal)の米国特許第4,758,745号、キーン(Kean)の第5,24 3,238号およびファーテック(Furtek)によって発明されかつコンカレント ロジック社(Concurrent Logic,Inc.)が所有する公開されている出願WO 9 3/05577などの後の特許には、他のFPGAアーキテクチャが記載されて いる。これらの特許および出願もまた引用によって援用される。ザイリンクス社 (2100 Logic Drive,San Jose,California 95124)から入手可能な「プログラ マブル論理データブック(The programmable Logic Data Book)」と題された1 994年度のザイリンクス社のデータブックにはいくつかのFPGA製品が記載 されている。ザイリンクス社のデータブックのたとえば第2頁から第114頁に 示されるように、典型的にFPGA製品は不規則な論理ブロックのアレイを含み 、この論理ブロックの数は製品によって異なる。 FPGAアーキテクチャはプログラムルーチング構造と、再構成可能な(conf igurable)論理ブロックのアレイとを含む。プログラマブルルーチングマトリッ クスは論理ブロックを互いに接続するための手段を含む。これにより、FPGA は一般的なルーチング構造にプログラム論理とプログラム可能な接続との組合せ をもたらす。 典型的なFPGAの用途において、PIPは、PIPに関連した構成(config uration)メモリセルに適切な値をロードすることにより意外に早くオンになり 、これにより経路をもたらし、再構成可能な論理ブロックによって行なわれる論 理を確立する。動作時には、フリップフロップから値が書込まれたり読出された りする際に経路上の信号が大きく変化する。 たとえば、FPGAチップの1つの部分において生成される複素関数が、チッ プの別の部分において生成される複素論理と同期するようにするために、ユーザ の中にはランダムアクセスメモリ(RAM)のブロックを必要とするものもいる 。別の例では、高速データをチップに対してバッファリングするためのFIFO (先入れ先出し方式のレジスタ)を設けるか、またはチップの他の論理によって 使用するためのレジスタバンクを設けることを希望するユーザもいる。 従来のFPGAチップにおいては、RAMのこれらのブロックはFPGAのう ちプログラム可能な部分が再構成されるため、FPGAのこれらの部分は他の用 途に利用できない。RAMなどの共通の機能が多数のユーザによって希望される 場合、チップの一部分をこの目的のための専用のものにすると経済的になり、特 定の機能を高密度で実現することができ、FPGAの他の部分をあまり予想でき ない用途に自由に用いることができるようになる。 Altera FLEX 10Kチップは、チップの論理ブロックによってア クセスされ得るRAMのブロックを含む。Altera FLEX 10Kの構 造は「FLEX 10Kデバイスの埋込RAMによる利益(Benefits of Embedd ed RAM in FLEX 10K)」と題された1996年1月付のアルテラ社(Altera Cor p.)による製品情報会報に簡単に記載されている。この出版物のブロック図には いくつかの構成を有するRAM/ROMブロックが示されている。RAM/RO Mブロックは、入力フリップフロップと、書込パルス回路と、データ、アドレス 、書込イネーブルおよび入力クロック信号からデータ、アドレスおよび書込イネ ーブル信号を生成するための入力マルチプレクサとを含むEAB(埋込アレイブ ロック)の形態である。EABは、データ出力フリップフロップと、データ出力 信号を発生するためのマルチプレクサとをさらに含む。アルテラ社の出版物には 、大きなRAMが望まれる場合には、大きなRAMを実現するためにEABを縦 続接続することができると示されている。 しかしながら、これらの専用RAMブロックは汎用相互接続ラインを介してア クセスされ、RAMにアクセスするために汎用制御接続ラインを用いる場合、他 の論理信号を経路付けるための汎用相互接続ラインの利用度が低下する。発明の概要 この発明によると、FPGA再構成可能な論理ブロックと一体化された、ラン ダムアクセスメモリまたはRAMのブロックは、専用ルーチングラインを含む。 再構成可能な論理ブロックにアクセスする汎用ルーチングラインもまた、専用ル ーチングラインを介してRAMブロックのアドレス、データおよびコントロール ラインにアクセスする。このため、FPGAの論理ブロックはRAMの部分にア クセスするためにこれらの汎用および専用ルーチングラインを用いることができ る。これらの専用ルーチングラインにより、RAMブロックの構成が長いか、幅 が広いか、小型であるか大型であるかにかかわらず、RAMブロックおよびRA Mブロックのアレイが効率よく接続されるようになる。さらに、専用ルーチング ラインにより、論理ブロックがチップのリモート部分にあるRAMブロックに好 都合にアクセスできるようになる。RAMブロックへのアクセスはいかなるRA M構成においても効率がよい。双方向バッファまたはパスデバイスは各RAMブ ロックにおけるアドレスおよびデータラインを分けるため、選択可能な数のRA Mブロックを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−22 57−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では、いくつかのR AMブロックを互いに接続することができ、データライン接続を交互にしまたは 回転させ、いくつかの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を詳細に示す。このRA MブロックはデュアルポートRAM131を含む。デュアルポートRAMにより 、同じメモリ場所にアクセスするための独立した2組のアドレス、データおよび コントロールラインが提供される。デュアルポートRAMは、同じメモリにおけ る2つのアドレスに対してユーザが同時に読出または書込を希望する場合に有用 である。たとえば、外部ソースからデータのバーストを受け、かつデータを記憶 して内部処理するFIFOは、一方のポートを外部ソースからの書込のために用 い、他方のポートを内部論理による読出のために用いることによりデュアルポー トを有益に利用する。 図2では、図1Bにおけるように、隣接した論理ブロックに接続される4組の ローカル相互接続ラインL0からL3がデュアルポートRAMブロック13にお いて水平方向に延びる。デュアルポートRAMブロック13ではRAMブロック のアドレス、データおよびコントロールラインが垂直に延びる。4本のグローバ ルクロックラインGCLKは図示されるRAMブロック13の上下のRAMブロ ックに永久的に接続される。2本のローカルクロックラインLCLKは上下のR AMブロックにプログラム可能に接続される。クロックラインGCLKおよびL CLKはいずれもRAM131にプログラム可能に接続される。図1Bの上エッ ジに示されるプログラム可能な接続は、RAM131の左側の五角形の記号によ って表わされる。五角形の記号は後に図4Aに関して説明する。書込イネーブル ラインWEAおよびWEBならびにアドレスイネーブルバスENBおよびENA は、アドレスバスADDRBおよびADDRAと同様に上下のRAMブロックに プログラム可能に接続される。 別個のデータ入力およびデータ出力ラインを用いると、多くの構成のFPGA が好都合に実現される。なぜなら、相互接続ラインは単一ソースによって駆動さ れる必要があり、RAMがすべてのデータ出力ドライバに対してトライステート 制御を行なう必要がある場合には、RAMに対してトライステート制御をもたら すために信号を経路付けることが困難であるからである。このため、データ入力 およびデータ出力信号が同じ信号を共有しないことが好ましい。したがって、デ ュアルポートRAMブロック13は、RAM131への書込のためのデータ入力 バスDINBおよびDINAならびにRAM131からの読出のためのデータ出 力バスDOUTBおよびDOUTAの両方を含む。これらのデータバスは示され るものの上下のRAMに対して接続可能である。1つの実施例において、LCL K、WEA、WEB、ENA.およびENBラインならびにADDRA、ADD RB、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はデータ入力ラインとしての役割を果たし、かつDIN AバスラインDIA2にプログラム可能に接続され得る。これに代えて、ライン L3−0はアドレスラインとしての役割を果たし、かつラインL3−0とライン ADDRB2との交差部に丸で示されるようにADDRBラインADDRB2に プログラム可能に接続され得る。ラインADDRB2は、ラインADB2を駆動 するよう双方向バッファによってバッファリングされる。五角形で示されるプロ グラム可能な接続は図4Aに示され、後に説明される。 同様に、ラインL1−15はラインL1によってアクセスされる行の論理ブロ ックによって駆動されるローカルクロックラインとしての役割を果たし、かつロ ーカルクロックラインLCLK1にプログラム可能に接続され得り、このLCL K1は双方向バッファによつてラインLCK1に接続される。ラインLCK1は RAM131のBまたはAポートのいずれかのクロック入力端子CKBまたはC KAに接続され得る。ラインCLK1とRAM131への2本のクロック入力ラ インCKAおよびCKBとの交差部において三角形で表わされるプログラム可能 な接続は図3Cに示され、先に説明した。 これに代えて、ラインL1−15はデータ出力ラインとしての役割を果たし、 DOUTBラインDOB7にプログラム可能に接続され得る。 これらおよび他のプログラム可能な接続は、それぞれの交差部において丸、三 角形および五角形で示される。 パイピュレーション PIPという用語はプログラム可能な交差点を意味する。パイピュレーション (pipulation)という用語はPIP集合を意味する。多くの構成のパイピュレー ションが可能である。チップ領域を最小にすることが望まれる場合、少ない数の PIPが設けられ(まばらなパイピュレーション)、PIPの場所は共通の用途 の構造に対して最高の柔軟性と速度をもたらすように選択される。PIPがEP ROMセルまたはアンチヒューズなどの非常に小型なデバイスによって形成され る場合、柔軟性を高めるために多くの交差部にPIPが設けられ得る。一般に、 パイピュレーションは十分でなければならず、ローカル相互接続ラインの本数は 、構成に用いられるアドレス、データおよびコントロールラインのすべてにユー ザ がアクセスできるよう十分でなければならない。幅の広いメモリでは、データラ インが共有されるため、図6Aから図6Cに関して説明するように、各データ卜 ラックに対してアクセス点がなければならない。垂直方向に隣接したRAMブロ ックによってデータラインが用いられる場合、それらは垂直に接続されてはなら ず、同じRAMブロックにおいて垂直なデータラインを水平な相互接続ラインに 接続するためには十分なパイピュレーションを設ける必要がある。 デコーダブロック 図2のデコーダブロック132および133は図5に示されるように形成され 得る。図5において、デコーダブロック132は4つの2入力マルチプレクサM UX0−MUX3を含む。各マルチプレクサはイネーブルラインENB0−EN B3によって制御され、これらは水平ライン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つの間で選択を行なうよう各ブロックにおいてデコーダ1 32を用いる。このような構成にはデコーダブロック132への4本の入力ライ ンのうち1本しか必要ではない。たとえば、隣接した2つのRAMブロックにお いて、マルチプレクサMUX1からMUX3は、論理0をメモリセルM3からM 8にロードすることによりそれらのそれぞれのコントロール信号を無視するよう にされる。2つのRAMブロックの一方においては、メモリセルM1およびM2 には01がロードされ、他方においてはメモリセルM1およびM2に10がロー ドされる。この構成において、ラインENB0に与えられた論理0により、01 で構成されたRAMブロックが選択され、論理1により、10で構成されたRA Mブロックが選択される。 たとえば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 0 0となるであろう。イネーブルラインENB1−ENB3上に異なった値を用い ることによっても所望の結果がもたらされる。 1つの実施例において、(たとえばNORゲートNOR1からの論理0である )不能化デコーダ出力信号もまた、(たとえばDOUTBバスラインDOB0− DOB8を駆動するRAM131からのすべての信号である)そのポートからの すべての出力信号がトライステートになるようにする。これによりラインDOB 0−DOB8が、示されるものの上または下にある別のRAM131によって駆 動されるようになる。しかしながら、トライステートはまた、RAM出力信号が ラインを駆動していないときにラインDOB0−DOB8(および他のデータ出 力ライン)がフローティング状態にされることを可能にする。このため、これら のラインには小さなキーパー回路またはプルアップ抵抗器が装着される。 図4B 図1Bまたは図2に示されるもののいくつかの複製品が互いに隣接して垂直方 向に置かれると、1つの複製品の上にある線または円により、別の複製品の下に ある直線が結合されることとなる。図4Bの記号のラインBは上複製品(または ブロック)にあり、図4Bの記号のラインAおよび円は下の複製品にある。図4 Bの左側に示される三角形および白丸およびその中心へのラインの組合せにより 、図4Bの右側に示されるデフォルト入力を有する双方向バッファが示される。 これは図4Aに示されるものと同じ回路であるため再度説明しない。後に説明す るように、図4Bの記号の部分は図6A−6Cに示される。図4Bの記号もまた 、後に説明する図7A−図7Cに示される。 RAMブロックのグループ分けおよびメモリ長/幅の制御 図6Aは隣接した4つのRAMブロック13−5から13−8を含むRAMブ ロックグループ101を示し、各々は図2に示されるように構成される。他の数 のRAMブロックをともに用いてもよい。RAMブロックグループ101は図1 Aにも示される。各RAMブロックは4つの論理ブロックにわたって延びるため 、 グループ101の4つのRAMブロックは16個の論理ブロックにわたって延び る。隣接した4つのブロックは1024×9 RAM、512×18 RAMま たは256×36 RAMとして構成され得る。各RAMブロックはRAM25 6×9を含み、すなわちRAMは256ワードの大きさを有し、各ワードは9ビ ットの幅を有する。この実施例では8ビットワードの代わりに9ビットワードが 用いられる。なぜなら、多くのユーザはパリティビットを希望し、8ビットワー ドのみでパリティビットを得ることは矛盾しているからである。未使用である場 合に9番目のビットを与えることはさほど費用が掛かることではない。なぜなら 、9番目のビットは他の8ビットのデコード論理を共有し、メモリ面積が12% 増加すると面積の合計がわずかに増加するからである。この実施例において、幅 (ワード長)および長さ(アドレス数)は、双方向バッファおよび隣接したRA Mブロック13の間のパスゲートがいかにしてオンにされるかに依存する。図6 Bおよび図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つの場所は、BUS ADDR上の同じ8ビットアドレスによってアドレス指定されるため、2本のイ ネーブルラインEN(図2のENAまたはENB)をアドレスビットとして用い 、図5に関して先に説明したように9番目および10番目のアドレスビットをも たらすために互いに接続してもよい。1つのRAMブロックのデータ入力および データ出力ラインは隣接するRAMブロックの、対応するデータ入力およびデー タ出力ラインに接続される。これは、4つのRAMブロックのうちの1つのRA Mしか一度にアドレス指定されないからである。データ出力ラインに入れられた データは4つのRAMブロック(または16個の論理ブロック)に沿ったいくつ か の場所でローカル水平ラインにおいて拾い上げることができる。書込イネーブル WEおよびローカルクロックLCLKラインもまた、4つのRAMブロックをと もにグループ分けするために互いに接続される。黒丸は双方向バッファまたはパ スゲートを介して接続された隣接したブロックにラインを有するバスを示し、白 丸は、双方向バッファまたはパスゲートを介して接続されていないラインを示す 。図6Aの上下の部分において、双方向バッファおよびパスゲートは上にある次 のRAMブロックからの切断されたラインを示し、4つのグループの内部では、 隣接したRAMブロックのラインのすべての対は接続されていることに注目され たい。 図6Bに示されるように、512×18メモリを形成するために、4つのRA Mブロックのデータラインは白丸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つのRA Mブロックのうちのいずれかに隣接した論理ブロック場所からか、または示され る水平ラインに接続され得るより遠くにある場所から入来し得る。別の例では、 RAMブロック13−5のバスADDRは上のアドレスバス(図示せず)に接続 されてもよく、この場合アドレスは、アドレス指定されたRAMブロックよりさ らに遠くの論理ブロックから引出されてもよい。このように、1つの9ビットア ドレスに応答して、18個のデータビットの書込または読出が行なわれる。9ビ ットアドレスによって512個の別個の場所がアドレス指定されるため、メモリ は512×18である。 図6Cに示されるように、256×36メモリの場合、4つのRAMブロック のデータ入力および出力ラインは4つのグループに分けられ、アドレスラインA DDRは互いに接続される。この構成では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に示される。図7 AのRAMブロックは、RAM531と、チップの他の部分にRAM531を接 続するためのラインとを含む。RAM531は異なった4つの構成、すなわち4 096×1、2048×2、1024×4および512×8に構成することがで きる。水平ラインはRAM531から左方向に延びる。これらによりアドレス、 データ入力およびコントロール信号がRAM531に与えられる。RAM531 から右方向に延びる水平ラインはRAM531からのデータ出力信号を受ける。 図2に示されるように、図7AのRAMブロックを通って延びる専用の垂直ライ ンにより、FPGAチップの論理ブロックとチップのRAMブロックのRAM5 31との間にインターフェイスが提供される。図2に示されるように、図面の上 方にあるプログラマブルコネクタにより、図7AのRAMブロックが、上にある 同一のRAMブロックに接続されるようになる。RAM531の内部構成は周知 の方法または1996年7月29日に出願された同時係属中の出願連続番号第0 8/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として続く。他のラインは、上のR AMブロックにおいて左の方向に移動するようそれらのそれぞれのプログラマブ ルコネクタの上のラインと交互に配置される。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および×8R AMメモリのすべてが、設けられた垂直データラインの数に関して垂直方向に隣 接した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本の水平データラインおよび1 6本の垂直データラインがあるため、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をオン にすることによりアドレスラインとして用いられ得る。垂直アドレスラインA2 3はそれらの2本のラインの交差部にあるPIPをオンにすることにより、水平 AポートアドレスラインADA11または水平BポートアドレスラインADB1 1にアクセスし得る。垂直アドレスラインA23は、図面の上の部分にあるコネ クタAC23をオンにすることにより図面の上のRAMブロックの別の垂直アド レスラインA23に接続され得り、この垂直アドレスラインは図7Aに示される ように水平アドレスラインに接続され得る。これにより、ラインL3−23は多 くの異なったRAMブロックにおける多くの異なった水平アドレスラインにアク セスすることができる。組L3のラインL3−0からL3−23の各々は、RA M531に至る水平アドレスラインのうちの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、A DB4および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との交差部にあるが、垂直データ出力ラインDO2 7とRAM531のBポートからの任意の水平データ出力ラインとの間の交差部 にはPIPはない。しかしながら、ラインL3−23は図7Aの上の、対応する RAM531のBポートからのデータ出力ラインとしての役割を果たし得る。コ ネクタDOC31(図7Cを参照)をオンにすると垂直データ出力ラインDO3 1がデータ出力ラインDO16’に接続され、これは図の上にあるRAMブロッ クのデータ出力ラインDO16として続く。図7Cに示されるように、垂直デー タ出力ラインDO16はその交差部にあるPIPをオンにすることにより水平デ ータ出力ラインDOB0からのデータを受けることができる。他のパターンのP IPを用いることにより他の選択肢が可能となる。上述のとおり、パイピュレー ションの密度を高めるとより多くの選択肢がもたらされるが、実現するために必 要なチップ面積が増加する。 デュアルポート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が、水平ラインL 2−20と垂直データ入力ラインDI18との交差部において第2のPIPが、 水平ラインL1−20と垂直データ入力ラインDI17との交差部において第3 のものが、かつ水平ラインL0−20と垂直データ入力ラインDI16との交差 部において第4のものがオンになる。 経路を完成するために、RAM531のPIP DIP19がラインL3−2 0をデータ入力ポートDIB0に接続するためにオンになる。このため、ライン L3−20上の信号がRAM531のラインDIA0上に受けられ、周知の手段 によつて、RAM531の、アドレス指定されたメモリセルに書込まれる。PI P DIP18はオンにならない。したがって、ラインL2−20上の信号はR AM531のラインDIA0には接続されない。しかしながら、上にある同一の RAMブロックにおいては、PIP DIP19がオンになるため、ラインL2 −12上の信号がRAM531の上にあるRAMのラインDIA0上に受けられ る。垂直データ入力ラインDI17上にあるラインLI−20上の信号は、コネ クタDIC17によって、図7Aの上にあるRAMブロックの垂直データ入力ラ インDI18に接続され、図7Aの上にあるRAMブロックのコネクタDIC1 8を介して図7Aの2つ上にあるRAMブロックの垂直データ入力ラインDI1 9にさらに接続される。そこからそれは、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である。RAM53 1は4096個のメモリセルを含み、これらは周知の内部構造によって4096 ×1RAM、2048×2RAM、1024×4RAMまたは512×8RAM として構成され得る。図7Aの実施例では各ポートに対して12本ずつ、24本 の水平アドレスラインがある。 4096×1構成では、12本の水平アドレスラインにより各ポート(212= 4096)がアドレス指定される。4096×1構成では、水平データ入力ライ ンDIA0およびDIB0ならびに水平データ出力ラインDOA0およびDOB 0しか用いられない。 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の出力ポートDOB 0からDOB7は、垂直データ出力ラインへのPIPをオンにすることにより、 RAMブロック531−8に隣接した4つの行の論理ブロックに接続される。簡 略化のために、垂直データ出力ラインDO−16と水平ラインのうちの1本との 交差部におけるPIPしか例示しない。図示した例では、RAMブロック531 −8のデータ出力ポートDOB0はこれら2本のラインの交差部のPIPをオン にすることにより垂直データ出力ラインDO−16に接続される。垂直ラインD O−16と水平ラインLO−5との交差部のPIPをオンにすることにより、デ ータ出力ポートDOBOがラインL0−5に接続され、0のデータビットを論理 ブロック25−40に与える。同様に、データ出力ポートDOB1は垂直ライン DO−22に接続され、これは論理ブロック25−40のラインL0−7に接続 される。32ビットワードの他の30個のデータビットは示されるように接続さ れる。図8Aには示されない付加的な接続により論理ブロックが垂直アドレスラ インおよびデータ入力ラインにアクセスするようになり、かつ所望のメモリ機能 を実現するようにクロックおよび他の必要な信号を与えるようになる。 垂直ライン間の接続を用いる大きなRAM 示される専用の垂直ラインおよびPIPパターンを用いると、垂直アドレス、 データ、およびコントロールラインを互いに接続することにより大きなRAMが 好都合に形成される。図8Bは隣接した4つのRAMブロックの2048×8R AMメモリを実現する、隣接した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の交差部のP IPをオンにし、トライステートバッファTB−1をオンにし、これにより、R AMブロック531−8に隣接した垂直ラインDO−16をRAMブロック53 1−7に隣接した垂直ラインDO−17に接続することにより、ルーチングが接 続される。ビット2、3、6および7を与えるためには1つのトライステートバ ッファが各ビットに対してオンになる必要がある。ビット4および5を与えるた めには2つのトライステートバッファが各ビットに対してオンになる必要がある 。たとえば、RAMブロック531−5の出力ポートDOB1に与えられるビッ トは、トライステートバッファTB2およびTB3ならびにRAMブロック53 1 −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をオンにすることにより垂直相互接続ラインADD R 14に接続される。その後PIPはこの垂直相互接続ラインをRAMブロック5 31−5から531−8の各々のアドレスポートADB11に接続する。 アドレス指定されたメモリセルだけが書込まれるようにするために、13番目 のアドレス信号A12は書込イネーブル信号DWEと論理結合される。この論理 結合はいくつかのやり方で行なうことができる。図8Cでは、論理ブロック24 −31および24−32は書込イネーブルおよびアドレス信号の論理結合を行な う。論理ブロック24−31はDWEおよびA12のAND関数をもたらす。A ND関数出力はRAMブロック531−5および531−7の書込イネーブルポ ートWEBに与えられるため、DWEがハイ(データが書込まれる)であり、A 12がハイ(その範囲の上半分にアドレスがある)場合、書込イネーブル信号は RAMブロック531−5および531−7に与えられることとなる。論理ブロ ック24−32はDWEのAND関数およびA12の反転をもたらすため、その 範囲の下半分にあるアドレスが書込まれる場合には、RAMブロック531−6 および531−8が能動化される。 データ出力側では、アドレス信号A12との論理結合が論理ブロック25−3 5および25−36において行なわれ、これらの各々はマルチプレクサとして構 成される。データビットDO1は論理ブロック25−35において発生する。論 理ブロック25−35はRAMブロック531−6および531−8からのDO B0出力信号を受ける。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はPI P1、TB5、TB4、PIP2、PIP3およびPIP4をオンにすることに より論理ブロック25−35に接続される。これらのうちPIP3およびPIP 4は従来のFPGAに見られるような論理ブロックローカル相互接続構造の部分 である。 アドレスラインA12はPIP5からPIP8をオンにすることにより汎用相 互接続構造を介して論理ブロック25−35および25−36のマルチプレクサ コントロールラインに経路付けられる。 図8Cには示されないが先行技術においては周知である多くのルーチンライン および相互接続構造ももちろん、FPGAの商用の実施例において提供されるで あろう。このような構造を示すとこの発明の理解が不明瞭になると確信されるた め、それらはここでは示されない。大きなRAM 垂直アドレス、データ入力およびデータ出力ラインに競合が生する前に垂直の 列にある16個のRAMブロックを互いに結合することにより4096×16R AMを形成することが可能である。同じ垂直方向の列のRAMブロックを分割す るか、1つより多い列からのRAMブロックを用いるか、またはRAMの部分を 相互接続するかまたはそれにアクセスするための垂直方向の一般的な相互接続( FPGAアーキテクチャにおいて周知である)を用いることにより、大きなメモ リを形成することができる。図1Aに示されるように、FPGAチップは典型的 に多数の列のRAMブロックのを含む。L0からL3などの水平ラインは、1つ より多い、RAMブロックの列にアクセスするために用いられ得る。垂直方向の 列にあるより多くのRAMブロックを互いに接続すると、より幅の広いRAMが 形成される。他の実施例 図7Aの実施例では、各ポートに対して24本のアドレスラインと、16本の データ入力およびデータ出力ラインとが示される。したがって16個の垂直方向 に隣接するRAMブロックを好都合に組合せることができ、すなわちデータ出力 ライン間での競合または入力ラインに対する曖昧さをもたらすことなく組合せて 用いることができる。もちろん、他の数のライン、他のパターンのPIPおよび 他のサイズのRAMを用いてもよい。
【手続補正書】特許法第184条の8第1項 【提出日】平成10年11月13日(1998.11.13) 【補正内容】 3,238号およびファーテック(Furtek)によって発明されかつコンカレント ロジック社(Concurrent Logic,Inc.)が所有する公開されている出願WO 9 3/05577などの後の特許には、他のFPGAアーキテクチャが記載されて いる。これらの特許および出願もまた引用によって援用される。ザイリンクス社 (2100 Logic Drive,San Jose,California 95124)から入手可能な「プログラ マブル論理データブック(The programmable Logic Data Book)」と題された1 994年度のザイリンクス社のデータブックにはいくつかのFPGA製品が記載 されている。ザイリンクス社のデータブックのたとえば第2頁から第114頁に 示されるように、典型的にFPGA製品は不規則な論理ブロックのアレイを含み 、この論理ブロックの数は製品によって異なる。 FPGAアーキテクチャはプログラムルーチング構造と、再構成可能な(conf igurable)論理ブロックのアレイとを含む。プログラマブルルーチングマトリッ クスは論理ブロックを互いに接続するための手段を含む。これにより、FPGA は一般的なルーチング構造にプログラム論理とプログラム可能な接続との組合せ をもたらす。 典型的なFPGAの用途において、PIPは、PIPに関連した構成(config uration)メモリセルに適切な値をロードすることにより意外に早くオンになり 、これにより経路をもたらし、再構成可能な論理ブロックによって行なわれる論 理を確立する。動作時には、フリップフロップから値が書込まれたり読出された りする際に経路上の信号が大きく変化する。 たとえば、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 Sys tem 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 Embedd ed RAM in FLEX 10K)」と題された1996年1月付のアルテラ社(Altera Cor p.)による製品情報会報に簡単に記載されている。この出版物のブロック図には いくつかの構成を有するRAM/ROMブロックが示されている。RAM/RO Mブロックは、入力フリップフロップと、書込パルス回路と、データ、アドレス 、書込イネーブルおよび入力クロック信号からデータ、アドレスおよび書込イネ ーブル信号を生成するための入力マルチプレクサとを含むEAB(埋込アレイブ ロック)の形態である。EABは、データ出力フリップフロップと、データ出力 信号を発生するためのマルチプレクサとをさらに含む。アルテラ社の出版物には 、大きなRAMが望まれる場合には、大きなRAMを実現するためにEABを縦 続接続することができると示されている。 しかしながら、これらの専用RAMブロックは汎用相互接続ラインを介してア クセスされ、RAMにアクセスするために汎用制御接続ラインを用いる場合、他 の論理信号を経路付けるための汎用相互接続ラインの利用度が低下する。発明の概要 この発明によると、FPGA再構成可能な論理ブロックと一体化された、ラン ダムアクセスメモリまたはRAMのブロックは、専用ルーチングラインを含む。 再構成可能な論理ブロックにアクセスする汎用ルーチングラインもまた、専用ル ーチングラインを介してRAMブロックのアドレス、データおよびコントロール ラインにアクセスする。別個の専用アドレスおよびデータルーチングラインが設 けられ、専用ルーチングラインは1つより多いRAMブロックにプログラム可能 に接続される。このため、FPGAの論理ブロックはRAMの部分にアクセスす るためにこれらの汎用および専用ルーチングラインを用いることができる。これ らの専用ルーチングラインにより、RAMブロックの構成が長いか、幅が広いか 、小型であるか大型であるかにかかわらず、RAMブロックおよびRA 請求の範囲 1.RAMを備えたFPGAであって、 行および列に配置された複数の論理ブロック(25−33から25−36)と 、 RAM機能のための専用のものであり、かつ列に配置された複数のRAMブロ ック(531−5から531−8)とを含み、前記RAMブロックはアドレスポ ート(ADB11−ADB0)およびデータポート(DIB7−DIB0)を有 し、さらに 行(L0からL3、HL0からHL3)に配置された導電性ラインを含む相互 接続構造と、 前記論理ブロックを前記相互接続構造に接続するための手段(DATA OU T)とを含み、改良点は、 アドレス信号のみを伝えるための1組の垂直ライン(ADDR)を含み、前記 組の垂直ラインの各ラインは、前記RAMブロックのうち1つよりも多い列の前 記アドレスポートをプログラム可能に駆動し、前記改良点はさらに 前記垂直ラインを前記相互接続構造に接続するための手段(PIP)と、 前記アドレスポートを前記垂直ラインに接続するための手段(PIP)とを含 む、RAMを備えたFPGA。 2.前記垂直ラインを分割するための手段(AC−23)をさらに含む、請求項 1に記載のRAMを備えたFPGA。 3.前記分割するための手段のうちいくつかが双方向バッファである、請求項2 に記載のRAMを備えたFPGA。 4.前記分割するための手段のうちいくつかがパストランジスタである、請求項 2に記載のRAMを備えたFPGA。 5.前記双方向バッファがラインをラインセグメントに分割し、前記各セグメン トはRAMブロックに隣接する、請求項3に記載のRAMを備えたFPGA。 6.前記RAMブロックのうちいくつかが、2つのアドレスポート(ADA11 −ADA0,ADB11−ADB0)と少なくとも2つのデータポート(DIA 7−DIA0,DIB7−DIB0)とを有するデュアルポートRAM(531 )を含み、前記アドレスポートはすべて前記垂直ラインによってアクセス可能 である、請求項1に記載のRAMを備えたFPGA。 7.前記RAMブロックの各々が、複数の、長さ対幅の比を有するよう再構成可 能である、請求項1に記載のRAMを備えたFPGA。 8.前記RAMブロック(531−7)が4つの論理ブロック(25−33から 25−36)にわたって延びる、請求項1に記載のRAMを備えたFPGA。 9.データ信号のみを伝えるための垂直データライン(DATA IN)のグル ープをさらに含み、前記各グループは、前記RAMブロックのうち1つよりも多 い列の前記データポートをプログラム可能に駆動し、さらに 前記データラインを前記相互接続構造に接続するための手段(PIP)と、 前記データポートを前記データラインに接続するための手段(DIP31)と 、前記データラインを分割するための手段(DIC31)とを含み、 前記RAMブロックのうちの第1のものは、前記第1のRAMブロックに垂直 方向に隣接する前記RAMブロックのうちの第2のものからの前記データライン のうち異なったものに接続可能である、請求項2に記載のRAMを備えたFPG A。 10.前記第1のRAMブロックを駆動するデータラインの前記グループのうち の第1のもの(DI31)が、前記第2のRAMブロックを駆動するデータライ ンの前記グループのうちの異なったもの(DI16’)に、前記相互接続構造を 用いることなく接続することができ、それにより、前記第1のRAMブロックの 所与のデータポート(DIB3)を駆動する信号が、前記第2のRAMブロック の、同じ所与のデータポートを駆動する信号と衝突しない、請求項1に記載のR AMを備えたFPGA。
───────────────────────────────────────────────────── 【要約の続き】 作することができる。別の実施例では専用データライン を交互配置でプログラム可能に接続することができ、こ れにより、RAMブロック間で衝突することなく長い距 離にわたってRAMブロックを接続することができる。

Claims (1)

  1. 【特許請求の範囲】 1.RAMを備えたFPGAであって、 行および列に配置された複数の論理ブロックと、 列に配置された複数のRAMブロックとを備え、前記RAMブロックはアドレ スポートとデータポートとを有し、さらに 行に配置された導電性ラインを含む相互接続構造と、 1組の垂直ラインとを備え、前記各組は前記RAMブロックの列に関連し、さ らに、 前記論理ブロックを前記相互接続構造に接続するためのの手段と、 前記垂直ラインを前記相互接続構造に接続するための手段と、 前記アドレスおよびデータポートを前記垂直ラインに接続するための手段とを 備える、RAMを備えたFPGA。 2.前記垂直ラインを分割するための手段をさらに含む、請求項1に記載のRA Mを備えたFPGA。 3.前記分割するための手段のうちのいくつかが双方向バッファである、請求項 2に記載のRAMを備えたFPGA。 4.前記分割するための手段のうちのいくつかがパストランジスタである、請求 項2に記載のRAMを備えたFPGA。 5.前記双方向バッファがラインをラインセグメントに分割し、各セグメントは RAMブロックに隣接する、請求項3に記載のRAMを備えたFPGA。 6.前記RAMブロックのうちいくつかが、2つのアドレスポートと少なくとも 2つのデータポートとを有するデュアルポートRAMを含み、前記すべてのポー トは前記垂直ラインによってアクセス可能である、請求項1に記載のRAMを備 えたFPGA。 7.前記RAMブロックの各々が、複数の長さ対幅の比を有すように構成するこ とができる、請求項1に記載のRAMを備えたFPGA。 8.前記RAMブロックの各々が4つの論理ブロックにわたって延びる、請求項 1に記載のRAMを備えたFPGA。 9.前記RAMブロックのうちの第1のものが、前記第1のRAMブロックに垂 直方向に隣接する前記RAMブロックのうちの第2のものから、前記導電性ライ ンのうちの異なったものに接続可能である、請求項2に記載のRAMを備えたF PGA。 10.前記第1のRAMブロックの垂直ラインが、前記第2のRAMブロックの 、異なった垂直ラインに接続されることができ、それにより、前記第1のRAM ブロックの所与のポートからの信号が、前記第2のRAMブロックの、同じ所与 のポートからの信号と衝突しない、請求項9に記載のRAMを備えたFPGA。 11.RAMブロックを備えたFPGAであって、 行および列に配置された複数の論理ブロックと、 複数の汎用相互接続ライン[L0−L3]と、 複数のRAMブロック[13]とを含み、前記複数のRAMブロックの各々は 、 複数のRAM[131]を含み、前記複数のRAMの各々はアドレスバス[A DDRA,ADDRB]によってアドレス指定され、少なくとも1つのデータバ ス[DINA,DINB,DOUTA,DOUTB]によってアクセスされ、か つ少なくとも1本のイネーブルライン[WEA,WEB,ENA,ENB]によ って能動化され、前記複数のRAMブロックの各々はさらに 前記アドレスバスおよび前記データバスの各々の各ラインを前記汎用相互接続 ラインのうちの少なくとも1つに接続するための手段[PIP]を含み、前記F PGAはさらに 各イネーブルラインであって、各ラインが、前記RAMブロックのうちの1つ にある前記アドレスバスおよび前記少なくとも1つのデータバスの各々にあるも のを、前記RAMブロックのうちの別のものにある対応するラインにプログラム 可能に接続し、それにより、プログラム可能な構成を有するより大きなRAMが 形成されるようにするための手段を含み、 前記RAMブロックのうちの1つにある前記データバスは、トライステート双 方向コネクタを介して前記RAMブロックのうちの別のものにあるデータバスに 接続される、FPGA。 12.前記各イネーブルラインであって、前記各ラインが、前記RAMブロック のうちの1つにある前記アドレスバスおよび前記少なくとも1つのデータバスの 各々にあるものを、前記RAMブロックのうちの別のものにプログラム可能に接 続するための手段が、プログラム可能な接続の各々を形成するための双方向バッ ファを含む、請求項11に記載のFPGA。 13.前記各イネーブルラインであって、前記各ラインが、前記RAMブロック のうちの1つにある前記アドレスバスおよび前記少なくとも1つのデータバスの 各々にあるものを、前記RAMブロックのうちの別のものにプログラム可能に接 続するための手段が、プログラム可能な接続の各々を形成するためのパスゲート を含む、請求項11に記載のFPGA。 14.前記各イネーブルラインであって、前記各ラインが、前記RAMブロック のうちの1つにある前記アドレスバスおよび前記少なくとも1つのデータバスの 各々にあるものを、前記RAMブロックのうちの別のものにプログラム可能に接 続するための手段が、対応する少なくとも1つのプログラム可能な接続を形成す るための少なくとも1つの双方向バッファと、対応する少なくとも1つのプログ ラム可能な接続を形成するための少なくとも1つのパストランジスタとを含む、 請求項11に記載のFPGA。 15.前記少なくとも1つの双方向バッファが、入力信号を与えるすべてのライ ンを前記RAMのうちの1つに接続するための双方向バッファを含み、前記少な くとも1つのパストランジスタは、前記RAMのうちの1つからの出力を与える すべてのラインを接続するためのパストランジスタを含む、請求項14に記載の FPGA。 16.前記少なくとも1つのイネーブルラインが、入力信号をデコーダ[132 ]に与える複数のイネーブルラインである、請求項11に記載のFPGA。 17.前記デコーダが、 各々が前記イネーブルラインのうちの1つによって制御される複数のマルチプ レクサ[MUXO−MUX3]を含み、前記マルチプレクサの各々は、選択可能 な値を有する複数のマルチプレクサ入力信号を受ける、請求項16に記載のFP GA。 18.前記マルチプレクサ入力信号の各々がメモリセルに記憶される、請求項1 7に記載のFPGA。
JP51262698A 1996-09-03 1997-06-16 プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ Expired - Lifetime JP4410853B2 (ja)

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 true JP2001500682A (ja) 2001-01-16
JP4410853B2 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)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007086434A1 (ja) 2006-01-26 2007-08-02 Mitsui Chemicals, Inc. 積層体
US7650448B2 (en) 1996-12-20 2010-01-19 Pact Xpp Technologies Ag I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7822881B2 (en) 1996-12-27 2010-10-26 Martin Vorbach Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
US7822968B2 (en) 1996-12-09 2010-10-26 Martin Vorbach Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US7908453B2 (en) 2004-06-30 2011-03-15 Fujitsu Semiconductor Limited Semiconductor device having a dynamically reconfigurable circuit configuration
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US8099618B2 (en) 2001-03-05 2012-01-17 Martin Vorbach Methods and devices for treating and processing data
US8127061B2 (en) 2002-02-18 2012-02-28 Martin Vorbach Bus systems and reconfiguration methods
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US8209653B2 (en) 2001-09-03 2012-06-26 Martin Vorbach Router
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US8281108B2 (en) 2002-01-19 2012-10-02 Martin Vorbach Reconfigurable general purpose processor having time restricted configurations
US8301872B2 (en) 2000-06-13 2012-10-30 Martin Vorbach Pipeline configuration protocol and configuration unit communication
JP2013512511A (ja) * 2009-11-25 2013-04-11 ハワード ユニバーシティ 複数メモリ特定用途向けデジタル信号プロセッサ
USRE44365E1 (en) 1997-02-08 2013-07-09 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
US8819505B2 (en) 1997-12-22 2014-08-26 Pact Xpp Technologies Ag Data processor having disabled cores
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements

Families Citing this family (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715197A (en) 1996-07-29 1998-02-03 Xilinx, Inc. Multiport RAM with programmable data port configuration
US6396303B1 (en) * 1997-02-26 2002-05-28 Xilinx, Inc. Expandable interconnect structure for FPGAS
US5963050A (en) 1997-02-26 1999-10-05 Xilinx, Inc. Configurable logic element with fast feedback paths
US6011744A (en) * 1997-07-16 2000-01-04 Altera Corporation Programmable logic device with multi-port memory
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
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
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
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
US6212591B1 (en) * 1999-04-02 2001-04-03 Cradle Technologies Configurable I/O circuitry defining virtual ports
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
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
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
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
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching 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
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7581076B2 (en) * 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or 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
DE60204189T2 (de) * 2001-06-29 2006-02-02 Stmicroelectronics Pvt. Ltd. FPGA mit zumindest zwei unterschiedlichen und unabhängig konfigurierbaren Speicherstrukturen
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
US6798239B2 (en) * 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
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
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
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
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
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
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
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
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
US6934922B1 (en) 2002-02-27 2005-08-23 Xilinx, Inc. Timing performance analysis
US7007121B1 (en) 2002-02-27 2006-02-28 Xilinx, Inc. Method and apparatus for synchronized buses
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
US7187709B1 (en) 2002-03-01 2007-03-06 Xilinx, Inc. High speed configurable transceiver architecture
US7088767B1 (en) 2002-03-01 2006-08-08 Xilinx, Inc. Method and apparatus for operating a transceiver in different data rates
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
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7162644B1 (en) 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US6996713B1 (en) 2002-03-29 2006-02-07 Xilinx, Inc. Method and apparatus for protecting proprietary decryption keys 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
US7099426B1 (en) 2002-09-03 2006-08-29 Xilinx, Inc. Flexible channel bonding and clock correction operations on a multi-block data path
JP4388895B2 (ja) 2002-09-06 2009-12-24 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト リコンフィギュアラブルなシーケンサ構造
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
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
US7849119B2 (en) * 2003-12-29 2010-12-07 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit
US7467175B2 (en) * 2003-12-29 2008-12-16 Xilinx, Inc. Programmable logic device with pipelined DSP slices
US7840630B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Arithmetic logic unit circuit
US7860915B2 (en) * 2003-12-29 2010-12-28 Xilinx, Inc. Digital signal processing circuit having a pattern circuit for determining termination conditions
US7567997B2 (en) * 2003-12-29 2009-07-28 Xilinx, Inc. Applications of cascading DSP slices
US7472155B2 (en) * 2003-12-29 2008-12-30 Xilinx, Inc. Programmable logic device with cascading DSP slices
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
US7865542B2 (en) * 2003-12-29 2011-01-04 Xilinx, Inc. Digital signal processing block having a wide multiplexer
US7844653B2 (en) 2003-12-29 2010-11-30 Xilinx, Inc. Digital signal processing circuit having a pre-adder circuit
US7840627B2 (en) * 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
US7853636B2 (en) * 2003-12-29 2010-12-14 Xilinx, Inc. Digital signal processing circuit having a pattern detector circuit for convergent rounding
US7870182B2 (en) * 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7882165B2 (en) * 2003-12-29 2011-02-01 Xilinx, Inc. Digital signal processing element having an arithmetic logic unit
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
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
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
US7280428B2 (en) 2004-09-30 2007-10-09 Rambus Inc. Multi-column addressing mode memory system including an integrated circuit memory device
US7254075B2 (en) * 2004-09-30 2007-08-07 Rambus Inc. Integrated circuit memory system having dynamic memory bank count and page size
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
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
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
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
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
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
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
WO2018217467A1 (en) 2017-05-26 2018-11-29 Flex Logix Technologies, Inc. Fpga having a virtual array of logic tiles, and method of configuring and operating same
WO2018231556A1 (en) 2017-06-13 2018-12-20 Flex Logix Technologies, Inc. Clock distribution and generation architecture for logic tiles of an integrated circuit and method of operating same
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)

* Cited by examiner, † Cited by third party
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
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
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
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

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156312B2 (en) 1996-12-09 2012-04-10 Martin Vorbach Processor chip for reconfigurable data processing, for processing numeric and logic operations and including function and interconnection control units
US7822968B2 (en) 1996-12-09 2010-10-26 Martin Vorbach Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US7899962B2 (en) 1996-12-20 2011-03-01 Martin Vorbach I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US7650448B2 (en) 1996-12-20 2010-01-19 Pact Xpp Technologies Ag I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US8195856B2 (en) 1996-12-20 2012-06-05 Martin Vorbach I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US7822881B2 (en) 1996-12-27 2010-10-26 Martin Vorbach Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
USRE44365E1 (en) 1997-02-08 2013-07-09 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
USRE45109E1 (en) 1997-02-08 2014-09-02 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
USRE45223E1 (en) 1997-02-08 2014-10-28 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
US8819505B2 (en) 1997-12-22 2014-08-26 Pact Xpp Technologies Ag Data processor having disabled cores
US8468329B2 (en) 1999-02-25 2013-06-18 Martin Vorbach Pipeline configuration protocol and configuration unit communication
US8726250B2 (en) 1999-06-10 2014-05-13 Pact Xpp Technologies Ag Configurable logic integrated circuit having a multidimensional structure of configurable elements
US8312200B2 (en) 1999-06-10 2012-11-13 Martin Vorbach Processor chip including a plurality of cache elements connected to a plurality of processor cores
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8301872B2 (en) 2000-06-13 2012-10-30 Martin Vorbach Pipeline configuration protocol and configuration unit communication
US9047440B2 (en) 2000-10-06 2015-06-02 Pact Xpp Technologies Ag Logical cell array and bus system
US8471593B2 (en) 2000-10-06 2013-06-25 Martin Vorbach Logic cell array and bus system
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US8312301B2 (en) 2001-03-05 2012-11-13 Martin Vorbach Methods and devices for treating and processing data
US9075605B2 (en) 2001-03-05 2015-07-07 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US8099618B2 (en) 2001-03-05 2012-01-17 Martin Vorbach Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US8869121B2 (en) 2001-08-16 2014-10-21 Pact Xpp Technologies Ag Method for the translation of programs for reconfigurable architectures
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8407525B2 (en) 2001-09-03 2013-03-26 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US8069373B2 (en) 2001-09-03 2011-11-29 Martin Vorbach Method for debugging reconfigurable architectures
US8429385B2 (en) 2001-09-03 2013-04-23 Martin Vorbach Device including a field having function cells and information providing cells controlled by the function cells
US8209653B2 (en) 2001-09-03 2012-06-26 Martin Vorbach Router
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US8281108B2 (en) 2002-01-19 2012-10-02 Martin Vorbach Reconfigurable general purpose processor having time restricted configurations
US8127061B2 (en) 2002-02-18 2012-02-28 Martin Vorbach Bus systems and reconfiguration methods
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US8281265B2 (en) 2002-08-07 2012-10-02 Martin Vorbach Method and device for processing data
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
US7908453B2 (en) 2004-06-30 2011-03-15 Fujitsu Semiconductor Limited Semiconductor device having a dynamically reconfigurable circuit configuration
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
WO2007086434A1 (ja) 2006-01-26 2007-08-02 Mitsui Chemicals, Inc. 積層体
JP2013512511A (ja) * 2009-11-25 2013-04-11 ハワード ユニバーシティ 複数メモリ特定用途向けデジタル信号プロセッサ
US9111068B2 (en) 2009-11-25 2015-08-18 Howard University Multiple-memory application-specific digital signal processor

Also Published As

Publication number Publication date
EP1239592A2 (en) 2002-09-11
EP1239592A3 (en) 2003-01-02
DE69716623D1 (de) 2002-11-28
EP0925649A1 (en) 1999-06-30
US5933023A (en) 1999-08-03
DE69716623T2 (de) 2003-09-11
EP0925649B1 (en) 2002-10-23
JP4410853B2 (ja) 2010-02-03
US6144220A (en) 2000-11-07
WO1998010517A1 (en) 1998-03-12

Similar Documents

Publication Publication Date Title
JP2001500682A (ja) プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ
JP3885119B2 (ja) フィールドプログラマブルプロセッサデバイス
US5530814A (en) Bi-directional crossbar switch with control memory for selectively routing signals between pairs of signal ports
US5315178A (en) IC which can be used as a programmable logic cell array or as a register file
US6118720A (en) Programmable logic array device with random access memory configurable as product terms
US6992947B1 (en) Dual-port SRAM in a programmable logic device
US5371422A (en) Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements
US6567969B1 (en) Configurable logic array including lookup table means for generating functions of different numbers of input terms
US7088134B1 (en) Programmable logic device with flexible memory allocation and routing
JP4014116B2 (ja) フィールドプログラマブルプロセッサアレイ
US6815981B2 (en) Programmable logic array integrated circuit devices
US9018979B2 (en) Universal digital block interconnection and channel routing
US6127843A (en) Dual port SRAM memory for run time use in FPGA integrated circuits
US10020811B2 (en) FPGA RAM blocks optimized for use as register files
US7269089B1 (en) Divisible true dual port memory system supporting simple dual port memory subsystems
US6556502B2 (en) Memory circuitry for programmable logic integrated circuit devices
GB2318663A (en) Hierarchical interconnect for programmable logic devices
US6356110B1 (en) Multifunction memory array in a programmable logic device
US6879182B1 (en) CPLD with multi-function blocks and distributed memory
US20040075465A1 (en) Fast signal conductor networks for programmable logic devices
WO1998033182A1 (en) Data routing devices
GB2315897A (en) Programmable logic cell array architecture
WO1999059088A2 (en) A programmable logic device with macrocell controlled by a pla

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 Written amendment

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 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070418

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070823

A912 Removal of reconsideration by examiner before appeal (zenchi)

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