畢業(yè)論文-基于FPGA的競猜計分器設計與實現_第1頁
畢業(yè)論文-基于FPGA的競猜計分器設計與實現_第2頁
畢業(yè)論文-基于FPGA的競猜計分器設計與實現_第3頁
畢業(yè)論文-基于FPGA的競猜計分器設計與實現_第4頁
畢業(yè)論文-基于FPGA的競猜計分器設計與實現_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、大連東軟信息學院本科畢業(yè)設計(論文)論論文題目:基于FPGA的競猜計分器設計與實現系 所: 電子工程系 專 業(yè):電子信息工程(集成電路設計與系統(tǒng)方向) 學生姓名: 學生學號: 指導教師: 導師職稱:講師 完成日期:2014年4月28日 大連東軟信息學院Dalian Neusoft University of Information大連東軟信息學院畢業(yè)設計(論文) 摘要 IV基于FPGA的競猜計分器設計與實現摘 要電子產業(yè)在人們的生活中發(fā)揮著越來越重要的地位,電子技術得到了突飛猛進的發(fā)展,各種電子產品的功能、質量也日趨完善。其中,競猜計分器被廣泛地用于競賽活動。其能夠公正、客觀的判斷出參賽選手操

2、作撥碼開關的先后,并鎖存優(yōu)先搶答者的編號通過譯碼顯示電路在發(fā)光二極管(LED,light-emitting diode)數碼管上顯示,同時其他選手操作無效。并且在比賽中可以使用排序功能對選手的分值進行排序,使選手了解本人所得的成績在所有選手中所處的水平。在人們的娛樂活動中,競猜計分器也成為了必不可少的電子設備之一。本次畢業(yè)設計主要介紹了以現場可編程門陣列(FPGA,Field Programmable Gata Array)為基礎的數字競猜器的設計與實現,其設計是根據數字系統(tǒng)由上而下設計和實現的基本流程,包括整體流程圖的設計、數據通道和控制單元的設計、并用可綜合的Verilog HDL語言實現

3、、經過Modelsim做功能仿真,用Quartus II進行綜合布局布線,最終下到FPGA開發(fā)板進行驗證,并在設計過程中對電路的性能進行不斷地優(yōu)化。本次設計采用FPGA來增強時序的靈活性,由于FPGA的I/O端口資源豐富,可以在此基礎上可以改動增加其他功能,因此后期可塑性很強,因為核心是FPGA芯片,外圍電路相對簡單,因此便于維護而且維護費用相對較低。關鍵詞:FPGA,競猜計分器,Verilog HDL大連東軟信息學院畢業(yè)設計(論文) Abstract Design and Implementation of Quiz Score Machine Based on FPGAAbstractEl

4、ectronic industry plays a more and more important role in peoples life, the development of electronic technology has been growing by leaps and bounds, the function and quality of all kinds of electronic products are perfect. Among them, the quiz score indicator is widely used in competition. It can

5、be fair and objective judgment contestant, dial the code switch operation successively, and the serial number of latch first vies answer first person through the decoding display circuit on the light-emitting diode (LED,light-emitting diode) digital tube display, while other players operation is inv

6、alid. And can use the sort function of players in the game score sort, make understand himself to be the results of all the players of the level. In peoples entertainment activities, Quiz Score Machine has become the indispensable one of electronic equipment.This graduation design mainly introduced

7、with Field Programmable gate Array (FPGA, Field Programmable Gata Array) based digital quiz machine, the design and implementation of the design is based on digital system the basic process of top-down design and implementation, including the design of the whole flow chart, data channel and the desi

8、gn of the control unit, with can Verilog HDL language implementation, after Modelsim to do simulation, using the Quartus II integrated wiring layout, eventually went down to the FPGA development board, and in the design process to continuously optimize the performance of the circuit.This design uses

9、 the flexibility of FPGA to enhance timing, because FPGA I/O port resource is rich, which can be added other functions on the basis of this, so the late plasticity is very strong, because the core is FPGA chip, the peripheral circuit is relatively simple, so easy to maintain and maintenance costs ar

10、e relatively low.Key words: FPGA, Quiz Score Machine, Verilog HDL大連東軟信息學院畢業(yè)設計(論文) 目錄目 錄 TOC o 1-3 u 摘 要 PAGEREF _Toc386020014 h IAbstract PAGEREF _Toc386020015 h II第1章緒 論 PAGEREF _Toc386020016 h 11.1 競猜計分器研究的背景與意義 PAGEREF _Toc386020017 h 11.2 競猜計分器的研究現狀 PAGEREF _Toc386020018 h 11.3 系統(tǒng)設計的要求 PAGEREF _

11、Toc386020019 h 1第2章關鍵技術介紹 PAGEREF _Toc386020020 h 22.1 “top-down”(自頂向下)設計方法 PAGEREF _Toc386020021 h 22.2 FPGA的簡介 PAGEREF _Toc386020022 h 32.3 開發(fā)軟件介紹 PAGEREF _Toc386020023 h 32.3.1 Quartus II簡介 PAGEREF _Toc386020024 h 32.3.2 Modelsim簡介52.4 硬件描述語言Verilog HDL PAGEREF _Toc386020026 h 5第3章系統(tǒng)需求分析 PAGEREF

