(完整word版)Verilog_HDL的交通燈控制器設(shè)計_第1頁
(完整word版)Verilog_HDL的交通燈控制器設(shè)計_第2頁
(完整word版)Verilog_HDL的交通燈控制器設(shè)計_第3頁
(完整word版)Verilog_HDL的交通燈控制器設(shè)計_第4頁
(完整word版)Verilog_HDL的交通燈控制器設(shè)計_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、交通信號燈控制器課程設(shè)計報告2015-2016 學(xué)年第 2 學(xué)期課程設(shè)計名稱:院 (系):電子綜合設(shè)計 EDA課程設(shè)計電子信息學(xué)院專業(yè):電子信息工程班級:電子 1313姓名:xx學(xué)號:1310034303xx綜合實驗時間:2016/7/11-2016/7/15指導(dǎo)教師:鐘 旭提交時間:2016/7/15交通信號燈控制器上海電機學(xué)院課程設(shè)計任務(wù)書課程名稱電子綜合設(shè)計 EDA課程設(shè)計課程代碼033117P11、數(shù)字式競賽搶答器2、自動售票機3、乒乓球比賽游戲機課程設(shè)計4、電子密碼鎖課題清單5、出租車自動計費器6、洗衣機控制器7、交通信號燈控制器8、電梯控制器設(shè)計時間2016年 7月 11日 201

2、6年 7月 15日一、課程設(shè)計任務(wù)匯總設(shè)計任務(wù):交通信號燈控制器功能要求:1、設(shè)計一個交通信號燈控制器,由一條主干道和一條支干道匯合成十字路口,在每個入口處設(shè)置紅、綠、黃三色信號燈,紅燈亮禁止通行,綠燈亮允許通行,黃燈亮則給行駛中的車輛有時間停在禁行線外;2、紅、綠、黃發(fā)光二極管作信號燈,用傳感器或邏輯開關(guān)作檢測車輛是否到來的信號;3、主干道處于常允許通行的狀態(tài),支干道有車來時才允許通行。主干道亮綠燈時,支干道亮紅燈;支干道亮綠燈時,主干道亮紅燈;4、主、支干道均有車時,兩者交替允許通行,主干道每次放行時間A,支干道每次放行時間A,設(shè)立 A、 B 計時顯示電路;5、在每次由綠燈亮到紅燈亮的轉(zhuǎn)換

3、過程中,要亮黃燈C 時間作為過渡,使行駛中的車輛有時間停到禁行線外,設(shè)立C計時顯示電路。時間 ABC1交通信號燈控制器二、對課程設(shè)計成果的要求(包括課程設(shè)計報告、圖紙、圖表、實物等軟硬件要求)1課程設(shè)計基本要求課題分析、查閱資料、方案論證、方案實現(xiàn)、系統(tǒng)聯(lián)調(diào)、撰寫課程設(shè)計報告2 成果要求( 1)系統(tǒng)方案(2)電路 RTL原理圖( 3) Verilog 源程序和流程圖(或狀態(tài)機轉(zhuǎn)移圖)( 4) Verilog 測試程序( 5)設(shè)計說明書(課程設(shè)計報告)三、課程設(shè)計工作進度計劃:時間安排內(nèi)容星期一下達任務(wù)星期二程序設(shè)計星期三程序調(diào)試星期四撰寫報告星期五考核答辯四、主要參考資料:指 導(dǎo) 書: Ver

4、ilog 數(shù)字系統(tǒng)設(shè)計教程 夏宇聞編著 北京航空航天大學(xué)出版社參考資料: EDA設(shè)計實驗教程艾明晶編著清華大學(xué)出版社2交通信號燈控制器目錄第一章設(shè)計原理41.1 設(shè)計要求41.2 設(shè)計思路和原理41.3 實現(xiàn)方法4第二章Verilog HDL 程序設(shè)計62.1 整體設(shè)計62.2 具體設(shè)計7第三章仿真測試73.1 波形仿真7第四章設(shè)計總結(jié)103交通信號燈控制器第一章設(shè)計原理1.1 設(shè)計要求設(shè)計一個交通控制器, 用 LED 顯示燈表示交通狀態(tài), 并以 7 段數(shù)碼顯示器顯示當前狀態(tài)剩余秒數(shù) 主干道綠燈亮?xí)r,支干道紅燈亮;反之亦然,二者交替允許通行,主干道每次放行35s,支干道每次放行25s。每次由綠

