精华内容
下载资源
问答
  • fpga_hdmi FPGA HDMI驱动
  • FPGA HDMI测试代码

    2017-07-23 17:07:32
    基于FPGA HDMI测试代码
  • 用Lattice FPGA 传输HDMI 信号
  • fpga hdmi接收和发送部分调试

    千次阅读 2017-08-26 21:42:15
    先科普点hdmi基础知识,hdmi一般会有4对差分线,其中3对传输数据,1对为随路时钟,scdc接口,hdcp接口,其中比较重要的是scdc接口,不但需要读取sink端的edid信息,再hdmi 2.0时还需要通过scdc接口配置sink端 ...
    接着上一部分开始写,一下都是自己在实际调试过程中遇到的问题或者是想法

    先科普点hdmi基础知识,hdmi一般会有4对差分线,其中3对传输数据,1对为随路时钟,scdc接口,hdcp接口,其中比较重要的是scdc接口,不但需要读取sink端的edid信息,再hdmi 2.0时还需要通过scdc接口配置sink端 control register,因为在初始状态下,sink端默认为hdmi1.4 ,hdcp目前大部分情况一般不会用到,主要是起到授权播放,涉及到版权问题

    hdmi采用tmds编码方式,心里大概有个印象就可以,hdmi在数据传送时可以分为三类,图像数据,数据岛和控制数据,图像数据为纯图像数据,数据岛传输音频数据和辅助数据,控制数据传输同步信息,设计到的编码有8bit->10bit,2bit->10bit

    想要了解的更细致些可以参考hdmi相关协议文档。


    大概把整个流程画了下, 其中重配部分比较费事,由于整个hdmi走的是gxb bank没有外部的phy芯片,mac也是A家相应IP,重点需要把ip核相关datasheet仔细阅读好,比较省事的方式是可以在生成ip的时,手动勾选example,这样先把他的例子跑通,最后调试起来会事半功倍。

    这部分调试就是啃hdmi协议文档可以分别看hdmi1.4和2.0,再看HDMI A家IP手册


    展开全文
  • 接着上一部分开始写,一下都是自己在实际调试过程中遇到的问题或者是想法先科普点hdmi基础知识,hdmi一般会有4对差分线,其中3对传输数据,1对为随路时钟,scdc接口,hdcp接口,其中比较重要的是scdc接口,不但需要...

    接着上一部分开始写,一下都是自己在实际调试过程中遇到的问题或者是想法

    先科普点hdmi基础知识,hdmi一般会有4对差分线,其中3对传输数据,1对为随路时钟,scdc接口,hdcp接口,其中比较重要的是scdc接口,不但需要读取sink端的edid信息,再hdmi 2.0时还需要通过scdc接口配置sink端 control register,因为在初始状态下,sink端默认为hdmi1.4 ,hdcp目前大部分情况一般不会用到,主要是起到授权播放,涉及到版权问题

    hdmi采用tmds编码方式,心里大概有个印象就可以,hdmi在数据传送时可以分为三类,图像数据,数据岛和控制数据,图像数据为纯图像数据,数据岛传输音频数据和辅助数据,控制数据传输同步信息,设计到的编码有8bit->10bit,2bit->10bit

    想要了解的更细致些可以参考hdmi相关协议文档。

    大概把整个流程画了下, 其中重配部分比较费事,由于整个hdmi走的是gxb bank没有外部的phy芯片,mac也是A家相应IP,重点需要把ip核相关datasheet仔细阅读好,比较省事的方式是可以在生成ip的时,手动勾选example,这样先把他的例子跑通,最后调试起来会事半功倍。

    这部分调试就是啃hdmi协议文档可以分别看hdmi1.4和2.0,再看HDMI A家IP手册

     

    转载于:https://www.cnblogs.com/LuckyJia/p/7413024.html

    展开全文
  • FPGA实现HDMI接口

    千次阅读 2019-08-27 18:25:25
    FPGA实现HDMI 基于FPGAHDMI高清显示接口驱动 HDMIFPGA实现(二) HDMIFPGA实现(一) ZEDBOARD 视频扩展板子上实现HDMI,代码 zedboard 使用自制IP+HDMI显示 HDMIFPGA实现(二) [HDMI]FPGA上实现HDMI(1) ...
    展开全文
  • 基于 FPGA 的高清 HDMI 接口转换器的设计与实现。 系统介绍利用FPGA设计HDMI接口的转换 FPGA HDMI 转换器
  • FPGA实现HDMI

    万次阅读 2018-10-04 10:26:23
    1.HDMI连接器 标准HDMI接口即TYPE A,包括19个PIN,主要是4对差分信号线 TMDS clock+ and clock- TMDS data0+ and data0- TMDS data1+ and data1- TMDS data2+ and data2- 2.视频信号 本例产生640x480 RGB 24bpp @ ...

    1.HDMI连接器
    标准HDMI接口即TYPE A,包括19个PIN,主要是4对差分信号线
    TMDS clock+ and clock-
    TMDS data0+ and data0-
    TMDS data1+ and data1-
    TMDS data2+ and data2-
    在这里插入图片描述
    2.视频信号
    本例产生640x480 RGB 24bpp @ 60Hz的视频信号,307200个像素每帧,每个像素包括24 bits (8 bits for red, green and blue), at 60Hz,则HDMI的有效数据率为0.44Gbps.
    考虑到视频信号通常有消隐信号,对于640x480帧,实际上是 800x525,如下图所示:
    在这里插入图片描述
    3.TMDS信号
    FPGA输出3路RGB和1路25MHz时钟:
    在这里插入图片描述
    在实际中,为了便于时钟恢复,通常要添加2 bit扰码
    在这里插入图片描述
    源码如下:

    // (c) fpga4fun.com & KNJN LLC 2013
    
    
    module HDMI_test(
    	input pixclk,  // 25MHz
    	output [2:0] TMDSp, TMDSn,
    	output TMDSp_clock, TMDSn_clock
    );
    
    
    reg [9:0] CounterX, CounterY;
    reg hSync, vSync, DrawArea;
    always @(posedge pixclk) DrawArea <= (CounterX<640) && (CounterY<480);
    
    always @(posedge pixclk) CounterX <= (CounterX==799) ? 0 : CounterX+1;
    always @(posedge pixclk) if(CounterX==799) CounterY <= (CounterY==524) ? 0 : CounterY+1;
    
    always @(posedge pixclk) hSync <= (CounterX>=656) && (CounterX<752);
    always @(posedge pixclk) vSync <= (CounterY>=490) && (CounterY<492);
    
    
    wire [7:0] W = {8{CounterX[7:0]==CounterY[7:0]}};
    wire [7:0] A = {8{CounterX[7:5]==3'h2 && CounterY[7:5]==3'h2}};
    reg [7:0] red, green, blue;
    always @(posedge pixclk) red <= ({CounterX[5:0] & {6{CounterY[4:3]==~CounterX[4:3]}}, 2'b00} | W) & ~A;
    always @(posedge pixclk) green <= (CounterX[7:0] & {8{CounterY[6]}} | W) & ~A;
    always @(posedge pixclk) blue <= CounterY[7:0] | W | A;
    
    
    wire [9:0] TMDS_red, TMDS_green, TMDS_blue;
    TMDS_encoder encode_R(.clk(pixclk), .VD(red  ), .CD(2'b00)        , .VDE(DrawArea), .TMDS(TMDS_red));
    TMDS_encoder encode_G(.clk(pixclk), .VD(green), .CD(2'b00)        , .VDE(DrawArea), .TMDS(TMDS_green));
    TMDS_encoder encode_B(.clk(pixclk), .VD(blue ), .CD({vSync,hSync}), .VDE(DrawArea), .TMDS(TMDS_blue));
    
    
    wire clk_TMDS, DCM_TMDS_CLKFX;  // 25MHz x 10 = 250MHz
    DCM_SP #(.CLKFX_MULTIPLY(10)) DCM_TMDS_inst(.CLKIN(pixclk), .CLKFX(DCM_TMDS_CLKFX), .RST(1'b0));
    BUFG BUFG_TMDSp(.I(DCM_TMDS_CLKFX), .O(clk_TMDS));
    
    
    reg [3:0] TMDS_mod10=0;  // modulus 10 counter
    reg [9:0] TMDS_shift_red=0, TMDS_shift_green=0, TMDS_shift_blue=0;
    reg TMDS_shift_load=0;
    always @(posedge clk_TMDS) TMDS_shift_load <= (TMDS_mod10==4'd9);
    
    always @(posedge clk_TMDS)
    begin
    	TMDS_shift_red   <= TMDS_shift_load ? TMDS_red   : TMDS_shift_red  [9:1];
    	TMDS_shift_green <= TMDS_shift_load ? TMDS_green : TMDS_shift_green[9:1];
    	TMDS_shift_blue  <= TMDS_shift_load ? TMDS_blue  : TMDS_shift_blue [9:1];	
    	TMDS_mod10 <= (TMDS_mod10==4'd9) ? 4'd0 : TMDS_mod10+4'd1;
    end
    
    OBUFDS OBUFDS_red  (.I(TMDS_shift_red  [0]), .O(TMDSp[2]), .OB(TMDSn[2]));
    OBUFDS OBUFDS_green(.I(TMDS_shift_green[0]), .O(TMDSp[1]), .OB(TMDSn[1]));
    OBUFDS OBUFDS_blue (.I(TMDS_shift_blue [0]), .O(TMDSp[0]), .OB(TMDSn[0]));
    OBUFDS OBUFDS_clock(.I(pixclk), .O(TMDSp_clock), .OB(TMDSn_clock));
    endmodule
    
    
    
    module TMDS_encoder(
    	input clk,
    	input [7:0] VD,  // video data (red, green or blue)
    	input [1:0] CD,  // control data
    	input VDE,  // video data enable, to choose between CD (when VDE=0) and VD (when VDE=1)
    	output reg [9:0] TMDS = 0
    );
    
    wire [3:0] Nb1s = VD[0] + VD[1] + VD[2] + VD[3] + VD[4] + VD[5] + VD[6] + VD[7];
    wire XNOR = (Nb1s>4'd4) || (Nb1s==4'd4 && VD[0]==1'b0);
    wire [8:0] q_m = {~XNOR, q_m[6:0] ^ VD[7:1] ^ {7{XNOR}}, VD[0]};
    
    reg [3:0] balance_acc = 0;
    wire [3:0] balance = q_m[0] + q_m[1] + q_m[2] + q_m[3] + q_m[4] + q_m[5] + q_m[6] + q_m[7] - 4'd4;
    wire balance_sign_eq = (balance[3] == balance_acc[3]);
    wire invert_q_m = (balance==0 || balance_acc==0) ? ~q_m[8] : balance_sign_eq;
    wire [3:0] balance_acc_inc = balance - ({q_m[8] ^ ~balance_sign_eq} & ~(balance==0 || balance_acc==0));
    wire [3:0] balance_acc_new = invert_q_m ? balance_acc-balance_acc_inc : balance_acc+balance_acc_inc;
    wire [9:0] TMDS_data = {invert_q_m, q_m[8], q_m[7:0] ^ {8{invert_q_m}}};
    wire [9:0] TMDS_code = CD[1] ? (CD[0] ? 10'b1010101011 : 10'b0101010100) : (CD[0] ? 10'b0010101011 : 10'b1101010100);
    
    always @(posedge clk) TMDS <= VDE ? TMDS_data : TMDS_code;
    always @(posedge clk) balance_acc <= VDE ? balance_acc_new : 4'h0;
    endmodule
    
    
    
    
    
    展开全文
  • FPGA zynq HDMI接口程序

    2018-12-04 09:41:01
    本工程在ZYNQ-7020上实现了HDMI接口,适用于任何ZYNQ平台,同时可扩展至MPSOC平台。
  • 基于FPGAHDMI多模式显示模块设计
  • 基于FPGA实现HDMI视频传输

    千次阅读 2019-11-06 17:13:59
    前言 空闲时整理HDMI传输相关基础。 ... 用FPGA实现HDMI ... 基于FPGAHDMI高清显示接口驱动 3、JOY_shiyue HDMIFPGA实现(一) HDMIFPGA实现(二) 4、mcupro ZEDBOARD 视...
  • HDMI 高清晰度多媒体接口(英文:High Definition Multimedia Interface,HDMI)是一种数字化视频/音频接口技术,是适合影像传输的专用型数字化接口,其可同时传送音频和影像信号,最高数据传输速度为2.25GB/s,同时...
  • FPGA系统性学习笔记连载_FPGA Zynq HDMI接口通信连接电视显示 本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群联系群主。 连载《叁芯智能fpga设计与研发》 拓展项目练习...
  • 基于FPGAHDMI输出接口设计

    千次阅读 2020-02-24 11:22:46
    基于FPGAHDMI输出接口设计HDMI接口简述HDMI协议简述HDMI接口设计HDMI代码总结 HDMI接口简述 HDMI接口是现在特别常用的音视频接口,另一个常用的视频流接口是VGA接口,他们主要的区别如下: HDMI接口:是数字信号...
  • 基于FPGAHDMI_CEC设计与实现.pdf
  • 基于FPGAHDMI显示系统的设计与实现总结
  • 用Xilinx的FPGA实现HDMI(DVI)接收器

    千次阅读 2020-07-31 20:51:49
    用Xilinx的FPGA实现HDMI(DVI)接收器 1. 问题-HDMI接收器 1.1 ADV7511 一般来说,如果要使用HDMI作为视频收发协议的话,会配置关于HDMI的编解码芯片。常见的有ADV7511(HDMI发送器)和ADV7611(HDMI接收器)。这样开发者...
  • FPGAHDMI输出彩条

    千次阅读 2019-05-24 10:49:51
    通过FPGA管脚直接连接hdmi接口,输出彩条如下 工程如下: 其中主模块如下 module HDMI_Output_Disp( input sysclk_p, input sysclk_n, output [0:0] HDMI_OEN, output TMDS_clk_n, output ...
  • HDMI_FPGA-master.rar

    2021-04-20 15:56:13
    # FPGA_HDMI 本项目是基于XILINX A7芯片的HDMI控制模块
  • HDMI | | 用于上的HDMI 1.4b视频/音频输出的SystemVerilog代码。 为什么? 大多数免费和开源的HDMI源(计算机/游戏机)实现实际上都输出DVI信号,HDMI接收器(电视/显示器)向后兼容。 为了支持音频和其他仅HDMI...
  • 针对此类系统的显示模块,提出一种基于FPGAHDMI多模式显示模块设计方案。首先对HDMI的驱动时序进行分析,设计驱动信号生成电路,然后根据配置参数,将多路视频进行多级ALPHA混合,实现了通过HDMI输出与显示多路...
  • 基于ZYNQ-7000系列FPGAHDMI控制驱动显示代码
  • 这里梳理一下HDMI-LVDS应用的几个项目案例: 1、无缓存直入直出模式;...二、增加缓存进行简单的图像裁剪,主要功能是实现HDMI视频输入经FPGA转成LVDS输出,基本框图如下所示: 主要实现以下功能:[该方案...
  • [HDMI]FPGA上实现HDMI(1)

    2020-02-04 18:10:58
    HDMI是一个数字视频接口,通过FPGA可以很快的实现驱动。下面可以看到HDMI是怎么工作的. connector 标准的HDMI连接器称为"A型",有19个引脚,其中8个引脚是需要注意的,组成了四个差分对TMDS(Transition Min imized...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,589
精华内容 635
关键字:

fpgahdmi