• HDMI 直通 ILA 调试实验


    FPGA教程学习

    第十四章 HDMI 直通 ILA 调试实验



    前言

    HDMI 输入直通到 HDMI 输出的显示,完成一个简单的 HDMI 输入输出检测。


    实验原理

    开发板 HDMI 输出接口芯片使用 ADV7511,HDMI 输入芯片采用 ADV761,可以把输入的数据通过输出直接发送出去。

    程序设计

    教程上说的很简单,不看I2C的话还是很简单的,只使用了几个寄存器。
    在这里插入图片描述
    大概代码如下

    reg 		vin_hs_d0;
    reg 		vin_vs_d0;
    reg 		vin_de_d0;
    reg[23:0] 	vin_data_d0;
    reg 		vin_hs_d1;
    reg 		vin_vs_d1;
    reg 		vin_de_d1;
    reg[23:0] 	vin_data_d1;
    (* MARK_DEBUG="true" *)reg 		vin_hs_d2;
    (* MARK_DEBUG="true" *)reg 		vin_vs_d2;
    (* MARK_DEBUG="true" *)reg 		vin_de_d2;
    (* MARK_DEBUG="true" *)reg[23:0] 	vin_data_d2;
    
    assign vout_clk = vin_clk;
    assign vout_hs = vin_hs_d2;
    assign vout_vs = vin_vs_d2;
    assign vout_de = vin_de_d2;
    assign vout_data = vin_data_d2;
    assign rst_n = locked;
    assign vin_nreset = locked;
    
    always@(posedge vin_clk)
    begin
        vin_hs_d0 <= vin_hs;
        vin_vs_d0 <= vin_vs;
        vin_de_d0 <= vin_de;
        vin_data_d0 <= vin_data;
        vin_hs_d1 <= vin_hs_d0;
        vin_vs_d1 <= vin_vs_d0;
        vin_de_d1 <= vin_de_d0;
        vin_data_d1 <= vin_data_d0; 
        
        vin_hs_d2 <= vin_hs_d1;
        vin_vs_d2 <= vin_vs_d1;
        vin_de_d2 <= vin_de_d1;
        vin_data_d2 <= vin_data_d1;   
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    实验过程

    刚好电脑显卡有多的HDMI输出,接开发板的HDMI输入,开发板的HDMI输出再接一个显示器。
    加载程序后电脑会识别到一个显示设备,可以使用扩展桌面。在显示器生会显示电脑的图像,注意这个图像是经过fpga转了一道的。
    图像显示效果很好,没有异常。
    在这里插入图片描述

    实验尝试

    视频信息和数据不经过三级触发器会怎么样?
    这里注释掉原来触发器部分的代码,更改为下列代码。

    assign vout_hs = vin_hs;
    assign vout_vs = vin_vs;
    assign vout_de = vin_de;
    assign vout_data = vin_data;
    
    • 1
    • 2
    • 3
    • 4

    最后输出的显示屏效果是这样的,有许多地方和实际不一样,显示视频的话会更明显。为什么,这就是亚稳态吗?
    在这里插入图片描述


    总结

    本实验通过将HDMI解码数据送往编码数据芯片,实现了将输入图像直接输出的效果。

    TODO

    1. 了解亚稳态。
    2. 解释图像异常的原因。
    3. 掌握使用代码调试的方法。
  • 相关阅读:
    rabiitmq 队列数据丢失问题
    PTA 7-190 猴子选大王
    挑战100天 AI In LeetCode Day02(2)
    阿里十年总结,这份【Spring架构深度解析】已经被各大厂拿来当面试题了
    瞅一瞅JUC提供的限流工具Semaphore
    Javaer 面试必背系列!超高频八股之三色标记法
    [Golang] json.Marshal问题总结
    Plonky3 Mersenne素数域的Reed-Solomon codes设计
    自己动手写线程池——向JDK线程池进发
    JavaScript数组的常用方法
  • 原文地址:https://blog.csdn.net/weixin_45090728/article/details/132890847