// general purpose I/Os, connected to the 10389 boards
gpio393#(
.GPIO_ADDR(GPIO_ADDR),
.GPIO_MASK(GPIO_MASK),
.GPIO_STATUS_REG_ADDR(GPIO_STATUS_REG_ADDR),
.GPIO_DRIVE(GPIO_DRIVE),
.GPIO_IBUF_LOW_PWR(GPIO_IBUF_LOW_PWR),
.GPIO_IOSTANDARD(GPIO_IOSTANDARD),
.GPIO_SLEW(GPIO_SLEW),
.GPIO_SET_PINS(GPIO_SET_PINS),
.GPIO_SET_STATUS(GPIO_SET_STATUS),
.GPIO_N(GPIO_N),
.GPIO_PORTEN(GPIO_PORTEN)
)gpio393_i(
.rst(axi_rst),// input
.mclk(mclk),// input
.cmd_ad(cmd_gpio_ad),// input[7:0]
.cmd_stb(cmd_gpio_stb),// input
.status_ad(status_gpio_ad),// output[7:0]
.status_rq(status_gpio_rq),// output
.status_start(status_gpio_start),// input
.ext_pins(gpio_pins),// inout[9:0]
.io_pins(gpio_rd),// output[9:0]
.da(gpio_camsync),// input[9:0]
.da_en(gpio_camsync_en),// input[9:0]
.db(gpio_db),// input[9:0] Motors in x353
.db_en(gpio_db_en),// input[9:0] Motors in x353
.dc(gpio_logger),// input[9:0]
.dc_en(gpio_logger_en)// input[9:0]
);
/* Instance template for module timing393 */
timing393#(
.RTC_ADDR(RTC_ADDR),
.CAMSYNC_ADDR(CAMSYNC_ADDR),
.RTC_STATUS_REG_ADDR(RTC_STATUS_REG_ADDR),
.RTC_SEC_USEC_ADDR(RTC_SEC_USEC_ADDR),
.RTC_MASK(RTC_MASK),
.CAMSYNC_MASK(CAMSYNC_MASK),
.CAMSYNC_MODE(CAMSYNC_MODE),
.CAMSYNC_TRIG_SRC(CAMSYNC_TRIG_SRC),
.CAMSYNC_TRIG_DST(CAMSYNC_TRIG_DST),
.CAMSYNC_TRIG_PERIOD(CAMSYNC_TRIG_PERIOD),
.CAMSYNC_TRIG_DELAY0(CAMSYNC_TRIG_DELAY0),
.CAMSYNC_TRIG_DELAY1(CAMSYNC_TRIG_DELAY1),
.CAMSYNC_TRIG_DELAY2(CAMSYNC_TRIG_DELAY2),
.CAMSYNC_TRIG_DELAY3(CAMSYNC_TRIG_DELAY3),
.CAMSYNC_SNDEN_BIT(CAMSYNC_SNDEN_BIT),
.CAMSYNC_EXTERNAL_BIT(CAMSYNC_EXTERNAL_BIT),
.CAMSYNC_TRIGGERED_BIT(CAMSYNC_TRIGGERED_BIT),
.CAMSYNC_MASTER_BIT(CAMSYNC_MASTER_BIT),
.CAMSYNC_CHN_EN_BIT(CAMSYNC_CHN_EN_BIT),
.CAMSYNC_PRE_MAGIC(CAMSYNC_PRE_MAGIC),
.CAMSYNC_POST_MAGIC(CAMSYNC_POST_MAGIC),
.RTC_MHZ(RTC_MHZ),
.RTC_BITC_PREDIV(RTC_BITC_PREDIV),
.RTC_SET_USEC(RTC_SET_USEC),
.RTC_SET_SEC(RTC_SET_SEC),
.RTC_SET_CORR(RTC_SET_CORR),
.RTC_SET_STATUS(RTC_SET_STATUS)
)timing393_i(
.rst(axi_rst),// input
.mclk(mclk),// input
.pclk(camsync_clk),// global clock used for external synchronization. 96MHz in x353. Make it independent
.refclk(time_ref),// RTC reference: integer number of microseconds, less than mclk/2. Not a global clock
.cmd_ad(cmd_timing_ad),// input[7:0]
.cmd_stb(cmd_timing_stb),// input
.status_ad(status_timing_ad),// output[7:0]
.status_rq(status_timing_rq),// output
.status_start(status_timing_start),// input
.gpio_in(gpio_rd),// input[9:0]
.gpio_out(gpio_camsync),// output[9:0]
.gpio_out_en(gpio_camsync_en),// output[9:0]
.triggered_mode(trigger_mode),// output
.frsync_chn0(sof_out_mclk[0]),// input
.trig_chn0(trig_in[0]),// output
.frsync_chn1(sof_out_mclk[1]),// input
.trig_chn1(trig_in[1]),// output
.frsync_chn2(sof_out_mclk[2]),// input
.trig_chn2(trig_in[2]),// output
.frsync_chn3(sof_out_mclk[3]),// input
.trig_chn3(trig_in[3]),// output
.ts_stb_chn0(ts_pre_stb[0]),// output
.ts_data_chn0(ts_data[0*8+:8]),// output[7:0]
.ts_stb_chn1(ts_pre_stb[1]),// output
.ts_data_chn1(ts_data[1*8+:8]),// output[7:0]
.ts_stb_chn2(ts_pre_stb[2]),// output
.ts_data_chn2(ts_data[2*8+:8]),// output[7:0]
.ts_stb_chn3(ts_pre_stb[3]),// output
.ts_data_chn3(ts_data[3*8+:8]),// output[7:0]
.lclk(logger_clk),// input global clock, common with the logger (use 100 MHz?)
.ts_logger_snap(logger_snap),// input
.ts_logger_stb(ts_pre_logger_stb),// output
.ts_logger_data(ts_logegr_data)// output[7:0]
);
event_logger#(
.LOGGER_ADDR(LOGGER_ADDR),
.LOGGER_STATUS(LOGGER_STATUS),
.LOGGER_STATUS_REG_ADDR(LOGGER_STATUS_REG_ADDR),
.LOGGER_MASK(LOGGER_MASK),
.LOGGER_STATUS_MASK(LOGGER_STATUS_MASK),
.LOGGER_PAGE_IMU(LOGGER_PAGE_IMU),
.LOGGER_PAGE_GPS(LOGGER_PAGE_GPS),
.LOGGER_PAGE_MSG(LOGGER_PAGE_MSG),
.LOGGER_PERIOD(LOGGER_PERIOD),
.LOGGER_BIT_DURATION(LOGGER_BIT_DURATION),
.LOGGER_BIT_HALF_PERIOD(LOGGER_BIT_HALF_PERIOD),
.LOGGER_CONFIG(LOGGER_CONFIG),
.LOGGER_CONF_IMU(LOGGER_CONF_IMU),
.LOGGER_CONF_IMU_BITS(LOGGER_CONF_IMU_BITS),
.LOGGER_CONF_GPS(LOGGER_CONF_GPS),
.LOGGER_CONF_GPS_BITS(LOGGER_CONF_GPS_BITS),
.LOGGER_CONF_MSG(LOGGER_CONF_MSG),
.LOGGER_CONF_MSG_BITS(LOGGER_CONF_MSG_BITS),
.LOGGER_CONF_SYN(LOGGER_CONF_SYN),
.LOGGER_CONF_SYN_BITS(LOGGER_CONF_SYN_BITS),
.LOGGER_CONF_EN(LOGGER_CONF_EN),
.LOGGER_CONF_EN_BITS(LOGGER_CONF_EN_BITS),
.LOGGER_CONF_DBG(LOGGER_CONF_DBG),
.LOGGER_CONF_DBG_BITS(LOGGER_CONF_DBG_BITS),
.GPIO_N(GPIO_N)
)event_logger_i(
.rst(axi_rst),// input
.mclk(mclk),// input
.xclk(logger_clk),// input
.cmd_ad(cmd_logger_ad),// input[7:0]
.cmd_stb(cmd_logger_stb),// input
.status_ad(status_logger_ad),// output[7:0]
.status_rq(status_logger_rq),// output
.status_start(status_logger_start),// input
.ts_local_snap(logger_snap),// output
.ts_local_stb(ts_pre_logger_stb),// input
.ts_local_data(ts_logegr_data),// input[7:0]
.ext_di(gpio_rd),// input[9:0]
.ext_do(gpio_camsync),// output[9:0]
.ext_en(gpio_camsync_en),// output[9:0]
.ts_stb_chn0(),// input
.ts_data_chn0(),// input[7:0]
.ts_stb_chn1(),// input
.ts_data_chn1(),// input[7:0]
.ts_stb_chn2(),// input
.ts_data_chn2(),// input[7:0]
.ts_stb_chn3(),// input
.ts_data_chn3(),// input[7:0]
.data_out(),// output[15:0]
.data_out_stb(),// output
.debug_state()// output[31:0]
);
/* Instance template for module mult_saxi_wr_chn */
mult_saxi_wr_chn#(
.MULT_SAXI_HALF_BRAM(1),
.MULT_SAXI_BSLOG(4),
.MULT_SAXI_ADV_WR(4),
.MULT_SAXI_ADV_RD(3)
)mult_saxi_wr_chn_i(
.mclk(),// input
.aclk(),// input
.en(),// input
.has_burst(),// input
.valid(),// input
.rq_wr(),// output
.grant_wr(),// input
.wa(),// output[6:0]
.adv_wr_done(),// output reg
.rq_out(),// output reg
.grant_out(),// input
.fifo_half_full(),// input
.ra(),// output[6:0]
.pre_re(),// output
.first_re(),// output reg
.last_re(),// output reg
.wdata_busy()// output reg
);
/* Instance template for module mult_saxi_wr */
mult_saxi_wr#(
.MULT_SAXI_ADDR('h380),
.MULT_SAXI_CNTRL_ADDR('h3a0),
.MULT_SAXI_STATUS_REG('h30),
.MULT_SAXI_HALF_BRAM(1),
.MULT_SAXI_BSLOG0(4),
.MULT_SAXI_BSLOG1(4),
.MULT_SAXI_BSLOG2(4),
.MULT_SAXI_BSLOG3(4),
.MULT_SAXI_MASK('h7f8),
.MULT_SAXI_CNTRL_MASK('h7fe),
.HIST_SAXI_AWCACHE(4'h3),
.MULT_SAXI_ADV_WR(4),
.MULT_SAXI_ADV_RD(3)
)mult_saxi_wr_i(
.rst(),// input
.mclk(),// input
.aclk(),// input
.cmd_ad(),// input[7:0]
.cmd_stb(),// input
.status_ad(),// output[7:0]
.status_rq(),// output
.status_start(),// input
.en_chn0(),// output
.has_burst0(),// input
.read_burst0(),// output
.data_in_chn0(),// input[31:0]
.pre_valid_chn0(),// input
.en_chn1(),// output
.has_burst1(),// input
.read_burst1(),// output
.data_in_chn1(),// input[31:0]
.pre_valid_chn1(),// input
.en_chn2(),// output
.has_burst2(),// input
.read_burst2(),// output
.data_in_chn2(),// input[31:0]
.pre_valid_chn2(),// input
.en_chn3(),// output
.has_burst3(),// input
.read_burst3(),// output
.data_in_chn3(),// input[31:0]
.pre_valid_chn3(),// input
.saxi_awaddr(),// output[31:0]
.saxi_awvalid(),// output
.saxi_awready(),// input
.saxi_awid(),// output[5:0]
.saxi_awlock(),// output[1:0]
.saxi_awcache(),// output[3:0]
.saxi_awprot(),// output[2:0]
.saxi_awlen(),// output[3:0]
.saxi_awsize(),// output[1:0]
.saxi_awburst(),// output[1:0]
.saxi_awqos(),// output[3:0]
.saxi_wdata(),// output[31:0]
.saxi_wvalid(),// output
.saxi_wready(),// input
.saxi_wid(),// output[5:0]
.saxi_wlast(),// output
.saxi_wstrb(),// output[3:0]
.saxi_bvalid(),// input
.saxi_bready(),// output
.saxi_bid(),// input[5:0]
.saxi_bresp()// input[1:0]
);
axibram_write#(
.ADDRESS_BITS(AXI_WR_ADDR_BITS)
)axibram_write_i(//SuppressThisWarning ISExst Output port <bram_wstb> of the instance <axibram_write_i> is unconnected or connected to loadless signal.