内容及要求:设计秒表,有开始键和停止键,用数码管显示时间值。
当按下开始键,计时开始,数码管实时显示秒值;
按下停止键,计时结束,数码管显示结束时的秒值;
要求学生根据题目内容,完成逻辑设计、VHDL编程、仿真、下载各步骤,并完成设计报告。
希望精通这方面的专家多帮帮我,写份设计报告出来,要用word格式。
急需啊!! 也可以把word文档直接发我邮箱里:[email protected]
我在此,先谢过了。
我写的代码,可以计时60秒。下面有我的仿真波形。至于报告嘛,我看还是你自己 写吧,毕竟学习这个东西,不能完全靠别人的啊!
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;
entity MB is
port (
start: in STD_LOGIC;
stop: in STD_LOGIC;
cp: in STD_LOGIC;
disph: out STD_LOGIC_VECTOR (6 downto 0);
displ: out STD_LOGIC_VECTOR (6 downto 0)
);
end MB;
architecture MB_arch of MB is
signal qh:std_logic_vector(2 downto 0);
signal ql:std_logic_vector(3 downto 0);
begin
p1:process(start,cp)
begin
if stop='0' then
if start='1' then
if cp'event and cp='1' then
if ql="1001" then ql<="0000";
if qh="110" then
qh<="000";
else
qh<=qh+'1';
end if;
else
ql<=ql+'1';
end if;
end if ;
end if;
end if;
end process p1;
p2: process(qh,ql)
begin
case qh is
when"000"=> disph<="0111111";
when"001"=> disph<="0000110";
when"010"=> disph<="1011011";
when"011"=> disph<="1001111";
when"100"=> disph<="1100110";
when"101"=>disph<="1101101";
when"110"=> disph<="1111101";
when others=>NULL;
end case;
case ql is
when"0000"=> displ<="0111111";
when"0001"=> displ<="0000110";
when"0010"=> displ<="1011011";
when"0011"=> displ<="1001111";
when"0100"=> displ<="1100110";
when"0101"=>displ<="1101101";
when"0110"=> displ<="1111101";
when"0111"=> displ<="0000111";
when"1000"=> displ<="1111111";
when"1001"=> displ<="1101111";
when others=>NULL;
end case;
end process p2;
end MB_arch;