基于FPGA的DDR2存储器控制器设计_河北科技大学.doc

上传人:小飞机 文档编号:4957732 上传时间:2023-05-26 格式:DOC 页数:35 大小:1.64MB
返回 下载 相关 举报
基于FPGA的DDR2存储器控制器设计_河北科技大学.doc_第1页
第1页 / 共35页
基于FPGA的DDR2存储器控制器设计_河北科技大学.doc_第2页
第2页 / 共35页
基于FPGA的DDR2存储器控制器设计_河北科技大学.doc_第3页
第3页 / 共35页
基于FPGA的DDR2存储器控制器设计_河北科技大学.doc_第4页
第4页 / 共35页
基于FPGA的DDR2存储器控制器设计_河北科技大学.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《基于FPGA的DDR2存储器控制器设计_河北科技大学.doc》由会员分享,可在线阅读,更多相关《基于FPGA的DDR2存储器控制器设计_河北科技大学.doc(35页珍藏版)》请在三一办公上搜索。

1、 毕 业 设 计学生姓名: 洪雷 学 号: 09xxxxxxxx 专 业: 电子科学与技术 题 目: 基于FPGA的DDR2存储器控制器设计 指导教师: 安国臣(讲师) 评阅教师: 武瑞红(副教授) 2013年6月毕 业 设 计 中 文 摘 要随着消费电类电子产品以及便携式通讯产品向多功能、高性能和低功耗方向的飞快发展,而随之带来的是对大量的数据处理,而产品的系统对其主要的存储设备的要求也越来越高。目前,DDR2凭着其及其高的数据传输速率和低廉的成本则越来越多的被用到一些高档类的消费类电子和便携式产品中。对DDR2 SDRAM的控制器处理的设计变得也就非常有必要。使用FPGA技术设计数字电路,

2、不仅可以简化设计过程,而且还可以减低整个系统的体积和成本,增加系统的可靠性。本次设计则使用Altear公司的Cyclone V代器件,经行开发的最小系统。本次设计使用的是Mircon公司的MT47系列的芯片,借助Altera公司提供的IP核所自动生成PHY接口。由于DDR2的读写驱动的要求,多次设计了电压的要求。本文对DDR2 SDRAM基本结构和原理进行了简单的介绍。并且阐述基于FIFO和PHY接口的DDR2设计方法。关键词 DDR2 FPGA 存储器控制器 FIFO毕 业 设 计 外 文 摘 要Title DDR2 Memory Controller Design based on FPG

3、A AbstractAs consumer electric class electronic products and portable communication products to multi-functional, high performance and low power consumption direction of rapid development, and then brings about a lot of data processing, the product of the system to the main storage device requiremen

4、ts more and more higher. At present, the DDR2 with its and high data transfer rate and low cost are more and more used in some high-end consumer electronics and portable products. Processing of DDR2 SDRAM controller design becomes and is very necessary.Digital circuit design using FPGA technology, n

5、ot only can simplify the design process, but also can reduce the size and cost of the whole system, increase the reliability of the system. This design USES Altear company Cyclone V generation device, the smallest system development.This design USES the Mircon MT47 series chips, and IP core provided

6、 by Altera corporation how can automatically generate the PHY interface. Driven requirements due to DDR2, speaking, reading and writing, and design the voltage requirements for many times.in this paper, the basic structure and principle of DDR2 SDRAM has carried on the simple introduction. And in th

7、is paper, the DDR2 design method based on FIFO and PHY interfaceKey Words DDR2 FPGA memory controlle FIFO第 I 页 共 I 页 本 科 毕 业 设 计目录1 绪论12 动态随机存储器3 2.1 同步动态随机存储器原理与结构3 2.2 双倍动态随机存储器原理与特点3 2.3 DDR2随机存储器的简介 43 可编程逻辑器件原理7 3.1 FPGA原理7 3.2 FPGA结构7 3.3 FPGA器件开发的优点94 外围电路设计11 4.1芯片的选择和介绍11 4.2 FPGA电源设计15 4.3

