畢業(yè)設(shè)計(論文)基于FPGA的數(shù)字頻率計的設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于FPGA的數(shù)字頻率計的設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于FPGA的數(shù)字頻率計的設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于FPGA的數(shù)字頻率計的設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于FPGA的數(shù)字頻率計的設(shè)計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要傳統(tǒng)的交通燈控制系統(tǒng)主要由單片機或plc構(gòu)成,這種基于小規(guī)模集成電路的交通燈控制系統(tǒng),電路元件多、接線復(fù)雜、故障率高、可靠性低。本設(shè)計采用fpga器件來設(shè)計一個實用的交通燈控制系統(tǒng)。該系統(tǒng)的可靠性、準(zhǔn)確性較高,能夠在確定的時間內(nèi)使紅黃綠路燈正確的變化,且倒計時顯示能正確的顯示時間。該交通燈控制系統(tǒng)采用verilog hdl語言編程,為了簡化設(shè)計,采用模塊化編程的思想,并用max + plus仿真軟件進行編譯仿真,將程序下載到fpga器件進行測試驗證。基于fpga的硬件系統(tǒng)運行正確,能夠?qū)崿F(xiàn)交通燈的控制要求。該系統(tǒng)具有體積小、功耗低、價格便宜、安全可靠,維護和升級方便的優(yōu)點,具有較好的應(yīng)用

2、前景。在該交通燈控制系統(tǒng)中,采用了altera公司推出的max7000系列的產(chǎn)品epm7032lc44-6作為這個系統(tǒng)的可編程邏輯器件。同時還用了4個led數(shù)碼管,6個發(fā)光二極管,一個固定開關(guān),一個點動開關(guān)等。交通燈系統(tǒng)中,能夠保證在確定的時間,倒計數(shù)數(shù)字顯示能夠及時變化,紅黃綠燈能準(zhǔn)確的反應(yīng)。關(guān)鍵詞: 交通燈控制系統(tǒng) fpga verilog hdl max + plusthe traffic light control system design based on fpga abstract the traditional traffic light control system main

3、ly by the plc or a microcontroller, such small-scale integrated circuits based on the traffic light control system, circuit components, wiring complex, high failure rate, low reliability. this design uses fpga devices to design a practical traffic light control system. the systems reliability, high

4、accuracy, to determine the time yellow-green to red lights correct change, and the countdown show to display the correct time. the traffic light control system using verilog hdl language, in order to simplify the design, the idea of modular programming, and with max + plus simulation software to bui

5、ld simulation procedures will be downloaded to the fpga device to test verification. fpga-based hardware system running correctly, can achieve the traffic lights control requirements. the system is small in size, low power consumption, cheap, safe, reliable, easy to maintain and upgrade the merits o

6、f the application has good prospects. at the traffic light control system, using the company introduced the max7000 altera series of products epm7032lc44-6 as the system of programmable logic devices. at the same time also spent four led digital control, six light-emitting diode, a fixed switch, a s

7、witch point, and so on. traffic signal system, to ensure that the established time, inverted count figures to make timely changes in yellow green accurate response. key words: the traffic light control system fpga verilog hdl max + plus目 錄一 概述11.1課題的來源、意義1 1.2課題的研究目標(biāo)、內(nèi)容及方法手段11.2.1課題的研究目標(biāo)、內(nèi)容11.2.2課題的

8、研究方法及手段1二 交通燈控制系統(tǒng)的原理介紹22.1交通燈控制系統(tǒng)基本原理與系統(tǒng)框圖22.1.1系統(tǒng)基本原理22.1.2交通燈控制系統(tǒng)框圖22.2 交通燈控制系統(tǒng)的軟硬件介紹32.2.1 fpga的簡介32.2.2 verilog hdl介紹42.2.3 max+plusii介紹42.2.4 器件的選擇4三 交通燈控制系統(tǒng)的程序設(shè)計63.1 主控模塊63.2 55秒倒計時模塊73.3 5秒倒計時模塊83.4倒計時時間選擇驅(qū)動模塊93.5倒計時時間選擇模塊10 3.6 1khz時鐘信號模塊113.7 1hz技術(shù)時鐘信號模塊123.8倒計時時間數(shù)據(jù)多路選擇模塊123.9 動態(tài)選擇驅(qū)動模塊143.1

9、0顯示數(shù)據(jù)多路選擇模塊143.11顯示數(shù)據(jù)譯碼模塊153.12頂層電路15四 結(jié)論17謝辭18參考文獻19附錄20一 概述1.1課題的來源、意義 交通燈控制系統(tǒng)是數(shù)字電路的經(jīng)典問題,傳統(tǒng)的設(shè)計方法基于中、小規(guī)模集成電路進行,電路元件多、接線復(fù)雜、故障率高、可靠性低。電子設(shè)計自動化eda(electronic design automation)技術(shù)的發(fā)展,在線可編程邏輯器件(in system program-programmable logic device簡稱isp-pld)的出現(xiàn),使實驗室中制作專用集成電路成為可能。我們使用現(xiàn)場可編程門陣列/復(fù)雜可編程邏輯器件fpga/cpld(fiel

10、d programmable gate array/complex programmable logic device),用verilog hdl語言 進行以交通燈控制器的設(shè)計,用對應(yīng)的工具軟件(本文用max+plus ii)對fpga/cpld芯片“下載”形成專用集成電路,由于不存在人工接線的問題,所以故障率低、可靠性好。 隨著電子技術(shù)的不斷更新,數(shù)字系統(tǒng)的設(shè)計正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。推動該潮流迅猛向前的引擎就是電子設(shè)計自動化eda(electronic design automation)技術(shù)的發(fā)展eda技術(shù)就是以計算機為工具,在eda軟件平臺上,對用硬件描述語言h

