版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子设计自动化课程设计题目: 2位十进制四则运算器电路 摘要本次设计的目的是通过QuartusII软件实现输入两个2位十进制数(099),输出它们的四则运算(加减乘除)结果(发光二极管显示运算模式;调用LPM_MULT、LPM_CONSTANT及LPM_DIVIDE模块)。实现的方法是利用四则运算的规律进行初步设计,然后进行调整和修改。最终结果要求:随机的输入两个数,经过加法、减法、乘法和除法的运算,可以得到正确的运算结果。主要分为4大部分:一、2位十进制数模块;二、加减乘除四则运算四个小模块;三、加减乘除四则运算的选择模块;四、处理输出结果的模块。目 录1 系统设计42 单元电路设计 5 3
2、 软件设计 54 系统测试145 结论146 参考文献141、系统设计一、 设计要求:输入两个2位十进制数(099),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT及LPM_DIVIDE模块。 二、 系统设计方案:(1) 系统设计思路要完成2位十进制四则运算器电路,首先,需要生成2个两位的十进制数,其次,需要加减乘除四个运算,然后,四种运算的选择,最后,对输出结果的处理。2个2位十进制模块:法一,用两个100进制计数器构成;法二,用4个10进制计数器构成。因为add1模块(后面详细介绍)只有两个输入口,所以选择法一比较方便。加减乘除四则运算:加法:写一个加法
3、程序,制成模块,再分别取出它的各位、十位、百位。减法:写一个减法程序,用调用LPM的方法制成一个模块,在分别取出它的各位、十位和符号位。乘法:直接调用内部LPM,制成乘法模块。除法:直接调用内部LPM,制成除法模块。加减乘除运算的选择:写一个4路选择器,分别选择加减乘除。对输出结果的处理:写一个程序,对应不同选择下的不同输出,注意位数(加法:输出在0198之间,需3个LED灯来显示;减法:输出在099之间,需3个LED灯(其中一个符号位);乘法:输出在09801之间,需4个LED灯;除法:输出在099之间,需2个LED灯。综上可知,输出一共需4个LED灯)。(2) 总体方案的论证与比较该方案能
4、够较好的实现本设计的功能。一些小模块可以有不同做法。如:2位十进制模块:法一,用两个100进制计数器构成;法二,用4个10进制计数器构成。因为add1模块(后面详细介绍)只有两个输入口,所以选择法一比较方便。加减乘除输出结果的处理:要求出各个位的数。(假设输出结果3位)法一:每次除以10,依次求出个位、十位、百位;法二:除以100,得百位,除以10得个位和十位。因为法二需要较多的LPM_DIVIDE和LPM_CONSTANT,所以,法一比较好。(3)各功能块的划分与组成(4)系统的工作原理对于随机输入的两个数,系统都会对其进行加减乘除四则运算,然后选择加法、减法、乘法或除法来作为输出,并验证其
5、正确性。2、单元电路设计一、输入单元(2个2位十进制模块)输入单元设计中, 用VHDL语言来实现该功能,然后制成模块。二、加法单元对两个输入的数进行加法运算,可用VHDL语言来实现该功能。其输出结果在0198之间,将其结果显示在LED灯上,就需调用4个LPM_DIVIDE和4个LPM_CONSTANT来实现。三、减法单元对两个输入的数进行减法运算,可用VHDL语言来实现。结果有正、负之分,“F”来表示负号。输出范围在099之间,需2个LPM_DIVIDE 和2个LPM_CONSTANT来将其结果显示在LED灯上。四、乘法单元乘法单元可调用LPM_MULT模块来实现。其输出结果在09801之间,
6、需4个LPM_DIVIDE和4个LPM_CONSTANT来将其结果显示在LED灯上。五、除法单元除法单元直接调用3个LPM_DIVIDE 和2个LPM_CONSTANT就可以实现其要求。六、 选择模式单元用VHDL语言写一个四路选择器程序,然后制成模块。七、输出单元用VHDL语言写一个程序可实现该功能,然后制成模块。3、软件设计一、软件设计平台和开发工具在在Quartus II平台中用VHDL语言编程和调试。并调用其Quartus II的内部模块来实现设计要求。二、程序原理图总程序图及其仿真波形一百进制模块其程序为:library ieee;use ieee.std_logic_1164.al
7、l;use ieee.std_logic_unsigned.all;entity t100 is port(clk,rst,en:in std_logic; cq:out std_logic_vector(6 downto 0);cout:out std_logic);end t100;architecture behav of t100 isbegin process(clk,rst,en)variable cqi:std_logic_vector(6 downto 0);beginif rst ='1' then cqi:=(others =>'0')
8、;elsif clk'event and clk='0' then if en ='1' then if cqi<99 then cqi:=cqi+1;else cqi:=(others=>'0');end if ;end if;end if;if cqi=99 then cout<='1'else cout<='0' END IF;cq<=cqi;end process; end behav;仿真波形为:加法模块(1)、add程序library ieee;use ieee.s
9、td_logic_1164.all;use ieee.std_logic_unsigned.all;entity add is port( shu1: in std_logic_vector(6 downto 0); shu2: in std_logic_vector(6 downto 0); shu_out: out std_logic_vector(7 downto 0) ); end add;architecture behav of add is signal a,b:std_logic_vector(7 downto 0);beginprocess(shu1,shu2)begin a
10、<='0'&shu1;b<='0'&shu2;shu_out<=a+b;end process;end behav;(2)add1模块(3)有关说明因为输入是两个2位十进制数(即输入宽度是7字节6.0),所以输出范围为0198(即输出宽度为8字节7.0),之后除以100得百位,再除以10 的各位和十位。减法(1)sub程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity sub isport(sub_in1, sub_i
11、n2: in std_logic_vector(6 downto 0);flag: out std_logic;sub_out: out std_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;elseflag <= '0'sub_out <= sub_in2-
12、sub_in1;end if;end process;end architecture beh;(2)sub1模块(3)有关说明两个百进制数相减,最大为99,即输出最多需要7字节。flag是标示位,两数相减若为正数,flag输出为0;若为负数,flag输出为“F”。乘法(1)mul1模块(2)有关说明因为99*99=9801,所以输出需14个字节,即宽度为13.0.共需4个lpm_divide。除以10得个位,再除以10的十位,然后除以10得百位,最后再除以10得千位。除法(1)div1模块(2)有关说明除法单元直接调用3个LPM_DIVIDE 和2个LPM_CONSTANT就可以实现其要求。
13、选择模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ct4 isport(CLK:IN STD_LOGIC; A:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END ct4;architecture one of ct4 is SIGNAL B:STD_LOGIC_VECTOR(1 DOWNTO 0); begin process(CLK) begin if CLK'event and CLK='1' THEN IF B<3 T
14、HEN B<=B+1; ELSE B<=(OTHERS=>'0');END IF ; END IF; END PROCESS; A<=B; END ARCHITECTURE;输出模块(1)输出模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cal4_mod IS PORT(mod_sel: IN STD_LOGIC_vector(1 downto 0); add_out1: IN STD_LOGIC_vector(3 downto 0)
15、;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_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_vecto
16、r(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(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 do
17、wnto 0);outLED4: out STD_LOGIC_vector(3 downto 0); END cal4_mod;ARCHITECTURE bhv OF cal4_mod ISBEGINprocess(mod_sel)begincase mod_sel iswhen "00" => outmod<="1000" outLED1<=(others=>'0'); outLED2<=add_out3; outLED3<=add_out2; outLED4<=add_out1;when &q
18、uot;01" => outmod<="0100" outLED1<=(others=>'0'); outLED2<=(others=>(not flag) ; outLED3<=sub_out2; outLED4<=sub_out1;when "10" => outmod<="0010" outLED1<=mul_out4; outLED2<=mul_out3;outLED3<=mul_out2; outLED4<=mul_
19、out1;when others => outmod<="0001" outLED1<=(others=>'0'); outLED2<=(others=>'0'); outLED3<=div_out2; outLED4<=div_out1;end case;end process;end bhv;(2)有关说明若四选一输出为“00”时,选择加法运算;输出为“01”时,选择减法运算:输出为“10”时,选择乘法运算;输出为“11”时,选择除法运算。4、系统测试系统的功能测试及步骤:1、将制作好的的程序先进行编译,看是否能编译通过,若未通过,则进行修改直至编译通过。2、编译通过后,进行波形仿真来观察其结果是否正确。3、进行分配管脚,然后再编译一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 传统村落规划案例
- 人教九年级语文上册《写作 尝试创作》公开课教学课件
- 读书笔记大全好词好句好段5篇
- 劳动合同法2024形考任务答案
- 4、项目合同管理要点
- 法治大讲堂民法典合同编
- 2025年韶关b2货运上岗证模拟考试
- 2025年辽宁货运从业资格证考试模拟试题及答案解析
- 2024年标准运输车辆租赁协议范本版B版
- 2025年甘孜货运资格证题库下载安装
- 《推荐一本书》教学课件
- FMEA管理控制程序
- 儿童先天性甲状腺功能减低症ppt课件
- DB13(J)∕T 8054-2019 市政基础设施工程施工质量验收通用标准
- (完整ppt)柳永-介绍ppt课件
- 病例缺陷分级
- 感受大自然之美优秀课件
- 义务教育英语课程标准(2022年版) (1)
- 过程能力及过程能力指数
- 强夯试夯报告(共12页)
- 员工上下班个人签到表
评论
0/150
提交评论