12、_Toc386020027 h 63.1 系統(tǒng)設計目標 PAGEREF _Toc386020028 h 63.2 系統(tǒng)功能概述 PAGEREF _Toc386020029 h 63.3 系統(tǒng)功能需求 PAGEREF _Toc386020030 h 73.4 系統(tǒng)流程圖 PAGEREF _Toc386020031 h 83.5 系統(tǒng)開發(fā)環(huán)境 PAGEREF _Toc386020032 h 103.6系統(tǒng)可行性分析 PAGEREF _Toc386020033 h 10第4章系統(tǒng)設計 PAGEREF _Toc386020034 h 114.1 系統(tǒng)指導思想和原則 PAGEREF _Toc386020

13、035 h 114.2 系統(tǒng)功能結構設計 PAGEREF _Toc386020036 h 114.3 系統(tǒng)的狀態(tài)機 PAGEREF _Toc386020037 h 124.4 系統(tǒng)詳細設計 PAGEREF _Toc386020038 h 124.5 數據通道模塊設計 PAGEREF _Toc386020039 h 144.5.1 搶答判別模塊 PAGEREF _Toc386020040 h 144.5.2 分頻模塊 PAGEREF _Toc386020041 h 144.5.3 倒計時模塊 PAGEREF _Toc386020042 h 154.5.4 搶答按鍵模塊 PAGEREF _Toc3

14、86020043 h 154.5.5 搶答按鍵轉換模塊 PAGEREF _Toc386020044 h 154.5.6 計分模塊 PAGEREF _Toc386020045 h 164.5.7 選擇顯示模塊 PAGEREF _Toc386020046 h 174.5.8 顯示模塊 PAGEREF _Toc386020047 h 17第5章系統(tǒng)實現 PAGEREF _Toc386020048 h 185.1 數據通道的代碼實現 PAGEREF _Toc386020049 h 185.2 狀態(tài)機的代碼實現 PAGEREF _Toc386020050 h 19第6章系統(tǒng)仿真 PAGEREF _Toc

15、386020051 h 236.1 搶答犯規(guī)仿真 PAGEREF _Toc386020052 h 236.2 正常倒計時仿真 PAGEREF _Toc386020053 h 236.3 選手加分仿真 PAGEREF _Toc386020054 h 236.4 選手減分仿真 PAGEREF _Toc386020055 h 246.5 查詢分值仿真 PAGEREF _Toc386020056 h 246.6 排序仿真 PAGEREF _Toc386020057 h 24第7章結論 PAGEREF _Toc386020058 h 26參考文獻 PAGEREF _Toc386020059 h 27致

16、謝 PAGEREF _Toc386020060 h 28大連東軟信息學院畢業(yè)設計(論文)- 第1章緒 論1.1 競猜計分器研究的背景與意義隨著信息技術及其產業(yè)的迅速發(fā)展,當今社會進入到了一個嶄新的信息化時代,電子技術正在進行著高速的發(fā)展,這使電子產品的更新?lián)Q代越來越快,這使得電視上益智類的節(jié)目中舉辦的各種各樣的智力比賽都會用到競猜計分器,它方便快捷,直觀地反映著首先取得發(fā)言權的選手的優(yōu)點,因此受到比賽各方的青睞。電子技術在各個領域的運用也越來越廣泛,滲透到人們日常生活的方方面面,掌握必要的電子技術知識已經成為當代大學生特別是理工類大學生必備的素質之一。通過了解競猜計分器的組成原理、測試方法,了

17、解多功能計分器各單元電路之間的關系和相互影響,同時通過本課題的設計與調試,鞏固和應用在電子技術基礎等課程中所學到理論知識,提高自己的動手能力,為以后的工作打下堅實地基礎。1.2 競猜計分器的研究現狀競猜計分器被廣泛地用于各種知識比賽的場合中,本設計是以FPGA為基礎設計的計分器,具有搶答后計分的控制,市場上現行的主要有兩種:一種是用小規(guī)模數字邏輯芯片譯碼器和觸發(fā)器來實現,另一種是用單片機來實現;前者的電路比較復雜,后者來做計分器組數的增加有時存在著I/O接口不足的情況。隨著電子技術的不斷發(fā)展,電子設計自動化(EDA,Electronic Design Automation)技術應運而生,它的出

18、現使得電子系統(tǒng)的設計更加便捷,很大程度上減輕了設計者的工作強度,提高了電子系統(tǒng)的設計效率。1.3 系統(tǒng)設計的要求由于FPGA具有內部硬件功能可通過編程改變并且處理速度較高等特點,FPGA在電路設計中得到了廣泛的應用。本課題要求用Altera FPGA設計與實現的競猜計分器。要求具有如下功能:(1)一個總按鈕,由主持人控制,用于命令搶答開始或搶答結束后復位。(2)設置一個倒計時裝置,當主持人第一次按總按鈕是,倒計時裝置開始進行倒計時。(3)當倒計時未倒計為0前,進行搶答視為犯規(guī)處理,否則去抖后鑒別搶答先后順序,顯示搶答成功選手的編號。(4)判斷搶答結果是否正確,正確計分,錯誤扣分。(5)可查詢各

19、個選手歷史分值。(6)在比賽結束后,進行按分值排名并顯示。 大連東軟信息學院畢業(yè)設計(論文)第2章關鍵技術介紹2.1 “top-down”(自頂向下)設計方法數字系統(tǒng)的設計方法通常分為“top-down”(自頂向下)設計和“Bottom-up”(自底向上)設計兩大類。自底向上的設計方法,在設計系統(tǒng)硬件時,從系統(tǒng)的最底層開始,首先用真值表、卡諾圖、狀態(tài)轉換表或狀態(tài)轉換圖來描述數字系統(tǒng)的邏輯功能,然后選擇具體的邏輯功能部件,用這些邏輯功能部件組成功能模塊,最后把功能模塊連接起來完成系統(tǒng)硬件設計。采用這種設計方法進行底層設計時,由于缺乏對整個數字系統(tǒng)總體性能的把握,在整個系統(tǒng)設計完成后,如果發(fā)現部分

