1 SDRAM简介
1.1 SDRAM的特点
相对于其他存储器件,SDRAM具备以下特性。
(1)上电后必须通过一个初始化进程配置模式寄存器的值,以决定SDRAM的工作模式;
(2)基于三极管和电容的存储结构SDRAM决定了必须对其定时执行刷新操作,以免数据丢失;
(3)访问SDRAM时,先由Active命令激活要读写的Bank及行并锁存行址,然后在Read/Write命令有效时锁存列址。当访问当前Bank的其他行时,须先使用Pre-charge命令关闭当前行;
(4)SDRAM的内部操作由命令控制,CS_N,RAS_N,CAS_N和WE_N在时钟上升沿的状态决定了具体的操作,Bank及行列地址线在部分操作中作为辅助参数输入。
1.2 全页(Full-page)模式突发操作
进行大量数据读写时,全页突发模式是充分利用SDRAM性能,提高读写速度的良好选择。
激活Bank的某一行后即可对该行进行读写操作。
写入数据在发出写命令的当前时钟周期即可有效,因此写操作可以在单周期内完成;而读出数据将在发出读命令之后CL(CAS Latency)时钟周期才能输出到总线,即随机读取单个数据至少需要1+CL时钟周期。可见,随机读操作会大大降低系统效率。若采用全页突发方式,对于列宽度为n的SDRAM存储器,整页输出所需的总周期数为2n+CL,平均单个数据输出所需周期为(2n+CL)/2n△1,由此读操作延迟对系统效率的影响可降至最低。
2 SDRAM控制器设计
实际的实时红外热成像系统采用了ISSI公司生产的型号为IS42S16160B的SDRAM作为数据缓存,其存储单元组织结构为4 Bank×8 192行×512列×16位。
SDRAM控制器主要由时钟锁相环模块、初始化模块、刷新计数模块、数据通路模块、输入/输出FIFO模块、FIFO接口模块和主控制器模块组成,如图1所示。
在该SDRAM控制器中,片上时钟锁相环模块的作用是将输入时钟倍频为所需要的时钟,并根据电路板布局进行移相,以保证在时钟上升沿准确采样命令及数据。初始化模块负责产生规定了时间、顺序和个数的控制命令对SDRAM进行配置,并在进程结束后发出ini_end信号,以启动主控制器。刷新控制模块的作用是每隔最长7.812 5μs发出刷新请求信号ref_req,并接收主控制器发出的ref_ack信号重置刷新计数器。数据通路模块用于控制数据的有效输入/输出。
由于系统对控制器中读写操作的数据连续性要求很高,且读写速度比较低,而控制器对SDRAM中读写操作的数据连续性并无要求,且读写速度很高,因此需要使用异步FIFO作为输入/输出缓存。输入/输出FIFO的数据宽度为16 b,深度可视系统需要而定,但应大于一次读写的数据长度LENGTH。另外,为配合SDRAM的全页突发模式,并充分发挥SDRAM高速读写的特点,FIFO采用了乒乓操作的流水线结构。现以输入FIFO为例,当某个输入FIFO写满LENGTH数据时,主控制器从该输入FIFO读出数据写入SDRAM,同时系统向另一个输入FIFO写入数据。
FIFO接口模块的主要信号如图2所示。其作用是将FIFO的状态信号转换为主控制器的读写请求信号,并控制切换输入/输出的两个FIFO。以向SDRAM写入数据为例,若某个输入FIFO的写人数据个数标志信号in_wr_used与LENGTH相等,则向主控制器发出写SDRAM请求,并将该输入FIFO中的LENGTH数据一次写入SDRAM,同时控制系统向另一个输入FIFO写入数据。
SDRAM支持多种工作模式,将其全部包含在主控制器状态机中会大大增加设计难度,并降低运行速度。考虑到一些模式在实时图像处理系统中并不需要,所以对SDRAM主控制器韵状态进行了简化,如图3所示。