`timescale 1 ns / 1 ps module eeg_upload# ( parameter CLK_PERIOD = 10 , parameter CHIPSET_QTY = 4 , parameter CH_OF_CHIPSET = 16 , parameter TIME_OUT_MS = 5 ) ( input clk , input rst_n , input trans_round , input [32*CHIPSET_QTY-1:0] cnv_res_tdata_array , input [ CHIPSET_QTY-1:0] cnv_res_tlast_array , output [ CHIPSET_QTY-1:0] cnv_res_tready_array , input [ CHIPSET_QTY-1:0] cnv_res_tvalid_array , output reg [31:0] axi_str_rxd_tdata , output reg axi_str_rxd_tlast , input axi_str_rxd_tready , output reg axi_str_rxd_tvalid ); //***************************************************************************** // localparam definition //***************************************************************************** localparam IDLE = 4'd0 ; localparam READY_ST = 4'd1 ; localparam SCAN_ST = 4'd2 ; localparam CLKS = 20 ; localparam TIME_OUT_CLKS = (TIME_OUT_MS*1000000)/CLK_PERIOD; //***************************************************************************** // Internal register and wire declarations //***************************************************************************** reg [ 4-1:0] cstate ; reg [ 4-1:0] nstate ; wire [32-1:0] cnv_res_tdata[0:CHIPSET_QTY-1] ; wire cnv_res_tlast[0:CHIPSET_QTY-1] ; reg cnv_res_tready[0:CHIPSET_QTY-1] ; wire cnv_res_tvalid[0:CHIPSET_QTY-1] ; reg [32-1:0] cnv_res_tdata_r[0:CHIPSET_QTY-1] ; reg cnv_res_tvalid_r[0:CHIPSET_QTY-1] ; reg [ 8-1:0] scan_cnt ; reg round_end ; genvar i; //***************************************************************************** generate for(i=0;i