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.

58 lines
1.6 KiB

2 years ago
  1. module timecode_comparator (
  2. input [31:0] timecodeA0,
  3. input [31:0] timecodeA1,
  4. input [31:0] timecodeB0,
  5. input [31:0] timecodeB1,
  6. output eq
  7. );
  8. wire [7:0] a_frame;
  9. wire [7:0] a_frame10;
  10. wire [7:0] a_sec;
  11. wire [7:0] a_sec10;
  12. wire [7:0] a_min;
  13. wire [7:0] a_min10;
  14. wire [7:0] a_hour;
  15. wire [7:0] a_hour10;
  16. wire [7:0] b_frame;
  17. wire [7:0] b_frame10;
  18. wire [7:0] b_sec;
  19. wire [7:0] b_sec10;
  20. wire [7:0] b_min;
  21. wire [7:0] b_min10;
  22. wire [7:0] b_hour;
  23. wire [7:0] b_hour10;
  24. assign a_frame = timecodeA0[7:0] & 8'b0000_1111;
  25. assign a_frame10 = timecodeA0[15:8] & 8'b0000_0011;
  26. assign a_sec = timecodeA0[23:16] & 8'b0000_1111;
  27. assign a_sec10 = timecodeA0[31:24] & 8'b0000_0111;
  28. assign a_min = timecodeA1[7:0] & 8'b0000_1111;
  29. assign a_min10 = timecodeA1[15:8] & 8'b0000_0111;
  30. assign a_hour = timecodeA1[23:16] & 8'b0000_1111;
  31. assign a_hour10 = timecodeA1[31:24] & 8'b0000_0011;
  32. assign b_frame = timecodeB0[7:0] & 8'b0000_1111;
  33. assign b_frame10 = timecodeB0[15:8] & 8'b0000_0011;
  34. assign b_sec = timecodeB0[23:16] & 8'b0000_1111;
  35. assign b_sec10 = timecodeB0[31:24] & 8'b0000_0111;
  36. assign b_min = timecodeB1[7:0] & 8'b0000_1111;
  37. assign b_min10 = timecodeB1[15:8] & 8'b0000_0111;
  38. assign b_hour = timecodeB1[23:16] & 8'b0000_1111;
  39. assign b_hour10 = timecodeB1[31:24] & 8'b0000_0011;
  40. assign eq = a_frame == b_frame &&
  41. a_frame10 == b_frame10 &&
  42. a_sec == b_sec &&
  43. a_sec10 == b_sec10 &&
  44. a_min == b_min &&
  45. a_min10 == b_min10 &&
  46. a_hour == b_hour &&
  47. a_hour10 == b_hour10;
  48. endmodule