Programmable Full and Empty Signals

The FIFO core supports user-defined full and empty signals with customized depths (prog_full_o and prog_empty_o). To enable these signals, set the PROGRAMMABLE_FULL or PROGRAMMABLE_EMPTY parameters as STATIC_SINGLE or STATIC_DUAL. Refer to Customizing the FIFO for more info on the available values.

Important: For the asynchronous FIFO, these signals are synchronized to their respective clock domain’s available words.
Table 1. prog_full_o Assert and Deassert Conditions
Value Type Condition
STATIC_SINGLE Assert number of words in FIFO ≥ PROG_FULL_ASSERT
Deassert number of words in FIFO < PROG_FULL_ASSERT
STATIC_DUAL Assert number of words in FIFO ≥ PROG_FULL_ASSERT
Deassert number of words in FIFO < PROG_FULL_NEGATE
Table 2. prog_empty_o Assert and Deassert Conditions
Value Type Condition
STATIC_SINGLE Assert number of words in FIFO ≤ PROG_EMPTY_ASSERT
Deassert number of words in FIFO > PROG_EMPTY_ASSERT
STATIC_DUAL Assert number of words in FIFO ≤ PROG_EMPTY_ASSERT
Deassert number of words in FIFO > PROG_EMPTY_NEGATE
To avoid erratic behavior, follow these rules for STATIC_DUAL modes:
  • PROG_FULL_ASSERTPROG_FULL_NEGATE
  • PROG_EMPTY_ASSERTPROG_EMPTY_NEGATE