UltraScale Architecture Memory Resources
ug573-ultrascale-memory-resources
ug573-ultrascale-memory-resources
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 2: Built-in FIFO<br />
FIFO <strong>Architecture</strong>: Top-Level View<br />
Figure 2-1 shows a top-level view of the FIFO. The read pointer, write pointer, and status<br />
flag logic are dedicated for FIFO use only.<br />
X-Ref Target - Figure 2-1<br />
WRCOUNT<br />
Write<br />
Pointer<br />
waddr<br />
Block<br />
RAM<br />
raddr<br />
Read<br />
Pointer<br />
RDCOUNT<br />
DIN/DINP<br />
mem_wr<br />
mem_rd<br />
DOUT/DOUTP<br />
WRCLK<br />
WREN<br />
RST<br />
Write<br />
Status<br />
Flag<br />
Logic<br />
sync<br />
Read<br />
Status<br />
Flag<br />
Logic<br />
RDCLK<br />
RDEN<br />
PROGFULL<br />
EMPTY<br />
FULL<br />
WRERR<br />
RDERR<br />
PROGEMPTY<br />
UG573_c2_01_111312<br />
Figure 2-1:<br />
Top-Level View of FIFO in Block RAM<br />
FIFO Port Width and Depth<br />
The FIFOs support asymmetric read and write ports based on the block RAM’s asymmetric<br />
port capability to support different port widths for each port. The FIFO18E2 supports<br />
independent read/write port width combinations of 4, 8, 16, and 32, which can be expanded<br />
to 9, 18, and 36 when utilizing the DINP bits. The FIFO36E2 supports independent<br />
read/write port width combinations of 4, 8, 16, 32, and 64, which can be expanded to 9, 18,<br />
36, and 72 when utilizing the DINP bits.<br />
When considering features such as output register stages, FWFT mode, or asymmetric<br />
ports, FIFO depth varies. When using asymmetric port widths, the FIFO depth differs<br />
depending on the number of write words in the WRCLK domain and the number of read<br />
words in the RDCLK domain.<br />
FIFO depth in the WRCLK domain is the number of write words that, when written to a FIFO,<br />
causes it to go FULL. In a special case, if the read port is narrower than the write port, it is<br />
possible that a partial word exists in the FIFO, causing FULL to assert one clock earlier than<br />
expected.<br />
<strong>UltraScale</strong> <strong>Architecture</strong> <strong>Memory</strong> <strong>Resources</strong> www.xilinx.com<br />
Send Feedback<br />
52<br />
UG573 (v1.2) February 24, 2015