📄 weizhi.vhd
字号:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity weizhi is
port(clk1,clk2,rst:in std_logic;
sel:out std_logic_vector(2 downto 0);
led:out std_logic_vector(6 downto 0);
q:out std_logic_vector(0 to 11));
end;
architecture one of weizhi is
type jtd_st is(st0,st1,st2,st3,st4);
signal state:jtd_st;
signal sh,sl,num:std_logic_vector(3 downto 0);
signal cnt:std_logic_vector(2 downto 0);
signal y_ewsn,g_ewsn,r_ewsn:std_logic_vector(3 downto 0);
begin
process(clk1,rst)
begin
if rst='1' then state<=st0; sh<="0000";sl<="0010";
elsif rising_edge (clk1) then
case state is
when st0=>y_ewsn<="1111";g_ewsn<="0000";r_ewsn<="0000";
sl<=sl-'1';
if sl="0000" then state<=st1;sh<="0010";sl<="1001";
end if;
when st1=>y_ewsn<="0000";g_ewsn<="1100";r_ewsn<="0011";
sl<=sl-'1';
if sl="0000" then sh<=sh-'1';sl<="1001";
if sl="0000" and sh="0000" then state<=st2;sh<="0000";sl<="0010";
end if;
end if;
when st2=>y_ewsn<="1100";g_ewsn<="0000";r_ewsn<="0011";
sl<=sl-'1';
if sl="0000" then state<=st3;sh<="0010";sl<="1001";
end if;
when st3=>y_ewsn<="0000";g_ewsn<="0011";r_ewsn<="1100";
sl<=sl-'1';
if sl="0000" then sh<=sh-1;sl<="1001";
if sl="0000" and sh="0000" then state<=st4;sh<="0000";sl<="0010";
end if;
end if;
when st4=>y_ewsn<="0011";g_ewsn<="0000";r_ewsn<="1100";
sl<=sl-'1';
if sl="0000" then state<=st1;sh<="0010";sl<="1001";
end if;
end case;
end if;
end process;
q(0)<=r_ewsn(3);q(1)<=g_ewsn(3);q(2)<=y_ewsn(3);
q(3)<=r_ewsn(1);q(4)<=g_ewsn(1);q(5)<=y_ewsn(1);
q(6)<=r_ewsn(2);q(7)<=g_ewsn(2);q(8)<=y_ewsn(2);
q(9)<=r_ewsn(0);q(10)<=g_ewsn(0);q(11)<=y_ewsn(0);
process(clk2)
begin
if clk2'event and clk2='1' then
if cnt=1 or sh=0 then
cnt<="000";
else cnt<=cnt+1;
end if;
end if;
end process;
sel<=cnt;
num<=sh when cnt=1 else sl;
led<="1111110"when num=0 else
"0110000"when num=1 else
"1101101"when num=2 else
"1111001"when num=3 else
"0110011"when num=4 else
"1011011"when num=5 else
"1011111"when num=6 else
"1110000"when num=7 else
"1111111"when num=8 else
"1111011"when num=9 else
"0000000";
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -