16.11.2015 Views

UltraScale Architecture Memory Resources

ug573-ultrascale-memory-resources

ug573-ultrascale-memory-resources

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 2: Built-in FIFO<br />

FIFO might be reported as fewer than there actually are in the FIFO. However, because the<br />

PROGEMPTY flag is synchronous to the RDCLK domain, it is generally used to determine<br />

how many locations in the FIFO are available to be read, so the under-reporting of<br />

PROGEMPTY guarantees that the FIFO never underflows.<br />

The number of clock cycles required for a write operation to cause PROGEMPTY to deassert<br />

depends on the FIFO configuration. For an independent-clocks FIFO, a write operation is<br />

first synchronized internally to the RDCLK domain before it can influence the status of the<br />

PROGEMPTY flag, resulting in a latency from the write operation to the deassertion of<br />

PROGEMPTY that is a combination of a few write clocks followed by a few read clocks.<br />

The PROGEMPTY flag is synchronous to the RDCLK domain and is intended as a status<br />

signal for logic reading from the FIFO.<br />

Read Error Flag<br />

After the Empty flag has been asserted, any further read attempts do not increment the<br />

read address pointer but do trigger the Read Error (RDERR) flag. A RDERR also occurs if a<br />

write operation is performed while RDRSTBUSY is asserted. The RDERR flag is deasserted<br />

when Read Enable or Empty is deasserted. The RDERR flag is synchronous to RDCLK.<br />

Full Flag<br />

If FULL is asserted, the FIFO has no room for any additional words to be written to the FIFO,<br />

and any additional write operations cause a write error (WRERR=1). When reading from a<br />

full FIFO, the number of clock cycles required for the FULL output to deassert depend on the<br />

FIFO configuration. For an independent-clocks FIFO, a read operation must be synchronized<br />

internally to the WRCLK domain before it can influence the status of the FULL flag, resulting<br />

in a latency from the read operation to the deassertion of FULL that is a combination of a<br />

few read clocks followed by a few write clocks.<br />

The FULL flag is synchronous to the WRCLK domain and is intended as a handshaking signal<br />

for logic writing to the FIFO.<br />

Write Error Flag<br />

After the Full flag is asserted, any further write attempts do not increment the write address<br />

pointer but do trigger the Write Error (WRERR) flag. A WRERR also occurs if a write<br />

operation is performed while WRRSTBUSY is asserted. The WRERR flag is deasserted when<br />

Write Enable or Full is deasserted. This signal is synchronous to WRCLK.<br />

<strong>UltraScale</strong> <strong>Architecture</strong> <strong>Memory</strong> <strong>Resources</strong> www.xilinx.com<br />

Send Feedback<br />

73<br />

UG573 (v1.2) February 24, 2015

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!