else next_state<=idle; end if; when s1 =>
if ms1='1' then
next_state<=s2; else next_state<=s1;
end if; when s2 =>
if ms2='1' then
next_state<=s3; next_state<=over; elsif tm='1' then else next_state<=s2;
end if;
when s3 =>
if done='1' then
next_state<=over; else next_state<=s3; end if;
if st='1' then next_state<=idle; elsif tf='0' then
if tm='0' then
next_state<=s2; else next_state<=over; end if;
when over =>
else next_state<=over; end if;
when others =>next_state<=idle;
end case; end if;
idle是空白的等待状态,s1是输入要猜的数字状态,在s2状态输入猜的数字,确定后进入s3状态,没猜对会检测还有没有时间,有时间会回到s2状态,没时间会留在over状态,猜对了也会留在over状态,发现没时间后也会进入over状态
点阵显示:
begin
if clk_scan'event and clk_scan='1' then
if led=1 then --jiong
case led_row is
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when
others
=>
led_row<=\
end case; case led_row is
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when
others
=>
elsif led=2 then --xiao
led_row<=\
end case; case led_row is
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when
others
=>
elsif led=3 then --x
led_row<=\
end case; case led_row is
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\
elsif led=4 then --kong
when others =>
led_row<=\
end case;
else
这里都是在显示特殊情况,下面是倒计时的显示:num_1是倒计时对8的取余,num_2是倒计时对8的除法运算。对应每个num_1,有num_x对应不同的点阵行的亮灯情况,这样的话使得61秒的倒计时只需要分8种情况讨论,即每一行一种情况。
num_1<=count_down rem 8; --quyu num_2<=count_down/8;
when 0=> num_x <=\when 1=> num_x <=\when 2=> num_x <=\when 3=> num_x <=\when 4=> num_x <=\when 5=> num_x <=\when 6=> num_x <=\when 7=> num_x <=\when others => num_x <=\end case; case num_2 is when 0 =>
case led_row is
when
\
=>
case num_1 is
led_row<=\
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when
others
=>
led_row<=\
end case;
when 1 =>
case led_row is
when \=> led_row<=\when
\
=>
led_row<=\
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when end case;
others
=>
led_row<=\
when 2 =>
case led_row is
when \=> led_row<=\when \=> led_row<=\when
\
=>
led_row<=\
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when
others
=>
led_row<=\
end case;
when 3 =>
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when
\
=>
case led_row is
led_row<=\
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when
others
=>
led_row<=\
end case;
when 4 =>
case led_row is
when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when \=> led_row<=\when
\
=>
led_row<=\
when \=> led_row<=\when \=> led_row<=\
相关推荐: