问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 5463 人浏览分享

开启左侧

RGB 转 HDMI实现2k30传输

[复制链接]
5463 0
本帖最后由 fpga-02 于 2022-10-17 13:13 编辑

软件版本:vitis2021.1(vivado2021.1)
操作系统:WIN10 64bit
硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA
登录米联客”FPGA社区-www.uisrc.com视频课程、答疑解惑!
1概述
本实验通过FPGA内部资源实现HDMI协议,使用HDMI直接驱动HDMI接口显示器,实现HDMI输出2k@30fps的视频图像。
2系统框图


3顶层调用接口源码
  1. `timescale 1 ps / 1 ps
  2. module display(
  3. input  clk_i,
  4. output HDMI_CLK_P,
  5. output HDMI_CLK_N,
  6. output [2:0]HDMI_TX_P,
  7. output [2:0]HDMI_TX_N
  8. );
  9. wire vid_rst,vid_clk,vid_vs,vid_hs,vid_de;
  10. wire pclkx1,pclkx5,locked;
  11. wire [7 :0]        rgb_r ,rgb_g ,rgb_b;
  12. assign vid_clk = pclkx1;
  13. assign vid_rst = locked;
  14. clk_wiz_0 clk_wiz0_inst(.clk_out1(pclkx1),.clk_out2(pclkx5),.locked(locked),.clk_in1(clk_i));
  15. uihdmitx #
  16. (
  17. .FAMILY("7FAMILY")                        
  18. )
  19. uihdmitx_inst
  20. (
  21. .RSTn_i(locked),
  22. .HS_i(vid_hs),
  23. .VS_i(vid_vs),
  24. .VDE_i(vid_de),
  25. .RGB_i({rgb_r,rgb_g,rgb_b}),
  26. .PCLKX1_i(pclkx1),
  27. .PCLKX2_5_i(1'b0),
  28. .PCLKX5_i(pclkx5),
  29. .TMDS_TX_CLK_P(HDMI_CLK_P),
  30. .TMDS_TX_CLK_N(HDMI_CLK_N),
  31. .TMDS_TX_P(HDMI_TX_P),
  32. .TMDS_TX_N(HDMI_TX_N)
  33. );
  34. uivtc#
  35. (
  36. .H_ActiveSize(2560),
  37. .H_SyncStart(2560+30),
  38. .H_SyncEnd  (2560+30+50),
  39. .H_FrameSize(2560+30+50+80),
  40. .V_ActiveSize(1440),
  41. .V_SyncStart(1440+3),
  42. .V_SyncEnd (1440+3+5),
  43. .V_FrameSize(1440+3+5+23)
  44. )
  45. uivtc_inst
  46. (
  47. .vtc_rstn_i(vid_rst),
  48. .vtc_clk_i(vid_clk),
  49. .vtc_vs_o(vid_vs),
  50. .vtc_hs_o(vid_hs),
  51. .vtc_de_o(vid_de)        
  52. );
  53. uitpg uitpg_inst        
  54. (
  55. .tpg_rstn_i(vid_rst),
  56. .tpg_clk_i(vid_clk),
  57. .tpg_vs_i(vid_vs),
  58. .tpg_hs_i(vid_hs),
  59. .tpg_de_i(vid_de),
  60. .tpg_vs_o(),
  61. .tpg_hs_o(),
  62. .tpg_de_o(),        
  63. .tpg_data_o({rgb_r,rgb_g,rgb_b})               
  64. );
  65. endmodule
复制代码
PLL 时钟设置
对于 PLL 的设置需要产生 1:5 的时钟,对于演示 demo 2560x1440的设置如下:

4:VTC 参数设置
具体内容阅读《3-1-01米联客2022ZYNQ FPGA课程基础篇》 第22课相关内容,这里针对 120M PCLK 参数如下:
.H_ActiveSize(2560),
.H_SyncStart(2560+30),
.H_SyncEnd  (2560+30+50),
.H_FrameSize(2560+30+50+80),
.V_ActiveSize(1440),
.V_SyncStart(1440+3),
.V_SyncEnd (1440+3+5),
.V_FrameSize(1440+3+5+23)


5:下载演示
fpga 工程的创建过程参考基础篇,下载程序前,先确保 FPGA 工程已经编译。
这里以MK7325FB 开发板 作为演示 demo。请确保下载器和开发板已经正确连接,并且开发板已经上电(注意 JTAG 端子不支持热插拔,而 USB 接口支持, 所以在不通电的情况下接通好 JTAG 后,再插入USB 到电脑,之后再上电,以免造成 JTAG IO 损坏)

显示器循环输出测试图形







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评论 4

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

3

关注

2

粉丝

3

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版