基于FPGA的DDR2存储器控制器设计-河北科技大学_第1页
基于FPGA的DDR2存储器控制器设计-河北科技大学_第2页
基于FPGA的DDR2存储器控制器设计-河北科技大学_第3页
基于FPGA的DDR2存储器控制器设计-河北科技大学_第4页
基于FPGA的DDR2存储器控制器设计-河北科技大学_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

页共31页3:可编程逻辑器件的原理部分,讲述本次设计中的FPGA器件的原理、内部结构和使用这个器件开发的优势。4:本次设计的外围电路的设计部分,讲述本次设计中所采用的芯片、工作原理及硬件电路的原理图5:本次设计的系统设计部分,主要是软件开发部分,讲述了本次开发所用到的开发工具和具体的设计步骤。2动态随机存储器由于现在所需要处理的数据量越要越大,虽然电路的响应时间也越来越快,但是,依旧满足不了所需要处理的数据的量,因此需要将信号经行锁存,而DDR技术发展已经成熟,因此,本次设计借助于DDR2经行设计。2.1同步动态随机存储器原理与结构同步动态随机存储器,也就是我们所说的SDRAM(SynchronousDynamicRandomAccessMemory),同步是指Memory工作需要的同步时钟,内部命令的发送与数据传输都要以它为基准;动态是指存储阵列需要不断刷新来保证数据不丢失;随机指的是数据不是线性依次存储,而是由指定地址的进行数据的读写。SDRAM又称为DRARM,因为它需要不断的刷新(Refresh)才能保留住原来的数据。SDRAM是多Bank结构,例如在一个有两个Bank的SDRAM的模组中,其中一个Bank在进行预充电同时,另一个Bank却马上可以被读取,这样当进行了一次读取后,又马上去读取已经预充电Bank的数据时,就不需等待而是可以直接读取了,大大提高了存储器的访问速度。SDRAM具有多种的工作模式,其内部操作是一个非常复杂的有限状态机。从大体上讲SDRAM的引脚主要分为以下三种功能:1、信号的控制:包括片选引脚、时钟使能引脚、时钟引脚、行列地址选择引脚、读写有效以及数据有效。2、要输入的地址引脚:其是时分复用引脚,为存储器的行或者列地址的信号。3、数据信号:为双向I/O引脚,受数据有效位控制。2.2双倍动态随机存储器原理与特点双倍速率同步动态随机存储器,也就是人们所说的DDR(DoubleDataRate)。严格的将DDR应该叫做DDRSDRAM,人们习惯称为DDR。DDR技术是在SDRAM技术的基础上发展而来的,其基本结构任然为SDRAM。SDRAM仅能在一个时钟周期内传送一次数据,它是在时钟的有效的上升沿期间进行数据传输;而DDR内存则是在一个时钟周期内进行两次的数据传输,它能够在时钟的上升沿和下降沿各进行一次的数据传输,因此又被人们称之为双倍速率同步动态随机存储器,即DDR。在相同的时钟的频率下DDR的存取速度远远的超出了SDRAM.在与SDRAM相比,DDR其内部的电路设计更为先进,使地址的指定、数据的输入和输出的主要步骤既能够独立的执行,又可以保持与CPU的时钟的完全同步。DDR本质上是不需要提高时钟频率就能加倍提高SDRAM的传输速度,它在时钟脉冲的上升沿和下降沿来读入或者读出数据,因此其数据存取速度比标准SDRAM的存取速度快一倍。2.3DDR2随机存储器的简介DDR2/DDRII(DoubleDataRate2)SDRAM是由JEDEC(电子设备工程联合委员会)进行开发的新生代内存技术标准,它与第一代的DDR内存技术标准的最大不同就是,虽然同样采用了上升沿和下降沿同时传输数据,但DDR2却拥有者第一代DDR的2倍的预存取功能。DDR2引入了三项新的技术,它们是OCD、ODT和PostCAS。OCD(Off-ChipDriver):即离线驱动调整,DDRⅡ可以通过OCD来提高系统信号的完整性。通过调整其上拉/下拉的电阻值使两者电压保持相等。通过使用OCD技术,减少DQ-DQS的倾斜度从而提高系统信号的完整性;通过控制电压提高信号的品质。ODT:即片内终结电阻。实际上,不同的内存模组要求的终结电路不一样,而终结电阻的大小决定了数据线的信号比和反射率,终结电阻小的则数据线信号的反射低,但是信噪比也比较低;而终结电阻高的,则数据线的信噪比较高,但是信号的反射也会大大增加。DDR2能够设计并且借助内建电阻来自动调节,保证得到最佳的信号。PostCAS:是为了提高DDR2的有效利用率来设定的。在PostCAS操作中,CAS信号能够被插入到RAS信号的后面的一个时钟周期上,CAS的命令也可以在附加延迟AL(AdditiveLatency)后面仍保持着有效。则原来的tRCD(RAS到CAS的时间延迟)会被AL所取代,AL可以被设置为0至4之间的整数。CAS的信号是放在了RAS信号后面额一个时钟周期上,所以ACT信号和CAS信号永不会产生交集而发生碰撞。但由于是采用双通道运行的,所运行的速度理论上是DDR的2倍。由于对DDR2SDRAM的访问方式是基于突发模式的;进行读写时,要事先选定一个起始的地址,并且能够按照事先编程设定的突发字节长度(4或8)和突发的顺序来依次的进行读或者写的访问.访问操作的开始于一个激活命令,后面紧跟就是读数据命令或者写数据的命令。同激活命令同时到达的地址位包含着所要存取的bank和行.而与读命令或者写命令同步达到的地址位还包含了突发存取起始的列地址,还决定着是否发布自动预充电命令。本次设计所采用的是Micron公司的芯片,其内部原理图结构如图2-1,其各个引脚功能在第四章讲述。图2-2为读数据的命令时序,图2-3为写命令的时序。图2-1MicronDDR2内部结构原理图。突发读命令时序图2-2突发读操作突发写操作时序图2-3突发写操作3可编程逻辑器件原理在数字电路中,由于对于时序的要求而来回反复的进行设计,因此而诞生了基于可编程的逻辑器件,从而能够快速的进行时序电路设计,而本次设计借助于基于LUT的FPGA可编程器件来进行设计。3.1FPGA原理FPGA即现场可编程门阵列,采用了逻辑单元阵列LCA(LogicCellArray)的这样一个概念,其内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。FPGA借助于小型查找表(16×1RAM)来实现组合逻辑,而每个查找表后面连接到一个D触发器输入端,由触发器驱动其他逻辑电路或者I/O,因此即能实现逻辑功能也能实现时序功能,通过金属连线进行互相连接或者连接到I/O模块。FPGA的逻辑功能的实现是通过向内部静态存储单元加载编程数据来完成的,存储在存储单元的值决定了逻辑功能和连线,并最终决定了FPGA所能完成的功能,从理论上FPGA允许无限次的编程。3.2FPGA结构FPGA是基于查找表技术的,但已经整合了常用的基本功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。如图3-1所示,FPGA芯片主要由7部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元。图3-1FPGA芯片的内部结构示意图每个模块的功能如下:1.可编程输入输出模块(IOB)可编程输入/输出单元简称I/O单元,是芯片与外界电路的完成电气连接的接口部分,FPGA内部的I/O是按组分类,每一组都能够支持独立的I/O标准。可以使用软件的灵活配置,来达到所需要的电气特性。I/O口的频率非常高,对信号的处理非常快。为了更好的管理和达到多的电气要求,FPGA的IOB被划分成了若干个组(bank),每个bank的接口的电气标准由其接口电压的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,也可以根据需要改变位宽和深度,但要满足两个原则:(1)位宽深度不能大于18kbits;(2)位宽最大不能超过36bits。可以讲ram块进行级联,来达到更大ram块,此时则不在首以上两点的限制。5.丰富的布线资源布线资源是FPGA内部各个单元的进行连接资源,其连线的跨度和工艺决定着电路中的信号在连线上驱动的能力和传输的速度。在设计中,布局布线器可以自动地选择布线资源来使得各个模块经行连接。6.底层内嵌功能单元内嵌功能模块主要指的是DLL(DelayLockedLoop)、PLL(PhaseLockedLoop)、DSP和CPU等软处理核(SoftCore)。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。3.3FPGA器件开发的优点使用FPGA器件设计数字电路,不仅仅可以简化设计的过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。FPGA设计数字系统优势有一下几点设计灵活使用FPGA器件,其逻辑功能不会有所限制,而且其逻辑的修改可以在系统设计和使用的过程中的任何阶段进行修改,而修改过后只需要对其重新在编译即可,给系统的设计带来了大的灵活性增加功能密度功能密度是值在给的空间上所能集合成的逻辑功能的数据。可编程逻辑器件内所具有的资源很高,一片FPGA就可以替代几片、几十片、甚至是上百片中小规模的数字集成电路芯片。用FPGA实现功能时,所使用的芯片数量很少,从而减少了使用芯片的数目,从而节省了PCB资源。提高可靠性减少芯片和PCB印刷的数目,不仅能减小系统的规模,而且大大提高了系统的可靠性。具有较高的集成度系统比用许多低集成度标准芯片设计的相同系统具有高的可靠性。使用FPGA器件减少了实现系统所需要的芯片数目,在板级上,引线的减少和焊点数的减少,从而是得整个系统的可靠性能提高。工作速度快FPGA器件的工作速度非常快,一般可以达到几百兆赫兹,远远大于其他绝大部分器件,而又使用FPGA器件后实现系统所需要的电路级数少,从而整个系统的工作速度就会增加。减小设计周期由于FPGA器件的可编程性,设计一个系统所需要的时间比传统的方法大为缩短。FPGA器件集成度非常高,使用时板级设计简单。同时,在样板设计成功之后,由于开发工具先进,自动化高,对其进行逻辑修改液十分简便快捷。因此,使用FPGA器件可以大大缩短系统的设计周期,加快产品的投放市场的速度,提高产品的竞争力。增加系统的保密性很多FPGA器件都具有加密功能,在系统中广泛的使用FPGA器件可以有效地防止产品的非法复制。成本的减低使用FPGA器件实现系统时,首先,由于器件的修改方便,设计周期短,使系统的研制开发费用降低;其次,FPGA器件可使印刷线路板和需要的插接减少,从而使系统的制造费用降低;其三,使用FPGA使得系统的可靠性提高,维修工作量减少,进而使系统的维修费用降低。4外围电路设计由于本次DDR2接口的设计完全是借助于FPGA的开发,所有仅需的FPGA的核心电路即可,该模块包含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.15CGXFC7C7F23C8介绍本次设计的所采用的芯片为CycloneV代(图4-1),为贴片型芯片。图4-1CycloneV芯片CycloneV代采用TSMC的28nm低功耗工艺进行开发的,降低了功耗,同时也提高了其性能。其具有非常丰富的I/O接口。4.1.2MT47H64M16介绍本次设计所采用的DDR芯片为MT47H64M16,该芯片引脚图如4-2。图4-2MT47H64M16引脚图其各引脚功能为:A[12:0]:地址输入引脚,对于激活命令提供行地址,同时也是数据输入的地址。BA[2:0]:bank选择输入引脚,用来确定DDR2里面的所要读写数据的bank。CK,CK#:时钟输入信号,CK和CK#为差分时钟输入,所有的地址和控制信号在CK的上升沿和CK#的下降沿进行采样输入。CKE:时钟的允许输入信号。CS#:片选信号,高电平有效。LDM,UDM,DM:输入数据的屏蔽信号,DM是数据写数据的屏蔽信号,当DM为高时,数据允许输入。DM取样在DQS的上升沿和下降沿。LDM是DM中地8为即DQ[7:0],UDM是DM中的高8位,即DQ[15:8]。ODT:可进行设置的内部终结电阻。RAS#,CAS#,WE#:命令控制信号。DQ[15:0]:双向数据总线,用来传输数据。DQS,DQS#:数据选通。LDQS,LDQS#:数据选通通道,对于低字节位。UDQS,UDQS#:数选选通通道,对于高字节位。VDD:器件的供电电路,供电电压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.3TPS76801介绍TPS76801(图4-3)为TI公司生产的一款交流——交流变压模块,其输入电压范围比较大,小至2.7V,大到10V,其输出电压范围为1.2V到5.5V。还具有热中断功能,并且响应速度非常快。 图4-3TPS76801的引脚图其引脚功能说明如下:GND:参考接地端,一般接电源负极。EN#::使能端,高电平时有效IN:要转变电压的输入电压端口,其中可以取从2.7V到10V的电压。PG:即power-good端口,用来指示输出的电压是否良好,当输出电压浮动超出2%时,其输出为高电平,否则为低电平。FB:可调节电压的电压输入反馈,用分压网络来生成所需要的电压。OUT:所需要的电压的输出引脚。4.1.4TPS62000介绍TPS62000同样也是TI公司生产的一款直流——直流变压芯片,其输入电压范围较小,从2V到5.5V,但其输出电压可以从0.8V到其所输入电压直接变换,输出驱动电流较大。图4-4TPS62000的引脚图其引脚功能如下:Vin:电压所需要的转换的电压的输入引脚。FC:旁路去耦端口,外接一个0.1uF的电容。GND:参考零势能点。PG:输出的电压是否良好的标志,PG和输出端借一个上拉电阻,当输出的电压在正常输出的92%时,则是定电平,否则输出高电平。FB:复合电压输出功能的反馈引脚,在可调节的模式下,外接分压电阻来获取所需要的电压。PGND:电压的地引脚,所有的电压地全部链接到该引脚。L:该引脚连接到一个电感上,该引脚是个开关引脚,在芯片中连接的内部MOSFETS的漏极。EN:允许位,当高电平时开启,低电平时,强制该器件进入关闭模式来减少供电电流,小于1uA。SYNC:同步输出一个额外的信号输入端,用来获取所需要的电压的转换频率和外部的达到一直。ILIM:转换电流的限制,在ILIM和GND连接使其设置电流限制在600mA。或在ILIM和Vin之间连接,使其限制电流在1200mA。4.2FPGA电源设计由于本次设计采用的是Cyclonev代,其所就有的电压值是1.1V,而且配置电路则需要2.5V,而由于有借助了PHY核,则有需要SSTL1.8的电压。本次设计借助于TI公司的TPS768xx来经行2.5V、1.8V电压设计。同样,5V也是借用模块来直接使用,本次设计不做讨论。本设计采用TI公司的TPS76801芯片产生2.5V电压,TPS76801的输出电压范围值为1.2V--2.5V,直流——直流变换芯片TPS76801工作在可调输出模式,其输出电压计算公式为:Vo=Vref×(1+R7/R8)其中,Vref为内部参考电压,为1.1834V,实际可取值R7=33.2k,R8=30.1k。图4-52.5V产生模块同理,可以借助TPS76801来设计1.8V电压模块,其中VCC=5V。图4-61.8V电压产生模块对于1.1V模块,由于TPS76801内部的参考电压大于要生成的电压,所以采用TPS62000器件,同样是TI公司生产的一款直流直流变压模块,用来产生1.1V。其输出电压公式Vo=Vref×(1+R13/R14)其中Vref为0.45V,由于Vo=1.1所有可取R13=13K,R14=9K图4-71.1V电压产生模块(VCC=5V)4.3FPGA时钟和复位设计一个可编程芯片,在上电的瞬间进行内部参数的初始化时需要一定的时间,虽然这个时间非常短,但这个时芯片却无法立即进入工作状态。通常称上电初始化这些工作为复位,能够完成这个功能的电路称之为复位电路。本FPGA芯片使用的是低电平复位,手动复位,S1按下之后产生低电平(图4-8)。图4-8复位电路设计晶振是给电路提供基准频率的电气元器件,通常可分为有源晶振和无源晶振两大类,无源晶振的芯片内部具有振荡器,晶振信号电压根据外设的起振电路而定,可以采用不同的电压,但是无源晶振的信号质量与精度都比较差,需要精确的外围匹配电路。有源晶振则不需要芯片的内部振荡器,就可以提供高精度的频率基准,信号的质量比无源晶振好,而本次设计对时序的稳定性要求高,所以本次设计所采用晶振是50MHz的有源晶振作为整个系统的时钟输入。图4-9为晶振电路原理设计图。图4-9系统时钟源设计4.4FPGA的配置设计Cyclone系列的芯片支持多种配置模式,主要有主动串行配置模式(AS)、主动并行配置模式(AP)、被动串行配置模式(PS)、被动并行配置模式(FPP)及JTAG配置模式。在本次设计使用是最简单的JTAG配置模式。图4-10FPGA的JTAG配置5软件设计与仿真5.1FPGA的设计开发流程一般的说来,一个完整的FPGA系统开发流程主要包括电路设计、功能仿真、综合优化、综合后仿真、实现、布线后仿真与验证、板级仿真验证与调试等主要步骤。(1)电路设计根据系统的要求进行电路的设计,最常用的设计方法是用硬件描述语言来进行描述电路的功能设计,常用的两种硬件描述语言为VHDL和Verilog,本次设使用的是VHDL语言。(2)功能仿真当电路设计完成后,还需要对电路的设计的功能进行功能仿真,来判断所设计的电路是否能够满足系统的功能。仿真的结果则可及时发现设计中存在的错误,使得系统的设计进度加快,并且使设计的系统的可靠性能提高。功能仿真又称为前仿真。(3)综合优化综合是将描述电路的文件由开发工具译成由门电路、触发器和随机存储器等由基本的逻辑单元组成的逻辑网表;优化是根据约束条件对生成的逻辑功能连接进行自动的优化。(4)综合后仿真当综合完成后需要检查综合结果与原设计的系统工程的功能是否能达到一致,进行综合后仿真。在后仿真时,将综合生成的延时文件加载到综合仿真模型中,用来估计门延时给系统所带来的影响。(5)实现与布局布线综合的结果是由一些最基本逻辑单元所组成的逻辑网表,与FPGA内部的实际配置仍有不同。此时就有借助FPGA芯片厂商提供的工具,根据所采用的器件的型号,将综合后的逻辑网表适配到具体的FPGA器件上。(6)时序仿真与验证将布局布线的所产生的的时延文件加载到设计生成的网表中,所进行的仿真就是时序仿真,又称为后仿真。在布局布线之后所生成的延文件中含有的所有的延时信息,所以在布局布线完成之后的仿真是最精确的,能够比较准确地反映出FPGA内部逻辑单元的的实际工作情况。(7)板级仿真与验证如果要求较高的数据传输的速率,还需要经行电路的板级仿真与验证,来测试系统功能是否很好的满足设计的结果。(8)加载配置将开发工具所生成的网表文件下载到目标芯片中,来实现板级的功能的完成,从而将整个系统设计完成。5.2系统设计软件介绍本次设计所用仿真工具为ModelSim,设计工具为QuartusII.ModelSim的仿真结果非常精细,精密度非常高,不但本身具有硬件描述语言设计功能,而且能够与Quartusii具有无缝隙的连接。Quartusii是Altera公司的开发工具,具有多种形式的原理或硬件描述的输入形式,能够完成对Altera公司设计的芯片的布局布线的。并且生成对应配置网表文件.本次设计说采用的芯片是Altera公司生成的CycloneV代芯片,使用Quartusii软件进行开发,并且使用ModelSIm经行仿真。5.3VHDL语言的介绍本论文FPGA程序设计采用的就是VHDL语言。VHDL的中文名是超高速集成电路硬件描述语言,其是美国国防部在上世纪70年代末和80年代初进行的超高速集成电路(VHSIC)计划的产物。VHDL语言具有良好的可读性。支持硬件的设计、验证、综合和测试,并且能够支持硬件的实现及硬件设计数据的维护、修改。VHDL是一种强型的语言,并且能够完成多层次,多结构的硬件逻辑设计。用VHDL来进行数字系统的结构、功能、行为和接口设计,由于其具有和和计算机高级语言的类似性,使得设计开发不需要考考具体的逻辑芯片资源而从高层次进行设计而变快。VHDL的设计将一个设计分成两个部分,对外可见的实体部分和对外不可见的逻辑部分。用VHDL来来进行设计开发,其优势如下:支持有顶层到底层或者由底层到顶层的设计方法,支持同步、异步以及随机的电路设计,被绝大多数开发软件支持。VHDL是一种强型语言,结构紧密,利于大型系统的设计。不依赖于特定的器件。可以进行多层次的进行系统的设计,可以从具体的逻辑器件到系统的模型来进行开发。VHDL的设计模型分为4个独立的模块,分别为实体(entity)部分、结构体(architecture)部分、配置(configuration)部分和程序包(package)部分。5.4系统设计5.4.1顶层原理描述DDR2存储器控制器设计分成4个模块,数据的写入,数据的读出,写入写出数据的仲裁,调用的alteraDDR2phy核,进行来进行ddr2的数据的存储和读出。当被要求数据写入时,数据从数据的写输入模块经过读写的仲裁器加载到ddr2phy,经过ddr2phy传入到ddr2内存;当被要求读数据时,地址从数据的读出模块传给仲裁器,在仲裁器中,判别是否还要写数据,如果没有些要求,则通过仲裁器传输给ddr2phy,将数据传输给ddr2内存中,并且将返回的数据传输给读数据模块。5.4.2FIFO原理FIFO即FirstinFirstout,先进先出结构。但数据被要求写入时,数据从写入段在时钟的上升沿或者下降沿进行写入,当被求将数据读出时,也是在时钟边沿的作用下按照数据写入的顺序进行输出。图5-1FIFO简单原理示意图其中,本次设计使用的FIFO调用的altera公司提供的FIFO软IP。在图5-2中的图,第一图找到所需要的FIFO宏功能模块,采用的是VHDL语言,器件选择为CycloneV代。第二图为FIFO端口和内存的设计,FIFO中是否被写满、是否被读空的标志的输出端口,写入写出多少数据的端口。并且也可以设置FIFO的容量等。其所生成的模块的仿真波形为图5-3。图5-2FIFOIP宏模块调用图5-3FIFO波形仿真5.4.3写入数据端口设计写数据输入模块是当有写要求时,将数据、地址首地址和数据的个数传输给FIFO进行寄存,当PHY的的命令要求被准备好之后,将数据和地址经仲裁机构传送给PHY,由PHY传送到DDR2.图5-4数据流写入图图5-5写入模块其端口信号定义1)SYS_RST:写复位信号,高电平有效,当复位时,内部地址置零。2)WR_CLK:写入数据信号时钟。3)WR_REQ:要数据要求,高电平有效,当写有效时,数据要求被写入模块内部的寄存器。4)WR_CMD:要写入的首地址+要要写入的个数,高24位即39-16位为写入首地址,低16位即15-0位为要写入的个数。5)WDA_VALID:写使能信号。6)WDA_IN:16位数字写入信号段。7)PLL_REF_CLK:全局变量时钟,为当数据从从写入模块寄存器输出时的时钟信号。8)AVL_READY:来自DDR2phy的信号。高电平时说明其DDR2的些准备完成。9)BUSY:输出信号,高电平时说明写模块内部存储器已满。10)AVL_BURSTBEGIN:输出信号,输出给PHYBURSTBEGIN.11)AVL_ADDR:写地址输出信号。12)AVL_WRDATA:4字的数据位,每一次传输64bits数据。13)AVL_BE:屏蔽位输出信号。14)AVL_SIZE:要写的字长,输出信号。15)AVL_WR_REQ:DDR2数字写要求。由于本次调用的ddr2phy核其突发字长为4位,当要写的数据个数大于写入模块中FIFO中的数据时,每一次写出64位。其屏蔽信号无屏蔽,即AVL_BE所有位都置1。当FIFO存储器没有写满时,并且内部数据任然大于4字的情况下,依旧每一次写出64位,也无屏蔽;当FIFO存储器内部数据小于4字的情况时,若有3字,AVL_BE将屏蔽一位,即AVL_BE的高两位为0,同理,若为2字时,AVL_BE将屏蔽两位,即AVL_BE的高4全部为零,若为1字时,AVL_BE高6位全部都为零。5.4.4读出数据端口设计当进行读要求时,所需要的地址传送给地址寄存器,然后等待仲裁器的判决,如果,PHY响应,并仲裁器准备好读命令之后,进行读操作,并且把读出的数据写回。图5-5读数据端口数据流示意图读数据端口设计模块图5-6数据读出模块其有效端口信号定义1)SYS_RST:读模块复位信号。2)RD_CLK:读所需要的时钟信号,用来进行CMD信号的读入。3)RD_REQ:读要求信号,高电平有效,当期有效时,数据被读入读数据模块的寄存器。4)RD_CMD:读要求的首地址和要求读的个数,高24位为首地址,低16位为要求的个数。5)PLL_REF_CLK:全局时钟信号,来存储来自于DDR的数据时钟信号。6)AVL_READY:DDR2初始化完成信号。7)AVL_RDA_VALID:从存储器中读出数据的使能信号。8)AVL_RDDATA:从读模块寄存器中读出的数据。9)RD_DA_CLK:读出数据的信号时钟,为输出信号。10)RDA_VALID:读出数据的允许位,为输出信号。11)RDA_OUT:读出的数据输出,16位的输出方式。12)BUSY:高电平有效,为输出信号,有效时说明内部存储器已满。13)AVL_ADDR:输出的地址位。14)AVL_SIZE:进行DDR读时所用的位数。15)AVL_RD_REQ:输出信号,读数据要求,高电平有效。当要求读数据时,并且其内部存储器不满的情况下,当要读的数据的地址和要写模块地址完成的方式一样。如果内部存储器还有数据时,经行数据的读出。5.4.5仲裁器设计进行数据是输入还是输出的仲裁,写的优先级要高于读的优先级。图5-7读数据流示意图仲裁器模块的设计图5-8仲裁器模块在图5-8中,其左端的信号WR...来自写模块信号;RD...来自读模块信号。AVL...连接到DDR2PHY核。在该模块中,来自写信好的优先级高于来自读模块的信号。5.4.6顶层文件设计对于Quartusii来说,软件内部镶嵌了常用的一些IP核,本次所调用的为DDR2SDRAMControllerwithUniPHY.其调用方式如图5-9。所选器件为CycloneV代,所采用的语言为VHDL。DDR2PHY核调用方法及设计图5-9DDR2-宏调用在本次设计所调用的UniPHYIP核参数中,所选软件速度为8,即设置SpeedGrade为8;突发长度为4,即设置burstlengh为4。所需要连接的DDR2为MICRONMT47H64M16HR-25,Presets选择为MT47H64M16HR-25,其余参数选择默认即可。图5-10DDR2UniPHY核设置1图5-11DDR2UniPHY核设置2其最终所生成的IP核模块如图5-12,该模块右侧所需连接为DDR2SDRAM存储器器件,左侧为本次所设计的输入输出及仲裁模块。图5-12DDRUniPHY核将所有的模块设计完成之后,然后进行顶层设计,将各个模块用信号线进行连接,最终所生成的顶层模块如图5-13所示。图5-13顶层模块原理图结论在本次设计中,在查阅了大量的资料与文献的基础上,而进行系统级别的设计。在设计的过程中,了解DDR2存储器原理,FPGA开发设计的具体的方法,VHDL的编程的思想。硬件方向上完

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论