ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:390.91KB ,
资源ID:26325405      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26325405.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的DDR SDRAM控制器的设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的DDR SDRAM控制器的设计.docx

1、基于FPGA的DDR SDRAM控制器的设计普通本科毕业设计题目:基于FPGA的DDR SDRAM控制器的设计摘 要 随着半导体技术的发展,A/D采样的速率越来越高,相应需要越来越大容量的存储器。存储器是目前数字系统中的关键部件之一,DDR SDRAM(Double Data Rate SDRAM,双倍数据率同步动态随机存储器)以其大容量、高速率和良好的兼容性以及低成本在计算机、消费类电子、通信等领域得到了相当广泛的应用。DDR控制器实际上就是用户端与DDR存储器之间进行数据传输的一个桥梁,通过DDR控制器,用户端命令被转化成DDR存储器所支持的命令格式,从而实现用户端对DDR的访问。本文对D

2、DR SDRAM及其控制器的结构、接口和时序进行了深入研究与分析,得出一些DDR SDRAM控制器的关键技术特性,然后基于Altera公司Cyclone II系列的FPGA芯片EP2C8Q208C8平台,利用Verilog硬件描述语言设计实现了DDR SDRAM存储控制器。编写自动生成自加数据的模块,将自加数据写入到SDRAM中,再从SDRAM中读回,从UART 发送出去并在串口调试工具上显示。【关键词】可编程逻辑门阵列 DDR SDRAM 存储控制器 通用异步收发器 AbstractAlong with the development of semiconductor technology,

3、 A/D sampling rate is higher and higher, requiring more capacity of corresponding. Storage of memory is one of the crucial devices in the digital system at present, the DDR (Double Data Rate) SDRAM has many advantages for its large capacity, high speed and the low cost, it has been used in quite a n

4、umber of fields, such as the Server, the WorkStation, the Personal computer and the consumer electronics, the communication and other areas. DDR controller actually is a bridge between client and DDR memory for data transmission, through the DDR controller, client command was converted into the DDR

5、memory which support command format, so as to realize the visit of DDR clients.The pivotal technologies of DDR SDRAM and memory controller, such as Structure, Interface and Timing are explored in this article, after a research on the main feature inside the DDR controller, several functional modules

6、 of the controller are designed out, and then based on FPGA chip Cyclone II Altera company EP2C8Q208C8 platform series used Verilog hardware description language. Write automatic generation and add data modules, with data from the data written to add SDRAM, and again read back from SDRAM, send it ou

7、t from UART and display on serial port debugging tools.【Key words】FPGA; DDR SDRAM; Memory Controller; UART 1 绪论 21.1 DDR SDRAM的现状及发展趋势 21.1.1 DDR内存的现状 21.1.2 DDR内存的发展趋势 31.2 课题研究的意义 31.3 课题研究的要求 21.4 本文的安排 22 DDR SDRAM技术介绍 42.1 DDR SDRAM的分类 42.2 DDR SDRAM的基本概念 42.2.1 DRAM存储原理 52.2.2 DDR SDRAM的逻辑BANK

8、与芯片位宽 52.2.3 DDR SDRAM芯片容量 52.2.4 DDR SDRAM内存刷新 62.3 DDR SDRAM的命令 62.3.1 初始化 62.3.2 DDR SDRAM指令 72.4 DDR SDRAM读写操作时序 82.4.1 读操作时序 82.4.2 写操作时序 83 FPGA和Quartus II简介 103.1 FPGA技术简介 103.1.1 FPGA基本结构 103.1.2 FPGA的基本特点 103.1.3 FPGA芯片的选择 113.2 Quartus 简介 113.3 Quartus II的设计流程 114 系统硬件设计 134.1 系统整体框架 134.2

9、 自动累加数据产生模块 134.3 DDR SDRAM控制器模块 144.3.1 DDR SDRAM控制器整体状态分析 144.3.2 DDR SDRAM控制器总体架构 154.3.3 输入/输出FIFO模块 164.3.4 控制接口模块设计 174.3.5 控制接口模块设计 194.3.6 数据通路模块设计 214.4 串口读数据模块 235 系统控制器的功能验证 265.1 系统控制器的功能仿真 265.1.1 系统控制器Testbench设计 265.1.2 系统控制器Testbench总体架构 265.1.3 DDR SDRAM Controller Testbench顶层模块设计 2