11、dl完成的設(shè)計文件自動地邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化邏輯布局布線、邏輯仿真,直至對于特定目標(biāo)芯片進行適配編譯、邏輯映射和編程下載等。1.2課題的研究目標(biāo)、內(nèi)容及方法手段1.2.1課題的研究目標(biāo)、內(nèi)容該交通燈控制系統(tǒng)采用max + plus軟件及verilog hdl語言進行編程,用fpga器件實現(xiàn)硬件系統(tǒng)。該系統(tǒng)能精確地實現(xiàn)紅黃綠燈的規(guī)律變化,正確控制路口車輛的通行。1.2.2課題的研究方法及手段 該系統(tǒng)采用verilog hdl語言進行程序設(shè)計,并用max + plus仿真軟件進行程序的編譯和仿真,然后用下載線將程序下載到fpga器件中。本課題采用自頂向下設(shè)計思想進行設(shè)計,自

12、頂而下(top to down)的層次化設(shè)計方法在現(xiàn)代eda設(shè)計中有著明顯的優(yōu)勢,越來越受到設(shè)計者的歡迎。對于一個復(fù)雜的設(shè)計系統(tǒng),運用層次化設(shè)計方法,使設(shè)計課題進一步細化,分塊設(shè)計,條理清晰。另外,在調(diào)試時可采用逆向調(diào)試方式,即從模塊調(diào)試向總體調(diào)試方向開展調(diào)試工作,使設(shè)計中出現(xiàn)的問題在模塊級就能發(fā)現(xiàn),及時處理,這樣就會使一個復(fù)雜的設(shè)計變得容易調(diào)試,縮短了設(shè)計時間。層次化設(shè)計方法:開始設(shè)計時,先設(shè)計出一個頂層總框圖(一般稱之為頂層圖),該框圖是由若干個具有特定功能的源模塊組成。下一步是對這些不同功能的模塊進行設(shè)計,產(chǎn)生這些模塊的原理圖文件或verilog源文件。對于有些功能復(fù)雜的模塊,全部使用元

13、件庫中的元器件設(shè)計仍顯復(fù)雜,因此還可以將該模塊繼續(xù)化分為若干個功能子模塊,這樣就形成模塊套模塊的層次化設(shè)計方法。這種方法也稱之為自頂向下的系統(tǒng)設(shè)計方法。 二 交通燈控制系統(tǒng)的原理介紹 2.1交通燈控制系統(tǒng)基本原理與系統(tǒng)框圖2.1.1 系統(tǒng)基本原理 交通燈系統(tǒng)中,能夠保證在確定的時刻,倒計數(shù)數(shù)字顯示能夠及時變化,紅黃綠燈能準(zhǔn)確變化。系統(tǒng)要求:在綠燈亮了55s后將變化為黃燈再亮5s,然后實現(xiàn)十字路口的縱橫路放行與禁行的切換控制。2.1.2 交通燈控制系統(tǒng)框圖 根據(jù)2.1.1對交通燈系統(tǒng)的功能描述,設(shè)計如圖2-1所示的交通燈系統(tǒng)電路框圖。 圖2-1 交通燈系統(tǒng)電路框圖圖中,兩組共4個數(shù)碼管來顯示倒計

14、時時間,用6個發(fā)光二極管來代替實際生活中的紅黃綠交通信號燈,考慮到實際電路的需要,分別在可編程邏輯器件與數(shù)碼管以及發(fā)光二極管之間放上限流電阻,以避免數(shù)碼管以及發(fā)光二極管由于電流過大而燒壞,當(dāng)然也不能加太大電阻,以避免數(shù)碼管以及發(fā)光二極管的亮度不夠。固定開關(guān)sw1實現(xiàn)交通警察人為監(jiān)督交通秩序和無人自動控制交通秩序之間的切換,默認為高電平,即默認為開關(guān)置于高電平端,為自動控制模式,開關(guān)置于低電平端時為人為監(jiān)督控制模式。點動開關(guān)sw2用于整個系統(tǒng)的總復(fù)位,如系統(tǒng)出現(xiàn)故障時,就需要總復(fù)位,當(dāng)然一般情況下,用可編程邏輯器件實現(xiàn)的交通燈系統(tǒng),只要系統(tǒng)設(shè)計的合理,軟件設(shè)計的可靠,不會出現(xiàn)故障,除非意外的操作

15、或操作不當(dāng)。2.2 交通燈控制系統(tǒng)的軟硬件介紹2.2.1 fpga的簡介fpga現(xiàn)場可編程門陣列器件通常由布線資源圍繞的可編程單元構(gòu)成陣列,又由可編程i/o單元圍繞陣列構(gòu)成整個芯片。排成陣列的邏輯單元由布線通道中的可編程連線連接起來實現(xiàn)一定的邏輯功能。一個fpga可能包含有靜態(tài)存儲單元,它們允許內(nèi)連的模式在器件被制造以后再被加載或修改。fpga是由掩膜可編程門陣列和可編程邏輯器件演變而來的,將它們的特性結(jié)合在一起,使得fpga既有門陣列的高邏輯密度和通用性,又有可編程邏輯器件的用戶可編程特性。目前,fpga的邏輯功能塊在規(guī)模和實現(xiàn)邏輯功能的能力上存在很大差別。有的邏輯功能塊規(guī)模非常小,僅含有只

