
Spartan-3 FPGA Family: Functional Description
DS099 (v3.1) June 27, 2013
Product Specification
26
Arrangement of RAM Blocks on Die
The XC3S50 has one column of block RAM. The Spartan-3 devices ranging from the XC3S200 to XC3S2000 have two
columns of block RAM. The XC3S4000 and XC3S5000 have four columns. The position of the columns on the die is shown
in
Figure 1, page 3. For a given device, the total available RAM blocks are distributed equally among the columns.
Table 12shows the number of RAM blocks, the data storage capacity, and the number of columns for each device.
Block RAM and multipliers have interconnects between them that permit simultaneous operation; however, since the
multiplier shares inputs with the upper data bits of block RAM, the maximum data path width of the block RAM is 18 bits in
this case.
The Internal Structure of the Block RAM
The block RAM has a dual port structure. The two identical data ports called A and B permit independent access to the
common RAM block, which has a maximum capacity of 18,432 bits—or 16,384 bits when no parity lines are used. Each port
has its own dedicated set of data, control and clock lines for synchronous read and write operations. There are four basic
data paths, as shown in
Figure 13: (1) write to and read from Port A, (2) write to and read from Port B, (3) data transfer from
Port A to Port B, and (4) data transfer from Port B to Port A.
Block RAM Port Signal Definitions
Representations of the dual-port primitive RAMB16_S[wA]_S[wB] and the single-port primitive RAMB16_S[w] with their
Table 12: Number of RAM Blocks by Device
Device
Total Number
of RAM Blocks
Total Addressable
Locations (Bits)
Number of
Columns
XC3S50
4
73,728
1
XC3S200
12
221,184
2
XC3S400
16
294,912
2
XC3S1000
24
442,368
2
XC3S1500
32
589,824
2
XC3S2000
40
737,280
2
XC3S4000
96
1,769,472
4
XC3S5000
104
1,916,928
4
X-Ref Target - Figure 13
Figure 13: Block RAM Data Paths
DS099-2_12_030703
Spartan-3
Dual Port
Block RAM
Read 3
Read
Write
Read
Write
Read
Port
A
Port
B
2
1
4