FPGA实现HDMI转LVDS视频输出,纯verilog代码驱动,提供4套工程源码和技术支持

这篇具有很好参考价值的文章主要介绍了FPGA实现HDMI转LVDS视频输出,纯verilog代码驱动,提供4套工程源码和技术支持。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


FPGA实现HDMI转LVDS视频输出,纯verilog代码驱动,提供工程源码和技术支持

1、前言

LVDS协议作为中等速率的差分信号,在笔记本电脑和手机等消费电子领域应用广泛,FPGA实现LVDS视频协议也有广泛应用,一般在军工和医疗领域,LVDS视频相比RGB并行视频传输而言,图像质量和IO数量都有优势,对于做FPGA图像领域的工程师而言,LVDS是迈不过的坎儿,是必须掌握的技能;

本设计基于Xilinx的 Kintex7 开发板实现HDMI转LVDS视频输出,提供4套vivado2019.1版本的工程;4套工程的不同点在于输入HDMI视频的解码方式不同,第一套使用板载的IT6802芯片解码输入HDMI视频为RGB视频;第二套使用板载的ADV7611芯片解码输入HDMI视频为RGB视频;第三套使用板载的silicon9011芯片解码输入HDMI视频为RGB视频;第四套使用纯verilog实现的HDMI解码模块解码输入HDMI视频为RGB视频;四套工程列表如下:

_______________________________________________________________
|vivado工程    | 第一套工程 | 第二套工程 | 第三套工程 | 第四套工程 |
|vivado版本    |  2019.1   |   2019.1  |   2019.1  |   2019.1  |
|HDMI解码芯片  |   IT6802  |  ADV7611  |silicon9011||
|HDMI解码方式  |  硬件解码  |  硬件解码 |  硬件解码  | RTL模块解码 |
|输入视频      |   HDMI    |    HDMI   |   HDMI    |    HDMI    |
|HDMI解码后视频|   RGB888  |    RGB888 |   RGB888  |    RGB888  |
|输出视频      |   LVDS    |    LVDS   |   LVDS    |    LVDS    |
_______________________________________________________________

使用笔记本电脑模拟HDMI输入视频,分辨率为1920X1080@60Hz,如果你的开发板没有HDMI输入接口,或者你的开发板HDMI解码芯片与我的工程用到的不一致,或者为了测试需要,可以选择使用纯verilog实现的静态彩条作为视频输入源,通过顶层代码的define宏定义进行选择;FPGA首先用纯verilog实现的i2c控制器配置HDMI解码芯片(第四套工程除外),FPGA采集HDMI输入解码后的RGB888数据,然后对视频进行奇偶场分离,再送入利用Xilinx的OSERDESE2源语实现差分LVDS模块,将并行的GRB888视频转换为差分LVDS视频输出显示器;工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网以及其他开源免费获取渠道等等),若大佬们觉得有所冒犯,请私信批评教育;部分模块源码转载自上述网络,版权归原作者所有,如有侵权请联系我们删除;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、目前我这里已有的图像处理方案

目前我这里已有的图像处理方案有很多,包括图像缩放、图像拼接、图像旋转、图像识别跟踪、图像去雾等等,所有工程均在自己的板子上跑通验证过,保证代码的可靠性,对图像处理感兴趣或有项目需求的兄弟可以参考我的图像处理专栏,里面包含了上述工程源码的详细设计方案和验证视频演示:直接点击前往

3、本 LVDS 方案的特点

1:纯verilog代码实现,利用Xilinx的OSERDESE2源语实现差分LVDS的产生,所以目前该源码只适用于Xilinx系列FPGA;
2:代码中文注释详细,若你打开注释乱码,请用NotePad++打开即可;
3:提供HDMI输入转LVDS输出方案,LVDS输出为双路8位LVDS,实用性广泛;

4、详细设计方案

使用笔记本电脑模拟HDMI输入视频,分辨率为1920X1080@60Hz,FPGA首先用纯verilog实现的i2c控制器配置HDMI解码芯片(第四套工程除外),FPGA采集HDMI输入解码后的RGB888数据,然后对视频进行奇偶场分离,再送入利用Xilinx的OSERDESE2源语实现差分LVDS模块,将并行的GRB888视频转换为差分LVDS视频输出显示器;

设计原理框图

第一套工程设计原理框图如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
第二套工程设计原理框图如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
第三套工程设计原理框图如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
第四套工程设计原理框图如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

视频源选择

使用笔记本电脑模拟HDMI输入视频,分辨率为1920X1080@60Hz,如果你的开发板没有HDMI输入接口,或者你的开发板HDMI解码芯片与我的工程用到的不一致,或者为了测试需要,可以选择使用纯verilog实现的静态彩条作为视频输入源,通过顶层代码的define宏定义进行选择;代码部分如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
选择逻辑部分代码如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
选择逻辑如下:
当(注释) define COLOR_IN时,输入源视频是HDMI输入;
当(不注释) define COLOR_IN时,输入源视频是静态彩条;

