5-68
Write Operations
The write port is always synchronous. Data is written into the
RAM on the rising edge of the write clock (WCLK) whenever
BLKEN (block enable) and WEN (write enable) are both
active. WCLK and BLKEN have polarity selection. Write
addresses (WRAD[5:0]), write data (WD[7:0]), BLKEN, and
WEN are synchronized to the appropriate edge of WCLK. The
RAM block may function in byte mode (32x8) or in nibble
mode (64x4). In byte mode, WRAD5 is not used, since 5 bits
can address the 32 bytes of each block. In nibble mode,
WRAD5, is used and the data inputs are connected in pairs
(WD0 and WD4 to LSB, WD1 and WD5 to next-higher-order
bit, etc.).
The SRAM blocks can be cascaded together to create deeper
blocks of memory. To cascade the SRAM blocks, one block is
configured as active HIGH BLKEN, with the other active
LOW, and the two BLKEN input then becomes a seventh
address bit. Write operations will occur to the lower block
when BLKEN = 0 and to the upper black when BLKEN = 1.
WEN, always active HIGH, can be used to disable writes to
both blocks.
Read Operations
There are two modes of operation at this port. In synchronous
mode, read addresses (RDAD[5:0]) are synchronized to the
read clock (RCLK), and the outputs change in response to a
rising or falling edge of this clock. In asynchronous mode,
outputs (RD[7:0]) change in response to a change of RDAD
(Read Address). Read operations occur on RCLK or RDAD
and change whenever REN is HIGH. When REN is LOW, the
current state of the output is held.
Table 1 summarizes the 3200DX family features, including
the dual-port SRAM in each device.
How to Use the 3200DX RAM Blocks
The best way to take advantage of the 3200DX dual-port RAM
blocks is through Actel’s macro builder, ACTgen. Refer to the
FPGA Application Guide
for a detailed description and
examples.
RAM blocks can be instantiated in schematics similar to
other library elements. There are 12 library elements that can
be used to instantiate a RAM block in schematic. These
elements are listed in Table 2.
Table 1 •
3200DX Family
3265DX 32100DX 32140DX 32200DX 32300DX
SRAM bits
0 2,048 0 2,560 3,072
Global Clocks
2 2 2 2 2
Quadrant Clocks
0 4 0 4 4
I/O
max
126 152 176 202 250
Wide Decode Cells
20 20 24 24 28
JTAG
No Yes Yes Yes Yes
Table 2 •
Library Elements Mapping into RAM Blocks
Macro Name Mode Write Clock Edge Read Clock Edge Read Operation
RAM4RA Nibble Rising NA* Async
RAM4FA Nibble Falling NA Async
RAM4RR Nibble Rising Rising Sync
RAM4RF Nibble Rising Falling Sync
RAM4FR Nibble Falling Rising Sync
RAM4FF Nibble Falling Falling Sync
RAM8RA Byte Rising NA Async
RAM8FA Byte Falling NA Async
RAM8RR Byte Rising Rising Sync
RAM8RF Byte Rising Falling Sync
RAM8FR Byte Falling Rising Sync
RAM8FF Byte Falling Falling Sync
*NA: Not Applicable due to asynchronous read operation.