|
|
`include "config.v" `timescale 1ns / 1ns module Top ( input sys_clk, input rst_n,
/******************************************************************************* * genlock * *******************************************************************************/ input genlock_in_hsync, input genlock_in_vsync, input genlock_in_fsync, output genlock_state_led,
/******************************************************************************* * GENLOCK_OUTPUT * *******************************************************************************/
output [12:0] genlock_out_dac, output genlock_out_dac_state_led,
/******************************************************************************* * TTL_IN * *******************************************************************************/
input sync_ttl_in1, output sync_ttl_state_led1,
input sync_ttl_in2, output sync_ttl_state_led2,
input sync_ttl_in3, output sync_ttl_state_led3,
input sync_ttl_in4, output sync_ttl_state_led4,
/******************************************************************************* * TTL_OUT * *******************************************************************************/
output sync_ttl_out1, output sync_ttl_out1_state_led,
output sync_ttl_out2, output sync_ttl_out2_state_led,
output sync_ttl_out3, output sync_ttl_out3_state_led,
output sync_ttl_out4, output sync_ttl_out4_state_led,
/******************************************************************************* * TIMECODE_IN * *******************************************************************************/ input timecode_headphone_in, input timecode_headphone_in_state_led, input timecode_bnc_in, input timecode_bnc_in_state_led,
/******************************************************************************* * TIMECODE_OUTPUT * *******************************************************************************/
output timecode_bnc_out, output timecode_bnc_output_select, output timecode_bnc_out_state_led,
output timecode_headphone_out, output timecode_headphone_output_select, output timecode_headphone_out_state_led,
/******************************************************************************* * STM32_IF * *******************************************************************************/ output stm32if_camera_sync_out, output stm32if_timecode_sync_out, output stm32if_start_signal_out, output [3:0] stm32if_timecode_add, output [3:0] stm32if_timecode_data,
//SPI 串行总线1 input wire spi1_cs_pin, input wire spi1_clk_pin, input wire spi1_rx_pin, output wire spi1_tx_pin,
//SPI 串行总线2 input wire spi2_cs_pin, input wire spi2_clk_pin, input wire spi2_rx_pin, output wire spi2_tx_pin,
/******************************************************************************* * debug_signal_output * *******************************************************************************/ output [15:0] debug_signal_output,
/******************************************************************************* * CODE_BOARD * *******************************************************************************/ output wire core_board_debug_led );
localparam HARDWARE_TEST_MODE = 1;
SPLL spll ( .clkin1(sys_clk), // input .pll_lock(pll_lock), // output .clkout0(sys_clk_25m), // output .clkout1(sys_clk_10m), // output .clkout2(sys_clk_5m) // output );
/******************************************************************************* * 调试器 * *******************************************************************************/ // wire [6:0] trig0_i; // JtagHubIst jtag_hub_ist ( // .resetn_i(rst_n), // input // .drck_o (drck_o), // output // .hub_tdi (hub_tdi), // output // .capt_o (capt_o), // output // .shift_o (shift_o), // output // .conf_sel(conf_sel), // output [14:0] // .id_o (id_o), // output [4:0] // .hub_tdo (hub_tdo) // input [14:0] // );
// DebugCoreIst debug_core_ist ( // .hub_tdi (hub_tdi), // input // .hub_tdo (hub_tdo[0]), // output // .id_i (id_o), // input [4:0] // .capt_i (capt_o), // input // .shift_i (shift_o), // input // .conf_sel(conf_sel[0]), // input // .drck_in (drck_o), // input // .clk (sys_clk), // input // .resetn_i(rst_n), // input // .trig0_i (trig0_i) // );
/******************************************************************************* * DEBUG_LED * *******************************************************************************/ zutils_debug_led #( .PERIOD_COUNT(10000000) ) core_board_debug_led_inst ( .clk(sys_clk), .rst_n(rst_n), .debug_led(core_board_debug_led) );
/******************************************************************************* * SPIREADER * *******************************************************************************/
wire [31:0] reg_reader_bus_addr; wire [31:0] reg_reader_bus_wr_data; wire reg_reader_bus_wr_en; wire [31:0] reg_reader_bus_rd_data; spi_reg_reader spi1_reg_reader_inst ( .clk (sys_clk), .rst_n(rst_n),
.addr(reg_reader_bus_addr), .wr_data(reg_reader_bus_wr_data), .wr_en(reg_reader_bus_wr_en), .rd_data(reg_reader_bus_rd_data), // .spi_cs_pin(spi1_cs_pin), .spi_clk_pin(spi1_clk_pin), .spi_rx_pin(spi1_rx_pin), .spi_tx_pin(spi1_tx_pin) );
rd_data_router rd_data_router_inst ( .addr(reg_reader_bus_addr),
.stm32_rd_data(0), .fpga_test_rd_data(fpga_test_rd_data), .control_sensor_rd_data(control_sensor_rd_data), .ttlin1_rd_data(ttlin1_rd_data), .ttlin2_rd_data(ttlin2_rd_data), .ttlin3_rd_data(ttlin3_rd_data), .ttlin4_rd_data(ttlin4_rd_data), .timecode_in_rd_data(timecode_in_rd_data), .genlock_in_rd_data(genlock_in_rd_data), .ttlout1_rd_data(ttlout1_rd_data), // ok .ttlout2_rd_data(ttlout2_rd_data), // ok .ttlout3_rd_data(ttlout3_rd_data), // ok .ttlout4_rd_data(ttlout4_rd_data), // ok .timecode_out_rd_data(timecode_out_rd_data), .genlock_out_rd_data(genlock_out_rd_data), .stm32_if_rd_data(stm32_if_rd_data), .debuger_rd_data(debuger_rd_data),
.rd_data_out(reg_reader_bus_rd_data) );
/******************************************************************************* * TEST_SPI_REG * *******************************************************************************/ zutils_register16 #( .REG_START_ADD(`REG_ADD_OFF_FPGA_TEST) ) core_board_debug_led_reg ( .clk(sys_clk), .rst_n(rst_n), .addr(reg_reader_bus_addr), .wr_data(reg_reader_bus_wr_data), .wr_en(reg_reader_bus_wr_en), .rd_data(fpga_test_rd_data) );
/******************************************************************************* * 输出组件 * *******************************************************************************/
wire [7:0] ttl_output_signal_in;
ttl_output #( .REG_START_ADD(`REG_ADD_OFF_TTLIN1), .TEST(HARDWARE_TEST_MODE) ) ttl_output_1 ( .clk (sys_clk), .rst_n(rst_n),
.addr(reg_reader_bus_addr), .wr_data(reg_reader_bus_wr_data), .wr_en(reg_reader_bus_wr_en), .rd_data(ttlout1_rd_data),
.signal_in(ttl_output_signal_in),
.ttloutput(sync_ttl_out1), .ttloutput_state_led(sync_ttl_out1_state_led) );
ttl_output #( .REG_START_ADD(`REG_ADD_OFF_TTLIN2), .TEST(HARDWARE_TEST_MODE) ) ttl_output_2 ( .clk (sys_clk), .rst_n(rst_n),
.addr(reg_reader_bus_addr), .wr_data(reg_reader_bus_wr_data), .wr_en(reg_reader_bus_wr_en), .rd_data(ttlout2_rd_data),
.signal_in(ttl_output_signal_in),
.ttloutput(sync_ttl_out2), .ttloutput_state_led(sync_ttl_out2_state_led) );
ttl_output #( .REG_START_ADD(`REG_ADD_OFF_TTLIN3), .TEST(HARDWARE_TEST_MODE) ) ttl_output_3 ( .clk (sys_clk), .rst_n(rst_n),
.addr(reg_reader_bus_addr), .wr_data(reg_reader_bus_wr_data), .wr_en(reg_reader_bus_wr_en), .rd_data(ttlout3_rd_data),
.signal_in(ttl_output_signal_in),
.ttloutput(sync_ttl_out3), .ttloutput_state_led(sync_ttl_out3_state_led) );
ttl_output #( .REG_START_ADD(`REG_ADD_OFF_TTLIN4), .TEST(HARDWARE_TEST_MODE) ) ttl_output_4 ( .clk (sys_clk), .rst_n(rst_n),
.addr(reg_reader_bus_addr), .wr_data(reg_reader_bus_wr_data), .wr_en(reg_reader_bus_wr_en), .rd_data(ttlout4_rd_data),
.signal_in(ttl_output_signal_in),
.ttloutput(sync_ttl_out4), .ttloutput_state_led(sync_ttl_out4_state_led) );
endmodule
|