簡單的交通信號燈控制系統VHDL20240601_TrafficLightController

 

https://youtube.com/shorts/5IS8Gvxwax4

題目:簡單的交通信號燈控制系統

說明:

設計一個簡單的交通信號燈控制系統,該系統有三個狀態:綠燈、黃燈和紅燈。信號燈按照固定時間順序切換:綠燈 -> 黃燈 -> 紅燈 -> 綠燈。

要求:

  1. 使用有限狀態機 (FSM) 設計交通信號燈控制邏輯。
  2. 每個燈的持續時間為:
    • 綠燈:10 秒
    • 黃燈:2 秒

    • 紅燈:8 秒
  3. 輸出信號:
    • green: 綠燈信號 (1 為亮,0 為滅)
    • yellow: 黃燈信號 (1 為亮,0 為滅)
    • red: 紅燈信號 (1 為亮,0 為滅)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity VHDL20240601_TrafficLightController is

port(

clk_4M:in std_logic;

reset:in std_logic;

seg7_out:out std_logic_vector(6 downto 0);

seg7_scan:out std_logic_vector(3 downto 0):="1110";

LED_GYB:out std_logic_vector(2 downto 0):="100";

seg7_sec:out std_logic);

end VHDL20240601_TrafficLightController;

architecture aa of VHDL20240601_TrafficLightController is

signal cnt1:integer range 0 to 1999999:=0;

signal clk_sec:std_logic:='0';

type state_type is(green, yellow, red);

signal state:state_type:=green;

signal cnt2:integer range 0 to 11:=0;

begin

process(clk_4M)

begin

if rising_edge(clk_4M) then

if cnt1=1999998 then

cnt1<=0;

clk_sec<=not clk_sec;

else

cnt1<=cnt1+1;

end if;

end if;

end process;

process(reset, state, clk_sec)

begin

if reset='0' then

state<=green;

LED_GYB<="100";

cnt2<=0;

elsif rising_edge(clk_sec) then

case state is

when green =>

if cnt2=9 then

cnt2<=0;

state<=yellow;

LED_GYB<="010";

else

cnt2<=cnt2+1;

end if;

when yellow =>

if cnt2=1 then

cnt2<=0;

state<=red;

LED_GYB<="001";

else

cnt2<=cnt2+1;

end if;

when red =>

if cnt2=7 then

cnt2<=0;

state<=green;

LED_GYB<="100";

else

cnt2<=cnt2+1;

end if;

end case;

end if;

end process;

seg7_out<= "1000000"when(cnt2=0)else

"1111001"when(cnt2=1)else

"0100100"when(cnt2=2)else

"0110000"when(cnt2=3)else

"0011001"when(cnt2=4)else

"0010010"when(cnt2=5)else

"0000010"when(cnt2=6)else

"1111000"when(cnt2=7)else

"0000000"when(cnt2=8)else

"0011000"when(cnt2=9)else

"0011100"when(cnt2=10)else

"1111111";

end aa;

留言

這個網誌中的熱門文章

量測例外練習01(計算+量測)

數位電子乙級02,鍵盤掃瞄裝置