微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > FPGA 图像处理 测试求助

FPGA 图像处理 测试求助

时间:10-02 整理:3721RD 点击:
现在在用fpga 做视频图像算法方面的工作 输入是从相机采进来的视频流 大致算法是这样的:把每一帧分块处理 计算前一帧与当前帧相应块的差值 现在遇到问题 不知道怎么编写testbench 去验证算法是否正确 不知道像视频流这种数据怎么给激励 请有相关经验的前辈给予指点 谢谢

进来的数据是 数字的? yuv格式?

先把视频流 存储成一个文件。 然后用
verilog  按相同速率 输入给 处理单元。   主要注意格式转换。



   谢谢你的回复, 是数字的,YUV格式的

几帧数据合起来做一个文件,开一组reg array用readmemh读进来,然后按照输入格式输入。
最终结果先用C算好保存为golden文件。
最终的结果可以也用reg array读入后逐个比较,也可以输出成文件再与golden比较。



    我做的时单帧图像的处理,整个处理系统都是用硬件实现的。不知道小编处理视频流的时候是否要用到FPGA的嵌入式开发,也就是软硬件都要涉及。因为之后要处理视频的,所以先咨询下



   我负责的是纯硬件部分 我lab里另一个同学在做软件



  感谢你的回答 我的方案暂时是这样的 原始数据从camera 由HDMI 接口送进来 经过DDR3 然后取出来 做算法运算 那我做测试给激励的话 是不是也要按照HDMI DDR3的时序 感觉好复杂~多谢


你可以先简单后复杂,输入先按简单的一个cycle一组数据的方式(需要看DDR定义的输入数据位宽)输入,验证成功以后。
再把输入接口换成DDR的输入格式(你可以先拿HDMI+DDR仿真看看DDR的输出格式)。
再把HDMI+DDR加到前面。

学习了,虽然很多还是懵懂



   可以把原始数据先保存到文件,然后在仿真过程中通过HDMI接口灌进去。至于DDR3,去micron的网站下载一个ddr3的模型,直接就可以用了。

HDMI时序如果感觉不好做,可以先把接口隔过去,直接灌转接口以后的数据。



   谢谢你的建议。目前我也是这么做的。但是实际操作中还是遇到了一些问题。我的接口是HDMI,我已经参照HDMI spec,模拟出了HDMI时序标准,当DE信号有效时,HDMI灌数据,当我把几帧图像存在reg array里时,从reg 里读出来数据,我想应该需要地址信号吧,那么这个地址信号跟这个DE信号应该怎么配合?望解,感谢。



      谢谢你的建议。目前我也是这么做的。但是实际操作中还是遇到了一些问题。我的接口是HDMI,我已经参照HDMI spec,模拟出了HDMI时序标准,当DE信号有效时,HDMI灌数据,当我把几帧图像存在reg array里时,从reg 里读出来数据,我想应该需要地址信号吧,那么这个地址信号跟这个DE信号应该怎么配合?望解,感谢。

仿真啊,ddr的部分还是参考一下参考设计

   这是就是内存管理的东西啊 ,把整个地址空间分成几个帧,每次开始写从帧的偏移0开始写,每一拍加1.帧的管理可以自己想办法去管理 。
根据不同的应用可能会有不懂的改变。上面只是一种方式而已,不一定适合你的设计。

HDMI的标准我不太清楚,具体控制信号和数据的格式就需要查资料了。

写一个HDMI主设备模型几乎是不可能的,因此这个系统想写个完整的testbench也是不可能的。
建议如下: 给你的算法模型写个激励,将图像数据直接送入算法模块,即抛开HDMI不去理他,仅测试你自己的逻辑部分,DDR部分几乎所有厂商都有DDR仿真模型,你可以直接在网上下到,这样就能联合仿真了。

可以用systemverilog产生这个矩阵,在队列弹出

没有参照么,C_module?不然你怎么知道你的RTL是否正确

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top