eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx

上传人:b****9 文档编号:159475 上传时间:2022-10-04 格式:DOCX 页数:28 大小:294.98KB
下载 相关 举报
eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx_第1页
第1页 / 共28页
eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx_第2页
第2页 / 共28页
eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx_第3页
第3页 / 共28页
eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx_第4页
第4页 / 共28页
eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx

《eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx》由会员分享,可在线阅读,更多相关《eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx(28页珍藏版)》请在冰豆网上搜索。

eda课程设计之2位十进制四则运算器电路四则运算器jp7_kzgax.docx

《电子设计自动化》

课程设计

题目:

2位十进制四则运算器电路

院(系) 信息科学与工程学院

专业 通信工程 届别2011级 班级

学号

姓名

任课老师 彭盛亮

摘要

本设计是利用EDA技术实现的2位十进制四则运算器,是基于QuartusII7.2软件,利用其强大、直观、便捷和操作灵活的原理图输入设计的功能来完成本次设计的。

此设计利用QuartusII7.2中的

EP2C5T144C8芯片来控制整个程序的运行,用七段数码管显示各个输入和输出,用LED灯的亮灭来显示运算模式,而软件部分则是由

VHDL语言来编写的,是通过精心的设计和合理的规划而完成的设计。

设计完成后的运算器不仅能实现数据的加减乘除运算,而且还能使数据及其计算结果在数码管上显示出来,能够实现0-99的十进制数字四则运算。

目 录

第一章 系统设计 1

1.1设计要求 1

1.2系统设计方案 1

1.2.2总体方案的论证 2

1.2.4各功能块的划分和组成 3

第二章单元电路设计 4

2.1输入模块 5

2.2加法模块 5

2.3减法模块 6

2.4乘法模块 7

2.5除法模块 7

2.6模式选择模块 8

2.7输出模块 8

第三章软件设计 9

3.1软件设计平台、开发工具和实现方法 9

3.2程序的流程方框图 9

3.3实现的功能及程序清单 10

3.3.1百进制计数器 10

3.3.2四选一数据选择器 11

3.3.3加法模块:

12

3.3.4减法模块 12

3.3.5乘法模块 13

3.3.6除法模块 13

3.3.7输出模块 14

第四章系统测试 15

4.1功能的测试方法、步骤 15

4.2仪器设备 16

第五章 结论 16

参考文献 17

附录A电路图图纸 17

附录B软件程序 21

第一章 系统设计

1.1设计要求

输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT及

LPM_DIVIDE模块。

1.2系统设计方案

1.2.1系统设计思路

通过分析可知,要完成本次课程设计可以分为三个模块来实现相应的功能,分别是输入模块、计算模块以及输出模块。

其中各个模块的任务要求为:

*输入模块:

输入两个2位十进制数以及运算模式的选择

*计算模块:

根据输入模块的选择完成相应的运算过程

*输出模块:

输出各个输入及计算结果

1.2.2总体方案的论证

·方案一:

根据功能和指标要求,计算器电路包括三个部分:

显示电

路、输入电路和芯片控制电路。

用七段数码管作为显示电路,各作为输入电路,利用程序输入法将计算器所需的程序写入芯片。

模块图如下:

输入电路

显示电路

芯片控制

·方案二:

根据计算器的功能要求,计算器电路可包括四个部分:

选用

显示模块

LED数码管作为显示部分,各按键作为输入部分,运算模块,芯片控制部分。

模块图如下:

输入部分

运算模块

芯片控制

1.2.3方案的对比选择

从电路清晰程度来说方案二要优于方案一,因为方案二显示结果清楚明了,比用方案一的准确度更高,而且电路分模块来

做,更加清晰,连线相对也比较简单。

所以为了得到更好的结果,我所以选择方案二。

LED输出

芯片控制

1.2.4各功能块的划分和组成

选择模块

输入2

输入1

除法

乘法

减法

加法

计算模块

1.2.5系统的工作原理

(1)由于要设计的是四则计算器,可以进行四则运算,

则采用七段数码管显示数据和结果。

(2)另外键盘包括两个十进制数输入键、一个模式选

键,故只需要3个按键即可。

(3)执行过程:

使能端打开后显为示零,等待键入数

值,

当键入两个数字,计算器在内部执行数值转换和存储,并等待键入模式,当再键入模式后将在数码管上显示运算结果。

第2章 单元电路设计

2.1输入模块

工作原理:

利用两个100进制的计数器作为数字的输入,通过外接的按键来控制计数器,从而人为的确定输入的数值。

参数计算:

①一百进制数输出最高是99,故需7个字节才可能将其包含在内,因此cq的宽度[6..0]。

②LED每一位的最高输出为9,故需4个字节才可能将其包含在

内,故LED1和LED2的宽度为[3..0]。

2.2加法模块

工作原理:

利用VHDL语言来实现两个2位十进制数的加法,做出一个小加法模块。

又由于其输出结果在0—

