2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  學(xué)生畢業(yè)設(shè)計(論文)報告</p><p>  系 別: 電子與電氣工程學(xué)院 </p><p>  專 業(yè): </p><p>  班 號: </p><p>  學(xué) 生 姓 名: 甘秋南 &l

2、t;/p><p>  學(xué) 生 學(xué) 號: </p><p>  設(shè)計(論文)題目: 基于EDA技術(shù)的交通燈設(shè)計</p><p>  指 導(dǎo) 教 師: </p><p>  設(shè) 計 地 點: </p><p>  起

3、迄 日 期: </p><p>  畢業(yè)設(shè)計(論文)任務(wù)書</p><p>  專業(yè) 班級 姓名 </p><p>  一、課題名稱: 基于EDA技術(shù)的交通燈設(shè)計 </p><p&

4、gt;<b>  二、主要技術(shù)指標(biāo):</b></p><p>  1、運用數(shù)字電路理論知識自行設(shè)計一個較為完整的小型數(shù)字系統(tǒng)。 </p><p>  2、實現(xiàn)簡單的交通燈控制的要求。 </p><p>  三、工作內(nèi)容和要求:</p><p>  1、交通燈從綠變

5、紅時,有5秒黃燈亮的間隔時間;</p><p>  2、交通燈紅變綠是直接進(jìn)行的,沒有間隔時間;</p><p>  3、綠燈時間為25秒,紅燈時間為15秒;</p><p>  4、采用VHDL語言編寫程序,并在QUARTUSII工具平臺中進(jìn)行仿真,下載到EDA實驗箱進(jìn)行驗證。</p><p>  5、編寫設(shè)計報告,要求包括方案選擇、程序清

6、單、調(diào)試過程、測試結(jié)果及心得體會。</p><p><b>  四、主要參考文獻(xiàn):</b></p><p>  [1] 周偉 《交通信號燈的設(shè)計原理》 上海光源研究所 </p><p>  [2] 王軍華 《LED道路交通信號燈測試研究》 交通管理學(xué)院研究所. </p><p>

7、  [3] 雷伏容 《VHDL電路設(shè)計》 清華大學(xué)出版社 </p><p>  [4] 甘歷 《VHDL應(yīng)用與開發(fā)實踐》 科學(xué)出版社

8、 </p><p>  學(xué) 生(簽名) 2011年9月 7日 </p><p>  指 導(dǎo) 教師(簽名) 2011年9月10日 </p><p>  教研室主任(簽名) 2011年9月10日</p><p>  系

9、 主 任(簽名) 2011年9月12日</p><p>  畢業(yè)設(shè)計(論文)開題報告</p><p>  基于EDA技術(shù)的交通燈設(shè)計</p><p><b>  目錄</b></p><p><b>  摘要</b></p><p><

10、b>  Abstract</b></p><p>  第一章 前言............................................................1</p><p>  EDA技術(shù)及其發(fā)展.................................................1

11、 </p><p>  選擇VHDL硬件描述語言設(shè)計的優(yōu)勢..................................2 </p><p>  第二章 基于EDA技術(shù)的交通燈任務(wù)設(shè)計................................3</p><p> 

12、 2.1 任務(wù)要求................................................3 </p><p>  2.2 設(shè)計設(shè)計....................................................3

13、 </p><p>  2.3 方案論證與對比..............................................3 </p><p>  第三章 基于EDA技術(shù)的交通燈設(shè)計描述...................................4</p>&

14、lt;p>  3.1 交通系統(tǒng)的發(fā)展趨勢...........................................4 </p><p>  3.2紅綠燈交通信號系統(tǒng)功能描述....................................4

15、 </p><p>  第四章 交通燈系統(tǒng)的設(shè)計的相關(guān)模塊設(shè)計..................................7</p><p>  4.1時鐘脈沖發(fā)生模塊.............................................7</p><p

16、>  4.2計數(shù)秒數(shù)選擇模塊.............................................8</p><p>  4.3倒計時控制模塊..............................................11</p><p>  4.4紅綠燈信號控制模塊.........................................

17、.14</p><p>  4.5交通燈系統(tǒng)總述及仿真........................................16</p><p>  結(jié)束語.................................................................17 </p

18、><p>  參考文獻(xiàn)...............................................................18 </p><p>  答謝詞..................................................................1

19、9</p><p>  附錄:程序..............................................................20</p><p><b>  摘 要</b></p><p>  隨著大規(guī)模集成電路及計算機(jī)技術(shù)的迅速發(fā)展,以及人工智能在控制技術(shù)方面的廣泛運用,智能設(shè)備有了很大的發(fā)展,是現(xiàn)代科技發(fā)

20、展的主流方向。本文介紹了一個交通燈系統(tǒng)的設(shè)計。</p><p>  傳統(tǒng)的交通燈控制系統(tǒng)多數(shù)由單片機(jī)或PLC實現(xiàn),本文介紹的是基于EDA技術(shù)設(shè)計交通燈系統(tǒng)的一種方案。EDA技術(shù)的一個重要特征就是使用硬件描述語言來完成系統(tǒng)的設(shè)計文件,應(yīng)用VHDL的數(shù)字電路實驗降低了數(shù)字系統(tǒng)的設(shè)計難度,這在電子設(shè)計領(lǐng)域已得到設(shè)計者的廣泛采用。本設(shè)計就是針對交通信號燈控制器的設(shè)計問題,提出了基于VHDL語言的交通信號燈系統(tǒng)的硬件實現(xiàn)方

