在這個例子中,我們設計了壹個簡單的十字路口交通燈。交通燈分為東西和南北兩個方向,都是通過數碼管和指示燈來指示當前狀態。讓兩個方向的流量相等,紅燈時間45s,綠燈時間40s,黃燈時間5s。
從紅綠燈的工作機理來說,無論是東西方向還是南北方向,都是壹個減法器。計數時只需判斷紅綠燈,然後設置計數器的模值即可。
下表顯示了壹個初始狀態和四個轉換狀態。交通燈工作時,狀態會在四種狀態之間循環,整個交通燈完全按照倒計數原理設計。
當下壹個時鐘到來時,狀態當前計數值新模數值。
東西方向表示南北方向表示東西南北方向表示東西南北方向表示東西方向表示南北方向表示東西南北方向
初始0 0 45 40紅綠
1 6 1紅綠5 5紅黃
2 1 1紅色-黃色40 45綠色-紅色
3 1 6綠色紅色5 5黃色紅色
4 1 1 45 40紅綠
2.壹些程序
圖書館ieee
使用IEEE . STD _ logic _ 1164 . all;
使用IEEE . STD _ logic _ unsigned . all;
實體流量是
port(clk,urgency:in STD _ logic;
east _ west:buffer STD _ logic _ vector(7 down to 0);-東西時鐘計數
south _ north:buffer STD _ logic _ vector(7 down to 0);-南北方向的時鐘計數
led:buffer STD _ logic _ vector(5 down to 0));-交通燈
結束流量;
交通建築拱門是
。。。。。。。
端拱;
3.具體設計步驟
1)新建壹個項目,完成上述電路設計。
2)編譯電路並使用功能仿真來驗證設計。
3)管腳配置,如第壹部分所述,是為了保證VHDL代碼中的輸出端口可以使用連接到PFGA芯片上LEDR和LEDG的管腳。重新編譯項目,下載到FPGA芯片。
4)測試電路的正確性。