This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP C6748 与 FPGA 通讯方式的选择

最近刚接触TI C6000 DSP平台,购买了广州创龙的“TL138_1808_6748-EVM”开发板,该开发板由核心板与底板组成,可以方便测试,并提供了大量的例程关键是有视频教程,就像十天学会单片机的视频一样比较适合初学者入门。现在想自己做个底板,对于DSPFPGA采用哪种接口方式还是比较纠结。创龙官方既提供了EMIFA的例程也提供了UPP的例程。本人之前对EMIFAFPGA通讯有所了解,但是对UPP接口还不是很清楚。查阅了很多资料,对两种通讯方式大概有了个了解,在此分享一下,理解有误的话,还请大神指点。

         1EMIFA即外部存储器接口,UPP即通用并行接口。EMIFA有地址线和数据线,片选信号,读写使能信号;而UPP只有两个数据通道,没有地址线的概念,是通过START/ENABLE/WAIT/CLOCK信号控制数据的传输和同步。所以,一般使用UPP都是在FPGA里生成一个FIFODSP通过UPP接口连续的读取FIFO里的数据,或把数据写入FIFO,而不像EMIFA先要发送地址信号然后读取或写入数据。所以UPP的通讯速率要比EMIFA高很多。UPP时钟可以达到75MHz,使用上升沿下降沿均锁存数据的话吐量可以达到150MB/S。而EMIFA的时钟最高为148MHz,对于CS0SDRAM来说,这即是同步接口的时钟频率;对于异步接口来说,这是模块的工作时钟,异步接口的时序由SETUP/STROBE/HOLD三个阶段组成,所以数据通信速率肯定比UPP慢。EMIFA的通讯速率广州创龙官方给出的测试数据是:

EMIF_FPGA通信案例是CPU直接读写数据,数据吞吐率为:

FPGA写数据:4.54MB/s

FPGA读数据:4.23MB/s

经过DMA优化后,EMIFA的通信速率大幅提升,数据吞吐率为:

FPGA写数据:46.96MB/s(按当前配置最大理论值为:48MB/s);

FPGA读数据:41.62MB/s(按当前配置最大理论值为:48MB/s)。

         2,综上所述,选择DSPFPGA的接口方式时,应该考虑实际的需求,如果做图像处理之类FPGA采集大量数据需实时传送到DSP做运算处理,这种情况最好在FPGA里建立FIFO采用UPP的通讯方式。如果做控制类的产品FPGA一般是管理大量的IO接口和外设等,FPGA里建立有很多的状态寄存器,用于保存采集数据和输出控制等,这种情况使用EMIFA接口更加方便,因为有地址,所以DSP可以任意读取或写入FPGA的某个或多个寄存器。