10.4.4 Soft FIFO Controller

The Soft FIFO Controller is a user-gate alternative to the Embedded Synchronous FIFO and provides features that are not supported by the Embedded FIFO.

Supported Families

The Soft FIFO Controller with memory supports the following families:

  • IGLOO®
  • ProASIC®3
  • SmartFusion®
  • Fusion
  • Axcelerator®
  • SX-A
  • SX

Key Features

The Soft FIFO is a user-gate alternative to the Embedded Synchronous FIFO. It provides features that are not supported by the Embedded FIFO.

The Soft FIFO has single-RAM-location granularity with the empty and full flags, whereas the Embedded FIFO only asserts the empty and full flags on the RAM block depth boundary of the FIFO configuration used.

For example, if you configure an Embedded FIFO with depth x width of 64x4, the FIFO asserts the full flag at 512. The reason is that the silicon configuration satisfying the requirements uses block RAMs of 512x9. The available silicon configurations for Embedded FIFOs are 4096x1, 2048x2, 1024x4 and 512x9.

The Soft FIFO can support depth and width cascading of RAM blocks, while the Embedded FIFO only supports width cascading.

The Soft FIFO supports many more optional status ports for increased visibility and usability. These optional ports are described in more detail in the related sections.

The basic rule for configuring Soft FIFOs is: (write width × write depth) must equal (read width × read depth).

Optimize for High Speed (Width Cascading) or Low Power (Depth Cascading)

You can choose to optimize your RAM for High Speed or Low Power.

If you optimize for low power, the core configurator evaluates your RAM configuration and attempts to generate a macro with depth cascading.