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


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

1、前言

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

本设计基于Xilinx的 Kintex7 开发板,用verilog写了一个彩条作为视频源,利用Xilinx的OSERDESE2源语实现差分LVDS的产生,将并行的GRB888视频转换为差分LVDS视频输出显示器;提供2套vivado2019.1版本的工程,第一套工程的视频分辨率为1024600,单路8位LVDS输出;第二套工程的视频分辨率为19201080,双路8位LVDS输出;工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

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

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

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

3、本 LVDS 方案的特点

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

4、详细设计方案

提供2套vivado2019.1版本的工程,第一套工程的视频分辨率为1024600,单路8位LVDS输出;第二套工程的视频分辨率为19201080,双路8位LVDS输出;

设计原理框图

第一套工程设计原理框图如下:
在这里插入图片描述
第二套工程设计原理框图如下:
在这里插入图片描述

彩条视频

用verilog写了一个彩条作为视频源,工程一的彩条分辨率为1024600;工程二的彩条分辨率为19201080;彩条本身很简单,这里不再赘述;

奇偶场分离

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

并串转换

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

LVDS驱动

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

5、vivado工程1:单路8bit LVDS

开发板FPGA型号:xc7k325tffg676-2;
开发环境:Vivado2019.1;
输入:verilog实现的彩条;
输出:单路8bit LVDS;
应用:FPGA实现LVDS视频输出;
工程代码架构如下:
在这里插入图片描述
综合编译完成后的FPGA资源消耗和功耗预估如下:
在这里插入图片描述

6、vivado工程2:双路8bit LVDS

开发板FPGA型号:xc7k325tffg676-2;
开发环境:Vivado2019.1;
输入:verilog实现的彩条;
输出:双路8bit LVDS;
应用:FPGA实现LVDS视频输出;
工程代码架构如下:
在这里插入图片描述
综合编译完成后的FPGA资源消耗和功耗预估如下:
在这里插入图片描述

7、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
在这里插入图片描述
3:如果你的vivado版本高于本工程vivado版本,解决如下:
在这里插入图片描述
打开工程后会发现IP都被锁住了,如下:
在这里插入图片描述
此时需要升级IP,操作如下:
在这里插入图片描述
在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

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

8、上板调试验证

工程1的1024600输出单通道8bit LVDS屏输出演示,输出如下:
在这里插入图片描述
工程2的1920
1080输出双通道8bit LVDS屏输出演示,输出如下:
在这里插入图片描述

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

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: FPGA是现场可编程门阵列的缩写,是一种集成电路芯片,可以通过编程来实现特定功能。LVDS(低压差分信号)是一种高速的数字信号传输技术,常用于视频、音频和数据传输。LCD控制器是控制液晶显示屏的电子设备。 要使用FPGA实现LVDS信号输出LCD控制器,我们可以使用Verilog语言进行编程。 首先,我们需要了解所使用的FPGA芯片和LCD控制器的规格和接口要求。然后,根据LCD控制器的输入信号和时序,设计和实现相应的Verilog模块。 在Verilog中,我们可以使用模块化的方式构建设计,将各个功能模块分离开来。例如,我们可以设计一个模块来生成LVDS信号,并将其连接到LCD控制器模块的输出端口。我们还可以设计一个模块来处理LCD控制器的输入信号,并将其连接到FPGA芯片的其他功能模块。 在设计中,我们需要考虑时序和同步问题,以确保数据的准确传输和显示。我们可以使用时钟信号和状态机来控制数据的发送和接收。 实现过程中,我们需要根据FPGA芯片的规格和开发环境的要求进行编程和调试。在完成编程后,我们可以使用仿真工具来验证设计的正确性和功能性,确保它能够正确地输出LVDS信号并控制LCD显示屏。 总之,使用FPGA实现LVDS信号输出LCD控制器涉及Verilog编程和设计模块化的过程。通过正确的设计和调试,我们可以实现高质量的LVDS信号输出,并成功控制LCD显示屏的功能。 ### 回答2: FPGA是一种可编程逻辑器件,可用于实现各种数字电路功能。LVDS(Low Voltage Differential Signaling)是一种高速差分信号传输技术,常用于视频信号传输和LCD控制器中。而Verilog是一种硬件描述语言,可以用来描述和设计数字电路。 对于使用FPGA实现LVDS信号输出LCD控制器,首先需要对LCD的驱动进行了解,包括时序和信号特性等。然后,我们可以使用Verilog语言来编写LCD控制器的逻辑电路。 要实现LVDS信号输出,我们需要利用FPGA的高速差分信号IO资源和LVDS驱动器。在Verilog代码中,我们可以使用FPGA的差分信号IO接口来定义LVDS信号输出引脚,并使用相应的差分信号输出的IP核接口。 在编写Verilog代码时,我们需要考虑时钟和数据的同步问题。通常,LCD控制器使用一个时钟信号来进行数据传输和控制。我们可以使用FPGA内部的时钟网进行时钟分频和同步控制。同时,我们还需要定义和实现数据线与LVDS的转换逻辑,以将图像数据转换为LVDS格式的数据。 为了验证我们的设计,我们可以通过仿真或硬件验证的方式进行测试。在仿真过程中,我们可以使用Verilog仿真软件对我们编写的代码进行功能验证。在硬件验证过程中,我们可以将设计烧录到FPGA芯片中,并连接FPGA芯片和LCD显示屏进行实际测试。 总而言之,通过使用FPGA实现LVDS信号输出LCD控制器,我们可以通过Verilog代码对LCD的驱动逻辑进行描述和实现,并利用FPGA的差分信号IO资源和LVDS驱动器来实现高速差分信号输出。这种方法可以实现LCD控制器的灵活性和可编程性,以满足不同应用场景的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

9527华安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值