VerilogHDL的交通燈控制器設計_第1頁
VerilogHDL的交通燈控制器設計_第2頁
VerilogHDL的交通燈控制器設計_第3頁
VerilogHDL的交通燈控制器設計_第4頁
VerilogHDL的交通燈控制器設計_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、號燈控制器 功能要求: 1、設計一個交通信號燈控制器,由一條主干道和一條支干道匯合成十字路口, 在每個入口處設置紅、綠、黃三色信號燈,紅燈亮禁止通行,綠燈亮允許通行, 黃燈亮則給行駛中的車輛有時間停在禁行線外;2、紅、綠、黃發光二極管作信號燈,用傳感器或邏輯開關作檢測車輛是否到來 的信號;3、主干道處于常允許通行的狀態,支干道有車來時才允許通行。主干道亮綠燈 時,支干道亮紅燈;支干道亮綠燈時,主干道亮紅燈;4、主、支干道均有車時,兩者交替允許通行,主干道每次放行時間A,支干道 每次放行時間A,設立A B計時顯示電路;5、在每次由綠燈亮到紅燈亮的轉換過程中,要亮黃燈C時間作為過渡,使行駛 中的車

3、輛有時間停到禁行線外,設立 C計時顯示電路。時間A>B>C第一章 設計原理1.1設計要求 1.2 設計思路和原理1.3實現方法 第二章 Verilog HDL 程序設計2.1 整體設計2.2 具體設計第三章 仿真測試3.1 波形仿真第四章 設計總結目錄.4.4.4.4.6.677.1.0.第一章設計用LED顯示燈表示交通狀態,并以7段數碼顯示器顯示當前狀態支干道紅燈亮;反之亦然,二者交替允許通行,主干道每次放行每次由綠燈變為紅燈的過程中,亮光的黃燈作為過渡,黃燈的時LED燈顯示1.1設計要求設計一個交通控制器, 剩余秒數主干道綠燈亮時, 35s,支干道每次放行25s。間為5s。能進

4、行特殊狀態顯示,特殊狀態時東西、南北路口均顯示紅燈狀態。用 倒計時,并且能實現總體清零功能,計數器由初始狀態開始計數,對應狀態的顯示燈亮。能 實現特殊狀態的功能顯示。1.2設計思路和原理(1) 主、支干道用傳感器檢測車輛到來情況,實驗電路用邏輯開關代替。(2) 選擇1HZ時鐘脈沖作為系統時鐘。(3) 45s、25s、5s定時信號可用順計時,也可用倒計時,計時起始信號由主控電路給出, 每當計滿所需時間,啟、閉三色信號燈,并啟動另一計時電路。(4) 交通燈狀態變化如表1及圖1所示:主干道(A)狀態主干道(A)交通燈 及顯示時間支干道(B)交通燈 及顯示時間支干道(B)狀態0綠(45s )紅(50s

5、)01黃(5s )0*2紅(30s)MM綠(25s)1oe黃(5s)2Emerge ncy紅(0 )MM紅(0)Emerge ncy表1交通燈狀態圖狀態0檢測到支 路無行人 和車輛/"狀態1; 一、*狀態圖1交通燈狀態圖(5)交通燈設計輸入信號4個:CLK時鐘),EN(使能),EMERGENCY急),BCHECI檢測);輸出信號4個:LAMPA主干道信號燈),LAMPB支干道信號燈),ACOUNT主干道計數器),BCOUN支干道計數器)。交通燈控制原理如圖2所示。=CL(Kl、1 滬=1> 堂 I匸EN御1;EWERGEWCT1)'tfV 1BCMEtft4.bofKc

