數(shù)字系統(tǒng)原理與設(shè)計(jì)_第1頁
數(shù)字系統(tǒng)原理與設(shè)計(jì)_第2頁
數(shù)字系統(tǒng)原理與設(shè)計(jì)_第3頁
數(shù)字系統(tǒng)原理與設(shè)計(jì)_第4頁
數(shù)字系統(tǒng)原理與設(shè)計(jì)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEPAGE13數(shù)字系統(tǒng)原理與設(shè)計(jì)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:12交通燈設(shè)計(jì)學(xué)生姓名:楊羽佳學(xué)號:1411032024專業(yè):電子科學(xué)與技術(shù)年級:大二指導(dǎo)老師:黃勛設(shè)計(jì)內(nèi)容:帶計(jì)時功能區(qū)分主干道的交通信號燈時間:2016年6月摘要VerilogHDL作為一種規(guī)范的硬件描述語言,被廣泛應(yīng)用于電路的設(shè)計(jì)中。它的設(shè)計(jì)描述可被不同的工具所支持,可用不同器件來實(shí)現(xiàn)。利用VerilogHDL語言自頂向下的設(shè)計(jì)方法設(shè)計(jì)交通燈控制系統(tǒng),使其實(shí)現(xiàn)道路交通的正常運(yùn)轉(zhuǎn),突出了其作為硬件描述語言的良好的可讀性、可移植性和易理解等優(yōu)點(diǎn),并通過Quartus2完成綜合、仿真。此程序通過下載到DE2開發(fā)板后,可應(yīng)用于實(shí)際的交通燈控制系統(tǒng)中。關(guān)鍵詞:VerilogHDL;硬件描述語言;狀態(tài);DE2開發(fā)板;交通燈。目錄一、前言3二、任務(wù)功能4三.設(shè)計(jì)方案論證41.工作原理42.系統(tǒng)設(shè)計(jì)方案4四、程序設(shè)計(jì)61.verilog源程序62.設(shè)備選擇103.引腳綁定2五、仿真21.仿真波形22.硬件驗(yàn)證2六、結(jié)束語2七、參考文獻(xiàn)2一、前言VerilogHDL是一種硬件描述語言(HDL:HardwareDescriptionLanguage),以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。VerilogHDL和VHDL是世界上最流行的兩種硬件描述語言,都是在20世紀(jì)80年代中期開發(fā)出來的。前者由GatewayDesignAutomation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標(biāo)準(zhǔn)。QuartusII是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個階段使用熟悉的第三方EDA工具。此外,QuartusII通過和DSPBuilder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺。二、任務(wù)功能交通燈設(shè)計(jì)基本要求:(1)設(shè)計(jì)一個交通紅綠燈。要求分主干道和支干道,每條道上安裝紅(主:R,支:r)綠(主:G,支:g)黃(主:Y,支:y)三種顏色燈,由四種狀態(tài)自動循環(huán)構(gòu)成;(2)在交通燈處在不同的狀態(tài)時,設(shè)計(jì)一個計(jì)時器以倒計(jì)時方式顯示計(jì)時,主干道上綠燈亮30S,支干道上綠燈亮20S。每個干道上,在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5S。在完成基本要求的基礎(chǔ)上,可進(jìn)一步增加功能、提高性能,如綠燈亮的時間可調(diào)。三.設(shè)計(jì)方案論證1.工作原理:城市十字交叉路口紅綠燈控制系統(tǒng)主要負(fù)責(zé)控制主干道走向和從干道走向的紅綠燈的狀態(tài)和轉(zhuǎn)換順序,關(guān)鍵是各個狀態(tài)之間的轉(zhuǎn)換和進(jìn)行適當(dāng)?shù)臅r間延時,正是基于以上考慮,采用如下設(shè)計(jì):S0:當(dāng)主干道走向的綠燈亮?xí)r,從干道走向的紅燈亮,并保持30s

S1:當(dāng)主干道走向的黃燈亮?xí)r,從干道走向的黃燈亮,并保持5s

S2:當(dāng)主干道走向的紅燈亮?xí)r,從干道走向的綠燈亮,并保持20s

