基于FPGA的查表式运算器的设计与仿真.docx
- 文档编号:10220139
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:48
- 大小:227.24KB
基于FPGA的查表式运算器的设计与仿真.docx
《基于FPGA的查表式运算器的设计与仿真.docx》由会员分享,可在线阅读,更多相关《基于FPGA的查表式运算器的设计与仿真.docx(48页珍藏版)》请在冰点文库上搜索。
基于FPGA的查表式运算器的设计与仿真
北方民族大学
本科毕业论文(设计)
题目:
基于FPGA的查表式运算器的设计与仿真
院(系)名称:
电气信息工程学院
学生姓名:
黄斯洲
学号:
20130575
专业:
电子信息工程
指导教师姓名:
张广忠
论文提交时间:
北方民族大学教务处制
摘要
随着我国的经济的发展,人们要求计算的方法更好简单和方便,尤其是在计算这个方面,所以对于运算器的设计是非常的重要的,所以为了更好的设计该设计采用了现场可编程逻辑器件FPGA设计,并基于硬件描述语言VHDL在Altera公司的QuartusⅡ软件上实现仿真。
系统由计算部分、存储部分、显示部分和输入部分四个部分组成,计算部分为加法器、减法器、乘法器和除法器,存储部分需要3个存储器来实现:
内部累加器(acc)、输入寄存器(reg)以及结果暂存器(ans)。
显示部分由四个七段译码管组成,分别来显示输入数字,输入部分采用外接键盘,由0—9十个数字按键,加减乘除四个运算符按键,一个等号按键和一个清零按键组成的。
通过外部的按键可以完成四位数之内的‘加’、‘减’、‘乘’、‘除’四种功能运算,其结构简单,易于实现。
关键词:
FPGA;VHDL;计算器
Abstract
Thisarticledescribesthedesignofasimplecalculator,thedesignusesFieldProgrammableGateArrayFPGAbasedonVHDLhardwaredescriptionlanguagetodesignandAltera'sQuartusⅡinsoftwareforemulation.Thissystemiscomponenttedbythecalculationsection,storagesection,displayandinputsectionofthefourparts,thecomputingpartincludeadder,subtractor,multiplieranddivider,Storagepartneedsthreememorytohelpachieved:
internalaccumulator(acc),inputregister(reg)aswellastheresultsofregisters(ans).Displaypartismadeupthreedecoderof7sections,respectivelytoshowthenumberofinput.Inputparthastennumberkeys,from0–9,alsohasadditionandsubtractionandmultiplicationanddivisionarithmeticoperatorkeys,abuttonandofequalsignandtheclearkey.Buttonscanbedonethroughexternalwithinthefour-digit'add','subtract','multiple','divede'thefourkindsoffunctionaloperations,itsstructureissimpleandeasytoimplement.
Keywords:
FPGA;VHDL;calclute
目录
第一章引言1
1.1课题研究的目的与意义1
1.2国内外发展现状1
1.3课题的主要技术路线2
第二章FPGA技术及硬件描述语言3
2.1FPGA技术的发展现状及与CPLD的比较3
2.2FPGA设计方法5
2.3利用硬件描述语言(HDL)的硬件电路设计方法6
2.4VHDL语言的特点7
2.5QuartusⅡ概述及其设计流程7
第三章系统总体设计10
3.1计算器的计算部分10
3.2计算器的存储部分10
3.3计算器的显示部分11
3.4计算器的输入部分12
第四章计算器的VHDL设计14
4.1加法器的设计与仿真14
4.2减法器的设计与仿真15
4.3乘法器的设计与仿真16
4.4除法器的设计与仿真18
第五章结束语20
参考文献21
附录22
第一章引言
1.1课题研究的目的与意义
在人类学会买卖的时分,计算也随之爆发,而算盘成为计算最适用的工具存在了几千年。
算盘也叫珠算,是中国人民发明的一种计算用具,古代时有“中国的计算机”的称号。
算盘产生在我国汉代的前期,是由古代的“筹算”演化变成的,珠算这个词语,最早出现在汉末的三国演义时代的徐岳撰的《数术记遗》里,有一句叙述“珠算,控带四时,经纬三才”是出自出本里的。
《乘除通变算宝》是南宋数学家杨辉的,里面有“九归”的口诀,刘因是元代人,也作了一首算盘的诗句,吴敬是明代人,他的的《九章详注比类算法大全》里写有珠算的大部分有关算法。
在明清的时候,人们对算盘的运用就非常多,而对于算盘的制作大小,明万历年间的柯尚迁写的《数学通轨》里记载了13档算盘的图片,上有2珠,下有5珠,样似长方形,四周都是木框,里面有一个轴心,人们都叫作“档”,档的中间是用一根横木来分隔开来,运算的时候在确定位置后拨动珠字来进行计算。
起初出世的每一种规格的算盘,全部在这个基础上发展起来。
算盘的结构铸造十分简单,不仅便于掌握,而且使用的时候也很便利,它变成了计算和理财不能缺少的其中一种工具。
算盘的传入是从明代开始,它来自朝鲜和日本等一些国家。
清代的时候算盘根据经济和文化的交流被传进东南亚每个国家,在第二次世界大战结束后,美国在日本引入了一些算盘,看得出来算盘在现代人的生活里拥有非常重要的作用,无论是大商人或者是小商人都会通过运用小算盘来计算。
不过根据人类文明的发展与现代科学技术的一直进步。
算盘慢慢变成越来越不能满足一部分高强度和高难度与高速度的非常复杂的一种计算。
就在这时,一种新型的电子类产品出世了,我们都叫它电子计算器。
电子计算器是一种跨越了一个时代的伟大发明,比其算盘来,它的计算速度要快几百甚至几千倍,电子计算器的计算的结果也要比算盘更具精确度,它操作得非常方便,容易学会,它的计算的范围非常广泛,而且很灵巧,便于携带出门。
电子计算器已经变成现代人生活中不可减少的计算用器,它给我们的生活带来了很大的便利。
并且根据计算机的流行,更多的人在运用计算机,更多的工作都和计算机密不可分,也就是说计算机慢慢变成现代社会中不可缺少的计算用具,并且电子计算器拥有的功能也通过软件的形式使用到计算机里的软件世界里,它不仅给人们带来了很大的便利,还为现代人提供了更迅捷的计算速度,缩短了计算时间,和具有非常强大的运算功能。
1.2国内外发展现状
(1)国外情况
如今在国外,集成电路出世后,电子计算器只用仅仅几年功夫就达成了一种技术发展,通过猛烈的市场竞争,如今的计算器技术就非常成熟。
计算器已渐渐地脱离原本的“辅佐计算工具”的功用定位,正往着多功能化和可编程化的目的发展,在各个范围都得到了普遍的使用。
计算器不但能够完成各种各样复杂的数学计算还能够来编制和运行程序,方程组也可以用来解决,图形计算器也能用图形解决。
计算器的一些内置软件也容许用户使用一些类似于对计算机的文件与目录管理等操纵,同意用户自行定制图形界面,此时每一种新的技术也被使用到计算器里让计算器功能更加强大。
也就是说,电子计算器也能被称为“微微型”的计算机。
(2)国内情况
在国内,有厂商也使用计算器芯片来发明新的产品,不过针对计算器技术的钻研和计算器的芯片的设计现在还是起步的阶段。
“计算”是计算机的最主要公用,我们可以把它叫做“低档计算器”。
就算是关于这种计算器,大部分厂家和商人也仅仅工作在组装计算器和销售的业务。
一部分IC设计公司和芯片的供应商人也开始慢慢钻研和学习计算器技术。
1.3课题的主要技术路线
这次实验是做基于现场可编程逻辑器件FPGA来进行设计,不仅是运用了硬件描述语言VHDL,还编程,并且在Altera公司的QuartusⅡ软件上完成了仿真。
我们还必须实现进行计算器的一部分常用到的运算功能,经过外接键盘输入、LED数码显示来达到和完成运算目标。
第二章FPGA技术及硬件描述语言
2.1FPGA技术的发展现状及与CPLD的比较
(1)FPGA技术的发展现状
FPGA是把英文FieldProgrammableGateArray的缩写,也就是现场可编程门阵列,它是在CPLD和GAL与PAL等可编程器件的根本上更深入发展的产物。
FPGA是作为专用集成电路(ASIC)领域中出现的的一种半定制电路,不但处理了定制电路的缺乏,还克服了原本存在的可编程器件门电路数有限的几个缺点。
FPGA使用了逻辑单元阵列LCA(LogicCellArray)这个概念,它还包含可配置逻辑模块CLB(ConfigurableLogicBlock),输入输出模块IOB(InputOutputBlock)和内部连线(Interconnect)三个内部局部。
FPGA的基本特点主要有:
ⅰ.采纳FPGA设计ASIC电路,用户不需要投片消费,就能获得合用的芯片。
ⅱ.FPGA能做其它全定制或者半定制ASIC电路的测试样片。
ⅲ.FPGA内部有丰富的触发器和I/O引脚。
ⅳ.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
ⅴ.FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
RAM中的程序是用来设置FPGA工作状态的,它存放在片内RAM的程序里,因而,工作时就得对片内的RAM进行编程。
用户也能随着不同的配置方式,使用不同的编程方法。
加电时,片内编程RAM被FPGA芯片读入一些EPROM中的一些数据,在配置完成后,FPGA就进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因而,FPGA能使用很多次。
FPGA的编程不需要专用的FPGA编程器,只要通用的EPROM、PROM编程器就可以。
当必要改正FPGA性能的时候,只要换一片EPROM就可以了。
同一片FPGA,不同的编程数据,能够发生差别的电路性能。
因而,FPGA的运用十分灵便。
FPGA和DSP处理器还相对应,尽管DSP处理器速度非常快,还对许多DSP运用来说很有用,不过还有一些应用要求功能需要再一步提高,而且FPGA还提供了更高的功能。
FPGA能够生成一个定制硬件设计,控制逻辑可以实现在硬件中,不用再使用精确的时钟周期来实现控制功用。
另外,经过缩小硬件的框架,FPGA还能够供应额定的功能。
假如,速度是最关键的设计思考原因,这样一来我们能够在FPGA中设计一个齐全并行的算法解决方法。
如今,诸多系统都包含了一个FPGA,用于胶合逻辑和协议转换或者一些其它系统功用。
假如,那FPGA没有被全部运用,那可以把DSP功能加入里面,能够为系统节省一部分成本。
并且假如标准产生了一些变化,FPGA的运用就不会有一切风险。
FPGA的配置文件可以升级,就像一个软件一样,虽然它们必需被存储在系统的非易失性存储器中。
目前,FPGA设计的设计方法,通常使用的是Top-down(自顶向下)。
系统被分成各个功能子模块,在系统级层次上使用行为描述,再对这些子模块进一步使用行为描述。
(2)FPGA与CPLD的比较
FPGA简要称呼叫现场可编程逻辑门阵列,它是电子设计的一个里程碑。
CPLD的简要称呼叫复杂可编程逻辑器件。
虽然FPGA和CPLD一起都是可编程ASIC器件,有很多共同特性,但由于CPLD和FPGA构造上的差异,具备各自的特性:
1..CPLD更合适实现各种算法和组合逻辑,FPGA更合适在完成时序逻辑。
换个说法,FPGA更合适在触发器丰富的构造,而CPLD更合适在触发器有限且乘积项很丰富的构造。
2.这种形式的集成度是非常的高的,并且它内部的结构和逻辑性也是非常的好的,受了广大的电子器件儿人们的喜欢。
3.运行的速度比现在业界上最快的DSP芯片还要快,是非常的快的。
4.在这种形式的使用方面,他也是非常的好的,她没有外部的存储芯片,使用着操作起来也非常的简单。
5.这种芯片它的运行的速度也是非常的快的。
能在很多的时间真之内运行出来很多的程序使用度非常的高。
6.在编程方面可编程度是非常的好的,通过这些程序员可以把自己的程序写错时他可以随意的进行改正的,并且这种部件儿在运行的过程中中如果在断电的时候里边存储的信息也不会丢失他能更好地去保存出来功能是非常的强大的
2.2FPGA设计方法
在这个软件进行设计是中号,他有很多的规则,如果成员更好地掌握了这些规则,他能够使用起来非常的方便,他并且是功能非常的强大的更好的去运行程序。
我们知道应下系统对于一个系统来说是非常的重要的,它可以根据重新进行实现功能,它通常是欲望算法来实现的。
又要能够让每个各部件都能更好地实现出什么工程?
2从系统方面分析它可以加上哥哥模块儿进行组合起来,让哥哥摸罐进行时间他索要要求的工程,并且它对要求高频率会红,夜宵的模块儿更加的实用。
但是对于功能比较强大的模块儿它也能更好地使用,有利于程序进行设计和实现。
3这个系统运行的速度是非常快的,他每秒钟能时间3000万。
非常的方便与实用它的体积是非常小的,能融合到各个单片机中旭能配合好,单片机更好的去工作。
他的工作效率也是非常的高的不能和任何程序,静静充足,他的准确性高,受到了广大程序员的喜欢。
由于它的芯片是非常的小的可以更好的切入到单片机中,去辅助单片机更好的进行工作。
4同步说句在这方面也是非常的重要的他能跟工程同步到这个程序运行起来,这个功能也发挥着巨大的作用,它同步的效果是非常的高的。
有趣的是,在师宗方便它的经文确定也是非常的准的。
老婆更好的去采集数据,这样把台积出来的,输液更好的分析出来,得到结果然后配合系统去执行相关的木命令把几个模块儿更好的整合出来。
2.3利用硬件描述语言(HDL)的硬件电路设计方法
硬件儿的编程的语言是非常的重要的,可以通过这一个语言让硬件儿和硬件进行交流,明白这个硬件发出了是什么命令,并且配合区执行其他相关的命令,好比也是,人和人之间的说话,它能更好的去沟通了解人所能表达出来的意思应该是家的语言,他也是这样的,这个软件所采用的语言是VACdAC于二这种雨呀功能是非常的强大的收到了国代变成舍得,喜欢接下来我介绍这桌描述语言的几个特点,他们是怎么更好地辅助电路去工作的。
1他的方向二是自上向下的,这样有利于编程语言的能够一步一步的进行,实现功能是非常的方便的。
2由于我国制作芯片的厂家是非常的多的,他们所使用的软件都可以支持这种H直接一次语言,所以这种语言在适应很多种软件,硬件的设计人员也非常喜欢这种语言,因为他是用都非常的大,并且体积小,更容易切入到单片机中去,能够更好的企业设计,并且更加的合理。
店家收到了很大的设计人员的喜欢。
3这种软件还能够更好的进行仿真,通过仿真能知道这些程序实现的是什么功能,并且对每个功能进行详细的分析。
更好地找到错误,并且。
开发出来的功能,大大的提高了工作的效率。
也降低的硬线使用的频率。
难度使广大的硬件设计人员喜欢她也大大的提高了工作的效率这种啊,软件是非常的好的。
5他的设计文件是用这种语言编写的源程序通过这种现象可以看出这种。
语言要挂房子是用在哥哥方面。
通过用这种程序编程出来,然后发站出来电路图,通过这些电路图可以更好的找到解决的方法,知道什么地方是错误的,并且能在很多的时间进行改正出来,收到了过完那的营销人员咋喜欢这种方式也更加方便。
硬件设计人员去阅读它,去了解它。
一眼就能看的出来,这个程序编程有什么问题,有什么优点可以方便去改正。
2.4VHDL语言的特点
VHDl与安生非常的厉害的,受到了广大硬件人员的喜欢它的结构非常的严谨,操作起来也非常的简单,所以受到了硬件人员的喜欢,接下来我解详细的介绍它的急个特点,他是怎么更好地辅助硬件系统进行工作的,她不要和其他的硬件语言一样。
他大范围也是非常大的功能也是非常的大的,超过了其他软件的编程语言,他比Java更佳的简单,比C语言更加的强大,所以很多的硬件设计人员喜欢用它。
在这个编程的语言中,他还可以创造出来很大的系统,有些事在变成函数的时候我们都知道变成函数是非常复杂的,但是用这种语言进行编程式分享的,简单的他能够很准,在很短的时间进行月行把自己想要表达的函数进行表达出来。
不用写这种语言能够随时的调用其他模块儿的内容,他的衔接,都是非常的好的,能与哥哥麽会进行交通和沟流,就向人和人进行语言交流一样,当一个软件的我被发射出命令的时候,另一个软件模块进行接收,他能更好地读懂它,是什么的意思,能够去执行这项任务。
所以说他的工程师非常早,强大的受到了很多硬件人员咋喜欢他们,非常喜欢用这种程序语言去进行编程。
这种编程语言是相互独立的,他能更好的和其他的语言进行区分。
不会受到任何变成语言的。
干扰能够更好地掌握编程的准确性。
这种语言的生命周期是非常的长的,她不会随时对软件的更新而改变错误,他从开发到现在已经有了80年的历史,在这个历史的演变的过程中,经过不断的开发和演变,他慢慢的成长起来,受到了广大程序人员的喜欢。
。
2.5QuartusⅡ概述及其设计流程
这种软件是非常高智能的,它能够对图形以及视频进行方进行演示,并且把所有的程序。
进行仿真出来很好的发现出什么地方出现问题,并且它出它运行的速度是非常的快的使用的街面也是非常的简单的适用于初学者的使用。
这种软件是由德国科学家西门子洛夫斯基研发出来的,他刚开始研发这款软件的时候,就是为了解决编程的问题,在他不断的努力进行研发的过程中,终于研发出来了,这款软件这种国产软件的工厂是非常的强大的,受到了广大人们的喜爱。
并且这种软件的设计逻辑已设计环境都是非常简单的,并且工程非常的强大,能够使使用者一眼就能看的出来他具有什么作用,能够让使用者更好地进行操作。
并加他运行的环境可以支持多种环境,避免了单一的环境给程序员带来的烦恼。
他的编程的能力也是非常的大的,通过编程,它可以运行出来程序所要显示的功能大大的提高了调试的能力,并且支持很多的插件儿直接插垫是用来干什么的,这些插件儿主要的增加了软件的功能,比如画图仿真或者是语言或者是视频这种功能都是非常的气。
非常的强大的,受到了硬件儿变成语言的喜欢,所以这种软件是越来越流行的。
2接下来我就想起咋去设计这款软件怎么进行设计的流程,怎么去运营它,首先要在这个软件上建立新的工程,你把这个工程建立好了就跟把自己要建立的项目进行合理的去命运了,给自己的项目起一个名字,这个名字命名的时候一定要以英文字母去开头,因为这款软件是y。
是外国人进行设计的,一定要遵循这种命名的方法,等我们建立了这个。
工程之后就应该选择自己所需要的模块儿,在这个软件中他的魔罐是非常的多的,咱们使用起来也非常的简单和方便。
根据子,我们的需要进行选择模块儿,并且知道每个模块儿之家。
有什么作用的充分的利用他们的作用进行变成这样,能够更好的去分析和发现变成中出现的错误能够更好地改正出来,当我们运行的过程中就进行编译,编译出是不是他们有错误,是不是能够正常的进行编程,编程也是非常的重要的,通过编程我们能知道我们所。
说做创的程序是不是能够正常的演示出来,如果能演示出来,我们就能够发现我们做出来的程序所要表达的功能是不是和我们所要表达的功能是不是一样及时的发现问题并能更好的及时的去解决问题,这样是非常的好的。
仿真的时候一定要知道网络是不是正常的连接,如果网络不能正常的了。
了解就需要及时的改正仿真,所以说是非常的重要的,一定要记住自己文件的扩展名要合理的运用这种扩展并如果扩展名错误了这种仿真也不能够更好的防震出来,他们会出现很多的错误。
如果仿真的时候出现了错误,这个软件会出现很多的代码,他说他能够告诉你。
是什么地方出现错误,他能方便的,告诉你什么地方出现了错误之后你能更好地发现问题更好的去解决问题。
第三章系统总体设计
系统总体设计框图如图3.1所示。
此设计由计算部分、存储部分、显示部分和输入
部分组成。
图3.1计算器的系统组成框图
3.1计算器的计算部分
接下来我们就分些这个计算机也得计算的不稳,他是怎么通过计算的方式进行计算的,他是一般是通过八杯或者四杯的20斤是进行计算的我们都很熟悉这种语言,并且用这种VHDl语言进行把这种程序更二的解决出来更好的预算装出来具体的算法,我们上面都跟网的。
据介绍了,他不能进。
进行人也数的除法,但是他能够更好的进行任意数的加法,减法,这都是没有任何问题的,他能更好地进行继续计算,所以工程是非常的强大的。
3.2计算器的存储部分
我们都知道计算器的存储不分是非常的重要的,他主要有三个存储蓄业去实现它计算的工程。
在做Java的时候,他使用的是内部累加器侄儿个累加器能够更好的进行加法的运算,输出寄存器也是能够更好地去存储相关的叙述句,将这些数据进行更好的及存储能够更好的进行运算。
结果在实际也是非常的重要的可以把结果暂存器进行合理的运用起来,让上面相加的结果进行存著,然后再进行的加减乘除,这样都是非常的好的,非常的快的。
3.3计算器的显示部分
我们都知道计算出来的结果,一定要显示在屏幕上,我们用的屏幕是Fede的屏幕,这种屏幕功能是非常的强大的,能够非常更好的显示图形以及声音的制作他需要的是BCD码,这种BCD吗?
是非常的好的,能够把自己的编译的程序在这儿款软件中更好的实践,他是通过高低电平去控制数码管儿的阴阳两极。
能够更好的分析数字进行加减乘除方便,运算编程的程序,也是非常的高的,所以受到了广大程序人员的喜欢
。
七段译码器的基本结构如图3.2所示。
图3.2七段译码器的结构
通过查阅大量的数据我们可以得出以下的代码,并且能够更好的去实现功能,WITHindataSELECT
outdata<="0111111"WHEN"0000",--0的显示;
"0000110"WHEN"0001",--1的显示;
"1011011"WHEN"0010",--2的显示;
"1001111"WHEN"0011",--3的显示;
"1100110"WHEN"0100",--4的显示;
"1101101"WHEN"0101",--5的显示;
"1111101"WHEN"0110",--6的显示;
"0000111"WHEN"0111",--7的显示;
"1111111"WHEN"1000",--8的显示;
"1101111"WHEN"1001",--9的显示;
"0000000"WHENOTHERS;--其它的输入按键均不显示。
计算器显示部分的设计和实现,实际上就是七段译码器的设计和实现,三个七段译码器分别显示的是个位、十位和百位。
输入第一个数字后至再一次按下数字按键输入第二个数字前,三个七段译码器显示的都是第一个数字。
当开始输入第二个数字的时候显示第二个数字,再次按下运算按键到输入第三个数字前,显示的是前两个数字的运算结果,以此类推,当最后按下等号键的时候,显示最终的运算结果。
3.4计算器的输入部分
在我们很小的时候就已经接触了计算器了,我们都知道计算器上的数字的一般都是都是10个数字,通过这十个数字不断的阻隔进行累加或者累,除了都能可以计算如何我们想要的结果通过我们人为的思想去控制的,他应该怎么去进行计算,并延最终的。
结果会显示到我们想要的屏幕上,具体的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 查表式 运算器 设计 仿真
![提示](https://static.bingdoc.com/images/bang_tan.gif)