16、能實現(xiàn)倒相器的兩個晶體管;而有的邏輯功能塊則規(guī)模比較大,可以實現(xiàn)任何五輸入邏輯函數(shù)的查找表結(jié)構(gòu)。據(jù)此可把fpga分為兩大類,即細粒度和粗粒度。細粒度邏輯塊是與半定制門陣列的基本單元相同,它由可以用可編程互連來連接的少數(shù)晶體管組成,規(guī)模都比較小,主要優(yōu)點是可用的功能塊可以完全被利用;缺點是采用它通常需要大量的連線和可編程開關(guān),實現(xiàn)對速度變慢。由于近年來工藝不斷改進,芯片集成度不斷提高,加上引入硬件描述語言(hdl)的設(shè)計方法,不少廠家開發(fā)出了具有更高級程度的細粒度結(jié)構(gòu)的fpga。例如,xilinx公司的采用micro via技術(shù)的一次編程反熔絲結(jié)構(gòu)的xc8100系列,它的邏輯功能塊規(guī)模較小,而粗

17、粒度功能塊規(guī)模較大并且功能較強。從構(gòu)成它的可編程邏輯塊和可編程互連資源來看,主要有兩種邏輯塊的構(gòu)造。其一是查找表類型;其二是多路開關(guān)類型,由此形成兩種fpga的結(jié)構(gòu)。第一種是具有可編程內(nèi)連線的通道型門陣列。它采用分段互連線,利用不同長度的多種金屬線經(jīng)傳輸管將各種邏輯單元連接起來。布線延時是累加的、可變的,并且與通道有關(guān)。第二種是具有類似pld可編程邏輯塊陣列的固定內(nèi)連布線,采用連續(xù)互連線,利用相同長度的金屬線實現(xiàn)邏輯塊單元之間的互連,布線延時是固定的,并且可預(yù)料。目前流行的現(xiàn)場可編程門陣列/復(fù)雜可編程邏輯器件fpga/cpld(field programmable gaarray/comple

18、x programmable logic device)在eda基礎(chǔ)上得到了廣泛應(yīng)用,由于可以通過軟件編程對該器件硬件的結(jié)構(gòu)和工作方式進行重構(gòu),使得硬件的設(shè)計可以如同軟件設(shè)計那樣方便快捷。這一特性極大地改變了傳統(tǒng)數(shù)字系統(tǒng)的設(shè)計方法、設(shè)計過程、乃至設(shè)計觀念。在設(shè)計過程中,設(shè)計者可根據(jù)需要,隨時改變器件的內(nèi)部邏輯功能和管腳的信號方式。而管腳定義的靈活性,能大大減輕電路圖設(shè)計和電路板設(shè)計的工作量和難度,同時,這種基于可編程邏輯器件芯片的設(shè)計大大減少了系統(tǒng)芯片的數(shù)量,縮小了系統(tǒng)的體積,提高了系統(tǒng)的可靠性。對于fpga/cpld器件,常用的硬件描述語言有vhdl和verilog等。2.2.2 veril

19、og hdl介紹verilog hdl是硬件描述語言的一種,用于數(shù)字電子系統(tǒng)設(shè)計。設(shè)計者可用它進行各種級別的邏輯設(shè)計,可用它進行數(shù)字邏輯系統(tǒng)的仿真驗證、時序分析、邏輯綜合。它是目前應(yīng)用最廣泛的一種硬件描述語言。verilog hdl和vhdl都是用于邏輯設(shè)計的硬件描述語言,其共同的特點在于:能形式化的抽象表示電路的行為和結(jié)構(gòu);支持邏輯設(shè)計中層次與范圍的描述;可借用高級語言的精巧結(jié)構(gòu)來簡化電路行為的描述;具有電路仿真與驗證機制以保證設(shè)計的正確性;支持電路描述由高層到低層的綜合轉(zhuǎn)換;硬件描述與實現(xiàn)工藝無關(guān);便于文檔管理;易于理解和設(shè)計重用。由于verilog hdl早在1983年就已推出,至今已有

20、20年的應(yīng)用歷史,因而擁有更廣泛的設(shè)計群體,成熟的資源也遠比vhdl豐富。與vhdl相比,verilog hdl的更大優(yōu)點為:它是一種非常容易掌握的硬件描述語言,只要有c語言的編程基礎(chǔ),通過20學(xué)時的學(xué)習(xí),再經(jīng)過一段時間的實際操作,一般可在2-3個月內(nèi)掌握這種設(shè)計技術(shù)。而掌握vhdl設(shè)計技術(shù)就比較困難。2.2.3 max+plusii介紹 max+plusii是開發(fā)altera公司fpga產(chǎn)品(包括max和flex系列)的軟件工具。利用max+plusii提供的設(shè)計環(huán)境和設(shè)計工具,可以靈活高效的完成各種數(shù)字電路設(shè)計,非常實用。max+plus被譽為業(yè)界最易用易學(xué)的eda軟件,它支持原理圖、vh

