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

下載本文檔

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

文檔簡介

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

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

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

4、00Hz的脈沖。 fen50m_1s模塊設(shè)計(jì),實(shí)現(xiàn)頻率由50MHz到2Hz的轉(zhuǎn)變,達(dá)到我們需要的1s的要求,模塊如下圖: 分頻器一端口說明:clkin:輸入50MHz時(shí)鐘脈沖clkout:輸出2Hz脈沖fen50m_1s實(shí)現(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è)計(jì),實(shí)現(xiàn)頻率由50MHz到4000Hz的轉(zhuǎn)變 分頻器二端口說明:clkin:輸入50MHz時(shí)鐘脈沖clkout:輸出4000Hz脈沖分頻器fen50m_4000模塊實(shí)現(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é)果: 【交通燈控制及計(jì)時(shí)模塊】 端口說明:Clock:輸入時(shí)鐘信號(hào),上升沿有效。Reset:復(fù)位信號(hào),高電平有效。Red1、yellow1、green1:分別表示A路的紅燈、黃燈、綠燈顯示信號(hào),高電平有效。Red2、yellow2、green2:分別表示B路的紅燈、黃燈、綠燈顯示信號(hào),高電平有效。Timea:A路綠燈亮?xí)r間,高電平有效。Timeb:B路紅燈亮?xí)r間,高電平有效。Alarm:倒計(jì)時(shí)信號(hào)輸出實(shí)現(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路綠燈亮?xí)r間reg 7:0 timeb=45; /B路紅燈亮?xí)r間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綠燈亮?xí)r間40S結(jié)束 begin timea=5; /A黃燈亮?xí)r間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綠燈亮?xí)r間40S-

9、timeb=timeb-1; /B紅燈亮?xí)r間45S-state=2b00;endend 2b01: begin if (timea=0) /A黃燈亮5S時(shí)間結(jié)束begintimea=45; /A紅燈亮?xí)r間45Stimeb=40; /B綠燈亮?xí)r間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黃燈亮?xí)r間3S-timeb=timeb-1; /B紅燈亮?xí)r間3S-

10、 alarm=alarm; yellow1=yellow1;state=2b01;end end 2b10: begin if (timeb=0) /B綠燈亮40S時(shí)間結(jié)束 begin timeb=5; /B燈黃亮?xí)r間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紅燈亮?xí)r間-timeb=timeb-1; /B綠燈亮?xí)r間- state=2b10;endend 2b11: b

11、egin if (timeb=0) /B黃燈亮5S時(shí)間結(jié)束 begin timea=40; /A綠燈亮?xí)r間40S timeb=45; /B綠燈亮?xí)r間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紅燈亮?xí)r間-timeb=timeb-1; /B黃燈亮?xí)r間- 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ū)動(dòng)交通信號(hào)LED燈以及倒計(jì)時(shí)器數(shù)碼管的顯示,模塊如下圖: 端口說明:Scanclk:4000Hz時(shí)鐘脈沖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é)果:【各模塊電路符號(hào)】頂層電路圖如下:頂層文件原理圖頂層文件編譯結(jié)果如下:【硬件驗(yàn)證結(jié)果】1、 引腳配置如下:2、 硬件驗(yàn)證效果如下:按照設(shè)計(jì)好的原理圖,運(yùn)行Quartus軟件,運(yùn)用模塊化設(shè)計(jì)方法,創(chuàng)建圖形設(shè)計(jì)文

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論