54
高高 DSP 高高 高高高高高 自自自自自自自自自自自 自自自 2011.3.2

高速 DSP 原理、应用及实践

  • 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

Page 1: 高速 DSP 原理、应用及实践

高速 DSP原理、应用及实践

自动化测试与控制研究所

许永辉

2011.3.2

Page 2: 高速 DSP 原理、应用及实践

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

Page 3: 高速 DSP 原理、应用及实践

① DM642通过 EMIF访问外存储器空间或 I/O空间② EMIF可以与目前几乎所有的存储器无缝连接③ DM642的 EMIF支持的存储器包括:

同步突发静态 RAM(SBSRAM) 同步动态 RAM(SDRAM) 异步器件,包括 SRAM、 ROM、 FIFO等 外部共享存储空间的设备 零总线转换( ZBT)同步流水线 SRAM 同步 FIFO

概述1

Page 4: 高速 DSP 原理、应用及实践
Page 5: 高速 DSP 原理、应用及实践

2

信号

Page 6: 高速 DSP 原理、应用及实践

① 数据总线: 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

Page 7: 高速 DSP 原理、应用及实践

① 空间片选引脚: 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

Page 8: 高速 DSP 原理、应用及实践
Page 9: 高速 DSP 原理、应用及实践

① 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

Page 10: 高速 DSP 原理、应用及实践

① 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

Page 11: 高速 DSP 原理、应用及实践

3.1

① 全局控制寄存器: GBCTL

整个 CE空间的公共参数设置② CE空间控制寄存器: CExCTL

CE空间对应的存储器类型、控制对外接口的时序③ CE空间第二控制寄存器: CExSEC

CE空间对应的可编程同步存储器读写时序④ SDRAM控制寄存器 :SDCTL

⑤ SDRAM时序寄存器 :SDTIM

⑥ SDRAM寄存器 :SDEXT

EMIF的寄存器7

Page 12: 高速 DSP 原理、应用及实践
Page 13: 高速 DSP 原理、应用及实践

例如:*(int *)EMIFA_GCTL = 0x000927fcECLKOUT2使能输出,且为 EMIF输入时钟的 1/4ECLKOUT1使能输出CLK4和 CLK6使能输出

全局控制寄存器8

Page 14: 高速 DSP 原理、应用及实践

① 读 / 写建立时间② 读 / 写选通时间③ 读 / 写保持时间④ MTYPE:CE空间识别存储器类型,

选择了同步器件,其余的设置无效,因为读写按照时钟CLKOUT1选择了异步器件,其余的设置有效,指定地址和控制信号的信息

CE 空间控制寄存器 (CECTL)9

Page 15: 高速 DSP 原理、应用及实践
Page 16: 高速 DSP 原理、应用及实践

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

存储器宽度和字节对齐10

Page 17: 高速 DSP 原理、应用及实践

① 读写周期可灵活的设置,实现与不同速度 / 不同类型的异步器件的直接接口 : ASRAM/EPROM/FLASH/FPGA/ASIC/FIFO等

② 4 个控制信号,通过不同组合实现无缝接口。 CEXCTL负责设置异步读写时序

异步接口10

Page 18: 高速 DSP 原理、应用及实践

EMIF 到 32 位 SRAM的接口

11

Page 19: 高速 DSP 原理、应用及实践

EMIF 到 ROM 的接口 12

Page 20: 高速 DSP 原理、应用及实践

C64x 异步接口( ASRAM )的总结

13

Page 21: 高速 DSP 原理、应用及实践

① 参数定义 Setup(建立时间 ):从存储器访问周期开始 ( 片选

、地址有效 ) 有效到读 / 写信号有效 Strobe(触发时间 ):读 / 写信号从有效到无效 Hold(保持时间 ):从读 / 写信号无效到该访问周期

结束② 参数要求

