EDA實(shí)驗(yàn)教程紅綠燈課件_第1頁(yè)
EDA實(shí)驗(yàn)教程紅綠燈課件_第2頁(yè)
EDA實(shí)驗(yàn)教程紅綠燈課件_第3頁(yè)
EDA實(shí)驗(yàn)教程紅綠燈課件_第4頁(yè)
EDA實(shí)驗(yàn)教程紅綠燈課件_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)EDA設(shè)計(jì)實(shí)驗(yàn)教程實(shí)驗(yàn)五 交通紅綠燈控制器北航計(jì)算機(jī)學(xué)院 艾明晶第1頁(yè),共39頁(yè)。8/4/20221內(nèi)容概要實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)要求實(shí)驗(yàn)原理實(shí)驗(yàn)方案實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)報(bào)告第2頁(yè),共39頁(yè)。8/4/20222了解交通紅綠燈控制器的工作原理。掌握建立狀態(tài)機(jī)的邏輯模型的方法。掌握狀態(tài)機(jī)的實(shí)現(xiàn)和多個(gè)狀態(tài)機(jī)的組合使用方法 實(shí)驗(yàn)?zāi)康牡?頁(yè),共39頁(yè)。8/4/20223假定十字路口馬路的A方向和B方向各有一組紅、黃、綠三個(gè)燈組成的交通燈,要求設(shè)計(jì)一個(gè)交通紅綠燈控制器,實(shí)現(xiàn)對(duì)這兩組交通燈的管理。正常時(shí),交替放行十字交叉路的兩個(gè)方向,放行時(shí)間相等;交通堵塞時(shí),由交通警察人工控制某方向的放行時(shí)間,以便按照交通負(fù)荷疏導(dǎo)阻

2、塞車輛。具體功能要求如下 :實(shí)驗(yàn)要求第4頁(yè),共39頁(yè)。8/4/20224在正常運(yùn)行狀態(tài)下,兩組交通燈按以下規(guī)律自動(dòng)進(jìn)行轉(zhuǎn)換,在不同時(shí)刻分別放行不同方向上的車輛:(綠,紅)50s(黃綠,紅)5s(黃,紅)20s(紅黃,紅)20s(紅,黃)10s(紅,綠)50s(紅,黃綠)5s(紅,黃)20s(紅,紅黃)20s(黃,紅)10s(綠,紅)50s 第5頁(yè),共39頁(yè)。8/4/20225人工放行:若某一方向發(fā)生交通阻塞,則交通警察按下該方向的放行按鈕來(lái)人工控制放行該方向,則紅綠燈自動(dòng)將相應(yīng)方向的道路放行,此后不會(huì)自動(dòng)放行另一個(gè)方向的道路,直到疏通后,按“恢復(fù)到正常狀態(tài)”按鈕,重新進(jìn)入正常運(yùn)行狀態(tài)。如果某方

3、向處于人工放行的狀態(tài),應(yīng)有指示燈指示這一情況。第6頁(yè),共39頁(yè)。8/4/20226人工控制放行遵循如下限制規(guī)則:有黃燈亮?xí)r,不允許立刻改變放行方向,必須按正常運(yùn)行到所需放行的方向時(shí),才保持放行該方向;每個(gè)方向的放行時(shí)間不得小于某一最小值(假定為30秒鐘),以免車輛頻繁起停。只有在(綠,紅)20s和(紅,綠)20s狀態(tài)下,可以人工控制改變放行方向,即直接跳轉(zhuǎn)到下一狀態(tài)。第7頁(yè),共39頁(yè)。8/4/20227基于狀態(tài)機(jī)的設(shè)計(jì)有限狀態(tài)機(jī) 有限狀態(tài)機(jī)(FSM,F(xiàn)inite State machine)是時(shí)序電路設(shè)計(jì)中經(jīng)常采用的一種方式,尤其適合于設(shè)計(jì)數(shù)字系統(tǒng)的控制模塊。在Verilog HDL中采用ca

