16.11.2015 Views

UltraScale Architecture Memory Resources

ug573-ultrascale-memory-resources

ug573-ultrascale-memory-resources

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!