20、性能需要改進,修改起來比較困難,因而設計周期長。自頂向下的設計方法,概括地講就是從整體到局部、最后到細節(jié)的設計方法,即設計者先從數字系統(tǒng)的整體功能要求出發(fā),進行最頂層的系統(tǒng)設計,然后將整個系統(tǒng)分成若干子系統(tǒng),再將每個子系統(tǒng)分為若干功能模塊,功能模塊還可繼續(xù)向下劃分成子功能模塊,直至分成許多可以由最基本的邏輯功能部件實現小功能模塊。這就像建造一座大樓,先要進行整體設計,再繪制詳細的結構圖,最后用建筑材料建造起來。在某種意義上講,“Bottom-up”(自底向上)設計過程可以看作是“top-down”(自頂向下)設計的逆過程。現代電子系統(tǒng)的設計采用“top-down”(自頂向下)設計方法,設計步驟

21、如圖2.1所示。圖2.1 “top-down”(自頂向下)的設計步驟本次畢業(yè)設計對競猜計分器的設計,就是采用自頂向下(top-down) 的設計方法。根據自上而下的設計思想,對系統(tǒng)進行功能模塊劃分并優(yōu)化。各個功能模塊之間相互獨立并且可以相互引用,最后將各模塊集成到一個頂層模塊中,形成一個完整的系統(tǒng)。2.2 FPGA的簡介FPGA是Field Programmable Gate Array的縮寫,即現場可編程門陣列,它是在PAL、GAL、復雜可編程邏輯器件(CPLD,Complex Programmable Logic Device)等可編程器件的基礎上進一步發(fā)展的產物。它是作為專用集成電路(A

22、SIC,Application Specific Integrated Circuit)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。可以毫不夸張的講,FPGA能完成任何數字器件的功能,上至高性能中央處理機(CPU,Central Processing Unit),下至簡單的74電路,都可以用FPGA來實現。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自由的設計一個數字系統(tǒng)。通過軟件仿真,我們可以事先驗證設計的正確性。在印刷電路板(PCB,Printed circuit board)完成以后,還可以利用

23、FPGA的在線修改能力,隨時修改設計而不必改動硬件電路。使用FPGA來開發(fā)數字電路,可以大大縮短設計時間,減少PCB面積,提高系統(tǒng)的可靠性?,F場可編程門陣列(FPGA)器件是八十年代中期出現的新產品,它的應用大大地方便了IC的設計,因而隨著數字技術日益廣泛的應用,以FPGA為代表的ASIC器件得到了迅速的普及和發(fā)展,器件集成度和速度都在高速增長。FPGA的開發(fā)流程是利用EDA開發(fā)軟件和編程工具對FPGA芯片進行開發(fā)的過程。通常,FPGA的設計方法有兩種,包括自下而上設計和自上向下設計。對于較大規(guī)模的設計一般采用自上而下設計,這種方法是先定義頂層模塊,接著定義頂層模塊所需要的子模塊,直至最底層的

24、模塊。而自下而上設計是先分別設計底層模塊,接著組成大的模塊,最后完成頂層模塊的設計。圖2.2FPGA的開發(fā)流程一般包括設計準備、設計輸入、功能仿真、優(yōu)化處理、時序仿真、器件編程和下載驗證等步驟。2.3 開發(fā)軟件介紹2.3.1 Quartus II簡介隨著EDA技術的發(fā)展,使用硬件描述語言來設計PLD/FPGA已經成為一種趨勢。利用硬件描述語言,設計者可以將非常復雜的數字系統(tǒng)分為不同層次的模塊進行設計,利用EDA工具,逐層進行仿真驗證,再把其中需要變?yōu)閷嶋H電路的模塊組合,經過自動綜合工具轉換到門級電路網表。最后利用FPGA自動布局布線工具,把網表轉換為要實現的具體電路布線結構。Quartus I

25、I 軟件是數字系統(tǒng)設計的仿真工具,他擁有FPGA和CPLD設計的所有階段的解決方案,我們可以使用Quartus II 軟件完成數字邏輯設計仿真的所有階段。Quartus II的設計流程圖如2.3所示。圖2.2 FPGA開發(fā)流程圖2.3 Quartus II的設計流程圖2.3.2 Modelsim簡介ModelSim完全支持VHDL和Verilog標準;采用直接編輯技術,大大提高HDL編譯和仿真速度。還可以利用ModelSim調用設計文件進行仿真分析。在調試環(huán)境中,設計者可以通過ModelSim的快速調試步驟以及對各種信號的監(jiān)控功能(無論信號處于VHDL層,還是處于混合語言層)使仿真的執(zhí)行過程形

26、象直觀化,幫助設計者及時發(fā)現漏洞,縮短設計周期。ModelSim最大的特點是其強大的調試功能:先進的數據流窗口,可以迅速追蹤到生產不定或者錯誤狀態(tài)的原因;性能分析工具幫助分析性能瓶頸,加速仿真;代碼覆蓋率檢查確保測試的完備;多種模式的波形比較功能;先進的 SignalSpy功能,可以方便地訪問VHDL或者VHDL和Verilog混合設計中的底層信號;支持加密IP;可以實現與Matlab的Simulink的聯(lián)合仿真。2.4 硬件描述語言Verilog HDLVerilog HDL是一種硬件描述語言,是一種以文本形式來描述數字系統(tǒng)硬件的結構和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表

