Intel FPGA IP之LVDS SerDes IP学习

03-07 1518阅读

FPGA 视频数据输入输出直通工程:

  • 屏:13.2吋8bit色深,屏幕分辨率为1440*1920@60,具有两个Port,每个Port有4个差分数据对与1个差分时钟对,差分对均支持LVDS协议
  • 芯片:Cyclone V系列FPGA
  • 目的:通过FPGA的LVDS SerDes RX接口输入8bit 色深RGB图像数据,然后再通过LVDS SerDes TX接口输出8bit 色深RGB图像数据,是个直通工程

    一、13.2吋屏

     1.1 13.2吋屏参数:

    Intel FPGA IP之LVDS SerDes IP学习

    DCLK frequency = horizontal line*vertical field*60=783*1962*60=92_174_760Hz≈ 92.17MHz

    DCLK(即,Data Clock)就是Pixel Clock。

    1.2 屏的数据传输格式:

    该屏有两个Port,是8bit 色深图像,传输的数据格式如下图:

    Intel FPGA IP之LVDS SerDes IP学习

    由图可知:

    • 该屏有两个Port,分奇偶Port(即,Odd Port与Even Port)
    • 每个Port有4个差分数据对与1个时钟差分对
    • 每个Port的LVDS数据格式相同
    • 差分时钟的占空比为4/7,且差分时钟频率与数据速率为1:7
    • 差分时钟与差分数据对之间的相位关系,即,差分时钟高电平中间时刻对应一个像素周期的开始时刻

      通过VESA的标准协议可知,VESA的10bit屏的接口兼容8bit屏接口。如下图:

      VESA:单port 8bit 屏:4个数据差分对+一个像素时钟差分对Pixel Clock
      数据差分对T1T2T3T4T5T6T7
      0+/-R0R1R2R3R4R5G0
      1+/-G1G2G3G4G5B0B1
      2+/-B2B3B4B5HSVSDE
      3+/-R6R7G6G7B6B7XX
      VESA:单port 10bit 屏:4个数据差分对+一个像素时钟差分对Pixel Clock
      数据差分对T1T2T3T4T5T6T7
      0+/-R0R1R2R3R4R5G0
      1+/-G1G2G3G4G5B0B1
      2+/-B2B3B4B5HSVSDE
      3+/-R6R7G6G7B6B7XX
      4+/-R8R9G8G9B8B9XX

       参考:LVDS电平标准与LCD屏的LVDS数据格式-CSDN博客

      为了提高FPGA系统兼容性,在编写Verilog程序时,用10bit 色深的VESA标准协议。

      二、Cyclone V的LVDS SerDes结构

      Intel FPGA IP之LVDS SerDes IP学习

      2.1 LVDS Receiver结构

      Intel FPGA IP之LVDS SerDes IP学习

      Intel FPGA IP之LVDS SerDes IP学习

      Intel FPGA IP之LVDS SerDes IP学习

      2.2 LVDS Transmitter结构

      Intel FPGA IP之LVDS SerDes IP学习

      Intel FPGA IP之LVDS SerDes IP学习

      三、Intel FPGA的LVDS SerDes IP配置

      3.1 添加LVDS SerDes IP

      IP添加方式:在IP Catalog中输入LVDS+回车,可选择ALTLVDS_RX与ALTLVDS_TX两个LVDS SerDes IP进行参数设置。

      Intel FPGA IP之LVDS SerDes IP学习

      3.2 rx_serdes_ip

      3.2.1 rx_serdes_ip参数设置

      Intel FPGA IP之LVDS SerDes IP学习

      Intel FPGA IP之LVDS SerDes IP学习

      Intel FPGA IP之LVDS SerDes IP学习

      Intel FPGA IP之LVDS SerDes IP学习

      3.2.2 例化rx_serdes:

      //定义接口

      reg  [4:0]   rx_datao_p;

      reg  [4:0]   rx_datae_p;

      reg pixel_clk_in;

      wire    [69:0]  rx_out;

      wire pixel_clk_out;

      //例化

      lvds_rx_1 u1_lvds_rx_1(

          .rx_in                    ({rx_datao_p, rx_datae_p}),

          .rx_inclock                (pixel_clk_in),

          .rx_out                    (rx_out),

          .rx_outclock            (pixel_clk_out)

          );    

      3.3 tx_serdes

      3.3.1 tx_serdes_ip参数设置

      Intel FPGA IP之LVDS SerDes IP学习

      Intel FPGA IP之LVDS SerDes IP学习

      Intel FPGA IP之LVDS SerDes IP学习

      3.3.2 例化tx_serdes

      reg     [34:0]  tx_datao;

      reg     [34:0]  tx_datae;

      wire [4:0]   tx_datao_p;

      wire [4:0]   tx_datae_p;

      lvds_tx  u1_lvds_tx (

          .pll_areset (tx_reset),

          .tx_in      ({7'b1100011, tx_datao, 7'b1100011, tx_datae}),

          .tx_inclock (pixel_clk_out),

          .tx_out     ({tx_cko_p, tx_datao_p, tx_cke_p, tx_datae_p}));

      注意: {7'b1100011, tx_datao, 7'b1100011, tx_datae}中的两个7'b1100011是两个TX Port的Pixel Clock,结合LVDS Transmitter中的Serializer工作机制即可理解。

      四、附件参考

      Cyclone® V Device Handbook Volume 1: Device Interfaces and Integration

      Intel FPGA IP之LVDS SerDes IP学习

       

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]