5、燈變?yōu)榧t燈的過程中,亮光的黃燈作為過渡,黃燈的時間為 5s。能進行特殊狀態(tài)顯示,特殊狀態(tài)時東西、南北路口均顯示紅燈狀態(tài)。用 LED 燈顯示倒計時,并且能實現(xiàn)總體清零功能,計數(shù)器由初始狀態(tài)開始計數(shù),對應(yīng)狀態(tài)的顯示燈亮。能實現(xiàn)特殊狀態(tài)的功能顯示。11.2 設(shè)計思路和原理(1) 主、支干道用傳感器檢測車輛到來情況,實驗電路用邏輯開關(guān)代替。(2) 選擇 1HZ時鐘脈沖作為系統(tǒng)時鐘。(3) 45s、25s、5s 定時信號可用順計時,也可用倒計時,計時起始信號由主控電路給出,每當計滿所需時間,啟、閉三色信號燈,并啟動另一計時電路。(4) 交通燈狀態(tài)變化如表 1 及圖 1 所示 :主干道 (A)主干道 (A

6、) 交通燈支干道 (B) 交通燈支干道 (B)狀態(tài)及顯示時間及顯示時間狀態(tài)0綠( 45s )紅(50s)01黃( 5s )2紅(30s)綠(25s)1黃(5s)2Emergency紅(0)紅(0)Emergency表 1 交通燈狀態(tài)圖4交通信號燈控制器檢測到支路無行人狀態(tài) 0和車輛Emergency狀態(tài)1狀態(tài)2圖 1 交通燈狀態(tài)圖(5) 交通燈設(shè)計輸入信號 4 個:CLK(時鐘 ) ,EN(使能 ) ,EMERGENCY(緊急 ) ,BCHECK(檢測 ) ;輸出信號 4 個: LAMPA(主干道信號燈 ) , LAMPB(支干道信號燈 ) , ACOUNT(主干道計數(shù)器 ) ,BCOUNT(

7、支干道計數(shù)器 ) 。交通燈控制原理如圖2 所示。圖 2 交通燈原理圖1.3 實現(xiàn)方法本次采用文本編輯法,即利用 Verilog HDL 語言描述交通控制器,通過狀態(tài)機計數(shù)法,實現(xiàn)設(shè)計所要求的交通燈控制及時間顯示。 設(shè)計中用兩組紅黃綠 LED 模擬兩個方向上的交通燈,用 4 個 7 段數(shù)碼管分別顯示兩個方向上的交通燈剩余時間,控制時鐘由試驗箱上頻率信號提供。 25交通信號燈控制器第二章Verilog HDL程序設(shè)計2.1 整體設(shè)計根據(jù)上章設(shè)計原理,交通燈控制的關(guān)鍵是各個狀態(tài)之間的轉(zhuǎn)換和進行適當?shù)臅r間延時,根據(jù)狀態(tài)機的設(shè)計規(guī)范,本次設(shè)計了三個狀態(tài)之間的循環(huán)轉(zhuǎn)化,其真值表及狀態(tài)轉(zhuǎn)化圖如下所示:狀狀0

8、0狀狀狀狀狀狀狀狀狀狀狀狀10狀狀01狀狀00狀狀狀狀狀 001狀狀狀狀狀 100狀狀01狀狀狀狀狀 010狀狀狀狀狀 010狀狀11狀狀狀狀狀 100狀狀狀狀狀 001狀狀11狀狀10狀狀狀狀狀 010狀狀狀狀狀 010圖 2 交通燈控制狀態(tài)轉(zhuǎn)化說明:該狀態(tài)圖為交通燈在正常情況下的狀態(tài)轉(zhuǎn)化圖,進入控制后,狀態(tài) 00 時主干道綠燈及支干道紅燈亮起,進入狀態(tài) 01 后兩路黃燈亮起,狀態(tài) 11 時主干道紅燈及支干道綠燈亮起。進入 10 狀態(tài)兩路黃燈亮起。結(jié)束一個循環(huán),從 00 狀態(tài)重新開始循環(huán)。為實現(xiàn)控制與顯示的功能,需要設(shè)計交通燈點亮順序控制程序,倒數(shù)計時程序,七段數(shù)碼管顯示程序,數(shù)碼管顯示掃描

9、程序,其系統(tǒng)結(jié)構(gòu)圖如下所示:holdrst狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀1Hzclk 1KHz 狀狀狀狀 1Hz狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀狀圖 3 交通燈控制系統(tǒng)結(jié)構(gòu)圖其中 rst 為復(fù)位信號, clk 為時鐘信號, hold 為特殊情況控制信號 ,輸入 hold 時兩個方向紅燈無條件亮起。6交通信號燈控制器2.2具體設(shè)計根據(jù)整體設(shè)計要求,編寫各個功能部分Verilog HDL 程序,設(shè)置各輸入輸出變量說明如下clk : 為計數(shù)時鐘;qclk:為掃描顯示時鐘;en: 使能信號,為1 的話,則控制器開始工作;rst: 復(fù)位信號,為 1 的話,控制及技術(shù)回到初始

