




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西北工業(yè)大學(xué)FPGA實(shí)驗(yàn)報(bào)告學(xué) 院: 軟件與微電子學(xué)院 學(xué)號(hào): 2011303596 姓名: 楊清山 專 業(yè): 微電子學(xué) 實(shí)驗(yàn)時(shí)間: 2013/11/11 實(shí)驗(yàn)地點(diǎn): 毅字樓335 指導(dǎo)教師: 韓兵 西北工業(yè)大學(xué)2013 年 11 月大作業(yè) 設(shè)計(jì)一個(gè)交通燈信號(hào)控制電路一、實(shí)驗(yàn)?zāi)康募耙髮?shí)驗(yàn)?zāi)康模和ㄟ^(guò)交通燈的設(shè)計(jì)與仿真綜合,體會(huì)復(fù)雜時(shí)序的實(shí)現(xiàn)方法,學(xué)會(huì)用框圖表示程序的設(shè)計(jì)思想,掌握中小規(guī)模集成電路的系統(tǒng)綜合設(shè)計(jì)方法。實(shí)驗(yàn)要求:設(shè)計(jì)一個(gè)交通燈信號(hào)控制電路。具體要求為:輸入為50MHz的時(shí)鐘和復(fù)位信號(hào),輸出為紅、綠、黃三個(gè)信號(hào)(高電平為亮)。復(fù)位信號(hào)(高電平)有效,紅、綠、黃燈滅;接著進(jìn)行如下循環(huán):
2、綠燈亮1分鐘,黃燈閃爍10秒,紅燈亮1分鐘。在此基礎(chǔ)上再加兩個(gè)數(shù)碼管,對(duì)倒計(jì)時(shí)的數(shù)顯示。二、實(shí)驗(yàn)設(shè)備(環(huán)境)及要求 實(shí)驗(yàn)EDA工具為: 預(yù)裝了Synplify Pro 9.6.2和ModelSim SE 6.2b的PC機(jī)。三、實(shí)驗(yàn)內(nèi)容與步驟1.設(shè)計(jì)思路概述總體上分為三個(gè)大模塊,即:頂層模塊、分頻模塊、控制模塊、譯碼顯示模塊。作用如下:頂層及控制模塊:此模塊做例化,和控制,是本程序的主體,對(duì)底層的分頻模塊和譯碼顯示模塊進(jìn)行例化,并且做控制設(shè)計(jì)。控制設(shè)計(jì)如下: 采用同步時(shí)序邏輯。包括一個(gè)循環(huán)計(jì)數(shù)器,三個(gè)比較器,always 控制。 通過(guò)分頻后的CLK1新號(hào)(1Hz),進(jìn)行對(duì)一個(gè)循環(huán)變量“k”的周期
3、為130的循環(huán),進(jìn)而控制三個(gè)燈的控制;具體循環(huán)為:clk1每進(jìn)行一次跳變,k值減1;當(dāng)K=0時(shí),重新復(fù)值為129。 通過(guò)比較器,每個(gè)燈的條件不同,當(dāng)129>=k>=70時(shí)綠燈亮,69>=k>=60黃燈閃爍,59>=k>=0紅燈亮。 對(duì)于數(shù)碼管輸出,當(dāng)129>=k>=70時(shí),數(shù)碼管個(gè)位輸出=(k-70)%10,十位輸出為(k-70-個(gè)位)/10;當(dāng)69>=k>=60數(shù)碼管個(gè)位輸出=(k-60)%10,十位輸出為(k-60-個(gè)位)/10,當(dāng)59>=k>=0時(shí),數(shù)碼管個(gè)位輸出=k%10十位輸出為(k-個(gè)位)/10。分頻模塊: 分
4、頻模塊用以把輸入的50MHz的信號(hào)轉(zhuǎn)換為1Hz信號(hào),便于其后的交通燈控制及數(shù)碼管輸出。譯碼模塊: 考慮到數(shù)字顯示需要兩個(gè)七段譯碼器,且在數(shù)字系統(tǒng)中,數(shù)字的表示都是采用二進(jìn)制,因?yàn)閮蓚€(gè)管子分別輸入,所以需要把循環(huán)變量k轉(zhuǎn)換為有用的十位和各位輸出。為了方便,把循環(huán)變量k減去各狀態(tài)的基數(shù)值后,用數(shù)學(xué)方法取十位和各位分別做輸入。如綠燈時(shí),129>=k>=70時(shí),數(shù)碼管個(gè)位輸出=(k-70)%10,十位輸出為(k-70-個(gè)位)/10。七段譯碼器的設(shè)計(jì)原理如圖: 2.總體設(shè)計(jì)框圖及說(shuō)明:Clk 50Hzrstblu循環(huán)變量k1290 yel控制Clk11Hzred 圖一輸入:clk 全局時(shí)鐘信
5、號(hào),50MHz rst 全局復(fù)位端,高電平有效輸出:ctrl_1s 倒計(jì)時(shí)個(gè)位上數(shù)字ctrl_10s 倒計(jì)時(shí)十位上數(shù)字 blu,yel,red 各個(gè)燈狀態(tài)框圖說(shuō)明: 狀態(tài)機(jī)的輸入,只有時(shí)鐘信號(hào)clk和復(fù)位信號(hào)reset.輸出為數(shù)碼管十位和個(gè)位的二進(jìn)制顯示狀態(tài)以及三個(gè)燈的顏色顯示(blu,yel,red,分別是綠黃紅燈,“1”表示燈亮,“0”表示滅)。輸入clk的頻率很大,需要通過(guò)計(jì)數(shù)器對(duì)其進(jìn)行分頻。首先計(jì)數(shù)產(chǎn)生一個(gè)1Hz的輸出,通過(guò)該輸出再次循環(huán)計(jì)數(shù),產(chǎn)生周期為130的計(jì)數(shù)變量,從而控制各個(gè)燈的亮滅。而控制黃燈閃爍的分頻,為方便起見(jiàn),仍以1s為單位,每秒鐘改變一次。用if嵌套語(yǔ)句來(lái)控制三燈亮與
6、滅,同時(shí)間接地進(jìn)行倒計(jì)時(shí)的過(guò)程,輸出個(gè)位和十位上的數(shù),直接用兩個(gè)七段譯碼顯示倒計(jì)時(shí)數(shù)。Rst信號(hào)是清零用的,為“1”時(shí),三個(gè)信號(hào)燈及循環(huán)變量k復(fù)位置“0”。 流程圖開(kāi)始輸入50MHzclk1:1Hz循環(huán)變量k計(jì)數(shù)70k12960k69blu=1yel=yelred=10k59 圖四顯示輸出3.時(shí)序說(shuō)明: 整段程序共有四個(gè)狀態(tài):初始狀態(tài)、綠燈狀態(tài)、黃燈狀態(tài)、紅燈狀態(tài)。 如果有rst的“1”狀態(tài),則要進(jìn)行清零,恢復(fù)到初始狀態(tài);這是在控制模塊的計(jì)數(shù)器會(huì)清零,倒計(jì)時(shí)不再進(jìn)行,三個(gè)燈都是滅的狀態(tài), Rst為“1”狀態(tài)跳轉(zhuǎn)為初始狀態(tài)的,等待著清零結(jié)束,開(kāi)始工作;此時(shí)七段譯碼也不會(huì)顯示。 清零結(jié)束后,系統(tǒng)開(kāi)
7、始正常工作。首先是分頻時(shí)鐘開(kāi)始工作,此時(shí)循環(huán)變量開(kāi)始循環(huán),綠燈亮60s,譯碼器開(kāi)始顯示倒計(jì)時(shí)的輸出,直到k=70。當(dāng)循環(huán)變量k<=69時(shí),黃燈閃爍10s,同時(shí)譯碼倒計(jì)時(shí),直到k=60;當(dāng)循環(huán)變量k<=59時(shí),紅燈亮,同時(shí)譯碼倒計(jì)時(shí)直到k=0。至此一個(gè)周期已經(jīng)完成,沿此過(guò)程循環(huán)進(jìn)行,直到reset信號(hào)的出現(xiàn)。初始K=K-1綠燈狀態(tài)K69K0使K=129K=K-1黃燈狀態(tài)紅燈狀態(tài)K=K-1K59 圖二4.模塊設(shè)計(jì)框圖、相關(guān)時(shí)序本程序分為三個(gè)模塊,頂層模塊、控制模塊、譯碼模塊,各模塊的設(shè)計(jì)框圖以及相關(guān)時(shí)序說(shuō)明如下:頂層及控制模塊框圖頂層控制譯碼顯示塊分頻 圖三輸入:clk 全局時(shí)鐘信號(hào),
8、50MHz rst 全局復(fù)位端,高電平有效輸出:led1 個(gè)位七段譯碼 led10 十位七段譯碼 時(shí)序說(shuō)明:加上時(shí)鐘信號(hào)之后,首先用reset清零,然后分頻模塊會(huì)分頻產(chǎn)生分頻時(shí)鐘clk1,根據(jù)分頻時(shí)鐘的高與低,進(jìn)而進(jìn)行變量循環(huán),然后會(huì)控制3個(gè)狀態(tài)之間的跳轉(zhuǎn),譯碼顯示模塊會(huì)同步通過(guò)數(shù)碼管來(lái)顯示倒計(jì)時(shí)數(shù);燈控信號(hào)blu,yel,red同時(shí)輸出對(duì)交通燈的控制。分頻模塊: 輸入50MHz的信號(hào),rst為“1”時(shí),計(jì)數(shù)器j置“0”,并在以后每經(jīng)歷一個(gè)系統(tǒng)時(shí)鐘周期時(shí)加1,知道k=49999999時(shí),clk1=clk1,同時(shí)k=0.到此分頻完成。(在實(shí)際代碼編寫中,為了代碼的精簡(jiǎn),此模塊已經(jīng)集成入頂層及控制
9、模塊)J=49999999計(jì)數(shù)器顯示計(jì)數(shù)clk 50MHz clk=clk rst 圖四譯碼顯示模塊:輸入端口: din_1s 顯示器個(gè)位數(shù)據(jù),由控制模塊輸入 din_10s 顯示器十位數(shù)據(jù),由控制模塊輸入輸出端口: led_data_1s 顯示器個(gè)位數(shù)據(jù)的譯碼 led_data_10s 顯示器十位數(shù)據(jù)的譯碼時(shí)序說(shuō)明: 此模塊接受主模塊輸出的個(gè)位和十位的數(shù)值控制,并間接受(系統(tǒng)時(shí)鐘)clk(50MHz) 和(全局復(fù)位)rst,及分頻時(shí)鐘clk1的控制,均為上升沿觸發(fā),當(dāng) rst 為高電平時(shí),電路復(fù)位,重新開(kāi)始工作。當(dāng)rst為低電平時(shí),電路正常。5.仿真及綜合結(jié)果表1 仿真結(jié)果信號(hào)解釋說(shuō)明信號(hào)解
10、釋備注clk系統(tǒng)時(shí)鐘, 50MHz為了方便,這里取2nsblu,yel,red最終三燈狀態(tài)分別綠紅燈,“1”為亮“0”為滅k循環(huán)計(jì)數(shù)變量用以狀態(tài)判斷控制led10倒計(jì)時(shí)十位七段譯碼數(shù)碼管十位顯示led1倒計(jì)時(shí)個(gè)位七段譯碼數(shù)碼管個(gè)位顯示out1倒計(jì)時(shí)個(gè)位上的數(shù)字控制模塊的輸出out10倒計(jì)時(shí)十位上的數(shù)字控制模塊的輸出rst系統(tǒng)控制變量高電平有效上圖中blu,yel,red,三個(gè)信號(hào)反映的綠黃紅交通燈的狀態(tài),其中包括綠燈亮60秒,黃燈以2HZ為周期閃爍,紅燈亮60s,總周期為130s。上圖為循環(huán)控制變量的值隨分頻后信號(hào)從129到0的循環(huán)計(jì)數(shù)。綜合結(jié)果:頂層及控制,分頻模塊的綜合RTL級(jí)電路如圖:譯
11、碼顯示模塊的綜合如下: RTL級(jí) 門級(jí)6. 代碼及注釋此為頂層及控制模塊代碼:include "./decode.v"module bulb(clk,rst,red,blu,yel,led1,led10); input clk,rst; output blu,yel,red,led1,led10; reg red,yel,blu; wire 6:0 led1; wire 6:0 led10; reg3:0 out10,out1; reg5:0 j; reg7:0 k; /j,k reg clk1; /initial begink='d129;blu<=0; y
12、el<=0;red<=0;/j=0;/clk1<=0; end/*/這是分頻部分功能實(shí)現(xiàn)/*?*always(posedge clk or posedge rst)begin if(rst) begin clk1<=0; j<=0; end else if(j=4) / begin j<=0; clk1<=clk1; end else begin j<=j+1; endendalways (posedge clk1)begin if(k='d0) k='d129; else k=k-1; end /*/此為控制部分/*?*alwa
13、ys (posedge clk1)if(!rst) /?res?1?beginif(k>='d70&&k<='d129) begin red<=0; blu<=1; out1=(k-70)%10; out10=(k-70-out1)/10; endelse if(k>='d60&&k<='d69)begin yel<=yel; /黃燈閃爍 blu<=0; out1=(k-60)%10; out10=(k-60-out1)/10; endelse red<=1; /yel<
14、=0; out1=k%10; out10=(k-out1)/10; endelsebegin blu<=0; yel<=0; red<=0; enddecode d(.din_1s(out1), .din_10s(out10), .led_data_1s(led1), .led_data_10s(led10);Endmodule以下是譯碼及顯示模塊代碼:module decode ( din_1s, /個(gè)位輸入 din_10s, / 十位輸入 led_data_1s, / 數(shù)碼管個(gè)位輸出 led_data_10s / 數(shù)碼管十位輸出 );input din_1s;input
15、din_10s;output 6:0 led_data_1s;output 6:0 led_data_10s;reg 6:0 led_data_1s;reg 6:0 led_data_10s; always(din_1s) begin case(din_1s) 0 : led_data_1s = 7'b0001000; 1 : led_data_1s = 7'b1101101; 2 : led_data_1s = 7'b0100010; 3 : led_data_1s = 7'b0100100; 4 : led_data_1s = 7'b1000101;
16、 5 : led_data_1s = 7'b0010100; 6 : led_data_1s = 7'b0010000; 7 : led_data_1s = 7'b0101101; 8 : led_data_1s = 7'b0000000; 9 : led_data_1s = 7'b0000100; default : led_data_1s = 7'b1111111; endcase end always(din_10s) begin case(din_10s) 0 : led_data_10s = 7'b0001000; 1 : le
17、d_data_10s = 7'b1101101; 2 : led_data_10s = 7'b0100010; 3 : led_data_10s = 7'b0100100; 4 : led_data_10s = 7'b1000101; 5 : led_data_10s = 7'b0010100; 6 : led_data_10s = 7'b0010000; 7 : led_data_10s = 7'b0101101; 8 : led_data_10s = 7'b0000000; 9 : led_data_10s = 7'b
18、0000100; default : led_data_10s = 7'b1111111; endcase endendmodule測(cè)試模塊代碼:timescale 1ns/1nsinclude "bulb.v"module top; reg clk,rst; wire red,blu,yel,led1,led10; /reg clk1,red,blu,yel;initialbegin rst=1; clk=1; #500 rst=0; #500 rst=1; #500 rst=0;endalways #20 clk=clk;bulb bulb(clk,rst,red,blu,yel,led1,led10);Endmodule5、 分析與討論電路關(guān)鍵是在進(jìn)行時(shí)序狀態(tài)轉(zhuǎn)換,倒計(jì)時(shí)計(jì)數(shù),控制黃燈閃爍過(guò)程,經(jīng)過(guò)分析,需要一個(gè)來(lái)判斷三個(gè)燈狀態(tài)的判斷條件。本電路主要運(yùn)用一個(gè)循環(huán)變量k,作為程序控制的靈魂,進(jìn)行各個(gè)狀態(tài)循環(huán),黃燈閃爍的判斷和數(shù)碼管的輸入。程序亮點(diǎn):為了數(shù)碼管的個(gè)位十位輸入,把循環(huán)變量k 進(jìn)行倒數(shù)計(jì)時(shí),這樣與數(shù)碼
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)和講師合同范例
- 2013合同范本格式
- 《有理數(shù)》教學(xué)反思
- 出租芒果合同范本
- 廠房裝修設(shè)計(jì)合同范本
- 北京金店轉(zhuǎn)讓合同范本
- 《天鵝》教學(xué)反思
- 勞務(wù)分包內(nèi)墻合同范本
- 《兒子的魚》閱讀題及答案
- 臺(tái)歷采購(gòu)合同范本
- 冷庫(kù)熱氟融霜操作
- 考生個(gè)人簡(jiǎn)歷及自述表
- 風(fēng)電機(jī)組偏航誤差產(chǎn)生機(jī)理及調(diào)整策略研究
- 人教版三年級(jí)下冊(cè)《道德與法治》電子教案
- GB/T 18684-2002鋅鉻涂層技術(shù)條件
- 第九講:信息與大數(shù)據(jù)倫理問(wèn)題-工程倫理
- 四年級(jí)美術(shù)素養(yǎng)附答案
- 2021年全國(guó)中學(xué)生天文奧林匹克競(jìng)賽預(yù)賽試題及答案
- 四年級(jí)下冊(cè)音樂(lè)教案-2.2我們美麗的祖國(guó) |接力版
- Quantum軟件培訓(xùn)手冊(cè)
- 服裝市場(chǎng)營(yíng)銷項(xiàng)目2服裝市場(chǎng)營(yíng)銷環(huán)境分析課件
評(píng)論
0/150
提交評(píng)論