本文将详细介绍EMIFA(嵌入式存储器接口总线)模块的功能、工作原理及其在数字信号处理器(DSP)系统中的具体应用案例。
### DSP的EMIFA模块介绍及应用
#### 一、EMIFA概述
EMIFA(Extended Memory Interface for Advanced Devices),即高级设备扩展内存接口,是TI(德州仪器)C6000系列DSP中的一项关键技术。通过该接口,DSP能够高效地与外部设备如FPGA进行高速数据交换,这对于构建高性能嵌入式系统至关重要。
#### 二、EMIFA接口详解
##### 2.1 EMIFA接口组成
EMIFA接口由多个关键组件构成,主要包括:
- **AED[63:0]**:64位双向数据总线。
- **AEA[19:0]**:20位地址总线(可选)。
- **ACE2**:片选信号(低有效),用于选择特定的外部设备。
- **AECLKOUT**:同步时钟信号,提供给外部设备使用。
- **ASWE**:写使能信号(低有效),控制写操作。
- **ASRE**:读使能信号(低有效),控制读操作。
##### 2.2 片选信号
片选信号CE用于选择外部设备。DSP6455的EMIFA支持最多四个外部设备,如FPGA、SRAM和Flash等。每个外部设备拥有8MB的寻址空间。例如,在将FPGA作为其中一个外部设备时,可以通过连接CE2信号到FPGA的一个输入端口来实现对FPGA的选择与通信。
##### 2.3 同步时钟信号
ECLKOUT提供给外部设备同步使用的时钟信号。对于FPGA而言,此信号决定了其内部的运行频率,因此需要根据实际情况设置合适的频率值以满足系统需求。
##### 2.4 数据传输控制信号
读使能(ASRE)和写使能(ASWE)分别用于触发数据读取和写入操作。这些信号的低电平状态会激活相应的功能。
##### 2.5 数据总线与地址总线
- **数据总线**:64位宽的数据通道支持DSP与FPGA之间的高效数据传输。
- **地址总线**:虽然通常需要使用,但在某些情况下(如FPGA内部生成地址信号)可以不使用它。
#### 三、EMIFA配置寄存器
在实际应用中,需对EMIFA的寄存器进行适当设置以满足系统需求。其中最重要的寄存器是CEnCFG,支持同步存储模式和异步模式两种选择。
- **SSEL**:设定为1表示启用同步操作。
- **R_ENABLE**:控制SRESADS管脚的功能,设为1时代表读使能(RE),0时则对应地址选通信号(ADS)。
- **W_LTNCY**:写延迟设置范围从0到3个周期不等。
- **R_LTNCY**:设定从CE和RE低电平同时出现至数据出现在总线上的时间延迟。
#### 四、EMIFA与FPGA的连接
理解了接口各部分的功能后,接下来是DSP如何物理上连接到FPGA。这包括正确配置寄存器以及确保所有信号的准确对接:
- **物理链接**:将ACE2信号接至FPGA的一个输入引脚,并且AECLKOUT接入其时钟端口。
- **寄存器设定**:利用CEnCFG寄存器来决定工作模式,特别是读写延迟和时钟频率等设置针对FPGA的需求进行调整。
- **数据传输**:采用EDMA(增强直接内存访问)模块实现高效的数据交换。
#### 五、总结
通过EMIFA接口,DSP能与FPGA建立高效的通信连接。这对于构建复杂的视频处理系统或高性能嵌入式应用至关重要。理解并正确配置相关组件是确保两者之间顺畅交互的基础条件之一。