电信服务器做网站,网站开发项目合同书,承德建设企业网站,遵义新闻在线第一网目录 1、前言免责声明 2、目前我这里已有的图像处理方案3、本 LVDS 方案的特点4、详细设计方案设计原理框图视频源选择静态彩条IT6802解码芯片配置及采集ADV7611解码芯片配置及采集silicon9011解码芯片配置及采集纯verilog的HDMI 解码模块奇偶场分离并串转换LVDS驱动 5、vivado… 目录 1、前言免责声明 2、目前我这里已有的图像处理方案3、本 LVDS 方案的特点4、详细设计方案设计原理框图视频源选择静态彩条IT6802解码芯片配置及采集ADV7611解码芯片配置及采集silicon9011解码芯片配置及采集纯verilog的HDMI 解码模块奇偶场分离并串转换LVDS驱动 5、vivado工程1IT6802版本6、vivado工程2ADV7611版本7、vivado工程3silicon9011版本8、vivado工程4RTL解码HDMI版本9、工程移植说明vivado版本不一致处理FPGA型号不一致处理其他注意事项 10、上板调试验证11、福利工程代码的获取 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输入视频分辨率为1920X108060Hz如果你的开发板没有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输入视频分辨率为1920X108060HzFPGA首先用纯verilog实现的i2c控制器配置HDMI解码芯片(第四套工程除外)FPGA采集HDMI输入解码后的RGB888数据然后对视频进行奇偶场分离再送入利用Xilinx的OSERDESE2源语实现差分LVDS模块将并行的GRB888视频转换为差分LVDS视频输出显示器
设计原理框图
第一套工程设计原理框图如下 第二套工程设计原理框图如下 第三套工程设计原理框图如下 第四套工程设计原理框图如下
视频源选择
使用笔记本电脑模拟HDMI输入视频分辨率为1920X108060Hz如果你的开发板没有HDMI输入接口或者你的开发板HDMI解码芯片与我的工程用到的不一致或者为了测试需要可以选择使用纯verilog实现的静态彩条作为视频输入源通过顶层代码的define宏定义进行选择代码部分如下 选择逻辑部分代码如下 选择逻辑如下 当(注释) define COLOR_IN时输入源视频是HDMI输入 当(不注释) define COLOR_IN时输入源视频是静态彩条
静态彩条
纯verilog代码实现分辨率为1920*108060Hz设计此模块的目的是为了适应不同的开发板因为有的开发板没有HDMI输入接口或者HDMI的解码芯片不一样此时选择静态彩条可以完美避坑简单粗暴的进行LVDS的测试
IT6802解码芯片配置及采集
IT6802解码芯片需要i2c配置才能使用关于IT6802解码芯片的配置和使用请参考我往期的博客博客地址点击直接前往 本设计配置为1920*108060Hz分辨率
ADV7611解码芯片配置及采集
第二套工程使用ADV7611解码输入的HDMI视频适应板载ADV7611解码芯片的FPGA开发板ADV7611解码芯片需要i2c配置才能使用ADV7611解码芯片配置及采集这两部分均用verilog代码模块实现代码中配置为1920x1080分辨率代码位置如下
silicon9011解码芯片配置及采集
第三套工程使用silicon9011解码输入的HDMI视频适应板载silicon9011解码芯片的FPGA开发板silicon9011解码芯片需要i2c配置才能使用关于silicon9011解码芯片的配置和使用请参考我往期的博客博客地址点击直接前往 silicon9011解码芯片配置及采集这两部分均用verilog代码模块实现代码位置如下
纯verilog的HDMI 解码模块
第四套工程使用纯verilog实现的HDMI解码模块解码输入的HDMI视频适应没有板载HDMI解码芯片只有HDMI输入接口的FPGA开发板模块输入为差分HDMI视频输出为RGB888的VGA视频并伴随解码的像素时钟、行同步信号、场同步信号以及数据有效信号此外该模块还有配套的EDID模块负责和输入源协商视频分辨率等基本信息通过i2c接口与外接通信IDED信息是固定的十六进制文件例化了ROM用来存储上电自动加载该模块最高只支持1920x108060Hz分辨率的输入视频解码更高的2K、4K暂不支持代码位置如下
奇偶场分离
奇偶场分离模块在工程二中才有双路的LVDS将视频分为奇偶场发送奇偶场是模拟视频中的概念对于入门较晚的兄弟而言比较陌生这块可以在CSDN或知乎等平台搜索学习一下奇偶场分离模块就是将1920*108060Hz的视频分为奇场和偶场偶
并串转换
并串转换模块是把并行数据转成7bit的lvds 串行数据怎么组合成串行具体要看屏的规格书如果不是用来点屏用来做通信或者链接工业相机的也可以更改这里调整他们的相对位置
LVDS驱动
利用Xilinx的OSERDESE2源语实现差分LVDS的产生这个就是调用源语也没啥好说的具体看代码
5、vivado工程1IT6802版本
开发板FPGA型号xc7k325tffg676-2 开发环境Vivado2019.1 输入HDMI视频笔记本电脑模拟IT6802硬件解码或者静态彩条 输出双路8bit LVDS 应用FPGA实现HDMI转LVDS视频输出 工程代码架构如下 综合编译完成后的FPGA资源消耗和功耗预估如下
6、vivado工程2ADV7611版本
开发板FPGA型号xc7k325tffg676-2 开发环境Vivado2019.1 输入HDMI视频笔记本电脑模拟ADV7611硬件解码或者静态彩条 输出双路8bit LVDS 应用FPGA实现HDMI转LVDS视频输出 工程代码架构如下 综合编译完成后的FPGA资源消耗和功耗预估如下
7、vivado工程3silicon9011版本
开发板FPGA型号xc7k325tffg676-2 开发环境Vivado2019.1 输入HDMI视频笔记本电脑模拟silicon9011硬件解码或者静态彩条 输出双路8bit LVDS 应用FPGA实现HDMI转LVDS视频输出 工程代码架构如下 综合编译完成后的FPGA资源消耗和功耗预估如下
8、vivado工程4RTL解码HDMI版本
开发板FPGA型号xc7k325tffg676-2 开发环境Vivado2019.1 输入HDMI视频笔记本电脑模拟RTL逻辑解码或者静态彩条 输出双路8bit LVDS 应用FPGA实现HDMI转LVDS视频输出 工程代码架构如下 综合编译完成后的FPGA资源消耗和功耗预估如下
9、工程移植说明
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软核
10、上板调试验证
笔记本电脑分辨率设置为1920*108060Hz然后连接FPGA开发板上电下载bit输出如下
11、福利工程代码的获取
福利工程代码的获取 代码太大无法邮箱发送以某度网盘链接方式发送 资料获取方式私或者文章末尾的V名片。 网盘资料如下