(2019-06-14-16:49)
<涉及项目: Video_Switch_xxxx>
平台: lattice ecp5
场景:主板fpga将摄像头采集的数据解码出来,通过ODDR将数据传输至BSD(ZYNQ)小板。
现象:传数据给bsd小板的时候,发现以双沿bt656传输的数据总是出错(有误码)。
后来改为bt1120单沿传输,图像大体上出来了,但是有时候颜色不对,并且会随机出现白色的小点点。
摸索: 在发送侧,将Y递加,发现接受的图像亮度竟然不是连续的,而且很有规律。
解决方法:将给bsd的时钟用ODDR输出,data改成2’b10,输出的数据和时钟就是中心对齐了。此时接收端图像就正常了。
PS:
也就是在这家公司(合作伙伴),在没有输出端的情况下,我看到一个大佬竟然可以直接将DDR中的数据读出来,用matlab显示出来。当时才知道了xilinx的工具这么牛逼。
当时大佬告诉我的原理,说这个类似于quartus的signaltap,只不过是存的数据多了点,同时可以把里边存的数据可能以文本的形式输出来,然后用matlab读取以显示图片。
记下来,有时间我也来研究研究。