EDA課程設(shè)計(jì)交通燈-設(shè)計(jì)報(bào)告_第1頁(yè)
EDA課程設(shè)計(jì)交通燈-設(shè)計(jì)報(bào)告_第2頁(yè)
EDA課程設(shè)計(jì)交通燈-設(shè)計(jì)報(bào)告_第3頁(yè)
EDA課程設(shè)計(jì)交通燈-設(shè)計(jì)報(bào)告_第4頁(yè)
EDA課程設(shè)計(jì)交通燈-設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩24頁(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)介

課程設(shè)計(jì)報(bào)告課程 EDA課程設(shè)計(jì) 題目 十字路口交通燈設(shè)計(jì)系別 物理與電子工程學(xué)院年級(jí) 08級(jí)專業(yè)電子科學(xué)與技術(shù)班級(jí)三學(xué)號(hào)04061011學(xué)生姓名 張崇光張浩趙峰章維指導(dǎo)教師 張惠國(guó)職稱講師設(shè)計(jì)時(shí)間 2011.6.18-7.8 常熟理工學(xué)院課程設(shè)計(jì)報(bào)告常熟理工學(xué)院課程設(shè)計(jì)報(bào)告#目錄TOC\o"1-5"\h\z\o"CurrentDocument"前言 2\o"CurrentDocument"第一章題目 3\o"CurrentDocument"題目名稱 3\o"CurrentDocument"題目?jī)?nèi)容及要求 3\o"CurrentDocument"題目設(shè)計(jì)意義 3\o"CurrentDocument"第二章分析與設(shè)計(jì) 4\o"CurrentDocument"交通燈硬件電路控制原理 4\o"CurrentDocument"交通燈程序設(shè)計(jì)構(gòu)想 4\o"CurrentDocument"程序設(shè)計(jì)論證 4系統(tǒng)設(shè)計(jì)框圖 5\o"CurrentDocument"第三章VHDL程序設(shè)計(jì) 6系統(tǒng)輸入輸出端口設(shè)計(jì) 6系統(tǒng)整體設(shè)計(jì) 6系統(tǒng)控制狀態(tài)機(jī) 6VHDL狀態(tài)機(jī)代碼設(shè)計(jì) 7\o"CurrentDocument"紅、黃、綠燈控制設(shè)計(jì) 9數(shù)碼管顯示模塊設(shè)計(jì) 11\o"CurrentDocument"第四章系統(tǒng)仿真及功能描述 13QuartusII時(shí)序仿真 13\o"CurrentDocument"系統(tǒng)功能描述 13工作模式選擇 13正常工作模式下的運(yùn)行狀況 13其它工作模式介紹 14\o"CurrentDocument"第五章總結(jié)與體會(huì) 15\o"CurrentDocument"參考文獻(xiàn) 16\o"CurrentDocument"附錄 17前言現(xiàn)代電子產(chǎn)品正在以前所未有的革新速度,向著功能多樣化、體積最小化、功耗最低化的方向迅速發(fā)展。它與傳統(tǒng)電子產(chǎn)品在設(shè)計(jì)上的顯著區(qū)別之一就是大量使用大規(guī)模可編程邏輯器件,以提高產(chǎn)品性能、縮寫(xiě)產(chǎn)品體積、降低產(chǎn)品消耗;區(qū)別之二就是廣泛運(yùn)用現(xiàn)代計(jì)算機(jī)技術(shù),以提高電子設(shè)計(jì)自動(dòng)化程度,縮短開(kāi)發(fā)周期,提高產(chǎn)品競(jìng)爭(zhēng)力。EDA(ElectronicDesignAutomation,電子設(shè)計(jì)自動(dòng)化)技術(shù)正是為了適應(yīng)現(xiàn)代電子產(chǎn)品設(shè)計(jì)的要求,吸收多學(xué)科最新成果而形成的一門新技術(shù)。EDA技術(shù)伴隨著計(jì)算機(jī)、集成電路、電子系統(tǒng)設(shè)計(jì)的發(fā)展,經(jīng)歷了計(jì)算機(jī)輔助設(shè)計(jì)(ComputerAssistDesign,簡(jiǎn)稱CAD)、計(jì)算機(jī)輔助工程設(shè)計(jì)(ComputerAssistEngineeringDesign,簡(jiǎn)稱CAE)和電子設(shè)計(jì)自動(dòng)化(ElectronicDesignAutomation,簡(jiǎn)稱EDA)三個(gè)發(fā)展階段。利用EDA技術(shù)進(jìn)行電子系統(tǒng)的設(shè)計(jì),具有以下幾個(gè)特點(diǎn):。用軟件的方式設(shè)計(jì)硬件;②用軟件方式設(shè)計(jì)的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)的開(kāi)發(fā)軟件自動(dòng)完成的;Q設(shè)計(jì)過(guò)程中可用有關(guān)軟件進(jìn)行各種仿真;④系統(tǒng)可現(xiàn)場(chǎng)編程,在線升級(jí);⑸整個(gè)系統(tǒng)可集成在一個(gè)芯片上,體積小、功耗低、可靠性高。因此,EDA技術(shù)是現(xiàn)代電子設(shè)計(jì)的發(fā)展趨勢(shì)。EDA技術(shù)是一門涉及多學(xué)科的綜合性技術(shù),內(nèi)容廣泛,所謂EDA技術(shù),就是以大規(guī)模可編程邏輯器件為設(shè)計(jì)載體,以硬件描述語(yǔ)言為系統(tǒng)邏輯描述的主要表達(dá)方式,以計(jì)算機(jī)、大規(guī)模可編程邏輯器件的開(kāi)發(fā)軟件及實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)為設(shè)計(jì)工具,通過(guò)有關(guān)的開(kāi)發(fā)軟件,自動(dòng)完成用軟件方式設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡(jiǎn)、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。可編程邏輯器件(簡(jiǎn)稱PLD)是一種由用戶編程以實(shí)現(xiàn)某種邏輯功能的新型邏輯器件。FPGA和CPLD分別是現(xiàn)場(chǎng)可編程門陣列和復(fù)雜可編程邏輯器件的簡(jiǎn)稱?,F(xiàn)在,F(xiàn)PGA和CPLD器件的應(yīng)用已十分廣泛,它們將隨著EDA技術(shù)的發(fā)展而成為電子設(shè)計(jì)領(lǐng)域的重要角色。國(guó)際上生產(chǎn)FPGA/CPLD的主流公司,并且在國(guó)內(nèi)占有市場(chǎng)份額較大的主要是Xilinx,Altera,Lattice三家公司。FPGA在結(jié)構(gòu)上主要分為三個(gè)部分,即可編程邏輯單元,可編程輸入/輸出單元和可編程連線三個(gè)部分。CPLD在結(jié)構(gòu)上主要包括三個(gè)部分,即可編程邏輯宏單元,可編程輸入/輸出單元和可編程內(nèi)部連線。高集成度、高速度和高可靠性是FPGA/CPLD最明顯的特點(diǎn),其時(shí)鐘延時(shí)可小至ns級(jí)。結(jié)合其并行工作方式,在超高速應(yīng)用領(lǐng)域和實(shí)時(shí)測(cè)控方面有著非常廣闊的應(yīng)用前景。在高可靠應(yīng)用領(lǐng)域,如果設(shè)計(jì)得當(dāng),將不會(huì)存在類似于MCU的復(fù)位不可靠和PC機(jī)可能跑飛等問(wèn)題。FPGA/CPLD的高可靠性還表現(xiàn)在幾乎可將整個(gè)系統(tǒng)下載于同一芯片中,實(shí)現(xiàn)所謂片上系統(tǒng),從而大大縮小了體積,易于管理和屏蔽。由于FPGA/CPLD的集成規(guī)模非常大,因此可利用先進(jìn)的EDA工具進(jìn)行電子系統(tǒng)設(shè)計(jì)和產(chǎn)品開(kāi)發(fā)。由于開(kāi)發(fā)工具的通用性、設(shè)計(jì)語(yǔ)言的標(biāo)準(zhǔn)化以及設(shè)計(jì)過(guò)程幾乎與所用器件的硬件結(jié)構(gòu)無(wú)關(guān),因而設(shè)計(jì)開(kāi)發(fā)成功的各類邏輯功能塊軟件有很好的兼容性和可移植性。它幾乎可用于任何型號(hào)和規(guī)模的FPGA/CPLD中,從而使得產(chǎn)品設(shè)計(jì)效率大幅度提高,可以在很短時(shí)間內(nèi)完成十分復(fù)雜的系統(tǒng)設(shè)計(jì),這正是產(chǎn)品快速進(jìn)入市場(chǎng)最寶貴的特征。第一章題目題目名稱十字路口交通燈設(shè)計(jì)題目?jī)?nèi)容及要求針對(duì)現(xiàn)實(shí)生活中的十字路口交通燈,實(shí)現(xiàn)基于FPGA的控制設(shè)計(jì),并實(shí)現(xiàn)以下基本功能:.顯示十字路口東西、南北兩個(gè)方向的紅、黃、綠燈的指示狀態(tài)。.用兩組紅、黃、綠三色燈作為兩個(gè)方向的紅、黃、綠燈。.用兩組數(shù)碼管作為東西和南北方向的倒計(jì)時(shí)顯示。1.3題目設(shè)計(jì)意義通過(guò)“十字路口交通燈設(shè)計(jì)”,可訓(xùn)練我們綜合運(yùn)用學(xué)過(guò)的數(shù)字電路的基本知識(shí),獨(dú)立設(shè)計(jì)比較復(fù)雜的數(shù)字電路的能力。使我們?cè)谠O(shè)計(jì)中熟練掌握VHDL語(yǔ)言的編程,并熟練掌握相關(guān)編程、仿真軟件的操作等。第二章分析與設(shè)計(jì)2.1交通燈硬件電路控制原理一般我們生活中的十字路口在硬件電路設(shè)計(jì)上,采用“對(duì)面鏡像”的方法設(shè)計(jì)。即一個(gè)通行道兩邊的指示燈及倒計(jì)時(shí)時(shí)間相同的。這是因?yàn)榈缆穬蛇吢房谛枰ㄐ械娜?、車是相向而行的,這樣的設(shè)計(jì)既降低了軟件設(shè)計(jì)架構(gòu)要求,在硬件上又容易實(shí)現(xiàn)且正確可靠。2.2交通燈程序設(shè)計(jì)構(gòu)想初步構(gòu)思設(shè)想,整個(gè)程序架構(gòu)可以分為以下幾個(gè)部分來(lái)進(jìn)行設(shè)計(jì):.時(shí)鐘分頻模塊,對(duì)輸入的時(shí)鐘進(jìn)行需要的分頻,使系統(tǒng)正確工作;.數(shù)碼管倒計(jì)時(shí)時(shí)間顯示,分別顯示主干道和支道通行的倒計(jì)時(shí)時(shí)間;.紅、綠、黃色交通燈的兩滅控制設(shè)計(jì);.外部輸入控制部分,即調(diào)模式、檢修模式的控制等。2.3程序設(shè)計(jì)論證整個(gè)硬件電路以總線輸入時(shí)鐘做為同步信號(hào)進(jìn)行工作,那么針對(duì)題目所要求的經(jīng)過(guò)30秒紅燈(綠燈)和5秒黃燈的定時(shí)時(shí)間間隔。我們必須通過(guò)對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻得到一個(gè)較低頻率的信號(hào)作為計(jì)時(shí)時(shí)間的基準(zhǔn)信號(hào)。那么主干道和支道的計(jì)時(shí)時(shí)間主要以數(shù)碼管的形式進(jìn)行顯示。每個(gè)通道設(shè)有兩位數(shù)碼管,共有四位數(shù)碼管顯示當(dāng)前交通狀態(tài)的倒計(jì)時(shí)時(shí)間。使用掃描驅(qū)動(dòng)設(shè)計(jì),即分時(shí)對(duì)位碼使能操作,利用人眼睛的成像延時(shí)來(lái)達(dá)到“靜態(tài)”顯示的效果。在交通燈的每個(gè)狀態(tài)的控制顯示可以使用簡(jiǎn)單的“米里”型狀態(tài)機(jī)實(shí)現(xiàn)。以系統(tǒng)當(dāng)前狀態(tài)和系統(tǒng)外部輸入的控制信號(hào)決定系統(tǒng)的下一個(gè)狀態(tài)。在程序代碼設(shè)計(jì)上也可簡(jiǎn)單實(shí)現(xiàn)。2.4系統(tǒng)設(shè)計(jì)框圖系統(tǒng)晶振輸入生成系統(tǒng)工作的時(shí)鐘信號(hào)工作模式選擇東西、南北兩個(gè)方向的