8、 FPGA时钟和复位设计16 4.4 FPGA的配置设计175 软件设计与仿真18 5.1 FPGA的设计开发流程18 5.2 系统设计软件介绍19 5.3 VHDL语言的介绍19 5.4 系统设计20结论29致谢30参考文献31第 1 页 共 31 页 本 科 毕 业 设 计1 绪论随着大规模、甚大规模的集成电路的设计技术的飞速发展,科技的日益更新,跟随而来的是各种的芯片的弄能不段的变复杂,而同时,数字产品例如掌上电脑、网络设备、音频设备、高清电视等,对高性能的内存的需求也越来越高。为了满足这一要求,JEDEC(电子设备工程联合委员会)发布了JESD79-2B规范,即DDR2 SDRAM标准

9、,使得处理大数据和快速存取数据得到了可能,尤其是在今天,所需的数据处理更加复杂的情况下,以其低的功耗,高的速率,成熟的工艺,使得其得到了广泛的应用。随着对DDR2控制器一直不断的研究,DDR2控制器的性能也在逐步的提升,DDR2控制器的数据宽带增加,可以在一个时钟周期内传输64bits数据;支持的DDR2存储器的内存容量大量增加,从512Mb到1Gb甚至更大;DDR2器件的时钟频率不断的提高,其传输速率不断变快,所要求的的DDR2控制器的时钟速度也越来越高。由于FBGA的封装形式具有更好的电气性能和散热性能,DDR2采用这种形式来最大可能的减小了寄生阻抗,使得工作的频率变超过DDR变得更高。D

10、DR2采用1.8V电压,石凳功耗大大的降低。同时,数字时序电路的设计也越来越复杂,所有需的芯片的资源和板级资源也越来越大,而FPGA却具有大量的时序逻辑资源,其可编程性使得数字电路设计可根据自己的需要来以硬件描述语言经行系统的逻辑设计,而且可以在设计的过程中经行时序要求的修改来达到满足设计的要求。FPGA芯片的的时序频率高,适合快速处理器器件的开发。FPGA器件具有高的可靠性,而且功耗还很低。使用FPGA器件开发使得开发变的简单,尤其是对要反复经行开发的设计,可以很大程度上,降低开发的成本。随之软件系统集成读越来越高,产生了针对硬件开发的语言,其使得硬件开发变得简易,而且使得硬件电路的设计可以

11、从软件的方式上经行开发设计,从而节省了开发着的时间,缩短了开发的流程,并且和可编程器件结合使得在同样的资源的情况下,进行可重复的设计变成了可能。最常用的硬件描述语言用VHDL和Verilog,本次设计是借助VHDL语言进行的软件设计。本次设计的主要章节安排如下1:绪论部分,讲述本次设计的背景和章节的安排2:动态随机存储器部分,讲述本次设计中动态随机存储器发张及其原理结构和功能。第 31 页 共 31 页 本 科 毕 业 设 计3:可编程逻辑器件的原理部分,讲述本次设计中的FPGA器件的原理、内部结构和使用这个器件开发的优势。4:本次设计的外围电路的设计部分,讲述本次设计中所采用的芯片、工作原理

12、及硬件电路的原理图5:本次设计的系统设计部分,主要是软件开发部分,讲述了本次开发所用到的开发工具和具体的设计步骤。2 动态随机存储器 由于现在所需要处理的数据量越要越大,虽然电路的响应时间也越来越快,但是,依旧满足不了所需要处理的数据的量,因此需要将信号经行锁存,而DDR技术发展已经成熟,因此,本次设计借助于DDR2经行设计。2.1 同步动态随机存储器原理与结构 同步动态随机存储器,也就是我们所说的SDRAM(Synchronous Dynamic Random Access Memory),同步是指 Memory工作需要的同步时钟,内部命令的发送与数据传输都要以它为基准;动态是指存储阵列需要