10、65.1.4 DDR SDRAM Controller Testbench仿真波形 275.2 串口读取数据验证 286 总结 29参考文献 30致 谢 311 绪论1.1 DDR SDRAM的现状及发展趋势1.1.1 DDR内存的现状目前DDR内存市场占有量非常大,尤其是近些年随着市场需求的高速增长使得加入该行业和研究该技术的人员也越来越多,DDR控制技术处于高速发展阶段。和显卡、主板等差异化较大的市场相比,内存市场由于有着强大的JDEDC把持,并且产品本身形态较为单一,因此各家产品性能和设计差距都不太大,同质化现象较严重。不过,同质化并不意味着发展速度慢,相反,也正是由于有了统一的JEDE

11、C规范,内存一直按部就班地发展着。对于DDR系统来说,DDR控制器的研究是其关键核心,该部分要完成读写控制、地址控制等功能。1.1.2 DDR内存的发展趋势第一代DDR200规范并没有得到普及,第二代PC266 DDR SDRAM(133MHz时钟2倍数据传输266MHz带宽)是由PC133 SDRAM内存所衍生出的,它将DDR内存带向第一个高潮,其后来的DDR333内存也属于一种过度,而DDR400内存成为目前的主流平台选配,双通道DDR400内存已经成为800FSB处理器搭配的基本标准,随后的DDR533规范则成为超频用户的选择对象。现在DDR2/3都在扩大产量,DDR3量产后,供应将大增

12、,而成本将会降低,所以DDR3将会降价,这样也能促进普及,而普及又会促使厂商增加产量,产量增加又会进一步摊薄成本降低价格。随着人们要求的变高,速率更快容量更大的内存不断会涌现出来。1.2 课题研究的意义DDR内存遍布于各种电子产品,正渐渐成为现代社会中不可或缺的信息存储载体。存储器对现在的数字化系统性能至关重要,是决定系统性能的关键设备之一。面对越来越多样化的应用需求,存储技术发展得相当迅速,其中DDR SDRAM作为一种在性能与成本之间折中的解决方案,以其高速、大容量、运行稳定与高性价比等优点已经成为目前存储器的主流。随着电子技术在工业、医疗、商业等领域的发展,人们对数据传输率的要求越来越高

13、,传统的单片机早已不能满足这种高速数据传输的要求。与此同时,可编程逻辑器件FPGA以其强大的功能,开发过程投资小、周期短,可反复编程修改,开发工具智能化等特点,成为当今硬件设计的潮流;它的集成度高,可完成极其复杂的时序与组合逻辑电路功能,更适用于高速、高密度的高端数字逻辑电路设计领域。本设计采用FPGA来进行系统设计。采用传统的单片机编程实现算法的方法虽灵活性较高,但是执行复杂工作时处理速度远远不能满足要求,而且单片机的时序性较差。要改善这个问题,FPGA是很好的选择之一,它有足够大的逻辑阵列密度(百万门级以上),比较高的速度(400MHZ以上)。由此可见,采用FPGA完成DDR SDRAM控

14、制器的设计可以使内存上升到一个新级别。因此对DDR存储控制器的设计研究具有重要意义。1.3 课题研究的要求本课题要求完成基于FPGA的DDR SDRAM(此SDRAM为SAMSUNG公司的K4S641632H芯片)控制器的设计,实现以下功能要求:(1)初始化DDR SDRAM;(2)简化DDR SDRAM的读写时序;(3)将DDR SDRAM接口的双时钟沿数据转换为单时钟沿数据,使得对DDR SDRAM的操作类似于普通RAM; (4)控制器还要产生周期性的刷新命令来维持DDR SDRAM内的数据而不丢失。1.4 本文的安排本文对DDR SDRAM控制器从整体设计到各部分细化设计展开讨论,对系统

