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.
84 lines
1.8 KiB
84 lines
1.8 KiB
`timescale 10ns / 10ns
|
|
module test_timecode_decoder;
|
|
reg sys_clk;
|
|
reg rst_n;
|
|
|
|
reg timecode_in;
|
|
|
|
reg one_timecode_end;
|
|
reg datanow;
|
|
|
|
wire timecode_in_state;
|
|
wire timecode_tigger_sig;
|
|
wire [63:0] timecode_data;
|
|
wire timecode_serial_data;
|
|
reg [7:0] offset;
|
|
|
|
timecode_decoder #(
|
|
.SYS_CLOCK_FREQ(10000000)
|
|
) timecode_decoder_inst (
|
|
.clk (sys_clk),
|
|
.rst_n(rst_n),
|
|
|
|
.timecode_in(timecode_in),
|
|
.timecode_in_state(timecode_in_state),
|
|
|
|
.timecode_tigger_sig(timecode_tigger_sig),
|
|
.timecode_data(timecode_data),
|
|
.timecode_serial_data(timecode_serial_data)
|
|
);
|
|
|
|
|
|
// 250us
|
|
task timecode_generator;
|
|
input [79:0] data;
|
|
integer i;
|
|
begin
|
|
for (i = 0; i < 80; i = i + 1) begin
|
|
offset = i;
|
|
if (data[i]) begin
|
|
datanow = 1;
|
|
end else begin
|
|
datanow = 0;
|
|
end
|
|
timecode_in = ~timecode_in;
|
|
#25000;
|
|
if (data[i]) begin
|
|
timecode_in = ~timecode_in;
|
|
end
|
|
#25000;
|
|
end
|
|
end
|
|
endtask
|
|
|
|
initial begin
|
|
sys_clk = 0;
|
|
rst_n = 0;
|
|
#100;
|
|
rst_n = 1;
|
|
timecode_in = 0;
|
|
one_timecode_end = 0;
|
|
#100;
|
|
|
|
//
|
|
// timecode_generator(79'h1234_4321_1234_4321_CFFB);
|
|
// timecode_generator(79'h0000_0000_0000_0000_CFFB);
|
|
timecode_generator(80'hBFFC_0000_0000_0000_0000);
|
|
// timecode_generator(79'b1011_1111_1111_1100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
|
|
//FFFF
|
|
//4444
|
|
//16+16+16+16+16
|
|
// 32 32 80
|
|
//
|
|
|
|
// timecode_generator(79'hBFFC_0000_0000_0000_0000);
|
|
// timecode_generator(79'hBFFC_0000_0000_0000_0000);
|
|
one_timecode_end = 1;
|
|
#1000000;
|
|
timecode_generator(80'hBFFC_0102_0304_0506_0102);
|
|
|
|
#100000000;
|
|
$stop;
|
|
end
|
|
always #5 sys_clk = ~sys_clk; // 50MHZ时钟
|
|
endmodule
|