紅、黃、綠燈顯示東西、南北兩個(gè)方向的倒計(jì)時(shí)顯示第三章VHDL程序設(shè)計(jì)3.1系統(tǒng)輸入輸出端口設(shè)計(jì)對(duì)設(shè)計(jì)課題的總體考慮,在該交通燈控制系統(tǒng)中所涉及的輸入有:系統(tǒng)時(shí)鐘信號(hào)CLK,系統(tǒng)復(fù)位RST、調(diào)試模式KEY_D、檢修模式等按鍵輸入。輸出端口有:數(shù)碼管顯示段碼信號(hào)DATAOUT,數(shù)碼管位選信號(hào)LED_BIT以及各路口的紅燈、綠燈、黃燈顯示。具體定義如下:ENTITYtrafficISPORT(clk:INstd_logic; --系統(tǒng)輸入時(shí)鐘rst:INstd_logic; --復(fù)位按鍵輸入key_d:INstd_logic;--調(diào)試按鍵輸入key_m:INstd_logic; --主干道(東西)方向通行緊急按鍵key_b:INstd_logic; --支道(南北)方向通行緊急按鍵--數(shù)碼管顯示dataout:OUTstd_logic_vector(7DOWNTO0);--數(shù)碼管段數(shù)據(jù)led_bit:OUTstd_logic_vector(3DOWNTO0);--數(shù)碼管使能--紅綠黃燈顯示lightY_m:OUTstd_logic_vector(1DOWNTO0);--黃燈_主干道(東西)方向lightY_b:OUTstd_logic_vector(1DOWNTO0);--支道lightG_m:OUTstd_logic_vector(1DOWNTO0);--綠燈_主干道方向lightG_b:OUTstd_logic_vector(1DOWNTO0);--支道lightR_m:OUTstd_logic_vector(1DOWNTO0);--紅燈_主干道方向lightR_b:OUTstd_logic_vector(1DOWNTO0));--支道ENDtraffic;3.2系統(tǒng)整體設(shè)計(jì)3.2.1系統(tǒng)控制狀態(tài)機(jī)在整體控制上,考慮到該系統(tǒng)具有有限個(gè)狀態(tài),且在各狀態(tài)機(jī)進(jìn)行轉(zhuǎn)換。那么可以是用“有限狀態(tài)機(jī)”(FSM)進(jìn)行設(shè)計(jì)。1.系統(tǒng)狀態(tài)可描述為:Q.當(dāng)主干道綠燈通行時(shí),顯示倒計(jì)時(shí)(30S)并支道紅燈亮;。當(dāng)計(jì)時(shí)時(shí)間到后主干道黃燈亮(5S),支道依然紅燈亮;Q.主干道紅燈亮,支道綠燈亮(30S);。支道黃燈等待,主干道仍然保持紅燈亮(5S)。.轉(zhuǎn)狀態(tài)。2.系統(tǒng)狀態(tài)圖:入「主干道綠燈亮、支/支道紅燈亮(30S)J(主干道紅燈亮支道黃燈亮(5S)< /'主干道黃燈燈亮]支道紅燈亮(5S) \1 1按鍵輸入〉 )——U主干道紅燈亮 、/支道綠燈亮(30S)3.2.2VHDL狀態(tài)機(jī)代碼設(shè)計(jì)PROCESS(div_cnt(20),rst,key_m,key_b,key_d)BEGIN--判斷是否為調(diào)試模式IF(NOTkey_d='1')THEN--調(diào)試按鍵按下,調(diào)試模式計(jì)時(shí)time_s<=time_y<=ELSEtime_s<=time_y<=!!!!0001";0010";!!0011";"0101";--紅燈10秒--黃燈2秒--正常模式運(yùn)行--紅燈30秒--黃燈5秒ENDIF;--正常進(jìn)程開(kāi)始IF(NOTrst='1')THEN--復(fù)位亮紅燈state<=red_m;second_m<="0011";--三十秒倒計(jì)時(shí)初值second_b<="0011";first_m<="0000";first_b<="0000";ELSIF(NOTkey_m='1')THEN--主干道緊急通行state<=green_m;ELSIF(NOTkey_b='1')THEN--支道緊急通行state<=red_m;ELSIF(div_cnt(24)'EVENTANDdiv_cnt(24)='1')THENCASEstateISWHENred_m=>--主干道紅燈狀態(tài),支道綠燈IF(first_m/="0000"orfirst_b/="0000")THENfirst_m<=first_m-"0001"; --計(jì)時(shí)秒位減1first_b<=first_b-"0001";ELSEIF(second_m/="0000"orsecond_b/="0000")THENsecond_m<=second_m-"0001";--計(jì)時(shí)十位減1second_b<=second_b-"0001";first_m<="1001";first_b<="1001";ELSEfirst_m<="1001";first_b<="1001";ELSEstate<=yellow_b;--first_b<="0101";first_b<=time_y;second_b<="0000";first_m<="0000";second_m<="0000";ENDIF;ENDIF;WHENgreen_m=>--主干道綠燈狀態(tài),--計(jì)時(shí)個(gè)位復(fù)位9--紅燈計(jì)時(shí)結(jié)束,準(zhǔn)備綠燈--支道黃燈5秒--支道黃燈5秒--主干道為0等待支道紅燈IF(first_m/="0000"orfirst_b/="0000")THENfirst_m<=first_m-"0001";first_b<=first_b-"0001";ELSEIF(second_m/="0000"orsecond_b/="0000")THENfirst_m<="1001";first_b<="1001";second_m<=second_m-"0001";second_b<=second_b-"0001";ELSEstateELSEstate<=yellow_m;--first_m<="0101";first_m<=time_y;second_m<="0000";first_b<="0000";second_b<="0000";ENDIF;ENDIF;WHENyellow_b=>--支道黃燈狀態(tài)--主干道綠燈計(jì)時(shí)結(jié)束,轉(zhuǎn)為黃燈過(guò)渡--黃燈計(jì)時(shí)初值5秒--黃燈計(jì)時(shí)初值5秒IF(first_b/="0000"ORsecond_b/="0000")THENIF(second_b/="0000")THEN --此步正常不執(zhí)行first_b<="1001";second_b<=second_b-"0001";

