查看: 4107|回复: 5

Arrow DECA MAX 10 评估套件体验-----HDMI和VGA(一)

[复制链接]
  • TA的每日心情
    开心
    2018-7-3 21:49
  • 签到天数: 750 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2016-1-30 23:16:17 | 显示全部楼层 |阅读模式
    分享到:
    我们几种常见的视频接口有VGA,DVI,HDMI,SDI,DP等等。
    我们最熟悉的应该就是VGA,很多FPGA的爱好者都用FPGA驱动过VGA的显示器,行场时序是不是还历历在目。
    很多FPGA开发板仅仅只有VGA的接口,但是但是,DECA开发板可是有HDMI接口的哦!
    如果有兴趣,可以百度查查这些接口原理,支持的分辨率等等。
    一:DECA的HDMI接口:
    ArrowDECA MAX 10 评估套件的HDMI芯片采用的是ADIADV7513

    • 集成包括3D视频支持在内的HDMI     v.1.4特性
    • 165 MHz频率,支持最高达1080pUXGA的所有视频格式
    • 支持全音域元数据包传输
    • 3D视频就绪

    • 可编程双向色彩空间转换器
    • 支持标准S/PDIF,适用于最高192 kHz的立体声线性脉冲码调制(LPCM)或压缩音频
    • 高比特率(HBR)音频
    • I2C Hot Plug™(热插拔)检测(HPD) I/O具有5 V容差,无需额外器件
    • 无需支持S/PDIFI2S的音频主时钟
                                  
    1.jpg
    其实主要包括,音频、视频、i2c配置,TMDS通路,DDC显示通道。
    1.视频,音频为数据;
    2.i2c主要完成的是HDMI芯片的配置,确定芯片的工作模式;
    3.TMDS通路可以理解为HDMI传输协议里的;
    4.DDC这部分是DDC即显示器数据通道,是主机(比如说主机,也可以是我们开发板)用于访问显示器存储器以获取显示器中EEPROM中的EDID格式数据,确定显示器的显示属性(如分辨率、纵横比等)信息的数据通道。
    2.jpg
    接下来,我们先研究视频数据的时序,VGA和HDMI的一起看看。音频的暂时放一下,因为显示器没有自带音箱。
    二:回顾一下VGA的时序:
    VGA时序:
    3.jpg
    VGA时序原理可以看看:
    http://www.cnblogs.com/spartan/archive/2011/08/16/2140546.html
    我们在VESA标准中可以查到,以我的显示器为例,1920*1080的分辨率,60HZ下:

    4.png 所以按照VESA标准,驱动我的显示器的HSYNC和VSYNC如下:
    对应HSYNC的a、b、c、d   44   148    1920    88            total2200
    对应VSYNC的a、b、c、d   5     36    1080    4        total 1125
    数据有效区域为:   192<  HSYNC <  2113   &&      41< VSYNC < 1122
    计算系统时钟为:2200*1125*60=148.5MHZ,呵呵,其实上面已经算好了….
    5.png
    1. module vga_drive(clk_vga,rst_n,test_pattern,vsync,hsync,red,green,blue);
    2. input  clk_vga,rst_n;
    3. input  [2:0]test_pattern;  //测试模式,颜色:

    4. //VGA interface
    5. output hsync,vsync;
    6. output [4:0]red;
    7. output [5:0]green;
    8. output [4:0]blue;

    9. //1920*1080 60HZ
    10. parameter H_SYNC    =     12'd44;
    11. parameter H_BACK    =     12'd148;
    12. parameter H_DISP    =     12'd1920;
    13. parameter H_FRONT   =     12'd88;
    14. parameter H_TOTAL   =     12'd2200;

    15. parameter V_SYNC    =     12'd5;
    16. parameter V_BACK    =     12'd36;
    17. parameter V_DISP    =     12'd1080;
    18. parameter V_FRONT   =     12'd4;
    19. parameter V_TOTAL   =     12'd1125;

    20. /*----------------------------------------
    21.           SYNC-BACK-DISP-FRONT
    22.                   _____---------------
    23. ----------------------------------------*/
    24. //**********hsync  generate**************
    25. reg [11:0]h_cnt;
    26. always @(posedge clk_vga)
    27. begin
    28.     if(!rst_n)
    29.            h_cnt<=12'd0;
    30.         else  if(h_cnt<H_TOTAL-1'b1)
    31.                 h_cnt<=h_cnt+1'b1;
    32.                   else  h_cnt<=12'd0;
    33. end
    34. assign hsync = (h_cnt < H_SYNC)  ?  1'b0  :  1'b1;

    35. //**********vsync   generate**************
    36. reg [11:0]v_cnt;
    37. always @(posedge clk_vga)
    38. begin
    39.     if(!rst_n)
    40.            v_cnt<=12'd0;
    41.         else  if(h_cnt  ==  H_TOTAL-1'b1)
    42.               begin
    43.                      if(v_cnt < V_TOTAL-1'b1)
    44.                             v_cnt<=v_cnt+1'b1;
    45.                          else  v_cnt<=1'b0;
    46.                   end
    47.                   else v_cnt<=v_cnt;
    48. end
    49. assign  vsync = (v_cnt<V_SYNC)  ?  1'b0  :  1'b1;

    50. wire    data_valid ;
    51. assign  data_valid  =   (h_cnt > H_SYNC+H_BACK-1'b1)   &&  (h_cnt < H_SYNC+H_BACK+H_DISP)
    52.                       &&(v_cnt > V_SYNC+V_BACK-1'b1)   &&  (v_cnt < V_SYNC+V_BACK+V_DISP);

    53. reg [15:0]vga_rgb;
    54. always @(posedge clk_vga)
    55. begin
    56.     if(!rst_n)
    57.            vga_rgb<=16'd0;
    58.         else
    59.         begin
    60.            case (test_pattern)
    61.            3'd0:   vga_rgb  <=  16'b11111_000000_00000;     //red
    62.            3'd1:   vga_rgb  <=  16'b00000_111111_00000;     //green
    63.            3'd2:   vga_rgb  <=  16'b00000_000000_11111;     //blue
    64.            3'd3:   vga_rgb  <=  16'b11111_111111_00000;     //
    65.            3'd4:   vga_rgb  <=  16'b11111_000000_11111;     //
    66.            3'd5:   vga_rgb  <=  16'b00000_111111_11111;     //
    67.            3'd6:   vga_rgb  <=  16'b11111_111111_11111;     //white
    68.            3'd7:   vga_rgb  <=  16'b00000_000000_00000;     //black
    69.            default:vga_rgb  <=  16'd0;
    70.            endcase
    71.         end
    72. end
    73. assign  red    = data_valid  ?  vga_rgb[15:11] : 5'd0;
    74. assign  green  = data_valid  ?  vga_rgb[10:5]  : 6'd0;
    75. assign  blue   = data_valid  ?  vga_rgb[4:0]   : 5'd0;
    76. endmodule
    复制代码
    由于DECA没有VGA接口,这里用我其他的Altera的cycloneIV开发板来试试;
    6.jpg
    7.jpg
    8.jpg

    三:HDMI接口时序及原理
    这里没有用VGA显示什么图像啊,什么的,原理也没有分析,就是因为相对简单,资料较多,所以VGA仿真都没做,直接就上板成功了,这里主要是看看VGA的时序,以及和HDMI接口的时序有什么区别;
    HDMI相关的内容也看的差不错了,后面的话就可以重点分析一下HDMI部分的内容。


    回复

    使用道具 举报

  • TA的每日心情

    2023-7-25 22:49
  • 签到天数: 385 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2016-1-31 09:16:41 | 显示全部楼层
    不会FPGA....               
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-5-27 15:41
  • 签到天数: 868 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2016-1-31 10:40:08 | 显示全部楼层
    FPGA高大上                  
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2014-9-24 20:04
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2016-1-31 20:39:33 | 显示全部楼层
    很不错的东东
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-3-13 10:11
  • 签到天数: 1088 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2016-2-1 08:56:54 | 显示全部楼层
    学习了。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-19 16:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2016-2-1 08:57:26 | 显示全部楼层
    亲,可以将内容一并发到经验频道,很有机会获得每月之星的呢http://jingyan.eeboard.com/
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 05:01 , Processed in 0.154393 second(s), 25 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.