6、 cCrftCrfCLKLANPAI2CqENLAMPBIZOgEKRCENC/ACCMJtJT(T DECHECKeCCXJW7F.O交通燈原理圖1.3實現方法本次采用文本編輯法,即利用Verilog實現設計所要求的交通燈控制及時間顯示。HDL語言描述交通控制器,通過狀態機計數法,設計中用兩組紅黃綠LED模擬兩個方向上的交通燈,用4個7段數碼管分別顯示兩個方向上的交通燈剩余時間,控制時鐘由試驗箱上頻率信 號提供。第二章Verilog HDL 程序設計2.1整體設計根據上章設計原理,交通燈控制的關鍵是各個狀態之間的轉換和進行適當的時間延時, 根據狀態機的設計規范,本次設計了三個狀態之間的循環轉

7、化,其真值表及狀態轉化圖如下 所示:狀狀狀狀狀狀狀狀狀狀狀狀00狀狀狀狀狀001狀狀狀狀狀100狀狀01狀狀狀狀狀010狀狀狀狀狀010狀狀11狀狀狀狀狀100狀狀狀狀狀001狀狀10狀狀狀狀狀010狀狀狀狀狀010圖2交通燈控制狀態轉化說明:該狀態圖為交通燈在正常情況下的狀態轉化圖,進入控制后, 狀態00時主干道綠 燈及支干道紅燈亮起,進入狀態 01后兩路黃燈亮起,狀態11時主干道紅燈及支干道綠燈亮 起。進入10狀態兩路黃燈亮起。結束一個循環,從 00狀態重新開始循環。為實現控制與顯示的功能,需要設計交通燈點亮順序控制程序,倒數計時程序,七段數 碼管顯示程序,數碼管顯示掃描程序,其系統結構圖

8、如下所示:圖3交通燈控制系統結構圖其中rst為復位信號,elk為時鐘信號,hold為特殊情況控制信號,輸入hold時兩個方向紅 燈無條件亮起。2.2具體設計根據整體設計要求,編寫各個功能部分 Verilog HDL 程序,設置各輸入輸出變量說明如clk:為計數時鐘;為掃描顯示時鐘;使能信號,為 1 的話,則控制器開始工作; 復位信號,為 1 的話,控制及技術回到初始狀態;qclk: en: rst:hoid :特殊情況控制信號,為1的話,則兩個方向無條件顯示為紅燈; light1 : 控制主干道方向四盞燈的亮滅;其中,light10light2 ,分別控制主干道方向綠燈、黃燈和紅燈;light

9、2: 控制支干道方向四盞燈的亮滅;其中,light20 light22 ,分別控制支干道方向的綠燈、黃燈和紅燈;num1: 用于主干道方向燈的時間顯示, 8 位, num2: 用于支干道方向燈的時間顯示, 8 位, counter:用于數碼管的譯碼輸出;st1,st2:數碼管掃描信號。 詳細設計步驟:(1)(2)(3)(4)(5)(6)可驅動兩個數碼管;可驅動兩個數碼管;確定 4個輸入信號與 4 個輸出信號,具體見圖 2;將50MHZ寸鐘分頻為1MHZ設計紅黃綠 3 中信號燈切換的時間及順序; 設計支路檢測狀態下的信號燈切換;設計緊急(EMERGENCY狀態下信號燈的切換;程序使用 3alwa

10、ys 塊1 ,詳細代碼如下:總體程序見程序清單所示第三章 仿真測試3.1 波形仿真在仿真軟件下創建工程,新建編輯設計文件,將程序輸入,整體編譯后,新建波形仿真 文件。設置仿真時間,時鐘周期,輸入輸出端口,進行波形仿真。具體仿真波形圖及說明如 下所示:仿真截止時間: 100us;f:目時鐘:elk 1us, qcik O.lus3.1.1正常工作時波形仿真圖Valur圖4Mciiiom'戸誥廣史 £ 士 ¥ r I Q >UJ. Dims二他 I. |”jALon叢liqnEirDg lignURq亡口|_ TterJ&CJH-1fPdkaiICOQJL

11、llLll"& I i i ir"i n & I于追晶迪畑冷飲 F:恍:w郴燼品毬謎燼燼僦<;M-昭糠讎裁邀廳蒔讒勰翅iim蚪報爲怦嘆逐藍沁蠱也矗 2. biBt* i sa=厶亠=三-3=卜*a=zBddaK4d"亠亠 4B= r S qz 丿.Siq En&BE?-*JS d42_=SB>_f 3 左 E ±4g -n g厠沁茲蠢蕊體腫繰邈遊蘆激報鬟涂碎惡盛遞課遼遷設迄iiM7jiMJumn'JiJi.rtriniMLi'Jinoi iiMtCOT;jijLLlJiniuiriif:ji.ruL.n

12、aiuijiii?j舅筆逐蠶澎懣鑿1蔭站譲g簣筋i霆爭*陽黒U dhonm Hirin'= jn<E. -= -V 7=:沒有緊急情況時主干道和支干道的信號燈的顯示狀態U 王 P - - X? Z產迫尸 £ T±±r 廣=|口 m ncw"曲,IgsiLilruiMrujndliOl mjrrjpOl IRHErH_«n*erT-E:ir rtlo»acDiionocioqOLCQblft31£mu、* P |B r h Wrrra" ,'. J- H k-j龍:回溉<x砒磁軸籾西斎刼曲

13、誡麗血畑沁於誡逐致 XWJQOOOCS%憂軌XCXCCH其OCOCOOOC卸眞KXOOCC'M其優住豹典置加期 X命七3# E"'S Bf_ 1M> 0C1F您繆誨錚沁髓二離希如鶴胡:盟:辭勰琛空:*:英鍛密許沁置:碎斗4藏濟坯瞬II11J b1- 5 TT -FT ', VLFTfrr plf r i- wt I jt+a nV! t t ' t t ' t tt itv - -tp n - ' t - - p - : t t ;- t t . l k i i' tth; i tt ,- ttT.-廠 '.A二匚

14、廳磁惑型?鹽畏;阿ZT1 firr-scjsirjinjwjoirjijii-ju JULUiJLiJiwnnjiiujujuL tommuniuiinojinnu' *&. '=亠 £f ' f'-B * L.r i.T * -r丿e事W 貳”5 q 商3 4 E* F+Jb+JiKC 衣.4, rt-Fn-SS r 卜 f> *jfirjuuuiJULlir* r*v L L d* ' 丿 n * *_nJI圖5沒有緊急情況時主干道和支干道的信號燈的顯示狀態II皿"1 A 豈 Pumr? >(Ml taib-鴨

15、 Hhjpoqk 嗎 liongog:00A 哮 IkjhtjyoqCOl 電 CDdntn-£.CQlaiijxiI*吃pE ItzcW dt1li科ko1 二 rtlfla fdlf1« holdC I haunc國Ub111-1biirn» dL,IMr11rid-i11j f n "I 11IQ UL,1 1gxxxxx)oo(如>:船 exxxxxxxw>w(斗 槪._曲£ 'OXOexXX 啄<)0豁 畑備武畑燼沁珠漲工。岡':一1 筲 XXXKWTOO) :Mx'KXXJOOWLW.gxx

16、xxx>xx <XXXXW誥>冋I-pi沢1.TTITOT;< -in X吟翌雜;忌宓a觀氏二駅濾瞬淘圜富M瑚舉二二 藍尸亠一二*丁亠亠 v- -J'J-. - ev -. J-J'JT- - . J 二 -evj-': j-j-fj- 1J- _.-.' .F-7花、«att£figffiEC£MX>-1 1fUJOLmUJUlILllBLlJU'. dlfli 渥鮒瞌崑i癌世嶷爲S嗨遜%1U.ULUUliUliULUUJUUlLllJUllbLJUlIUlJ 套蠢盍ii語鮭JULUUUMlJ

17、JlJULLiJlflillln.0.Er-1 LU豆clz",丿耳盧時吐勺t r- 11D 血如kJ II圖6沒有緊急情況時主干道和支干道的信號燈的顯示狀態產皤 丄戸|3 上也 t r "j QI t 2心000=二li 冷jiLAiiKh-歸*1 Mjrtw1tfalbiB> 童 ruimipfilnCaODLBl許 電 ikifiQpmi300)0013噹1護n網AidP 噂 IE2X)|31D雪3”叭阿loiian1 !|»?Ife宋9Eft *nrli w3鬲E1Ifl raL3pn】b礙瓶XXXe霸如壽XXX必朋X罰滅曲XXXX»蕊腑於

