SRAM and FIFO Memories in Actel’s Low-Power Flash Devices
v1.1
6 - 11
PIPE
This signal is used to specify pipelined read on the output. A LOW on PIPE indicates a nonpipelined
read, and the data appears on the output in the same clock cycle. A HIGH indicates a pipelined
read, and data appears on the output in the next clock cycle.
SRAM Usage
The following descriptions refer to the usage of both RAM4K9 and RAM512X18.
Clocking
The dual-port SRAM blocks are only clocked on the rising edge. SmartGen allows falling-edge-
triggered clocks by adding inverters to the netlist, hence achieving dual-port SRAM blocks that are
clocked on either edge (rising or falling). For dual-port SRAM, each port can be clocked on either
edge and by separate clocks by port. Note that for Automotive ProASIC3, the same clock, with an
inversion between the two clock pins of the macro, should be used in design to prevent errors
during compile.
IGLOO and ProASIC3 devices support inversion (bubble-pushing) throughout the FPGA
architecture, including the clock input to the SRAM modules. Inversions added to the SRAM clock
pin on the design schematic or in the HDL code will be automatically accounted for during design
compile without incurring additional delay in the clock path.
The two-port SRAM can be clocked on the rising or falling edge of WCLK and RCLK.
If negative-edge RAM and FIFO clocking is selected for memory macros, clock edge inversion
management (bubble-pushing) is automatically used within the IGLOO and ProASIC3 development
tools, without performance penalty.
Modes of Operation
There are two read modes and one write mode:
Read Nonpipelined (synchronous—1 clock edge): In the standard read mode, new data is
driven onto the RD bus in the same clock cycle following RA and REN valid. The read address
is registered on the read port clock active edge, and data appears at RD after the RAM
access time. Setting PIPE to OFF enables this mode.
Read Pipelined (synchronous—2 clock edges): The pipelined mode incurs an additional clock
delay from address to data but enables operation at a much higher frequency. The read
address is registered on the read port active clock edge, and the read data is registered and
appears at RD after the second read clock edge. Setting PIPE to ON enables this mode.
Write (synchronous—1 clock edge): On the write clock active edge, the write data is written
into the SRAM at the write address when WEN is HIGH. The setup times of the write address,
write enables, and write data are minimal with respect to the write clock.
RAM Initialization
Each SRAM block can be individually initialized on power-up by means of the JTAG port using the
UJTAG mechanism. The shift register for a target block can be selected and loaded with the proper
bit configuration to enable serial loading. The 4,608 bits of data can be loaded in a single
operation.
FIFO Features
The FIFO4KX18 macro is created by merging the RAM block with dedicated FIFO logic
(Figure 6-6on page 6-12). Since the FIFO logic can only be used in conjunction with the memory block, there is
no separate FIFO controller macro. As with the RAM blocks, the FIFO4KX18 nomenclature does not
refer to a possible aspect ratio, but rather to the deepest possible data depth and the widest
possible data width. FIFO4KX18 can be configured into the following aspect ratios: 4,096x1,
2,048x2, 1,024x4, 512x9, and 256x18. In addition to being fully synchronous, the FIFO4KX18 also
has the following features:
Four FIFO flags: Empty, Full, Almost-Empty, and Almost-Full
EMPTY flag is synchronized to the read clock
FULL flag is synchronized to the write clock
Both Almost-Empty and Almost-Full flags have programmable thresholds