版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、大連東軟信息學(xué)院本科畢業(yè)設(shè)計(jì)(論文)論論文題目:基于FPGA的競(jìng)猜計(jì)分器設(shè)計(jì)與實(shí)現(xiàn)系 所: 電子工程系 專 業(yè):電子信息工程(集成電路設(shè)計(jì)與系統(tǒng)方向) 學(xué)生姓名: 學(xué)生學(xué)號(hào): 指導(dǎo)教師: 導(dǎo)師職稱:講師 完成日期:2014年4月28日 大連東軟信息學(xué)院Dalian Neusoft University of Information大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文) 摘要 IV基于FPGA的競(jìng)猜計(jì)分器設(shè)計(jì)與實(shí)現(xiàn)摘 要電子產(chǎn)業(yè)在人們的生活中發(fā)揮著越來(lái)越重要的地位,電子技術(shù)得到了突飛猛進(jìn)的發(fā)展,各種電子產(chǎn)品的功能、質(zhì)量也日趨完善。其中,競(jìng)猜計(jì)分器被廣泛地用于競(jìng)賽活動(dòng)。其能夠公正、客觀的判斷出參賽選手操
2、作撥碼開(kāi)關(guān)的先后,并鎖存優(yōu)先搶答者的編號(hào)通過(guò)譯碼顯示電路在發(fā)光二極管(LED,light-emitting diode)數(shù)碼管上顯示,同時(shí)其他選手操作無(wú)效。并且在比賽中可以使用排序功能對(duì)選手的分值進(jìn)行排序,使選手了解本人所得的成績(jī)?cè)谒羞x手中所處的水平。在人們的娛樂(lè)活動(dòng)中,競(jìng)猜計(jì)分器也成為了必不可少的電子設(shè)備之一。本次畢業(yè)設(shè)計(jì)主要介紹了以現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA,F(xiàn)ield Programmable Gata Array)為基礎(chǔ)的數(shù)字競(jìng)猜器的設(shè)計(jì)與實(shí)現(xiàn),其設(shè)計(jì)是根據(jù)數(shù)字系統(tǒng)由上而下設(shè)計(jì)和實(shí)現(xiàn)的基本流程,包括整體流程圖的設(shè)計(jì)、數(shù)據(jù)通道和控制單元的設(shè)計(jì)、并用可綜合的Verilog HDL語(yǔ)言實(shí)現(xiàn)
3、、經(jīng)過(guò)Modelsim做功能仿真,用Quartus II進(jìn)行綜合布局布線,最終下到FPGA開(kāi)發(fā)板進(jìn)行驗(yàn)證,并在設(shè)計(jì)過(guò)程中對(duì)電路的性能進(jìn)行不斷地優(yōu)化。本次設(shè)計(jì)采用FPGA來(lái)增強(qiáng)時(shí)序的靈活性,由于FPGA的I/O端口資源豐富,可以在此基礎(chǔ)上可以改動(dòng)增加其他功能,因此后期可塑性很強(qiáng),因?yàn)楹诵氖荈PGA芯片,外圍電路相對(duì)簡(jiǎn)單,因此便于維護(hù)而且維護(hù)費(fèi)用相對(duì)較低。關(guān)鍵詞:FPGA,競(jìng)猜計(jì)分器,Verilog HDL大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文) 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大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文) 目錄目 錄 TOC o 1-3 u 摘 要 PAGEREF _Toc386020014 h IAbstract PAGEREF _Toc386020015 h II第1章緒 論 PAGEREF _Toc386020016 h 11.1 競(jìng)猜計(jì)分器研究的背景與意義 PAGEREF _Toc386020017 h 11.2 競(jìng)猜計(jì)分器的研究現(xiàn)狀 PAGEREF _Toc386020018 h 11.3 系統(tǒng)設(shè)計(jì)的要求 PAGEREF _
11、Toc386020019 h 1第2章關(guān)鍵技術(shù)介紹 PAGEREF _Toc386020020 h 22.1 “top-down”(自頂向下)設(shè)計(jì)方法 PAGEREF _Toc386020021 h 22.2 FPGA的簡(jiǎn)介 PAGEREF _Toc386020022 h 32.3 開(kāi)發(fā)軟件介紹 PAGEREF _Toc386020023 h 32.3.1 Quartus II簡(jiǎn)介 PAGEREF _Toc386020024 h 32.3.2 Modelsim簡(jiǎn)介52.4 硬件描述語(yǔ)言Verilog HDL PAGEREF _Toc386020026 h 5第3章系統(tǒng)需求分析 PAGEREF
12、_Toc386020027 h 63.1 系統(tǒng)設(shè)計(jì)目標(biāo) 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)開(kāi)發(fā)環(huán)境 PAGEREF _Toc386020032 h 103.6系統(tǒng)可行性分析 PAGEREF _Toc386020033 h 10第4章系統(tǒng)設(shè)計(jì) PAGEREF _Toc386020034 h 114.1 系統(tǒng)指導(dǎo)思想和原則 PAGEREF _Toc386020
13、035 h 114.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì) PAGEREF _Toc386020036 h 114.3 系統(tǒng)的狀態(tài)機(jī) PAGEREF _Toc386020037 h 124.4 系統(tǒng)詳細(xì)設(shè)計(jì) PAGEREF _Toc386020038 h 124.5 數(shù)據(jù)通道模塊設(shè)計(jì) PAGEREF _Toc386020039 h 144.5.1 搶答判別模塊 PAGEREF _Toc386020040 h 144.5.2 分頻模塊 PAGEREF _Toc386020041 h 144.5.3 倒計(jì)時(shí)模塊 PAGEREF _Toc386020042 h 154.5.4 搶答按鍵模塊 PAGEREF _Toc3
14、86020043 h 154.5.5 搶答按鍵轉(zhuǎn)換模塊 PAGEREF _Toc386020044 h 154.5.6 計(jì)分模塊 PAGEREF _Toc386020045 h 164.5.7 選擇顯示模塊 PAGEREF _Toc386020046 h 174.5.8 顯示模塊 PAGEREF _Toc386020047 h 17第5章系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc386020048 h 185.1 數(shù)據(jù)通道的代碼實(shí)現(xiàn) PAGEREF _Toc386020049 h 185.2 狀態(tài)機(jī)的代碼實(shí)現(xiàn) PAGEREF _Toc386020050 h 19第6章系統(tǒng)仿真 PAGEREF _Toc
15、386020051 h 236.1 搶答犯規(guī)仿真 PAGEREF _Toc386020052 h 236.2 正常倒計(jì)時(shí)仿真 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章結(jié)論 PAGEREF _Toc386020058 h 26參考文獻(xiàn) PAGEREF _Toc386020059 h 27致
16、謝 PAGEREF _Toc386020060 h 28大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)- 第1章緒 論1.1 競(jìng)猜計(jì)分器研究的背景與意義隨著信息技術(shù)及其產(chǎn)業(yè)的迅速發(fā)展,當(dāng)今社會(huì)進(jìn)入到了一個(gè)嶄新的信息化時(shí)代,電子技術(shù)正在進(jìn)行著高速的發(fā)展,這使電子產(chǎn)品的更新?lián)Q代越來(lái)越快,這使得電視上益智類的節(jié)目中舉辦的各種各樣的智力比賽都會(huì)用到競(jìng)猜計(jì)分器,它方便快捷,直觀地反映著首先取得發(fā)言權(quán)的選手的優(yōu)點(diǎn),因此受到比賽各方的青睞。電子技術(shù)在各個(gè)領(lǐng)域的運(yùn)用也越來(lái)越廣泛,滲透到人們?nèi)粘I畹姆椒矫婷?,掌握必要的電子技術(shù)知識(shí)已經(jīng)成為當(dāng)代大學(xué)生特別是理工類大學(xué)生必備的素質(zhì)之一。通過(guò)了解競(jìng)猜計(jì)分器的組成原理、測(cè)試方法,了
17、解多功能計(jì)分器各單元電路之間的關(guān)系和相互影響,同時(shí)通過(guò)本課題的設(shè)計(jì)與調(diào)試,鞏固和應(yīng)用在電子技術(shù)基礎(chǔ)等課程中所學(xué)到理論知識(shí),提高自己的動(dòng)手能力,為以后的工作打下堅(jiān)實(shí)地基礎(chǔ)。1.2 競(jìng)猜計(jì)分器的研究現(xiàn)狀競(jìng)猜計(jì)分器被廣泛地用于各種知識(shí)比賽的場(chǎng)合中,本設(shè)計(jì)是以FPGA為基礎(chǔ)設(shè)計(jì)的計(jì)分器,具有搶答后計(jì)分的控制,市場(chǎng)上現(xiàn)行的主要有兩種:一種是用小規(guī)模數(shù)字邏輯芯片譯碼器和觸發(fā)器來(lái)實(shí)現(xiàn),另一種是用單片機(jī)來(lái)實(shí)現(xiàn);前者的電路比較復(fù)雜,后者來(lái)做計(jì)分器組數(shù)的增加有時(shí)存在著I/O接口不足的情況。隨著電子技術(shù)的不斷發(fā)展,電子設(shè)計(jì)自動(dòng)化(EDA,Electronic Design Automation)技術(shù)應(yīng)運(yùn)而生,它的出
18、現(xiàn)使得電子系統(tǒng)的設(shè)計(jì)更加便捷,很大程度上減輕了設(shè)計(jì)者的工作強(qiáng)度,提高了電子系統(tǒng)的設(shè)計(jì)效率。1.3 系統(tǒng)設(shè)計(jì)的要求由于FPGA具有內(nèi)部硬件功能可通過(guò)編程改變并且處理速度較高等特點(diǎn),F(xiàn)PGA在電路設(shè)計(jì)中得到了廣泛的應(yīng)用。本課題要求用Altera FPGA設(shè)計(jì)與實(shí)現(xiàn)的競(jìng)猜計(jì)分器。要求具有如下功能:(1)一個(gè)總按鈕,由主持人控制,用于命令搶答開(kāi)始或搶答結(jié)束后復(fù)位。(2)設(shè)置一個(gè)倒計(jì)時(shí)裝置,當(dāng)主持人第一次按總按鈕是,倒計(jì)時(shí)裝置開(kāi)始進(jìn)行倒計(jì)時(shí)。(3)當(dāng)?shù)褂?jì)時(shí)未倒計(jì)為0前,進(jìn)行搶答視為犯規(guī)處理,否則去抖后鑒別搶答先后順序,顯示搶答成功選手的編號(hào)。(4)判斷搶答結(jié)果是否正確,正確計(jì)分,錯(cuò)誤扣分。(5)可查詢各
19、個(gè)選手歷史分值。(6)在比賽結(jié)束后,進(jìn)行按分值排名并顯示。 大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第2章關(guān)鍵技術(shù)介紹2.1 “top-down”(自頂向下)設(shè)計(jì)方法數(shù)字系統(tǒng)的設(shè)計(jì)方法通常分為“top-down”(自頂向下)設(shè)計(jì)和“Bottom-up”(自底向上)設(shè)計(jì)兩大類。自底向上的設(shè)計(jì)方法,在設(shè)計(jì)系統(tǒng)硬件時(shí),從系統(tǒng)的最底層開(kāi)始,首先用真值表、卡諾圖、狀態(tài)轉(zhuǎn)換表或狀態(tài)轉(zhuǎn)換圖來(lái)描述數(shù)字系統(tǒng)的邏輯功能,然后選擇具體的邏輯功能部件,用這些邏輯功能部件組成功能模塊,最后把功能模塊連接起來(lái)完成系統(tǒng)硬件設(shè)計(jì)。采用這種設(shè)計(jì)方法進(jìn)行底層設(shè)計(jì)時(shí),由于缺乏對(duì)整個(gè)數(shù)字系統(tǒng)總體性能的把握,在整個(gè)系統(tǒng)設(shè)計(jì)完成后,如果發(fā)現(xiàn)部分
20、性能需要改進(jìn),修改起來(lái)比較困難,因而設(shè)計(jì)周期長(zhǎng)。自頂向下的設(shè)計(jì)方法,概括地講就是從整體到局部、最后到細(xì)節(jié)的設(shè)計(jì)方法,即設(shè)計(jì)者先從數(shù)字系統(tǒng)的整體功能要求出發(fā),進(jìn)行最頂層的系統(tǒng)設(shè)計(jì),然后將整個(gè)系統(tǒng)分成若干子系統(tǒng),再將每個(gè)子系統(tǒng)分為若干功能模塊,功能模塊還可繼續(xù)向下劃分成子功能模塊,直至分成許多可以由最基本的邏輯功能部件實(shí)現(xiàn)小功能模塊。這就像建造一座大樓,先要進(jìn)行整體設(shè)計(jì),再繪制詳細(xì)的結(jié)構(gòu)圖,最后用建筑材料建造起來(lái)。在某種意義上講,“Bottom-up”(自底向上)設(shè)計(jì)過(guò)程可以看作是“top-down”(自頂向下)設(shè)計(jì)的逆過(guò)程?,F(xiàn)代電子系統(tǒng)的設(shè)計(jì)采用“top-down”(自頂向下)設(shè)計(jì)方法,設(shè)計(jì)步驟
21、如圖2.1所示。圖2.1 “top-down”(自頂向下)的設(shè)計(jì)步驟本次畢業(yè)設(shè)計(jì)對(duì)競(jìng)猜計(jì)分器的設(shè)計(jì),就是采用自頂向下(top-down) 的設(shè)計(jì)方法。根據(jù)自上而下的設(shè)計(jì)思想,對(duì)系統(tǒng)進(jìn)行功能模塊劃分并優(yōu)化。各個(gè)功能模塊之間相互獨(dú)立并且可以相互引用,最后將各模塊集成到一個(gè)頂層模塊中,形成一個(gè)完整的系統(tǒng)。2.2 FPGA的簡(jiǎn)介FPGA是Field Programmable Gate Array的縮寫(xiě),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、GAL、復(fù)雜可編程邏輯器件(CPLD,Complex Programmable Logic Device)等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(A
22、SIC,Application Specific Integrated Circuit)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)??梢院敛豢鋸埖闹v,F(xiàn)PGA能完成任何數(shù)字器件的功能,上至高性能中央處理機(jī)(CPU,Central Processing Unit),下至簡(jiǎn)單的74電路,都可以用FPGA來(lái)實(shí)現(xiàn)。FPGA如同一張白紙或是一堆積木,工程師可以通過(guò)傳統(tǒng)的原理圖輸入法,或是硬件描述語(yǔ)言自由的設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過(guò)軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。在印刷電路板(PCB,Printed circuit board)完成以后,還可以利用
23、FPGA的在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用FPGA來(lái)開(kāi)發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)器件是八十年代中期出現(xiàn)的新產(chǎn)品,它的應(yīng)用大大地方便了IC的設(shè)計(jì),因而隨著數(shù)字技術(shù)日益廣泛的應(yīng)用,以FPGA為代表的ASIC器件得到了迅速的普及和發(fā)展,器件集成度和速度都在高速增長(zhǎng)。FPGA的開(kāi)發(fā)流程是利用EDA開(kāi)發(fā)軟件和編程工具對(duì)FPGA芯片進(jìn)行開(kāi)發(fā)的過(guò)程。通常,F(xiàn)PGA的設(shè)計(jì)方法有兩種,包括自下而上設(shè)計(jì)和自上向下設(shè)計(jì)。對(duì)于較大規(guī)模的設(shè)計(jì)一般采用自上而下設(shè)計(jì),這種方法是先定義頂層模塊,接著定義頂層模塊所需要的子模塊,直至最底層的
24、模塊。而自下而上設(shè)計(jì)是先分別設(shè)計(jì)底層模塊,接著組成大的模塊,最后完成頂層模塊的設(shè)計(jì)。圖2.2FPGA的開(kāi)發(fā)流程一般包括設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、功能仿真、優(yōu)化處理、時(shí)序仿真、器件編程和下載驗(yàn)證等步驟。2.3 開(kāi)發(fā)軟件介紹2.3.1 Quartus II簡(jiǎn)介隨著EDA技術(shù)的發(fā)展,使用硬件描述語(yǔ)言來(lái)設(shè)計(jì)PLD/FPGA已經(jīng)成為一種趨勢(shì)。利用硬件描述語(yǔ)言,設(shè)計(jì)者可以將非常復(fù)雜的數(shù)字系統(tǒng)分為不同層次的模塊進(jìn)行設(shè)計(jì),利用EDA工具,逐層進(jìn)行仿真驗(yàn)證,再把其中需要變?yōu)閷?shí)際電路的模塊組合,經(jīng)過(guò)自動(dòng)綜合工具轉(zhuǎn)換到門(mén)級(jí)電路網(wǎng)表。最后利用FPGA自動(dòng)布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實(shí)現(xiàn)的具體電路布線結(jié)構(gòu)。Quartus I
25、I 軟件是數(shù)字系統(tǒng)設(shè)計(jì)的仿真工具,他擁有FPGA和CPLD設(shè)計(jì)的所有階段的解決方案,我們可以使用Quartus II 軟件完成數(shù)字邏輯設(shè)計(jì)仿真的所有階段。Quartus II的設(shè)計(jì)流程圖如2.3所示。圖2.2 FPGA開(kāi)發(fā)流程圖2.3 Quartus II的設(shè)計(jì)流程圖2.3.2 Modelsim簡(jiǎn)介ModelSim完全支持VHDL和Verilog標(biāo)準(zhǔn);采用直接編輯技術(shù),大大提高HDL編譯和仿真速度。還可以利用ModelSim調(diào)用設(shè)計(jì)文件進(jìn)行仿真分析。在調(diào)試環(huán)境中,設(shè)計(jì)者可以通過(guò)ModelSim的快速調(diào)試步驟以及對(duì)各種信號(hào)的監(jiān)控功能(無(wú)論信號(hào)處于VHDL層,還是處于混合語(yǔ)言層)使仿真的執(zhí)行過(guò)程形
26、象直觀化,幫助設(shè)計(jì)者及時(shí)發(fā)現(xiàn)漏洞,縮短設(shè)計(jì)周期。ModelSim最大的特點(diǎn)是其強(qiáng)大的調(diào)試功能:先進(jìn)的數(shù)據(jù)流窗口,可以迅速追蹤到生產(chǎn)不定或者錯(cuò)誤狀態(tài)的原因;性能分析工具幫助分析性能瓶頸,加速仿真;代碼覆蓋率檢查確保測(cè)試的完備;多種模式的波形比較功能;先進(jìn)的 SignalSpy功能,可以方便地訪問(wèn)VHDL或者VHDL和Verilog混合設(shè)計(jì)中的底層信號(hào);支持加密IP;可以實(shí)現(xiàn)與Matlab的Simulink的聯(lián)合仿真。2.4 硬件描述語(yǔ)言Verilog HDLVerilog HDL是一種硬件描述語(yǔ)言,是一種以文本形式來(lái)描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語(yǔ)言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表
27、示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。用于從算法級(jí)、門(mén)級(jí)到開(kāi)關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門(mén)和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。Verilog HDL 語(yǔ)言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語(yǔ)言。此外,Verilog HDL語(yǔ)言提供了編程語(yǔ)言接口,通過(guò)該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問(wèn)設(shè)計(jì),包括模擬的具體控制和運(yùn)行。Verilog HDL語(yǔ)言不僅定義了語(yǔ)法,而且對(duì)每個(gè)語(yǔ)法結(jié)構(gòu)都定義了清晰的
28、模擬、仿真語(yǔ)義。因此,用這種語(yǔ)言編寫(xiě)的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。語(yǔ)言從C編程語(yǔ)言中繼承了多種操作符和結(jié)構(gòu)。Verilog HDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難理解。但是,Verilog HDL語(yǔ)言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來(lái)說(shuō)已經(jīng)足夠。當(dāng)然,完整的硬件描述語(yǔ)言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。第3章系統(tǒng)需求分析3.1 系統(tǒng)設(shè)計(jì)目標(biāo)根據(jù)論文采用自頂向下的設(shè)計(jì)思想和數(shù)字系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的基本流程,從頂層進(jìn)行功能劃分和結(jié)構(gòu)設(shè)計(jì)。然后獨(dú)立的設(shè)計(jì)和優(yōu)化每個(gè)模塊,并且在頂層設(shè)計(jì)中集成所有已優(yōu)化的模塊,最后驗(yàn)證總體設(shè)計(jì)。以高級(jí)數(shù)字系統(tǒng)設(shè)計(jì)的方法為指
29、導(dǎo)思想,在系統(tǒng)設(shè)計(jì)過(guò)程中,首先對(duì)競(jìng)猜計(jì)分器的功能進(jìn)行了解,然后再畫(huà)出整體流程圖,提取出數(shù)據(jù)通道和狀態(tài)機(jī)。在數(shù)據(jù)通道的實(shí)現(xiàn)過(guò)程中,向下劃分出若干單元模塊,并且不斷優(yōu)化其性能。狀態(tài)機(jī)部分由有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn),合理安排各個(gè)狀態(tài)的轉(zhuǎn)移。狀態(tài)機(jī)發(fā)送數(shù)據(jù)通道所需的控制信號(hào),接收來(lái)自數(shù)據(jù)通道的狀態(tài)信號(hào),監(jiān)控整個(gè)測(cè)試過(guò)程的運(yùn)行;數(shù)據(jù)通道處理來(lái)自狀態(tài)機(jī)的控制信號(hào),并處理的結(jié)果反饋給狀態(tài)機(jī)。數(shù)據(jù)通道和狀態(tài)機(jī)協(xié)調(diào)工作,外圍電路進(jìn)行其他相關(guān)的控制和顯示,整個(gè)系統(tǒng)便可得到穩(wěn)定的波形值輸出。本設(shè)計(jì)主要實(shí)現(xiàn)判斷第一競(jìng)猜者、搶答倒計(jì)時(shí)、搶答犯規(guī)處理、答對(duì)計(jì)分、答錯(cuò)扣分、查詢分?jǐn)?shù)、分?jǐn)?shù)排序、顯示結(jié)果等功能,按要求需要實(shí)現(xiàn)的功能要
30、求,系統(tǒng)整體框架如圖3.1所示。圖3.1 系統(tǒng)整體框圖3.2 系統(tǒng)功能概述本設(shè)計(jì)是以Quartus 為開(kāi)發(fā)環(huán)境,學(xué)習(xí)常用的數(shù)字系統(tǒng)設(shè)計(jì)方法,采用Verilog HDL語(yǔ)言完成了競(jìng)猜計(jì)分器電路的前端設(shè)計(jì),全部在一片F(xiàn)PGA開(kāi)發(fā)板上實(shí)現(xiàn),整個(gè)系統(tǒng)非常精簡(jiǎn),而且具有靈活的現(xiàn)場(chǎng)可更改性。在不更改硬件電路的基礎(chǔ)上,對(duì)系統(tǒng)進(jìn)行各種改進(jìn)還可以進(jìn)一步提高系統(tǒng)的性能。該計(jì)分器具有精確、可靠、抗干擾性強(qiáng)和現(xiàn)場(chǎng)可編程等優(yōu)點(diǎn)。其主要部分是數(shù)據(jù)通道和狀態(tài)機(jī)的設(shè)計(jì),目標(biāo)是為了正確地顯示參加競(jìng)賽的選手的名次和分值。該電路共有14個(gè)輸入按鍵,3個(gè)LED數(shù)碼管顯示,LED1數(shù)碼管顯示倒計(jì)時(shí)和搶答成功的選手組號(hào),LED2和LED
31、3數(shù)碼管顯示查詢和排序時(shí)的分?jǐn)?shù)值。圖3.2為系統(tǒng)的功能框圖。 圖3.2 系統(tǒng)功能框圖3.3 系統(tǒng)功能需求本次設(shè)計(jì)要求設(shè)計(jì)一個(gè)可以容納8組參賽者的競(jìng)猜計(jì)分器:本競(jìng)猜計(jì)分器有14個(gè)輸入端,其中8個(gè)輸入端為八組選手的搶答撥碼開(kāi)關(guān),分別為key1、key2、key3、key4、key5、key6、key7、key8,其余6個(gè)撥碼開(kāi)關(guān)分別為主持人開(kāi)始撥碼開(kāi)關(guān)start、查詢撥碼開(kāi)關(guān)find、排序撥碼開(kāi)關(guān)sort、加分撥碼開(kāi)關(guān)up、減分撥碼開(kāi)關(guān)down、結(jié)束撥碼開(kāi)關(guān)end,有三個(gè)LED數(shù)碼管進(jìn)行顯示,其中LED1數(shù)碼管上顯示搶答者的組別1-8和倒計(jì)時(shí)從9-0,LED2數(shù)碼管和LED3數(shù)碼管上顯示搶答者的分
32、數(shù),最高為99分,最低為0分和排序結(jié)果顯示,分?jǐn)?shù)1s更新一次。如果不進(jìn)行查詢、排序操作,由主持人宣布搶答開(kāi)始,撥動(dòng)開(kāi)始搶答的撥碼開(kāi)關(guān)start,倒計(jì)時(shí)結(jié)束后各組開(kāi)始搶答,其中任意一組搶答題目時(shí),則電路進(jìn)行自動(dòng)鎖存,其他各組再撥動(dòng)搶答撥碼開(kāi)關(guān)被視為無(wú)效,搶到題目時(shí)LED1數(shù)碼管上顯示該組的組號(hào)。作答結(jié)束后主持人依據(jù)回答結(jié)果是否正確由主持人選擇加分或減分操作,每組的初始分?jǐn)?shù)為50分,答對(duì)一道題加5分,答錯(cuò)一道題減5分,不搶答則分?jǐn)?shù)不加不減。競(jìng)猜計(jì)分器的具體功能如下:(1)設(shè)置一個(gè)查詢撥碼開(kāi)關(guān)find,此開(kāi)關(guān)由主持人操控,如果想要查詢分?jǐn)?shù)時(shí),撥動(dòng)此開(kāi)關(guān),再撥動(dòng)欲查詢分值的小組所對(duì)應(yīng)的撥碼開(kāi)關(guān),在LE
33、D1數(shù)碼管上將會(huì)顯示該小組的組號(hào),LED2數(shù)碼管和LED3數(shù)碼管上顯示該小組的分值。(2)設(shè)置一個(gè)排序撥碼開(kāi)關(guān)sort,此開(kāi)關(guān)由主持人操控,如果想要排序時(shí),撥動(dòng)此開(kāi)關(guān),選手的分值將按從高到底地在LED2數(shù)碼管和LED3數(shù)碼管上顯示。(3)設(shè)置搶答開(kāi)始撥碼開(kāi)關(guān)start,此按鍵由主持人操控,在主持人宣布搶答開(kāi)始后,撥動(dòng)此開(kāi)關(guān),系統(tǒng)將自動(dòng)進(jìn)入倒計(jì)時(shí)程序。(4)計(jì)分器具有倒計(jì)時(shí)的功能,限時(shí)為9秒。當(dāng)主持人撥動(dòng)撥碼開(kāi)關(guān)start后,LED1數(shù)碼管顯示9,依次遞減,當(dāng)未倒計(jì)為0之前,搶答則視為犯規(guī),蜂鳴器吱吱地響,系統(tǒng)返回到初始狀態(tài)重新進(jìn)行一輪搶答,倒計(jì)時(shí)倒計(jì)為0之后,搶答成功的選手可以進(jìn)行搶答,并在L
34、ED1數(shù)碼管上顯示相應(yīng)的組號(hào)。(5)計(jì)分器具有鎖存和顯示功能,也就是說(shuō)當(dāng)選手按下?lián)尨鸢存I搶答成功后,鎖存相應(yīng)的組號(hào),并在相應(yīng)的LED1數(shù)碼管顯示。當(dāng)主持人對(duì)分?jǐn)?shù)進(jìn)行加減分操作完畢后,在LED2數(shù)碼管和LED3數(shù)碼管上顯示搶答者的分?jǐn)?shù)。當(dāng)進(jìn)行查詢和排序操作時(shí),在LED2和LED3數(shù)碼管上顯示相應(yīng)的分?jǐn)?shù)。(6)主持人在選手搶答之后,作答完成后,進(jìn)入加減分?jǐn)?shù)環(huán)節(jié),此時(shí)主持人可用up開(kāi)關(guān)在回答正確之后,進(jìn)行加分操作,可以用down開(kāi)關(guān)用來(lái)在回答錯(cuò)誤之后進(jìn)行減分操作,之后按下結(jié)束鍵end來(lái)完成此環(huán)節(jié)。答完所有題目后,最高分者勝利,搶答期間零分的選手出局,完成加減分環(huán)節(jié)之后,主持人可以進(jìn)入下一環(huán)節(jié)。3.4
35、 系統(tǒng)流程圖在對(duì)整個(gè)系統(tǒng)有一定的了解和認(rèn)識(shí)之后,根據(jù)高級(jí)數(shù)字系統(tǒng)設(shè)計(jì)方法和要設(shè)計(jì)的競(jìng)猜計(jì)分器的特點(diǎn)做出了系統(tǒng)流程圖如圖3.3所示。首先進(jìn)入空閑狀態(tài),接著進(jìn)入初始化處理狀態(tài),對(duì)整個(gè)系統(tǒng)進(jìn)行初始化處理。初始化的處理將會(huì)使整個(gè)系統(tǒng)進(jìn)入默認(rèn)的工作狀態(tài),如果初始化完成后復(fù)位使能信號(hào)有效,那么系統(tǒng)將再次進(jìn)入初始化處理狀態(tài);然后判斷分?jǐn)?shù)查詢使能信號(hào)是否有效,有效的話撥動(dòng)查詢撥碼開(kāi)關(guān)系統(tǒng)進(jìn)入期待選手撥碼開(kāi)關(guān)撥動(dòng)輸入狀態(tài),如果操作使某選手對(duì)應(yīng)的撥碼開(kāi)關(guān)撥動(dòng)后,則在LED2和LED3數(shù)碼管上顯示該組選手的分?jǐn)?shù)值。此時(shí),如果分?jǐn)?shù)查詢使能信號(hào)依然有效,撥動(dòng)其他選手對(duì)應(yīng)的撥碼開(kāi)關(guān)則可繼續(xù)查詢其他組選手的分值,如果分?jǐn)?shù)查
36、詢使能信號(hào)無(wú)效,那么系統(tǒng)將再次進(jìn)入初始化處理狀態(tài);其次當(dāng)分?jǐn)?shù)查詢使能信號(hào)無(wú)效時(shí),分?jǐn)?shù)排序使能信號(hào)有效,進(jìn)入排序顯示分?jǐn)?shù)名次狀態(tài)。如果操作排序功能的撥碼開(kāi)關(guān)后,在LED2和LED3數(shù)碼管上由高到低地顯示選手的分?jǐn)?shù),分?jǐn)?shù)值1秒更新一次,此時(shí),如果分?jǐn)?shù)排序使能信號(hào)依然有效,數(shù)碼管上不停地、重復(fù)地更新分?jǐn)?shù),否則,當(dāng)分?jǐn)?shù)排序使能信號(hào)無(wú)效,系統(tǒng)將直接進(jìn)入初始化處理狀態(tài);最后如果分?jǐn)?shù)查詢使能信號(hào)無(wú)效、分?jǐn)?shù)排序使能信號(hào)無(wú)效,開(kāi)始的撥碼開(kāi)關(guān)使能信號(hào)有效,系統(tǒng)將進(jìn)入倒計(jì)時(shí)狀態(tài),系統(tǒng)將在LED1數(shù)碼管上顯示倒計(jì)時(shí),從 9到0依次遞減逐次顯示,當(dāng)?shù)褂?jì)時(shí)未倒計(jì)為0時(shí),有選手撥動(dòng)撥碼開(kāi)關(guān)進(jìn)行搶答時(shí),此時(shí)系統(tǒng)進(jìn)入錯(cuò)誤狀態(tài),
37、具體實(shí)現(xiàn)為蜂鳴器不停地吱吱響,系統(tǒng)將直接進(jìn)入初始化處理狀態(tài);當(dāng)?shù)褂?jì)時(shí)倒計(jì)為0時(shí),第一選手撥動(dòng)撥碼開(kāi)關(guān)進(jìn)行搶答,此時(shí)搶答成功,具體實(shí)現(xiàn)為在LED1數(shù)碼管上顯示該組選手的組號(hào),繼而該選手進(jìn)行回答,之后主持人根據(jù)選手回答結(jié)果的正確與否進(jìn)行加分或減分操作,加減分操作完成后主持人撥動(dòng)結(jié)束的撥碼開(kāi)關(guān),系統(tǒng)將直接進(jìn)入初始化處理狀態(tài);圖3.3 系統(tǒng)流程圖3.5 系統(tǒng)開(kāi)發(fā)環(huán)境 硬件配置:300GB硬盤(pán);3GB內(nèi)存;2.67GHz英特爾CPU。操作系統(tǒng):Windows7旗艦版。編程語(yǔ)言:Verilog HDL(硬件描述語(yǔ)言)。軟件環(huán)境:Quartus II、ModelSim10.1。3.6系統(tǒng)可行性分析根據(jù)論文采
38、用的自頂向下的設(shè)計(jì)思想,從系統(tǒng)級(jí)設(shè)計(jì)入手。從頂層進(jìn)行功能劃分和結(jié)構(gòu)設(shè)計(jì)。對(duì)整個(gè)系統(tǒng)有一定的認(rèn)識(shí)后,開(kāi)始著手整體流程圖的設(shè)計(jì)。然后,通過(guò)流程圖提煉出相應(yīng)的數(shù)據(jù)通道和狀態(tài)機(jī)。數(shù)據(jù)通道的各個(gè)模塊包括:顯示模塊、倒計(jì)時(shí)模塊、搶答按鍵模塊、搶答按鍵轉(zhuǎn)換模塊、選擇顯示模塊、計(jì)分模塊、分頻模塊、搶答鑒別模塊。狀態(tài)機(jī)部分由有限狀態(tài)來(lái)實(shí)現(xiàn),合理涉及各個(gè)狀態(tài)轉(zhuǎn)移。狀態(tài)機(jī)發(fā)送數(shù)據(jù)通道所需的控制信號(hào),接收來(lái)自數(shù)據(jù)通道的狀態(tài)信號(hào),監(jiān)控整個(gè)測(cè)試過(guò)程的運(yùn)行;數(shù)據(jù)通道處理來(lái)自狀態(tài)機(jī)的控制信號(hào),并把處理的結(jié)果反饋給狀態(tài)機(jī)。此外,外圍電路即顯示控制電路和撥碼開(kāi)關(guān)控制電路可以使顯示很方便。使用Altera公司開(kāi)發(fā)的Quartus軟
39、件,對(duì)每個(gè)模塊進(jìn)行開(kāi)發(fā)。通過(guò)常用仿真軟件ModelSim對(duì)設(shè)計(jì)的所有模塊進(jìn)行仿真測(cè)試,確保整個(gè)開(kāi)發(fā)流程順利進(jìn)行。最后在FPGA開(kāi)發(fā)板上進(jìn)行功能測(cè)試,并且不斷地進(jìn)行優(yōu)化。第4章系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)指導(dǎo)思想和原則本課題是一個(gè)基于FPGA的競(jìng)猜計(jì)分器設(shè)計(jì)與實(shí)現(xiàn),系統(tǒng)根據(jù)數(shù)字系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的基本流程進(jìn)行設(shè)計(jì),包括整體流程圖的設(shè)計(jì)、數(shù)據(jù)通道和狀態(tài)機(jī)的設(shè)計(jì),并可用可綜合的Verilog語(yǔ)言實(shí)現(xiàn),最后經(jīng)過(guò)Modelsim10.1軟件做各個(gè)模塊和整體系統(tǒng)的功能仿真,并在設(shè)計(jì)實(shí)現(xiàn)過(guò)程中不斷對(duì)電路性能進(jìn)行優(yōu)化。在開(kāi)發(fā)平臺(tái)Quartus II12.0上完成,可以在50MHz的時(shí)鐘頻率下正常工作,能準(zhǔn)確通過(guò)按鍵完成查
40、詢、排序、開(kāi)始、倒計(jì)時(shí)和結(jié)束功能,倒計(jì)時(shí)周期為9秒鐘,最終的結(jié)果通過(guò)LED數(shù)碼管用動(dòng)態(tài)掃描的方式顯示。使用Moldesim10.1仿真軟件對(duì)大部分Verilog HDL程序進(jìn)行了仿真,并完成了綜合布局布線,最終下載到開(kāi)發(fā)板上取得良好的結(jié)果。競(jìng)猜計(jì)分器的首要目標(biāo)是滿足文化娛樂(lè)活動(dòng)、競(jìng)技比賽時(shí)選手先后順序、比分顯示的要求,同時(shí)也要確保在比賽進(jìn)行的過(guò)程中不會(huì)出現(xiàn)計(jì)分錯(cuò)誤、顯示有誤等問(wèn)題從而影響比賽的正常進(jìn)程,系統(tǒng)要穩(wěn)定,同時(shí)具備的查詢、排序功能要能正常應(yīng)用規(guī)范比賽賽程。在滿足以上基本點(diǎn)后,可以拓展功能或者使項(xiàng)目設(shè)計(jì)實(shí)物更美觀、實(shí)用。4.2 系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)該競(jìng)猜計(jì)分器的設(shè)計(jì)中主要包括三大功能模塊:1
41、、查詢功能模塊 2、排序功能模塊 3、倒計(jì)時(shí)、搶答功能模塊,如圖4.1所示。圖4.1 系統(tǒng)主要功能模塊其中的查詢模塊主要用于查詢各個(gè)選手在比賽中的歷史分值,而排序功能模塊主要用于比賽中將選手的分?jǐn)?shù)按從高到低依次顯示,搶答倒計(jì)時(shí)功能模塊主要用于在比賽過(guò)程中倒計(jì)時(shí)結(jié)束后鑒別第一搶答者。本設(shè)計(jì)是基于FPGA,是用Verilog HDL語(yǔ)言編寫(xiě),通過(guò)modelsim 10.1與Quartus II12.0進(jìn)行邏輯綜合與仿真,最后由LED數(shù)碼管顯示比賽得分與比賽名次。需要將各個(gè)模塊連接起來(lái)才能實(shí)現(xiàn)競(jìng)猜計(jì)分器整個(gè)的功能,要先建立頂層模塊,在頂層中對(duì)各模塊進(jìn)行引用,并且將各模塊之間的對(duì)應(yīng)的時(shí)鐘線,數(shù)據(jù)線以及
42、控制線連接好。整個(gè)設(shè)計(jì)之中,輸入為計(jì)分器時(shí)鐘、查詢、排序、加分、減分撥碼開(kāi)關(guān)和選手輸入撥碼開(kāi)關(guān),輸出為數(shù)碼管的查詢信號(hào)和排序信號(hào)以及顯示的使能。4.3 系統(tǒng)的狀態(tài)機(jī)狀態(tài)機(jī)是控制競(jìng)猜計(jì)分器的開(kāi)始、結(jié)束以及復(fù)位,并產(chǎn)生查詢、排序的使能信號(hào)。狀態(tài)機(jī)是系統(tǒng)的核心,可根據(jù)當(dāng)前狀態(tài)以及撥碼開(kāi)關(guān)的輸入情況控制計(jì)分器不同狀態(tài)的切換,是本次設(shè)計(jì)中最為復(fù)雜的部分。根據(jù)競(jìng)猜計(jì)分器的模塊劃分與數(shù)據(jù)通道,通過(guò)運(yùn)用Visio繪圖軟件做出的系統(tǒng)模塊狀態(tài)機(jī),如圖4.2所示。圖4.2 系統(tǒng)狀態(tài)機(jī)系統(tǒng)首先重置,然后進(jìn)行接下來(lái)的操作,查詢、排序、搶答倒計(jì)時(shí)。當(dāng)要進(jìn)行查詢操作時(shí),在獲得查詢時(shí)鐘信號(hào)提示后,撥動(dòng)選手的撥碼開(kāi)關(guān),LED數(shù)
43、碼管上則顯示該組選手的組別號(hào)和分值;當(dāng)要進(jìn)行排序時(shí),在獲得排序的時(shí)鐘信號(hào)提示后,LED數(shù)碼管上從高到低依次顯示選手的分值。當(dāng)不進(jìn)行查詢、排序操作時(shí),在獲得開(kāi)始的時(shí)鐘信號(hào)后,系統(tǒng)進(jìn)入倒計(jì)時(shí),倒計(jì)時(shí)結(jié)束后選手搶答,回答結(jié)束后主持人進(jìn)行加減分操作,之后撥動(dòng)結(jié)束撥動(dòng)開(kāi)關(guān)回到初始狀態(tài)。4.4 系統(tǒng)詳細(xì)設(shè)計(jì)競(jìng)猜計(jì)分器劃分為2個(gè)子模塊,分別為數(shù)據(jù)通道和狀態(tài)機(jī)。狀態(tài)機(jī)主要判斷外界或數(shù)據(jù)通道輸入的信號(hào),進(jìn)入狀態(tài)轉(zhuǎn)移,在相應(yīng)狀態(tài)輸出加分、減分、搶答、搶答顯示、查詢、查詢顯示、排序、排序顯示等使能控制信號(hào),等待撥碼開(kāi)關(guān)輸入和搶答犯規(guī)時(shí)輸出錯(cuò)誤,蜂鳴器吱吱響的信號(hào)。狀態(tài)機(jī)模塊圖如圖4.3所示。為了方便描述狀態(tài)切換,設(shè)
44、計(jì)中定義了9個(gè)狀態(tài)變量:idle, find,find_display,sort,sort_display,daojishi,daojishi_foul,wait_key,wait_up_dn,三個(gè)輸出使能信號(hào)daojishi_display,down_en,error_buzz,和輸入狀態(tài)變量control_sig。圖4.3 狀態(tài)機(jī)模塊圖數(shù)據(jù)通道主要是根據(jù)選手、開(kāi)始、查詢和排序撥動(dòng)開(kāi)關(guān)功能的不同,輸出不同的分值。數(shù)據(jù)通道模塊如圖4.4。圖4.4 數(shù)據(jù)通道模塊圖4.5 數(shù)據(jù)通道模塊設(shè)計(jì)該系統(tǒng)主要由七個(gè)電路模塊組成,分別為:搶答判別模塊、分頻模塊、倒計(jì)時(shí)模塊、搶答按鍵模塊、搶答按鍵轉(zhuǎn)換模塊、計(jì)分
45、模塊、選擇顯示模塊、顯示模塊。其中,搶答判別電路模塊主要完成對(duì)最快搶答者的判斷功能;分頻電路模塊是為了得到1Hz的時(shí)鐘信號(hào);倒計(jì)時(shí)電路模塊對(duì)搶答進(jìn)行9秒的倒計(jì)時(shí);搶答按鍵模塊主要用于搶答者使用撥碼開(kāi)關(guān)進(jìn)行搶答輸入;搶答按鍵轉(zhuǎn)換電路模塊主要是8進(jìn)制數(shù)向10進(jìn)制數(shù)據(jù)轉(zhuǎn)換,用于在LED數(shù)碼管上顯示組號(hào);計(jì)分電路模塊主要用記錄參賽選手的分值、查詢或排序時(shí)從中提取數(shù)據(jù)提供給顯示模塊顯示和用于選手在比賽過(guò)程中加分與減分操作從而更新選手的分值;選擇顯示電路模塊主要是進(jìn)行LED數(shù)碼管與組號(hào)、分?jǐn)?shù)、倒計(jì)時(shí)信號(hào)匹配;顯示電路模塊進(jìn)行匹配以正確顯示組號(hào)和倒計(jì)時(shí)、分?jǐn)?shù)信號(hào).因此,競(jìng)猜計(jì)分器的輸入信號(hào)包括時(shí)鐘信號(hào)clk
46、,復(fù)位信號(hào)reset,開(kāi)始搶答信號(hào)istart,加減分結(jié)束信號(hào)iup_dn_end,八個(gè)參賽者的撥碼開(kāi)關(guān)ikey1、ikey2、ikey3、ikey4、ikey5、ikey6、ikey7、ikey8,查詢信號(hào)ifind,排序信號(hào)isort,加分信號(hào)iup,減分信號(hào)idown。4.5.1 搶答判別模塊搶答判別模塊具有第一搶答信號(hào)的判別和鎖存功能,消除按鍵輸入抖動(dòng)的影響,輸出單脈沖,在進(jìn)行鎖存的同時(shí),對(duì)搶答狀態(tài)進(jìn)行顯示。鎖存是實(shí)現(xiàn)將組號(hào)值進(jìn)行鎖定的功能,當(dāng)不需要鎖定時(shí),鎖存器直接將輸入信號(hào)送到輸出信號(hào),當(dāng)需要鎖定時(shí),鎖存器就保持當(dāng)前狀態(tài)的輸出不變,實(shí)現(xiàn)鎖存功能。本設(shè)計(jì)采用軟件延時(shí)的方式消除按鍵抖動(dòng)
47、,當(dāng)按鍵按下并抬起后,輸入信號(hào)為高電平脈沖,經(jīng)過(guò)大約三個(gè)時(shí)鐘跳變后抖動(dòng)消除,輸出一個(gè)高電平脈沖作為輸出。搶答判別模塊如圖4.5所示。該模塊有輸入信號(hào)clk,復(fù)位信號(hào)reset,輸入狀態(tài)變量isig,輸出信號(hào)為上升沿輸出狀態(tài)變量osig_posedge。圖4.5 搶答判別模塊4.5.2 分頻模塊由于倒計(jì)時(shí)模塊需要1Hz的時(shí)鐘信號(hào),而FPGA的時(shí)鐘信號(hào)為50MHz,所以需要分頻來(lái)得到1Hz的時(shí)鐘信號(hào)。分頻模塊如圖4.6所示:圖4.6 分頻模塊4.5.3 倒計(jì)時(shí)模塊倒計(jì)時(shí)模塊的主要作用是進(jìn)行搶答倒計(jì)時(shí)。系統(tǒng)復(fù)位后,當(dāng)?shù)褂?jì)時(shí)開(kāi)關(guān)信號(hào)為高電平時(shí),倒計(jì)時(shí)LED1數(shù)碼管從9開(kāi)始以秒為單位進(jìn)行倒計(jì)時(shí),如果倒計(jì)
48、時(shí)結(jié)束后有人進(jìn)行搶答,倒計(jì)時(shí)模塊會(huì)輸出一個(gè)高電平使得LED1數(shù)碼管上顯示搶答成功的組號(hào),如果倒計(jì)時(shí)尚未倒計(jì)結(jié)束,有選手進(jìn)行搶答,倒計(jì)時(shí)模塊會(huì)輸出一個(gè)高電平使得蜂鳴器不停地吱吱響。倒計(jì)時(shí)模塊如圖4.7所示。該倒計(jì)時(shí)模塊的輸入信號(hào)有時(shí)鐘信號(hào)clk(1Hz)、復(fù)位信號(hào)reset、倒計(jì)時(shí)顯示使能信號(hào)idaojishi_display_en、開(kāi)始信號(hào)istart,輸出信號(hào)有倒計(jì)時(shí)數(shù)據(jù)、正在倒計(jì)時(shí)的輸出狀態(tài)變量。圖4.7 倒計(jì)時(shí)模塊4.5.4 搶答按鍵模塊搶答按鍵模塊主要用于搶答者使用撥碼開(kāi)關(guān)進(jìn)行搶答輸入,搶答犯規(guī)蜂鳴器報(bào)警;搶答按鍵模塊如圖4.8所示。該模塊的輸入信號(hào)有時(shí)鐘信號(hào)clk,復(fù)位信號(hào)reset
49、,撥碼開(kāi)關(guān)輸入信號(hào)key1、key2、key3、key4、key5、key6、key7、key8,開(kāi)始信號(hào)start_edge,等待撥碼開(kāi)關(guān)輸入信號(hào)igetkeys_wait,撥碼開(kāi)關(guān)輸入清零信號(hào)igotkey_clr,搶答犯規(guī)輸入信號(hào)ierror_buzz,倒計(jì)時(shí)輸入信號(hào)irq_daojishi;輸出信號(hào)有搶答犯規(guī)、搶答犯規(guī)蜂鳴器吱吱響、撥碼開(kāi)關(guān)輸入成功、撥碼開(kāi)關(guān)輸入成功并顯示。4.5.5 搶答按鍵轉(zhuǎn)換模塊搶答按鍵轉(zhuǎn)換電路模塊主要是8進(jìn)制數(shù)向10進(jìn)制數(shù)據(jù)轉(zhuǎn)換,用于在LED數(shù)碼管上顯示組號(hào);搶答按鍵轉(zhuǎn)換模塊如圖4.9所示。輸入信號(hào)有時(shí)鐘信號(hào)clk、復(fù)位信號(hào)reset、選手撥碼開(kāi)關(guān)輸入信號(hào)igo
50、tkeys,輸出信號(hào)是搶答選手的組號(hào)oqiandaren.圖4.8 搶答按鍵模塊圖4.9 搶答按鍵轉(zhuǎn)換模塊4.5.6 計(jì)分模塊計(jì)分電路模塊主要用記錄參賽選手的分值、查詢或排序時(shí)從中提取數(shù)據(jù)提供給顯示模塊顯示和用于選手在比賽過(guò)程中加分與減分操作從而更新選手的分值;計(jì)分模塊如圖4.10所示。輸入信號(hào)有:時(shí)鐘信號(hào)clk、1Hz的時(shí)鐘信號(hào)clk1s、復(fù)位信號(hào)reset、加分使能信號(hào)iup_en、減分使能信號(hào)idown_en、查詢使能信號(hào)ifind_en、排序使能信號(hào)isort_en、排序顯示使能信號(hào)isort_display_en、撥碼開(kāi)關(guān)輸入信號(hào)igotkeys、搶答成功選手的組號(hào)iqiandare
51、n;輸出信號(hào)有:搶答成功選手的分值oqiandanren_scoren、撥碼開(kāi)關(guān)的結(jié)果oresult_key、分值結(jié)果oresult_score、排序撥碼開(kāi)關(guān)的輸入結(jié)果oresult_key_sort、排序分值的結(jié)果oresult_score_sort。圖4.10 計(jì)分模塊4.5.7 選擇顯示模塊由于該系統(tǒng)需要顯示一位選手的組號(hào)、倒計(jì)時(shí)和選手的分值,選手分值的排序,要正確顯示這些數(shù)據(jù),需要選擇顯示模塊與顯示模塊進(jìn)行匹配。選擇顯示模塊如圖4.11所示。輸入信號(hào)有: 倒計(jì)時(shí)顯示使能信號(hào)idaojishi_display_en、查詢顯示使能信號(hào)ifind_display_en、搶答顯示使能信號(hào)iqi
52、andag_display_en、排序顯示使能信號(hào)isort_display_en、搶答者的組號(hào)iqiandaren、搶答選手所對(duì)應(yīng)的分?jǐn)?shù)iqiandaren_score、撥碼開(kāi)關(guān)輸入信號(hào)iresult_key、分值的結(jié)果iresult_score、排序撥碼開(kāi)關(guān)輸入結(jié)果iresult_key_sort、排序時(shí)分值的結(jié)果iresult_score_sort、倒計(jì)時(shí)的數(shù)值iumber_shengyu;輸出信號(hào)有:撥碼開(kāi)關(guān)輸出信號(hào)okey、輸出分值oscore。圖4.11 選擇顯示模塊4.5.8 顯示模塊顯示電路模塊進(jìn)行匹配以正確顯示組號(hào)和倒計(jì)時(shí)、分?jǐn)?shù).顯示模塊如圖4.12所示。輸入信號(hào)有:時(shí)鐘信號(hào)
53、clk、復(fù)位信號(hào)reset、撥碼開(kāi)關(guān)輸入信號(hào)ikey、分值輸入信號(hào)iscore;輸出信號(hào)有:選手組別輸出信號(hào)oseg_date_key、分值十位上顯示輸出信號(hào)oseg_date_decade、分值個(gè)位上顯示輸出信號(hào)oseg_date_unit。顯示模塊的輸出信號(hào)oseg_date_key、oseg_date_decade、oseg_date_unit直接與LED顯示數(shù)碼管的管腳連接,直接轉(zhuǎn)換為對(duì)應(yīng)數(shù)碼管LED的輸入電平值,將對(duì)應(yīng)的數(shù)字顯示出來(lái)。圖4.12 顯示模塊大連東軟信息學(xué)院畢業(yè)設(shè)計(jì)(論文)第5章系統(tǒng)實(shí)現(xiàn)5.1 數(shù)據(jù)通道的代碼實(shí)現(xiàn)數(shù)據(jù)通道由以下七個(gè)電路模塊組成,分別為:搶答判別電路模塊、分
54、頻電路模塊、倒計(jì)時(shí)電路模塊、搶答按鍵電路模塊、搶答按鍵轉(zhuǎn)換電路模塊、計(jì)分電路模塊、選擇顯示電路模塊、顯示電路模塊。其中,搶答判別電路模塊主要完成對(duì)最快搶答者的判斷功能;分頻電路模塊是將FPGA開(kāi)發(fā)板上的50MHz的時(shí)鐘基準(zhǔn)頻率分頻得到1Hz的時(shí)鐘信號(hào);倒計(jì)時(shí)電路模塊對(duì)搶答進(jìn)行9秒的倒計(jì)時(shí);搶答按鍵模塊主要用于搶答者使用撥碼開(kāi)關(guān)進(jìn)行搶答輸入;搶答按鍵轉(zhuǎn)換電路模塊是8進(jìn)制數(shù)向10進(jìn)制數(shù)據(jù)轉(zhuǎn)換以便于在LED數(shù)碼管上顯示組號(hào);計(jì)分電路模塊主要用記錄參賽選手的分值、查詢或排序時(shí)從中提取數(shù)據(jù)提供給顯示模塊顯示和用于選手在比賽過(guò)程中加分與減分操作從而更新選手的分值;選擇顯示電路模塊主要是進(jìn)行LED數(shù)碼管與組
55、號(hào)、分?jǐn)?shù)、倒計(jì)時(shí)信號(hào)匹配;顯示電路模塊進(jìn)行匹配以正確顯示組號(hào)和倒計(jì)時(shí)、分?jǐn)?shù)信號(hào);數(shù)據(jù)通道的主要代碼如下。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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同模板學(xué)校食堂承包經(jīng)營(yíng)合同范本
- Unit2 He's cool(說(shuō)課稿)2023-2024學(xué)年外研版(三起)四年級(jí)下冊(cè)
- 2025合同模板工程的變更范本
- 2025江蘇:安全責(zé)任寫(xiě)進(jìn)集體合同模板范本
- Unit1 School(說(shuō)課稿)-2024-2025人教版(新起點(diǎn))英語(yǔ)一年級(jí)上冊(cè)
- 2023七年級(jí)語(yǔ)文上冊(cè) 第四單元 綜合性學(xué)習(xí) 少年正是讀書(shū)時(shí)說(shuō)課稿 新人教版
- Unit5 I'm cleaning my room(說(shuō)課稿)-2023-2024學(xué)年人教精通版英語(yǔ)五年級(jí)下冊(cè)001
- 2024年九年級(jí)語(yǔ)文下冊(cè) 第二單元 第5課 孔乙己說(shuō)課稿 新人教版
- 2024-2025學(xué)年高中化學(xué)下學(xué)期第20周 常見(jiàn)氣體的制備說(shuō)課稿
- Unit 1 people of achievement Reading for writing 說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)人教版(2019)選擇性必修第一冊(cè)
- 英語(yǔ)經(jīng)典口語(yǔ)1000句
- 進(jìn)模模具設(shè)計(jì)
- 完整,滬教版小學(xué)四年級(jí)英語(yǔ)上冊(cè)單詞表
- 2021年高考化學(xué)真題和模擬題分類匯編專題20工業(yè)流程題含解析
- 2023年北京市高考作文評(píng)分標(biāo)準(zhǔn)及優(yōu)秀、滿分作文
- 2023年大唐尿素投標(biāo)文件
- 《鋼鐵是怎樣煉成的》名著閱讀(精講課件) 初中語(yǔ)文名著導(dǎo)讀
- 縮窄性心包炎課件
- 《工程電磁場(chǎng)》配套教學(xué)課件
- 職位管理手冊(cè)
- 東南大學(xué) 固體物理課件
評(píng)論
0/150
提交評(píng)論