27、示數字邏輯系統(tǒng)所完成的邏輯功能。用于從算法級、門級到開關級的多種抽象設計層次的數字系統(tǒng)建模。被建模的數字系統(tǒng)對象的復雜性可以介于簡單的門和完整的電子數字系統(tǒng)之間。數字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進行時序建模。Verilog HDL 語言具有下述描述能力:設計的行為特性、設計的數據流特性、設計的結構組成以及包含響應監(jiān)控和設計驗證方面的時延和波形產生機制。所有這些都使用同一種建模語言。此外,Verilog HDL語言提供了編程語言接口,通過該接口可以在模擬、驗證期間從設計外部訪問設計,包括模擬的具體控制和運行。Verilog HDL語言不僅定義了語法,而且對每個語法結構都定義了清晰的

28、模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進行驗證。語言從C編程語言中繼承了多種操作符和結構。Verilog HDL提供了擴展的建模能力,其中許多擴展最初很難理解。但是,Verilog HDL語言的核心子集非常易于學習和使用,這對大多數建模應用來說已經足夠。當然,完整的硬件描述語言足以對從最復雜的芯片到完整的電子系統(tǒng)進行描述。第3章系統(tǒng)需求分析3.1 系統(tǒng)設計目標根據論文采用自頂向下的設計思想和數字系統(tǒng)設計和實現的基本流程,從頂層進行功能劃分和結構設計。然后獨立的設計和優(yōu)化每個模塊,并且在頂層設計中集成所有已優(yōu)化的模塊,最后驗證總體設計。以高級數字系統(tǒng)設計的方法為指

29、導思想,在系統(tǒng)設計過程中,首先對競猜計分器的功能進行了解,然后再畫出整體流程圖,提取出數據通道和狀態(tài)機。在數據通道的實現過程中,向下劃分出若干單元模塊,并且不斷優(yōu)化其性能。狀態(tài)機部分由有限狀態(tài)機來實現,合理安排各個狀態(tài)的轉移。狀態(tài)機發(fā)送數據通道所需的控制信號,接收來自數據通道的狀態(tài)信號,監(jiān)控整個測試過程的運行;數據通道處理來自狀態(tài)機的控制信號,并處理的結果反饋給狀態(tài)機。數據通道和狀態(tài)機協(xié)調工作,外圍電路進行其他相關的控制和顯示,整個系統(tǒng)便可得到穩(wěn)定的波形值輸出。本設計主要實現判斷第一競猜者、搶答倒計時、搶答犯規(guī)處理、答對計分、答錯扣分、查詢分數、分數排序、顯示結果等功能,按要求需要實現的功能要

30、求,系統(tǒng)整體框架如圖3.1所示。圖3.1 系統(tǒng)整體框圖3.2 系統(tǒng)功能概述本設計是以Quartus 為開發(fā)環(huán)境,學習常用的數字系統(tǒng)設計方法,采用Verilog HDL語言完成了競猜計分器電路的前端設計,全部在一片FPGA開發(fā)板上實現,整個系統(tǒng)非常精簡,而且具有靈活的現場可更改性。在不更改硬件電路的基礎上,對系統(tǒng)進行各種改進還可以進一步提高系統(tǒng)的性能。該計分器具有精確、可靠、抗干擾性強和現場可編程等優(yōu)點。其主要部分是數據通道和狀態(tài)機的設計,目標是為了正確地顯示參加競賽的選手的名次和分值。該電路共有14個輸入按鍵,3個LED數碼管顯示,LED1數碼管顯示倒計時和搶答成功的選手組號,LED2和LED

31、3數碼管顯示查詢和排序時的分數值。圖3.2為系統(tǒng)的功能框圖。 圖3.2 系統(tǒng)功能框圖3.3 系統(tǒng)功能需求本次設計要求設計一個可以容納8組參賽者的競猜計分器:本競猜計分器有14個輸入端,其中8個輸入端為八組選手的搶答撥碼開關,分別為key1、key2、key3、key4、key5、key6、key7、key8,其余6個撥碼開關分別為主持人開始撥碼開關start、查詢撥碼開關find、排序撥碼開關sort、加分撥碼開關up、減分撥碼開關down、結束撥碼開關end,有三個LED數碼管進行顯示,其中LED1數碼管上顯示搶答者的組別1-8和倒計時從9-0,LED2數碼管和LED3數碼管上顯示搶答者的分

32、數,最高為99分,最低為0分和排序結果顯示,分數1s更新一次。如果不進行查詢、排序操作,由主持人宣布搶答開始,撥動開始搶答的撥碼開關start,倒計時結束后各組開始搶答,其中任意一組搶答題目時,則電路進行自動鎖存,其他各組再撥動搶答撥碼開關被視為無效,搶到題目時LED1數碼管上顯示該組的組號。作答結束后主持人依據回答結果是否正確由主持人選擇加分或減分操作,每組的初始分數為50分,答對一道題加5分,答錯一道題減5分,不搶答則分數不加不減。競猜計分器的具體功能如下:(1)設置一個查詢撥碼開關find,此開關由主持人操控,如果想要查詢分數時,撥動此開關,再撥動欲查詢分值的小組所對應的撥碼開關,在LE

