基于图像处理系统中SDRAM控制器的FPGA实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于图像处理系统中SDRAM控制器的FPGA实现微计算机信息摘要:简要介绍了SDRAM工作原理并认真研究了Altera提供的SDRAM控制器,根据实际系统使用需要加以修改简化,设计了对修改后控制器进行操作的状态机。采用全页突发读写模式,每次读/写后自动刷新,省掉了传统设计中的刷新计数控制逻辑。整个设计采用VHDL实现,已在实际系统中成功使用。广告插播信息维库最新热卖芯片:AD974ANSN75473PPKF4928ASIMC74VHC74DTR22SK1167LT1513IRSN75LV4737ABA6138TC5565APL-12MC100H6401、引言在实时视频图像处理系统中,由于要对视频图像进行实时处理,而视频数据流的数据量大,实时性要求高,所以需要高速大容量的存储器作为图像数据的缓存。SDRAM(SynchronousDynamicRAM,同步动态随机存取存储器)相比于SRAM(StaticRAM,静态随机存取存储器)等存储器具有容量大、速度快、体积小、价格低等优点,因此成为图像处理系统中常用的数据存储器。但SDRAM的控制逻辑比较复杂,对时序要求也十分严格,所以需要设计专门的SDRAM控制器以完成和SDRAM芯片的接口。本文在对Altera提供的SDRAM控制器IP核适当修改的基础上实现了对图1的图像处理系统中SDRAM的有效控制。在以上系统中,CameraLink接口的相机送出的高速LVDS视频信号经ChannelLink接收芯片DS90CR288接收转化为TTL电平后送给FPGA,再由通过FPGA实现的SDRAM控制器将有效像素数据写入SDRAM。另外,通过SDRAM将有效像素数据读入FPGA并实现对图像的处理算法后送视频编码芯片ADV7123进行D/A转换,显示。2、SDRAM的工作特性本系统中用到的是Hynix公司的HY57V283220-7型号的SDRAM芯片,其容量为128Mbit(4Banksx1Mx32Bit),下面将以它为例简要介绍SDRAM的主要工作特性。2.1主要管脚信号SDRAM芯片的主要管脚信号有控制信号,地址信号,数据信号,且以上信号的输入或输出均与工作时钟同步。控制信号主要有:片选信号(/CS),时钟使能信号(CKE),输入输出使能信号(DQM0~DQM3),读写控制命令字(/CAS、/RAS、/WE)。通过/CAS、/RAS、/WE的各种逻辑组合,可产生各种控制命令(见表1)。地址信号有:页地址选择信号(BA0、BA1),行、列地址选择信号(A0~A12)。通过分时复用决定地址是行地址还是列地址。在读写操作中,在地址线上依次给出页地址、行地址、列地址,最终确定存储单元地址。数据信号(DQ0~DQ31),双向数据信号,且有效与否受输入输出使能信号(DQM0~DQM3)控制。2.2主要操作命令要正确地对SDRAM进行操作,需要输入多种命令:包括模式寄存器设置、预充电、行激活、列读写、自动刷新、突发终止、空操作等命令。具体见下表。注:H表示高电平1,L表示低电平0,X表示电平为任意。2.3模式寄存器的设置不同于其他的存储器,在SDRAM芯片内部还有一个逻辑控制单元,并且有一个模式寄存器为其提供控制参数,每次上电后都要先对这个控制逻辑核心进行初始化。初始化过程中关键的阶段就是模式寄存器的设置。通过模式寄存器设置命令对模式寄存器进行编程,这组信息将会一直保存在模式寄存器中,直到他再次被编程或器件掉电为止;他规定了SDRAM的操作模式包括:突发长度(BurstLength)、突发类型(BurstType)、CAS潜伏期(CASLatency)、运行模式(OperateMode)及写突发模式(WriteBurst)。具体格式如表2所示。具体设置值及其意义请参见有关资料和所使用SDRAM的芯片资料,这里不再详述。3.SDRAM控制器的实现3.1Altera发布的SDRAM控制器简介Altera公司提供了对SDRAM进行控制的控制器,简化了对SDRAM的控制。此设计的框图如图2所示。从图2中可以看出,SDRAM控制器由4个模块组成:SDRAM控制器模块,控制接口模块,命令模块和数据通道模块。SDRAM控制器模块是顶层模块,例化3个低等级模块,将其连成一个整体。控制接口模块从外部接收命令和相关的存储地址,同时对命令解码后传送给命令模块,命令模块从控制接口模块接收命令和地址,生成合适的命令给SDRAM器件,数据通路模块处理读写命令时的数据传输操作。可以看出,通过使用Altera的控制器,屏蔽了大部分复杂的时序,大大简化了对SDRAM的控制。详细的介绍请参看Altera发布的有关文档。该控制器属通用控制器,功能全面,支持突发长度为1,2,4,8的突发读写模式且读写后控制器内部自动预充电,内部自动刷新;也支持全页突发读写模式但是读写后不自动预充电,不支持内部自动刷新,需要通过CMD[2:0]发送预充电命令和刷新命令。由于在本文所涉及的系统中,SDRAM用于图像的缓存,希望每次读写能够针对一行进行,所以采用全页突发模式,根据需要简化了控制器的逻辑,节约了资源。3.2本系统对SDRAM控制的具体实现要想实现对SDRAM的高速读写仅仅有控制器是不够的。控制器的功能是简化接口,它并不直接提供对SDRAM进行读写的功能。要真正实现对SDRAM的读写,关键的技术在于如何设计合理高效的状态机。下文将对本文所设计的状态机做详细介绍。本文的设计包括四个状态机。一个主状态机,一个初始化状态机,一个读状态机,一个写状态机。1)系统上电复位后首先进入初始化状态机:先后发出的命令有nop1-precharge-precharge_nop-refresh1-refresh1_nop-refreh2-refresh2_nop-load_mode-load_mode_nop-load_reg2-load_reg2_nop-load_reg1-load_reg1_nop-nop2(注:以上带有nop的命令均指nop命令,下同),初始化完成后该状态机的状态就一直停留在nop2,它是一个独立的状态机,不需要特别的控制信号。2)主状态机用来控制读写状态机的转换(如图3)。其中read和write各代表一个状态机。写状态机的工作过程如下:首先在FPGA里开一个容量大小为一行的FIFO,当FIFO为读空的时候相机输出的每行有效像素数据进入FIFO,当该行数据全部进入FIFO且相机进入消隐后,开始执行读状态机,读空FIFO里的数据存入SDRAM里指定的位置,且读空后发送一个突发停止命令,发送一个预充电命令,最后发送一个刷新命令以保持SDRAM的数据。需要注意的是,这里的precharge1经控制器解码后给SDRAM的是突发停止命令,precharge2解码后得到的才是预充电命令。该状态机先后发出的命令有nop1-write-write_nop-precharge1-precharge1_nop-precharge2-precharge2_nop-refresh-refresh_nop-nop2。读状态机与写状态机的操作类似,这里不再赘述。4.结论本设计针对系统的具体使用需要对Altera提供的SDRSDRAM控制器进行简化修改,采用全页突发读写模式,每次读写完后进行自动刷新,因此不需要设计专门的刷新计数器来控制刷新命令,进一步简化了设计,速度上能够达到实际应用要求。在StratixII系列FPGAEP2S15F672C5上已经成功得以实现,经SDRAM的缓存能够正确显示从相机出来的图像,完成了上述图像处理板的关键设计,为整个项目的顺利完成创造了一定的经济效益。本文创新点:采用全页突发读写模式,加快了读写速度;状态转移简单可行,不需要专门的刷新控制逻辑。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功