简易计算器设计.doc
《简易计算器设计.doc》由会员分享,可在线阅读,更多相关《简易计算器设计.doc(19页珍藏版)》请在咨信网上搜索。
1、 目 录1. 引言12. 设计技术指标12.1 计算器性能1 2.2 计算器人机接口13. 设计方案14. 设计实现2 4.1 加法2 4.2 减法3 4.3 乘法3 4.4 除法4 4.5 清零5 4.6 移位6 4.7 数据分配器6 4.8 ROM8 4.9 RAM9 4.10 CPU105. 设计结果14 5.1 加法14 5.2 减法14 5.3 乘法15 5.4 除法15 5.6 移位15 5.7 显示原理图156. 结论167. 参考文献16EDA设计 简易计算器设计1. 引言计算器是我们日常生活中经常接触到的计算工具之一,最早的计算工具诞生在中国。中国古代 最早采用的一种计算工具
2、叫筹策,又被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨 充当材料的约二百七十枚一束,放在布袋里可随身携带。直到今天仍在使用的珠算盘,是中 国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。 17 世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的纳皮尔算筹, 英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算, 甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为 现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。1642 年,年仅 19 岁的 法国伟大科学家帕斯卡引用算盘的
3、原理,发明了第一部机械式计算器,在他的计算器中有一些 互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,人们可以像拨电话号码盘那 样,把数字拨进去,计算结果就会出现在另一个窗口中,但是只能做加减计算。1694 年,莱布 尼兹在德国将其改进成可以进行乘除的计算。此后,一直要到 20 世纪 50 年代末才有电子计算 器的出现。 本文介绍一种基于 VHDL 的通用计算器的设计方法,可以实现了加、减、乘、除、清零和移位的运算。2. 设计技术指标2.1 计算器性能 处理器处理字长:4位 处理器工作速度: 处理器指令数量:6种2.2 计算器人机接口 程序存储方式: 数据输入方式:NBI按键 结果显
4、示方式:NBI模拟显示3. 设计方案先用vhdl设计一个ALU包括加法器、减法器、乘法器、除法器、清零、移位,由于按键是4*4的,所以只能输入4位数,而且必须只能输入一个数,所以我把进位都删了。再设计两个分配器,分别把数据a,b送入运算模块,使操作码为000时数据给加法器,进行加法;输入操作码001时数据给减法器,进行减法;输入操作码010时数据给乘法器,进行乘法;输入操作码011时数据给除法器,进行除法;输入操作码100时,进行清零;输入操作码101地址时,把数据进行移位。然后设计一个ROM模块,输出操作码、a和b的地址,设置a的地址为110,b的地址为111。ROM后再连一个RAM,写入数
5、据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 加法LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY plus ISPORT(a:IN STD_LOGIC
6、_VECTOR(3 DOWNTO 0);b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ALU_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);end plus;ARCHITECTURE behave OF plus ISbeginALU_OUT=a+b;end behave; 4.2 减法LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jian ISPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);b:IN
7、STD_LOGIC_VECTOR(3 DOWNTO 0);ALU_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);end jian;ARCHITECTURE behave OF jian ISbeginALU_OUT=a-b;end behave;4.3 乘法LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;use ieee.std_logic_arith.all;ENTITY cheng ISPORT( a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
8、 b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);ALU_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END cheng;ARCHITECTURE behave OF cheng ISbeginprocess(a,b)variable t1 : integer range 0 to 15;variable t2 : integer range 0 to 15;variable t3 : integer range 0 to 15; begint1:=conv_integer(a);t2:=conv_integer(b);t3:=t1*t2;if
9、 t3=15then ALU_OUT(3 downto 0)=conv_STD_LOGIC_VECTOR(t3,4);else ALU_OUT=X8;end if;end process;end behave;44.4 除法 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; use ieee.std_logic_arith.all; ENTITY chu IS PORT( a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b:IN STD_LOGIC_VECTOR(3 DO
10、WNTO 0); ALU_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); co:OUT STD_LOGIC_vector(3 downto 0); END chu; ARCHITECTURE behave OF chu IS signal aa,bb:std_logic_vector(3 downto 0); signal fuhao,sign,d:std_logic; begin d=(a(3) xor b(3);aa=a;bb=b;process(aa,bb,fuhao,sign,d)variable temp_a,temp_b:std_logic_vector
11、(7 downto 0);variable n:integer; begintemp_a:=0000&aa;temp_b:=bb&0000;n:=0;while(n=bb thentemp_a:=temp_a-temp_b+1;end if;end loop;if d=1thentemp_a(3 downto 0):=(not temp_a(3 downto 0)+1;end if;if sign=1thentemp_a(7 downto 4):=(not temp_b(7 downto 4)+1;end if;ALU_OUT=temp_a(3 downto 0);co=temp_a(7 do
12、wnto 4);if(bb=0000)thenALU_OUT=0000;end if;end process;end behave;4.5 清零LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clr ISPORT(ALU_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END clr;ARCHITECTURE behave OF clr ISbeginALU_OUT=0000;end behave;4.6 移位LIBRARY IEEE;USE IEEE.ST
13、D_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY shift ISPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); ALU_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END shift;ARCHITECTURE behave OF shift ISsignal aa:std_logic_vector(4 downto 0);beginaa=a&a(3);ALU_OUT D0=dina;D1=0000;D2=0000;D3=0000;D4=0000;D5 D1=dina;D
14、0=0000;D2=0000;D3=0000;D4=0000;D5 D2=dina;D0=0000;D0=0000;D3=0000;D4=0000;D5 D3=dina;D0=0000;D1=0000;D2=0000;D4=0000;D5 D5=dina;D0=0000;D1=0000;D2=0000;D3=0000;D4 D4=dina; D0=0000;D1=0000;D2=0000;D3=0000;D5 D0=dinb;D1=0000;D2=0000;D3=0000;D4=0000;D5 D1=dinb;D0=0000;D2=0000;D3=0000;D4=0000;D5 D2=dinb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 计算器 设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。