Spartan-3E FPGA Family: Functional Description
DS312 (v4.1) July 19, 2013
Product Specification
40
Block RAM Attribute Definitions
A block RAM has a number of attributes that control its
Block RAM Data Operations
Writing data to and accessing data from the block RAM are
synchronous operations that take place independently on
each of the two ports.
Table 25 describes the data
operations of each port as a result of the block RAM control
signals in their default active-High edges.
The waveforms for the write operation are shown in the top
and EN signals enable the active edge of CLK, data at the
DI input bus is written to the block RAM location addressed
by the ADDR lines.
Table 24: Block RAM Attributes
Function
Attribute
Possible Values
Initial Content for Data Memory, Loaded during
Configuration
INITxx
(INIT_00 through INIT3F)
Each initialization string defines 32 hex values of the
16384-bit data memory of the block RAM.
Initial Content for Parity Memory, Loaded
during Configuration
INITPxx
(INITP_00 through INITP0F)
Each initialization string defines 32 hex values of the
2048-bit parity data memory of the block RAM.
Data Output Latch Initialization
INIT
(single-port)
INITA
, INITB (dual-port)
Hex value the width of the chosen port.
Data Output Latch Synchronous Set/Reset
Value
SRVAL
(single-port)
SRVAL_A
, SRVAL_B (dual-port)
Hex value the width of the chosen port.
Data Output Latch Behavior during Write (see
WRITE_MODE
WRITE_FIRST, READ_FIRST, NO_CHANGE
Table 25: Block RAM Function Table
Input Signals
Output Signals
RAM Data
GSR
EN
SSR
WE
CLK
ADDR
DIP
DI
DOP
DO
Parity
Data
Immediately After Configuration
Loaded During Configuration
X
INITP_xx
INIT_xx
Global Set/Reset Immediately After Configuration
1
X
INIT
No Chg
RAM Disabled
0
X
No Chg
Synchronous Set/Reset
0
110
↑
X
SRVAL
No Chg
Synchronous Set/Reset During Write RAM
0
111
↑
addr
pdata
Data
SRVAL
RAM(addr)
← pdata
RAM(addr)
← data
Read RAM, no Write Operation
0
100
↑
addr
X
RAM(pdata)
RAM(data)
No Chg
Write RAM, Simultaneous Read Operation
0
101
↑
addr
pdata
Data
WRITE_MODE = WRITE_FIRST
pdata
data
RAM(addr)
← pdata
RAM(addr)
← data
WRITE_MODE = READ_FIRST
RAM(data)
RAM(addr)
← pdata
RAM(addr)
← pdata
WRITE_MODE = NO_CHANGE
No Chg
RAM(addr)
← pdata
RAM(addr)
← pdata