基于FPGA的16位寄存器设计.docx

上传人:b****0 文档编号:9178272 上传时间:2023-05-17 格式:DOCX 页数:28 大小:165.84KB
下载 相关 举报
基于FPGA的16位寄存器设计.docx_第1页
第1页 / 共28页
基于FPGA的16位寄存器设计.docx_第2页
第2页 / 共28页
基于FPGA的16位寄存器设计.docx_第3页
第3页 / 共28页
基于FPGA的16位寄存器设计.docx_第4页
第4页 / 共28页
基于FPGA的16位寄存器设计.docx_第5页
第5页 / 共28页
基于FPGA的16位寄存器设计.docx_第6页
第6页 / 共28页
基于FPGA的16位寄存器设计.docx_第7页
第7页 / 共28页
基于FPGA的16位寄存器设计.docx_第8页
第8页 / 共28页
基于FPGA的16位寄存器设计.docx_第9页
第9页 / 共28页
基于FPGA的16位寄存器设计.docx_第10页
第10页 / 共28页
基于FPGA的16位寄存器设计.docx_第11页
第11页 / 共28页
基于FPGA的16位寄存器设计.docx_第12页
第12页 / 共28页
基于FPGA的16位寄存器设计.docx_第13页
第13页 / 共28页
基于FPGA的16位寄存器设计.docx_第14页
第14页 / 共28页
基于FPGA的16位寄存器设计.docx_第15页
第15页 / 共28页
基于FPGA的16位寄存器设计.docx_第16页
第16页 / 共28页
基于FPGA的16位寄存器设计.docx_第17页
第17页 / 共28页
基于FPGA的16位寄存器设计.docx_第18页
第18页 / 共28页
基于FPGA的16位寄存器设计.docx_第19页
第19页 / 共28页
基于FPGA的16位寄存器设计.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于FPGA的16位寄存器设计.docx

《基于FPGA的16位寄存器设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的16位寄存器设计.docx(28页珍藏版)》请在冰点文库上搜索。

基于FPGA的16位寄存器设计.docx

基于FPGA的16位寄存器设计

 

计算机科学系2013届本科毕业设计(论文)

 

基于FPGA的16位寄存器的设计

专业计算机科学与技术

姓名XXX

学号xxxxxxxx

指导教师XXX

完成时间2013年6月6日

 

陕西商洛

独创性声明

本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。

尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包括其他人已经发表或撰写过的研究成果,也不包含为获得商洛学院或其他教育机构的学位或证书而使用过的材料。

与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。

学位论文作者签名:

_________________日期:

_________________

关于论文使用授权的说明

本人完全了解商洛学院有关保留、使用学位论文的规定,即:

学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。

□公开□保密(____年____月)(保密的学位论文在解密后应遵守此协议)

签名:

导师签名:

日期:

 

基于FPGA的16位寄存器的设计

摘要:

随着社会的发展,科学技术也在不断的进步。

特别是计算机产业,可以说是日新月异,寄存器作为计算机的一个重要部件,移位寄存器更是如此,从先前的只能做简单的左移或右移功能的寄存器到现在广泛应用的具有寄存代码、实现数据的串行-并行转换、数据运算和数据处理功能的移位寄存器。

移位寄存器正在向着功能强,体积小,重量轻等方向不断发展。

系统使用EDA技术设计了具有移位功能的寄存器,采用硬件描述语言VHDL进行设计,然后进行编程和调试,再进行时序仿真等,在QuartusⅡ工具软件环境下,采用自顶向下的设计方法。

本设计根据移位寄存器的功能设计了三种不同的寄存器:

双向移位寄存器、串入串出(SISO)移位寄存器、串入并出(SIPO)移位寄存器。

整个设计过程简单,使用方便。

功能齐全,精度高,具有一定的开发价值。

关键词:

EDA;VHDL;移位寄存器

Designof16bitregisterbasedonFPGA

Abstrsct:

