Entity: side_ch_m_axis

Diagram

integer MAX_NUM_DMA_SYMBOL integer MAX_BIT_NUM_DMA_SYMBOL integer C_M_AXIS_TDATA_WIDTH wire m_axis_endless_mode wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0] M_AXIS_NUM_DMA_SYMBOL wire m_axis_start_1trans wire [C_M_AXIS_TDATA_WIDTH-1 : 0] data_to_ps wire data_to_ps_valid wire M_AXIS_ACLK wire M_AXIS_ARESETN wire M_AXIS_TREADY wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0] m_axis_data_count wire fulln_to_pl wire M_AXIS_TVALID wire [C_M_AXIS_TDATA_WIDTH-1 : 0] M_AXIS_TDATA wire [(C_M_AXIS_TDATA_WIDTH/8)-1 : 0] M_AXIS_TSTRB wire M_AXIS_TLAST

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 parameter integer START_COUNT_CFG = 0, parameter integer WAIT_COUNT_BITS = 5,
MAX_BIT_NUM_DMA_SYMBOL integer 14
C_M_AXIS_TDATA_WIDTH integer 64

Ports

Port name Direction Type Description
m_axis_endless_mode input wire
M_AXIS_NUM_DMA_SYMBOL input wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0]
m_axis_start_1trans input wire
data_to_ps input wire [C_M_AXIS_TDATA_WIDTH-1 : 0]
data_to_ps_valid input wire
m_axis_data_count output wire [MAX_BIT_NUM_DMA_SYMBOL-1 : 0]
fulln_to_pl output wire
M_AXIS_ACLK input wire
M_AXIS_ARESETN input wire
M_AXIS_TVALID output wire
M_AXIS_TDATA output wire [C_M_AXIS_TDATA_WIDTH-1 : 0]
M_AXIS_TSTRB output wire [(C_M_AXIS_TDATA_WIDTH/8)-1 : 0]
M_AXIS_TLAST output wire
M_AXIS_TREADY input wire

Signals

Name Type Description
mst_exec_state reg [1:0] In this state the
read_pointer reg [bit_num-1:0]
axis_tvalid wire reg [WAIT_COUNT_BITS-1 : 0] count;
axis_tlast wire
axis_tlast_delay reg
tx_en wire
tx_done reg
EMPTY wire
init_txn_ff reg
init_txn_pulse wire
FULL wire

Constants

Name Type Value Description
bit_num integer clogb2(MAX_NUM_DMA_SYMBOL)
IDLE [1:0] 2'b00 This is the initial/idle state
INIT_COUNTER [1:0] 2'b01 This is the initial/idle state
SEND_STREAM [1:0] 2'b10 This is the initial/idle state

Functions

Processes

Type: always

Description
Generate a pulse to initiate AXI transaction.

Type: always

Description
Control state machine implementation

Type: always

Description
Delay the axis_tvalid and axis_tlast signal by one clock cycle to match the latency of M_AXIS_TDATA

Type: always

Instantiations

Description
fifo64_1clk fifo64_1clk_i (
.CLK(M_AXIS_ACLK),
.DATAO(M_AXIS_TDATA),
.DI(data_to_ps),
.EMPTY(EMPTY),
.FULL(FULL),
.RDEN(tx_en),
.RST(!M_AXIS_ARESETN),
.WREN(data_to_ps_valid),
.data_count(m_axis_data_count)
);

State machines

  • Control state machine implementation
state transitions cluster_mst_exec_state mst_exec_state IDLE IDLE IDLE->IDLE not (init_txn_pulse)    INIT_COUNTER INIT_COUNTER IDLE->INIT_COUNTER init_txn_pulse    SEND_STREAM SEND_STREAM INIT_COUNTER->SEND_STREAM SEND_STREAM->IDLE tx_done    SEND_STREAM->SEND_STREAM not (tx_done)