一、项目概述
在zynqmpsoc上实现4x3Gsdi转hdmi,有两种模式,SQD和2SI,SQD只需要在ddr中按四副子图像缓存后,再整张读取即可!2SI由于编码方式,需要对四副1080P子图像进行列交错和行交错,最后通过hdmi输出。
二、项目难点
1、实现方案:通过多种方案验证,最后采用,从ddr中读取上下两副3840x1080的图像,再进行列交错和行交错。
2、读取两幅图像的同步问题:通过多种途径验证,vdma读同步配置为none,即自由运行模式,经可能快的传输,vdma配置上,在代码端两个vdma启动要串行,最后上板试验中,两个视频流的帧同步只差半行左右,后续流程用fifo解决。
3、采用异步fifo进行行交错和列交错,3840x1080为148.5Mhz,3840x2160为270Mhz,这两个时钟一定要来自同一时钟源,最开始我用sdi物理层恢复的148.5Mhz,用hdmitx物理层的297Mhz,后产生的4k图像时序不稳定。
三、总结
仿真和上板不一样,积极仔细在上板中找问题!后面进行mixer ip核的使用,叠加hdmi和12Gsdi
的两幅4k60画面后输出一路hdmi4k60!认真努力开发!
4x3Gsdi 接口(2SI)源代码,纯verilog实现,有需求可谈!