33、D1數碼管上將會顯示該小組的組號,LED2數碼管和LED3數碼管上顯示該小組的分值。(2)設置一個排序撥碼開關sort,此開關由主持人操控,如果想要排序時,撥動此開關,選手的分值將按從高到底地在LED2數碼管和LED3數碼管上顯示。(3)設置搶答開始撥碼開關start,此按鍵由主持人操控,在主持人宣布搶答開始后,撥動此開關,系統(tǒng)將自動進入倒計時程序。(4)計分器具有倒計時的功能,限時為9秒。當主持人撥動撥碼開關start后,LED1數碼管顯示9,依次遞減,當未倒計為0之前,搶答則視為犯規(guī),蜂鳴器吱吱地響,系統(tǒng)返回到初始狀態(tài)重新進行一輪搶答,倒計時倒計為0之后,搶答成功的選手可以進行搶答,并在L

34、ED1數碼管上顯示相應的組號。(5)計分器具有鎖存和顯示功能,也就是說當選手按下?lián)尨鸢存I搶答成功后,鎖存相應的組號,并在相應的LED1數碼管顯示。當主持人對分數進行加減分操作完畢后,在LED2數碼管和LED3數碼管上顯示搶答者的分數。當進行查詢和排序操作時,在LED2和LED3數碼管上顯示相應的分數。(6)主持人在選手搶答之后,作答完成后,進入加減分數環(huán)節(jié),此時主持人可用up開關在回答正確之后,進行加分操作,可以用down開關用來在回答錯誤之后進行減分操作,之后按下結束鍵end來完成此環(huán)節(jié)。答完所有題目后,最高分者勝利,搶答期間零分的選手出局,完成加減分環(huán)節(jié)之后,主持人可以進入下一環(huán)節(jié)。3.4

35、 系統(tǒng)流程圖在對整個系統(tǒng)有一定的了解和認識之后,根據高級數字系統(tǒng)設計方法和要設計的競猜計分器的特點做出了系統(tǒng)流程圖如圖3.3所示。首先進入空閑狀態(tài),接著進入初始化處理狀態(tài),對整個系統(tǒng)進行初始化處理。初始化的處理將會使整個系統(tǒng)進入默認的工作狀態(tài),如果初始化完成后復位使能信號有效,那么系統(tǒng)將再次進入初始化處理狀態(tài);然后判斷分數查詢使能信號是否有效,有效的話撥動查詢撥碼開關系統(tǒng)進入期待選手撥碼開關撥動輸入狀態(tài),如果操作使某選手對應的撥碼開關撥動后,則在LED2和LED3數碼管上顯示該組選手的分數值。此時,如果分數查詢使能信號依然有效,撥動其他選手對應的撥碼開關則可繼續(xù)查詢其他組選手的分值,如果分數查

36、詢使能信號無效,那么系統(tǒng)將再次進入初始化處理狀態(tài);其次當分數查詢使能信號無效時,分數排序使能信號有效,進入排序顯示分數名次狀態(tài)。如果操作排序功能的撥碼開關后,在LED2和LED3數碼管上由高到低地顯示選手的分數,分數值1秒更新一次,此時,如果分數排序使能信號依然有效,數碼管上不停地、重復地更新分數,否則,當分數排序使能信號無效,系統(tǒng)將直接進入初始化處理狀態(tài);最后如果分數查詢使能信號無效、分數排序使能信號無效,開始的撥碼開關使能信號有效,系統(tǒng)將進入倒計時狀態(tài),系統(tǒng)將在LED1數碼管上顯示倒計時,從 9到0依次遞減逐次顯示,當倒計時未倒計為0時,有選手撥動撥碼開關進行搶答時,此時系統(tǒng)進入錯誤狀態(tài),

37、具體實現為蜂鳴器不停地吱吱響,系統(tǒng)將直接進入初始化處理狀態(tài);當倒計時倒計為0時,第一選手撥動撥碼開關進行搶答,此時搶答成功,具體實現為在LED1數碼管上顯示該組選手的組號,繼而該選手進行回答,之后主持人根據選手回答結果的正確與否進行加分或減分操作,加減分操作完成后主持人撥動結束的撥碼開關,系統(tǒng)將直接進入初始化處理狀態(tài);圖3.3 系統(tǒng)流程圖3.5 系統(tǒng)開發(fā)環(huán)境 硬件配置:300GB硬盤;3GB內存;2.67GHz英特爾CPU。操作系統(tǒng):Windows7旗艦版。編程語言:Verilog HDL(硬件描述語言)。軟件環(huán)境:Quartus II、ModelSim10.1。3.6系統(tǒng)可行性分析根據論文采

38、用的自頂向下的設計思想,從系統(tǒng)級設計入手。從頂層進行功能劃分和結構設計。對整個系統(tǒng)有一定的認識后,開始著手整體流程圖的設計。然后,通過流程圖提煉出相應的數據通道和狀態(tài)機。數據通道的各個模塊包括:顯示模塊、倒計時模塊、搶答按鍵模塊、搶答按鍵轉換模塊、選擇顯示模塊、計分模塊、分頻模塊、搶答鑒別模塊。狀態(tài)機部分由有限狀態(tài)來實現,合理涉及各個狀態(tài)轉移。狀態(tài)機發(fā)送數據通道所需的控制信號,接收來自數據通道的狀態(tài)信號,監(jiān)控整個測試過程的運行;數據通道處理來自狀態(tài)機的控制信號,并把處理的結果反饋給狀態(tài)機。此外,外圍電路即顯示控制電路和撥碼開關控制電路可以使顯示很方便。使用Altera公司開發(fā)的Quartus軟

