Patent US5933023A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5933023A Expired / Lapsed US ⏱️ 0.0 years remaining

FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines

Assignee: Xilinx Inc
•
Filing: 1996-09-03
•
Granted: 1999-08-03
•
Expires: 2016-09-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A structure in which blocks of random access memory, or RAM, are integrated with FPGA configurable logic blocks. Routing lines which access configurable logic blocks also access address, data, and control lines in the RAM blocks. Thus, the logic blocks of the FPGA can use these routing lines to access portions of RAM. In one embodiment, dedicated address and data lines access the RAM blocks of the present invention and are connectable to routing lines in the interconnect structure. These lines allow RAM blocks and arrays of RAM blocks to be configured long, wide, or in between, and allow logic blocks to conveniently access RAM blocks in a remote part of the chip. Access to the RAM blocks is efficient in any RAM configuration. Bidirectional buffers or pass devices segment the address and data lines at each RAM block so that a selectable number of RAM blocks can operate together as a RAM. In another embodiment, dedicated data lines are programmably connectable in a staggered arrangement so that RAM blocks can be connected over a long distance without conflict between the RAM blocks.

Inventors

  • 👤 Steven P. Young

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 15:42
CPC Classifications
H; H03; H03K; H03K19/00; H03K19/02; H03K19/173; H03K19/177; H03K19/17748; H03K19/1776; H03K19/1733; H03K19/1737; H03K19/17704; H03K19/17724; H03K19/17728; H03K19/17736

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 112 words
An FPGA with RAM comprising: a plurality of logic blocks arranged in rows and columns; a plurality of RAM blocks dedicated to the RAM function and arranged in columns, said RAM blocks having address ports and data ports; an interconnect structure comprising conductive lines arranged in rows; a set of vertical lines for carrying only address signals, each line in the set of vertical lines programmably driving said address ports of a column of more than one of said RAM blocks; means for connecting said logic blocks to said interconnect structure; means for connecting said vertical lines to said interconnect structure; and means for connecting said address ports to said vertical lines.
Claim 2
Dependent Claim 112 words
An FPGA with RAM comprising: a plurality of logic blocks arranged in rows and columns; a plurality of RAM blocks dedicated to the RAM function and arranged in columns, said RAM blocks having address ports and data ports; an interconnect structure comprising conductive lines arranged in rows; a set of vertical lines for carrying only address signals, each line in the set of vertical lines programmably driving said address ports of a column of more than one of said RAM blocks; means for connecting said logic blocks to said interconnect structure; means for connecting said vertical lines to said interconnect structure; and means for connecting said address ports to said vertical lines.
Claim 3
Dependent Claim 16 words
An FPGA with RAM as in claim 1 further comprising: means for segmenting said vertical lines.
Claim 4
Dependent Claim 18 words
An FPGA with RAM as in claim 2 wherein some of said means for segmenting are bidirectional buffers.
Claim 5
Dependent Claim 18 words
An FPGA with RAM as in claim 2 wherein some of said means for segmenting are pass transistors.
Claim 6
Dependent Claim 26 words
An FPGA with RAM as in claim 3 wherein said bidirectional buffers segment a line into line segments, each segment being adjacent to a RAM block.
Claim 7
Dependent Claim 38 words
An FPGA with RAM as in claim 1 wherein some of said RAM blocks comprise dual port RAMs having two address ports and at least two data ports, all such address ports being accessible by said vertical lines.
Claim 8
Dependent Claim 23 words
An FPGA with RAM as in claim 1 wherein each of said RAM blocks can be configured to a plurality of length-to-width ratios.
Claim 9
Dependent Claim 18 words
An FPGA with RAM as in claim 1 wherein each of said RAM blocks spans four logic blocks.
Claim 10
Dependent Claim 98 words
An FPGA with RAM as in claim 2, further comprising: a group of vertical data lines for carrying only data signals, each group programmably driving said data ports of a column of more than one of said RAM blocks; means for connecting said data lines to said interconnect structure; means for connecting said data ports to said data lines; and means for segmenting said data lines; wherein a first one of said RAM blocks is connectable to different ones of said data lines from a second one of said RAM blocks vertically adjacent to said first RAM block.
Claim 11
Dependent Claim 77 words
An FPGA with RAM as in claim 9 wherein a first one of said group of data lines driving said first RAM block can be connected without utilizing said interconnect structure to a different one of said group of data lines driving said second RAM block such that a signal driving a given data port in said first RAM block does not conflict with a signal driving the same given data port in said second RAM block.
Claim 12
Dependent Claim 164 words
An FPGA with RAM blocks comprising: a plurality of logic blocks arranged in rows and columns; a plurality of general interconnect lines; a plurality of RAM blocks each comprising: a plurality of RAMs dedicated to the RAM function, each being addressed by a dedicated address bus and accessed by at least one dedicated data bus, and being enabled by at least one enable line; and means for connecting each line in each of said address bus and said data bus to at least one of said general interconnect lines; and means for programmably connecting each enable line, each line in each of said address bus and said at least one data bus in one of said RAM blocks to a corresponding line in another of said RAM blocks, whereby a larger RAM is formed having a programmable configuration; said data bus in one of said RAM blocks being connected to a data bus in another of said RAM blocks through a tristatable bidirectional connector.
Claim 13
Dependent Claim 164 words
An FPGA with RAM blocks comprising: a plurality of logic blocks arranged in rows and columns; a plurality of general interconnect lines; a plurality of RAM blocks each comprising: a plurality of RAMs dedicated to the RAM function, each being addressed by a dedicated address bus and accessed by at least one dedicated data bus, and being enabled by at least one enable line; and means for connecting each line in each of said address bus and said data bus to at least one of said general interconnect lines; and means for programmably connecting each enable line, each line in each of said address bus and said at least one data bus in one of said RAM blocks to a corresponding line in another of said RAM blocks, whereby a larger RAM is formed having a programmable configuration; said data bus in one of said RAM blocks being connected to a data bus in another of said RAM blocks through a tristatable bidirectional connector.
Claim 14
Dependent Claim 56 words
An FPGA as in claim 11 in which said means for programmably connecting each enable line, each line in each of said address bus and said at least one data bus in one of said RAM blocks to a corresponding line in another of said RAM blocks comprises a bidirectional buffer for making each programmable connection.
Claim 15
Dependent Claim 56 words
An FPGA as in claim 11 in which said means for programmably connecting each enable line, each line in each of said address bus and said at least one data bus in one of said RAM blocks to a corresponding line in another of said RAM blocks comprises a pass gate for making each programmable connection.
Claim 16
Dependent Claim 77 words
An FPGA as in claim 11 in which said means for programmably connecting each enable line, each line in each of said address bus and said at least one data bus in one of said RAM blocks to a corresponding line in another of said RAM blocks comprises at least one bidirectional buffer for making a corresponding at least one programmable connection, and at least one pass transistor for making a corresponding at least one programmable connection.
Claim 17
Dependent Claim 52 words
An FPGA as in claim 14 in which said at least one bidirectional buffer comprises bidirectional buffers for connecting all lines which provide input signals to one of said RAMs and said at least one pass transistor comprises pass transistors for connecting all lines which provide output from one of said RAMs.
Claim 18
Dependent Claim 27 words
An FPGA as in claim 11 in which said at least one enable line is a plurality of enable lines providing input signals to a decoder 132!.
Claim 19
Dependent Claim 211 words
An FPGA with RAM blocks comprising: a plurality of logic blocks arranged in rows and columns; a plurality of general interconnect lines; a plurality of RAM blocks each comprising: a plurality of RAMs dedicated to the RAM function, each being addressed by an address bus and accessed by at least one data bus, and being enabled by at least one enable line; and means for connecting each line in each of said address bus and said data bus to at least one of said general interconnect lines; and means for programmably connecting each enable line, each line in each of said address bus and said at least one data bus in one of said RAM blocks to a corresponding line in another of said RAM blocks, whereby a larger RAM is formed having a programmable configuration, wherein: said data bus in one of said RAM blocks is connected to a data bus in another of said RAM blocks through a tristatable bidirectional connector; said at least one enable line is a plurality of enable lines providing input signals to a decoder; and said decoder comprises a plurality of multiplexers each controlled by one of said enable lines, said multiplexers each receiving a plurality of multiplexer input signals having a selectable value.
Claim 20
Dependent Claim 211 words
An FPGA with RAM blocks comprising: a plurality of logic blocks arranged in rows and columns; a plurality of general interconnect lines; a plurality of RAM blocks each comprising: a plurality of RAMs dedicated to the RAM function, each being addressed by an address bus and accessed by at least one data bus, and being enabled by at least one enable line; and means for connecting each line in each of said address bus and said data bus to at least one of said general interconnect lines; and means for programmably connecting each enable line, each line in each of said address bus and said at least one data bus in one of said RAM blocks to a corresponding line in another of said RAM blocks, whereby a larger RAM is formed having a programmable configuration, wherein: said data bus in one of said RAM blocks is connected to a data bus in another of said RAM blocks through a tristatable bidirectional connector; said at least one enable line is a plurality of enable lines providing input signals to a decoder; and said decoder comprises a plurality of multiplexers each controlled by one of said enable lines, said multiplexers each receiving a plurality of multiplexer input signals having a selectable value.
Claim 21
Dependent Claim 19 words
An FPGA as in claim 17 in which said multiplexer input signals are each stored in a memory cell.
Claim 22
Dependent Claim 112 words
An FPGA with RAM comprising: a plurality of logic blocks arranged in rows and columns; a plurality of RAM blocks dedicated to the RAM function and arranged in columns, said RAM blocks having address ports and data ports; an interconnect structure comprising conductive lines arranged in rows; a set of vertical lines for carrying only data signals, each line in the set of vertical lines programmably driving said data ports of a column of more than one of said RAM blocks; means for connecting said logic blocks to said interconnect structure; means for connecting said vertical lines to said interconnect structure; and means for connecting said data ports to said vertical lines.
Claim 23
Dependent Claim 112 words
An FPGA with RAM comprising: a plurality of logic blocks arranged in rows and columns; a plurality of RAM blocks dedicated to the RAM function and arranged in columns, said RAM blocks having address ports and data ports; an interconnect structure comprising conductive lines arranged in rows; a set of vertical lines for carrying only data signals, each line in the set of vertical lines programmably driving said data ports of a column of more than one of said RAM blocks; means for connecting said logic blocks to said interconnect structure; means for connecting said vertical lines to said interconnect structure; and means for connecting said data ports to said vertical lines.
Claim 24
Dependent Claim 16 words
An FPGA with RAM as in claim 19 further comprising: means for segmenting said vertical lines.
Claim 25
Dependent Claim 18 words
An FPGA with RAM as in claim 20 wherein some of said means for segmenting are bidirectional buffers.
Claim 26
Dependent Claim 18 words
An FPGA with RAM as in claim 20 wherein some of said means for segmenting are pass transistors.
Claim 27
Dependent Claim 26 words
An FPGA with RAM as in claim 21 wherein said bidirectional buffers segment a line into line segments, each segment being adjacent to a RAM block.
Claim 28
Dependent Claim 38 words
An FPGA with RAM as in claim 19 wherein some of said RAM blocks comprise dual port RAMs having two address ports and at least two data ports, all such data ports being accessible by said vertical lines.
Claim 29
Dependent Claim 23 words
An FPGA with RAM as in claim 19 wherein each of said RAM blocks can be configured to a plurality of length-to-width ratios.
Claim 30
Dependent Claim 18 words
An FPGA with RAM as in claim 19 wherein each of said RAM blocks spans four logic blocks.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-08-02 2003-02-01 2003-08-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-08-02 2007-02-01 2007-08-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-08-02 2011-02-01 2011-08-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag