EDA计算器设计大作业资料_第1页
EDA计算器设计大作业资料_第2页
EDA计算器设计大作业资料_第3页
EDA计算器设计大作业资料_第4页
EDA计算器设计大作业资料_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

EDA计算器设计大作业资料EDA计算器设计大作业资料PAGE/PAGE26EDA计算器设计大作业资料PAGEEDA大作业

计算器设计

专业:电子信息工程

设计者:

简单计算器1EDA大作业

大纲

本文介绍了一个简单的计算器的设计,该设计采纳了现场可编程逻辑器件FPGA设计,

并基于VHDL语言实现加减乘除功能,并用十进制显示在数码管上。系统由计算部分、输入

部分、选择部分、输出部分构成,计算部分为加法器、减法器、乘法器和除法器构成。使用

Altera公司的QuartusII开发软件进行功能仿真并给出仿真波形,并下载到试验箱,用实验

箱上的按键开关模拟输入,用数码管显示十进制计算结果。经过外面按键可以完成四位二进

制数的加、减、乘、除四种运算功能,其结果简单,易于实现。

要点字:VHDL,计算器,QuartusII

简单计算器2EDA大作业

目录

一.实验目的4

二、流程图4

三.顶层原理图5

四、各个模块6

(1)加法器模块6

1、封装元件6

2、加法器程序7

3、仿真结果7

(2)减法器模块8

1、封装元件8

2、减法器程序9

3、仿真结果10

4、硬件运转结果11

(3)乘法器模块12

1、封装元件12

2、乘法器的设计思想12

3、乘法器程序13

4、仿真结果14

5、硬件运转结果14

(4)除法器模块15

1、封装元件15

2、除法器设计思想15

3、除法器程序16

4、仿真结果16

5、硬件运转结果17

(5)8位除法器18

1、封装元件18

2、8位除法器设计思想18

3、8位除法器程序19

4、仿真结果21

(6)数码管七段译码电路22

1、封装元件22

2、共阴极七段显示码十六进制变换表22

3、七段译码器程序23

4、仿真结果23

(7)选择模块24

1、封装元件24

2、程序25

五、管脚锁定25

六、小结与收获26简单计算器3EDA大作业

一.实验目的

1、熟习QuartusII软件的相关操作,掌握数字电路设计的基本流

程。

2、介绍QuartusII的软件,掌握基本的设计思路,软件环境参数

配置,仿真,管脚分配,下载等基本操作。

3、认识VHDL或原理图设计方法与定制IP模块的思想。

4、掌握并行加法器,减法器乘法器以及除法器的设计思路及工

作原理。

5、设计一个能完成加减乘除功能并以十进制显示结果的简单计

算器。

二、流程图

加法模块

减法模块输入控制功十六进制转换成十进制显示结果选择模块能的数乘法模块

除法模块

当输入为00时输出加法结果

当输入为01时输出减法结果

当输入为10时输出乘法结果

当输入为11时输出除法结果

简单计算器4

EDA大作业

三.顶层原理图

控制模块七段数码管显示除法余数

输出个位

加法模块

输出十位减法模块

乘法模块

输出百位三个八位除

法器,把十

六进制数转除法模块换为十进制

创新:四个模块输出均为十六进制数,为了输出方便观察,设计了8

位除法器,将输出变成十进制数显示在数码管上。

DATAIN[1..0]为输入控制端,经过试验箱上两个拨码开关控制输入。

A[3..0]和B[3..0]是两个四位二进制输入数,当DATAIN为00时进行加法运算,当DATAIN为01时进行减法运算,当DATA为10时进

行乘法运算,当DATA为11是进行除法运算。结果用十进制显示三

个共阳静态LED数码管上,除法的余数单独显示在右下角的七段驱

动共阳数码管中的一个上。

简单计算器5

EDA大作业

四、各个模块

(1)加法器模块

1、封装元件

当CLR为‘1’时清零,输出为零

当CLR为‘0’时,输入两个四位二进制数,输出两个数之和,

S[3..0]为和,S[4]为进位。

简单计算器6

EDA大作业

2、加法器程序

3、仿真结果

当CLR为1时,输出为0;当CLR为0时,进行加法运算。S[3..0]

为相加后获得的和,S[7..4]为相加后的进位。

4、硬件运转结果

简单计算器7

EDA大作业

从左到右,前三个数码管为结果,用十进制显示:第一个为百位,

第二个为十位,第三个为个位。第五个为加数,第六个为被加数。

(2)减法器模块

1、封装元件

简单计算器8

EDA大作业