21、dl和verilog語言文本文件,以及波形與edif等格式的文件作為設(shè)計輸入。max+plusii具有門級仿真器,可以進行功能仿真和時序仿真,能夠產(chǎn)生精確的仿真結(jié)果。max+plusii具有門級仿真器,可以進行功能仿真和時序仿真,能夠產(chǎn)生精確的仿真結(jié)果。在設(shè)計一項工程時,首先利用eda工具軟件max+plus中的文本編輯器,將其用文本方式(vhdl程序方式)表達出來,再通過max+plus轉(zhuǎn)換為實際可用的電路網(wǎng)表,并用此網(wǎng)表對fpga/cpld進行布線,最后進行功能仿真和時序仿真,得到所需的設(shè)計效果。2.2.4器件的介紹與選擇該系統(tǒng)選用了altera公司推出的max7000系列的可編程邏輯器件

22、epm7032lc44-6。max7000系列器件采用先進的0.8um cmos eprom技術(shù)制造。它是高密度、高性能的cmos epld器件。max7000中有可編程連線陣列()、i/o控制,并且編程具有保密性,另外還增加了可編程速度/功率控制和電壓擺率的控制。系統(tǒng)選用4個數(shù)碼管來顯示倒計時時間,用6個發(fā)光二極管來替代實際生活中的紅黃綠交通信號燈,考慮到實際電路的需要,分別在可編程邏輯器件與數(shù)碼管以及發(fā)光二極管之間放上限流電阻,以避免數(shù)碼管及發(fā)光二極管由于電流過大而燒壞,當(dāng)然也不能加太大電阻,以避免數(shù)碼管及發(fā)光二極管的亮度不夠,因此,一般選330-1k。用一個固定開關(guān)sw1實現(xiàn)交通警察認為

23、監(jiān)督交通秩序和無人自動控制交通秩序之間的切換。用一個點動開關(guān)sw2用于整個系統(tǒng)的總復(fù)位。三 交通燈控制系統(tǒng)的程序設(shè)計 鑒于模塊化的設(shè)計方法,首先將系統(tǒng)分為11個小的容易實現(xiàn)的模塊來分別設(shè)計仿真。分別有以下11個模塊: (1) 主控模塊control:控制系統(tǒng)輸入與輸出之間的聯(lián)系。 (2) 55秒倒計時模塊counter55:倒計時55秒,55秒為綠燈點亮?xí)r間。 (3) 5秒倒計時模塊counter05:倒計時5秒,5秒為黃燈點亮?xí)r間。 (4) 倒計時時間選擇驅(qū)動模塊scan:驅(qū)動倒計時時間長短選擇模塊電路。 (5) 倒計時時間選擇模塊conterselect:選擇不同的倒計時時間。 (6) 1

24、khz時鐘信號模塊fdiv1khz:通過分頻得到1khz的時鐘信號。 (7) 1hz計數(shù)時鐘信號模塊fdiv1hz:通過分頻得到1hz的時鐘信號。 (8) 倒計時時間數(shù)據(jù)多路選擇模塊datamux:倒計時時間數(shù)據(jù)分時送入后級用 于顯示。 (9) 動態(tài)選擇驅(qū)動模塊dispselect:驅(qū)動動態(tài)選擇數(shù)碼管進行分時顯示。 (10) 顯示數(shù)據(jù)多路選擇模塊dispmux:顯示數(shù)據(jù)的分時選擇。 (11) 顯示數(shù)據(jù)譯碼模塊dispdecoder:4位碼譯成8位數(shù)碼管的顯示數(shù)據(jù)。 下邊將分別討論各個模塊的具體實現(xiàn)過程,最后討論由這些模塊構(gòu)成的頂層電路top。3.1 主控模塊control 該模塊主要完成根據(jù)外

25、部輸入信號reset、sw控制輸出,用于控制交通燈的信號red1、red2、yellow2、green1、green2。這中間包含了必要的內(nèi)部模塊之間的信號en_in(來自倒計時時間選擇驅(qū)動模塊scan)。 該模塊的模塊框圖如圖3-1(a)所示: 圖3-1(a) 主控模塊control的模塊框圖 該模塊定義輸入端口定義如下: rst:總體復(fù)位,用于復(fù)位整個系統(tǒng)。復(fù)位后,系統(tǒng)將恢復(fù)到原始狀態(tài)。 sw1:模式選擇,用于選擇自動模式和人為監(jiān)督模式。其中,sw1=1時為自動模 式,系統(tǒng)不需要人為控制,自動按照預(yù)先設(shè)定的方式來控制交通燈,主要過程為十字馬路的一個方向(設(shè)定為方向1)綠燈亮?xí)r,另一個方向(

26、設(shè)定為方向2)紅燈亮。計數(shù)55秒后,方向1的綠燈熄滅黃燈亮,再計數(shù)5秒后,方向1的黃燈熄滅紅燈亮,同時方向2的綠燈亮,然后方向2重復(fù)方向1的過程,這樣就實現(xiàn)了無人自動控制交通燈。sw1=0時為人為監(jiān)督模式,交通燈將不再工作,交通秩序?qū)⑼耆诮煌ň斓目刂葡逻M行。 en_in:控制紅黃綠燈切換的驅(qū)動使能信號。用于自動模式中狀態(tài)的切換選擇。其中en_in=00時,方向2紅燈亮,方向1綠燈亮;en_in=01時,方向2紅燈亮,方向1黃燈亮;en_in=10時,方向2綠燈亮,方向1紅燈亮;en_in=11時,方向2黃燈亮,方向1紅燈亮。 該模塊定義輸出端口如下: red1:方向1上的紅燈。 red2:

