基于FPGA的以太网传输图片通过HDMI显示(含源码)

您所在的位置:网站首页 电脑图像显示延迟 基于FPGA的以太网传输图片通过HDMI显示(含源码)

基于FPGA的以太网传输图片通过HDMI显示(含源码)

2024-06-18 08:08| 来源: 网络整理| 查看: 265

  基于FPGA的HDMI设计导航页面,点击跳转。

  基于FPGA的以太网相关文章导航,点击查看。

  在此之前,已经讲解过HDMI、UDP、DDR3等模块的使用,前文在使用HDMI显示图片时,由于没有讲解DDR3,使用FPGA内部的RAM存储图像数据,因为FPGA片上RAM的资源有限,导致最终显示放大的图片失真严重。

  本文通过DDR3存储整张图片的数据,然后通过HDMI在显示器上进行显示,得到清晰的图片。

  整体思路比较简单,首先UDP接收电脑从网口传输的数据,将接收的8位数据拼接成16位数据后输入DDR3控制模块的写FIFO中。当写入DDR3一帧图像数据后,从DDR3读出数据存入读FIFO中,HDMI刷新模块从读FIFO中读取16位数据,之后将16位转变成24位像素数据。然后传输给HDMI编码模块进行编码,之后将数据传输给显示器进行显示。

  显示器的分辨率为1024*768,因此DDR3的起始地址为0,最大地址设置为1024*768=786432,每次读写一行图像数据,突发长度设置为1024,对应MIG IP读写数据的突发长度为128。

1、udp输出数据处理模块

  前文讲解过UDP模块的设计,本工程直接使用即可,由于UDP模块中实现了ARP和ICMP协议,所以电脑不需要手动绑定开发板的MAC地址和IP地址,直接使用上位机传输数据即可。

  下图是以太网接收和发送模块的内部示意图,想了解具体实现方式可以参考前文。

在这里插入图片描述

图1 以太网传输模块

  UDP接收的是8位数据,而DDR3读写数据为16位,需要把8位数据拼接为16位数据。由于软件生成像素数据时,先生成的高8位数据,所以接收时也是先接收的高8位数据。

  因此该模块的参考代码如下所示:

module udp_data( input clk ,//时钟信号; input rst_n ,//复位信号,低电平有效; input [7 : 0] din ,//输入数据; input din_vld ,//输入数据有效指示信号; output reg [15 : 0] dout ,//输出16为并行数据; output reg dout_vld //输出数据有效指示信号,高电平有效; ); reg din_vld_r ;// //生成像素有效指示信号,以太网每次穿8位数据,传输两次合成一个像素数据; always@(posedge clk)begin if(rst_n==1'b0)begin//初始值为0; din_vld_r


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3