




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、青海师范大学毕业论文论文题目:基于EDA的简易计算器的设计系别:物理系 专业:电子信息工程 班级:09 C 学生姓名:陈雪丽 学号:20091711335指导教师姓名:赵建飞 职称:讲师 最后完成时间: 2013 年 5 月 10 日基于EDA的简易计算器的设计中文摘要EDA是指利用计算机完成电子系统的设计。在基于EDA的计算器的设计中,主要研究了的是8位二进制数的加减法运算、两个4位二进制数的乘法运算、8位二进制数除以4位二进制数的除法运算以及连续的加减运算的实现方法。本系统选用Altera公司的MAX+Pluse作为硬件开发平台,并采用VHDL语言进行电路设计。在设计的过程中采用的是分模块
2、的设计方法,将计算器分为四个部分:计算部分、存储部分、显示部分和输入部分。计算部分主要有加法器、减法器、乘法器和除法器组成。存储部分需要3个存储器来实现:内部累加器(acc)、输入寄存器以及结果暂存器。显示部分由三个7段译码器组成,分别来显示输入数字。输入部分是由09十个数字按键、加减乘除四则运算的运算符按键、一个等号按键和一个清零按键组成的,设计所要做的是对按键信息进行译码(将十进制数转换成为二进制数),使其在计算机内部可以使用。关键词:可编程逻辑器件,加法器,乘法器 ,计算器 ,系统仿真 软件设计Abstract EDA is the used of the computer to com
3、plete the design of electronic systems. The calculator based on EDA design, it main studies the 8-bit binary number of addition and subtraction operations, the two 4-bit binary number multiplication, 8-bit binary number divided by the number of four binary division, as well as implementation for con
4、tinuous operation of addition and subtraction operations. The system selected Altera's MAX + Pluse as a hardware development platform, and the use of VHDL design languages. In the design process is used frequency division modules, the calculator is divided into four parts: calculate, storage, di
5、splay and input part. The calculate is composed of four parts:addertion, subtraction, and multiplier and divider components. Storage part needs three memory to help achieved: internal accumulator (acc), input register (reg) as well as the results of registers (ans). Display part is made up three dec
6、oder of 7 sections, respectively to show the number of input. Input part has ten number keys, from 0 9, also has addition and subtraction and multiplication and division arithmetic operator keys, a button and of equal sign and the clear key, the design has to decode the key information (to be decima
7、l digital conversion as a binary number), so that you can use these in the internal of calculator.Key words: programmable logic devices ,adder,multiplier calculator,system simulation,software design 目 录中文摘要IAbstractII一 设计目及内容要求11.1 设计目的11.2 设计内容11.3 设计要求1二 整体设计方案及硬件电路设计22.1 整体设计方22.2 硬件电路设计22.2.1设计一
8、位全加器22.2.2设计四位全加器22.2.3设计四位加法器32.2.4设计可进行四位加减的全加器42.2.5实现四位全加器的加减输出52.2.6 四位全加器源码输出图82.2.7 设计四位乘法器92.2.8 设计八位加法器92.2.9设计四位乘法器102.2.10 构成简易计数器11三 VHDL语言程序设计及系统仿真与分析153.1四位乘法器的VHDL程序设计153.2 系统仿真与分析153.3 仿真结果分析183.2.1 一位全加器仿真图153.2.2 四位全加器仿真图153.2.3加减运算的四位全加器仿真图153.2.4四位全加器的原码输出仿真图163.2.5 八位全加器仿真图163.2
9、.6 四位乘法器仿真图173.2.7 简易计算器仿真图17四 设计总结19参考文献20附录21IV一 设计目及内容要求1.1 设计目的1、学习面向可编程器件的FPGA的简单数字系统的设计流程;2、掌握EDA软件Quartus II的原理图输入方式,以及硬件描述语言描述方式;3、熟悉EDA编辑软件1。1.2 设计内容1、设计一个1位全加器。运用波形仿真检查功能正确后,将其封装成1位全加器模块。 2、以1中已封装的1位全加器模块为基础设计一个4位全加器并将其封装成模块。 3、以全加器为基础设计一个4位乘法器并封装成乘法器模块,输出显示乘积和 正负数标志。 4、以2、3中生成的器件模块为基础构成一个
10、简易计算器,实现如图2.1所示。根据S的输入分别完成YA+B或YA×B 1.3设计要求 1、加数为正时,实现两个4位二进制数与来自低位进位的加法运算,输出显示和及高位进位2。 2、加数为负时,实现两个4位二进制数的减法运算,输出显示。二 整体设计方案及硬件电路设计2.1 整体设计方案根据设计要求和系统所具有功能,并参考相关的文献资料经行方案,先设计一个全加器,再四位全加器,四位乘法器,然后构成简易计算器3。2.2 硬件电路的设计2.2.1 设计一位全加器一位全加器电路如图4.1所示。其中A1、B1分别为两个加数,C1为来自低位的进位,S为输出的全加和,C01为向高位的进位4。一位全加
11、器检查正确无误后,进行全编译,然后将其封装成一位全加器模块,如图所示。一位全加器模块2.2.2设计四位全加器 要实现一个四位全加器,能进行加减法且以原码方式输出结果,分三步进行,流程如图所示。四位加法四位全加输出全加四位全加器流程图2.2.3设计四位加法器 用四个一位全加器的串行接法,即可得到四位串行加法器,实现四位二进制数的加法,用原理图的方式在Quartus II中构建原理图如图4.4。图中A3A2A1A0、B3B2B1B0为两个加数,CO1为来自低位的进位,S3S2S1S0为全加和,CO2为向高位进位四位全加器原理图检查正确无误后,进行全编译,然后将其封装成四位加法器模块,如图所示。 四
12、位全加器模块图中A3A2A1A0、B3B2B1B0为两个加数,CO1为来自低位的进位,S3S2S1S0为全加和,CO2为向高位的进位 。2.2.4 设计可进行四位加减的全加器 在四位全加器电路中增设控制端k,当k=0时,对输入的两数进行加法运算,当k=1时,对输入的两数进行减法运算,并以原码形式输出差值。思路:将控制端k与加数和低位进位进行异或运算,这样k=1时,异或后得到原加数的反码,低位进位为1,此时被加数和加数的补码相加,得到差的补码,再将补码取反加1后得到差的原码;k=0时,异或后原加数不变,此时被加数和加数相加,进行的是加法运算。主要通过控制端k的各种异或运算实现,具体电路如图4.6
13、所示。其中A3A2A1A0为被加数,B3B2B1B0为加数,k为控制端,当k=0时,进行加法运算,CO1为来自低位的进位,和为Y3Y2Y1Y0,CO为和向高位的进位;当k=1时,进行减法运算,即A3A2A1A0 B3B2B1B0, CO为差的符号,CO=0表示差为正数,差值为Y3Y2Y1Y0,CO=1表示差为负数5,差的原码为Y3Y2Y1Y0。四位加减全加气检查正确无误后,进行全编译,然后将其封装成四位全加器模块,如图所示.其中A3A2A1A0为被加数,B3B2B1B0为加数,k为控制端,其功能如下:当k=0时,进行加法运算,CO1为来自低位的进位,和为Y3Y2Y1Y0,CO为和向高位的进位;
14、当k=1时,进行减法运算,即A3A2A1A0 B3B2B1B0, CO为差的符号,CO=0表示差为正数,差值为Y3Y2Y1Y0,CO=1表示差为负数,差的原码为Y3Y2Y1Y0。2.2.5实现四位全加器的加减输出四位全加器中得到的四位全加器模块,其输出和是二进制原码,要想用数码管显示,需要将其转换成对应的十进制数。该全加器模块的最大和为30,需用两个数码管显示结果,因此需要将四位全加器中结果Y3Y2Y1Y0表示成两个十进制的数,符号位CO接到发光二极管上,用于指示和的正负。具体思路及实现过程如下6。用Q3Q2Q1Q0、P3P2P1P0分别表示个位和十位的数码管的输入端,SF为符号位,现在需要找
15、出Q3Q2Q1Q0、P3P2P1P0与Y3Y2Y1Y0及CO的关系。首先只考虑将二进制数转化成十进制数,即先不考虑正负数,通过列真值表发现,当CO1Y3Y2Y1Y0表示的十进制数为09时,P3P2P1P0=0000,Q3Q2Q1Q0= Y3Y2Y1Y0;当CO1Y3Y2Y1Y0表示的十进制数为1019时,P3P2P1P0=0001,Q3Q2Q1Q0= Y3Y2Y1Y0+0110;当CO1Y3Y2Y1Y0表示的十进制数为2029时,P3P2P1P0=0010,Q3Q2Q1Q0= Y3Y2Y1Y0+1100;当CO1Y3Y2Y1Y0表示的十进制数为3039时,P3P2P1P0=0011,Q3Q2Q
16、1Q0= Y3Y2Y1Y0+0010。其中CO1、SF与k及CO的关系如下表:KCOCO1SF0000(正数)0110(正数)1000(正数)1101(负数)因此,CO1= K CO,SF= KCO。由上述知,可以通过一个四位加法器来实现CO1Y3Y2Y1Y0到Q3Q2Q1Q0的变换。四位全加器的输入端为A3A2A1A0B3B2B1B0。将Y3Y2Y1Y0接到B3B2B1B0端,现在求A3A2A1A0与CO1Y3Y2Y1Y0的关系。通过真值表、卡诺图化简得到7:A3= (Y3Y2+ Y3Y1) CO1A2= CO1(Y3Y2Y1)+ CO1 Y3 (Y2+Y1)A1= CO1 Y3 (Y2+Y
17、1)+ CO1(Y3Y2+ Y3Y2 Y1Y0)A0=0按照此关系连接好电路后,四位加法器的输出端S3S2S1S0即是Q3Q2Q1Q0。P3P2P1P0与CO1Y3Y2Y1Y0的关系也可类似得到:P3=P2=0P1= CO1(Y3Y2+ Y3(Y1+Y0)P0= A1.这样就得到了Q3Q2Q1Q0、P3P2P1P0、SF与Y3Y2Y1Y0及CO的关系。2.2.6 四位全加器源码输出电路四位全加器源码输出电路检查正确无误后,进行全编译,然后将其封装成四位译码全加器模块,如图4.9所示。其中A3A2A1A0为被加数,B3B2B1B0为加数,k为控制端,CO1为来自低位的进位,k=0时,进行加法运算
18、,k=1时,进行减法运算。SF为符号位,SF=0表示结果为正数,SF=1表示结果为负数,将Q3Q2Q1Q0、P3P2P1P0分别连到表示个位和十位的数码管上,则数码管既可以显示结果8。如,结果为-13时,SF=1,Q3Q2Q1Q0=0011,P3P2P1P0=0001封装后的四位译码全加器模块2.2.7 设计四位乘法器要实现两个四位二进制数的乘法运算,即是实现相乘、移位、相加的功能,为此分三步进行,过程如图4.10所示。 八位乘法器 四位乘法器译码输出八位 乘积 四位乘法器流程图2.2.8 设计八位加法器利用四位全加器中的四位加法器实现一个八位的串行加法器电路,如图所示。 八位的串行加法器电路
19、 检查正确无误后,进行全编译,然后将其封装成八位加法器模块,如图4.12。其中A7A6A5A4A3A2A1A0、B7B6B5B4B3B2B1B0为两个加数,CO1为来自低位的进位,S7S6S5S4S3S2S1S0为和,CO2为向高位的进位。封装后的八位加法器模块2.2.9设计四位乘法器A3A2A1A0为被乘数,B3B2B1B0为乘数,BSF为乘数的符号位。思路:将A3A2A1A0分别与B3、B2、B1、B0相乘,得到四个八位二进制数,将这四个八位二进制数相加即得到乘积的结果。S7S6S5S4S3S2S1S0表示乘积9,SF表示乘积的符号。原理图如下图所示。 四位乘法电路 检查正确无误后,进行全
20、编译,然后将其封装成四位乘法器模块,如图4.13所示。封装后的图如图4.13所示其中A3A2A1A0为被乘数,B3B2B1B0为乘数,BSF为乘数的符号位,S7S6S5S4S3S2S1(3)将乘积结果转化为十进制数封装后的四位乘法器模块通过全编译,将其封装,得到译码器模块,如下图4.14所示。其功能是将八 位二进制数A7A6A5A4A3A2A1A0转换成B11B10B9B8B7B6B5B4B3B2B1B0,将B11B10B9B8、B7B6B5B4、B3B2B1B0分别接到数码管ABC上,即可显示十进制数ABC。S0表示乘积,SF表示乘积的符号。 译码器模块2.2.10 构成简易计数器最终的计算
21、器框图如图4.15.具有如下功能:根据S的输入,分别完成YA+B或YA×B 简易计算器思路:将输入的四位二进制数A3A2A1A0、B3B2B1B0分别与S进行与运算后接到四位译码全加器的输入端,将A3A2A1A0、B3B2B1B0分别与S进行与运算后接到四位乘法器的输入端,最后将加法器和乘法器10的对应输出做或运算,作为最终的输出。这样,S=0时,加法器输出0,乘法器输出两个数的乘积,最终得到的是乘积,即进行了乘法运算;S=1时,乘法器输出0,加法器输出两个数的和11,最终得到的是和,即进行了加法运算。原理图如下 简易计算器原理图半编译后,建立波形文件,进行功能仿真,结果如下:检查正
22、确无误后,进行全编译,然后将其封装成简易计算器模块,如图所示。 封装后的简易计算器模块A3A2A1A0为被加数(被乘数),B3B2B1B0为加数(乘数),BSF为B3B2B1B0的符号,S为控制端,将P11P10P9P8、P7P6P5P4、P3P2P1P0分别接到数码管ABC上,SF接到发光二极管上,功能如下:S=0时,ABC显示两个输入的数的乘积,二极管显示符号,发光表示负数,不发光表示正数;S=1时,ABC显示两个输入的数的和,二极管显示符号,发光表示负数,不发光表示正数。三 VHDL语言程序设计及系统仿真与分析3.1四位乘法器的VHDL程序设计四位乘法器乘积的结果为一个八位的二进制数,为
23、了使其能够用三位数码管表示出来,需要将八位二进制数转化为三位十进制数,即完成译码功能。用原理图的方式较复杂,且不易实现,因此考虑用VHDL语言编写程序12。程序如下见附录:3.2 系统仿真与分析3.2.1 一位全加器仿真图利用quartusII软件对本程序进行编译,生成了可以进行仿真定时分析以及下载到可编程器件的相关文件。一位全加器仿真结果如图:一位全加器仿真图3.2.2 四位全加器仿真结果图 四位全加器仿真图3.2.3 加减运算的四位全加器仿真图 加减运算的四位全加器仿真如图3.2.4 四位全加器的原码输出仿真图四位全加器的原码输出仿真如图3.2.5 八位加法器仿真图八位加法器仿真图3.2.
24、6 四位乘法器仿真图四位乘法器仿真图3.2.7 简易计算器仿真图简易计算器仿真结果3.3 仿真结果分析从图中看出,A3A2A1A0=0111, B3B2B1B0=1111,BSF=1, S=1,结果为SF=1,P11P10P9P8=0000,P7P6P5P4=0000, P3P2P1P0=1000, 即7-15=-8。 通过这个问题的解决,我认识到在进行波形仿真时,每个工程的波形文件名称应该与其工程名称一致,这样才能得到正确的仿真结果,因此,在每个工程下每次只能存在一个波形文件,在建立新的波形文件时,应该将原来的波形文件覆盖。四 设计总结通过这次课程设计,我发现了自己的很多不足,也发现了很多知
25、识上的漏洞。同时也看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。这次课程设计让我学到了很多,不仅是巩固了先前学的EDA技术的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。同时也让我认识到,做其他事情,都需要我们付出足够的认真去对待,才能顺利的完成。参考文献:1 江国强·EDA技术与应用·(第3版)M.北京:电子工业出版社,2010 年4月2 杨恢先,黄辉先·单片机原理及应用·M.北京:人民邮电出版社,2006年10月3 黄正瑾在系统·编程技术及其应用·南京:东南大学出版社,1997 4 彭
26、介华·电子技术课程设计指导·北京:高等教育出版社,1997 5 李国丽,朱维勇· 电子技术实验指导书·合肥:中国科技大学出版社,2000 6 潘松,黄继业·EDA技术实用教程·北京:科学出版社,2002 7 郑家龙,王小海,章安元·集成电子技术基础教程·北京:高等教育出版社,2002 8 宋万杰,罗丰,吴顺君·CPLD技术及其应用·西安:西安电子科技大学出版社,1999 9 张昌凡,龙永红,彭涛可·编程逻辑器件及VHDL设计技术&
27、#183;广州:华南工学院出版社200110 卢杰,赖毅·VHDL与数字电路设计·北京:科学出版社,2001 11 王金明,杨吉斌·数字系统设计与Verilog HDL·北京:电子工业出版社,2002 12 张明.Verilog ·HDL实用教程成都·电子科技大学出版社,1999 附录LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.A
28、LL;ENTITY yimaqi IS PORT (A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); B:OUT STD_LOGIC_VECTOR(11 DOWNTO 0);END yimaqi; IF A(1)='0' THEN a1:=0;ELSE a1:=1;END IF; IF A(2)='0' THEN a2:=0;ELSE a2:=1;END IF; IF A(3)='0' THEN a3:=0;ELSE a3:=1;END IF; IF A(4)='0' THEN a4:=0;ELSE a4:=1
29、;END IF; IF A(5)='0' THEN a5:=0;ELSE a5:=1;END IF; IF A(6)='0' THEN a6:=0;ELSE a6:=1;END IF; IF A(7)='0' THEN a7:=0;ELSE a7:=1;END IF; SUM:=a7*128+a6*64+a5*32+a4*16+a3*8+a2*4+a1*2+a0; b2:=SUM/100; b1:=SUM/10 MOD 10; b0:=SUM MOD 10; CASE b2 IS WHEN 0=> B(11 DOWNTO 8)<=&q
30、uot;0000" WHEN 1=> B(11 DOWNTO 8)<="0001" WHEN 2=> B(11 DOWNTO 8)<="0010" WHEN others=>B(11 downto 8)<="1111" END CASE; CASE b1 IS WHEN 0=> B(7 DOWNTO 4)<="0000" WHEN 1=> B(7 DOWNTO 4)<="0001" WHEN 2=> B(7 DOWNTO 4)<="0010" WHEN 3=> B(7 DOWNTO 4)<="0011" WHEN 4=> B(7 DOWNTO 4)<="0100" WHEN 5=> B(7 DOW
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大型厂房钢结构施工应急预案示例
- 球员扭伤治疗方案
- 《藤野先生》核心素养课件2(第2课时)
- 活动策划与执行时间优化措施
- 胰岛素及口服降血糖药
- 河南玻璃钢管道项目可行性研究报告
- 尼龙安全带项目节能评估报告(节能专用)
- 中学数学教学改革的创新措施
- 旅游行业网络安全风险管理计划
- 早产儿出院后家庭护理
- 生产良率系统统计表
- 用TOC理论提高生产制造的竞争力课件
- SketchUp (草图大师) 基础培训PPT课件
- 生命线安装方案
- 代理机构服务质量考核评价表
- 浅谈打击乐器在小学低段音乐课堂中的运用
- 电厂保安人员管理制度
- 2018年泸州市生物中考试题含答案
- ge核磁共振机房专用精密空调机技术要求
- 新干县人民医院血液透析治疗患者告知书
- 消防电气检验批质量验收记录表
评论
0/150
提交评论