基于FPGA的DDR2 SDRAM控制器设计

  • 格式:pdf
  • 大小:1007.62 KB
  • 文档页数:4

2021.11设计研发

基于

FPGA的

DDR2 SDRAM控制器设计

钱素琴,刘晶华

(东华大学信息科学与技术学院,上海,201600 )

摘要:基于高速数据传输与存储的数据釆集记录仪对缓存模块高性能的需求,选择了读写速度快、低成本、大容量、运行

稳定的DDR2 SDRAM

作为本地存储器,在其存储寻址原理和IP

核的读写控制逻辑的基础上,借助硬件描述语言设计了一

个DDR2

存储控制器方案。在Intel

的FPGA Cyclone IV

系列开发板上进行了整体方案的功能验证,完成了用户接口和

控制器之间的多数据宽度、多突发长度的高效数据传输和读写操作,在166. 7MHz

时钟频率下实现了稳定读写的目标。

关键词:FPGA

; DDR2 SDRAM

; IP

Design of DDR2 SDRAM controller based on FPGA

Qian Suqin, Liu Jinghua

(College of information science and technology, Donghua University, Shanghai, 201600)

Abstract;

Based on the requirement of high-speed data transmission and storage data acquisition

recorder for high performance of cache module, DDR2 SDRAM with high read-write speed, low cost,

large capacity and stable operation is selected as the local memory. Based on its storage addressing

principle and the read-write control logic of IP core, a DDR2 storage controller scheme is designed

with the help of hardware description language. The functional verifiestion of the overall scheme is

carried out on the FPGA cyclone IV series development board of Intel. The efficient datQ transmission

and read-write operation of multipie data widths and burst lengths between the user interface and the

cont roller are completed. The stable read-wr ite target is achieved a/t 166. 7MHz clock frequency.

Keywords:

FPGA; DDR2 SDRAM; IP core

o

引言

随着数据采集系统的发展,应用于图像采集和数据传输

等领域的产品对存储器的速度要求越来越高。DDR2

系列的

SDRAM

动态存储器因为其能在时钟的正负沿进行两倍速度读

写[1],同时具有低成本、高速、大容量、运行稳定等高性价比

的优点,所以在各个领域中被广泛使用⑵。比如文献3

釆用

DDR2

来存储视频数据⑻,文献4

利用DDR2

实现了数据量较

大的原始红外图像的缓存⑷,文献5

将DDR2

存储技术应用

到了船舶港口物流跟踪系统中[5]等。

DDR2

复杂苛刻的操作时序,造成对应的DDR2

控制器电

路结构也比较特别。很多FPGA

厂商利用其可编程芯片的丰

富软硬件资源设计了 DDR2

存储控制器IP

核冏,其中Altera

公司设计的存储控制器因其效率最高使用较为广泛。要实

现DDR2

控制器的设计,用户只需了解FPGA

芯片专用于连接

DDR2

的引脚功能及存储器的工作机制即可。

本设计主控制器选用了 Altera

公司Cyclone IV

系列的

EP4CE30F23C8,

数据缓存器选用了 Micron

公司内存为2Gbit

大小的MT47H128M16-25E,

研究了 DDR2 SDRAM

的工作原理及

控制器IP

核解决方案,在现场可编程门阵列芯片FPGA

中实

现DDR2

控制器设计,并在嵌入式逻辑分析仪Signal tap

中显

示了双边沿时钟主频工作下的测试结果,在166. 7MHz

时钟频

率下实现了稳定读写的目标。1 DDR2的工作机制

1. 1 DDR2

的初始化

DDR2 SDRAM

有许多操作步骤,包括加载模式、自刷新、预

充电、激活、读写操作和空闲等待。在进行上述操作之前必须

要在上电后按照规定的步骤完成初始化。在初始化的过程中

主要是对其模式寄存器的值进行配置来完成CAS

延迟、突发

长度、突发类型、输出驱动能力、片上端接电阻(0DT)

值、伴随

CAS

的附加延迟、片外驱动器校准等参数的配置,为之后的读

写操作做准备。

1.2 DDR2

的读写操作

DDR2

读写操作前需要对指定段的行进行激活,每个段

只允许打开1

行进行读写操作,如果要对同一段中的其他行

进行读写操作,则必须先用预充电命令关闭己经打开的行,

再用激活命令打开需要进行读写操作的行。实际上是锁定行

地址,再进行突发操作,对连续地址单元进行读写操作B]o

DDR2

可支持突发读写,突发读写长度为4

和8,

也称突发传

输,简化了 DDR2

的读写操作并提高了读写效率。

1.3 IP核

Altera

为用户提供了 DDR2

控制的两个IP,

—个是

DDR2 SDRAM Controller with UniPHY,

另一个为 DDR2 SDRAM

Controller with ALTMEMPHY

。DDR2 SDRAM Controller with

