SDRAM控制器的设备与VHDL实现
时间:09-03
来源:互联网
点击:
在高速实时或者非实时信号处理系统当中,使用大容量存储器实现数据缓存是一个必不可少的环节,也是系统实现中的重点和难点之一。SDRAM(同步动态随机访问存储器)具有价格低廉、密度高、数据读写速度快的优点,从而成为数据缓存的首选存储介制裁。但是SDRAM存储体结构与RAM有较大差异,其控制时序和机制也较复杂,限制了SDRAM的使用。目前,虽然一些能家长微处理器提供了和SDRAM的透明接口,但其可扩展性和灵活性不够,难以满足现实系统的要求,限制了SDRAM的使用。
在详细阐读SDRAM数据文档的前提下,参考ALTERA公司的IP core,利用可编程器件(CPLD,FPGA)设计了一种通用的SDRAM控制器。它具有很高的灵活性,可以方便地和其它数据采集分析系统中,如图1所示。在该系统中,以SDRAM存储阵列缓存中频来的高速数据。存满后,数据被慢速读出至数据处理模块。下面将对SDRAM控制模块的设计进行详细的描述。
1 SDRAM内存条的结构
SDRAM内存条由SDRAM内存芯片构成,根据内存条的容量大小决定内存条上内存芯片的个数。现以MICRON公司生产的TIM16LSDT6464A型SDRAM内存条为例,简要介绍SDRAM的结构。
MIT16LSDT6464A内存条容量为512M Byte,由16片容量为32M Byte的内存芯片MT46LC32M8A2构成。16片内存芯片被分为两级,每个芯片的数据位宽为8bit。8片一组,64bit数据宽度。每个内存芯片的数据线和控制均是复用的。对内存条的读写操作,是以内存芯片组为单位的,通过内存条的片选信号S0、S1、S2、S3决定组号。S0、S2控制芯片组1,S1、S3控制芯片组2。
SDRAM内存芯片的主要信号有控制信号、控制信号、数据信号,均为工作时钟同步输入、输出信号。
控制信号主要有:CS(片选信号),CKE(时钟使能信号),DQM(输入、输出使能信号),CAS、RAS、WE(读写控制命令字)。通过CAS、RAS、WE的各种逻辑组合,可产生各种控制命令。
地址信号有:BA0和BA1页地址选择信号,A0~A12地址信号,行、列地址选择信号。通过分时复用决定地址是行地址还是列地址。在读写操作中,在地线上依次给出页地址、行地址、列地址,最终确定存储单元地址。
数据信号有:DQ0~DQ7,双向数据。其使能受DQM控制。
SDRAM的工作模式通过LOAD MODE REGISTER命令对工作模式寄存器进行设置来选择。设置参量有Reserved(备用的人)Write Burst Mode(WB,写突发模式)、Operation Mode(Op Mode,工作模式)、CAS Latency(CAS延迟)、Burst Type(BT,突发类型)、Burst Length(突发长度)。
2 SDRAM的基本读写操作
SDRAM的基本读操作需要控制线和地址线相配合地发出一系列命令来完成。先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。BANK激活命令后必须等待大于tRCD(SDRAM的RAS到CAS的延迟指标)时间后,发出读命令字。CL(CAS延迟值)个工作时钟后,读出数据依次出现在数据总线上。在读操作的最后,要向SDRAM发出预充电(PRECHARGE)命令,以关闭已经激活的页。等待tRP时间(PRECHARGE)命令,以关闭已经激活的页。等待tRP时间(PRECHAREG命令后,相隔tRP时间,才可再次访问该行)后,可以开始下一次的读、写操作。SDRAM的读操作只有突发模式(Burst Mode),突发长度为1、2、4、8可选。
SDRAM的基本写操作也需要控制线和地址线相配合地发出一系列命令来完成。先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。BANK激活命令后必须等待大于tRCD的时间后,发出写命令字。写命令可以立即写入,需写入数据依次送到DQ(数据线)上。在最后一个数据写入后延迟tWR时间。发出预充电命令,关闭已经激活的页。等待tRP时间后,可以展开下一次操作。写操作可以有突发写和非突发写两种。突发长度同读操作。
tRCD、tRP、tWR的具体要求,详见SDRAM厂家提供的数据手册。所等待的工作时钟个数由tRCD、tRP、tWR的最小值和工作时钟周期共同决定。
在详细阐读SDRAM数据文档的前提下,参考ALTERA公司的IP core,利用可编程器件(CPLD,FPGA)设计了一种通用的SDRAM控制器。它具有很高的灵活性,可以方便地和其它数据采集分析系统中,如图1所示。在该系统中,以SDRAM存储阵列缓存中频来的高速数据。存满后,数据被慢速读出至数据处理模块。下面将对SDRAM控制模块的设计进行详细的描述。
|
1 SDRAM内存条的结构
SDRAM内存条由SDRAM内存芯片构成,根据内存条的容量大小决定内存条上内存芯片的个数。现以MICRON公司生产的TIM16LSDT6464A型SDRAM内存条为例,简要介绍SDRAM的结构。
MIT16LSDT6464A内存条容量为512M Byte,由16片容量为32M Byte的内存芯片MT46LC32M8A2构成。16片内存芯片被分为两级,每个芯片的数据位宽为8bit。8片一组,64bit数据宽度。每个内存芯片的数据线和控制均是复用的。对内存条的读写操作,是以内存芯片组为单位的,通过内存条的片选信号S0、S1、S2、S3决定组号。S0、S2控制芯片组1,S1、S3控制芯片组2。
SDRAM内存芯片的主要信号有控制信号、控制信号、数据信号,均为工作时钟同步输入、输出信号。
控制信号主要有:CS(片选信号),CKE(时钟使能信号),DQM(输入、输出使能信号),CAS、RAS、WE(读写控制命令字)。通过CAS、RAS、WE的各种逻辑组合,可产生各种控制命令。
地址信号有:BA0和BA1页地址选择信号,A0~A12地址信号,行、列地址选择信号。通过分时复用决定地址是行地址还是列地址。在读写操作中,在地线上依次给出页地址、行地址、列地址,最终确定存储单元地址。
|
数据信号有:DQ0~DQ7,双向数据。其使能受DQM控制。
SDRAM的工作模式通过LOAD MODE REGISTER命令对工作模式寄存器进行设置来选择。设置参量有Reserved(备用的人)Write Burst Mode(WB,写突发模式)、Operation Mode(Op Mode,工作模式)、CAS Latency(CAS延迟)、Burst Type(BT,突发类型)、Burst Length(突发长度)。
2 SDRAM的基本读写操作
SDRAM的基本读操作需要控制线和地址线相配合地发出一系列命令来完成。先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。BANK激活命令后必须等待大于tRCD(SDRAM的RAS到CAS的延迟指标)时间后,发出读命令字。CL(CAS延迟值)个工作时钟后,读出数据依次出现在数据总线上。在读操作的最后,要向SDRAM发出预充电(PRECHARGE)命令,以关闭已经激活的页。等待tRP时间(PRECHARGE)命令,以关闭已经激活的页。等待tRP时间(PRECHAREG命令后,相隔tRP时间,才可再次访问该行)后,可以开始下一次的读、写操作。SDRAM的读操作只有突发模式(Burst Mode),突发长度为1、2、4、8可选。
SDRAM的基本写操作也需要控制线和地址线相配合地发出一系列命令来完成。先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。BANK激活命令后必须等待大于tRCD的时间后,发出写命令字。写命令可以立即写入,需写入数据依次送到DQ(数据线)上。在最后一个数据写入后延迟tWR时间。发出预充电命令,关闭已经激活的页。等待tRP时间后,可以展开下一次操作。写操作可以有突发写和非突发写两种。突发长度同读操作。
tRCD、tRP、tWR的具体要求,详见SDRAM厂家提供的数据手册。所等待的工作时钟个数由tRCD、tRP、tWR的最小值和工作时钟周期共同决定。
LTE CPLD FPGA 总线 电容 电流 电路 VHDL DAC Quartus 仿真 相关文章:
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 验证FPGA设计:模拟,仿真,还是碰运气?(08-04)
- 学习FPGA绝佳网站推荐!!!(05-23)
- 智能命令行设计及其在 SOPC 系统中的应用(08-14)
- 我的FPGA学习历程(05-23)
- 在FPGA中实现源同步LVDS接收正确字对齐(05-01)