13、不断刷新来保证数据不丢失;随机指的是数据不是线性依次存储,而是由指定地址的进行数据的读写。 SDRAM又称为DRARM,因为它需要不断的刷新(Refresh)才能保留住原来的数据。 SDRAM是多Bank结构,例如在一个有两个Bank的SDRAM的模组中,其中一个Bank在进行预充电同时,另一个Bank却马上可以被读取,这样当进行了一次读取后,又马上去读取已经预充电Bank的数据时,就不需等待而是可以直接读取了,大大提高了存储器的访问速度。 SDRAM具有多种的工作模式,其内部操作是一个非常复杂的有限状态机。从大体上讲SDRAM的引脚主要分为以下三种功能: 1、信号的控制:包括片选引脚、时钟使

14、能引脚、时钟引脚、行列地址选择引脚、读写有效以及数据有效。 2、要输入的地址引脚:其是时分复用引脚,为存储器的行或者列地址的信号。 3、数据信号:为双向I/O引脚,受数据有效位控制。2.2 双倍动态随机存储器原理与特点 双倍速率同步动态随机存储器,也就是人们所说的DDR(Double Data Rate)。严格的将DDR应该叫做DDR SDRAM,人们习惯称为DDR。DDR技术是在SDRAM技术的基础上发展而来的,其基本结构任然为SDRAM。 SDRAM仅能在一个时钟周期内传送一次数据,它是在时钟的有效的上升沿期间进行数据传输;而DDR内存则是在一个时钟周期内进行两次的数据传输,它能够在时钟的

15、上升沿和下降沿各进行一次的数据传输,因此又被人们称之为双倍速率同步动态随机存储器,即DDR。在相同的时钟的频率下DDR的存取速度远远的超出了SDRAM. 在与SDRAM相比,DDR其内部的电路设计更为先进,使地址的指定、数据的输入和输出的主要步骤既能够独立的执行,又可以保持与CPU的时钟的完全同步。DDR本质上是不需要提高时钟频率就能加倍提高SDRAM的传输速度,它在时钟脉冲的上升沿和下降沿来读入或者读出数据,因此其数据存取速度比标准SDRAM的存取速度快一倍。 2.3 DDR2随机存储器的简介DDR2/DDR II(Double Data Rate 2)SDRAM是由JEDEC(电子设备工程

16、联合委员会)进行开发的新生代内存技术标准,它与第一代的DDR内存技术标准的最大不同就是,虽然同样采用了上升沿和下降沿同时传输数据,但DDR2却拥有者第一代DDR的2倍的预存取功能。 DDR2引入了三项新的技术,它们是OCD、ODT和PostCAS。OCD(Off-Chip Driver):即离线驱动调整,DDR 可以通过OCD来提高系统信号的完整性。通过调整其上拉/下拉的电阻值使两者电压保持相等。通过使用OCD技术,减少DQ-DQS的倾斜度从而提高系统信号的完整性;通过控制电压提高信号的品质。ODT:即片内终结电阻。实际上,不同的内存模组要求的终结电路不一样,而终结电阻的大小决定了数据线的信号

17、比和反射率,终结电阻小的则数据线信号的反射低,但是信噪比也比较低;而终结电阻高的,则数据线的信噪比较高,但是信号的反射也会大大增加。DDR2能够设计并且借助内建电阻来自动调节,保证得到最佳的信号。Post CAS:是为了提高DDR2的有效利用率来设定的。在Post CAS操作中,CAS信号能够被插入到RAS信号的后面的一个时钟周期上,CAS的命令也可以在附加延迟AL(Additive Latency)后面仍保持着有效。则原来的tRCD(RAS到CAS的时间延迟)会被AL所取代,AL可以被设置为0至4之间的整数。CAS的信号是放在了RAS信号后面额一个时钟周期上,所以ACT信号和CAS信号永不会

18、产生交集而发生碰撞。但由于是采用双通道运行的,所运行的速度理论上是DDR的2倍。 由于对 DDR2 SDRAM的访问方式是基于突发模式的;进行读写时,要事先选定一个起始的地址,并且能够按照事先编程设定的突发字节长度(4或8)和突发的顺序来依次的进行读或者写的访问.访问操作的开始于一个激活命令, 后面紧跟就是读数据命令或者写数据的命令。同激活命令同时到达的地址位包含着所要存取的bank和行.而与读命令或者写命令同步达到的地址位还包含了突发存取起始的列地址,还决定着是否发布自动预充电命令。 本次设计所采用的是Micron公司的芯片,其内部原理图结构如图2-1,其各个引脚功能在第四章讲述。图2-2为