4、se、if-else語(yǔ)句可以很好地描述基于狀態(tài)機(jī)的設(shè)計(jì)。 狀態(tài)機(jī)包括組合邏輯部分和寄存器部分。組合邏輯部分又包括次態(tài)邏輯和輸出邏輯,分別用于狀態(tài)譯碼和產(chǎn)生輸出信號(hào);寄存器部分用于存儲(chǔ)狀態(tài)。實(shí)驗(yàn)原理第8頁(yè),共39頁(yè)。8/4/20228狀態(tài)機(jī)的次態(tài)是現(xiàn)態(tài)及輸入信號(hào)的函數(shù),輸出信號(hào)根據(jù)狀態(tài)機(jī)的現(xiàn)態(tài)或輸入信號(hào)而定。狀態(tài)機(jī)可分為兩類:摩爾(Moore)型狀態(tài)機(jī)和米里(Mealy)型狀態(tài)機(jī)。Moore型狀態(tài)機(jī),其輸出只為狀態(tài)機(jī)當(dāng)前狀態(tài)的函數(shù),而與輸入無(wú)關(guān)。Mealy型狀態(tài)機(jī),其輸出不僅與狀態(tài)機(jī)當(dāng)前狀態(tài)有關(guān),而且與輸入有關(guān)。 第9頁(yè),共39頁(yè)。8/4/20229輸出現(xiàn)態(tài)次態(tài)現(xiàn)態(tài)輸入次態(tài)邏輯狀態(tài)寄存器輸出邏輯

5、輸出現(xiàn)態(tài)次態(tài)現(xiàn)態(tài)輸入次態(tài)邏輯狀態(tài)寄存器輸出邏輯(1)Moore型狀態(tài)機(jī)(2)Mealy型狀態(tài)機(jī)第10頁(yè),共39頁(yè)。8/4/202210狀態(tài)機(jī)的3種表示方法 狀態(tài)圖、狀態(tài)表和流程圖 輸入/輸出現(xiàn)態(tài)次態(tài)輸入現(xiàn)態(tài)輸出次態(tài)輸出Mealy型狀態(tài)圖的表示 Moore型狀態(tài)圖的表示 第11頁(yè),共39頁(yè)。8/4/202211起始狀態(tài)的選擇 起始狀態(tài)指電路復(fù)位后所處的狀態(tài),選擇一個(gè)合理的起始狀態(tài)將使整個(gè)系統(tǒng)簡(jiǎn)捷高效。對(duì)于有限狀態(tài)機(jī),必須有時(shí)鐘信號(hào)和復(fù)位信號(hào)!狀態(tài)編碼 采用log2N個(gè)觸發(fā)器來(lái)表示這N個(gè)狀態(tài) 采用N個(gè)觸發(fā)器來(lái)表示這N個(gè)狀態(tài)稱為一位熱碼狀態(tài)機(jī)編碼(One-Hot State Machine Enco

6、ding)。 第12頁(yè),共39頁(yè)。8/4/202212 采用Verilog HDL語(yǔ)言實(shí)現(xiàn)基于狀態(tài)機(jī)的設(shè)計(jì),就是在時(shí)鐘信號(hào)的觸發(fā)下,完成兩項(xiàng)任務(wù):(1)用case或if-else語(yǔ)句描述出狀態(tài)的轉(zhuǎn)移;(2)描述狀態(tài)機(jī)的輸出信號(hào)。 第13頁(yè),共39頁(yè)。8/4/202213輸入信號(hào)和輸出信號(hào) 輸入信號(hào)clk:時(shí)鐘信號(hào)(fclk = 50MHz);f1:人工放行A方向的控制信號(hào)(由“放行A”按鈕產(chǎn)生,高有效);f2:人工放行B方向的控制信號(hào)(由“放行B”按鈕產(chǎn)生,高有效);reset:復(fù)位信號(hào)(由“恢復(fù)到正常狀態(tài)”按鈕產(chǎn)生,高有效)。 第14頁(yè),共39頁(yè)。8/4/202214輸出信號(hào) f1s、f2s

7、:人工控制時(shí)A方向、B方向的放行狀態(tài),驅(qū)動(dòng)LED,高電平時(shí)點(diǎn)亮;s12.0、s22.0:交通燈信號(hào)輸出,分別用于控制A方向和B方向的紅、黃、綠燈的亮或滅,驅(qū)動(dòng)LED,高電平時(shí)點(diǎn)亮。 第15頁(yè),共39頁(yè)。8/4/202215設(shè)計(jì)思路根據(jù)其功能要求(如正常運(yùn)行狀態(tài)下的交通燈自動(dòng)轉(zhuǎn)換規(guī)律,人工放行功能及限制規(guī)則),確定其輸出信號(hào),以便控制兩組交通燈的亮或滅,并在交通崗內(nèi)向交通警察顯示人工放行的狀態(tài)。該控制器的邏輯模型可分為三個(gè)部分:工作狀態(tài)控制器、操作規(guī)則實(shí)現(xiàn)電路以及紅綠燈信號(hào)生成器。 第16頁(yè),共39頁(yè)。8/4/202216(1)工作狀態(tài)控制器 功能:根據(jù)輸入信號(hào)(f1、f2和reset)確定系統(tǒng)