ELSEfirst_b<=first_b-"0001"; --支道黃燈計(jì)時(shí)減1ENDIF;ELSEstate<=green_m; --轉(zhuǎn)為主干道綠燈,支道紅燈--second_m<="0011"; --復(fù)位紅燈計(jì)時(shí)初值second_m<=time_s; --復(fù)位紅燈計(jì)時(shí)初值first_m<="0000";--second_b<="0011";second_b<=time_s;first_b<="0000";ENDIF;WHENyellow_m=>--主干道黃燈狀態(tài)IF(first_m/="0000"ORsecond_m/="0000")THENIF(second_m/="0000")THEN --此步正常不執(zhí)行first_m<="1001";second_m<=second_m-"0001";--支道黃燈計(jì)時(shí)減1--支道黃燈計(jì)時(shí)減1--轉(zhuǎn)為主干道紅燈,支道綠燈--復(fù)位紅燈計(jì)時(shí)初值--復(fù)位紅燈計(jì)時(shí)初值first_m<=first_m-"0001ENDIF;ELSEstate<=red_m;--second_m<="0011";second_m<=time_s;first_m<="0000";--second_b<="0011";second_b<=time_s;first_b<="0000";ENDIF;WHENOTHERS=>first_m<="0000";second_m<="0000";first_b<="0000";second_b<="0000";ENDCASE;ENDIF;ENDPROCESS;3.3紅、黃、綠燈控制設(shè)計(jì)由于交通燈設(shè)計(jì)的“對(duì)面鏡像”原則,所以只需實(shí)現(xiàn)對(duì)兩組紅、黃、綠燈的控制即可。但是,實(shí)驗(yàn)板上的LED小燈都是獨(dú)立連接,所以在程序中分開(kāi)控制,但控制信號(hào)相同。程序代碼設(shè)計(jì)如下:--交通燈亮滅控制PROCESS(state)BEGINCASEstateISWHENred_m=>lightR_m<="00";--主干道紅燈亮lightG_b<="00";--支道綠燈亮--支道等待黃燈lightR_b<="11";--關(guān)閉其它交通燈lightG_m<="11";lightY_m<="11";lightY_b<="11";WHENgreen_m=>lightG_m<="00";--主干道綠燈亮lightR_b<="00";--支道紅燈亮--主干道等待黃燈lightG_b<="11";--關(guān)閉其它交通燈lightR_m<="11";lightY_m<="11";lightY_b<="11";WHENyellow_m=>lightY_m<="00";--主干道黃燈亮lightR_b<="00";--支道紅燈繼續(xù)點(diǎn)亮lightY_b<="11";--關(guān)閉其它交通燈lightR_m<="11";lightG_m<="11";lightG_b<="11";WHENyellow_b=>lightY_b<="00";--支道黃燈亮lightR_m<="00";--主干道紅燈繼續(xù)點(diǎn)亮lightY_m<="11";--關(guān)閉其它交通燈lightR_b<="11";lightG_m<="11";lightG_b<="11";WHENOTHERS=>lightR_m<="00";lightR_b<="00";lightG_m<="11";lightG_b<="11";lightY_m<="11";lightY_b<="11";ENDCASE;ENDPROCESS;3.4數(shù)碼管顯示模塊設(shè)計(jì)設(shè)計(jì)要求使用兩組數(shù)碼管作為南北、東西方向的倒計(jì)時(shí)顯示。為了節(jié)省I/O端口,采用動(dòng)態(tài)掃描方式實(shí)現(xiàn)數(shù)碼管的顯示。即等間隔的對(duì)每一個(gè)數(shù)碼管進(jìn)行掃描顯示,獲得“同時(shí)”顯示的效果。在日常生活中可知,南北、東西方向的計(jì)時(shí)時(shí)間并不是相同的,例如當(dāng)南北方向紅燈亮,東西方向綠燈亮?xí)r,南北倒計(jì)時(shí)時(shí)間為35S,而東西方向綠燈倒計(jì)時(shí)為30S,之后東西方向進(jìn)入黃燈過(guò)渡階段,即5s的倒計(jì)時(shí)。綜合以上設(shè)計(jì)要求,代碼如下:PROCESS(div_cnt(15),rst)—等時(shí)掃描Beginif(rst='0')thenen_bit<="1110";elsif(div_cnt(15)'eventanddiv_cnt(15)='1')thenen_count<=en_count+"01";CAsEen_countIsWHEN"00"=>en_bit<="1110";WHEN"01"=>en_bit<="1101";WHEN"10"=>en_bit<="1011";WHEN"11"=>en_bit<="0111";ENDCAsE;endif;ENDPROCEss;--數(shù)碼管位碼掃描驅(qū)動(dòng)PROCEss(en_bit,first_m,first_b,second_m,second_b)BeginCAsEen_bitIsWHEN"1110"=>data4<=first_b;WHEN"1101"=>data4<=second_b;WHEN"1011"=>data4<=first_m;WHEN"0111"=>data4<=second_m;WHENOTHERs=>data4<=first_b;ENDCAsE;ENDPROCEss;--數(shù)碼管段碼驅(qū)動(dòng)顯示PROCEss(data4)BeginCAsEdata4is--數(shù)碼管段碼驅(qū)動(dòng)WHEN"0000"=>dataout<="11000000";--0WHEN"0001"=>dataout<="11111001";--1WHEN"0010"=>dataout<="10100100";--2WHEN"0011"=>dataout<="10110000";--3WHEN"0100"=>dataout<="10011001";--4WHEN"0101"=>dataout<="10010010";--5WHEN"0110"=>dataout<="10000010";--6WHEN"0111"=>dataout<="11111000";--7WHEN"1000"=>dataout<="10000000";--8WHEN"1001"=>dataout<="10010000";--9WHENOTHERS=>dataout<="11000000";--0ENDCASE;ENDPROCESS;第四章系統(tǒng)仿真及功能描述QuartusU時(shí)序仿真對(duì)所編寫(xiě)的代碼進(jìn)行時(shí)序仿真,Quartus時(shí)序仿真圖如下:FIrE由VinarPrcjaciAaiignmaniiPracaiangToehWndowHrip 4I@SliihlM^inRoom-^taUakHi?nWd¥C4fiiMk!i?口f3*41R物i-Fl*3iiwii^r^iatJ■|.L-nFuidiintiFIrE由VinarPrcjaciAaiignmaniiPracaiangToehWndowHrip 4I@SliihlM^inRoom-^taUakHi?nWd¥C4fiiMk!i?口f3*41R物i-Fl*3iiwii^r^iatJ■|.L-nFuidiinti口HLi。號(hào)Pnrjeri —i-m砧口|沙Smndjtion值相固L(1g3lNoIkeSfkrwSummeBAcn留團(tuán)SrtlingsSimula^B」Simula^NU^g占戶心Flar:lc?]iL]jfa£^^x,必H七方lT*t日口.IZEniijjJJWiH3T.53FfihMWiLZT4.E6fi:Skf;日直3 DtfIE 塞[*1|L?4kr£ 三?Lncria|*吟 貼”■|H0中金\電上片圖4.1QuartusII時(shí)序仿真系統(tǒng)功能描述工作模式選擇系統(tǒng)工作模式可通過(guò)按鍵輸入控制為正常工作模式,測(cè)試工作模式等,可在系統(tǒng)運(yùn)行的任意時(shí)刻實(shí)現(xiàn)人文干預(yù)的模式轉(zhuǎn)換。若出現(xiàn)意外情況,比如道路交通由交警現(xiàn)場(chǎng)指揮則可以通過(guò)手動(dòng)控制交通燈模式,分別為主干道通行模式和支道通行模式。正常工作模式下的運(yùn)行狀況在系統(tǒng)正常工作模式下,實(shí)現(xiàn)以標(biāo)準(zhǔn)的30S紅綠燈倒計(jì)時(shí)和5s的黃燈過(guò)渡。即當(dāng)任一通道為紅燈時(shí),該通道倒計(jì)時(shí)時(shí)間總計(jì)為35S,另一通道則為綠燈,倒計(jì)時(shí)時(shí)間為30S,當(dāng)30S的倒計(jì)時(shí)時(shí)間到后,綠燈熄滅,黃燈打開(kāi),數(shù)碼管顯示5S等待時(shí)間后,實(shí)現(xiàn)主干道和支道的紅綠燈交替。其它工作模式介紹當(dāng)系統(tǒng)工作于測(cè)試模式時(shí),與正常工作模式相比,僅交通控制計(jì)時(shí)時(shí)間有所變化,用于維修人員測(cè)試。即由正常模式的30S減為10S,原來(lái)的5s減為2S,其它控制信息和正常工作模式相同。強(qiáng)制通行模式分為主干道通行和支道通行模式,即為南北方向通行和東西方向通行。次模式僅在某些特殊情況特殊場(chǎng)合中可能會(huì)使用,比如緊急狀況下交警的現(xiàn)場(chǎng)指揮等。第五章總結(jié)與體會(huì)EDA技術(shù)是目前較為熱門的技術(shù),這一次的EDA課程設(shè)計(jì),無(wú)疑是對(duì)我們整個(gè)學(xué)期所學(xué)到的知識(shí)的掌握和運(yùn)用能力的一個(gè)很好的鍛煉和提高。在設(shè)計(jì)過(guò)程中,我們不僅熟悉了生活中常見(jiàn)的交通燈的控制原理,更重要的是通過(guò)該設(shè)計(jì)題目的綜合設(shè)計(jì)過(guò)程,進(jìn)一步對(duì)VHDL這種和我們以往學(xué)過(guò)的一些軟件程序語(yǔ)言所不同的硬件描述語(yǔ)言有了更深刻的認(rèn)識(shí)。在代碼設(shè)計(jì)之初,對(duì)以前學(xué)過(guò)的C等程序語(yǔ)言較為熟悉的我怎么也弄不明白為什么VHDL語(yǔ)言在代碼設(shè)計(jì)中不能存在較多的函數(shù)或過(guò)程調(diào)用,因?yàn)槊恳淮蔚淖映绦蛘{(diào)用在綜合后都將生成一個(gè)硬件電路模塊。老師的一句話對(duì)我猶如醍醐灌頂,他告訴我,“首先觀念要轉(zhuǎn)變一下,VHDL語(yǔ)言不是在寫(xiě)代碼而是在搭電路"。于是,我才深刻地認(rèn)識(shí)到,所謂VHDL語(yǔ)言,名如其意,即為國(guó)際標(biāo)準(zhǔn)硬件描述語(yǔ)言。首先是編譯器對(duì)我們編寫(xiě)的代碼進(jìn)行綜合,然后我們下載到目標(biāo)芯片上后是生成一個(gè)硬件邏輯電路。我想這也是為什么VHDL中除了進(jìn)程和子程序中的代碼都被稱為“并發(fā)代碼”的原因吧,因?yàn)樗械脑a設(shè)計(jì)在系統(tǒng)綜合后都將被描述成相應(yīng)的硬件電路,系統(tǒng)所有的模塊在統(tǒng)一的系統(tǒng)時(shí)鐘下進(jìn)行工作。這一次的EDA技術(shù)課程設(shè)計(jì)讓我們有了一個(gè)在設(shè)計(jì)中學(xué)習(xí)的機(jī)會(huì),可以將老師課堂上講授的知識(shí)真正地運(yùn)用到實(shí)踐中。在實(shí)際應(yīng)用中發(fā)現(xiàn)問(wèn)題,發(fā)現(xiàn)課本上掌握的知識(shí)的不足,然后再回到書(shū)本并查閱相關(guān)書(shū)籍獲得問(wèn)題的答案,并解決問(wèn)題。在這循環(huán)的學(xué)習(xí)——實(shí)踐,實(shí)踐——學(xué)習(xí)過(guò)程中,我們?cè)谶@次課程設(shè)計(jì)中所學(xué)到的知識(shí)是課堂中通過(guò)書(shū)本和老師的講課中很難學(xué)習(xí)到的。最后,在此感謝在這次課程設(shè)計(jì)中老師的指導(dǎo)和同學(xué)的鼓勵(lì),你們永遠(yuǎn)是我人生路上前行的動(dòng)力。參考文獻(xiàn)[1]譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安電子科技大學(xué)出版社,2004⑵(巴西)佩德羅尼I譯者:喬廬峰,王志功.VHDL數(shù)字電路設(shè)計(jì)教程[M].電子工業(yè)出版社,2005-09-01[3]吳厚航.深入淺出玩轉(zhuǎn)FPGA[M].北京:北京航空航天大學(xué)出版社,2010[4]潘松,王國(guó)棟.VHDL實(shí)用教程(第二版)[M].北京:電子科技大學(xué)出版社,2000[5]赫建國(guó),倪德克,鄭燕.基于NiosII內(nèi)核的FPGA電路系統(tǒng)設(shè)計(jì).北京:電子工業(yè)出版社,2010附錄附錄程序代碼:-交通燈控制系統(tǒng)EDA課程設(shè)計(jì)libraryIEEE;--打開(kāi)程序庫(kù)useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;--實(shí)體定義ENTITYtrafficISSIGNALdiv_cntSIGNALdata4SIGNALfirst_mSIGNALsecond_mSIGNALdiv_cntSIGNALdata4SIGNALfirst_mSIGNALsecond_mSIGNALfirst_bSIGNALsecond_bSIGNALstateSIGNALen_bitSIGNALtime_sSIGNALtime_yCONSTANTCONSTANTCONSTANTCONSTANTred_mgreen_myellow_myellow_b:std_logic_vector(24DOWNTO0);--時(shí)鐘分頻系數(shù):std_logic_vector(3DOWNTO0);--數(shù)碼管轉(zhuǎn)換數(shù)據(jù):std_logic_vector(3DOWNTO0);--時(shí)間的個(gè)位:std_logic_vector(3DOWNTO0);--時(shí)間的十位:std_logic_vector(3DOWNTO0);--對(duì)應(yīng)支道個(gè)位:std_logic_vector(3DOWNTO0);--對(duì)應(yīng)支道十位:std_logic_vector(1DOWNTO0);--紅綠燈狀態(tài):std_logic_vector(3DOWNTO0):="1110";--數(shù)碼管使能位:std_logic_vector(3DOWNTO0):="0011";--倒計(jì)時(shí)的十位:std_logic_vector(3DOWNTO0):="0101";--黃燈計(jì)時(shí)變量:std_logic_vector(1DOWNTO0):="00";:std_logic_vector(1DOWNTO0):="01";:std_logic_vector(1DOWNTO0):="10";:std_logic_vector(1DOWNTO0):="11";PORT(clk:INstd_logic; --系統(tǒng)輸入時(shí)鐘rst:INstd_logic; --復(fù)位按鍵輸入key_d:INstd_logic; --調(diào)試按鍵輸入key_m:INstd_logic; --主干道(東西)方向通行緊急按鍵key_b:INstd_logic; --支道(南北)方向通行緊急按鍵--數(shù)碼管倒計(jì)時(shí)顯示dataout:OUTstd_logic_vector(7DOWNTO0);--數(shù)碼管段數(shù)據(jù)led_bit:OUTstd_logic_vector(3DOWNTO0);--數(shù)碼管使能--紅綠燈顯示lightY_m:OUTstd_logic_vector(1DOWNTO0);--黃燈_主干道(東西)方向lightY_b:OUTstd_logic_vector(1DOWNTO0);--支道lightG_m:OUTstd_logic_vector(1DOWNTO0);--綠燈_主干道方向lightG_b:OUTstd_logic_vector(1DOWNTO0);--支道lightR_m:OUTstd_logic_vector(1DOWNTO0);--紅燈_主干道方向lightR_b:OUTstd_logic_vector(1DOWNTO0));--支道ENDtraffic;ARCHITECTUREarchOFtrafficIS

