Upload
colby
View
96
Download
12
Embed Size (px)
DESCRIPTION
高速 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. - PowerPoint PPT Presentation
Citation preview
高速 DSP原理、应用及实践
自动化测试与控制研究所
许永辉
2011.3.2
Part3 :外部存储器接口( EMIF )
① DM642通过 EMIF访问外存储器空间或 I/O空间② EMIF可以与目前几乎所有的存储器无缝连接③ DM642的 EMIF支持的存储器包括:
同步突发静态 RAM(SBSRAM) 同步动态 RAM(SDRAM) 异步器件,包括 SRAM、 ROM、 FIFO等 外部共享存储空间的设备 零总线转换( ZBT)同步流水线 SRAM 同步 FIFO
概述1
2
信号
① 数据总线: 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-保留
地址总线和数据总线引脚3
① 空间片选引脚: 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数据
读写屏蔽信号
CE 空间片选和字节使能信号4
① 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:保持应答
时钟、 PDT 和HOLD
5
① 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类存储器无效
控制管脚6
3.1
① 全局控制寄存器: GBCTL
整个 CE空间的公共参数设置② CE空间控制寄存器: CExCTL
CE空间对应的存储器类型、控制对外接口的时序③ CE空间第二控制寄存器: CExSEC
CE空间对应的可编程同步存储器读写时序④ SDRAM控制寄存器 :SDCTL
⑤ SDRAM时序寄存器 :SDTIM
⑥ SDRAM寄存器 :SDEXT
EMIF的寄存器7
例如:*(int *)EMIFA_GCTL = 0x000927fcECLKOUT2使能输出,且为 EMIF输入时钟的 1/4ECLKOUT1使能输出CLK4和 CLK6使能输出
全局控制寄存器8
① 读 / 写建立时间② 读 / 写选通时间③ 读 / 写保持时间④ MTYPE:CE空间识别存储器类型,
选择了同步器件,其余的设置无效,因为读写按照时钟CLKOUT1选择了异步器件,其余的设置有效,指定地址和控制信号的信息
CE 空间控制寄存器 (CECTL)9
C64x的 EMIFA支持 8/16/64位宽度的存储器,同样支持大终端 (big-endian)和小终端 (little-endian)模式。
存储器宽度和字节对齐10
① 读写周期可灵活的设置,实现与不同速度 / 不同类型的异步器件的直接接口 : ASRAM/EPROM/FLASH/FPGA/ASIC/FIFO等
② 4 个控制信号,通过不同组合实现无缝接口。 CEXCTL负责设置异步读写时序
异步接口10
EMIF 到 32 位 SRAM的接口
11
EMIF 到 ROM 的接口 12
C64x 异步接口( ASRAM )的总结
13
① 参数定义 Setup(建立时间 ):从存储器访问周期开始 ( 片选
、地址有效 ) 有效到读 / 写信号有效 Strobe(触发时间 ):读 / 写信号从有效到无效 Hold(保持时间 ):从读 / 写信号无效到该访问周期
结束② 参数要求
时间单位是 ECLKOUT1时钟周期 SETUP>=1(0当作1看待 ) STROBE>=1(0当作1看待 ) HOLD>=0
异步接口参数14
异步读操作 15
异步写操作 16
输入准备信号 17
①高电平有效的异步输入准备好信号②用来对慢速存储器和外部设备插入等待状态③通过使 ARDY 输入无效来插入额外的周期到选通周期中
≥1RDY
CS CE
RDY
HT-61843 DM642
异步接口举例 18
ACE1
AO E
AW E
D[63:0] IO[7:0]
A[16:0]EA[22:3]EA[19:3]
TMS320DM642 AT29L010
D[7:0]
C E
W E
O E
*(int*)GBLCTL =0x0009207C // 时钟 1/2/4/6 都使能, 2 是 EMIF 时钟 /2*(int*)CECTL1= 0xFFFFFF03 // 表明 CE1 使用 8 位的 ROM , // 程序只在上电加载,故可按照最慢配置
① SDRAM: Synchronous Dynamic Random Access
Memory同步动态随机存储器 同步:指其时钟频率与总线的系统时钟频率相同,并
且内部的命令的发送与数据的传输都以它为基准; 动态:存储器需要不断的刷新来保证数据不丢失; 随机:指数据不是线性一次存储,而是自由指定地址进行数据的读写
② 速度快:访问周期可达 6ns,可单时钟周期读写③ 容量大:最大已经有 1Gbit/片
SDRAM 接口18
行选与列选信号使存储电容与外界间传输电路导通,从而可进行放电(读取)与充电(写入)
DRAM 原理19
SDRAM存储阵列示意图
① SDRAM的内部结构是一个随机访问的存储阵列 阵列就如同表格一样,先指定一个行( Row),再指定
一个列( Column),就可以准确地找到所需要的单元格,这个单元格可称为存储单元 , 这个表格(存储阵列)就是逻辑 Bank;
由于技术、成本等原因,人们在 SDRAM内部分割成多个Bank,较早以前是两个,目前基本都是 4 个,这也是SDRAM规范中的最高 Bank数量。在最新 DDR-Ⅱ 的标准中, Bank的数量也提高到了 8 个。
SDRAM 内部结构20
SDRAM 控制命令 21
SDRAM 真值表 22
EMIF 与 64MbitSDRAM接口
23
DM642 支持的 SDRAM类型
24
SDRAM 管脚功能25
SDRAM 控制寄存器26
① SDRAM 时序寄存器根据 EMIF 时钟周期控制刷新周期。周期字段可有选择地向 CPU 发出一个中断。
② 如果系统中没用 SDRAM ,这个计数器可作为一个通用定时器使用。
SDRAM 时序寄存器27
7.6.3 SDRAM扩展寄存器
C64x 的 SDRAM扩展寄存器允许对许多 SDRAM 参数编程。可编程性具有两个优点。
①首先,它允许一个面向多样的 SDRAM 的接口,而且不 仅仅局限于少数配置或者速度特性。
②第二,由于隐含预加载和多个打开的存储体等特性, EMIF
能保持从外部 SDRAM 的连续数据传输。
SDRAM扩展寄存器26
SDRAM 接口设计方法
27
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 相接的硬件电路原理图。
SDRAM 接口设计图28
BE[7:0]
CE0
S D C A S
S D R A S
S D W E
SD C K E
D[63:0]
ECLKOUT1
DQ[31:0]
CAS
CS
DQM[3:0]
A[11:0]EA[22:3]
RAS
WE
BA0
BA1
CLK
CKE
EA[14:3]
EA15
EA16
TMS320DM642 MT48LC4M32B2
B E [3:0]
CE0
ECLKOUT1SD C K E
S D W E
S D R A S
S D C A S
D[31:0]DQ[31:0]
CAS
CS
DQM[3:0]
A[11:0]
RAS
WE
BA0
BA1
CLK
CKE
EA[14:3]
EA15
EA16
MT48LC4M32B2
B E [4:7]
CE0
ECLKOUT1SD C K E
S D W E
S D R A S
S D C A S
D[63:32]
SDRAM 接口设计程序
29*(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
① 控制可编程同步存储器访问的周期时序② 控制用于特定的 CE空间同步的时钟③ SYNCRL:同步接口数据读取等待时间④ SYNCWL:同步接口数据写入等待时间⑤ CEEXT:CE扩展存储器使能位⑥ RENEN:读使能信号 ,SADS/SRE是 SADA模式还是 SRE
模式⑦ SNCCLK:同步周期, CE空间信号与 ECLKOUT1还是与
ECLKOUT1同步
CE 空间第二控制寄存器 (CExSEC )30
① SBSRAM 是同步猝发静态存储器( Synchronous Burst Static RAM )的缩写;
② SBSRAM 结构上分为直通式( flow through )和流水线式( pipeline )两种类型, C64x EMIF 可支持与后者的直接接口;
③ 支持同步猝发访问,读写速度高,而且属于静态RAM, 不需要刷新;
④ SBSRAM既可以在 ECLKOUT1也可以在 ECLKOUT2时钟频率下工作;
⑤ 在片选信号有效时, SBSRAM 在时钟上升沿锁存其它4 个控制信号,决定存储器的操作。
SBSRAM 接口31
① 对于标准 SBSRAM 的接口, C64x EMIF 的
CExSEC 寄存器有关字段需要设置为以下值 :
SYNCRL=10b , 2 周期读延迟 SYNCWL=00b , 0 周期写延迟 CEEXT=0 ,最后一次存取命令发出后 CE变高 RENEN=0 , SADS/SRE管脚作为 SADS 信号
SBSRAM 的操作32
CY7C1480V33 具有增强的外围电路和 2 为的计数器用来实现内部突发操作,其容量 2M×36b ,总线操作最高支持达250MHz 。
SBSRAM 接口例子32
BE[7:0]
CE2
SADS
SOE
SWE
D[63:0]
ECLKOUT2
DQB
A
EA[22:3] A1
EA[21:5]
TMS320DM642 CY7C1480V33
D[31:24]
D[23:16]
D[15:8]
D[7:0]DQA
DQC
DQD
A0
EA[4]
EA[3]
3CE
1CE
ABW
BBW
CBW
DBW
BE[0]
BE[1]
BE[2]
BE[3]
CE2ADSC
O E
WE
CLK
ADV
VCC
GND
CE2
GND
MODE GND
*(int*) GBLCTL =0x0009207C, // 时钟 1 , 2 , 4 , 6 都使能, 2 是
CPU/2
*(int*) CECTL2 = 0xFFFFFF43, //CECTL2 ,表明 CE2 使用 32 位的SBSRAM
*(int*) CESEC2 =0x00000042, // 表明 SBSRAM 同步时钟使用的是 // ECLKOUT2 , 2 周期读取等待时间
SBSRAM 接口程序33
① C64x 的 EMIF 在 SBSRAM 接口基础上扩展为可编程同步接口,支持与下列同步器件的直接接口
流水线式和直通式结构的 SBSRAM ; ZBT( Zero Bus Turnaround) 同步 pipeline SRAM ; 标准结构和 Flow-through 结构( FWFT )的同步
FIFO 。② 通过 CExSEC 寄存器配置读写操作时序实现可编程接口
选择数据的延迟周期 ; 片选信号 CE 的无效时间 ; 读写信号的波形等。
可编程同步接口34
ZBT RAM 控制寄存器设置
35
① 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信号
① 读接口时序 CExSEC控制寄存器 SYNCRL=01b, 1 周期读延迟 RENEN=0, SADS/SRE管脚作为 /SRE信号 CEEXT=0,可以实现与 FIFO的直接接口 CEEXT=1,接口需要辅助逻辑
② 写接口时序 CExSEC控制寄存器 SYNCRL=00b, 0 周期读延迟 RENEN=0, SADS/SRE管脚作为 /SRE信号
标准同步 FIFO 的 CExSEC设置
36
标准同步 FIFO 的接口图37
① 读接口时序 CExSEC控制寄存器 SYNCRL=00b, 0 周期读延迟 RENEN=0, SADS/SRE管脚作为 /SRE信号 CEEXT=0,可以实现与 FIFO的直接接口 CEEXT=1,接口需要辅助逻辑
② 写接口时序 CExSEC控制寄存器 SYNCRL=00b, 0 周期读延迟 RENEN=0, SADS/SRE管脚作为 /SRE信号
FWFT FIFO 读写CExSEC 设置
38
① C64x的 EMIF增加一个 PDT控制管脚提供外部器件传输接口( Peripheral Device Transfer );
② DSPs控制片外( EMIF上)一个外部设备(Peripheral,例如 FIFO)和另一个外部存储器( Memory,例如 SDRAM)之间直接传输数据,每次传输只占用一个总线周期
③ 在 EDMA可选参数中设置 PDT传输的配置
PDT 传输39
PDT 传输与通常传输的比较40
PDT 传输实例( FIFO 到SDRAM )
41
PDT 传输实例( SDRAM 到FIFO )
42
HOLD 接口43① Hold提供了一套握手仲裁机制,应用于 EMIF于其
它外部设备共享外部总线的场合。如果不需要 hold
功能可以在 EMIF全局控制寄存器中禁止。 Hold主要信号包括:
/HOLD,输入信号,申请挂起外总线。为了申请访问总线,外部设备将这个管脚置为低电平。
/HOLDA, HOLD响应输出信号。 EMIF在将有关的输出脚置为高阻后,输出 HOLDA有效,通知外总线其它设备可以使用总线。
/BUSREQ,总线请求输出。当 EMIF正在处理有关申请或有申请正在等候处理时, /BUSREQ有效。