1 / 54

高速 DSP 原理、应用及实践

高速 DSP 原理、应用及实践. 自动化测试与控制研究所 许永辉 2011.3.2. Part3 : 外部存储器接口( EMIF ). 1. 概述. DM642 通过 EMIF 访问外存储器空间或 I/O 空间 EMIF 可以与目前几乎所有的存储器无缝连接 DM642 的 EMIF 支持的存储器包括: 同步突发静态 RAM(SBSRAM) 同步动态 RAM(SDRAM) 异步器件,包括 SRAM 、 ROM 、 FIFO 等 外部共享存储空间的设备 零总线转换( ZBT )同步流水线 SRAM 同步 FIFO. 2. 信号. 3.

colby
Download Presentation

高速 DSP 原理、应用及实践

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 高速DSP原理、应用及实践 自动化测试与控制研究所 许永辉 2011.3.2

  2. Part3: 外部存储器接口(EMIF)

  3. 1 概述 • DM642通过EMIF访问外存储器空间或I/O空间 • EMIF可以与目前几乎所有的存储器无缝连接 • DM642的EMIF支持的存储器包括: • 同步突发静态RAM(SBSRAM) • 同步动态RAM(SDRAM) • 异步器件,包括SRAM、ROM、FIFO等 • 外部共享存储空间的设备 • 零总线转换(ZBT)同步流水线SRAM • 同步FIFO

  4. 2 信号

  5. 3 地址总线和数据总线引脚 • 数据总线:ED[63:0] • 地址总线:EA[22:3] • 上电复位阶段:EA[22:21]设置DM642的启动方式 • 00-不启动 • 01-从HPI/PCI加载程序 • 11-从EMIFA接口加载程序 • 10-保留 • EA[20:19]设置EMIFA的同步时钟来源 • 00-同步时钟来自ECLKIN引脚 • 01-来自CPU/4 • 10-来自CPU/6 • 11-保留

  6. 4 CE空间片选和字节使能信号 • 空间片选引脚:CE[0:3] • 把外部存储器空间划分为4个子空间 • 实际是高位地址译码输出,每个空间大小256MB • CE0:80000000-0x8fffffff:256MB • CE1:90000000-0x9fffffff:256MB • CE2:A0000000-0xAfffffff:256MB • CE3:B0000000-0xBfffffff:256MB • 外部存储空间字节使能:BE[0:7] • 内部32bit地址的最低3位经译码后输出 • 解决从EA3开始,低位地址单元无法直接访问的问题 • 分别使能64bit数据中的8bit • 可与SDRAM的SDQM[0:7]连接,用作SDRAM数据读写屏蔽信号

  7. 5 时钟、PDT和HOLD • ECLLKIN是EMIF的同步时钟源 • 1/6CPU主频、1/4CPU主频、ECLKIN • ECLLKOUT1和ECLLKOUT2为外部存储器提供同步时钟 • ECLLKOUT1等于EMIF输入时钟 • ECLLKOUT2可设置为EMIF输入时钟的1、2、4分频 • PDT(Peripheral Device Transfer) • 通常DSP片外两个设备之间数据传输需要执行2个EMIF操作 • PDT支持外部设备到外部设备的传输,只占一个总线周期 • 总线状态指示引脚 • HOLD:保持 • HOLDA:保持应答

  8. 6 控制管脚 • AARE/ASDCAS/ASADS/ASRE • 异步存储器:ARE有效,存储器读使能控制 • SDRAM:ASDCAS有效,列地址选择 • 同步存储器:ASADS/ASRE有效,地址选通/读使能 • AAOE/ASDRAS/ASOE • 异步存储器:AAOE有效,输出使能控制 • SDRAM:ASDRAS有效,行地址选择 • 同步存储器:ASOE有效,输出使能控制 • AAWE/ASDWE/ASWE • 异步存储器: AAWE有效,写使能控制 • SDRAM:ASDWE有效,写使能控制 • 同步存储器:ASWE有效,写使能控制 • ASDCKE:SDRAM的时钟使能控制信号 • ASOE3:存储器使能控制,对FIFO类存储器无效

  9. 7 EMIF的寄存器 3.1 • 全局控制寄存器:GBCTL • 整个CE空间的公共参数设置 • CE空间控制寄存器:CExCTL • CE空间对应的存储器类型、控制对外接口的时序 • CE空间第二控制寄存器:CExSEC • CE空间对应的可编程同步存储器读写时序 • SDRAM控制寄存器:SDCTL • SDRAM时序寄存器:SDTIM • SDRAM寄存器:SDEXT

  10. 8 全局控制寄存器 例如: *(int *)EMIFA_GCTL = 0x000927fc ECLKOUT2使能输出,且为EMIF输入时钟的1/4 ECLKOUT1使能输出 CLK4和CLK6使能输出

  11. 9 CE空间控制寄存器(CECTL) • 读/写建立时间 • 读/写选通时间 • 读/写保持时间 • MTYPE:CE空间识别存储器类型, • 选择了同步器件,其余的设置无效,因为读写按照时钟CLKOUT1 • 选择了异步器件,其余的设置有效,指定地址和控制信号的信息

  12. 10 存储器宽度和字节对齐 C64x的EMIFA支持8/16/64位宽度的存储器,同样支持大终端(big-endian)和小终端(little-endian)模式。

  13. 10 异步接口 • 读写周期可灵活的设置,实现与不同速度/不同类型的异步器件的直接接口: ASRAM/EPROM/FLASH/FPGA/ASIC/FIFO等 • 4个控制信号,通过不同组合实现无缝接口。CEXCTL负责设置异步读写时序

  14. 11 EMIF到32位SRAM的接口

  15. 12 EMIF到ROM的接口

  16. 13 C64x 异步接口(ASRAM)的总结

  17. 14 异步接口参数 • 参数定义 • Setup(建立时间):从存储器访问周期开始(片选、地址有效)有效到读/写信号有效 • Strobe(触发时间):读/写信号从有效到无效 • Hold(保持时间):从读/写信号无效到该访问周期结束 • 参数要求 • 时间单位是ECLKOUT1时钟周期 • SETUP>=1(0当作1看待) • STROBE>=1(0当作1看待) • HOLD>=0

  18. 15 异步读操作

  19. 16 异步写操作

  20. 17 输入准备信号 • 高电平有效的异步输入准备好信号 • 用来对慢速存储器和外部设备插入等待状态 • 通过使ARDY输入无效来插入额外的周期到选通周期中

  21. 18 异步接口举例 *(int*)GBLCTL =0x0009207C //时钟1/2/4/6都使能,2是EMIF时钟/2 *(int*)CECTL1= 0xFFFFFF03 //表明CE1使用8位的ROM, //程序只在上电加载,故可按照最慢配置

  22. 18 SDRAM接口 • SDRAM: Synchronous Dynamic Random Access Memory同步动态随机存储器 • 同步:指其时钟频率与总线的系统时钟频率相同,并且内部的命令的发送与数据的传输都以它为基准; • 动态:存储器需要不断的刷新来保证数据不丢失; • 随机:指数据不是线性一次存储,而是自由指定地址进行数据的读写 • 速度快:访问周期可达6ns,可单时钟周期读写 • 容量大:最大已经有1Gbit/片

  23. 19 DRAM原理 行选与列选信号使存储电容与外界间传输电路导通,从而可进行放电(读取)与充电(写入)

  24. 20 SDRAM内部结构 SDRAM存储阵列示意图 • SDRAM的内部结构是一个随机访问的存储阵列 • 阵列就如同表格一样,先指定一个行(Row),再指定一个列(Column),就可以准确地找到所需要的单元格,这个单元格可称为存储单元,这个表格(存储阵列)就是逻辑Bank; • 由于技术、成本等原因,人们在SDRAM内部分割成多个Bank,较早以前是两个,目前基本都是4个,这也是SDRAM规范中的最高Bank数量。在最新DDR-Ⅱ的标准中,Bank的数量也提高到了8个。

  25. 21 SDRAM控制命令

  26. 22 SDRAM真值表

  27. 23 EMIF与64MbitSDRAM接口

  28. 24 DM642支持的SDRAM类型

  29. 25 SDRAM管脚功能

  30. 26 SDRAM 控制寄存器

  31. 27 SDRAM时序寄存器 • SDRAM时序寄存器根据EMIF时钟周期控制刷新周期。周期字段可有选择地向CPU发出一个中断。 • 如果系统中没用SDRAM,这个计数器可作为一个通用定时器使用。

  32. 26 SDRAM扩展寄存器 7.6.3 SDRAM扩展寄存器 C64x的SDRAM扩展寄存器允许对许多SDRAM参数编程。可编程性具有两个优点。 首先,它允许一个面向多样的SDRAM的接口,而且不 仅仅局限于少数配置或者速度特性。 第二,由于隐含预加载和多个打开的存储体等特性,EMIF能保持从外部SDRAM的连续数据传输。

  33. 27 SDRAM接口设计方法 SDRAM属于结构比较复杂的存储器。实际使用中不用研究SDRAM的控制命令以及时序等方面的内容的内容,只要知道其管脚如何与DM642相连。再通过查阅SDRAM的手册配置好SDRAM的几个控制寄存器即可。 MT48LC4M32B2是美光公司生产的128Mb的 SDRAM,其构架1024×32×4,每个bank行地址数目是12,列地址数目是8。由于DM642的数据线是64位宽,所以在硬件设计时选用两片SDRAM来构成64位的数据存储器。查与DM642兼容的SDRAM表可知,MT48LC4M32B2是C64x DSP兼容的SDRAM,CE空间最大的器件数是2。另外,对照该表还可以得到与DM642相接的硬件电路原理图。

  34. 28 SDRAM接口设计图

  35. 29 SDRAM接口设计程序 *(int*)GBLCTL =0x0009207C //时钟1/2/4/6都使能,2是CPU/2 *(int*)CECTL0 = 0xFFFFFFD3 //表明CE0使用64位的SDRAM *(int*)SDCTL =0x57116000 //2个bank管脚, 12个行管脚;8个列管脚 // TRC=6; TRP=1; TRCD=1; *(int*)SDTIM = 0x0008061A //刷新时间:0x61a×10ns=15.62us *(int*)SDEXT = 0x00054549 //TCL=1,TRAS=4,TRRD=0 //TER=1,THZP=2

  36. 30 CE空间第二控制寄存器(CExSEC ) • 控制可编程同步存储器访问的周期时序 • 控制用于特定的CE空间同步的时钟 • SYNCRL:同步接口数据读取等待时间 • SYNCWL:同步接口数据写入等待时间 • CEEXT:CE扩展存储器使能位 • RENEN:读使能信号,SADS/SRE是SADA模式还是SRE模式 • SNCCLK:同步周期,CE空间信号与ECLKOUT1还是与ECLKOUT1同步

  37. 31 SBSRAM接口 • SBSRAM是同步猝发静态存储器(Synchronous Burst Static RAM)的缩写; • SBSRAM结构上分为直通式(flow through )和流水线式(pipeline)两种类型,C64x EMIF可支持与后者的直接接口; • 支持同步猝发访问,读写速度高,而且属于静态RAM,不需要刷新; • SBSRAM既可以在ECLKOUT1也可以在ECLKOUT2时钟频率下工作; • 在片选信号有效时,SBSRAM在时钟上升沿锁存其它4个控制信号,决定存储器的操作。

  38. 32 SBSRAM的操作 • 对于标准SBSRAM的接口,C64x EMIF的CExSEC寄存器有关字段需要设置为以下值: • SYNCRL=10b,2周期读延迟 • SYNCWL=00b,0周期写延迟 • CEEXT=0,最后一次存取命令发出后CE变高 • RENEN=0,SADS/SRE管脚作为SADS信号

  39. 32 SBSRAM接口例子 CY7C1480V33具有增强的外围电路和2为的计数器用来实现内部突发操作,其容量2M×36b,总线操作最高支持达250MHz。

  40. 33 SBSRAM接口程序 *(int*) GBLCTL=0x0009207C, //时钟1,2,4,6都使能,2是CPU/2 *(int*) CECTL2 =0xFFFFFF43, //CECTL2,表明CE2使用32位的SBSRAM *(int*) CESEC2 =0x00000042, //表明SBSRAM同步时钟使用的是 //ECLKOUT2,2周期读取等待时间

  41. 34 可编程同步接口 • C64x的EMIF在SBSRAM接口基础上扩展为可编程同步接口,支持与下列同步器件的直接接口 • 流水线式和直通式结构的SBSRAM; • ZBT( Zero Bus Turnaround)同步pipeline SRAM; • 标准结构和Flow-through结构(FWFT)的同步FIFO。 • 通过CExSEC寄存器配置读写操作时序实现可编程接口 • 选择数据的延迟周期; • 片选信号CE的无效时间; • 读写信号的波形等。

  42. 35 ZBT RAM控制寄存器设置 • CE控制寄存器 • MTYPE = 1010b: 8bit宽可编程存储器 • MTYPE = 1011b: 16bit宽可编程存储器 • MTYPE = 0100b: 32bit宽可编程存储器 • MTYPE = 1110b: 64bit宽可编程存储器 • CExSEC控制寄存器 • SYNCRL=10b,2周期读延迟 • SYNCWL=10b,2周期写延迟 • CEEXT=0,发出最后一个命令后CE变高 • RENEN=0,SADS/SRE管脚作为SADS信号

  43. 36 标准同步FIFO的CExSEC设置 • 读接口时序CExSEC控制寄存器 • SYNCRL=01b,1周期读延迟 • RENEN=0,SADS/SRE管脚作为/SRE信号 • CEEXT=0,可以实现与FIFO的直接接口 • CEEXT=1,接口需要辅助逻辑 • 写接口时序CExSEC控制寄存器 • SYNCRL=00b,0周期读延迟 • RENEN=0,SADS/SRE管脚作为/SRE信号

  44. 37 标准同步FIFO的接口图

  45. 38 FWFT FIFO读写CExSEC设置 • 读接口时序CExSEC控制寄存器 • SYNCRL=00b,0周期读延迟 • RENEN=0,SADS/SRE管脚作为/SRE信号 • CEEXT=0,可以实现与FIFO的直接接口 • CEEXT=1,接口需要辅助逻辑 • 写接口时序CExSEC控制寄存器 • SYNCRL=00b,0周期读延迟 • RENEN=0,SADS/SRE管脚作为/SRE信号

  46. 39 PDT传输 • C64x的EMIF增加一个PDT控制管脚提供外部器件传输接口( Peripheral Device Transfer ); • DSPs控制片外(EMIF上)一个外部设备(Peripheral,例如FIFO)和另一个外部存储器(Memory,例如SDRAM)之间直接传输数据,每次传输只占用一个总线周期 • 在EDMA可选参数中设置PDT传输的配置

More Related