



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高速图像处理系统中DDR2-SDRAM接口的设计 (1)2011-08-16 17:23:41 来源:山西电子技术 关键字:DDR2SDRAM 高速图像处理 摘要:为了满足高速图像处理系统中需要高接口带宽和大容量存储的目的,采用了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(电子设备工程联合委员会)进行开发的内存技术标准,工作电压是18 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控制器的操作原理与设计11 DDR2-SDRAM的操作原理 DDR2 SDRAM是运用DDR结构来达到高速操作。本文采用的DDR2-SDRAM是Micron的MT4H3264HY-53ED3。这款DDR2的存储空间为256 MB,由4片容量为512 Mb的内存芯片构成。每个芯片的数据位宽为16 b,有4 bank,13条行地址线,10条列地址线,因此每个内存芯片容量为8 1921 024416 b,即512 Mb。4片组成起来就构成了MT4H3264HY-53ED3的64 b位宽。 DDR2 SDRAM的操作主要通过以下控制信号给出:行地址选择信号(),列地址选择信号(),写使能信号(),时针使能信号(CKE),片选择信号()。各种指令不同的组合方式完成不同的功能。表1为各种指令完成的组合方式。111 Load Mode指令 用来配置DDR2内存的模式寄存器,包括一个主模式寄存器及3个扩展模式寄存器,它们被用来设定内存的工作方式,包括突发长度的选择、突发的类型、CAS延迟、CAS附加延迟、DLL使能、ODT设置、OCD设置以及DQS设置等。112 Precharge指令 预充电指令是用来重新激活bank中已经打开的行。在预充电指令发出后,当前bank必须等待一个特定的时间(tRP)后才可以再次激活。113 自动刷新指令 DDR2 SDRAM内存需要每78s刷新一次。自动刷新不需要外部提供行地址信息,DDR2 SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中所有的存储体进行,所以无需列地址。在进入自动刷新模式前,所有的bank必须都处于预充电状态,自动刷新指令在预充电指令后延迟tRP才能给出。114 Active指令 Active用来激活bank中的某一行。在对DDR2内存进行读写之前,都必须执行该指令把bank中的某一行激活。激活命令到读写命令之间的最小延迟由AL决定,当AL为0时,最小延迟由tRCD(RAS to CAS delay)决定。当AL不为0时,激活命令到读写命令之间的最小延迟就可以不受tRCD限制,读写命令可以提前,但其实最后数据的读写并不提前,这样可以提高总线的利用率。 需要注意的是,当要激活同一bank中不同的行时,必须先对原来激活的行进行预充电,才能激活新的行。同一bank中连续的active命令之间的间隔必须受tRC(RAS cycle time)的控制。115 Read指令 读指令是用来对DDR2内存进行读操作,并对突发读进行初始化。其中BA0和BA1给出bank地址,A0A1给出起始列地址。突发读结束后,激活的行在预充之前继续保持有效,直到该行被预充电。从列选择到数据输出的延迟为CAS延迟(CL),整个读延迟等于AL+CL。读操作时由内存给出一个与数据同步的数据滤波信号DQS,它的边沿与读取的数据边沿对齐。116 Write指令 Write指令用来控制DDR2内存进行写操作,并给出burst写的起始地址。其中BA0和BA1给出bank地址,A0A1给出起始列地址。整个写延迟为读延迟减去一个时钟周期,即写延迟等于AL+CL-1。写操作时,控制器同样给出一个与数据同步的数据滤波信号DQS,它的边沿与写数据的中间对齐。117 Idle指令 用来使DDR2内存处于空闲无操作状态。12 DDR2-SDRAM控制器的设计 本文中的DDR2 SDRAM控制器是采用VHDL硬件描述语言设计的,主要由4部分组成:用户界面模块(User Interface)、基础模块(infrast-ructure)、物理层模块(Physical layer)和存储控制模块(Controller)。DDR2-SDRAM控制器的设计原理框图如图1所示。(本文转自电子工程世界:/FPGA/2011/0816/article_2403.html)时钟生成模块用来产生控制器中所有模块的时钟信号。外部用户时钟通过数字时钟管理器(DCM)进行处理后,输出0度和90度的时钟。同时该包括了一个延迟校准模块,是用来校准读数据(DQ)对读数据选通脉冲(DQS)的延迟,以便DQS的边沿能正确对齐DQ有效窗口的中间位置。用户接口模块主要包括读写数据和地址三类FIFO,用来接收和存储用户的数据,命令和地址等信息,起到缓冲和同步数据的作用。控制器模块生成该模块所需要的控制信号。 物理层模块负责在控制信号的约束下完成用户访问地址与访问指令的解释与匹配,产生DDR2 SDRAM所需的控制指令信号,并保证指令与地址,数据的同步和信号的维持。 控制模块主要实现的功能为:在系统上电过程及系统意外复位发生时,与初始化模块配合,对控制器和所控制的DDR2进行初始化设置,复位延时保护等:在系统正常工作时,进行系统读写请求指令的接收、应答,对系统访问地址的采样与同步,完成所需的所有状态转换、任务调度、总线仲裁、时序同步,并为用户接口模块、物理层模块产生相应的控制信号,为系统提供控制器状态指示信号。控制器的状态机结构如图2所示。 2 图像处理系统中DDR2接口的设计 DDR2作为整个图像处理系统的缓存,起着至关重要的作用。它将外部输入的图像按帧存入DDR2中,然后按帧将图像数据送到外部继续处理。基于单片FPGA的控制逻辑所需要完成的功能可以简单的概述如下: (1)接收来自外部的图像数据,并进行缓冲和数据重排,产生符合DDR2-SDRAM控制器位宽的数据信号。 (2)产生对DDR2-SDRAM的读写命令和地址,并将它们寄存在FIFO中,随时供DDR2控制器提取,因此系统需要一个地址产生逻辑。 (3)对DDR2-SDRAM进行直接控制,将用户产生的地址命令进行解析,产生读写、刷新等一系列操作,对DDR2-SDRAM发出的各种命令要符合特定的时序要求。在上电的时候还必须完成对DDR2-SDRAM的初始化工作。 (4)建立用户与DDR2-SDRAM的数据通道,在DDR2-SDRAM和用户接口之间传递需要写入或者读出的数据,并且调整对应读写操作的DQS信号时序,使其满足DDR2-SDRAM的要求。 (5)缓存从DDR2-SDRAM中读出的数据,由于直接读出的速度非常高,直接处理会对后端产生很大的压力,因此需要进行缓存之后才送到后续处理。 由上面的描述可以看出,控制逻辑所要完成的功能是相当复杂的,因此我们采用模块化的设计方案。FPGA的控制逻辑功能划分图如图3所示。21 时钟生成模块 时钟生成模块主要负责整个系统的所有时钟,包括DDR2控制器所需要的时钟,外部图像所需的时钟。全部由DCM来产生。22 数据接口模块 数据接口模块主要是负责不同数据之间格式的转换,这个模块主要是考虑到输入端的数据的不同格式,必须经过格式转换才能符合DDR2位宽的数据。23 输入输出缓存模块 输入输出缓存模块是采用V5器件的DRAM来实现FIFO的,输入缓存是由两个DRAM来完成的,DRAM配置为121 024,12为数据宽度,1 024为存储深度,这个配置是根据具体图像的位宽和每行的像素点来设定的。在这里暂定的图像源是标准的VGA图像,其大小为800600。数据源每写入一行数据(800个数),然后读出一行数据。考虑到系统的稳定性,采用两个FIFO交替的读写数据,也就是所谓的乒乓操作,如图4所示,当一个FIFO在读时,另一个FIFO就写,然后交替读写。在每一个FIFO读完数据后,对其清零。这样就保证每一次写入的数据不相互干扰,保证了系统的稳定性。其中的输入输出选择单元是通过判断VGA图像的行数来判断写和读哪个FIFO的。 除了缓存数据,FIFO在本模块的另一个重要的作用就是时钟域的转换。外部的输入数据和输出数据的时钟都是40 MHz,而DDR2的读写数据时钟是100 MHz的,这样就存在着时钟域的转换问题,由于FIFO的读写可以用不同的时钟。在输入端,就可以用40 MHz的时钟把数据写入FIFO,然后用100 MHz的时钟从FIFO读出数据。在输出端可以用100 MHz的时钟把从DDR2读出的数据送入FIFO,然后再用40 MHz的时钟从FI-FO中读出数据,送到VGA显示。但是由于读入与写出的时钟频率不一样,很容易出现FIFO读空和写满的问题。该问题的一般解决方法是利用FIFO的ALMOSTFULL和ALMOSTEMPTY来解决。在这个系统中,考虑到输入的数据源和VGA显示的时钟频率都是40 MHz,所以采用VGA数据有效信号来控制FIFO的写,行消隐信号来控制输入FIFO的读,即每来一行数据才读一行数据,这样就保证了输入FIFO不会读空。而输出FIFO的写是通过DDR2内部的读数据有效位来控制的,因为DDR2内部的操作是写1行,读1行,所以在写入FIFO一行数据后,要等到下一行到来后,才会往输出FIFO写入数据,所以也就解决了输出FIFO写满的问题。24 DDR2-SDRAM控制模块 DDR2-SDRAM的读写控制是整个系统的关键。由于要缓存图像,所以就必须在DDR2里面开辟两个大小相同的存储单元。这两个存储单元的大小是根据一帧图像的大小来开辟的,其大小为800600个存储单元。对DDR2的存储操作为先向第一个存储单元写入第一行数据,读出第二个存储单元的第一行数据。当写满第一个存储单片后,第二个存储单元也被读空,这时候交换读写地址,读一个存储单元,写第二个存储单元,依次轮换。 由于图像数据具有消隐时间,我们可以在场消隐的这段时间里来交换读写地址。读写控制的具体操作如图5所示。3 实验结果 为了测试基于DDR2的图像存储性能,外部输入图像源选用标准VGA格式的图像,外部输出端接到DVI接口,DVI外接一般的CRT显示器。D-VI接口的显示芯片是CH7301,通过配置这个芯片的寄存器选择其VGA模式。配置这个芯片寄存器的操作是通过I2C总线来达到的。这里选用Xi-linx公司的Virtex-5器件与Micron公司的DDR2 SDRAM颗粒MT4H3264HY-53ED3搭建了实验的硬件平台。 在输入端的VGA数据源产生的图像为800600,帧频为60帧,底色为全黑,55个像素点的白色正方形图像,其中白色正方形每帧以50个像素点距离移动,在CRT显示端我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 22002-4:2025 EN Prerequisite programmes on food safety - Part 4: Food packaging manufacturing
- 【正版授权】 IEC 61293:1994 EN-D Marking of electrical equipment with ratings related to electrical supply - Safety requirements
- 校园性防侵害安全知识培训课件
- 校园安全知识培训课件讲话稿
- 校园安全知识培训课件简讯
- 函数高三试题及答案
- 法语时态试题及答案
- 校园保安消防知识培训课件
- 圆周运动试题及答案
- 公务员汉服试题及答案
- 人教版高中数学必修一《基本不等式》课件
- 中医培训课件:《气交灸的临床应用》
- TCCSAS 007-2020化工企业变更管理实施规范
- 个人劳动合同书范本
- T-CESA 1270.2-2023 信息技术 开源治理 第2部分:企业治理评估模型
- 软件对接方案
- 普通高中语文课程标准解读课件
- 有机化学第十版
- 肾功能不全患者合理用药课件
- 纤维支气管镜(可弯曲支气管镜)临床应用指南(草案)
- 一次调频综合指标计算及考核度量方法
评论
0/150
提交评论