BEGIN--時(shí)鐘分頻PROCESS(clk,rst)BEGINIF(NOTrst='1')THEN--復(fù)位鍵按下div_cnt<="0000000000000000000000000";ELSIF(clk'EVENTANDclk='1')THENdiv_cnt<=div_cnt+1;ENDIF;ENDPROCESS;*********倒計(jì)時(shí)控制部分**********PROCESS(div_cnt(20),rst,key_m,key_b,key_d)BEGIN--判斷是否為調(diào)試模式IF(NOTkey_d='1')THEN--調(diào)試按鍵按下,調(diào)試模式計(jì)時(shí)time_s<=time_y<=ELSEtime_s<=time_ytime_s<=time_y<=ELSEtime_s<=time_y<=!!!!0001";0010";"0011";!!0101";--紅燈10秒--黃燈2秒--正常模式運(yùn)行--紅燈30秒--黃燈5秒ENDIF;--正常進(jìn)程開(kāi)始IF(NOTrst='1')THEN--復(fù)位亮紅燈state<=red_m;second_m<="0011";--三十秒倒計(jì)時(shí)初值second_b<="0011";first_m<="0000";first_b<="0000";ELSIF(NOTkey_m='1')THEN--主干道緊急通行state<=green_m;ELSIF(NOTkey_b='1')THEN--支道緊急通行state<=red_m;ELSIF(div_cnt(24)'EVENTANDdiv_cnt(24)='1')THENCASEstateISWHENred_m=>--主干道紅燈狀態(tài),支道綠燈IF(first_m/="0000"orfirst_b/="0000")THENfirst_m<=first_m-"0001"; --計(jì)時(shí)秒位減1first_b<=first_b-"0001";ELSEIF(second_m/="0000"orsecond_b/="0000")THENsecond_m<=second_m-"0001";--計(jì)時(shí)十位減1second_b<=second_b-"0001";first_m<="1001"; --計(jì)時(shí)個(gè)位復(fù)位9first_b<="1001";ELSE

