FPGA与DSP协同处理系统设计之: FPGA与DSP的通信接口设计
11.3FPGA与DSP的通信接口设计
FPGA与DSP的通信接口可以分成以下几种。
·存储型接口,如EMIFA、EMIFB等。
·主机型接口,如HPI等。
·总线型接口,如PCI、EMAC等。
·串口型接口,如McBSP、McASP、SPI、UART等。
·特殊类接口,如VLYNQ、VPORT等。
以上的接口中,比较常用的接口是EMIF和HPI。其中总线接口需要协议支持,开发难度较大,串行接口开发简单,但是速率较慢。VPORT等特殊接口一般是在特定的场合下应用,不具备通用性,而且需要修改DSP驱动,开发周期较长。
11.3.1基于TMS320C64x系列的EMIF接口设计
1.EMIF简介
TMSC64xEMIF是TMSC621xEMIF的增强版。它具备TMSC621x/TMSC671xEMIF的所有功能,并添加了以下新功能。
(1)EMIFA上的数据总线可以是64位宽,也可以是32位宽。
(2)EMIFB上的数据总线为16位宽。
(3)EMIF时钟ECLKOUTx为内部生成,并基于EMIF输入时钟。器件复位时,以下3个时钟之一会被配置为EMIF输入时钟。
·内部CPU时钟4分频。
·内部CPU时钟4分频。
·外部ECLKIN与TMSC64xEMIF接口的存储器应按照ECLKOUTx的时钟频率运行。
·可编程同步存储器接口控制器的同步控制引脚替换了固定的SBSRAM控制引脚。
·PDT引脚提供外部到外部传输支持。
如图11.4所示为组成EMIFA和EMIFB接口的信号,表11.2对这些信号进行了描述。端口A的信号都带前缀“A”,端口B的信号都带前缀“B”。为方便起见,所有信号名称都省略了EMIF端口前缀。
EMIFA接口具备与8、16、32或64位系统接口的功能。EMIFB接口端口仅支持8位和16位系统,如图11.5所示。
外部器件(主要是存储器)通常与总线的ED[7:0]字节侧右对齐。Endianess(字节顺序)决定ED[7:0]位是作为字节0(littleendian(小端))还是字节N(bigendian(大端),其中2N是总线宽度)存取。对不同字节通道的选择,可通过低有效字节使能信号的应用(如表11.2所示)来完成。
图11.4EMIFA和EMIFB信号
表11.2 EMIF信号描述
引脚 | I/O/Z | 描述 |
CLKOUT4 | O/Z | CPU时钟的4分 |
CLKOUT6 | O/Z | CPU时钟的6分 |
ECLKIN | I | EMIF时钟输入 |
ECLKOUT1 | O/Z | 速率为ECLKIN、CPU/4或CPU/6时的EMIF输出时钟 |
ECLKOUT2 | O/Z | 速率为ECLKIN、CLKOUT4或CLKOUT6时的EMIF输出时钟 |
ED[63:0] | I/O/Z | EMIFA64位数据总线 |
ED[31:0] | I/O/Z | EMIFA32位数据总线 |
ED[15:0] | I/O/Z | EMIFB16位数据总线 |
EA[22:3] | O/Z | EMIFA地址输出 |
EA[20:1] | O/Z | EMIFB地址输出 |
CE0 | O/Z | 存储器空间0的芯片选择 |
CE1 | O/Z | 存储器空间1的芯片选择 |
续表
引脚 | I/O/Z | 描述 |
CE2 | O/Z | 存储器空间2的芯片选择 |
CE3 | O/Z | 存储器空间3的芯片选择 |
BE[7:0] | O/Z | EMIFA64位字节使能,字节使能仅针对其对应的字节通道有效 如BE[0]对应ED[7:0] |
BE[3:0] | O/Z | EMIFA32位字节使能,字节使能仅针对其对应的字节通道有效 |
BE[1:0] | O/Z | EMIFB16位字节使能,字节使能仅针对其对应的字节通道有效 |
ARDY | I | 异步就绪输入,低速外设插入等待状态 |
SOE3 | O/Z | CE3的同步输出使能 |
AOE | O/Z | 异步输出使能 |
SDRAS | O/Z | DRAM存储器的行地址选通脉冲 |
SOE | O/Z | 同步输出使能 |
ARE | O/Z | 异步读使能 |
SDCAS | O/Z | SDRAM存储器的列地址选通脉冲 |
SADS/SRE | O/Z | 同步地址选通脉冲或读使能 |
AWE | O/Z | 异步写选通脉冲 |
SDWE | O/Z | SDRAM的写使能 |
SWE | O/Z | 同步写使能 |
HOLD | I | 外部总线保持请求 |
HOLDA | O | 外部总线保持确认 |
BUSREQ | O | 总线请求 |
PDT | O/Z | 外设数据传输 |
SDCKE | O/Z | SDRAM时钟使能 |
CLKOUT4 | O/Z | CPU时钟的4分 |
CLKOUT6 | O/Z | CPU时钟的6分 |
ECLKIN | I | EMIF时钟输入 |
ECLKOUT1 | O/Z | 速率为ECLKIN、CPU/4或CPU/6时的EMIF输出时钟 |
ECLKOUT2 | O/Z | 速率为ECLKIN、CLKOUT4或CLKOUT6时的EMIF输出时钟 |
ED[63:0] | I/O/Z | EMIFA64位数据总线14 |
ED[31:0] | I/O/Z | EMIFA32位数据总线 |
ED[15:0] | I/O/Z | EMIFB16位数据总线 |
EA[22:3] | O/Z | EMIFA地址输出 |
续表
引脚 | I/O/Z | 描述 |
EA[20:1] | O/Z | EMIFB地址输出 |
CE0 | O/Z | 存储器空间0的芯片选择 |
CE1 | O/Z | 存储器空间1的芯片选择 |
CE2 | O/Z | 存储器空间2的芯片选择 |
CE3 | O/Z | 存储器空间3的芯片选择 |
BE[7:0] | O/Z | EMIFA64位字节使能。字节使能仅针对其对应的字节通道有效 |
BE[3:0] | O/Z | BE7对应ED[63:56] |
BE[1:0] | O/Z | BE6对应ED[55:48] |
ARDY | I | BE5对应ED[47:40] |
SOE3 | O/E | BE4对应ED[39:32] |
BE3对应ED[31:24] | ||
BE2对应ED[23:16] | ||
BE1对应ED[15:8] | ||
BE0对应ED[7:0] |
图11.5按Endianess对齐字节
有关EMIF接口及其功能的完整概述,请参阅相关的TI数据手册(tms320c64xx.pdf,其中xx为15t、16t或18)。
2.FPGA的BlockRAM简介
Xilinx架构的FPGA都可以访问模块存储器(BlockRAM)。Virtex、Virtex-E和Spartan-II器件中的这些4Kbit的模块在Virtex-II、Virtex-IIPro和Spartan-3器件中都增加到18Kbit的
DSP 协同处理 FPGA 通信接口 EMIF HPI BlockRAM 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)