Withthesocialdevelopment,scienceandtechnologyareconstantlyprogress.Particularlythecomputerindustry,itcanbesaidischanging,theregisterasanimportantcomponentofacomputer,especiallyashiftregister,canonlybedonefromtheprevioussimplefunctionregisterstheleftorrighttoaregisterisnowwidelyappliedcode,dataserial-parallelconversion,datacomputinganddataprocessingfunctionsoftheshiftregister.Shiftregisteristowardstrongfunction,smallsize,lightweightanddirectionofcontinuousdevelopment.

SystemusesEDAtechnologydesignedwithshiftregisterfunction,usinghardwaredescriptionlanguageVHDLdesign,andprogramminganddebugging,re-timingsimulation,etc.,inQuartusⅡsoftwaretoolenvironment,usingthetop-downdesignapproach.Thedesignofthefunctionaldesignoftheshiftregisterthreedifferentregisters:

bidirectionalshiftregister,thestringintothestringout(SISO)shiftregister,thestringintoandout(SIPO)shiftregister.Throughoutthedesignprocessissimple,easytouse.Full-featured,highprecision,hasacertainvaluefordevelopment.

Keywords:

EDA;VHDL;shiftregister

第一章绪论

随着社会的发展,科学技术也在不断的进步。

特别是计算机产业,可以说是日新月异,寄存器作为计算机的一个重要部件,移位寄存器更是如此,从先前的只能做简单的左移或右移功能的寄存器到现在广泛应用的具有寄存代码、实现数据的串行--并行转换、数据运算和数据处理功能的移位寄存器。

移位寄存器正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述语言VHDL对移位寄存器进行编程实现[6]。

近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈入一个崭新的阶段,具体表现在:

(1)电子器件及其技术的发展将更多地趋向于为EDA服务;

(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技术将归结为更加标准、规范的EDA工具和硬件描述语言HDL的运用;(4)数字系统的芯片化实现手段已成主流。

因此利用计算机和大规模复杂可编程逻辑器件进行现代电子系统设计已成为电子工程类技术人员必不可少的基本技能之一。

1.1课题目的

在计算机中常要求寄存器有移位功能。

如在进行乘法时,要求将部分积右移;在将并行传送的数转换成串行数时也需要移位。

因此,移位寄存器的设计是必要的。

本次设计的目的就是利用计算机组成原理中移位寄存器的相关知识,通过课程设计更加深入的了解移位寄存器的功能。

了解EDA技术,并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合计算机组成原理中的相关知识理论联系实际,掌握所学的课程知识。

通过对移位寄存器的设计,巩固和综合运用所学知识,提高对计算机组成原理的理解。

1.2课题的内容

本毕业设计主要是关于移位寄存器的设计,它不仅描述了设计所需要多种技术的介绍,例如EDA、FPGA、VHDL语言、QuartusII软件环境等,并且对移位寄存器的三种设计进行了时序仿真,包括左移、右移、串行输入及仿真等功能。

本设计根据移位寄存器功能的不同,设计了三种移位寄存器。

(1)双向移位寄存器;

(2)串入串出(SISO)移位寄存器;

(3)串入并出(SIPO)移位寄存器。

1.3课题的意义

移位寄存器一个最普遍的应用,是数据传输过程中,串行接口和并行接口的转换。

这在许多并行传输一组比特数据的电路中很有用,因为它们常常也使用了在结构上更为简单的串行接口。

移位寄存器可以被用作一个简单的延迟电路。

许多双向移位寄存器可以在并行传输中作为堆栈的硬件实现方式[5]。

串入并出形式的移位寄存器经常与微处理器连接,这样做的原因主要是需要的引脚数多于微处理器能够提供的数量。

通过使用移位寄存器,可以只依靠两三个引脚,而被控制设备的控制位分别连接在移位寄存器的并行输出端。

由此,微处理器可以以串行的方式一次写入这些设备的各个控制位。

类似的,并入串出接法的移位寄存器在多个外部设备向微处理器传输数据时较为常用,外部设备以并行的方式将数据输入到移位寄存器里,然后移位寄存器以串行的方式将数据一位一位地输出给微处理器,这样,外部设备的大量信息可以通过少数几条线到达微处理器。

在早期的计算机中,移位寄存器被用来进行数据处理:

两个相加的数被存储在两个移位寄存器里,然后它们按照时间脉冲被输出到算术逻辑单元,结果中多出的一位以反馈的形式重新被输入到其中一个移位寄存器(累加器)。

注意两个一位二进制数相加的结果只可能是一位(如0+0=0,0+1=1)或者两位(1+1=10)。

一些计算机语言内置了移位指令,这类指令可以让二进制数据在寄存器中进行左移或右移操作。

左移或右移一位,相当于乘以2或除以2。

一些1970年代早期的设备曾以类似延迟线存储器的方式用过非常大规模的串入串出移位寄存器,其规模达到上千位。

这类存储器有时被称为循环存储器(circulatingmemory)。

例如,DataPoint3300将其25列、72行的字符显示数据存储在54个200位的移位寄存器里,以6个堆栈、每个堆栈9个包的形式排列,提供了1800个6位字符的存储能力。

1.4论文结构

本书第一章:

绪论

第一章主要介绍了目前寄存器的发展及概况,指明了本设计的目的、内容以及研究思路,根据本设计详细地阐述了移位寄存器的应用。

本书第二章:

技术背景

第二章主要介绍了进行移位寄存器时序仿真所需要用到的多种技术背景。

包括EDA、FPGA原理和基本结构、VHDL基础语言和QuartusII6.0开发软件环境。

本书第三章:

移位寄存器的设计

第三章主要介绍了基于VHDL语言设计的移位寄存器,并展示了三个模块的工作原理框图。

本书第四章:

系统仿真

第四章主要说明了根据前面的设计进行时序仿真,对比时序仿真图进行详解。

并进行了仿真结果的分析。

 

第二章技术背景

2.1EDA简介

EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可行性,减轻了设计者的劳动强度。

根据电子设计技术的发展特征,EDA技术发展大致分为三个阶段[3]。

1.CAD阶段

CAD阶段是从20世纪60年代中期到20世纪80年代初期,该阶段的特点是一些单独、的工具软件,主要有pcb布线设计、电路模拟、逻辑模拟及版图的绘制等,通过计算机的使用,从而将设计人员从大量繁琐重复的计算和绘图工作中解脱出来。

这个时期的EDA一般称为CAD(计算机辅助设计)。

2.CAE阶段

这个阶段在击集成电路与电子设计方法学及设计工具集成化方面取得了许多成果。

各种设计工具,如原理图输入、编译与连接、逻辑模拟、测试码生成、版图自动布局以及各种单元库已齐全。

由于采用了统一数据管理技术,因而能够将各个工具集成为一个CAE(计算机辅助工程)。

3.EDA阶段

电子技术发展到EDA阶段,期中微电子技术以惊人的速度发展,其工艺水平达到深亚微米级,在一个芯片上可集成数百万乃至上千万个晶体管,工作速度可达到吉兆赫,这为制造出规模更大、速度更快和信息容量很大的芯片系统提供了条件,但同时也对EDA系统提出了更高的要求,并促使了EDA的发展。

下面简单介绍这个阶段EDA技术的主要特征:

(1)高层综合的理论与方法取得较大进展,将EDA设计层次有RTL级提高到了系统级,分为逻辑综合和测试综合。

(2)采用硬件描述语言来描述10万门以上的设计,并形成了VHDL和VerilogHDL两种标准硬件描述语言。

它们均主持不同层次的描述,使得复杂IC的描述规范化,便于传递、交流、保存于修改,也便于重复使用。

随着VHDL和VerilogHDL语言的完善,设计工程师已经习惯用语言而不是电路来描述电路。

原因其实很简单,随着半导体工艺的快速发展,设计规模变得非常庞大,功能非常复杂,传统的电路图的方法已经不可能适应当前的设计要求。

(3)采用平面规划技术对逻辑综合和物理版图设计进行联合管理,做到在逻辑综合早期设计阶段就考虑到物理设计信息的影响。

通过这些信息,设计者能更进一步进行综合与优化,并保证所做的修改只会提高性能而不会对版图设计带来负面影响。

(4)可测性综合设计。

随着ASIC的规模与复杂性的增加,测试难度与费用急剧上升。

由此产生了将可测试性电路结构制作在ASIC芯片上的想法,于是开发了扫描插入、BLST(内建自测试)、边界扫描等可测性设计(DFT)工具,并已集成到EDA系统中。

其典型产品有Compass公司的TestAssistant和MentorGraphics公司的LBLSTArchitect、BSDArchitect、DFTAdvisor等。

(5)为带有嵌入IP(知识产权)模块的ASIC设计提供软硬件协同系统设计工具。

协同验证弥补了硬件设计和软件设计流程之间的空隙,保证了软硬件之间的同步协调工作。

协同验证是当今系统集成的核心,它以高层系统设计为主导,以性能优化为目标,融合逻辑综合、性能仿真、形式验证和可测性设计,产品如MentorGraphics公司的SeamlessCAV。

(6)建立并行设计工程CE框架结构的集成化设计环境,以适应当今ASIC的如下一些特点:

数字与模拟店里并存,硬件与软件设计并存,产品上市速度要快。

这种集成化设计环境中,使用统一的数据管理系统与完善的通讯管理系统,由若干相关的设计小组共享数据库和知识库,并行地进行设计,而且在各种平台之间可以平滑过渡。

总之,EDA开发工具经历了这么多年的发展和变化,已经成为硬件设计工程师不可少的设计手段。

随着知识的不断更新和需求的不断牵引,EDA工具在未来将会有更大的发展。

2.2FPGA概述

FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。

CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。

它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。

通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。

使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。

这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步[4]。

2.2.1FPGA开发编程原理

硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。

CPLD/FPGA软件设计可分为两大块:

编程语言和编程工具。

编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三方工具(如FPGAExpress、Modelsim、SynposysSVS等)。

具体的设计输入方式有以下几种:

1.VHDL语言方式。

VHDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。

用这种方式描述的项目最后所能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。

2.图形方式。

可以分为电路原理图描述,状态机描述和波形描述3种形式。

有的软件3种输入方法都支持,如Active-HDL。

MAX+plusII图形输入方式只支持电路原理图描述和波形描述两种。

电路原理图方式描述比较直观和高效,对综合软件的要求不高。

一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片利用率很高,但是但项目很大的时候,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。

在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。

由于状态机到VHDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。

这种输入方式最后所能达到的工作速度和芯片利用率也是主要取决于综合软件。

2.2.2FPGA基本结构

FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。

FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。

这3种可编程电路是:

可编程逻辑模块(CLB--ConfigurableLogicBlock)、输入/输出模块(IOB--I/OBlock)和互连资源(IR—InterconnectResource)。

可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。

2.2.3FPGA系统设计流程

一般说来,一个比较大的完整的项目应该采用层次化的描述方法:

分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOPDOWN(自顶向下)的设计方法。

目前这种高层次的设计方法已被广泛采用。

高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。

CPLD/FPGA系统设计的工作流程如图2-2所示。

图2.1CPLD/FPGA系统设计流程

流程说明:

1.工程师按照“自顶向下”的设计方法进行系统划分。

2.输入VHDL代码,这是设计中最为普遍的输入方式。

此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。

3.将以上的设计输入编译成标准的VHDL文件。

4.进行代码级的功能仿真,主要是检验系统功能设计的正确性。

这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。

一般情况下,这一仿真步骤可略去。

5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。

综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。

6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。

一般的设计,也可略去这一步骤。

7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。

8.在适配完成后,产生多项设计结果:

(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。

根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。

如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。

最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。

2.3VHDL语言与QuartusⅡ

2.3.1VHDL语言简介

VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言[2]。

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。

归纳起来,VHDL语言主要具有以下优点:

(1)VHDL语言功能强大,设计方式多样

VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。

同时,它还具有多层次的电路设计描述功能。

此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。

VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。

(2)VHDL语言具有强大的硬件描述能力

VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。

同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。

VHDL语言的强大描述能力还体现在它具有丰富的数据类型。

VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。

(3)VHDL语言具有很强的移植能力

VHDL语言很强的移植能力主要体现在:

对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。

(4)VHDL语言的设计描述与器件无关

采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。

这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。

当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。

(5)VHDL语言程序易于共享和复用

VHDL语言采用基于库(library)的设计方法。

在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。

这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。

由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2