高速图像处理系统中DDR2-SDRAM接口的设计

2011-08-16 17:23:41来源: 山西电子技术
   

摘要:为了满足高速图像处理系统中需要高接口带宽和大容量存储的目的,采用了FPGA外接DDR2-SDRAM的设计方法,提出一种基于VHDL语言的DDR2-SDRAM控制器的方案,针对高速图像处理系统中的具体情况,在Xilinx的ML506开发板上搭建了简单的图像处理系统平台并进行了连续读/写标准VGA格式图像数据的实验,在显示端得到了清晰不掉帧的图像结果,具有结构简单和高速存取图像的特点。
关键词:图像处理;DDR2-SDRAM控制器;FPGA;缓存设计

0 引言
    随着电子信息技术的快速发展,数字信号处理技术的应用越来越广泛,一般而言,同属于数字信号处理的图像系统处理带宽远高于控制及雷达信号处理系统。控制领域的信号采样频率一般低于1 MHz,雷达信号采样频率可以高达几百MHz,但经过硬件(ASIC)下变频处理后,也不高于1 MHz。而图像系统的处理带宽一般在几十兆至几百兆字节每秒。所以高处理带宽是图像处理系统设计中必须考虑的问题,高处理带宽带来的另外一个问题是缓存设计,显然系统中的缓存也应该具有较高带宽。同时在图像处理系统中,特别是高帧频图像处理系统中是需要大容量缓存的。控制及雷达领域一般需要的缓存为几KB到几十KB,而图像处理至少需要2帧图像以实现乒乓缓存,在图像处理时间超过帧获取时间时,需要3帧缓存以保证系统累积丢帧而非一旦超时就发生丢帧。


    在实际工作中,高帧频图像的高处理带宽和大存储需求往往需要结合起来考虑,集中体现在外挂缓存的选择与设计上,较成熟的方案有SRAM,SDRAM,DDR,DDR2,DDR3等,其中DDR3有最高接口带宽和存储深度,考虑到具体情况,选用仅次于DDR3的DDR2与FPGA实现接口,可以满足高速图像处理系统对高接口带宽和大容量存储的要求。
    DDR2 SDRAM是由JEDEC(电子设备工程联合委员会)进行开发的内存技术标准,工作电压是1.8 V,采用了在时钟的上升/下降沿同时进行数据传输的基本方式。DDR2具有4 b预读取速度,即DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,同时DDR2的数据传输可以支持400 MHz,533 MHz,667 MHz的传输率。
    文中在介绍DDR2的工作原理的基础上,给出了一个用VHDL语言设计的DDR2 SDRAM控制器的方法,并且提出了一种在高速图像处理系统中DDR2 SDRAM的应用方案,同时在Virtex-5系列的FPGA上得到了实现。

1 DDR2-SDRAM控制器的操作原理与设计
1.1 DDR2-SDRAM的操作原理
    DDR2 SDRAM是运用DDR结构来达到高速操作。本文采用的DDR2-SDRAM是Micron的MT4H3264HY-53ED3。这款DDR2的存储空间为256 MB,由4片容量为512 Mb的内存芯片构成。每个芯片的数据位宽为16 b,有4 bank,13条行地址线,10条列地址线,因此每个内存芯片容量为8 192×
1 024×4×16 b,即512 Mb。4片组成起来就构成了MT4H3264HY-53ED3的64 b位宽。
    DDR2 SDRAM的操作主要通过以下控制信号给出:行地址选择信号(b.JPG),列地址选择信号(c.JPG),写使能信号(d.JPG),时针使能信号(CKE),片选择信号(e.JPG)。各种指令不同的组合方式完成不同的功能。表1为各种指令完成的组合方式。

f.JPG


1.1.1 Load Mode指令
    用来配置DDR2内存的模式寄存器,包括一个主模式寄存器及3个扩展模式寄存器,它们被用来设定内存的工作方式,包括突发长度的选择、突发的类型、CAS延迟、CAS附加延迟、DLL使能、ODT设置、OCD设置以及DQS设置等。
1.1.2 Precharge指令
    预充电指令是用来重新激活bank中已经打开的行。在预充电指令发出后,当前bank必须等待一个特定的时间(tRP)后才可以再次激活。
1.1.3 自动刷新指令
    DDR2 SDRAM内存需要每7.8μs刷新一次。自动刷新不需要外部提供行地址信息,DDR2 SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中所有的存储体进行,所以无需列地址。在进入自动刷新模式前,所有的bank必须都处于预充电状态,自动刷新指令在预充电指令后延迟tRP才能给出。
1.1.4 Active指令
    Active用来激活bank中的某一行。在对DDR2内存进行读/写之前,都必须执行该指令把bank中的某一行激活。激活命令到读/写命令之间的最小延迟由AL决定,当AL为0时,最小延迟由tRCD(RAS to CAS delay)决定。当AL不为0时,激活命令到读/写命令之间的最小延迟就可以不受tRCD限制,读/写命令可以提前,但其实最后数据的读/写并不提前,这样可以提高总线的利用率。
    需要注意的是,当要激活同一bank中不同的行时,必须先对原来激活的行进行预充电,才能激活新的行。同一bank中连续的active命令之间的间隔必须受tRC(RAS cycle time)的控制。
1.1.5 Read指令
    读指令是用来对DDR2内存进行读操作,并对突发读进行初始化。其中BA0和BA1给出bank地址,A0~A1给出起始列地址。突发读结束后,激活的行在预充之前继续保持有效,直到该行被预充电。从列选择到数据输出的延迟为CAS延迟(CL),整个读延迟等于AL+CL。读操作时由内存给出一个与数据同步的数据滤波信号DQS,它的边沿与读取的数据边沿对齐。
1.1.6 Write指令
    Write指令用来控制DDR2内存进行写操作,并给出burst写的起始地址。其中BA0和BA1给出bank地址,A0~A1给出起始列地址。整个写延迟为读延迟减去一个时钟周期,即写延迟等于AL+CL-1。写操作时,控制器同样给出一个与数据同步的数据滤波信号DQS,它的边沿与写数据的中间对齐。
1.1.7 Idle指令
    用来使DDR2内存处于空闲无操作状态。
1.2 DDR2-SDRAM控制器的设计
    本文中的DDR2 SDRAM控制器是采用VHDL硬件描述语言设计的,主要由4部分组成:用户界面模块(User Interface)、基础模块(infrast-ructure)、物理层模块(Physical layer)和存储控制模块(Controller)。DDR2-SDRAM控制器的设计原理框图如图1所示。

g.JPG

[1] [2]

关键字:DDR2SDRAM  高速图像处理

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2011/0816/article_2403.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
DDR2SDRAM
高速图像处理

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved