`timescale 1ns/1ps module eeg_top_tb(); //***************************************************************************** // Parameter definition //***************************************************************************** localparam T_CLK = 10; //ns localparam SPIS_QTY = 4; localparam CHIPSET_QTY = 8; localparam BRAM_ADDR_TEST_RO = 13'h0000; localparam BRAM_ADDR_TEST_RW = 13'h0004; localparam BRAM_ADDR_EEG_ER = 13'h0040; localparam BRAM_ADDR_EEG_CR = 13'h0044; localparam BRAM_ADDR_EEG_SR = 13'h0048; localparam BRAM_ADDR_EEG_TR = 13'h0100; localparam BRAM_ADDR_EEG_RR = 13'h0200; localparam BRAM_ADDR_EEG_TR_MASK = 13'h1F00; localparam BRAM_ADDR_EEG_RR_MASK = 13'h1F00; //***************************************************************************** // Internal register and wire declarations //***************************************************************************** reg clk ; reg rst_n ; reg [13-1:0] bram_eeg_addr ; reg bram_eeg_clk ; reg [32-1:0] bram_eeg_din ; wire [32-1:0] bram_eeg_dout ; reg bram_eeg_en ; reg bram_eeg_rst ; reg [ 4-1:0] bram_eeg_we ; wire interrupt ; reg [32-1:0] trigger_tdata ; reg trigger_tvalid ; reg [32-1:0] read_data ; wire [32-1:0] axis_record_tdata ; wire axis_record_tlast ; reg axis_record_tready ; wire axis_record_tvalid ; wire [CHIPSET_QTY-1:0] cs_w ; wire [ SPIS_QTY-1:0] sclk_w ; wire [ SPIS_QTY-1:0] mosi_w ; wire [ SPIS_QTY-1:0] miso_w ; wire [ SPIS_QTY-1:0] drdy_w ; wire start_w ; wire [CHIPSET_QTY-1:0] cs ; wire [CHIPSET_QTY-1:0] sclk ; wire [CHIPSET_QTY-1:0] mosi ; wire [CHIPSET_QTY-1:0] miso ; wire [CHIPSET_QTY-1:0] drdy ; wire [CHIPSET_QTY-1:0] start ; integer n; genvar i; //***************************************************************************** // Instantiation //***************************************************************************** eeg_top# ( .CLK_PERIOD ( T_CLK ) ) DUT ( .clk ( clk ), .rst_n ( rst_n ), .bram_addr ( bram_eeg_addr ), .bram_clk ( bram_eeg_clk ), .bram_din ( bram_eeg_din ), .bram_dout ( bram_eeg_dout ), .bram_en ( bram_eeg_en ), .bram_rst ( bram_eeg_rst ), .bram_we ( bram_eeg_we ), .interrupt ( interrupt ), .trigger_tdata ( trigger_tdata ), .trigger_tvalid ( trigger_tvalid ), //------------------------------------------ FIFO: eeg output .axis_record_tdata ( axis_record_tdata ), .axis_record_tlast ( axis_record_tlast ), .axis_record_tready ( axis_record_tready ), .axis_record_tvalid ( axis_record_tvalid ), //------------------------------------------ device spi .cs ( cs_w ), .sclk ( sclk_w ), .mosi ( mosi_w ), .miso ( miso_w ), .drdy ( drdy_w ), .start ( start_w ) ); generate for(i=0; i