Entity: tx_intf_s_axis

Diagram

integer MAX_NUM_DMA_SYMBOL integer MAX_BIT_NUM_DMA_SYMBOL integer C_S_AXIS_TDATA_WIDTH wire [1:0] tx_queue_idx_indication_from_ps wire [1:0] tx_queue_idx wire endless_mode wire ACC_ASK_DATA wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0] S_AXIS_NUM_DMA_SYMBOL_raw wire S_AXIS_ACLK wire S_AXIS_ARESETN wire [C_S_AXIS_TDATA_WIDTH-1 : 0] S_AXIS_TDATA wire [(C_S_AXIS_TDATA_WIDTH/8)-1 : 0] S_AXIS_TSTRB wire S_AXIS_TLAST wire S_AXIS_TVALID wire [C_S_AXIS_TDATA_WIDTH-1 : 0] DATA_TO_ACC wire EMPTYN_TO_ACC wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0] data_count0 wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0] data_count1 wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0] data_count2 wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0] data_count3 wire s_axis_recv_data_from_high wire S_AXIS_TREADY

Description

based on Xilinx module template Xianjun jiao. putaoshu@msn.com; xianjun.jiao@imec.be;

Generics

Generic name Type Value Description
MAX_NUM_DMA_SYMBOL integer 8192
MAX_BIT_NUM_DMA_SYMBOL integer 14
C_S_AXIS_TDATA_WIDTH integer 64

Ports

Port name Direction Type Description
tx_queue_idx_indication_from_ps input wire [1:0]
tx_queue_idx input wire [1:0]
endless_mode input wire
DATA_TO_ACC output wire [C_S_AXIS_TDATA_WIDTH-1 : 0]
EMPTYN_TO_ACC output wire
ACC_ASK_DATA input wire
data_count0 output wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0]
data_count1 output wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0]
data_count2 output wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0]
data_count3 output wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0]
S_AXIS_NUM_DMA_SYMBOL_raw input wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0]
s_axis_recv_data_from_high output wire
S_AXIS_ACLK input wire
S_AXIS_ARESETN input wire
S_AXIS_TREADY output wire
S_AXIS_TDATA input wire [C_S_AXIS_TDATA_WIDTH-1 : 0]
S_AXIS_TSTRB input wire [(C_S_AXIS_TDATA_WIDTH/8)-1 : 0]
S_AXIS_TLAST input wire
S_AXIS_TVALID input wire

Signals

Name Type Description
mst_exec_state reg In this state FIFO is written with the
S_AXIS_NUM_DMA_SYMBOL reg [bit_num-1 : 0]
axis_tready0 wire
axis_tready1 wire
axis_tready2 wire
axis_tready3 wire
fifo_wren0 wire
fifo_wren1 wire
fifo_wren2 wire
fifo_wren3 wire
write_pointer reg [bit_num-1:0]
writes_done reg
EMPTY0 wire
EMPTY1 wire
EMPTY2 wire
EMPTY3 wire
FULL0 wire
FULL1 wire
FULL2 wire
FULL3 wire
DATA_TO_ACC0 wire [C_S_AXIS_TDATA_WIDTH-1 : 0]
DATA_TO_ACC1 wire [C_S_AXIS_TDATA_WIDTH-1 : 0]
DATA_TO_ACC2 wire [C_S_AXIS_TDATA_WIDTH-1 : 0]
DATA_TO_ACC3 wire [C_S_AXIS_TDATA_WIDTH-1 : 0]
ACC_ASK_DATA0 wire
ACC_ASK_DATA1 wire
ACC_ASK_DATA2 wire
ACC_ASK_DATA3 wire

Constants

Name Type Value Description
bit_num integer clogb2(MAX_NUM_DMA_SYMBOL)
IDLE [1:0] 1'b0 This is the initial/idle state
WRITE_FIFO [1:0] 1'b1 This is the initial/idle state

Functions

Processes

Type: always

Type: always

Instantiations

Description
fifo64_1clk_dep4k fifo64_1clk_dep4k_i0 ( //queue0
.CLK(S_AXIS_ACLK),
.DATAO(DATA_TO_ACC0),
.DI(S_AXIS_TDATA),
.EMPTY(EMPTY0),
.FULL(FULL0),
.RDEN(ACC_ASK_DATA0),
.RST(!S_AXIS_ARESETN),
.WREN(fifo_wren0),
.data_count(data_count0)
);

Description
fifo64_1clk_dep4k fifo64_1clk_dep4k_i1 ( //queue1
.CLK(S_AXIS_ACLK),
.DATAO(DATA_TO_ACC1),
.DI(S_AXIS_TDATA),
.EMPTY(EMPTY1),
.FULL(FULL1),
.RDEN(ACC_ASK_DATA1),
.RST(!S_AXIS_ARESETN),
.WREN(fifo_wren1),
.data_count(data_count1)
);

Description
fifo64_1clk fifo64_1clk_dep4k_i2 ( //queue2
.CLK(S_AXIS_ACLK),
.DATAO(DATA_TO_ACC2),
.DI(S_AXIS_TDATA),
.EMPTY(EMPTY2),
.FULL(FULL2),
.RDEN(ACC_ASK_DATA2),
.RST(!S_AXIS_ARESETN),
.WREN(fifo_wren2),
.data_count(data_count2)
);

Description
fifo64_1clk fifo64_1clk_dep4k_i3 ( //queue3
.CLK(S_AXIS_ACLK),
.DATAO(DATA_TO_ACC3),
.DI(S_AXIS_TDATA),
.EMPTY(EMPTY3),
.FULL(FULL3),
.RDEN(ACC_ASK_DATA3),
.RST(!S_AXIS_ARESETN),
.WREN(fifo_wren3),
.data_count(data_count3)
);

State machines

state transitions cluster_mst_exec_state mst_exec_state IDLE IDLE IDLE->IDLE not (S_AXIS_TVALID)    WRITE_FIFO WRITE_FIFO IDLE->WRITE_FIFO S_AXIS_TVALID    WRITE_FIFO->IDLE writes_done    WRITE_FIFO->WRITE_FIFO not (writes_done)