39、件,對每個模塊進行開發(fā)。通過常用仿真軟件ModelSim對設計的所有模塊進行仿真測試,確保整個開發(fā)流程順利進行。最后在FPGA開發(fā)板上進行功能測試,并且不斷地進行優(yōu)化。第4章系統(tǒng)設計4.1 系統(tǒng)指導思想和原則本課題是一個基于FPGA的競猜計分器設計與實現,系統(tǒng)根據數字系統(tǒng)設計和實現的基本流程進行設計,包括整體流程圖的設計、數據通道和狀態(tài)機的設計,并可用可綜合的Verilog語言實現,最后經過Modelsim10.1軟件做各個模塊和整體系統(tǒng)的功能仿真,并在設計實現過程中不斷對電路性能進行優(yōu)化。在開發(fā)平臺Quartus II12.0上完成,可以在50MHz的時鐘頻率下正常工作,能準確通過按鍵完成查

40、詢、排序、開始、倒計時和結束功能,倒計時周期為9秒鐘,最終的結果通過LED數碼管用動態(tài)掃描的方式顯示。使用Moldesim10.1仿真軟件對大部分Verilog HDL程序進行了仿真,并完成了綜合布局布線,最終下載到開發(fā)板上取得良好的結果。競猜計分器的首要目標是滿足文化娛樂活動、競技比賽時選手先后順序、比分顯示的要求,同時也要確保在比賽進行的過程中不會出現計分錯誤、顯示有誤等問題從而影響比賽的正常進程,系統(tǒng)要穩(wěn)定,同時具備的查詢、排序功能要能正常應用規(guī)范比賽賽程。在滿足以上基本點后,可以拓展功能或者使項目設計實物更美觀、實用。4.2 系統(tǒng)功能結構設計該競猜計分器的設計中主要包括三大功能模塊:1

41、、查詢功能模塊 2、排序功能模塊 3、倒計時、搶答功能模塊,如圖4.1所示。圖4.1 系統(tǒng)主要功能模塊其中的查詢模塊主要用于查詢各個選手在比賽中的歷史分值,而排序功能模塊主要用于比賽中將選手的分數按從高到低依次顯示,搶答倒計時功能模塊主要用于在比賽過程中倒計時結束后鑒別第一搶答者。本設計是基于FPGA,是用Verilog HDL語言編寫,通過modelsim 10.1與Quartus II12.0進行邏輯綜合與仿真,最后由LED數碼管顯示比賽得分與比賽名次。需要將各個模塊連接起來才能實現競猜計分器整個的功能,要先建立頂層模塊,在頂層中對各模塊進行引用,并且將各模塊之間的對應的時鐘線,數據線以及

42、控制線連接好。整個設計之中,輸入為計分器時鐘、查詢、排序、加分、減分撥碼開關和選手輸入撥碼開關,輸出為數碼管的查詢信號和排序信號以及顯示的使能。4.3 系統(tǒng)的狀態(tài)機狀態(tài)機是控制競猜計分器的開始、結束以及復位,并產生查詢、排序的使能信號。狀態(tài)機是系統(tǒng)的核心,可根據當前狀態(tài)以及撥碼開關的輸入情況控制計分器不同狀態(tài)的切換,是本次設計中最為復雜的部分。根據競猜計分器的模塊劃分與數據通道,通過運用Visio繪圖軟件做出的系統(tǒng)模塊狀態(tài)機,如圖4.2所示。圖4.2 系統(tǒng)狀態(tài)機系統(tǒng)首先重置,然后進行接下來的操作,查詢、排序、搶答倒計時。當要進行查詢操作時,在獲得查詢時鐘信號提示后,撥動選手的撥碼開關,LED數

43、碼管上則顯示該組選手的組別號和分值;當要進行排序時,在獲得排序的時鐘信號提示后,LED數碼管上從高到低依次顯示選手的分值。當不進行查詢、排序操作時,在獲得開始的時鐘信號后,系統(tǒng)進入倒計時,倒計時結束后選手搶答,回答結束后主持人進行加減分操作,之后撥動結束撥動開關回到初始狀態(tài)。4.4 系統(tǒng)詳細設計競猜計分器劃分為2個子模塊,分別為數據通道和狀態(tài)機。狀態(tài)機主要判斷外界或數據通道輸入的信號,進入狀態(tài)轉移,在相應狀態(tài)輸出加分、減分、搶答、搶答顯示、查詢、查詢顯示、排序、排序顯示等使能控制信號,等待撥碼開關輸入和搶答犯規(guī)時輸出錯誤,蜂鳴器吱吱響的信號。狀態(tài)機模塊圖如圖4.3所示。為了方便描述狀態(tài)切換,設

44、計中定義了9個狀態(tài)變量:idle, find,find_display,sort,sort_display,daojishi,daojishi_foul,wait_key,wait_up_dn,三個輸出使能信號daojishi_display,down_en,error_buzz,和輸入狀態(tài)變量control_sig。圖4.3 狀態(tài)機模塊圖數據通道主要是根據選手、開始、查詢和排序撥動開關功能的不同,輸出不同的分值。數據通道模塊如圖4.4。圖4.4 數據通道模塊圖4.5 數據通道模塊設計該系統(tǒng)主要由七個電路模塊組成,分別為:搶答判別模塊、分頻模塊、倒計時模塊、搶答按鍵模塊、搶答按鍵轉換模塊、計分

