10.4.5.3.2 Flags Depend on Depth Cascade Size
The FULL/EMPTY/EQTH/GEQTH flags are generated by the AND of all the FIFOs in the depth cascade. Thus, all FIFO’s must have the same status before the flag to the user is asserted.
As a result, these status flags are only generated dependent upon the depth and size of the FIFO. The FIFO macro has a port to allow it to be configured for various depth sizes, however these sizes are only powers of 2 such as: 2, 4, 8, 16, 32, 64, 128 and 256.
Thus, a depth configuration that does not utilize an evenly distributed factor of those depths produces unexpected status flags.
For example, for a FIFO configuration of 596x8, a depth cascade of 3 FIFO blocks is used. Each block is configured for 256 deep to meet the depth requirement. Thus, the full flag for each individual FIFO block only asserts when it reaches 256 elements. This implies that the generated FIFO does NOT assert the full flag at 596 but rather at 256*3 or 768.
