Interfacing External SRAM


External memory is a necessity when relatively large amounts of storage are required by the FPGA application. For a "medium-sized" amount of memory, perhaps in the range of 8 kilobytes to 1 Megabyte, static ram (SRAM) may be the designer's first choice. The main advantage of SRAM is that it is the easiest to interface to and maintain. SRAMs generally have a direct, non-multiplexed interface for addressing memory, and only require a constant DC supply in order to retain data. In the case of CMOS static memories, this power requirement is extremely small, allowing the implementation of reliable non-volatile battery-backed systems.

SRAM Operation


SRAM Timing Diagram

The operation of SRAM is generally similar to the "IO-RAM" LPM used to implement internal memory on the Altera FLEX device. The data port is bi-directional, and it's behaviour is determined by the level of it's Output Enable (OE*) input.

ONE IMPORTANT OBSERVATION to note is that Altera's LPMs generally use positive logic, and most SRAMs use negative logic. Thus, a low signal on OE* causes the data bus to act as an output, on WE* causes a write operation, and on CS* enables the chip (CS* is Chip Select, and is equivalent to memenab on an lpm_ram_io component).

The device can be used "asynchronously" so long as the timing parameters are adhered to, as the IO on an SRAM is not "registered". It is recommended, however, that a "synchronous" read or write be done (based on the system clock) that ensures timing requrements are met. Typical parameters for a high-speed SRAM are given in this data sheet from Alliance Semiconductor, along with more in-depth timing diagrams.



Back to "Memory and the Altera FLEX device"
9 April, 1998