DSP的emif通信
DSP技术在EMIF接口中的BOOT方法简析

DSP 技术在EMIF 接口中的BOOT 方法简析DSP 技术在目前的芯片研发过程中得到了广泛应用,在之前的文章中,我们曾经就DSP 在EMIF 接口中的应用进行过简要分析和探讨。
今天我们将会接着上一次的讨论结果,来看一下DSP 技术在EMIF 接口中的系统BOOT 是如何实现的,下面就让我们一起来看看吧。
在这里我们依旧以TMS320C6722 型DSP 芯片为例子,来进行讨论。
这种的TMS320C6722 型DSP 内部没有可写的ROM,DSP 的程序必须存放在外部器件中。
当TMS320C6722 型DSP 芯片上电后,必须首先从外部芯片下载程序。
本款DSP 可以通过SPI 总线启动、通过I2C 总线启动和通过EMIF 接口启动。
这几种Boot 方式和对应的引脚配置如表1 所示,在本系统中,EMIF 接口除了实现通常的数据交换,还兼任带动DSP 启动的功能。
表1 各种BOOT 模式的启动引脚配置当整个电路系统上电后,此时TMS320C6722 型DSP 芯片的RESET 引脚要通过下拉电阻拉低,这样才能够使DSP 处于复位态。
而FPGA 芯片EP2C8F256I8 上电后从FPGA 配置芯片EPCS4 中下载程序启动。
当FPGA 启动成功后,将DSP 芯片的SPI0SOMI 引脚与SPI0CLK 引脚拉低,将SPI0SIMO 引脚拉高,然后再将RESET 引脚拉高。
这样配置是为了使DSP 退出复位态时能根据上述3 个引脚的电平获知DSP 芯片将通过EMIF 接口启动。
此后,DSP 芯片将从EMIF 接口读取1KB 数据,并将这1KB 数据存放于DSP 的RAM 中,再执行这1KB 的程序。
上文中所介绍的这一过程,也被称为DSP 的第一次启动过程。
这1KB 的。
数字信号处理和DSP系统课件 第5章 DM642的外部存储器EMIFA接口 2014.4

DSP启动控制引脚
在DM642上电复位阶段,AEA[22: 21]引脚的电平状态还 用于设置DM642的启动方式,这些引脚应接上拉或下拉 电阻。 AEA[22: 21] 辑组合的含义如:
全局控制寄存器:GBLCTL,是EMFA接口很重 要的一个寄存器,它的长度为32位,包含了 EMIFA接口多个信号引脚的使能控制位,该寄存器 包含的字段如下。
4.2 EMIFA寄存器:CECTLx
CE空间控制寄存器CECTL0、CECTL1、CECTL2 和CECTL3也是EMIFA接口很重要的寄存器,这4 个寄存器对CEO、CEI、CEZ和CE3空间进行配置 设置,MYTYPEx (是 CECTLx[7:4] )是空间控制 寄存器cECTLx中很重要的字段,用于设置的数据 宽度和接口类型。该字段取泣代表的含义如下:
4.2 EMIFA寄存器:CECTLx
4.2 EMIFA寄存器:CECTLx
4.3 EMIFA寄存器:CESECx
CE空间次级控制寄存器包括4个寄存器CESECO、 CESECI、CESECZ和CESEC3。 SNCCLKx(CESECx[6].)是EMIFA接口同步时钟选 择控制位,SNCCLKx位的取位代表的含义如下:
空间管理引脚
1. 空间片选引脚(输出/高阻) 这些引脚为:
存储器空间划分为CE3、CE2、CE1和 CE0共 4个资空间,每个子空间的大小 为256MB,
空间管理引脚
2.EMIF低位地址译码和字节使能控制引脚(输 出/高阻)
DM642的地址线从AEA3开始,低位地址单元无 法直接访问,这些引脚信号允当低位地址译码 信号。
DSP原理与应用---第3章 EMIF

EMIF中断寄存器44h EIMREMIF中
EIMSR EIMCR
NANDFCR NANDFSR NANDF1ECC
EMIF中断屏蔽设置寄存器 EMIF中断屏蔽清除寄存器 NAND Flash控制寄存器 NAND Flash状态寄存器 NAND Flash1纠错码寄存器(CS2空间)
实用文档
3.3.5 异步控制器和接口
低电平有效写触发或字节使能引脚 与SDRAM器件连接时,这些引脚与SDRAM的DQM引脚相连,在数据访问 中分别使能/禁用每一字节。 与异步器件连接时,这些引脚可作为字节使能(DQM)或字节写触发(WE)。
低电平有效写使能引脚 与SDRAM器件连接时,此引脚与SDRAM的WE引脚相连用于向器件发送命 令。 与异步器件连接时,在异步写访问周期,提供一低电平信号。
– –对于有12位EMIF地址引脚的DSP:11或12位行地址位 – –对于有13位EMIF地址引脚的DSP:11、12或13位行地址位 内部存储区数为1、2或4
实用文档
EMIF与2Mx16x4 SDRAM的连接图
实用文档
EMIF与2Mx32x4 SDRAM的连接图
实用文档
EMIF与双4Mx16x4 SDRAM的连接图
EM_RAS O EM_CAS O EM_CKE O EM_CLK O
低电平有效行地址选通引脚 此引脚连接在SDRAM器件的RAS引脚上,用于向此器件发送命令。
低电平有效列地址选通引脚 此引脚连接在SDRAM器件的CAS引脚上,用于向此器件发送命令。
时钟使能引脚 此引脚连接在SDRAM器件的CKE引脚上,发出自刷新命令使器件进入自 刷新模式。
DSP与FPGA间简单通信(EMIF)

