L
leoren_tm
Guest
tôi có đèn giao thông code nhưng vẫn có một vấn đề về thiết lập lại và tạm dừng ..
pls giúp tôi nhập.
Mã số:Thư viện IEEE;
SỬ DỤNG ieee.std_logic_1164.ALL;
PHẬN trafficlight IS
PORT (
bắt đầu, tạm dừng, thiết lập lại, đồng hồ: trong std_logic;
seven_segment: OUT STD_LOGIC_VECTOR (10 downto 0);
led_display: OUT STD_LOGIC_VECTOR (7 downto 0));
END trafficlight;KIẾN TRÚC một OF trafficlight IS
STATE_TYPE TYPE IS (s1, s2, s3, S4, S5, S6, S7, S8, S9, S10, s11, S12);
STATE_TYPE2 TYPE IS (p1, p2, p3, P4);
TÍNHIỆU nhà nước: STATE_TYPE;
TÍNHIỆU state2: STATE_TYPE2;
tín hiệu clock_delay, clock_seconds: std_logic;BEGINQUY TRÌNH (đồng hồ)
BIẾN CNT: INTEGER RANGE 0 TO 4.096;
BEGINIF (clock'EVENT và đồng hồ = '1 ') THEN
CNT: = CNT 1;
IF (CNT> = 2048 và CNT <4.096) THEN
clock_delay <= '1 ';elsif (CNT> = 4.096) sau đó
CNT: = 0;
ELSif (CNT <= 2047) sau đó
clock_delay <= "0";
END IF;
END IF;
QUY TRÌNH END;
QUY TRÌNH (đồng hồ)
BIẾN count_to_second: INTEGER RANGE 0 TO 50.000.000;
BEGINIF (clock'EVENT và đồng hồ = '1 ') THEN
count_to_second: = count_to_second 1;
IF (> count_to_second = 25.000.000 và count_to_second <50.000.000) THEN
clock_seconds <= '1 ';elsif (count_to_second> = 50.000.000) sau đó
count_to_second: = 0;
ELSif (count_to_second <= 25.000.000) sau đó
clock_seconds <= "0";
END IF;
END IF;
QUY TRÌNH END;
quá trình (clock_delay, clock_seconds)
bắt đầu
nếu clock_seconds'event và clock_seconds = "1" sau đó
trường hợp nhà nước là
khi s1 =>
nhà nước <= s2;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi s2 =>
nhà nước <= s3;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi s3 =>
nhà nước <= S4;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi S4 =>
nhà nước <= S5;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi S5 =>
nhà nước <= S6;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi S6 =>
nhà nước <= S7;
<Led_display = "00100010";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi S7 =>
nhà nước <= S8;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi S8 =>
nhà nước <= S9;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi S9 =>
nhà nước <= S10;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi S10 =>
nhà nước <= s11;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi s11 =>
nhà nước <= S12;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi S12 =>
nhà nước <= s1;
<Led_display = "00010100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
kết thúc vụ án;
nếu kết thúc;
kết thúc quá trình;
END một;
pls giúp tôi nhập.
Mã số:Thư viện IEEE;
SỬ DỤNG ieee.std_logic_1164.ALL;
PHẬN trafficlight IS
PORT (
bắt đầu, tạm dừng, thiết lập lại, đồng hồ: trong std_logic;
seven_segment: OUT STD_LOGIC_VECTOR (10 downto 0);
led_display: OUT STD_LOGIC_VECTOR (7 downto 0));
END trafficlight;KIẾN TRÚC một OF trafficlight IS
STATE_TYPE TYPE IS (s1, s2, s3, S4, S5, S6, S7, S8, S9, S10, s11, S12);
STATE_TYPE2 TYPE IS (p1, p2, p3, P4);
TÍNHIỆU nhà nước: STATE_TYPE;
TÍNHIỆU state2: STATE_TYPE2;
tín hiệu clock_delay, clock_seconds: std_logic;BEGINQUY TRÌNH (đồng hồ)
BIẾN CNT: INTEGER RANGE 0 TO 4.096;
BEGINIF (clock'EVENT và đồng hồ = '1 ') THEN
CNT: = CNT 1;
IF (CNT> = 2048 và CNT <4.096) THEN
clock_delay <= '1 ';elsif (CNT> = 4.096) sau đó
CNT: = 0;
ELSif (CNT <= 2047) sau đó
clock_delay <= "0";
END IF;
END IF;
QUY TRÌNH END;
QUY TRÌNH (đồng hồ)
BIẾN count_to_second: INTEGER RANGE 0 TO 50.000.000;
BEGINIF (clock'EVENT và đồng hồ = '1 ') THEN
count_to_second: = count_to_second 1;
IF (> count_to_second = 25.000.000 và count_to_second <50.000.000) THEN
clock_seconds <= '1 ';elsif (count_to_second> = 50.000.000) sau đó
count_to_second: = 0;
ELSif (count_to_second <= 25.000.000) sau đó
clock_seconds <= "0";
END IF;
END IF;
QUY TRÌNH END;
quá trình (clock_delay, clock_seconds)
bắt đầu
nếu clock_seconds'event và clock_seconds = "1" sau đó
trường hợp nhà nước là
khi s1 =>
nhà nước <= s2;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi s2 =>
nhà nước <= s3;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi s3 =>
nhà nước <= S4;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi S4 =>
nhà nước <= S5;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi S5 =>
nhà nước <= S6;
<Led_display = "00100001";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi S6 =>
nhà nước <= S7;
<Led_display = "00100010";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01000000111"; - G
khi p2 =>
state2 <= p3;
seven_segment <= "00000011011"; - O
khi p3 =>
state2 <= P4;
seven_segment <= "01001001101"; - S
khi P4 =>
state2 <= p1;
<Seven_segment = "11100001110"; - t
kết thúc vụ án;
nếu kết thúc;
khi S7 =>
nhà nước <= S8;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi S8 =>
nhà nước <= S9;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi S9 =>
nhà nước <= S10;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi S10 =>
nhà nước <= s11;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi s11 =>
nhà nước <= S12;
<Led_display = "00001100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
khi S12 =>
nhà nước <= s1;
<Led_display = "00010100";
nếu clock_delay'event và clock_delay = "1" sau đó
state2 là trường hợp
khi p1 =>
state2 <= p2; - ABCDEFG -
seven_segment <= "01001000111"; - S
khi p2 =>
state2 <= p3;
<Seven_segment = "11100001011"; - t
khi p3 =>
state2 <= P4;
seven_segment <= "01000001101"; - G
khi P4 =>
state2 <= p1;
seven_segment <= "00000011110"; - O
kết thúc vụ án;
nếu kết thúc;
kết thúc vụ án;
nếu kết thúc;
kết thúc quá trình;
END một;