用VHDL实现计算器_第1页
用VHDL实现计算器_第2页
用VHDL实现计算器_第3页
用VHDL实现计算器_第4页
用VHDL实现计算器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于用VHDL实现计算器第1页,共14页,2023年,2月20日,星期五

设计目的设计要求流程图实验内容程序源码设计结论体会和收获第2页,共14页,2023年,2月20日,星期五设计目的

熟悉VHDL语言和开发平台的使用,以及计算器的设计思想和调试方法。并且熟悉如何将硬件与软件结合起来,以便在板子上显示相应的内容。第3页,共14页,2023年,2月20日,星期五设计要求1、用键盘输入相对应的数字。2、进行加减乘除时,用0/1控制,当为1时,触发加减乘除运算。3、在显示加减乘除号时,把数码管清空,以便输入第二个数。第4页,共14页,2023年,2月20日,星期五4、在显示等号时,显示出相应的结果5、最多只可进行1位数字的加减运算,当输入数字时,输入超出位时便不可在进行输入,输入无效。当显示结果时,如果结果超过1位,则显示错。第5页,共14页,2023年,2月20日,星期五程序流程框图

输入第一个数输入第二个数加法减法乘法除法显示结果第6页,共14页,2023年,2月20日,星期五实验内容

在QuartusII平台中用VHDL语言编程和调试。并给出程序流程框图、VHDL源程序和结论波形图以及实验结论和体会与收获。第7页,共14页,2023年,2月20日,星期五程序源码

--库的引用LIBRARYIEEE;--USEIEEE.std_logic_arith.ALL;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;--useieee.numeric_bit.all;--实体声明entityadderisport(d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14:instd_logic;q3:instd_logic;--/q2:instd_logic;--*g:outstd_logic_vector(7downto0);q0:instd_logic;---q1:instd_logic);endadder;--结构体声明architecturefuncofadderissignala1:std_logic;signala2:std_logic;signalt:integer;signalin1:integer;signalin2:integer;signalin3:integer;signalww:std_logic_vector(3downto0);第8页,共14页,2023年,2月20日,星期五beginp1:process(d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,a1)--d10,d11,d12,d13,d14,cn1,ent)variablein1:integer;beginifa1='1'thenifd0='0'thenin1:=0;elsifd1='0'thenin1:=1;elsifd2='0'thenin1:=2;elsifd3='0'thenin1:=3;elsifd4='0'thenin1:=4;elsifd5='0'thenin1:=5;elsifd6='0'thenin1:=6;elsifd7='0'thenin1:=7;elsifd8='0'thenin1:=8;elsifd9='0'thenin1:=9;endif;endif;endprocessp1;p2:process(d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,a2)--d10,d11,d12,d13,d14,cn1,ent)variablein2:integer;beginifa2='1'thenifd0='0'thenin2:=0;elsifd1='0'thenin2:=1;elsifd2='0'thenin2:=2;elsifd3='0'thenin2:=3;elsifd4='0'thenin2:=4;elsifd5='0'thenin2:=5;elsifd6='0'thenin2:=6;elsifd7='0'thenin2:=7;elsifd8='0'thenin2:=8;elsifd9='0'thenin2:=9;endif;endif;endprocessp2;第9页,共14页,2023年,2月20日,星期五--'+-*/'p1111:process(q0,q1,q2,q3)variablein1:integer;variablein2:integer;variablein3:integer;beginifq0='1'andq1='0'andq2='0'andq3='0'thenin3:=in1+in2;t<=in3;elsifq0='0'andq1='1'andq2='0'andq3='0'thenin3:=in1-in2;t<=in3;elsifq0='0'andq1='0'andq2='1'andq3='0'thenin3:=in1*in2;t<=in3;elsifq0='0'andq1='0'andq2='0'andq3='1'thenin3:=in1/in2;t<=in3;endif;endprocessp1111;--'*'p111:process(t)begincasetiswhen0=>g<="11111100";--0when1=>g<="01100000";--1when2=>g<="11011010";--2when3=>g<="11110010";--3when4=>g<="01100110";--4when5=>g<="10110110";--5when6=>g<="10111110";--6when7=>g<="11100000";--7when8=>g<="11111110";--8when9=>g<="11110110";--9whenothers=>t<="00000010";--错endcase;endprocessp111;endfunc;第10页,共14页,2023年,2月20日,星期五设计结论完成了计算器的基本功能。但是进行运算的结果会有偏差。第11页,共14页,2023年,2月20日,星期五体会和收获

通过编写实验的过程中,先了解到怎样进行扫描,怎样用扫描的办法将数字显示,然后进行数字在数码管上的移动,当在按下时使其原来的数进行前移。又通过两个信号将第一个数记住并锁存,以便进行以后的加减乘除运算。并记录在当前数,将其显示。一般的计算器,在进行运算时,会涉及到进位、借位的问题,但很遗憾我们本次试验并没完成这些功能。第12页,共14页,2023年,2月20日,星期五

本次设计虽然最后完成了,但是由于太过仓促,准备的并不充分,所以有很多不足之处,再加上程序有很功能不能实现

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论