时间单位是 ECLKOUT1时钟周期 SETUP>=1(0当作1看待 ) STROBE>=1(0当作1看待 ) HOLD>=0

异步接口参数14

Page 22: 高速 DSP 原理、应用及实践

异步读操作 15

Page 23: 高速 DSP 原理、应用及实践

异步写操作 16

Page 24: 高速 DSP 原理、应用及实践

输入准备信号 17

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

≥1RDY

CS CE

RDY

HT-61843 DM642

Page 25: 高速 DSP 原理、应用及实践

异步接口举例 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 , // 程序只在上电加载,故可按照最慢配置

Page 26: 高速 DSP 原理、应用及实践

① SDRAM: Synchronous Dynamic Random Access

Memory同步动态随机存储器 同步:指其时钟频率与总线的系统时钟频率相同,并

且内部的命令的发送与数据的传输都以它为基准; 动态:存储器需要不断的刷新来保证数据不丢失; 随机:指数据不是线性一次存储,而是自由指定地址进行数据的读写

② 速度快:访问周期可达 6ns,可单时钟周期读写③ 容量大:最大已经有 1Gbit/片

SDRAM 接口18

Page 27: 高速 DSP 原理、应用及实践

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

DRAM 原理19

Page 28: 高速 DSP 原理、应用及实践

SDRAM存储阵列示意图

① SDRAM的内部结构是一个随机访问的存储阵列 阵列就如同表格一样,先指定一个行( Row),再指定

一个列( Column),就可以准确地找到所需要的单元格,这个单元格可称为存储单元 , 这个表格(存储阵列)就是逻辑 Bank;

由于技术、成本等原因,人们在 SDRAM内部分割成多个Bank,较早以前是两个,目前基本都是 4 个,这也是SDRAM规范中的最高 Bank数量。在最新 DDR-Ⅱ 的标准中, Bank的数量也提高到了 8 个。

SDRAM 内部结构20

Page 29: 高速 DSP 原理、应用及实践

SDRAM 控制命令 21

Page 30: 高速 DSP 原理、应用及实践

SDRAM 真值表 22

Page 31: 高速 DSP 原理、应用及实践

EMIF 与 64MbitSDRAM接口

23

Page 32: 高速 DSP 原理、应用及实践

DM642 支持的 SDRAM类型

24

Page 33: 高速 DSP 原理、应用及实践

SDRAM 管脚功能25

Page 34: 高速 DSP 原理、应用及实践

SDRAM 控制寄存器26

Page 35: 高速 DSP 原理、应用及实践

① SDRAM 时序寄存器根据 EMIF 时钟周期控制刷新周期。周期字段可有选择地向 CPU 发出一个中断。

② 如果系统中没用 SDRAM ,这个计数器可作为一个通用定时器使用。

SDRAM 时序寄存器27

Page 36: 高速 DSP 原理、应用及实践

7.6.3 SDRAM扩展寄存器

C64x 的 SDRAM扩展寄存器允许对许多 SDRAM 参数编程。可编程性具有两个优点。

①首先,它允许一个面向多样的 SDRAM 的接口,而且不 仅仅局限于少数配置或者速度特性。

②第二,由于隐含预加载和多个打开的存储体等特性, EMIF

能保持从外部 SDRAM 的连续数据传输。

SDRAM扩展寄存器26

Page 37: 高速 DSP 原理、应用及实践

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 相接的硬件电路原理图。

Page 38: 高速 DSP 原理、应用及实践

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]

Page 39: 高速 DSP 原理、应用及实践

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

Page 40: 高速 DSP 原理、应用及实践

① 控制可编程同步存储器访问的周期时序② 控制用于特定的 CE空间同步的时钟③ SYNCRL:同步接口数据读取等待时间④ SYNCWL:同步接口数据写入等待时间⑤ CEEXT:CE扩展存储器使能位⑥ RENEN:读使能信号 ,SADS/SRE是 SADA模式还是 SRE