15、涉及的各模块的设计进行详细描述,最后对系统功能仿真以及读写数据验证。全文的内容安排如下:第一部分为绪论。简单介绍了内存的现状与发展趋势,并对本课题的研究意义及其要求做了简单论述。第二部分,介绍了DDR SDRAM相关技术,首先对DDR的存储原理、逻辑BANK、位宽等基本概念进行了大致介绍,然后对其命令进行简单介绍,最后对其读写时序做了详细分析。第三部分,介绍了FPGA相关知识并对此系统开发平台Quartus II也进行了简单介绍,接着描绘了此系统在开发平台上的设计流程。第四部分,详细介绍了系统的整体架构包括自动累加数据生成模块、控制器模块、串口读数据模块,并分别重点研究构成控制器的主要模块:输

16、入/输出FIFO模块、数据接口模块、命令模块、数据通路模块。第五部分,主要是对控制系统的功能进行验证。将编写好的测试文件在Modelsim平台上完成功能仿真,并对系统的读写功能进行了串口输出验证。最后,对系统实现了读写功能进行总结。2 DDR SDRAM技术介绍2.1 DDR SDRAM的分类DDR的频率可以用工作频率和等效频率两种方式表示,工作频率是内存颗粒实际的工作频率,但是由于DDR内存可以在脉冲的上升和下降沿都传输数据,因此传输数据的等效频率是工作频率的两倍。按DDR的频率可分为以下几类,如表2.1所示。表2.1 DDR内存分类7DDR规格传输标准实际频率等效传输频率数据传输率DDR2

17、00PC1600100MHz200MHz1600MB/sDDR266PC2100133MHz266MHz2100MB/sDDR333PC2700166MHz333MHz2700MB/sDDR400PC3200200MHz400MHz3200MB/sDDR433PC3500216MHz433MHz3500MB/sDDR533PC4300266MHz533MHz4300MB/s2.2 DDR SDRAM的基本概念DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR存储器的核心建立在SDRAM的基础上,但在速度和容量上有了提高。首先,它使

18、用了更多、更先进的同步电路,使用了差分时钟输入;其次,DDR使用了PLL锁相环和数据选通滤波信号(Data Strobe signal),当数据有效时,存储控制器可使用这个数据选通滤波信号来精确定位数据,每8位数据对应输出一次数据选通滤波信号,并且同步来自不同的双存储器模块的数据。DDR存储器本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟脉冲的上升治和下降沿读出数据,因而其速度是标准SDRAM的两倍。至于地址与控制信号则与传统SDRAM相同,仍在时钟上升沿进行传输。DDR存储器的设计可让存储控制器每一组DQ/DQS/DM与DIMM(Dual In-line Memory M

19、odule,双列直插式存储器模块)上的颗粒相接时,维持相同的负载,减少对主板的影响。在存储器架构上,传统SDRAM属于8组式,即存储器核心中的I/O寄存器有8位数据I/O,但对于8组式的DDR SDRAM而言,存储器核心中的I/O寄存器却是16位的,即在时钟信号上升沿时输出8位数据,在时钟信号下降沿时再输出8位数据,一个时钟周期总共可传输16位数据。DDR芯片内部除了四个存储矩阵(四个逻辑BANK)之外,就是一些控制逻辑、行列缓冲与解码、I/O寄存器或缓冲,使用双向的DQS信号进行源同步计时定位读/写的数据信号2。DDR存储器可以在不用大量增加管脚的情况下,大幅度提高数据传输的带宽(提高了一倍

20、),并且目前价格也非常便宜,性价比很高,足以满足一般的存储设计需求。2.2.1 DRAM存储原理 DRAM利用MOS管的栅电容上的电荷来存储信息,一个DRAM的存储单元存储的是0还是1取决于电容是否有电荷,有电荷代表1,无电荷代表0。但时间一长,由于栅极漏电,代表1的电容会放电,代表0的电容会吸收电荷,这样会造成数据丢失,因此需要一个外设电路进行内存刷新操作。刷新操作定期对电容进行检查,若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电,藉此来保持数据的连续性。2.2.2 DDR SDRAM的逻辑BANK与芯片位宽DDR SDRAM是一种高

