基于EDA的VHDL語言設(shè)計的交通燈_第1頁
基于EDA的VHDL語言設(shè)計的交通燈_第2頁
基于EDA的VHDL語言設(shè)計的交通燈_第3頁
基于EDA的VHDL語言設(shè)計的交通燈_第4頁
基于EDA的VHDL語言設(shè)計的交通燈_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、玉林師范學院本科生課程設(shè)計論文基于Verilog HDL的RS編碼器設(shè)計院 系電子與通信工程學院專 業(yè)通信工程學 生 班 級通信111班姓 名韋仁良學 號201108402123指導(dǎo)教師單位電子與通信工程學院指導(dǎo)教師姓名陳宇寧 【摘 要】隨著社會上特別是城市中機動車輛保有量的不斷增加,在現(xiàn)代城市的日常運行控制中,車輛的交通控制越來越重要,在十字交叉路口,越來越多的使用紅綠燈進行交通指揮和管理。本文以VHDL硬件描述語言為設(shè)計手段,完成了交通信號燈控制電路的設(shè)計,其中交通信號燈控制電路的開發(fā)目的是設(shè)計一個適用于主、支干道十字交叉路口的紅黃綠交通燈的控制系統(tǒng),通過合理設(shè)計系統(tǒng)功能,使紅黃綠燈的轉(zhuǎn)換

2、有一個準確的時間間隔和轉(zhuǎn)換順序。所設(shè)計的交通信號燈控制電路經(jīng)過在Quartus 軟件下進行模擬仿真,觀察其波形,證明所設(shè)計的交通信號燈控制電路完全可以實現(xiàn)預(yù)定的功能,并有一定的實用性。【關(guān)鍵詞】 VHDL; Quartus; 交通燈【題目要求】 用有限狀態(tài)機設(shè)計一個交通燈控制器,設(shè)計要求:A路和B路,每路都有紅、黃、綠三種燈,持續(xù)時間為:紅燈45s、黃燈5s、綠燈40s。A、B路交通燈的轉(zhuǎn)換狀態(tài)是:(1)A紅、B綠 (持續(xù)時間40s);(2)A紅、B黃 (持續(xù)時間5);(3)A綠、B紅 (持續(xù)時間40s);(4)A黃、B紅 (持續(xù)時間5s);【系統(tǒng)總體設(shè)計原理】4000Hz分頻器發(fā)光二極管交通

3、燈控制器 50MHz1秒分頻器外部時鐘顯示模塊 數(shù)碼管該系統(tǒng)主要由分頻模塊fen50m_1s、控制模塊traffic_control、轉(zhuǎn)換模塊bin2bcd以及顯示模塊display電路構(gòu)成。其中分頻模塊fen50m_1s主要將系統(tǒng)輸入的基準時鐘信號轉(zhuǎn)換為1Hz的激勵信號,驅(qū)動控制模塊工作。控制模塊traffic_control根據(jù)計數(shù)情況對交通燈的亮滅及持續(xù)時間進行控制。轉(zhuǎn)換模塊bin2bcd將控制模塊設(shè)計的亮燈時間的二進制轉(zhuǎn)換為bcd碼。顯示模塊display主要將亮燈時間以倒計時的形式通過數(shù)碼顯示出來【時鐘分頻模塊】系統(tǒng)時鐘脈沖為50MHz,為滿足各個模塊脈沖需求,需要分頻成2Hz和40

4、00Hz的脈沖。 fen50m_1s模塊設(shè)計,實現(xiàn)頻率由50MHz到2Hz的轉(zhuǎn)變,達到我們需要的1s的要求,模塊如下圖: 分頻器一端口說明:clkin:輸入50MHz時鐘脈沖clkout:輸出2Hz脈沖fen50m_1s實現(xiàn)Verilog語言描述如下:module fen50m_1s(clkin,clkout); input clkin; output clkout; reg clkout; reg 24:0 q; always (posedge clkin) begin if (q=24999999) begin q=0; clkout=clkout; end else q=q+1; end

