电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章FPGASDRAM控制器的设备与VHDL实现

SDRAM控制器的设备与VHDL实现

11-20 16:13:05 | http://www.5idzw.com | FPGA | 人气:137
标签:fpga是什么,fpga教程,fpga培训,http://www.5idzw.com SDRAM控制器的设备与VHDL实现,http://www.5idzw.com

DATAIN为写入数据端口,64bit位宽。

DATAOUT为读出数据端口,64bit位宽。

RD_OE为读出数据使能端口,当其为1时,表示从下一个时钟起,数据将依次出现在DATAOUT口上。

WR_OE为写入数据使能端口,当其为1时,写入数据应该依次出现在DATAIN口上。

CMD[2:0]为命令输入端口,分别表示读、写内存等待操作。其中,CMD=“000”表示无操作,内存条交给控制器管理,定其完成刷新工作;REFRESH命令由外部逻辑指定特刷新的内存芯片信号,组号由ADDR的低位给出;LOAD_MODE命令执行内存条工作寄存器初始化工作,初始化值由DATAIN的低13位决定,内存芯片组号同样由ADDR的低位给出;同理,ADDR的低位也决定了预充电操作所对应的内存芯片组号。

CMDACK为命令应答端口,表示命令已经被执行,使外部逻辑可以向控制器发出下一个动作。

4.2 状态机

图3是SDRAM控制器的状态转移图。状态图中的各个状态内均包含一系列的子状态转移(对SDRAM内存条发出连续命令),每个子状态完成一个功能操作。初始化操作包括前面介绍的内存条初始化全过程,工作寄存器的默认值在VHDL程序中指定。以后可以通过LOAD_MODE命令改变内存条的工作模式。初始化结束后,内存条进入Idel状态,刷新计数器开始工作,控制器开始响应外部逻辑的操作请求。

刷新计数器操作是一个独立的进程(process)。刷新计数器的初值由内存芯片要求、内存条个数和控制器工作频率共同决定。例如,在本次设计中,所采用的MT48LC32M8A2内存芯片要求在64ms内夏至少刷新8196次。而MIT16LSDT6464A型内存条共有两组内存芯片,也就是要求在64ms内要发出8196×2条自刷新(AUTO REFRESH)指令。系统工作时钟为46.66MHz,因此控制单条MIT16LSDT6464A时,刷新计数器初值至多为(64ms/8196/2)×6、、46.66MHz,即182。开始工作后,每当刷新计数器值减为0,便依次向内存芯片组发出刷新命令,保证SDRAM中的数据不丢失。刷新请求是内存请求;读和写操作是外部请求。在Idel状态中有请求仲裁逻辑,当内部和外部请求同时出现时,优先保证内部请求,状态转移至刷新操作。当刷新操作结束时,重新返回Idel状态,开始响应外部请求。响应外部请求后,应答信号CMDBAK出现正脉冲。它通知外部逻辑,请求已经被响应,可以撤销请求。在刷新操作状态中,也有许数器计数,其大小等于控制器管理的内存芯片信号。记录并判断此次刷新操作所对应的内存芯片的组号,产生相应的片选信号。


图5


响应读、写请求后,状态从Idel转移到读、写状态。同时读、写地址和写入的数据锁存至控制器。控制器由读写地址解析出CS信号、页地址、行地址、列地址。向内存条发出一系列命令(ACTIVE,READ/WRITE with AUTO PRECHARGE),完成读写操作,为了简化,此控制器向SDRAM发出的都是带有AUTO PRECHARGE的读、写指令,然后由SDRAM内部逻辑自动在读、写过程末期发出PRECHARGE指令(在发READ/WRITE指令时,地址线A10赋值1,打开AUTO PRECHARGE功能)。图4和图5分别是利用该控制器完成读、写操作的时序图。读操作的CAS延迟为两个时钟。

该SDRAM控制器在中频数据海量存储系统中已得到应用。数据接收逻辑将接收到的中频采样数据整理后(拼接成64bit),通过SDRAM控制器存入SDRAM阵列。存满后,数据输出逻辑将中频数据通过SDRAM控制器从内存条中取出,传输至上位机。其VHDL代码在ATERA公司的FPGA——EP1C6Q240中通过了Quartus II的仿真、综合和布局、布线。占用499个logic cellk,消耗了8%的逻辑资源。留有丰富的资源可提供给其它逻辑单元使用。

上面介绍了SDRAM的基本工作原理和一种简单的通用SDRAM控制器的实现。SDRAM的控制机制比较复杂,具有多种突发读、写方式和工作模式(详细内容请参考SDRAM的数据手册)。但是,可以根据实现应用,实现其中的一个子集(基本读、写、刷新操作)来满足实际系统的需要。用SDRAM实现大容量的高速数据缓存具有明显的优势,使用可编程器件实现SDRAM控制器则使之具有更高的灵活性,其应用前景广阔。

上一页  [1] [2] 

,SDRAM控制器的设备与VHDL实现
关于《SDRAM控制器的设备与VHDL实现》的更多文章