21、速CMOS动态随机访问存储器,它在内部被配制成4个BANK的DRAM,外部数据具有4位、8位、16位三种宽度。DDR SDRAM中每一个BANK中的存储单元被组织成正方阵列,由若干行和若干列组成,这些存储单元通过行和列的地址译码器来寻址。对于任何一个单元的读操作,整个行均被读出,然后重新写回(刷新)。对于任何一个单元的写操作,整个行均被读出,然后改变其中一个单元的值,最后将整个行写回。阵列就如同表格一样,将数据“填”进去,可以把它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存

22、,这个单元格可称为存储单元。2.2.3 DDR SDRAM芯片容量内存芯片的容量就是所有L-BANK中的存储单元的容量总和,计算有多少个存储单元和计算表格中的单元数量方法一样:芯片容量=存储单元数量位宽=(行数列数L-BANK数量)位宽DDRSDRAM具有如下的容量:(1)64Mb(即67,108,864位):16M 4(4M44banks)、8M8(2M84banks)、4M16(1M164banks);(2)128Mb(即134,217,728位):32M4(4M44banks)、16M8(2M84banks)、8M16(1M164banks);(3)256Mb(即268,435,456位

23、):64M4(4M44banks)、32M8(2M84banks)、16M16(1M164banks);(4)512Mb(即536,870,912位):128M4(4M44banks)、64M8(2M84banks)、32M16(1M164banks);(5)1Gb(即1,073,741,824位):256M4(4M44banks)、128M8(2M84banks)、64M16(1M164banks)可以发现由于位宽的变化引起了存储单元的数量变化,也就是说在相同的总容量下,可以采用多种不同的位宽设计。2.2.4 DDR SDRAM内存刷新内存条应该叫做动态DRAM,其中的数据是靠电容特性存储的

24、。由于电容会放电,要维持数据,就要不断的给它充电。给动态DRAM定期充电的机制就叫做数据刷新时钟电路,即内存刷新电路。一般情况下,内存刷新电路必须在数毫秒之内对DRAM刷新一次,否则数据就会丢失。很像是一个流沙漏斗,一旦不加沙就会完全漏光。刷新频率由芯片的工作频率以及每个BANK包含的行数决定。2.3 DDR SDRAM的命令2.3.1 初始化DDR SDRAM是一种易失性存储器器件,也就是说,当器件掉电后,存储在DDR SDRAM中的所有内容及其配置信息将会丢失。DDR SDRAM每次上电后,必须按一定的顺序来初始化其内部状态机并配置用户定义的操作参数,否则会引起不可预料的操作结果。在DDR

25、 SDRAM能够被存取数据之前,需要先对其初始化1。该初始化流程是预先定义好的,初始化的过程中将设置DDR SDRAM的普通模式寄存器和扩展模式寄存器,用来制定DDR SDRAM的工作方式。这些设置包括突发长度、突发类型、CAS潜伏期和工作模式以及扩展模式寄存器中的对DDR SDRAM内部PLL的使能与输出驱动能力的设置。模式寄存器可以被再编程,这时需要DDR SDRAM的各个区(BANK)处于空闲状态,从而改变存储器的工作模式。如果操作正确,对模式寄存器的再编程不会改变存储器内存储的数据。初始化完成之后,DDR SDRAM便进入正常的工作状态,此时便可对存储器进行读写和刷新。2.3.2 DD

26、R SDRAM指令DDR SDRAM支持的指令与SDR SDRAM基本一致,本课题将其基本指令分为表2.2和表2.3,表2.2中的操作主要由CSn,RASn,CASn,WEn这四个信号来控制(CKE在这些操作下为高电平),需要由CKE来控制的信号放在了表2.3中,即对DDR SDRAM工作状态的配置必须配合CKE信号来完成。表2.2 DDR基本指令真值表6命令符号CSnRASnCASnWEn无操作NOPLXX X读READLHLH写WRITLHLL行激活ACTLL HH自动刷新REFLLLH预充电PRELLHL写模式寄存器MRSLLLL 注:L代表低电平,H代表高电平,X代表高电平或低电平操作

