微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > SAA7113输出的是ITU656格式,SAA7121输入的也是ITU656格式,为什么不能直接相连

SAA7113输出的是ITU656格式,SAA7121输入的也是ITU656格式,为什么不能直接相连

时间:10-02 整理:3721RD 点击:
SAA7113输出的是ITU656格式,SAA7121输入的也是ITU656格式,为什么不能直接相连,要加上一个verilog写的解码模块receiver

  1. module receiver(
  2.         rst,                                       
  3.         qd,
  4.         clk,
  5.         
  6.         qd_out,
  7.         qfv,
  8.         qfv_odd,
  9.         qfv_even,
  10.         ODD_STATE
  11.         );                                       
  12. /*** ports ***/
  13. input        rst;
  14. input        [7:0]        qd;
  15. input        clk;

  16. output        [7:0]        qd_out;
  17. output        [2:0]        ODD_STATE;
  18. output        qfv,qfv_odd,qfv_even;
  19. //internal
  20. reg        [7:0]        qd_dly,qd_dly1,qd_dly2;

  21. always @ (posedge clk) begin        
  22.         qd_dly  <= qd;
  23.         qd_dly1 <= qd_dly;
  24.         qd_dly2 <= qd_dly1;
  25.         end
  26.         
  27. reg        [2:0]        ODD_STATE;
  28. always @ (posedge clk or negedge rst)
  29. if(!rst) begin
  30.         ODD_STATE <= 0;
  31.         end
  32. else
  33.         case(ODD_STATE)
  34.         3'd0:        if(qd_dly==8'hff)
  35.                                 ODD_STATE <= 3'd1;
  36.                         else
  37.                                 ODD_STATE <= 3'd0;
  38.         3'd1:        if(qd_dly==8'h00)
  39.                                 ODD_STATE <= 3'd2;
  40.                         else if(qd_dly==8'hff)
  41.                                 ODD_STATE <= 3'd1;
  42.                         else
  43.                                 ODD_STATE <= 3'd0;
  44.         3'd2:        if(qd_dly==8'h00)
  45.                                 ODD_STATE <= 3'd3;
  46.                         else
  47.                                 ODD_STATE <= 3'd0;
  48.         3'd3:        if(qd_dly==8'h80)
  49.                                 ODD_STATE <= 3'd4;
  50.                         else if(qd_dly==8'h9d)
  51.                                 ODD_STATE <= 3'd5;
  52.                         else if(qd_dly == 8'hc7)
  53.                                 ODD_STATE <= 3'd6;
  54.                         else if(qd_dly == 8'hda)
  55.                                 ODD_STATE <= 3'd7;
  56.                         else
  57.                                 ODD_STATE <= 3'd0;
  58.         3'd4:        ODD_STATE <= 1'b0;
  59.         3'd5:        ODD_STATE <= 1'b0;
  60.         3'd6:        ODD_STATE <= 1'b0;
  61.         3'd7:        ODD_STATE <= 1'b0;
  62.         endcase        
  63.         

  64. reg        [10:0]        qfv_cnt;
  65. reg        qfv_odd;
  66. always @ (posedge clk or negedge rst)
  67. if(!rst)
  68.         qfv_odd <= 1'b0;
  69. else if(ODD_STATE == 3'd4)
  70.         qfv_odd <= 1'b1;
  71. else if(qfv_cnt == 11'd1439)
  72.         qfv_odd <= 1'b0;
  73.         
  74. reg        qfv_even;
  75. always @ (posedge clk or negedge rst)
  76. if(!rst)
  77.         qfv_even <= 1'b0;
  78. else if(ODD_STATE == 3'd6)
  79.         qfv_even <= 1'b1;
  80. else if(qfv_cnt == 11'd1439)
  81.         qfv_even <= 1'b0;

  82. wire        qfv = qfv_even | qfv_odd;

  83. always @ (posedge clk or negedge rst)
  84. if(!rst)
  85.         qfv_cnt <= 1'b0;
  86. else if(qfv)
  87.         qfv_cnt <= qfv_cnt + 1'b1;
  88. else
  89.         qfv_cnt <= 1'b0;
  90.         
  91. wire        [7:0]        qd_out = qfv ? qd_dly : qd_dly1;
  92. endmodule

复制代码



Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top