外部存储器接口(External Memory Interface, EMIF)

本文介绍了TMS320C6678DSP通过EMIF接口与FPGA进行通信的设计细节,包括16bit数据位、24bit地址位的EMIF16协议,以及读写时序。文章讨论了EMIF接口的寻址范围,解释了为何每个片选的寻址范围是64M,并提供了时序图。此外,还涉及到了EMIFSlave端的RTL逻辑设计,特别是Verilog实现。
摘要由CSDN通过智能技术生成

实际工作中使用的是型号为TMS320C6678的DSP,并通过EMIF接口与FPGA通讯。

由于EMIF接口比较简单,本文以FPGA的角度作为EMIF接口的slave端进行设计。参考手册为KeyStone Architecture External Memory Interface (EMIF16) User Guide - May 2011

FPGA与DSP之间的EMIF接口调试
EMIF接口
DSP之外部设备连接接口之EMIF
DSP学习笔记----EMIF(外部存储器接口)


1. Overview

外部存储器接口(External Memory Interface, EMIF)主要用来同并行存储器连接,这些存储器包括SRAM、NOR Flash、NAND Flash存储器等

还可以同外部并行设备进行连接,包括并行A/D、D/A转换器、具有异步并行接口的专用芯片,并可以通过EMIF同FPGA、CPLD等连接。

不支持诸如 SDR DRAM, DDR1 SDRAM and Mobile SDR的同步设备

EMIF时钟为CPU载频的1/6,例如1GHz载频的EMIF工作时钟为166.6MHz

EMIF接口可根据不同的存储器类型使用不同的接口信号。对于FPGA而言,可看作是DSP的一种外部存储器,进行通信。

2. Block Diagram

接口及说明如下
在这里插入图片描述

2.1. Addressing

注意所采用的协议为EMIF16,即16bit数据位、24bit地址位,4bit片选。因此总共可寻址范围为 4 × 2 24 × 2 B y t e s = 128 M B 4×2^{24}×2Bytes=128MB 4×224×2Bytes=128MB,每片 32 M B 32MB 32MB

但在TMS320C6678的DSP手册中,EMIF地址如下所示,为什么每片寻址范围变成是64M呢?
在这里插入图片描述

  • 下面的黄字指出对于NOR 和 SRAM为32MB,与算得一致
  • 按字节寻址EMIFA需要25bit。但EMIFD位宽是双字节,故地址线EMIFA需要24bit即可,最低位没有体现在EMIFA中
  • 对于SDRAM等需要区分行列地址来说,容量可为64MB

因此每次EMIF握手的地址应为:0x7000_0000+0、0x7000_0000+2、0x7000_0000+4、0x7000_0000+8、…、0x7200_0000,以此类推

有关TI DSP的EMIF接口的两个问题:地址总线不从零开始问题及寻址范围问题

3. Timing Description

时序图如下,分为Setup、Strobe和Hold三个阶段。三个阶段的持续时间取决于Async 1 Config Register寄存器

3.1. Read Timing

读时序如下,EMIFD数据在HOLD阶段的第一个上升沿采样

在这里插入图片描述

3.2. Write Timing

在这里插入图片描述

4. EMIF Slave Design Spec

EMIF的Slave端的RTL逻辑设计。

外部存储器接口(External Memory Interface, EMIF)RTL设计 - verilog

### 回答1: 通用EMIFExternal Memory Interface接口是一种用于连接外部存储器FPGA芯片的接口。该接口采用Verilog语言进行描述和实现。 通用EMIF接口通常由以下几个主要模块构成: 1. 控制模块:控制模块负责处理来自FPGA芯片的读写请求,以及向外部存储器发送相应的控制信号。该模块包括读写地址发生器、读写使能信号生成器等。 2. 数据传输模块:数据传输模块负责将FPGA芯片和外部存储器之间的数据进行传输。它包括数据读取和写入的缓冲区,以及数据的传输控制逻辑。 3. 时序控制模块:时序控制模块负责生成和调整各个接口信号的时钟和时序。它确保数据在不同设备之间进行同步和正确的时序控制。 4. 接口适配模块:接口适配模块主要用于将FPGA芯片的信号和外部存储器的信号进行适配和转换。它确保不同的芯片和存储器之间可以正常通信。 通用EMIF接口的Verilog描述根据具体的存储器类型和通信协议有所不同。例如,对于SDRAM存储器接口描述将包括时钟控制、读写地址生成、数据传输等,而对于DDR3存储器接口描述可能会有所不同。 总之,通用EMIF接口的Verilog描述提供了一种方便且灵活的方法,使FPGA芯片能够与外部存储器进行高效的数据传输和通信。这种接口在各种应用场景中得到广泛的应用,例如嵌入式系统、数字信号处理等。 ### 回答2: 通用EMIF接口External Memory Interface外部存储器接口)是一种用于处理不同类型的外部存储器的Verilog编码。它提供了一种灵活的方式连接FPGA(现场可编程门阵列)和各种外部存储器(如DDR SDRAM、SRAM、Flash等),以实现高速数据传输。 通用EMIF接口的设计需要考虑主机和外部存储器之间的数据传输速率、时序、数据宽度等因素。在Verilog代码中,可以通过定义适当的时钟频率和数据宽度来满足不同的外部存储器要求。此外,通用EMIF接口还可以提供数据的读取和写入控制信号,用于控制数据的读写操作。 Verilog代码中的通用EMIF接口还需要定义地址信号,用于指示存储器中的数据位置。地址信号必须与所选外部存储器的地址宽度相匹配,以确保正确地进行数据存取。 通用EMIF接口的实现还需要考虑存储器接口的电气特性,如时钟和数据信号的幅值、驱动能力等。这些特性的定义在Verilog代码中也非常重要,以确保稳定和可靠的数据传输。 总之,通用EMIF接口的设计和实现是通过Verilog代码来实现FPGA外部存储器之间高效数据传输的关键。该接口可以根据所选外部存储器的要求进行灵活的配置,提供了一种通用的解决方案,适用于多种类型的外部存储器。 ### 回答3: 通用EMIFExternal Memory Interface接口是一种可自定义的接口,用于与外部存储器进行数据交互。它是采用Verilog硬件描述语言编写的,在FPGA项目中常常用于连接处理器和外置存储器,如SDRAM、Flash等。 通用EMIF接口可以实现数据的读写操作,并提供了控制信号,用于控制读写过程中的时序和地址传输等。这个接口可以被应用于各种不同的外部存储器,只需根据具体的存储器类型进行相应的配置即可。 在Verilog代码中,需要定义接口的输入输出端口、时钟信号和其他所需信号。常见的接口端口包括地址(address)、数据(data)、写使能(write enable)、读使能(read enable)等。根据具体需求,还可以添加其他控制信号,如写保护(write protect)、片选(chip select)等。 在具体的应用中,需要根据外部存储器的规格书和时序要求,设计合适的时序逻辑,确保读写操作的正确性和稳定性。亦可基于通用EMIF接口实现先进的存储器控制器,以满足更高的性能要求。 总之,通用EMIF接口提供了一种灵活、可配置的接口,可以方便地连接处理器和外部存储器,并通过Verilog代码进行定制化设计,以满足不同应用场景的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starry丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值