21、法。</p><p>  通過對系統(tǒng)進(jìn)行結(jié)構(gòu)分析,采用了層次化的設(shè)計方法,給出了各個模塊的VHDL程序,并且利用Max PlusⅡ?qū)?yīng)用程序進(jìn)行了仿真,并給出了相應(yīng)的仿真結(jié)果。在用VHDL語言進(jìn)行電路設(shè)計時,應(yīng)充分認(rèn)識到VHDL語言的特點,從設(shè)計思想、語句運用及描述方法上等多方面對電路進(jìn)行優(yōu)化設(shè)計。通過電路優(yōu)化設(shè)計,可以使用規(guī)模更小的可編程邏輯芯片,從而降低系統(tǒng)成本。</p><p>  

22、關(guān)鍵詞:交通信號燈,VHDL,仿真</p><p><b>  Abstract</b></p><p>  With the rapid development of large scale integrated circuits and computer technology and the extensive use of intelligent devices

23、 in the control of artificial intelligence technology, intelligent devices have gotten great progress and become the mainstream of the development of modern science . This paper describes the system design of traffic lig

24、hts . Traditional traffic light control system is mostly achieved by a single chip or PLC, this paper introduces a scheme of the design of traffi</p><p>  Keywords: traffic light ,VHDL ,simulation</

25、p><p><b>  第一章 前言</b></p><p>  不同的城市存在著不同的城市問題,但其中有一個共同的問題就是城市交通。在交叉路口如何解決混合交通流中的相互影響,就是解決問題的關(guān)鍵所在!隨著我國經(jīng)濟(jì)的穩(wěn)步發(fā)展,人民生活水平的日漸提高,越來越多的汽車進(jìn)入尋常百姓的家庭,再加上政府大力地發(fā)展公交、出租車行業(yè),道路上的車輛越來越多,使得城市的交通成為了一個主要的問

26、題。嚴(yán)重的擁堵現(xiàn)象,逐漸惡化的城市環(huán)境,都給廣大市民帶來了許多困擾。要解決這些問題不僅要求道路越來越寬闊,而且更需要有新的交通管理模式出臺。舊有的交通控制系統(tǒng)的弊病和人們越來越高的要求激化了矛盾,使原來不太突出的交通問題被提上了日程?,F(xiàn)在有關(guān)部門愈來愈多的注重在交通管理中引進(jìn)自動化、智能化技術(shù),比如“電子警察”、自適應(yīng)交通信號燈,以及耗資巨大的交通指揮控制系統(tǒng)等。經(jīng)濟(jì)的發(fā)展和社會的進(jìn)步,使道路交通成為社會活動的重要組成部分。對交通的管控

27、能力,也就從側(cè)面體現(xiàn)了這個國家對整個社會的管理控制能力,因此我們國家越來越重視運用各種高科技手段來加強(qiáng)對交通的管控能力,這不僅是衡量城市交通管理水平的標(biāo)志,更是城市交通發(fā)展的重要目標(biāo)。</p><p><b>  EDA技術(shù)及其發(fā)展</b></p><p>  現(xiàn)代電子設(shè)計技術(shù)的核心是EDA技術(shù)。EDA技術(shù)就是依賴功能強(qiáng)大的計算機(jī),在EDA工具軟件平臺上,對以硬件描述

28、語言HDL 為系統(tǒng)邏輯描述手段完成的設(shè)計文件,它能自動地完成邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合、結(jié)構(gòu)綜合(布局布線),以及邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)在進(jìn)入21世紀(jì)后,得到了更大的發(fā)展。在仿真和設(shè)計兩方面支持標(biāo)準(zhǔn)硬件描述語言的功能越來越強(qiáng)大,軟硬件技術(shù)也進(jìn)一步得到了融合,在電子行業(yè)的產(chǎn)業(yè)領(lǐng)域、技術(shù)領(lǐng)域和設(shè)計應(yīng)用領(lǐng)域得到了進(jìn)一步的肯定,使得復(fù)雜電子系統(tǒng)的設(shè)計和驗證趨于簡單化。即使是普通的電子產(chǎn)品的開發(fā)

29、,EDA技術(shù)常常使一些原來的技術(shù)瓶頸得以輕松突破,從而使產(chǎn)品的開發(fā)周期大為縮短、性能價格比大幅提高[2]。不言而喻,EDA技術(shù)將迅速成為電子設(shè)計領(lǐng)域中的極其重要的組成部分。</p><p>  EDA技術(shù)是20世紀(jì)90年代初從CAD(計算機(jī)輔助設(shè)計)、CAM(計算機(jī)輔助制造),CAT(計算機(jī)輔助測試)和CAE(計算機(jī)輔助工程)的概念發(fā)展而來的?,F(xiàn)代EDA技術(shù)就是以讓算機(jī)為工具,在EDA軟件平臺上,根據(jù)硬件描述語言

30、HDL完成的設(shè)計文件,能自動地完成用軟件方式描述的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、布局布線、邏輯仿真,直至完成對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。設(shè)計者的工作僅限于利用軟件的方式來完成對系統(tǒng)硬件功能的描述,在EDA工具的幫助下和應(yīng)用相應(yīng)的FPGA/CPLD器件,就可以得到最后的設(shè)計結(jié)果。盡管目標(biāo)系統(tǒng)是硬件,但整個設(shè)計和修改過程如同完成軟件設(shè)計一樣方便和高效</p><

31、;p>  選擇VHDL硬件描述語言設(shè)計的優(yōu)勢</p><p>  首先,簡單地介紹一下什么是VHDL硬件描述語言。它是EDA設(shè)計中使用最多的語言之一,它具有很強(qiáng)的電路描述和建模能力,能從多個層次對數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大地簡化了硬件設(shè)計任務(wù),提高了設(shè)計效率和可靠性。</p><p>  其次,這次設(shè)計選用VHDL硬件描述語言的優(yōu)勢就在于傳統(tǒng)的用原理圖設(shè)計電路的方法具有直觀形象

