ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:620.73KB ,
资源ID:4740703      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4740703.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(精品eda课程设计之2位十进制四则运算器电路四则运算器x.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、精品eda课程设计之2位十进制四则运算器电路四则运算器x【关键字】精品电子设计自动化课程设计题目: 2位十进制四则运算器电路 院(系) 信息科学与工程学院 专 业 通信工程 届 别 2011级 班 级 学 号 姓 名 任课老师 彭盛亮 摘要本设计是利用EDA技术实现的2位十进制四则运算器,是基于QuartusII7.2软件,利用其强大、直观、便捷和操作灵活的原理图输入设计的功能来完成本次设计的。此设计利用QuartusII7.2中的EP2C5T144C8芯片来控制整个程序的运行,用七段数码管显示各个输入和输出,用LED灯的亮灭来显示运算模式,而软件部分则是由VHDL语言来编写的,是通过精心的设

2、计和合理的规划而完成的设计。设计完成后的运算器不仅能实现数据的加减乘除运算,而且还能使数据及其计算结果在数码管上显示出来,能够实现0-99的十进制数字四则运算。第一章 系统设计 11.1设计要求 11.2系统设计方案 1 第一章 系统设计1.1设计要求输入两个2位十进制数(099),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT及LPM_DIVIDE模块。 1.2系统设计方案 通过分析可知,要完成本次课程设计可以分为三个模块来实现相应的功能,分别是输入模块、计算模块以及输出模块。其中各个模块的任务要求为: * 输入模块:输入两个2位十进制数以及运算模式的选择

3、 * 计算模块:根据输入模块的选择完成相应的运算过程 * 输出模块:输出各个输入及计算结果方案一:根据功能和指标要求,计算器电路包括三个部分:显示电 路、输入电路和芯片控制电路。用七段数码管作为显示电路,各作为输入电路,利用程序输入法将计算器所需的程 序写入芯片。模块图如下:方案二: 根据计算器的功能要求,计算器电路可包括四个部分:选用LED数码管作为显示部分,各按键作为输入部分,运算模块,芯片控制部分。模块图如下: 1.2.3 方案的对比选择 从电路清晰程度来说方案二要优于方案一,因为方案二显示结果清楚明了,比用方案一的准确度更高,而且电路分模块来做,更加清晰,连线相对也比较简单。所以为了得

4、到更好的结果,我所以选择方案二。 计算模块 1.2.5 系统的工作原理 (1)由于要设计的是四则计算器,可以进行四则运算, 则采用七段数码管显示数据和结果。 (2)另外键盘包括两个十进制数输入键、一个模式选择键,故只需要3个按键即可。 (3)执行过程:使能端打开后显为示零,等待键入数值,当键入两个数字,计算器在内部执行数值转换和存储,并等待键入模式,当再键入模式后将在数码管上显示运算结果。第二章 单元电路设计2.1 输入模块工作原理: 利用两个100进制的计数器作为数字的输入,通过外接的按键来控制计数器,从而人为的确定输入的数值。 参数计算:一百进制数输出最高是99,故需7个字节才可能将其包含

5、在内,因此cq的宽度6.0。 LED每一位的最高输出为9,故需4个字节才可能将其包含在内,故LED1和LED2的宽度为3.0。2.2加法模块 工作原理:利用VHDL语言来实现两个2位十进制数的加法,做出一个小加法模块。又由于其输出结果在0198之间,故要将此小减法模块将和2个lpm divide1和2个lpm constant0相连,从而使得当两个十进制数输入后可以在3个LED数码管上显示最终结果。 参数计算:输入最高值是99,需7个字节才可能将其包含在内,因此add_in1和add_in2的宽度6.0。输出结果最高值为3位数,且要将其显示在LED灯上,则设置3个输出,可利用LPM_CONST

6、ANT取10,将输出的结果2次模10得到百位数、十位数和个位数。 LED每一位的最高输出为9,故add_out1、add_out2和add_out3的宽度为3.0。2.3减法模块工作原理: 利用VHDL语言来实现两个2位十进制数的加法,做出一个小减法模块。又由于其输出结果在-9999之间,故将此小减法模块将和2个lpm divide1和2个lpm constant0相连,从而使得当两个十进制数输入后可以在3个LED数码管上显示最终结果,其中一个LED数码管显示结果的符号,若为负数则符号位出现“F”。 参数计算:输入最高值是99,需7个字节才可能将其包含在内,因此sub_in1和sub_in2的

7、宽度6.0。所得结果最高值为2位数,且要将其显示在LED灯上,则设置2个数值输出,又由于可能出现结果为负数的情况,故又设一个符号位输出。可利用LPM_CONSTANT取10,将输出的结果2次模10得到十位数和个位数。 LED每一位的最高输出为9,故sub_out1和sub_out2的宽度为3.0。2.4乘法模块工作原理: 乘法运算可以直接调用LPM_MULT的模块来实现乘法运算。又由于其输出结果在09801之间,故要将此模块和4个lpm divide1和4个lpm constant0相连,从而使得当两个十进制数输入后可以在4个LED数码管上显示最终结果。 参数计算:输入最高值是99,需7个字节

8、才可能将其包含在内,因此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的模块来实现除法运算。又由于其输出结果在099之间,故要将此模块和2个lpm divide1和2个lpm constant0相连,可利用LPM_CONSTANT取10,将输出的结果

9、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输出模块工作原理: 将加、减、乘、

10、除各个模块的输出和模式选择的输出作为输入,以模式选择的输入作为控制信号来控制结果的输出。 参数计算: 该模块的各项输入是由其他模块的输出来决定的,故此模块的参数要和之前的模块参数一一对应。第三章 软件设计 3.1 软件设计平台、开发工具和实现方法 在Quartus平台中用VHDL语言编写各个模块所需要的程序或者调用Quartus II中原有的模块并利用原理图设计方法完成整个设计,借助EDA实验箱进行实验程序的调试和检测。3.2程序的流程方框图EN=1,RST=0 3.3实现的功能及程序清单功能:作为两个2位的十进制数的输入程序:library ieee;use ieee.std_logic_1

11、164.all;use ieee.std_logic_unsigned.all;entity cnt99 is port(clk,rst,en:in std_logic; cq: buffer std_logic_vector(6 downto 0); LED1:out std_logic_vector(3 downto 0); LED2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); cout:out std_logic);end cnt99;architecture behav of cnt99 isbeginprocess(clk,rst,en)variable cq

