Browse Source

reformat timecode decoder

master
zhaohe 1 year ago
parent
commit
87e676ebb6
  1. 35
      source/src/timecode/timecode_decoder.v

35
source/src/timecode/timecode_decoder.v

@ -17,12 +17,12 @@ module timecode_decoder #(
output timecode_serial_data output timecode_serial_data
); );
// Rate 1/2Fe 1Fe
// 23.98 F/s 260.7 us 521.4 us
// 24.00 F/s 260.4 us 520.8 us
// 25.00 F/s 250.0 us 500.0 us
// 29.97 F/s 208.5 us 417.1 us
// 30.00 F/s 208.3 us 416.7 us
// Rate us 1/2Fe 1Fe 1/2CNT 1CNT
// 23.98 F/s 41,701 260.7 us 521.4 us 2607 5214
// 24.00 F/s 41,666 260.4 us 520.8 us 2604 5208
// 25.00 F/s 40,000 250.0 us 500.0 us 2500 5000
// 29.97 F/s 33,366 208.5 us 417.1 us 2085 4171
// 30.00 F/s 33,333 208.3 us 416.7 us 2083 4167
// 260->520 -->130 // 260->520 -->130
// 208->416 -->104 // 208->416 -->104
@ -39,19 +39,21 @@ module timecode_decoder #(
wire timecode_sample_sig_generator_rest_sig; wire timecode_sample_sig_generator_rest_sig;
wire timecode_in_edge; wire timecode_in_edge;
assign timecode_sample_sig_generator_rest_sig = !timecode_in_edge & rst_n; assign timecode_sample_sig_generator_rest_sig = !timecode_in_edge & rst_n;
zutils_edge_detecter _signal_in ( zutils_edge_detecter _signal_in (
.clk(clk),
.rst_n(rst_n),
.in_signal(timecode_in),
.clk (clk),
.rst_n (rst_n),
.in_signal (timecode_in),
.in_signal_edge(timecode_in_edge) .in_signal_edge(timecode_in_edge)
); );
wire sample_sig; wire sample_sig;
timecode_sample_sig_generator #( timecode_sample_sig_generator #(
.SYS_CLOCK_FREQ(SYS_CLOCK_FREQ), .SYS_CLOCK_FREQ(SYS_CLOCK_FREQ),
.SAMPLE_RATE(854700) .SAMPLE_RATE(854700)
) timecode_sample_sig_generator ( ) timecode_sample_sig_generator (
.clk(clk),
.rst_n(timecode_sample_sig_generator_rest_sig),
.clk (clk),
.rst_n (timecode_sample_sig_generator_rest_sig),
.sample_sig(sample_sig) .sample_sig(sample_sig)
); );
@ -63,7 +65,7 @@ module timecode_decoder #(
timecode_data_cache <= 0; timecode_data_cache <= 0;
end else begin end else begin
if (sample_sig) begin if (sample_sig) begin
timecode_data_cache <= {timecode_in,timecode_data_cache[159:1]};
timecode_data_cache <= {timecode_in, timecode_data_cache[159:1]};
end else begin end else begin
timecode_data_cache <= timecode_data_cache; timecode_data_cache <= timecode_data_cache;
end end
@ -168,14 +170,13 @@ module timecode_decoder #(
wire detect_sync_code_sig; wire detect_sync_code_sig;
zutils_edge_detecter detect_sync_code_detect ( zutils_edge_detecter detect_sync_code_detect (
.clk(clk),
.rst_n(rst_n),
.in_signal(detect_sync_code),
.clk (clk),
.rst_n (rst_n),
.in_signal (detect_sync_code),
.in_signal_rising_edge(detect_sync_code_sig) .in_signal_rising_edge(detect_sync_code_sig)
); );
//输出时码识别信号 //输出时码识别信号
always @(posedge clk or negedge rst_n) begin always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin if (!rst_n) begin
timecode_tigger_sig <= 0; timecode_tigger_sig <= 0;
@ -190,4 +191,6 @@ module timecode_decoder #(
end end
end end
endmodule endmodule
Loading…
Cancel
Save