10、狀態(tài);hoid :特殊情況控制信號,為1 的話,則兩個方向無條件顯示為紅燈;light1 : 控制主干道方向四盞燈的亮滅;其中,light10light2 ,分別控制主干道方向的綠燈、黃燈和紅燈;light2 : 控制支干道方向四盞燈的亮滅;其中,light20 light22 ,分別控制支干道方向的綠燈、黃燈和紅燈;num1: 用于主干道方向燈的時間顯示,8 位,可驅(qū)動兩個數(shù)碼管;num2: 用于支干道方向燈的時間顯示,8 位,可驅(qū)動兩個數(shù)碼管;counter:用于數(shù)碼管的譯碼輸出;st1,st2:數(shù)碼管掃描信號。詳細設(shè)計步驟:(1) 確定 4 個輸入信號與 4 個輸出信號,具體見圖 2;(

11、2) 將 50MHZ時鐘分頻為 1MHZ;(3) 設(shè)計紅黃綠 3 中信號燈切換的時間及順序;(4) 設(shè)計支路檢測狀態(tài)下的信號燈切換;(5) 設(shè)計緊急 (EMERGENCY)狀態(tài)下信號燈的切換;(6) 程序使用 3always 塊 1,詳細代碼如下:總體程序見程序清單所示第三章仿真測試3.1波形仿真在仿真軟件下創(chuàng)建工程,新建編輯設(shè)計文件,將程序輸入,整體編譯后,新建波形仿真文件。設(shè)置仿真時間,時鐘周期,輸入輸出端口,進行波形仿真。具體仿真波形圖及說明如下所示:7交通信號燈控制器仿真截止時間: 100us;時鐘: clk 1us,qclk 0.1us3.1.1正常工作時波形仿真圖圖 4 沒有緊急情

12、況時主干道和支干道的信號燈的顯示狀態(tài)圖 5 沒有緊急情況時主干道和支干道的信號燈的顯示狀態(tài)圖 6 沒有緊急情況時主干道和支干道的信號燈的顯示狀態(tài)8交通信號燈控制器圖 7 沒有緊急情況時主干道和支干道的信號燈的顯示狀態(tài)圖 8 沒有緊急情況時主干道和支干道的信號燈的顯示狀態(tài)圖 9 有緊急情況時主干道和支干道的信號燈的顯示狀態(tài)波形仿真主要完成了控制與計數(shù)以及數(shù)碼管顯示的波形圖。 num1,num2 分別表示主干道和支干道的倒計時, num1 = 00100000主干道計時 20 秒 num2 = 00100101支干道計時 25 秒;9交通信號燈控制器s1 用來表示主干道最短通車時間是否已到, 到了

13、 s1=1;s2 用來表示支干道最長通車時間是否已到,到了 s2=1,控制輸出量從高位到低位分別表示紅,黃,綠為 light1=001,light2=100, counter 用于時鐘計數(shù)。 hold 為緊急情況時主干道和支干道的信號燈為紅燈。圖 6 頂層文件圖結(jié)果分析: 仿真結(jié)果符合設(shè)計要求,交通燈有規(guī)律的變化,顯示倒計時;在檢測支路無車輛和緊急情況下,交通燈可以做出相應(yīng)調(diào)整。設(shè)計中使用 FSM(三段式),此方式描述方法雖然代碼結(jié)構(gòu)復(fù)雜了一些,但是使 FSM 做到了同步寄存器輸出,有利于實現(xiàn)交通燈控制 2 。第四章設(shè)計總結(jié)這次課程設(shè)計,通過對交通等控制器設(shè)計,解決了之前課上存在的一些困惑,就

14、是對測試程序的編寫,調(diào)試,對于測試程序有了很大的提升。在程序編寫和調(diào)試過程中從圖書館借閱了很多相關(guān)程序,并對原理和算法進行理解,收獲很大。對于課題,首先進行了單元模塊的設(shè)計, 將每一個單元模塊設(shè)計完成后再經(jīng)行仿真,仿真成功后就可以進行頂層文件的編寫了,在頂層文件的編寫過程中遇到了一些問題,特別是各模塊之間的連接,以及信號的定義,總是有錯誤。有的時候信號的定義容易出現(xiàn)混淆,在反復(fù)的修改過后,頂層文件終于能夠編譯成功了。在波形仿真的過程中,同樣遇到了困難,10交通信號燈控制器有的時候會出現(xiàn)仿真時間過長的問題,這個時候應(yīng)該修改系統(tǒng)時鐘的頻率。在設(shè)計的過程中還應(yīng)該多聯(lián)系下實際情況,要了解實際情況下交通