静态彩条

纯verilog代码实现,分辨率为1920*1080@60Hz,设计此模块的目的是为了适应不同的开发板,因为有的开发板没有HDMI输入接口,或者HDMI的解码芯片不一样,此时选择静态彩条可以完美避坑,简单粗暴的进行LVDS的测试;

IT6802解码芯片配置及采集

IT6802解码芯片需要i2c配置才能使用,关于IT6802解码芯片的配置和使用,请参考我往期的博客,博客地址:点击直接前往
本设计配置为1920*1080@60Hz分辨率;

ADV7611解码芯片配置及采集

第二套工程使用ADV7611解码输入的HDMI视频,适应板载ADV7611解码芯片的FPGA开发板;ADV7611解码芯片需要i2c配置才能使用,ADV7611解码芯片配置及采集这两部分均用verilog代码模块实现,代码中配置为1920x1080分辨率;代码位置如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

silicon9011解码芯片配置及采集

第三套工程使用silicon9011解码输入的HDMI视频,适应板载silicon9011解码芯片的FPGA开发板;silicon9011解码芯片需要i2c配置才能使用,关于silicon9011解码芯片的配置和使用,请参考我往期的博客,博客地址:点击直接前往
silicon9011解码芯片配置及采集这两部分均用verilog代码模块实现,代码位置如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

纯verilog的HDMI 解码模块

第四套工程使用纯verilog实现的HDMI解码模块解码输入的HDMI视频,适应没有板载HDMI解码芯片只有HDMI输入接口的FPGA开发板;模块输入为差分HDMI视频,输出为RGB888的VGA视频,并伴随解码的像素时钟、行同步信号、场同步信号以及数据有效信号;此外,该模块还有配套的EDID模块,负责和输入源协商视频分辨率等基本信息,通过i2c接口与外接通信,IDED信息是固定的十六进制文件,例化了ROM用来存储,上电自动加载;该模块最高只支持1920x1080@60Hz分辨率的输入视频解码,更高的2K、4K暂不支持;代码位置如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

奇偶场分离

奇偶场分离模块在工程二中才有,双路的LVDS将视频分为奇偶场发送,奇偶场是模拟视频中的概念,对于入门较晚的兄弟而言比较陌生,这块可以在CSDN或知乎等平台搜索学习一下;奇偶场分离模块就是将1920*1080@60Hz的视频分为奇场和偶场偶;

并串转换

并串转换模块是把并行数据转成7bit的lvds 串行数据,怎么组合成串行,具体要看屏的规格书,如果不是用来点屏,用来做通信或者链接工业相机的,也可以更改这里调整他们的相对位置;

LVDS驱动

利用Xilinx的OSERDESE2源语实现差分LVDS的产生,这个就是调用源语,也没啥好说的,具体看代码;

5、vivado工程1:IT6802版本

开发板FPGA型号:xc7k325tffg676-2;
开发环境:Vivado2019.1;
输入:HDMI视频,笔记本电脑模拟,IT6802硬件解码,或者静态彩条;
输出:双路8bit LVDS;
应用:FPGA实现HDMI转LVDS视频输出;
工程代码架构如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
综合编译完成后的FPGA资源消耗和功耗预估如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

6、vivado工程2:ADV7611版本

开发板FPGA型号:xc7k325tffg676-2;
开发环境:Vivado2019.1;
输入:HDMI视频,笔记本电脑模拟,ADV7611硬件解码,或者静态彩条;
输出:双路8bit LVDS;
应用:FPGA实现HDMI转LVDS视频输出;
工程代码架构如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
综合编译完成后的FPGA资源消耗和功耗预估如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

7、vivado工程3:silicon9011版本

开发板FPGA型号:xc7k325tffg676-2;
开发环境:Vivado2019.1;
输入:HDMI视频,笔记本电脑模拟,silicon9011硬件解码,或者静态彩条;
输出:双路8bit LVDS;
应用:FPGA实现HDMI转LVDS视频输出;
工程代码架构如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
综合编译完成后的FPGA资源消耗和功耗预估如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

8、vivado工程4:RTL解码HDMI版本

开发板FPGA型号:xc7k325tffg676-2;
开发环境:Vivado2019.1;
输入:HDMI视频,笔记本电脑模拟,RTL逻辑解码,或者静态彩条;
输出:双路8bit LVDS;
应用:FPGA实现HDMI转LVDS视频输出;
工程代码架构如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
综合编译完成后的FPGA资源消耗和功耗预估如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

9、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
3:如果你的vivado版本高于本工程vivado版本,解决如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
打开工程后会发现IP都被锁住了,如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
此时需要升级IP,操作如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

10、上板调试验证

笔记本电脑分辨率设置为1920*1080@60Hz,然后连接FPGA开发板,上电下载bit输出如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog

11、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
基于fpga的lvds编码,菜鸟FPGA图像处理专题,fpga开发,音视频,HDMI,LVDS,verilog文章来源地址https://www.toymoban.com/news/detail-841863.html

