《EDA课程设计2位十进制四则运算电路》_第1页
《EDA课程设计2位十进制四则运算电路》_第2页
《EDA课程设计2位十进制四则运算电路》_第3页
《EDA课程设计2位十进制四则运算电路》_第4页
《EDA课程设计2位十进制四则运算电路》_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、电子设计自动化课程设计电子设计自动化课程设计题目: 2位十进制四则运算器电路 院(系) 信息科学与工程学院 专 业 通信工程 届 别 2011级 班 级 1班 学 号 1115102040 姓 名 韦 桂 任课老师 彭盛亮 摘要本次课程设计主要内容是采用VHDL语言实现2位十进制数四则运算编程,用Quartus II 软件实现功能仿真,并完成硬件测试。本次试验目的是:输入任意两个两十进制位数(099),选择计算模式(加减乘除),输出它们的计算结果,利用四个数码 LED 分别显示输入的两个两位数,利用四个发光二极管显示计算模式(每次只有一个二极管发光),利用另外四个数码管显示计算结果;实现方法是

2、:将整个系统分为输入模块,计算模块和输出模块三个部分组成。输入模块由3个脉冲键,2个复位键和2个使能端组成;计算模块分别为加法器,减法器,乘法器,除法器;输出模块通过8个数码管和4个发光二极管分别显示运算数值,运算结果和运算模式。经过多次修改,波形仿真和硬件测试均成功。设置两个计数器的复位键,以便于输入比较大的数之后,想进行比较小的数字的运算可以按复位键,以减少按键5或键6的次数,设置模块时,为使电路看起来更加简洁,应减少使用电路模块,如:都除以10取余时,把除数端口都连接在同一个常数端。目录第一部分 系统设计41.1设计要求:41.2系统设计方案:41.2.1设计总思路:41.2.2实验的主

3、要方法:41.2.3电路设计:41.2.4实验电路图:4(1)总电路5(2)输入模块:5(3)计算模块5(4)输出模块:61.2.5:总体方法的论证与比较:7第二部分 软件设计72.1软件设计平台72.2程序流程图72.3实验相关程序72.3.1clkA与clkB中需要用的100进制计数器cnt100:72.3.2.四进制计数器cnt4程序:82.3.3.nu15_add中需用的加法程序:92.3.4.nu15_sub中需要用的减法程序:92.3.5.nu15_mod程序:102.4 总电路波形仿真112.5 管脚分配11(1)Input:11(2)Output:11第三部分 系统测试123.

4、1 软件测试结构综合结果123.2仪器设备名称、型号123.3功能测试方法、步骤:12第四部分 结论及收获134.1结论134.2致谢134.3 参考文献13第一部分 系统设计1.1设计要求: 输入两个2位十进制数(099),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT及LPM_DIVIDE模块。1.2系统设计方案:1.2.1设计总思路:将总的电路大体分为以下几个大模块:三个输入端,模式选择,加法模块,减法模块,乘法模块,除法模块,输出模块。总思路框图如下:1.2.2实验的主要方法:a. 十进制数输入以及计算模式切换借助于单脉冲按键实现(模式 5);b.

5、“加”和“减”功能模块可自编VHDL 程序实现,“乘”和“除”功能模块可调用LPM 模块实现;c. 乘法运算的结果最多为四位数(如99*99=9801),分别取出其千位数(9),百位数(8),十位数(0)和个位数(1)然后送给四个LED 才能显示计算结果(9801)。1.2.3电路设计:a.七个输入端分别为:clkA,clkB,clkC,ENA,ENB,RSTA,RSTB;b.两个100进制计数器分别为CNTA,CNTBc.一个四进制计数器cnt4d.四个模块:加、减、乘、除分别为:nu15_add,nu15_sub,nu15_mult,nu15_dive.连接运算结果和输出端的模块:nu15

6、_modf.八个输出端分别为:显示输入的第一个数字:outIN11(高位),outIN12(低位), 显示输入的第二个数字:outIN21(高位),outIN22(低位), 显示运算后的结果:LED1(高位),LED2,LED3,LED4(低位);1.2.4实验电路图:(1)总电路a.总电路图:(2)输入模块:b.CNTA电路:c.CNTB电路:(3)计算模块d.加法模块nu15_add电路:e.减法模块.nu15_sub电路:f.乘法模块nu15_mult电路:g.除法模块nu15_div电路:(4)输出模块:h.输出模块nu15_mod电路:1.2.5:总体方法的论证与比较:方案一:输入直

7、接用100进制的计数器,但要将输入数值显示在数码管上,则需制作显示模块,对输入的数进行除法运算,再通过输出模块将数值显示在数码管上。方案二:输入用两个十进制的计数器连接实现100进制,此方法可很方便地显示输入数值,但还需要将其合成100进制数参与后面的运算。由于对方案比较熟练,方案二对我来说不好实现,故采用方案一。第二部分 软件设计2.1软件设计平台 Quartus II2.2程序流程图2.3实验相关程序2.3.1clkA与clkB中需要用的100进制计数器cnt100:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UN

