FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines
First Claim
1. 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.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
26 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. 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. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. 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. - View Dependent Claims (18)
-
-
19. 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. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
Specification