">
摘 要: 现代电子技术的快速发展使得大量的数据需要处理与传输,为解决该问题,通过TMS320C6455的EMIF接口实现了DSP与FPGA之间的数据双向快速通信。FPGA通过EMIF接口将内部RAM中的数据传输给DSP进行处理,DSP将处理后的数据结果再通过EMIF接口传送到FPGA的片内接收模块双口RAM并进行存储。EMIF通道实现了对数据的传输,双口RAM完成了对数据的接收。实验结果表明,该设计方案能够实现数据的双向快速正确传输。
关键词: DSP; EMIF; FPGA; 双口RAM
中图分类号: TN925?34; TP39 文献标识码: A 文章编号: 1004?373X(2014)13?0010?03
Realization of high?speed communication between DSP and FPGA
by EMIF dual?port RAM
YANG Long, LI Fan?ming, LIU Shi?jian
(Shanghai Institute of Technical Physics, Chinese Academy of Sciences, Shanghai 200083, China)
Abstract: The rapid development of modern electronic technology requires the processing and transmission of plenty of data. In order to solve this problem, TMS320C6455 EMIF interface was adopted to realized the rapid data intercommunication between DSP and FPGA. FPGA transfers data in the internal RAM to DSP for processing through EMIF interface. DSP transmits the processed data through EMIF interface to dual?port RAM in FPGA to store. EMIF interface is used to achieve the data transmission, and dual?port RAM is used to realized the data reception. The experimental results show that the design scheme can realize data intercommunication quickly and correctly.
Keywords: DSP; EMIF; FPGA; dual?port RAM
0 引 言
随着电子技术的飞速发展,电子系统的信息量和数据量也随之巨增,这就对系统的信息处理与传输能力有更高的要求。在信号处理系统方面,随着大规模可编程器件的发展,并广泛应用于各种信号处理中,现阶段信号处理采用DSP+FPGA 结构的信号处理系统显示出了其优越性,正逐步得到重视并广泛应用。FPGA 是在专用ASIC 的基础上发展出来的,它克服了专用ASIC 不够灵活的缺点,与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便,而且在大批量应用时,可降低成本。
DSP+FPGA 结构最大的特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高算法效率;同时其开发周较短,系统易于维护和扩展,适合于实时信号处理。而要想实现DSP+FPGA 结构的正确应用,先要实现DSP和FPGA之间的通信桥梁,也就是首先要解决两者之间的通信问题,即接口设计,本文提出一种DSP和FPGA之间的通信方式。
1 FPGA内部双口RAM配置
本设计采用Xilinx公司的Virtex5系列的FPGA器件,在该器件内部集成有块存储器资源,该存储器资源可配置成单口RAM 、简单双端口RAM 、真正双端口RAM、速度性能可以达到450 MHz,数据位宽也可以根据不同的应用场合配置为8位、16位、32位、64位。
由于要实现数据的双向传输,所以该设计将FPGA内部的块存储器配置为真正的双端口RAM。真正的双端口RAM 有两个完全独立的端口(端口A和端口B)用于访问共享的存储空间。双口RAM的每个端口有各自的数据线、地址线、读写控制线,可以允许不同的系统同时对其共享的存储空间进行访问,本文就实现了用DSP和FPGA对FPGA内部的双口RAM共享的存储空间进行访问。
Xilinx公司的IP核生成工具CORE Generator可以使用FPGA内部的块存储器,并按所需要的存储器类型配置为所需要的真正双端口RAM,数据位宽为32位,存储深度根据需要配置。配置双口RAM的过程和配置好的双端口RAM 原理图符号如图1所示。
图1 双口RAM的配置图及原理图
2 DSP EMIF接口介绍
EMIF是外部存储器和TMS320C6455片内单元间之间的接口,CPU访问片外存储器时必须通过EMIF接口,要实现DSP访问FPGA内部双口RAM,必须通过EMIF接口与FPGA内部RAM相对应的管脚对应起来,EMIF接口与FPGA内部双口RAM连接如图2所示。
图2 EMIF与双口RAM之间的连接
由上面的配置可以知道FPGA内部双口RAM有两个端口(端口A和端口B)共享一个存储空间,为了实现FPGA与DSP的正确通信,首先要实现两者之间的物理连接,将双口RAM的端口A用于DSP通过EMIF接口来访问FPGA内部RAM,端口B用于FPGA自己访问该RAM的端口。也就是DSP通过端口A来访问共享的存储空间, FPGA在内部通过端口B来访问同样的存储空间,其中,EMIF的数据线要通过一个选择器分别连接到双口RAM的数据输入端口和数据输出端口,由SOE信号对数据的传输方向进行控制,EMIF接口的地址线也要和双口RAM的端口A的地址线连接,EMIF接口的时钟输出信号ECLKOUT1与双口RAM的时钟信号引脚连接,SADS、SWE、CE、BE信号经FPGA内部的组合逻辑电路与双口RAM相应信号相连,以实现对FPGA内部双口RAM的读写功能。