27、方向2上的紅燈。 yellow1:方向1上的黃燈。 yellow2:方向2上的黃燈。 green1:方向1上的綠燈。 green2:方向2上的綠燈。 在max + plus軟件中編譯和波形仿真后得到的波形如圖3-1(b)所示。 圖3-1(b) 主控模塊的仿真波形 從圖3-1(b)可以簡單的檢查主控模塊control設(shè)計的邏輯上的正確性,同時也可以看到一些簡單的延時信息。3.2 55秒倒計時模塊counter55 該模塊主要完成55秒倒計時,控制紅燈的點亮?xí)r間。實際中在1分鐘內(nèi)還要有綠到黃燈的轉(zhuǎn)換以提醒車輛與行人,所以選擇了55秒作為綠燈的點亮?xí)r間。該模塊的模塊框圖如圖3-2(a)所示: 圖3-

28、2(a) 55秒倒計時模塊counter55的模塊框圖該模塊定義輸入端口如下: c_clk:計數(shù)時鐘信號,計數(shù)器的全局計數(shù)時鐘。經(jīng)過分頻后,這個時鐘信號頻率為1hz的方波信號,在時鐘的上升沿,計數(shù)器響應(yīng)。 rst:計數(shù)器復(fù)位信號,低電平復(fù)位。復(fù)位后,計數(shù)器恢復(fù)原始狀態(tài)。即為全零狀態(tài),這時輸出數(shù)值為55。默認rst為高電平,工作在計數(shù)狀態(tài)。 c_en:計數(shù)器的使能信號,在時鐘信號下,在這個信號為高電平時,計數(shù)器才工作與計數(shù)狀態(tài),否則,計數(shù)器工作于保持狀態(tài)。該模塊定義輸出端口如下: d_out1:計數(shù)器的高位輸出,經(jīng)過譯碼后,就可以作為倒計時時間顯示的高位。 d_out0:計數(shù)器的低位輸出,經(jīng)過譯

29、碼后,就可以作為倒計時時間顯示的低位。 c_out:計數(shù)器計數(shù)到時脈沖輸出,當(dāng)計數(shù)器計數(shù)到設(shè)定時間時,就會產(chǎn)生一個脈沖信號,用于驅(qū)動狀態(tài)的改變。在max + plus軟件中編譯和波形仿真后得到的波形如圖3-2(b)所示。 圖3-2(b) 55秒倒計時模塊counter55仿真波形 從圖3-2(b)可以簡單的檢查55秒倒計時模塊counter55設(shè)計的邏輯上的正確性,同時也可以看到一些簡單的延時信息。3.3 5秒倒計時模塊counter05該模塊主要完成5秒倒計時,控制黃燈的點亮?xí)r間。實際中在1分鐘內(nèi)還要有紅到黃燈的轉(zhuǎn)換以提醒車輛與行人,所以選擇了55秒作為紅燈的點亮?xí)r間后,黃燈的點亮?xí)r間必定是

30、5秒。該模塊的模塊框圖如圖3-3(a)所示: 圖3-3(a) 5秒倒計時模塊counter05的模塊框圖 該模塊定義輸入端口如下: c_clk:計數(shù)時鐘信號,計數(shù)器的全局計數(shù)時鐘。經(jīng)過分頻后,這個時鐘信號為頻率為1hz的方波信號,在時鐘的上升沿,計數(shù)器響應(yīng)。 rst:計數(shù)器復(fù)位信號,低電平復(fù)位。復(fù)位后,計數(shù)器恢復(fù)原始狀態(tài)。即為全零狀態(tài),這時輸出數(shù)值為05.默認rst為高電平,工作在計數(shù)狀態(tài)。 c_en:計數(shù)器的使能信號,在時鐘信號下,在這個信號為高電平時,計數(shù)器才工作與計數(shù)狀態(tài),否則,計數(shù)器工作與保持狀態(tài)。該模塊定義輸出端口如下: d_out1:計數(shù)器的高位輸出,經(jīng)過譯碼后,就可以作為倒計時時

31、間顯示的高位,通常情況下為0。 d_out0:計數(shù)器的低位輸出,經(jīng)過譯碼后,就可以作為倒計時時間顯示的低位。 c_out:計數(shù)器計數(shù)到時脈沖輸出,當(dāng)計數(shù)器計數(shù)到設(shè)定時間時,就會產(chǎn)生一個脈沖信號,用于驅(qū)動狀態(tài)的改變。在max + plus軟件中編譯和波形仿真后得到的波形如圖3-3(b)所示。圖3-3(b) 5秒倒計時模塊counter05的仿真波形3.4 倒計時時間選擇驅(qū)動模塊scan該模塊主要完成倒計時時間長短選擇的功能,輸入信號來自兩個倒計時模塊counter55和counter05,當(dāng)?shù)褂嫈?shù)完成時產(chǎn)生一個脈沖用于驅(qū)動此模塊產(chǎn)生00,01,10,11序列來驅(qū)動倒計時時間選擇模塊counter