19、读数据的命令时序,图2-3为写命令的时序。 图2-1 Micron DDR2内部结构原理图。 突发读命令时序图2-2 突发读操作 突发写操作时序 图2-3 突发写操作3 可编程逻辑器件原理 在数字电路中,由于对于时序的要求而来回反复的进行设计,因此而诞生了基于可编程的逻辑器件,从而能够快速的进行时序电路设计,而本次设计借助于基于LUT的FPGA可编程器件来进行设计。3.1 FPGA原理FPGA即现场可编程门阵列,采用了逻辑单元阵列LCA(Logic Cell Array)的这样一个概念,其内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(In

20、put Output Block)和内部连线(Interconnect)三个部分。FPGA借助于小型查找表(161RAM)来实现组合逻辑,而每个查找表后面连接到一个D触发器输入端,由触发器驱动其他逻辑电路或者I/O,因此即能实现逻辑功能也能实现时序功能,通过金属连线进行互相连接或者连接到I/O模块。FPGA的逻辑功能的实现是通过向内部静态存储单元加载编程数据来完成的,存储在存储单元的值决定了逻辑功能和连线,并最终决定了FPGA所能完成的功能,从理论上FPGA允许无限次的编程。 3.2 FPGA结构FPGA是基于查找表技术的,但已经整合了常用的基本功能(如RAM、时钟管理和DSP)的硬核(ASI

21、C型)模块。如图3-1所示,FPGA芯片主要由7部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元。图3-1 FPGA芯片的内部结构示意图每个模块的功能如下:1.可编程输入输出模块(IOB)可编程输入/输出单元简称I/O单元,是芯片与外界电路的完成电气连接的接口部分,FPGA内部的I/O是按组分类,每一组都能够支持独立的I/O标准。可以使用软件的灵活配置,来达到所需要的电气特性。I/O口的频率非常高,对信号的处理非常快。为了更好的管理和达到多的电气要求,FPGA的IOB被划分成了若干个组(bank),每个bank的接口的

22、电气标准由其接口电压的VCCO决定,一个bank仅允许一种VCCO,但不同bank的VCCO可以是不同的。2.可配置逻辑块(CLB)CLB是FPGA内部的基本逻辑阵列单元。CLB的实际数量和特性根据所采用的器件的不同而各有不同,但每个CLB都包含着一个可配置的开关矩阵,此矩阵是由4或6个输入、一些多路选择器和触发器组成。3.数字时钟管理模块(DCM)大多数FPGA均给提供数字时钟管理。4.嵌入式块RAM(BRAM)大多数FPGA都都给内嵌的RAM块,使得FPGA的使用范围和灵活度同时也大大 的提高。单片RAM块的容量为18kbits,即位宽为18bits、深度为1024,也可以根据需要改变位宽

23、和深度,但要满足两个原则:(1)位宽深度不能大于18kbits;(2)位宽最大不能超过36bits。可以讲ram块进行级联,来达到更大ram块,此时则不在首以上两点的限制。5.丰富的布线资源布线资源是FPGA内部各个单元的进行连接资源,其连线的跨度和工艺决定着电路中的信号在连线上驱动的能力和传输的速度。在设计中,布局布线器可以自动地选择布线资源来使得各个模块经行连接。6.底层内嵌功能单元内嵌功能模块主要指的是DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核(SoftCore)。 FPGA是由存放在片内RAM中的程序来设置其工作

24、状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。3.3 FPGA器件开发的优点使用FPGA器件设计数字电路,不仅仅可以简化设计的过程,而且可以降低整个系统的