45、模塊、選擇顯示模塊、顯示模塊。其中,搶答判別電路模塊主要完成對最快搶答者的判斷功能;分頻電路模塊是為了得到1Hz的時鐘信號;倒計時電路模塊對搶答進行9秒的倒計時;搶答按鍵模塊主要用于搶答者使用撥碼開關進行搶答輸入;搶答按鍵轉換電路模塊主要是8進制數向10進制數據轉換,用于在LED數碼管上顯示組號;計分電路模塊主要用記錄參賽選手的分值、查詢或排序時從中提取數據提供給顯示模塊顯示和用于選手在比賽過程中加分與減分操作從而更新選手的分值;選擇顯示電路模塊主要是進行LED數碼管與組號、分數、倒計時信號匹配;顯示電路模塊進行匹配以正確顯示組號和倒計時、分數信號.因此,競猜計分器的輸入信號包括時鐘信號clk

46、,復位信號reset,開始搶答信號istart,加減分結束信號iup_dn_end,八個參賽者的撥碼開關ikey1、ikey2、ikey3、ikey4、ikey5、ikey6、ikey7、ikey8,查詢信號ifind,排序信號isort,加分信號iup,減分信號idown。4.5.1 搶答判別模塊搶答判別模塊具有第一搶答信號的判別和鎖存功能,消除按鍵輸入抖動的影響,輸出單脈沖,在進行鎖存的同時,對搶答狀態(tài)進行顯示。鎖存是實現將組號值進行鎖定的功能,當不需要鎖定時,鎖存器直接將輸入信號送到輸出信號,當需要鎖定時,鎖存器就保持當前狀態(tài)的輸出不變,實現鎖存功能。本設計采用軟件延時的方式消除按鍵抖動

47、,當按鍵按下并抬起后,輸入信號為高電平脈沖,經過大約三個時鐘跳變后抖動消除,輸出一個高電平脈沖作為輸出。搶答判別模塊如圖4.5所示。該模塊有輸入信號clk,復位信號reset,輸入狀態(tài)變量isig,輸出信號為上升沿輸出狀態(tài)變量osig_posedge。圖4.5 搶答判別模塊4.5.2 分頻模塊由于倒計時模塊需要1Hz的時鐘信號,而FPGA的時鐘信號為50MHz,所以需要分頻來得到1Hz的時鐘信號。分頻模塊如圖4.6所示:圖4.6 分頻模塊4.5.3 倒計時模塊倒計時模塊的主要作用是進行搶答倒計時。系統(tǒng)復位后,當倒計時開關信號為高電平時,倒計時LED1數碼管從9開始以秒為單位進行倒計時,如果倒計

48、時結束后有人進行搶答,倒計時模塊會輸出一個高電平使得LED1數碼管上顯示搶答成功的組號,如果倒計時尚未倒計結束,有選手進行搶答,倒計時模塊會輸出一個高電平使得蜂鳴器不停地吱吱響。倒計時模塊如圖4.7所示。該倒計時模塊的輸入信號有時鐘信號clk(1Hz)、復位信號reset、倒計時顯示使能信號idaojishi_display_en、開始信號istart,輸出信號有倒計時數據、正在倒計時的輸出狀態(tài)變量。圖4.7 倒計時模塊4.5.4 搶答按鍵模塊搶答按鍵模塊主要用于搶答者使用撥碼開關進行搶答輸入,搶答犯規(guī)蜂鳴器報警;搶答按鍵模塊如圖4.8所示。該模塊的輸入信號有時鐘信號clk,復位信號reset

49、,撥碼開關輸入信號key1、key2、key3、key4、key5、key6、key7、key8,開始信號start_edge,等待撥碼開關輸入信號igetkeys_wait,撥碼開關輸入清零信號igotkey_clr,搶答犯規(guī)輸入信號ierror_buzz,倒計時輸入信號irq_daojishi;輸出信號有搶答犯規(guī)、搶答犯規(guī)蜂鳴器吱吱響、撥碼開關輸入成功、撥碼開關輸入成功并顯示。4.5.5 搶答按鍵轉換模塊搶答按鍵轉換電路模塊主要是8進制數向10進制數據轉換,用于在LED數碼管上顯示組號;搶答按鍵轉換模塊如圖4.9所示。輸入信號有時鐘信號clk、復位信號reset、選手撥碼開關輸入信號igo

50、tkeys,輸出信號是搶答選手的組號oqiandaren.圖4.8 搶答按鍵模塊圖4.9 搶答按鍵轉換模塊4.5.6 計分模塊計分電路模塊主要用記錄參賽選手的分值、查詢或排序時從中提取數據提供給顯示模塊顯示和用于選手在比賽過程中加分與減分操作從而更新選手的分值;計分模塊如圖4.10所示。輸入信號有:時鐘信號clk、1Hz的時鐘信號clk1s、復位信號reset、加分使能信號iup_en、減分使能信號idown_en、查詢使能信號ifind_en、排序使能信號isort_en、排序顯示使能信號isort_display_en、撥碼開關輸入信號igotkeys、搶答成功選手的組號iqiandare