32、的優(yōu)點,但如果所設(shè)計系統(tǒng)的規(guī)模比較大,或者設(shè)計軟件不能提供設(shè)計者所需的庫單元時,這種方法就顯得很受限制了。而且用原理圖表示的設(shè)計,通用性、可移植性也比較弱,所以在現(xiàn)代的設(shè)計中,越來越多地采用了基于硬件描述語言的設(shè)計方式。利用硬件描述語言來設(shè)計電路,使探測各種設(shè)計方案變成一件很容易的事,因為只需要對描述語言進(jìn)行修改,這比更改電路原理圖要容易實現(xiàn)得多。</p><p>  VHDL 語言能夠成為標(biāo)準(zhǔn)化的硬件描述語言并

33、獲得廣泛應(yīng)用 , 它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點。歸納起來 ,VHDL 語言主要具有以下優(yōu)點:</p><p>  (1) VHDL 語言功能強(qiáng)大 , 設(shè)計方式多樣</p><p>  (2) VHDL 語言具有強(qiáng)大的硬件描述能力</p><p>  (3) VHDL 語言具有很強(qiáng)的移植能力</p><p>  (4) VH

34、DL 語言的設(shè)計描述與器件無關(guān)</p><p>  (5) VHDL 語言程序易于共享和復(fù)用</p><p>  第二章 基于EDA技術(shù)的交通燈任務(wù)設(shè)計</p><p><b>  2.1設(shè)計要求:</b></p><p>  模擬十字路口交通信號燈的工作過程,利用實驗板上的兩組紅、 黃、綠LED作為交通信號燈,設(shè)

35、計一個交通信號燈控制器。</p><p>  交通燈從綠變紅時,有5秒黃燈亮的間隔時間;</p><p>  交通燈紅變綠是直接進(jìn)行的,沒有間隔時間;</p><p>  綠燈時間為25秒,紅燈時間為15秒;</p><p>  在任意時間,顯示每個狀態(tài)到該狀態(tài)結(jié)束所需的時間。</p><p><b>  2

36、.2設(shè)計要求:</b></p><p>  采用VHDL語言編寫程序,并在QUARTUSII工具平臺中進(jìn)行仿真,下載到EDA實驗箱進(jìn)行驗證。</p><p>  編寫設(shè)計報告,要求包括方案選擇、程序、測試結(jié)果及心得體會。</p><p>  2.3方案論證與對比</p><p><b>  方案一</b>&l

37、t;/p><p>  采用VHDL語言直接編寫,實現(xiàn)交通燈指揮功能。但此方案編寫復(fù)雜且困難,開發(fā)時間較長。編譯后,不便讀懂,找出錯誤很困難。</p><p><b>  方案二</b></p><p>  采用模塊層次化設(shè)計,將此設(shè)計分為四個模塊:計時模塊,狀態(tài)控制模塊,信號燈顯示模塊,數(shù)碼掃描顯示模塊。將四個模塊再分別用VHDL語言編寫成,做成原

38、理圖模塊,用原理圖輸入法做整個設(shè)計的頂層文件。此方案設(shè)計方便、簡單,方法易懂、易操作,也易于尋找程序中的錯誤,故我們采用此方案。</p><p>  第三章 基于EDA技術(shù)的交通燈設(shè)計方案描述</p><p>  3.1 交通系統(tǒng)的發(fā)展趨勢</p><p>  交通系統(tǒng)未來的發(fā)展趨勢就是要提高通行能力,加強(qiáng)環(huán)境保護(hù),開展智能化運輸和環(huán)保專項技術(shù)的研究,并且要做到以人

39、為本,重點開展交通安全技術(shù)的研究,在這個過程中要確定經(jīng)濟(jì)合理的目標(biāo),促進(jìn)新材料的廣泛應(yīng)用和開發(fā)。智能交通系統(tǒng)是將先進(jìn)的信息技術(shù)、數(shù)據(jù)通訊傳輸技術(shù)、電子傳感技術(shù)及計算機(jī)處理技術(shù)等有效的集成運用于整個地面交通管理系統(tǒng)而建立的一種在大范圍內(nèi)、全方位發(fā)揮作用的,實時、準(zhǔn)確、高效的綜合交通運輸管理系統(tǒng)。 </p><p>  隨著交通狀況的日益惡化,西方發(fā)達(dá)國家普遍開展了關(guān)于智能交通系統(tǒng)共用信息平臺的研究、建設(shè)。一方面,西

40、方發(fā)達(dá)國家開展了許多關(guān)于部門間信息共享、以及公有-私有關(guān)系的專項研究,從法規(guī)、政策、機(jī)制等方面對部門間信息共享給予了一定的保障;另一方面,西方發(fā)達(dá)國家的ITS建設(shè)已經(jīng)發(fā)展到一定程度,普遍開展了較高層次的交通信息服務(wù)。然而,在提供良好的交通信息服務(wù)的背后,必定要有功能強(qiáng)大、信息資源豐富的ITS共用信息平臺作為支撐。 在我國,城市智能交通已逐步得到社會各界的廣泛關(guān)注,并已成為交通領(lǐng)域的研究熱點,社會各界對通過智能交通系統(tǒng)建設(shè)、緩解日益嚴(yán)重的

41、交通問題寄予了厚望。 </p><p>  鑒于城市智能交通系統(tǒng)建設(shè)涉及到城市管理多個部門職能,因此,只有各相關(guān)部門協(xié)調(diào)配合、共同行動起來,在必要的機(jī)制和技術(shù)手段下充分實現(xiàn)部門間的信息共享,城市智能交通才可能順利建設(shè)和發(fā)展。 </p><p>  為此,國家科技部提出了建設(shè)城市交通ITS共用信息平臺的構(gòu)想,在此基礎(chǔ)上廣泛開展關(guān)于交通綜合信息的研究和應(yīng)用。智能交通各界通過多年的研究和工程實踐

