高清晰度多媒体接口(High Definition Multimedia Interface)是一种全数位化影像和声音传送接口,可以传送无压缩的音频信号及视频信号。 HDMI 接口可以提供高达 5Gbps 的数据传输带宽,可以传送无压缩的音频信号及高分辨率视频信号。同时无需在信号传送前进行数/模或者模/数转换,可以保证最高质量的影音信号传送。
Hdmi_Out.v
//=======================================================================
// Filename : Hdmi_Out.v
// Author : Ritian73
// Created On : 2022-03-02 23:51
// Last Modified :
// Description :
//
//
//=======================================================================
module Hdmi_Out(
input Clk_50M,
input Key,
output Hdmi_Clk_P,
output Hdmi_Clk_N,
output Hdmi_B_P,
output Hdmi_B_N,
output Hdmi_G_P,
output Hdmi_G_N,
output Hdmi_R_P,
output Hdmi_R_N,
output [3:0] Led
);
wire Clk;
wire Clk_5x;
wire locked;
wire [7:0]VGA_R;
wire [7:0]VGA_G;
wire [7:0]VGA_B;
wire VGA_H;
wire VGA_V;
wire VGA_D;
wire VGA_HS;
wire VGA_VS;
wire VGA_DE;
clk_wiz_0 clk_wiz_0(
// Clock out ports
.clk_out1(Clk), // output clk_out1
.clk_out2(Clk_5x), // output clk_out2
// Status and control signals
.resetn(1'b1), // input resetn
.locked(locked), // output locked
// Clock in ports
.clk_in1(Clk_50M)
); // input clk_in1
Hdmi_Ctrl Hdmi_Ctrl(
.Clk(Clk),
.Clk_5x(Clk_5x),
.Rst_n(locked),
.Hsync(VGA_HS),
.Vsync(VGA_VS),
.Rgb_Valid(VGA_DE),
.Rgb_Blue(VGA_B),
.Rgb_Green(VGA_G),
.Rgb_Red(VGA_R),
.Hdmi_R_P(Hdmi_R_P),
.Hdmi_R_N(Hdmi_R_N),
.Hdmi_G_P(Hdmi_G_P),
.Hdmi_G_N(Hdmi_G_N),
.Hdmi_B_P(Hdmi_B_P),
.Hdmi_B_N(Hdmi_B_N),
.Hdmi_Clk_P(Hdmi_Clk_P),
.Hdmi_Clk_N(Hdmi_Clk_N)
);
Hdmi_Data_Gen Hdmi_Data_Gen(
.Clk(Clk),
.Turn_Mode(Key),
.Rst_n (locked) ,
.VGA_R(VGA_R),
.VGA_G(VGA_G),
.VGA_B(VGA_B),
.VGA_HS(VGA_HS),
.VGA_VS(VGA_VS),
.VGA_DE(VGA_DE),
.mode(Led)
);
endmodule
Hdmi_Ctrl.v
//=======================================================================
// Filename : Hdmi_Ctrl.v
// Author : Ritian73
// Created On : 2022-03-02 23:09
// Last Modified :
// Description :
//
//
//=======================================================================
module Hdmi_Ctrl(
input Clk,
input Clk_5x,
input Rst_n,
input Hsync,
input Vsync,
input Rgb_Valid,
input [7:0]Rgb_Blue,
input [7:0]Rgb_Green,
input [7:0]Rgb_Red,
output Hdmi_R_P,
output Hdmi_R_N,
output Hdmi_G_P,
output Hdmi_G_N,
output Hdmi_B_P,
output Hdmi_B_N,
output Hdmi_Clk_P,
output Hdmi_Clk_N
);
wire [9:0] Data_Out_R;
wire [9:0] Data_Out_G;
wire [9:0] Data_Out_B;
Encoder Encoder_R(
.Clk(Clk),
.Rst_n(Rst_n),
.Hsync(Hsync),
.Vsync(Vsync),
.Rgb_Valid(Rgb_Valid),
.Data_In(Rgb_Red),
.Data_Out(Data_Out_R)
);
Encoder Encoder_G(
.Clk(Clk),
.Rst_n(Rst_n),
.Hsync(Hsync),
.Vsync(Vsync),
.Rgb_Valid(Rgb_Valid),
.Data_In(Rgb_Green),
.Data_Out(Data_Out_G)
);
Encoder Encoder_B(
.Clk(Clk),
.Rst_n(Rst_n),
.Hsync(Hsync),
.Vsync(Vsync),
.Rgb_Valid(Rgb_Valid),
.Data_In(Rgb_Blue),
.Data_Out(Data_Out_B)
);
Par_To_Ser Par_To_Ser_R(
.Rst_n(Rst_n),
.Clk_5x(Clk_5x),
.Data_In(Data_Out_R),
.Ser_P(Hdmi_R_P),
.Ser_N(Hdmi_R_N)
);
Par_To_Ser Par_To_Ser_G(
.Rst_n(Rst_n),
.C