From 6ff6fde24907506270199a382fe3ad8cfe96d64b Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 21 Feb 2024 22:50:42 +0800 Subject: [PATCH] V1.0 --- run_led.jdi | 2 +- run_led.pin | 4 ++-- run_led.pof | Bin 8388815 -> 8388815 bytes run_led.sof | Bin 358633 -> 358633 bytes run_led.sta.summary | 38 +++++++++++++++++------------------ source/top_module.v | 15 +++++++++++++- source/zutils_pluse_width_detecter.v | 8 ++++---- 7 files changed, 40 insertions(+), 27 deletions(-) diff --git a/run_led.jdi b/run_led.jdi index 14cab09..66c132b 100644 --- a/run_led.jdi +++ b/run_led.jdi @@ -1,6 +1,6 @@ - + diff --git a/run_led.pin b/run_led.pin index f072b58..daecadf 100644 --- a/run_led.pin +++ b/run_led.pin @@ -120,7 +120,7 @@ RESERVED_INPUT : 49 : : : lt_on_off_ctrl_1 : 50 : output : 3.3-V LVTTL : : 3 : Y lt_on_off_ctrl_2 : 51 : output : 3.3-V LVTTL : : 3 : Y RESERVED_INPUT : 52 : : : : 3 : -tp5 : 53 : output : 3.3-V LVTTL : : 3 : N +RESERVED_INPUT : 53 : : : : 3 : RESERVED_INPUT : 54 : : : : 4 : RESERVED_INPUT : 55 : : : : 4 : VCCIO4 : 56 : power : : 3.3V : 4 : @@ -166,7 +166,7 @@ GND : 95 : gnd : : MSEL1 : 96 : : : : 6 : MSEL2 : 97 : : : : 6 : RESERVED_INPUT : 98 : : : : 6 : -RESERVED_INPUT : 99 : : : : 6 : +tp5 : 99 : output : 3.3-V LVTTL : : 6 : N RESERVED_INPUT : 100 : : : : 6 : ~ALTERA_nCEO~ / RESERVED_OUTPUT_OPEN_DRAIN : 101 : output : 3.3-V LVTTL : : 6 : N VCCINT : 102 : power : : 1.2V : : diff --git a/run_led.pof b/run_led.pof index 67ef7840b0f218d48b12cde64ee48607b58e353c..7c431ad39b095df59af3a9d7da2f8543d9ae3307 100644 GIT binary patch delta 33580 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 Mg$)MV*PZA6AN1**#{d8T delta 13550 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 SPH&nqdwR1+A=|uV)Bgj*WLBX7 diff --git a/run_led.sof b/run_led.sof index 9c3570023e4c8b5037112fb38badaba9396a6cfd..7f94862ed5ab2c78cfa0a5b7e2373f4452078ee1 100644 GIT binary patch delta 19424 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 delta 9723 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 Yo_P}vOf84CER)g8Zno~`;y<_j7X}*k#{d8T diff --git a/run_led.sta.summary b/run_led.sta.summary index 43ae4b1..f5d9f65 100644 --- a/run_led.sta.summary +++ b/run_led.sta.summary @@ -3,63 +3,63 @@ TimeQuest Timing Analyzer Summary ------------------------------------------------------------ Type : Slow 1200mV 85C Model Setup 'clk' -Slack : -4.581 -TNS : -421.206 +Slack : -6.482 +TNS : -1403.642 Type : Slow 1200mV 85C Model Hold 'clk' -Slack : 0.433 +Slack : 0.432 TNS : 0.000 Type : Slow 1200mV 85C Model Recovery 'clk' -Slack : -1.252 -TNS : -31.619 +Slack : -2.126 +TNS : -454.792 Type : Slow 1200mV 85C Model Removal 'clk' -Slack : 0.694 +Slack : 2.018 TNS : 0.000 Type : Slow 1200mV 85C Model Minimum Pulse Width 'clk' Slack : -3.000 -TNS : -169.544 +TNS : -615.644 Type : Slow 1200mV 0C Model Setup 'clk' -Slack : -4.240 -TNS : -386.456 +Slack : -5.738 +TNS : -1270.445 Type : Slow 1200mV 0C Model Hold 'clk' Slack : 0.382 TNS : 0.000 Type : Slow 1200mV 0C Model Recovery 'clk' -Slack : -1.111 -TNS : -26.036 +Slack : -1.824 +TNS : -383.519 Type : Slow 1200mV 0C Model Removal 'clk' -Slack : 0.625 +Slack : 1.817 TNS : 0.000 Type : Slow 1200mV 0C Model Minimum Pulse Width 'clk' Slack : -3.000 -TNS : -169.544 +TNS : -615.644 Type : Fast 1200mV 0C Model Setup 'clk' -Slack : -1.267 -TNS : -110.384 +Slack : -2.296 +TNS : -387.010 Type : Fast 1200mV 0C Model Hold 'clk' Slack : 0.179 TNS : 0.000 Type : Fast 1200mV 0C Model Recovery 'clk' -Slack : -0.045 -TNS : -0.090 +Slack : -0.460 +TNS : -82.794 Type : Fast 1200mV 0C Model Removal 'clk' -Slack : 0.305 +Slack : 0.927 TNS : 0.000 Type : Fast 1200mV 0C Model Minimum Pulse Width 'clk' Slack : -3.000 -TNS : -151.106 +TNS : -544.450 ------------------------------------------------------------ diff --git a/source/top_module.v b/source/top_module.v index 2cf1dcc..7bfaf5d 100644 --- a/source/top_module.v +++ b/source/top_module.v @@ -61,6 +61,17 @@ module top_module ( wire [31:0] pluse_interval; //Âö³å¼ä϶ wire [31:0] pluse_shutter_delay; //¿ìÃÅÑÓ³Ù + reg trigger_input; + + always @(*) begin + if (stm32_pa4) begin + trigger_input <= !trigger_input0; + end else begin + trigger_input <= trigger_input0; + end + end + + zutils_pluse_width_detecter pluse_width_detecter0 ( .clk(clk), @@ -87,7 +98,7 @@ module top_module ( light_ctrl_pluse_generator light_ctrl_pluse_generator0 ( .clk(clk), .rst_n(rst_n), - .trigger(trigger_input0), + .trigger(trigger_input), .pluse_width(pluse_width), .pluse_interval(pluse_interval), .output_1(lt_on_off_ctrl_1), @@ -113,5 +124,7 @@ module top_module ( assign lt_intensity_3 = stm32_pc8; assign lt_intensity_4 = stm32_pc9; + assign tp8 = trigger_input; + endmodule diff --git a/source/zutils_pluse_width_detecter.v b/source/zutils_pluse_width_detecter.v index d7c449a..a2dc3ab 100644 --- a/source/zutils_pluse_width_detecter.v +++ b/source/zutils_pluse_width_detecter.v @@ -9,8 +9,8 @@ module zutils_pluse_width_detecter ( wire falling_edge; zutils_edge_detecter _signal_in ( - .clk(CLK), - .rst_n(RSTn), + .clk(clk), + .rst_n(rst_n), .in_signal(in_signal), .in_signal_rising_edge(rising_edge), .in_signal_falling_edge(falling_edge) @@ -19,8 +19,8 @@ module zutils_pluse_width_detecter ( reg [31:0] pluse_width_cnt; reg state; - always @(posedge CLK or negedge RSTn) begin - if (!RSTn) begin + always @(posedge clk or negedge rst_n) begin + if (!rst_n) begin in_signal_pluse_width <= 1; pluse_width_cnt <= 1; state <= 0;