8、當(dāng)前的工作狀態(tài)是為“正常運(yùn)行”狀態(tài)或“A一直放行”或“B一直放行”狀態(tài)。 工作狀態(tài)控制器是一個(gè)簡(jiǎn)單的具有三狀態(tài)(normal,fr1,fr2)的有限狀態(tài)機(jī)。其輸入分別為人工放行A方向的控制信號(hào)f1、人工放行B方向的控制信號(hào)f2及復(fù)位信號(hào)reset(均為高有效),其輸出為人工控制時(shí)A方向、B方向的放行狀態(tài) .預(yù)習(xí)時(shí)請(qǐng)畫(huà)出其狀態(tài)轉(zhuǎn)移圖。想一想,工作狀態(tài)控制器為Mealy型狀態(tài)機(jī)還是Moore型狀態(tài)機(jī),為什么? 第17頁(yè),共39頁(yè)。8/4/202217(2)操作規(guī)則實(shí)現(xiàn)電路 功能:根據(jù)交通紅綠燈控制器的功能要求,確定不同工作狀態(tài)下計(jì)時(shí)器的計(jì)數(shù)值。可用8位計(jì)數(shù)器來(lái)實(shí)現(xiàn)定時(shí)計(jì)數(shù)。正常運(yùn)行時(shí),計(jì)數(shù)器按照規(guī)

9、定的定時(shí)要求加1計(jì)數(shù);若要人工放行某方向,只要使計(jì)時(shí)器運(yùn)行到該放行狀態(tài)的最后一刻時(shí),計(jì)時(shí)器保持此時(shí)的計(jì)數(shù)值,使紅綠燈信號(hào)生成器暫停狀態(tài)的轉(zhuǎn)移即可。 第18頁(yè),共39頁(yè)。8/4/202218設(shè)計(jì)技巧:將放行某方向的整個(gè)時(shí)間(50s)分為兩段,前30s為正常運(yùn)行狀態(tài)下的最小放行時(shí)間,計(jì)時(shí)器正常計(jì)數(shù);后20s為允許人工放行時(shí)間,可根據(jù)工作狀態(tài)控制器的狀態(tài)機(jī)(f1s和f2s)進(jìn)行判斷,是否欲人工放行另一方向,或是繼續(xù)放行原方向,或是正常運(yùn)行,然后根據(jù)判斷結(jié)果來(lái)確定計(jì)時(shí)器的計(jì)數(shù)值。 (綠,紅)正常運(yùn)行正常運(yùn)行可人工放行可人工放行30s50s135s155s210s105s0s(紅,綠)(紅,綠)(綠,紅

10、)正常運(yùn)行限制規(guī)則示意圖 第19頁(yè),共39頁(yè)。8/4/202219(3)紅綠燈信號(hào)生成器 功能:根據(jù)定時(shí)計(jì)數(shù)器的計(jì)數(shù)值來(lái)確定紅綠燈信號(hào)的輸出。這是一個(gè)簡(jiǎn)單的狀態(tài)機(jī),共有10個(gè)不同狀態(tài),有6個(gè)輸出,為s12.0和s22.0,分別用于控制A、B兩個(gè)方向的紅、黃、綠燈的亮或滅??梢詫?duì)照?qǐng)D5-1“正常運(yùn)行狀態(tài)下兩組交通燈自動(dòng)轉(zhuǎn)換規(guī)律”,根據(jù)計(jì)時(shí)器的計(jì)數(shù)值來(lái)確定紅綠燈信號(hào)生成器的輸出。注意計(jì)時(shí)器的一個(gè)工作循環(huán)為一個(gè)正常的紅綠燈工作周期,即210秒。 預(yù)習(xí)時(shí)請(qǐng)畫(huà)出其狀態(tài)轉(zhuǎn)移圖。第20頁(yè),共39頁(yè)。8/4/202220設(shè)計(jì)方案的選擇 圖文混合設(shè)計(jì)方法:先將電路劃分為幾個(gè)子模塊,每個(gè)子模塊由Verilog H