51、n;輸出信號有:搶答成功選手的分值oqiandanren_scoren、撥碼開關的結果oresult_key、分值結果oresult_score、排序撥碼開關的輸入結果oresult_key_sort、排序分值的結果oresult_score_sort。圖4.10 計分模塊4.5.7 選擇顯示模塊由于該系統(tǒng)需要顯示一位選手的組號、倒計時和選手的分值,選手分值的排序,要正確顯示這些數據,需要選擇顯示模塊與顯示模塊進行匹配。選擇顯示模塊如圖4.11所示。輸入信號有: 倒計時顯示使能信號idaojishi_display_en、查詢顯示使能信號ifind_display_en、搶答顯示使能信號iqi

52、andag_display_en、排序顯示使能信號isort_display_en、搶答者的組號iqiandaren、搶答選手所對應的分數iqiandaren_score、撥碼開關輸入信號iresult_key、分值的結果iresult_score、排序撥碼開關輸入結果iresult_key_sort、排序時分值的結果iresult_score_sort、倒計時的數值iumber_shengyu;輸出信號有:撥碼開關輸出信號okey、輸出分值oscore。圖4.11 選擇顯示模塊4.5.8 顯示模塊顯示電路模塊進行匹配以正確顯示組號和倒計時、分數.顯示模塊如圖4.12所示。輸入信號有:時鐘信號

53、clk、復位信號reset、撥碼開關輸入信號ikey、分值輸入信號iscore;輸出信號有:選手組別輸出信號oseg_date_key、分值十位上顯示輸出信號oseg_date_decade、分值個位上顯示輸出信號oseg_date_unit。顯示模塊的輸出信號oseg_date_key、oseg_date_decade、oseg_date_unit直接與LED顯示數碼管的管腳連接,直接轉換為對應數碼管LED的輸入電平值,將對應的數字顯示出來。圖4.12 顯示模塊大連東軟信息學院畢業(yè)設計(論文)第5章系統(tǒng)實現5.1 數據通道的代碼實現數據通道由以下七個電路模塊組成,分別為:搶答判別電路模塊、分

54、頻電路模塊、倒計時電路模塊、搶答按鍵電路模塊、搶答按鍵轉換電路模塊、計分電路模塊、選擇顯示電路模塊、顯示電路模塊。其中,搶答判別電路模塊主要完成對最快搶答者的判斷功能;分頻電路模塊是將FPGA開發(fā)板上的50MHz的時鐘基準頻率分頻得到1Hz的時鐘信號;倒計時電路模塊對搶答進行9秒的倒計時;搶答按鍵模塊主要用于搶答者使用撥碼開關進行搶答輸入;搶答按鍵轉換電路模塊是8進制數向10進制數據轉換以便于在LED數碼管上顯示組號;計分電路模塊主要用記錄參賽選手的分值、查詢或排序時從中提取數據提供給顯示模塊顯示和用于選手在比賽過程中加分與減分操作從而更新選手的分值;選擇顯示電路模塊主要是進行LED數碼管與組

55、號、分數、倒計時信號匹配;顯示電路模塊進行匹配以正確顯示組號和倒計時、分數信號;數據通道的主要代碼如下。daojishi m_daojishi(.reset(reset), .clk1s(wir_clk1s), .istart(ostart_edge), .idaojishi_display_en(idaojishi_display_en), .orq_daojishi(orq_daojishi), .number_shengyu(wir_number_shengyu);display_sel m_display_sel(.iqiangda_display_en(iqiangda_displa

56、y_en), .ifind_display_en(ifind_display_en), .isort_display_en(isort_display_en), .idaojishi_display_en(idaojishi_display_en), .iqiandaren(wir_qiandaren), .iqiandaren_score(wir_qiandaren_score), .iresult_key(wir_result_key), .iresult_score(wir_result_score), .iresult_key_sort(wir_result_key_sort), .i

57、result_score_sort(wir_result_score_sort), .inumber_shengyu(wir_number_shengyu), .okey(wir_key), .oscore(wir_score);qiangdaren m_qiangdaren(.reset(reset), .clk(clk), .igotkeys(wir_gotkeys), .oqiandaren(wir_qiandaren);display m_display(.clk(clk), .reset(reset), .ikey(wir_key), .iscore(wir_score), .ose

58、g_data_key(oseg_data_key), .oseg_data_decade(oseg_data_decade), .oseg_data_unit(oseg_data_unit);posedge_check m_posedge_check(.clk(clk), .reset(reset), .isig(istart), .osig_posedge(ostart_edge);qingda_key m_qingda_key ( .istart_edge(ostart_edge), .clk(clk), .reset(reset), .key1(ikey1), .key2(ikey2),

59、 .key3(ikey3), .key4(ikey4), .key5(ikey5), .key6(ikey6), .key7(ikey7), .key8(ikey8), .ierror_buzz(ierror_buzz), .irq_daojishi(orq_daojishi), .igetkeys_wait(igetkeys_wait), .igotkey_clr(igotkey_clr), .ogotkeys(wir_gotkeys), .oerror(oerror), .okey_success(okey_success), .oerror_buzz1k(oerror_buzz1k) )

60、;fenpin1s m_fenpin1s(.clk(clk),.reset(reset),.clk1s(wir_clk1s);score m_score(.clk(clk), .clk1s(wir_clk1s), .reset(reset), .igotkeys(wir_gotkeys), .iup_en(iup_en), .idown_en(idown_en), .ifind_en(ifind_en), .isort_en(isort_en), .isort_display_en(isort_display_en), .iqiandaren(wir_qiandaren), .oqiandar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論