42、,普遍認(rèn)為信息平臺的建設(shè)應(yīng)實現(xiàn)信息共享樞紐、綜合交通信息服務(wù)、交通輔助決策、重大事件管理等功能目標(biāo)。目前,已有的交通信息采集系統(tǒng)還處于各自分立的狀態(tài)。要實現(xiàn)上述功能,還需面對諸多必須解決的問題。多學(xué)科綜合集成ITS共用信息平臺。 </p><p>  3.2 紅綠燈交通信號系統(tǒng)功能描述</p><p>  在交通信號燈的設(shè)計中,外部硬件電路方面主要包括:兩組紅綠燈、兩組LED顯示器(見圖1

43、,說明:圖1中只畫出了東西、南北方向的紅綠燈及南北方向的LED顯示器,東西方向的LED顯示器與南北方向的相同)。軟件方面包括:(1)電路合成模塊的概念:將交通燈信號系統(tǒng)劃分成若干個小電路,編寫每一個模塊的VHDL程序代碼,并將各個小電路相連接。這樣可以增加程序的調(diào)試速度,同時也能夠?qū)⒐ぷ骷?xì)分,以提高編程速度(見圖2、圖3)。(2)參數(shù)化的概念:針對不同時段的交通流量,可以調(diào)整紅綠燈電路(增加或者減少電路的計數(shù)時間),以增加程序的靈活性。

44、</p><p>  圖2 交通信號燈系統(tǒng)結(jié)構(gòu)圖</p><p>  由交通信號燈系統(tǒng)結(jié)構(gòu)圖(見圖2)可知,該系統(tǒng)由4個子電路組成。其中包括:</p><p><b>  時鐘發(fā)生電路;</b></p><p><b>  計數(shù)秒數(shù)選擇電路;</b></p><p><

45、;b>  倒計時控制電路;</b></p><p>  紅綠燈信號控制電路。</p><p>  圖3 交通信號燈系統(tǒng)模塊圖</p><p>  由圖3可以看出系統(tǒng)大體的工作程序是:首先由時鐘發(fā)生電路產(chǎn)生穩(wěn)定的時鐘信號,為下面三個子電路提供同步工作信號。接收到時鐘信號的紅綠燈信號控制電路開始工作,并將產(chǎn)生的重新計數(shù)的輸出使能控制信號發(fā)送給計數(shù)秒數(shù)

46、選擇電路和倒計時控制電路,同時還會將目前電路產(chǎn)生的狀態(tài)信號發(fā)送給前者。接收到重新計數(shù)的信號后計數(shù)秒數(shù)選擇電路就會負(fù)責(zé)產(chǎn)生計數(shù)器所需要的計數(shù)值,并將這一數(shù)值發(fā)送給倒計時控制電路,由它利用發(fā)光二極管顯示倒計時的狀態(tài)。當(dāng)計數(shù)器計時完畢,倒計時控制器就會負(fù)責(zé)產(chǎn)生一個脈沖信號發(fā)送給紅綠燈信號控制電路進(jìn)入下一個狀態(tài),之后循環(huán)這一過程。</p><p>  第四章 交通燈系統(tǒng)的設(shè)計</p><p>  

47、4.1 時鐘脈沖發(fā)生模塊</p><p>  在紅綠燈交通信號系統(tǒng)中,大多數(shù)的情況是通過自動控制的方式指揮交通的。因此,為了避免意外事件的發(fā)生,電路必須給出一個穩(wěn)定的時鐘(clock)才能讓系統(tǒng)正常的工作。因此,hld1時鐘發(fā)生電路(見圖4)最主要的功能就是產(chǎn)生一些穩(wěn)定的輸出信號,并將其用做后面幾個電路的使能控制與同步信號。</p><p>  圖4 時鐘發(fā)生電路模塊圖</p>

48、;<p><b>  系統(tǒng)輸入信號:</b></p><p>  clk:由外部信號發(fā)生器提供1kHZ的時鐘信號;</p><p>  reset:系統(tǒng)內(nèi)部自復(fù)位信號。</p><p><b>  系統(tǒng)輸出信號:</b></p><p>  ena_scan:將外部的時鐘信號進(jìn)行分頻處

49、理;</p><p>  ena_1hz:產(chǎn)生每秒一個的脈沖信號;</p><p>  flash_1hz:產(chǎn)生每秒一個脈沖的時鐘信號。</p><p>  經(jīng)仿真后得到的時序圖(見圖5、圖6):</p><p>  圖5 將clk經(jīng)分頻處理后得到的ena_scan信號</p><p>  圖6 時鐘發(fā)生電路時序圖&

50、lt;/p><p>  從圖5中可以看出,當(dāng)外部信號發(fā)生器提供了1kHZ的時鐘信號后,系統(tǒng)輸出信號ena_scan就將時鐘信號進(jìn)行了4分頻。從圖6又可以看出,當(dāng)加入1kHZ的時鐘信號后,ena_1hz產(chǎn)生了周期為一秒的脈沖信號,flash_1hz產(chǎn)生了周期為一秒的脈沖時鐘信號。</p><p>  在這段程序的設(shè)計過程中最大的特點就是引用了參數(shù)化的概念,即使用了常數(shù)(constant)。常數(shù)的

51、定義和設(shè)置主要是為了使程序更容易閱讀和修改,只要改變了常量的數(shù)值,使用到該常數(shù)的地方都會隨著更新而使用新的常數(shù)值。這就使設(shè)計的靈活性增強(qiáng)了。例如程序中用到的:constant scan_bit:positive:=2;</p><p>  signal clk_scan_ff:std_logic_vector(scan_bit-1 downto 0);第一句就是將scan_bit設(shè)為常數(shù)‘2’,這個數(shù)值是可以根據(jù)

52、設(shè)計的需要任意設(shè)定的。第二句是定義一個信號,它的位數(shù)就是(scan_bit-1),因為之前scan_bit設(shè)定的值為2,所以信號的位數(shù)就是2位。如果想增減信號的位數(shù),只需要改動常數(shù)的賦值就可以了。</p><p>  4.2 計數(shù)秒數(shù)選擇模塊</p><p>  當(dāng)通過交通路口時,如果能在一個方向增添一個倒計時顯示器對車輛、行人加以提示,可能會有更好的效果。因此,hld2計數(shù)秒數(shù)選擇電路(

53、見圖7)最主要的功能就是負(fù)責(zé)輸出顯示器需要的數(shù)值(即倒數(shù)的秒數(shù)值),作為倒計時顯示器電路的計數(shù)秒數(shù)。</p><p>  圖7 計數(shù)秒數(shù)選擇電路模塊圖</p><p><b>  系統(tǒng)輸入信號:</b></p><p>  clk:由外部信號發(fā)生器提供1kHZ的時鐘信號;</p><p>  reset:系統(tǒng)內(nèi)部自復(fù)位

54、信號;</p><p>  ena_scan:接收由時鐘發(fā)生電路提供的250Hz的時鐘脈沖信號;</p><p>  recount:接收由交通燈信號控制電路產(chǎn)生的重新計數(shù)的使能控制信號;</p><p>  sign_state:接收由交通燈信號控制電路產(chǎn)生的狀態(tài)信號。</p><p><b>  系統(tǒng)輸出信號:</b>

55、;</p><p>  load:負(fù)責(zé)產(chǎn)生計數(shù)器所需要的計數(shù)數(shù)值。</p><p>  經(jīng)仿真后得到的時序圖(見圖8):</p><p>  圖8 計數(shù)秒數(shù)選擇電路時序圖</p><p>  由計數(shù)描述選擇電路的時序圖(見圖8)可以看出這段程序中定義了在正常車流量情況下,東西及南北方向紅燈、黃燈和綠燈需要維持的秒數(shù)分別是15s、5s和25s

56、。</p><p>  architecture bhv of hld2 is</p><p>  constant redew_time:integer:=15;---東西方向紅燈設(shè)定為15s。</p><p>  constant yellowew_time:integer:=5;--東西方向黃燈設(shè)定為5s。</p><p>  cons

57、tant greenew_time:integer:=25;--東西方向綠燈設(shè)定為25s。</p><p>  constant redsn_time:integer:=15;--南北方向紅燈設(shè)定為15s。</p><p>  constant yellowsn_time:integer:=5;--南北方向黃燈設(shè)定為5s。</p><p>  constant gr

58、eensn_time:integer:=25;--南北方向綠燈設(shè)定為25s。</p><p><b>  begin</b></p><p>  process(reset,clk)</p><p><b>  begin</b></p><p>  if reset='1' the

59、n</p><p>  load<="00000000";</p><p>  elsif (clk'event and clk='1') then</p><p>  if (ena_scan='1' and recount='1') then</p><p>

60、;  case sign_state is</p><p>  when "000"=>load<=conv_std_logic_vector(greensn_time,8);</p><p>  --sign_state=“000”時,南北方向綠燈亮25s。</p><p>  when "001"=>lo

61、ad<=conv_std_logic_vector(yellowsn_time,8);</p><p>  --sign_state=“001”時,南北方向黃燈亮5s。</p><p>  when "010"=>load<=conv_std_logic_vector(redsn_time,8);</p><p>  --sig

62、n_state=“010”時,南北方向紅燈亮15s。</p><p>  when "011"=>load<=conv_std_logic_vector(redew_time,8);</p><p>  --sign_state=“011”時,東西方向紅燈亮15s。</p><p>  when "100"=>

63、;load<=conv_std_logic_vector(yellowew_time,8);</p><p>  --sign_state=“100”時,東西方向黃燈亮5s。</p><p>  when "101"=>load<=conv_std_logic_vector(greenew_time,8);</p><p>  

64、--sign_state=“101”時,東西方向綠燈亮25s。</p><p>  when others=>load<=conv_std_logic_vector(yellowsn_time,8);</p><p><b>  end case;</b></p><p>  當(dāng)外部信號發(fā)生器提供了1kHZ的時鐘信號,并且重新計數(shù)信

65、號(recount)為“1”時,load信號就會按照預(yù)先設(shè)置的數(shù)值逐1遞減,直至減到零為止,當(dāng)下一個重新計數(shù)信號(recount)再次為“1”時,會重復(fù)此過程。</p><p>  在這段程序的設(shè)計中用到了conv_std_logic_vector(value,n)語句,它的用法就是將已經(jīng)定義的數(shù)值 (value)轉(zhuǎn)換成n位(bit)的表示方法。例如程序中:when "000"=>loa

66、d<=conv_std_logic_vector(greenew_time,8);就是將十進(jìn)制的25轉(zhuǎn)換成二進(jìn)制的19,這就使設(shè)計減少了很多不必要的麻煩。</p><p>  4.3 倒計時控制模塊</p><p>  通過日常生活中的觀察,我發(fā)現(xiàn)在一些交通路口已經(jīng)開始使用倒計時顯示器,它們的作用就是用來提示車輛行人目前還有多長時間信號燈會發(fā)生變化,這樣車輛行人就可以提前判斷是否有足

67、夠的時間通過路口,進(jìn)而就可以避免很多意外事故的發(fā)生。例如:南北方向綠燈,車輛處于正常行駛中,東西方向紅燈,車輛處于等待中,若南北方向行駛的車輛看到倒計時顯示器上可以通行的時間很短,可能就會放慢速度等待下一次通行,這樣在東西方向綠燈時,車輛就能夠正常行駛,不會為等待南北方向強(qiáng)行的車輛而耽誤更多的時間。如此循環(huán)下去,道路就會暢通無阻了??紤]到有些路口的交通擁堵現(xiàn)象較為嚴(yán)重,車輛會在道路上排成很長的一隊,這樣排在較遠(yuǎn)距離的司機(jī)就很難看清楚倒計