18、加滋X:因 沖如於密00)000梵妙畑000沁:、畑卿妙邛10000000004 上吐注ce?«1 I011» IX>_ «L Vb T r u ; f . VF-否-1 t'f -Si.->“占-罕;- rt -r: r蘭F:=-咒.-.?- -七,丄r ri律刪詭我?戸海落確甌SS律壺轉童爭齊脅-1"石匸錢?S 5$聲?舉祗1 =卜 1' r V'Z- - q p -> r !'.- -*> !<!搐痣驚鹼幷絵緞倔磁籃磁粋淤灌贈沁 了矯誓H鑒翹址.tWSS齊淨碾號犧牌鑼詁阿阿檢強K和耀宙5

19、 土 + _ BiHiB 、k4 InAv" 'TL.r-1-KriLTBr. .rauBBr *£* - k j _ = ? i v i-. r t rirawrajmnTLioiiunnjLTnjL;; JLirounrrainnmuL-Ju:rauKuibiiirnnori 圖7沒有緊急情況時主干道和支干道的信號燈的顯示狀態«D11D19Dcniinio CDL tao囁VjinLpm:#贓 盧占I目i±±r t ii* , O >1 D cDn.n舊厶-丄沁J,Rg I'flhtki.a. m I呼甘Bm cQii