25、体积和成本,增加系统的可靠性。FPGA设计数字系统优势有一下几点(1) 设计灵活 使用FPGA器件,其逻辑功能不会有所限制,而且其逻辑的修改可以在系统设计和使用的过程中的任何阶段进行修改,而修改过后只需要对其重新在编译即可,给系统的设计带来了大的灵活性(2) 增加功能密度 功能密度是值在给的空间上所能集合成的逻辑功能的数据。可编程逻辑器件内所具有的资源很高,一片FPGA就可以替代几片、几十片、甚至是上百片中小规模的数字集成电路芯片。用FPGA实现功能时,所使用的芯片数量很少,从而减少了使用芯片的数目,从而节省了PCB资源。(3) 提高可靠性 减少芯片和PCB印刷的数目,不仅能减小系统的规模,而

26、且大大提高了系统的可靠性。具有较高的集成度系统比用许多低集成度标准芯片设计的相同系统具有高的可靠性。使用FPGA器件减少了实现系统所需要的芯片数目,在板级上,引线的减少和焊点数的减少,从而是得整个系统的可靠性能提高。(4) 工作速度快 FPGA器件的工作速度非常快,一般可以达到几百兆赫兹,远远大于其他绝大部分器件,而又使用FPGA器件后实现系统所需要的电路级数少,从而整个系统的工作速度就会增加。(5) 减小设计周期 由于FPGA器件的可编程性,设计一个系统所需要的时间比传统的方法大为缩短。FPGA器件集成度非常高,使用时板级设计简单。同时,在样板设计成功之后,由于开发工具先进,自动化高,对其进

27、行逻辑修改液十分简便快捷。因此,使用FPGA器件可以大大缩短系统的设计周期,加快产品的投放市场的速度,提高产品的竞争力。(6) 增加系统的保密性 很多FPGA器件都具有加密功能,在系统中广泛的使用FPGA器件可以有效地防止产品的非法复制。(7) 成本的减低 使用FPGA器件实现系统时,首先,由于器件的修改方便,设计周期短,使系统的研制开发费用降低;其次,FPGA器件可使印刷线路板和需要的插接减少,从而使系统的制造费用降低;其三,使用FPGA使得系统的可靠性提高,维修工作量减少,进而使系统的维修费用降低。4 外围电路设计 由于本次DDR2接口的设计完全是借助于FPGA的开发,所有仅需的FPGA的

28、核心电路即可,该模块包含FPGA供电电压、DDR2供电电压、配置编程模块、晶振和复位模块,5V电压输入模块和18V电压输入模块。 4.1 芯片的选择和介绍本次设计所采用的硬件元器件选型见表4-1。表4-1 元器件选型表名称型号功能简述FPGA芯片5CGXFC7C7F23C8详细内容见3.1.1节。DDR2芯片MT47H64M16 详细内容见3.1.3节。1.8V/2.5V电源TPS76801将5V电源转成1.8V和1.1V,供给所需电路。1.1V电源TPS62000将5V电源转成1.5V,提供FPGA内核电压。4.1.1 5CGXFC7C7F23C8介绍 本次设计的所采用的芯片为Cyclone

29、 V代(图4-1),为贴片型芯片。 图4-1 Cyclone V 芯片 Cyclone V代采用TSMC的28nm低功耗工艺进行开发的,降低了功耗,同时也提高了其性能。其具有非常丰富的I/O接口。4.1.2 MT47H64M16介绍 本次设计所采用的DDR芯片为MT47H64M16,该芯片引脚图如4-2。图4-2 MT47H64M16引脚图 其各引脚功能为: A12:0:地址输入引脚,对于激活命令提供行地址,同时也是数据输入的地址。 BA2:0:bank选择输入引脚,用来确定DDR2里面的所要读写数据的bank。 CK,CK#:时钟输入信号,CK和CK#为差分时钟输入,所有的地址和控制信号在C