--紅燈計(jì)時(shí)結(jié)束,準(zhǔn)備綠燈--支道黃燈計(jì)時(shí)--紅燈計(jì)時(shí)結(jié)束,準(zhǔn)備綠燈--支道黃燈計(jì)時(shí)--主干道為0等待支道紅燈first_b<=time_y;second_b<="0000";first_m<="0000";second_m<="0000";ENDIF;ENDIF;WHENgreen_m=>--主干道綠燈狀態(tài)IF(first_m/="0000"orfirst_b/="0000")THENfirst_m<=first_m-"0001";first_b<=first_b-"0001";ELSEIF(second_m/="0000"orsecond_b/="0000")THENfirst_m<="1001";first_b<="1001";second_m<=second_m-"0001";second_b<=second_b-"0001";ELSEstate<=yellow_m;--主干道綠燈計(jì)時(shí)結(jié)束,轉(zhuǎn)為黃燈過(guò)渡first_m<=time_y;--黃燈計(jì)時(shí)初值second_m<="0000";first_b<="0000";second_b<="0000";ENDIF;ENDIF;WHENyellow_b=>--支道黃燈狀態(tài)IF(first_b/="0000"ORsecond_b/="0000")THENIF(second_b/="0000")THEN --此步正常不執(zhí)行first_b<="1001";second_b<=second_b-"0001";ELSEfirst_b<=first_b-"0001"; --支道黃燈計(jì)時(shí)減1ENDIF;ELSEstate<=green_m; --轉(zhuǎn)為主干道綠燈,支道紅燈second_m<=time_s; --復(fù)位紅燈計(jì)時(shí)初值first_m<="0000";--second_b<="0011";second_b<=time_s;first_b<="0000";ENDIF;WHENyellow_m=>--主干道黃燈狀態(tài)IF(first_m/="0000"ORsecond_m/="0000")THENIF(second_m/="0000")THEN --此步正常不執(zhí)行first_m<="1001";

second_m<=second_m-"0001";ELSEfirst_m<=first_m-"0001"; --支道黃燈計(jì)時(shí)減1ENDIF;ELSE--轉(zhuǎn)為主干道紅燈,支道綠燈--復(fù)位紅燈計(jì)時(shí)初值--轉(zhuǎn)為主干道紅燈,支道綠燈--復(fù)位紅燈計(jì)時(shí)初值--復(fù)位紅燈計(jì)時(shí)初值--second_m<="0011";second_m<=time_s;first_m<="0000";--second_b<="0011";second_b<=time_s;first_b<="0000";ENDIF;WHENOTHERS=>first_m<="0000";second_m<="0000";first_b<="0000";second_b<="0000";ENDCASE;ENDIF;ENDPROCESS;紅綠燈控制部分**********PROCESS(state)BEGINCASEstateISWHENred_m=>lightR_m<="00";--主干道紅燈亮lightG_b<="00";--支道綠燈亮--支道等待黃燈lightR_b<="11";--關(guān)閉其它交通燈lightG_m<="11";lightY_m<="11";lightY_b<="11";WHENgreen_m=>lightG_m<="

溫馨提示

  • 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)論