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