到了这里,关于FPGA实现HDMI转LVDS视频输出,纯verilog代码驱动,提供4套工程源码和技术支持的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA基于XDMA实现PCIE X4视频采集HDMI输出 提供工程源码和QT上位机程序和技术支持

    PCIE(PCI Express)采用了目前业内流行的点对点串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽,是目前各行业高速接口的优

    2024年02月02日
    浏览(48)
  • FPGA驱动FT601实现USB3.0相机HDMI视频采集 提供工程源码和QT上位机源码

    目前USB3.0的实现方案很多,但就简单好用的角度而言,FT601应该是最佳方案,因为它电路设计简单,操作时序简单,软件驱动简单,官方甚至提供了包括FPGA驱动在内的丰富的驱动源码和测试软件; 本设计用FPGA驱动FT601芯片实现USB3.0数据通信,使用同步245模式通信,提供vivad

    2024年02月09日
    浏览(40)
  • FPGA—HDMI 显示器驱动设计与验证(附代码)

    目录 1.理论 2.实操 2.1 顶层模块 2.2 时钟生成模块 2.3 HDMI 驱动控制模块 2.3.1 编码模块 2.3.2 并行转串行模块 2.4 顶层仿真验证 3.总结 HDMI简介       VGA 接口体积较大;且传输的模拟信号易受外界干扰。因此在VGA 接口之后,首先推出的是 DVI 接口, DVI 是基于 TMDS(Transition Minim

    2024年02月10日
    浏览(46)
  • FPGA高端项目:解码索尼IMX327 MIPI相机+图像缩放+视频拼接+HDMI输出,提供开发板+工程源码+技术支持

    FPGA高端项目:解码索尼IMX327 MIPI相机+图像缩放+视频拼接+HDMI输出,提供开发板+工程源码+技术支持 FPGA图像采集领域目前协议最复杂、技术难度最高之一的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太

    2024年04月08日
    浏览(60)
  • FPGA纯verilog代码实现H264视频压缩 提供工程源码和技术支持

    H264视频压缩与解码在FPGA图传领域应用广泛,Xilinx高端器件已经内嵌了H264加速器,在Linux系统下调用API即可使用,但对于需要定制私有算法或者协议的H264视频压缩与解码应用或者学习研究者而言,纯verilog代码实现H264视频压缩依然具有实用价值,本设计采用纯verilog代码实现

    2024年02月06日
    浏览(57)
  • 用FPGA驱动FT602芯片实现USB3.0UVC 相机彩条视频输出试验,使用同步245模式通信

    FPGA USB3.0 UVC工业相机 本设计用FPGA驱动FT602芯片实现USB3.0UVC 相机彩条视频输出试验,使用同步245模式通信,提供vivado工程源码,用verilog代码生成的彩条视频经过图像三帧缓存至DDR3后读出,经过RGB转YUV送入UVC模块,经FT602芯片的USB3.0接口输出到电脑主机,电脑端用FT602官方的软

    2024年01月25日
    浏览(59)
  • 紫光同创FPGA纯verilog代码实现视频拼接,提供PDS工程源码和技术支持

    紫光同创FPGA纯verilog代码实现视频拼接,提供PDS工程源码和技术支持 “苟利国家生死以,岂因祸福避趋之!”大洋彼岸的我优秀地下档员,敏锐地洞察到祖国的短板在于高精尖半导体的制造领域,于是本着为中华民族伟大复兴的中国梦贡献绵薄之力的初心,懂先生站在高略高

    2024年02月07日
    浏览(53)
  • FPGA实现UDP视频传输,带抓拍和录像功能,纯verilog代码 提供工程源码和技术支持

    目前网上的fpga实现udp基本生态如下: 1:verilog编写的udp收发器,但不带ping功能,这样的代码功能正常也能用,但不带ping功能基本就是废物,在实际项目中不会用这样的代码,试想,多机互联,出现了问题,你的网卡都不带ping功能,连基本的问题排查机制都不具备,这样的代

    2024年02月07日
    浏览(64)
  • FPGA输出lvds信号点亮液晶屏

            该方案用于生成RGB信号,通过lvds接口驱动逻辑输出,点亮并驱动BP101WX-206液晶屏幕。 参考:下面为参考文章,内容非常详细。 Xilinx LVDS Output——原语调用_vivado原语_ShareWow丶的博客 http://t.csdn.cn/Zy37p         MMCM模块为时钟模块,负责将系统时钟变频与输出,产

    2024年02月09日
    浏览(51)
  • FPGA纯verilog代码实现H265视频压缩 支持4K30帧分辨率 提供工程源码和技术支持

    H265视频压缩与解码在FPGA图传领域应用广泛,Xilinx高端器件已经内嵌了H265加速器,在Linux系统下调用API即可使用,但对于需要定制私有算法或者协议的H264视频压缩与解码应用或者学习研究者而言,纯verilog代码实现H264视频压缩依然具有实用价值,本设计采用纯verilog代码实现

    2024年02月07日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包