EDA计算器设计大作业.docx

上传人:b****0 文档编号:10128841 上传时间:2023-05-23 格式:DOCX 页数:23 大小:1.32MB
下载 相关 举报
EDA计算器设计大作业.docx_第1页
第1页 / 共23页
EDA计算器设计大作业.docx_第2页
第2页 / 共23页
EDA计算器设计大作业.docx_第3页
第3页 / 共23页
EDA计算器设计大作业.docx_第4页
第4页 / 共23页
EDA计算器设计大作业.docx_第5页
第5页 / 共23页
EDA计算器设计大作业.docx_第6页
第6页 / 共23页
EDA计算器设计大作业.docx_第7页
第7页 / 共23页
EDA计算器设计大作业.docx_第8页
第8页 / 共23页
EDA计算器设计大作业.docx_第9页
第9页 / 共23页
EDA计算器设计大作业.docx_第10页
第10页 / 共23页
EDA计算器设计大作业.docx_第11页
第11页 / 共23页
EDA计算器设计大作业.docx_第12页
第12页 / 共23页
EDA计算器设计大作业.docx_第13页
第13页 / 共23页
EDA计算器设计大作业.docx_第14页
第14页 / 共23页
EDA计算器设计大作业.docx_第15页
第15页 / 共23页
EDA计算器设计大作业.docx_第16页
第16页 / 共23页
EDA计算器设计大作业.docx_第17页
第17页 / 共23页
EDA计算器设计大作业.docx_第18页
第18页 / 共23页
EDA计算器设计大作业.docx_第19页
第19页 / 共23页
EDA计算器设计大作业.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

EDA计算器设计大作业.docx

《EDA计算器设计大作业.docx》由会员分享,可在线阅读,更多相关《EDA计算器设计大作业.docx(23页珍藏版)》请在冰点文库上搜索。

EDA计算器设计大作业.docx

EDA计算器设计大作业

计算器设计

 

专业:

电子信息工程

设计者:

摘要

本文介绍了一个简单的计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于VHDL语言实现加减乘除功能,并用十进制显示在数码管上。

系统由计算部分、输入部分、选择部分、输出部分组成,计算部分为加法器、减法器、乘法器和除法器组成。

使用Altera公司的QuartusII开发软件进行功能仿真并给出仿真波形,并下载到试验箱,用实验箱上的按键开关模拟输入,用数码管显示十进制计算结果。

通过外部按键可以完成四位二进制数的加、减、乘、除四种运算功能,其结果简单,易于实现。

关键字:

VHDL,计算器,QuartusII

 

一.实验目的

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

2、介绍QuartusII的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。

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

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

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

二、流程图

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

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

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

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

三.顶层原理图

创新:

四个模块输出均为十六进制数,为了输出方便观察,设计了8位除法器,将输出变为十进制数显示在数码管上。

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

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

结果用十进制显示三个共阳静态LED数码管上,除法的余数单独显示在右下角的七段驱动共阳数码管中的一个上。

四、各个模块

(1)加法器模块

1、封装元件

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

当CLR为‘0’时,输入两个四位二进制数,输出两个数之和,S[3..0]为和,S[4]为进位。

2、加法器程序

3、仿真结果

当CLR为1时,输出为0;当CLR为0时,进行加法运算。

S[3..0]为相加后得到的和,S[7..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相乘输出y

2、乘法器的设计思想

用并行相乘的方法。

通过开关和键盘,两组分别输入4bit的数据进行乘法运算时,先求出部分积,即求得二进制数据的乘数和被乘数逐位相乘,之后运用二进制加法进行加和。

举例如下,10X9=90:

•--10×9=90

•--1010

•--X1001=

•---------------

•--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等于除数

•foriin1to15loop--e为商

•if(f>=g)thenf:

=f-g;e:

=e+1;

•elseexit;

•endif;

•endloop;

•s(7downto4)<=e;s(3downto0)<=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、共阴极七段显示码十六进制转换表

十六进制码

共阴极七段显示码

Num

D8

D4

D2

D1

g

f

e

d

c

b

a

0

0

0

0

0

0

1

1

1

1

1

1

1

0

0

0

1

0

0

0

0

1

1

0

2

0

0

1

0

1

0

1

1

0

1

1

3

0

0

1

1

1

0

0

1

1

1

1

4

0

1

0

0

1

1

0

0

1

1

0

5

0

1

0

1

1

1

0

1

1

0

1

6

0

1

1

0

1

1

1

1

1

0

1

7

0

1

1

1

0

0

0

0

1

1

1

8

1

0

0

0

1

1

1

1

1

1

1

9

1

0

0

1

1

1

0

1

1

1

1

A

1

0

1

0

1

1

1

0

1

1

1

B

1

0

1

1

1

1

1

1

1

0

0

C

1

1

0

0

0

1

1

1

0

0

1

D

1

1

0

1

1

0

1

1

1

1

0

E

1

1

1

0

1

1

1

1

0

0

1

F

1

1

1

1

1

1

1

0

0

0

1

3、七段译码器程序

4、仿真结果

(7)选择模块

1、封装元件

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

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

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

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

2、程序

五、管脚锁定

六、小结与收获

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

(1)通过整个过程的设计完成,锻炼了分析、解决问题的能力,熟练掌握了QuartusII的原理图输入方式,并对硬件描述语言有了初步的认识和运用,认识到QuartusII用于电路仿真的强大功能;

(2)完成过程中,关于电路的设计,有多种不同的实现方法,经过和同学讨论,交流想法,尽量选择简单易行的方法,同时灵活运用各种逻辑门电路,锻炼了逻辑思维能力;

(3)通过整个过程的完成,最终在实验箱上顺利得到了正确的结果,虽然只是一个简易的、功能很少的计算器,但毕竟是自己亲手操作完成的,觉得很有成就感,这也增加了我对数字电子技术的兴趣。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2