文档介绍:北邮-数电实验报告
数字电路实验报告
学院:信息与通信工程
专业:信息工程
班级:2013211125
学号:2013210681
end count10;
architecture struct of count10 is
signal q_temp:std_logic_vector(3 downto 0);
begin
process(clk)
begin
if (clk'event and clk='1') then
if clear='1' then
q_temp<="0000";
elsif q_temp="1001" then
q_temp<="0000";
else
q_temp<=q_temp+1;
end if;
end if;
end process;
q<=q_temp;
end;
模块三:seg7_1是数码管译码器,将计数器的4位输出接为其输入信号,即可在输出端得到对应的十进制数的数码管信号。
library ieee;
use ;
entity seg7_1 is
port(
a:in std_logic_vector(3 downto 0);
b:out std_logic_vector(6 downto 0)
);
end seg7_1;
architecture arch of seg7_1 is
begin
process(a)
begin
case a is
when "0000"=>b<="1111110";
when "0001"=>b<="0110000";
when "0010"=>b<="1101101";
when "0011"=>b<="1111001";
when "0100"=>b<="0110011";
when "0101"=>b<="1011011";
when "0110"=>b<="1011111";
when "0111"=>b<="1110000";
when "1000"=>b<="1111111";
when "1001"=>b<="1111011";
when others=>b<="0000000";
end case;
end process;
end;
连接图如下:
②:仿真波形图
③:波形图分析
由仿真波形图可以看出,输入的时钟信号经过分频器后产生了周期为输入12倍的时钟信号,然后进行了上升沿有效的从0~9的10进制计数,每个计数数字都对应一个7位输出来控制数码管。同时此电路还具有同步高电平复位的功能。
③故障及问题分析
一开始发现仿真之后计数器输出和数码管输出都全是0,仔细检测后发现是因为没有使用总线进行连接,使用总线后解决了问题。
实验四:用VHDL设计与实现相关电路
一:实验要求
①:用VHDL实现6个数码管的串行扫描,让6个数码管显示不同的数字,仿真并验证功能,并下载到实验板测试。
②:实现数码管的滚动显示(选做)
二:报告内容
①:实验四模块端口说明
每个数码管对应不同的数字显示
每个数字对应一个6位输出来控制不同数码管
0~5计数
②:VHDL代码
library ieee;
use ;
use ;
entity shumaguan is
port (
clk:in std_logic;
control_out:out std_logic_vector(5 downto 0); //管脚控制
seg:out std_logic_vector(6 downto 0) // 数码管显示
);
end shumaguan;
architecture a of shumaguan is
signal control:std_logic_