From 693e7550da5c6f2e14dcd9f73262eda51ba706e7 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 26 Mar 2024 22:14:26 +0800 Subject: [PATCH] update --- cfg_verify_result.sbit | Bin 0 -> 762416 bytes led_test.pds | 102 +---- source/src/business/record_sig_generator.v | 113 ++++-- source/src/config.v | 6 +- source/src/input/timecode_input.v | 132 +++---- source/src/internal/internal_timecode_generator.v | 3 +- source/src/sys_signal_delayer.v | 28 +- source/src/top.v | 447 ++++++++++++---------- source/src/zutils/zsimple_pll.v | 14 +- 9 files changed, 435 insertions(+), 410 deletions(-) create mode 100644 cfg_verify_result.sbit diff --git a/cfg_verify_result.sbit b/cfg_verify_result.sbit new file mode 100644 index 0000000000000000000000000000000000000000..782c53a216b835143a1b6f9fcced5bf2b6def879 GIT binary patch literal 762416 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�sP4xHC1J$0n{HcfOUumaYDB>F_Ot}DyA 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

yhGNW0XpJH98G+Me( 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 A*Z=?k literal 0 HcmV?d00001 diff --git a/led_test.pds b/led_test.pds index 5a7c67d..86ff57d 100644 --- a/led_test.pds +++ b/led_test.pds @@ -1,5 +1,5 @@ (_flow fab_demo "2021.1-SP7" - (_comment "Generated by Fabric Compiler (version on 2021.1-SP7) at Mon Mar 25 20:08:45 2024") + (_comment "Generated by Fabric Compiler (version on 2021.1-SP7) at Tue Mar 26 21:40:59 2024") (_version "1.0.5") (_status "initial") (_project @@ -19,7 +19,7 @@ (_input (_file "source/src/top.v" + "Top:" (_format verilog) - (_timespec "2024-03-25T17:56:09") + (_timespec "2024-03-26T21:21:35") ) (_file "source/src/spi_reg_reader.v" (_format verilog) @@ -131,7 +131,7 @@ ) (_file "source/src/input/timecode_input.v" (_format verilog) - (_timespec "2024-03-23T19:37:51") + (_timespec "2024-03-26T21:40:57") ) (_file "source/src/timecode/timecode_decoder.v" (_format verilog) @@ -163,7 +163,7 @@ ) (_file "source/src/zutils/zsimple_pll.v" (_format verilog) - (_timespec "2024-03-23T20:42:57") + (_timespec "2024-03-26T18:46:59") ) (_file "source/src/zutils/zutils_freq_detector_v2.v" (_format verilog) @@ -179,7 +179,7 @@ ) (_file "source/src/internal/internal_timecode_generator.v" (_format verilog) - (_timespec "2024-03-23T20:29:33") + (_timespec "2024-03-26T20:23:00") ) (_file "source/src/sys/sys_timecode.v" (_format verilog) @@ -207,15 +207,15 @@ ) (_file "source/src/output/camera_sync_signal_output.v" (_format verilog) - (_timespec "2024-03-25T17:49:01") + (_timespec "2024-03-26T16:56:33") ) (_file "source/src/business/record_sig_generator.v" (_format verilog) - (_timespec "2024-03-06T00:10:36") + (_timespec "2024-03-26T18:42:49") ) (_file "source/src/sys_signal_delayer.v" (_format verilog) - (_timespec "2024-03-25T11:41:59") + (_timespec "2024-03-26T21:16:17") ) (_file "source/src/zutils/zutils_sig_delayer.v" (_format verilog) @@ -315,17 +315,17 @@ (_db_output (_file "compile/Top_comp.adf" (_format adif) - (_timespec "2024-03-25T19:55:01") + (_timespec "2024-03-26T21:40:58") ) ) (_output (_file "compile/Top.cmr" (_format verilog) - (_timespec "2024-03-25T19:54:58") + (_timespec "2024-03-26T21:40:57") ) (_file "compile/cmr.db" (_format text) - (_timespec "2024-03-25T19:55:01") + (_timespec "2024-03-26T21:40:58") ) ) ) @@ -335,29 +335,9 @@ ) (_task tsk_synthesis (_command cmd_synthesize - (_gci_state (_integer 2)) + (_gci_state (_integer 0)) (_option ads (_switch ON)) (_option selected_syn_tool_opt (_integer 2)) - (_db_output - (_file "synthesize/Top_syn.adf" - (_format adif) - (_timespec "2024-03-25T19:55:33") - ) - ) - (_output - (_file "synthesize/Top_syn.vm" - (_format structural_verilog) - (_timespec "2024-03-25T19:55:35") - ) - (_file "synthesize/Top.snr" - (_format text) - (_timespec "2024-03-25T19:55:37") - ) - (_file "synthesize/snr.db" - (_format text) - (_timespec "2024-03-25T19:55:37") - ) - ) ) (_widget wgt_tech_view (_attribute _click_to_run (_switch ON)) @@ -372,34 +352,14 @@ ) (_task tsk_devmap (_command cmd_devmap - (_gci_state (_integer 2)) - (_db_output - (_file "device_map/Top_map.adf" - (_format adif) - (_timespec "2024-03-25T19:55:42") - ) - ) - (_output - (_file "device_map/Top_dmr.prt" - (_format text) - (_timespec "2024-03-25T19:55:39") - ) - (_file "device_map/Top.dmr" - (_format text) - (_timespec "2024-03-25T19:55:42") - ) - (_file "device_map/dmr.db" - (_format text) - (_timespec "2024-03-25T19:55:42") - ) - ) + (_gci_state (_integer 0)) ) (_widget wgt_edit_placement_cons (_attribute _click_to_run (_switch ON)) (_input (_file "device_map/led_test.pcf" (_format pcf) - (_timespec "2024-03-25T19:55:42") + (_timespec "2024-03-26T21:39:24") ) ) ) @@ -409,7 +369,7 @@ ) (_task tsk_pnr (_command cmd_pnr - (_gci_state (_integer 2)) + (_gci_state (_integer 0)) (_option gplace_seed (_integer 8)) (_option seed_step (_integer 4)) (_option saved_outcome (_integer 4)) @@ -418,38 +378,6 @@ (_option check_clk_net_route_by_srb (_boolean FALSE)) (_option mode (_string "fast")) (_option fix_hold_violation_in_route (_boolean FALSE)) - (_db_output - (_file "place_route/Top_pnr.adf" - (_format adif) - (_timespec "2024-03-25T20:08:43") - ) - ) - (_output - (_file "place_route/Top.prr" - (_format text) - (_timespec "2024-03-25T20:08:44") - ) - (_file "place_route/Top_prr.prt" - (_format text) - (_timespec "2024-03-25T20:08:41") - ) - (_file "place_route/clock_utilization.txt" - (_format text) - (_timespec "2024-03-25T20:08:41") - ) - (_file "place_route/Top_plc.adf" - (_format adif) - (_timespec "2024-03-25T19:56:00") - ) - (_file "place_route/Top_pnr.netlist" - (_format text) - (_timespec "2024-03-25T20:08:44") - ) - (_file "place_route/prr.db" - (_format text) - (_timespec "2024-03-25T20:08:45") - ) - ) ) (_widget wgt_power_calculator (_attribute _click_to_run (_switch ON)) diff --git a/source/src/business/record_sig_generator.v b/source/src/business/record_sig_generator.v index 825b35c..e6c7c81 100644 --- a/source/src/business/record_sig_generator.v +++ b/source/src/business/record_sig_generator.v @@ -20,26 +20,29 @@ module record_sig_generator #( input wire sys_timecode_tigger_sig, input wire [63:0] sys_timecode_data, - output reg out_record_en_sig, //!录制使能信号 - output reg out_record_exposure_sig //!录制曝光信号 + output reg out_record_en_sig, //!录制使能信号 + output reg out_record_exposure_sig, //!录制曝光信号 + output wire out_record_en_rsing_edge_sig, //!使能脉冲信号 + output wire out_record_en_falling_edge_sig, //!使能脉冲信号 + output wire out_record_en_edge_sig //!使能脉冲信号 ); - - reg [31:0] reg1_ctrl_control_mode; //! 控制模式选择寄存器 + //时码触发启动 reg [31:0] reg2_timecode_start0; //! 时码启动寄存器0 reg [31:0] reg3_timecode_start1; //! 时码启动寄存器1 reg [31:0] reg4_timecode_stop0; //! 时码停止寄存器0 reg [31:0] reg5_timecode_stop1; //! 时码停止寄存器1 reg [31:0] reg6_timecode_control_flag; //! 使能时码控制启动,使能使能时码控制停止 + //TTL电平触发模式 reg [31:0] reg7_ttlin_trigger_sig_source; //! TTL触发信号选择 - reg [31:0] reg8_ttlin_trigger_level; //! TTL输入信号极性反转 + reg [31:0] reg8_ttlin_trigger_level; //! + //TTL脉冲触发边沿选择 + reg [31:0] reg9_ttlin_trigger_edge_select; //! - reg [31:0] reg9_exposure_time; //! 曝光时长 - reg [31:0] regA_exposure_delay; //! 曝光信号延迟 reg [31:0] regB_manual_ctrl; //! 手动控制 localparam REGA_MANUAL_CTRL_REG_INDEX = 32'd11; @@ -68,8 +71,7 @@ module record_sig_generator #( .reg6(reg6_timecode_control_flag), .reg7(reg7_ttlin_trigger_sig_source), .reg8(reg8_ttlin_trigger_level), - .reg9(reg9_exposure_time), - .regA(regA_exposure_delay), + .reg9(reg9_ttlin_trigger_edge_select), .regB(regB_manual_ctrl), .regD(regD_timecode_snapshot0), @@ -90,22 +92,19 @@ module record_sig_generator #( reg6_timecode_control_flag <= 32'hFFFF_FFFF; reg7_ttlin_trigger_sig_source <= 1; reg8_ttlin_trigger_level <= 1; - reg9_exposure_time <= 32'd1000; //100us - regA_exposure_delay <= 0; regB_manual_ctrl <= 0; end else begin if (reg_wr_sig) begin case (reg_wr_index) - 1: reg1_ctrl_control_mode <= wr_data; - 2: reg2_timecode_start0 <= wr_data; - 3: reg3_timecode_start1 <= wr_data; - 4: reg4_timecode_stop0 <= wr_data; - 5: reg5_timecode_stop1 <= wr_data; - 6: reg6_timecode_control_flag <= wr_data; - 7: reg7_ttlin_trigger_sig_source <= wr_data; - 8: reg8_ttlin_trigger_level <= wr_data; - 9: reg9_exposure_time <= wr_data; - 10: regA_exposure_delay <= wr_data; + 1: reg1_ctrl_control_mode <= wr_data; + 2: reg2_timecode_start0 <= wr_data; + 3: reg3_timecode_start1 <= wr_data; + 4: reg4_timecode_stop0 <= wr_data; + 5: reg5_timecode_stop1 <= wr_data; + 6: reg6_timecode_control_flag <= wr_data; + 7: reg7_ttlin_trigger_sig_source <= wr_data; + 8: reg8_ttlin_trigger_level <= wr_data; + 9: reg9_ttlin_trigger_edge_select <= wr_data; default: begin end endcase @@ -117,21 +116,44 @@ module record_sig_generator #( wire ttl_in_choose; //! 选中的ttl触发信号,(已经经过电平翻转) wire timecode_start_trigger_sig; //!timecode启动信号 wire timecode_stop_trigger_sig; //!timecode停止信号 - wire record_exposure_sig; //!曝光信号 - wire frame_freq_sig_rising_edge; + wire frame_freq_sig_rising_edge; //! zutils_multiplexer_32t1_v2 ttlin_level_trigger_multi ( .chooseindex(reg7_ttlin_trigger_sig_source), //in - .in1 (ttlin1_sig ^ (!reg8_ttlin_trigger_level[0])), - .in2 (ttlin2_sig ^ (!reg8_ttlin_trigger_level[0])), - .in3 (ttlin3_sig ^ (!reg8_ttlin_trigger_level[0])), - .in4 (ttlin4_sig ^ (!reg8_ttlin_trigger_level[0])), + .in1 (ttlin1_sig), + .in2 (ttlin2_sig), + .in3 (ttlin3_sig), + .in4 (ttlin4_sig), //out .out (ttl_in_choose) ); + + zutils_edge_detecter ttltrigger_edge ( + .clk (clk), + .rst_n (rst_n), + .in_signal(ttl_in_choose), + + .in_signal_rising_edge (ttl_in_choose_rsing_edge_sig), + .in_signal_falling_edge(ttl_in_choose_falling_edge_sig), + .in_signal_edge (ttl_in_choose_edge_sig) + ); + + zutils_multiplexer_32t1_v2 ttltrigger_edge_multiplexer ( + .chooseindex(reg9_ttlin_trigger_edge_select), + //in + .in1 (ttl_in_choose_rsing_edge_sig), + .in2 (ttl_in_choose_falling_edge_sig), + .in3 (ttl_in_choose_edge_sig), + //out + .out (ttl_in_choose_trigger_edge) + ); + + + + /******************************************************************************* * StartSig输出 * *******************************************************************************/ @@ -160,14 +182,6 @@ module record_sig_generator #( .in_signal_rising_edge(frame_freq_sig_rising_edge) ); - zutils_pluse_generator _pluse_generator ( - .clk (clk), - .rst_n (rst_n), - .pluse_width (reg9_exposure_time), - .pluse_delay (regA_exposure_delay), - .trigger (frame_freq_sig_rising_edge), - .output_signal(record_exposure_sig) - ); reg en_state; always @(posedge clk or negedge rst_n) begin @@ -203,12 +217,26 @@ module record_sig_generator #( 3: begin //外部电平控制 - if (ttl_in_choose == 1) begin + if (ttl_in_choose ^ (!reg8_ttlin_trigger_level[0])) begin en_state <= 1; end else begin en_state <= 0; end end + + 4: begin + //脉冲触发模式 + if (en_state) begin + if (ttl_in_choose_trigger_edge) begin + en_state <= 0; + end + end else begin + if (ttl_in_choose_trigger_edge) begin + en_state <= 1; + end + end + + end default: begin end endcase @@ -244,10 +272,21 @@ module record_sig_generator #( end + zutils_edge_detecter en_edge_detecter ( + .clk (clk), + .rst_n (rst_n), + .in_signal(out_record_en_sig), + + .in_signal_rising_edge (out_record_en_rsing_edge_sig), + .in_signal_falling_edge(out_record_en_falling_edge_sig), + .in_signal_edge (out_record_en_edge_sig) + ); + + always @(*) begin regF_record_state[0] <= en_state_af_sync; out_record_en_sig <= en_state_af_sync; - out_record_exposure_sig <= out_record_en_sig & record_exposure_sig; + out_record_exposure_sig <= out_record_en_sig & frame_freq_sig; end endmodule diff --git a/source/src/config.v b/source/src/config.v index 85405e4..7095141 100644 --- a/source/src/config.v +++ b/source/src/config.v @@ -35,7 +35,11 @@ `define SIGNAL_SYS_TIMECODE_FREQ_OUTPUT 32'd13 `define SIGNAL_BUSINESS_RECORD_SIG 32'd14 `define SIGNAL_BUSINESS_RECORD_EXPOSURE_SIG 32'd15 +`define SIGNAL_BUSINESS_RECORD_EN_RSING_EDGE_SIG 32'd16 +`define SIGNAL_BUSINESS_RECORD_EN_FALLING_EDGE_SIG 32'd17 +`define SIGNAL_BUSINESS_RECORD_EN_EDGE_SIG 32'd18 + `define TTL_OUTPUT_TRIGGER_MODE_SIG_WIDTH 32'd1000 `define FREQ_DETECT_BIAS_DEFAULT 32'd10 -`define VERSION 32'd3 \ No newline at end of file +`define VERSION 32'd3 diff --git a/source/src/input/timecode_input.v b/source/src/input/timecode_input.v index 58b80bd..cd9f0bb 100644 --- a/source/src/input/timecode_input.v +++ b/source/src/input/timecode_input.v @@ -32,18 +32,13 @@ module timecode_input_parser #( ); - reg [31:0] r1_timecode_sig_selt; //信号源选择 0:off,1:bnc,2:headphone - reg [31:0] r2_ch1_timecode_format; // - reg [31:0] r3_ch1_timecode0; // - reg [31:0] r4_ch1_timecode1; // - wire [31:0] r5_ch1_freq; // - reg [31:0] r6_ch2_timecode_format; // - reg [31:0] r7_ch2_timecode0; // - reg [31:0] r8_ch2_timecode1; // - wire [31:0] r9_ch2_freq; // + reg [31:0] r1_timecode_sig_selt; //信号源选择 0:none,1:bnc,2:headphone + reg [31:0] r2_timecode_format; // + reg [31:0] r3_timecode0; // + reg [31:0] r4_timecode1; // + reg [31:0] r5_freq; // reg [31:0] rA_freq_bias; // - wire [31:0] reg_wr_index; zutils_register_advanced #( .REG_START_ADD(REG_START_ADD) @@ -55,15 +50,12 @@ module timecode_input_parser #( .wr_en (wr_en), .rd_data(rd_data), - .reg1 (r1_timecode_sig_selt), - .reg2 (r2_ch1_timecode_format), - .reg3 (r3_ch1_timecode0), - .reg4 (r4_ch1_timecode1), - .reg5 (r5_ch1_freq), - .reg6 (r6_ch2_timecode_format), - .reg7 (r7_ch2_timecode0), - .reg8 (r8_ch2_timecode1), - .reg9 (r9_ch2_freq), + .reg1(r1_timecode_sig_selt), + .reg2(r2_timecode_format), + .reg3(r3_timecode0), + .reg4(r4_timecode1), + .reg5(r5_freq), + .regA (rA_freq_bias), .reg_wr_sig(reg_wr_sig), .reg_index (reg_wr_index) @@ -71,16 +63,10 @@ module timecode_input_parser #( always @(posedge clk or negedge rst_n) begin if (!rst_n) begin - r1_timecode_sig_selt <= 1; - r2_ch1_timecode_format <= 0; - r6_ch2_timecode_format <= 0; - rA_freq_bias <= `FREQ_DETECT_BIAS_DEFAULT; + rA_freq_bias <= `FREQ_DETECT_BIAS_DEFAULT; end else begin if (reg_wr_sig) begin case (reg_wr_index) - 31'h1: r1_timecode_sig_selt <= wr_data; - 31'h2: r2_ch1_timecode_format <= wr_data; - 31'h6: r6_ch2_timecode_format <= wr_data; 31'hA: rA_freq_bias <= wr_data; default: begin end @@ -89,16 +75,17 @@ module timecode_input_parser #( end end - wire ch1_timecode_tigger_sig; - wire [31:0] ch1_timecode_format; wire [63:0] ch1_timecode_data; wire ch1_timecode_serial_data; + wire [31:0] ch1_freq; + wire ch2_timecode_tigger_sig; - wire [31:0] ch2_timecode_format; wire [63:0] ch2_timecode_data; wire ch2_timecode_serial_data; + wire [31:0] ch2_freq; + timecode_decoder #( .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) @@ -116,7 +103,7 @@ module timecode_input_parser #( .rst_n (rst_n), .freq_detect_bias(rA_freq_bias), .pluse_input (ch1_timecode_tigger_sig), - .pluse_width_cnt (r5_ch1_freq) + .pluse_width_cnt (ch1_freq) ); timecode_decoder #( @@ -136,53 +123,68 @@ module timecode_input_parser #( .rst_n (rst_n), .freq_detect_bias(rA_freq_bias), .pluse_input (ch2_timecode_tigger_sig), - .pluse_width_cnt (r9_ch2_freq) + .pluse_width_cnt (ch2_freq) ); - always @(posedge clk or negedge rst_n) begin - if (!rst_n) begin - r3_ch1_timecode0 <= 0; - r4_ch1_timecode1 <= 0; - r7_ch2_timecode0 <= 0; - r8_ch2_timecode1 <= 0; - end else begin - if (ch1_timecode_tigger_sig) begin - r3_ch1_timecode0 <= ch1_timecode_data[31:0]; - r4_ch1_timecode1 <= ch1_timecode_data[63:32]; - end - if (ch2_timecode_tigger_sig) begin - r7_ch2_timecode0 <= ch2_timecode_data[31:0]; - r8_ch2_timecode1 <= ch2_timecode_data[63:32]; - end - end - end + reg [ 1:0] state; //! 0:探测中 1:探测完成 + reg [31:0] freq_cache; always @(posedge clk or negedge rst_n) begin if (!rst_n) begin - timecode_tigger_sig <= 0; - timecode_format <= 32'hF; - timecode_data <= 0; - timecode_serial_data <= 0; + state <= 0; + r2_timecode_format <= 32'hFFFF_FFFF; + r3_timecode0 <= 0; + r4_timecode1 <= 0; + r5_freq <= 0; + r1_timecode_sig_selt <= 0; + freq_cache <= 0; end else begin - case (r1_timecode_sig_selt) + case (state) + 0: begin + r2_timecode_format <= 32'hFFFF_FFFF; + r5_freq <= 0; + r1_timecode_sig_selt <= 0; + r3_timecode0 <= 0; + r4_timecode1 <= 0; + timecode_tigger_sig <= 0; + + if (ch1_freq != 0) begin + state <= 1; + freq_cache <= ch1_freq; + end else if (ch2_freq != 0) begin + state <= 2; + freq_cache <= ch2_freq; + end + + end 1: begin - timecode_tigger_sig <= ch1_timecode_tigger_sig; - timecode_format <= r2_ch1_timecode_format; - timecode_data <= ch1_timecode_data; - timecode_serial_data <= ch1_timecode_serial_data; + if (freq_cache != ch1_freq) begin + state <= 0; + freq_cache <= 0; + end else begin + r5_freq <= ch1_freq; + r1_timecode_sig_selt <= 1; + r3_timecode0 <= ch1_timecode_data[31:0]; + r4_timecode1 <= ch1_timecode_data[63:32]; + timecode_tigger_sig <= ch1_timecode_tigger_sig; + end end + 2: begin - timecode_tigger_sig <= ch2_timecode_tigger_sig; - timecode_format <= r6_ch2_timecode_format; - timecode_data <= ch2_timecode_data; - timecode_serial_data <= ch2_timecode_serial_data; + if (freq_cache != ch2_freq) begin + state <= 0; + freq_cache <= 0; + end else begin + r5_freq <= ch2_freq; + r1_timecode_sig_selt <= 2; + r3_timecode0 <= ch2_timecode_data[31:0]; + r4_timecode1 <= ch2_timecode_data[63:32]; + timecode_tigger_sig <= ch2_timecode_tigger_sig; + end end default: begin - timecode_tigger_sig <= 0; - timecode_format <= 32'hF; - timecode_data <= 0; - timecode_serial_data <= 0; + state <= 0; end endcase end diff --git a/source/src/internal/internal_timecode_generator.v b/source/src/internal/internal_timecode_generator.v index 0fd27e5..f3e07c5 100644 --- a/source/src/internal/internal_timecode_generator.v +++ b/source/src/internal/internal_timecode_generator.v @@ -45,6 +45,7 @@ module internal_timecode_generator #( .reg2 (reg2_timecode_format), .reg3 (reg3_timecode_data0), .reg4 (reg4_timecode_data1), + .reg5 (reg5_detect_freq), .reg_wr_sig(reg_wr_sig), .reg_index (reg_wr_index) ); @@ -96,7 +97,7 @@ module internal_timecode_generator #( zutils_freq_detector_v2 freq_detector1 ( .clk (clk), .rst_n (rst_n), - .freq_detect_bias(1), + .freq_detect_bias(10), .pluse_input (timecode_tigger_sig), .pluse_width_cnt (reg5_detect_freq) ); diff --git a/source/src/sys_signal_delayer.v b/source/src/sys_signal_delayer.v index c8bd054..b0f9753 100644 --- a/source/src/sys_signal_delayer.v +++ b/source/src/sys_signal_delayer.v @@ -71,18 +71,22 @@ module sys_signal_delayer #( end assign delayer_rst_n = delayer_rst_n_ctrl & rst_n; - genvar i; - generate - for (i = 0; i <= SIG_BUS_WIDTH; i = i + 1) begin - zutils_sig_delayer_v2 sig_delayer_inst ( - .clk (clk), - .rst_n (delayer_rst_n), - .delay_cnt(delay_ctrl[i]), - .in (sig_in[i]), - .out (sig_out[i]) - ); - end - endgenerate + // genvar i; + // generate + // for (i = 0; i <= SIG_BUS_WIDTH; i = i + 1) begin + // // zutils_sig_delayer_v2 sig_delayer_inst ( + // // .clk (clk), + // // .rst_n (delayer_rst_n), + // // .delay_cnt(delay_ctrl[i]), + // // .in (sig_in[i]), + // // .out (sig_out[i]) + // // ); + + // assign sig_out[i] = sig_in[i]; + // end + // endgenerate + + assign sig_out = sig_in; endmodule diff --git a/source/src/top.v b/source/src/top.v index 2f2e388..0a6ac6e 100644 --- a/source/src/top.v +++ b/source/src/top.v @@ -130,6 +130,10 @@ module Top ( wire signal_sys_timecode_freq_output; //! 系统时间码频率输出 wire signal_business_record_en_sig; //! 业务摄影状态信号 wire signal_business_record_exposure_sig; //! 业务摄影拍照曝光信号 + wire signal_business_record_en_rsing_edge_sig; //! 业务摄影状态信号 + wire signal_business_record_en_falling_edge_sig; //! 业务摄影状态信号 + wire signal_business_record_en_edge_sig; //! 业务摄影状态信号 + wire internal_timecode_tigger_sig; //!内部timecode频率信号 wire [31:0] internal_timecode_format; //!内部timecode格式 @@ -147,27 +151,31 @@ module Top ( wire [31:0] sig_src; // 系统内部信号总线 - assign sig_src[`SIGNAL_LOGIC0] = signal_logic0; - assign sig_src[`SIGNAL_LOGIC1] = signal_logic1; - assign sig_src[`SIGNAL_TTLIN1] = signal_ttlin1; - assign sig_src[`SIGNAL_TTLIN2] = signal_ttlin2; - assign sig_src[`SIGNAL_TTLIN3] = signal_ttlin3; - assign sig_src[`SIGNAL_TTLIN4] = signal_ttlin4; - assign sig_src[`SIGNAL_EXT_GENLOCK_FREQ] = signal_ext_genlock_freq; - assign sig_src[`SIGNAL_EXT_TIMECODE_FREQ] = signal_ext_timecode_freq; - assign sig_src[`SIGNAL_INTERNAL_TIMECODE_FREQ] = signal_internal_timecode_freq; - assign sig_src[`SIGNAL_INTERNAL_GENLOCK_FREQ] = signal_internal_genlock_freq; - assign sig_src[`SIGNAL_INTERNAL_CLOCK_SIG] = signal_internal_clk_sig; - assign sig_src[`SIGNAL_SYS_CLK_OUTPUT] = signal_sys_clk_output; - assign sig_src[`SIGNAL_SYS_GENLOCK_OUTPUT] = signal_sys_genlock_output; - assign sig_src[`SIGNAL_SYS_TIMECODE_FREQ_OUTPUT] = signal_sys_timecode_freq_output; - assign sig_src[`SIGNAL_BUSINESS_RECORD_SIG] = signal_business_record_en_sig; - assign sig_src[`SIGNAL_BUSINESS_RECORD_EXPOSURE_SIG] = signal_business_record_exposure_sig; - - assign signal_logic0 = 1'b0; - assign signal_logic1 = 1'b1; - assign signal_internal_timecode_freq = internal_timecode_serial_data; - assign signal_sys_timecode_freq_output = sys_timecode_tigger_sig; + assign sig_src[`SIGNAL_LOGIC0] = signal_logic0; + assign sig_src[`SIGNAL_LOGIC1] = signal_logic1; + assign sig_src[`SIGNAL_TTLIN1] = signal_ttlin1; + assign sig_src[`SIGNAL_TTLIN2] = signal_ttlin2; + assign sig_src[`SIGNAL_TTLIN3] = signal_ttlin3; + assign sig_src[`SIGNAL_TTLIN4] = signal_ttlin4; + assign sig_src[`SIGNAL_EXT_GENLOCK_FREQ] = signal_ext_genlock_freq; + assign sig_src[`SIGNAL_EXT_TIMECODE_FREQ] = signal_ext_timecode_freq; + assign sig_src[`SIGNAL_INTERNAL_TIMECODE_FREQ] = signal_internal_timecode_freq; + assign sig_src[`SIGNAL_INTERNAL_GENLOCK_FREQ] = signal_internal_genlock_freq; + assign sig_src[`SIGNAL_INTERNAL_CLOCK_SIG] = signal_internal_clk_sig; + assign sig_src[`SIGNAL_SYS_CLK_OUTPUT] = signal_sys_clk_output; + assign sig_src[`SIGNAL_SYS_GENLOCK_OUTPUT] = signal_sys_genlock_output; + assign sig_src[`SIGNAL_SYS_TIMECODE_FREQ_OUTPUT] = signal_sys_timecode_freq_output; + assign sig_src[`SIGNAL_BUSINESS_RECORD_SIG] = signal_business_record_en_sig; + assign sig_src[`SIGNAL_BUSINESS_RECORD_EXPOSURE_SIG] = signal_business_record_exposure_sig; + assign sig_src[`SIGNAL_BUSINESS_RECORD_EN_RSING_EDGE_SIG] = signal_business_record_en_rsing_edge_sig; + assign sig_src[`SIGNAL_BUSINESS_RECORD_EN_FALLING_EDGE_SIG] = signal_business_record_en_falling_edge_sig; + assign sig_src[`SIGNAL_BUSINESS_RECORD_EN_EDGE_SIG] = signal_business_record_en_edge_sig; + + + assign signal_logic0 = 1'b0; + assign signal_logic1 = 1'b1; + assign signal_internal_timecode_freq = internal_timecode_serial_data; + assign signal_sys_timecode_freq_output = sys_timecode_tigger_sig; //系统时钟源 @@ -216,9 +224,7 @@ module Top ( ); - /******************************************************************************* - * FPGA_INFO * - *******************************************************************************/ + zutils_register16 #( .REG_START_ADD(`REGADDOFF__FPGA_INFO), .REG0_INIT(`VERSION), @@ -246,6 +252,64 @@ module Top ( .rd_data(rd_data_module_fpga_info) ); + wire [15:0] sys_sig_delay_in; + wire [15:0] sys_sig_delay_out; + + wire before_delay__sync_ttl_out1; + wire before_delay__sync_ttl_out2; + wire before_delay__sync_ttl_out3; + wire before_delay__sync_ttl_out4; + wire before_delay__stm32if_start_signal_out; + wire before_delay__stm32if_camera_sync_out; + wire before_delay__stm32if_timecode_sync_out; + + wire af_delay__sync_ttl_in1; + wire af_delay__sync_ttl_in2; + wire af_delay__sync_ttl_in3; + wire af_delay__sync_ttl_in4; + wire af_delay__timecode_headphone_in; + wire af_delay__timecode_bnc_in; + wire af_delay__genlock_in_hsync; + wire af_delay__genlock_in_vsync; + wire af_delay__genlock_in_fsync; + + + assign sys_sig_delay_in[0] = sync_ttl_in1; // + assign sys_sig_delay_in[1] = sync_ttl_in2; // + assign sys_sig_delay_in[2] = sync_ttl_in3; // + assign sys_sig_delay_in[3] = sync_ttl_in4; // + assign sys_sig_delay_in[4] = timecode_headphone_in; // + assign sys_sig_delay_in[5] = timecode_bnc_in; // + assign sys_sig_delay_in[6] = genlock_in_hsync; // + assign sys_sig_delay_in[7] = genlock_in_vsync; // + assign sys_sig_delay_in[8] = genlock_in_fsync; // + assign sys_sig_delay_in[9] = before_delay__sync_ttl_out1; // + assign sys_sig_delay_in[10] = before_delay__sync_ttl_out2; // + assign sys_sig_delay_in[11] = before_delay__sync_ttl_out3; // + assign sys_sig_delay_in[12] = before_delay__sync_ttl_out4; // + assign sys_sig_delay_in[13] = before_delay__stm32if_start_signal_out; // + assign sys_sig_delay_in[14] = before_delay__stm32if_camera_sync_out; // + assign sys_sig_delay_in[15] = before_delay__stm32if_timecode_sync_out; // + + assign af_delay__sync_ttl_in1 = sys_sig_delay_out[0]; + assign af_delay__sync_ttl_in2 = sys_sig_delay_out[1]; + assign af_delay__sync_ttl_in3 = sys_sig_delay_out[2]; + assign af_delay__sync_ttl_in4 = sys_sig_delay_out[3]; + assign af_delay__timecode_headphone_in = sys_sig_delay_out[4]; + assign af_delay__timecode_bnc_in = sys_sig_delay_out[5]; + assign af_delay__genlock_in_hsync = sys_sig_delay_out[6]; + assign af_delay__genlock_in_vsync = sys_sig_delay_out[7]; + assign af_delay__genlock_in_fsync = sys_sig_delay_out[8]; + assign sync_ttl_out1 = sys_sig_delay_out[9]; + assign sync_ttl_out2 = sys_sig_delay_out[10]; + assign sync_ttl_out3 = sys_sig_delay_out[11]; + assign sync_ttl_out4 = sys_sig_delay_out[12]; + assign stm32if_start_signal_out = sys_sig_delay_out[13]; + assign stm32if_camera_sync_out = sys_sig_delay_out[14]; + assign stm32if_timecode_sync_out = sys_sig_delay_out[15]; + + + sys_signal_delayer #( .REG_START_ADD (`REGADDOFF__DELAYER), .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) @@ -258,80 +322,79 @@ module Top ( .wr_en (RegReaderBus_wr_en), .rd_data(rd_data_module_sys_signal_delayer), - .sig_in({ - sync_ttl_in1, //0 - sync_ttl_in2, //1 - sync_ttl_in3, //2 - sync_ttl_in4, //3 - timecode_headphone_in, //4 - timecode_bnc_in, //5 - genlock_in_hsync, //6 - genlock_in_vsync, //7 - genlock_in_fsync, //8 - - before_delay__sync_ttl_out1, //9 - before_delay__sync_ttl_out2, //10 - before_delay__sync_ttl_out3, //11 - before_delay__sync_ttl_out4, //12 - before_delay__stm32if_start_signal_out, //13 - before_delay__stm32if_camera_sync_out, //14 - before_delay__stm32if_timecode_sync_out //15 - }), - .sig_out({ - af_delay__sync_ttl_in1, //0 - af_delay__sync_ttl_in2, //1 - af_delay__sync_ttl_in3, //2 - af_delay__sync_ttl_in4, //3 - af_delay__timecode_headphone_in, //4 - af_delay__timecode_bnc_in, //5 - af_delay__genlock_in_hsync, //6 - af_delay__genlock_in_vsync, //7 - af_delay__genlock_in_fsync, //8 - sync_ttl_out1, //9 - sync_ttl_out2, //10 - sync_ttl_out3, //11 - sync_ttl_out4, //12 - stm32if_start_signal_out, //13 - stm32if_camera_sync_out, //14 - stm32if_timecode_sync_out //15 - }) + .sig_in (sys_sig_delay_in), + .sig_out(sys_sig_delay_out) ); - /******************************************************************************* - * TTL输入模块 * - *******************************************************************************/ - ttl_input #( - .REG_START_ADD (`REGADDOFF__TTLIN), + internal_sig_generator_en_contrler #( + .REG_START_ADD (`REGADDOFF__INTERNAL_SIG_EN_CONTRLER), .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) - ) ttl_inputr_ins ( + ) internal_sig_generator_en_contrler0 ( .clk (sys_clk), .rst_n(sys_rst_n), .addr (RegReaderBus_addr), .wr_data(RegReaderBus_wr_data), .wr_en (RegReaderBus_wr_en), - .rd_data(rd_data_module_ttlin), + .rd_data(rd_data_module_internal_sig_en_contrler), - .ttlin1_raw(af_delay__sync_ttl_in1), - .ttlin2_raw(af_delay__sync_ttl_in2), - .ttlin3_raw(af_delay__sync_ttl_in3), - .ttlin4_raw(!af_delay__sync_ttl_in4), //in4电路上进行了反向 + .en0(en0), + .en1(en1), + .en2(en2) + ); - //指示灯 - .ttlin1_state_led(sync_ttl_in1_state_led), - .ttlin2_state_led(sync_ttl_in2_state_led), - .ttlin3_state_led(sync_ttl_in3_state_led), - .ttlin4_state_led(sync_ttl_in4_state_led), - //原始信号 - .sig_ttlin1(signal_ttlin1), - .sig_ttlin2(signal_ttlin2), - .sig_ttlin3(signal_ttlin3), - .sig_ttlin4(signal_ttlin4) + + internal_timecode_generator #( + .REG_START_ADD(`REGADDOFF__INTERNAL_TIMECODE), + .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ), + .ID(1) + ) internal_timecode_generator0 ( + .clk (sys_clk), + .rst_n(sys_rst_n), + + .addr (RegReaderBus_addr), + .wr_data(RegReaderBus_wr_data), + .wr_en (RegReaderBus_wr_en), + .rd_data(rd_data_module_internal_timecode), + + .en(en0), + + .timecode_tigger_sig (internal_timecode_tigger_sig), + .timecode_format (internal_timecode_format), + .timecode_data (internal_timecode_data), + .timecode_serial_data(internal_timecode_serial_data) ); + sys_timecode #( + .REG_START_ADD (`REGADDOFF__SYS_TIMECODE), + .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) + ) sys_timecode_ins ( + .clk (sys_clk), + .rst_n(sys_rst_n), + + .addr (RegReaderBus_addr), + .wr_data(RegReaderBus_wr_data), + .wr_en (RegReaderBus_wr_en), + .rd_data(rd_data_module_sys_timecode), + + .internal_timecode_tigger_sig (internal_timecode_tigger_sig), + .internal_timecode_format (internal_timecode_format), + .internal_timecode_data (internal_timecode_data), + .internal_timecode_serial_data(internal_timecode_serial_data), + + .external_timecode_tigger_sig (ext_timecode_tigger_sig), + .external_timecode_format (ext_timecode_format), + .external_timecode_data (ext_timecode_data), + .external_timecode_serial_data(ext_timecode_serial_data), + + .sys_timecode_tigger_sig (sys_timecode_tigger_sig), + .sys_timecode_format (sys_timecode_format), + .sys_timecode_data (sys_timecode_data), + .sys_timecode_serial_data(sys_timecode_serial_data) + ); timecode_input_parser #( .REG_START_ADD (`REGADDOFF__TIMECODE_IN), @@ -358,71 +421,62 @@ module Top ( .timecode_bnc_in_state_led (timecode_bnc_in_state_led) ); - genlock_input_module #( - .REG_START_ADD (`REGADDOFF__GENLOCK_IN), + timecode_output #( + .REG_START_ADD (`REGADDOFF__TIMECODE_OUT), .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) - ) genlock_input ( + ) timecode_output_inst ( + .clk (sys_clk), .rst_n(sys_rst_n), .addr (RegReaderBus_addr), .wr_data(RegReaderBus_wr_data), .wr_en (RegReaderBus_wr_en), - .rd_data(rd_data_module_genlock_in), + .rd_data(rd_data_module_timecode_out), - .genlock_in_hsync(af_delay__genlock_in_hsync), - .genlock_in_vsync(af_delay__genlock_in_vsync), - .genlock_in_fsync(af_delay__genlock_in_fsync), + .in_timecode_tigger_sig (sys_timecode_tigger_sig), + .in_timecode_format (sys_timecode_format), + .in_timecode_data (sys_timecode_data), + .in_timecode_serial_data(sys_timecode_serial_data), + + .timecode_out_bnc (timecode_out_bnc), + .timecode_out_bnc_select (timecode_out_bnc_select), + .timecode_out_bnc_state_led(timecode_out_bnc_state_led), + + .timecode_out_headphone (timecode_out_headphone), + .timecode_out_headphone_select (timecode_out_headphone_select), + .timecode_out_headphone_state_led(timecode_out_headphone_state_led) - .genlock_freq_signal (signal_ext_genlock_freq), - .genlock_in_state_led(genlock_in_state_led) ); + // - /******************************************************************************* - * 内部信号源 * - *******************************************************************************/ - internal_sig_generator_en_contrler #( - .REG_START_ADD (`REGADDOFF__INTERNAL_SIG_EN_CONTRLER), - .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) - ) internal_sig_generator_en_contrler0 ( - .clk (sys_clk), - .rst_n(sys_rst_n), - .addr (RegReaderBus_addr), - .wr_data(RegReaderBus_wr_data), - .wr_en (RegReaderBus_wr_en), - .rd_data(rd_data_module_internal_sig_en_contrler), - - .en0(en0), - .en1(en1), - .en2(en2) - ); - internal_timecode_generator #( - .REG_START_ADD(`REGADDOFF__INTERNAL_TIMECODE), - .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ), - .ID(1) - ) internal_timecode_generator0 ( + /* + genlock_input_module #( + .REG_START_ADD (`REGADDOFF__GENLOCK_IN), + .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) + ) genlock_input ( .clk (sys_clk), .rst_n(sys_rst_n), .addr (RegReaderBus_addr), .wr_data(RegReaderBus_wr_data), .wr_en (RegReaderBus_wr_en), - .rd_data(rd_data_module_internal_timecode), + .rd_data(rd_data_module_genlock_in), - .en(en0), + .genlock_in_hsync(af_delay__genlock_in_hsync), + .genlock_in_vsync(af_delay__genlock_in_vsync), + .genlock_in_fsync(af_delay__genlock_in_fsync), - .timecode_tigger_sig (internal_timecode_tigger_sig), - .timecode_format (internal_timecode_format), - .timecode_data (internal_timecode_data), - .timecode_serial_data(internal_timecode_serial_data) + .genlock_freq_signal (signal_ext_genlock_freq), + .genlock_in_state_led(genlock_in_state_led) ); - internal_genlock_generator #( + internal_genlock_generator #( .REG_START_ADD (`REGADDOFF__INTERNAL_GENLOCK), .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) ) internal_genlock_generator0 ( @@ -456,36 +510,34 @@ module Top ( .clk_output(signal_internal_clk_sig) ); - /******************************************************************************* - * SYS * - *******************************************************************************/ - - sys_timecode #( - .REG_START_ADD (`REGADDOFF__SYS_TIMECODE), + ttl_input #( + .REG_START_ADD (`REGADDOFF__TTLIN), .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) - ) sys_timecode_ins ( + ) ttl_inputr_ins ( .clk (sys_clk), .rst_n(sys_rst_n), .addr (RegReaderBus_addr), .wr_data(RegReaderBus_wr_data), .wr_en (RegReaderBus_wr_en), - .rd_data(rd_data_module_sys_timecode), + .rd_data(rd_data_module_ttlin), - .internal_timecode_tigger_sig (internal_timecode_tigger_sig), - .internal_timecode_format (internal_timecode_format), - .internal_timecode_data (internal_timecode_data), - .internal_timecode_serial_data(internal_timecode_serial_data), + .ttlin1_raw(af_delay__sync_ttl_in1), + .ttlin2_raw(af_delay__sync_ttl_in2), + .ttlin3_raw(af_delay__sync_ttl_in3), + .ttlin4_raw(!af_delay__sync_ttl_in4), //in4电路上进行了反向 - .external_timecode_tigger_sig (ext_timecode_tigger_sig), - .external_timecode_format (ext_timecode_format), - .external_timecode_data (ext_timecode_data), - .external_timecode_serial_data(ext_timecode_serial_data), + //指示灯 + .ttlin1_state_led(sync_ttl_in1_state_led), + .ttlin2_state_led(sync_ttl_in2_state_led), + .ttlin3_state_led(sync_ttl_in3_state_led), + .ttlin4_state_led(sync_ttl_in4_state_led), - .sys_timecode_tigger_sig (sys_timecode_tigger_sig), - .sys_timecode_format (sys_timecode_format), - .sys_timecode_data (sys_timecode_data), - .sys_timecode_serial_data(sys_timecode_serial_data) + //原始信号 + .sig_ttlin1(signal_ttlin1), + .sig_ttlin2(signal_ttlin2), + .sig_ttlin3(signal_ttlin3), + .sig_ttlin4(signal_ttlin4) ); @@ -506,7 +558,6 @@ module Top ( .sys_genlock_tigger_sig(signal_sys_genlock_output) ); - sys_clock #( .REG_START_ADD (`REGADDOFF__SYS_CLOCK), .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) @@ -523,9 +574,33 @@ module Top ( .sys_clock(signal_sys_clk_output) ); - /******************************************************************************* - * TTL_OUTPUT * - *******************************************************************************/ + camera_sync_signal_output #( + .REG_START_ADD (`REGADDOFF__CAMERA_SYNC_OUT), + .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) +) camera_sync_signal_output0 ( + .clk (sys_clk), + .rst_n(sys_rst_n), + + .addr (RegReaderBus_addr), + .wr_data(RegReaderBus_wr_data), + .wr_en (RegReaderBus_wr_en), + .rd_data(rd_data_module_camera_sync_out), + + .in_timecode_tigger_sig (sys_timecode_tigger_sig), + .in_timecode_format (sys_timecode_format), + .in_timecode_data (sys_timecode_data), + .in_timecode_serial_data(sys_timecode_serial_data), + + .frame_sig (signal_sys_clk_output), + .record_en_sig(signal_business_record_en_sig), + + + .stm32if_camera_sync_out (before_delay__stm32if_camera_sync_out), + .stm32if_record_state_change_sig(before_delay__stm32if_start_signal_out), + .stm32if_timecode_tigger_sig (before_delay__stm32if_timecode_sync_out) +); + + ttl_output #( .REG_START_ADD(`REGADDOFF__TTLOUT1), @@ -602,33 +677,7 @@ module Top ( .ttloutput_state_led(sync_ttl_out4_state_led) ); - timecode_output #( - .REG_START_ADD (`REGADDOFF__TIMECODE_OUT), - .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) - ) timecode_output_inst ( - - .clk (sys_clk), - .rst_n(sys_rst_n), - - .addr (RegReaderBus_addr), - .wr_data(RegReaderBus_wr_data), - .wr_en (RegReaderBus_wr_en), - .rd_data(rd_data_module_timecode_out), - - .in_timecode_tigger_sig (sys_timecode_tigger_sig), - .in_timecode_format (sys_timecode_format), - .in_timecode_data (sys_timecode_data), - .in_timecode_serial_data(sys_timecode_serial_data), - - .timecode_out_bnc (timecode_out_bnc), - .timecode_out_bnc_select (timecode_out_bnc_select), - .timecode_out_bnc_state_led(timecode_out_bnc_state_led), - .timecode_out_headphone (timecode_out_headphone), - .timecode_out_headphone_select (timecode_out_headphone_select), - .timecode_out_headphone_state_led(timecode_out_headphone_state_led) - - ); record_sig_generator #( .REG_START_ADD(`REGADDOFF__RECORD_SIG_GENERATOR), @@ -648,46 +697,34 @@ module Top ( .ttlin3_sig(signal_ttlin3), .ttlin4_sig(signal_ttlin4), - .frame_freq_sig (signal_sys_clk_output), + .frame_freq_sig(signal_sys_clk_output), + + .out_record_en_rsing_edge_sig (signal_business_record_en_rsing_edge_sig), + .out_record_en_falling_edge_sig(signal_business_record_en_falling_edge_sig), + .out_record_en_edge_sig (signal_business_record_en_edge_sig), + .sys_timecode_tigger_sig(sys_timecode_tigger_sig), .sys_timecode_data (sys_timecode_data), .out_record_en_sig (signal_business_record_en_sig), .out_record_exposure_sig(signal_business_record_exposure_sig) ); - - camera_sync_signal_output #( - .REG_START_ADD (`REGADDOFF__CAMERA_SYNC_OUT), - .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ) - ) camera_sync_signal_output0 ( - .clk (sys_clk), - .rst_n(sys_rst_n), - - .addr (RegReaderBus_addr), - .wr_data(RegReaderBus_wr_data), - .wr_en (RegReaderBus_wr_en), - .rd_data(rd_data_module_camera_sync_out), - - .frame_sig (signal_sys_clk_output), - .record_en_sig(signal_business_record_en_sig), - - .stm32if_camera_sync_out (before_delay__stm32if_camera_sync_out), - .stm32if_record_state_change_sig(before_delay__stm32if_start_signal_out), - .stm32if_timecode_tigger_sig(before_delay__stm32if_timecode_sync_out) - ); - - assign debug_signal_output[0] = sys_clk; - assign debug_signal_output[1] = sync_ttl_in1; - assign debug_signal_output[2] = af_delay__sync_ttl_in1; - assign debug_signal_output[3] = sync_ttl_in3; - assign debug_signal_output[4] = sync_ttl_in4; - assign debug_signal_output[5] = sync_ttl_out1; - assign debug_signal_output[6] = sync_ttl_out2; - assign debug_signal_output[7] = sync_ttl_out3; - assign debug_signal_output[8] = sync_ttl_out4; - assign debug_signal_output[9] = genlock_in_fsync; - assign debug_signal_output[10] = timecode_headphone_in; - assign debug_signal_output[11] = timecode_bnc_in; + */ + + + + assign debug_signal_output[0] = timecode_bnc_in; + assign debug_signal_output[1] = af_delay__timecode_headphone_in; + assign debug_signal_output[2] = timecode_headphone_in; + assign debug_signal_output[3] = sync_ttl_in1; + assign debug_signal_output[4] = sync_ttl_in1; + // assign debug_signal_output[5] = af_delay__sync_ttl_in1; + // assign debug_signal_output[6] = af_delay__sync_ttl_in1; + // assign debug_signal_output[7] = af_delay__sync_ttl_in1; + // assign debug_signal_output[8] = af_delay__sync_ttl_in1; + // assign debug_signal_output[9] = af_delay__genlock_in_vsync; + // assign debug_signal_output[10] = af_delay__timecode_headphone_in; + // assign debug_signal_output[11] = af_delay__timecode_bnc_in; assign debug_signal_output[12] = timecode_out_headphone; assign debug_signal_output[13] = timecode_out_bnc; assign debug_signal_output[15] = 0; diff --git a/source/src/zutils/zsimple_pll.v b/source/src/zutils/zsimple_pll.v index d622add..bf74a65 100644 --- a/source/src/zutils/zsimple_pll.v +++ b/source/src/zutils/zsimple_pll.v @@ -27,7 +27,7 @@ module zsimple_pll ( wire insignal_rising_edge; //! 输入信号上升沿 wire insignal_falling_edge; //! 输入信号下降沿 - wire insignal_trigger_sig; //! 触发信号 + reg insignal_trigger_sig; //! 触发信号 wire module_reset; //! 模块内部复位信号 reg insignal_division; //! 输入信号分频后的信号 @@ -44,7 +44,17 @@ module zsimple_pll ( ); - assign insignal_trigger_sig = trigger_eage_type ? insignal_rising_edge : insignal_falling_edge; + always @(*) begin + case (trigger_eage_type) + 0: insignal_trigger_sig <= insignal_rising_edge; + 1: insignal_trigger_sig <= insignal_rising_edge; + 2: insignal_trigger_sig <= insignal_rising_edge; + default: + insignal_trigger_sig <= insignal_rising_edge; + endcase + end + + // assign insignal_trigger_sig = trigger_eage_type ? insignal_rising_edge : insignal_falling_edge; assign module_reset = !rst_n || cfg_change; // 分频