基于图像处理系统中SDRAM控制器的FPGA实现摘要:简要介绍了SDRAM工作原理并认真研究了Altera提供的SDRAM控制器,根据实际系统使用需要加以修改简化,设计了对修改后控制器进行操作的状态机。采用全页突发读写模式,每次读/写后自动刷新,省掉了传统设计中的刷新计数控制逻辑。整个设计采用VHDL实现,已在实际系统中成功使用。
1、引言
在实时视频图像处理系统中,由于要对视频图像进行实时处理,而视频数据流的数据量大,实时性要求高,所以需要高速大容量的存储器作为图像数据的缓存。SDRAM(Synchronous Dynamic RAM,同步动态随机存取存储器)相比于SRAM(Static RAM,静态随机存取存储器)等存储器具有容量大、速度快、体积小、价格低等优点,因此成为图像处理系统中常用的数据存储器。但SDRAM的控制逻辑比较复杂,对时序要求也十分严格,所以需要设计专门的SDRAM控制器以完成和SDRAM芯片的接口。本文在对Altera提供的SDRAM控制器IP核适当修改的基础上实现了对图1的图像处理系统中SDRAM的有效控制。
在以上系统中,Camera Link接口的相机送出的高速 LVDS视频信号经 Channel Link接收芯片 DS90CR288接收转化为 TTL电平后送给FPGA,再由通过 FPGA实现的 SDRAM控制器将有效像素数据写入SDRAM。另外,通过 SDRAM将有效像素数据读入 FPGA并实现对图像的处理算法后送视频编码芯片 ADV7123进行 D/A转换,显示。
2、SDRAM的工作特性
本系统中用到的是Hynix公司的HY57V283220-7型号的SDRAM芯片,其容量为128Mbit( 4 Banks x 1M x 32Bit),下面将以它为例简要介绍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的操作模式包括:突发长度(Burst Length)、突发类型(Burst Type)、CAS潜伏期(CAS Latency)、运行模式(Operate Mode)及写突发模式(Write Burst)。具体格式如表2所示。
具体设置值及其意义请参见有关资料和所使用SDRAM的芯片资料,这里不再详述。
|