FPGA图像处理项目(一)--FIFO与FFT

    最近这个项目是要通过SRIO将图像解析数据送到XILINX FPGA通过FFT处理再用SRIO传回主控,我准备用FIFO来做一个数据的缓冲池,然后按行做FFT运算,中间结果按行存入RAM中,之后按列进行FFT运算,再存入RAM,最后传入FIFO,经过SRIO传回主控。

   昨天算是对FIFO有了一定了解(因为光一个fifo文档就300多页,我想一个看似简单的IP核其实想用好还真的不容易),对于本项目也够用了。今天把FIFO和FFT连在一起用了一下,各个模块搭好后,进行仿真测试,在这一过程中问题还是很多的,对于FFT参数的控制和激励一定要非常仔细,必须要一点点仿真一点点把握各个模块之间的时序关系。

   接触FPGA也有半年多,其实这半年来FPGA用的也不是很多,一直断断续续的,这样真的不好。因为自己是计算机学院的学生,所以周围的师兄师姐都没有做FPGA的,基本都是自己一个人摸索吧,有些时候一个简单的问题都会让我困扰很久,也许这时候只需要一个稍微懂一点FPGA的给我一点拨也就通了,但是我想有时候只有在遇到困难才能让人真正的提高,这种提高不仅仅是知识上的,我想很多东西是说不清的。项目要一点点推进,每个环节都需要严格的仿真才能继续进行,加油,我想这个项目完成以后我一定会收获不少!

    废话不多,下面把今天的一点工作进展进行下记录。这面两个模块一个是主模块,一个是地址与控制信号生成模块。这里按各个状态来描述:

   1. S_IDLE状态--向FIFO传输1-256个数据(实部是1-256,虚部都是0):这里通过判断fifo_recv_full来进行状态跳转,当fifo_recv_full为高时说明256个数据已经传输完毕,跳转到S_FFT_START状态

    2. S_FFT_START状态--拉高fft_start信号,以及使能FIFO的读信号fifo_rd_en信号,具体变化请看图1。这里一个关键问题就是,什么时候拉低fft_start信号,这里考虑fifo_data_count信号,我的方法是当前时钟周期fifo

你可能感兴趣的:(FPGA项目,FIFO,FFT)