L
leoren_tm
Guest
Я світло Код руху, але ще є проблеми на скидання і пауза ..
PLS допоможіть мені дюйма.
Код:БІБЛІОТЕКА IEEE;
ВИКОРИСТАННЯ IEEE.std_logic_1164.all;
ENTITY trafficlight IS
PORT (
запускати, зупиняти, скидання, годинники: в std_logic;
seven_segment: OUT std_logic_vector (10 DOWNTO 0);
led_display: OUT std_logic_vector (7 DOWNTO 0));
КІНЕЦЬ trafficlight;АРХІТЕКТУРА А trafficlight IS
Тип STATE_TYPE IS (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12);
Тип STATE_TYPE2 IS (P1, P2, P3, P4);
СИГНАЛ держави: STATE_TYPE;
СИГНАЛ State2: STATE_TYPE2;
Сигнал clock_delay, clock_seconds: std_logic;BEGINПРОЦЕС (години)
VARIABLE Cnt: integer діапазоні від 0 до 4096;
BEGINЯКЩО (clock'EVENT та години = '1 ') THEN
Cnt: = Cnt 1;
IF (CNT> = 2048 і Центр <4096) THEN
clock_delay <= '1 ';ELSIF (CNT> = 4096), то
Cnt: = 0;
ELSIF (CNT <= 2047), то
clock_delay <= '0 ';
END IF;
END IF;
Завершити процес;
ПРОЦЕС (години)
VARIABLE count_to_second: INTEGER діапазоні від 0 до 50000000;
BEGINЯКЩО (clock'EVENT та години = '1 ') THEN
count_to_second: = count_to_second 1;
ЯКЩО (count_to_second> = 25000000 і count_to_second <50000000) THEN
clock_seconds <= '1 ';ELSIF (count_to_second> = 50000000), то
count_to_second: = 0;
ELSIF (count_to_second <= 25000000), то
clock_seconds <= '0 ';
END IF;
END IF;
Завершити процес;
процес (clock_delay, clock_seconds)
починати
якщо clock_seconds'event і clock_seconds = '1 ', то
справи держави
при S1 =>
Держава <= S2;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S2 =>
Держава <= S3;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S3 =>
Держава <= S4;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S4 =>
Держава <= S5;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S5 =>
Держава <= S6;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S6 =>
Держава <= S7;
led_display <= "00100010";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S7 =>
Держава <= S8;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
коли s8 =>
Держава <= S9;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
коли S9 =>
Держава <= S10;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
при S10 =>
Держава <= S11;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
при S11 =>
Держава <= S12;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
при S12 =>
Держава <= S1;
led_display <= "00010100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
кінець справі;
End If;
Наприкінці процесу;
END;
PLS допоможіть мені дюйма.
Код:БІБЛІОТЕКА IEEE;
ВИКОРИСТАННЯ IEEE.std_logic_1164.all;
ENTITY trafficlight IS
PORT (
запускати, зупиняти, скидання, годинники: в std_logic;
seven_segment: OUT std_logic_vector (10 DOWNTO 0);
led_display: OUT std_logic_vector (7 DOWNTO 0));
КІНЕЦЬ trafficlight;АРХІТЕКТУРА А trafficlight IS
Тип STATE_TYPE IS (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12);
Тип STATE_TYPE2 IS (P1, P2, P3, P4);
СИГНАЛ держави: STATE_TYPE;
СИГНАЛ State2: STATE_TYPE2;
Сигнал clock_delay, clock_seconds: std_logic;BEGINПРОЦЕС (години)
VARIABLE Cnt: integer діапазоні від 0 до 4096;
BEGINЯКЩО (clock'EVENT та години = '1 ') THEN
Cnt: = Cnt 1;
IF (CNT> = 2048 і Центр <4096) THEN
clock_delay <= '1 ';ELSIF (CNT> = 4096), то
Cnt: = 0;
ELSIF (CNT <= 2047), то
clock_delay <= '0 ';
END IF;
END IF;
Завершити процес;
ПРОЦЕС (години)
VARIABLE count_to_second: INTEGER діапазоні від 0 до 50000000;
BEGINЯКЩО (clock'EVENT та години = '1 ') THEN
count_to_second: = count_to_second 1;
ЯКЩО (count_to_second> = 25000000 і count_to_second <50000000) THEN
clock_seconds <= '1 ';ELSIF (count_to_second> = 50000000), то
count_to_second: = 0;
ELSIF (count_to_second <= 25000000), то
clock_seconds <= '0 ';
END IF;
END IF;
Завершити процес;
процес (clock_delay, clock_seconds)
починати
якщо clock_seconds'event і clock_seconds = '1 ', то
справи держави
при S1 =>
Держава <= S2;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S2 =>
Держава <= S3;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S3 =>
Держава <= S4;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S4 =>
Держава <= S5;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S5 =>
Держава <= S6;
led_display <= "00100001";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S6 =>
Держава <= S7;
led_display <= "00100010";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01000000111"; - G
коли P2 =>
State2 <= P3;
seven_segment <= "00000011011"; - O
коли P3 =>
State2 <= 4;
seven_segment <= "01001001101"; - S
коли P4 =>
State2 <= P1;
seven_segment <= "11100001110"; - T
кінець справі;
End If;
коли S7 =>
Держава <= S8;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
коли s8 =>
Держава <= S9;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
коли S9 =>
Держава <= S10;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
при S10 =>
Держава <= S11;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
при S11 =>
Держава <= S12;
led_display <= "00001100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
при S12 =>
Держава <= S1;
led_display <= "00010100";
якщо clock_delay'event і clock_delay = '1 ', то
State2 випадку є
при P1 =>
State2 <= P2; - АВСОЕРО --
seven_segment <= "01001000111"; - S
коли P2 =>
State2 <= P3;
seven_segment <= "11100001011"; - T
коли P3 =>
State2 <= 4;
seven_segment <= "01000001101"; - G
коли P4 =>
State2 <= P1;
seven_segment <= "00000011110"; - O
кінець справі;
End If;
кінець справі;
End If;
Наприкінці процесу;
END;