UniPHY

的性能比 DDR2 SDRAM Controller with ALTMEMPHY

ELECTRONIC

TEST设计研发

2021. 11

更好一些,两种IP

使用的方法是相同的,但UniPHY

不支持

Cyclone

系列的芯片,所以在Cyclone

系列的FPGA

上只能使

用 ALTMEMPHY IP

来实现 DDR2

2 DDR2 SDRAM控制器的设计

图1

为本方案的控制器总体结构框图,主要包括FPGA

DDR2 SDRAM,

其中FPGA

内部模块包括参数计算、输入FIFO

DDR2

控制器、输出FIFOo

图像数据缓存是通过FPGA

片内的

输入输出FIFO

资源与片外的DDR2 SDRAM

进行的,其中,各

个模块之间数据位宽不一致和数据传输速度不匹配的问题

可以由输入输出FIFO

解决,高速大容量的数据缓存可以借助

DDR2 SDRAM

来实现。

图1

系统总体结构框图

系统实现的过程如下:上电后对DDR2

存储器的模式寄

存器配置后进行初始化;在读取数据和写入数据时,实现存

储器能上下沿传输数据和突发传输的要求。在写入数据操作

时将待发送的数据和命令转换成符合存储器要求的写指令,

然后将数据写入存储器;在读取操作时先将读地址和数据长

度转换成存储器要求的读指令发送给存储器读出需要的数

据,然后从存储器将读出的数据发送给用户端。

在结构框图的基础上,本文进行了硬件和软件两个部分

的设计。硬件设计为FPGA

与DDR2

的信号连接,软件设计为以

veri log

语言为基础的FPGA

逻辑编程控制DDR2

的读写。

2. 1 DDR2 SDRAM

控制器的信号连接图

DDR2 SDRAM

控制器的信号连接图如图2

所示。

图2

信号连接图

在本方案中的设计的测试模块中有时钟输入信号CLK

和置位信号RST

。功能验证的部分包含初始化模块、读写控制

模块和数据传输模块的验证。

DDR2 SDRAM

与FPGA

开发板上的FPGA

相连的是BANK3

和BANK4

的10,

相连的硬件引脚具体为:系统时钟差分时

钟信号(CK

、CK#)

、时钟使能信号(CKE#)

、行列地址复用总线

(A[13 : 0])

、段地址选择线(BA[2 : 0])

、数据总线(DQ[15 :

0]

)、随路时钟信号(DQS)

、片选信号(CS#)

、行地址选通信号 (CAS#)

、列地址选通信号(RAS#)

、写使能信号(WE#)

、数据屏

蔽信号(DM)

和片内终端电阻控制线(0DT)

等[7]=

DDR2 SDRAM

的电平电压为1. 8V,

参考电压VREF

为电源

电压的一半。由于外部由5V

电源供电,所以采用MP1482

芯片

将外部的5V

电源电压转换成DDR2

需要的1. 8V

电压。具体电

路参考MP1482

使用手册,本文不再赘述。

DDR2

的硬件设计需要严格考虑信号完整性固,在电路设

计和PCB

设计的时候需要充分考虑匹配电阻/终端电阻、走

线阻抗控制和走线等长控制,保证DDR2

的高速稳定的工作。

2. 2 DDR2 SDRAM

控制器的逻辑设计

DDR2 SDRAM

控制器的主要功能是实现存储器芯片的初

始化、读写操作和数据传输,它将存储器复杂的读写时序隐

藏起来,转化成简单易行的操作,通过控制器,只需控制简

单的接口信号,就可以对存储器芯片进行读写操作。写入数

据的时候,只要控制写请求信号wr_burst_req

、写长度wr_

burst_len

、写地址 wr_burst_add

和写数据 wr_burst_data

同样,读数据的时候,只要控制读请求信号rd_burst_req

、读

长度rd_burst_len

、读地址rd_burst_add

、读数据有效rd_

burst data valid

和读数据rd_burst_datao

本设计的命令

参数是根据表1

的命令真值表和图3

的状态转换图进行逻辑

设计的。

表]DDR2 SDRAM

基本操作的命令真值表

基本操作CKECS#RAS#CAS#WE#

加载模式

HL

LL

L

自刷新

HL

LL

H

预充电

HL

LHL

激活

HL

LHH

写操作

HL

HL

L

读操作

HL

HL

H

空闲等待

HL

HHH

图3

的状态转换图显示了 DDR2 SDRAM

控制器把外部的

burst

读请求和写请求转化成DDR2 IP

接口的Local Bus

的所需的信号和时序的流程。具体的读和写流程如下:

Burst

读:当程序在IDLE

状态接收到读请求(rd_

burst_req

为高)时,会进入MEM READ

状态并发送Local

Bus

的读请求命令,读请求的长度为rd_burst_len

。发送

甲耳测

HI