11、DL語(yǔ)言描述實(shí)現(xiàn),然后生成邏輯符號(hào),頂層文件采用圖形文件來(lái)實(shí)現(xiàn)。 純文本描述方法:每個(gè)子模塊和頂層電路的連接關(guān)系都采用Verilog HDL語(yǔ)言描述實(shí)現(xiàn),對(duì)子模塊的調(diào)用采用模塊元件例化的方法。 第21頁(yè),共39頁(yè)。8/4/202221實(shí)驗(yàn)方案方案一1. 設(shè)計(jì)思路根據(jù)控制器的邏輯模型,將整個(gè)電路分為3個(gè)子模塊,即工作狀態(tài)控制器state_ctrl.v、操作規(guī)則實(shí)現(xiàn)電路rule.v和紅綠燈信號(hào)生成器sig_gen.v,它們均采用Verilog HDL語(yǔ)言實(shí)現(xiàn)。然后形成頂層圖形設(shè)計(jì)文件trgl_top.bdf。 第22頁(yè),共39頁(yè)。8/4/202222工作狀態(tài)控制器state_ctrl.v 第23頁(yè)

12、,共39頁(yè)。8/4/202223操作規(guī)則實(shí)現(xiàn)電路rule.v 第24頁(yè),共39頁(yè)。8/4/202224紅綠燈信號(hào)生成器sig_gen.v 第25頁(yè),共39頁(yè)。8/4/202225頂層圖形設(shè)計(jì)文件trgl_top.bdf第26頁(yè),共39頁(yè)。8/4/2022262. 對(duì)trgl_top.bdf進(jìn)行時(shí)序仿真。 3. 創(chuàng)建下載用頂層文件將trgl_top.bdf另起名保存(如trgl_top_p.bdf),并在其時(shí)鐘輸入引腳后增加時(shí)鐘分頻模塊clkdiv_50MHz_to_1Hz,將輸入時(shí)鐘fclk = 50MHz分頻為f = 1Hz,即T =1s。編譯,引腳鎖定。 第27頁(yè),共39頁(yè)。8/4/202

13、227編程下載文件trgl_top_p.bdf 第28頁(yè),共39頁(yè)。8/4/202228方案二1. 設(shè)計(jì)思路 將控制器的三部分電路有機(jī)地結(jié)合到一起,用一個(gè)文件采用Verilog HDL語(yǔ)言實(shí)現(xiàn),文件名為trgl2.v。其中用到了兩個(gè)reg型中間變量: (1)state:工作狀態(tài)控制狀態(tài)機(jī),具有3個(gè)狀態(tài)(normal, fr1, fr2)。 (2)8位寄存器cnt7.0:用于紅綠燈信號(hào)生成器的定時(shí)計(jì)數(shù)。采用3個(gè)always模塊來(lái)實(shí)現(xiàn)這三部分電路(實(shí)際上就是將方案一中的3個(gè)子模塊的Verilog HDL描述放到一個(gè)文本文件中)。第29頁(yè),共39頁(yè)。8/4/2022292. 在Quartus中進(jìn)行時(shí)

14、序仿真 3. 設(shè)計(jì)下載用頂層文件,編程下載 采用Verilog HDL語(yǔ)言設(shè)計(jì)頂層文件 引腳鎖定,編程下載 .第30頁(yè),共39頁(yè)。8/4/202230分別畫(huà)出工作狀態(tài)控制器和紅綠燈信號(hào)生成器的狀態(tài)轉(zhuǎn)移圖,操作規(guī)則實(shí)現(xiàn)電路的程序流程圖 采用方案一或方案二(有余力的同學(xué)也可以兩種方案都采用),按實(shí)驗(yàn)要求給出的功能要求設(shè)計(jì)交通紅綠燈控制器。 實(shí)驗(yàn)內(nèi)容第31頁(yè),共39頁(yè)。8/4/202231仿真 使輸入信號(hào)均無(wú)效,仿真至少一個(gè)循環(huán)周期的正常運(yùn)行狀態(tài)。觀察狀態(tài)機(jī)state1.0以及輸出信號(hào)f1s、f2s、s12.0和s22.0的變化。將仿真結(jié)果保存為trgl_top(normal).vwf。 正常運(yùn)行時(shí)

