level 1
终究还是零
楼主
求各位会EDA的,帮我加一个计时电路进去,要用实验箱显示出来。。我做的交通灯附上我的程序。。真心救命啊
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY jiaotong IS
PORT(
clk :IN STD_LOGIC;
c1,c2,c3,c4,c5,b1,b2,b3,b4,b5:OUT STD_LOGIC;
w0,w1,w2,w3,w4 :IN STD_LOGIC;
R1,R2 :OUT STD_LOGIC;
Y1,Y2 :OUT STD_LOGIC;
G1,G2 :OUT STD_LOGIC;
reset :IN STD_LOGIC);
END jiaotong;
ARCHITECTURE a OF jiaotong IS
TYPE STATE_SPACE IS(S0,S1,S2,S3,s4,s5,s6,s7);
SIGNAL state:STATE_SPACE;
BEGIN
PROCESS(clk)
BEGIN
IF (reset='1') THEN
state<=S0;
ELSIF (clk'event and clk='1') THEN
CASE state is
WHEN s0=> IF(w0='1') THEN state<=s1;--25s
END IF;
b1<='0';IF(w0='0') THEN b1<='1';
END IF;
WHEN s1=>IF(w1='1')THEN state<=s2;--3s
END IF;
b2<='0';IF (w1='0') THEN b2<='1';
END IF;
WHEN s2=>IF (w2='1')THEN state<=s3;--35s
END IF;
b3<='0';IF (w2='0') THEN b3<='1';
END IF;
WHEN s3=>IF(w1='1')THEN state<=s4;--3s
END IF;
b2<='0';IF (w1='0') THEN b2<='1';
END IF;
WHEN s4=>IF (w3='1')THEN state<=s5;--30s
END IF;
b4<='0';IF (w3='0') THEN b4<='1';
END IF;
WHEN s5=>IF w1='1'THEN state<=s6;--3s
END IF;
b2<='0';IF (w1='0') THEN b2<='1';
END IF;
WHEN s6=>IF (w4='1')THEN state<=s7;--45s
END IF;
b5<='0';IF(w4='0') THEN b5<='1';
END IF;
WHEN s7=>IF (w1='1')THEN state<=s0;--3s
END IF;
b2<='0';IF(w1='0') THEN b2<='1';
END IF;
END CASE;
END IF;
END PROCESS;
c1<='1' when state=s0 else '0';
c2<='1' when state=s1 or state=s3 or state=s5 orstate=s7 else '0';
c3<='1' when state=s2 else '0';
c4<='1' when state=s4 else '0';
c5<='1' when state=s6 else '0';
R1<='0' when state=s0 else '1';
G1<='0' when state=s2 else'1';
Y1<='0' when state=s1 or state=s3 else'1';
R2<='0' when state=s4 else '1';
G2<='0' when state=s6 else '1';
Y2<='0' when state=s5 or state=s7 else '1';
END a;
就是要用数码管显示我的倒数计时
2014年06月10日 14点06分
1
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY jiaotong IS
PORT(
clk :IN STD_LOGIC;
c1,c2,c3,c4,c5,b1,b2,b3,b4,b5:OUT STD_LOGIC;
w0,w1,w2,w3,w4 :IN STD_LOGIC;
R1,R2 :OUT STD_LOGIC;
Y1,Y2 :OUT STD_LOGIC;
G1,G2 :OUT STD_LOGIC;
reset :IN STD_LOGIC);
END jiaotong;
ARCHITECTURE a OF jiaotong IS
TYPE STATE_SPACE IS(S0,S1,S2,S3,s4,s5,s6,s7);
SIGNAL state:STATE_SPACE;
BEGIN
PROCESS(clk)
BEGIN
IF (reset='1') THEN
state<=S0;
ELSIF (clk'event and clk='1') THEN
CASE state is
WHEN s0=> IF(w0='1') THEN state<=s1;--25s
END IF;
b1<='0';IF(w0='0') THEN b1<='1';
END IF;
WHEN s1=>IF(w1='1')THEN state<=s2;--3s
END IF;
b2<='0';IF (w1='0') THEN b2<='1';
END IF;
WHEN s2=>IF (w2='1')THEN state<=s3;--35s
END IF;
b3<='0';IF (w2='0') THEN b3<='1';
END IF;
WHEN s3=>IF(w1='1')THEN state<=s4;--3s
END IF;
b2<='0';IF (w1='0') THEN b2<='1';
END IF;
WHEN s4=>IF (w3='1')THEN state<=s5;--30s
END IF;
b4<='0';IF (w3='0') THEN b4<='1';
END IF;
WHEN s5=>IF w1='1'THEN state<=s6;--3s
END IF;
b2<='0';IF (w1='0') THEN b2<='1';
END IF;
WHEN s6=>IF (w4='1')THEN state<=s7;--45s
END IF;
b5<='0';IF(w4='0') THEN b5<='1';
END IF;
WHEN s7=>IF (w1='1')THEN state<=s0;--3s
END IF;
b2<='0';IF(w1='0') THEN b2<='1';
END IF;
END CASE;
END IF;
END PROCESS;
c1<='1' when state=s0 else '0';
c2<='1' when state=s1 or state=s3 or state=s5 orstate=s7 else '0';
c3<='1' when state=s2 else '0';
c4<='1' when state=s4 else '0';
c5<='1' when state=s6 else '0';
R1<='0' when state=s0 else '1';
G1<='0' when state=s2 else'1';
Y1<='0' when state=s1 or state=s3 else'1';
R2<='0' when state=s4 else '1';
G2<='0' when state=s6 else '1';
Y2<='0' when state=s5 or state=s7 else '1';
END a;
就是要用数码管显示我的倒数计时