搶答器畢業(yè)設計論文.docx
《搶答器畢業(yè)設計論文.docx》由會員分享,可在線閱讀,更多相關《搶答器畢業(yè)設計論文.docx(38頁珍藏版)》請在裝配圖網上搜索。
1、摘 要隨著計算機技術和電子技術的迅速發(fā)展,現在的搶答器的功能越來越強,準確性和可靠性也越來越高。大部分傳統(tǒng)的搶答器都是基于數字電路構成的,不僅制作過程復雜,而且可靠性和準確性較低,還有成品面積大,安裝、維護困難等問題。近年來電子技術得到迅速發(fā)展,使得電子系統(tǒng)的設計者利用EDA軟件,就可以獨立設計所需的專用集成電路(ASIC)器件,現在利用現場可編輯邏輯門陣列(簡稱FPGA)制作的搶答器,不僅制作過程簡單,而且準確性也更高。本設計的主芯片是EP2C35F672C8,系統(tǒng)由組別判斷電路、分頻電路、倒計時電路、搶答判別電路、掃描信號產生電路、信號匹配電路和顯示電路組成。該搶答器可以容納四組八位選手同
2、時參與搶答,系統(tǒng)具有清零功能和倒計時功能。經編譯和仿真所設計的程序,并下載到開發(fā)系統(tǒng)上進行調試驗證,最終完成搶答器的設計。 關鍵詞: 電子設計自動化;可編程邏輯門陣列;搶答器 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 搶答器的研究現狀11.4 系統(tǒng)設計要求22 搶答器總體設計方案32.1 系統(tǒng)總體方案設計32.2 FPGA的簡介32.2.
7、1 FPGA的結構與工作原理42.2.2 FPGA的特點42.3 FPGA的開發(fā)流程52.4 關于VHDL73 搶答器的系統(tǒng)設計方案和主要模塊設計93.1 系統(tǒng)具體方案設計93.2 主要模塊設計103.2.1 組別判斷模塊103.2.2 搶答判別模塊103.2.3 倒計時模塊113.2.4 掃描信號產生模塊113.2.5 數碼管位信號與段信號匹配模塊123.2.6 顯示模塊123.2.7 分頻模塊134 搶答器的程序設計與實現144.1 組別判斷模塊程序設計與仿真144.2 搶答判別模塊程序設計與仿真154.3 倒計時模塊程序設計與仿真184.4 掃描信號產生模塊程序設計與仿真204.5 數碼
8、管位信號與段信號匹配模塊程序設計與仿真214.6 顯示模塊程序設計與仿真224.7 分頻模塊程序設計234.8 頂層電路的設計與仿真245 結論25致 謝26參考文獻27附錄 系統(tǒng)原理圖28附錄 源程序清單29IV1 緒論1.1 前言搶答器在各種智力競賽中經常被使用到,也有些電視節(jié)目利用搶答器來提高節(jié)目的可看性,調動觀眾的參與熱情。搶答器要求能準確判斷和顯示第一搶答信號并進行鎖存,為了保證各種智力競賽、比賽的準確性和公正性,對搶答器的研究有著其重要的意義。1.2搶答器研究的背景與意義 現在計算機技術和電子技術正在高速發(fā)展,而集成電路的生產工藝也不斷提高,這使得電子產品的更新換代越來越快。其中以
9、數字電路系統(tǒng)設計的電路規(guī)模更大,集成度更高,而且設計周期較短,靈活性也更強,面對不同的用戶,能很方便地修改和迅速升級?,F在,EDA(電子設計自動化)技術的廣泛應用使得電路的設計者能在開發(fā)平臺上使用HDL或畫電路原理圖的方式設計電路,這大大提高了電路設計的效率。因此,EDA技術已經成為現代電子設計工程師必須掌握的技術。通過查閱資料,理論設計,軟件編程、調試等過程,了解和掌握利用FPGA芯片設計一個系統(tǒng)的一般方法。鞏固和運用在電子技術基礎等課程中所學理論知識,提高自己的自學能力和動手能力,為以后從事相關工作打下基礎。隨著現代科學技術的迅猛發(fā)展和經濟全球化的的加強,EDA技術愈發(fā)重要。因此,研究基于
10、FPGA的多路搶答器,有著非?,F實的意義。1.3 搶答器的研究現狀搶答器一直廣泛應用于各種知識或智力競賽場合。但目前所使用的搶答器實現方案主要有兩種實現方案:一種是用單片機,單片機具有實現起來比較靈活的特點,但是如果搶答組數太多,會存在I/O口不足的問題;另一種是利用小規(guī)模數字邏輯芯片和觸發(fā)器來實現,這種方法雖然設計思路相對簡單,但是電路可靠性比較低,而且實現起來也比較復雜。隨著電子技術和計算機技術的不斷發(fā)展,EDA技術應運而生。它的出現使電子系統(tǒng)的設計更加方便,同時使應用系統(tǒng)向著更小型化,更快速,重量更輕的方向發(fā)展。 它的出現很大程度上減輕了設計者的工作強度,并且提高了電子系統(tǒng)的設計效率。1
11、.4 系統(tǒng)設計要求本設計的主要任務是設計并實現基于FPGA的多路搶答器。該搶答器可以容納四組八位參賽者同時搶答,每位參賽者設置一個按鍵以供使用。設置搶答使能信號,當此信號有效時,系統(tǒng)允許搶答。設置倒計時信號,當它為高電平時,系統(tǒng)進行20秒倒計時,當它為低電平時,倒計時停止。系統(tǒng)復位后,可以開始進行搶答并進行20秒倒計時,若有參賽者按下搶答開關,則搶答器能判斷出第一搶答者并顯示該組組號,同時使其他組參賽者的搶答按鍵無效。若倒計時時間為0時還是無人搶答,則會報警。系統(tǒng)具有清零復位功能。當清零復位信號有效時,搶答器對前一輪搶答的結果進行清零,恢復為初始狀態(tài)。2 搶答器總體設計方案2.1 系統(tǒng)總體方案
12、設計本設計主要實現判斷第一搶答者,搶答倒計時和顯示組號等功能。按系統(tǒng)需要實現的功能要求,系統(tǒng)總體框圖如圖2.1所示:1KHz掃描信號模塊使能LED位信號清零搶答判別模塊信號匹配模塊組別判斷模塊譯碼顯示模塊按鍵鍵倒計時模塊停止1Hz報警LED圖2.1 系統(tǒng)總體設計框圖軟件部分則通過QuartusII9.1軟件,用VHDL語言來實現多路搶答器的主要功能。2.2 FPGA的簡介FPGA(FieldProgrammable Gate Array),即現場可編程門陣列,它是在20世紀80年代中期發(fā)展起來的一種可編程器件1。與PAL(Programmable Array Logic,可編程陣列邏輯)、GA
13、L(Generic Array Logic,通用邏輯陣列)和CPLD(Complex Programmable Logic Device,復雜可編程邏輯器件)等器件相比,它具有最高的集成度,最豐富的特性和最高的性能。FPGA中可以包含幾萬至幾百萬的LUT和觸發(fā)器,所以它能實現的系統(tǒng)功能更強也更復雜。FPGA的出現解決了以前那些可編程器件門電路數不足的缺點,同時它作為專用集成電路(Application Specific Integrated Circuit,ASIC)領域中的一種半定制電路,還很好的解決了定制電路不足的問題。通過開發(fā)設計,上至CPU,下至簡單的門電路設計都可以使用FPGA來實現
14、。FPGA作為一種新型的高密度可編程邏輯器件,它采用互補金屬氧化物半導體CMOS(Complementary Metal Oxide Semiconductor)工藝制成,所以它的功耗很低。FPGA掉電后數據就會消失,所以每一片FPGA芯片都需要配置一片EPROM芯片,只要將程序下載到EPROM中,上電后會自動加載到FPGA芯片中,所以,FPGA無需專門的FPGA編程器,使用通用的EPROM編程器就行。當需要修改FPGA的功能時,只需更換一片EPROM即可,這樣,FPGA芯片就能被反復使用,而且使用起來非常靈活。2.2.1 FPGA的結構與工作原理FPGA采用了邏輯單元陣列LCA(Logic
15、Cell Array)這樣一個概念2,它主要由可編程邏輯模塊CLB(Configurable Logic Block)、可編程輸入/輸出模塊IOB(Input Output Block)和可編程內部連線PI(Programmable Interconnect)這三部分組成??删幊踢壿媺KCLB是FPGA實現用戶功能的基本邏輯單元。構成CLB的基礎是邏輯單元LC(Logic Cell),一個LC中包括4個輸入LUT、進位及控制邏輯和一個D觸發(fā)器。可編程輸入/輸出模塊IOB通常分布在器件的周圍,是芯片與外界電路的接口部分,通過編程配置引腳功能為輸入、輸出或雙向輸入/輸出功能,并為FPGA器件引腳與內
16、部邏輯陣列之間提供連接資源。 可編程內部連線PI由可編程開關矩陣與各種長度的金屬連線組成,可通過編程,將內部可編程邏輯塊之間及可編程邏輯塊與可編程輸入/輸出塊之間相互連接起來,FPGA芯片內部有著豐富的布線資源, 可以滿足各種復雜系統(tǒng)的需要。FPGA芯片的設計原理主要是采用查找表來實現邏輯函數。在FPGA中,LUT和數據選擇器的主要作用是實現組合邏輯功能,而觸發(fā)器是實現時序邏輯功能的基本電路。LUT的本質就是一個SRAM,用戶在FPGA開發(fā)平臺上采用原理圖或硬件描述語言(HDL)來描述一個邏輯電路,然后通過FPGA芯片數據配置與調試接口將配置結果寫入到SRAM中,這樣,每輸入一個信號進行邏輯運
17、算就相當于輸入一個地址進行查表,找出每個地址對應的內容,然后輸出即可。2.2.2 FPGA的特點FPGA的基本特點有以下幾個方面: (1)采用FPGA設計ASIC電路(專用集成電路),用戶不需要投片生產,就能得到合用的芯片。(2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。(3)FPGA內部有豐富的觸發(fā)器和IO引腳。 (4)FPGA是專用集成電路中設計周期最短、開發(fā)費用最低、風險最小的器件之一。(5) FPGA采用高速CMOS工藝,實現了功耗低的要求,可以與CMOS、TTL電平兼容。 可以說,FPGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。采用FPGA技術可以降低開發(fā)成
18、本、縮短開發(fā)周期、簡化設計文檔管理、提高電子系統(tǒng)設計的自動化程度,設計者擁有完全的自主權,設計的系統(tǒng)具有良好的可移植性與可測試性,為系統(tǒng)開發(fā)提供可靠保證。FPGA正是憑借這些眾多優(yōu)秀的特點,正迅速占領全球市場,從低成本產品的簡單應用到復雜性的開發(fā)平臺設計,都可以見到FPGA的身影。2.3 FPGA的開發(fā)流程FPGA的開發(fā)流程是利用EDA開發(fā)軟件和編程工具對FPGA芯片進行開發(fā)的過程。通常,FPGA的設計方法有兩種,包括自下向上設計和自上向下設計。對于較大規(guī)模的設計一般采用自上向下設計,這種方法是先定義頂層模塊,接著定義頂層模塊所需的子模塊,直至最底層的模塊。而自下向上設計是先分別設計底層模塊,
19、接著組成大的模塊,最后完成頂層模塊的設計。本次多路搶答器系統(tǒng)采用的是自下向上設計方法。FPGA的開發(fā)流程一般包括設計準備、設計輸入、功能仿真、優(yōu)化處理、時序仿真、器件編程和下載驗證等步驟3。圖2.2為FPGA的開發(fā)流程圖。設計準備設計輸入:1. 原理圖2. 硬件描述語言3. 波形圖功能仿真時序仿真優(yōu)化處理下載驗證器件編程圖2.2 FPGA的開發(fā)流程圖1.設計準備在使用FPGA芯片進行設計之前,需要根據任務要求確定設計方案,對設計方法和器件選擇等進行準備,選擇合適的設計方法和器件。2.設計輸入設計輸入是將所設計的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并輸入給開發(fā)工具4。最常用的方法有以下兩
20、種。(1) 原理圖輸入方式這是FPGA設計的基本方法之一,幾乎所有的設計環(huán)境都提供使用原理圖輸入方式。這種輸入方式是利用元器件庫直接畫出原理圖。這種方法直觀、易用,但移植性較差。(2) 硬件描述語言設計輸入方式這種設計輸入方式是大型或復雜設計工程中最常用的,現在最流行也是最常用的HDL有VHDL和Verilog HDL兩種。這種輸入方式通用性好,移植性強,同時語言的公開可利用性也便于大規(guī)模系統(tǒng)的設計,它還具有很強的邏輯描述和仿真功能,效率較高。3.功能仿真用戶所設計的電路必須在編譯之前邏輯功能驗證,即功能仿真,也叫前仿真,此時的仿真是沒有延時的,所以它僅是對初步的功能進行檢測5。4.優(yōu)化處理優(yōu)
21、化處理是FPGA開發(fā)設計中的核心環(huán)節(jié)。在設計的優(yōu)化處理過程中,編譯器對設計輸入文件進行邏輯化簡、綜合優(yōu)化、并適當地用一片或多片器件自動進行適配,最后產生編程用的編程文件。5.時序仿真時序仿真也叫后仿真,它是在選擇了具體器件并完成布局、布線后進行的時序關系仿真。它不僅要保證邏輯上的正確,還要保證在加入了器件的物理時延特性下是正確的。6.器件編程與下載驗證時序仿真之后,軟件就可產生供器件編程使用的數據文件,然后可以下載到對應的FPGA器件內部進行實際測試,驗證設計的正確性。2.4 關于VHDLVHDL是一種硬件描述語言,它的全名是Very-High-Speed Integrated Circuit
22、 Hardware Description Language,它起源于美國政府于1980年啟動的超高速集成電路計劃,1983年由美國國防部發(fā)起創(chuàng)建,后經美國電氣和電子工程師協會進一步發(fā)展,目前,它已成為開發(fā)設計中使用最多的硬件描述語言之一,是電子工程領域中通用的硬件描述語言并廣泛應用于電子設計領域。與其他硬件描述語言相比,VHDL具有以下優(yōu)點:1. VHDL具有較強的行為描述能力VHDL可用于從門級、電路級、系統(tǒng)級的描述,支持層次化設計6。VHDL擁有豐富的數據類型,它支持標準定義的數據類型,同時也支持用戶自定義的數據類型,這樣使用戶使用起來帶來方便,也使設計更為靈活。2. VHDL的設計與具
23、體器件無關設計者在使用VHDL設計硬件電路時,并不需要首先確定設計采用哪種器件,也不需要特別熟悉器件的內部結構,這樣可以使設計者能集中精力進行系統(tǒng)設計,當設計完成后再來考慮選擇合適的器件。3. VHDL具有很強的移植能力由于VHDL是使用最多的硬件描述語言之一,各大EDA公司研制的FPGA開發(fā)工具都支持VHDL,這樣VHDL可以在不同綜合工具、模擬工具和開發(fā)平臺之間互相移植。4. VHDL具有豐富的仿真語句和庫函數VHDL使得在系統(tǒng)設計的過程中,能實時的對系統(tǒng)進行仿真,這樣就能很方便的隨時檢驗系統(tǒng)的功能可行性。 3 搶答器的系統(tǒng)設計方案和主要模塊設計3.1 系統(tǒng)具體方案設計根據設計要求,該系統(tǒng)
24、的總體電路如圖3.1所示。圖3.1 系統(tǒng)總體電路圖該系統(tǒng)主要由七個電路模塊組成,分別為組別判斷電路、分頻電路、倒計時電路、搶答判別電路、掃描信號產生電路、數碼管位信號與段信號匹配電路和譯碼顯示電路。其中,組別判斷電路是對每一位參賽者的組號進行判斷,搶答判別電路主要完成對最快搶答者的判斷功能;倒計時電路對搶答進行20秒倒計時;分頻電路是為了得到1Hz的時鐘信號;掃描信號產生電路產生的掃描信號除了能作為多位數碼管顯示的位選信號外還能作為多位數碼管顯示相應位的段碼掃描信號;數碼管位信號與段信號匹配電路是將多位七段數碼管相應位位信號和段信號進行匹配以正確顯示組號和倒計時時間信號;譯碼顯示電路則是顯示搶
25、答器的狀態(tài)。因此,電子搶答器的輸入信號包括時鐘信號CLK,復位信號CLR,搶答器使能信號EN,八個參賽者的搶答按鈕A0、A1、B0、B1、C0、C1、D0、D1,報警信號M還有LED位信號和LED段信號。搶答器的工作流程如下:先將搶答使能信號EN和倒計時開關信號RST置于高電平,然后進行復位,此時參賽者可以開始進行搶答,同時倒計時數碼管顯示從19開始進行倒計時,A、B、C、D四組搶答者誰最先按下搶答按鍵,則該組搶答成功,該組所對應的顯示燈被點亮,并通過譯碼顯示電路模塊顯示其參賽編號Q6.0,同時主持人將倒計時開關信號置于低電平,以免報警。若倒計時結束時無人搶答,則系統(tǒng)報警。如果復位信號CLR有
26、效,則會清除上一輪搶答的結果,使電路恢復到初始狀態(tài),以便重新開始新一輪搶答。 3.2 主要模塊設計該系統(tǒng)主要由組別判斷模塊、倒計時模塊、搶答判別模塊、數碼管位信號與段信號匹配模塊、掃描信號產生模塊、譯碼顯示模塊和分頻模塊組成。本設計使用VHDL語言編程。3.2.1 組別判斷模塊組別判斷模塊的主要作用是對每一位參賽者的組號進行判斷。其模塊符號如圖3.2所示。該模塊輸入信號有時鐘信號CLK(1KHz)、四組按鍵A1.0、B1.0、C1.0、D1.0,輸出信號為每一組的搶答信號S0、S1、S2、S3。圖3.2 組別判斷模塊的符號3.2.2 搶答判別模塊 搶答判別模塊具有第一搶答信號的鑒別和鎖存功能,
27、在進行鎖存的同時,對搶答狀態(tài)進行顯示。其模塊符號如圖3.3所示。該模塊的輸入信號有四組的搶答信號、清零信號CLR、搶答使能信號EN,輸出信號有各組搶答狀態(tài)顯示信號LEDA、LEDB、LEDC、LEDD和搶答成功組別編號信號Q3.0。系統(tǒng)復位后,當使能信號EN為高電平時,系統(tǒng)根據選手按下搶答按鈕的先后順序選擇最先搶答信號,其對應的搶答狀態(tài)顯示信號LEDA-LEDD輸出高電平,搶答成功組別編號由信號Q3.0輸出,并鎖存搶答器此時的狀態(tài),使其他選手的搶答按鍵無效直到清零信號有效為止。在每一輪搶答開始之前,都要使用復位清零信號CLR,使電路恢復初始狀態(tài)。圖3.3 搶答判別模塊的符號3.2.3 倒計時模
28、塊 倒計時模塊的主要作用是進行搶答倒計時。系統(tǒng)復位后,當倒計時開關信號為高電平時,倒計時數碼管從19開始以秒為單位進行倒計時,當有選手搶答時,主持人給出停止計時信號;如果倒計時結束后還無人搶答,倒計時模塊會輸出一個高電平使LED燈亮。其模塊符號如圖3.4所示。該模塊的輸入信號有時鐘信號CLK(1Hz)、清零信號CLR、倒計時停止信號RST,輸出信號有計時器高位信號TH3.0、計時器低位信號TL3.0、LED燈提示信號M。圖3.4 倒計時模塊的符號3.2.4 掃描信號產生模塊掃描信號產生模塊的主要作用是產生掃描信號,它不僅能作為多位數碼管顯示的位選信號,還能作為數碼管顯示相應位的段碼掃描信號。其
29、模塊符號如圖3.5所示。該模塊的輸入信號為時鐘信號CLK(1KHz),輸出信號為產生的掃描信號Q2.0。圖3.5 掃描信號產生模塊的符號3.2.5 數碼管位信號與段信號匹配模塊由于該系統(tǒng)需要顯示一位選手編號和兩位倒計時時間信號,要正確顯示這些數據,需要對多位七段數碼管相應顯示位的位信號與段信號進行匹配。其模塊符號如圖3.6所示。該模塊的輸入信號有掃描信號SEL2.0、搶答選手編號的BCD碼D33.0、倒計時模塊輸出的時間信號的高位和低位的BCD碼D13.0和D23.0;輸出信號為顯示信號Q3.0。圖3.6 數碼管位信號與段信號匹配模塊的符號3.2.6 譯碼顯示模塊譯碼顯示模塊的實質是一個LED
30、共陽極顯示模塊的譯碼器,其作用是將輸入的BCD碼轉換成可供數碼管直接顯示用的七段碼。其模塊符號如圖3.7所示。圖3.7 譯碼顯示模塊的符號其中D3.0為輸入的BCD碼,Q6.0為輸出的七段碼,它將輸入的BCD碼譯碼顯示為十進制數字的09。其真值表如表3.1所示。表3.1 七段LED真值表輸入輸出顯示數字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 搶答器的程序設計與實現4.1 組別判斷模塊程序設計與仿真組別判斷模塊程序如下: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、電平有效。圖中只有當同組的兩個參賽者都輸出高電平時,該組的輸出信號才為高電平。4.2 搶答判別模塊程序設計與仿真搶答判別模塊的程序流程圖如圖4.2所示。開始Y清零信號是否有效?系統(tǒng)復位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”。這說明該模塊能對第一搶答信號進行鑒別并鎖存該信號,同時與搶答成功者組號相對應的LED燈會被點亮以發(fā)出提示。4.3 倒計時模塊程序設計與仿真倒計時模塊的程序流程圖如圖4.4所示。開始Y清零信號是否有效?各信號復位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 倒計時模塊的仿真波形圖由圖中可看出,當CLR信號無效和RST為高電平時,倒計時模塊從19開始進行倒計時,倒計時為0時,發(fā)出一個高電平信號報警。4.4 掃描信號產生模塊程序設計與仿真掃描信號產生模塊程序如下: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這十個數字。4.7 分頻模塊程序設計分頻模塊程序如下: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的時鐘信號轉換為1Hz的時鐘信號。4.8 頂層電路的設計與仿真系統(tǒng)頂層電路見附錄,其波形仿真如圖4.9所示。圖4.9 系統(tǒng)總體仿真波形圖從圖中可看出,A組最先搶答,系統(tǒng)正確判斷出了第一搶答者的組號,并顯示A組的LED燈亮。5 結論此設計經下載到開發(fā)系統(tǒng)上調試,完全符合設計要求。經過兩個多月時間的努力,我終于完成了基于FPGA的多路搶答器的設計。在這個過程中理論聯系實踐,把在學校四年所學知識連成一串,通過查資料和搜集有關的文獻,培養(yǎng)了我的自學能力和動手能力。同時
43、,我對一個產品也有了一個新的認識,從方案的選擇、設計再到實現,每一步都需要認真研究,克服困難。在這次畢業(yè)設計之前,我對于FPGA只有一些最基本的認識,對VHDL語言更是沒聽說過。從設計開始,我查閱了很多資料,自學了關于FPGA和VHDL的相關知識,將QuartusII軟件下載下來自己不斷摸索,同時,遇到問題向老師和同學門請教,也讓我受益匪淺。當然,在設計過程中由于時間倉促,還有一些地方難免存在不足之處,在設計中有些功能還不完善。但在以后的工作中,我會嚴格要求自己,追求完美,懇請老師批評指正。畢業(yè)設計是對我以前所學知識的一次很好的總結和實際應用,雖然結束了,但對我的影響是深刻的,它培養(yǎng)了我的自學
44、能力和動手能力,同時我分析問題和解決問題的能力也得到了提高。本次畢業(yè)設計最主要的收獲是讓我掌握了使用VHDL語言編程和對QuartusII9.1軟件的使用,讓我對所學的一些專業(yè)知識有了更深的理解,使我的理論知識與實踐充分地結合,為以后的工作做好準備。致 謝感謝我的母校對我四年來的大力栽培。本設計是在任堰牛老師的精心指導下完成的。任老師平日里工作繁多,但在我做畢業(yè)設計的每個階段,從查閱資料,設計方案的確定和修改,程序的編寫等過程中都給予了我悉心的指導。任老師有著深厚的理論水平,嚴謹的治學態(tài)度,和豐富的實踐經驗,最可貴的是他會不厭其煩的為我們解決他力所能及的問題。在此,我謹向任堰牛老師表示崇高的敬
45、意和衷心的感謝!與此同時,還要感謝同學們的幫助,在整個畢業(yè)設計的過程中,不管遇到什么困難,同學們都積極給予幫助,為我解決了不少問題,從而使我更好更順利的完成我的畢業(yè)設計,在此謝謝你們。 由于本人學識有限,加之時間倉促,文中不免有錯誤和待改進之處,真誠歡迎各位師長、同學提出寶貴意見。最后,我要向在百忙之中抽時間對本文進行審閱、評議和參加本人論文答辯的各位老師表示衷心的感謝!謝謝!參考文獻1林灶生.Verilog FPGA芯片設計.北京:北京航空航天大學出版社,2005.2王振紅.FPGA開發(fā)與應用.北京:清華大學出版社,2010.3王開軍.姜宇柏.面向CPLD/FPGA的VHDL設計.北京:機械
46、工業(yè)出版社,2006,28-65.4葛亞明,彭永豐,薛冰.零基礎學FPGA.北京:機械工業(yè)出版社,2010.5陳忠平,高金定,高見芳.基于QuartusII的FPGA/CPLD設計與實踐.北京:電子工業(yè)出版社,2010.6周淑閣. FPGA/CPLD系統(tǒng)設計與應用開發(fā). 電子工業(yè)出版社,2011.7孟慶海,張洲.VHDL基礎及經典實例開發(fā).西安:西安交通大學出版社,2008.8康華先.電子技術基礎(數字部分)第四版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: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。