32、select。該模塊的模塊框圖如圖3-4(a)所示: 圖3-4(a) 倒計時時間選擇驅(qū)動模塊scan的模塊框圖該模塊定義輸入端口如下: en_in1:高位驅(qū)動信號,來源與55秒倒計時的信號,當(dāng)計數(shù)器計時完成后,產(chǎn)生這個脈沖來驅(qū)動狀態(tài)的改變。 en_in0:低位驅(qū)動信號,來源與5秒倒計時的信號,當(dāng)計數(shù)器計時完成后,產(chǎn)生這個脈沖來驅(qū)動狀態(tài)的改變。該模塊定義輸出端口如下: sdata:狀態(tài)輸出,輸出當(dāng)前狀態(tài)。由于選擇不同的倒計時時間的長短。在max + plus軟件中編譯和波形仿真后得到的波形如圖3-3(b)所示。 圖3-4(b) 倒計時時間選擇驅(qū)動模塊scan的仿真波形3.5 倒計時時間選擇模塊c

33、ounterselect 該模塊主要完成55秒倒計時與5秒倒計時之間的選擇功能,在實際中因為存在著紅燈到黃燈再轉(zhuǎn)換為綠燈的這樣的一個變化過程,而紅黃綠燈的點亮?xí)r間不相同,一般是綠黃兩燈的點亮?xí)r間剛好等于紅燈,其中,綠燈亮55秒,黃燈亮5秒,紅燈亮60秒。該模塊的模塊框圖如圖3-5(a)所示: 圖3-5(a) 倒計時時間選擇模塊counterselect 的模塊框圖該模塊定義輸入端口如下: d_in:狀態(tài)變化輸入信號,主要是“00,01,10,11”四種狀態(tài)的變化,與倒計時時間長短的選擇信號同步。該模塊定義輸出端口如下: d_out1:時間選擇高位輸出,用于選擇驅(qū)動55秒倒計時計時器。分別在狀態(tài)

34、輸入“00,10”這兩種狀態(tài)時,即對應(yīng)綠燈點亮?xí)r間,輸出高電平,使能55秒倒計時計數(shù)器。 d_out0:時間選擇低位輸出,用于選擇驅(qū)動5秒倒計時計時器。分別在狀態(tài)輸入“01,11”這兩種狀態(tài)時,即對應(yīng)黃燈點亮?xí)r間,輸出高電平,使能5秒倒計時計數(shù)器。在max + plus軟件中編譯和波形仿真后得到的波形如圖3-5(b)所示。圖3-5(b) 倒計時時間選擇模塊counterselect 的仿真波形3.6 1khz時鐘信號模塊fdiv1khz 該模塊主要完成從開發(fā)試驗板上10mhz的全局時鐘信號經(jīng)過分頻得到1khz的時鐘信號,即完成一個10000分頻的分頻器。分頻器的設(shè)計是時序設(shè)計的比較基礎(chǔ)的知識,

35、在實際系統(tǒng)中用得很多,設(shè)計過程與計數(shù)器的設(shè)計很類似。 該模塊的模塊框圖入圖3-6(a)所示: 圖3-6(a) 1khz時鐘信號模塊fdiv1khz的模塊框圖該模塊定義輸入端口如下: clk_in:時鐘輸入信號,來源于全局時鐘信號10mhz的外部輸入。該模塊定義輸出端口如下: clk_out:時鐘輸出信號,經(jīng)過分頻后輸出1khz的時鐘信號,用于數(shù)碼管的動態(tài)顯示。在max + plus軟件中編譯和波形仿真后得到的波形如圖3-6(b)所示。 圖3-6(b) 1khz時鐘信號模塊fdiv1khz的仿真波形3.7 1hz計數(shù)時鐘信號模塊fdiv1hz該模塊主要完成從模塊fdiv1khz中的1khz時鐘信

36、號經(jīng)過分頻得到1hz的計數(shù)時鐘信號,即完成一個1000分頻的分頻器。設(shè)計過程與模塊6的設(shè)計過程基本相同。該模塊的模塊框圖如圖3-7(a)所示: 圖3-7(a)1hz計數(shù)時鐘信號模塊fdiv1hz的模塊框圖 該模塊定義輸入端口如下: clk_in:時鐘輸入信號,來源于全局時鐘信號1khz的外部輸入。該模塊定義輸出端口如下: clk_out:時鐘輸出信號,經(jīng)過分頻后輸出1hz的時鐘信號,用于驅(qū)動秒級的計時器。在max + plus軟件中編譯和波形仿真后得到的波形如圖3-7(b)所示。 圖3-7(b) 1hz計數(shù)時鐘信號模塊fdiv1hz的仿真波形3.8 倒計時時間數(shù)據(jù)多路選擇模塊datamux該模

37、塊主要完成兩組不同倒計時時間數(shù)據(jù)的選擇輸出到后續(xù)顯示模塊。該模塊的模塊框圖如圖3-8(a)所示: 圖3-8(a) 倒計時時間數(shù)據(jù)多路選擇模塊datamux的框圖該模塊定義輸入端口定義: d_in3:4位bcd碼輸入信號3,來源于5秒倒計時計時器的高位bcd碼輸出,取值范圍為0-5。 d_in2:4位bcd碼輸入信號2,來源于5秒倒計時計時器的低位bcd碼輸出,取值范圍為0-9。 d_in1:4位bcd碼輸入信號1,來源于55秒倒計時計時器的高位bcd碼輸出,取值通常為0。 d_in0:4位bcd碼輸入信號0,來源于55秒倒計時計時器的低位bcd碼輸出,取值范圍為0-5。 sel:狀態(tài)選擇輸入信