68、時顯示器上變化的數(shù)字,有可能會影響到車輛之間的正常行駛。因此,如果采用發(fā)光二極管作為倒計時的顯示裝置就會使司機(jī)和行人一目了然,同樣也能夠起到很好的提示作用。所以,hld3倒計時控制電路(見圖9)最主要的功能就是負(fù)責(zé)接收hld2電路輸出的值,然后將其轉(zhuǎn)換成BCD碼,并利用發(fā)光二極管顯示出來,讓車輛行人能夠清楚地知道再過多久信號燈就會發(fā)生變化。</p><p>  圖9 倒計時控制電路</p><

69、;p><b>  系統(tǒng)輸入信號:</b></p><p>  clk:由外部信號發(fā)生器提供1kHz的時鐘信號;</p><p>  reset:系統(tǒng)內(nèi)部自復(fù)位信號;</p><p>  ena_1hz:接收由時鐘發(fā)生電路提供的1Hz的脈沖信號;</p><p>  recount:重新計數(shù)的使能控制信號;</

70、p><p>  load:負(fù)責(zé)接收計數(shù)器所需要的計數(shù)數(shù)值。</p><p><b>  系統(tǒng)輸出信號:</b></p><p>  led:負(fù)責(zé)將計數(shù)數(shù)值轉(zhuǎn)換成BCD碼,并利用發(fā)光二極管顯示倒計時狀態(tài);</p><p>  next_state:當(dāng)計數(shù)器計時完畢后,負(fù)責(zé)產(chǎn)生一個脈沖信號,作為下一個狀態(tài)的觸發(fā)信號。</p

71、><p>  經(jīng)仿真后得到的時序圖(見圖10):</p><p>  圖10 倒計時控制電路時序圖</p><p>  由倒計時控制電路的時序圖(見圖10)可以看出,當(dāng)clk時鐘信號來臨后,在ena_1hz脈沖信號的同時激勵下,led會按照預(yù)先設(shè)置好的時間開始逐1遞減,進(jìn)行倒計時顯示。</p><p>  process(clk,reset)&

72、lt;/p><p><b>  begin</b></p><p>  if (reset='1') then </p><p>  cnt_ff<="00000000";</p><p>  led<="0000000000000000000000000"

