本帖最后由 fpga-02 于 2022-10-17 13:13 编辑
软件版本:vitis2021.1(vivado2021.1) 操作系统:WIN10 64bit 硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA 1概述
本实验通过FPGA内部资源实现HDMI协议,使用HDMI直接驱动HDMI接口显示器,实现HDMI输出2k@30fps的视频图像。
2系统框图
3顶层调用接口源码
- `timescale 1 ps / 1 ps
-
- module display(
- input clk_i,
- output HDMI_CLK_P,
- output HDMI_CLK_N,
- output [2:0]HDMI_TX_P,
- output [2:0]HDMI_TX_N
- );
-
- wire vid_rst,vid_clk,vid_vs,vid_hs,vid_de;
- wire pclkx1,pclkx5,locked;
- wire [7 :0] rgb_r ,rgb_g ,rgb_b;
- assign vid_clk = pclkx1;
- assign vid_rst = locked;
-
- clk_wiz_0 clk_wiz0_inst(.clk_out1(pclkx1),.clk_out2(pclkx5),.locked(locked),.clk_in1(clk_i));
-
- uihdmitx #
- (
- .FAMILY("7FAMILY")
- )
- uihdmitx_inst
- (
- .RSTn_i(locked),
- .HS_i(vid_hs),
- .VS_i(vid_vs),
- .VDE_i(vid_de),
- .RGB_i({rgb_r,rgb_g,rgb_b}),
- .PCLKX1_i(pclkx1),
- .PCLKX2_5_i(1'b0),
- .PCLKX5_i(pclkx5),
- .TMDS_TX_CLK_P(HDMI_CLK_P),
- .TMDS_TX_CLK_N(HDMI_CLK_N),
- .TMDS_TX_P(HDMI_TX_P),
- .TMDS_TX_N(HDMI_TX_N)
- );
-
- uivtc#
- (
- .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)
- )
- uivtc_inst
- (
- .vtc_rstn_i(vid_rst),
- .vtc_clk_i(vid_clk),
- .vtc_vs_o(vid_vs),
- .vtc_hs_o(vid_hs),
- .vtc_de_o(vid_de)
- );
-
- uitpg uitpg_inst
- (
- .tpg_rstn_i(vid_rst),
- .tpg_clk_i(vid_clk),
- .tpg_vs_i(vid_vs),
- .tpg_hs_i(vid_hs),
- .tpg_de_i(vid_de),
- .tpg_vs_o(),
- .tpg_hs_o(),
- .tpg_de_o(),
- .tpg_data_o({rgb_r,rgb_g,rgb_b})
- );
-
- endmodule
复制代码
PLL 时钟设置 对于 PLL 的设置需要产生 1:5 的时钟,对于演示 demo 中 2560x1440的设置如下:
4:VTC 参数设置 具体内容阅读《3-1-01米联客2022版ZYNQ 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 损坏)
显示器循环输出测试图形
|