38、號,用于在不同狀態(tài)下選擇不同的計時器的輸出數(shù)值作為這個模塊的輸出。該模塊定義輸出端口定義: d_out1:輸出高位bcd碼,在sel的驅(qū)動使能下分別選擇d_in1或者d_in3,當(dāng)sel=“00”或“10”時選擇d_in1;當(dāng)sel=“01”或“11”時選擇d_in3。 d_out0:輸出低位bcd碼,在sel的驅(qū)動使能下分別選擇d_in0或者d_in2,當(dāng)sel=“00”或“10”時選擇d_in0;當(dāng)sel=“01”或“11”時選擇d_in2。在max + plus軟件中編譯和波形仿真后得到的波形如圖3-8(b)所示。圖3-8(b) 倒計時實際數(shù)據(jù)多路選擇模塊datamux的仿真波形3.9

39、動態(tài)顯示驅(qū)動模塊dispselect 該模塊主要完成倒計時數(shù)碼管的動態(tài)顯示。動態(tài)顯示即分時顯示,但是時間間隔的選擇既要保證人眼看起來是同時顯示,既不會出現(xiàn)兩位數(shù)字的斷續(xù)顯示,又要保證不會覆蓋顯示數(shù)字,即不會出現(xiàn)上個數(shù)字與下個數(shù)字之間的顯示過快使得人眼來不及分辨。該模塊模塊框圖如圖3-9(a)所示: 圖3-9(a) 動態(tài)顯示驅(qū)動模塊dispselect的模塊框圖該模塊定義輸入端口如下: clk:動態(tài)選擇循環(huán)時鐘信號,此信號為1khz的時鐘信號。該模塊定義輸出端口如下: d_out:動態(tài)選擇循環(huán)輸出信號,在1khz時鐘信號的驅(qū)動下,產(chǎn)生“01”,“10”序列,用于選擇數(shù)碼管,以達到動態(tài)顯示。 在m

40、ax + plus軟件中編譯和波形仿真后得到的波形如圖3-9(b)所示。 圖3-9(b) 動態(tài)顯示驅(qū)動模塊dispselect的仿真波形3.10 顯示數(shù)據(jù)多路選擇模塊dispmux 該模塊主要完成數(shù)碼管顯示數(shù)據(jù)的分時選擇,以實現(xiàn)分時動態(tài)顯示。該模塊的模塊框圖如圖3-10(a)所示: 圖3-10(a) 顯示數(shù)據(jù)多路選擇模塊dispmux的框圖 該模塊定義輸入端口如下: sel:狀態(tài)輸入信號,用于分時選擇輸入信號到輸出端口。 d_in1:顯示數(shù)據(jù)高位輸入信號,為4位bcd碼。 d_in0:顯示數(shù)據(jù)低位輸入信號,為4位bcd碼。 該模塊定義輸出端口如下: d_out:顯示數(shù)據(jù)輸出,在sel的驅(qū)動下,

41、分別選擇d_in0與d_in1。當(dāng)sel=“01”時,選擇d_in0;當(dāng)sel=“10”時,選擇d_in1;其余情況下輸出為“00”。 在max + plus軟件中編譯和波形仿真后得到的波形如圖3-10(b)所示。 圖3-10(b) 顯示數(shù)據(jù)多路選擇模塊dispmux的仿真波形3.11 顯示數(shù)據(jù)譯碼模塊dispdecoder 該模塊主要完成4位bcd碼到8位bcd碼數(shù)碼管顯示數(shù)據(jù)的譯碼,譯碼后的8位數(shù)據(jù)分別對應(yīng)數(shù)碼管的數(shù)據(jù)段a、b、c、d、e、f、g、dp。 該模塊的模塊框圖如圖3-11(a)所示: 圖3-11(a) 顯示數(shù)據(jù)譯碼模塊dispdecoder的模塊 該模塊定義輸入端口如下: da

42、ta_in:4位bcd碼輸入信號。 該模塊定義輸出端口如下: data_out:8位數(shù)碼管顯示數(shù)據(jù)輸出信號,用于顯示數(shù)據(jù)。 在max + plus軟件中編譯和波形仿真后得到的波形如圖3-11(b)所示。 圖3-11(b) 顯示數(shù)據(jù)譯碼模塊dispdecoder的仿真波形3.12 頂層電路top 到此,各個模塊都已經(jīng)設(shè)計和仿真完畢。需要將這些小模塊連接起來完成整個系統(tǒng)的設(shè)計,即進行頂層電路的設(shè)計。 頂層電路的設(shè)計又有幾種常用的方法,在verilog hdl設(shè)計中主要有兩種:一是用與模塊設(shè)計一樣的方式,即用verilog hdl 語言來編程寫模塊電路的連接關(guān)系,主要是輸入與輸出的連接,從而設(shè)計出頂

