(完整word版)简易计算器设计.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

目录TOC\o1-3\h\z\u

199941.引言 1

137512.设计技术指标 1

183252.1计算器性能 1

314952.2计算器人机接口 1

71693.设计方案 1

255574.设计实现 2

138284.1加法 2

11904.2减法 3

170554.3乘法 3

242574.4除法 4

197494.5清零 5

109544.6移位 6

9874.7数据分配器 6

75164.8ROM 8

129754.9RAM 9

75234.10CPU 10

114415.设计结果 14

251485.1加法 14

251275.2减法 14

245575.3乘法 15

42175.4除法 15

230185.6移位 15

87775.7显示原理图 15

310476.结论 16

187967.参考文献 16

-

EDA设计简易计算器设计

1.引言

计算器是我们日常生活中经常接触到的计算工具之一,最早的计算工具诞生在中国。中国古代最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的.约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的纳皮尔算筹,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。1642年,年仅19岁的法国伟大科学家帕斯卡引用算盘的原理,发明了第一部机械式计算器,在他的计算器中有一些互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另一个窗口中,但是只能做加减计算。1694年,莱布尼兹在德国将其改进成可以进行乘除的计算。此后,一直要到20世纪50年代末才有电子计算器的出现。本文介绍一种基于VHDL的通用计算器的设计方法,可以实现了加、减、乘、除、清零和移位的运算。

2.设计技术指标

2.1计算器性能

处理器处理字长:4位

处理器工作速度:

处理器指令数量:6种

2.2计算器人机接口

程序存储方式:

数据输入方式:NBI按键

结果显示方式:NBI模拟显示

3.设计方案

先用vhdl设计一个ALU包括加法器、减法器、乘法器、除法器、清零、移位,由于按键是4*4的,所以只能输入4位数,而且必须只能输入一个数,所以我把进位都删了。

再设计两个分配器,分别把数据a,b送入运算模块,使操作码为000时数据给加法器,进行加法;输入操作码001时数据给减法器,进行减法;输入操作码010时数据给乘法器,进行乘法;输入操作码011时数据给除法器,进行除法;输入操作码100时,进行清零;输入操作码101地址时,把数据进行移位。

然后设计一个ROM模块,输出操作码、a和b的地址,设置a的地址为110,b的地址为111。

ROM后再连一个RAM,写入数据a、b,输入a、b的地址,读出a、b的数据。并且在RAM里用clk产生了另一个clk_2,用clk控制a和b;用clk_2控制读和写。

最后设计一个CPU把所有的模块用元件例化连接起来。连接顺序为ROM、RAM、分配器、ALU。另外在din中又设定了前三位为操作码,第四位为输入数据a,若第四位为1时输入为a,若第五位为1时输入为b。

图1、基础结构

图2、进阶结构

4.设计实现

4.1加法

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYplusIS

PORT(

a:INSTD_LOGIC_VECTOR(3DOWNTO0);

b:INSTD_LOGIC_VECTOR(3DOWNTO0);

ALU_OUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0)

);

endplus;

ARCHITECTUREbehave

文档评论(0)

南江月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档