模式⑦ SNCCLK:同步周期, CE空间信号与 ECLKOUT1还是与

ECLKOUT1同步

CE 空间第二控制寄存器 (CExSEC )30

Page 41: 高速 DSP 原理、应用及实践

① SBSRAM 是同步猝发静态存储器( Synchronous Burst Static RAM )的缩写;

② SBSRAM 结构上分为直通式( flow through )和流水线式( pipeline )两种类型, C64x EMIF 可支持与后者的直接接口;

③ 支持同步猝发访问,读写速度高,而且属于静态RAM, 不需要刷新;

④ SBSRAM既可以在 ECLKOUT1也可以在 ECLKOUT2时钟频率下工作;

⑤ 在片选信号有效时, SBSRAM 在时钟上升沿锁存其它4 个控制信号,决定存储器的操作。

SBSRAM 接口31

Page 42: 高速 DSP 原理、应用及实践

① 对于标准 SBSRAM 的接口, C64x EMIF 的

CExSEC 寄存器有关字段需要设置为以下值 :

SYNCRL=10b , 2 周期读延迟 SYNCWL=00b , 0 周期写延迟 CEEXT=0 ,最后一次存取命令发出后 CE变高 RENEN=0 , SADS/SRE管脚作为 SADS 信号

SBSRAM 的操作32

Page 43: 高速 DSP 原理、应用及实践

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

Page 44: 高速 DSP 原理、应用及实践

*(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

Page 45: 高速 DSP 原理、应用及实践

① C64x 的 EMIF 在 SBSRAM 接口基础上扩展为可编程同步接口,支持与下列同步器件的直接接口

流水线式和直通式结构的 SBSRAM ; ZBT( Zero Bus Turnaround) 同步 pipeline SRAM ; 标准结构和 Flow-through 结构( FWFT )的同步

FIFO 。② 通过 CExSEC 寄存器配置读写操作时序实现可编程接口

选择数据的延迟周期 ; 片选信号 CE 的无效时间 ; 读写信号的波形等。

可编程同步接口34

Page 46: 高速 DSP 原理、应用及实践

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信号

Page 47: 高速 DSP 原理、应用及实践

① 读接口时序 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

Page 48: 高速 DSP 原理、应用及实践

标准同步 FIFO 的接口图37

Page 49: 高速 DSP 原理、应用及实践

① 读接口时序 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

Page 50: 高速 DSP 原理、应用及实践

① C64x的 EMIF增加一个 PDT控制管脚提供外部器件传输接口( Peripheral Device Transfer );

② DSPs控制片外( EMIF上)一个外部设备(Peripheral,例如 FIFO)和另一个外部存储器( Memory,例如 SDRAM)之间直接传输数据,每次传输只占用一个总线周期

③ 在 EDMA可选参数中设置 PDT传输的配置

PDT 传输39

Page 51: 高速 DSP 原理、应用及实践

PDT 传输与通常传输的比较40

Page 52: 高速 DSP 原理、应用及实践

PDT 传输实例( FIFO 到SDRAM )

41

Page 53: 高速 DSP 原理、应用及实践

PDT 传输实例( SDRAM 到FIFO )

42

Page 54: 高速 DSP 原理、应用及实践

HOLD 接口43① Hold提供了一套握手仲裁机制,应用于 EMIF于其

它外部设备共享外部总线的场合。如果不需要 hold

功能可以在 EMIF全局控制寄存器中禁止。 Hold主要信号包括:

/HOLD,输入信号,申请挂起外总线。为了申请访问总线,外部设备将这个管脚置为低电平。

/HOLDA, HOLD响应输出信号。 EMIF在将有关的输出脚置为高阻后,输出 HOLDA有效,通知外总线其它设备可以使用总线。

/BUSREQ,总线请求输出。当 EMIF正在处理有关申请或有申请正在等候处理时, /BUSREQ有效。