30、K的上升沿和CK#的下降沿进行采样输入。 CKE:时钟的允许输入信号。 CS#:片选信号,高电平有效。 LDM,UDM,DM:输入数据的屏蔽信号,DM是数据写数据的屏蔽信号,当DM为高时,数据允许输入。DM取样在DQS的上升沿和下降沿。LDM是DM中地8为即DQ7:0,UDM是DM中的高8位,即DQ15:8。 ODT:可进行设置的内部终结电阻。 RAS#,CAS#,WE#:命令控制信号。 DQ15:0:双向数据总线,用来传输数据。 DQS,DQS#:数据选通。 LDQS,LDQS#:数据选通通道,对于低字节位。 UDQS,UDQS#:数选选通通道,对于高字节位。 VDD:器件的供电电路,供电电

31、压1.8V,浮动范围不能超过0.1V。 VDDQ:DQ的电压输入端口,用来提高器件的抗干扰性。其电压为1.8V,浮动范围不能超过0.1V。 VDDL:DLL的电压输入端口,其电压为1.8V,允许电压浮动不能超过该电压的0.1V的差值。 VREF:SSTL_18的参考电压输入端口。 VSS:参考地端。 VSSDL:DLL的地端。 VSSQ:供电端,为DQ的端,用来提高抗干扰性。 NC:该引脚不进行连接。 NF:没有功能的引。 NU:没有使用的引脚。 RFU:保留的没有使用的引脚,A13的行地址。4.1.3 TPS76801介绍 TPS76801(图4-3)为TI公司生产的一款交流交流变压模块,其

32、输入电压范围比较大,小至2.7V,大到10V,其输出电压范围为1.2V到5.5V。还具有热中断功能,并且响应速度非常快。图4-3 TPS76801的引脚图 其引脚功能说明如下: GND:参考接地端,一般接电源负极。 EN#::使能端,高电平时有效 IN:要转变电压的输入电压端口,其中可以取从2.7V到10V的电压。 PG:即power-good端口,用来指示输出的电压是否良好,当输出电压浮动超出2%时,其输出为高电平,否则为低电平。 FB:可调节电压的电压输入反馈,用分压网络来生成所需要的电压。 OUT:所需要的电压的输出引脚。4.1.4 TPS62000介绍 TPS62000同样也是TI公司

33、生产的一款直流直流变压芯片,其输入电压范围较小,从2V到5.5V,但其输出电压可以从0.8V到其所输入电压直接变换,输出驱动电流较大。图4-4 TPS62000的引脚图 其引脚功能如下: Vin:电压所需要的转换的电压的输入引脚。 FC:旁路去耦端口,外接一个0.1uF的电容。 GND:参考零势能点。 PG:输出的电压是否良好的标志,PG和输出端借一个上拉电阻,当输出的电压在正常输出的92%时,则是定电平,否则输出高电平。 FB:复合电压输出功能的反馈引脚,在可调节的模式下,外接分压电阻来获取所需要的电压。 PGND:电压的地引脚,所有的电压地全部链接到该引脚。 L:该引脚连接到一个电感上,该

34、引脚是个开关引脚,在芯片中连接的内部MOSFETS的漏极。 EN:允许位,当高电平时开启,低电平时,强制该器件进入关闭模式来减少供电电流,小于1uA。 SYNC:同步输出一个额外的信号输入端,用来获取所需要的电压的转换频率和外部的达到一直。 ILIM:转换电流的限制,在ILIM和GND连接使其设置电流限制在600mA。或在ILIM和Vin之间连接,使其限制电流在1200mA。4.2 FPGA电源设计 由于本次设计采用的是Cyclonev代,其所就有的电压值是1.1V,而且配置电路则需要2.5V,而由于有借助了PHY核,则有需要SSTL1.8的电压。 本次设计借助于TI公司的TPS768xx来经

35、行2.5V、1.8V电压设计。同样,5V也是借用模块来直接使用,本次设计不做讨论。本设计采用TI公司的TPS76801芯片产生2.5V电压,TPS76801的输出电压范围值为1.2V-2.5V,直流直流变换芯片TPS76801工作在可调输出模式,其输出电压计算公式为: Vo=Vref (R7R8)其中,Vref为内部参考电压,为1.1834V,实际可取值 R7=33.2k,R8=30.1k。 图4-5 2.5V产生模块同理,可以借助TPS76801来设计1.8V电压模块,其中VCC=5V。图4-6 1.8V电压产生模块 对于1.1V模块,由于TPS76801内部的参考电压大于要生成的电压,所以

