本人在通信行业三年多,之前一直玩以太网,高速serdes,ddr等接口,最近入手一块图像处理开发板,研究一下视频协议与接口,欢迎大家沟通交流。
1.简介:hdmi 1.4协议,verilog实现,代码结构清晰,简单易懂,方便移植,可用于相关项目。
2.整体框图
本文是HDMI彩条显示,涉及HDMI输出方向,包括编码与串行化功能,后面会出HDMI环回显示的文章,补齐另一个方向。HDMI相关的原理与介绍,网上随便可以搜到,这里不再补充,直接上干货。工程的整体框图如下。
3.各模块说明
3.1彩条输出模块
彩条产生模块,产生多种分频率的彩条,通过宏定义的方式选择以何种分辨率输出
3.2编码模块
8b10b编码模块,当输入数据为视频数据时,按照下图方式编码
上图中各信号含义如下:
3.3串行化输出模块
使用xilinx原语OSERDESE2完成数据的串行化,但是一个OSERDESE2最多完成8bit数据的转换,需要使用2个原语级联,一个作为master,一个作为slave,需要注意的是slave需要从D3开始使用。
OSERDESE2的级联方式可以百度自行搜索或者见下面工程源码
使用xilinx原语OBUFDS将单端信号转成差分信号
3.4复位模块
产生一定周期数的复位
芯片信号:xc7a35t
工具版本:vivado 2022.1
工程获取:HDMI彩条显示工程