`timescale 1 ns / 1 ps module trans_distribute# ( parameter CHIPSET_QTY = 4, parameter CMD_CNV = 2'b00, parameter CMD_EXTEND = 2'b01, parameter CMD_WRITE = 2'b10, parameter CMD_READ = 2'b11 ) ( input clk , input rst_n , input trans_round , input [32-1:0] s_axi_rx_tdata , input s_axi_rx_tlast , output s_axi_rx_tready , input s_axi_rx_tvalid , output reg [16-1:0] record_ch_qty , output reg dds_aclken , output reg dds_aresetn , input m_axi_tx_aresetn , output [32*CHIPSET_QTY-1:0] m_axi_tx_tdata_array , output [ 1*CHIPSET_QTY-1:0] m_axi_tx_tlast_array , input [ 1*CHIPSET_QTY-1:0] m_axi_tx_tready_array , output [ 1*CHIPSET_QTY-1:0] m_axi_tx_tvalid_array ); //***************************************************************************** // localparam definition //***************************************************************************** localparam IDLE = 4'h0 ; localparam TX_ST = 4'h1 ; //***************************************************************************** // Internal register and wire declarations //***************************************************************************** reg [ 4-1:0] cstate ; reg [ 4-1:0] nstate ; reg recv ; reg [32-1:0] s_axi_rx_tdata_r ; reg [ 4-1:0] chipset ; reg is_end ; wire [32-1:0] s_axi_tx_tdata ; wire s_axi_tx_tready[0:CHIPSET_QTY-1] ; wire s_axi_tx_tvalid[0:CHIPSET_QTY-1] ; wire [32-1:0] m_axi_tx_tdata[0:CHIPSET_QTY-1] ; wire m_axi_tx_tlast[0:CHIPSET_QTY-1] ; wire m_axi_tx_tready[0:CHIPSET_QTY-1] ; wire m_axi_tx_tvalid[0:CHIPSET_QTY-1] ; genvar i; //***************************************************************************** // Instantiation //***************************************************************************** generate for(i=0;i