36、采用TPS62000器件,同样是TI公司生产的一款直流-直流变压模块,用来产生1.1V。其输出电压公式 Vo=Vref (R13R14)其中Vref为0.45V,由于Vo=1.1所有可取R13=13K,R14=9K图4-7 1.1V电压产生模块(VCC=5V)4.3 FPGA时钟和复位设计 一个可编程芯片,在上电的瞬间进行内部参数的初始化时需要一定的时间,虽然这个时间非常短,但这个时芯片却无法立即进入工作状态。通常称上电初始化这些工作为复位, 能够完成这个功能的电路称之为复位电路。本FPGA 芯片使用的是低电平复位,手动复位,S1 按下之后产生低电平(图4-8)。 图4-8 复位电路设计 晶振

37、是给电路提供基准频率的电气元器件,通常可分为有源晶振和无源晶振两大类,无源晶振的芯片内部具有振荡器,晶振信号电压根据外设的起振电路而定,可以采用不同的电压,但是无源晶振的信号质量与精度都比较差,需要精确的外围匹配电路。有源晶振则不需要芯片的内部振荡器,就可以提供高精度的频率基准,信号的质量比无源晶振好,而本次设计对时序的稳定性要求高,所以本次设计所采用晶振是50MHz的有源晶振作为整个系统的时钟输入。图4-9为晶振电路原理设计图。图 4-9系统时钟源设计4.4 FPGA的配置设计 Cyclone系列的芯片支持多种配置模式,主要有主动串行配置模式(AS)、主动并行配置模式(AP)、被动串行配置模

38、式(PS)、被动并行配置模式(FPP)及JTAG配置模式。在本次设计使用是最简单的JTAG配置模式。 图4-10 FPGA 的JTAG配置5 软件设计与仿真5.1 FPGA的设计开发流程 一般的说来,一个完整的FPGA系统开发流程主要包括电路设计、功能仿真、综合优化、综合后仿真、实现、布线后仿真与验证、板级仿真验证与调试等主要步骤。(1)电路设计根据系统的要求进行电路的设计,最常用的设计方法是用硬件描述语言来进行描述电路的功能设计,常用的两种硬件描述语言为VHDL和Verilog,本次设使用的是VHDL语言。(2)功能仿真当电路设计完成后,还需要对电路的设计的功能进行功能仿真,来判断所设计的电

39、路是否能够满足系统的功能。仿真的结果则可及时发现设计中存在的错误,使得系统的设计进度加快,并且使设计的系统的可靠性能提高。功能仿真又称为前仿真。(3)综合优化综合是将描述电路的文件由开发工具译成由门电路、触发器和随机存储器等由基本的逻辑单元组成的逻辑网表;优化是根据约束条件对生成的逻辑功能连接进行自动的优化。(4)综合后仿真当综合完成后需要检查综合结果与原设计的系统工程的功能是否能达到一致,进行综合后仿真。在后仿真时,将综合生成的延时文件加载到综合仿真模型中,用来估计门延时给系统所带来的影响。(5)实现与布局布线综合的结果是由一些最基本逻辑单元所组成的逻辑网表,与FPGA内部的实际配置仍有不同

40、。此时就有借助FPGA芯片厂商提供的工具,根据所采用的器件的型号,将综合后的逻辑网表适配到具体的FPGA器件上。(6)时序仿真与验证将布局布线的所产生的的时延文件加载到设计生成的网表中,所进行的仿真就是时序仿真,又称为后仿真。在布局布线之后所生成的延文件中含有的所有的延时信息,所以在布局布线完成之后的仿真是最精确的,能够比较准确地反映出FPGA内部逻辑单元的的实际工作情况。(7)板级仿真与验证如果要求较高的数据传输的速率,还需要经行电路的板级仿真与验证,来测试系统功能是否很好的满足设计的结果。 (8)加载配置将开发工具所生成的网表文件下载到目标芯片中,来实现板级的功能的完成,从而将整个系统设计