设计思想:减去一个数等于加上这个数的补码。对减数求补码,

再调用加法器

当CLR为‘1’时清零,输出为零

当CLR为‘0’时,a是四位二进制被减数,b时四位二进制减数。

S为相减的结果,co为借位,当co为0时代表a减b是整数,不然

为负数也许0。

2、减法器程序

简单计算器9

EDA大作业

调用一个加

法程序

3、仿真结果

简单计算器10

EDA大作业

CLR为清零,当CLR为1时清零,输出为0;当CLR为0时进行减法运算,a、b为两个四位二进制输入,s为输出,当co为0时,代

表s为正,当co为1时代表co为负,当被减数小于减数时,s为相减获得的结果的补码。

4、硬件运转结果

从左到右,前三个数码管用十进制显示结果:第一个代表正负,为0

时代表正,为1时代表负。第五个为减数,第六个为被减数。

简单计算器11

EDA大作业

(3)乘法器模块

1、封装元件

当clr为‘1’时输出为0

当clr为‘0’时,a与b相乘输出y

2、乘法器的设计思想

用并行相乘的方法。经过开关和键盘,两组分别输入4bit的数据

进行乘法运算时,先求出部分积,即求得二进制数据的乘数和被

乘数逐位相乘,今后运用二进制加法进行加和。举比方下,

10X9=90:

--10×9=90

--1010

--X1001=

?--00001010?--00000000--部分积简单计算器12

EDA大作业

?--00000000

?-01010000

?

--1011010=90

这里加法的结果就是所求结果。

3、乘法器程序

简单计算器13

EDA大作业

4、仿真结果

clr为清零,当clr为1时进行乘法运算,a、b为两个四位二进制输入,

为十六进制输出。

5、硬件运转结果

从左到右,前三个数码管用十进制显示结果:第一个为百位,第二个

为十位,第三个为个位。第五个为乘数,第六个为被乘数。

简单计算器14

EDA大作业

(4)除法器模块

1、封装元件

当clr为,1?时,输出为0。当clr为,0?时,a与b相除输出s,s高四位为商,低四位为余

2、除法器设计思想

?f:=a;g:=b;e:=(others=>‘0’);--f等于被除数,g等于除数

?foriin1to15loop--e为商

?if(f>=g)thenf:=f-g;e:=e+1;

?elseexit;

?endif;

?endloop;

s(7downto4)<=e;s(3downto0)<=f;

利用循环的思想设计除法器。S高四位为商,第四位为余数

简单计算器15

EDA大作业

3、除法器程序

4、仿真结果

当clr=,1?时清零,当clr=,0?时进行除法运算。

a、b为四位二进制数,a为被除数,b为除数,s高四位为商,s低四

位为余数。

简单计算器16

EDA大作业

5、硬件运转结果

从左到右,前三个数码管用十进制显示计算后的商,第一个为

百位,第二个为十位,第三个为个位。第五个数码管为除数,第六个

数码管为被除数。右下角一个数码管显示运算获得的余数。

简单计算器17

EDA大作业

(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保存除数移位后的数;

简单计算器18

EDA大作业

说明:8位除法器不可以用四位除法器那循环的方法,因为,假如用循

环的方法,因为循环次数太多,在电脑上要运转半个小时以上,不可以

用。

3、8位除法器程序

简单计算器19

EDA大作业

简单计算器20

EDA大作业

4、仿真结果

简单计算器21

EDA大作业

(6)数码管七段译码电路

1、封装元件

作用:用于在一个七段共阳数码管显示除法器的余数。

2、共阴极七段显示码十六进制变换表

十六进制码共阴极七段显示码NumD8D4D2D1gfedcba000000111111100010000110200101011011300111001111401001100110501011101101601101111101701110000111810001111111910011101111A10101110111B10111111100C11000111001D11011011110E11101111001F11111110001

简单计算器22

EDA大作业

3、七段译码器程序

4、仿真结果

简单计算器23

EDA大作业

(7)选择模块

1、封装元件

当Q为“00”时进行加法运算

当Q为“01”时进行减法运算

当Q为“10”时进行乘法运算

当Q为“11”时进行除法运算

简单计算器24

EDA大作业

2、程序

五、管脚锁定

简单计算器25

EDA大作业

六、小结与收获

回顾本次大作业完成的整个过程,感觉收获很多,主要有以下几个方面。

1)经过整个过程的设计完成,锻炼认识析、解决问题的能力,熟练掌握了QuartusII的原理图输入方式,并对硬件描述

温馨提示

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

评论

0/150

提交评论