久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于FPGA的交通燈控制器設計

時間:2019-05-15 11:07:55下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《基于FPGA的交通燈控制器設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《基于FPGA的交通燈控制器設計》。

第一篇:基于FPGA的交通燈控制器設計

數字系統課程設計

基于FPGA的交通控制燈設計

姓名:

學號:

班級:

摘要

隨著社會的發展,城市規模的不斷擴大,城市交通成為制約城市發展的一大因素。人口和汽車日益增長,市區交通也日益擁擠,人們的安全問題當然也日益重要。因此,紅綠交通信號燈成為交管部門管理交通的重要工具之一。有了交通燈,人們的安全出行也有了很大的保障。自從交通燈誕生以來,其內部的電路控制系統就不斷的被改進,設計方法也開始多種多樣,從而使交通燈顯得更加智能化。尤其是近幾年來,隨著電子與計算機技術的飛速發展,電子電路分析和設計方法有了很大的改進,電子設計自動化也已經成為現代電子系統中不可或缺的工具和手段,這些都為交通燈控制系統的設計提供了一定的技術基礎。本課程設計運用erilog HDL語言描述交通控制器,通過狀態機計數法,實現設計所要求的交通燈控制及時間顯示,并最后進行了軟件實現,達到了系統要求的功能。

設計原理

1.1設計要求

設計一個交通控制器,用LED顯示燈表示交通狀態,并以7段數碼顯示器顯示當前狀態剩余秒數 主干道綠燈亮時,支干道紅燈亮;反之亦然,二者交替允許通行,主干道每次放行35s,支干道每次放行25s。每次由綠燈變為紅燈的過程中,亮光的黃燈作為過渡,黃燈的時間為5s。能進行特殊狀態顯示,特殊狀態時東西、南北路口均顯示紅燈狀態。用LED燈顯示倒計時,并且能實現總體清零功能,計數器由初始狀態開始計數,對應狀態的顯示燈亮。能實現特殊狀態的功能顯示,1.2設計思路和原理

本次設計是針對十字路口,進行南北和東西直行情況下交通燈控制。設定東西方向為主干道方向,根據交通燈的亮的規則,在初始狀態下四個方向的都為紅燈亮啟,進入正常工作狀態后,當主干道上綠燈亮時,支干道上紅燈亮,持續35S后,主干道和支干道上的黃燈都亮啟,持續5S后,主干道上紅燈亮啟,支干道上綠燈亮啟持續25S,之后主干道和支干道上的黃燈都亮啟5s,一個循環完成。循環往復的直行這個過程。其過程如下圖所示:

0s主干道方向25s綠燈亮30s紅燈亮黃燈亮65s支干道方向0s紅燈亮35s綠燈亮黃燈亮60s65s

圖1.交通燈點亮時間控制說明

1.3實現方法

本次采用文本編輯法,即利用Verilog HDL語言描述交通控制器,通過狀態機計數法,實現設計所要求的交通燈控制及時間顯示。設計中用兩組紅黃綠LED模擬兩個方向上的交通燈,用4個7段數碼管分別顯示兩個方向上的交通燈剩余時間,控制時鐘由試驗箱上頻率信號提供。

Verilog HDL程序設計

2.1整體設計

根據上章設計原理,交通燈控制的關鍵是各個狀態之間的轉換和進行適當的時間延時,根據狀態機的設計規范,本次設計了三個狀態之間的循環轉化,其真值表及狀態轉化圖如下所示:

狀狀00狀狀00狀狀10狀狀11狀狀01狀狀01狀狀11狀狀10狀狀狀狀狀狀狀狀狀狀001狀狀狀狀狀010狀狀狀狀狀100狀狀狀狀狀010狀狀狀狀狀狀狀狀狀狀100狀狀狀狀狀010狀狀狀狀狀001狀狀狀狀狀010

圖2.交通燈控制狀態轉化

說明:該狀態圖為交通燈在正常情況下的狀態轉化圖,進入控制后,狀態00時主干道綠燈及支干道紅燈亮起,進入狀態01后兩路黃燈亮起,狀態11時主干道紅燈及支干道綠燈亮起。進入10狀態兩路黃燈亮起。結束一個循環,從00狀態重新開始循環。

為實現控制與顯示的功能,需要設計交通燈點亮順序控制程序,倒數計時程序,七段數碼管顯示程序,數碼管顯示掃描程序,其系統結構圖如下所示:

holdrst狀狀狀狀1Hz狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀clk1KHz狀狀狀狀狀狀狀1Hz狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀 圖3.交通燈控制系統結構圖

其中rst為復位信號,clk為時鐘信號,hold為特殊情況控制信號,輸入hold時兩個方向紅燈無條件亮起。

2.2 具體設計

根據整體設計要求,編寫各個功能部分Verilog HDL程序,設置各輸入輸出變量說明如下 clk: 為計數時鐘; qclk:為掃描顯示時鐘;

en: 使能信號,為1 的話,則控制器開始工作; rst: 復位信號,為1的話,控制及技術回到初始狀態;

hoid:特殊情況控制信號,為1的話,則兩個方向無條件顯示為紅燈;

light1: 控制主干道方向四盞燈的亮滅;其中,light1[0]~light[2],分別控制主干道方向的 綠燈、黃燈和紅燈;

light2: 控制支干道方向四盞燈的亮滅;其中,light2[0] ~ light2[2],分別控制支干道方向的 綠燈、黃燈和紅燈;

num1: 用于主干道方向燈的時間顯示,8 位,可驅動兩個數碼管; num2: 用于支干道方向燈的時間顯示,8 位,可驅動兩個數碼管; counter:用于數碼管的譯碼輸出; st1,st2:數碼管掃描信號。輸入輸出及中間變量設置如下:

module traffic(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output[7:0] num1,num2;output[6:0]counter;output[2:0] light1,light2;reg tim1,tim2,st1,st2;reg[1:0]state1,state2,ste;reg[2:0]light1,light2;reg[3:0]num;reg[6:0]counter;reg[7:0] num1,num2;reg[7:0] red1,red2,green1,green2,yellow1,yellow2;

1.二極管點亮控制

該部分程序的作用是根據計數器的計數值控制發光二極管的亮、滅,以及輸出倒計時數值給七段數碼管的譯碼電路。此外,當檢測到特殊情況(hold=‘1’)發生時,無條件點亮紅燈的二極管,當檢測到復位信號,兩個方向計數與控制回復到00狀態。因為主、支干道兩個方向二極管點亮的順序與延遲時間不同,顧編寫兩個獨立的部分來控制,具體程序如下: 1)主干道方向 always @(posedge clk)begin

if(rst)//復位與特殊情況控制

begin light1<=3'b001;num1<=green1;end else if(hold)begin light1<=3'b100;num1<=green1;end else if(en)

begin //使能有效開始控制計數

if(!tim1)//

begin //主干道交通燈點亮控制

tim1<=1;

case(state1)

2'b00:begin num1<=green1;light1<=3'b001;state1<=2'b01;end

2'b01:begin num1<=yellow1;light1<=3'b010;state1<=2'b11;end

2'b11:begin num1<=red1;light1<=3'b100;state1<=2'b10;end

2'b10:begin num1<=yellow1;light1<=3'b010;state1<=2'b00;end

default:light1<=3'b100;

endcase

end 2)支干道方向

always @(posedge clk)begin

if(rst)//復位與特殊情況控制

begin

light2<=3'b100;

num2<=red2;

end

else if(hold)

begin

light2<=3'b100;

num2<=red2;

end

else if(en)

begin

if(!tim2)

begin

tim2<=1;

case(state1)

2'b00:begin num2<=red2;light2<=3'b100;state2<=2'b01;end

2'b01:begin num2<=yellow1;light2<=3'b010;state2<=2'b11;end

2'b11:begin num2<=green2;light2<=3'b001;state2<=2'b10;end

2'b10:begin num2<=yellow2;light2<=3'b010;state2<=2'b00;end

default:light2<=3'b100;

endcase

end

2.倒數計時

該部分程序完成二極管發光時延的計數,并將計數結果送到數碼管顯示電路,每切換到一個狀態,計數器的初值都被重置,以實現不同顏色二極管不同的時延要求。本次設計直接用邏輯運算完成2位十進制數的計數,未采用分位器的設計。因為主、支干道上計數器的結構完全相同,顧只列出一路的程序,其具體程序如下所示:

always @(posedge clk)begin else begin //倒數計時

if(num1>0)

if(num1[3:0]==0)

begin

num1[3:0]<=4'b1001;

num1[7:4]<=num1[7:4]-1;

end

else num1[3:0]<=num1[3:0]-1;

if(num1==1)tim1<=0;

end

end

else

begin

light1<=3'b010;

num1=2'b00;

tim1<=0;

end end

3.數碼管的譯碼及掃描顯示

該段程序主要完成4個7段數碼管的譯碼顯示及掃描,使系統能正常顯示主、支干道兩個方向上的剩余時間。譯碼的時鐘頻率要低,為Hz級。掃描的時鐘頻率要高,最低不得小于人眼分辨頻率50Hz,具體程序如下所示: always @(posedge qclk)begin //數碼管掃描

if(rst1)

begin

st1=0;

st2=0;

end else

begin

case({st2,st1})

2'b00:begin num<=num1[3:0];{st2,st1}<=2'b01;end

2'b01:begin num<=num1[7:4];{st2,st1}<=2'b10;end

