毕 业 设 计 论 文Word下载.docx
- 文档编号:5263374
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:50
- 大小:921.79KB
毕 业 设 计 论 文Word下载.docx
《毕 业 设 计 论 文Word下载.docx》由会员分享,可在线阅读,更多相关《毕 业 设 计 论 文Word下载.docx(50页珍藏版)》请在冰点文库上搜索。
Abstract
ThispaperintroducesthedevelopmentprocessandFPGAhardwaredevelopmentlanguageandthedevelopmentenvironmentofSDRAMQuartusIIandstructuralcharacteristicsandworkingprinciple,accordingtotheworkingprincipleofSDRAM,sequencecontrolandinstructioncharacteristics,aschemebasedonFPGASDRAMcontrollerisdesigned.SDRAMcontrollerdesignmainlybythemastercontrolmodule,signalmodule,datapathmoduleandparametermodulecomposition.ThisdesignsolvedaproblemaboutthecontrollingcomplexityofSDRAMcontroller,andgivesthesimulationresultsbyusingVerilog.Thesimulationresultsshowthatusingthismethodtodesignthecontrollercanrealizethesystemisconvenient,reliableoperationofSDRAM.
Keywords:
SDRAMcontrollerFPGAControlmoduleSoftwaresimulation
目录
摘要I
AbstractII
第一章绪论1
1.1课题背景1
1.2课题研究的意义1
第二章FPGA与QuartusII软件简介2
2.1FPGA简介2
2.1.1FPGA背景2
2.1.2FGPA结构原理2
2.2QuartusII软件简介3
2.3硬件描述语言Verilog4
2.4FPGA开发过程5
第三章SDRAM的技术介绍6
3.1存储器概况6
3.2SDRAM简介6
3.2.1SRAM和DRAM6
3.2.2SDRAM发展过程7
3.3SDRAM工作原理和基本操作8
3.3.1SDRAM存储的工作原理9
3.3.2SDRAM的引脚信号9
3.3.3SDRAM基本命令10
3.3.4SDRAM初始化10
3.3.5SDRAM读、写操作11
3.3.6终止操作12
第四章SDRAM控制器设计13
4.1SDRAM控制器13
4.2主控制模块14
4.3信号产生模块16
4.4参数模块18
4.5数据通路模块19
第五章SDRAM的读、写仿真20
5.1SDRAM控制器时序仿真20
5.1.1QuartusII8.0时序仿真20
5.1.2读仿真时序21
5.1.3写仿真时序21
5.2仿真结果分析22
结论24
参考文献25
致谢26
附录27
第一章绪论
1.1课题背景
伴随着电子信息技术的飞速发展和其在通讯、工业、商业、医疗等方面的广泛应用,人们对信息的需求逐渐向着更快、更多、更准确发展。
一般的传统单片机电子器件已经难以满足这种高速数据传输的要求。
因此,现场可编程门阵列FPGA(Field-ProgrammableGateArray)以它的集成度高,可完成极其复杂的时序与组合逻辑电路功能,更适用于高速、高密度的高端数字逻辑电路设计领域等众多优点成为了现今以致未来的数字系统现场集成技术的领军代表。
与之相同,由于单片机,DSP(DigitalSignalProcessing)等微处理器的内部RAM(Randomaccessmemory)有限,所以在处理器外部扩展储存器成了有效的手段。
同步动态随机存取存储器SDRAM(SynchronousDynamicRAM)有着密度高、数据读写速度快、价格低廉的优势,从而成为数据缓存的首选存储器,在数据采集与分析系统和图像处理系统中有着重要和广泛的应用。
本设计就是在这两者的突出优势下,根据SDRAM的工作原理、控制时序和指令特点,设计一种基于FPGA的SDRAM控制器的方案并利用QuartusII对FPGA访问SDRAM的读/写过程进行功能仿真验证。
1.2课题研究的意义
数据采集处理技术是现代信号处理技术的基础,广泛应用于声纳,雷达,瞬态信号测试,软件无线电等领域。
伴随信息科技的飞速发展,人们面临的信号处理任务越来越繁重,对数据采集处理系统水平的要求也越来越高。
随着内存SDRAM的技术广泛应用,如何更好地控制SDRAM的读与写,使其达到最大的带宽利用率,如何更好地降低读写数据的延迟时间,已经成为各大芯片厂家和FPGA供应商研究的热点项目。
本课题采用FPGA来进行系统设计。
因为使用传统的单片机编程方式来实现算法虽然灵活性较高,但是在复杂的工作面前处理的速度远远达不到要求,而且单片机的时序性也较差。
为了改善这一问题,FPGA就成了很好的选择。
可编程逻辑器件FPGA凭借其强大的功能,开发过程投资少、周期短,开发工具智能化,可反复编程修改等特点,成为了当今硬件设计的潮流。
选择FPGA是借助它集成度高,可完成极其复杂的时序和逻辑组合电路功能,更适用于高速、高密度的高端数字逻辑电路设计的特点。
由此可见,采用FPGA来完成SDRAM控制器的实现可将其内存上升到一个新级别。
这对SDRAM控制器的设计和研究有着重要的意义。
第二章FPGA与QuartusII软件简介
2.1FPGA简介
2.1.1FPGA背景
FPGA,即现场可编程门阵列。
它是现代IC设计验证的技术主流,通过硬件描述语言Verilog设计的电路都可以在它之上进行测试。
FPGA可编程元件是在以前的PAL(ProgrammableArrayLogic)、GAL(GenericArrayLogic)、CPLD(ComplexProgrammableLogicDevice)等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC,ApplicationSpecificIntegratedCircuit)领域中的一种半定制电路而出现的,一般来说,FPGA比ASIC的速度要慢,无法完成复杂的设计,且对电能的消耗也大。
但它拥有着能快速成品,编辑程序可修改利用和造价低廉等优点。
因此,FPGA普遍成为了设计开发者的选择。
图2.1为几款FPGA芯片。
图2.1FGPA芯片
2.1.2FGPA结构原理
现场可编程门阵列(FPGA)是可编程器件。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,其主要包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分,FPGA芯片主要由7部分完成,分别为:
可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
与传统的逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA的可编程逻辑单元是利用小型查找表(16×
1RAM)和触发器来实现组合逻辑。
查找表(Look-Up-Table)简称为LUT,其本质上就是一个静态存储器SRAM。
查找表实现方法是先计算逻辑电路的所有可能结果,然后把结果写入查找表中,当FPGA工作时,信号的逻辑运算就等同于输入一个地址进行查表,找出地址对应的内容后输出,也就实现了逻辑功能。
如果是时序电路的话,需要的触发器会配置在查找表后面,实现逻辑时触发器旁路掉。
FPGA允许无限次的编程.。
图2.2为FPGA芯片逻辑单元构成图。
图2.2FPGA芯片逻辑单元构成图
2.2QuartusII软件简介
QuartusII是Altera公司继Max+plusII之后开发的一种针对其公司生产的系列PLD/PGFA综合性开发软件,其支持原理图编辑、VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计形式,能够完整的完成数据输入到硬件配置的设计流程。
QuartusII软件的优点显著,主要有以下几点:
一、该软件有良好的界面,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。
该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持编辑原理图、VerilogHDL以及AHDL等多种设计输入形式。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
二、QuartusII拥有多方面的支持功能,对Altera公司的MAX3000A系列、MAX7000系列、MAX9000系列、ACEX1K系列、APEX20K系列、APEXII系列、FLEX6000系列、FLEX10K系列,MAX7000/MAX3000等乘积项器件,MAXII的CPLD系列、Cyclone系列、CycloneII、StratixII系列、StratixGX系列等。
它还支持IP核,包含了LPM/MegaFunction宏功能模块库,简化了设计的复杂性、加快了设计速度,用户可以充分利用成熟的模块。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统,支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
三、QuartusII也支持第三方EDA(ElectronicDesignAutomation)工具,使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。
本设计采用QuartusII软件作为FPGA的开发环境。
图2.3QuartusII软件
2.3硬件描述语言Verilog
VerilogHDL(HDL:
HardwareDiscriptionLanguage)是一种硬件描述语言,它具有描述硬件的结构和逻辑行为的功能。
当今世界上,VerilogHDL和VHDL是最流行的两种硬件描述语言。
VerilogHDL语言最初是于1983年由GatewayDesignAutomation公司为其模拟器产品开发的硬件建模语言。
那时它只是一种专用语言。
由于他们的模拟、仿真器产品的广泛使用,VerilogHDL作为一种便于使用且实用的语言逐渐为众多设计者所接受。
在一次努力增加语言普及性的活动中,VerilogHDL语言于1990年被推向公众领域。
OpenVerilogInternational(OVI)是促进Verilog发展的国际性组织。
1992年,OVI决定致力于推广VerilogOVI标准成为IEEE标准。
这一努力最后获得成功,Verilog语言于1995年成为IEEE标准,称为IEEEStd1364-1995。
完整的标准在Verilog硬件描述语言参考手册中有详细描述。
VerilogHDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言。
VerilogHDL以其简单易学的特点已成为业界标准,一个复杂电路系统的完整VerilogHDL模型是由若干个VerilogHDL模块构成的,每一个模块又可以由若干个子模块构成。
其中有些模块需要综合成具体电路,而有些模块只是与用户所设计的模块交互的现存电路或激励信号源。
VerilogHDL它支持多级建模方式:
算法、行为级建模;
寄存器传输(RTL)级建模;
门级建模;
开关级建模和支持多种建模方式:
行为功能建模方式;
结构建模方式;
数据流建模方式。
作为集成电路设计的初学者的我,比起使用更专业、更复杂难学的VHDL,使用VerilogHDL只要有C语言的编程基础,通过二十学时的学习,再加上一段时间的实际操作,可在二~三个月内掌握这种设计技术。
而掌握VHDL设计技术就比较困难。
这是因为VHDL不很直观,还需要有Ada编程基础。
2.4FPGA开发过程
FPGA的开发过程主要有两部分组成,分别是模块原理图和硬件描述语言编程HDL(HardwareDescriptionLanguage)。
本次设计是从软件方面进行FPGA的开发,所以采用硬件描述语言VerilogHDL设计法。
HDL可以描述数字电路或系统,并通过仿真的手段来验证设计的正确性,大大的减少设计的设计失败可能,缩短设计时间。
HDL的设计过程见图2.4。
图2.4HDL的设计过程图
基于HDL的FPGA的设计流程主要在于用VerilogHDL描述集成电路,具体可以分成以下几个过程步骤:
1、设计定义与HDL实现;
2、功能仿真;
3、逻辑综合;
4、前仿真;
5、布局布线;
6、后仿真;
7、系统测试。
第三章SDRAM的技术介绍
3.1存储器概况
存储器是拥有记忆功能的能力,用来保存信息,比如数据、指令与运行结果等并能根据需要存取的电气器件。
为了实现自动计算,各种信息必须预先存放在计算机内的某个地方,这个地方就是存储器。
构成存储器的存储介质,目前主要采用半导体器件和磁性材料。
如今,存储器在这信息世界的影响力是举足轻重的,按用途分类它主要可以分为外存储器和内存储器两类。
1)外存储器
外存储器是在外部用于扩充存储容量的存储器。
它的特点是储存容量大、价格低,但储存速度慢,一般用来存放大量暂时不用的程序、数据和中间结果,并可成批的与内存进行信息交换。
外存只能与内存交换信息,不能被计算机系统的其他部件直接访问。
外存储器分为很多种类,例如硬盘(Harddrive)、软盘(Floppydisk)CD光盘、CD-R可拷贝光盘、CD-ROM只读光盘、CD-RW读写光盘、有些大型计算机会用读写磁带来储存网络进程的庞大数据。
2)内存储器
内存储器,即RAM是能直接与CPU联系的使用二进制数据储存单元。
他的特点是大大减少了读取数据的时间,但RAM上所存数据在关机断电时或计算机异常时是会自动清除,所以人们才需要将数据保存在硬盘等外存储器上。
构成存储器的主要存储介质,目前主要采用半导体器件和磁性材料。
它是由多个存储单元组成起来的,每个存储单元由若干个存储元,每个存储元可以存储一个二进制代码,然而存储单元的位置都由一个编号标示,这既是地址,一般为十六进制。
存储器中的全部存储单元可存放的数据大小称之为存储容量。
假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1K个存储单元地址。
每个存储单元存放一个字节,则该存储器的存储容量为1KB。
随着信息量的逐渐增加,存储器的存储容量也随之增大,用户对RAM的系统性能的提高的要求也愈演愈烈。
本设计课题涉及储存器SDRAM和其FPGA方式的控制实现,能较好的解决这一问题,就让我们先来了解一下SDRAM控制器情况。
3.2SDRAM简介
了解SDRAM之前,我们先看看SRAM存储器和DRAM存储器的差别。
3.2.1SRAM和DRAM
SRAM(StaticRAM)即静态随机存储器。
它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,而且也不是行列地址复用的,但集成度比较低是它的缺点,不适合做容量大的内存。
一般情况下SRAM是用在处理器的缓存里面。
。
SRAM是一种非常重要的存储器,它的用途广泛,主要用于二级高速缓存(Level2Cache)。
它利用晶体管来存储数据。
与DRAM相比,SRAM的速度快,但在相同面积中SRAM的容量要比其他类型的内存小。
SRAM内部采用的是双稳态电路的形式来存储数据。
所以SRAM的电路结构非常复杂,制造相同容量的SRAM比DRAM的成本高的多。
正因为如此,才使得其发展受到了限制。
DRAM(DynamicRAM)即动态随机存取存储器。
DRAM只能将数据保持很短的时间,为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新,存储的信息就会丢失,也就是所谓的关机就会丢失数据。
3.2.2SDRAM发展过程
SDRAM(SynchronousDRAM)即同步动态随机存储器,属于DRAM中的一种。
同步动态随机存储器的意思是其内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准,其存储阵列需要不断的刷新来保证数据不丢失其,其数据不是线性依次存储,而是自由指定地址进行数据读写。
DRAM和SDRAM由于实现工艺问题,容量较SRAM大。
但是读写速度不如SRAM。
一般的嵌入式产品里面的内存和电脑的内存都是用的SDRAM,其集成度非常高,因为是动态的,所以必须有刷新电路,每隔一段时间必须得刷新数据。
同步动态随机存取存储器芯片为168脚,带宽为64位,其中RAM和CPU由于锁在同一个时钟内,因此共享着一个时钟的周期,以相同的速度进行同步工作,在3.3v工作电压下其运行速度高出EDO内存一半。
在一段不短的时间内,SDRAM曾经是市场的主流内存,不管事430TX芯片组还是845芯片组都支持SDRAM的使用。
但伴随着新推出的DDRSDRAM、DDR2SDRAM、DDR3SDRAM,SDRAM也渐渐退出了人们的视线范围。
第一代SDRAM内存为PC66规范,但很快由于Intel和AMD的频率之争将CPU外频提升到了100MHz,所以PC66内存很快就被PC100内存取代,接着133MHz外频的PIII以及K7时代的来临,PC133规范也以相同的方式进一步提升SDRAM的整体性能,带宽提高到1GB/sec以上。
由于SDRAM的带宽为64位,正好对应CPU的64位数据总线宽度,因此它只需要一条内存便可工作,便捷性进一步提高。
在性能方面,由于其输入输出信号保持与系统外频同步,因此速度明显超越EDO(ExtendedDataOutDRAM)内存。
新一代DDRSDRAM(DoubleDataRateSDRAM)简称DDR,也就是“双倍速率SDRAM”的意思。
DDR可以说是SDRAM的升级版本,DDR在时钟信号上升沿与下降沿各传输一次数据,这使得DDR的数据传输速度为传统SDRAM的两倍。
由于仅多采用了下降缘信号,因此并不会造成能耗增加。
至于定址与控制信号则与传统SDRAM相同,仅在时钟上升缘传输。
伴随着信息量的增加,DDR2SDRAM的出现也无可厚非,与DDR相比,DDR2最主要的改进是在内存模块速度相同的情况下,可以提供相当于DDR内存两倍的带宽。
这主要是通过在每个设备上高效率使用两个DRAM核心来实现的。
作为对比,在每个设备上DDR内存只能够使用一个DRAM核心。
技术上讲,DDR2内存上仍然只有一个DRAM核心,但是它可以并行存取,在每次存取中处理4个数据而不是两个数据。
DDR3SDRAM也是现时流行的内存产品,相比DDR2有着更低的工作电压,从DDR2的1.8V降落到1.5V,性能更好更为省电;
DDR2的4位预读升级为8位预读。
DDR3目前最高能够达到2000Mhz的速度,尽管目前最为快速的DDR2内存速度已经提升到800Mhz/1066Mhz的速度,但是DDR3内存模组仍会从1066Mhz起跳。
3.3SDRAM工作原理和基本操作
SDRAM是DRAM的一种,和DRAM一样它需要周期性的刷新操作,访问之前必须要依序给出行列地址,不同的是SDRAM的输入信号都用系统时钟的上升沿锁存,必须在外部同步时钟控制下才可完成数据的读入和写出。
SDRAM中内嵌有一个同步控制逻辑电路,它使得SDRAM支持突发方式进行连续读写,能够达到数倍于传统DRAM的传输速度,而且只要有首地址就可以对存储器进行访问。
再加上它具有可编程同步时序模式和突发长度更加使其使用方法灵活多变。
3.3.1SDRAM存储的工作原理
SDRAM的工作原理是以电荷的形式,把信息存储在MOS管栅极和源极之间的极间电容或专门集成的电容上。
如图3.3为单管式动态存储元。
图3.3单管动态存储元
单管动态存储元中电荷存储在电容Cs上,行选通三极管T的导通条件为高电平,当T导通时,数据线上的信号才能通过T进入Cs或从Cs上读出。
读出操作时,根据读出电压在数据线上的增量决定读出的数据是0还是1,再通过高灵敏的读出放大器输出数据。
读出结束后,必须进行重写,三极管T信号为低电平截止,Cs上电荷不断流出,一段时间后电荷消失,动态存储器就刷新了一次,一般在2ms左右。
3.3.2SDRAM的引脚信号
SDRAM读写操作的引脚信号分为控制信号、地址选择信号、数据信号等,其中控制信号包括片选信号、同步时针信号、时钟使能信号、读写使能信号,地址信号包括行地址选通信号、列地址选通信号、行列地址线、Bank地址线,数据信号包括双向数据端口和接收数据有效信号。
SDRAM是多个逻辑存储库(Bank)结构,在一个具有两个逻辑存储库的SDRAM的模组中,其中一个逻辑存储库在进行预充电期间,另一个逻辑存储库却马上可以被读取,这样当进行一次读取后,又马上去读取已经预充电逻辑存储库的数据时,就无需等待而是可以直接读取了,这也就大大提高了存储器的访问速度。
为了实现这个功能,SDRAM需要增加对多个逻辑存储库的管理,实现控制其中的逻辑存储库进行预充电。
在一个具有2个以上逻辑存储库的SDRAM中,一般会多一根叫做BAn的引脚,用来实现在多个逻辑存储库之间的选择。
SDRAM信号引脚接口功能如表3.1。
表3.1引脚信号表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕 业 设 计 论 文.docx
![提示](https://static.bingdoc.com/images/bang_tan.gif)