实验二 简易计数器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二简易计数器设计

实验目的:掌握基本的VHDL语法,能够使用VHDL输入方式,设计实现简单的组合逻辑电路。

实验内容:设计实现个位数的加减乘除计算模块,实现4-8段数码管编码模块,利用两个模块实现计算器。

原理图:如下图所示

仿真结果及结果分析:

如下两张仿真结果图所示,A、B为两个个位的数,表示的范围都是0—7;S 表示A和B两个数进行运算时中间的运算符,即当S为0表示做加法运算、当S 为1表示做减法运算、当S为2表示做乘法运算、当S为3表示做除法运算;Y1和Y0表示A与B运算所得的结果用16进表示,做完后的仿真结果即为对应的七段显示译码器上显示的值,Y1是高位,Y0是低位和除法中的余数,当Y的数值为10则表示负号。

管脚锁定说明:

硬件测试情况说明及结果分析:

根据原理图上的芯片引脚功能按照设好的引脚用线连接好电路,A、B、S应该接到八个开关上控制A、B两个数的运算。开关L3、L2、L1分别对应引脚58、59、60,表示的为数A所表示的二进制数;开关L6、L5、L4分别对应引脚53、54、65,表示的为数B所表示的二进制数;S1、S0对应引脚为51、52,表示的为A 与B之间的运算符,00则为加法、01则为减法、10为乘法、11为除法;而Y0[0]—Y0[6]即输出低位对应七段显示译码器A—G,对应引脚分别为142、141、138、137、136、135、133,而Y1[0]—Y1[6]即输出的高位对应七段显示译码器A—G,

对应引脚分别为10、7、4、3、2、1、144,然后通过八个开关键来操作A、B两数的加减乘除情况,观察七段显示译码器上的结果是否正确,实验完成后可知所做实验符合预期结果的要求,实验成功。

cal代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY cal IS

PORT(

a,b:in integer range 7 downto 0;

s :in STD_LOGIC_VECTOR (1 downto 0);

y1,y0:out integer range 10 downto 0);

END cal;

ARCHITECTURE archcal OF cal IS

BEGIN

ca14_1:process(a,b)

variable t:integer;

begin

if s="00" then t:=(a+b);

elsif s="01" then t:=(a-b);

elsif s="10" then t:=(a*b);

else t:=(a/b);

end if;

if (t>=0) then y1<=(t/10);y0<=(t mod 10);

else y1<=10;y0<=(-t);

end if;

end process ca14_1;

END ARCHITECTURE archcal;

seg7代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY seg7 IS

PORT(

a:in STD_LOGIC_VECTOR (3 downto 0);

y:out STD_LOGIC_VECTOR (6 downto 0)

);

END seg7;

ARCHITECTURE archseg7 OF seg7 IS

BEGIN

proseg7:process(a)

begin

case a is

when "0000"=>y<="1111110";

when "0001"=>y<="0110000";

when "0010"=>y<="1101101";

when "0011"=>y<="1111001";

when "0100"=>y<="0110011";

when "0101"=>y<="1011011";

when "0110"=>y<="0011111";

when "0111"=>y<="1110000";

when "1000"=>y<="1111111";

when "1001"=>y<="1111011";

when "1010"=>y<="0000001";

when others=>null;

end case;

end process proseg7;

END ARCHITECTURE archseg7;

实验总结:

通过此次实验我们掌握了基本的VHDL语法,学会了使用VHDL输入方式,设计实现简单的组合逻辑电路。学会了实现个位数的加减乘除计算的模块,以及实现4-8段数码管编码模块,并利用两个模块实现计算器,同时也对仿真的步骤加深了印象,能更好的运用。

相关文档
最新文档