首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的DDR3 SDRAM控制器用户接口设计

基于FPGA的DDR3 SDRAM控制器用户接口设计

摘要:为了满足高速图像数据采集系统中对高带宽和大容量的要求,利用Virtex-7 系列FPGA 外接DDR3 SDRAM 的设计方法,提出了一种基于Verilog-HDL 语言的DDR3 SDRAM 控制器用户接口设计方案。该控制器用户接口已经在Xilinx 公司的VC707 开发板上通过了功能验证,并成功的被应用到高速图像数据采集系统中。含有该用户接口的控制器具有比一般的控制器接口带宽利用率高、可移植性强和成本低的优点,可以根据设计人员的需要被灵活地应用到不同的工程。
随着现代科学技术的高速发展,在工业生产和科学研究上,如卫星通信、高速图像处理等领域,普遍存在对数据进行高速大容量、实时性强和高带宽的处理要求[1,2]。高速数据采集系统作为各个系统中比较核心的部分,对数据处理的速度、实时性、稳定性以及功耗等要求都越来越高。
目前,在能够同时满足高带宽和大容量要求的存储器方案中,比较成熟的有DDR,DDR2,DDR3等,其中DDR3 具有更高的带宽和更低的功耗,因此成为高速实时数据存储系统设计中的首选方案[3]。由于DDR3 内存不能够直接识别处理器的访问请求,所以有必要通过设计一款控制器去控制DDR3的正常读写操作。
Virtex-7 系列FPGA 与Virtex-6 系列FPGA 相比,系统性能提高了一倍,功耗降低了一半,存储器带宽提升了2 倍,并且内有独特的IP核mig_v1. 7,可用来解决使用DDR3 存储器时的一些复杂问题。因此本文在介绍DDR3 的工作原理的基础上,结合IP 核MIG_v1. 7,给出了一种利用Verilog-HDL 语言设计DDR3-SDRAM 控制器用户接口的方法,并且提出了一种在高速图像数据采集系统中DDR3 存储器的应用方案,同时在Virtex-7 系列的FPGA 上实现。
1 DDR3-SDRAM 的技术特点
本文采用的DDR3-SDRAM 为Micron 公司的MT8JTF12864HZ-1G6G1 内存条。该DDR3 内存条的存储空间为1 GB,由8 片容量为128 MB 的内存芯片构成。每个芯片的数据位宽为8 位,行地址线复用14 根,列地址线复用10 根,Bank 数量为8 个,因此每个内存芯片的容量为16 384 × 1 024 × 8 × 8,即128 MB。8 片组成在一起就构成了MT8JTF12864HZ-1G6G1 的64 位数据位宽,容量为1 GB。
DDR3 的控制命令信号主要有芯片选择信号CS、行地址选择信号RAS、列地址选择信号CAS 和WE 写使能信号,DDR3 的各种操作指令实质上都是通过这四个信号的组合决定的,如表1 所示。其中H 表示高电平,L 表示低电平。

  

表1 DDR3-SDRAM 的操作指令

DDR3 的Mode Register 有四个,分别为MR0、MR1、MR2 和MR3,当四个控制命令信号均为低电平时,即可通过Bank 选择位对模式寄存器进行选择; Refresh 操作分为Auto Refresh 与Self Refresh 两种,其中不论是何种Refresh 方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作;DDR3 在进行读写操作时,内存会给出一个与数据同步的DQS 信号,用来在一个时钟周期内准确地区分出每个传输周期,提高了接收方接收数据的准确度。
与上一代存储器件相比,DDR3 的内存模式有了很大的改进: 逻辑Bank 数量由DDR2 的4 个增加为8 个; 突发长度增加为8 bit,任何突发中断操作都将在DDR3 内存中予以禁止,且不予支持; 取而代之的是更为灵活的突发传输控制; 其核心工作电压由DDR2 的1. 8 V 降至1. 5 V[4],能够在达到高带宽的同时,大幅度的降低其功耗; DDR3 采用FLY_BY 总线,参考电压分离,增加了ZQ 校准功能,从而大大的提高了存储信号的完整性; 并且DDR3 为绿色封装,不含任何有害物质,减少了对空气的污染。
2 DDR3-SDRAM控制器用户接口的设计
DDR3 控制器的设计采用了Xilinx 推出的IP 核MIG_v1. 7 + 用户接口模块的设计方法,其中本次设计主要是对用户接口模块进行阐述。图1 为DDR3控制器的总体实现方案。

  

图1 DDR3 控制器的总体实现方案

2. 1 用户接口模块的设计
用户接口模块为整个DDR3 控制器系统的核心模块,其中主要包括写数据通路和读数据通路两个部分,图2 为DDR3 控制器的用户接口设计的实现方案。

  

图2 DDR3 控制器的用户接口设计

在写数据通路的输入端,addr _ rdy、wr _ rdy 和init_done 为DDR3 IP 核反馈给写数据控制模块的信号, init_done 为高电平时指DDR3 已经完成初始化操作,addr_rdy 为高电平时表示DDR3 准备好接收写数据地址和写数据命令,wr_rdy 为高电平时表示DDR3 准备好接收写数据; wr_cmd 为写数据命令信号。在写数据通路的输出端,cmd_en 为输入到DDR3 IP 核的命令和地址的使能信号,wr_en 和wr_end 为输入到DDR3 IP 核的写数据控制信号,跟有效写数据信号对齐。
在用户接口的设计中采用back_to_back 的读写设计模式,将addr_rdy、cmd_en、cmd 和addr 作为地址总线,将wr_rdy、wr_en、wr_end 和wr_data 作为数据总线,两条总线是相互独立的,两个反馈信号addr_rdy 和wr_rdy 也是相对独立的。在写数据开始的时候,要保证地址总线提前数据总线一个周期使能,在addr_rdy 和wr_rdy 没有反压的理想情况下,写数据要比写地址和写命令推迟一个周期发出,当addr_rdy 和wr_rdy 有反压时,写数据和写地址可以不满足相差一个周期被发出的。
读数据通路与写数据通路的设计原理相似,其中rd_valid 为读数据有效信号, rd_data 为读数据信号。在读数据通路中将addr_rdy、cmd_en、cmd 和addr 作为地址总线,rd_valid 和rd_data 作为读数据总线。
继承事业,薪火相传
返回列表