S3:當(dāng)主干道走向的黃燈亮?xí)r,從干道走向的黃燈亮,并保持5s在S3結(jié)束后又回到(1)狀態(tài),并周期重復(fù)進(jìn)行。時間分配表;主路支路綠30s紅35s黃5s紅25s綠20s黃5s狀態(tài)分配表:現(xiàn)態(tài)主路支路變量綠G黃Y紅R綠g黃y紅rS0100001S1010001S2001100S3001010狀態(tài)圖2.系統(tǒng)設(shè)計(jì)方案根據(jù)設(shè)計(jì)要求和系統(tǒng)所具有功能,并參考相關(guān)的文獻(xiàn)資料經(jīng)行方案設(shè)計(jì)畫出如下所示的十字路口交通燈控制器系統(tǒng)框圖,及為設(shè)計(jì)的總體方案,框圖如下圖所示:四、程序設(shè)計(jì)1.verilog源程序moduletraffic(en,clk,rst,num1,num2,light1,light2,out1,out2,out3,out4,in1,in2);inputen,clk,rst,in1,in2;//en為使能端。in1,in2控制綠燈和紅燈亮?xí)r間output[7:0]num1,num2;output[2:0]light1,light2;output[6:0]out1,out2,out3,out4;//輸出四個數(shù)碼管reg[6:0]out1,out2,out3,out4;regtim1,tim2;reg[1:0]state1,state2;reg[2:0]light1,light2;reg[7:0]num1,num2;reg[7:0]red1,red2,green1,green2,yellow1,yellow2;parameters0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;//四個循環(huán)狀態(tài)reg[25:0]count;regdiv;always@(en)if(en)begin//設(shè)置計(jì)數(shù)初值 if(!in1)begingreen1<=8'b00110000;red2<=8'b00110000;end//30H,即30秒 elsebegingreen1<=8'b01100000;red2<=8'b01100000;end//60s if(!in2)beginred1<=8'b00100000;green2<=8'b00100000;end//20selsebeginred1<=8'b01000000;green2<=8'b01000000;end//40s yellow1<=8'b00000101;yellow2<=8'b00000101;//05sendalways@(posedgeclk)//分頻 if(count==25000000)begindiv<=1;count<=count+1;end elseif(count==50000000)begindiv<=0;count<=0;end elsecount<=count+1;always@(posedgediv)beginif(rst)//復(fù)位情況控制beginlight1<=3'b001; num1<=green1;endelseif(en)begin//使能有效開始控制計(jì)數(shù)if(!tim1)//開始控制begin//主干道交通燈點(diǎn)亮控制tim1<=1;case(state1)//狀態(tài)機(jī)s0:beginnum1<=green1;light1<=3'b001;state1<=s1;ends1:beginnum1<=yellow1;light1<=3'b010;state1<=s2;ends2:beginnum1<=red1;light1<=3'b100;state1<=s3;ends3:beginnum1<=yellow1;light1<=3'b010;state1<=s0;enddefault:light1<=3'b100;endcaseendelsebegin//倒數(shù)計(jì)時if(num1>0)if(num1[3:0]==0)beginnum1[3:0]<=4'b1001;num1[7:4]<=num1[7:4]-1;//十位減1endelsenum1[3:0]<=num1[3:0]-1;//個位減1if(num1==1)tim1<=0;endendelsebeginlight1<=3'b010;num1=2'b00;tim1<=0;endendalways@(posedgediv)//從干道beginif(rst)//復(fù)位情況控制beginlight2<=3'b100;num2<=red2;endelseif(en)beginif(!tim2)begintim2<=1;case(state1)s0:beginnum2<=red2;light2<=3'b100;state2<=s1;ends1:beginnum2<=yellow1;light2<=3'b010;state2<=s2;ends2:beginnum2<=green2;light2<=3'b001;state2<=s3;ends3:beginnum2<=yellow2;light2<=3'b010;state2<=s0;enddefault:light2<=3'b100;endcaseendelsebegin//倒數(shù)計(jì)時if(num2>0)if(num2[3:0]==0)beginnum2[3:0]<=4'b1001;num2[7:4]<=num2[7:4]-1;endelsenum2[3:0]<=num2[3:0]-1;if(num2==1)tim2<=0;endend elsebegintim2<=0;state2<=2'b00;light2<=3'b010;endendalways@(posedgeclk)begin//數(shù)碼管譯碼顯示case(num1[3:0])4'b0000:out1<=~7'b0111111;//0,3F4'b0001:out1<=~7'b0000110;//1,064'b0010:out1<=~7'b1011011;//2,5B4'b0011:out1<=~7'b1001111;//3,4F4'b0100:out1<=~7'b1100110;//4,664'b0101:out1<=~7'b1101101;//5,6D4'b0110:out1<=~7'b1111101;//6,7D4'b0111:out1<=~7'b0000111;//7,074'b1000:out1<=~7'b1111111;//8,7F4'b1001:out1<=~7'b1101111;//9,6Fdefault:out1<=~7'b0111111;//0,3Fendcaseendalways@(posedgeclk)begin//數(shù)碼管譯碼顯示case(num1[7:4])4'b0000:out2<=~7'b0111111;//0,3F4'b0001:out2<=~7'b0000110;//1,064'b0010:out2<=~7'b1011011;//2,5B4'b0011:out2<=~7'b1001111;//3,4F4'b0100:out2<=~7'b1100110;//4,664'b0101:out2<=~7'b1101101;//5,6D4'b0110:out2<=~7'b1111101;//6,7D4'b0111:out2<=~7'b0000111;//7,074'b1000:out2<=~7'b1111111;//8,7F4'b1001:out2<=~7'b1101111;//9,6Fdefault:out2<=~7'b0111111;//0,3Fendcaseendalways@(posedgeclk)begin//數(shù)碼管譯碼顯示case(num2[3:0])4'b0000:out3<=~7'b0111111;//0,3F4'b0001:out3<=~7'b0000110;//1,064'b0010:out3<=~7'b1011011;//2,5B4'b0011:out3<=~7'b1001111;//3,4F4'b0100:out3<=~7'b1100110;//4,664'b0101:out3<=~7'b1101101;//5,6D4'b0110:out3<=~7'b1111101;//6,7D4'b0111:out3<=~7'b0000111;//7,074'b1000:out3<=~7'b1111111;//8,7F4'b1001:out3<=~7'b1101111;//9,6Fdefault:out3<=~7'b0111111;//0,3Fendcaseendalways@(posedgeclk)begin//數(shù)碼管譯碼顯示case(num2[7:4])4'b0000:out4<=~7'b0111111;//0,3F4'b0001:out4<=~7'b0000110;//1,064'b0010:out4<=~7'b1011011;//2,5B4'b0011:out4<=~7'b1001111;//3,4F4'b0100:out4<=~7'b1100110;//4,664'b0101:out4<=~7'b1101101;//5,6D4'b0110:out4<=~7'b1111101;//6,7D4'b0111:out4<=~7'b0000111;//7,074'b1000:out4<=~7'b111111

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論