EDA计算器设计大作业.doc_第1页
EDA计算器设计大作业.doc_第2页
EDA计算器设计大作业.doc_第3页
EDA计算器设计大作业.doc_第4页
EDA计算器设计大作业.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

EDA大作业计算器设计 专业:电子信息工程 设计者: 摘要本文介绍了一个简单的计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于VHDL语言实现加减乘除功能,并用十进制显示在数码管上。系统由计算部分、输入部分、选择部分、输出部分组成,计算部分为加法器、减法器、乘法器和除法器组成。使用Altera公司的QuartusII开发软件进行功能仿真并给出仿真波形,并下载到试验箱,用实验箱上的按键开关模拟输入,用数码管显示十进制计算结果。通过外部按键可以完成四位二进制数的加、减、乘、除四种运算功能,其结果简单,易于实现。关键字:VHDL,计算器,QuartusII目录一实验目的4二、流程图4三顶层原理图5四、各个模块7(1)加法器模块71、封装元件72、加法器程序83、仿真结果8(2)减法器模块91、封装元件92、减法器程序103、仿真结果114、硬件运行结果12(3)乘法器模块131、封装元件132、乘法器的设计思想133、乘法器程序144、仿真结果155、硬件运行结果15(4)除法器模块161、封装元件162、除法器设计思想163、除法器程序174、仿真结果175、硬件运行结果18(5)8位除法器191、封装元件192、8位除法器设计思想193、8位除法器程序204、仿真结果22(6)数码管七段译码电路231、封装元件232、共阴极七段显示码十六进制转换表233、七段译码器程序244、仿真结果24(7)选择模块251、封装元件252、程序26五、管脚锁定26六、小结与收获27一实验目的1、熟悉QuartusII软件的相关操作,掌握数字电路设计的基本流程。2、介绍QuartusII的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。3、了解VHDL或原理图设计方法与定制IP模块的思想。4、掌握并行加法器,减法器乘法器以及除法器的设计思路及工作原理。5、设计一个能完成加减乘除功能并以十进制显示结果的简单计算器。二、流程图输入控制功能的数选择模块减法模块乘法模块除法模块加法模块显示结果十六进制转换成十进制 当输入为00时输出加法结果 当输入为01时输出减法结果 当输入为10时输出乘法结果 当输入为11时输出除法结果三顶层原理图显示除法余数七段数码管三个八位除法器,把十六进制数转换为十进制数输出十位输出个位输出百位控制模块加法模块减法模块除法模块乘法模块创新:四个模块输出均为十六进制数,为了输出方便观察,设计了8位除法器,将输出变为十进制数显示在数码管上。DATAIN1.0为输入控制端,通过试验箱上两个拨码开关控制输入。A3.0和B3.0是两个四位二进制输入数,当DATAIN为00时进行加法运算,当DATAIN为01时进行减法运算,当DATA为10时进行乘法运算,当DATA为11是进行除法运算。结果用十进制显示三个共阳静态LED数码管上,除法的余数单独显示在右下角的七段驱动共阳数码管中的一个上。四、各个模块(1)加法器模块1、封装元件 当CLR为1时清零,输出为零当CLR为0时,输入两个四位二进制数,输出两个数之和,S3.0为和,S4为进位。2、加法器程序3、仿真结果 当CLR为1时,输出为0;当CLR为0时,进行加法运算。S3.0为相加后得到的和,S7.4为相加后的进位。4、硬件运行结果从左到右,前三个数码管为结果,用十进制显示:第一个为百位,第二个为十位,第三个为个位。第五个为加数,第六个为被加数。(2)减法器模块1、封装元件 设计思想:减去一个数等于加上这个数的补码。对减数求补码,再调用加法器当CLR为1时清零,输出为零当CLR为0时,a是四位二进制被减数,b时四位二进制减数。S为相减的结果,co为借位,当co为0时代表a减b是整数,否则为负数或者0。2、减法器程序调用一个加法程序3、仿真结果CLR为清零,当CLR为1时清零,输出为0;当CLR为0时进行减法运算,a、b为两个四位二进制输入,s为输出,当co为0时,代表s为正,当co为1时代表co为负,当被减数小于减数时,s为相减得到的结果的补码。4、硬件运行结果从左到右,前三个数码管用十进制显示结果:第一个代表正负,为0时代表正,为1时代表负。第五个为减数,第六个为被减数。(3)乘法器模块1、封装元件 当clr为1时输出为0当clr为0时,a与b相乘输出y2、乘法器的设计思想用并行相乘的方法。通过开关和键盘,两组分别输入4bit的数据进行乘法运算时,先求出部分积,即求得二进制数据的乘数和被乘数逐位相乘,之后运用二进制加法进行加和。举例如下,10X9=90: -10 9 = 90 - 1 0 1 0 - X 1 0 0 1 = - - - 00001010 - 00000000 -部分积 - 00000000 - 01010000 - - 1011010 =90 这里加法的结果就是所求结果。3、乘法器程序4、仿真结果clr为清零,当clr为1时进行乘法运算,a、b为两个四位二进制输入,y为十六进制输出。5、硬件运行结果从左到右,前三个数码管用十进制显示结果:第一个为百位,第二个为十位,第三个为个位。第五个为乘数,第六个为被乘数。(4)除法器模块1、封装元件 当clr为1时,输出为0。当clr为0时,a与b相除输出s,s高四位为商,低四位为余2、除法器设计思想 f:=a; g:=b; e:=(others=0);-f等于被除数,g等于除数 for i in 1 to 15 loop -e为商 if (f=g) then f:=f-g; e:=e+1; else exit; end if; end loop; s(7 downto 4)=e;s(3 downto 0)=f; 利用循环的思想设计除法器。S高四位为商,第四位为余数3、除法器程序4、仿真结果 当clr=1时清零,当clr=0时进行除法运算。a、b为四位二进制数,a为被除数,b为除数,s高四位为商,s低四位为余数。5、硬件运行结果从左到右,前三个数码管用十进制显示计算后的商,第一个为百位,第二个为十位,第三个为个位。第五个数码管为除数,第六个数码管为被除数。右下角一个数码管显示运算得到的余数。(5)8位除法器1、封装元件 作用:用于把十六进制显示的输出换成十进制显示。方法:被除数除以10时,余数为个位;得到的商除以10,得到的余数为十位;得到的商再除以10,得到的余数为百位。2、8位除法器设计思想 利用移位减法原理设计除法器 首先在被除数前面补7个零,赋值为Remain7,除数后面补7个零,赋值为diver7。若Remain7 大于diver7,则 shang(7)为1,Remain6= Remain7 - diver7。否则shang(7)为0, Remain6= Remain7 ; Diver6等于diver7左移一位,后面补零。再重复上一个步骤,得出shang(6),直到得出shang(0)为止 Remain是中间与diver相减的得到的数,diver保存除数移位后的数;说明:8位除法器不能用四位除法器那循环的方法,因为,如果用循环的方法,由于循环次数太多,在电脑上要运行半个小时以上,不能用。3、8位除法器程序4、仿真结果(6)数码管七段译码电路1、封装元件 作用:用于在一个七段共阳数码管显示除法器的余数。2、共阴极七段显示码十六进制转换表十六进制码共阴极七段显示码NumD8D4D2D1gfedcba000000111111100010000110200101011011300111001111401001100110501011101101601101111101701110000111810001111111910011101111A10101110111B10111111100C11000111001D11011011110E11101111001F111111100013、七段译码器程序4、仿真结果(7)选择模块1、封装元件 当Q为“00”时进行加法运算 当Q为“01”时进行减法运算 当Q为“10”时进行乘法运算 当Q为“11”时进行除法运算2、程序五、管脚锁定六、小结与收获回顾本次大作业完成的整个过程,觉得收获很多,主要有以下几个方面。 (1) 通过整个过程的设计完成,锻炼了分析、解决问题的能力,熟练掌握了Quartus II的原理图输入方式,并对硬件描述语言有了初步的认识和运用,认识到Quartus II用于电路仿

温馨提示

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

评论

0/150

提交评论