You are on page 1of 1

Asynchronous, 8-word, 1wr/1rd FIFO

WR_CLK DOMAIN RD_CLK DOMAIN


8-Word Regfile

wr_data rd_data
WR_DATA RD_DATA

wren rden
WREN

+1 1 wc_wr_ptr rc_rd_ptr 1 +1
WR_ADDR RD_ADDR
0 4 3 3 4 0

wc rc
wc_wr_ptr rc_rd_ptr

wc

empty empty
detect

full full
detect gray gray_wr_ptr gray rc_wr_ptr
code decode
wc rc rc

wc_rd_ptr gray gray_rd_ptr gray


decode code
wc wc rc

Signal Logic:

full <= '1' when (wc_wr_ptr[2:0] = wc_rd_ptr[2:0]) and ((wc_wr_ptr[3] xor wc_rd_ptr[3]) = '1') else '0';

empty <= '1' when (rc_wr_ptr[3:0] = rc_rd_ptr[3:0]) else '0';

overflow <= full and wren; (optional - implement externally)

gated_wren <= (not full) and wren; (optional - implement externally)

async_fifo : afifo-8w

You might also like