8、SIGNED.ALL;ENTITY cnt100 IS PORT (CLK,RST,EN : IN STD_LOGIC; CQ2 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); COUT : OUT STD_LOGIC ); END cnt100;ARCHITECTURE behav OF cnt100 ISBEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN IF RST = '1' THEN CQI := (OTHERS =>'0&#

9、39;) ; -计数器异步复位 ELSIF CLK'EVENT AND CLK='1' THEN -检测时钟上升沿 IF EN = '1' THEN if CQI<99 then CQI := CQI + 1; -检测是否允许计数(同步使能) end if; END IF; END IF; IF CQI = 0 THEN COUT <= '1' ELSE COUT <= '0' END IF; CQ2 <= CQI; -将计数值向端口输出 END PROCESS;END behav;2.3.2.四进

10、制计数器cnt4程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt4 is port (CLK:IN STD_LOGIC; CQ:BUFFER STD_LOGIC_VECTOR(1 DOWNTO 0); COUT :out std_logic );END cnt4;architecture behav of cnt4 isbegin process(CLK) variable CQI:STD_LOGIC_VECTOR(1 DOWNTO 0); begin IF CLK

11、9;EVENT AND CLK='0'THEN IF CQI<"11" THEN CQI:=CQI+1; ELSE CQI:=(others=>'0');end if; end if; if CQI=3 then COUT<='1' ELSE COUT<='0'end if; CQ<=CQI;END PROCESS; END behav;2.3.3.nu15_add中需用的加法程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.

12、STD_LOGIC_UNSIGNED.ALL;entity add isport(add_in,bdd_in : in std_logic_vector(6 downto 0); add_out: out std_logic_vector(7 downto 0);end entity add;architecture beh of add issignal a: std_logic_vector(7 downto 0);signal b :std_logic_vector(7 downto 0);beginprocess(add_in, bdd_in)begina<='0'

13、; & add_in;b<='0' & bdd_in;end process;add_out<= a + b;end architecture beh;2.3.4.nu15_sub中需要用的减法程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity sub isport(sub_in1, sub_in2: in std_logic_vector(6 downto 0);flag: out std_logic;sub_out: out std_

14、logic_vector(6 downto 0);end entity sub;architecture beh of sub isbeginprocess(sub_in1, sub_in2)beginif sub_in1>sub_in2 thenflag <= '1'sub_out <= sub_in1-sub_in2;else flag <= '0'sub_out <= sub_in2-sub_in1;end if;end process;end architecture beh;2.3.5.nu15_mod程序:LIBRARY

15、 IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY nu15_mod IS PORT(mod_sel: IN STD_LOGIC_vector(1 downto 0); add_out1: IN STD_LOGIC_vector(3 downto 0);add_out2: IN STD_LOGIC_vector(3 downto 0);add_out3: IN STD_LOGIC_vector(3 downto 0);flag: IN STD_LOGIC;sub_out1: IN STD_LOGIC_

16、vector(3 downto 0);sub_out2: IN STD_LOGIC_vector(3 downto 0);mul_out1: IN STD_LOGIC_vector(3 downto 0);mul_out2: IN STD_LOGIC_vector(3 downto 0);mul_out3: IN STD_LOGIC_vector(3 downto 0);mul_out4: IN STD_LOGIC_vector(3 downto 0);div_out1: IN STD_LOGIC_vector(3 downto 0);div_out2: IN STD_LOGIC_vector

17、(3 downto 0);outmod: out std_logic_vector(3 downto 0);outLED1: out STD_LOGIC_vector(3 downto 0);outLED2: out STD_LOGIC_vector(3 downto 0);outLED3: out STD_LOGIC_vector(3 downto 0);outLED4: out STD_LOGIC_vector(3 downto 0); END nu15_mod;ARCHITECTURE bhv OF nu15_mod ISBEGINprocess(mod_sel)begincase mo

18、d_sel iswhen "00" => outmod<="1000" outLED1<=(others=> '0');outLED2<=add_out1(3 downto 0); outLED3<=add_out2(3 downto 0);outLED4<=add_out3;when "01" => outmod<="0100" outLED1<=(others=>(not flag); outLED2<=(others=&g

19、t; '0');outLED3<=sub_out1(3 downto 0);outLED4<=sub_out2;when "10" => outmod<="0010" outLED1<=mul_out1(3 downto 0); outLED2<=mul_out2(3 downto 0);outLED3<=mul_out3(3 downto 0);outLED4<=mul_out4;when others => outmod<="0001" outLED1&l

20、t;=(others=> '0');outLED2<=(others=> '0'); outLED3<=div_out1(3 downto 0);outLED4<=div_out2;end case;end process;end bhv;2.4 总电路波形仿真波形仿真相关说明:Outmod为8、4、2、1分别对应加、减、乘、除,13+25=38;14-27=-13;14*28=392;15/30=0;通过波形仿真知道运算结果正确2.5 管脚分配(1)Input:(2)Output:第三部分 系统测试3.1 软件测试结构综合结果3.2仪器设备名称、型号Altera公司Cylclone II系列EP2C5T144C8芯片3.3功能测试方法、步骤:1、 分配好管脚后,用线把试验箱上I/048,I/049分别接Vcc(高

温馨提示

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

评论

0/150

提交评论