This website uses cookies. By using this site, you consent to the use of cookies. For more information, please take a look at our Privacy Policy.
Home > FPGA Technical Tutorials > Design Recipes for FPGAs Using Verilog and VHDL > Memory

TABLE OF CONTENTS

Xilinx FPGA FPGA Forum

Memory

FONT SIZE : AAA

Introduction 

There are very often two ways to use memory on modern FPGAs. Either there are memory blocks on board the FPGA (or on the development board) or you wish to make your own memory blocks for storage using the flip flops on the FPGA logic. Either way, it is important to realize that there are significant differences between dedicated high density Dynamic RAM (DRAM) and Synchronous Dynamic Random Access Memory (SDRAM) and flip-flop based Static RAM (SRAM).

If we consider SDRAM, the key aspects of this type of memory to consider are: 

  1. This type of DRAM relies on transistor capacitance on gates to store data.

  2. DRAM is much more compact than SRAM (Static RAM).

  3. DRAM cannot be synthesized; you need a separate DRAM chip.

  4. SDRAM requires a synchronization clock that is consistent with the rest of the hardware system (it is designed to operate with microprocessors).

  5. DRAM data must be refreshed as it is stored charge and decays after a certain time.

  6. DRAM is slower than SRAM.

Static RAM can be considered in a similar way to a ROM chip and it also has (differing) key aspects of behavior to consider: 

  1. Memory cells are based on standard latches.

  2. SRAM is fast.

  3. SRAM is less compact than DRAM (or SDRAM).

  4. SRAM can be synthesized on an FPGA so is ideal for small, fast registers or memory blocks.

Static RAM is essentially asynchronous, but can be modified to behave synchronously (as SDRAM is the synchronous equivalent of DRAM), and this is often called Synchronous RAM. 

Flash memory is useful to consider at this point, even though its operation is fundamentally different from the memory types considered thus far, simply because it is easy to use and is commonly available on many FPGA development boards. Flash memory is essentially a form of EEPROM (electrically programmable ROM) that can be used as a form of persistent RAM. Why persistent? In flash memory, the device memory is retained even when the power is removed, so it is often used as a form of ROM, which makes it an interesting memory to use on FPGA systems as it could be used to store the FPGA program, but also used as a RAM storage (dynamically) for current data.


  • XC17256DPD8I

    Manufacturer:Xilinx

  • PROM Serial 256K-bit 5V 8-Pin PDIP
  • Product Categories:

    Lifecycle:Unconfirmed -

    RoHS: No RoHS

  • XC17256ELPD8C

    Manufacturer:Xilinx

  • PROM Serial 256K-bit 3.3V 8-Pin PDIP
  • Product Categories: Memory - Configuration Proms for FPGA's

    Lifecycle:Obsolete -

    RoHS: No RoHS

  • XC3S1500-5FGG320C

    Manufacturer:Xilinx

  • FPGA Spartan-3 Family 1.5M Gates 29952 Cells 725MHz 90nm Technology 1.2V 320-Pin FBGA
  • Product Categories: FPGAs (Field Programmable Gate Array)

    Lifecycle:Active Active

    RoHS:

  • XC4013E-4PG223I

    Manufacturer:Xilinx

  • FPGA XC4000E Family 13K Gates 1368 Cells 0.35um Technology 5V 223-Pin CPGA
  • Product Categories: FPGAs (Field Programmable Gate Array)

    Lifecycle:Obsolete -

    RoHS: No RoHS

  • XC3S1500-FGG676C

    Manufacturer:Xilinx

  • Xilinx BGA
  • Product Categories:

    Lifecycle:Any -

    RoHS:

Need Help?

Support

If you have any questions about the product and related issues, Please contact us.