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<br />

Built-in FIFO<br />

Overview<br />

Many designs use block RAMs to implement FIFOs. Common-clock or independent-clock<br />

FIFOs can be easily implemented with the dedicated logic in the block RAM. This eliminates<br />

the need for additional CLB logic for counter, comparator, or status flag generation, and<br />

uses just one block RAM resource per FIFO. Both standard and first-word fall-through<br />

(FWFT) modes are supported.<br />

The FIFO can be configured as an 18 Kb or 36 Kb memory. For the 18 Kb mode, the<br />

supported configurations are 4K x 4, 2K x 9, 1K x 18, and 512 x 36. The supported<br />

configurations for the 36 Kb FIFO are 8K x 4, 4K x 9, 2K x 18, 1K x 36, and 512 x 72. The FIFO<br />

ports can now be configured in an asymmetrical fashion.<br />

The block RAM can be configured as a first-in/first-out (FIFO) memory with common or<br />

independent read and write clocks. Port A of the block RAM is used as a FIFO read port, and<br />

Port B is a FIFO write port. Data is read from the FIFO on the rising edge of the read clock<br />

and written to the FIFO on the rising edge of the write clock.<br />

Independent-Clock/Dual-Clock FIFO<br />

The independent-clock FIFO (also referred to as a dual-clock or sometimes asynchronous<br />

FIFO) is a first-in/first-out queue where the write interface and the read interface exist in<br />

different clock domains. To configure the FIFO as an independent-clock FIFO, the attribute<br />

CLOCK_DOMAINS should be set to INDEPENDENT.<br />

The independent-clock FIFO offers a simple write interface and a simple read interface, both<br />

of which could be free-running clocks with no frequency or phase relationship between the<br />

clocks. As such, it is ideal for situations where:<br />

• WRCLK and RDCLK have different but related frequencies<br />

• WRCLK and RDCLK are out-of-phase with each other<br />

• WRCLK and RDCLK are completely asynchronous (have no relationship)<br />

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

Send Feedback<br />

49<br />

UG573 (v1.2) February 24, 2015

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

Saved successfully!

Ooh no, something went wrong!