DDR SDRAM在嵌入式系统中的应用
- 格式:doc
- 大小:318.00 KB
- 文档页数:6
常见存储器:RAM,SRAM,SSRAM、DRAM,SDRAM,DDRSDRAM、ROM,。
1、什么是存储器 存储器单元实际上是时序逻辑电路的⼀种,是许多存储单元的集合,按单元号顺序排列。
每个单元由若⼲三进制位构成,以表⽰存储单元中存放的数值,这种结构和数组的结构⾮常相似,故在VHDL语⾔中,通常由数组描述存储器。
存储器(Memory)是计算机系统中的记忆设备,⽤来存放程序和数据信息。
计算机中全部信息,包括输⼊的原始数据、计算机程序、中间运⾏结果和最终运⾏结果都保存在存储器中。
它根据控制器指定的位置存⼊和取出信息。
有了存储器,计算机才有记忆功能,才能保证正常⼯作。
2、存储器的分类 构成存储器的存储介质主要采⽤半导体器件和磁性材料。
存储器中最⼩的存储单位就是⼀个双稳态半导体电路或⼀个CMOS晶体管或磁性材料的存储元,它可存储⼀个⼆进制代码。
由若⼲个存储元组成⼀个存储单元,然后再由许多存储单元组成⼀个存储器。
根据存储材料的性能及使⽤⽅法的不同,存储器有⼏种不同的分类⽅法: (1)按存储介质分类 半导体存储器:⽤半导体器件组成的存储器。
磁表⾯存储器:⽤磁性材料做成的存储器。
(2)按存储⽅式分类 随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置⽆关。
顺序存储器:只能按某种顺序来存取,存取时间与存储单元的物理位置有关。
(3)按存储器的读写功能分类 只读存储器(ROM):存储的内容是固定不变的,它是只能读出⽽不能写⼊的半导体存储器,在制造ROM的时候,信息(数据或程序)就被存⼊并永久保存。
当电源关闭时,ROM仍然可以保存数据,不会丢失。
ROM⼀般⽤于存放计算机的基本程序和数据,如BIOS ROM。
其物理外形⼀般是双列直插式(DIP)的集成块。
随机读写存储器(RAM):既能读出⼜能写⼊的半导体存储器。
当电源关闭时,存于RAM中的数据会丢失。
我们通常购买或升级的内存条就是⽤作电脑的内存,内存条(SIMM)就是将RAM集成块集中在⼀起的⼀⼩块电路板,它插在计算机中的内存插槽上,以减少RAM集成块占⽤的空间。
DDRSDRAM基本原理详细介绍DDRSDRAM是一种双倍速率同步动态随机存取存储器,广泛应用于计算机内存和其他高速嵌入式系统中。
DDR代表双倍数据率,SDRAM代表同步动态随机存储器。
DDRSDRAM通过提供更高的带宽和更低的延迟来提高系统性能。
1.双倍数据率:DDRSDRAM采用了双倍数据率技术,可以在每个时钟脉冲周期内传输两个数据,即在上升沿和下降沿都进行数据传输。
这使DDRSDRAM的数据传输速度是传统SDRAM的两倍。
2.同步动态随机存取存储器:DDRSDRAM是一种动态存储器,与静态存储器相比,它的存储单元更小,容量更大。
DDRSDRAM是同步存储器,意味着所有数据传输都需要与系统时钟同步。
3.预充电:DDRSDRAM在读写操作之前需要进行预充电操作。
预充电操作是将存储单元的电荷置为预定的电平,以便于下一次读写操作。
预充电操作在时钟信号的上升沿进行。
4.时序:DDRSDRAM的时序包括预充电时间、平均访问周期、行切换延迟、列切换延迟、CAS延迟等。
这些时序都是根据具体DDRSDRAM芯片的规格进行设置的,用于保证数据的正确传输和存取。
5.控制信号:DDRSDRAM有许多控制信号,其中包括时钟信号、写使能信号、读使能信号、行地址线、列地址线等。
时钟信号用于同步操作,写使能信号和读使能信号用于控制存取操作,行地址线和列地址线用于指定存储单元的位置。
6.数据通路:DDRSDRAM的数据通路分为前端数据总线和背面数据总线。
前端数据总线用于数据的输入和输出,而背面数据总线用于数据在存储芯片内部的传输。
前端数据总线和背面数据总线的宽度决定了DDRSDRAM的带宽。
7.控制器:DDRSDRAM的控制器位于存储芯片的内部,负责管理存储芯片的读写操作。
控制器与计算机系统的主控制器进行通信,接收来自主控制器的指令并执行相应的操作。
8.刷新:DDRSDRAM是一种动态存储器,需要定期刷新以保持数据的稳定性。
FPGA的电平标准
FPGA(Field Programmable Gate Array)是一种可编程逻辑芯片,它可以通过重新编程来实现不同的逻辑功能。
在FPGA中,电平标准通常是指输入/输出端口所需的电压和电流等级。
以下是一些常见的FPGA电平标准:
1. LVDS(Low V oltage Differential Signaling):一种低电压差分信号传输标准,常用于高速串行通信和数字视频传输。
2. LVDS-25:一种低电压差分信号传输标准,常用于高速串行通信和数字视频传输。
3. LVCMOS(Low V oltage CMOS):一种低电压CMOS 信号传输标准,常用于数字电路和存储器接口。
4. DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory):一种高速存储器接口标准,常用于计算机内存接口。
5. SPI(Serial Peripheral Interface):一种串行通信协议,常用于嵌入式系统和传感器接口。
6. I2C(Inter-Integrated Circuit):一种串行通信协议,常用于嵌入式系统和传感器接口。
7. UART(Universal Asynchronous Receiver/Transmitter):一种串行通信协议,常用于嵌入式系统和计算机接口。
8. HDL(Hardware Description Language):一种硬件描述
语言,用于编写FPGA的硬件描述语言程序。
总之,不同的FPGA电平标准适用于不同的应用场景,设计者需要根据具体情况选择合适的电平标准。
lpddr3参数计算表LPDDR3(Low Power DDR3)是一种低功耗的DDR3 SDRAM (Synchronous Dynamic Random Access Memory)标准,广泛应用于移动设备和嵌入式系统中。
LPDDR3具有较低的功耗、较高的带宽和较低的延迟,相对于标准的DDR3,更适合于电池供电的移动设备。
LPDDR3的参数计算表包括动态参数和静态参数。
动态参数包括数据速率、预取长度和工作频率。
LPDDR3的数据速率通常以每秒传输的数据位数来表示,例如LPDDR3-1600表示每个时钟周期传输1600Mb的数据。
预取长度表示每个存取周期传输的连续数据字节数。
工作频率则是LPDDR3与设备通信的时钟频率。
静态参数包括地址总线宽度、数据总线宽度、内存容量和电压。
地址总线宽度决定了LPDDR3能够寻址的内存地址数量,数据总线宽度决定了LPDDR3每个存取周期能够传输的数据量。
内存容量表示LPDDR3可以存储的数据量大小,通常以GB为单位。
电压表示LPDDR3的工作电压,通常是1.2V。
以下是一种LPDDR3参数计算表的示例:LPDDR3参数计算表:动态参数,值-------------,------------------------------------数据速率,LPDDR3-1600,LPDDR3-1866,LPDDR3-2133预取长度,8字节工作频率,800MHz,933MHz,1066MHz静态参数数据总线宽度,32位(每个存取周期传输32位数据)内存容量,1GB,2GB,4GB,8GB电压,1.2V通过LPDDR3参数计算表,我们可以确定LPDDR3内存的具体规格,以便于选型和设计。
参数的选择需要根据具体应用的需求来进行权衡,包括功耗、带宽和容量等方面。
在移动设备和嵌入式系统中,通常需要考虑功耗的优化,因此LPDDR3成为一种较为理想的内存选择。
同时,通过选择合适的数据速率、预取长度和工作频率,可以提供满足应用需求的性能。
存储器类型分析本文为设计类容为存储器类型分析,大部分资料来源于网络,经过个人整理形成本文档,希望对大家有所帮助。
-- flyownway存储器介绍存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。
计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。
它根据控制器指定的位置存入和取出信息。
有了存储器,计算机才有记忆功能,才能保证正常工作。
按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。
外存通常是磁性介质或光盘等,能长期保存信息。
内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
构成构成存储器的存储介质,目前主要采用半导体器件和磁性材料。
存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。
由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。
一个存储器包含许多存储单元,每个存储单元可存放一个字节(按字节编址)。
每个存储单元的位置都有一个编号,即地址,一般用十六进制表示。
一个存储器中所有存储单元可存放数据的总和称为它的存储容量。
假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1M个存储单元地址。
每个存储单元存放一个字节,则该存储器的存储容量为1MB。
分类按存储介质分半导体存储器:用半导体器件组成的存储器。
磁表面存储器:用磁性材料做成的存储器。
功能各类存储器RAMRAM(random access memory,随机存取存储器)。
存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。
这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。
DDR存储控制器的设计与应用随着科技的不断进步,数字电子设备在日常生活和工作中的应用越来越广泛。
其中,DDR存储控制器作为计算机存储系统的重要组成部分,对于整个系统的性能和稳定性具有举足轻重的作用。
本文将详细阐述DDR存储控制器的概念、设计步骤、技术方案以及实验结果,并探讨其未来的发展趋势。
DDR存储控制器,全称Double Data Rate SDRAM控制器,是一种用于管理计算机存储系统的芯片或模块。
其主要作用是控制数据的传输速率和带宽,协调内存与处理器之间的数据交换,从而确保数据的高速、稳定传输。
DDR存储控制器适用于各种计算机存储设备,如DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM等。
DDR存储控制器的硬件设计主要包括以下步骤:(1)确定控制器的架构和组成元件,包括数据路径、控制逻辑、时钟发生器等。
(2)设计电路板,包括布局布线和元件放置等。
(3)编写硬件描述语言(HDL),如Verilog或VHDL,用于实现控制器的逻辑功能。
(4)仿真和验证硬件设计,确保其符合预期的功能和性能要求。
DDR存储控制器的软件设计主要包括以下步骤:(1)编写存储控制器的驱动程序,包括初始化和配置控制器、读写数据等操作。
(2)优化数据传输速率和带宽,以实现更高效的数据传输和控制。
(3)配合硬件设计,实现软硬件联合调试和测试。
在DDR存储控制器的设计中,我们采用了以下技术方案:采用同步动态随机存取存储器(SDRAM)作为主要的存储介质,其具有较高的存储密度和较低的功耗。
使用双倍数据速率(DDR)技术,使得SDRAM在每个时钟周期内可以进行两次数据传输,从而大幅提高了数据传输速率和带宽。
引入高速缓存接口(Cache Interface),以提高数据访问速度和降低CPU的负载。
使用可编程逻辑门阵列(FPGA)作为控制器的主要芯片,其具有灵活性和可定制性,能够满足各种不同的存储需求。
我们设计并实现了一款DDR存储控制器,并对其进行了严格的测试。
SDRAM存储器特点及编程SDRAM(Synchronous Dynamic Random Access Memory)是一种同步动态随机存取存储器,它是当前主流的计算机内存之一、与传统的DRAM相比,SDRAM具有许多显著特点,并且需要编程来实现其中一些功能。
首先,SDRAM是同步存储器,需要外部时钟信号的控制。
这意味着SDRAM在读写数据时需要与外部时钟同步,以保证数据的正确传输和存储。
这种同步特性使得SDRAM的读写速度更快,可以更好地适应高速数据处理的需求。
其次,SDRAM具有高密度的存储容量。
由于DRAM的存储单元是由电容和晶体管构成的,因此它可以实现更高的集成度,从而提供更大的存储容量,并满足对大容量内存的需求。
当前的SDRAM产品可提供的存储容量从几百兆字节(GB)到数倍的GB级别。
此外,SDRAM具有低功耗特性。
SDRAM采用了复杂的电源管理技术,可以根据不同的数据访问模式及时调整功耗,从而最大限度地降低能耗。
这使得SDRAM在嵌入式系统和移动设备中广泛应用,以延长电池寿命,提高系统运行时间。
SDRAM还具有快速的数据传输速率。
通过提供更高的时钟频率和更宽的总线宽度,SDRAM可以实现更快的数据写入和读取速度。
例如,DDR (Double Data Rate)SDRAM可以在每一个时钟周期内传输两次数据,从而实现更高的传输速率。
这种高速传输速率使得SDRAM成为大型游戏、视频处理和图形渲染等高性能应用的理想选择。
最后,SDRAM的编程是为了实现不同的存储管理功能。
它通常通过SDRAM控制器来实现编程。
编程可以包括以下几个方面:1.行和列地址刷新:SDRAM使用行和列地址来指示存储单元的位置。
定期刷新存储器中的行和列地址是确保数据完整性的重要步骤。
编程时可以设置刷新周期和地址范围来控制刷新操作。
2. CAS延迟和RAS前置时间:CAS(Column Address Strobe)延迟指定了从列地址有效到读取或写入数据的延迟时间。
引言很多嵌入式系统,特别是应用于图像处理与高速数据采集等场合的嵌入式系统,都需要高速缓存大量的数据。
DDR(Double Data Rate,双数据速率)SDRAM由于其速度快、容量大,而且价格便宜,因此能够很好地满足上述场合对大量数据缓存的需求。
但DDR SDRAM 的接口不能直接与现今的微处理器和DSP的存储器接口相连,需要在其间插入控制器实现微处理器或DSP对存储器的控制。
随着密度与性能的不断提升,现场可编程门阵列(FPGA)已被广泛应用于各种嵌入式系统中。
而且,现在很多的FPGAs都提供了针对DDR SDRAM的接口特性:其输入输出引脚都与SSTL-Ⅱ电气特性兼容,内部提供了DDR触发器、锁相环等硬件资源。
使用这些特性,可以更加容易地设计性能可靠的高速DDR SDRAM存储器控制器。
1 DDR SDRAM 在嵌入式系统中的应用图1是DDR SDRAM在高速信号源系统中的应用实例。
在该系统中,由FPGA的完成各模块之间的接口控制。
FPGA接收从前端传送过来的高速数字信号,并将其存储在DDR SDRAM中;DSP通过FPGA读取DDR中的数据,处理后再送回到DDR SDRAM,最后由FPGA负责将数据分两路输出。
该系统对存储器的要求是能够高速地存储大量的数据,DDR SDRAM正好能满足这一要求,此时,FPGA是否能对DDR SDRAM进行有效控制就成为影响系统性能的关键。
最后的试验结果表明,FPGA是能够胜任这一任务的。
2 DDR SDRAM的工作方式在DDR SDRAM能够被存取数据之前,需要先对其初始化。
该初始化流程是预先定义好的。
不正确的操作将导致无法预料的结果。
初始化的过程中将设置DDR SDRAM的普通模式寄存器和扩展模式寄存器,用来制定DDR SDRAM的工作方式,这些设置包括突发长度、突发类型、CAS潜伏期和工作模式以及扩展模式寄存器中的对DDR SDRAM内部DLL的使能与输出驱动能力的的设置。
模式寄存器可以被再编程,这时需要DDR SDRAM的各个区(bank)处于空闲状态,从而改变存储器的工作模式。
如果操作正确,对模式寄存器的再编程不会改变存储器内存储的数据。
初始化完全之后,DDR SDRAM便进入正常的工作状态,此时便可对存储器进行读写和刷新。
DDR SDRAM在一对差分时钟(CLK与CLKn;CLK的上升沿与CLKn的下降沿的交点被认为是CLK的上升沿)的控制下工作。
命令(地址和控制信号)在每个时钟(CLK)的上升沿被触发。
随着数据一起传送的还包括一个双向的数据选通信号,接收方通过该信号来接收数据。
DQS作为选通信号在读周期中由DDR SDRAM来产生,写周期中由存储器控制器来产生。
该选通信号与数据相关,其作为类似于一个独立的时钟,因此也需要满足相应的时序要求。
读周期中,DQS与数据是边沿对齐的;写周期中,DQS与数据是中心对齐的。
存储器输入的数据在DQS的两个沿都触发,输出的数据也是以DQS的两个沿作为参考,同时还要以时钟CLK的两个沿作为参考。
因此,由于接口在时钟的两个沿的触发下工作。
其数据宽度(n)是存储器数据宽度(2n)的一半。
图2描述了DDR SDRAM的工作方式。
点击看原图对DDR SDRAM的读和写操作是基于突发的:从一个选定的地址单元开始,连续存取设置好长度的地址单元。
该长度就是所谓的突发长度。
DDR SDRAM提供的可编程的读或写的突发长度为2,4或8。
数据的存取以一个激活命令(ACTIVE command,RAS_n low)开始,接着便是读(CAS_n low)或写(CAS_n low and WE_n low)命令。
与激活命令一起被触发的地址位用来选择将要存取的区(bank)和页(或行);与读或写命令一起触发的地址位用来选择突发存取的起始列单元。
使用控制器读取DDR SDRAM的仿真波形示意图如图2所示。
读命令被触发后,数据将在1.5-3个时钟周围之后出发在数据总线上。
这个延迟就是所谓的CAS潜伏期(CAS latency),即从DRAM内核读出数据到数据出现在数据总线上所需要的时间。
CAS潜伏期的到小与SDRAM的速度和存储器的时钟频率有关。
当要存取一个不同行的地址单元时,需要通过一个预充电(PRECHARGE)操作关闭当前行。
自动刷新(AUTO-REFRESH)命令用来周期性地刷新DDR SDRAM,以保持其内部的数据不丢失。
3 DDR SDRAM控制器的设计DDR SDRAM控制器的功能就是初始化DDR SDRAM;将DDR SDRAM复杂的读写时序转化为用户方简单的读写时序,以及将DDR SDRAM接口的双时钟沿数据转换为用户方的单时钟沿数据,使用户像操作普通的RAM一样控制DDR SDRAM;同时,控制器还要产生周期性的刷新命令来维持DDR SDRAM内的数据而不需要用户的干预。
3.1 DDR SDRAM控制器的控制流程DDR SDRAM提供了多种命令,整个控制状态机非常复杂。
但很多应用场合中,并不需要用到所有的命令,因此为了简化设计,但同时又兼顾尽可能多的应用场合,在控制器的设计中制定了如下几种功能:DDR SDRAM的初始化、可变长度的突发读写,自动刷新功能,预充电以及模式寄存器的重置(reload)。
图3是控制器整个状态转移图。
系统上电后,DDR SDRAM处于空闲状态(Idle),在对存储器进行读写操作之前,需要先对其进行初始化。
初始化的过程中,将设置突发长度,突发类型,CAS潜伏期等参数。
DDR SDRAM的初始化有一个固定的步骤,错误的操作将导致DDR SDRAM进入不确定状态。
在控制器中使用了一个专门的初始化状态机来对DDR SDRAM进行初始化。
初始化完之后便可对DDR SDRAM进行读、写或其他操作。
在执行读(写)命令之前,先要激活(Active)将要读(写)的行,之后便可对该行进行突发读(写),在控制器的设计中,所有的读写命令都是不带预充电的,因此,某一行被激活之后将一直处于激活状态,直到用户发送突发终止命令,此时控制器将自动产生一个预充电命令来关闭当前行。
这样,某一行被激活之后用户便可进行连续的突发读(写)操作,从而节省了每次突发读写所需要的激活时间,提高了系统的数据吞吐率。
控制器同时提供了一个自动刷新(auto refresh)计数器,每隔一定的时间间隔(即DDR SDRA的刷新周期,根据所使用的存储器而定,可在控制器中设定),便会产生一个刷新请求,如果此时DDR SDRAM处于空闲状态,控制器便会发生一个自动刷新命令来对DDR SDRAM进行刷新;如果此时DDR SDRAM正在进行读(写)操作,控制器将会等到当前的读(写)操作完全之后再发送新命令。
在刷新过程中,用户如果有读(写)请求,控制器将在当前的刷新周期完成之后再响应用户的请求。
正常的操作过程中,当DDR SDRAM处于空闲状态时,用户还可以根据实际的需要来重置存储器的控制寄存器,重新设定存储器的突发长度、突发类型、CAS潜伏期等参数。
3.2 控制器数据通道的结构图4是DDR SDRAM控制器数据通道的结构图。
图4中完整的显示了控制器读和写数据通道上DQ与DQS的结构关系。
前面提到过,Cyclone系列FPGA没有带DDR触发器的输入输出单元,但完全可以用靠近输入输出引脚处的逻辑资源来实现DDR触发器,而且最后的结果表明,这种实现方式可以满足时序要求。
从图4中也可以看到,控制器内部有两个时钟,clk和clk_90,两者之间的相位差为90°。
图中将面向存储器的时钟命名为clk。
它是clk_90时钟的90°相位延迟后的信号。
clk_90作为系统时钟来驱动整个FPGA,clk时钟驱动存储器接口路。
3.2.1 DQS相位延迟电路在读周期中,DDR SDRAM处输出的DQ和DQS信号是边沿对齐的。
为了使用DQS作为选通信号来捕获DQ,DQS信号需要在FPGA内部相对于DQ信号作90°的相位延迟。
但是这个延迟不能使用锁相环(PLL)来完成,因为DQS信号不具有时钟的特性。
因此,需要在DQS 和数据时钟之间加一个延迟链(delay clain),如图4中所示。
前面提到过,Cyclone系列FPGA在其DQS输入引脚上有一个专用的延迟单元,用来使DQS相对于DQ信号产生一个90°相移。
因此,可以使用该硬核资源来完成对DQS的相移,而不必通过内部的逻辑来搭建这样一个延迟电路,从而可以获得更好的时序性能。
3.2.2 再同步读周期中,从DDR SDRAM来的数据信号首先通过延迟后的DQS锁存到DDR触发器中。
为了在FPGA内部能够使用该数据,还要将其同步到FPGA内部的时钟域上,这个过程称为再同步(resynchronization)。
如图4所示,对于前一级DQS延迟后的信号锁存的数据再通过clk_90同步之后才送到内部数据总线上。
在写周期中,DQS与DQ必须是中心对齐的(center align)。
我们用clk_90时钟触发的DDR触发器产生DQS信号,因此,为了满足时序要求,从内部来的数据通过clk_90时钟锁存后再由clk触发的DDR触发器将其输出,从而保证DQS与DQ是中心对齐的。
4 控制器的实现该控制器针对16位宽512Mb的DDR SDRAM设计,在Altera公司的Quartus Ⅱ4.2环境中采用Cyclone系列的FP1C6Q240C6来实现,总共使用了729个逻辑单元,占FPGA可编程逻辑资源的12%,此外还使用了1个锁相环(PLL)。
最后,在Modelsim 5.8中对整个工程进行布局-布线后仿真(Post-Place&Route Simulation),采用的模型为Micron 公司的512Mb的DDR SDRAM MT46V32M16的仿真模型,时钟为133MHz,图2是控制器读取DDR SDRAM的时序仿真波形。
5 结论本文给出了一种通过FPGA控制将DDR SDRAM应用在嵌入式系统中的方法。
设计中采用Altera公司性价比较高的Cyclone系列FPGA,并充分利用片内提供的锁相环、DDR触发器以及DQS延迟链等硬件资源,占用的逻辑资源少。
该设计可以很容易地转移到Altera公司其他系列的FPGA上,经过适当的修改还可以用来控制64位宽的DIMM型的DDR SDRAM,因此可以很好地应用在需求高速度、大容量存储器的场合中。