41、完成。5.2 系统设计软件介绍 本次设计所用仿真工具为ModelSim,设计工具为Quartus II. ModelSim的仿真结果非常精细,精密度非常高,不但本身具有硬件描述语言设计功能,而且能够与Quartus ii具有无缝隙的连接。 Quartus ii是Altera公司的开发工具,具有多种形式的原理或硬件描述的输入形式,能够完成对Altera公司设计的芯片的布局布线的。并且生成对应配置网表文件.本次设计说采用的芯片是Altera公司生成的Cyclone V代芯片,使用Quartus ii软件进行开发,并且使用ModelSIm经行仿真。5.3 VHDL语言的介绍本论文FPGA程序设计采用

42、的就是VHDL语言。VHDL的中文名是超高速集成电路硬件描述语言,其是美国国防部在上世纪70年代末和80年代初进行的超高速集成电路(VHSIC)计划的产物。VHDL语言具有良好的可读性。支持硬件的设计、验证、综合和测试,并且能够支持硬件的实现及硬件设计数据的维护、修改。VHDL是一种强型的语言,并且能够完成多层次,多结构的硬件逻辑设计。用VHDL来进行数字系统的结构、功能、行为和接口设计,由于其具有和和计算机高级语言的类似性,使得设计开发不需要考考具体的逻辑芯片资源而从高层次进行设计而变快。VHDL的设计将一个设计分成两个部分,对外可见的实体部分和对外不可见的逻辑部分。用VHDL来来进行设计开

43、发,其优势如下:支持有顶层到底层或者由底层到顶层的设计方法,支持同步、异步以及随机的电路设计,被绝大多数开发软件支持。VHDL是一种强型语言,结构紧密,利于大型系统的设计。不依赖于特定的器件。可以进行多层次的进行系统的设计,可以从具体的逻辑器件到系统的模型来进行开发。 VHDL的设计模型分为4个独立的模块,分别为实体(entity)部分、结构体(architecture)部分、配置(configuration)部分和程序包(package)部分。5.4 系统设计5.4.1 顶层原理描述DDR2存储器控制器设计分成4个模块,数据的写入,数据的读出,写入写出数据的仲裁,调用的altera DDR2

44、 phy核,进行来进行ddr2的数据的存储和读出。当被要求数据写入时,数据从数据的写输入模块经过读写的仲裁器加载到ddr2 phy,经过ddr2 phy传入到ddr2内存;当被要求读数据时,地址从数据的读出模块传给仲裁器,在仲裁器中,判别是否还要写数据,如果没有些要求,则通过仲裁器传输给ddr 2 phy,将数据传输给ddr2内存中,并且将返回的数据传输给读数据模块。 5.4.2 FIFO原理 FIFO即First in First out,先进先出结构。但数据被要求写入时,数据从写入段在时钟的上升沿或者下降沿进行写入,当被求将数据读出时,也是在时钟边沿的作用下按照数据写入的顺序进行输出。图5

45、-1 FIFO简单原理示意图 其中,本次设计使用的FIFO调用的altera公司提供的FIFO软IP 。 在图5-2中的图,第一图找到所需要的FIFO宏功能模块,采用的是VHDL语言,器件选择为Cyclone V代。第二图为FIFO端口和内存的设计,FIFO中是否被写满、是否被读空的标志的输出端口,写入写出多少数据的端口。并且也可以设置FIFO的容量等。其所生成的模块的仿真波形为图5-3。 图5-2 FIFO IP宏模块调用 图5-3 FIFO波形仿真 5.4.3 写入数据端口设计 写数据输入模块是当有写要求时,将数据、地址首地址和数据的个数传输给FIFO进行寄存,当PHY的的命令要求被准备好之后,将数据和地址经仲裁机构传送给PHY,由PHY传送到DDR2. 图5-4数据流写入图 图5-5写入模块 其端口信号定义 1)SYS_RST:写复位信号,高电平有效,当复位时,内部地址置零。 2)WR_CLK

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号