DSP与FPGA间简单通信DSP与FPGA采用EMIF接口通信,即将FPGA作为DSP的外部SRAM,只需设置EMIF控制的存储器为SRAM类型即可,DSP通过EMIF接口读写SRAM的时序如下: 参考datasheet 《tms320dm642.pdf》可以根据以上时序图编写FPGA代码,以下仅供参考:module DSP_FPGA(input clk,input [2:0] addr, //简单测试,没有用到所有地址inout [15:0] data, //16位数据宽度input CE_2,//FPGA片选input AOE,input AWE);reg [15:0] DSP_FPGA_REG0;reg [15:0] DSP_FPGA_REG1;reg [15:0] DSP_FPGA_REG2;reg [15:0] DSP_FPGA_REG3;reg [15:0] DSP_FPGA_REG4;reg [15:0] DSP_FPGA_REG5;reg [15:0] DSP_FPGA_REG6;reg [15:0] DSP_FPGA_REG7;wire rd_en = ~CE_2 && ~AOE;reg [15:0] data_reg;//always @(posedge clk) //DSP读操作,The sampling point of DSP reading is the risging edge of AWE!always @(*)//这里没有用时钟,用的latchbeginif(rd_en)begincase(addr[2:0])3'd0:data_reg <= DSP_FPGA_REG0;3'd1:data_reg <= DSP_FPGA_REG1;3'd2:data_reg <= DSP_FPGA_REG2;3'd3:data_reg <= DSP_FPGA_REG3;3'd4:data_reg <= DSP_FPGA_REG4;3'd5:data_reg <= DSP_FPGA_REG5;3'd6:data_reg <= DSP_FPGA_REG6;3'd7:data_reg <= DSP_FPGA_REG7;default:;endcaseendendreg AWE_tmp1;reg AWE_tmp2;always @(posedge clk)beginAWE_tmp1 <= AWE;AWE_tmp2 <= AWE_tmp1;endwire AWE_RISING = ~AWE_tmp2 && AWE_tmp1;//与clk同步always @(*)beginif(AWE_RISING)//这里也没有用时钟,用的是latchbegincase(addr[2:0])3'd0:DSP_FPGA_REG0 <= data;3'd1:DSP_FPGA_REG1 <= data;3'd2:DSP_FPGA_REG2 <= data;3'd3:DSP_FPGA_REG3 <= data;3'd4:DSP_FPGA_REG4 <= data;3'd5:DSP_FPGA_REG5 <= data;3'd6:DSP_FPGA_REG6 <= data;3'd7:DSP_FPGA_REG7 <= data;default:;endcaseendendassign data = rd_en ? data_reg : 16'hzzzz;endmodule//////////////////////////////////////////////////////////DSP(具体为DM642)端程序:寄存器设置参考《EMIF Reference Guide-spru266b.pdf》即spru266#define FPGA_ADDR 0xA0000000//#define EMIFA_GBLCTL 0x01800000#define EMIFA_CECTL2 0x01800010//#define EMIFA_CESEC20x01800050void delay(unsigned long time){unsigned long i;for(i = 0; i < 1000; i++){for(; time >0 ; time--){}}}unsigned short write_value = 0;unsigned short read_value = 0;int main(void){unsigned short *ptr;*(unsigned volatile int *)EMIFA_CECTL2 = (unsigned int)0xFFFFFF13;//设置EMIF控制的存储器类型为//16位宽SRAMptr = (unsigned short *)(unsigned int)FPGA_ADDR;while(1){*ptr =write_value;read_value =*ptr; //调试时通过观察write_value与read_value的值是否相等可以检验通信是否正常delay(100000);write_value++;}return 0;}实际测试发现写入与读出的值相同其他方法:在FPGA实现一个FIFO, FPGA采集到数据之后先放入FIFO中;然后用DSP来读取FIFO内容(如果EMIF不支持同步接口的话,需要将同步FIFO接口通过逻辑转换为异步FIFO接口);如果需要带宽更高,将FIFO的half full, not empty标记送入到DSP的INT输入,来触发DMA传输。
基于EMIF接口和双口RAM的DSP与FPGA双向通信

基于EMIF接口和双口RAM的DSP与FPGA双向通信文中提供了一种以FPGA内部扩展双端口RAM作为共享存储器,通过EMIF 接口实现DSP与FPG双向通信方法;该方法采用数据集和数据集状态信息匹配的据通信方式,以软中断和硬中断配合的中断控制机制,能有效提高数据传输的效率,保证数据传输实时性。
通过试验测试,该方法实现了数据的高效实时有效传输。
标签:EMIF;IP核;GPIO;双口RAM0 引言随着导航技术和现代电子技术的快速发展,机载设备日益向着数字化、模块化、集成化方向发展,机载设备不仅需要采集、接收、处理、发送大量外部数据,同时设备内部各CPU之间也需要进行大量数据、信息的及时处理和高速传输。
现在通用的计算机平台为FPGA+DSP结构,充分利用了FPGA数据采集处理、接口通讯以及DSP的运算速度优势,能很好满足数据采集、处理及外部通讯需要。
DSP与FPGA之间数据传输能否及时、有效直接决定着机载设备的性能精度。
本文提供了一种基于EMIF接口和双口RAM实现DSP与FPG双向通信方法。
该方法采用数据集和数据集状态信息匹配的数据通信方式,以软中断和硬中断配合的中断控制机制,能有效的提高数据传输的效率,满足机载设备实时性的要求。
1FPGA内部双口RAM配置文中采用Xilinx公司的Spartan6系列XC6SLX150T的FPGA器件,此FPGA 上自带片上RAM,因此可以利用开发环境自带的IP核,根据不同的应用场合配置生成单口RAM 、简单双端口RAM 、真正双端口RAM,数据位宽也可以配置为8位、16位、32位、64位,片上双端口RAM速度性能可以达到450 MHz。
因为要实现数据的双向传输,故文中在Xilinx公司的XPS嵌入式开发环境下添加Block Bram IP核,配置为真正的双端口RAM,数据位宽配置为32位,存储深度16K,配置双口RAM的过程和配置完成的双端口RAM原理图符号。
DSP原理与应用---第3章 EMIF

DRAM是Dynamic RAM的缩写,中文含义为动态随机存取存储器, 需要不断的刷新,才能保存数据。而且是行列地址复用的,许多都有 页模式。SDRAM:Synchronous DRAM,即数据的读写需要时钟 来同步。 一个是静态的,一个是动态的,静态的是用的双稳态触发器来保存信 息,而动态的是用电子,要不时的刷新来保持。
DRAM容量大,SRAM容量小
SDRAM的结构
FLASH ROM
Flash-ROM(闪存)已经成为了目前最成功、流行的一种固态内存,与 EEPROM 相比具有读写速度快,而与 SRAM 相比具有非易失、以及价廉等优 势。而基于 NOR 和 NAND 结构的闪存是现在市场上两种主要的非易失闪存技 术。 Intel 于 1988 年首先开发出 NOR flash 技术,彻底改变了原先由 EPROM 和 EEPROM 一统天下的局面。紧接着,1989 年东芝公司发表了 NAND flash 技术(后将该技术无偿转让给韩国 Samsung 公司),强调降低每比特的成 本,更高的性能,并且象磁盘一样可以通过接口轻松升级。 NOR 的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直 接在闪存内运行,不必再把代码读到系统 RAM 中。NOR 的传输效率很高,在 1~4MB 的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影 响了它的性能。 NAND 结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的 速度也很快,这也是为何所有的 U 盘都使用 NAND 闪存做为存储介质的原因。 应用 NAND 的困难在于需要特殊的系统接口。
NAND flash和NOR flash的对比
接口差别 NOR 闪存带有SRAM接口,有足够的地址引脚来寻址,可 以很容易地存取其内部的每一个字节。 NAND闪存使用复杂的I/O口来串行地存取资料,各个产品 或厂商的方法可能各不相同。8个引脚用来传送控制、地 址和资料信息。NAND读和写操作采用512字节的块,这 一点有点像硬盘管理此类操作,很自然地,基于NAND的 闪存就可以取代硬盘或其它块设备。
DSP技术在EMIF接口中的控制应用简要分析
DSP 技术在EMIF 接口中的控制应用简要分析
DSP 技术目前已经成为了在处理器设计研发领域中,最重要的新型技术之一。
其本身具有多种优势,运行速度快,稳定性好,因此DSP 芯片在通信通讯以及自动化控制等方面的应用频率非常高。
今天我们将会就DSP 技术在EMIF 接口中的控制应用,展开简要分析。
在本系统中,我们所采用的是TMS320C6722 浮点型DSP 芯片。
在展开本文的案例分析之前,我们首先需要为第一次接触EMIF 接口的同学和技术人员,科普一下什幺是EMIF 接口。
EMIF 其实是TMS320 系列
DSP 上具有的一种高速接口,其设计初衷是实现DSP 与不同类型的外部扩展存储器之间的高速连接。
在目前的一些数控应用和设计中,工程师们为了能够更加充分的应用DSP 技术的运算能力,扩展其引脚资源,常常会用EMIF 接口连接FPGA,再通
过FPGA 与多种外部设备相连。
这样FPGA 成为了一个中转站,各种数字芯
片的数据都可以通过FPGA 传输至DSP。
对于更加复杂的系统,当一块FPGA 芯片的引脚资源都被用尽时,可以在DSP 的EMIF 接口上连接多块FPGA 芯片,再将功能各异的芯片连接至FPGA。
这样,DSP 芯片仅通过
EMIF 接口就能实现对复杂系统的控制。
图1 系统架构示意图
图1 是本方案所使用的系统架构示意图,在上图中我们可以看到,DSP 芯片通过EMIF 接口连接了2 片FPGA,其中EP2C8F256I8 主要负责DSP 核心
处理所需数据的交换,连接了FLASH 芯片、SDRAM 芯片和A/D 芯片。
另。
EDMA和EMIF
EDMA增强型直接内存存取(EDMA),Enhanced Direct Memory Access,是数字信号处理器(DSP)中用于快速数据交换的重要技术,具有独立于CPU的后台批量数据传输的能力,能够满足实时图像处理中高速数据传输的要求。
以TI公司的TMS320DM642型DSP为例,介绍EDMA控制器的特点。
结合实例给出EDMA在图像数据实时传输中的具体控制和实现方法。
实验结果表明,通过灵活控制EDMA不仅能够提高图像数据的传输效率,而且能够充分发挥:DSP的高速性能。
EDMA数据传输有两种发起方式:(1) CPU发起的EDMA数据传输(非同步方式):需要传输时,CPU设置ESR寄存器的相应位为1,从而触发一个EDMA事件的产生,事件对应的通道参数被送往地址硬件并且完成相应的处理,这种非同步方式的实时数据传输无需设定EER寄存器;(2)事件触发方式EDMA数据传输(同步方式):ER寄存器保存外设发送过来的事件,一旦CPU设置EER寄存器的相应位为1后,ER中的事件才会提交给事件编码器(Event Encoder),并且进一步引起相关的传输参数的发送给地址产生硬件;如果EER中对应于某事件的位没有置1,则ER寄存器中的事件将保留,一旦置1则触发EDMA的传输,这种特性可以应用到EDMA Chain传输,需要EER 和CCER结合使用。
PS:ESR:事件位置寄存器;EER:事件使能寄存器EDMA有两种类型的数据传输:1D和2D的(OPT.2DS和OPT.DDS标示源地址和目的地址的数据传输类型,即有4种组合方式)。
EDMA传输过程的源/目的地址的修改:在每次同步事件触发EDMA数据传输,并且传输完成后,需要对源/目的地址进行更新;地址的更新方式由SUM/DUM进行设定,并且和2DS、2DD以及FS是密切相关的。
EMIF外部存储器接口(EMIF),External Memory Interface,是TMS DSP器件上的一种接口,具体可以分为EMIFA和EMIFB。
TI C6000DSP系列EMIF接口
KeyStone ArchitectureExternal Memory Interface (EMIF16) User GuideLiterature Number:SPRUGZ3AMay 2011 Release HistoryRelease Date Chapter/Topic Description/CommentsRevision A May 2011‘‘Introduction’’In the ‘‘Features’’ section, updated the description of features not supported andadded additional information about the 64MB limit.1.0January 2011All Initial Releaseø-ii KeyStone Architecture External Memory Interface (EMIF16) User Guide SPRUGZ3A—May 2011Submit Documentation FeedbackContents SPRUGZ3A—May 2011KeyStone Architecture External Memory Interface (EMIF16) User Guide ø-iii Submit Documentation Feedback ContentsRelease History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ø-iiList of Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ø-vList of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ø-viPreface ø-viiAbout This Manual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ø-viiNotational Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ø-viiRelated Documentation from Texas Instruments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ø-viiiTrademarks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ø-viii Chapter 1Introduction 1-11.1Purpose of the Peripheral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-21.2Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2Chapter 2Architecture2-12.1EMIF16 Signal Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-22.2Memory Organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-32.3Supported Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-32.4Configuring the EMIF16 for Asynchronous Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-32.5ASRAM/NOR Flash Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-42.5.1EMIF16 Signal Description – ASRAM/NOR Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-52.5.2Programmable EMIF16 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-62.5.3EMIF16 Truth Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-62.5.4Switching Waveforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-72.5.4.1Asynchronous Reads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-72.5.4.2Asynchronous Writes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-82.5.5Select Strobe Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-92.5.5.1Asynchronous Reads in SS Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-102.5.5.2Asynchronous Writes in SS Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-112.5.6WE Strobe Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-12Chapter 3Operating Modes 3-13.1NAND Flash Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-23.1.1Connecting to NAND Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-23.2Configuring EMIF16 in NAND Flash Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-33.3EMIF16 Signal Description – NAND Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-33.4Using ALE and CLE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-43.5NAND Read and Program Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-43.6Checking the Status of Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-53.7ECC Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-53.8Extended Wait Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-93.9Data Bus Parking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-93.10Interrupt Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-93.11NOR Flash Page Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-103.12Reset Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-10Contents ø-iv KeyStone Architecture External Memory Interface (EMIF16) User Guide SPRUGZ3A—May 2011Submit Documentation Feedback Chapter 4Registers 4-14.1Registers Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-24.2Revision Code and Status Register (RCSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-34.3Async Wait Cycle Config Register (AWCCR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-44.4Async 1 Config Register (A1CR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-64.5Async 2 Config Register (A2CR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-74.6Async 3 Config Register (A3CR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-74.7Async 4 Config Register (A4CR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-74.8Interrupt Raw Register (IRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-84.9Interrupt Masked Register (IMR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-94.10Interrupt Mask Set Register (IMSR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-104.11Interrupt Mask Clear Register (IMCR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-114.12NAND Flash Control Register (NANDFCR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-124.13NAND Flash Status Register (NANDFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-144.14Page Mode Control Register (PMCR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-154.15NAND Flash CS2 (CE0) 1-Bit ECC Register (NFECCCS2R). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-174.16NAND Flash CS3 (CE1) 1-Bit ECC Register (NFECCCS3R). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-184.17NAND Flash CS4 (CE2) 1-Bit ECC Register (NFECCCS4R). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-184.18NAND Flash CS5 (CE3) 1-Bit ECC Register (NFECCCS5R). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-184.19NAND Flash 4-Bit ECC Load Register (NANDF4BECCLR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-184.20NAND Flash 4-Bit ECC 1 Register (NANDF4BECC1R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-194.21NAND Flash 4-Bit ECC 2 Register (NANDF4BECC2R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-204.22NAND Flash 4-Bit ECC 3 Register (NANDF4BECC3R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-214.23NAND Flash 4-Bit ECC 4 Register (NANDF4BECC4R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-224.24NAND Flash Error Address 1 Register (NANDFEA1R). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-234.25NAND Flash Error Address 2 Register (NANDFEA2R). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-244.26NAND Flash Error Value 1 Register (NANDFEV1R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-254.27NAND Flash Error Value 2 Register (NANDFEV2R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-26Index IX-1List of Tables SPRUGZ3A—May 2011KeyStone Architecture External Memory Interface (EMIF16) User Guide ø-v Submit Documentation Feedback List of TablesTable 2-1EMIF16 Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2Table 2-2ASRAM/NOR Flash Interface Signals. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5Table 2-3Control Signal Truth Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-6Table 3-1NAND interface signal description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-3Table 3-2CE0 Addressing when EMIFA11 and EMIFA12 are used as ALE and CLE respectively. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-4Table 3-34-bit ECC calculation bits in NAND Flash Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-6Table 3-4Interrupt status and control bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-10Table 4-1EMIF16 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-2Table 4-2Revision Code and Status Register (RCSR) Field Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3Table 4-3Async Wait Cycle Config Register (AWCCR) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-4Table 4-4Async 1 Config Register (A1CR) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-6Table 4-5Interrupt Raw Register (IRR) Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8Table 4-6Interrupt Masked Register (IMR) Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9Table 4-7Interrupt Mask Set Register (IMSR) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-10Table 4-8Interrupt Mask Clear Register (IMCR) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-11Table 4-9NAND Flash Control Register (NANDFCR) Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-12Table 4-10NAND Flash Status Register (NANDFSR) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-14Table 4-11Page Mode Control Register (PMCR) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-15Table 4-12NAND Flash CS2 (CE0) 1-Bit ECC Register (NFECCCS2R) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-17Table 4-13NAND Flash 4-Bit ECC Load Register (NANDF4BECCLR) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-18Table 4-14NAND Flash 4-Bit ECC 1 Register (NANDF4BECC1R) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-19Table 4-15NAND Flash 4-Bit ECC 2 Register (NANDF4BECC2R) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-20Table 4-16NAND Flash 4-Bit ECC 3 Register (NANDF4BECC3R) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-21Table 4-17NAND Flash 4-Bit ECC 4 Register (NANDF4BECC4R) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-22Table 4-18NAND Flash Error Address 1 Register (NANDFEA1R) Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-23Table 4-19NAND Flash Error Address 2 Register (NANDFEA2R) Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-24Table 4-20NAND Flash Error Value 1 Register (NANDFEV1R) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-25Table 4-21NAND Flash Error Value 2 Register (NANDFEV2R) Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-26List of Figures ø-vi KeyStone Architecture External Memory Interface (EMIF16) User Guide SPRUGZ3A—May 2011Submit Documentation Feedback List of FiguresFigure 2-1Basic Block diagram for EMIF16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-2Figure 2-2Connecting to 16-bit ASRAM (see note below). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-4Figure 2-3Connecting to 8-bit ASRAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-5Figure 2-4Asynchronous Read Timing Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-8Figure 2-5Asynchronous Write Timing Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-9Figure 2-6Asynchronous Read Cycle (Select Strobe mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-11Figure 2-7Write Cycle (Select Strobe Mode). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-12Figure 2-8Asynchronous Writes (WE Strobe Mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-13Figure 2-9Asynchronous Reads (WE Strobe Mode). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2-13Figure 3-1Connecting to 8-bit NAND Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2Figure 3-2Connecting to 16-bit NAND Flash. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-2Figure 3-31-bit ECC calculation for 8-bit NAND device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3-5Figure 4-1Revision Code and Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-3Figure 4-2Async Wait Cycle Config Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-4Figure 4-3Async 1 Config Register (A1CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-6Figure 4-4Interrupt Raw Register (IRR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-8Figure 4-5Interrupt Masked Register (IMR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-9Figure 4-6Interrupt Mask Set Register (IMSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-10Figure 4-7Interrupt Mask Clear Register (IMCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-11Figure 4-8NAND Flash Control Register (NANDFCR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-12Figure 4-9NAND Flash Status Register (NANDFSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-14Figure 4-10Page Mode Control Register (PMCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-15Figure 4-11NAND Flash CS2 (CE0) 1-Bit ECC Register (NFECCCS2R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-17Figure 4-12NAND Flash 4-Bit ECC Load Register (NANDF4BECCLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-18Figure 4-13NAND Flash 4-Bit ECC 1 Register (NANDF4BECC1R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-19Figure 4-14NAND Flash 4-Bit ECC 2 Register (NANDF4BECC2R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-20Figure 4-15NAND Flash 4-Bit ECC 3 Register (NANDF4BECC3R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-21Figure 4-16NAND Flash 4-Bit ECC 4 Register (NANDF4BECC4R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-22Figure 4-17NAND Flash Error Address 1 Register (NANDFEA1R). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-23Figure 4-18NAND Flash Error Address 2 Register (NANDFEA2R). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-24Figure 4-19NAND Flash Error Value 1 Register (NANDFEV1R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-25Figure 4-20NAND Flash Error Value 2 Register (NANDFEV2R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4-26SPRUGZ3A—May 2011KeyStone Architecture External Memory Interface (EMIF16) User Guide ø-vii Submit Documentation Feedback PrefaceAbout This ManualThis document describes the operation of the External Memory Interface (EMIF16) module in the KeyStone DSP family (refer to the device data manual for applicability to a particular part). The EMIF16 module is accessible across all the cores and all system masters that are not cores.Notational ConventionsThis document uses the following conventions:•Commands and keywords are in boldface font.•Arguments for which you supply values are in italic font.•Terminal sessions and information the system displays are in screen font .•Information you must enter is in boldface screen font .•Elements in square brackets ([ ]) are optional.Notes use the following conventions:Note—Means reader take note. Notes contain helpful suggestions or references to material not covered in the publication.The information in a caution or a warning is provided for your protection. Please readeach caution and warning carefully.CAUTION—Indicates the possibility of service interruption if precautions arenot taken.WARNING—Indicates the possibility of damage to equipment if precautions are not taken.Preface Related Documentation from Texas InstrumentsTMS320C6000 DSP and Instruction Set Reference Guide SPRU189TMS320C6000 Programmer’s Guide.SPRU198TMS320C6000 Code Composer Studio Forum ForumC66x CorePac User Guide SPRUGW0TrademarksAll brand names and trademarks mentioned in this document are the property of Texas Instruments Incorporatedor their respective owners, as applicable.ø-viii KeyStone Architecture External Memory Interface (EMIF16) User Guide SPRUGZ3A—May 2011Submit Documentation FeedbackSPRUGZ3A—May 2011KeyStone Architecture External Memory Interface (EMIF16) User Guide 1-1Submit Documentation Feedback IntroductionThis manual describes the External Memory Interface peripheral utilizing a 16-bit bus (EMIF16). This manual describes the purpose, features, architecture, operating modes, and registers of the EMIF16.This chapter provides the following information:1.1"Purpose of the Peripheral " on page 1-21.2"Features " on page 1-21.1Purpose of the Peripheral1-2KeyStone Architecture External Memory Interface (EMIF16) User Guide SPRUGZ3A—May 2011Submit Documentation Feedback Chapter 1—Introduction 1.1Purpose of the PeripheralThe EMIF16 module is intended to provide a glue-less interface to a variety of asynchronous memory devices like ASRAM, NOR and NAND memory. A total of 256M bytes of any of these memories can be accessed at any given time via four chip selects with 64M byte access per chip select. NOR Flash can be used for boot purposes. These memories can also be used for Data Logging purposes.Synchronous memories such as DDR1 SDRAM, SDR SDRAM and Mobile SDR are not supported. Refer to the data manual for a particular KeyStone part for information on the number of instances of this peripheral supported.1.2FeaturesThe EMIF16 module supports the following features:•Up to 256MB asynchronous address range over 4 chip selects•8-bit and 16-bit data widths•Programmable cycle timings for each chip select•Extended wait support (if available model supports)•Select Strobe mode support (if available model supports)•Page/Burst mode read support for NOR Flash•1-bit ECC for 8-bit and 16-bit NAND Flash (Does not support error correction)•4-bit ECC for 8-bit and 16-bit NAND Flash (Does not support error correction)•Big and little endian operationThe EMIF16 module does not support the following features:•Synchronous devices such as SDR DRAM, DDR1 SDRAM and Mobile SDR•32-bit mode operation•OneNAND and PCMCIA interfaces•NAND Flash that requires chip select to stay low during t Rtime for readsNote—The 64MB limit per chip select applies only for asynchronous memoriesthat use the EMIF16 address bus for addressing - typically ASRAM and NOR flash. NAND flash uses the data bus as a multiplexed data/address bus and does not use EMIF16 address pins for addressing (Only CLE and ALE signals use the address bus. Refer to Section 3.1‘‘NAND Flash Mode ’’ for more details). So NAND Flash > 64MB can be supported on one chip select.。
有关TIDSP的EMIF接口的两个问题
有关TI DSP的EMIF接口的两个问题:地址总线不从零开始问题及寻址范围问题作者:JBB0523(彬彬有礼)示例芯片:TMS320C6416EMIF,即E xternal M emory I nter F ace ,中文译为外部存储器接口。
EMIF可谓是困扰了我很久的一个接口。
当然,相比于SPI,UART,I2C等总线协议来说,EMIF相对来说复杂一些……========================两个问题============================切不说EMIF怎么去用,单就表面的两个问题就能让人思考好久,但仍不得其解:1)6416中共有EMIFA和EMIFB两个EMIF接口,但有一个问题,为什么EMIFA的地址总线是从AEA3到AEA22共20位,EMIFB的地址总线是从BEA1到BEA20共20位,按理来说这种总线都是从0开始的呀,这到底是怎么回事?2)TI文档《TMS320C6414, TMS320C6415, TMS320C6416 FIXED-POINT DIGITAL SIGNAL PROCESSORS(SPRS146N)》中的表3部分如下所示:在表3中可以看到,对于EMIFB的每个CE片选空间,共有64MB的寻址空间;对于EMIFA 的每个CE片选空间,共有256MB的寻址空间。
但是,请注意问题1中的提到了无论对于EMIFA还是EMIFB均只有20根地址线,我们可以计算一下,2^20=1M的寻址空间,这64MB和256MB到底是指什么呢?对于高手来说当然弄懂也许是小问题,但对于初次接触这类问题的初学者来说,也许琢磨很久也弄不明白,我就是后者!========================问题的答案============================为了解释以下问题,首先明确一个单位度量:字节=8bit,半字=16bit,字=32bit,双字=64bit 解答问题1:我们再次来理一理EMIF接口:EMIFA有AEA3~AEA22共20根地址线和AED0~AED63共64根数据线,也就是说数据总结是“双字”的,再注意一下表3中有关寻址范围的单位是BYTES,一个双字等于八个字节,而如果寻址八个字节则需要3位地址线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Verilog-HDL的信号处理板卡中双向端口的设计陈美燕 王丹(西南交通大学电子信息科学与技术学院四川 成都 610031) 摘要: 选用Xilinx的Virtex-4芯片,美国德州仪器Texas Instruments公司C6000的 DSP-TMS320C6713,设计一个高速信号(采集)处理板,介绍了其系统构成,以及各模块的逻辑框图。
应用Verilog-HDL语言对双向(inout)端口进行了描述,同时给出仿真初始化双向端口I/O的方法。
关键词:双向端口 FPGA DSP Verilog HDLDesign of I/O port in FPGA baseing on Verilog HDL insignal processing boardMeiyan Chen Dan WangAbstract:Selecting Xilinx Virtex-4 chip, and Texas Instruments company’s C6000DSP-TMS320C6713, It designs a high-speed signal (acquisition) processing board,introducing its system constitutes, as well as the diagram of the logic modules.It Describes bi-directional (inout) ports using VerilogHDL language, and also givesthe methods of simulation initialization. Keywords: I/O port ,FPGA,DSP,Verilog HDL.1 引言本系统以较高的采样速率,利用FPGA对AD模数芯片的控制实现采集,一般地说,所采集的数据又不是实时地传送到用户端进行后续处理,因此,首先要实时地存储数据,然后再向PC机传送。
然而,当数据量很大时,就更有必要在DSP外围挂接存储芯片。
同时,由于FPGA经常和外部存储器进行数据输入输出交换,而利用双向端口的设计来进行数据交换可以成倍地节省各自的引脚资源。
比如某个设计需要一个16位的数据输入口和一个16位的数据输出口,并且数据输入和输出不会同时发生。
如果数据输入口和输出口分别设计则需要32根数据线,而用双向端口来设计,则只需要16根数据线,这样就节省了16根数据线引脚。
由于现在的大多数资料对双向端口的设计介绍很少,本文给出FPGA中双向端口的设计原理和方法,以及仿真和初始化双向端口的方法,同时选用Xilinx Virtex-4芯片进行实际应用。
2 信号处理板卡的系统构成及数据存储芯片2.1 系统构成由FPGA控制4片模拟输入电压为-10V~+10V,转换速率可以高达2kSPS/mW的AD7656,实时地将模拟信号变成数字信号,本系统中共有24路数字信号输出,这24路数字信号通过FPGA双向端口实时地存放在DSP外挂的SDRAM内,再通过DSP读SDRAM数据,将数据通过RS232送到PC机,此时也可以通过PCI桥将数据直接送到PC机,这样达到PC机对信号的后续处理。
PC机也可以通过FPGA的双向口,将串口RS232外部接收的数据送到FPGA,再送至DSP外挂的SDEAM或者E2PROM中,实现数据的存储,以便下一步对数据分析处理。
在这个系统中的这两个双向端口,都是16位的数据交换,由于用了双向端口,节省了16引脚资源,同时优化了器件的选择和整体设计,降低了成本。
图1为信号处理板卡功能模块逻辑框图。
图1 信号处理板卡功能模块逻辑框2.2 DSP芯片介绍TMS320C6713片上外设被映射到存储空间中,通过片上外设总线进行访问。
TMS320C6713片外设备(存储器或 I/O)通 过外部存储器接口(EMIF)进行访问,分成 4 个存储空间,每个存储空间可独立进行配置,并提供了32-bit位宽的外部存储器接口(EMIF), 总共可寻址512MB的存储器空间, 可无缝挂接各种常见的同步异步存储器。
本设计中挂接了一个SDRAM和一个Flash。
2.3 数据存储芯片2.3.1 E2PROM串行E2PROM是可在线电擦除和电写入的存储器,具有体积小、接口简单、数据保存可靠、可在线改写、功耗低等特点,串行E2PROM按总线形式分为三种,即I2C总线、Microwire总线及SPI总线三种。
本卡采用I2C总线型 ,即“内部集成电路总线”。
I2C 总线采用时钟(SCL)和数据(SDA)两根线进行数据传输,接口十分简单。
SDA据脚。
SCL是时钟脚。
SDA和SCL噪声尖峰信号,仍能正常工作。
本系统所用EEPROM是的2.3.2 SDRAM(同步动态随机存储器)时钟同步,避免了 不必要的等待周期,减少数据存储时间。
SDRAM结构复杂,适合做大容量存储。
SDRAM采用3.3V工作电压,168Pin的DIMM接口,带宽为64位。
本系统SDRAM最高运行频率可达133MHz,采用了两个现代半导体的HY57V561620CT ( 4 Bank* 4M * 16bit ),即存储空间为256M,用于提供DSP程序运行期间所需的动态存储空间。
3 双向端口的设计和VerilogHDL程序设计3.1 双向端口的设计根据上面的分析可知:FPGA采集到的数据先存到SDRAM中,之后还要从SDRAM读出,(当然也可以直接通过PCI桥从SDRAM 中取出数据)所以在FPGA内部就需要定义相应位数的双向端口(inout 类型)。
Inp 端口对数字信号进行采集,通过ed_n 端口将数据存入DSP外挂的SDRAM中,SDRAM中的数据经ed_n端口送至FPGA,再通过outpPC机处理单元图2 FPAG 与DSP 的连接图3.2 双向端口的仿真方法首先介绍双向端口在FPGA 内部硬件资源是怎么实现的。
它是通过对三态门控制来实现双向端口的,本设计中的双向端口可表述为图3所示的BI_PORT 模块。
图3 BI_PORT 的逻辑框图 输入输出控制端(CON)决定端口的状态,当CON=0时,BI_PORT 用于输出,直接输出由INP 输入的数据。
而当CON=1时,BI_PORT 用于输入,输入的数据直接由OUTP输出。
限于篇幅,只做了一个简单的模型来说明双向端口的设计。
下面用Verilog 硬件描述语言进行双向端口的程序设计。
输入口din定义:input [15:0] INP;当双向端口BI_PORT作为输出口时,我们从INP端口输入数据到模块中,让数据从BI_PORT口出来。
输出口OUTP定义:output [15:0]OUTP;当双向端口BI_PORT作为输入口时,我们让数据从BI_PORT口输入,从输出口OUTPt输出。
双向端口BI_PORT定义:inout [15:0] BI_PORT;三态门选通信号CON:input CON;当CON=1时,把三态门置为高阻态,这时BI_PORT作为输入口用;当CON=0时,开通三态门,这时BI_PORT作为输出口用。
三态门控制语句为: assign BI_PORT =(!CON)?din_reg:16’bZ;总的完整程序如下:`timescale 1ns/1psmoduleio_port(INP,z,clk,OUTP,BI_PORT);//模块定义 input [15:0] INP; //输入端口定义 input CON,clk; //输入时钟等端口定义 output [15:0] OUTP;//输出端口定义 inout [15:0] BI_PORT;//双向端口定义 reg [15:0] OUTP;//在always 块内被赋值的变量必须为reg 类型 reg [15:0] INP_reg;//中间寄存器变量 assign BI_PORT = (!CON)? INP_reg : 16'bZ; always@ ( posedge clk)begin if(!CON) din_reg<= INP; else OUTP <= BI_PORT; end endmodule 3.3 双向端口的仿真结果下面对上面程序的时序进行时序仿真。
选用的FPGA 芯片为Xilinx 的Virtex-4系列,型号为XC4VLX80,在ISE9.2软件中综合及布局布线,并用ModelSim SE 6.1进行了仿真。
当双向端口BI_PORT 作为输出口时,不需要对它进行初始化,只需要开通三态门。
设定输入输出控制端CON 先为0,在20ns 后,让数据从20,21,22,23,24,25,26,27,28,29,30依次从INP 口输入,然后用10ns 的采样时钟从BI_PORT 口输出。
以下是它的仿真顶层模块程序: `timescale 1ns/1ps module io_port_test(); reg [15:0]INP; //在调用模块进行仿真时,输入信号要为reg 类型,输出信号要为wire reg CON,clk; wire [15:0] OUTP,BI_PORT; integer i; io_port io_port( .INP(INP), .CON(CON), .clk(clk), .OUTP(OUTP), .BI_PORT(BI_PORT)); //实列化调用的模块 always #5 clk=~clk;initialbeginINP=0;CON=0;clk=0;#20 INP=20;for(i=0;i<10;i=i+1)#20 INP=INP+1;andendmodule仿真的时序图如图4所示:可以看出在CON=0时,双向端口BI_PORT 作为输出口,输出从INP 输入到模块中的数据。
当双向端口BI_PORT 作为输入口时,需要对它进行初始化赋值,此时关闭三态门,而对双向端口的初始化赋值,如果把它跟一般的输入口一样直接赋值给它,则会出错。
因为在定义它的时候已经是wire 型了。
在许多Verilog 书籍和参考资料中,有关双向端口的初始化赋值介绍的很少。
这里需要用到一个force 命令,用来给BI_PORT 输入赋值。
我们设定在20ns 后,让数据20,19,18,17,16,15,14,13,12,11,10从BI_PORT 口输入模块,然后用10ns 的采样时钟从输出口OUTP 输出。
以下是它的仿真顶层模块程序: `timescale 1ns/1ps module io_port_test(); reg [15:0]INP; //在调用模块进行仿真时,输入信号要为reg 类型,输出信号要为wire reg CON,clk; wire [15:0] OUTP,BI_PORT; integer i; io_port io_port(.INP(INP),.CON(CON), .clk(clk), .OUTP(OUTP), .BI_PORT(BI_PORT)); //实列化调用的模块 always #5 clk=~clk; initial begin CON=1;clk=0; force BI_PORT=20; #20 for(i=0;i<10;i=i+1)#20 forceBI_PORT=BI_PORT-1;and endmodule 仿真的时序图如图4所示: 当CON=1时,双向端口BI_PORT 作为输入口,数据从BI_PORT 口输入模块,然后从输出口完整地将数据输出。