Entity: fifo8_delay64

Diagram

integer DATA_WIDTH integer DELAY_CTL_WIDTH wire clk wire rstn wire [(DELAY_CTL_WIDTH-1):0] delay_ctl wire [(DATA_WIDTH-1):0] data_in wire data_in_valid wire [(DATA_WIDTH-1):0] data_out wire data_out_valid

Description

Xianjun jiao. putaoshu@msn.com; xianjun.jiao@imec.be;

Generics

Generic name Type Value Description
DATA_WIDTH integer 8
DELAY_CTL_WIDTH integer 7

Ports

Port name Direction Type Description
clk input wire main function: after receive data, send ack; after send data, disable tx for a while because need to wait for ack from peer.
rstn input wire
delay_ctl input wire [(DELAY_CTL_WIDTH-1):0]
data_in input wire [(DATA_WIDTH-1):0]
data_in_valid input wire
data_out output wire [(DATA_WIDTH-1):0]
data_out_valid output wire

Signals

Name Type Description
rw_state reg [1:0]
rst_count reg [2:0]
rden_internal reg
wren_internal reg
data_count wire [(DELAY_CTL_WIDTH-1):0]
full wire
empty wire

Constants

Name Type Value Description
IDLE [1:0] 2'b00
WAIT_FILL [1:0] 2'b01
NORMAL_RW [1:0] 2'b10

Processes

Type: always

Instantiations

Description
fifo8_1clk_dep64 fifo8_1clk_dep64_i (
.CLK(clk),
.DATAO(data_out),
.DI(data_in),
.EMPTY(empty),
.FULL(full),
.RDEN(rden_internal),
.RST(~rstn),
.WREN(wren_internal),
.data_count(data_count)
);

State machines

state transitions cluster_rw_state rw_state IDLE IDLE IDLE->rw_state not (rst_count==7)    WAIT_FILL WAIT_FILL IDLE->WAIT_FILL rst_count==7    WAIT_FILL->rw_state not (data_count == delay_ctl)    NORMAL_RW NORMAL_RW WAIT_FILL->NORMAL_RW data_count == delay_ctl    NORMAL_RW->rw_state