关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 高速图像处理系统中DDR2-SDRAM接口的设计

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

作者:时间:2011-07-22来源:网络收藏

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

本文引用地址:http://www.eepw.com.cn/article/161777.htm

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 2 3 4 下一页

评论


相关推荐

技术专区

关闭