5、endmodule 編譯結(jié)果: 分頻器二fen50m_4000模塊設(shè)計,實現(xiàn)頻率由50MHz到4000Hz的轉(zhuǎn)變 分頻器二端口說明:clkin:輸入50MHz時鐘脈沖clkout:輸出4000Hz脈沖分頻器fen50m_4000模塊實現(xiàn)程序:module fen50m_4000(clkin,clkout); input clkin; output clkout; reg clkout; reg 24:0 q; always (posedge clkin) begin if (q=12499) begin q=0; clkout=clkout; end else q=q+1; endendmod

6、ule編譯結(jié)果: 【交通燈控制及計時模塊】 端口說明:Clock:輸入時鐘信號,上升沿有效。Reset:復(fù)位信號,高電平有效。Red1、yellow1、green1:分別表示A路的紅燈、黃燈、綠燈顯示信號,高電平有效。Red2、yellow2、green2:分別表示B路的紅燈、黃燈、綠燈顯示信號,高電平有效。Timea:A路綠燈亮時間,高電平有效。Timeb:B路紅燈亮時間,高電平有效。Alarm:倒計時信號輸出實現(xiàn)程序:module traffic_control(clock,reset,red1,yellow1,green1,red2,yellow2,green2,timea,timeb,

7、alarm);input clock,reset;output red1,yellow1,green1,red2,yellow2,green2,alarm;output 7:0 timea,timeb;reg 1:0 state=2b00;reg 7:0 timea=40; /A路綠燈亮時間reg 7:0 timeb=45; /B路紅燈亮時間reg red1=1b0,yellow1=1b0,green1=1b1; /A綠燈亮reg red2=1b1,yellow2=1b0,green2=1b0; /B紅燈亮 reg alarm=1b0; always (posedge clock or pos

8、edge reset)begin if (reset) beginstate=2b00; timea=40; timeb=45; end else begin case (state) 2b00: begin if (timea=0) /A綠燈亮時間40S結(jié)束 begin timea=5; /A黃燈亮時間5S red1=1b0; yellow1=1b1; green1=1b0; /A黃燈亮 red2=1b1; yellow2=1b0; green2=1b0; /B紅燈繼續(xù)亮state=2b01; /轉(zhuǎn)到A黃燈,B紅燈end elsebegintimea=timea-1; /A綠燈亮時間40S-

9、timeb=timeb-1; /B紅燈亮時間45S-state=2b00;endend 2b01: begin if (timea=0) /A黃燈亮5S時間結(jié)束begintimea=45; /A紅燈亮時間45Stimeb=40; /B綠燈亮時間40Sred1=1b1; yellow1=1b0; green1=1b0; /A紅燈亮red2=1b0; yellow2=1b0; green2=1b1; /B綠燈亮alarm=1b0;state=2b10; /轉(zhuǎn)到A紅燈,B綠燈end elsebegintimea=timea-1; /A黃燈亮時間3S-timeb=timeb-1; /B紅燈亮時間3S-

10、 alarm=alarm; yellow1=yellow1;state=2b01;end end 2b10: begin if (timeb=0) /B綠燈亮40S時間結(jié)束 begin timeb=5; /B燈黃亮時間5S red1=1b1; yellow1=1b0; green1=1b0; /A紅燈亮 red2=1b0; yellow2=1b1; green2=1b0; /B黃燈亮state=2b11; /轉(zhuǎn)到A紅燈,B黃燈endelse begintimea=timea-1; /A紅燈亮時間-timeb=timeb-1; /B綠燈亮時間- state=2b10;endend 2b11: b

11、egin if (timeb=0) /B黃燈亮5S時間結(jié)束 begin timea=40; /A綠燈亮時間40S timeb=45; /B綠燈亮時間45S red1=1b0; yellow1=1b0; green1=1b1; /A綠燈亮 red2=1b1; yellow2=1b0; green2=1b0; /B紅燈亮 alarm=1b0;state=2b00; /轉(zhuǎn)到A綠燈,B紅燈endelsebegintimea=timea-1; /A紅燈亮時間-timeb=timeb-1; /B黃燈亮時間- alarm=alarm; yellow2=yellow2; state=90) begin num

