www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > FPGA開源工作室

Zynq-7000 PLHDMI的顯示控制

1 背景知識

HDMIHigh Definition Multimedia Interface是高清晰多媒體接口線的縮寫,能高品質(zhì)地傳輸未經(jīng)壓縮的高清視頻和多聲道音頻數(shù)據(jù),最高數(shù)據(jù)傳輸速度為5Gbps。同時無需在信號傳送前進(jìn)行數(shù)/?;蛘吣?/span>/數(shù)轉(zhuǎn)換,可以保證最高質(zhì)量的影音信號傳送。

HDMI線支持5Gbps的數(shù)據(jù)傳輸率,最遠(yuǎn)可傳輸30米,足以應(yīng)付一個1080p的視頻和一個8聲道的音頻信號。而因為一個1080p的視頻和一個8聲道的音頻信號需求少于4GB/s,因此HDMI線還有很大余量。這允許它可以用一個電纜分別連接DVD播放器,接收器和PRR。此外HDMI支持EDID,DDC2B,因此具有HDMI的設(shè)備具有即插即用的特點,信號源和顯示設(shè)備之間會自動進(jìn)行協(xié)商,自動選擇最合適的視頻/音頻格式。如下圖是一根HDMI線。

DMI接口的原理圖

上圖所示,HDMI接口有3對數(shù)據(jù)差分信號、一對時鐘差分信號、HDMI_CEC(HDMI遙控器信號)、HDMI IIC信號、HDMI_HPDHDMI熱插拔檢測信號)和HDMI_OUT_ENHDMI電源輸出控制)。本節(jié)設(shè)計將把RGB888轉(zhuǎn)化為HDMI信號輸出來控制顯示屏的顯示。

3 HDMI接口的FPGA設(shè)計

上圖所示,為整個HDMI接口顯示模塊圖。主要分為三個模塊。

1)時鐘產(chǎn)生模塊

時鐘產(chǎn)生模塊主要產(chǎn)生VGA顯示的像素時鐘和HDMI的串行時鐘。我們實驗的顯示器推薦設(shè)置為(1920x1080)所以pixel_clock148.5MHZ。HDMI的串行時鐘為pixel_clock5倍為742.5MHZ

2)HDMI_data_gen模塊

HDMI_data_gen模塊主要產(chǎn)生VGA的時序和測試圖像。我們這里采用1920x1080@60HZ。時序參數(shù)如下圖所示。


具體參數(shù)代碼如下:

于按鍵程序和各種測試圖像的產(chǎn)生請參考《基于FPGA的5英寸LCD屏顯示》或聯(lián)系FPGA開源工作室。

3)VGA轉(zhuǎn)HDMI模塊

這個模塊我們采用IP。具體代碼有興趣的同學(xué)可以研究研究。VGA轉(zhuǎn)HDMI的內(nèi)部模塊如下圖。

4)代碼和約束

頂層代碼:

`timescale 1ns / 1ps

//////////////////////////////////////////////////////////////////////////////////

// Company:

// Engineer:

//

// Create Date: 2018/08/27 16:50:00

// Design Name:

// Module Name: HDMI

// Project Name:

// Target Devices:

// Tool Versions:

// Description:

//    FPGA開源工作室

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//////////////////////////////////////////////////////////////////////////////////

module HDMI(

input           clk_50M,

input           KEY,

output          HDMI_CLK_P,

output          HDMI_CLK_N,

output          HDMI_D2_P,

output          HDMI_D2_N,

output          HDMI_D1_P,

output          HDMI_D1_N,

output          HDMI_D0_P,

output          HDMI_D0_N,

output          HDMI_OUT_EN,

output  [3:0]   LED

);

wire pixclk;

wire[7:0]   R,G,B;

wire HS,VS,DE;

assign HDMI_OUT_EN = 1'b1;

HDMI_data_gen u_HDMI_data_gen

(

.pix_clk            (pixclk),

.turn_mode          (KEY),

.VGA_R              (R),

.VGA_G              (G),

.VGA_B              (B),

.VGA_HS             (HS),

.VGA_VS             (VS),

.VGA_DE             (DE),

.mode                (LED)

);

wire serclk;

wire lock;

wire[23:0]  RGB;

assign RGB={R,G,B};

HDMI_FPGA_ML_0 u_HDMI_FPGA

(

.PXLCLK_I           (pixclk),//148.5MHZ

.PXLCLK_5X_I        (serclk),//742.5MHZ

.LOCKED_I           (lock),

.RST_N              (1'b1),

.VGA_HS             (HS),

.VGA_VS             (VS),

.VGA_DE             (DE),

.VGA_RGB            (RGB),

.HDMI_CLK_P         (HDMI_CLK_P),

.HDMI_CLK_N         (HDMI_CLK_N),

.HDMI_D2_P          (HDMI_D2_P),

.HDMI_D2_N          (HDMI_D2_N),

.HDMI_D1_P          (HDMI_D1_P),

.HDMI_D1_N          (HDMI_D1_N),

.HDMI_D0_P          (HDMI_D0_P),

.HDMI_D0_N          (HDMI_D0_N)

);

clk_wiz_0   u_clk

(

.clk_in1            (clk_50M),

.reset              (1'b0),

.clk_out1           (pixclk),

.clk_out2           (serclk),

.locked             (lock)

);

endmodule

約束代碼:

set_property IOSTANDARD LVCMOS33 [get_ports clk_50M]

set_property PACKAGE_PIN U18 [get_ports clk_50M]

create_clock -period 20.000 -waveform {0.000 10.000} [get_ports clk_50M]

set_property IOSTANDARD TMDS_33 [get_ports HDMI_CLK_P]

set_property IOSTANDARD TMDS_33 [get_ports HDMI_D0_P]

set_property IOSTANDARD TMDS_33 [get_ports HDMI_D1_P]

set_property IOSTANDARD TMDS_33 [get_ports HDMI_D2_P]

set_property IOSTANDARD LVCMOS33 [get_ports HDMI_OUT_EN]

set_property PACKAGE_PIN N18 [get_ports HDMI_CLK_P]

set_property PACKAGE_PIN V20 [get_ports HDMI_D0_P]

set_property PACKAGE_PIN T20 [get_ports HDMI_D1_P]

set_property PACKAGE_PIN N20 [get_ports HDMI_D2_P]

set_property PACKAGE_PIN V16 [get_ports HDMI_OUT_EN]

set_property IOSTANDARD LVCMOS33 [get_ports KEY]

set_property IOSTANDARD LVCMOS33 [get_ports {LED[3]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED[2]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED[1]}]

set_property IOSTANDARD LVCMOS33 [get_ports {LED[0]}]

set_property PACKAGE_PIN N15 [get_ports KEY]

set_property PACKAGE_PIN M14 [get_ports {LED[0]}]

set_property PACKAGE_PIN M15 [get_ports {LED[1]}]

set_property PACKAGE_PIN K16 [get_ports {LED[2]}]

set_property PACKAGE_PIN J16 [get_ports {LED[3]}]

4下板測試

當(dāng)按下按鍵時,我們的屏幕就會顯示不同的測試圖像。結(jié)果如下:

總結(jié):

HDMI的實現(xiàn)對后期高清視頻圖像處理至關(guān)重要,需要源碼的同學(xué)可以聯(lián)系FPGA開源工作室。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