15、的仿真參考波形一:第32頁(yè),共39頁(yè)。8/4/202232正常運(yùn)行時(shí)的仿真參考波形二(210秒為一周期):第33頁(yè),共39頁(yè)。8/4/202233在不同的時(shí)段給定不同的輸入信號(hào),在每種情況下觀察狀態(tài)機(jī)state1.0以及輸出信號(hào)f1s、f2s、s12.0和s22.0的變化.第34頁(yè),共39頁(yè)。8/4/202234設(shè)計(jì)下載用頂層文件 仿真完全正確后,在原設(shè)計(jì)基礎(chǔ)上增加時(shí)鐘分頻模塊,將輸入時(shí)鐘fclk = 50MHz分頻為f = 1Hz,即T = 1s,形成下載用頂層文件(可以為圖形設(shè)計(jì)文件或.v文本設(shè)計(jì)文件)。對(duì)下載用頂層文件進(jìn)行全編譯。 第35頁(yè),共39頁(yè)。8/4/202235引腳鎖定 本實(shí)驗(yàn)

16、采用模式3所有按鍵為琴鍵式按鍵,即當(dāng)按下鍵時(shí),輸出為高電平;當(dāng)松開(kāi)鍵時(shí),輸出為低電平??赏ㄟ^(guò)按下鍵的時(shí)間的長(zhǎng)短來(lái)控制正脈沖的寬度。 clk:系統(tǒng)時(shí)鐘信號(hào),50MHz,接FPGA引腳Pin28。注意應(yīng)將下圖中的J6插到Clock0的位置,并將實(shí)驗(yàn)箱右下角“時(shí)鐘頻率選擇”區(qū)域Clock0的時(shí)鐘選擇跳線接到50MHz的位置。 第36頁(yè),共39頁(yè)。8/4/202236編程下載 利用GW48-SOPC+開(kāi)發(fā)系統(tǒng)實(shí)現(xiàn)設(shè)計(jì)的編程下載。編程器件為EP1C12Q240C8。使用開(kāi)發(fā)系統(tǒng)上的晶振提供的全局時(shí)鐘信號(hào)(fclk = 50MHz)(Pin28),用琴鍵式按鈕開(kāi)關(guān)鍵1、鍵2和鍵3(均為高有效)實(shí)現(xiàn)人工控制

17、放行A方向和B方向、復(fù)位功能,用8個(gè)發(fā)光二極管(高有效)D1D8,分別顯示輸出信號(hào)s12.0、s22.0、f1s和f2s。 第37頁(yè),共39頁(yè)。8/4/202237在線校驗(yàn) 下載后,仔細(xì)觀察:紅綠燈應(yīng)按設(shè)定的時(shí)間規(guī)律自動(dòng)切換,D1D8八個(gè)LED分別對(duì)應(yīng)的是:A方向的紅黃綠,B方向的紅黃綠,A方向的放行狀態(tài),B方向的放行狀態(tài)。 然后按下鍵1,表示欲人工放行A方向,則相應(yīng)LED有顯示;同時(shí)兩個(gè)方向的紅綠燈按正常運(yùn)行規(guī)律自動(dòng)切換,當(dāng)運(yùn)行到放行A方向時(shí),則保持放行該方向。再按下鍵2,表示欲人工放行B方向,則相應(yīng)LED有顯示;同時(shí)兩個(gè)方向的紅綠燈按正常運(yùn)行規(guī)律自動(dòng)切換,當(dāng)運(yùn)行到放行B方向時(shí),則保持放行該方向。 再按下鍵3,表示清除人工方向的控制,則交通燈開(kāi)始自動(dòng)轉(zhuǎn)換紅黃綠燈的狀態(tài)。 第38頁(yè),共39頁(yè)。8/4/202238給出紅綠燈信號(hào)生成器和工作狀態(tài)控制器的狀態(tài)轉(zhuǎn)移圖,以及操作規(guī)則實(shí)現(xiàn)電路的程序流程圖。 給出控制器邏輯模型的仿真波形的截圖,并根據(jù)仿真結(jié)果詳細(xì)分析交通

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論