20、r4曲匡切Em迪 ub dk qdk鼻mlbiDoin:.:嚴:u*, . 1 ,嚴',.I . . ” 7 . n .氓注球誹瀬腑沖熔陰M瞬梆嘰* 球杯冷、 鳥口門$;品如工號剤驅霞也忖閃ONIOK砒M朋或XOORZ 其 0 Jix :r yiy J-塔!lUQ da二E;W1Z1W匚鶴S日會:轄畤灌卿輕翠聽鯊黑M港攀押娶託郵懈歸痔爭豎睥籤搐蟄瞬獗昶愛:愕轉網ijij Lj:uiji. iiijiTjir iiiiLji.jfjiiruiiH iiiii. n i.i'riniiiuii.di.ii. .:;甫盛呑詡富帝曲*:病;盜;瓷:瓷二門叮【II)! I圖8沒有緊急情況

21、時主干道和支干道的信號燈的顯示狀態盧 茁I 1£ ±r I t t Q k >» L ddebb Il皿二00115131UdLLd電翟 rtuttUtf.II: 瞬 nunVpN 嚨!謝皿2 AC:?"脫匡切iiiiiiXiiS 扁IG710譏電!】"gio flsnrn4«rLTtnHII I II. j i 一 nJU ii.n( liiifi i.ii .iiiiiiiiiini J III ii.Ill| III I III" 11.11 fill圖9有緊急情況時主干道和支干道的信號燈的顯示狀態波形仿真主要完

22、成了控制與計數以及數碼管顯示的波形圖。nu m1, num2分別表示主干道和支干道的倒計時,num1 = 00100000主干道計時20秒num2 = 00100101支干道計時25秒; s1用來表示主干道最短通車時間是否已到, 到了 s1=1; s2用來表示支干道最長通車時間是否已到,到了 s2=1,控制輸出量從高位到低位分別表示紅,黃,綠為light1=001,light2=100,counter用于時鐘計數。hold為緊急情況時主干道和支干道的信號燈為紅燈。sysy圖6頂層文件圖結果分析:仿真結果符合設計要求,交通燈有規律的變化,顯示倒計時;在檢測支路無車輛和緊急情況下,交通燈可以做出相

23、應調整。設計中使用FSM(三段式),此方式描述方法雖然代碼結構復雜了一些,但是使 FSM做到了同步寄存器輸出,有利于實現交通燈控制2。第四章設計總結這次課程設計,通過對交通等控制器設計,解決了之前課上存在的一些困惑,就是對測 試程序的編寫,調試,對于測試程序有了很大的提升。在程序編寫和調試過程中從圖書館借 閱了很多相關程序,并對原理和算法進行理解,收獲很大。對于課題,首先進行了單元模塊的設計,將每一個單元模塊設計完成后再經行仿真, 仿真成功后就可以進行頂層文件的編寫了,在頂層文件的編寫過程中遇到了一些問題,特別 是各模塊之間的連接,以及信號的定義,總是有錯誤。有的時候信號的定義容易出現混淆,

24、在反復的修改過后,頂層文件終于能夠編譯成功了。在波形仿真的過程中,同樣遇到了困難, 有的時候會出現仿真時間過長的問題,這個時候應該修改系統時鐘的頻率。在設計的過程中 還應該多聯系下實際情況,要了解實際情況下交通信號燈的工作情況,才能更好的完成此次 的課程設計。這次的課程設計使我鞏固了以前學習到的知識,還使我掌握了以前沒有掌握的 知識,同時鍛煉了自己的能力。通過這次課程設計 ,并進一步熟練了對 Xilinx ISE 軟件的操作。通過與同學探討和 請教老師,終于把問題都解決了,并加深了對交通燈原理和設計思路的了解。同時也掌握了 做課程設計的一般流程,為以后的設計積累了一定的經驗。做課程設計時,先查

25、閱相關知識, 把原理吃透,確定一個大的設計方向,在按照這個方向分模塊的把要實現的功能用流程圖的 形式展示。最后參照每個模塊把輸入和輸出引腳設定, 運用我們所學的 Verilog 語言進行編程。 總之,通過這次的設計,進一步了解了 EDA 技術,收獲很大,對軟件編程,排錯調試,相 關儀器設備的使用技能等方面得到較全面的鍛煉和提高。程序清單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

26、:0 num1,num2;output6:0counter;output2:0 light1,light2;reg tim1,tim2,st1,st2;reg1:0state1,state2,ste;reg2:0light1,light2;reg3:0num;reg6:0counter;reg7:0 num1,num2;reg7:0 red1,red2,green1,green2,yellow1,yellow2;always (en ) if(!en)begin / 設置計數初值green1<=8'b00110101;red1<=8'b00100101;yellow

27、1<=8'b00000101;green2<=8'b00100101;red2<=8'b00110101;yellow2<=8'b00000101;end always (posedge clk )beginendif(rst) /復位與特殊情況控制beginlight1<=3'b001;num1<=green1;end else if(hold)beginlight1<=3'b100;num1<=green1;else if(en)begin / 使能有效開始控制計數if(!tim1) /開始控制

28、begin /主干道交通燈點亮控制tim1<=1;case(state1)2'b00:begin num1<=green1;light1<=3'b001;state1<=2'b01;end2'b01:begin num1<=yellow1;light1<=3'b010;state1<=2'b11;end2'b11:begin num1<=red1;light1<=3'b100;state1<=2'b10;end2'b10:begin num1<=ye

29、llow1;light1<=3'b010;state1<=2'b00;enddefault:light1<=3'b100;endcaseendelsebegin /倒數計時if(num1>0)if(num13:0=0)beginnum13:0<=4'b1001;num17:4<=num17:4-1;endelse num13:0<=num13:0-1;if(num1=1) tim1<=0;endendelsebeginlight1<=3'b010;num1=2'b00;tim1<=0;e

30、ndend always (posedge clk )beginif(rst) /復位與特殊情況控制beginlight2<=3'b100;num2<=red2;else if(hold)beginlight2<=3'b100;num2<=red2;end else if(en)beginif(!tim2)begintim2<=1;case(state1)2'b00:begin num2<=red2;light2<=3'b100;state2<=2'b01;end2'b01:begin num2&l

31、t;=yellow1;light2<=3'b010;state2<=2'b11;end2'b11:begin num2<=green2;light2<=3'b001;state2<=2'b10;end2'b10:begin num2<=yellow2;light2<=3'b010;state2<=2'b00;enddefault:light2<=3'b100;endcaseendelsebegin /倒數計時if(num2>0)if(num23:0=0)begin

32、num23:0<=4'b1001;num27:4<=num27:4-1;endelse num23:0<=num23:0-1;if(num2=1) tim2<=0;endend else begin tim2<=0;state2<=2'b00;light2<=3'b010;end endalways (posedge qclk) begin / 數碼管掃描if(rst1)beginst1=0;st2=0;endelsebegincase(st2,st1)2'b00:begin num<=num13:0;st2,st

33、1<=2'b01; end2'b01:begin num<=num17:4;st2,st1<=2'b10; end2'b10:begin num<=num23:0;st2,st1<=2'b11; end2'b11:begin num<=num27:4;st2,st1<=2'b00; endendcaseendendalways (posedge qclk) begin / 數碼管譯碼顯示case(num)4'b0000: counter<=7'b0111111; /04'b0001: counter<=7'b0000110; /14'b0010: counter<=7'b1011011; /24'b0011: counter<=7'b1001111; /34'b0100: counter<=7'b1100110; /44'b010

溫馨提示

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

評論

0/150

提交評論