You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

572 lines
20 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
1 year ago
2 years ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
  1. `timescale 1ns / 1ns
  2. `include "config.v"
  3. module Top (
  4. input ex_clk,
  5. input ex_rst_n,
  6. input genlock_in_hsync,
  7. input genlock_in_vsync,
  8. input genlock_in_fsync,
  9. output genlock_in_state_led,
  10. output [9:0] genlock_out_dac,
  11. output genlock_out_dac_clk,
  12. output genlock_out_dac_state_led,
  13. input sync_ttl_in1,
  14. output sync_ttl_in1_state_led,
  15. input sync_ttl_in2,
  16. output sync_ttl_in2_state_led,
  17. input sync_ttl_in3,
  18. output sync_ttl_in3_state_led,
  19. input sync_ttl_in4,
  20. output sync_ttl_in4_state_led,
  21. output sync_ttl_out1,
  22. output sync_ttl_out1_state_led,
  23. output sync_ttl_out2,
  24. output sync_ttl_out2_state_led,
  25. output sync_ttl_out3,
  26. output sync_ttl_out3_state_led,
  27. output sync_ttl_out4,
  28. output sync_ttl_out4_state_led,
  29. input timecode_headphone_in,
  30. output timecode_headphone_in_state_led,
  31. input timecode_bnc_in,
  32. output timecode_bnc_in_state_led,
  33. output timecode_out_bnc,
  34. output timecode_out_bnc_select,
  35. output timecode_out_bnc_state_led,
  36. output timecode_out_headphone,
  37. output timecode_out_headphone_select,
  38. output timecode_out_headphone_state_led,
  39. output stm32if_start_signal_out,
  40. output stm32if_camera_sync_out,
  41. output stm32if_timecode_sync_out,
  42. //SPI 串行总线1
  43. input wire spi1_cs_pin,
  44. input wire spi1_clk_pin,
  45. input wire spi1_rx_pin,
  46. output wire spi1_tx_pin,
  47. //SPI 串行总线2
  48. input wire spi2_cs_pin,
  49. input wire spi2_clk_pin,
  50. input wire spi2_rx_pin,
  51. output wire spi2_tx_pin,
  52. output [15:0] debug_signal_output,
  53. output wire core_board_debug_led
  54. );
  55. localparam SYS_CLOCK_FREQ = 10000000;
  56. wire sys_clk; //! 系统时钟
  57. wire sys_rst_n; //! 系统复位
  58. //寄存器读写总线
  59. wire [31:0] RegReaderBus_addr; //!寄存器读写-地址总线
  60. wire [31:0] RegReaderBus_wr_data; //!寄存器读写-数据总线
  61. wire RegReaderBus_wr_en; //!寄存器读写-写使能位置
  62. reg [31:0] RegReaderBus_rd_data; //!寄存器读写-读数据总线
  63. //模块寄存器读总线
  64. wire [31:0] rd_data_module_fpga_info; //! 模块寄存器数据总线读数据
  65. wire [31:0] rd_data_module_ttlin; //! 模块寄存器数据总线读数据
  66. wire [31:0] rd_data_module_timecode_in; //! 模块寄存器数据总线读数据
  67. wire [31:0] rd_data_module_genlock_in; //! 模块寄存器数据总线读数据
  68. wire [31:0] rd_data_module_internal_timecode; //! 模块寄存器数据总线读数据
  69. wire [31:0] rd_data_module_internal_genlock; //! 模块寄存器数据总线读数据
  70. wire [31:0] rd_data_module_internal_clock; //! 模块寄存器数据总线读数据
  71. wire [31:0] rd_data_module_ttlout1; //! 模块寄存器数据总线读数据
  72. wire [31:0] rd_data_module_ttlout2; //! 模块寄存器数据总线读数据
  73. wire [31:0] rd_data_module_ttlout3; //! 模块寄存器数据总线读数据
  74. wire [31:0] rd_data_module_ttlout4; //! 模块寄存器数据总线读数据
  75. wire [31:0] rd_data_module_timecode_out; //! 模块寄存器数据总线读数据
  76. wire [31:0] rd_data_module_genlock_out; //! 模块寄存器数据总线读数据
  77. wire [31:0] rd_data_module_camera_sync_out; //! 模块寄存器数据总线读数据
  78. wire [31:0] rd_data_module_sys_timecode; //! 模块寄存器数据总线读数据
  79. wire [31:0] rd_data_module_sys_genlock; //! 模块寄存器数据总线读数据
  80. wire [31:0] rd_data_module_sys_clock; //! 模块寄存器数据总线读数据
  81. wire [31:0] rd_data_module_record_sig_generator; //! 模块寄存器数据总线读数据
  82. //内部信号
  83. wire signal_logic0; //! 逻辑0
  84. wire signal_logic1; //! 逻辑1
  85. wire signal_ttlin1; //! TTL输入1
  86. wire signal_ttlin2; //! TTL输入2
  87. wire signal_ttlin3; //! TTL输入3
  88. wire signal_ttlin4; //! TTL输入4
  89. wire signal_ext_genlock_freq; //! 外部GENLOCK频率信号
  90. wire signal_ext_timecode_freq; //! 外部时间码频率信号
  91. wire signal_internal_timecode_freq; //! 内部时间码频率信号
  92. wire signal_internal_genlock_freq; //! 内部GENLOCK频率信号
  93. wire signal_internal_clk_sig; //! 内部频率信号
  94. wire signal_sys_clk_output; //! 系统时钟输出
  95. wire signal_sys_genlock_output; //! 系统GENLOCK输出
  96. wire signal_sys_timecode_freq_output; //! 系统时间码频率输出
  97. wire signal_business_record_sig; //! 业务摄影状态信号
  98. wire signal_business_record_exposure_sig; //! 业务摄影拍照曝光信号
  99. wire internal_timecode_tigger_sig; //!内部timecode频率信号
  100. wire [31:0] internal_timecode_format; //!内部timecode格式
  101. wire [63:0] internal_timecode_data; //!内部timecode数据
  102. wire internal_timecode_serial_data; //!内部timecode串行数据
  103. wire ext_timecode_tigger_sig; //!外部timecode频率信号
  104. wire [31:0] ext_timecode_format; //!外部timecode格式
  105. wire [63:0] ext_timecode_data; //!外部timecode数据
  106. wire ext_timecode_serial_data; //!外部timecode串行数据
  107. wire sys_timecode_tigger_sig; //!外部timecode频率信号
  108. wire [31:0] sys_timecode_format; //!外部timecode格式
  109. wire [63:0] sys_timecode_data; //!外部timecode数据
  110. wire sys_timecode_serial_data; //!外部timecode串行数据
  111. wire [31:0] sig_src; // 系统内部信号总线
  112. assign sig_src[`SIGNAL_LOGIC0] = signal_logic0;
  113. assign sig_src[`SIGNAL_LOGIC1] = signal_logic1;
  114. assign sig_src[`SIGNAL_TTLIN1] = signal_ttlin1;
  115. assign sig_src[`SIGNAL_TTLIN2] = signal_ttlin2;
  116. assign sig_src[`SIGNAL_TTLIN3] = signal_ttlin3;
  117. assign sig_src[`SIGNAL_TTLIN4] = signal_ttlin4;
  118. assign sig_src[`SIGNAL_EXT_GENLOCK_FREQ] = signal_ext_genlock_freq;
  119. assign sig_src[`SIGNAL_EXT_TIMECODE_FREQ] = signal_ext_timecode_freq;
  120. assign sig_src[`SIGNAL_INTERNAL_TIMECODE_FREQ] = signal_internal_timecode_freq;
  121. assign sig_src[`SIGNAL_INTERNAL_GENLOCK_FREQ] = signal_internal_genlock_freq;
  122. assign sig_src[`SIGNAL_INTERNAL_CLOCK_SIG] = signal_internal_clk_sig;
  123. assign sig_src[`SIGNAL_SYS_CLK_OUTPUT] = signal_sys_clk_output;
  124. assign sig_src[`SIGNAL_SYS_GENLOCK_OUTPUT] = signal_sys_genlock_output;
  125. assign sig_src[`SIGNAL_SYS_TIMECODE_FREQ_OUTPUT] = signal_sys_timecode_freq_output;
  126. assign sig_src[`SIGNAL_BUSINESS_RECORD_SIG] = signal_business_record_sig;
  127. assign sig_src[`SIGNAL_BUSINESS_RECORD_EXPOSURE_SIG] = signal_business_record_exposure_sig;
  128. assign signal_logic0 = 1'b0;
  129. assign signal_logic1 = 1'b1;
  130. assign signal_internal_timecode_freq = internal_timecode_serial_data;
  131. assign signal_sys_timecode_freq_output = sys_timecode_tigger_sig;
  132. //系统时钟源
  133. SPLL spll (
  134. .clkin1 (ex_clk),
  135. .pll_lock(pll_lock),
  136. .clkout0 (sys_clk_25m),
  137. .clkout1 (sys_clk_10m),
  138. .clkout2 (sys_clk_5m)
  139. );
  140. assign sys_clk = sys_clk_10m;
  141. assign sys_rst_n = ex_rst_n & pll_lock;
  142. spi_reg_bus _spi_reg_bus (
  143. .clk (sys_clk),
  144. .rst_n (sys_rst_n),
  145. .addr (RegReaderBus_addr),
  146. .wr_data (RegReaderBus_wr_data),
  147. .wr_en (RegReaderBus_wr_en),
  148. .spi_cs_pin (spi2_cs_pin),
  149. .spi_clk_pin(spi2_clk_pin),
  150. .spi_rx_pin (spi2_rx_pin),
  151. .spi_tx_pin (spi2_tx_pin),
  152. .rd_data_module_fpga_info (rd_data_module_fpga_info),
  153. .rd_data_module_ttlin (rd_data_module_ttlin),
  154. .rd_data_module_timecode_in (rd_data_module_timecode_in),
  155. .rd_data_module_genlock_in (rd_data_module_genlock_in),
  156. .rd_data_module_internal_timecode (rd_data_module_internal_timecode),
  157. .rd_data_module_internal_genlock (rd_data_module_internal_genlock),
  158. .rd_data_module_internal_clock (rd_data_module_internal_clock),
  159. .rd_data_module_ttlout1 (rd_data_module_ttlout1),
  160. .rd_data_module_ttlout2 (rd_data_module_ttlout2),
  161. .rd_data_module_ttlout3 (rd_data_module_ttlout3),
  162. .rd_data_module_ttlout4 (rd_data_module_ttlout4),
  163. .rd_data_module_timecode_out (rd_data_module_timecode_out),
  164. .rd_data_module_genlock_out (rd_data_module_genlock_out),
  165. .rd_data_module_camera_sync_out (rd_data_module_camera_sync_out),
  166. .rd_data_module_sys_timecode (rd_data_module_sys_timecode),
  167. .rd_data_module_sys_genlock (rd_data_module_sys_genlock),
  168. .rd_data_module_sys_clock (rd_data_module_sys_clock),
  169. .rd_data_module_record_sig_generator(rd_data_module_record_sig_generator)
  170. );
  171. /*******************************************************************************
  172. * FPGA_INFO *
  173. *******************************************************************************/
  174. zutils_register16 #(
  175. .REG_START_ADD(`REGADDOFF__FPGA_INFO),
  176. .REG0_INIT(1),
  177. .REG1_INIT(2),
  178. .REG2_INIT(3),
  179. .REG3_INIT(4),
  180. .REG4_INIT(5),
  181. .REG5_INIT(6),
  182. .REG6_INIT(7),
  183. .REG7_INIT(8),
  184. .REG8_INIT(9),
  185. .REG9_INIT(10),
  186. .REGA_INIT(11),
  187. .REGB_INIT(12),
  188. .REGC_INIT(13),
  189. .REGD_INIT(14),
  190. .REGE_INIT(15),
  191. .REGF_INIT(16)
  192. ) test_reg (
  193. .clk (sys_clk),
  194. .rst_n (sys_rst_n),
  195. .addr (RegReaderBus_addr),
  196. .wr_data(RegReaderBus_wr_data),
  197. .wr_en (RegReaderBus_wr_en),
  198. .rd_data(rd_data_module_fpga_info)
  199. );
  200. /*******************************************************************************
  201. * TTL输入模块 *
  202. *******************************************************************************/
  203. ttl_input #(
  204. .REG_START_ADD (`REGADDOFF__TTLIN),
  205. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  206. ) ttl_inputr_ins (
  207. .clk (sys_clk),
  208. .rst_n(sys_rst_n),
  209. .addr (RegReaderBus_addr),
  210. .wr_data(RegReaderBus_wr_data),
  211. .wr_en (RegReaderBus_wr_en),
  212. .rd_data(rd_data_module_ttlin),
  213. .ttlin1_raw(sync_ttl_in1),
  214. .ttlin2_raw(sync_ttl_in2),
  215. .ttlin3_raw(sync_ttl_in3),
  216. .ttlin4_raw(!sync_ttl_in4), //in4电路上进行了反向
  217. //指示灯
  218. .ttlin1_state_led(sync_ttl_in1_state_led),
  219. .ttlin2_state_led(sync_ttl_in2_state_led),
  220. .ttlin3_state_led(sync_ttl_in3_state_led),
  221. .ttlin4_state_led(sync_ttl_in4_state_led),
  222. //原始信号
  223. .sig_ttlin1(signal_ttlin1),
  224. .sig_ttlin2(signal_ttlin2),
  225. .sig_ttlin3(signal_ttlin3),
  226. .sig_ttlin4(signal_ttlin4)
  227. );
  228. timecode_input_parser #(
  229. .REG_START_ADD (`REGADDOFF__TIMECODE_IN),
  230. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  231. ) timecode_input_ins (
  232. .clk (sys_clk),
  233. .rst_n(sys_rst_n),
  234. .addr (RegReaderBus_addr),
  235. .wr_data(RegReaderBus_wr_data),
  236. .wr_en (RegReaderBus_wr_en),
  237. .rd_data(rd_data_module_timecode_in),
  238. //input
  239. .timecode_bnc_in (timecode_bnc_in),
  240. .timecode_headphone_in(timecode_headphone_in),
  241. //output
  242. .timecode_tigger_sig (ext_timecode_tigger_sig),
  243. .timecode_format (ext_timecode_format), //[31:0]
  244. .timecode_data (ext_timecode_data), //[63:0]
  245. .timecode_serial_data (ext_timecode_serial_data),
  246. .timecode_headphone_in_state_led(timecode_headphone_in_state_led),
  247. .timecode_bnc_in_state_led (timecode_bnc_in_state_led)
  248. );
  249. genlock_input_module #(
  250. .REG_START_ADD (`REGADDOFF__GENLOCK_IN),
  251. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  252. ) genlock_input (
  253. .clk (sys_clk),
  254. .rst_n(sys_rst_n),
  255. .addr (RegReaderBus_addr),
  256. .wr_data(RegReaderBus_wr_data),
  257. .wr_en (RegReaderBus_wr_en),
  258. .rd_data(rd_data_module_genlock_in),
  259. .genlock_in_hsync(genlock_in_hsync),
  260. .genlock_in_vsync(genlock_in_vsync),
  261. .genlock_in_fsync(genlock_in_fsync),
  262. .genlock_freq_signal (signal_ext_genlock_freq),
  263. .genlock_in_state_led(genlock_in_state_led)
  264. );
  265. //
  266. /*******************************************************************************
  267. * 内部信号源 *
  268. *******************************************************************************/
  269. internal_timecode_generator #(
  270. .REG_START_ADD(`REGADDOFF__INTERNAL_TIMECODE),
  271. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ),
  272. .ID(1)
  273. ) internal_timecode_generator0 (
  274. .clk (sys_clk),
  275. .rst_n(sys_rst_n),
  276. .addr (RegReaderBus_addr),
  277. .wr_data(RegReaderBus_wr_data),
  278. .wr_en (RegReaderBus_wr_en),
  279. .rd_data(rd_data_module_internal_timecode),
  280. .timecode_tigger_sig (internal_timecode_tigger_sig),
  281. .timecode_format (internal_timecode_format),
  282. .timecode_data (internal_timecode_data),
  283. .timecode_serial_data(internal_timecode_serial_data)
  284. );
  285. internal_genlock_generator #(
  286. .REG_START_ADD (`REGADDOFF__INTERNAL_GENLOCK),
  287. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  288. ) internal_genlock_generator0 (
  289. .clk (sys_clk),
  290. .rst_n(sys_rst_n),
  291. .addr (RegReaderBus_addr),
  292. .wr_data(RegReaderBus_wr_data),
  293. .wr_en (RegReaderBus_wr_en),
  294. .rd_data(rd_data_module_internal_genlock),
  295. .genlock_freq_signal(signal_internal_genlock_freq)
  296. );
  297. internal_clock_generator #(
  298. .REG_START_ADD (`REGADDOFF__INTERNAL_CLOCK),
  299. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  300. ) internal_clock_generator0 (
  301. .clk (sys_clk),
  302. .rst_n(sys_rst_n),
  303. .addr (RegReaderBus_addr),
  304. .wr_data(RegReaderBus_wr_data),
  305. .wr_en (RegReaderBus_wr_en),
  306. .rd_data(rd_data_module_internal_clock),
  307. .clk_output(signal_internal_clk_sig)
  308. );
  309. /*******************************************************************************
  310. * SYS *
  311. *******************************************************************************/
  312. sys_timecode #(
  313. .REG_START_ADD (`REGADDOFF__SYS_TIMECODE),
  314. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  315. ) sys_timecode_ins (
  316. .clk (sys_clk),
  317. .rst_n(sys_rst_n),
  318. .addr (RegReaderBus_addr),
  319. .wr_data(RegReaderBus_wr_data),
  320. .wr_en (RegReaderBus_wr_en),
  321. .rd_data(rd_data_module_sys_timecode),
  322. .internal_timecode_tigger_sig (internal_timecode_tigger_sig),
  323. .internal_timecode_format (internal_timecode_format),
  324. .internal_timecode_data (internal_timecode_data),
  325. .internal_timecode_serial_data(internal_timecode_serial_data),
  326. .external_timecode_tigger_sig (ext_timecode_tigger_sig),
  327. .external_timecode_format (ext_timecode_format),
  328. .external_timecode_data (ext_timecode_data),
  329. .external_timecode_serial_data(ext_timecode_serial_data),
  330. .sys_timecode_tigger_sig (sys_timecode_tigger_sig),
  331. .sys_timecode_format (sys_timecode_format),
  332. .sys_timecode_data (sys_timecode_data),
  333. .sys_timecode_serial_data(sys_timecode_serial_data)
  334. );
  335. sys_genlock #(
  336. .REG_START_ADD (`REGADDOFF__SYS_GENLOCK),
  337. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  338. ) sys_genlock0 (
  339. .clk (sys_clk),
  340. .rst_n(sys_rst_n),
  341. .addr (RegReaderBus_addr),
  342. .wr_data(RegReaderBus_wr_data),
  343. .wr_en (RegReaderBus_wr_en),
  344. .rd_data(rd_data_module_sys_genlock),
  345. .internal_genlock_sig(signal_internal_genlock_freq),
  346. .external_genlock_sig(signal_ext_genlock_freq),
  347. .sys_genlock_tigger_sig(signal_sys_genlock_output)
  348. );
  349. sys_clock #(
  350. .REG_START_ADD (`REGADDOFF__SYS_CLOCK),
  351. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  352. ) sys_clock0 (
  353. .clk (sys_clk),
  354. .rst_n(sys_rst_n),
  355. .addr (RegReaderBus_addr),
  356. .wr_data(RegReaderBus_wr_data),
  357. .wr_en (RegReaderBus_wr_en),
  358. .rd_data(rd_data_module_sys_clock),
  359. .signal_in(sig_src),
  360. .sys_clock(signal_sys_clk_output)
  361. );
  362. /*******************************************************************************
  363. * TTL_OUTPUT *
  364. *******************************************************************************/
  365. ttl_output #(
  366. .REG_START_ADD(`REGADDOFF__TTLOUT1),
  367. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ),
  368. .ID(1)
  369. ) ttl_output_1 (
  370. .clk (sys_clk),
  371. .rst_n(sys_rst_n),
  372. .addr (RegReaderBus_addr),
  373. .wr_data(RegReaderBus_wr_data),
  374. .wr_en (RegReaderBus_wr_en),
  375. .rd_data(rd_data_module_ttlout1),
  376. .signal_in(sig_src),
  377. .ttloutput (sync_ttl_out1),
  378. .ttloutput_state_led(sync_ttl_out1_state_led)
  379. );
  380. ttl_output #(
  381. .REG_START_ADD(`REGADDOFF__TTLOUT2),
  382. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ),
  383. .ID(2)
  384. ) ttl_output_2 (
  385. .clk (sys_clk),
  386. .rst_n(sys_rst_n),
  387. .addr (RegReaderBus_addr),
  388. .wr_data(RegReaderBus_wr_data),
  389. .wr_en (RegReaderBus_wr_en),
  390. .rd_data(rd_data_module_ttlout2),
  391. .signal_in(sig_src),
  392. .ttloutput (sync_ttl_out2),
  393. .ttloutput_state_led(sync_ttl_out2_state_led)
  394. );
  395. ttl_output #(
  396. .REG_START_ADD(`REGADDOFF__TTLOUT3),
  397. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ),
  398. .ID(3)
  399. ) ttl_output_3 (
  400. .clk (sys_clk),
  401. .rst_n(sys_rst_n),
  402. .addr (RegReaderBus_addr),
  403. .wr_data(RegReaderBus_wr_data),
  404. .wr_en (RegReaderBus_wr_en),
  405. .rd_data(rd_data_module_ttlout3),
  406. .signal_in(sig_src),
  407. .ttloutput (sync_ttl_out3),
  408. .ttloutput_state_led(sync_ttl_out3_state_led)
  409. );
  410. ttl_output #(
  411. .REG_START_ADD(`REGADDOFF__TTLOUT4),
  412. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ),
  413. .ID(4)
  414. ) ttl_output_4 (
  415. .clk (sys_clk),
  416. .rst_n(sys_rst_n),
  417. .addr (RegReaderBus_addr),
  418. .wr_data(RegReaderBus_wr_data),
  419. .wr_en (RegReaderBus_wr_en),
  420. .rd_data(rd_data_module_ttlout4),
  421. .signal_in(sig_src),
  422. .ttloutput (sync_ttl_out4),
  423. .ttloutput_state_led(sync_ttl_out4_state_led)
  424. );
  425. timecode_output #(
  426. .REG_START_ADD (`REGADDOFF__TIMECODE_OUT),
  427. .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ)
  428. ) timecode_output_inst (
  429. .clk (sys_clk),
  430. .rst_n(sys_rst_n),
  431. .addr (RegReaderBus_addr),
  432. .wr_data(RegReaderBus_wr_data),
  433. .wr_en (RegReaderBus_wr_en),
  434. .rd_data(rd_data_module_timecode_out),
  435. .stm32if_timecode_tigger_sig(stm32if_timecode_sync_out),
  436. .in_timecode_tigger_sig (sys_timecode_tigger_sig),
  437. .in_timecode_format (sys_timecode_format),
  438. .in_timecode_data (sys_timecode_data),
  439. .in_timecode_serial_data(sys_timecode_serial_data),
  440. .timecode_out_bnc (timecode_out_bnc),
  441. .timecode_out_bnc_select (timecode_out_bnc_select),
  442. .timecode_out_bnc_state_led(timecode_out_bnc_state_led),
  443. .timecode_out_headphone (timecode_out_headphone),
  444. .timecode_out_headphone_select (timecode_out_headphone_select),
  445. .timecode_out_headphone_state_led(timecode_out_headphone_state_led)
  446. );
  447. assign debug_signal_output[0] = sys_clk;
  448. assign debug_signal_output[1] = sync_ttl_in1;
  449. assign debug_signal_output[2] = sync_ttl_in2;
  450. assign debug_signal_output[3] = sync_ttl_in3;
  451. assign debug_signal_output[4] = sync_ttl_in4;
  452. assign debug_signal_output[5] = sync_ttl_out1;
  453. assign debug_signal_output[6] = sync_ttl_out2;
  454. assign debug_signal_output[7] = sync_ttl_out3;
  455. assign debug_signal_output[8] = sync_ttl_out4;
  456. assign debug_signal_output[9] = genlock_in_fsync;
  457. assign debug_signal_output[10] = timecode_headphone_in;
  458. assign debug_signal_output[11] = timecode_bnc_in;
  459. assign debug_signal_output[12] = timecode_out_headphone;
  460. assign debug_signal_output[13] = timecode_out_bnc;
  461. assign debug_signal_output[15] = 0;
  462. endmodule