【原创论文全套栏目提醒】:网学会员--在 原创论文全套编辑为广大网友搜集整理了:论文原创性声明 - 技术总结绩等信息,祝愿广大网友取得需要的信息,参考学习。
论文原创性声明 本人郑重声明:此处所提交的
论文《基于FPGA的DDR SDRAM控制器在高速数据采集中的应用》,是本人在导师指导下,在哈尔滨工业大学攻读硕士学位期间进行研究工作所取得的成果。
据本人所知,
论文中除已注明部分外不包含他人已发表或撰写过的研究成果。
对本文的研究工作做出重要贡献的个人和集体,均已在文中以明确方式注明。
本声明的法律结果将完全由本人承担。
作者签字 门亮 日期: 2007年4月7日 FPGADDR SDRAM 作品提交人:门亮 指导教师:王立欣 哈尔滨工业大学电气工程及自动化学院, 哈尔滨 150001 实现数据的高速大容量存储是数据采集系统中的一项关键技术。
本设计采用Altera公司Cyclone系列的FPGA完成了对DDR SDRAM的控制,以状态机来描述对DDR SDRAM的各种时序操作,设计了DDR SDRAM的数据与命令接口。
用控制核来简化对DDR SDRAM的操作,并采用自顶至下模块化的设计方法,将控制核嵌入到整个数据采集系统的控制模块中,完成了数据的高速采集、存储及上传。
使用开发软件Quartus II中内嵌的逻辑分析仪SignalTap II对控制器的工作流程进行了验证和调试。
最终采集到的数据波形表明,完成了对DDR SDRAM的突发读写操作,达到了预期设计的目标。
FPGA;DDR SDRAM;数据采集 The application of DDR SDRAM based on FPGA in high-speed data acquisition system Abstract: In Data Acquisition system it is a key technology to store data at high speed and with large capacity. This design manages to control DDR SDRAM with FPGA which belongs to Cyclone’s series of Altera Company. State machine is used to draw the time diagram of DDR SDRAM and to design its data and command interface. The processes of the high-speed data acquisition storage and uploading is accomplished by the simplification of DDR SDRAM by the controller which is embedded into the whole controlling module of Data Acquisition system with the top-to-bottom design method. The logic analyzer SignalTap II embedded in the developing software Quartus II is used to test and regulate the controller’s working flow. The tested results indicate that the bursting writing and reading operation is preformed successfully by the controller and the expected goal is reached. Keyword:FPGA DDR SDRAM Data Acquisition 0 DDR SDRAM是Double Data Rate SDRAM的缩写,即双倍速率同步动态随机存储器。
DDR内存是在SDRAM内存基础上发展而来的,能够在时钟的上升沿和下降沿各传输一次数据,可以在与SDRAM相同的总线时钟频率下达到更高的数据传输率。
本设计中采用Altera公司Cyclone系列型号为EP1C6Q240C8的FPGA实现控制器,以Hynix公司生产的型号为HY5DU121622B(L)TP的DDR SDRAM为存储器,完成了对数据的高速大容量存储。
1 DDR SDRAM DDR SDRAM支持的常用命令有7种:空操作(NOP)、激活操作(Active)、突发读(Burst Read)、突发写(Burst Write)、自动刷新(Autorefresh)、预充电(Precharge)、模式寄存器配置(Mode Register Set)。
所有的操作命令都是通过信号线RAS_N、CAS_N、WE_N共同控制来实现的。
在对DDR SDRAM进行存取数据操作之前,首先要对其初始化,即设置DDR SDRAM的普通模式寄存器和扩展模式寄存器,确定DDR SDRAM的工作方式,这些设置包括突发长度、突发类型、CAS潜伏期和工作模式以及扩展模式寄存器中的对DDR SDRAM内部延迟锁定回路(DLL)的使能与输出驱动能力的设置。
初始化完成之后,DDR SDRAM便进入正常的工作状态,此时便可对存储器进行读写和刷新。
DDR SDRAM在一对差分时钟的控制下工作。
命令(地址和控制信号)在每个时钟的上升沿被触发。
随着数据DQ一起传送的还包括一个双向的数据选通信号DQS,接收方通过该信号来接收数据。
DQS作为选通信号在读周期中由DDR SDRAM产生,在写周期中由存储器的控制器产生。
该选通信号与数据相关,其作用类似于一个独立的时钟,并满足相应的时序要求。
由于DDR SDRAM的数据接口在时钟的两个沿的触发下工作,其数据宽度是存储器数据宽度的一半。
为实现数据的大容量存储,设计时采用的是一个控制核同时对两片DDR SDRAM进行操作,外接数据线的宽度由单片DDR SDRAM的16 位扩展到32位。
对DDR SDRAM的读和写操作是基于突发的,即从一个选定的地址单元开始,连续存取已设置长度的地址单元,该长度就是所谓的突发长度。
DDR SDRAM提供的可编程的读或写的突发长度为2,4或8。
数据的存取以一个激活命令(Active)开始,接着便是读(Burst Read)或写(Burst Write)命令。
与激活命令一起被触发的地址位用来选择将要存取的区和页(或行),与读或写命令一起被触发的地址位用来选择突发存取的起始列单元。
读命令被触发后,数据将在1.5~3个时钟周期之后出现在数据总线上。
这个延迟就是所谓的CAS潜伏期(CAS latency),即从DDR SDRAM内核读出数据到数据出现在数据总线上所需要的时间。
CAS潜伏期的大小与SDRAM的速度和存储器的时钟频率有关。
当要存取一个不同行的地址单元时,需要通过一个预充电(Precharge)操作关闭当前行。
自动刷新(Autorefresh)命令用来周期性地刷新DDR SDRAM,以保持其内部的数据不丢失。
2 DDR SDRAM DDR SDRAM控制器的功能包括:(1)初始化DDR SDRAM;(2)简化DDR SDRAM的读写时序;(3)将DDR SDRAM接口的双时钟沿数据转换为单时钟沿数据,使得对DDR SDRAM的操作类似于普通RAM;(4)控制器还要产生周期性的刷新命令来维持DDR SDRAM内的数据而不丢失。
其控制转换图如图1所示。
图1 DDR SDRAM控制器状态机 在对DDR SDRAM初始化完成之后,就可进行读、写或其他操作。
在执行读(写)命令之前,先要激活将要读(写)的行,之后便可对该行进行突发读(写)。
在控制器的设计中,所有的读写命令都是不带预充电的,因此,某一行被激活之后将一直处于激活状态,直到用户发送突发终止命令,此时控制器将自动产生一个预充电命令来关闭当前行。
这样,某一行被激活之后用户便可进行连续的突发读(写)操作,从而节省了每次突发读写所需要的激活时间,提高了系统的数据吞吐率。
2.1 DDR SDRAM 通过对DDR SDRAM的读时序的分析,将整个读操作过程分解为7个状态,每一个状态都对应着不同的命令(CMD)值,DDR控制核通过对CMD的译码完成对DDR SDRAM的操作。
从整体的控制过程来看,读操作流程如图2所示。
其中实线表示的是读操作的控制流程,虚线表示的读操作的状态转换流程。
控制流程的实现依赖于控制器内部状态转换产生的控制信号。
实现各状态之间切换的控制信号主要有命令应答信号CMDACK,外部控制信号RDREQ以及程序内部的计数器Count_READ。
当系统的主状态机进入到读数据状态时,控制信号CBE“010”;控制器内部的状态机进入到读状态。
读流程中另一个重要的信号为RDREQ,它是由控制器后端的缓存(FIFO)产生的,当缓存中数据容量低于设定值时,信号RDREQ被置高,读状态由PRE_NOP进入READA,发起一次读操作,完成8个数据的传送。
程序内部的计数器Count_READ保证控制核在经过设定的CAS潜伏期后从数据总线上读取数据。
SDRAM写满(ADDR)WAIT_READ_ACBE010PresentState
上一篇:
原创建筑专业论文
下一篇:
青青子衿,悠悠我心