43、層電路;二是利用電路原理圖的設(shè)計方式,這種設(shè)計方式,與通常情況下的基于分立電路的原理圖設(shè)計基本類似,這種方法簡潔二明了。因此,我選擇了 第二種方式,即基于原理圖的設(shè)計。 頂層電路如圖3-12所示: 圖3-12 頂層電路的接線圖四 結(jié) 論 通過程序仿真,可以看出各個模塊功能都得到實現(xiàn)。在這個交通燈的系統(tǒng)設(shè)計中,能夠保證在確定的時間,倒計數(shù)數(shù)字顯示能夠及時變化,紅黃綠燈能準(zhǔn)確的變化。在綠燈亮了55秒后變化為黃燈亮5秒,然后實現(xiàn)了十字路口縱橫路放行與禁行的切換控制。謝 辭在做本設(shè)計的過程當(dāng)中,我閱讀了很多資料,充實了我的專業(yè)課知識,在交通控制系統(tǒng)的設(shè)計完成過程當(dāng)中,我學(xué)會了很多,并讓我感覺到我的知識

44、的匱乏,盡管老師和同學(xué)竭盡全力幫助我來保證設(shè)計的精確性、可靠性和完善性,但加上時間的倉促,設(shè)計還有很多不足之處,懇請老師批評指正。在畢業(yè)設(shè)計順利完成之際,我特別感謝我的指導(dǎo)老師唐予軍老師在我設(shè)計寫作過程中給予的傾力幫助和悉心指導(dǎo)。在本設(shè)計的設(shè)計過程中,唐老師在繁忙的工作之余不辭勞苦給我提供了許多寶貴的意見和資料。論文的整個撰寫過程中,唐老師傳授了我對論文寫作的框架和思路,在論文的修改過程中,唐老師不斷地對論文進行審核,并且指出論文的不足之處,提出很多寶貴的改進意見。他的督促和幫助使我順利完成了畢業(yè)設(shè)計及論文。在此對唐老師的無私幫助致以深深的謝意!最后感謝各位同學(xué)和朋友在設(shè)計和論文的寫作過程中給

45、予的無私幫助!更要感謝大家在生活和學(xué)習(xí)里對我的關(guān)心,幫助和支持!本次論文與設(shè)計的完成對我是一個巨大的激勵,使我對學(xué)術(shù)的研究方面充滿信心,更為我在今后的學(xué)習(xí)與工作中提供了寶貴的經(jīng)驗。參考文獻1 劉寶琴,張芳蘭,田立生等.altera可編程邏輯器件及其應(yīng)用.北京:清華大學(xué)出版社,19952 趙雅興.fpga原理、設(shè)計與應(yīng)用.天津大學(xué)出版社,19983 夏宇聞.verilog數(shù)字系統(tǒng)設(shè)計教程.北京航空航天大學(xué)出版社,20034 李廣軍等著.可編程asic設(shè)計與應(yīng)用.成都:電子科技大學(xué)出版社,20005 徐志軍等著.cpld/fpga的開發(fā)與應(yīng)用.北京:電子工業(yè)出版社,20026 翁大元等著.fpga

46、設(shè)計與應(yīng)用.西安:西安電子科技大學(xué)出版社,20027 夏宇聞.從算法設(shè)計到硬件邏輯的實現(xiàn)-復(fù)雜數(shù)字邏輯系統(tǒng)的verilog hdl設(shè)計技術(shù)和方法.北京:高等教育出版社,20018 陳雪松,滕立中編著.vhdl入門與應(yīng)用.北京:人民郵電出版社,20009 劉玉琴,沈雅芬.計算機電路基礎(chǔ)(1).北京:中央廣播電視大學(xué)出版社,200010 邊計年,薛宏熙譯.用vhdl設(shè)計電子線路.北京:清華大學(xué)出版社,200011 wennuan,zibin dai,yongfu zhang.fpga implementation of rsa public-key cryptographiccoprocessor

47、 based on systolic linear array architecture.electronic technology magazine,2003附 錄本設(shè)計溫度計的程序如下:/*主控模塊control*/module control(en_in, rst,sw1,red1,red2,yellow1,yellow2,green1,green2);/*輸入輸出端口定義*/output red1;output red2;output yellow1;output yellow2;output green1;output green2;input 1:0 en_in;input sw1

48、;input rst; /*數(shù)據(jù)類型定義*/reg red1,red2,yellow1,yellow2,green1,green2,d_out;/*always語句 :實現(xiàn)交通燈的總體工作的控制*/always (en_in|rst|sw1)begin/*系統(tǒng)復(fù)位*/ if(sw1=0|rst=0)red1,red2,yellow1,yellow2,green1,green2=6b0;/*系統(tǒng)自動運行*/ else begin case(en_in) 2b00 : red1,red2,yellow1,yellow2,green1,green2=6b010010; / 方向1綠燈亮,方向2紅燈亮

49、 2b01 : red1,red2,yellow1,yellow2,green1,green2=6b011000; / 方向1黃燈亮,方向2紅燈亮 2b10 : red1,red2,yellow1,yellow2,green1,green2=6b100001; / 方向1紅燈亮,方向2綠燈亮 2b11 : red1,red2,yellow1,yellow2,green1,green2=6b100100; / 方向1紅燈亮,方向2黃燈亮 default : red1,red2,yellow1,yellow2,green1,green2=6b0; / 方向1與方向2全滅 endcase end end endmodule /*55秒倒計時模塊counter55*/ module counter55(c_clk,rst,c_en,d_out1,d_out0,c_out);/*輸入輸出端口定義*/output c_out;output 3:0 d_out1;output 3:0 d_out0;input c_clk;input rst;input

溫馨提示

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

評論

0/150

提交評論