27、符号CKEn-1CKE命令进入自动刷新SELFHLREF退出自动刷新SREHHDSEL/NOP进入低功耗PWDNHLDSEL/NOP退出低功耗PDEHHDSEL/NOP表2.3 DDR基本指令真值表注:CKEn是CKE信号在第n个clock上升沿的逻辑状态,CKEn-1是CKE信号在第n-1个clock上升沿的状态。2.4 DDR SDRAM读写操作时序2.4.1 读操作时序读操作的时序图如2-1所示:图2-1 DDR SDRAM读操作时序图上图的信号:CK和/CK是一组差分时钟,CK的上升沿对准COMMAND(命令)和ADDRESS(地址)的中央,一般叫做center-align(中间对齐)

28、。ADDRESS只是一个column address(列地址),行地址已经在前面用ACTIVE命令打开了。DQ即数据总线,具有双向性,在空闲时为高阻。DQS 可以理解为数据使能信号,和数据同步,在空闲时也为高阻。DQ和DQS都是和时钟边沿对齐,叫做edge-align(边沿对齐)。另外上面有一个CL2.5的标识,CL即CAS Latency。CL是指内存在收到列地址信号(Column Address Strobe)后,要等待多少个系统时钟周期后才进行读取的动作。注意到上图中在列地址被采样2.5个时钟周期后,数据总线上出现了有效的读数据。2.4.2 写操作时序在对DDR SDRAM的写操作中,同

29、样以状态机完成其时序控制。每发起一次写操作,DDR SDRAM存储8个16位的数据,其中控制信号FULL由前端数据缓存(FIFO)产生,当前端缓存中存储的数据达到设定的深度时,FULL被置为高。控制核以100MHz的时钟从缓存中读走宽度为16位的数据,当缓存内部的读计数器计数到达设定值时,FULL信号置低,控制器的读操作停止。在DDR控制接口模块产生的时序配合下以双倍速率完成一次突发写。和读操作不同是发出写命令(write)后,需要等待tDQS时间才能送出写数据(DQ)和DQS。tDQS参数是指DQS的第一个跳变沿相对于写命令的延时时间,tDQS有最大值和最小值,就是说在最大最小值之间将DQ/

30、DQS送出来,DDR SDRAM都能够正常接收。写操作时序图如2-2。图2-2 DDR SDRAM写操作时序图3 FPGA和Quartus II简介本次设计就是以EDA技术为基础,使用基于FPGA技术,利用Altera公司开发的功能强大的Quartus II9.1开发软件来完成相关的设计。3.1 FPGA技术简介3.1.1 FPGA基本结构FPGA的结构一般分为三部分:可编程输入/输出模块、可编程逻辑单元(LE)、可编程内部互连资源(IR)。LE是FPGA芯片实现逻辑的基本结构,LE之间可以灵活地互相连接。LE的功能很强,不仅能够实现逻辑函数,还可以配置成RAM等复杂的形式。FPGA采用SRA

31、M进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失。因此需在FPGA外加EPROM或FLASH,将配置数据写入其中,系统每次上电自动将数据加载到SRAM中。装载的过程是在FPGA内部的一个时序电路的控制下自动进行的,所以在为FPGA设计电路时,一定要给它配备一个专用的配置芯片。除了上述构成FPGA基本结构的三种资源以外,随着工艺的进步和应用系统需求的发展,一般在FPGA中还可能包含以下可选资源:存储器资源(块RAM、分布式RAM);数字时钟管理单元(分频/倍频、数字延迟、时钟锁定);算数运算单元(高速硬件乘法器、乘加器);多电平标准兼容的I/O接口;高速串行I/O接口;特殊功能模块(以太网MAC等硬IP核);微处理器(PowerPC405等硬处理器口核)。3.1.2 FPGA的基本特点FPGA有以下特点:采用FPGA

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1