73、;--當(dāng)reset=1,則將cnt_ff與led清零。</p><p>  elsif (clk'event and clk='1') then</p><p>  if ena_1hz='1' then </p><p>  if (recount='1') then</p><

74、p>  cnt_ff<=load-1;--當(dāng)reset=0,clk為上升沿觸發(fā),且ena_1hz與recount為1時,load將減1的數(shù)值賦給cnt_ff。</p><p>  else cnt_ff<=cnt_ff-1;-- 當(dāng)reset=0,clk為上升沿觸發(fā),且ena_1hz為1時,recount為0時,cnt_ff減1。</p><p><b>  e

75、nd if;</b></p><p><b>  end if;</b></p><p>  case conv_integer(cnt_ff) is</p><p>  when 0=>led(24 downto 0)<="1000000000000000000000000";</p>

76、<p>  when 1=>led(24 downto 0)<="1100000000000000000000000";</p><p>  when 2=>led(24 downto 0)<="1110000000000000000000000";</p><p>  when 3=>led(24 down

77、to 0)<="1111000000000000000000000";</p><p><b>  ……</b></p><p>  when 23=>led(24 downto 0)<="1111111111111111111111110";</p><p>  when 24=>

78、;led(24 downto 0)<="1111111111111111111111111";</p><p>  when others=>led(24 downto 0)<="0000000000000000000000000";</p><p><b>  end case;</b></p>

79、<p>  這段程序是采用的就是查表的方法并且利用發(fā)光二極管進(jìn)行倒計時顯示,如圖10所示:當(dāng)綠燈點亮開始計數(shù)后,load就會將減1后的值賦給cnt_ff,之后cnt_ff又會從case語句中查找到相對應(yīng)的值再賦給led顯示所剩余的時間。在程序編寫過程中運用到了conv_integer()語句,它可以將cnt_ff所賦的值轉(zhuǎn)換成整數(shù)。由圖可知led是25位的系統(tǒng)輸出信號,負(fù)責(zé)控制發(fā)光二極管的輸出,所以25位的輸出信號可以分成七

80、組控制發(fā)光二極管的顯示,其中“1”為點亮,“0”為熄滅。其對應(yīng)方式如下表所示:</p><p>  表1:LED25位系統(tǒng)輸出信號</p><p>  4.4 紅綠燈信號控制模塊</p><p>  在紅綠燈交通信號系統(tǒng)中,大多數(shù)的情況是通過自動控制的方式指揮交通。但為了配合高峰時段,防止交通擁擠,有時還必須使用手動控制,即讓交通警察自行指揮交通。因此,hld4紅綠

81、燈信號控制電路(見圖11)除了負(fù)責(zé)監(jiān)控路口紅綠燈之外,最主要的功能就是能夠利用開關(guān)來切換手動與自動的模式,讓交通警察能夠通過外部輸入的方式來控制紅綠燈交通信號系統(tǒng)的運做。 </p><p>  圖11 紅綠燈信號控制電路</

82、p><p><b>  系統(tǒng)輸入信號:</b></p><p>  clk:由外部信號發(fā)生器提供1kHZ的時鐘信號;</p><p>  reset:系統(tǒng)內(nèi)部自復(fù)位信號;</p><p>  ena_scan:接收由時鐘發(fā)生電路提供的250Hz的時鐘脈沖信號;</p><p>  ena_1hz:接收

83、由時鐘發(fā)生電路提供的1Hz的脈沖信號;</p><p>  flash_1hz:接收由時鐘發(fā)生電路提供的1Hz的脈沖時鐘信號;</p><p>  a_m:手動、自動切換按鈕(1:自動、0:手動);</p><p>  st_butt: 紅綠燈狀態(tài)切換按鈕(在手動操作下,每按一次按鈕就變換一個狀態(tài));</p><p>  next_state

84、:接收由倒計時控制電路提供的下一個狀態(tài)的觸發(fā)信號。</p><p>  系統(tǒng)輸出信號: recount:產(chǎn)生重新計數(shù)的輸出使能控制信號;</p><p>  sign_state:產(chǎn)生輸出狀態(tài)信號;</p><p>  red:負(fù)責(zé)紅色信號燈的顯示;</p><p>  green:負(fù)責(zé)綠色信號燈的顯示;</p><

85、;p>  yellow:負(fù)責(zé)黃色信號燈的顯示。</p><p>  經(jīng)仿真后得到的時序圖(見圖12):</p><p>  圖12 紅綠燈信號控制電路時序圖</p><p>  圖12顯示的是第三種狀態(tài)時東西方向紅燈亮、南北方向綠燈亮。紅綠燈信號控制電路的作用就是產(chǎn)生的一系列的控制信號去完成之前幾個模塊設(shè)定好的功能。</p><p>

86、  4.5 交通燈系統(tǒng)總述及仿真</p><p>  在程序設(shè)計語言中,程序的開始總會調(diào)用庫(library)來提供設(shè)計程序時所需要的基本命令。但是,如果要進(jìn)一步設(shè)計較為復(fù)雜的程序時,庫中的命令可能就無法支持了。因此,可以設(shè)計一個子程序來滿足程序設(shè)計的需求。</p><p>  上述問題在硬件描述語言的設(shè)計中也存在,在VHDL程序中的第一行(library ieee;)就是要使用IEEE設(shè)

87、計好的庫文件,但如果需要使用的元器件并不在庫中時,就只能自己定義了。</p><p>  一個程序包中至少應(yīng)該包含以下結(jié)構(gòu)中的一種:</p><p>  常數(shù)說明:如定義系統(tǒng)數(shù)據(jù)總線通道的寬度。</p><p>  VHDL數(shù)據(jù)類型說明:主要用于在整個設(shè)計中通用的數(shù)據(jù)類型。</p><p>  元件定義:元件定義主要規(guī)定在VHDL設(shè)計中參與文

88、件例化的文件接</p><p><b>  口界面。</b></p><p>  子程序:并入程序包的子程序有利于在設(shè)計中任一處進(jìn)行方便地調(diào)</p><p><b>  用。</b></p><p>  經(jīng)仿真后得到的時序圖(見圖13):</p><p>  圖13 連接各

89、個模塊后的時序圖</p><p>  連接各個模塊后的時序圖(見圖13)是綜合了上述4個模塊后仿真出來的波形。圖13顯示的也是狀態(tài)三時東西方向紅燈亮、南北方向綠燈亮,這與之前紅綠燈信號控制電路仿真出來的波形結(jié)果是相同的。</p><p><b>  結(jié)束語</b></p><p>  通過這次課程設(shè)計,我進(jìn)一步加深了對電子設(shè)計自動化的了解。并進(jìn)

90、一步熟練了對QuartusII軟件的操作。在編寫程序的過程中,遇到了很多問題,使我發(fā)現(xiàn)自己以前學(xué)習(xí)上存在的不足。通過與同學(xué)探討和請教老師,終于把問題都解決了,并加深了對交通燈原理和設(shè)計思路的了解。同時也掌握了做課程設(shè)計的一般流程,為以后的設(shè)計積累了一定的經(jīng)驗。做課程設(shè)計時,先查閱相關(guān)知識,把原理吃透,確定一個大的設(shè)計方向,在按照這個方向分模塊的把要實現(xiàn)的功能用流程圖的形式展示。最后參照每個模塊把輸入和輸出引腳設(shè)定,運用我們所學(xué)的VHDL

91、語言進(jìn)行編程??傊?,通過這次的設(shè)計,進(jìn)一步了解了EDA技術(shù),收獲很大,對軟件編程、排錯調(diào)試、相關(guān)儀器設(shè)備的使用技能等方面得到較全面的鍛煉和提高。</p><p><b>  參考文獻(xiàn):</b></p><p>  [1] 周偉 《交通信號燈的設(shè)計原理》 上海光源研究所 </p><p>  [2] 王軍華 《LED道路交通信號燈測試研究》 交通

92、管理學(xué)院研究所. [3] 雷伏容 《VHDL電路設(shè)計》 清華大學(xué)出版社 </p><p>  [4] 甘歷 《VHDL應(yīng)用與開發(fā)實踐》 科學(xué)出版社</p><p><b>  答謝

93、詞</b></p><p>  在指導(dǎo)老師安新艷老師精心指導(dǎo)和嚴(yán)格要求下,經(jīng)過我自己的努力,終于完成了這次課程設(shè)計。同時獲得了豐富的理論知識,極大地提高了實踐能力,對EDA技術(shù)方面有了更深的了解,這對我們今后進(jìn)一步學(xué)習(xí)有極大的幫助。通過大量閱讀資料,我拓寬了自己的知識面,并懂得將所學(xué)知識融會貫通到實踐中去。在獲得知識的同時,我也認(rèn)識到了自己還需要學(xué)習(xí)的東西很多,理論需要很好的結(jié)合實踐,全面分析并解決問

94、題的能力有待提高。</p><p>  另外,此次課程設(shè)計還獲得了我們的同學(xué)大力支持,在我們對有些知識掌握不夠時,是我們的同學(xué)及時伸出幫助之手使我們的課程設(shè)計能夠及時的完成。在此,我們衷心感謝各位同學(xué)的幫助。在未來的工作和學(xué)習(xí)中,我也將以更好的成績來回報老師,謝謝你們!</p><p><b>  附錄:程序</b></p><p>  時鐘脈

95、沖發(fā)生模塊程序:</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  use ieee.std_logic_unsigned.all;</p><p&

96、gt;  entity hld1 is</p><p>  port(reset:in std_logic;</p><p>  clk:in std_logic;</p><p>  ena_scan:out std_logic;</p><p>  ena_1hz:out std_logic;</p><p>  

97、flash_1hz:out std_logic);</p><p><b>  end;</b></p><p>  architecture bhv of hld1 is</p><p>  constant scan_bit:positive:=2;</p><p>  constant scan_val:posit

98、ive:=4;</p><p>  constant two_hz_bit:positive:=7;</p><p>  constant two_hz_val:positive:=125;</p><p>  signal clk_scan_ff:std_logic_vector(scan_bit-1 downto 0);</p><p>

99、  signal clk_2hz_ff:std_logic_vector(two_hz_bit-1 downto 0);</p><p>  signal ena_s:std_logic;</p><p>  signal ena_one:std_logic;</p><p>  signal ena_two:std_logic;</p><p&

100、gt;<b>  begin</b></p><p>  process(reset,clk)</p><p><b>  begin</b></p><p>  if reset='1' then</p><p>  clk_scan_ff<="00";&

101、lt;/p><p>  ena_s<='0';</p><p>  elsif (clk'event and clk='1') then</p><p>  if clk_scan_ff>=scan_val-1 then</p><p>  clk_scan_ff<="00&qu

102、ot;;</p><p>  ena_s<='1';</p><p><b>  else</b></p><p>  clk_scan_ff<=clk_scan_ff+1;</p><p>  ena_s<='0';</p><p><b&

103、gt;  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p><p>  ena_scan<=ena_s;</p><p>  process(reset,clk,ena_s)</p><p><

104、b>  begin</b></p><p>  if reset='1' then</p><p>  ena_one<='0';</p><p>  ena_two<='0';</p><p>  clk_2hz_ff<="0000000"

105、;;</p><p>  elsif (clk'event and clk='1') then</p><p>  if ena_s='1' then</p><p>  if clk_2hz_ff>=two_hz_val-1 then</p><p>  clk_2hz_ff<="

106、;0000000";</p><p>  ena_two<='1';</p><p>  ena_one<=not ena_one;</p><p><b>  else</b></p><p>  clk_2hz_ff<=clk_2hz_ff+1;</p>&l

107、t;p>  ena_two<='0';</p><p>  ena_one<=ena_one;</p><p><b>  end if;</b></p><p><b>  end if;</b></p><p><b>  end if;</b&

108、gt;</p><p>  end process;</p><p>  ena_1hz<=ena_one and ena_two and ena_s;</p><p>  flash_1hz<=ena_one;</p><p><b>  end;</b></p><p>  計數(shù)秒

109、數(shù)選擇電路程序代碼</p><p>  library ieee;</p><p>  use ieee.std_logic_unsigned.all;</p><p>  use ieee.std_logic_arith.all;</p><p>  entity hld2 is</p><p>  port(res

110、et:in std_logic;</p><p>  clk:in std_logic;</p><p>  ena_scan:in std_logic;</p><p>  recount:in std_logic;</p><p>  sign_state:in std_logic_vector(2 downto 0);</p>

111、;<p>  load:out std_logic_vector(7 downto 0));</p><p><b>  end;</b></p><p>  architecture bhv of hld2 is</p><p>  constant redew_time:integer:=15;</p><

112、p>  constant yellowew_time:integer:=5;</p><p>  constant greenew_time:integer:=25;</p><p>  constant redsn_time:integer:=15;</p><p>  constant yellowsn_time:integer:=5;</p>

113、<p>  constant greensn_time:integer:=25;</p><p><b>  begin</b></p><p>  process(reset,clk)</p><p><b>  begin</b></p><p>  if reset='1

114、' then</p><p>  load<="00000000";</p><p>  elsif (clk'event and clk='1') then</p><p>  if (ena_scan='1' and recount='1') then</p>

115、<p>  case sign_state is</p><p>  when "000"=>load<=conv_std_logic_vector(greensn_time,8);</p><p>  when "001"=>load<=conv_std_logic_vector(yellowsn_time,8)

116、;</p><p>  when "010"=>load<=conv_std_logic_vector(redsn_time,8);</p><p>  when "011"=>load<=conv_std_logic_vector(redew_time,8);</p><p>  when "

117、;100"=>load<=conv_std_logic_vector(yellowew_time,8);</p><p>  when "101"=>load<=conv_std_logic_vector(greenew_time,8);</p><p>  when others=>load<=conv_std_logic

118、_vector(yellowsn_time,8);</p><p><b>  end case;</b></p><p><b>  end if;</b></p><p><b>  end if;</b></p><p>  end process;</p>

119、<p><b>  end;</b></p><p>  倒計時控制電路程序代碼</p><p>  library ieee;</p><p>  use ieee.std_logic_1164.all;</p><p>  use ieee.std_logic_arith.all;</p>

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論