12、i:std_logic_vector(3 downto 0);variable cqii:std_logic_vector(6 downto 0);variable hi:std_logic_vector(3 downto 0);beginif rst =1 then cqi:=(others =0);hi:=(others =0);elsif clkevent and clk=1 then if en =1 then if hi9 then if cqi0); hi:=hi+1; end if ; else hi:=(others =0); end if; if cqii0);end if

13、; end if;end if;if(cqi=9 and hi=9) then cout=1;else cout=0; end if ;cq=cqii;LED1=hi;LED20) ; ELSIF CLKEVENT AND CLK=1 THEN IF EN = 1 THEN CQI := CQI + 1; END IF; END IF; IF CQI = 0 THEN COUT = 1; ELSE COUT = 0; END IF; CQ outmod=1000; outLED1 0);outLED2=add_out1(3 downto 0);outLED3=add_out2; outLED4

14、 outmod=0100; outLED1 0);outLED2(not flag);outLED3=sub_out1(3 downto 0); outLED4 outmod=0010; outLED1=mul_out1(3 downto 0);outLED2=mul_out2;outLED3=mul_out3; outLED4 outmod=0001; outLED1 0);outLED2 0);outLED3=div_out1(3 downto 0); outLED4=div_out2; end case; end process;end bhv; 第四章 系统测试4.1 功能的测试方法、

15、步骤 软件部分:1、将写好的的程序先进行编译 2、编译通过后,利用波形仿真来观察结果是否正确。 3、采用模式5进行分配管脚后,再进行编译4、将编译通过的程序下载到EDA实验箱上进行硬件验证。硬件部分1、选择模式5进行测试2、利用多邦线将en接vcc,rst接gnd3、根据管脚的分配(键1clk1、键2clk2,键3clk3),按 键1和键2来改变输入值,按键3改变运算模式。比如:当按 键1和键2输入38和47,则可在数码管上显示85,按键3 改变加法、减法、乘法、除法模式。当模式为减法时,其结果 为“F9”;当模式为乘法时,其结果为1786;当模式为除法模 式时,其结果为0. 4.2 仪器设备

16、EDA技术实验箱 PC机(带有quartus软件)第五章 结论 本次设计完成了设计的基本要求,即随机输入两个2位数,可进行该两个数的四则运算并且输出相应的结果。同时也掌握了用VHDL语言来设计四则运算的基本要求,加深了对软件的了解。参考文献潘松,黄继业EDA技术与VHDL语言.第三版.北京:清华大学出版社.2011.附录A 电路图图纸总系统电路图纸乘法模块电路图 除法模块电路图 附录B 软件程序小加法模块程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity cal4_add is p

17、ort( add_in1, add_in2 : in std_logic_vector(6 downto 0); add_out : out std_logic_vector(7 downto 0);end entity cal4_add;architecture beh of cal4_add issignal a1: std_logic_vector(7 downto 0);signal a2: std_logic_vector(7 downto 0);signal a3: std_logic_vector(7 downto 0);begin process(add_in1, add_in

18、2) begin a1=0&add_in1; a2=0&add_in2; a3 = a2+a1; add_outsub_in2 then flag = 1; sub_out = sub_in1-sub_in2; else flag = 0; sub_out 0);hi:=(others =0);elsif clkevent and clk=1 then if en =1 then if hi9 then if cqi0); hi:=hi+1; end if ; else hi:=(others =0); end if; if cqii0);end if ; end if;end if;if(c

19、qi=9 and hi=9) then cout=1;else cout=0; end if ;cq=cqii;LED1=hi;LED20) ; ELSIF CLKEVENT AND CLK=1 THEN IF EN = 1 THEN CQI := CQI + 1; END IF; END IF; IF CQI = 0 THEN COUT = 1; ELSE COUT = 0; END IF; CQ = CQI; END PROCESS;END behav;输出模块程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY size_mod IS PORT( mod_sel : IN STD_LOGIC_vector(1 downto 0); add_out1 : IN STD_LOGIC_vector(3 downto 0)

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

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