12、a=9; numb=numin-90; end else if (numin=80) begin numa=8; numb=numin-80; end else if (numin=70) begin numa=7; numb=numin-70; end else if (numin=60) begin numa=6; numb=numin-60; end else if (numin=50) begin numa=5; numb=numin-50; end else if (numin=40) begin numa=4; numb=numin-40; end else if (numin=3

13、0) begin numa=3; numb=numin-30; end else if (numin=20) begin numa=2; numb=numin-20; end else if (numin=10) begin numa=1; numb=numin-10; end else begin numa=0; numb=numin; end endendmodule編譯結(jié)果:【數(shù)碼管顯示譯碼和掃描模塊】 驅(qū)動交通信號LED燈以及倒計時器數(shù)碼管的顯示,模塊如下圖: 端口說明:Scanclk:4000Hz時鐘脈沖Ewh,smh:輸入高4位BCD碼Ewl,sml:輸入高4位BCD碼Ledout

14、:數(shù)碼管段選Ledsel:數(shù)碼管位選Verilog語言描述如下:module display(scanclk,ewh,ewl,snh,snl,ledout,ledsel);input scanclk;input 3:0 ewh,ewl,snh,snl;output 6:0 ledout;output 3:0 ledsel;reg 6:0 ledout;reg 3:0 ledsel;reg 3:0 bcd;reg 2:0 q;always (posedge scanclk)begin q=q+1; case(q) 3b000:begin ledsel=4b0111;bcd=ewh;end 3b0

15、01:begin ledsel=4b1011;bcd=ewl;end 3b010:begin ledsel=4b1101;bcd=snh;end 3b011:begin ledsel=4b1110;bcd=snl;end default:begin ledsel=8b11111111;bcd=4bzzzz;end endcaseendalways (bcd)begin case(bcd) 4b0000:ledout=7b0111111; 4b0001:ledout=7b0000110; 4b0010:ledout=7b1011011; 4b0011:ledout=7b1001111; 4b01

16、00:ledout=7b1100110; 4b0101:ledout=7b1101101; 4b0110:ledout=7b1111101; 4b0111:ledout=7b0000111; 4b1000:ledout=7b1111111; 4b1001:ledout=7b1101111; default:ledout=7b0000000; endcaseendendmodule編譯結(jié)果:【各模塊電路符號】頂層電路圖如下:頂層文件原理圖頂層文件編譯結(jié)果如下:【硬件驗證結(jié)果】1、 引腳配置如下:2、 硬件驗證效果如下:按照設(shè)計好的原理圖,運行Quartus軟件,運用模塊化設(shè)計方法,創(chuàng)建圖形設(shè)計文

17、件,畫出所設(shè)計的交通燈控制器總框圖并連接,對其進行測試,編譯,得到結(jié)果如圖所示:【總結(jié)】 本設(shè)計借助FPGA器件及其支撐軟件,快速明確的驗證了交通燈控制功能。通過此次EDA課程設(shè)計,我系統(tǒng)的學習了課本上的相關(guān)知識,對程序設(shè)計有了一定思路;通過實驗課的學習,在程序的調(diào)試方面也學到了很多東西。其中在編程中也出現(xiàn)了很多的問題,但通過老師同學的幫助下,把問題一一解決了。其實只要我們自己認真看書,仔細分析,仔細調(diào)試,就一定會發(fā)現(xiàn)錯誤,真真正正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中。在這個設(shè)計過程中我深刻地體會到刻苦努力與認真對待的重要性,進一步鞏固了自己所學的專業(yè)基礎(chǔ)知識,提高了自己解決問題的能力。本設(shè)計使得我有了一次非常好的將理論與實踐結(jié)合的機會,并使我從中學到

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論