基于FPGA的查表式运算器的设计与仿真_第1页
基于FPGA的查表式运算器的设计与仿真_第2页
基于FPGA的查表式运算器的设计与仿真_第3页
基于FPGA的查表式运算器的设计与仿真_第4页
基于FPGA的查表式运算器的设计与仿真_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、北方民族大学本科毕业论文(设计)题目:基于FPGA勺查表式运算器的设计与仿真院(系)名称:电气信息工程学院学生姓名:黄斯洲学号:20130575专业:电子信息工程指导教师姓名:张广忠论文提交时间:北方民族大学教务处制随着我国的经济的发展,人们要求计算的方法更好简单和方便,尤其是在计算这个方面,所以对于运算器的设计是非常的重要的,所以为了更好的设计该设计采用了现场可编程逻辑器件FPG破计,并基于硬件描述语言VHD故Altera公司的QuartusII软件上实现仿真。系统由计算部分、存储部分、显示部分和输入部分四个部分组成,计算部分为加法器、减法器、乘法器和除法器,存储部分需要3个存储器来实现:内

2、部累加器(acc)、输入寄存器(reg)以及结果暂存器(ans)。显示部分由四个七段译码管组成,分别来显示输入数字,输入部分采用外接键盘,由09十个数字按键,加减乘除四个运算符按键,一个等号按键和一个清零按键组成的。通过外部的按键可以完成四位数之内的加、减、乘、除四种功能运算,其结构简单,易于实现。关键词:FPGAVHDL计算器AbstractThisarticledescribesthedesignofasimplecalculator,thedesignusesFieldProgrammableGateArrayFPGAbasedonVHDLhardwaredescriptionlangu

3、agetodesignandAltera'sQuartusninsoftwareforemulation.Thissystemiscomponenttedbythecalculationsection,storagesection,displayandinputsectionofthefourparts,thecomputingpartincludeadder,subtractor,multiplieranddivider,Storagepartneedsthreememorytohelpachieved:internalaccumulator(acc),inputregister(r

4、eg)aswellastheresultsofregisters(ans).Displaypartismadeupthreedecoderof7sections,respectivelytoshowthenumberofinput.Inputparthastennumberkeys,from0-9,alsohasadditionandsubtractionandmultiplicationanddivisionarithmeticoperatorkeys,abuttonandofequalsignandtheclearkey.Buttonscanbedonethroughexternalwit

