版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 本科生畢業(yè)論文(設(shè)計)</p><p> 基于EDA技術(shù)的交通燈設(shè)計</p><p> 姓 名: </p><p> 指導(dǎo)教師: </p><p> 院 系: 信息工程學(xué)院 </p><p>
2、; 專 業(yè): 電子信息工程 </p><p> 提交日期: </p><p><b> 目 錄</b></p><p><b> 中文摘要2</b></p><p><b> 外文摘要3</b></p
3、><p><b> 引言4</b></p><p><b> 1.緒論5</b></p><p> 1.1 EDA技術(shù)概述5</p><p> 1.1.1 EDA技術(shù)的發(fā)展與應(yīng)用5</p><p> 1.1.2 EDA技術(shù)的基本特征5</p>&
4、lt;p> 1.1.3 EDA的設(shè)計方法5</p><p> 1.2 硬件描述語言VHDL6</p><p> 1.2.1 VHDL的簡介6</p><p> 1.2.2 VHDL的設(shè)計方法7</p><p> 1.3 MaxPlus II開發(fā)平臺系統(tǒng)8</p><p> 1.3.1 Max
5、Plus II簡介8</p><p> 1.3.2 MaxPlus II的特點9</p><p> 2.交通燈控制系統(tǒng)介紹10</p><p> 2.1 交通燈控制系統(tǒng)的功能10</p><p> 2.2 交通燈控制系統(tǒng)設(shè)計選擇10</p><p> 2.3 交通燈控制系統(tǒng)設(shè)計要求11</p
6、><p> 2.4 交通燈控制系統(tǒng)的基本組成模塊11</p><p> 2.5 交通燈控制器狀態(tài)12</p><p> 3.交通燈控制系統(tǒng)的設(shè)計12</p><p> 3.1 交通燈控制器功能描述及設(shè)計方法12</p><p> 3.2 交通燈控制器各模塊的程序設(shè)計13</p><p
7、> 3.2.1 控制部分的設(shè)計13</p><p> 3.2.2 顯示部分的設(shè)計14</p><p> 3.2.3 分頻器部分的設(shè)計15</p><p> 3.3 交通燈控制系統(tǒng)的仿真16</p><p> 3.3.1 對交通燈控制部分進行仿真16</p><p> 3.3.2 對交通燈顯示
8、部分模塊進行仿真17</p><p> 3.3.3 對交通燈系統(tǒng)進行仿真18</p><p><b> 結(jié)束語19</b></p><p><b> 參考文獻20</b></p><p><b> 致謝21</b></p><p>&l
9、t;b> 附錄22 </b></p><p> 基于EDA技術(shù)的交通燈設(shè)計</p><p><b> X X</b></p><p> 指導(dǎo)老師:X X </p><p> ?。S山學(xué)院信息工程學(xué)院,黃山,安徽 245041)</p><p> 摘 要:伴隨著社
10、會的發(fā)展以及人類生活水平的提高,汽車的數(shù)量在不斷增加。隨著EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大與深入,EDA技術(shù)在電子信息、通信、自動、控制及計算機應(yīng)用等領(lǐng)域的重要性日益突出。隨著汽車數(shù)量的不斷增加,交通的問題日益突出,單單依靠人力來指揮交通已經(jīng)不可行了。所以,設(shè)計交通燈來完成這個需求就顯的越加迫切了。為了確保十字路口的行人和車輛順利、暢通地通過,往往采用電子控制的交通信號來進行指揮。以下就是運用數(shù)字電子設(shè)計出的交通燈,其中紅燈亮,表示該條
11、路禁止通行;黃燈亮表示停車;綠燈亮表示允許通行。</p><p> 關(guān)鍵詞:EDA;VHDL;PLD;交通燈</p><p> Design of Traffic Light </p><p> Based on EDA Technology</p><p><b> X X </b></p>
12、<p> Director:X X </p><p> ?。–ollege of Information Engineering, Huangshan University, Huangshan, China, 245041)</p><p> Abstract:With the development of society and the improvement of pe
13、ople's living standard, the number of cars is increasing.Along with the development of DEA technology and it's expansion in application fields, the EDA technology in electronic information, communication, automat
14、ic control , computer application and other fields is of growing importance. With the ever increasing number of cars, traffic problems have become increasingly prominent,which leads to it not to be feasible only rely on
15、ma</p><p> Key Words: EDA;VHDL;PLD;the traffic lights</p><p><b> 引言</b></p><p> 隨著城市汽車保有量的越來越多,城市的交通擁擠問題正逐漸引起人們的注意。交通燈是交管部門管理城市交通的重要工具。提高十字路口的通行效率,對緩解交通阻塞具有十分重要的現(xiàn)實意義。
16、</p><p> 傳統(tǒng)的交通燈硬件電路設(shè)計方法是采用自下而上的設(shè)計方法,即根據(jù)系統(tǒng)對硬件的要求,詳細編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對系統(tǒng)的功能進行細化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進行各功能模塊的細化和電路設(shè)計;各功能模塊電路設(shè)計、調(diào)試完成后,將各功能模塊的硬件電路連接起來再進行系統(tǒng)的調(diào)試,最后完成整個系統(tǒng)的硬件設(shè)計。采用傳統(tǒng)方法設(shè)計數(shù)字系統(tǒng),特別是
17、當(dāng)電路系統(tǒng)非常龐大時,設(shè)計者必須具備較好的設(shè)計經(jīng)驗,而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計者帶來諸多的不便。</p><p> 本文采用VHDL語言設(shè)計其硬件,以可編程邏輯器件為載體,EDA軟件為開發(fā)工具,設(shè)計一個交通燈。第一階段,通過參閱文獻及相關(guān)資料確定交通燈的設(shè)計方案,構(gòu)建電路功能模塊,利用相關(guān)軟件繪畫出電路圖,要求圖形繪制完整、精確、符合規(guī)范。第二階段,以硬件描述語言為系統(tǒng)邏輯描述的表達方式在EDA軟
18、件平臺上編寫源程序,要求設(shè)計合理、性能得到優(yōu)化、器件利用率最高。第三階段,對所編寫的程序進行仿真以確定能否達到要求并根據(jù)具體情況對程序不斷改進。最后下載配置至EDA實驗箱中檢測設(shè)計結(jié)果實現(xiàn)最后的設(shè)計與仿真。</p><p><b> 1 緒論</b></p><p> 1.1 EDA技術(shù)概述</p><p> EDA是電子設(shè)計自動化(El
19、ectronic Design Automation)的縮寫,在20世紀(jì)90年代初從計算機輔助設(shè)計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發(fā)展而來的。EDA技術(shù)就是以計算機為工具,設(shè)計者在EDA軟件平臺上,用硬件描述語言HDL完成設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。</p&
20、gt;<p> 1.1.1 EDA技術(shù)的發(fā)展與應(yīng)用</p><p> 電子設(shè)計技術(shù)的核心就是EDA技術(shù),EDA是指以計算機為工作平臺,融合應(yīng)用電子技術(shù)、計算機技術(shù)、智能化技術(shù)最新成果而研制成的電子CAD通用軟件包,主要能輔助進行三方面的設(shè)計工作,即IC設(shè)計、電子電路設(shè)計和PCB設(shè)計。</p><p> EDA技術(shù)是伴隨著計算機、集成電路、電子系統(tǒng)設(shè)計的發(fā)展, 經(jīng)歷了計算
21、機輔助設(shè)計(CAD)、計算機輔助工程設(shè)計(CAE)和電子系統(tǒng)設(shè)計自動化( ESDA)三個發(fā)展階段。20世紀(jì)70年代為CAD階段, 這一階段人們開始用計算機輔助進行IC版圖編輯和PCB 布局布線, 取代了手工操作。80年代為CAE階段,與CAD相比, 除了純粹的圖形繪制功能外, 又增加了電路功能設(shè)計和結(jié)構(gòu)設(shè)計, 并通過電氣連接網(wǎng)表將兩者結(jié)合在一起,以實現(xiàn)工程設(shè)計。90年代為ESDA階段, ESDA的基本特征是設(shè)計人員按“自頂向下”的設(shè)計方
22、法,對整個系統(tǒng)進行方案設(shè)計和功能劃分, 然后采用硬件描述語言(HDL)完成系統(tǒng)行為級設(shè)計, 最后通過綜合器和適配器生成最終的目標(biāo)器件。ESDA的出現(xiàn), 使設(shè)計師開始實現(xiàn)“概念驅(qū)動工程”的夢想, 從而擺脫了大量的輔助設(shè)計作, 把精力集中在創(chuàng)造性的方案與概念構(gòu)思上, 極大地提高了系統(tǒng)的效率, 縮短了產(chǎn)品的研制周期。</p><p> 1.1.2 EDA技術(shù)的基本特征</p><p> ED
23、A代表了當(dāng)今電子設(shè)計技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計人員按照“自頂向下”的設(shè)計方法,對整個系統(tǒng)進行方案設(shè)計和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC)實現(xiàn),然后采用硬件描述語言(HDL)完成系統(tǒng)行為級設(shè)計,最后通過綜合器和適配器生成最終的目標(biāo)器件,這樣的設(shè)計方法被稱為高層次的電子設(shè)計方法。EDA設(shè)計方法被越來越多的硬件設(shè)計人員采用,基本上取代了傳統(tǒng)的硬件設(shè)計方法。</p><p> 1
24、.1.3 EDA的設(shè)計方法</p><p> “自頂向下”的設(shè)計方法。高層次設(shè)計是一種“自頂向下”的全新設(shè)計方法,這種設(shè)計方法首先從系統(tǒng)設(shè)計人手,在頂層進行功能方框圖的劃分和結(jié)構(gòu)設(shè)計。在方框圖一級進行仿真、糾錯,并用硬件描述語言對高層次的系統(tǒng)行為進行描述,在系統(tǒng)一級進行驗證。然后,用綜合優(yōu)化工具生成具體門電路的網(wǎng)絡(luò)表,其對應(yīng)的物理實現(xiàn)級可以是印刷電路板或?qū)S眉呻娐?。由于設(shè)計的主要仿真和調(diào)試過程是在高層次上完成
25、的,這既有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計上的錯誤,避燃計工作的浪費,又減少了邏輯功能仿真的工作量,提高了設(shè)計的一次成功率。</p><p> 1.2 硬件描述語言VHDL</p><p> 1.2.1 VHDL的簡介</p><p> 硬件描述語言(HDL)是一種用于設(shè)計硬件電子系統(tǒng)的計算機語言,它用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,與傳統(tǒng)的門
26、級描述方式相比,它更適合大規(guī)模系統(tǒng)的設(shè)計。例如一個32位的加法器,利用圖形輸入軟件需要輸人500至1000個門,而利用VHDL語言只需要書寫一行"A=B+C"即可。而且 VHDL語言可讀性強,易于修改和發(fā)現(xiàn)錯誤。早期的硬件描述語言,如ABEL、HDL、AHDL,由不同的EDA廠商開發(fā),互不兼容,而且不支持多層次設(shè)計,層次間翻譯工作要由人工完成。為了克服以上不足,1985年美國國防部正式推出了高速集成電路硬件描述語言V
27、HDL,1987年IEEE采納VHDL為硬件描述語言標(biāo)準(zhǔn)(IEEE STD-1076)。</p><p> VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級。寄存器傳輸級和邏輯門級多個設(shè)計層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能,整個自頂向下或由底向上的電路設(shè)計過程都可以用VHDL來完成。VHDL還具有以下優(yōu)點:</p><p>
28、; ?。?)VHDL的寬范圍描述能力使它成為高層進設(shè)計的核心,將設(shè)計人員的工作重心提高到了系統(tǒng)功能的實現(xiàn)與調(diào)試,而花較少的精力于物理實現(xiàn)。</p><p> ?。?)VHDL可以用簡潔明確的代碼描述來進行復(fù)雜控制邏輯艄設(shè)計,靈活且方便,而且也便于設(shè)計結(jié)果的交流、保存和重用。</p><p> ?。?)VHDL的設(shè)計不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。</p><p&g
29、t; ?。?)VHDL是一個標(biāo)準(zhǔn)語言,為眾多的EDA廠商支持,因此移植性好。</p><p> 用VHDL語言編程實現(xiàn)數(shù)字電子系統(tǒng)硬件設(shè)計容易做到技術(shù)共享。他人用VHDL語言實現(xiàn)了IP模塊和軟核(soft core),程序包(package)和設(shè)計庫(library)很容易移植到自己的系統(tǒng)設(shè)計中。許多設(shè)計不用從頭開始,少花錢辦快事,縮短產(chǎn)品設(shè)計周期,加速產(chǎn)品更新,提高設(shè)計效益,這也是VHDL語言得到廣泛應(yīng)用的重
30、要原因。</p><p> 值得指出的是:Verilog-HDL等硬件描述語言獲得較為廣泛的應(yīng)用。但最適合于用CPLD&VHDL等器件實現(xiàn)數(shù)字電子系統(tǒng)設(shè)計的硬件描述語言當(dāng)屬于VHDL。</p><p> 1.2.2 VHDL的設(shè)計方法</p><p> 傳統(tǒng)的硬件電路設(shè)計方法是采用自下而上的設(shè)計方法,即根據(jù)系統(tǒng)對硬件的要求,詳細編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流
31、圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對系統(tǒng)的功能進行細化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進行各功能模塊的細化和電路設(shè)計;各功能模塊電路設(shè)計、調(diào)試完成后,將各功能模塊的硬件電路連接起來再進行系統(tǒng)的調(diào)試,最后完成整個系統(tǒng)的硬件設(shè)計。采用傳統(tǒng)方法設(shè)計數(shù)字系統(tǒng),特別是當(dāng)電路系統(tǒng)非常龐大時,設(shè)計者必須具備較好的設(shè)計經(jīng)驗,而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計者帶來諸多的不便。</p><p> 當(dāng)電
32、路系統(tǒng)采用VHDL語言設(shè)計其硬件時,與傳統(tǒng)的電路設(shè)計方法相比較,具有如下的特點:</p><p> 第一,采用自上而下的設(shè)計方法。</p><p> 即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計的內(nèi)容細化,最后完成系統(tǒng)硬件的整體設(shè)計。在設(shè)計的過程中,對系統(tǒng)自上而下分成三個層次進行設(shè)計:</p><p> 第一層次是行為描述。所謂行為描述,實質(zhì)上就是對整個系統(tǒng)的數(shù)
33、學(xué)模型的描述。一般來說,對系統(tǒng)進行行為描述的目的是試圖在系統(tǒng)設(shè)計的初始階段,通過對系統(tǒng)行為描述的仿真來發(fā)現(xiàn)設(shè)計中存在的問題。在行為描述階段,并不真正考慮其實際的操作和算法用何種方法來實現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)及其工作的過程是否能到達系統(tǒng)設(shè)計的要求。</p><p> 第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結(jié)構(gòu)的程序,其抽象程度高,是很難直接映射到具體
34、邏輯元件結(jié)構(gòu)的。要想得到硬件的具體實現(xiàn),必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統(tǒng)采用RTL方式描述,才能導(dǎo)出系統(tǒng)的邏輯表達式,才能進行邏輯綜合。</p><p> 第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉(zhuǎn)換成用基本邏輯元件表示的文件(門級網(wǎng)絡(luò)表)。此時,如果需要,可將邏輯綜合的結(jié)果以邏輯原理圖的方式輸出。此后可對綜合的結(jié)果在門電路級上進行
35、仿真,并檢查其時序關(guān)系。</p><p> 第二,應(yīng)用邏輯綜合工具產(chǎn)生的門級網(wǎng)絡(luò)表,將其轉(zhuǎn)換成PLD的編程碼點,即可利用PLD實現(xiàn)硬件電路的設(shè)計。</p><p> 由自上而下的設(shè)計過程可知,從總體行為設(shè)計開始到最終的邏輯綜合,每一步都要進行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設(shè)計中存在的問題,從而可以大大縮短系統(tǒng)的設(shè)計周期。</p><p> 第三,系統(tǒng)可大量采用P
36、LD芯片。</p><p> 由于目前眾多制造PLD芯片的廠家,其工具軟件均支持VHDL語言的編程。所以利用VHDL語言設(shè)計數(shù)字系統(tǒng)時,可以根據(jù)硬件電路的設(shè)計需要,自行利用PLD設(shè)計自用的ASIC芯片,而無須受通用元器件的限制。</p><p> 第四,采用系統(tǒng)早期仿真。</p><p> 從自上而下的設(shè)計過程中可以看到,在系統(tǒng)設(shè)計過程中要進行三級仿真,即行為
37、層次仿真、RTL層次仿真和門級層次仿真。這三級仿真貫穿系統(tǒng)設(shè)計的全過程,從而可以在系統(tǒng)設(shè)計的早期發(fā)現(xiàn)設(shè)計中存在的問題,大大縮短系統(tǒng)設(shè)計的周期,節(jié)約大量的人力和物力。自頂而下的設(shè)計方法使系統(tǒng)被分解為各個模塊的集合之后,可以對設(shè)計的每個獨立模塊指派不同的工作小組,這些工作小組可以工作在不同地點,甚至可以分屬于不同的單位,最后將不同的模塊集成為最終的系統(tǒng)模型,并對其進行綜合測試和評價。其自頂而下的設(shè)計流程如圖1-1所示:</p>
38、<p> 圖1-1 自頂而下的設(shè)計流程</p><p> 1.3 MaxPlus II開發(fā)平臺系統(tǒng)</p><p> 1.3.1 MaxPlus II簡介</p><p> MaxPlus II的全稱是Multiple Array and Programmable Logic Use System2(多陣列矩陣及可編程邏輯用戶系統(tǒng)2),是Alt
39、era公司的全集成化可編程邏輯設(shè)計環(huán)境。從最初的第一代A+PLUS,第二代MaxPlus II,發(fā)展到第三代MaxPlus II,Altera公司的開發(fā)工具軟件在發(fā)展中不斷完善。MaxPlus II的版本不升級,功能也越來越強大,目前發(fā)行的MaxPlus II已經(jīng)到10.2版。</p><p> MaxPlus II的界面友好,在線幫助完備,初學(xué)者也可以很快學(xué)習(xí)掌握。完成高性能的設(shè)計。其次,在進行原理圖輸入時,
40、可以直接放置74系列邏輯芯片,所以對于普通愛好者來說,即使不使用Altera的可編程器件,也可以把MaxPlus II作為邏輯仿真工具,另外,不用搭建硬件電路,即可對自己的設(shè)計進行調(diào)試,支持Altera公司不同結(jié)構(gòu)的可編程邏輯器件,能滿足用戶各種各樣的設(shè)計需要。MaxPlus II具有突出的靈活性與高效性,為設(shè)計者提供了多種可自由選擇的設(shè)計方法和工具。</p><p> 1.3.2 MaxPlus II的特點&
41、lt;/p><p> 1. MaxPlus II的編譯核心支持Altera的FLEX 10K、FLEX 8K、MAX9000、MAX7000、FLASHlogic、MAX5000、Classic系列可編程邏輯器件; </p><p> 2. MaxPlus II的設(shè)計輸入、處理與校驗功能一起提供了全集成化的一套可編程邏輯開發(fā)工具,可加快動態(tài)調(diào)試,縮短開發(fā)周期; </p>&l
42、t;p> 3. MaxPlus II支持各種HDL設(shè)計輸入,包括VHDL、Verilog和Altera的AHDL; </p><p> 4. MaxPlus II可與其他工業(yè)標(biāo)準(zhǔn)設(shè)計輸入、綜合與校驗工具鏈接。與CAE工具的接口符合EDIF200和209、參數(shù)化模塊庫( LPM )、Verilog、VHDL及其它標(biāo)準(zhǔn)。設(shè)計者可使用Altera或標(biāo)準(zhǔn)CAE設(shè)計輸入工具去建立邏輯設(shè)計,使用MaxPlus II
43、編譯器對Altera器件設(shè)計進行編譯,并使用Altera或其它CAE校驗工具進行器件或板級仿真。MaxPlus II支持與Synopsys、Viewlogic、Mentor Graphics、Cadence、Exemplar、Data I/O、Intergraph、Minc、OrCAD等公司提供的工具接口。利用MaxPlus II軟件平臺進行設(shè)統(tǒng)設(shè)計。具體的設(shè)計流程圖如圖1-2所示:</p><p> 2 交通
44、燈控制系統(tǒng)介紹</p><p> 城市中常見的大型十字路口如圖2-1所示。</p><p> 一般情況下,當(dāng)汽車行駛至十字交通路口時,有3種選擇: 向前,向左轉(zhuǎn)彎,向右轉(zhuǎn)彎。根據(jù)我國的交通規(guī)則規(guī)定,汽車是靠右行駛,向右拐彎只要走弧形的支干道即可,不需受十字交通燈的束縛。因此,本文主要考慮前行和左轉(zhuǎn)這兩種情況。十字路口交通燈負責(zé)控制各走向紅綠燈的狀態(tài)及轉(zhuǎn)換,并且各狀態(tài)之間有一定的時間過渡
45、。同時,東西南北每條干道上都為人行橫道設(shè)置了紅綠燈,提醒行人在安全時刻穿越道路以保證行人的安全。</p><p> 2.1 交通燈控制系統(tǒng)的功能</p><p> 交通燈控制系統(tǒng)主要是實現(xiàn)城市十字交叉路口紅綠燈的控制。在現(xiàn)代化的大城市中,十字交叉路口越來越多,在每個交叉路口都需要使用紅綠燈進行交通指揮和管理,紅、黃、綠燈的轉(zhuǎn)換要有一個準(zhǔn)確的時間間隔和轉(zhuǎn)換順序,這就需要有一個安全、自動的
46、系統(tǒng)對紅、黃、綠燈的轉(zhuǎn)換進行管理,本系統(tǒng)就是基于此目的而開發(fā)的。</p><p> 2.2 交通燈控制系統(tǒng)設(shè)計選擇</p><p> 城市路口交通信號控制系統(tǒng)大體上分為三種類型: 定周期的信號機、多時段且具有無電纜協(xié)調(diào)功能的微電腦型信號機以及聯(lián)網(wǎng)式自適應(yīng)多相位智能型信號機。具體采用哪種類型, 應(yīng)根據(jù)其應(yīng)用場合及特點加以確定。其中, 第一種類型以其成本低,設(shè)計簡單, 安裝及維護方便等特點
47、得到了廣泛應(yīng)用。</p><p> 2.3 交通燈控制系統(tǒng)設(shè)計要求</p><p> 1.能顯示十字路口東西、南北兩個方向的紅、黃、綠燈的指示狀態(tài),用兩組紅、黃、綠三色燈作為兩個方向的紅、黃、綠燈;</p><p> 2.南北向為主干道,每次通行時間為50S,東西向為支干道,每次通行時間為30S;</p><p> 3.能實現(xiàn)正常的倒
48、計時功能,用兩組數(shù)碼管作為東西、南北向的倒計時顯示。其中,黃燈:5S。</p><p> 4.能實現(xiàn)特殊狀態(tài)的功能。按下SP鍵后,能實現(xiàn)以下特殊功能:</p><p> (1)顯示倒計時的兩組數(shù)碼管閃爍;</p><p> (2)計數(shù)器停止計數(shù)并保持在原來的狀態(tài);</p><p> ?。?)東西、南北路口均顯示紅燈狀態(tài);</p&g
49、t;<p> ?。?)特殊狀態(tài)解除后能繼續(xù)計數(shù);</p><p> 5. 能實現(xiàn)全清零功能。按下reset鍵后,系統(tǒng)實現(xiàn)全清零,計數(shù)器由初狀態(tài)計數(shù),對應(yīng)狀態(tài)的指示燈亮;</p><p> 6. 用VHDL語言設(shè)計上述功能的交通燈控制器,并用層次化方法設(shè)計該電路;</p><p> 7. 仿真、驗證設(shè)計的正確性。</p><p&
50、gt; 2.4 交通燈控制系統(tǒng)的基本組成模塊</p><p> 交通燈控制器原理框圖如圖2-2所示,包括置數(shù)模塊、計數(shù)模塊、主控制器模塊和譯碼器模塊。置數(shù)模塊將交通燈的點亮?xí)r間預(yù)置到置數(shù)電路中,計數(shù)模塊以秒為單位倒計時,當(dāng)計數(shù)值減為零時,主控電路改變輸出狀態(tài),電路進入下一個狀態(tài)的倒計時。其中,核心部分是主控制模塊。</p><p> 2.5 交通燈控制器狀態(tài)</p>&
51、lt;p> 根據(jù)要求,交通燈分四個狀態(tài),如下表2-1:</p><p> 表2-1 交通燈的四個狀態(tài)</p><p> 3 交通燈控制系統(tǒng)的設(shè)計</p><p> 有一條主干道和一條支干道的匯合點形成的十字路口,為確保車輛安全,迅速通行,在干道和支道的入口設(shè)置了紅、綠、黃3色信號燈。</p><p> 3.1 交通燈控制器功
52、能描述及設(shè)計方法</p><p> 通過兩組交通燈來模擬控制東西、南北兩條通道上的車輛通行,所有功能在實驗操作平臺上進行模擬通過,根據(jù)原理其主要功能如圖3-1:</p><p> 圖3-1 系統(tǒng)結(jié)構(gòu)圖</p><p> 其中l(wèi)edcontrol部分為控制器模塊,ledshhow部分為譯碼器模塊。控制器包括指數(shù)模塊、計數(shù)模塊和主控制器模塊。置數(shù)模塊將交通燈的點
53、亮?xí)r間預(yù)置到置數(shù)電路中,計數(shù)模塊以秒為單位倒計時,當(dāng)計數(shù)值減為零時,主控電路改變輸出狀態(tài),電路進入下一個狀態(tài)的倒計時。譯碼器模塊將控制器模塊的控制作用通過譯碼表現(xiàn)出來,即我們看到的交通燈。最后上圖最左邊是系統(tǒng)輸入,右邊是系統(tǒng)輸出。</p><p> 3.2 交通燈控制器各模塊的程序設(shè)計</p><p> 下面是各功能模塊的VHDL程序,文中只寫出了它們的核心部分,各模塊完整的程序在附錄
54、中給出。</p><p> 3.2.1 控制部分的設(shè)計</p><p> 控制模塊是交通控制系統(tǒng)的核心部分,控制模塊主要用于控制系統(tǒng)的時鐘、計數(shù)值、循環(huán)周期判別和人工控制信號輸入,并將計數(shù)值做相關(guān)的運算得到數(shù)碼管的倒計時值,同時控制十字路口信號燈的亮、滅火閃爍。如圖3-2所示,reset是復(fù)位引腳;clk是時鐘引腳,其值為分頻器的輸出時鐘信號;urgen是緊急狀態(tài)引腳;state[1.
55、.0]是狀態(tài)引腳;sub,set1,set2是狀態(tài)選擇引腳。</p><p> process(reset,clk)</p><p><b> begin</b></p><p> if reset='1'then</p><p> count<="0000000";&l
56、t;/p><p> state<="00"; </p><p> elsif clk'event and clk='1'then</p><p> if urgen='0'then count<=count+1;subtemp
57、<='1';else subtemp<='0';end if;</p><p> if count=0 then state<="00";set1<='1';set2<='1';</p><p> elsif count=25 then state<="01
58、";set1<='1';</p><p> elsif count=30 then state<="10";set1<='1';set2<='1';</p><p> elsif count=45 then state<="11";set2<='
59、1';</p><p> elsif count=50 then count<="0000000";else set1<='0';set2<='0';end if;</p><p><b> end if;</b></p><p> end process s
60、tatelabel;</p><p> 圖3-2 控制部分的圖形</p><p> 3.2.2 顯示部分的設(shè)計</p><p> 顯示模塊包括數(shù)碼管動態(tài)掃描電路和譯碼顯示電路,動態(tài)掃描電路用于選擇需要顯示的數(shù)碼管,譯碼顯示電路用于將輸入的二進制信息轉(zhuǎn)換為數(shù)碼管顯示編碼。如圖3-3所示,clk是時鐘引腳;urgen是緊急狀態(tài)引腳;state[1..0]是狀態(tài)引
61、腳;sub,set1,set2是狀態(tài)選擇引腳,在sub為上升沿時,可以用set1和set2來選擇調(diào)整交通燈的狀態(tài);r1,g1,y1,r2,g2,y2分別是主干道方向和次干道方向的紅、綠、黃燈信號引腳;led1[7..0],led2[7..0]分別為主干道方向和次干道方向的數(shù)碼管倒計時信號燈引腳。</p><p><b> label2:</b></p><p>
62、process(sub)</p><p><b> begin</b></p><p> if sub'event and sub='1'then</p><p> if set2='1'then</p><p> count2<=setstate2;</p&g
63、t;<p> elsif count2(3 downto 0)="0000" then count2<=count2-7;</p><p> else count2<=count2-1; end if;</p><p><b> g2<=tg2;</b></p><p><b>
64、; r2<=tr2;</b></p><p><b> y2<=ty2;</b></p><p><b> end if;</b></p><p> end process label2;</p><p><b> label1:</b><
65、;/p><p> process(sub)</p><p><b> begin</b></p><p> if sub'event and sub='1'then</p><p> if set1='1'then
66、 圖3-3 顯示部分的圖形</p><p> count1<=setstate1;</p><p> elsif count1(3 downto 0)="0000" then count1<=count1-7;</p><p> else count1<=count1-1;end if;</p>
67、<p><b> g1<=tg1;</b></p><p><b> r1<=tr1;</b></p><p><b> y1<=ty1;</b></p><p><b> end if;</b></p><p> e
68、nd process label1; </p><p> 3.2.3 分頻器部分的設(shè)計</p><p> 分頻模塊通過分頻得到計數(shù)模塊的時鐘頻率,此頻率作為數(shù)碼管動態(tài)顯示的掃描時鐘頻率。如圖3-4所示,clk_in是分頻器的時鐘輸入引腳;clk為時鐘輸出引腳;reset為復(fù)位引腳。</p><p> pro
69、cess(clk_in,reset) is</p><p> variable cnt:t_short;</p><p><b> begin</b></p><p> if(reset='1')then</p><p><b> cnt:=0;</b></p>
70、<p><b> clk<='0';</b></p><p> elsif rising_edge(clk_in)then</p><p> if(cnt<=(divide_period/2))then</p><p><b> clk<='1';</b>
71、;</p><p> cnt:=cnt+1;</p><p> elsif(cnt<(divide_period-1))then</p><p><b> clk<='0';</b></p><p> cnt:=cnt+1;</p><p><b>
72、 else</b></p><p><b> cnt:=0;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p>
73、圖3-4 分頻器部分的圖形</p><p> 3.3 交通燈控制系統(tǒng)的仿真</p><p> 3.3.1 對交通燈控制部分進行仿真</p><p> 在MaxPlus II軟件中導(dǎo)入交通燈控制程序,對此程序編譯無錯誤后,建立Vector waveform file 文件保存時仿真文件名要與設(shè)計文件名一致。在其中設(shè)計始終開始時間為0,結(jié)束時間為5us,周期為5
74、0ns。仿真結(jié)果如圖3-5:</p><p> 圖3-5 交通燈控制部分仿真圖一</p><p> 當(dāng)reset='1'state<="00"count<="0000000";</p><p> 當(dāng)reset='0'在上升沿到來時執(zhí)行當(dāng) count=0 則state<=
75、"00";set1<='1';set2<='1'; </p><p> count=25 state<="01";set1<='1'; count=30 then state<="10";set1<='1';set2<='1
76、39;;</p><p> count=45 then state<="11";set2<='1';</p><p> count=50 then count<="0000000",否則 set1<='0';set2<='0'</p><p>&
77、lt;b> 仿真的結(jié)果正確。</b></p><p> 圖3-6 交通燈控制部分仿真圖二</p><p> 3.3.2 對交通燈顯示部分模塊進行仿真</p><p> 在 MaxPlus II 軟件中導(dǎo)入交通燈顯示程序,對此程序編譯無錯誤后,建立Vector waveform file 文件保存時仿真文件名要與設(shè)計文件名一致。將控制仿真的
78、結(jié)果貼到顯示仿真中,兩次在其中設(shè)計的開始時間為0,結(jié)束時間為5us,周期為50ns。仿真結(jié)果如下:</p><p> 圖3-7 交通燈顯示部分仿真圖一</p><p> 仿真結(jié)果與程序所要的結(jié)果一樣。</p><p> 當(dāng)state="00"時g1<='1';當(dāng)state(1)<= '0'時r2
79、<='1'。</p><p> 圖3-8 交通燈顯示部分仿真圖二</p><p> 當(dāng)urgen='1'時r1<='1',r2<='1';仿真結(jié)果與程序設(shè)計符合。</p><p> 3.3.3 對交通燈系統(tǒng)進行仿真</p><p> 在 MaxPlus
80、 II 軟件中導(dǎo)入交通燈系統(tǒng)程序,對此程序編譯無錯誤后,建立Vector waveform file 文件保存時仿真文件名要與設(shè)計文件名一致。在其中設(shè)計開始時間為0,結(jié)束時間為5us,周期為50ns。仿真結(jié)果如下:</p><p> 圖3-9 交通燈系統(tǒng)分仿真圖一</p><p> 圖3-10 交通燈系統(tǒng)仿真圖二</p><p> 系統(tǒng)仿真的結(jié)果符合設(shè)計要
81、求。與前面仿真的結(jié)果也一致。</p><p><b> 結(jié)束語</b></p><p> 經(jīng)歷了數(shù)星期的畢業(yè)設(shè)計眼看塵埃落定,看似簡單的題目做起來也是舉步維艱。通過課程設(shè)計,發(fā)現(xiàn)了自己的很多不足,自己知識的很多漏洞,與此同時也學(xué)會了獨立克服困難的能力。</p><p> 本設(shè)計采用VHDL 硬件描述語言文本輸入方式,在確立總體預(yù)期實現(xiàn)功能
82、的前提下,分層次進行描述,其中所用到的數(shù)據(jù)均可依現(xiàn)場情況而設(shè)置,修改方便靈活。特殊狀態(tài)可自行修改和添加,但總的前提是保持狀態(tài)二(南北東西均為紅燈) 的優(yōu)先級最高。須注意的是,功能四的兩模擬頻率不能太高,否則將無法實現(xiàn)。事實上這也與實際情況相符,因為考慮到道路行使中車速受限因素存在。</p><p> 數(shù)字化時代的到來給人們的生活帶來了極大的改變,有理由相信隨著數(shù)字化的深入,交通燈控制器的功能將日趨完善。而且VH
83、DL語言對EDA 產(chǎn)生的影響也是深遠的,它縮短了電子產(chǎn)品的設(shè)計周期,為設(shè)計者提供了方便。</p><p><b> 參考文獻</b></p><p> 朱正偉. EDA技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社,2009.</p><p> 候伯亨. VHDL硬件描述語言與數(shù)字電路邏輯設(shè)計[M].西安:西安電子科技大學(xué)出版社,1999.<
84、;/p><p> 方翔. 電子信息技術(shù)在智能交通信號燈控制中的應(yīng)用[J].機電信息, 2010,(12):39-44.</p><p> 王振紅. VHDL數(shù)字電路設(shè)計與應(yīng)用實踐教程[M].北京: 機械工業(yè)出版社, 2003.</p><p> 焦鍵. EDA軟件在數(shù)字電路中的應(yīng)用[J].硅谷, 2010,(9):100-103.</p><p
85、> Stephen Brown,Zvonko Vranesic. Fundamentals of Digital Logic With VHDL Design,Third Edition[M].北京:電子工業(yè)出版社,2009.</p><p> 湯澤軍,周歡喜,吳進. 一種交通信號燈控制系統(tǒng)的設(shè)計與實現(xiàn)方案[J].長沙航空職業(yè)技術(shù)學(xué)院學(xué)報,2010,(3):18-21.</p><p
86、> Clinal Cale. Real Digital,A Hands-on Approach to Digital Design[M].西安:西安電子科技大學(xué)出版社,2009.</p><p> 胡蓉. 基于EDA技術(shù)基礎(chǔ)的數(shù)字電路課程設(shè)計[J].職業(yè)教育研究, 2010,(06):49-54.</p><p> 李春雨,高原. 基于VHDL狀態(tài)機的交通燈控制器設(shè)計[J].山
87、西電子技術(shù),2010,(1):54—56.</p><p> 江培蕾,戴彥. 基于FPGA的交通控制器的設(shè)計[J].黑龍江科技信息, 2010,(1):74—78.</p><p><b> 致謝</b></p><p> 本論文是在張老師的精心指導(dǎo)下完成的。在做畢業(yè)設(shè)計的整個過程中,都得到了張老師的耐心指導(dǎo)和詳細解答,特別是在設(shè)計的初始
88、階段,張老師在需求分析方面給了我很大的幫助,在老師幫助和指導(dǎo)下,使我能很快地就確定了系統(tǒng)的目的和開發(fā)方案,并且在后來的程序?qū)崿F(xiàn)方面給予了正確的引導(dǎo),使我少走了很多彎路,并提高了我的效率。這對于我以后的工作和學(xué)習(xí)都有很大的幫助,在此衷心感謝張老師的耐心輔導(dǎo)。</p><p> 最后,我衷心地祝福所有給予我?guī)椭睦蠋熀屯瑢W(xué),希望他們在以后的日子里工作順利!學(xué)習(xí)進步!再創(chuàng)輝煌!</p><p>
89、;<b> 附錄</b></p><p> 交通燈設(shè)計中的各模塊程序</p><p> 一、控制部分的VHDL程序</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_lo
90、gic_unsigned.all;</p><p> entity ledcontrol is</p><p> port(reset,clk,urgen:in std_logic;</p><p> state:out std_logic_vector(1 downto 0);</p><p> sub,set1,set2 :out
91、 std_logic);</p><p> end ledcontrol;</p><p> architecture control of ledcontrol is</p><p> signal count: std_logic_vector(6 downto 0);</p><p> signal subtemp: std_l
92、ogic;</p><p><b> begin</b></p><p> sub<=subtemp and (not clk);</p><p> statelabel:</p><p> process(reset,clk)</p><p><b> begin<
93、;/b></p><p> if reset='1'then</p><p> count<="0000000";</p><p> state<="00"; </p><p> elsif c
94、lk'event and clk='1'then</p><p> if urgen='0'then count<=count+1;subtemp<='1';else subtemp<='0';end if;</p><p> if count=0 then state<="00&
95、quot;;set1<='1';set2<='1';</p><p> elsif count=25 then state<="01";set1<='1';</p><p> elsif count=30 then state<="10";set1<='1
96、';set2<='1';</p><p> elsif count=45 then state<="11";set2<='1';</p><p> elsif count=50 then count<="0000000";else set1<='0';set2&
97、lt;='0';end if;</p><p><b> end if;</b></p><p> end process statelabel;</p><p> end control;</p><p> 二、顯示部分的VHDL程序</p><p> library
98、ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity ledshow is</p><p> port(clk,urgen:in std_logic;</p><p&
99、gt; state:in std_logic_vector(1 downto 0);</p><p> sub,set1,set2:in std_logic;</p><p> r1,g1,y1,r2,g2,y2:out std_logic;</p><p> led1,led2:out std_logic_vector(7 downto 0));</
100、p><p> end ledshow;</p><p> architecture show of ledshow is</p><p> signal count1,count2:std_logic_vector(7 downto 0);</p><p> signal setstate1,setstate2:std_logic_vec
101、tor(7 downto 0);</p><p> signal tg1,tg2,tr1,tr2,ty1,ty2 :std_logic;</p><p><b> begin</b></p><p> led1<="11111111"when urgen='1'and clk='0'
102、; else count1;</p><p> led2<="11111111"when urgen='1'and clk='0' else count2;</p><p> tg1<='1'when state="00"and urgen='0' else '0
103、';</p><p> ty1<='1'when state="01"and urgen='0' else '0';</p><p> tr1<='1'when state(1)='1'or urgen='1' else '0';<
104、;/p><p> tg2<='1'when state="10"and urgen='0' else '0';</p><p> ty2<='1'when state="11"and urgen='0' else '0';</p>
105、<p> tr2<='1'when state(1)='0'or urgen='1' else '0';</p><p> setstate1<= "00100101"when state="00"else</p><p> "00000101&q
106、uot;when state="01"else</p><p> "00100000";</p><p> setstate2<= "00010101"when state="10"else</p><p> "00000101"when state=&q
107、uot;11"else</p><p> "00110000";</p><p><b> label2:</b></p><p> process(sub)</p><p><b> begin</b></p><p> if sub
108、'event and sub='1'then</p><p> if set2='1'then</p><p> count2<=setstate2;</p><p> elsif count2(3 downto 0)="0000" then count2<=count2-7;</p
109、><p> else count2<=count2-1; end if;</p><p><b> g2<=tg2;</b></p><p><b> r2<=tr2;</b></p><p><b> y2<=ty2;</b></p>
110、<p><b> end if;</b></p><p> end process label2;</p><p><b> label1:</b></p><p> process(sub)</p><p><b> begin</b></p>
111、;<p> if sub'event and sub='1'then</p><p> if set1='1'then</p><p> count1<=setstate1;</p><p> elsif count1(3 downto 0)="0000" then count1
112、<=count1-7;</p><p> else count1<=count1-1;end if;</p><p><b> g1<=tg1;</b></p><p><b> r1<=tr1;</b></p><p><b> y1<=ty1;&l
113、t;/b></p><p><b> end if;</b></p><p> end process label1;</p><p><b> end show;</b></p><p> 三、分頻器部分的VHDL程序</p><p> library ie
114、ee;</p><p> use ieee.std_logic_1164.all;</p><p> use work.p_alarm.all;</p><p> entity divider is</p><p> port(clk_in:in std_logic;</p><p> reset:in st
115、d_logic;</p><p> clk:out std_logic);</p><p> end divider;</p><p> architecture div of divider is</p><p> constant divide_period:t_short:=1000;</p><p>&
116、lt;b> begin</b></p><p> process(clk_in,reset) is</p><p> variable cnt:t_short;</p><p><b> begin</b></p><p> if(reset='1')then</p>
117、;<p><b> cnt:=0;</b></p><p><b> clk<='0';</b></p><p> elsif rising_edge(clk_in)then</p><p> if(cnt<=(divide_period/2))then</p>
118、<p><b> clk<='1';</b></p><p> cnt:=cnt+1;</p><p> elsif(cnt<(divide_period-1))then</p><p><b> clk<='0';</b></p>&l
119、t;p> cnt:=cnt+1;</p><p><b> else</b></p><p><b> cnt:=0;</b></p><p><b> end if;</b></p><p><b> end if;</b></p&
120、gt;<p> end process;</p><p><b> end div;</b></p><p> 四、p_alarm程序包</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p>
121、; package p_alarm is</p><p> subtype t_digital is integer range 0 to 9;</p><p> subtype t_short is integer range 0 to 65535;</p><p> type t_clock_time is array(5 downto 0)of t_d
122、igital;</p><p> type t_display is array(5 downto 0)of t_digital;</p><p> end package p_alarm;</p><p><b> 附件:</b></p><p> 本科生畢業(yè)設(shè)計(論文)管理規(guī)范</p><
123、p><b> 教 務(wù) 處</b></p><p><b> 目 錄</b></p><p> 教育部辦公廳關(guān)于加強普通高等學(xué)校畢業(yè)設(shè)計(論文)工作的通知1</p><p> 畢業(yè)設(shè)計(論文)工作管理規(guī)程4</p><p> 大學(xué)本科生畢業(yè)設(shè)計(論文)盲審抽檢辦法12<
124、;/p><p> 畢業(yè)設(shè)計說明書與畢業(yè)論文撰寫的規(guī)范化要求14</p><p> 大學(xué)畢業(yè)論文封面21</p><p> 大學(xué)畢業(yè)設(shè)計(論文)任務(wù)書22</p><p> 大學(xué)畢業(yè)設(shè)計(論文)開題報告33</p><p> 大學(xué) 屆畢業(yè)設(shè)計(論文)答辯資格審查表35</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 完整板基于eda的交通燈設(shè)計說明書
- eda技術(shù)的交通燈畢業(yè)設(shè)計---基于eda技術(shù)的交通燈設(shè)計
- 交通燈課程設(shè)計說明書
- 交通燈畢業(yè)設(shè)計說明書
- 交通燈設(shè)計課程設(shè)計說明書
- 交通燈畢業(yè)設(shè)計說明書 (2)
- eda交通燈課程設(shè)計報告(eda)
- eda交通燈課程設(shè)計---交通燈控制系統(tǒng)的設(shè)計
- eda交通燈課程設(shè)計
- eda實驗交通燈設(shè)計報告
- 基于sopc交通燈的eda課程設(shè)計
- eda交通燈課程設(shè)計---交通燈控制系統(tǒng)
- eda交通燈課程設(shè)計
- eda實驗交通燈設(shè)計報告
- eda實驗交通燈設(shè)計報告
- 畢業(yè)設(shè)計---基于eda技術(shù)的交通燈設(shè)計
- 交通燈控制器課程設(shè)計說明書
- eda交通燈課程設(shè)計論文
- 單片機課程設(shè)計---交通燈設(shè)計說明書
- eda技術(shù)的交通燈畢業(yè)設(shè)計
評論
0/150
提交評論