10.4.4.3.1 Generating Flags in the Soft FIFO Controller

Flags in the Soft FIFO Controller are generated as follows:

  • The Full, Empty, Almost Full and Almost Empty flags are registered outputs of this module, unlike the silicon version.
  • The Almost Full and Almost Empty flags are optional ports; you can set the threshold values statically or dynamically.

To set a static value for the threshold: deselect the checkbox next to the AFVAL or AEVAL port; this disables the port(s) and enables the text control box next to the AFULL/AEMPTY port(s). Enter your desired static threshold into this field.

To set a dynamic value for the threshold, select the checkbox(es) next to the AFVAL or AEVAL port, this enables core generation with one or both buses. You can then dynamically input your desired threshold values.

  • The Full flag is asserted on the same clock that the data that fills the FIFO is written.
  • The Empty flag is asserted on the same clock that the last data is read out of the FIFO.
  • The Almost Full flag is asserted on the same clock on which the threshold has been reached.
  • The Almost Empty flag is asserted on the same clock on which the threshold has been reached.

For example, if you specify an almost empty threshold of 10, the flag asserts on the same read clock that causes the FIFO to contain 10 elements.

Allow Write when FIFO is full
Select this checkbox to enable the FIFO to continue write when it is full. Your existing FIFO value is OVERWRITTEN if you are using the Soft FIFO Controller with Memory.
Allow read when FIFO is empty
Select this checkbox to enable the FIFO to continue to read when it is empty.