198之间,故要将此小减法模块将和2个lpm divide1和2个lpm

constant0相连,从而使得当两个十进制数输入后可以在3个LED数码管上显示最终结果。

参数计算:

①输入最高值是99,需7个字节才可能将其包含在内,因此

add_in1和add_in2的宽度[6..0]。

②输出结果最高值为3位数,且要将其显示在LED灯上,则设置3个输出,可利用LPM_CONSTANT取10,将输出的结果2次模

10得到百位数、十位数和个位数。

③LED每一位的最高输出为9,故add_out1、add_out2和

add_out3的宽度为[3..0]。

2.3减法模块

工作原理:

利用VHDL语言来实现两个2位十进制数的加法,做出一个小减法模块。

又由于其输出结果在-99—99之间,故将此

小减法模块将和2个lpmdivide1和2个lpmconstant0相连,从而使得当两个十进制数输入后可以在3个LED数码管上显示最终结果,其中一个LED数码管显示结果的符号,若为负数则符号位出现“F”。

参数计算:

①输入最高值是99,需7个字节才可能将其包含在内,因此

sub_in1和sub_in2的宽度[6..0]。

②所得结果最高值为2位数,且要将其显示在LED灯上,则设置2个数值输出,又由于可能出现结果为负数的情况,故又设一个符号位输出。

可利用LPM_CONSTANT取10,将输出的结果2次模

10得到十位数和个位数。

③LED每一位的最高输出为9,故sub_out1和sub_out2的宽度为[3..0]。

2.4乘法模块

工作原理:

乘法运算可以直接调用LPM_MULT的模块来实现乘法运算。

又由于其输出结果在0—9801之间,故要将此模块和4个lpm

divide1和4个lpm constant0相连,从而使得当两个十进制数输入后可以在4个LED数码管上显示最终结果。

参数计算:

①输入最高值是99,需7个字节才可能将其包含在内,因此

dataa和datab的宽度[6..0]。

②所得结果最高值为4位数,且要将其显示在LED灯上,则设置4个数值输出,可利用LPM_CONSTANT取10,将输出的结果4次模10得到千位数、百位数、十位数和个位数。

③LED每一位的最高输出为9,故

out_mult1、out_mult2、out_mult3和out_mult4的宽度为[3..0]。

2.5除法模块

工作原理:

除法运算可以直接调用

LPM_DIVIDE的模块来实现除法运算。

又由于其输出结果在0—

99之间,故要将此模块和2个lpm divide1和2个lpm

constant0相连,可利用LPM_CONSTANT取10,将输出的结果2

次模10得到十位数和个位数。

参数计算:

①输入最高值是99,需7个字节才可能将其包含在内,因此

div_in1和div_in1的宽度[6..0]。

②所得结果最高值为2位数,且要将其显示在LED灯上,则设置2个数值输出,可利用LPM_CONSTANT取10,将输出的结果2次模10得到商的十位数和个位数。

③LED每一位的最高输出为9,故div_out1和div_out2的宽度为[3..0]。

2.6模式选择模块

工作原理:

由于要在加、减、乘、除四个模式中选择一个进行计算,所以可利用一个四选一的数据选择器来作为模式选择器,通过一个时钟信号来改变改变数据选择器从而控制模式选择。

2.7输出模块

工作原理:

将加、减、乘、除各个模块的输出和模式选择的输出作为输入,以模式选择的输入作为控制信号来控制结果的输出。

参数计算:

该模块的各项输入是由其他模块的

输出来决定的,故此模块的参数要和之前的模块参数一一对应。

第3章 软件设计

3.1软件设计平台、开发工具和实现方法

在QuartusII平台中用VHDL语言编写各个模块所需要的程序或者调用QuartusII中原有的模块并利用原理图设计方法完成整个设计,借助EDA实验箱进行实验程序的调试和检测。

3.2程序的流程方框图

开始

EN=1,RST=0

输入数1及数2

输入模式

Y

加法运算?

N

Y

减法运算?

N

Y

乘法运算?

N

Y

除法运算?

减法运算

输出

除法运算

加法运算

乘法运算

3.3实现的功能及程序清单

3.3.1百进制计数器

功能:

作为两个2位的十进制数的输入程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT99IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

CQ:

BUFFERSTD_LOGIC_VECTOR(6DOWNTO0);LED1:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

LED2:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:

OUTSTD_LOGIC);

ENDCNT99;

ARCHITECTUREBEHAVOFCNT99ISBEGIN

PROCESS(CLK,RST,EN)

VARIABLECQI:

STD_LOGIC_VECTOR(3DOWNTO0);VARIABLECQII:

STD_LOGIC_VECTOR(6DOWNTO0);VARIABLEHI:

STD_LOGIC_VECTOR(3DOWNTO0);BEGIN

IFRST='1'THENCQI:

=(OTHERS=>'0');HI:

=(OTHERS=>'0');ELSIFCLK'EVENTANDCLK='1'THEN

I

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1