module RelayConTop ( input i_sys_clk, input i_rst_n, input i_sclk, input i_mosi, input i_cs, output o_miso, output o_rvalid, input i_rready, input i_wvalid, output [3:0]o_PMU_RC, output o_PMU1_AD5522_Reset, output o_PMU2_AD5522_Reset, output o_PMU3_AD5522_Reset, output o_PMU4_AD5522_Reset, output o_wready, output o_err, output o_con_done ); wire [3:0]PMU_RC ; wire [23:0]r_data ; wire [23:0]w_data ; wire [6:0]reg_addr ; wire cmd_valid; wire reg_busy; wire wr_flag; //1=write,0=read wire bus_err_flag; wire reg_err_flag; wire cpld_err_flag; wire con_exec; wire [23:0]freq1_relay ; wire [23:0]freq2_relay ; wire [23:0]freq3_relay ; wire [23:0]freq4_relay ; //DC Control Reg output wire [23:0]DC_Con1 ; wire [23:0]DC_Con2 ; wire [23:0]DC_Con3 ; wire [23:0]DC_Con4 ; //PMU AD5522 wire [3:0]PMU_AD5522_Reset ; //DPS AD5522 wire con_rvalid; wire con_done; BUS_Con Bus_Con_3( .i_sys_clk(i_sys_clk), .i_rst_n(i_rst_n), .i_sclk(i_sclk), .i_mosi(i_mosi), .i_cs(i_cs), .i_rvalid(con_rvalid), .i_wvalid(i_wvalid), .i_reg_busy(reg_busy), .i_rdata(r_data), .o_cmd_valid(cmd_valid), .o_wr(wr_flag), .o_miso(o_miso), .o_rvalid(o_rvalid), .o_wready(o_wready), .o_data(w_data), .o_addr(reg_addr), .o_err(bus_err_flag) ); Reg_file CPLD_Reg_3( .i_sys_clk(i_sys_clk), .i_rst_n(i_rst_n), .i_wr_req(cmd_valid), .i_wr(wr_flag), .i_addr(reg_addr), .i_wdata(w_data), .i_con_done(con_done), //Controller Exec Done .o_freq1(freq1_relay), //Freq_Slot1 .o_freq2(freq2_relay), //Freq_Slot2 .o_freq3(freq3_relay), //Freq_Slot3 .o_freq4(freq4_relay), //Freq_Slot4 .o_DC1(DC_Con1), .o_DC2(DC_Con2), .o_DC3(DC_Con3), .o_DC4(DC_Con4), .o_rvalid(con_rvalid), .o_rdata(r_data), .o_exec(con_exec), //Exec cmd .o_busy(reg_busy), .o_err(reg_err_flag) ); CPLD_Con CPLD_Con_3( .i_sys_clk(i_sys_clk), .i_rst_n(i_rst_n), .i_con_exec(con_exec), .i_DC_Con1(DC_Con1), .i_DC_Con2(DC_Con2), .i_DC_Con3(DC_Con3), .i_DC_Con4(DC_Con4), .i_freq_relay1(freq1_relay), .i_freq_relay2(freq2_relay), .i_freq_relay3(freq3_relay), .i_freq_relay4(freq4_relay), .o_con_done(con_done), .o_PMU_RC(PMU_RC), .o_err(cpld_err_flag) ); AD5522_Con PMU1_AD5522( .i_sys_clk(i_sys_clk), .i_rst_n(i_rst_n), .o_AD5522_Reset(PMU_AD5522_Reset[0]) ); AD5522_Con PMU2_AD5522( .i_sys_clk(i_sys_clk), .i_rst_n(i_rst_n), .o_AD5522_Reset(PMU_AD5522_Reset[1]) ); AD5522_Con PMU3_AD5522( .i_sys_clk(i_sys_clk), .i_rst_n(i_rst_n), .o_AD5522_Reset(PMU_AD5522_Reset[2]) ); AD5522_Con PMU4_AD5522( .i_sys_clk(i_sys_clk), .i_rst_n(i_rst_n), .o_AD5522_Reset(PMU_AD5522_Reset[3]) ); assign o_con_done = con_done; assign o_PMU_RC = PMU_RC; assign o_err = bus_err_flag || reg_err_flag ||cpld_err_flag; assign o_PMU1_AD5522_Reset = PMU_AD5522_Reset[0]; assign o_PMU2_AD5522_Reset = PMU_AD5522_Reset[1]; assign o_PMU3_AD5522_Reset = PMU_AD5522_Reset[2]; assign o_PMU4_AD5522_Reset = PMU_AD5522_Reset[3]; endmodule