Module cdc_fifo_2phase

A clock domain crossing FIFO, using 2-phase hand shakes.

This FIFO has its push and pop ports in two separate clock domains. Its size can only be powers of two, which is why its depth is given as 2**LOG_DEPTH. LOG_DEPTH must be at least 1.

CONSTRAINT: See the constraints for cdc_2phase. An additional maximum delay path needs to be specified from fifo_data_q to dst_data_o.

Parameters

T

The data type of the payload transported by the FIFO.

LOG_DEPTH

The FIFO's depth given as 2**LOG_DEPTH.

PTR_WIDTH

PTR_FULL

PTR_EMPTY

Ports

src_rst_ni

src_clk_i

src_data_i

src_valid_i

src_ready_o

dst_rst_ni

dst_clk_i

dst_data_o

dst_valid_o

dst_ready_i

Types

pointer_t
index_t

Signals

fifo_widx: index_t

fifo_ridx: index_t

fifo_wdata: T

fifo_rdata: T

fifo_data_q: T

src_wptr_q: pointer_t

dst_wptr: pointer_t

src_rptr: pointer_t

dst_rptr_q: pointer_t