Files

798 lines
28 KiB
Verilog

`timescale 1 ns / 1 ps
module c64pro_top#
(
parameter VERSION = 32'h20000005 ,
parameter CLK_FREQ = 100 ,
parameter CLK_PERIOD = 10 ,
//----------------------------------------- RHS2116
parameter RSH2116_QTY = 2 ,//4
//----------------------------------------- ADS1299
parameter ADS1299_QTY = 4 ,
parameter ADS1299_SPI_QTY = 4
)
(
//--------------------------------------------- PS: DDR
inout [14:0] DDR_addr ,
inout [ 2:0] DDR_ba ,
inout DDR_cas_n ,
inout DDR_ck_n ,
inout DDR_ck_p ,
inout DDR_cke ,
inout DDR_cs_n ,
inout [ 3:0] DDR_dm ,
inout [31:0] DDR_dq ,
inout [ 3:0] DDR_dqs_n ,
inout [ 3:0] DDR_dqs_p ,
inout DDR_odt ,
inout DDR_ras_n ,
inout DDR_reset_n ,
inout DDR_we_n ,
inout FIXED_IO_ddr_vrn ,
inout FIXED_IO_ddr_vrp ,
inout [53:0] FIXED_IO_mio ,
inout FIXED_IO_ps_clk ,
inout FIXED_IO_ps_porb ,
inout FIXED_IO_ps_srstb ,
//--------------------------------------------- Power Management
// inout gauge_scl ,
// inout gauge_sda ,
// input gauge_indicate ,
// output power_on_rsh2116_a , //analog
// output power_on_rsh2116_d , //digtal
// output power_on_ads1299 ,
// output power_on_z ,
// output power_sw_z ,
//--------------------------------------------- impl measure
// inout z_scl ,
// inout z_sda ,
//--------------------------------------------- Display LED
output led_state ,
// output led_charge ,
output led_rsv ,
output led_usb ,
output led_stim ,
//--------------------------------------------- RSH2116
// output [RSH2116_QTY-1:0] rsh2116_enable ,
// output [RSH2116_QTY-1:0] rsh2116_spi_cs ,
// output [RSH2116_QTY-1:0] rsh2116_spi_sclk ,
// output [RSH2116_QTY-1:0] rsh2116_spi_mosi ,
// input [RSH2116_QTY-1:0] rsh2116_spi_miso ,
//--------------------------------------------- ADS1299 for EEG
output [ADS1299_QTY-1:0] eeg_ads1299_spi_cs ,
output [ 2-1:0] eeg_ads1299_spi_sclk ,
output [ 2-1:0] eeg_ads1299_spi_mosi ,
input [ 2-1:0] eeg_ads1299_spi_miso ,
input [ 2-1:0] eeg_ads1299_drdy_n ,
output [ 2-1:0] eeg_ads1299_start ,
//--------------------------------------------- ADS1299 for EMG
output emg_ads1299_spi_cs ,
output emg_ads1299_spi_sclk ,
output emg_ads1299_spi_mosi ,
input emg_ads1299_spi_miso ,
input emg_ads1299_drdy_n ,
output emg_ads1299_start ,
output emg_ads1299_reset_n ,
// output emg_ads1299_pwdn_n ,
//--------------------------------------------- AD7689
inout ad7689_cnv ,
inout ad7689_spi_sclk ,
inout ad7689_spi_mosi ,
inout ad7689_spi_miso ,
//--------------------------------------------- ADS1258_1
// inout ads1258_spi_cs1 ,
// inout ads1258_spi_sclk1 ,
// inout ads1258_spi_mosi1 ,
// inout ads1258_spi_miso1 ,
// inout ads1258_drdy_n1 ,
// inout ads1258_start1 ,
//--------------------------------------------- ADS1258_2
// inout ads1258_spi_cs2 ,
// inout ads1258_spi_sclk2 ,
// inout ads1258_spi_mosi2 ,
// inout ads1258_spi_miso2 ,
// inout ads1258_drdy_n2 ,
// inout ads1258_start2 ,
//--------------------------------------------- ADG1414 for MCB,really ADGS5414
// output adg1414_spi_sync ,
// output adg1414_spi_sclk ,
// output adg1414_spi_mosi ,
// input adg1414_spi_miso ,
//--------------------------------------------- ADG1414-2 for STIM,really ADGS5414
// (*mark_debug="true"*)output adg1414_spi_sync2 ,
// (*mark_debug="true"*)output adg1414_spi_sclk2 ,
// (*mark_debug="true"*)output adg1414_spi_mosi2 ,
// (*mark_debug="true"*)input adg1414_spi_miso2 ,
//--------------------------------------------- DAC
// output dac1_cs_n ,
// output dac1_sclk ,
// output dac1_sdi ,
// output dac2_cs_n ,
// output dac2_sclk ,
// output dac2_sdi ,
//--------------------------------------------- ZCHECK
inout [3:0] chann_sel ,
inout [1:0] chann_en ,
inout rst_ad5941 ,
inout z_io ,
inout zcheck_spi_cs ,
inout zcheck_spi_sclk ,
inout zcheck_spi_mosi ,
inout zcheck_spi_miso ,
inout [3:0] elec_mux_in ,
//--------------------------------------------- STIM
inout stim_spi_cs ,
inout stim_spi_sclk ,
inout stim_spi_mosi ,
inout stim_spi_miso ,
inout [2:0] gpio ,
output reg stim_clk400k ,
//--------------------------------------------- MEMS
// output accel_spi_cs ,
// output accel_spi_sclk ,
// output accel_spi_mosi ,
// inout accel_spi_miso ,
// input accel_int0 ,
// input accel_int1 ,
//--------------------------------------------- Trigger
// input [ 3-1:0] trigger_i ,
// output wire [ 1-1:0] trigger_o ,
//--------------------------------------------- usb plug check
// input usb_power_check ,
//--------------------------------------------- For developer
// output [ 2-1:0] led_pl ,
// output s_pwr_en1 ,
// (*mark_debug="true"*)output dv33_m ,
// (*mark_debug="true"*)output sw_gnd ,
output rec_pwr_en ,
output stim_pwr_en ,
// output vdd33_pwr_on ,
// output s_pwr_en2 ,
// output ch2_stim_en ,
// output dv33_pwr_on ,
// output pwr_on_brd ,
(*mark_debug="true"*)output mux_pwr_en ,
output pudc ,
output ref_sw_en ,
output ref_sw
);
//*****************************************************************************
// Parameter definition
//*****************************************************************************
//*****************************************************************************
// Internal register and wire declarations
//*****************************************************************************
wire clk ;
wire rst_n ;
wire [13-1:0] bram_stim_addr ;
wire bram_stim_clk ;
wire [32-1:0] bram_stim_din ;
wire [32-1:0] bram_stim_dout ;
wire bram_stim_en ;
wire bram_stim_rst ;
wire [ 4-1:0] bram_stim_we ;
wire [13-1:0] bram_eeg_addr ;
wire bram_eeg_clk ;
wire [32-1:0] bram_eeg_din ;
wire [32-1:0] bram_eeg_dout ;
wire bram_eeg_en ;
wire bram_eeg_rst ;
wire [ 4-1:0] bram_eeg_we ;
wire [13-1:0] bram_emg_addr ;
wire bram_emg_clk ;
wire [32-1:0] bram_emg_din ;
wire [32-1:0] bram_emg_dout ;
wire bram_emg_en ;
wire bram_emg_rst ;
wire [ 4-1:0] bram_emg_we ;
wire [13-1:0] bram_cur_addr ;
wire bram_cur_clk ;
wire [32-1:0] bram_cur_din ;
wire [32-1:0] bram_cur_dout ;
wire bram_cur_en ;
wire bram_cur_rst ;
wire [ 4-1:0] bram_cur_we ;
wire [13-1:0] bram_accel_addr ;
wire bram_accel_clk ;
wire [32-1:0] bram_accel_din ;
wire [32-1:0] bram_accel_dout ;
wire bram_accel_en ;
wire bram_accel_rst ;
wire [ 4-1:0] bram_accel_we ;
wire [13-1:0] bram_msg_addr ;
wire bram_msg_clk ;
wire [32-1:0] bram_msg_din ;
wire [32-1:0] bram_msg_dout ;
wire bram_msg_en ;
wire bram_msg_rst ;
wire [ 4-1:0] bram_msg_we ;
wire [13-1:0] bram_msg_emg_addr ;
wire bram_msg_emg_clk ;
wire [32-1:0] bram_msg_emg_din ;
wire [32-1:0] bram_msg_emg_dout ;
wire bram_msg_emg_en ;
wire bram_msg_emg_rst ;
wire [ 4-1:0] bram_msg_emg_we ;
wire [13-1:0] bram_imp_addr ;
wire bram_imp_clk ;
wire [32-1:0] bram_imp_din ;
wire [32-1:0] bram_imp_dout ;
wire bram_imp_en ;
wire bram_imp_rst ;
wire [ 4-1:0] bram_imp_we ;
wire stim_int ;
wire eeg_int ;
wire emg_int ;
wire accel_int ;
wire [32-1:0] axis_stim_tdata ;
wire axis_stim_tlast ;
wire axis_stim_tready ;
wire axis_stim_tvalid ;
wire axis_record_tfull ;
wire [ 8-1:0] axis_record_tdata ;
wire [ 1-1:0] axis_record_tkeep ;
wire axis_record_tlast ;
wire axis_record_tready ;
wire axis_record_tvalid ;
// wire [ 8-1:0] gpio0_0_tri_i ;
wire [32-1:0] gpio0_1_tri_o ;
wire [ 4-1:0] debug_sig ;
wire [ADS1299_QTY-1:0] eeg_spi_cs ;
wire [ 4-1:0] eeg_spi_sclk ;
wire [ 4-1:0] eeg_spi_mosi ;
wire [ 4-1:0] eeg_spi_miso ;
// wire trigger_reset ;
// wire [32-1:0] trigger_in ;
// wire [32-1:0] trigger_out ;
wire [ 3-1:0] led_cmd_wifi ;
reg trigger_o_tmp ;
wire [31:0] axi_i_out ;
wire axi_i_wr ;
wire axi_i_tlast ;
wire [32-1:0] axis_eeg24_tdata ;
wire axis_eeg24_tlast ;
wire axis_eeg24_tready ;
wire axis_eeg24_tvalid ;
reg [7:0] stim_clk400kcnt ;
// wire stim_clkout ;
// wire clk_8m ;
//assign trigger_o=//trigger_o_tmp|trigger_i[1];
// assign ads1258_start1 = 1'b1 ;
// assign ads1258_start2 = 1'b1 ;
//assign s_pwr_en1 = 1'b1 ;
//assign sw_gnd = 1'b1 ;
//assign rec_pwr_en = 1'b1 ;
//*****************************************************************************
// Instantiation
//*****************************************************************************
design_a9_1_wrapper u_ps_a9_1
(
.clk ( clk ),
.rst_n ( rst_n ),
.DDR_addr ( DDR_addr ),
.DDR_ba ( DDR_ba ),
.DDR_cas_n ( DDR_cas_n ),
.DDR_ck_n ( DDR_ck_n ),
.DDR_ck_p ( DDR_ck_p ),
.DDR_cke ( DDR_cke ),
.DDR_cs_n ( DDR_cs_n ),
.DDR_dm ( DDR_dm ),
.DDR_dq ( DDR_dq ),
.DDR_dqs_n ( DDR_dqs_n ),
.DDR_dqs_p ( DDR_dqs_p ),
.DDR_odt ( DDR_odt ),
.DDR_ras_n ( DDR_ras_n ),
.DDR_reset_n ( DDR_reset_n ),
.DDR_we_n ( DDR_we_n ),
.FIXED_IO_ddr_vrn ( FIXED_IO_ddr_vrn ),
.FIXED_IO_ddr_vrp ( FIXED_IO_ddr_vrp ),
.FIXED_IO_mio ( FIXED_IO_mio ),
.FIXED_IO_ps_clk ( FIXED_IO_ps_clk ),
.FIXED_IO_ps_porb ( FIXED_IO_ps_porb ),
.FIXED_IO_ps_srstb ( FIXED_IO_ps_srstb ),
.int0 ( stim_int ),
.int1 ( eeg_int ),
.int2 ( emg_int ),
.int3 ( accel_int ),
.bram_stim_addr ( bram_stim_addr ),
.bram_stim_clk ( bram_stim_clk ),
.bram_stim_din ( bram_stim_din ),
.bram_stim_dout ( bram_stim_dout ),
.bram_stim_en ( bram_stim_en ),
.bram_stim_rst ( bram_stim_rst ),
.bram_stim_we ( bram_stim_we ),
.bram_eeg_addr ( bram_eeg_addr ),
.bram_eeg_clk ( bram_eeg_clk ),
.bram_eeg_din ( bram_eeg_din ),
.bram_eeg_dout ( bram_eeg_dout ),
.bram_eeg_en ( bram_eeg_en ),
.bram_eeg_rst ( bram_eeg_rst ),
.bram_eeg_we ( bram_eeg_we ),
.bram_emg_addr ( bram_emg_addr ),
.bram_emg_clk ( bram_emg_clk ),
.bram_emg_din ( bram_emg_din ),
.bram_emg_dout ( bram_emg_dout ),
.bram_emg_en ( bram_emg_en ),
.bram_emg_rst ( bram_emg_rst ),
.bram_emg_we ( bram_emg_we ),
.bram_mems_addr ( bram_accel_addr ),
.bram_mems_clk ( bram_accel_clk ),
.bram_mems_din ( bram_accel_din ),
.bram_mems_dout ( bram_accel_dout ),
.bram_mems_en ( bram_accel_en ),
.bram_mems_rst ( bram_accel_rst ),
.bram_mems_we ( bram_accel_we ),
.bram_msg_addr ( bram_msg_addr ),
.bram_msg_clk ( bram_msg_clk ),
.bram_msg_din ( bram_msg_din ),
.bram_msg_dout ( bram_msg_dout ),
.bram_msg_en ( bram_msg_en ),
.bram_msg_rst ( bram_msg_rst ),
.bram_msg_we ( bram_msg_we ),
.bram_msg_emg_addr ( bram_msg_emg_addr ),
.bram_msg_emg_clk ( bram_msg_emg_clk ),
.bram_msg_emg_din ( bram_msg_emg_din ),
.bram_msg_emg_dout ( bram_msg_emg_dout ),
.bram_msg_emg_en ( bram_msg_emg_en ),
.bram_msg_emg_rst ( bram_msg_emg_rst ),
.bram_msg_emg_we ( bram_msg_emg_we ),
.bram_cur_addr ( bram_cur_addr ),
.bram_cur_clk ( bram_cur_clk ),
.bram_cur_din ( bram_cur_din ),
.bram_cur_dout ( bram_cur_dout ),
.bram_cur_en ( bram_cur_en ),
.bram_cur_rst ( bram_cur_rst ),
.bram_cur_we ( bram_cur_we ),
.bram_imp_addr ( bram_imp_addr ),
.bram_imp_clk ( bram_imp_clk ),
.bram_imp_din ( bram_imp_din ),
.bram_imp_dout ( bram_imp_dout ),
.bram_imp_en ( bram_imp_en ),
.bram_imp_rst ( bram_imp_rst ),
.bram_imp_we ( bram_imp_we ),
.m_axis_stim_tdata ( axis_stim_tdata ),
.m_axis_stim_tlast ( axis_stim_tlast ),
.m_axis_stim_tready ( axis_stim_tready ),
.m_axis_stim_tvalid ( axis_stim_tvalid ),
.s_axis_record_tfull ( axis_record_tfull ),
.s_axis_record_tdata ( axis_record_tdata ),
.s_axis_record_tkeep ( axis_record_tkeep ),
.s_axis_record_tlast ( axis_record_tlast ),
.s_axis_record_tready ( axis_record_tready ),
.s_axis_record_tvalid ( axis_record_tvalid ),
.s_axis_record_tfull1 ( ),
.s_axis_record1_tdata (axis_eeg24_tdata[31:0] ),
.s_axis_record1_tkeep ( 4'hf ),
.s_axis_record1_tlast (axis_eeg24_tlast ),
.s_axis_record1_tready (axis_eeg24_tready ),
.s_axis_record1_tvalid (axis_eeg24_tvalid ),
.s_axis_record_tfull2 ( ),
.s_axis_record2_tdata ( axi_i_out[31:0] ),
.s_axis_record2_tkeep ( 4'hf ),
.s_axis_record2_tlast ( axi_i_tlast ),
.s_axis_record2_tready ( ),
.s_axis_record2_tvalid ( axi_i_wr ),
.elec_mux_in_tri_io (elec_mux_in[3:0] ),
.CHANN_EN_tri_io (chann_en[1:0] ),
.CHANN_SEL_tri_io (chann_sel[3:0] ),
.Z_IO_tri_io (z_io ),
.gpio0_tri_io (gpio[2:0] ),
// .ads1258_spi1_io0_io (ads1258_spi_mosi1),
// .ads1258_spi1_io1_io (ads1258_spi_miso1),
// .ads1258_spi1_sck_io (ads1258_spi_sclk1),
// .ads1258_spi1_ss_io (ads1258_spi_cs1 ),
// .ads1258_spi2_io0_io (ads1258_spi_mosi2),
// .ads1258_spi2_io1_io (ads1258_spi_miso2),
// .ads1258_spi2_sck_io (ads1258_spi_sclk2),
// .ads1258_spi2_ss_io (ads1258_spi_cs2 ),
.stim_spi_io0_io (stim_spi_mosi ),
.stim_spi_io1_io (stim_spi_miso ),
.stim_spi_sck_io (stim_spi_sclk ),
.stim_spi_ss_io (stim_spi_cs ),
.zcheck_spi_io0_io (zcheck_spi_mosi ),
.zcheck_spi_io1_io (zcheck_spi_miso ),
.zcheck_spi_sck_io (zcheck_spi_sclk ),
.zcheck_spi_ss_io (zcheck_spi_cs ),
.cur_spi_io0_io (ad7689_spi_mosi ),
.cur_spi_io1_io (ad7689_spi_miso ),
.cur_spi_sck_io (ad7689_spi_sclk ),
.cur_spi_ss_io (ad7689_cnv ),
.RST_AD5941_tri_io (rst_ad5941 ),
.gpio0_0_tri_i ( ),//gpio0_0_tri_i
.gpio0_1_tri_o (gpio0_1_tri_o )
// .ADS1258_DRDY_tri_io (ads1258_drdy_n1 )//{ads1258_drdy_n2,
// //gauge
// .iic0_scl_io ( ),//gauge_scl
// .iic0_sda_io ( ),//gauge_sda
// //Z
// .iic1_scl_io ( ),//z_scl
// .iic1_sda_io ( )//z_sda
);
pl_top#
(
.VERSION ( VERSION ),
.CLK_FREQ ( CLK_FREQ ),
.CLK_PERIOD ( CLK_PERIOD ),
.RSH2116_QTY ( RSH2116_QTY ),
.ADS1299_QTY ( ADS1299_QTY ),
.ADS1299_SPI_QTY ( ADS1299_SPI_QTY )
)
u_pl_top
(
.clk ( clk ),
.rst_n ( rst_n ),
.bram_stim_addr ( bram_stim_addr ),
.bram_stim_clk ( bram_stim_clk ),
.bram_stim_din ( bram_stim_din ),
.bram_stim_dout ( bram_stim_dout ),
.bram_stim_en ( bram_stim_en ),
.bram_stim_rst ( bram_stim_rst ),
.bram_stim_we ( bram_stim_we ),
.bram_eeg_addr ( bram_eeg_addr ),
.bram_eeg_clk ( bram_eeg_clk ),
.bram_eeg_din ( bram_eeg_din ),
.bram_eeg_dout ( bram_eeg_dout ),
.bram_eeg_en ( bram_eeg_en ),
.bram_eeg_rst ( bram_eeg_rst ),
.bram_eeg_we ( bram_eeg_we ),
.bram_emg_addr ( bram_emg_addr ),
.bram_emg_clk ( bram_emg_clk ),
.bram_emg_din ( bram_emg_din ),
.bram_emg_dout ( bram_emg_dout ),
.bram_emg_en ( bram_emg_en ),
.bram_emg_rst ( bram_emg_rst ),
.bram_emg_we ( bram_emg_we ),
.bram_accel_addr ( bram_accel_addr ),
.bram_accel_clk ( bram_accel_clk ),
.bram_accel_din ( bram_accel_din ),
.bram_accel_dout ( bram_accel_dout ),
.bram_accel_en ( bram_accel_en ),
.bram_accel_rst ( bram_accel_rst ),
.bram_accel_we ( bram_accel_we ),
.bram_msg_addr ( bram_msg_addr ),
.bram_msg_clk ( bram_msg_clk ),
.bram_msg_din ( bram_msg_din ),
.bram_msg_dout ( bram_msg_dout ),
.bram_msg_en ( bram_msg_en ),
.bram_msg_rst ( bram_msg_rst ),
.bram_msg_we ( bram_msg_we ),
.bram_msg_emg_addr ( bram_msg_emg_addr ),
.bram_msg_emg_clk ( bram_msg_emg_clk ),
.bram_msg_emg_din ( bram_msg_emg_din ),
.bram_msg_emg_dout ( bram_msg_emg_dout ),
.bram_msg_emg_en ( bram_msg_emg_en ),
.bram_msg_emg_rst ( bram_msg_emg_rst ),
.bram_msg_emg_we ( bram_msg_emg_we ),
.bram_cur_addr ( bram_cur_addr ),
.bram_cur_clk ( bram_cur_clk ),
.bram_cur_din ( bram_cur_din ),
.bram_cur_dout ( bram_cur_dout ),
.bram_cur_en ( bram_cur_en ),
.bram_cur_rst ( bram_cur_rst ),
.bram_cur_we ( bram_cur_we ),
.bram_imp_addr ( bram_imp_addr ),
.bram_imp_clk ( bram_imp_clk ),
.bram_imp_din ( bram_imp_din ),
.bram_imp_dout ( bram_imp_dout ),
.bram_imp_en ( bram_imp_en ),
.bram_imp_rst ( bram_imp_rst ),
.bram_imp_we ( bram_imp_we ),
.stim_int ( stim_int ),
.eeg_int ( eeg_int ),
.emg_int ( emg_int ),
.accel_int ( accel_int ),
//------------------------------------------ FIFO: stim input and record output
.m_axis_stim_tdata ( axis_stim_tdata ),
.m_axis_stim_tlast ( axis_stim_tlast ),
.m_axis_stim_tready ( axis_stim_tready ),
.m_axis_stim_tvalid ( axis_stim_tvalid ),
.m_axis_record_tfull ( axis_record_tfull ),
.m_axis_record_tdata ( axis_record_tdata ),
.m_axis_record_tkeep ( axis_record_tkeep ),
.m_axis_record_tlast ( axis_record_tlast ),
.m_axis_record_tready ( axis_record_tready ),
.m_axis_record_tvalid ( axis_record_tvalid ),
.axis_emg_tdata ( axis_eeg24_tdata ),
.axis_emg_tlast ( axis_eeg24_tlast ),
.axis_emg_tready ( axis_eeg24_tready ),
.axis_emg_tvalid ( axis_eeg24_tvalid ),
//------------------------------------------ device: RHS2116
///* .rsh2116_enable ( ),
// .rsh2116_spi_cs ( rsh2116_spi_cs ),
// .rsh2116_spi_sclk ( rsh2116_spi_sclk ),
// .rsh2116_spi_mosi ( rsh2116_spi_mosi ),
// .rsh2116_spi_miso ( rsh2116_spi_miso ),*/
//------------------------------------------ device: ads1299 eeg
.eeg_ads1299_spi_cs ( eeg_spi_cs ),
.eeg_ads1299_spi_sclk ( eeg_spi_sclk ),
.eeg_ads1299_spi_mosi ( eeg_spi_mosi ),
.eeg_ads1299_spi_miso ( eeg_spi_miso ),
.eeg_ads1299_drdy_n ( eeg_ads1299_drdy_n ),
.eeg_ads1299_start ( eeg_ads1299_start ),
//------------------------------------------ device: ads1299 emg
.emg_ads1299_spi_cs ( emg_ads1299_spi_cs ),
.emg_ads1299_spi_sclk ( emg_ads1299_spi_sclk ),
.emg_ads1299_spi_mosi ( emg_ads1299_spi_mosi ),
.emg_ads1299_spi_miso ( emg_ads1299_spi_miso ),
.emg_ads1299_drdy_n ( emg_ads1299_drdy_n ),
.emg_ads1299_start ( emg_ads1299_start ),
.emg_ads1299_reset_n ( emg_ads1299_reset_n ),
.emg_ads1299_pwdn_n ( emg_ads1299_pwdn_n ),
//------------------------------------------ AD7689
.ad7689_cnv ( ),//ad7689_cnv
.ad7689_spi_sclk ( ),//ad7689_spi_sclk
.ad7689_spi_mosi ( ),//ad7689_spi_mosi
.ad7689_spi_miso ( 0 ),//ad7689_spi_miso
//--------------------------------------------- AXI
.axi_i_out ( axi_i_out[31:0] ),
.axi_i_wr ( axi_i_wr ),
.axi_i_tlast ( axi_i_tlast ),
//------------------------------------------ DAC
// .dac1_cs_n ( dac1_cs_n ),
// .dac1_sclk ( dac1_sclk ),
// .dac1_sdi ( dac1_sdi ),
// .dac2_cs_n ( dac2_cs_n ),
// .dac2_sclk ( dac2_sclk ),
// .dac2_sdi ( dac2_sdi ),
//------------------------------------------ device: MEMS
// .accel_spi_cs ( ),//accel_spi_cs
// .accel_spi_sclk ( ),//accel_spi_sclk
// .accel_spi_mosi ( ),//accel_spi_mosi
// .accel_spi_miso ( 1'b0 ),//accel_spi_miso
// .accel_int0 ( ),//accel_int0
// .accel_int1 ( ),//accel_int1
//------------------------------------------ ADG1414 for MCB,really AGGS5414
// .adg1414_spi_sync ( adg1414_spi_sync ),
// .adg1414_spi_sclk ( adg1414_spi_sclk ),
// .adg1414_spi_mosi ( adg1414_spi_mosi ),
// .adg1414_spi_miso ( adg1414_spi_miso ),
//------------------------------------------ ADG1414-2 for STIM,really AGGS5414
// .adg1414_spi_sync2 ( adg1414_spi_sync2 ),
// .adg1414_spi_sclk2 ( adg1414_spi_sclk2 ),
// .adg1414_spi_mosi2 ( adg1414_spi_mosi2 ),
// .adg1414_spi_miso2 ( adg1414_spi_miso2 ),
//------------------------------------------ Trigger
// .trigger_reset ( trigger_reset ),
// .trigger_in ( trigger_in ),
// .trigger_out ( trigger_out ),
//------------------------------------------ Debug
.debug_sig ( debug_sig )
);
led_ctrl#
(
.CLK_PERIOD ( CLK_PERIOD )
)
u_led_wifi
(
.clk ( clk ),
.rst_n ( rst_n ),
.cmd ( led_cmd_wifi ),
.led ( led_wifi )
);
//*****************************************************************************
// always @ ( posedge clk or negedge rst_n ) begin
// if( !rst_n )
// trigger_o_tmp <= 1'b0;
// else if ( trigger_out==32'h000003E8 )
// trigger_o_tmp <= 1'b1;
// else if
//( trigger_out==32'h000003E9 )
// trigger_o_tmp <= 1'b0;
// end
always @ ( posedge clk or negedge rst_n ) begin
if( !rst_n )
stim_clk400kcnt[7:0] <= 8'b0;
else if ( stim_clk400kcnt[7:0]>=8'd249 )
stim_clk400kcnt[7:0] <= 8'b0;
else
stim_clk400kcnt[7:0] <= stim_clk400kcnt[7:0]+1'b1;
end
always @ ( posedge clk or negedge rst_n ) begin
if( !rst_n )
stim_clk400k <= 1'b0;
else if ( stim_clk400kcnt[7:0]>=8'd125 )
stim_clk400k <= 1'b1;
else
stim_clk400k <= 1'b0;
end
// clk_wiz_0 u_clk_wiz_0(
// .reset (~rst_n ),
// .clk_in1 (clk ),
// .clk_out1 (clk_8m ),
// .locked ( )
// );
//*****************************************************************************
// Wire assignment
//*****************************************************************************
//gpio0_0: input with interrupt
//assign gpio0_0_tri_i[0] = gauge_indicate;
// assign gpio0_0_tri_i[1] = accel_int0;
// assign gpio0_0_tri_i[2] = accel_int1;
// assign gpio0_0_tri_i[3] = usb_power_check;
// assign gpio0_0_tri_i[4] = 1'b0;
// assign gpio0_0_tri_i[5] = 1'b0;
// assign gpio0_0_tri_i[6] = 1'b0;
// assign gpio0_0_tri_i[7] = 1'b0;
//gpio0_1: output
//assign power_on_rsh2116_a = gpio0_1_tri_o[ 0];
//assign power_on_rsh2116_d = gpio0_1_tri_o[ 1];
// assign rsh2116_enable[0] = gpio0_1_tri_o[ 0];
// assign rsh2116_enable[1] = gpio0_1_tri_o[ 1];
//assign power_on_ads1299 = gpio0_1_tri_o[ 2];
assign led_rsv = gpio0_1_tri_o[ 0];
assign pudc = gpio0_1_tri_o[ 1];
assign rec_pwr_en = gpio0_1_tri_o[ 2];
assign led_state = gpio0_1_tri_o[ 3];
assign led_stim = gpio0_1_tri_o[ 4];
assign led_usb = gpio0_1_tri_o[ 5];
assign stim_pwr_en = gpio0_1_tri_o[ 6];
assign mux_pwr_en = gpio0_1_tri_o[ 7];
assign ref_sw_en = gpio0_1_tri_o[ 8];
assign ref_sw = gpio0_1_tri_o[ 9];
//assign power_on_z = gpio0_1_tri_o[ 9];
// assign s_pwr_en1 = gpio0_1_tri_o[10];
// assign stim_pwr_en = gpio0_1_tri_o[11];
// assign ads1258_start1 = gpio0_1_tri_o[12];
//// assign ads1258_start2 = gpio0_1_tri_o[13];//2025.12.24 delete
// assign vdd33_pwr_on = gpio0_1_tri_o[13];
// assign s_pwr_en2 = gpio0_1_tri_o[14];
// assign ch2_stim_en = gpio0_1_tri_o[15];
// assign mux_pwr_en = gpio0_1_tri_o[16];
//// assign dv33_pwr_on = gpio0_1_tri_o[16];
// assign pwr_on_brd = gpio0_1_tri_o[17];
// assign dv33_m = gpio0_1_tri_o[18];
// assign trigger_o = gpio0_1_tri_o[19];
//assign power_sw_z = gpio0_1_tri_o[10];
// assign trigger_in = {29'd0, trigger_i};
// assign trigger_o = (trigger_out==32'h000003E8)? 1'b1:((trigger_out==32'h000003E9)? 1'b1:1'b0);
// assign led_pl[1] = 1'b0;
// assign led_pl[0] = 1'b0;
// assign led_pl[1] = debug_sig[0]; //r75
// assign led_pl[0] = debug_sig[1]; //r76
// assign led_state = debug_sig[2];
// assign led_stim = debug_sig[3];
assign eeg_ads1299_spi_cs[0] = eeg_spi_cs[0];
assign eeg_ads1299_spi_cs[1] = eeg_spi_cs[1];
assign eeg_ads1299_spi_cs[2] = eeg_spi_cs[2];
assign eeg_ads1299_spi_cs[3] = eeg_spi_cs[3];
// assign eeg_ads1299_spi_cs[4] = eeg_spi_cs[4];
// assign eeg_ads1299_spi_cs[5] = eeg_spi_cs[5];
// assign eeg_ads1299_spi_cs[6] = eeg_spi_cs[6];
// assign eeg_ads1299_spi_cs[7] = eeg_spi_cs[7];
assign eeg_ads1299_spi_sclk[0] = eeg_spi_sclk[0];
assign eeg_ads1299_spi_sclk[1] = eeg_spi_sclk[1];
// assign eeg_ads1299_spi_sclk[2] = eeg_spi_sclk[2];
// assign eeg_ads1299_spi_sclk[3] = eeg_spi_sclk[3];
assign eeg_ads1299_spi_mosi[0] = eeg_spi_mosi[0];
assign eeg_ads1299_spi_mosi[1] = eeg_spi_mosi[1];
// assign eeg_ads1299_spi_mosi[2] = eeg_spi_mosi[2];
// assign eeg_ads1299_spi_mosi[3] = eeg_spi_mosi[3];
assign eeg_spi_miso[0] = eeg_ads1299_spi_miso[0];
assign eeg_spi_miso[1] = eeg_ads1299_spi_miso[1];
// assign eeg_spi_miso[2] = eeg_ads1299_spi_miso[2];
// assign eeg_spi_miso[3] = eeg_ads1299_spi_miso[3];
endmodule