5、hinthefour-digit'add','subtract','multiple','divede'thefourkindsoffunctionaloperations,itsstructureissimpleandeasytoimplement.Keywords:FPGA;VHDL;calclute第一章引言11.1 课题研究的目的与意义11.2 国内外发展现状11.3 课题的主要技术路线2第二章FPGA技术及硬件描述语言32.1 FPGA技术的发展现状及与CPLD勺比较32.2 FPGA设计方法42.3 利用硬件描述语言(

6、HDL的硬件电路设计方法52.4 VHDL语言的特点62.5 QuartusR概述及其设计流程6第三章系统总体设计83.1 计算器的计算部分83.2 计算器的存储部分83.3 计算器的显示部分93.4 计算器的输入部分10第四章计算器的VHD殴计114.1 加法器的设计与仿真114.2 减法器的设计与仿真134.3 乘法器的设计与仿真144.4 除法器的设计与仿真15第五章结束语16参考文献17附录18II第一章引言1.1 课题研究的目的与意义在人类学会买卖的时分,计算也随之爆发,而算盘成为计算最适用的工具存在了几千年。算盘也叫珠算,是中国人民发明的一种计算用具,古代时有中国的计算机”的称号。

7、算盘产生在我国汉代的前期,是由古代的筹算”演化变成的,珠算这个词语,最早出现在汉末的三国演义时代的徐岳撰的数术记遗里,有一句叙述珠算,控带四时,经纬三才”是出自出本里的。乘除通变算宝是南宋数学家杨辉的,里面有九归”的口诀,刘因是元代人,也作了一首算盘的诗句,吴敬是明代人,他的的九章详注比类算法大全里写有珠算的大部分有关算法。在明清的时候,人们对算盘的运用就非常多,而对于算盘的制作大小,明万历年间的柯尚迁写的数学通轨里记载了13档算盘的图片,上有2珠,下有5珠,样似长方形,四周都是木框,里面有一个轴心,人们都叫作档”,档的中间是用一根横木来分隔开来,运算的时候在确定位置后拨动珠字来进行计算。起初

8、出世的每一种规格的算盘,全部在这个基础上发展起来。算盘的结构铸造十分简单,不仅便于掌握,而且使用的时候也很便利,它变成了计算和理财不能缺少的其中一种工具。算盘的传入是从明代开始,它来自朝鲜和日本等一些国家。清代的时候算盘根据经济和文化的交流被传进东南亚每个国家,在第二次世界大战结束后,美国在日本引入了一些算盘,看得出来算盘在现代人的生活里拥有非常重要的作用,无论是大商人或者是小商人都会通过运用小算盘来计算。不过根据人类文明的发展与现代科学技术的一直进步。算盘慢慢变成越来越不能满足一部分高强度和高难度与高速度的非常复杂的一种计算。就在这时,一种新型的电子类产品出世了,我们都叫它电子计算器。电子计

9、算器是一种跨越了一个时代的伟大发明,比其算盘来,它的计算速度要快几百甚至几千倍,电子计算器的计算的结果也要比算盘更具精确度,它操作得非常方便,容易学会,它的计算的范围非常广泛,而且很灵巧,便于携带出门。电子计算器已经变成现代人生活中不可减少的计算用器,它给我们的生活带来了很大的便利。并且根据计算机的流行,更多的人在运用计算机,更多的工作都和计算机密不可分,也就是说计算机慢慢变成现代社会中不可缺少的计算用具,并且电子计算器拥有的功能也通过软件的形式使用到计算机里的软件世界里,它不仅给人们带来了很大的便利,还为现代人提供了更迅捷的计算速度,缩短了计算时间,和具有非常强大的运算功能。1.2 国内外发

10、展现状(1)国外情况如今在国外,集成电路出世后,电子计算器只用仅仅几年功夫就达成了一种技术发展,通过猛烈的市场竞争,如今的计算器技术就非常成熟。计算器已渐渐地脱离原本的辅佐计算工具”的功用定位,正往着多功能化和可编程化的目的发展,在各个范围都得到了普遍的使用。计算器不但能够完成各种各样复杂的数学计算还能够来编制和运行程序,方程组也可以用来解决,图形计算器也能用图形解决。计算器的一些内置软件也容许用户使用一些类似于对计算机的文件与目录管理等操纵,同意用户自行定制图形界面,此时每一种新的技术也被使用到计算器里让计算器功能更加强大。也就是说,电子计算器也能被称为微微型”的计算机。(2)国内情况在国内

11、,有厂商也使用计算器芯片来发明新的产品,不过针对计算器技术的钻研和计算器的芯片的设计现在还是起步的阶段。计算”是计算机的最主要公用,我们可以把它叫做低档计算器就算是关于这种计算器,大部分厂家和商人也仅仅工作在组装计算器和销售的业务。一部分IC设计公司和芯片的供应商人也开始慢慢钻研和学习计算器技术。1.3 课题的主要技术路线这次实验是做基于现场可编程逻辑器件FPGA来进行设计,不仅是运用了硬件描述语言VHDL,还编程,并且在Altera公司的QuartusII软件上完成了仿真。我们还必须实现进行计算器的一部分常用到的运算功能,经过外接键盘输入、LED数码显示来达到和完成运算目标。第二章FPGA技

12、术及硬件描述语言2.1FPGA技术的发展现状及与CPLD的比较(1) FPGA技术的发展现状FPGA是把英文FieldProgrammableGateArray的缩写,也就是现场可编程门阵列,它是在CPLD和GAL与PAL等可编程器件的根本上更深入发展的产物。FPGA是作为专用集成电路(ASIC)领域中出现的的一种半定制电路,不但处理了定制电路的缺乏,还克服了原本存在的可编程器件门电路数有限的几个缺点。FPGA使用了逻辑单元阵列LCA(LogicCellArray)这个概念,它还包含可配置逻辑模块CLB(ConfigurableLogicBlock),输入输出模块IOB(InputOutput

13、Block)和内部连线(Interconnect:)三个内部局部。FPGA的基本特点主要有:i .采纳FPGA设计ASIC电路,用户不需要投片消费,就能获得合用的芯片。ii .FPGA能做其它全定制或者半定制ASIC电路的测试样片。iii .FPGA内部有丰富的触发器和I/O引脚。iv.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。v.FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。RAM中的程序是用来设置FPGA工作状态的,它存放在片内RAM的程序里,因而,工作时就得对片内的RAM进行编程。用户也能随着不同的配置方式,使用不同的编程方法。加电

14、时,片内编程RAM被FPGA芯片读入一些EPROM中的一些数据,在配置完成后,FPGA就进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因而,FPGA能使用很多次。FPGA的编程不需要专用的FPGA编程器,只要通用的EPROM、PROM编程器就可以。当必要改正FPGA性能的时候,只要换一片EPROM就可以了。同一片FPGA,不同的编程数据,能够发生差别的电路性能。因而,FPGA的运用十分灵便。FPGA和DSP处理器还相对应,尽管DSP处理器速度非常快,还对许多DSP运用来说很有用,不过还有一些应用要求功能需要再一步提高,而且FPGA还提供了更高的功能。FPGA能够生成一个定制硬件设

15、计,控制逻辑可以实现在硬件中,不用再使用精确的时钟周期来实现控制功用。另外,经过缩小硬件的框架,FPGA还能够供应额定的3功能。假如,速度是最关键的设计思考原因,这样一来我们能够在FPGA中设计一个齐全并行的算法解决方法。如今,诸多系统都包含了一个FPGA,用于胶合逻辑和协议转换或者一些其它系统功用。假如,那FPGA没有被全部运用,那可以把DSP功能加入里面,能够为系统节省一部分成本。并且假如标准产生了一些变化,FPGA的运用就不会有一切风险。FPGA的配置文件可以升级,就像一个软件一样,虽然它们必需被存储在系统的非易失性存储器中。目前,FPGA设计的设计方法,通常使用的是Top-down(自

16、顶向下)。系统被分成各个功能子模块,在系统级层次上使用行为描述,再对这些子模块进一步使用行为描述。(2) FPGA与CPLD的比较FPGA简要称呼叫现场可编程逻辑门阵列,它是电子设计的一个里程碑。CPLD的简要称呼叫复杂可编程逻辑器件。虽然FPGA和CPLD一起都是可编程ASIC器件,有很多共同特性,但由于CPLD和FPGA构造上的差异,具备各自的特性:1.CPLD更合适实现各种算法和组合逻辑,FPGA更合适在完成时序逻辑。换个说法,FPGA更合适在触发器丰富的构造,而CPLD更合适在触发器有限且乘积项很丰富的构造。2 .这种形式的集成度是非常的高的,并且它内部的结构和逻辑性也是非常的好的,受

17、了广大的电子器件儿人们的喜欢。3 .运行的速度比现在业界上最快的DSP芯片还要快,是非常的快的。4 .在这种形式的使用方面,他也是非常的好的,她没有外部的存储芯片,使用着操作起来也非常的简单。5 .这种芯片它的运行的速度也是非常的快的。能在很多的时间真之内运行出来很多的程序使用度非常的高。6 .在编程方面可编程度是非常的好的,通过这些程序员可以把自己的程序写错时他可以随意的进行改正的,并且这种部件儿在运行的过程中中如果在断电的时候里边存储的信息也不会丢失他能更好地去保存出来功能是非常的强大的7 .2FPGA设计方法在这个软件进行设计是中号,他有很多的规则,如果成员更好地掌握了这些规则,他能够使

18、用起来非常的方便,他并且是功能非常的强大的更好的去运行程序。我们知道应下系统对于一个系统来说是非常的重要的,它可以根据重新进行实现功能,它通常是欲望算法来实现的。又要能够让每个各部件都能更好地实现出什么工程?2从系统方面分析它可以加上哥哥模块儿进行组合起来,让哥哥摸罐进行时间他索要要求的工程,并且它对要求高频率会红,夜宵的模块儿更加的实用。但是对于功能比较强大的模块儿它也能更好地使用,有利于程序进行设计和实现。3这个系统运行的速度是非常快的,他每秒钟能时间3000万。非常的方便与实用它的体积是非常小的,能融合到各个单片机中旭能配合好,单片机更好的去工作。他的工作效率也是非常的高的不能和任何程序

19、,静静充足,他的准确性高,受到了广大程序员的喜欢。由于它的芯片是非常的小的可以更好的切入到单片机中,去辅助单片机更好的进行工作。4同步说句在这方面也是非常的重要的他能跟工程同步到这个程序运行起来,这个功能也发挥着巨大的作用,它同步的效果是非常的高的。有趣的是,在师宗方便它的经文确定也是非常的准的。老婆更好的去采集数据,这样把台积出来的,输液更好的分析出来,得到结果然后配合系统去执行相关的木命令把几个模块儿更好的整合出来。8 .3利用硬件描述语言(HDL)的硬件电路设计方法硬件儿的编程的语言是非常的重要的,可以通过这一个语言让硬件儿和硬件进行交流,明白这个硬件发出了是什么命令,并且配合区执行其他

20、相关的命令,好比也是,人和人之间的说话,它能更好的去沟通了解人所能表达出来的意思应该是家的语言,他也是这样的,这个软件所采用的语言是VACdAC于二这种雨呀功能是非常的强大的收到了国代变成舍得,喜欢接下来我介绍这桌描述语言的几个特点,他们是怎么更好地辅助电路去工作的。1他的方向二是自上向下的,这样有利于编程语言的能够一步一步的进行,实现功能是非常的方便的。2由于我国制作芯片的厂家是非常的多的,他们所使用的软件都可以支持这种H直接一次语言,所以这种语言在适应很多种软件,硬件的设计人员也非常喜欢这种语言,因为他是用都非常的大,并且体积小,更容易切入到单片机中去,能够更好的企业设计,并且更加的合理。

21、店家收到了很大的设计人员的喜欢。3这种软件还能够更好的进行仿真,通过仿真能知道这些程序实现的是什么功能,并且对每个功能进行详细的分析。更好地找到错误,并且。开发出来的功能,大大的提高了工作的效率。也降低的硬线使用的频率。难度使广大的硬件设计人员喜欢她也大大的提高了工作的效率这种啊,软件是非常的好的。5他的设计文件是用这种语言编写的源程序通过这种现象可以看出这种。语言要挂房子是用在哥哥方面。通过用这种程序编程出来,然后发站出来电路图,通过这些电路图可以更好的找到解决的方法,知道什么地方是错误的,并且能在很多的时间进行改正出来,收到了过完那的营销人员咋喜欢这种方式也更加方便。硬件设计人员去阅读它,

22、去了解它。一眼就能看的出来,这个程序编程有什么问题,有什么优点可以方便去改正。9 .4VHDL语言的特点VHDl与安生非常的厉害的,受到了广大硬件人员的喜欢它的结构非常的严谨,操作起来也非常的简单,所以受到了硬件人员的喜欢,接下来我解详细的介绍它的急个特点,他是怎么更好地辅助硬件系统进行工作的,她不要和其他的硬件语言一样。他大范围也是非常大的功能也是非常的大的,超过了其他软件的编程语言,他比Java更佳的简单,比C语言更加的强大,所以很多的硬件设计人员喜欢用它。在这个编程的语言中,他还可以创造出来很大的系统,有些事在变成函数的时候我们都知道变成函数是非常复杂的,但是用这种语言进行编程式分享的,

23、简单的他能够很准,在很短的时间进行月行把自己想要表达的函数进行表达出来。不用写这种语言能够随时的调用其他模块儿的内容,他的衔接,都是非常的好的,能与哥哥麽会进行交通和沟流,就向人和人进行语言交流一样,当一个软件的我被发射出命令的时候,另一个软件模块进行接收,他能更好地读懂它,是什么的意思,能够去执行这项任务。所以说他的工程师非常早,强大的受到了很多硬件人员咋喜欢他们,非常喜欢用这种程序语言去进行编程。这种编程语言是相互独立的,他能更好的和其他的语言进行区分。不会受到任何变成语言的。干扰能够更好地掌握编程的准确性。这种语言的生命周期是非常的长的,她不会随时对软件的更新而改变错误,他从开发到现在已

24、经有了80年的历史,在这个历史的演变的过程中,经过不断的开发和演变,他慢慢的成长起来,受到了广大程序人员的喜欢。10 5QuartusH概述及其设计流程这种软件是非常高智能的,它能够对图形以及视频进行方进行演示,并且把所有的程序。进行仿真出来很好的发现出什么地方出现问题,并且它出它运行的速度是非常的快的使用的街面也是非常的简单的适用于初学者的使用。这种软件是由德国科学家西门子洛夫斯基研发出来的,他刚开始研发这款软件的时候,就是为了解决编程的问题,在他不断的努力进行研发的过程中,终于研发出来了,这款软件这种国产软件的工厂是非常的强大的,受到了广大人们的喜爱。并且这种软件的设计逻辑已设计环境都是非

25、常简单的,并且工程非常的强大,能够使使用者一眼就能看的出来他具有什么作用,能够让使用者更好地进行操作。并加他运行的环境可以支持多种环境,避免了单一的环境给程序员带来的烦恼。他的编程的能力也是非常的大的,通过编程,它可以运行出来程序所要显示的功能大大的提高了调试的能力,并且支持很多的插件儿直接插垫是用来干什么的,这些插件儿主要的增加了软件的功能,比如画图仿真或者是语言或者是视频这种功能都是非常的气。非常的强大的,受到了硬件儿变成语言的喜欢,所以这种软件是越来越流行的。2接下来我就想起咋去设计这款软件怎么进行设计的流程,怎么去运营它,首先要在这个软件上建立新的工程,你把这个工程建立好了就跟把自己要

26、建立的项目进行合理的去命运了,给自己的项目起一个名字,这个名字命名的时候一定要以英文字母去开头,因为这款软件是y。是外国人进行设计的,一定要遵循这种命名的方法,等我们建立了这个。工程之后就应该选择自己所需要的模块儿,在这个软件中他的魔罐是非常的多的,咱们使用起来也非常的简单和方便。根据子,我们的需要进行选择模块儿,并且知道每个模块儿之家。有什么作用的充分的利用他们的作用进行变成这样,能够更好的去分析和发现变成中出现的错误能够更好地改正出来,当我们运行的过程中就进行编译,编译出是不是他们有错误,是不是能够正常的进行编程,编程也是非常的重要的,通过编程我们能知道我们所。说做创的程序是不是能够正常的

27、演示出来,如果能演示出来,我们就能够发现我们做出来的程序所要表达的功能是不是和我们所要表达的功能是不是一样及时的发现问题并能更好的及时的去解决问题,这样是非常的好的。仿真的时候一定要知道网络是不是正常的连接,如果网络不能正常的了。了解就需要及时的改正仿真,所以说是非常的重要的,一定要记住自己文件的扩展名要合理的运用这种扩展并如果扩展名错误了这种仿真也不能够更好的防震出来,他们会出现很多的错误。如果仿真的时候出现了错误,这个软件会出现很多的代码,他说他能够告诉你。是什么地方出现错误,他能方便的,告诉你什么地方出现了错误之后你能更好地发现问题更好的去解决问题。第三章系统总体设计系统总体设计框图如图

28、3,1所示。此设计由计算部分、存储部分、显示部分和输入部分组成。图3.1计算器的系统组成框图3.1 计算器的计算部分接下来我们就分些这个计算机也得计算的不稳,他是怎么通过计算的方式进行计算的,他是一般是通过八杯或者四杯的20斤是进行计算的我们都很熟悉这种语言,并且用这种VHDI语言进行把这种程序更二的解决出来更好的预算装出来具体的算法,我们上面都跟网的。据介绍了,他不能进。进行人也数的除法,但是他能够更好的进行任意数的加法,减法,这都是没有任何问题的,他能更好地进行继续计算,所以工程是非常的强大的。3.2 计算器的存储部分我们都知道计算器的存储不分是非常的重要的,他主要有三个存储蓄业去实现它计

29、算的工程。在做Java的时候,他使用的是内部累加器侄儿个累加器能够更好的进行加法的运算,输出寄存器也是能够更好地去存储相关的叙述句,将这些数据进行更好的及存储能够更好的进行运算。结果在实际也是非常的重要的可以把结果暂存器进行合理的运用起来,让上面相加的结果进行存著,然后再进行的加减乘除,这样都是非常的好的,非常的快的。3.3 计算器的显示部分我们都知道计算出来的结果,一定要显示在屏幕上,我们用的屏幕是Fede的屏幕,这种屏幕功能是非常的强大的,能够非常更好的显示图形以及声音的制作他需要的是BCD码,这种BCD吗?是非常的好的,能够把自己的编译的程序在这儿款软件中更好的实践,他是通过高低电平去控

30、制数码管儿的阴阳两极。能够更好的分析数字进行加减乘除方便,运算编程的程序,也是非常的高的,所以受到了广大程序人员的喜欢。七段译码器的基本结构如图3,2所示。afbgecd图3,2七段译码器的结构通过查阅大量的数据我们可以得出以下的代码,并且能够更好的去实现功能,WITHindataSELECToutdata<="0111111"WHEN"0000”,-0的显示;“0000110"WHEN"0001”,-1的显示;“1011011"WHEN"0010”,-2的显示;“1001111"WHEN"0011

31、”,-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;-其它的输入按键均不显示。计算器显示部分的设计和实现,实际上就是七段译码器的设计和实现,三个七段译码器

32、分别显示的是个位、十位和百位。输入第一个数字后至再一次按下数字按键输入第二个数字前,三个七段译码器显示的都是第一个数字。当开始输入第二个数字的时候显示第二个数字,再次按下运算按键到输入第三个数字前,显示的是前两个数字的运算结果,以此类推,当最后按下等号键的时候,显示最终的运算结果。3.4 计算器的输入部分在我们很小的时候就已经接触了计算器了,我们都知道计算器上的数字的一般都是都是10个数字,通过这十个数字不断的阻隔进行累加或者累,除了都能可以计算如何我们想要的结果通过我们人为的思想去控制的,他应该怎么去进行计算,并延最终的。结果会显示到我们想要的屏幕上,具体的代码就是。PROCESS(incl

33、k,reset)BEGINIFreset='1'THEN-异步复位信号为高电平的时候outnum<="0000”;-把"0000®值给数字的输出端口ELSIFinclk'EVENTANDinclk='1'THENCASEinnumISWHEN"0000000001"=>outnum<="0000"outflag<='T;- -按下一个键表示输入为0WHEN"0000000010"=>outnum<="0001&q

34、uot;outflag<='T;- -按下第二个键表示输入为1WHEN"0000000100"=>outnum<="0010"outflag<='T;- -按下第三个键表示输入为2WHEN"0000001000"=>outnum<="0011"outflag<='T;- -按下第四个键表示输入为3WHEN"0000010000"=>outnum<="0100"outflag<='T;-

35、 -按下第五个键表示输入为4WHEN"0000100000"=>outnum<="0101"outflag<='T;- -按下第六个键表示输入为5WHEN"0001000000"=>outnum<="0110"outflag<='T;- -按下第七个键表示输入为610WHEN"0010000000"=>outnum<="0111"outflag<='T;-按下第八个键表示输入为7WHEN"

36、0100000000"=>outnum<="1000"outflag<='T;-按下第九个键表示输入为8WHEN"1000000000"=>outnum<="1001"outflag<='T;-按下第十个键表示输入为9WHENOTHERS=>outnum<=outnum;outflag<='0'-不按键时保持ENDCASE;ENDIF;ENDPROCESS;我们都知道,在这次设计中,程序是非常的重要的我们就只应该让他怎么去判断怎么输入我们想

37、要的时候最一般都是零到九这几个数字,我们可以通过高低电平需要更好的去控制,并且怎么进行下降,成熟后也应该用高级电瓶骑更好的控制,这样才能更好的去实现这个电路这个程序的功能的实现,所以。这个任务是非常的艰巨的我们应该详细的去分析和了解。输入和输出之间的关系。第四章计算器的VHDL设计4.1 加法器的设计与仿真我们都知道,同学已经设计好了,就应该还这样拖过好深的形式能够更好的分析如何,这个程序是什么地方发生了错误,并且能够及时的让程序员是及时的改正出来。本文设计的这个预算系行他就是能实现加法的运筹,并且能够让很多时候进行解相加,相加之后能够更多的显示在屏幕上,并且这个怨气的。运行的速度是非常的快的

38、能够占有11很多资源,本文所涉及的环节也是非常的少的非常的简单和职别嗯,能让很多的人能够看明白这件事情是怎么运行的。我通过了改革,还和改正啊,提高了运算速率的效率,并且占有的资源是非常的少的,能够更好的提高运输运算的速度能够很快的让程序运行起来。这个效果是非常的好的,所以这个设计是非常的成功的。接下来我就要详细地介绍这个家法机械的原理是什么原理,他就是加数和被加数啊,要相加,然后并且显示出来的结果,运算到我们所需要的屏幕上能够让使用过的客户更好地知道他的加法的结果是多少,只要更好的去分析了加法的运算的过程能够更好的让我们把基础。如果报道时加的应用过程中用去非常的好。加法器的原理框图如图4.1所

39、示。图4.1加法器的原理框图接下来,让我详细的去分析这个程序运行的过程,他是加数和被加数进行相加,并且个位和十位,百位,千位都是相对应的他们进行相加之后嗯进行四舍五入的方法进行总结出来的结果,并且把结果。想知道我们所要需要看到的显示的屏幕上去,这样更加的直观而和现实的让我们了解加法的结果。详细的预算的程序假,我们论文的目录。巨体的法阵的效果如何?下图所示他能够更好的让我们分析十六进制和八进制的区别,他们是金怎么进行运算出来的,通过这种形式能够让我们通过仿真的方式进行分析和验证最重要,我们可以得出仿真的结果是正确的,我们终于成功的设计出了加法运算器非常的成功。图4.2加法器仿真16+176=19

40、24.2 减法器的设计与仿真上文我们已经介绍了加法的运算器的运行的原理。接下来我们就介绍减法的运算器的原理,其实加法的运算器的原理和减法运算器的原理都是相通的,它们都是一样的,都是通过数字与数字进行相减个位和个位小姐十位和十位小姐,千位和千位相间,直接将运算的结构显示到我们想要。这是非常的简单的也是非常的靠谱的,具体的流程图,原理图,如下图所示。图4.3四位全减器的原理框图134.3 乘法器的设计与仿真乘法的运算器是非常的难以解决的他所需要的步骤也是非常的多的,他需要左移一位右移一位通过移位的方式去实现相关的单位的运算这种原理是非常高度,并而且在我我设计的时候出现而来很多的问题,在我设计的过程

41、中遇到了很多的问题,并且进行对问题的总结,最终得出了乘法运算器的原理的框图如图所示。图4.5乘法器的原理框图图4.6乘法器仿真13*10=130144.4 除法器的设计与仿真除法的运算器是非常的难以解决的他所需要的步骤也是非常的多的,他需要左移一位右移一位通过移位的方式去实现相关的单位的运算这种原理是非常高度,并而且在我我设计的时候出现而来很多的问题,在我设计的过程中遇到了很多的问题,并且进行对问题的总结,最终得出了乘法运算器的原理的框图如图所示。图4.7除法器的原理框图通过我上我们上面知道了,除法运算器的工作原理,通过这样我们能够更好的去分析和验证,反正他们并且对我们验证的仿真结果进行了实力

42、的验证,发现没有任何的问题,他是非常的正确的,所以这次的实验是非常的成功的。最低的,仿真的结果如下图所示。15g.t.jgihi小AI日$,U1山hQyH神叩必需叫叫比叫at.叫叫叫叫叫叔m图4.8除法器仿真148+13=115,22+131第五章结束语通过这次论文的设计和研究,我从刚开始是不知道怎么去做,我刚开始做这个题目的时候头是晕晕的慢慢的通过我问同学问老师慢慢的有了一点的思路,知道自己应该怎么去做。首先我通过在网络搜索的过程中找到了我的论文设计的基本的框架,然后在一点一点的进行摸索,再通过在网络上查阅大量的资料,进行丰富框架里边的内容,有不懂得再进行通过问同学和老师的方式进行找到解决的

43、方案,最终我成功的完成了我的论文的设计,当我真正的完成这个论文我真正感觉到了人生中什么是成功,我只能对我的老师和同学说一句话,真的很感谢你们,我也非常感谢我的导师是他在我的背后默默的支持,再给我打进鼓励我才能把这个论文设计做了出来。从做这个论文设计的过程中我经历了很多的困难。我真正的认识的基础知识是非常的重要的,我们必须应该把自己的理论融合到实践的过程中去,这样才能使实现和理论更好的去结合,才能更好的把自己的基础知识打牢。通过我这一次能够顺利地完成论文,我非常要感谢的一个人,是我的导师。在这个论文的设计的过程中,是他耐心的为我讲解。在我不懂的时候也是他在为我讲解。他没有任何的反感对我非常细心的

44、给我讲解,我应该怎么去做。与此同时,我还应该感谢我们学院的各位领导,是他们在我的大学四年对我的无微不至的关怀,我才能有今天的成16就。非常的感谢他们,也是,他们给了我这一次难得的机会,让我真正的踏入了社会,真正的用自己所学的理论,根据自己大学四年所学的理论知识完成了一篇具有理论意义的学术论文。在其中的过程中,我也学会了很多的事情,面对困难,我不应该退缩,应该勇往直前,因为一旦退出,就注定失败,只有坚持不懈的去努力,才能够成功。参考文献1崔葛瑾,沈利芳,李伟民.基于FPGA的数字电路系统设计M.西安:西安电子科技大学出版社,2008年.2王彦.基于FPGA的工程设计与应用M.西安:西安电子科技大

45、学出版社,2007年.3黄智伟.FPGA系统设计与实践M.北京:电子工业出版社,2005年.3江思敏.VHDL数字电路及系统设计M.北京:机械工业出版社,2006年.5卢毅,赖杰.VHDL与数字电路设计M.北京:北京科学出版社,2001年.6潘松,黄继业.EDA技术实用教程M.第二版.北京:科学出版社,2005年.7徐志军,徐光辉.CPLD/FPGA的开发与应用M.北京:电子工业出版社,2002年.8陈育人.8位计算器的指令系统与硬件结构J.微电子技术,2000年,第28卷第3期.9王冬冬.基于FPGA的浮点运算器设计.万方数据,17HTTP:d.g.WANGFANGDATA.com.CN/T

46、hesis_Y1548067.ASPX.10王在t国.科学计算器的大规模集成电路芯片设计.万方数据,HTTP:d.g.WANGFANGDATA.com.CN/Thesis_Y722644.ASPX.附录附录A:源程序4位二进制并行进位加法器的源程序ADDER4B.VHD如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYADDER4BISPORT(ci:INSTD_LOGIC;a:INSTD_LOGIC_VECTOR(3DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWN

47、TO0);s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDADDER4B;ARCHITECTUREbehaveOFADDER4BIS18SIGNALSINT:STD_LOGIC_VECTOR(4DOWNTO0);-类似于在芯片-部定义的一个数据SIGNALaa,bb:STD_LOGIC_VECTOR(4DOWNTO0);BEGINaa<='0'&a;-拓展位数,使其成为最高位bb<='0'&b;SINT<=aa+bb+ci;-相加s<=SINT(3DOWNTO0);c

48、o<=SINT(4);-最高位为输出进位位ENDbehave;顶层模块:8位二进制并行进位加法器的部分程序ADDER4B.VHD如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYADDER8BISPORT(ci:INSTD_LOGIC;a:INSTD_LOGIC_VECTOR(7DOWNTO0);b:INSTD_LOGIC_VECTOR(7DOWNTO0);s:OUTSTD_LOGIC_VECTOR(7DOWNTO0);co:OUTSTD_LOGIC);ENDADDER8B;ARC

49、HITECTUREaOFADDER8BISCOMPONENTADDER4B-引用4位二进制并行进位力口法器PORT(ci:INSTD_LOGIC;a:INSTD_LOGIC_VECTOR(3DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWNTO0);s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALCARRY_OUT:STD_LOGIC;BEGINU1:ADDER4BPORTMAP(ci=>ci,a=>a(3DOWNTO0),b=>b(3DOWNTO0),s=>s(

50、3DOWNTO0),co=>CARRY_OUT);19U2:ADDER4BPORTMAP(ci=>CARRY_OUT,a=>a(7DOWNTO4),b=>b(7DOWNTO4),s=>s(7DOWNTO4),co=>co);ENDa;4位二进制并行进位减法器的源程序suber.VHD如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsuberISPORT(a:INSTD_LOGIC_VECTOR(

51、3DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWNTO0);ci:INSTD_LOGIC;s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDsuber;ARCHITECTUREbehaveOFsuberISCOMPONENTadderIS引用加法器的模块PORT(a:INSTD_LOGIC;b:INSTD_LOGIC;ci:INSTD_LOGIC;s:OUTSTD_LOGIC;co:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALbtem:STD_LOGIC_VECTOR(3DOWNTO0);减数寄存

52、SIGNALctem:STD_LOGIC_VECTOR(4DOWNTO0);进位寄存SIGNALstem:STD_LOGIC_VECTOR(3DOWNTO0);结果寄存BEGINbtem(3DOWNTO0)<=NOTb(3DOWNTO0);-先把减数求反ctem(0)<=NOTci;-输出进位也求反,从而对减数求补码g1:FORiIN0TO3GENERATE连用4位全力口器add:adderPORTMAP(a(i),btem(i),ctem(i),stem(i),ctem(i+1);ENDGENERATE;s(3downto0)<=stem(3downto0);-结果输出20

53、co<=NOTctem(4);-求反输出进位ENDbehave;8位二进制并行进位减法器的原理图:乘法器的源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmulISPORT(a,b:INSTD_LOGIC_VECTOR(3DOWNTO0);y:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDmul;ARCHITECTUREarchOFmulISBEGINy(7DOWNTO0)<=a(3DOWNTO0

54、)*b(3DOWNTO0);ENDarch;除法器的源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdiverISPORT(a:INSTD_LOGIC_VECTOR(7DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWNTO0);clk:INSTD_LOGIC;str:INSTD_LOGIC;s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);y:OUTSTD_LOGIC_VECTOR(3DOWNT

55、O0);END;ARCHITECTUREbehaveOFdiverISCOMPONENTsuberIS-引用减法器PORT(a:INSTD_LOGIC_VECTOR(3DOWNTO0);b:INSTD_LOGIC_VECTOR(3DOWNTO0);21ci:INSTD_LOGIC;s:OUTSTD_LOGIC_VECTOR(3DOWNTO0);co:OUTSTD_LOGIC);ENDCOMPONENT;TYPEstate_typeIS(start,one,two,three,eror);-状态定义SIGNALstate:state_type;SIGNALain:STD_LOGIC_VECTOR

56、(7DOWNTO0);SIGNALbin:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALatem:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALbtem:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALstem:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALcitem:STD_LOGIC;SIGNALcotem:std_logic;BEGINp2:PROCESS(clk)VARIABLEn:INTEGERrange0to3;移位次数计数值BEGINIFclk'EVENTANDclk='1'TH

57、ENCASEstateISWHENstart=>开始状态IFstr='1'THENstate<=one;atem(3DOWNTO0)<=a(7DOWNTO4);把高4位放到减法器被减数端btem(3DOWNTO0)<=b(3DOWNTO0);把除数放到减法器减数端ain(7DOWNTO0)<=a(7DOWNTO0);寄存被除数bin(3DOWNTO0)<=b(3DOWNTO0);寄存除数ENDIF;WHENone=>第一次移位IFcotem='0'THENstate<=eror;ELSEain(3downto1)&

58、lt;=ain(2downto0);-被除数做移位ain(0)<=notcotem;-在最低位接受该位商值atem(3downto0)<=ain(6downto3);-除数寄存器高4位输到减法器,作为被减数state<=two;22ENDIF;-第二次移位WHENtwo=>IFn=2THENstate<=three;n:=0;ELSEstate<=two;n:=n+1;ENDIF;IFcotem='0'THENatem(3DOWNTO1)<=stem(2DOWNTO0);ELSEatem(3DOWNTO1)<=atem(2DOWN

59、TO0);ENDIF;ain(3DOWNTO1)<=ain(2DOWNTO0);ain(0)<=NOTcotem;atem(0)<=ain(3);WHENthree=>-第三次移位s(3DOWNTO1)<=ain(2DOWNTO0);s(0)<=NOTcotem;IFcotem='0'THENy(3DOWNTO0)<=atem(3DOWNTO0);ELSEy(3DOWNTO0)<=atem(3DOWNTO0);ENDIF;atem(3DOWNTO0)<="0"btem(3DOWNTO0)<=&quo

60、t;0"state<=start;WHENeror=>-溢出状态state<=start;-回到开始状态atem(3DOWNTO0)<="0"btem(3DOWNTO0)<="0"ENDCASE;ENDIF;ENDPROCESSp2;citem<='0'U1:suberPORTMAP(atem,btem,citem,stem,cotem);ENDbehave;23数字按键译码电路VHDL语言描述:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.ST

61、D_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYnumdecoderISPORT(reset:INSTD_LOGIC;inclk:INSTD_LOGIC;innum:STD_LOGIC_VECTOR(9DOWNTO0);outnum:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);outflag:OUTSTD_LOGIC);END;ARCHITECTUREbehaveOFnumdecoderISBEGINPROCESS(inclk,reset)BEGINIFreset='1'THENoutnum<="0000"ELSIFinclk'EVENTANDinclk=&

温馨提示

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

评论

0/150

提交评论