15、信號燈的工作情況,才能更好的完成此次的課程設(shè)計。這次的課程設(shè)計使我鞏固了以前學(xué)習(xí)到的知識,還使我掌握了以前沒有掌握的知識,同時鍛煉了自己的能力。通過這次課程設(shè)計 ,并進一步熟練了對 Xilinx ISE 軟件的操作。通過與同學(xué)探討和請教老師,終于把問題都解決了,并加深了對交通燈原理和設(shè)計思路的了解。同時也掌握了做課程設(shè)計的一般流程,為以后的設(shè)計積累了一定的經(jīng)驗。做課程設(shè)計時,先查閱相關(guān)知識,把原理吃透,確定一個大的設(shè)計方向,在按照這個方向分模塊的把要實現(xiàn)的功能用流程圖的形式展示。最后參照每個模塊把輸入和輸出引腳設(shè)定, 運用我們所學(xué)的 Verilog 語言進行編程。總之,通過這次的設(shè)計,進一步了

16、解了 EDA 技術(shù),收獲很大,對軟件編程,排錯調(diào)試,相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。11交通信號燈控制器程序清單module sy(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);input en,clk,qclk,rst,hold,rst1;output st1,st2;output7:0 num1,num2;output6:0counter;output2:0 light1,light2;reg tim1,tim2,st1,st2;reg1:0state1,state2,ste;reg

17、2:0light1,light2;reg3:0num;reg6:0counter;reg7:0 num1,num2;reg7:0 red1,red2,green1,green2,yellow1,yellow2;always (en )if(!en)begin / 設(shè)置計數(shù)初值green1=8b00110101;red1=8b00100101;yellow1=8b00000101;green2=8b00100101;red2=8b00110101;yellow2=8b00000101;endalways (posedge clk )beginif(rst) / 復(fù)位與特殊情況控制beginlig

18、ht1=3b001;num1=green1;endelse if(hold)beginlight1=3b100;num1=green1;12交通信號燈控制器endelse if(en)begin / 使能有效開始控制計數(shù)if(!tim1) / 開始控制begin / 主干道交通燈點亮控制tim1=1;case(state1)2b00:begin num1=green1;light1=3b001;state1=2b01;end 2b01:begin num1=yellow1;light1=3b010;state1=2b11;end 2b11:begin num1=red1;light1=3b10

19、0;state1=2b10;end 2b10:begin num1=yellow1;light1=3b010;state1=2b00;end default:light10)if(num13:0=0)beginnum13:0=4b1001;num17:4=num17:4-1;endelse num13:0=num13:0-1;if(num1=1) tim1=0;endendelsebeginlight1=3b010;num1=2b00;tim1=0;endendalways (posedge clk )beginif(rst) / 復(fù)位與特殊情況控制beginlight2=3b100;13交通

20、信號燈控制器num2=red2;endelse if(hold)beginlight2=3b100;num2=red2;endelse if(en)beginif(!tim2)begintim2=1;case(state1)2b00:begin num2=red2;light2=3b100;state2=2b01;end 2b01:begin num2=yellow1;light2=3b010;state2=2b11;end 2b11:begin num2=green2;light2=3b001;state2=2b10;end 2b10:begin num2=yellow2;light2=3b

21、010;state2=2b00;enddefault:light20)if(num23:0=0)beginnum23:0=4b1001;num27:4=num27:4-1;endelse num23:0=num23:0-1;if(num2=1) tim2=0;endendelsebegintim2=0;state2=2b00;light2=3b010;end14交通信號燈控制器endalways (posedge qclk)begin/ 數(shù)碼管掃描if(rst1)beginst1=0;st2=0;endelsebegincase(st2,st1)2b00:begin num=num13:0;s

22、t2,st1=2b01; end2b01:begin num=num17:4;st2,st1=2b10; end2b10:begin num=num23:0;st2,st1=2b11; end2b11:begin num=num27:4;st2,st1=2b00; endendcaseendendalways (posedge qclk)begin/ 數(shù)碼管譯碼顯示case(num)4b0000: counter=7b0111111; / 04b0001: counter=7b0000110; /14b0010: counter=7b1011011; /24b0011: counter=7b1

23、001111; /34b0100: counter=7b1100110; / 44b0101: counter=7b1101101; /54b0110: counter=7b1111101; / 64b0111: counter=7b0000111; /74b1000: counter=7b1111111; /84b1001: counter=7b1101111; /9default: counter=7b0111111; /0endcaseendendmodule15交通信號燈控制器測試程序:module syy;/ Inputsreg en;reg clk;reg qclk;reg rst;reg rst1;reg hold;/ Outputswire 7:0 num1;wire 7:0 num2;wire

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論