2'b10:begin num<=num2[3:0];{st2,st1}<=2'b11;end

2'b11:begin num<=num2[7:4];{st2,st1}<=2'b00;end

endcase

end end always @(posedge qclk)begin //數碼管譯碼顯示 case(num)4'b0000: counter<=7'b0111111;//0 4'b0001: counter<=7'b0000110;//1 4'b0010: counter<=7'b1011011;//2 4'b0011: counter<=7'b1001111;//3 4'b0100: counter<=7'b1100110;//4 4'b0101: counter<=7'b1101101;//5 4'b0110: counter<=7'b1111101;//6 4'b0111: counter<=7'b0000111;//7 4'b1000: counter<=7'b1111111;//8 4'b1001: counter<=7'b1101111;//9 default: counter<=7'b0111111;//0 endcase end endmodule 總體程序見程序清單所示

仿真與硬件調試

3.1 波形仿真

在QuartursⅡ軟件下創建工程,新建編輯設計文件,將程序輸入,整體編譯后,新建波形仿真文件。設置仿真時間,時鐘周期,輸入輸出端口,進行波形仿真。具體仿真波形圖及說明如下所示: 仿真截止時間:100us; 時鐘:clk 1us,qclk 0.1us 1.正常工作時波形仿真圖

圖4.正常工作時波形仿真圖

圖形說明

波形仿真主要完成了控制與計數以及數碼管顯示的波形圖。en為低電品時,計數器置初值,高電平時開始正??刂婆c計數??刂瓢l光二極管首次輸出為“light1=001,light2=100”,表示主干道路綠燈亮,支桿道路紅燈亮,計數器num1和num2從“00110101”開始遞減計數,計數至“00000000”時,進入下一個狀態,控制輸出量為light=010,light2=010,表示主、支干道黃燈均亮起,計數器num1和num2從“00000101”開始計數遞減,計數至”00000000”時進入下一個狀態,light=100,light2=001,表示主干道路紅燈亮,支桿道路綠燈亮。Counter根據num1,num2變化隨時鐘上升沿輸出譯碼后的數據。由于屏幕顯示大小有限,未仿真出一個完整周期。

2.特殊情況仿真波形

圖5.特殊情況仿真波形

圖形說明

當hold輸入高電平時,在時鐘上升沿的控制下,light 1與light2被強制置位為”100”,表示兩路紅燈均亮起

3.復位情況仿真波形

圖6.復位情況仿真波形

圖形說明

當rst輸入高電平時,在時鐘上升沿控制下,計數與控制都回到00狀態,即light1=001,light2=100,計數器num1和num2從“00110101”開始遞減計數。3.2 硬件調試

完成時序仿真確認無誤后,進行實驗箱管腳設置,注意設置完成后一定要再進行一次全局仿真,使程序真正對應于硬件輸出輸出。具體連接說明如下所示

輸入變量:rst、clk、qclk、hold、en 其中en,hold,rst接”0-1”撥碼開關,以穩定的輸出可變化的電平。計數時鐘clk接實驗箱上1Hz時鐘,掃描顯示時鐘qclk接125Khz時鐘。

輸出變量:light1[2:0]、light2[2:0]、counter[6:0]、st1、st2 其中light1[0]、light2[0]分別接綠色的發光二極管;light1[1]、light2[1] 分別接黃色的發光二極管;light1[2]、light2[2]分別接紅色的發光二極管。counter[0]~counter[6],分別接七段數碼管的a~f,st1、st2分別接試驗箱上”4-16”譯碼器的低兩位。

完成接線后將程序燒寫到芯片上,開始功能調試。分辨改變使能信號,復位信號以及特殊情況信號,觀察數碼管以及發光二級管情況。

程序清單

