由于近年来FPGA的功能越来越强大,不仅集成了大量片内存储器,而且还有大量的DSP资源。现在很少看到FPGA和DSP搭建的系统了。不过最近做了一个DSP和FPGA搭建的系统。记录一下吧。
DSP为TI C6000系列TMS320C6713,FPGA为Cyclone IV系列的FPGA。
实验目的:实现DSP和FPGA的通讯。
功能:首先FPGA向DSP写入一组递增数据,DSP接收到15个数据后,把这15个数据进行加一处理,处理完毕后写回到FPGA
FPGA内部有两个FIFO口,一个用来向DSP发送数据,一个用来接收DSP发送回来的数据。同时设置串口程序,把接收回来的数据发送到上位机,用来验证接收回来是否正确。
FPGA通过定时器,以一定的时间间隔连续的向DSP发送触发信号,DSP接收到触发信号,开始接收数据,接收完后进行加一处理后向FPGA发送回来
DSP接收数据,处理数据,数据发送回来加起来的时间小于FPGA时间间隔时间。
DSP工作过程:
DPS与FPGA通过DSP的EMIF总线连接。发送和接收接口分别为EMIF的CE2,CE3存储空间,由于FPGA内部为FIFO,所以对于时序要求并不严格。
DSP对接收到FPGA数据进行处理程序是在EDMA的中断程序中执行的。过程如下:
-
配置EDMA通道4选通为外部触发,接收FPGA送过来的触发信号。
-
接收到FPGA发送过来的触发信号后,通道4把EMIF的CE2存储空间的数据转移到内部数组。
-
转移完毕后,进入EDAM中断,在中断程序中,进行数据处理,处理完毕后触发EDMA通道11事件,把数据完毕后的数据发送回FPGA。
FPGA工作过程:
-
首先配置两个FIFO模块。一个用来写数据到DSP—w_fifo,一个用来读出DSP数据—r_fifo。
-
向w_fifo写入一组连续的数据。
-
触发DSP去读。
-
检查r_fifo是否有数据,有数据就读出来
-
把读到的数据送至上位机。
|