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

  1. `timescale 10ns / 10ns
  2. module test_timecode_decoder;
  3. reg sys_clk;
  4. reg rst_n;
  5. reg timecode_in;
  6. reg one_timecode_end;
  7. reg datanow;
  8. wire timecode_in_state;
  9. wire timecode_tigger_sig;
  10. wire [63:0] timecode_data;
  11. wire timecode_serial_data;
  12. reg [7:0] offset;
  13. timecode_decoder #(
  14. .SYS_CLOCK_FREQ(10000000)
  15. ) timecode_decoder_inst (
  16. .clk (sys_clk),
  17. .rst_n(rst_n),
  18. .timecode_in(timecode_in),
  19. .timecode_in_state(timecode_in_state),
  20. .timecode_tigger_sig(timecode_tigger_sig),
  21. .timecode_data(timecode_data),
  22. .timecode_serial_data(timecode_serial_data)
  23. );
  24. // 250us
  25. task timecode_generator;
  26. input [79:0] data;
  27. integer i;
  28. begin
  29. for (i = 0; i < 80; i = i + 1) begin
  30. offset = i;
  31. if (data[i]) begin
  32. datanow = 1;
  33. end else begin
  34. datanow = 0;
  35. end
  36. timecode_in = ~timecode_in;
  37. #25000;
  38. if (data[i]) begin
  39. timecode_in = ~timecode_in;
  40. end
  41. #25000;
  42. end
  43. end
  44. endtask
  45. initial begin
  46. sys_clk = 0;
  47. rst_n = 0;
  48. #100;
  49. rst_n = 1;
  50. timecode_in = 0;
  51. one_timecode_end = 0;
  52. #100;
  53. //
  54. // timecode_generator(79'h1234_4321_1234_4321_CFFB);
  55. // timecode_generator(79'h0000_0000_0000_0000_CFFB);
  56. timecode_generator(80'hBFFC_0000_0000_0000_0000);
  57. // timecode_generator(79'b1011_1111_1111_1100_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
  58. //FFFF
  59. //4444
  60. //16+16+16+16+16
  61. // 32 32 80
  62. //
  63. // timecode_generator(79'hBFFC_0000_0000_0000_0000);
  64. // timecode_generator(79'hBFFC_0000_0000_0000_0000);
  65. one_timecode_end = 1;
  66. #1000000;
  67. timecode_generator(80'hBFFC_0102_0304_0506_0102);
  68. #100000000;
  69. $stop;
  70. end
  71. always #5 sys_clk = ~sys_clk; // 50MHZ时钟
  72. endmodule