HDMI 直通 ILA 调试实验

2023-09-14 22:15:52

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

实验过程

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

实验尝试

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

assign vout_hs = vin_hs;
assign vout_vs = vin_vs;
assign vout_de = vin_de;
assign vout_data = vin_data;

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


总结

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

TODO

  1. 了解亚稳态。
  2. 解释图像异常的原因。
  3. 掌握使用代码调试的方法。
更多推荐

uniapp引入小程序原生插件

怎么在uniapp中使用微信小程序原生插件,以收钱吧支付插件为例1、在manifest.json里的mp-weixin中增加插件配置"mp-weixin":{"appid":"你的小程序appid","setting":{"urlCheck":false},"usingComponents":true,//在下面配置插

1.9python基础语法——运算符

1)算数运算符运算符描述实例+加1+1输出结果为2-减1-1输出结果为0*乘2*2输出结果为4/除10/2输出结果为5//整除9//4输出结果为2%取余9%4输出结果为1**指数2***4输出结果为16,即2*222()小括号小括号用来提高运算优先级,即(1+2)*3输出结果为9注意:混合运算优先级顺序:()高于**高

Laravel5使用box/spout扩展,大文件导出CSV文件

一、背景早期开发的系统,使用laravel框架,版本V5.4,项目经理导出3年的数据,由于数据量较大,浏览器卡死。一次性无法导出,某位程序员告知按月去导出,之后在拼凑,这。。搁谁受的了,我担心投诉,加个班优化下。二、优化方案导出数据的Sql,对应创建索引,提高查询速度查询结果集使用chunk()方法拆分较小集合使用bo

Hive 的权限管理

目录​编辑一、Hive权限简介1.1hive中的用户与组1.1.1用户1.1.2组1.1.3角色1.2使用场景1.2.1hivecli1.2.2hiveserver21.2.3hcatalogapi1.3权限模型1.3.1StorageBasedAuthorizationintheMetastoreServer1.3.

竞赛选题 基于机器视觉的火车票识别系统

文章目录0前言1课题意义课题难点:2实现方法2.1图像预处理2.2字符分割2.3字符识别部分实现代码3实现效果最后0前言🔥优质竞赛项目系列,今天要分享的是基于机器视觉的火车票识别系统该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🧿更多资料,项目分享:https://gitee.com/dancheng-sen

MySQL数据库查缺补漏——基础篇

MySQL数据库查缺补漏-基础篇基础篇netstartmysql80[服务名]netstopmysql80createdatabasepshdhxdefaultcharsetutf8mb4;为什么不使用utf8?因为其字符占用三个字节,有四个字节的字符,所有需要设置为utf8mb4;数值类型:字符串类型:日期类型:用户

汽车自适应巡航系统车距控制策略研究

摘要:由于汽车自适应巡航控制系统的非线性和不确定性等问题,传统的非线性系统等效线性化方法难以满足系统的精度、稳定度和快速性的要求,因此提出了一种基于模糊控制理论的自适应巡航控制器的设计方法。通过对汽车距离差和相对速度的计算和推理,实时调整本车加速度,保证本车能够在一定的安全车距下跟随前车。通过在Matlab/Simul

虹科案例 | LIN/CAN总线汽车零部件测试方案

文章来源:虹科汽车电子点此阅读原文虹科的LIN/CAN总线汽车零部件测试方案是一款优秀的集成套装,基于Baby-LIN系列产品,帮助客户高效完成在测试、生产阶段车辆零部件质量、功能、控制等方面的检测工作。1、汽车零部件测试的重要性?汽车零部件的测试对于确保汽车的安全性、功能性和可靠性起着至关重要的作用。LIN/CAN通

驱动开发DAY4

驱动代码#include<linux/init.h>#include<linux/module.h>#include<linux/cdev.h>#include<linux/fs.h>#include<linux/device.h>#include<linux/uaccess.h>#include<linux/slab

【Pytest实战】Pytest+Allure+Jenkins自动化测试框架搭建

😄作者简介:小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊座右铭:不想当开发的测试,不是一个好测试✌️。如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍之前分享过Pytest基础知识,可参考Pytest实战专栏

创建Scrapy项目

创建Scrapy项目的步骤如下:安装Scrapy:在终端或命令提示符中运行以下命令来安装Scrapy:pipinstallscrapy创建Scrapy项目:在终端或命令提示符中,使用以下命令创建一个新的Scrapy项目:scrapystartproject<project_name>其中,<project_name>是

热文推荐