(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)
上篇我们详细讲解了图像RGB转YCbCr的FPGA硬件设计思路和硬件编程实现,本篇反过来我们要实现图像YCbCr转RGB的FPGA硬件实现。YCbCr转RGB的硬件设计思路和上篇完全一样,也是先将公式带小数的系数放大成整数,使用三个时钟周期来完成图像的转换。
直接上RTL代码,首先将公式的系统转换成整数。
第一个时钟周期,实现所有的乘法和低3位截断。
第二个时钟周期完成所有的加减运算,并将结果继续进行低三位截断。第三个时钟周期根据高位来判断结果时候是否超出范围。
最后对图像的场同步,行同步和数据有效信号延时三拍进行同步。
在src的top文件夹中,对rgb2ycbcr和ycbcr2rgb模块进行例化。
在tb_image_sim的第二个initial块中,将图像仿真平台和FPGA硬件仿真的结果进行比对,同理,按照FPGA硬件设计的思路新设计了一个ycbcr2rgb_fpga的task。
最后我们双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。
可以看到在modelsim的Transcript有如下的打印信息,图像测试平台和FPGA硬件仿真的结果一致。
打开img文件夹,也可以看到图像测试平台和FPGA硬件仿真的结果是一致的。