搶答器畢業(yè)設(shè)計論文.docx
《搶答器畢業(yè)設(shè)計論文.docx》由會員分享,可在線閱讀,更多相關(guān)《搶答器畢業(yè)設(shè)計論文.docx(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、摘 要隨著計算機(jī)技術(shù)和電子技術(shù)的迅速發(fā)展,現(xiàn)在的搶答器的功能越來越強(qiáng),準(zhǔn)確性和可靠性也越來越高。大部分傳統(tǒng)的搶答器都是基于數(shù)字電路構(gòu)成的,不僅制作過程復(fù)雜,而且可靠性和準(zhǔn)確性較低,還有成品面積大,安裝、維護(hù)困難等問題。近年來電子技術(shù)得到迅速發(fā)展,使得電子系統(tǒng)的設(shè)計者利用EDA軟件,就可以獨立設(shè)計所需的專用集成電路(ASIC)器件,現(xiàn)在利用現(xiàn)場可編輯邏輯門陣列(簡稱FPGA)制作的搶答器,不僅制作過程簡單,而且準(zhǔn)確性也更高。本設(shè)計的主芯片是EP2C35F672C8,系統(tǒng)由組別判斷電路、分頻電路、倒計時電路、搶答判別電路、掃描信號產(chǎn)生電路、信號匹配電路和顯示電路組成。該搶答器可以容納四組八位選手同
2、時參與搶答,系統(tǒng)具有清零功能和倒計時功能。經(jīng)編譯和仿真所設(shè)計的程序,并下載到開發(fā)系統(tǒng)上進(jìn)行調(diào)試驗證,最終完成搶答器的設(shè)計。 關(guān)鍵詞: 電子設(shè)計自動化;可編程邏輯門陣列;搶答器 AbstractWith the development of electronic technology and electronic technology ,the Responder is now more powerful, more and more high reliability and accuracy. Most of the previous Responder composed of digital
3、 circuits based on the traditional. Complex production process, and the accuracy and reliability is not high, finished area, installation, maintenance difficulties. The rapid development of electronic technology in recent years, Electronic system designers use EDA software, it can be designed indepe
4、ndently required special circuit (ASIC) devices. Now design and implementation of the multiplex responder based on FPGA, the production process is not only simple, but accuracy is also higher.The design of the main chip is EP2C35F672C8, the system judgment circuit by a group of the frequency divider
5、 circuit, the countdown circuit, answer determination circuit, the scanning signal generating circuit, a signal matching circuit and the display circuit. The Responder can accommodate four groups of eight players to participate simultaneously answer, the system has a clear function and countdown fun
6、ctions. The compilation and simulation of the design process, and downloaded to the development system to debug validation, the final completion Responder design. Key words: EDA;FPGA;Responder目錄摘 要IAbstractII1 緒論11.1 前言11.2搶答器研究的背景與意義11.3 搶答器的研究現(xiàn)狀11.4 系統(tǒng)設(shè)計要求22 搶答器總體設(shè)計方案32.1 系統(tǒng)總體方案設(shè)計32.2 FPGA的簡介32.2.
7、1 FPGA的結(jié)構(gòu)與工作原理42.2.2 FPGA的特點42.3 FPGA的開發(fā)流程52.4 關(guān)于VHDL73 搶答器的系統(tǒng)設(shè)計方案和主要模塊設(shè)計93.1 系統(tǒng)具體方案設(shè)計93.2 主要模塊設(shè)計103.2.1 組別判斷模塊103.2.2 搶答判別模塊103.2.3 倒計時模塊113.2.4 掃描信號產(chǎn)生模塊113.2.5 數(shù)碼管位信號與段信號匹配模塊123.2.6 顯示模塊123.2.7 分頻模塊134 搶答器的程序設(shè)計與實現(xiàn)144.1 組別判斷模塊程序設(shè)計與仿真144.2 搶答判別模塊程序設(shè)計與仿真154.3 倒計時模塊程序設(shè)計與仿真184.4 掃描信號產(chǎn)生模塊程序設(shè)計與仿真204.5 數(shù)碼
8、管位信號與段信號匹配模塊程序設(shè)計與仿真214.6 顯示模塊程序設(shè)計與仿真224.7 分頻模塊程序設(shè)計234.8 頂層電路的設(shè)計與仿真245 結(jié)論25致 謝26參考文獻(xiàn)27附錄 系統(tǒng)原理圖28附錄 源程序清單29IV1 緒論1.1 前言搶答器在各種智力競賽中經(jīng)常被使用到,也有些電視節(jié)目利用搶答器來提高節(jié)目的可看性,調(diào)動觀眾的參與熱情。搶答器要求能準(zhǔn)確判斷和顯示第一搶答信號并進(jìn)行鎖存,為了保證各種智力競賽、比賽的準(zhǔn)確性和公正性,對搶答器的研究有著其重要的意義。1.2搶答器研究的背景與意義 現(xiàn)在計算機(jī)技術(shù)和電子技術(shù)正在高速發(fā)展,而集成電路的生產(chǎn)工藝也不斷提高,這使得電子產(chǎn)品的更新?lián)Q代越來越快。其中以
9、數(shù)字電路系統(tǒng)設(shè)計的電路規(guī)模更大,集成度更高,而且設(shè)計周期較短,靈活性也更強(qiáng),面對不同的用戶,能很方便地修改和迅速升級?,F(xiàn)在,EDA(電子設(shè)計自動化)技術(shù)的廣泛應(yīng)用使得電路的設(shè)計者能在開發(fā)平臺上使用HDL或畫電路原理圖的方式設(shè)計電路,這大大提高了電路設(shè)計的效率。因此,EDA技術(shù)已經(jīng)成為現(xiàn)代電子設(shè)計工程師必須掌握的技術(shù)。通過查閱資料,理論設(shè)計,軟件編程、調(diào)試等過程,了解和掌握利用FPGA芯片設(shè)計一個系統(tǒng)的一般方法。鞏固和運用在電子技術(shù)基礎(chǔ)等課程中所學(xué)理論知識,提高自己的自學(xué)能力和動手能力,為以后從事相關(guān)工作打下基礎(chǔ)。隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展和經(jīng)濟(jì)全球化的的加強(qiáng),EDA技術(shù)愈發(fā)重要。因此,研究基于
10、FPGA的多路搶答器,有著非常現(xiàn)實的意義。1.3 搶答器的研究現(xiàn)狀搶答器一直廣泛應(yīng)用于各種知識或智力競賽場合。但目前所使用的搶答器實現(xiàn)方案主要有兩種實現(xiàn)方案:一種是用單片機(jī),單片機(jī)具有實現(xiàn)起來比較靈活的特點,但是如果搶答組數(shù)太多,會存在I/O口不足的問題;另一種是利用小規(guī)模數(shù)字邏輯芯片和觸發(fā)器來實現(xiàn),這種方法雖然設(shè)計思路相對簡單,但是電路可靠性比較低,而且實現(xiàn)起來也比較復(fù)雜。隨著電子技術(shù)和計算機(jī)技術(shù)的不斷發(fā)展,EDA技術(shù)應(yīng)運而生。它的出現(xiàn)使電子系統(tǒng)的設(shè)計更加方便,同時使應(yīng)用系統(tǒng)向著更小型化,更快速,重量更輕的方向發(fā)展。 它的出現(xiàn)很大程度上減輕了設(shè)計者的工作強(qiáng)度,并且提高了電子系統(tǒng)的設(shè)計效率。1
11、.4 系統(tǒng)設(shè)計要求本設(shè)計的主要任務(wù)是設(shè)計并實現(xiàn)基于FPGA的多路搶答器。該搶答器可以容納四組八位參賽者同時搶答,每位參賽者設(shè)置一個按鍵以供使用。設(shè)置搶答使能信號,當(dāng)此信號有效時,系統(tǒng)允許搶答。設(shè)置倒計時信號,當(dāng)它為高電平時,系統(tǒng)進(jìn)行20秒倒計時,當(dāng)它為低電平時,倒計時停止。系統(tǒng)復(fù)位后,可以開始進(jìn)行搶答并進(jìn)行20秒倒計時,若有參賽者按下?lián)尨痖_關(guān),則搶答器能判斷出第一搶答者并顯示該組組號,同時使其他組參賽者的搶答按鍵無效。若倒計時時間為0時還是無人搶答,則會報警。系統(tǒng)具有清零復(fù)位功能。當(dāng)清零復(fù)位信號有效時,搶答器對前一輪搶答的結(jié)果進(jìn)行清零,恢復(fù)為初始狀態(tài)。2 搶答器總體設(shè)計方案2.1 系統(tǒng)總體方案
12、設(shè)計本設(shè)計主要實現(xiàn)判斷第一搶答者,搶答倒計時和顯示組號等功能。按系統(tǒng)需要實現(xiàn)的功能要求,系統(tǒng)總體框圖如圖2.1所示:1KHz掃描信號模塊使能LED位信號清零搶答判別模塊信號匹配模塊組別判斷模塊譯碼顯示模塊按鍵鍵倒計時模塊停止1Hz報警LED圖2.1 系統(tǒng)總體設(shè)計框圖軟件部分則通過QuartusII9.1軟件,用VHDL語言來實現(xiàn)多路搶答器的主要功能。2.2 FPGA的簡介FPGA(FieldProgrammable Gate Array),即現(xiàn)場可編程門陣列,它是在20世紀(jì)80年代中期發(fā)展起來的一種可編程器件1。與PAL(Programmable Array Logic,可編程陣列邏輯)、GA
13、L(Generic Array Logic,通用邏輯陣列)和CPLD(Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)等器件相比,它具有最高的集成度,最豐富的特性和最高的性能。FPGA中可以包含幾萬至幾百萬的LUT和觸發(fā)器,所以它能實現(xiàn)的系統(tǒng)功能更強(qiáng)也更復(fù)雜。FPGA的出現(xiàn)解決了以前那些可編程器件門電路數(shù)不足的缺點,同時它作為專用集成電路(Application Specific Integrated Circuit,ASIC)領(lǐng)域中的一種半定制電路,還很好的解決了定制電路不足的問題。通過開發(fā)設(shè)計,上至CPU,下至簡單的門電路設(shè)計都可以使用FPGA來實現(xiàn)
14、。FPGA作為一種新型的高密度可編程邏輯器件,它采用互補金屬氧化物半導(dǎo)體CMOS(Complementary Metal Oxide Semiconductor)工藝制成,所以它的功耗很低。FPGA掉電后數(shù)據(jù)就會消失,所以每一片F(xiàn)PGA芯片都需要配置一片EPROM芯片,只要將程序下載到EPROM中,上電后會自動加載到FPGA芯片中,所以,F(xiàn)PGA無需專門的FPGA編程器,使用通用的EPROM編程器就行。當(dāng)需要修改FPGA的功能時,只需更換一片EPROM即可,這樣,F(xiàn)PGA芯片就能被反復(fù)使用,而且使用起來非常靈活。2.2.1 FPGA的結(jié)構(gòu)與工作原理FPGA采用了邏輯單元陣列LCA(Logic
15、Cell Array)這樣一個概念2,它主要由可編程邏輯模塊CLB(Configurable Logic Block)、可編程輸入/輸出模塊IOB(Input Output Block)和可編程內(nèi)部連線PI(Programmable Interconnect)這三部分組成。可編程邏輯塊CLB是FPGA實現(xiàn)用戶功能的基本邏輯單元。構(gòu)成CLB的基礎(chǔ)是邏輯單元LC(Logic Cell),一個LC中包括4個輸入LUT、進(jìn)位及控制邏輯和一個D觸發(fā)器??删幊梯斎?輸出模塊IOB通常分布在器件的周圍,是芯片與外界電路的接口部分,通過編程配置引腳功能為輸入、輸出或雙向輸入/輸出功能,并為FPGA器件引腳與內(nèi)
16、部邏輯陣列之間提供連接資源。 可編程內(nèi)部連線PI由可編程開關(guān)矩陣與各種長度的金屬連線組成,可通過編程,將內(nèi)部可編程邏輯塊之間及可編程邏輯塊與可編程輸入/輸出塊之間相互連接起來,F(xiàn)PGA芯片內(nèi)部有著豐富的布線資源, 可以滿足各種復(fù)雜系統(tǒng)的需要。FPGA芯片的設(shè)計原理主要是采用查找表來實現(xiàn)邏輯函數(shù)。在FPGA中,LUT和數(shù)據(jù)選擇器的主要作用是實現(xiàn)組合邏輯功能,而觸發(fā)器是實現(xiàn)時序邏輯功能的基本電路。LUT的本質(zhì)就是一個SRAM,用戶在FPGA開發(fā)平臺上采用原理圖或硬件描述語言(HDL)來描述一個邏輯電路,然后通過FPGA芯片數(shù)據(jù)配置與調(diào)試接口將配置結(jié)果寫入到SRAM中,這樣,每輸入一個信號進(jìn)行邏輯運
17、算就相當(dāng)于輸入一個地址進(jìn)行查表,找出每個地址對應(yīng)的內(nèi)容,然后輸出即可。2.2.2 FPGA的特點FPGA的基本特點有以下幾個方面: (1)采用FPGA設(shè)計ASIC電路(專用集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。(2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。(3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。 (4)FPGA是專用集成電路中設(shè)計周期最短、開發(fā)費用最低、風(fēng)險最小的器件之一。(5) FPGA采用高速CMOS工藝,實現(xiàn)了功耗低的要求,可以與CMOS、TTL電平兼容。 可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。采用FPGA技術(shù)可以降低開發(fā)成
18、本、縮短開發(fā)周期、簡化設(shè)計文檔管理、提高電子系統(tǒng)設(shè)計的自動化程度,設(shè)計者擁有完全的自主權(quán),設(shè)計的系統(tǒng)具有良好的可移植性與可測試性,為系統(tǒng)開發(fā)提供可靠保證。FPGA正是憑借這些眾多優(yōu)秀的特點,正迅速占領(lǐng)全球市場,從低成本產(chǎn)品的簡單應(yīng)用到復(fù)雜性的開發(fā)平臺設(shè)計,都可以見到FPGA的身影。2.3 FPGA的開發(fā)流程FPGA的開發(fā)流程是利用EDA開發(fā)軟件和編程工具對FPGA芯片進(jìn)行開發(fā)的過程。通常,F(xiàn)PGA的設(shè)計方法有兩種,包括自下向上設(shè)計和自上向下設(shè)計。對于較大規(guī)模的設(shè)計一般采用自上向下設(shè)計,這種方法是先定義頂層模塊,接著定義頂層模塊所需的子模塊,直至最底層的模塊。而自下向上設(shè)計是先分別設(shè)計底層模塊,
19、接著組成大的模塊,最后完成頂層模塊的設(shè)計。本次多路搶答器系統(tǒng)采用的是自下向上設(shè)計方法。FPGA的開發(fā)流程一般包括設(shè)計準(zhǔn)備、設(shè)計輸入、功能仿真、優(yōu)化處理、時序仿真、器件編程和下載驗證等步驟3。圖2.2為FPGA的開發(fā)流程圖。設(shè)計準(zhǔn)備設(shè)計輸入:1. 原理圖2. 硬件描述語言3. 波形圖功能仿真時序仿真優(yōu)化處理下載驗證器件編程圖2.2 FPGA的開發(fā)流程圖1.設(shè)計準(zhǔn)備在使用FPGA芯片進(jìn)行設(shè)計之前,需要根據(jù)任務(wù)要求確定設(shè)計方案,對設(shè)計方法和器件選擇等進(jìn)行準(zhǔn)備,選擇合適的設(shè)計方法和器件。2.設(shè)計輸入設(shè)計輸入是將所設(shè)計的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并輸入給開發(fā)工具4。最常用的方法有以下兩
20、種。(1) 原理圖輸入方式這是FPGA設(shè)計的基本方法之一,幾乎所有的設(shè)計環(huán)境都提供使用原理圖輸入方式。這種輸入方式是利用元器件庫直接畫出原理圖。這種方法直觀、易用,但移植性較差。(2) 硬件描述語言設(shè)計輸入方式這種設(shè)計輸入方式是大型或復(fù)雜設(shè)計工程中最常用的,現(xiàn)在最流行也是最常用的HDL有VHDL和Verilog HDL兩種。這種輸入方式通用性好,移植性強(qiáng),同時語言的公開可利用性也便于大規(guī)模系統(tǒng)的設(shè)計,它還具有很強(qiáng)的邏輯描述和仿真功能,效率較高。3.功能仿真用戶所設(shè)計的電路必須在編譯之前邏輯功能驗證,即功能仿真,也叫前仿真,此時的仿真是沒有延時的,所以它僅是對初步的功能進(jìn)行檢測5。4.優(yōu)化處理優(yōu)
21、化處理是FPGA開發(fā)設(shè)計中的核心環(huán)節(jié)。在設(shè)計的優(yōu)化處理過程中,編譯器對設(shè)計輸入文件進(jìn)行邏輯化簡、綜合優(yōu)化、并適當(dāng)?shù)赜靡黄蚨嗥骷詣舆M(jìn)行適配,最后產(chǎn)生編程用的編程文件。5.時序仿真時序仿真也叫后仿真,它是在選擇了具體器件并完成布局、布線后進(jìn)行的時序關(guān)系仿真。它不僅要保證邏輯上的正確,還要保證在加入了器件的物理時延特性下是正確的。6.器件編程與下載驗證時序仿真之后,軟件就可產(chǎn)生供器件編程使用的數(shù)據(jù)文件,然后可以下載到對應(yīng)的FPGA器件內(nèi)部進(jìn)行實際測試,驗證設(shè)計的正確性。2.4 關(guān)于VHDLVHDL是一種硬件描述語言,它的全名是Very-High-Speed Integrated Circuit
22、 Hardware Description Language,它起源于美國政府于1980年啟動的超高速集成電路計劃,1983年由美國國防部發(fā)起創(chuàng)建,后經(jīng)美國電氣和電子工程師協(xié)會進(jìn)一步發(fā)展,目前,它已成為開發(fā)設(shè)計中使用最多的硬件描述語言之一,是電子工程領(lǐng)域中通用的硬件描述語言并廣泛應(yīng)用于電子設(shè)計領(lǐng)域。與其他硬件描述語言相比,VHDL具有以下優(yōu)點:1. VHDL具有較強(qiáng)的行為描述能力VHDL可用于從門級、電路級、系統(tǒng)級的描述,支持層次化設(shè)計6。VHDL擁有豐富的數(shù)據(jù)類型,它支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,同時也支持用戶自定義的數(shù)據(jù)類型,這樣使用戶使用起來帶來方便,也使設(shè)計更為靈活。2. VHDL的設(shè)計與具
23、體器件無關(guān)設(shè)計者在使用VHDL設(shè)計硬件電路時,并不需要首先確定設(shè)計采用哪種器件,也不需要特別熟悉器件的內(nèi)部結(jié)構(gòu),這樣可以使設(shè)計者能集中精力進(jìn)行系統(tǒng)設(shè)計,當(dāng)設(shè)計完成后再來考慮選擇合適的器件。3. VHDL具有很強(qiáng)的移植能力由于VHDL是使用最多的硬件描述語言之一,各大EDA公司研制的FPGA開發(fā)工具都支持VHDL,這樣VHDL可以在不同綜合工具、模擬工具和開發(fā)平臺之間互相移植。4. VHDL具有豐富的仿真語句和庫函數(shù)VHDL使得在系統(tǒng)設(shè)計的過程中,能實時的對系統(tǒng)進(jìn)行仿真,這樣就能很方便的隨時檢驗系統(tǒng)的功能可行性。 3 搶答器的系統(tǒng)設(shè)計方案和主要模塊設(shè)計3.1 系統(tǒng)具體方案設(shè)計根據(jù)設(shè)計要求,該系統(tǒng)
24、的總體電路如圖3.1所示。圖3.1 系統(tǒng)總體電路圖該系統(tǒng)主要由七個電路模塊組成,分別為組別判斷電路、分頻電路、倒計時電路、搶答判別電路、掃描信號產(chǎn)生電路、數(shù)碼管位信號與段信號匹配電路和譯碼顯示電路。其中,組別判斷電路是對每一位參賽者的組號進(jìn)行判斷,搶答判別電路主要完成對最快搶答者的判斷功能;倒計時電路對搶答進(jìn)行20秒倒計時;分頻電路是為了得到1Hz的時鐘信號;掃描信號產(chǎn)生電路產(chǎn)生的掃描信號除了能作為多位數(shù)碼管顯示的位選信號外還能作為多位數(shù)碼管顯示相應(yīng)位的段碼掃描信號;數(shù)碼管位信號與段信號匹配電路是將多位七段數(shù)碼管相應(yīng)位位信號和段信號進(jìn)行匹配以正確顯示組號和倒計時時間信號;譯碼顯示電路則是顯示搶
25、答器的狀態(tài)。因此,電子搶答器的輸入信號包括時鐘信號CLK,復(fù)位信號CLR,搶答器使能信號EN,八個參賽者的搶答按鈕A0、A1、B0、B1、C0、C1、D0、D1,報警信號M還有LED位信號和LED段信號。搶答器的工作流程如下:先將搶答使能信號EN和倒計時開關(guān)信號RST置于高電平,然后進(jìn)行復(fù)位,此時參賽者可以開始進(jìn)行搶答,同時倒計時數(shù)碼管顯示從19開始進(jìn)行倒計時,A、B、C、D四組搶答者誰最先按下?lián)尨鸢存I,則該組搶答成功,該組所對應(yīng)的顯示燈被點亮,并通過譯碼顯示電路模塊顯示其參賽編號Q6.0,同時主持人將倒計時開關(guān)信號置于低電平,以免報警。若倒計時結(jié)束時無人搶答,則系統(tǒng)報警。如果復(fù)位信號CLR有
26、效,則會清除上一輪搶答的結(jié)果,使電路恢復(fù)到初始狀態(tài),以便重新開始新一輪搶答。 3.2 主要模塊設(shè)計該系統(tǒng)主要由組別判斷模塊、倒計時模塊、搶答判別模塊、數(shù)碼管位信號與段信號匹配模塊、掃描信號產(chǎn)生模塊、譯碼顯示模塊和分頻模塊組成。本設(shè)計使用VHDL語言編程。3.2.1 組別判斷模塊組別判斷模塊的主要作用是對每一位參賽者的組號進(jìn)行判斷。其模塊符號如圖3.2所示。該模塊輸入信號有時鐘信號CLK(1KHz)、四組按鍵A1.0、B1.0、C1.0、D1.0,輸出信號為每一組的搶答信號S0、S1、S2、S3。圖3.2 組別判斷模塊的符號3.2.2 搶答判別模塊 搶答判別模塊具有第一搶答信號的鑒別和鎖存功能,
27、在進(jìn)行鎖存的同時,對搶答狀態(tài)進(jìn)行顯示。其模塊符號如圖3.3所示。該模塊的輸入信號有四組的搶答信號、清零信號CLR、搶答使能信號EN,輸出信號有各組搶答狀態(tài)顯示信號LEDA、LEDB、LEDC、LEDD和搶答成功組別編號信號Q3.0。系統(tǒng)復(fù)位后,當(dāng)使能信號EN為高電平時,系統(tǒng)根據(jù)選手按下?lián)尨鸢粹o的先后順序選擇最先搶答信號,其對應(yīng)的搶答狀態(tài)顯示信號LEDA-LEDD輸出高電平,搶答成功組別編號由信號Q3.0輸出,并鎖存搶答器此時的狀態(tài),使其他選手的搶答按鍵無效直到清零信號有效為止。在每一輪搶答開始之前,都要使用復(fù)位清零信號CLR,使電路恢復(fù)初始狀態(tài)。圖3.3 搶答判別模塊的符號3.2.3 倒計時模
28、塊 倒計時模塊的主要作用是進(jìn)行搶答倒計時。系統(tǒng)復(fù)位后,當(dāng)?shù)褂嫊r開關(guān)信號為高電平時,倒計時數(shù)碼管從19開始以秒為單位進(jìn)行倒計時,當(dāng)有選手搶答時,主持人給出停止計時信號;如果倒計時結(jié)束后還無人搶答,倒計時模塊會輸出一個高電平使LED燈亮。其模塊符號如圖3.4所示。該模塊的輸入信號有時鐘信號CLK(1Hz)、清零信號CLR、倒計時停止信號RST,輸出信號有計時器高位信號TH3.0、計時器低位信號TL3.0、LED燈提示信號M。圖3.4 倒計時模塊的符號3.2.4 掃描信號產(chǎn)生模塊掃描信號產(chǎn)生模塊的主要作用是產(chǎn)生掃描信號,它不僅能作為多位數(shù)碼管顯示的位選信號,還能作為數(shù)碼管顯示相應(yīng)位的段碼掃描信號。其
29、模塊符號如圖3.5所示。該模塊的輸入信號為時鐘信號CLK(1KHz),輸出信號為產(chǎn)生的掃描信號Q2.0。圖3.5 掃描信號產(chǎn)生模塊的符號3.2.5 數(shù)碼管位信號與段信號匹配模塊由于該系統(tǒng)需要顯示一位選手編號和兩位倒計時時間信號,要正確顯示這些數(shù)據(jù),需要對多位七段數(shù)碼管相應(yīng)顯示位的位信號與段信號進(jìn)行匹配。其模塊符號如圖3.6所示。該模塊的輸入信號有掃描信號SEL2.0、搶答選手編號的BCD碼D33.0、倒計時模塊輸出的時間信號的高位和低位的BCD碼D13.0和D23.0;輸出信號為顯示信號Q3.0。圖3.6 數(shù)碼管位信號與段信號匹配模塊的符號3.2.6 譯碼顯示模塊譯碼顯示模塊的實質(zhì)是一個LED
30、共陽極顯示模塊的譯碼器,其作用是將輸入的BCD碼轉(zhuǎn)換成可供數(shù)碼管直接顯示用的七段碼。其模塊符號如圖3.7所示。圖3.7 譯碼顯示模塊的符號其中D3.0為輸入的BCD碼,Q6.0為輸出的七段碼,它將輸入的BCD碼譯碼顯示為十進(jìn)制數(shù)字的09。其真值表如表3.1所示。表3.1 七段LED真值表輸入輸出顯示數(shù)字D3 D2 D1 D0a b c d e f g0 0 0 00 1 1 1 1 1 100 0 0 10 0 0 0 1 1 010 0 1 01 0 1 1 0 1 120 0 1 11 0 0 1 1 1 13 0 1 0 01 1 0 0 1 1 04 0 1 0 11 1 0 1 1
31、0 150 1 1 0 1 1 1 1 1 0 16 0 1 1 10 0 0 0 1 1 17 1 0 0 01 1 1 1 1 1 18 1 0 0 11 1 0 1 1 1 193.2.7 分頻模塊由于倒計時模塊需要1Hz的時鐘信號,而FPGA的時鐘信號為50MHz,所以需要分頻來得到1Hz的時鐘信號。其模塊符號如圖3.8所示。圖3.8 分頻模塊的符號4 搶答器的程序設(shè)計與實現(xiàn)4.1 組別判斷模塊程序設(shè)計與仿真組別判斷模塊程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ZBPD IS PORT(CLK:IN STD_LOGIC;
32、A,B,C,D:IN STD_LOGIC_VECTOR(1 DOWNTO 0); S0,S1,S2,S3:OUT STD_LOGIC );END ZBPD;ARCHITECTURE ABV OF ZBPD IS BEGIN PROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1) THEN S0=A(0) AND A(1) ; S1=B(0) AND B(1) ; S2=C(0) AND C(1) ; S3=D(0) AND D(1) ; END IF; END PROCESS; END ABV;其波形仿真如圖4.1所示。圖4.1 組別判斷模塊的仿真波形圖搶答信號為低
33、電平有效。圖中只有當(dāng)同組的兩個參賽者都輸出高電平時,該組的輸出信號才為高電平。4.2 搶答判別模塊程序設(shè)計與仿真搶答判別模塊的程序流程圖如圖4.2所示。開始Y清零信號是否有效?系統(tǒng)復(fù)位N是否允許搶答?NY搶答無效若有小組搶答,顯示最先搶答者組號鎖存搶答狀態(tài),其它組搶答無效圖4.2 搶答判別模塊的程序流程圖搶答判別模塊的程序如下所示。LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY QDPB IS PORT ( CLR : IN
34、 STD_LOGIC; EN : IN STD_LOGIC; A,B,C,D : IN STD_LOGIC; LEDA : OUT STD_LOGIC; LEDB : OUT STD_LOGIC; LEDC : OUT STD_LOGIC; LEDD : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); END QDPB;ARCHITECTURE RTL OF QDPB IS SIGNAL TMP:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL TAG:STD_LOGIC; BEGIN TMP=A&B&C&D;
35、 PROCESS(CLR,EN,A,B,C,D,TMP) BEGIN IF CLR=0THEN Q=0000; LEDA=0; LEDB=0; LEDC=0; LEDD=0; TAG=0;ELSIF EN=1 THEN IF TAG=0THEN IF TMP=0111THEN LEDA=1; LEDB=0; LEDC=0; LEDD=0;Q=0001; TAG=1; ELSIFTMP=1011THEN LEDA=0; LEDB=1; LEDC=0; LEDD=0;Q=0010;TAG=1;ELSIF TMP=1101THEN LEDA=0; LEDB=0; LEDC=1; LEDD=0;Q=0
36、011;TAG=1;ELSIF TMP=1110THEN LEDA=0; LEDB=0; LEDC=0; LEDD=1;Q=0100;TAG=1; END IF;END IF;END IF; END PROCESS;END RTL;其波形仿真如圖4.3所示。圖4.3 搶答判別模塊的仿真波形圖從圖中可看出,A組最先搶答,LEDA輸出高電平,同時輸出信號為“001”。這說明該模塊能對第一搶答信號進(jìn)行鑒別并鎖存該信號,同時與搶答成功者組號相對應(yīng)的LED燈會被點亮以發(fā)出提示。4.3 倒計時模塊程序設(shè)計與仿真倒計時模塊的程序流程圖如圖4.4所示。開始Y清零信號是否有效?各信號復(fù)位N開關(guān)信號是否有效?YN
37、開始倒計時停止倒計時圖4.4 倒計時模塊的程序流程圖倒計時模塊程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JS IS PORT ( CLK,CLR,RST : IN STD_LOGIC; TH,TL : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); M : OUT STD_LOGIC); END JS;ARCHITECTURE RTL OF JS IS SIGNAL HH:STD_LOG
38、IC_VECTOR(3 DOWNTO 0); SIGNAL LL:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(CLK,CLR,RST,HH,LL) BEGINIF CLR=0 THEN LL=1001;HH=0001;M=0; ELSIF CLKEVENT AND CLK=1 THEN IF RST=1 THEN LL=LL-1; IF LL=0000 THEN LL=1001;HH=HH-1; IF HH=0000 AND LL=0000 THEN M=1; HH=0000; LL=0000; END IF; END IF; END IF;END I
39、F;TH=HH;TL=LL;END PROCESS;END RTL; 其波形仿真如圖4.5所示。圖4.5 倒計時模塊的仿真波形圖由圖中可看出,當(dāng)CLR信號無效和RST為高電平時,倒計時模塊從19開始進(jìn)行倒計時,倒計時為0時,發(fā)出一個高電平信號報警。4.4 掃描信號產(chǎn)生模塊程序設(shè)計與仿真掃描信號產(chǎn)生模塊程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XHCS IS PORT (CLK:IN STD_LOGIC; Q:OUT INTEGER RANGE 0 TO 7);END XHCS;ARCHITECTURE XHCS_BEHAVE OF
40、 XHCS IS BEGIN PROCESS (CLK) VARIABLE TMP:INTEGER RANGE 0 TO 7; BEGIN IF CLKEVENT AND CLK=1 THEN TMP:=TMP+1; END IF; QQQQQQQQQQQQQQQNULL; END CASE; END PROCESS;END THREE;其波形仿真如圖4.8所示。圖4.8 譯碼顯示模塊的仿真波形圖由圖中可看出,該模塊能正確顯示09這十個數(shù)字。4.7 分頻模塊程序設(shè)計分頻模塊程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LO
41、GIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FP ISPORT( CLK : IN STD_LOGIC; CLK1:OUT STD_LOGIC);END FP;ARCHITECTURE MIX OF FP ISSIGNAL COUNT :INTEGER RANGE 0 TO 49999999;BEGIN FP_PROC:PROCESS(CLK) BEGIN IF RISING_EDGE(CLK) THEN IF COUNT=49999999 THEN COUNT=0; ELSE COUNT24999999 THENCLK1=1; E
42、LSE CLK1=0; END IF; END IF; END PROCESS FP_PROC;END MIX;該模塊作用是將50MHz的時鐘信號轉(zhuǎn)換為1Hz的時鐘信號。4.8 頂層電路的設(shè)計與仿真系統(tǒng)頂層電路見附錄,其波形仿真如圖4.9所示。圖4.9 系統(tǒng)總體仿真波形圖從圖中可看出,A組最先搶答,系統(tǒng)正確判斷出了第一搶答者的組號,并顯示A組的LED燈亮。5 結(jié)論此設(shè)計經(jīng)下載到開發(fā)系統(tǒng)上調(diào)試,完全符合設(shè)計要求。經(jīng)過兩個多月時間的努力,我終于完成了基于FPGA的多路搶答器的設(shè)計。在這個過程中理論聯(lián)系實踐,把在學(xué)校四年所學(xué)知識連成一串,通過查資料和搜集有關(guān)的文獻(xiàn),培養(yǎng)了我的自學(xué)能力和動手能力。同時
43、,我對一個產(chǎn)品也有了一個新的認(rèn)識,從方案的選擇、設(shè)計再到實現(xiàn),每一步都需要認(rèn)真研究,克服困難。在這次畢業(yè)設(shè)計之前,我對于FPGA只有一些最基本的認(rèn)識,對VHDL語言更是沒聽說過。從設(shè)計開始,我查閱了很多資料,自學(xué)了關(guān)于FPGA和VHDL的相關(guān)知識,將QuartusII軟件下載下來自己不斷摸索,同時,遇到問題向老師和同學(xué)門請教,也讓我受益匪淺。當(dāng)然,在設(shè)計過程中由于時間倉促,還有一些地方難免存在不足之處,在設(shè)計中有些功能還不完善。但在以后的工作中,我會嚴(yán)格要求自己,追求完美,懇請老師批評指正。畢業(yè)設(shè)計是對我以前所學(xué)知識的一次很好的總結(jié)和實際應(yīng)用,雖然結(jié)束了,但對我的影響是深刻的,它培養(yǎng)了我的自學(xué)
44、能力和動手能力,同時我分析問題和解決問題的能力也得到了提高。本次畢業(yè)設(shè)計最主要的收獲是讓我掌握了使用VHDL語言編程和對QuartusII9.1軟件的使用,讓我對所學(xué)的一些專業(yè)知識有了更深的理解,使我的理論知識與實踐充分地結(jié)合,為以后的工作做好準(zhǔn)備。致 謝感謝我的母校對我四年來的大力栽培。本設(shè)計是在任堰牛老師的精心指導(dǎo)下完成的。任老師平日里工作繁多,但在我做畢業(yè)設(shè)計的每個階段,從查閱資料,設(shè)計方案的確定和修改,程序的編寫等過程中都給予了我悉心的指導(dǎo)。任老師有著深厚的理論水平,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,和豐富的實踐經(jīng)驗,最可貴的是他會不厭其煩的為我們解決他力所能及的問題。在此,我謹(jǐn)向任堰牛老師表示崇高的敬
45、意和衷心的感謝!與此同時,還要感謝同學(xué)們的幫助,在整個畢業(yè)設(shè)計的過程中,不管遇到什么困難,同學(xué)們都積極給予幫助,為我解決了不少問題,從而使我更好更順利的完成我的畢業(yè)設(shè)計,在此謝謝你們。 由于本人學(xué)識有限,加之時間倉促,文中不免有錯誤和待改進(jìn)之處,真誠歡迎各位師長、同學(xué)提出寶貴意見。最后,我要向在百忙之中抽時間對本文進(jìn)行審閱、評議和參加本人論文答辯的各位老師表示衷心的感謝!謝謝!參考文獻(xiàn)1林灶生.Verilog FPGA芯片設(shè)計.北京:北京航空航天大學(xué)出版社,2005.2王振紅.FPGA開發(fā)與應(yīng)用.北京:清華大學(xué)出版社,2010.3王開軍.姜宇柏.面向CPLD/FPGA的VHDL設(shè)計.北京:機(jī)械
46、工業(yè)出版社,2006,28-65.4葛亞明,彭永豐,薛冰.零基礎(chǔ)學(xué)FPGA.北京:機(jī)械工業(yè)出版社,2010.5陳忠平,高金定,高見芳.基于QuartusII的FPGA/CPLD設(shè)計與實踐.北京:電子工業(yè)出版社,2010.6周淑閣. FPGA/CPLD系統(tǒng)設(shè)計與應(yīng)用開發(fā). 電子工業(yè)出版社,2011.7孟慶海,張洲.VHDL基礎(chǔ)及經(jīng)典實例開發(fā).西安:西安交通大學(xué)出版社,2008.8康華先.電子技術(shù)基礎(chǔ)(數(shù)字部分)第四版M.北京:高等教育出版社,2000. 213-224. 附錄 系統(tǒng)原理圖附錄 源程序清單組別判斷模塊-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL
47、;ENTITY ZBPD IS PORT(CLK:IN STD_LOGIC; A,B,C,D:IN STD_LOGIC_VECTOR(1 DOWNTO 0); S0,S1,S2,S3:OUT STD_LOGIC );END ZBPD;ARCHITECTURE ABV OF ZBPD IS BEGIN PROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1) THEN S0=A(0) AND A(1) ; S1=B(0) AND B(1) ; S2=C(0) AND C(1) ; S3=D(0) AND D(1) ; END IF; END PROCESS; END A
48、BV;搶答判別模塊-LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY QDPB IS PORT ( CLR : IN STD_LOGIC; EN : IN STD_LOGIC; A,B,C,D : IN STD_LOGIC; LEDA : OUT STD_LOGIC; LEDB : OUT STD_LOGIC; LEDC : OUT STD_LOGIC; LEDD : OUT STD_LOGIC; Q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0); END QDPB;ARCHITECTURE RTL OF QDPB IS SIGNAL TMP:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL TAG:STD_LOGIC; BEGIN TMP=A&B&C&D; PROCESS(CLR,EN,A,B,C,D,TMP) BEGIN IF CLR=0THEN Q=0000; LEDA=0; LEDB=0; LEDC=0; LEDD=0; TAG=0;ELSIF EN=1 THEN IF TAG=0THEN
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。