版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、交通燈控制器設(shè)計(jì)專業(yè): 計(jì)算機(jī)應(yīng)用技術(shù)班級(jí): 計(jì) 應(yīng) 2 班學(xué)號(hào): 姓名: 蔡 利 軍基于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,通過(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)算速度高、故障率低、可靠性高
2、,而且體積小的特點(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)鍵詞:VHDL,交通燈,EDA目 錄前言1第1章 FPGA概述21.1 FPGA的簡(jiǎn)介21.2 FPGA的應(yīng)用2第2章 VHDL硬件描述語(yǔ)言32.1 VHDL程序基本結(jié)構(gòu)32.1.1 實(shí)體42.1.2 結(jié)構(gòu)體42.1.3 庫(kù)42.2 VHDL語(yǔ)言42.2.1 VHDL文字規(guī)則42.2.2
3、VHDL數(shù)據(jù)對(duì)象52.2.3 VHDL數(shù)據(jù)類型52.2.4 VHDL 順序語(yǔ)句52.2.5 VHDL并行語(yǔ)句6第3章 系統(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ì)仿真73.2.1 頂層框圖的設(shè)計(jì)73.2.2 時(shí)序狀態(tài)圖的設(shè)計(jì)73.2.3 工程設(shè)計(jì)流程框圖:83.2.4 芯片的選擇83.2.5 各個(gè)模塊的設(shè)計(jì)與仿真9結(jié) 論23附 錄錯(cuò)誤!未定義書簽。前言當(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è)
4、集成電路(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)即屬其中應(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 Auto
5、mation)具有一定的代表性,EDA技術(shù)是一種基于芯片的現(xiàn)代電子系統(tǒng)設(shè)計(jì)方法。基于EDA技術(shù)的現(xiàn)場(chǎng)可編程門陣列(FPGA)電 (ASIC) ,在數(shù)字系統(tǒng)設(shè)計(jì)和控制電路中越來(lái)越受到重視。VHDL語(yǔ)言是電子設(shè)計(jì)的主流硬件描述語(yǔ)言,它更適合進(jìn)行行為描述,這種方式使得設(shè)計(jì)者專注于電路功能的設(shè)計(jì),而不必過(guò)多地考慮具體的硬件結(jié)構(gòu)?;贓DA技術(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ì)者專注于電路功能的
6、設(shè)計(jì),而不必過(guò)多地考慮具體的硬件結(jié)構(gòu)。第1章 FPGA概述1.1 FPGA的簡(jiǎn)介FPGA(FieldProgrammable Gate Array),即現(xiàn)場(chǎng)可編程門陣列,它是在可編程器件的基礎(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ā)揮作用比較大
7、的領(lǐng)域也是FPGA應(yīng)用的基石。事實(shí)上在電路設(shè)計(jì)中應(yīng)用FPGA要求開(kāi)發(fā)者要具備相應(yīng)的硬件知識(shí)(電路知識(shí))和軟件應(yīng)用能力(開(kāi)發(fā)工具)。 產(chǎn)品設(shè)計(jì)把相對(duì)成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域開(kāi)發(fā)出滿足行業(yè)需要并能被行業(yè)客戶接受的產(chǎn)品。這方面主要是FPGA技術(shù)和專業(yè)技術(shù)的結(jié)合問(wèn)題,重點(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, 然后
8、再配合各種外圍功能,這個(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程序基本結(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
9、 value); PORT ( input name,input name: IN STD-LOGIC; Input vector name:IN STD_LOGIC_VECTOR( high 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
10、 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í)體通常有一個(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ǔ)句。其
11、中,實(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ǔ)句。在PROCESS中的語(yǔ)句是順序執(zhí)行的,當(dāng)PROCESS所帶的敏感信號(hào)發(fā)生變化時(shí),PROCESS中的語(yǔ)句就會(huì)執(zhí)行一遍。2.1.3 庫(kù) 庫(kù)使用說(shuō)明用于打開(kāi)(調(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ō)明總是放
12、在設(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ù),必須帶有小數(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ù),沒(méi)有物理意義。它只能在Process和Function中定義,必須在進(jìn)程和子程序的說(shuō)明性區(qū)域說(shuō)明,并只在其內(nèi)部有效。信
13、號(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ù)類型,并且只有相同的數(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ǔ)句兩種。流程控制
14、語(yǔ)句共有五種:IF語(yǔ)句、CASE語(yǔ)句、LOOP語(yǔ)句、NEXT語(yǔ)句、EXIT語(yǔ)句。IF語(yǔ)句根據(jù)條件句產(chǎn)生的判斷結(jié)果:TRUE 或 FALSE,有條件地選擇執(zhí)行其后的順序語(yǔ)句。 CASE語(yǔ)句根據(jù)滿足的條件直接選擇多項(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)控制十字路口交通燈和
15、計(jì)時(shí)器,指揮各種車輛和行人安全通行。3.1.1 設(shè)計(jì)任務(wù)設(shè)計(jì)一個(gè)十字路口交通控制器,方向分為東南西北四個(gè)方向。東西方向的紅綠燈狀態(tài)一樣,南北方向的紅綠燈狀態(tài)一樣。每個(gè)方向上,有四盞燈,分別是左轉(zhuǎn)燈、紅燈、綠燈和黃燈。左拐燈亮表示左轉(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í)。其余的
16、狀態(tài)不顯示倒計(jì)時(shí)。左轉(zhuǎn)燈、紅燈、綠燈和黃燈亮的時(shí)間分別是15秒、80秒、45秒、5秒。狀態(tài)表如表3-1所示:表3-1 交通燈狀態(tài)轉(zhuǎn)換表狀態(tài)S0S1S2S3S4S5東 西 方 向紅紅紅紅 左轉(zhuǎn)綠黃亮 燈 1545515455南 北 方 向紅 左轉(zhuǎn)綠黃紅紅紅亮2 系統(tǒng)設(shè)計(jì)仿真對(duì)于交通燈控制器,可基于Quartus II 軟件,采用層次化混合輸入方式進(jìn)行設(shè)計(jì),即頂層采用原理圖設(shè)計(jì),底層采用VHDL語(yǔ)言設(shè)計(jì)。3.2.1 頂層框圖的設(shè)計(jì)頂層原理圖設(shè)計(jì)可以依據(jù)系統(tǒng)框圖進(jìn)行,有分頻模塊、控制模塊、倒計(jì)時(shí)模塊、紅綠燈顯示模塊、譯碼模塊、譯碼顯示模塊6六部分組成,如圖3-1 所示:圖3
17、-1 頂層原理圖系統(tǒng)框圖3.2.2 時(shí)序狀態(tài)圖的設(shè)計(jì)圖3-2 交通燈時(shí)序狀態(tài)圖3.2.3 工程設(shè)計(jì)流程框圖:新建工程新建原理圖文件或VHDL文件輸入程序或編輯原理圖編譯,若有錯(cuò),修改程序,直至無(wú)錯(cuò)建立波形文件,導(dǎo)入管腳編譯波形文件,查看仿真結(jié)果,保存 圖3-3 工程設(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)
18、位。3.2.5 各個(gè)模塊的設(shè)計(jì)與仿真1. 模塊設(shè)計(jì)該模塊可將頻率為1KHZ的脈沖波,經(jīng)過(guò)分頻變?yōu)轭l率為1HZ的脈沖波,這樣我們就得到了周期為1S的脈沖波。分頻器程序清單如下:library ieee;use 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 )variab
19、le q: integer:=0 ; variable r:std_logic:=0;begin if clk1khzevent and clk1khz=1 then if q=512 then r:=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)分頻成
20、1hz的信號(hào)。2. 模塊設(shè)計(jì)control模塊可根據(jù)clk的脈沖信號(hào)輸出S的值,下游模塊根據(jù)S的值來(lái)決定紅綠燈的狀態(tài)。同時(shí)對(duì)倒計(jì)時(shí)的信號(hào)賦初值。control模塊程序清單:library ieee;use ieee.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);en
21、d control;architecture a of control issignal t:integer;begin process(clk) begin if clkevent and clk=1 then 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; loada
22、t=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;control模塊程序仿真結(jié)果如圖3-5所示: 圖3-5 control模塊程序仿真結(jié)果圖在control模塊程序仿真結(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變成高電平,從而
23、可以觸發(fā)下一模塊的裝載。3. daojishi模塊設(shè)計(jì)該模塊用來(lái)接收control模塊的輸出作為初值,并進(jìn)行減一操作,最后把減一得結(jié)果輸出。程序里每檢測(cè)到一個(gè)脈沖clk,就進(jìn)行一次減一操作。atdaojishi模塊程序清單:library ieee;use ieee.std_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)
24、;end atdaojishi;architecture a of atdaojishi issignal countat:integer range 0 to 80;beginprocessbeginwait until rising_edge(clk);if loadat=1 then countat=atin;else countat=countat-1;end if;end process;atout=countat;end a;atdaojishi模塊程序仿真結(jié)果如圖3-6所示:圖3-6 atdaojishi模塊程序仿真結(jié)果圖 在atdaojishi模塊程序仿真結(jié)果圖中,clk為1h
25、z的輸入信號(hào),loadat為at計(jì)數(shù)器的裝載信號(hào),當(dāng)loadat為高電平時(shí),將輸入信號(hào)atin的值裝載到計(jì)數(shù)器中,開(kāi)始執(zhí)行減一操作,每接受一次clk,執(zhí)行一次,并將結(jié)果輸出。4. daojishi模塊設(shè)計(jì)該模塊用來(lái)接收control模塊的輸出作為初值,并進(jìn)行減一操作,最后把減一得結(jié)果輸出。程序里每檢測(cè)到一個(gè)脈沖clk,就進(jìn)行一次減一操作。btdaojishi模塊程序清單:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity btdaojishi isport ( clk,loadbt:in
26、 std_logic; btin:in integer range 0 to 80; btout:out integer range 0 to 80);end btdaojishi;architecture a of btdaojishi issignal countbt:integer range 0 to 80;beginprocessbeginwait until rising_edge(clk);if loadbt=1 then countbt=btin;else countbt=countbt-1;end if;end process;btout b:=;when 001= b:=;
27、when 010= b:=;when 011= b:=;when 100= b:=;when 101= b:=;when others = b:=;end case;lrgy=70 thenaout1=7;aout2=60 then aout1=6;aout2=50 thenaout1=5;aout2=40 thenaout1=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=5
28、0 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 aout1 aout1 aout1 aout1 aout1 aout1 aout2 aout2 aout2 aout2 aout2 aout2 aout2 aout2 aout2 aout2 aout2 bout1 bout1 bout1 bout1 bout1 bout1 bout1 bo
29、ut1 bout1 bout1 bout1 bout2 bout2 bout2 bout2 bout2 bout2 bout2 bout2 bout2 bout2 bout2= ; end case;end process;end a;譯碼顯示仿真結(jié)果如圖3-10所示: 圖3-10 譯碼顯示模塊仿真結(jié)果圖在譯碼顯示模塊仿真結(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ù)期。8. 頂層文件設(shè)計(jì)交
30、通燈的頂層文件是一個(gè)原理圖文件,它包含7個(gè)元件,每一個(gè)元件均是由一個(gè)模塊程序生成。7個(gè)元件分別為:fenpinqi模塊、control模塊、main模塊、atdaojishi模塊、btdaojishi模塊、yima模塊和yimaxianshi模塊。這些模塊均經(jīng)過(guò)設(shè)計(jì)、編譯、仿真,結(jié)果正確。最后生成可視化元件。然后將各個(gè)模塊用具有電氣性質(zhì)的導(dǎo)線連接起來(lái),這樣原理圖文件就建好了。保存編譯。在建立一個(gè).vwf波形文件,保存并仿真。原理圖如圖3-11所示:仿真結(jié)果如圖3.12所示:實(shí)驗(yàn)證明,仿真結(jié)果正確,符合預(yù)期。 圖3-11 頂層文件設(shè)計(jì)原理圖圖3-12 頂層文件波形仿真結(jié)果圖在頂層文件波形仿真結(jié)果
31、圖中,有一個(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ò)control模塊的處理,通過(guò)計(jì)數(shù)使s變化為不同的值,s代表的是交通燈時(shí)序圖的狀態(tài),一共有6個(gè)狀態(tài)(s0s5)。同時(shí)對(duì)應(yīng)不同的s的狀態(tài)賦不同的初值給at,bt。at,bt分別是東西方向和南北方向的倒計(jì)時(shí)初值。Control模塊還有一個(gè)功能是提供倒計(jì)時(shí)模塊的置數(shù)的觸發(fā)脈沖。接下來(lái),main模塊直接接受s的值來(lái)輸出相應(yīng)的紅綠燈亮滅狀態(tài)。例
32、如:lrgy的值為,這表明交通燈的亮滅情況為:東西左轉(zhuǎn)燈滅,東西紅燈亮,東西綠燈滅,東西黃燈滅,南北左轉(zhuǎn)燈滅,南北紅燈滅,南北綠燈亮,南北黃燈滅。即一一對(duì)應(yīng)。倒計(jì)時(shí)部分分為兩個(gè)模塊:atdaojishi和btdaojishi。兩個(gè)模塊分別倒計(jì)時(shí)東西方向和南北方向。每個(gè)倒計(jì)時(shí)模塊都有相似的端口:clk、loadat、atin、atout和clk、loadbt、btin、btout。我們只舉其中一個(gè)為例子:clk為倒計(jì)時(shí)的時(shí)鐘脈沖,當(dāng)loadat為高電平時(shí),將atin傳遞給atout,clk的上升沿每來(lái)一次,atout減一次。此前,時(shí)間的值都是整形的,要想將倒計(jì)時(shí)實(shí)時(shí)顯示出來(lái),就需要將兩位的整數(shù)分
33、解成個(gè)位和十位,yima模塊就是這樣的。將一個(gè)倒計(jì)時(shí)分解成兩個(gè)一位數(shù),例如將54分解成5和4。然后經(jīng)過(guò)yimaxianshi模塊將對(duì)應(yīng)的數(shù)字譯成相應(yīng)的段碼,例如將5和4譯碼為和。在這個(gè)系統(tǒng)設(shè)計(jì)中,所有的數(shù)碼管和二極管均為共陰極顯示。結(jié) 論從4月份接到畢業(yè)設(shè)計(jì)任務(wù)到現(xiàn)在,已有兩個(gè)月的時(shí)間,回想自己在這兩個(gè)月的時(shí)間里的付出,看著手中這份勞動(dòng)果實(shí),我真正體會(huì)到了收獲的喜悅。在此期間,我在網(wǎng)上搜集一些相關(guān)信息,但由于上班時(shí)間的限制,我更多的時(shí)間是自己研究。同時(shí), 我還和楊軍政一起研究交流,利用回校的一點(diǎn)時(shí)間,到圖書館查閱有關(guān)資料,最后終于順利完成了此次畢業(yè)論文設(shè)計(jì)。此次畢業(yè)論文設(shè)計(jì)讓我了解了GFPA的
34、相關(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)的影響。模擬放大器通常來(lái)說(shuō),一個(gè)信號(hào)放大器的確能夠正如你所認(rèn)為的將信號(hào)放大!然而,信號(hào)放大的方式隨著實(shí)際放大器的設(shè)計(jì),信號(hào)的類型,以及放大信號(hào)用途的不同而發(fā)生變
35、化。我們可以通過(guò)一個(gè)最常用的高保真音響系統(tǒng)的例子來(lái)說(shuō)明以上觀點(diǎn)。在一個(gè)典型的現(xiàn)代高保真系統(tǒng)中,信號(hào)來(lái)自一個(gè)模塊,比如CD音樂(lè)播放器,調(diào)諧電路,或者磁帶(小型磁盤)。它們產(chǎn)生的信號(hào)經(jīng)過(guò)適度地放大后可以達(dá)到100毫伏左右,這是一個(gè)相當(dāng)大的電壓,足以在示波器或者電壓表上反映出來(lái)。然而,這些信號(hào)的實(shí)際功率卻是什么微弱的。具有代表性的是,這些信號(hào)僅僅有幾個(gè)毫安的電流,通過(guò)公式P=U*I計(jì)算,得出信號(hào)的功率僅為幾個(gè)毫瓦。一個(gè)典型的擴(kuò)音器需要數(shù)瓦或至100瓦左右的功率來(lái)放大聲音。因此,我們需要一些功率放大器把來(lái)自信號(hào)源的微弱信號(hào)放大成足夠被人聽(tīng)到的音樂(lè)。如圖1.1所示,圖中的4個(gè)模擬放大器的例子應(yīng)用了不同類
36、型的結(jié)構(gòu)。在每一個(gè)例子中,交流電壓增益基本上由所選擇的電阻決定。注意:表達(dá)式1-1中的負(fù)號(hào)表明,實(shí)例中的電路在放大時(shí)改變了信號(hào)的極性。像這種簡(jiǎn)單的電路可以很輕松地放大百級(jí)以上。不過(guò),在實(shí)際應(yīng)用中,一般不需要這么大。這種具有類似真空狀態(tài)的設(shè)備開(kāi)始流行,在國(guó)際通稱為真空電子管,在美國(guó)被稱為電子管。 圖. 1.1 電壓放大器示例把許多實(shí)用的放大器放在一塊做成一個(gè)模擬信號(hào)放大器,可以通過(guò)它獲得很高的電壓增益。例如,一個(gè)功率放大器的輸入級(jí)接一個(gè)電壓可能為0.1毫伏的麥克風(fēng),經(jīng)過(guò)放大之后,可能放大到10伏100伏來(lái)驅(qū)動(dòng)揚(yáng)聲器,這就要求電壓增益達(dá)到109,所以把許多電壓增益模塊串聯(lián)在一起就很有必要了。在很多
37、時(shí)候,我們希望放大器不僅能放大電壓,也能放大電流。若想找個(gè)例子的話,高保真音響系統(tǒng)中用來(lái)驅(qū)動(dòng)擴(kuò)音器的信號(hào)是最好不過(guò)了。這些典型的輸入級(jí)阻抗大約為8歐姆,所以說(shuō),要想驅(qū)動(dòng)負(fù)載功率為100瓦的擴(kuò)音器,我們必須同時(shí)提供28V的電壓和3.5A的電流。另一個(gè)關(guān)于源信號(hào)的輸入級(jí)阻抗的例子就是麥克風(fēng)了。它的阻抗大約為100歐姆。因此麥克風(fēng)的輸出信號(hào)為1納安、0.1毫伏。這就表示要接受這種輸入信號(hào)并去驅(qū)動(dòng)100瓦的揚(yáng)聲器。放大電路就必須將信號(hào)的電流和電壓同時(shí)放大109倍。這意味著總功率的增益是1018,也就是180分貝。 這種大功率增益促使了人們對(duì)放大器功能的普遍了解,人們按照功率將放大器分為前級(jí)放大器和功率
38、放大器。功率放大器內(nèi)部的信號(hào)比其他同類的信號(hào)大很多,以至于即使“很微弱”的信號(hào),把輸出級(jí)的信號(hào)接到輸入端都會(huì)出現(xiàn)很多問(wèn)題。把大功率(大電流)的部分和低功率的部分裝在不同的盒子里,這樣我們便可以保護(hù)輸入信號(hào)不被破壞。 實(shí)際上,許多需要大電流和大功率的設(shè)備往往都在特定的條件下工作,即由信號(hào)的電壓決定響應(yīng)的幅度,繼而由設(shè)備吸收其所需要的電流而工作。例如,使用擴(kuò)音器是十分方便的,因?yàn)檩敵雎曇舻拇笮∮商峁┙o擴(kuò)音器的電壓決定。盡管如此,絕大多數(shù)的擴(kuò)音器的效率(把電功率轉(zhuǎn)化為有用功率的效果)和頻率有關(guān)。在一定程度上,這種結(jié)果符合人的自然生理特性。一個(gè)典型的例子如圖1-2所示,當(dāng)一個(gè)擴(kuò)音器的頻率為150HZ時(shí)
39、,阻抗為12歐姆,當(dāng)頻率為1KHZ時(shí),阻抗為5歐姆。所以頻率為1KHZ時(shí)的電流比頻率為150HZ時(shí)的電流的2倍還大。功率放大器當(dāng)然不會(huì)事先知道你要用哪種,因此我們簡(jiǎn)單地采用了一種協(xié)議。協(xié)議規(guī)定,在信號(hào)的任何頻率下,電壓的幅值表明需要的信號(hào)幅值電流應(yīng)該包括擴(kuò)音器所需的全部電流。圖1.2 典型的8歐姆擴(kuò)音器的阻抗特性這種做法在電子系統(tǒng)中很常見(jiàn)。即:在信息條目中,信號(hào)類型有電壓決定,而電壓又隨時(shí)間變化。理論上,所需的電流已經(jīng)確定了。盡管,上述觀點(diǎn)是以大功率例子為依據(jù)的。一個(gè)很類似的情形:一個(gè)傳感器響應(yīng)輸入的變化輸出一個(gè)電壓,但是輸出的電流卻是有限的。在這些情況下,我們需要一個(gè)電流放大器或者一個(gè)緩沖器
40、。電流放大器和緩沖器十分類似,我們用一些形式的增益設(shè)備和電路來(lái)提高電流的幅值。然而,一個(gè)電流放大器總是放大一定的倍數(shù)。這一點(diǎn)和電壓放大器能把電壓放大一定倍數(shù)的行為很相似。緩沖器因電流放大器不同而不同,只有這樣,它才能為了維持信號(hào)電壓并且提供所需的任何電流。隨著時(shí)代的發(fā)展,當(dāng)今的技術(shù)也日趨完善、競(jìng)爭(zhēng)愈演愈烈;單靠人工的操作已不能滿足于目前的制造業(yè)前景,也無(wú)法保證更高質(zhì)量的要求和高新技術(shù)企業(yè)的形象.人們?cè)谏a(chǎn)實(shí)踐中看到,自動(dòng)化給人們帶來(lái)了極大的便利和產(chǎn)品質(zhì)量上的保證,同時(shí)也減輕了人員的勞動(dòng)強(qiáng)度,減少了人員上的編制.在許多復(fù)雜的生產(chǎn)過(guò)程中難以實(shí)現(xiàn)的目標(biāo)控制、整體優(yōu)化、最佳決策等,熟練的操作工、技術(shù)人員或?qū)<?、管理者卻能夠容易判斷
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理技術(shù)鋪床
- 能源審計(jì)與節(jié)能技術(shù)實(shí)施手冊(cè)
- 輸變電工程施工安全管理及風(fēng)險(xiǎn)控制方案編制綱要模板
- 2026年劇本殺運(yùn)營(yíng)公司快遞收發(fā)管理制度
- 2025年電力設(shè)施巡檢與故障排除手冊(cè)
- 互感器校驗(yàn)培訓(xùn)課件
- 全期護(hù)理中的跨學(xué)科合作
- 護(hù)理專業(yè)春季護(hù)理信息技術(shù)應(yīng)用
- 2025年智慧農(nóng)業(yè)五年物聯(lián)網(wǎng)應(yīng)用報(bào)告
- 云南英文介紹
- 2025年延安市市直事業(yè)單位選聘(76人)考試參考試題及答案解析
- 2026長(zhǎng)治日?qǐng)?bào)社工作人員招聘勞務(wù)派遣人員5人參考題庫(kù)及答案1套
- 2026年菏澤學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)附答案解析
- 2025年體育教師個(gè)人年終述職報(bào)告
- 實(shí)際問(wèn)題與一次函數(shù)課件2025-2026學(xué)年人教版八年級(jí)數(shù)學(xué)下冊(cè)
- 2024年鹽城市體育局直屬事業(yè)單位招聘真題
- 2025-2026學(xué)年教科版(新教材)二年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)梳理歸納
- MDT在老年髖部骨折合并癥患者中的應(yīng)用策略
- 2026天津農(nóng)商銀行校園招聘考試歷年真題匯編附答案解析
- 八上語(yǔ)文期末作文押題常考主題佳作
- 番茄的營(yíng)養(yǎng)及施肥
評(píng)論
0/150
提交評(píng)論