module traffic(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output[7:0] num1,num2;output[6:0]counter;output[2:0] light1,light2;reg tim1,tim2,st1,st2;reg[1:0]state1,state2,ste;reg[2:0]light1,light2;reg[3:0]num;reg[6:0]counter;reg[7:0] num1,num2;reg[7:0] red1,red2,green1,green2,yellow1,yellow2;

always @(en)if(!en)begin //設置計數初值 green1<=8'b00110101;red1<=8'b00100101;yellow1<=8'b00000101;green2<=8'b00100101;red2<=8'b00110101;yellow2<=8'b00000101;end

always @(posedge clk)begin if(rst)//復位與特殊情況控制

begin

light1<=3'b001;num1<=green1;

end else if(hold)

begin

light1<=3'b100;

num1<=green1;

end

else if(en)

begin //使能有效開始控制計數

if(!tim1)//開始控制

begin //主干道交通燈點亮控制

tim1<=1;

case(state1)

2'b00:begin num1<=green1;light1<=3'b001;state1<=2'b01;end

2'b01:begin num1<=yellow1;light1<=3'b010;state1<=2'b11;end

2'b11:begin num1<=red1;light1<=3'b100;state1<=2'b10;end

2'b10:begin num1<=yellow1;light1<=3'b010;state1<=2'b00;end

default:light1<=3'b100;

endcase

end

else

begin //倒數計時

if(num1>0)

if(num1[3:0]==0)

begin

num1[3:0]<=4'b1001;

num1[7:4]<=num1[7:4]-1;

end

else num1[3:0]<=num1[3:0]-1;

if(num1==1)tim1<=0;

end

end

else

begin

light1<=3'b010;

num1=2'b00;

tim1<=0;

end

end

always @(posedge clk)begin

if(rst)//復位與特殊情況控制

begin

light2<=3'b100;

num2<=red2;

end

else if(hold)

begin

light2<=3'b100;

num2<=red2;

end

else if(en)

begin

if(!tim2)

begin

tim2<=1;

case(state1)

2'b00:begin num2<=red2;light2<=3'b100;state2<=2'b01;end

2'b01:begin num2<=yellow1;light2<=3'b010;state2<=2'b11;end

2'b11:begin num2<=green2;light2<=3'b001;state2<=2'b10;end

2'b10:begin num2<=yellow2;light2<=3'b010;state2<=2'b00;end

default:light2<=3'b100;

endcase

end

else

begin //倒數計時

if(num2>0)

if(num2[3:0]==0)

begin

num2[3:0]<=4'b1001;

num2[7:4]<=num2[7:4]-1;

end

else num2[3:0]<=num2[3:0]-1;

if(num2==1)tim2<=0;

end

end

else

begin

tim2<=0;

state2<=2'b00;

light2<=3'b010;

end

end

always @(posedge qclk)begin //數碼管掃描

if(rst1)

begin

st1=0;

st2=0;

end else

begin

case({st2,st1})

2'b00:begin num<=num1[3:0];{st2,st1}<=2'b01;end

2'b01:begin num<=num1[7:4];{st2,st1}<=2'b10;end

2'b10:begin num<=num2[3:0];{st2,st1}<=2'b11;end

2'b11:begin num<=num2[7:4];{st2,st1}<=2'b00;end

endcase

end end always @(posedge qclk)begin //數碼管譯碼顯示 case(num)4'b0000: counter<=7'b0111111;//0 4'b0001: counter<=7'b0000110;//1 4'b0010: counter<=7'b1011011;//2 4'b0011: counter<=7'b1001111;//3 4'b0100: counter<=7'b1100110;//4 4'b0101: counter<=7'b1101101;//5 4'b0110: counter<=7'b1111101;//6 4'b0111: counter<=7'b0000111;//7 4'b1000: counter<=7'b1111111;//8 4'b1001: counter<=7'b1101111;//9 default: counter<=7'b0111111;//0 endcase end endmodule

總結

在設計中采用V erilog HDL語言設計交通燈控制系統, 借助其功能強大的語言結構, 簡明的代碼描述復雜控制邏輯設計, 與工藝無關特性, 在提高工作效率的同時達到求解目的, 并可以通過V erilog HDL 語言的綜合工具進行相應硬件電路生成, 具有傳統邏輯設計方法所無法比擬的優越性。

在設計過程中,覺得最難的部分是波形仿真部分,雖然程序編譯通過但仿真出不了正確的波形,不是計數器無法正常計數,就是控制輸出無法進入到下一個狀態,每次出現問題就必須返回重新修改程序。實踐證明,在編寫一個較復雜的程序時,一開始一定要畫流程圖,弄清楚各個功能及實現它們的邏輯算法,做到心中有數后在開始下筆寫編寫程序。在編寫的時候要尤其要注意語言的規范,如本次設計中編寫的V erilog在Quartus8.1中可以正常生成時序圖,而在低版本的軟件中卻無法生成,原因就是語言使用不規范,在解決這個問題時我總結了一些經驗,首先程序要邏輯清晰,簡潔明了,避免不必要的嵌套與條用,其次要適當地給程序加上注解文字,提高可讀性,以方便之后的程序出錯時進行查找,最后充分利用仿真軟件提供的各項編譯工具與報錯消息,按圖索驥,有方向的完成程序調試。

完成仿真后進行,進行試驗箱上的硬件調試,該步驟主要是要求細心,按照引腳清單,逐一完成連線,本次設計用到兩個時鐘輸入,注意一定要選擇合適頻率的時鐘,以便達到期望的效果。注意觀察實物的現象,看是否滿足設計要求,不滿足時檢查是硬件問題還是程序問題,如果是程序問題,在修改完之后必須要重新編譯,重新燒入。不斷排查錯誤,直至達到滿意的效果。

通過這次課程設計,熟悉了簡單EDA設計的整個流程,加深了對Verilog HDL硬件描述語言的理解,提高了動手能力,并且鍛煉了自己的耐心,收獲頗豐,我會把在本次課程設計中學到的東西應用到今后的工作學習中。

參考資料

[1] 夏宇聞.復雜數字電路與系統的V erilog HDL設計技術 [M ].北京: 北京航空航天大學出版社, 1998 [2] 郭梯云.移動通信[M ].西安: 西安電子科技大學出版社, 1995 [3] [法]M ichelMouly, M arie Bernadet te Pautet1GSM 數字移動通信系統[M ].駱健霞, 顧龍信, 徐云霄譯.北京: 電子工業出版社, 1996 [4] 張毅剛, 喬立巖.虛擬儀器軟件開發環境L abW indow s?CV I 610 編程指南[M ].北京: 機械工業出版社, 2002 [5] 劉國權.GSM 手機的測試[J ].中國無線電管理, 2003 [6] 俞定玖, 劉湘慧.GSM 數字蜂窩移動交換系統測試[J ].電信科學, 2000 [7] 張明.V erilog HDL 實用教程[M ].成都: 電子科技大學出版社, 1999 [8] Hyde D C.Bucknell Handbook on V erilog HDL 1Computer Science Department, Bucknell U niversity L ew is burg, 1995 [9] 康華光.電子技術基礎(數字部分)[M ].北京: 高等教育出版社, 1988

第二篇:基于FPGA的(帶有緊急情況處理的)交通燈控制器的設計.

學號成績 評語

《現代數字系統設計》課程論文

題目基于FPGA的(帶有緊急情況處理的交通燈控制器的設計 作者班級

院別信息與通信工程專業電子信息工程完成時間 2011年5月12日 目錄 1 概述(2 1.1 交通燈控制器的簡介(2 1.2論文主要完成的工作(2 2 系統硬件設計(2 2.1系統設計方案(2 2.2 主控模塊(3 2.2.1 FPGA簡介(3 2.2.2 主控芯片ACEX1K 系列的EP1K10TC100-3的介紹:(4 2.3 顯示模塊(4 2.3.1 發光二極管簡介(4 2.3.2 八段數碼管簡介:(4 3 系統軟件設計(5

3.1 軟件整體設計(5 3.2 控制模塊(6 3.2.1 交通燈狀態機、倒計時(6 3.2.2 交通燈主要模塊的狀態機及倒計時的流程圖(PFD(7 3.3 顯示模塊(8 4 系統測試與總結(9 4.1 系統測試結果(9 4.2本次設計的心得體會(9 參考文獻(10 附錄(11 1.控制模塊源程序(11 2.顯示模塊源程序(13 1 概述

1.1 交通燈控制器的簡介

如今是個現代化的社會,交通燈在日常生活中起著至關重要的作用。交通燈是城市交通監管系統的做要組成部分,為管理交通工具和行人的動向,保障道路安全通暢的一類固定不動的必不可少的工具。在今天,交通燈控制器安裝在各個路口上,它成為疏通交通最常見最有效的手段。

基于FPGA的交通燈設計方法具有設計的靈活性,易于修改,設計周期短等縱多優點。隨著設計語言、電子設計自動化和FPGA期間的不斷發展,基于FPGA 期間 的不斷完善和發展。在不遠的將來。由FPGA設計的產品將越來越普遍。而此次交通燈控制器的設計采用基于Verilog HDL語言和FPGA的方法來實現所要求的功能。

1.2論文主要完成的工作

設計一個交通燈控制器,模擬現實生活中的交通燈,并能對緊急情況作出處理。對系統進行模塊劃分、定義各模塊的具體功能。再用Verilog HDL語言編寫程序實現各個模塊應有的功能。

創建頂層文件,搭建電路,下載到FPGA芯片中。調試并觀察結果。

詳細介紹本次設計過程中所涉及的硬件、軟件原理及各個模塊的設計方式。深刻體會設計過程中所思,所想,所學。撰寫心得體會。2 系統硬件設計 2.1系統設計方案

利用狀態機來實現對交通燈的控制,對十字路口的紅、綠、黃和左拐燈進行控制,并通過數碼管進行顯示倒計時。

系統方案圖如下圖(1所示: 圖(1交通燈控制

2.頂層原理框圖如圖(2所示: 圖(2頂層原理系統圖 2.2 主控模塊 2.2.1 FPGA 簡介

FPGA ,即現場可編程門陣列,它是在GAL、PAL、CPLD 燈可編程期間的基礎上發展的產物。它是作為專門繼承領域中的一種半定制電路而出現的,既解決了頂置電路的不足,又克服了原有可編程邏輯門電路數有限的缺點。FPGA 采用了邏輯單元陣列LCA 這樣一個新概念,內部包括可配置模塊CLB、輸出輸入模塊IOB R1Y G1R2 L G2 L2 A 方向

B 方向 紅綠燈顯示 控制 模 塊 倒計時 譯 碼 器 譯碼 顯 示

和內部連線三個部分。

FPGA的基本特點有:1.采用FPGA設計ASIC電路,用戶不需要投片生產就可以得到合適的芯片。2.FPGA可做其它全定制或半定制ASIC電路的中試樣片。

3.FPGA內部有I/O引腳。

4.FPGA是ASIC電路中設計周期最短、開發費用最低、風險最小的器件之一。

5.FPGA采用高速CHMOS工藝,功耗低,可與CMOS、TTL 兼容。可以說,FPGA芯片是小批量系統提高集成度、可靠性的最佳選擇。

2.2.2 主控芯片ACEX1K 系列的EP1K10TC100-3的介紹: ACEX 系列是當今Altera CPLD 中應用前景最好的器件系列之一[1,2],該系列的FPGA 由邏輯陣列塊LAB(Logic array block、嵌入式陣列塊EAB(embedded array block、快速互聯以及IO 單元構成,每個邏輯陣列塊包含8 個邏輯單元LE(logic element和一個局部互聯。每個邏輯單元則由一個4 輸入查找表(LUT、一個可編程觸發器、快速進位鏈、級連鏈組成,多個LAB 和多個EAB 則可通過快速通道互相連接[3]。EAB 是ACEX 系列器件在結構設計上的一個重要部件,他是輸入端口和輸出端口都帶有觸發器的一種靈活的RAM 塊,其主要功能是實現一些規模不太大的 FIFO、ROM、RAM 和雙端口RAM 等。

2.3 顯示模塊 2.3.1 發光二極管簡介

發光二極管,它是半導體二極管的一種,可以把電能轉化成光能;常簡寫為LED。發光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。當給發光二極管加上正向電壓后,從P區注入到N區的空穴和由N區注入到P 區的電子,在PN結附近數微米內分別與N區的電子和P區的空穴復合,產生自發輻射的熒光。不同的半導體材料中電子和空穴所處的能量狀態不同。當電子和空穴復合時釋放出的能量多少不同,釋放出的能量越多,則發出的光的波長越短。由鎵(Ga與砷(AS、磷(P的

化合物制成的二極管,當電子與空穴復合時能輻射出可見光,因而可以用來制成發光二極管。在電路及儀器中作為指示燈,或者組成文字或數字顯示。磷砷化鎵二極管發紅光,磷化鎵二極管發綠光,碳化硅二極管發黃光。

2.3.2 八段數碼管簡介: 數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極管單元(多一個小數點顯示;按能顯示多少個“8”可分為1位、2位、4位等等數碼管;按發光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(COM的數碼管。共陽數碼管在應用時應將公共極COM接到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字

段就不亮。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(COM的數碼管。共陰數碼管在應用時應將公共極COM接到地線GND上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。數碼管可以采用動態方式也可以采用靜態方式驅動。系統軟件設計 3.1 軟件整體設計 頂層文件圖下圖(3所示:

圖(3交通燈頂層文件圖 3.2 控制模塊

3.2.1 交通燈狀態機、倒計時

1.狀態機:用兩個進程分別控制兩個方向的交通燈。引入有限狀態機控制交通燈 的狀態轉化,即綠燈->黃燈->左拐燈->紅燈。復位時紅燈亮。

2.倒計時:用兩個減法計數器實現倒計時,當某個剩余時間減到0則切換狀態。各個狀態交通燈保持的時間分配:A向紅、黃、綠、左拐燈分別為 50S,5S,40S,15S, A向紅、黃、綠、左拐燈分別為65S,5S,30S,15S。

3.緊急情況:當有救護車或者其它一些情況時,救護車或特定車輛需優先通過十 字路口,此時交通等的狀態為:A,B方向都為紅燈亮,并且剩余時間 為20s.交通燈狀態機及倒計時模塊如下圖(4所示:

CLK 同步時鐘1HZ 用于準確及時 EN 使能信號

EMERGE 緊急信號有車輛需優先通過十字路口 LAMPA 0~3分別控制A方向的左拐、綠、黃和紅燈 LAMPB 0~3分別控制B方向的左拐、綠、黃和紅燈 ACOUNT 用于A方向的時間顯示,驅動兩個數碼管 BCOUNT 用于B方向的時間顯示

圖(4交通燈控制模塊圖

3.2.2 交通燈主要模塊的狀態機及倒計時的流程圖(PFD 主要模塊流程圖如下圖(5所示: 圖(5交通燈控制模塊PFD 圖 開始 是否使能? 設定定時時間和 方式 有無緊急情況?

A,B 方向都紅燈亮起 計時時間到30S A 方向綠燈亮40S ,接著黃燈亮5S ,再接著左拐燈亮15,然后黃燈亮5S ,同時 B 方向一直是紅燈亮65S B 方向綠燈亮30S ,接著黃燈亮5S ,再接著左拐燈亮15,然后黃燈亮5S ,同時B 方向一直是紅燈亮55S 結束

回到初態,A ,B 方向都紅燈亮,都顯示為00 有 是 否 無 是 否

3.3 顯示模塊

7位數碼管采用動態掃描顯示,經位選信號譯碼后選擇一位數碼管,段暄信號為A、B、C、D、E、F、G。

位選掃描模塊圖如下圖(6所示: CLK 時鐘信號 1KHz 用于控制后面的譯碼顯示模塊使用動態掃描方式顯示SEL 選擇信號

圖(6位選掃描模塊圖

段選掃描模塊圖如下圖(7所示: ACOUNT 用于A方向的時間顯示 BCOUNT 用于B方向的時間顯示 SEL 位選信號

OUT 輸出信號用來控制數碼管所顯示的字符

圖(7段選掃描模塊圖

顯示譯碼模塊圖如下圖(8所示: OUT 控制數碼管所顯示的字符 A,B,C,D,E,F,G 驅動八段數碼管顯示

圖(8顯示譯碼模塊圖 4 系統測試與總結 4.1 系統測試結果

由于交通燈這個設計仿真的結果不是很一目了然,再就是本人對仿真軟件的了解不夠,不能消除毛刺,影響觀瞻。所以我就沒有吧實驗仿真圖截下來,我在設計過程中,也通過仿真驗證了實驗結果的正確性。為了得到確定的結果,我把該頂層文件所組成的原理圖文件下載到FPGA芯片和正確搭建電路后,就可以觀察到交通等預期的結果了。

復位時紅燈全亮,復位后相應燈亮的次序和相應的剩余時間都十分準確。剛啟動時,A方向綠燈亮40S,接著黃燈亮5S,再接著左拐燈亮15,然后黃燈亮5S,同時B方向一直是紅燈亮65S。再是,B方向綠燈亮30S,接著黃燈亮5S,再接著左拐燈亮15,然后黃燈亮5S,同時B方向一直是紅燈亮55S。之后就一直重復以上行為。完全模擬了現實生活中的十字路口的交通燈。

擴展的功能情況為:不論何時,只要有緊急情況出現時,交通燈A,B方向都是紅燈亮起,并且倒計時20S。使其能正常通過十字路口。20S過后交通燈回到正常狀態。

4.2本次設計的心得體會

通過一個學期EDA的學習,我學到了很多東西。一直以來,我對各種變成都有濃厚的興趣。而此次EDA的課程不僅要求學習者有一定的編程能力,還需要有一定 的硬件實驗的動手能力。EDA課程吸引我最大的地方在于,它不僅可以仿真,而且還可以下載到FPGA芯片中看到實實在在的效果。當看到自己的學習成果的那一刻的滿足感最能激勵我的學習熱情。

跟著老師認真學習了一學期的EDA課程,我真的受益匪淺。老師幽默的,認真負責的實踐性強的教學工作,不僅使我編程能力有了一定的提高,實踐動手能力有了很大的提升。我學會了怎樣有效地調試電路,準確分析問題所在,得到正確的解決方法。在此次設計過程中,我認真編寫了所有模塊的程序,經調試無誤后,創建頂層原理圖文件。再下載到FPGA中并正確搭建電路。本來我所設計的交通燈控制器是沒有緊急情況處理功能的,但我覺得一個成熟的交通燈控制器應該要有此項功能。因此為了更好的達到設計目的。我修改了控制模塊的程序,添加了此項功能。在文檔的編寫過程中,我學會了獨立摸索,不斷進步,精益求精。我認真思考,怎樣才能把文檔寫得更加規范,更加符合設計要求。我不斷地添加新內容,如繪制頂層原理圖,最主要模塊的即控制模塊的程序流程圖,使自己的設計思路更加容易被理解。

當然在這門課程的學習和設計過程中,我也發現了自己的一些不足。例如,對仿真軟件的學習不夠,我雖然做了仿真,但是效果不理想,有很多毛刺,還有一段時間的延時。我會在將來的學習過程中加以改正。

EDA的設計是很靈活的,如果你要想增加一些功能或者是修改須實現的功能,只需要修改相關的源程序或原理圖即可。隨著設計語言、電子設計自動化和FPGA期間的不斷發展,基于FPGA期間的不斷完善和發展。我相信,在不遠的將來。由FPGA設計的產品將越來越普遍。

本課程雖然結束了,但是這種使用的技能將仍然存在我的學習,工作生活中。我相信,這是一種很實用的技能。我以后還會不斷強化這種技能。希望可以基于FPGA設計出更多更實用的東西。

參考文獻

[1]王金明《數字系統設計與Verilog HDl》(第四版電子工業出版社 2011

年1月

[2]湖南理工學院實驗室《專業實驗輔導教材》 2010年10月 附錄

1.控制模塊源程序 /* 信號定義 CLK 同步時鐘 EN 使能信號

LAMPA 0~3分別控制A方向的左拐、綠、黃和紅燈 LAMPB 0~3分別控制B方向的左拐、綠、黃和紅燈 ACOUNT 用于A方向的時間顯示,驅動兩個數碼管 BCOUNT 用于B方向的時間顯示 */ module traffic(CLK, EN, LAMPA,EMERGE, LAMPB, ACOUNT, BCOUNT;output[7:0] ACOUNT, BCOUNT;output[3:0] LAMPA, LAMPB;input CLK, EN,EMERGE;//EMERGE信號模擬緊急情況,如有救護車要通過十字路口

reg[3:0] LAMPA, LAMPB;reg[7:0] numa, numb;// 剩余時間 reg tempa, tempb;// 切換狀態

reg[2:0] counta, countb;// 狀態量

reg[7:0] ared, ayellow, agreen, aleft, // 保持時間 bred, byellow, bgreen, bleft;assign ACOUNT = numa;assign BCOUNT = numb;/**************** 設置燈的計數初值 ****************/ always @(EN begin if(!EN begin ared <= 8'h55;ayellow <= 8'h5;agreen <= 8'h40;aleft <= 8'h15;bred <= 8'h65;byellow <= 8'h5;bgreen <= 8'h30;bleft <= 8'h15;end end /**************************** 控制A方向燈*************************/ always @(posedge CLK begin

if(EN // 正常情況 if(EMERGE//緊急情況 counta <=5;else //無緊急情況的正常運行狀態 begin if(!tempa // 切換狀態 begin tempa <= 1;case(counta // 控制亮燈的順序

0: begin numa<=agreen;LAMPA<=2;counta<=1;end 1: begin numa<=ayellow;LAMPA<=4;counta<=2;end 2: begin numa<=aleft;LAMPA<=1;counta<=3;end 3: begin numa<=ayellow;LAMPA<=4;counta<=4;end 4: begin numa<=ared;LAMPA<=8;counta<=0;end 5: begin LAMPA <= 8;numa<=8'h20;counta<=0;end // 緊急情況時,A,B向都紅燈亮,并且持續時間都為20s,時間到轉為正常情況

default: LAMPA <= 8;// 紅燈亮 endcase end

else // 倒計時 begin if(numa > 1 if(numa[3:0] == 0 begin numa[3:0] <= 4'b1001;numa[7:4] <= numa[7:4]1;if(numa == 2 tempa <= 0;end end else // 返回初態 begin LAMPA <= 4'b1000;counta <= 0;tempa <= 0;end end /*************************** 控制B方向的燈 ************************/ always @(posedge CLK

begin if(EN if(EMERGE//緊急情況 countb=5;else //無緊急情況的正常運行狀態 begin if(!tempb begin tempb <= 1;case(countb // 控制亮燈的順序

0: begin numb<=bred;LAMPB<=8;countb<=1;end 1: begin numb<=bgreen;LAMPB<=2;countb<=2;end 2: begin numb<=byellow;LAMPB<=4;countb<=3;end 3: begin numb<=bleft;LAMPB<=1;countb<=4;end 4: begin numb<=byellow;LAMPB<=4;countb<=0;end 5: begin LAMPB <= 8;numb<=8'h20;countb<=0;end //緊急情況時, A,B方向都紅燈亮,并且持續時間都為20s,時間到轉為正常情況

default: LAMPA <= 8;// 紅燈亮 endcase

end else begin // 倒計時 if(numb > 1 if(numb[3:0] == 0 begin numb[3:0] <= 4'b1001;numb[7:4] <= numb[7:4]1;if(numb == 2 tempb <= 0;end end else begin LAMPB <= 4'b1000;countb <= 0;tempb <= 0;end end endmodule

2.顯示模塊源程序(1位選掃描模塊源程序: /*四進制計數器*/ module count4(clk, out;input clk;output[1:0] out;reg[1:0] out;always @(posedge clk begin if(out == 3 out <= 0;else out <= out + 1;end Y1 endmodule(2段選掃描模塊源程序: /*行為描述的16選4段選*/ module mux16_4(out,ACOUNT,BCOUNT,sel;

output[3:0] out;reg[3:0] out;input[7:0] ACOUNT;input[7:0] BCOUNT;input[1:0] sel;always @(ACOUNT or BCOUNT or sel case(sel 2'b00: out<=ACOUNT[7:4];2'b01: out<=ACOUNT[3:0];2'b10: out<=BCOUNT[7:4];2'b11: out<=BCOUNT[3:0];default out<=1'bx;endcase endmodule(3顯示譯碼模塊源程序: /*數碼管顯示電路*/ module decode4_7(a,b,c,d,e,f,g,out;input[3:0] out;output reg a,b,c,d,e,f,g;

always @(* begin case(out 4'd0:{a,b,c,d,e,f,g}=7'b1111110;4'd1:{a,b,c,d,e,f,g}=7'b0110000;4'd2:{a,b,c,d,e,f,g}=7'b1101101;4'd3:{a,b,c,d,e,f,g}=7'b1111001;4'd4:{a,b,c,d,e,f,g}=7'b0110011;4'd5:{a,b,c,d,e,f,g}=7'b1011011;4'd6:{a,b,c,d,e,f,g}=7'b1011111;4'd7:{a,b,c,d,e,f,g}=7'b1110000;4'd8:{a,b,c,d,e,f,g}=7'b1111110;4'd9:{a,b,c,d,e,f,g}=7'b1111011;default:{a,b,c,d,e,f,g}=7'b1111110;endcase end endmodule

第三篇:交通燈控制器設計實驗報告

設計性實驗項目名稱

交通燈控制器設計

實驗項目學時:3學時

實驗要求:■ 必修

□ 選修

一、實驗目的

1、學習與日常生活相關且較復雜數字系統設計;

2、進一步熟悉EDA實驗裝置和QuartusⅡ軟件的使用方法;

3、學習二進制碼到BCD碼的轉換;

4、學習有限狀態機的設計應用。

二、實驗原理

交通燈的顯示有很多方式,如十字路口、丁字路口等,而對于同一個路口又 有很多不同的顯示要求,比如十字路口,車輛如果只要東西和南北方向通行就很 簡單,而如果車子可以左右轉彎的通行就比較復雜,本實驗僅針對最簡單的南北 和東西直行的情況。

要完成本實驗,首先必須了解交通路燈的燃滅規律。本實驗需要用到實驗箱上交通燈模塊中的發光二極管,即紅、黃、綠各三個。依人們的交通常規,“紅燈停,綠燈行,黃燈提醒”。其交通燈的燃滅規律為:初始態是兩個路口的紅燈全亮之后,主干道的綠燈亮,鄉間道路的紅燈亮,主干道方向通車,延時一段時間后,鄉間公路來車,主干道綠燈滅,黃燈開始閃爍。閃爍若干次后,主干道紅燈亮,而同時鄉間公路的綠燈亮,延時一段時間后,鄉間公路的綠燈滅,黃燈開始閃爍。閃爍若干次后,再切換到主干道方向,重復上述過程。

三、設計要求

完成設計、仿真、調試、下載、硬件測試等環節,在型EDA實驗裝置上實現一個由一條主干道和一條鄉間公路的匯合點形成的十字交叉路口的交通燈控制器功能,具體要求如下:

1、有MR(主紅)、MY(主黃)、MG(主綠)、CR(鄉紅)、CY(鄉黃)、CG(鄉綠)六盞交通燈需要控制;

2、交通燈由綠轉紅前有4秒亮黃燈的間隔時間,由紅轉綠沒有間隔時間;

3、鄉間公路右側各埋有一個串連傳感器,當有車輛準備通過鄉間公路時,發出請求信號S=1,其余時間S=0;

4、平時系統停留在主干道通行(MGCR)狀態,一旦S信號有效,經主道黃燈4秒(MYCR)狀態后轉入鄉間公路通行(MRCG)狀態,但要保證主干道通行大于一分鐘后才能轉換;

5、一旦S信號消失,系統脫離MRCG狀態,即經鄉道黃燈4秒(MRCY)狀態進入MGCR狀態,即使S信號一直有效,MRCG狀態也不得長于20秒鐘;

6、控制對象除紅綠燈之外,還包括分別在主干道和鄉間公路各有一個兩位十進制倒計時數碼管顯示。

四、主要儀器設備

1、微機

1臺

1套 1套

2、QuartusII集成開發軟件

3、EDA實驗裝置

五、實驗步驟

源程序:

0module traffic1(clk,s,rst,light,sel,SG);input clk,s,rst;output[5:0] light;

output [2:0]sel;output [7:0]SG;reg [5:0] light;reg clk1;reg [3:0] sc;

reg [7:0] count;reg [7:0] cnt,SG;reg [2:0] sel;reg [3:0]a;parameter s0=0,s1=1,s2=2,s3=3,s4=4;initial

begin

count<=8'b01100000;

light<=6'b001100;

sc=s0;

end

always @(posedge clk)begin

begin cnt=cnt+1;

if(cnt==100)begin clk1=1'b1;cnt=0;end

else clk1=1'b0;//100分頻,CLK為數碼管掃描頻率,CLK1為計數頻率

if(sel<7)sel=sel+1;else sel=6;

end //sel為數碼管選擇

begin

case(sel)

7: a=count[3:0];//0數碼管為個位

6: a=count[7:4];//1數碼管為十位

default: a=0;

endcase

case(a)

0:SG<=8'b00111111;1:SG<=8'b00000110;

2:SG<=8'b01011011;3:SG<=8'b01001111;

4:SG<=8'b01100110;5:SG<=8'b01101101;

6:SG<=8'b01111101;7:SG<=8'b00000111;

8:SG<=8'b01111111;9:SG<=8'b01101111;//8段譯碼值

default: SG=8'b11111111;

endcase

end end

always @(posedge clk1 or negedge rst)

begin

if(!rst)begin count = 0;sc=s3;end // count set nothing but else 0

else if(count == 0)

begin

case(sc)

s0: begin if(s)begin sc=s1;count = 8'b00000100;light=6'b010100;end else begin sc=s4;count = 8'b01100000;end end

s1: begin count = 8'b00100000;sc=s2;light=6'b100001;end

s2: begin count = 8'b00000100;sc=s3;light=6'b100010;end

s3: begin count = 8'b01100000;sc=s0;light=6'b001100;end

s4: begin if(s)begin sc=s1;count = 8'b00000100;light=6'b010100;end else begin sc = s4;count = 8'b01100000;light<=6'b001100;end end

default begin sc=s0;count =8'h60;end

endcase

end

else

if((sc==s2)&(s==0))begin sc=s3;count = 8'b00000100;light=6'b100010;end

else

if((sc==s4)&(s==1))begin sc=s1;count = 8'b00000100;light=6'b010100;end

else if(count[3:0] == 4'b0000)

begin count = count-7;end

else

begin count = count-1;end

end endmodule

管腳鎖定

六、波形仿真

主干道60s倒計時

s信號為1時

七、實驗心得

通過本次實驗,讓我進一步掌握了軟件quartus的使用流程,一開始實驗時波形仿真是正確的,但在電路上實現時主干道亮黃燈時,鄉間道路亮的是綠燈,這顯然是不對的,后面發現是管腳鎖定時出現了問題,改回來之后就沒問題了。管腳鎖定時不能粗心,不然很容易出現問題。

曹軍

生醫121班

第四篇:FPGA交通燈實驗報告

交通燈實驗報告

一,實驗目的

實現兩路信號燈交替亮起,并利用兩組數碼管分別對兩路信號進行倒計時。

兩路信號時間分別為:

V:綠燈(30S)

H:紅燈(35S)

黃燈(5s)

綠燈(30S)

紅燈(35S)

黃燈(5S)

二,實驗步驟 建立工程

可在歡迎界面點擊“Creat a New Project”進入工程建立界面,亦可關閉歡迎界面,點擊菜單欄的“File”,點擊“New Project Wizard”進入建立工程界面。右側為建立工程界面,點擊next。

在此界面選定工程路徑,取好工程名,點擊“Next”。注意:路徑中不能有中文,工程名也不能有中文。

一直點擊“Next”進入器件設置界面,DE2-70開發工具采用的Cyclone II系列的EP2C70F896C6N。點擊“Finish”,完成工程建立

1、點擊“File”,點擊“New” 選擇“Verilog HDL” 2,點擊主界面工具欄中的 選擇“Verilog HDL”

3、寫入verilog代碼。

代碼如下:

module traffic(Clk_50M,Rst,LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V,Seg7_VH,Seg7_VL,Seg7_HH,Seg7_HL,led15);

parameter S1=2'b00;parameter S2=2'b01;parameter S3=2'b10;parameter S4=2'b11;

input Clk_50M,Rst;output LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V;output[6:0] Seg7_VH,Seg7_VL,Seg7_HH,Seg7_HL;output led15;

//-------------div for 1Hz-------start----reg Clk_1Hz;reg [31:0] Cnt_1Hz;always@(posedge Clk_50M or negedge Rst)begin

if(!Rst)

begin

Cnt_1Hz<=1;

Clk_1Hz<=1;

end

else

begin

if(Cnt_1Hz>=25000000)

end

//-----------div for 1Hz------end-----reg[7:0] Cnt30,CntH,CntV,CntHH,CntVV;reg[7:0] CntDis,CntDiss;//-----------30 counter and seg7---start---reg LedR_H,LedG_H,LedY_H,LedR_V,LedG_V,LedY_V;always@(posedge Clk_1Hz)begin

end

begin

Cnt_1Hz<=1;

Clk_1Hz<=~Clk_1Hz;

end

else

Cnt_1Hz<=Cnt_1Hz + 1;

case(state)

S1:

end

always@(posedge Clk_1Hz)begin

case(stateV)

S1:

begin

if(CntV>=30)

CntV<=1;

begin

if(Cnt30>=30)

Cnt30<=1;

else

Cnt30<=Cnt30 + 1;S2:

begin

if(Cnt30>=5)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;S3:

begin

if(Cnt30>=30)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;S4:

begin

if(Cnt30>=5)

Cnt30<=1;end

else

Cnt30<=Cnt30 + 1;end endcase

else

CntV<=CntV + 1;

S2: begin

end

end if(CntV>=5)

CntV<=1;

else

CntV<=CntV + 1;end

S3:

begin

if(CntV>=35)

CntV<=1;

else

CntV<=CntV + 1;end endcase always@(posedge Clk_1Hz)begin

case(stateH)

S1:

end

always@(negedge Clk_50M or negedge Rst)begin

begin

if(CntH>=35)

CntH<=1;

else

CntH<=CntH + 1;

S2:

begin

if(CntH>=30)

CntH<=1;end

else

CntH<=CntH + 1;end

S3:

begin

if(CntH>=5)

CntH<=1;

else

CntH<=CntH + 1;end endcase

case(state)

S1:

end always@(negedge Clk_50M or negedge Rst)begin

case(state)

S1:

end

//16進制計數器轉換為用于顯示的10進制計數器 always@(posedge Clk_50M)begin

if(CntVV>29)

begin

CntDis[7:4]<=3;

CntDis[3:0]<=CntVV20;end else if(CntVV>9)begin

CntDis[7:4]<=1;

CntDis[3:0]<=CntVV30;end else if(CntHH>19)begin

CntDiss[7:4]<=2;

CntDiss[3:0]<=CntHH10;end else

CntDiss<=CntHH;

end

if(Cnt30>=5)

end

end S3:

begin

state<=S4;

end S4:

begin

state<=S1;

end default:

begin

state<=S1;

end endcase

if(Cnt30>=30)

if(Cnt30>=5)always@(posedge Clk_1Hz)begin

case(state)

S1:

end

always@(posedge Clk_50M or negedge Rst)

begin

stateH<=S1;

stateV<=S1;

end S2:

begin

stateH<=S1;

stateV<=S2;

end S3:

begin

stateH<=S2;

stateV<=S3;

end S4:

begin

stateH<=S3;

stateV<=S3;

end endcase begin

if(!Rst)

begin

LedR_H<=0;

else

LedG_H<=0;LedY_H<=0;

LedR_V<=0;

LedG_V<=0;end LedY_V<=0;

begin

case(state)

S1:

begin

LedR_H<=1;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=1;LedY_V<=0;end

S2:

begin

LedR_H<=1;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=0;LedY_V<=1;end

S3:

begin

LedR_H<=0;LedG_H<=1;LedY_H<=0;LedR_V<=1;LedG_V<=0;LedY_V<=0;end

S4:

begin LedR_H<=0;LedG_H<=0;

end

LedY_H<=1;LedR_V<=1;LedG_V<=0;LedY_V<=0;end

default:

begin

end LedR_H<=0;LedG_H<=0;LedY_H<=0;LedR_V<=0;LedG_V<=0;LedY_V<=0;end

endcase assign led15=state;

endmodule

module SEG7_LUT input [3:0] iDIG;output reg

always @(iDIG)begin

case(iDIG)4'h1: oSEG = 7'b1111001;

//---t----4'h2: oSEG = 7'b0100100;// |

| 4'h3: oSEG = 7'b0110000;// lt rt

4'h4: oSEG = 7'b0011001;// |

| 4'h5: oSEG = 7'b0010010;//---m----4'h6: oSEG = 7'b0000010;// |

| 4'h7: oSEG = 7'b1111000;// lb rb 4'h8: oSEG = 7'b0000000;// |

| 4'h9: oSEG = 7'b0011000;//---b----4'ha: oSEG = 7'b0001000;4'hb: oSEG = 7'b0000011;4'hc: oSEG = 7'b1000110;4'hd: oSEG = 7'b0100001;4'he: oSEG = 7'b0000110;[6:0] oSEG;[6:0] oSEG;(oSEG,iDIG);

end

4'hf: oSEG = 7'b0001110;4'h0: oSEG = 7'b1000000;endcase endmodule 編譯工程

保存文件,將文件放在所建工程所在路徑下 點擊主界面工具欄中的圖標

也可點擊菜單欄中“Processing”,點擊“Start Compilation”

分配關鍵如下:

Clk_50M Input PIN_AD15 LedG_H Output PIN_AD9 LedG_V Output PIN_AJ6 LedR_H Output PIN_AJ7)LedR_V Output PIN_AJ5)LedY_H Output PIN_AD8 LedY_V Output PIN_AK5 Rst Input PIN_AA23 Seg7_HH[6] Output PIN_G1 Seg7_HH[5] Output PIN_H3 Seg7_HH[4] Output PIN_H2 Seg7_HH[3] Output PIN_H1 Seg7_HH[2] Output PIN_J2 Seg7_HH[1] Output PIN_J1 Seg7_HH[0] Output PIN_K3

Seg7_HL[6] Seg7_HL[5] Seg7_HL[4] Seg7_HL[3] Seg7_HL[2] Seg7_HL[1] Seg7_HL[0] Seg7_VH[6] Seg7_VH[5] Seg7_VH[4] Seg7_VH[3] Seg7_VH[2] Seg7_VH[1] Seg7_VH[0] Seg7_VL[6] Seg7_VL[5] Seg7_VL[4] Seg7_VL[3] Seg7_VL[2] Seg7_VL[1] Seg7_VL[0] Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output PIN_E4 PIN_F4 PIN_G4 PIN_H8 PIN_H7 PIN_H4 PIN_H6 PIN_AD17 PIN_AF17 7 PIN_AE17 7 PIN_AG16 PIN_AF16 7 PIN_AE16 7 PIN_AG13 PIN_AD12 PIN_AD11 PIN_AF10 8 PIN_AD10 PIN_AH9 8 PIN_AF9 8 PIN_AE8 8

燒寫代碼

在管腳配置完成后,還需將工程再編譯一次,成功后,點擊主界面工具欄中的亦可點擊主界面菜單欄中“Tools”,點擊“Programmer”

進入代碼燒寫界面后,點擊“Start”,當“Progress”為100%時,表示燒寫完成,這是可觀察DE2-70板現象

獲得預期的效果,兩組的信號紅黃綠燈交替切換,計數器記為零時信號燈切換狀態,紅燈35s,黃燈5s,綠燈30s。三,心得體會

通過本次實驗初步了解了EDA技術,熟悉了FPGA開發板的開發流程,鍛煉了動手能力。

第五篇:基于FPGA的交通燈控制電路的設計

編號:

EDA技術

實訓(論文)說明書

題 目: 交通燈控制電路的設計 院(系): 信息與通信學院 專 業: 電子信息工程 學生姓名: 學 號: 指導教師:

2013年月日

桂林電子科技大學實訓說明書用紙

摘要

EDA工具對于電子設計人員來說極其重要,它可以在電子設計的各個階段、層次進行計算機模擬驗證,確保設計的準確性,可縮短設計周期,降低設計成本。交通燈可以實現十字路口紅綠燈的自動控制?;贔PGA的交通燈設計系統具有可靠性強、實時快速擦寫、運算速度高、故障率低、電路簡單,且體積小的特點。本設計采用的是Altera公司CycloneII系列的EP2C5T144芯片作為核心最小系統,它可以方便嵌入到實際的交通燈應用系統中,可以完成簡單的邏輯控制、數據采集、信號處理、數學計算等功能;使用QuartusII軟件作為開發平臺;采用自頂向下的設計思路對系統進行模塊化設計和綜合,并通過波形仿真和硬件實現兩種方式實現并驗證交通燈的功能。關鍵詞:交通燈、EDA、FPGA

桂林電子科技大學實訓說明書用紙

Abstract EDA tools for electronic design personnel is very important, it can be in the electronic design of each stage, levels of computer simulation verification, to ensure the accuracy of the design, can shorten the design cycle, reduce design cost.The traffic light can realize intersection traffic light automatic control.Based on the FPGA of traffic light design system has the reliability, real-time fast operation speed is high, integration.it, low failure rate, circuit is simple, and the characteristics of small volume.This design USES is Altera company CycloneII series of EP2C5T144 chip as the core minimum system, it can be convenient to the actual traffic lights embedded application system, can complete the simple logic control, data acquisition, signal processing, mathematical calculations, etc;Use QuartusII software as a development platform, Using the top-down design idea of system modular design and comprehensive, and through the waveform simulation and hardware realization two ways to realize and verify the function of the traffic lights.Key words: traffic lights;EDA;FPGA

桂林電子科技大學實訓說明書用紙

引言

“EDA技術”是一門實踐性和實用性都很強的課程,學習的目的在于應用。本設計實訓是配合“EDA技術”課堂教學的一個重要的實踐教學環節,在本課程設計指導書中列舉了一些常用的小型設計系統,旨在起到鞏固課堂和書本上所學知識,加強綜合能力,提高系統設計水平,啟發創新思想的效果。

1設計任務與要求

1.1本綜合設計實訓任務的內容和要求

① 用EDA實訓儀上的4只八段數碼管分別顯示道路東西和南北通行和禁止的倒計時時間。

② 能設置道路東西和南北兩側通行和禁止的倒計時時間,最大設置時間為99秒,最小設置時間為1秒。

③ 交通燈用紅、綠、黃三種發光二極管(LED)顯示控制的結果。④ 紅、綠、黃燈顯示的次序應符合實際交通道路控制的要求。系統概述及設計原理

2.1 系統的主要功能

交通燈控制電路是用于城市交通疏導的管理系統,它是現代城市交通監控指揮系統中最重要的組成部分。交通信號燈指揮著人和各種車輛的安全運行,實現紅、黃、綠燈的自動指揮是城鄉交通管理現代化的重要課題。在城鄉街道的十字交叉路口,為了保證交通秩序和行人安全,一般在每條道路上各有一組紅、黃、綠交通信號燈。交通燈控制電路自動控制十字路口兩組紅、黃、綠交通燈的狀態轉換,指揮各種車輛和行人安全通行,實現十字路口城鄉交通管理自動化。設計一個十字路口交通控制器,方向分為東南西北四個方向。東西方向的紅綠燈狀態一樣,南北方向的紅綠燈狀態一樣。每個方向上,有四盞燈,分別是左轉燈、紅燈、綠燈和黃燈。左拐燈亮表示左轉車輛可以通行;紅燈亮表示左轉和直行車輛禁行;綠燈亮表示直行車輛和右轉的車輛可以通行;黃燈亮表示左轉和直行的車輛即將禁行。

本論文簡要介紹了FPGA器件的特點和設計意義,以QuartusII軟件為開發平臺,通過VHDL硬件描述語言以及原理圖的輸入方式來設計交通燈。交通燈控制器用于自動控制十字路口交通燈和計時器。

系統的主要功能模塊方框圖如圖2-1所示

桂林電子科技大學實訓說明書用紙

圖2-1 系統主要功能模塊

2.2交通燈的設計原理

交通燈控制電路的原理框圖如圖1.3所示。其中,clkgen是分頻器,將EDA實訓儀主板提供的20MHz的主頻經20000000分頻后,得到電路所需的1Hz(秒)時鐘。Cnt10de(兩個)是十進制減法計數器,產生道路東西和南北通行和禁止的倒計時時間。Contr是控制電路,控制整個系統的工作。控制器接收倒計時的結果,當倒計時歸0時,改變電路的控制模式,輸出倒計時的初始時間和交通燈亮滅控制信號。

圖2-2 交通燈控制電路的原理圖 系統各個模塊的的設計與仿真

3.1 分頻器模塊的設計

由于采用的FPGA芯片的時鐘頻率是50MHz,需要將其分頻為1Hz。該模塊即是實現50M的分頻,將頻率變為1Hz的脈沖波,從而得到周期為1s的脈沖波。如果要真正的實現分頻50M,在仿真結果圖中是很難觀察的,甚至是沒有辦法驗證的,故在仿真過程中,將分頻的倍數變小,變為20分頻,這樣從圖中可容易的得到并驗證對時鐘輸入信號的20分頻,如圖3-1所示,Reset是復位信號,CLK_50MHz是輸入時鐘頻率,CLK_1Hz是

桂林電子科技大學實訓說明書用紙

輸出時鐘頻率,從圖中可以看出,輸出頻率CLK_1Hz確實是輸入時鐘頻率CLK_50MHz的20分頻。

圖3-1 分頻器仿真圖

3.2 狀態控制模塊的設計

狀態控制模塊根據輸入CLK_1Hz的脈沖信號輸出不同的STATUS值,下游的模塊依據STATUS的值來確定紅綠燈的狀態;于此同時對倒計時信號賦初值。在狀態控制模塊仿真圖中,輸入信號CLK是一個頻率為1Hz的時鐘脈沖信號,RESET是復位信號;輸出信號STATUS是狀態轉換信號,控制著下游交通信號燈顯示模塊的顯示情況;LOAD_EW、LOAD_SN是東西、南北方向倒計時開始控制信號,DJS_EW、DJS_SN是東西、南北方向倒計時間信號。其仿真結果圖如圖3-2所示,由圖可得,STATUS共有000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6)共6個狀態,80s為紅燈和左轉燈的倒計時間,45s為綠燈的倒計時間,5s是黃燈的倒計時間,和狀態轉換表的狀態一致。

圖3-2 狀態控制模塊仿真圖

3.3 交通燈信號燈顯示模塊的設計

交通信號燈顯示模塊根據輸入的STATUS信號,輸出對應的紅綠黃燈信號,并直接驅動交通信號燈的亮滅。在交通燈信號燈顯示模塊程序仿真結果圖中,STATUS為輸入信號,而它依賴于狀態控制模塊產生的信號STATUS信號,一種六種狀態,依次為000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6);EW_LRGY(8位)是東西方向上交通信號燈的狀態,SN_LRGY(8位)是南北方向上交通信號燈的狀態,依次為左轉、紅、綠、黃,對應著EW_LRGY、SN_LRGY的前四位,‘1’表示點亮,‘0’表示熄滅,后四位均為0,表示四個燈的陰極接負極。例如,在STATUS為001時,對應的是東西方向紅燈亮,南北方向綠燈亮,仿真結果符合預期,完全正確。其仿真圖如3-3所示:

圖3-3 信號燈顯示模塊仿真圖

桂林電子科技大學實訓說明書用紙

3.4東西方向倒計時模塊設計

東西方向倒計時模塊用來接收狀態控制模塊的輸出并作為初值,每檢測到一個CLK脈沖信號,就進行減一動作,最后把減一結果輸出。在該模塊仿真圖中,CLK為1Hz的輸入信號,LOAD_EW為計數器的裝載信號,當其為高電平時,將輸入信號DJS_EW_IN的值裝載到計數器中,并開始進行減一操作,每遇一個CLK脈沖,進行一次減一操作,并將結果輸出,由于輸入的時鐘頻率是1Hz,所以顯示的時間間隔是1s,與現實生活中的時間保持一致。其仿真結果如圖3-4所示,由圖可得,該模塊首先將80秒的倒計時信號裝載進去,并進行減一操作。

圖3-4 東西方向倒計時仿真圖

3.5 南北方向倒計時模塊設計

南北方向倒計時模塊用來接收狀態控制模塊的輸出并作為初值,每檢測到一個CLK脈沖信號,就進行減一動作,最后把減一結果輸出。在該模塊仿真圖中,CLK為1Hz的輸入信號,LOAD_SN為計數器的裝載信號,當其為高電平時,將輸入信號DJS_SN_IN的值裝載到計數器中,并開始進行減一操作,每遇一個CLK脈沖,進行一次減一操作,并將結果輸出,由于輸入的時鐘頻率是1Hz,所以顯示的時間間隔是1s,與現實生活中的時間保持一致。其仿真結果如圖3-5所示,由圖可得,該模塊將45秒的倒計時信號裝載進去,并進行減一操作。

圖3-5南北方向倒計時仿真圖

3.6 譯碼模塊設計

譯碼模塊程序用來將輸入的兩位倒計時數值,分解成兩個整形數值,以此供后面的譯碼顯示模塊譯碼顯示。在譯碼程序TO_8421_BCD模塊仿真圖中,DJS_EW_OUT,DJS_SN_OUT為上一倒計時模塊的輸出信號,其范圍在0~80,所有倒計時的范圍都包含其內;DJS_EW_OUT_SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW為輸出信號,其范圍為0~9,代表了各個方向的倒計時的十位和個位,且數碼管所有顯示數字的范圍均在其內。例如圖中DJS_EW_OUT的值不斷變化,相應的依次將其分解為十位(DJS_EW_OUT_SW)和個位(DJS_EW_OUT_GW),并依次遞減,仿真結果符合預期,完全正確。仿真結果如圖3-6所示:

桂林電子科技大學實訓說明書用紙

圖3-6 譯碼仿真結果圖

3.7 譯碼顯示模塊設計

譯碼顯示模塊將上一模塊譯碼模塊輸出的四個一位數譯碼成相對應的七位數碼管段碼,完成倒計時的譯碼和顯示。在譯碼顯示模塊仿真圖中,DJS_ EW_OUT_ SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW是四位的輸入信號,也是上一模塊TO_8421_BCD的輸出信號,它們的范圍為數字0~9,DJS_EW_ OUT_SW1,DJS_ EW_ OUT_GW1,DJS_SN_OUT_SW1,DJS_SN_OUT_GW1對應的是相應的七位數碼管顯示段碼的值。圖中輸出信號的值隨著輸入信號的變化而相應的變化,例如DJS_EW_OUT_SW為7,DJS_EW_OUT_GW為5時,DJS_EW_OUT_SW1為00000111(a、b、c、d、e、f、g依次對應著1110000,最高位的0表示是數碼管的類型是共陰的),表示數碼管顯示7,DJS_EW_OUT_GW1為01101101,表示數碼管顯示5。仿真完全正確,符合預期。其仿真結果如圖3-7所示:

圖3-7 譯碼顯示模塊仿真圖

3.8 頂層文件模塊設計

頂層設計采用VHDL語言描述方式實現,并在工程文件仿真過后通過工具菜單自動生成原理圖文件,從而是設計原理更加清晰明朗。

在頂層設計VHDL描述中,共包含7個元件,分別是:

1、分頻器模塊,2、狀態控制模塊,3、交通信號燈顯示模塊,4、東西方向倒計時模塊設計,5、南北方向倒計時模塊設計,6、譯碼模塊設計,7、譯碼顯示模塊設計。這7個模塊經過程序設計、編譯仿真,結果均能夠達到設計要求。最后在頂層設計中,通過元件例化語句將這7個模塊連接起來,生成頂層文件。在頂層設計中,RESET是復位信號,輸入的時鐘頻率CLK是50MHz,經過分頻50M的分頻器后,變為頻率為1Hz的時鐘信號,周期為1s,用此時鐘信號來控制整個系統的步調,與現實生活中交通燈的步調保持一致。EW_LRGY、SN_LRGY分別為東西和南北方向上交通信號燈的狀態,EW_DJS_DISPLAY、SN_DJS_DISPLAY為東西

桂林電子科技大學實訓說明書用紙

和南北方向紅綠燈倒計時間。另外,所有的數碼管和二極管均為共陰極顯示。例如,在EW_LRGY為01000000(即東西方向紅燈亮)、SN_LRGY為10000000(即南北方向左轉燈亮)時,EW_DJS_DISPLAY的前八位表示倒計時的十位,后八位表示倒計時的個位;圖中EW_DJS_DISPLAY的前八位都是00000111表示7,后八位01111101表示6,后八位01101101表示5,后八位01100110表示4;SN_DJS_DISPLAY的前八位是01001111表示3,后八位01011011表示2,后八位00000110表示1,后八位00111111表示0,以上表明紅綠燈和倒計時時間顯示符合預期。仿真結果如圖3-8所示:

圖3-8 頂層文件波形仿真圖 實訓心得體會

本次EDA技術實訓的交通燈采用的是Altera公司CycloneII系列的EP2C5T144芯片作為核心最小系統,它可以方便嵌入到實際的交通燈應用系統中,可以完成簡單的邏輯控制、數據采集、信號處理、數學計算等功能;使用QuartusII軟件作為開發平臺;采用自頂向下的設計思路對系統進行模塊化設計和綜合,并通過波形仿真和硬件實現兩種方式實現并驗證交通燈的功能。為期兩周的實訓,我利用網絡和圖書館的有效資源,搜集并下載了大量的關于用FPGA做交通燈設計的資料;然后精心閱讀,在老師的指導督促下,并和周圍同學進行有效學習和溝通,最終確定了自己的設計方案;最后按照既定的設計方案,通過努力有步驟的實現了交通燈的設計。

通過此次實訓設計,讓我加深了FPGA的理解,更加熟練了VHDL語言,同時,我深深體會到了通過FPGA設計數字電路的方便、簡潔的特點,這讓我相信未來數字電路的應用必將更加廣泛。另外,我還體會到:從事開發設計工作,一定要保持個勤奮、踏實、嚴謹的工作態度,這樣才能更好的完成工作。最后,我覺得在交通燈控制系統設計中還可以增加一些實用功能,如:

1、針對弱視或色盲人群進行聲音提示;

2、在遇到突發狀況時,可以將紅綠燈改為緊急模式控制;

3、當有119、120等特種車輛通過時,系統可轉為特種車放行,其他車輛禁行。

但是這次實訓我也發現自己的很多不足之處。在設計過程中我發現自己考慮問題很不全面,自己的專業知識掌握的很不牢靠,所掌握的編程語句還不夠,很多程序都看不懂,我希望自己的這些不足之處能在今后的工作和學習中得到改善。而且,通過這次實訓,我懂得了學習的重要性,學會了堅持和努力,這將為以后的學習做出了最好的榜樣!

桂林電子科技大學實訓說明書用紙

還有光有知識是不行的,還得有能力、有技術,單干也是不行的,要適當尋求合作,那樣才能更好實現我們的價值。在實訓中及社會上,我們都要懂得虛心地向別人學習,即使你覺得自己很厲害,但總有一些東西你是不懂的,所以不懂要多向別人請教,這樣才能更好地提高自己的水平和能力,全面發展自己。

桂林電子科技大學實訓說明書用紙

謝 辭

在這短短的兩周EDA實訓中,在這期間同學們都在努力學習,認真做自己各自的實訓。在此我要特別感謝各位指導老師們對我的指導,還有各位同學對我的幫助,尤其感謝老師在百忙之中抽出時間為我們講解設計原理,同時,還要感謝和我一起努力的各位同學,在他們對我的幫助很我自己的努力下,我才能順利地完成這次實訓。

這次實訓我受匪頗多,但這多是得益于老師無微不至的關心和細心的教導。在實訓中,讓我學到了不少知識,給了我一次復習學過的知識的機會,鞏固了基礎知識。也多虧同學們的無私的幫助和支持,在我無助的時候還是他們伸出他們的友愛之手,幫我渡過難關,在此我也真心的多謝他們默默的幫助。最后再次對老師們說聲:謝謝!

桂林電子科技大學實訓說明書用紙

參考文獻

[1] 潘松,黃繼業.EDA技術實用教程(第三版).北京:科學出版社,2010.1 [2] 劉江海,涂傳威,陳瑋.EDA技術課程設計.武漢:華中科技大學出版社,2009.5 [3] 夏路易.基于EDA的電子技術課程設計.北京:電子工業出版社,2009.1 [4] 王金明,周順.數字系統設計與VHDL.北京:電子工業出版社,2010.5 [5] 鄒彥,莊嚴,鄒寧.EDA技術與數字系統設計.北京:電子工業出版社,2007.4 [6] 林明權,馬維旻.VHDL數字控制系統設計范例.北京:電子工業出版社,2003.1

下載基于FPGA的交通燈控制器設計word格式文檔
下載基于FPGA的交通燈控制器設計.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    基于FPGA的彩燈控制器設計

    鄭州輕工業學院 可編程數字系統設計 題 目 學生姓名 專業班級 學 號 院 (系)指導教師 完成時間 基于FPGA的彩燈控制器的設計 張煥煥 電子信息工程10-2班 電氣信息工程學院......

    基于單片機AT89C51的交通燈控制器的設計

    2014屆本科生畢業設計分類號:TP368.1 題目:基于單片機AT89C51的交通燈控制器的設計 姓 名: 張建猛 學 號 : 2010080870 學 院: 機械與電子工程學院 專 業: 自動化 指導教師職稱: 胡......

    基于Verilog HDL的交通燈控制器設計

    目 錄 第一章設計原理 ....................................................................................................................................... 1 1......

    基于FPGA模數轉換控制器的設計

    EDA課程設計任務書 1、 設計題目:基于FPGA模數轉換控制器的設計 2、設計目的: (1) 熟悉掌握VHDL語言設計基本知識,熟練運用QuartusⅡ軟件對各單元電路進行軟件模擬、仿真; (2) 學習......

    基于FPGA的彩燈控制器設計(5篇)

    《EDA原理及應用》 課程設計報告 課題名稱: 基于數碼管顯示的彩燈控制器 院 系: 機電工程學院專 業: 電子信息工程學生姓名: 陳納爽 學生學號: 201033285123 彩燈及數碼管顯示......

    基于FPGA的乒乓球游戲機控制器設計

    遼寧科技學院本科生畢業設計(論文) 第I頁 基于FPGA的乒乓球游戲機設計 摘 要 Verilog是甚高速集成電路硬件描述語言。目前,verilog已成為許多設計自動化工具普遍采用的標準化......

    基于FPGA的智能交通燈

    設計題目: 基于FPGA的交通燈控制系統設計 專 業: 學生姓名: 學 號: 起迄日期: 2014.8.22. --2014.9.22. 指導教師: 教研室主任: 目錄 1.緒論...............................

    基于FPGA的交通燈控制系統

    基于FPGA的交通燈控制系統 摘 要:針對現實中越來越嚴重的城市交通擁堵現象,提出了一種城市十字路口 交通信號燈控制與FPGA實現的新方法。利用超高速硬件描述語言VHDL設計十字......

主站蜘蛛池模板: 精品无码人妻一区二区三区品| 久久97国产超碰青草| 国产成人精品三级在线影院| 亚洲精品无码久久久久久久| 成人亚洲区无码区在线点播| 欧美巨鞭大战丰满少妇| 日韩精品毛片无码一区到三区| 亚洲熟女乱色综合一区小说| 国产成人无码精品午夜福利a| 精品麻豆一卡2卡三卡4卡乱码| 伊人久久综合无码成人网| 亚洲国产一区二区三区亚瑟| 国产激情无码视频在线播放| 免费观看国产小粉嫩喷水| 国内精品久久久久影院薰衣草| 国产一区二区波多野结衣| 亚洲精品动漫免费二区| 亚洲国产精品无码中文字满| 国产精品综合一区二区三区| 国产欧美日韩一区二区三区| 亚洲国产福利成人一区二区| 久久亚洲精品久久国产一区二区| 国产熟妇搡bbbb搡bb七区| 女人高潮被爽到呻吟在线观看| 99久久人人爽亚洲精品美女| 欧美z0zo人禽交欧美人禽交| 人人妻人人爽人人澡av| 97人妻精品一区二区三区| av无码动漫一区二区三区精品| 日韩经典精品无码一区| 美女露出奶头扒开尿口免费网站| 国产成人精品久久一区二区三区| 亚洲一区二区无码偷拍| 亚洲理论电影在线观看| 日本一区二区在线播放| 亚洲人成77777在线播放网站| 51被公侵犯玩弄漂亮人妻| 久久精品国产曰本波多野结衣| 久久国产精品免费一区下载| 国产精品夜夜春夜夜爽久久小| 粉嫩av久久一区二区三区|