UltraScale Architecture Memory Resources
ug573-ultrascale-memory-resources
ug573-ultrascale-memory-resources
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