基于FPGA的交通燈控制器設(shè)計(jì).doc
《基于FPGA的交通燈控制器設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于FPGA的交通燈控制器設(shè)計(jì).doc(22頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 FPGA實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)設(shè)計(jì)題目 基于FPGA的交通燈控制器設(shè)計(jì) 作 者 xxxxxxx 分 院 xxxxxxxxxxxxxxxxxxx 專 業(yè) 班 級(jí) xxxxxxxxx 指導(dǎo)教師(職稱) xxxxxxxxxxxxxx 報(bào)告完成時(shí)間 2012年10月8日 基于FPGA的交通燈控制器設(shè)計(jì) 摘要:超高速硬件描述語(yǔ)言VHDL,是對(duì)數(shù)字系統(tǒng)進(jìn)行抽象的行為與功能描述到具體的內(nèi)部線路結(jié)構(gòu)描述,利用EDA工具可以在電子設(shè)計(jì)的各個(gè)階段、各個(gè)層系進(jìn)行計(jì)算機(jī)模擬驗(yàn)證,保證設(shè)計(jì)過(guò)程的正確性,可大大降低設(shè)計(jì)成本,縮短設(shè)計(jì)周期。本文介紹的數(shù)字秒表設(shè)計(jì),利用基于VHDL的EDA設(shè)計(jì)工具,采用大規(guī)??删幊踢壿嬈骷﨔PGA,
2、通過(guò)設(shè)計(jì)芯片來(lái)實(shí)現(xiàn)系統(tǒng)功能。交通燈控制系統(tǒng)可以實(shí)現(xiàn)路口紅綠燈的自動(dòng)控制?;贔PGA設(shè)計(jì)的交通燈控制系統(tǒng)具有電路簡(jiǎn)單、可靠性強(qiáng)、實(shí)時(shí)快速擦寫、運(yùn)算速度高、故障率低、可靠性高,而且體積小的特點(diǎn)。本設(shè)計(jì)采用Altera公司Cyclone系列的EPlC3T1444C8芯片,在Quartus II軟件平臺(tái)上使用VHDL語(yǔ)言,采用自頂向下的設(shè)計(jì)方法對(duì)系統(tǒng)進(jìn)行了模塊化設(shè)計(jì)和綜合,并進(jìn)行了仿真。該系統(tǒng)可實(shí)現(xiàn)十字路口紅綠燈及左轉(zhuǎn)彎控制和倒計(jì)時(shí)顯示,仿真結(jié)果結(jié)果表明系統(tǒng)能夠自動(dòng)控制交通燈轉(zhuǎn)變。關(guān)鍵詞:EDA;交通燈;VHDL目錄引言11 FPGA概述21.1 FPGA的簡(jiǎn)介21.2 FPGA的應(yīng)用22 VHDL
3、硬件描述語(yǔ)言32.1 VHDL程序基本結(jié)構(gòu)32.1.1 實(shí)體32.1.2 結(jié)構(gòu)體32.1.3 庫(kù)42.2 VHDL語(yǔ)言42.2.1 VHDL文字規(guī)則42.2.2 VHDL數(shù)據(jù)對(duì)象42.2.3 VHDL數(shù)據(jù)類型42.2.4 VHDL順序語(yǔ)句52.2.5 VHDL并行語(yǔ)句53系統(tǒng)設(shè)計(jì)與仿真63.1 系統(tǒng)介紹63.1.1 設(shè)計(jì)任務(wù)63.1.2 設(shè)計(jì)要求63.2 系統(tǒng)設(shè)計(jì)仿真63.2.1 系統(tǒng)框圖設(shè)計(jì)73.2.2 系統(tǒng)時(shí)序狀態(tài)圖設(shè)計(jì)73.2.3 系統(tǒng)工程設(shè)計(jì)流程圖83.2.4 芯片選擇83.3 功能模塊設(shè)計(jì)與仿真83.3.1 分頻器模塊設(shè)計(jì)83.3.2 控制模塊設(shè)計(jì)93.3.3 倒計(jì)時(shí)模塊設(shè)計(jì)103.
4、3.4 信號(hào)處理模塊設(shè)計(jì)113.3.5 數(shù)據(jù)譯碼模塊設(shè)計(jì)123.3.6 顯示模塊設(shè)計(jì)143.4 頂層文件設(shè)計(jì)17結(jié)論19參考文獻(xiàn):19基于FPGA的交通燈控制器設(shè)計(jì)xxxxx專業(yè)xxxx班xxxx 指導(dǎo)教師xxxx引言當(dāng)今社會(huì)是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。數(shù)字集成電路本身在不斷進(jìn)行更新?lián)Q代,隨著微電子技術(shù)的發(fā)展,設(shè)計(jì)與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來(lái)獨(dú)立承擔(dān)。系統(tǒng)設(shè)計(jì)師更愿意自己設(shè)計(jì)專業(yè)集成電路(ASIC)芯片,而且希望設(shè)計(jì)周期盡可能短,最好在實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的ASIC芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程器件(FPLD)?,F(xiàn)場(chǎng)可編程門陣列(FPGA
5、)即屬其中應(yīng)用最廣泛的一種。隨著電子技術(shù)的發(fā)展,特別是大規(guī)模集成電路和計(jì)算機(jī)技術(shù)的研制和發(fā)展,讓電子產(chǎn)品設(shè)計(jì)有了更好的應(yīng)用市場(chǎng),實(shí)現(xiàn)方法也有了更多的選擇,而電子電路的設(shè)計(jì)卻變得越來(lái)越復(fù)雜,使用“語(yǔ)言”進(jìn)行電子設(shè)計(jì)已成為一種趨勢(shì)?,F(xiàn)代電子系統(tǒng)設(shè)計(jì)方法是設(shè)計(jì)師自己設(shè)計(jì)芯片來(lái)實(shí)現(xiàn)電子系統(tǒng)的功能,將傳統(tǒng)的固件選用及電路板設(shè)計(jì)工作放在芯片設(shè)計(jì)中進(jìn)行。在這些專業(yè)化軟件中,EDA(Electronic Design Automation)具有一定的代表性,EDA技術(shù)是一種基于芯片的現(xiàn)代電子系統(tǒng)設(shè)計(jì)方法。基于EDA技術(shù)的現(xiàn)場(chǎng)可編程門陣列(FPGA)電 (ASIC) ,在數(shù)字系統(tǒng)設(shè)計(jì)和控制電路中越來(lái)越受到重視。
6、VHDL語(yǔ)言是電子設(shè)計(jì)的主流硬件描述語(yǔ)言,它更適合進(jìn)行行為描述,這種方式使得設(shè)計(jì)者專注于電路功能的設(shè)計(jì),而不必過(guò)多地考慮具體的硬件結(jié)構(gòu)。基于EDA技術(shù)的現(xiàn)場(chǎng)可編程門陣列(FPGA)電路,提出現(xiàn)場(chǎng)可編程門陣列(FPGA)是近年來(lái)迅速發(fā)展的大規(guī)??删幊虒S眉呻娐?ASIC),在數(shù)字系統(tǒng)設(shè)計(jì)和控制電路中越來(lái)越受到重視。VHDL語(yǔ)言是電子設(shè)計(jì)的主流硬件描述語(yǔ)言,它更適合進(jìn)行行為描述,這種方式使得設(shè)計(jì)者專注于電路功能的設(shè)計(jì),而不必過(guò)多地考慮具體的硬件結(jié)構(gòu)。1 FPGA概述1.1 FPGA的簡(jiǎn)介FPGA(FieldProgrammable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在可編程器件的基
7、礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。目前以硬件描述語(yǔ)言所完成的電路設(shè)計(jì),可以經(jīng)過(guò)簡(jiǎn)單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。1.2 FPGA的應(yīng)用FPGA的應(yīng)用可分為三個(gè)層面:電路設(shè)計(jì),產(chǎn)品設(shè)計(jì),系統(tǒng)設(shè)計(jì)。電路設(shè)計(jì):連接邏輯,控制邏輯是FPGA早期發(fā)揮作用比較大的領(lǐng)域也是FPGA應(yīng)用的基石。事實(shí)上在電路設(shè)計(jì)中應(yīng)用FPGA要求開發(fā)者要具備相應(yīng)的硬件知識(shí)(電路知識(shí))和軟件應(yīng)用能力(開發(fā)工具)。 產(chǎn)品設(shè)計(jì):把相對(duì)成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域開發(fā)出滿足行業(yè)
8、需要并能被行業(yè)客戶接受的產(chǎn)品。這方面主要是FPGA技術(shù)和專業(yè)技術(shù)的結(jié)合問題,重點(diǎn)在性能, FPGA技術(shù)在這個(gè)領(lǐng)域是一個(gè)實(shí)現(xiàn)手段,F(xiàn)PGA因?yàn)榫邆浣涌冢刂?,功能IP,內(nèi)嵌CPU等特點(diǎn)有條件實(shí)現(xiàn)一個(gè)構(gòu)造簡(jiǎn)單,固化程度高,功能全面的系統(tǒng)產(chǎn)品設(shè)計(jì)。系統(tǒng)級(jí)應(yīng)用:系統(tǒng)級(jí)的應(yīng)用是FPGA與傳統(tǒng)的計(jì)算機(jī)技術(shù)結(jié)合,實(shí)現(xiàn)一種FPGA版的計(jì)算機(jī)系統(tǒng)如用XilinxV-4, V-5系列的FPGA,實(shí)現(xiàn)內(nèi)嵌POWERPCCPU, 然后再配合各種外圍功能,這個(gè)平臺(tái)上跑LINIX等系統(tǒng)這個(gè)系統(tǒng)也就支持各種標(biāo)準(zhǔn)外設(shè)和功能接口了,這對(duì)于快速構(gòu)成FPGA大型系統(tǒng)來(lái)講是很有幫助的。2 VHDL硬件描述語(yǔ)言2.1 VHDL程序基本
9、結(jié)構(gòu)一個(gè)相對(duì)完整的VHDL程序通常包含實(shí)體、結(jié)構(gòu)體、配置、程序包和庫(kù)5個(gè)部分。程序模板如下:LIBRARY library name;USE library name.package name.all;ENTITY entity name IS GENERIC ( parameter name :string:=default value; parameter name :integer:=default value); PORT ( input name,input name: IN STD-LOGIC; Input vector name:IN STD_LOGIC_VECTOR( high
10、 DOWNTO low); output name ,output name:OUT STD_LOGIC);END entity name; ARCHITECTURE a OF entity name IS SIGNAL signal name:STD_LOGIC;BEGIN -process statement (optional) -generate statement (optional) END a;2.1.1 實(shí)體實(shí)體一般用來(lái)描述所設(shè)計(jì)的系統(tǒng)的外部接口信號(hào),是可視部分;其中最重要的部分是端口說(shuō)明。端口說(shuō)明語(yǔ)句是對(duì)于一個(gè)設(shè)計(jì)實(shí)體界面的說(shuō)明。端口名是賦予每個(gè)系統(tǒng)引腳的名稱。一個(gè)實(shí)體通常有
11、一個(gè)或多個(gè)端口,端口類似于原理圖部件符合上的管腳。實(shí)體與外界交流的信息必須通過(guò)端口通道流入或流出。IEEE 1064標(biāo)準(zhǔn)包中定義了四種端口模式,其功能及符號(hào)分別是IN、OUT、INOUT、BUFFER、LINKAGE。2.1.2 結(jié)構(gòu)體結(jié)構(gòu)體用于描述系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為,建立輸入輸出之間的關(guān)系。在一個(gè)實(shí)體中,可以含有一個(gè)或一個(gè)以上的結(jié)構(gòu)體,而在每一個(gè)結(jié)構(gòu)體中又可以含有一個(gè)或多個(gè)進(jìn)程以及其他的語(yǔ)句。其中,實(shí)體名必須是被設(shè)計(jì)的實(shí)體的名字。結(jié)構(gòu)體中的說(shuō)明語(yǔ)句是對(duì)結(jié)構(gòu)體的功能描述語(yǔ)句中將要用到的信號(hào)、數(shù)據(jù)類型、常數(shù)、元件、函數(shù)和過(guò)程等加以說(shuō)明的語(yǔ)句。結(jié)構(gòu)體包含兩類語(yǔ)句:并行語(yǔ)句和順序語(yǔ)句。在PROCE
12、SS中的語(yǔ)句是順序執(zhí)行的,當(dāng)PROCESS所帶的敏感信號(hào)發(fā)生變化時(shí),PROCESS中的語(yǔ)句就會(huì)執(zhí)行一遍。2.1.3 庫(kù)庫(kù)使用說(shuō)明用于打開(調(diào)用)本設(shè)計(jì)實(shí)體將要用到的庫(kù),庫(kù)是專門存放預(yù)編譯程序包的地方。IEEE庫(kù):在IEEE庫(kù)中有一個(gè)STD_LOGIC的包,它是IEEE正式認(rèn)可的包。STD庫(kù):STD庫(kù)是VHDL的標(biāo)準(zhǔn)庫(kù),在庫(kù)中有名為STANDARD的包。在使用庫(kù)之前,一定要進(jìn)行庫(kù)說(shuō)明,庫(kù)的說(shuō)明總是放在設(shè)計(jì)單元的前面。2.2 VHDL語(yǔ)言2.2.1 VHDL文字規(guī)則VHDL文字主要包括數(shù)值和標(biāo)識(shí)符。數(shù)值型文字主要有數(shù)字型、字符串型和位串型。數(shù)字型文字有:整數(shù)文字(十進(jìn)制數(shù))、實(shí)數(shù)文字(十進(jìn)制數(shù),必
13、須帶有小數(shù)點(diǎn))、以數(shù)字基數(shù)表示的文字。字符串型文字有:文字字符串、數(shù)位字符串、標(biāo)識(shí)符。2.2.2 VHDL數(shù)據(jù)對(duì)象在VHDL中,數(shù)據(jù)對(duì)象類似于一種容器,接受不同數(shù)據(jù)類型的賦值。數(shù)據(jù)對(duì)象有3種:即常量、信號(hào)、變量。常量是固定值,不能在程序中被改變。變量時(shí)一個(gè)局部量,是一個(gè)臨時(shí)數(shù)據(jù),沒有物理意義。它只能在Process和Function中定義,必須在進(jìn)程和子程序的說(shuō)明性區(qū)域說(shuō)明,并只在其內(nèi)部有效。信號(hào)是描述硬件系統(tǒng)的基本數(shù)據(jù)對(duì)象,代表連接線,Port也是一種信號(hào)。2.2.3 VHDL數(shù)據(jù)類型VHDL是一種強(qiáng)類型語(yǔ)言,要求設(shè)計(jì)實(shí)體中的每一個(gè)常數(shù)、信號(hào)、變量、函數(shù)以及設(shè)定的各種參量都必須具有確定的數(shù)據(jù)
14、類型,并且只有相同的數(shù)據(jù)類型的量才能互相傳遞和作用。VHDL 的基本類型有:bit(位)、bit-Vector(位矢量)、Boolean、time、character、string、integer 、real。2.2.4 VHDL順序語(yǔ)句VHDL有如下六類基本順序語(yǔ)句 :賦值語(yǔ)句、流程控制語(yǔ)句、等待語(yǔ)句、子程序調(diào)用語(yǔ)句、返回語(yǔ)句、空操作語(yǔ)句。賦值語(yǔ)句有信號(hào)賦值語(yǔ)句和變量賦值語(yǔ)句兩種。流程控制語(yǔ)句共有五種:IF語(yǔ)句、CASE語(yǔ)句、LOOP語(yǔ)句、NEXT語(yǔ)句、EXIT語(yǔ)句。IF語(yǔ)句根據(jù)條件句產(chǎn)生的判斷結(jié)果:TRUE 或 FALSE,有條件地選擇執(zhí)行其后的順序語(yǔ)句。 CASE語(yǔ)句根據(jù)滿足的條件直接選
15、擇多項(xiàng)順序語(yǔ)句中的一項(xiàng)執(zhí)行??詹僮髡Z(yǔ)句不完成任何操作,它常用于CASE語(yǔ)句中,利用它來(lái)表示所余的不用條件下的操作行為滿足所有可能的條件。2.2.5 VHDL并行語(yǔ)句結(jié)構(gòu)體中的并行語(yǔ)句主要有七種:并行信號(hào)賦值語(yǔ)句、進(jìn)程語(yǔ)句、塊語(yǔ)句 、條件信號(hào)賦值語(yǔ)句、元件例化語(yǔ)句(其中包括類屬配置語(yǔ)句 )生成語(yǔ)句、并行過(guò)程調(diào)用語(yǔ)句。3系統(tǒng)設(shè)計(jì)與仿真3.1 系統(tǒng)介紹交通燈控制器用于自動(dòng)控制十字路口交通燈和計(jì)時(shí)器,指揮各種車輛和行人安全通行。3.1.1 設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)十字路口交通控制器,方向分為東南西北四個(gè)方向。東西方向的紅綠燈狀態(tài)一樣,南北方向的紅綠燈狀態(tài)一樣。每個(gè)方向上,有四盞燈,分別是左轉(zhuǎn)燈、紅燈、綠燈和黃
16、燈。左拐燈亮表示左轉(zhuǎn)車輛可以通行;紅燈亮表示左轉(zhuǎn)和直行車輛禁行;綠燈亮表示直行車輛和右轉(zhuǎn)的車輛可以通行;黃燈亮表示左轉(zhuǎn)和直行的車輛即將禁行;倒計(jì)時(shí)顯示器用來(lái)顯示允許通行或禁止通行的時(shí)間倒計(jì)時(shí)。3.1.2 設(shè)計(jì)要求在十字路口東西方向和南北方向各設(shè)一組左轉(zhuǎn)燈;顯示的順序?yàn)椋鹤筠D(zhuǎn)燈綠燈黃燈紅燈。在東西方向和南北方向各設(shè)一組倒計(jì)時(shí)顯示器。倒計(jì)時(shí)只顯示對(duì)應(yīng)方向上的紅燈倒計(jì)時(shí)和綠燈倒計(jì)時(shí)。其余的狀態(tài)不顯示倒計(jì)時(shí)。左轉(zhuǎn)燈、紅燈、綠燈和黃燈亮的時(shí)間分別是15秒、80秒、45秒、5秒。狀態(tài)表如表3-1所示:狀態(tài)S0S1S2S3S4S5東 西 方 向紅紅紅紅 左轉(zhuǎn)綠黃亮 燈 1545515455南 北 方 向紅
17、左轉(zhuǎn)綠黃紅紅紅亮燈1545515455表3-1 交通燈狀態(tài)轉(zhuǎn)換表3.2 系統(tǒng)設(shè)計(jì)仿真對(duì)于交通燈控制器,可基于Quartus II 軟件,采用層次化混合輸入方式進(jìn)行設(shè)計(jì),即頂層采用原理圖設(shè)計(jì),底層采用VHDL語(yǔ)言設(shè)計(jì)。3.2.1 系統(tǒng)框圖設(shè)計(jì)頂層原理圖可以依據(jù)系統(tǒng)框圖進(jìn)行設(shè)計(jì),有分頻模塊、控制模塊、倒計(jì)時(shí)模塊、紅綠燈顯示模塊、譯碼模塊、譯碼顯示模塊6六部分組成,如圖3-1 所示:圖3-1 頂層原理圖系統(tǒng)框圖3.2.2 系統(tǒng)時(shí)序狀態(tài)圖設(shè)計(jì)圖3-2 交通燈時(shí)序狀態(tài)圖新建工程新建原理圖文件或VHDL文件輸入程序或編輯原理圖編譯,若有錯(cuò),修改程序,直至無(wú)錯(cuò)建立波形文件,導(dǎo)入管腳編譯波形文件,查看仿真結(jié)果
18、,保存3.2.3 系統(tǒng)工程設(shè)計(jì)流程圖圖3-3 系統(tǒng)工程設(shè)計(jì)流程框圖3.2.4 芯片選擇在這次畢業(yè)設(shè)計(jì)中,我們選用的FPGA芯片是Altera公司的Cyclone(颶風(fēng))系列的芯片,型號(hào)為:EP1C3T144C8。它是基于1.5V的,采用0.13um全銅SRAM工藝、TQFP封裝,有5980個(gè)邏輯單元,2個(gè)鎖相環(huán),20個(gè)M4K RAM塊,其中每個(gè)RAM為4kbit,可以另加一位奇偶校驗(yàn)位。3.3 功能模塊設(shè)計(jì)與仿真3.3.1 分頻器模塊設(shè)計(jì)該分頻器模塊可將頻率為1KHZ的脈沖波,經(jīng)過(guò)分頻變?yōu)轭l率為1HZ的脈沖波,這樣我們就得到了周期為1S的脈沖波。分頻器程序清單如下:library ieee;u
19、se ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpinqi isport ( clk1khz:in std_logic; clk1hz:out std_logic);end fenpinqi;architecture a of fenpinqi isbeginprocess( clk1khz )variable q: integer:=0 ; variable r:std_logic:=0;begin if clk1khzevent and clk1khz=1 then if q=500 then r:=
20、not r; q:=0; else q:=q+1; end if;clk1hz=r;end if;end process;end a;分頻器程序仿真結(jié)果如圖3-4所示:圖3-4 分頻器模塊仿真結(jié)果圖在分頻器程序仿真結(jié)果圖中,clk1khz 為輸入脈沖信號(hào),頻率為1khz;clk1hz為輸出脈沖信號(hào),頻率為1hz。從圖中,我們可以看出clk1hz的周期為1s。這表明程序的確把1khz的信號(hào)分頻成1hz的信號(hào)。3.3.2 控制模塊設(shè)計(jì)控制模塊可根據(jù)clk的脈沖信號(hào)輸出S的值,下游模塊根據(jù)S的值來(lái)決定紅綠燈的狀態(tài)。同時(shí)對(duì)倒計(jì)時(shí)的信號(hào)賦初值。控制模塊程序清單:library ieee;use ieee
21、.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity control isport( clk:in std_logic; s:out std_logic_vector(2 downto 0); loadat,loadbt:out std_logic; at,bt:out integer range 0 to 80);end control;architecture a of control issignal t:integer;begin process(clk) begin if clkevent and clk=1 then
22、loadat=0;loadbt=0; if t=0 then s=000; at=80; loadat=1; elsif t=15 then s=001; bt=45; loadbt=1; elsif t=60 then s=010; elsif t=65 then s=011; bt=80; loadbt=1; elsif t=80 then s=100; at=45; loadat=1; elsif t=125 then s=101; end if; t=t+1; end if;if t=130 then t=0; end if; end process;end a;控制模塊程序仿真結(jié)果如
23、圖3-5所示:圖3-5 控制模塊仿真結(jié)果圖在控制模塊程序仿真結(jié)果圖中,只有一個(gè)輸入信號(hào)clk,它是一個(gè)頻率為1hz的時(shí)鐘脈沖信號(hào),輸出信號(hào)有3個(gè)分別是s、at、bt。程序中,通過(guò)變量t的值來(lái)確定輸出信號(hào)s的值,并由此確定將要賦得倒計(jì)時(shí)的初值,然后賦給at,bt。在每次給at,bt賦值時(shí),都會(huì)使另一個(gè)輸出信號(hào)loadat,loadbt變成高電平,從而可以觸發(fā)下一模塊的裝載。3.3.3 倒計(jì)時(shí)模塊設(shè)計(jì)倒計(jì)時(shí)模塊用來(lái)接收控制模塊的輸出作為初值,并進(jìn)行減一操作,最后把減一得結(jié)果輸出。程序里每檢測(cè)到一個(gè)脈沖clk,就進(jìn)行一次減一操作。倒計(jì)時(shí)模塊程序清單:library ieee;use ieee.std
24、_logic_1164.all;use ieee.std_logic_unsigned.all;entity atdaojishi isport ( clk,loadat:in std_logic; atin:in integer range 0 to 80; atout:out integer range 0 to 80);end atdaojishi;architecture a of atdaojishi issignal countat:integer range 0 to 80;beginprocessbeginwait until rising_edge(clk);if loada
25、t=1 then countat=atin;else countat=countat-1;end if;end process;atout b:=01001100;when 001= b:=01000010;when 010= b:=01000001;when 011= b:=11000100;when 100= b:=00100100;when 101= b:=00010100;when others = b:=00000000;end case;lrgy=70 thenaout1=7;aout2=60 then aout1=6;aout2=50 thenaout1=5;aout2=40 t
26、henaout1=4;aout2=30 thenaout1=3;aout2=20 thenaout1=2;aout2=10 thenaout1=1;aout2=0 thenaout1=0;aout2=70 thenbout1=7;bout2=60 then bout1=6;bout2=50 thenbout1=5;bout2=40 thenbout1=4;bout2=30 thenbout1=3;bout2=20 thenbout1=2;bout2=10 thenbout1=1;bout2=0 thenbout1=0;bout2 aout1 aout1 aout1 aout1 aout1 ao
27、ut1 aout1 aout1 aout1 aout1 aout1 aout2 aout2 aout2 aout2 aout2 aout2 aout2 aout2 aout2 aout2 aout2 bout1 bout1 bout1 bout1 bout1 bout1 bout1 bout1 bout1 bout1 bout1 bout2 bout2 bout2 bout2 bout2 bout2 bout2 bout2 bout2 bout2 bout2=00000000 ; end case;end process;end a;譯碼顯示仿真結(jié)果如圖3-9所示:圖3-9 譯碼顯示模塊仿真結(jié)
28、果圖在譯碼顯示模塊仿真結(jié)果圖中,at1,at2,bt1,bt2為輸入信號(hào),它們的值的范圍為09;aout1,aout2,bout1,bout2為輸出信號(hào),它們的范圍為數(shù)字09對(duì)應(yīng)的七位數(shù)碼管顯示段碼的值。圖中,輸出信號(hào)的值隨著輸入信號(hào)的變化而相應(yīng)的變化。仿真完全正確,符合預(yù)期。3.4 頂層文件設(shè)計(jì)交通燈的頂層文件是一個(gè)原理圖文件,它包含7個(gè)元件符號(hào),每一個(gè)元件符號(hào)均是由一個(gè)模塊程序生成。7個(gè)元件符號(hào)分別為:1個(gè)分頻模塊、1個(gè)控制模塊、1個(gè)信號(hào)處理模塊、2個(gè)倒計(jì)時(shí)模塊、1個(gè)數(shù)據(jù)譯碼模塊和1個(gè)顯示模塊。這些模塊均經(jīng)過(guò)設(shè)計(jì)、編譯、仿真,結(jié)果正確。最后生成可視化元件符號(hào),然后將各個(gè)模塊用具有電氣性質(zhì)的
29、導(dǎo)線連接起來(lái),這樣原理圖文件就建好了。保存編譯。在建立一個(gè).vwf波形文件,保存并仿真。原理圖如圖3-10所示,仿真結(jié)果如圖3.11所示,實(shí)驗(yàn)證明仿真結(jié)果正確,符合預(yù)期。圖3-10 頂層文件設(shè)計(jì)原理圖圖3-11 頂層文件波形仿真結(jié)果圖在頂層文件波形仿真結(jié)果圖中,有一個(gè)頻率為1khz輸入信號(hào)clk1khz,它是外部的信號(hào)對(duì)整個(gè)系統(tǒng)設(shè)計(jì)的輸入端口。作為一個(gè)脈沖,經(jīng)過(guò)分頻變成頻率為1hz的脈沖,由于1hz的脈沖的周期是1s,所以我們可以用它來(lái)控制整個(gè)系統(tǒng)的步調(diào),而這個(gè)步調(diào)與現(xiàn)實(shí)生活中交通燈的步調(diào)是一致的。1hz的信號(hào)經(jīng)過(guò)控制模塊的處理,通過(guò)計(jì)數(shù)使s變化為不同的值,s代表的是交通燈時(shí)序圖的狀態(tài),一共有
30、6個(gè)狀態(tài)(s0s5)。同時(shí)對(duì)應(yīng)不同的s的狀態(tài)賦不同的初值給at,bt。at,bt分別是東西方向和南北方向的倒計(jì)時(shí)初值??刂颇K還有一個(gè)功能是提供倒計(jì)時(shí)模塊的置數(shù)的觸發(fā)脈沖。接下來(lái),信號(hào)處理模塊直接接受s的值來(lái)輸出相應(yīng)的紅綠燈亮滅狀態(tài)。例如:lrgy的值為01000010,這表明交通燈的亮滅情況為:東西左轉(zhuǎn)燈滅,東西紅燈亮,東西綠燈滅,東西黃燈滅,南北左轉(zhuǎn)燈滅,南北紅燈滅,南北綠燈亮,南北黃燈滅。即一一對(duì)應(yīng)。倒計(jì)時(shí)部分分為兩個(gè)模塊,兩個(gè)模塊分別倒計(jì)時(shí)東西方向和南北方向。每個(gè)倒計(jì)時(shí)模塊都有相似的端口:clk、loadat、atin、atout和clk、loadbt、btin、btout。我們只舉其
31、中一個(gè)為例子:clk為倒計(jì)時(shí)的時(shí)鐘脈沖,當(dāng)loadat為高電平時(shí),將atin傳遞給atout,clk的上升沿每來(lái)一次,atout減一次。此前,時(shí)間的值都是整形的,要想將倒計(jì)時(shí)實(shí)時(shí)顯示出來(lái),就需要將兩位的整數(shù)分解成個(gè)位和十位,數(shù)據(jù)譯碼模塊就是這樣的。將一個(gè)倒計(jì)時(shí)分解成兩個(gè)一位數(shù),例如將54分解成5和4。然后經(jīng)過(guò)顯示模塊將對(duì)應(yīng)的數(shù)字譯成相應(yīng)的段碼,例如將5和4譯碼為01101101和01100110。在這個(gè)系統(tǒng)設(shè)計(jì)中,所有的數(shù)碼管和二極管均為共陰極顯示。結(jié)論從9月份接到實(shí)訓(xùn)任務(wù)到現(xiàn)在,已有1個(gè)月的時(shí)間,回想自己在這1個(gè)月的時(shí)間里的付出,看著手中這份勞動(dòng)果實(shí),我真正體會(huì)到了收獲的喜悅。在此期間,我在
32、網(wǎng)上搜集一些相關(guān)信息,到圖書館查閱有關(guān)資料,最后終于順利完成了此次實(shí)訓(xùn)設(shè)計(jì)。此次實(shí)訓(xùn)設(shè)計(jì)讓我了解了GFPA的相關(guān)知識(shí),并且加深了對(duì)VHDL語(yǔ)言的認(rèn)識(shí),熟悉了VHDL語(yǔ)言在交通燈中的運(yùn)用。這也使我將原來(lái)所學(xué)的知識(shí)系統(tǒng)化、理論化、實(shí)用化,對(duì)如何使用已有知識(shí)及獲取相關(guān)資料方面的能力又有了提高。設(shè)計(jì)達(dá)到了預(yù)定的設(shè)計(jì)目的,實(shí)現(xiàn)了利用現(xiàn)場(chǎng)可編程門陣列(VHDL)自動(dòng)控制十字路口交通燈和計(jì)時(shí)器,各交通燈及計(jì)時(shí)器均按設(shè)計(jì)任務(wù)要求正常運(yùn)行,指揮各種車輛和行人安全通行。通過(guò)這次設(shè)計(jì),我還認(rèn)識(shí)到無(wú)論做什么,都需要踏實(shí)、勤奮、嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度,這對(duì)我以后的工作產(chǎn)生深遠(yuǎn)的影響。參考文獻(xiàn):1 鄒彥,莊嚴(yán). EDA.技術(shù)與數(shù)
33、字系統(tǒng)設(shè)計(jì). 北京: 電子工業(yè)出版社,2007.4 2 李輝. PLD與數(shù)字系統(tǒng)設(shè)計(jì). 西安: 西安電子科技大學(xué)出版社,2005 3 廖超平. EDA技術(shù)與VHDL實(shí)用教程. 北京: 高等教育出版社,2008.5 4 潘新民. 微型計(jì)算機(jī)控制技術(shù)實(shí)用教程. 北京: 電子工業(yè)出版社,2009.7 5 黃仁欣. EDA技術(shù)實(shí)用教程. 北京: 清華大學(xué)出版社著,2006.9 6 路明禮. 數(shù)字電子技術(shù). 武漢: 武漢理工大學(xué)出版社,2008.8 7 李朝青. 單片機(jī)原理與接口技術(shù). 北京: 北京航空航天大學(xué)出版社,2008 8 潘松,王國(guó)棟. VHDL實(shí)用教程. 成都: 電子科技大學(xué)出版社,1999
34、.129 李國(guó)厚. 自動(dòng)化專業(yè)英語(yǔ). 北京: 北京大學(xué)出版社 中國(guó)林業(yè)出版社,2006.110黃智偉. 全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽電路設(shè)計(jì). 北京: 北京航空航天大學(xué)出版社,200611 楊承毅. 電子技能實(shí)訓(xùn)基礎(chǔ). 北京: 人民郵電出版社,200512 王丹,童如松. 電子設(shè)計(jì)自動(dòng)化(EDA)手冊(cè). 北京: 電子工業(yè)出版社,2005.313 辛春艷. VHDL硬件描述語(yǔ)言. 北京: 國(guó)防工業(yè)出版社,200214 王建坤. MAX+PLUSII入門與提高. 北京: 清華大學(xué)出版社,200415 譚會(huì)生,張昌凡. EDA技術(shù)及應(yīng)用. 西安: 西安電子科技大學(xué)出版社,200416 李景華,杜王遠(yuǎn). 可編程邏輯器件與EDA技術(shù). 東北大學(xué)出版社,200019
- 溫馨提示:
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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案