




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本科畢業(yè)設(shè)計(jì)(2015 屆)題 目:基于vhdl語(yǔ)言地兩位數(shù)簡(jiǎn)易記分板設(shè)計(jì)學(xué)院:機(jī)電工程學(xué)院專業(yè):自動(dòng)化學(xué)生姓名:學(xué)號(hào):指導(dǎo)教師:職稱(學(xué)位):合作導(dǎo)師:職稱(學(xué)位):完成時(shí)間:2015 年 05 月 25 日成績(jī):黃山學(xué)院教務(wù)處制學(xué)位論文原創(chuàng)性聲明茲呈交地學(xué)位論文,是本人在指導(dǎo)老師指導(dǎo)下獨(dú)立完成地 研究成果本人在論文寫作中參考地其他個(gè)人或集體地研究成 果,均在文中以明確方式標(biāo)明本人依法享有和承擔(dān)由此論文 而產(chǎn)生地權(quán)利和責(zé)任.聲明人(簽名):黃山學(xué)院本科畢業(yè)設(shè)計(jì)說明書正文目 錄摘要1英文摘要21引言31.1研究背景31.2選題地目地和意義32系統(tǒng)方案地?cái)M定32. 1 eda軟件地選擇32.2碩
2、件描述語(yǔ)言地選擇42.3記分板系統(tǒng)地設(shè)計(jì)43軟件設(shè)計(jì)53.1偶數(shù)分頻器模塊地設(shè)計(jì)53.2按鍵去抖模塊地設(shè)計(jì)123. 3 譯碼顯7k模塊144 系統(tǒng)組態(tài)及調(diào)試164. 1 系統(tǒng)組態(tài)164.2頂層程序設(shè)計(jì)及調(diào)試17結(jié)論21參考文獻(xiàn)22致謝23附錄24基于vhdl語(yǔ)言地兩位數(shù)簡(jiǎn)易記分板設(shè)計(jì)機(jī)電工程學(xué)院 自動(dòng)化專業(yè)指導(dǎo)老師:摘要:目前市場(chǎng)上銷售地記分器大都是依據(jù)單片機(jī)技術(shù)地制造地,它地主要器件是單片機(jī), 并且它地編碼器及解碼器是由單片機(jī)內(nèi)部地軟件生成地.在實(shí)際應(yīng)用中,由于種種未知地因素可 能導(dǎo)致程序出現(xiàn)運(yùn)行不穩(wěn)定地現(xiàn)彖,從而導(dǎo)致系統(tǒng)地對(duì)靠性隨時(shí)受到嚴(yán)重地威脅而基于eda技 術(shù)設(shè)計(jì)地記分器,它地系統(tǒng)完全
3、由fpga構(gòu)成,系統(tǒng)要求實(shí)現(xiàn)地功能全部由fpga內(nèi)部地硬件來 提供,從而大大提高了系統(tǒng)工作地穩(wěn)定性和可靠性.fpga地最重要地特色就是它具有現(xiàn)場(chǎng)可編 程功能,所以如果需要對(duì)設(shè)計(jì)進(jìn)行修改,不必重新設(shè)計(jì)系統(tǒng),只需更改芯片內(nèi)部地控制和接口電 路,再利用rda軟件將更新后地設(shè)計(jì)程序下載到fpga中即可,無需更改外部電路地設(shè)計(jì).本論文詳細(xì)闡述了運(yùn)用eda技術(shù)結(jié)合fpga芯片在max+plus ii開發(fā)環(huán)境下設(shè)計(jì)兩位數(shù) 簡(jiǎn)易記分板地方法.記分板地功能有:加分、減分、清零以及鳴叫提示將設(shè)計(jì)好地程序下載到 fpga芯片中進(jìn)行驗(yàn)證,完全符合本論文地設(shè)計(jì)要求.可以看出,fpga芯片與vhdl硬件描述語(yǔ) 言相結(jié)合不
4、僅簡(jiǎn)化了電路地設(shè)計(jì)、降低了編程地難度,而且大大縮短了產(chǎn)品開發(fā)地周期,提高了 產(chǎn)品地競(jìng)爭(zhēng)力.關(guān)鍵詞:eda 技術(shù);fpga; vhdl; max+plus ii;記分板design simple two digit scoreboard basedon eda technologychen guiting director: zhao nianshun(school of mechanical and electrical engineering, huangshan univercity,china,245041)abstract: the scoreboard on the market a
5、re mostly based on the manufacturing of microcomputer technology, its main device is a single chip, and the encoder and decoder which is generated by the internal microcontroller software. in practical applications, due to various factors may lead to unknown program appears unstable phenomenon, whic
6、h leads to the reliability of the system at any time under serious threat. the scoring device based on eda, the system is completely composed of fpga, system requirements to achieve all functions provided by the fpga internal hardware, which greatly improves the stability and reliability of the syst
7、em. the most important feature of fpga is that it has a field programmable function, so if you need to modify the design, do not have to redesign the system, only need to change the control and interface circuit inside the chip, then download the updated design program to fpga you can use eda softwa
8、re, without changing the external circuit design.this paper describes the method of combining fpga chip design a simple two digit scoreboard in the max+plus ii development environment using eda technology the scoreboard features: plus, minus, and zero promptsthe. the program is downloaded to the fpg
9、a chip verification, fully meet the requirements of this design. as you can see, the fpga chip and the vhdl hardware description kinguage combination not only simplifies the circuit design, reduce the difficulty of programming, but also greatly shorten the product development cycle, improve the comp
10、etitiveness of productskey words: eda technology; the scoreboard; fpga; vhdl; max+plus ii1 引言1.1研究背景20世紀(jì)60年代中期,電子設(shè)計(jì)自動(dòng)化(electronic design automation,縮寫: eda)技術(shù)從計(jì)算機(jī)輔助設(shè)計(jì)(cad)、計(jì)算機(jī)輔助制造(cam)、計(jì)算機(jī)輔助 測(cè)試(cat)和計(jì)算機(jī)輔助工程(cae)地概念發(fā)展而來v它以計(jì)算機(jī)為工具,設(shè) 計(jì)者只需使用eda軟件開發(fā)環(huán)境,使用硬件描述語(yǔ)言完成設(shè)計(jì)文件,剩下地任務(wù)就交 給計(jì)算機(jī),由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、
11、布局、布線 和仿真,直至對(duì)于特定目標(biāo)芯片地適配編譯、邏輯映射和編程下載等工作在這種情 況t, fpga (fieldprogrammable gate array,即現(xiàn)場(chǎng)可編程門陣列)器件應(yīng)運(yùn)而生2 .由于fpga具有現(xiàn)場(chǎng)可編程功能,所以,當(dāng)系統(tǒng)地功能需要更改時(shí),我們可以不用 修改外圍電路結(jié)構(gòu),只需更改fpga中地控制電路和接口電路,然后利用eda工具 將更新后地程序下載到fpga中即可,這不僅大大提高了設(shè)計(jì)地效率以及使用地成 本.還大犬提高了電路設(shè)計(jì)地效率和可操作性、減輕了設(shè)計(jì)者地勞動(dòng)強(qiáng)度、同吋也 大大縮短了產(chǎn)品地開發(fā)周期、提升了產(chǎn)品地競(jìng)爭(zhēng)能力1.2選題地目地和意義人到奧運(yùn)比賽小到班級(jí)地比賽
12、,記分板始終扮演著舉足輕重地角色為了體現(xiàn) 出比賽地公正、公平,其質(zhì)量地重要性顯得尤為突出.目前使用地記分器大部分是基 于單片機(jī)技術(shù)制造地,其編碼器與解碼器地生成方式是單片機(jī)內(nèi)部地軟件編譯后生 成地.在實(shí)際應(yīng)用中,由于程序可能不穩(wěn)定,從而影響系統(tǒng)地可靠性而基于現(xiàn)場(chǎng)可 編程邏輯門陣列fpga器件制造地記分器則不會(huì)發(fā)生這種情況,它采用fpga器件構(gòu) 造系統(tǒng),所有算法完全由硬件電路來實(shí)現(xiàn),使得系統(tǒng)地工作可靠性大為提高 2系統(tǒng)方案地?cái)M定2. 1 eda軟件地選擇本設(shè)計(jì)所選用地eda軟件是max+plus ii.它是altera公司提供地上一代fpga 開發(fā)集成環(huán)境.由于它地操作界面友好,操作方式簡(jiǎn)單,一
13、度被譽(yù)為業(yè)內(nèi)最簡(jiǎn)單、最 好用地eda軟件之一它主要有以下幾個(gè)優(yōu)點(diǎn):(1) 開放地界面max+plus ii支持與cadencementor graphics等公司所提供地eda工具接口.(2) 與結(jié)構(gòu)無關(guān)max+plus ii系統(tǒng)地核心編譯器支持阿爾特拉公司地flex10k、flex8000、 flex6000、max9000、max7000、max5000 和 classic 可編程邏輯器件,提供了 世界上唯一真正與結(jié)構(gòu)無關(guān)地可編程邏輯設(shè)計(jì)環(huán)境.(3) 豐富地設(shè)計(jì)庫(kù)該軟件為開發(fā)者提供了豐富地庫(kù)單元,其中包括多種特殊地邏輯功能塊和74系 列地全部器件以及新型地參數(shù)化地兆功能.(4)硬件多種描述
14、語(yǔ)言(hdl)支持各種hdl設(shè)計(jì)輸入選項(xiàng),包括vhdl、verilog hdl以及altera公司自己 地硬件描述語(yǔ)言ahdl.2.2硬件描述語(yǔ)言地選擇硬件描述語(yǔ)言(英文:hardware description language,簡(jiǎn)稱:hdl)是電子系 統(tǒng)硬件行為描述、結(jié)構(gòu)描述、數(shù)據(jù)流描述地語(yǔ)言利用硬件描述語(yǔ)言,數(shù)字電路系統(tǒng) 地設(shè)計(jì)可以從頂層到底層(從抽象到具體)逐層描述自己地設(shè)計(jì)思想,用一系列分 層次地模塊來表示極其復(fù)雜地?cái)?shù)字系統(tǒng)hdl發(fā)展至今已有20多年地歷史,截止到上世紀(jì)80年代,許多大公司都先后推 出了具有自己特色地硬件描述語(yǔ)言,這對(duì)電子設(shè)計(jì)自動(dòng)化行業(yè)起到了極大地促進(jìn)作 用但是,各大
15、公司自己地硬件描述語(yǔ)言一般都只適用于自己地設(shè)計(jì)領(lǐng)域和層次,而 且種類繁多地開發(fā)語(yǔ)言使得開發(fā)者左右為難因此,急需一種面向設(shè)計(jì)地多領(lǐng)域、多 層次并得到普遍認(rèn)同地標(biāo)準(zhǔn)硬件描述語(yǔ)言.在這種環(huán)境驅(qū)使下,vhdl和verilog hdl語(yǔ)言從中脫穎而出,先后成為ieee標(biāo)準(zhǔn).行為級(jí)抽象建模地覆蓋面范圍地能力是vhdl和verilog hdl地一大區(qū)別,具 體體現(xiàn)在:verilog hdl在系統(tǒng)級(jí)抽象方面要略差一些,而在門級(jí)開關(guān)屯路描述方面 要強(qiáng)地多至于別地方面二者地功能都不分伯仲,談不上孰優(yōu)孰劣.由于本人首先接觸地是vhdl,對(duì)其有一定地了解,所以,本次設(shè)計(jì)采用地是 vhdl語(yǔ)言.2.3記分板系統(tǒng)地設(shè)計(jì)(
16、1)系統(tǒng)地功能兩位分?jǐn)?shù)00-99顯示、加分、減分.分?jǐn)?shù)清零同時(shí)蜂鳴器鳴叫提示.(2)系統(tǒng)地設(shè)計(jì)eda技術(shù)采用地是“自頂向下”(top-down)地設(shè)計(jì)方法,所以,首要任務(wù)就是 分析整個(gè)系統(tǒng)地結(jié)構(gòu),然后根據(jù)結(jié)構(gòu)地特點(diǎn)將其分成若干個(gè)子模塊,然后對(duì)這些子 模塊進(jìn)行分析、設(shè)計(jì)和驗(yàn)證,當(dāng)子模塊都設(shè)計(jì)成功后,再將一個(gè)個(gè)小地子模塊聯(lián)合在 一起形成一個(gè)完整地系統(tǒng).再對(duì)系統(tǒng)進(jìn)行修改和驗(yàn)證,直到設(shè)計(jì)完成結(jié)構(gòu)原理圖 如圖2-1所示:圖2-1系統(tǒng)結(jié)構(gòu)框圖如圖2-1,外部時(shí)鐘源由于其頻率太高,不能直接用于fpga內(nèi)部地各功能模塊所 以需要對(duì)其進(jìn)行分頻;按鍵信號(hào)由于具有抖動(dòng)性,所以要對(duì)其進(jìn)行去抖才能將信號(hào) 送入fpga中
17、地模塊進(jìn)行使用;譯碼模塊是驅(qū)動(dòng)數(shù)碼管顯示地模塊.3軟件設(shè)計(jì)本章共分三個(gè)小節(jié)來介紹記分板軟件部分地設(shè)計(jì)第一節(jié)闡述了分頻器地原理 應(yīng)用以及軟件地實(shí)現(xiàn);第二節(jié)描述了去抖模塊地原理以及用vhdl語(yǔ)言如何去實(shí)現(xiàn); 第三節(jié)介紹了數(shù)碼管地顯示原理應(yīng)用范圍以及使用軟件地方法來驅(qū)動(dòng)數(shù)碼管顯示 我們需要顯示地內(nèi)容.3.1偶數(shù)分頻器模塊地設(shè)計(jì)(1) 原理對(duì)于偶數(shù)2n分頻,通常是由模n計(jì)數(shù)器實(shí)現(xiàn)一個(gè)占空比為1: 1地2n分頻器, 分頻輸出信號(hào)在計(jì)數(shù)器地值達(dá)到模n時(shí)自動(dòng)使其取反.(2) 程序設(shè)計(jì)首先打開程序,進(jìn)入max+plus ii地開發(fā)環(huán)境,然后點(diǎn)擊file菜單出現(xiàn)下拉菜 單,如圖3-1.然后點(diǎn)擊新建選項(xiàng)“new”
18、出現(xiàn)圖3-2所示文件類型選擇界面.® max+plus ii manager d:biyeshejichengxuyouhuajifenbanmax+plus iid hassign options help圖3-1文件選項(xiàng)下拉菜單選擇第三項(xiàng),點(diǎn)擊ok,就可新建一個(gè)文本文件,如圖3-3所示然后保存文件, 首先選擇需要保存地目錄,之后為文件重命名,后綴為.vhd,并在下方下拉菜單中選 擇.vhd,最后單擊ok即可保存文件注意:文件名與實(shí)體名應(yīng)一致!圖3-2文件類型選擇菜單圖3-3文本編輯界面文件保存成功后,就開始在此界面編輯vhdl程序,如圖3-4所示.下面就程序 地主要部分進(jìn)行分析:
19、library ieee;use ieee.std_logic_l 164.all;use ieee.stdogic_arith.all;use ieee.std_logic_unsigned.all;以上四個(gè)語(yǔ)句是vhdl語(yǔ)言地庫(kù)和程序包地聲明.庫(kù)地聲明格式為:library 庫(kù)名;程序包地聲明格式為:use library 庫(kù)名.程序包名.項(xiàng)目名;庫(kù)是存儲(chǔ)和放置可編譯設(shè)計(jì)單元地地方,程序包包含地資源主要有:常數(shù)說明、數(shù) 據(jù)類型說明、元件語(yǔ)句定義、子程序定義和其他說明這些資源對(duì)引用它地設(shè)計(jì)單 元都是可見地.entity fenpin isgeneric(n:integer:=l );port
20、(clkinl:in std_logic;clkout:out std_logic;res:in std_logic);end entity fenpin;這部分是分頻模塊地實(shí)體聲明部分,用來描述該實(shí)體與外部電路地接口 .clkin 是外部吋鐘源地輸入端口, clkout是分頻后地信號(hào)輸岀端口,res是復(fù)位按鍵信號(hào)輸 入.generic語(yǔ)句是類屬參數(shù)傳遞語(yǔ)句,它地作用是在不同層次設(shè)計(jì)模塊之間傳遞信 息和參數(shù)在本段程序中,修改n地值即可改變分頻器地分頻數(shù).architecture a of fenpin issignal clkq:std_logic:=,0,;signal leijia:std
21、_logic_vector(30 downto 0):=(others=>,01);beginprocess(clkinl,res)beginif res='o* thenleijia<=(others=>,0');clkq<=,0,;elseifcclkinlevent and clkinl=,r)thenif(leijia=n-l) thenleijia<=(others=>,0'); clkq<=not clkq;elseleijia<=leijia+l;end if;end if;end if;end proces
22、s;clkout<=clkq;end architecture a;這部分是分頻模塊地結(jié)構(gòu)體說明部分,放在實(shí)體說明后面,它地功能是描述設(shè) 計(jì)實(shí)體地結(jié)構(gòu)或行為,從功能上對(duì)實(shí)體進(jìn)行描述.在該部分中,結(jié)構(gòu)體地描述方式為 “行為描述”,并且定義了兩個(gè)信號(hào),一個(gè)是"leijia”信號(hào),用來對(duì)外部吋鐘地脈沖 進(jìn)行計(jì)數(shù),一個(gè)是“clkq”,因?yàn)檩敵鲂盘?hào)“clkout”不能進(jìn)行運(yùn)算操作,所以它起到 了運(yùn)算并存儲(chǔ)中間數(shù)據(jù)地作用當(dāng)計(jì)數(shù)達(dá)到nt吋,通過語(yǔ)句“clkqv二not clkq;”使 其狀態(tài)反轉(zhuǎn),再將其值賦給clkout.這樣就實(shí)現(xiàn)了分頻地功能程序編寫完成后就可 以編譯程序在此之前需要進(jìn)行一
23、項(xiàng)設(shè)置:將工程設(shè)置為當(dāng)前工程,如圖3-5所示.圖3-4分頻器程序編輯界面max+plu$ n 匝edit templates assign utilities options window helpprojectname-ctrl+jnew.set project to current filectrl+shift+jctrl+osave & checkctrl+kopen.delete file.save & compilectrl+l圖3-5工程設(shè)置然后就可以對(duì)寫好地程序進(jìn)行編譯,點(diǎn)擊max plus ii中地compiler選項(xiàng),出現(xiàn) 編譯窗口,再點(diǎn)擊ok就可對(duì)程序進(jìn)行編
24、譯.若程序無誤,則出現(xiàn)圖3-6所示編譯成 功地窗口,否則,顯示圖3-7所示窗口,根據(jù)提示信息改正錯(cuò)誤,保存后再重新編譯, 直至編譯成功,顯示圖3-6所示界面.>infenpininterfaces assign options window help工 compilerdau bullaassemblerittertiming snf extractorcompiler netlist extractora messages compilerinfo: selecting a device from axzooo' family for auto device 'fenp
25、in' info: chip tenpin1 successfully fit into auto device 'epm7096lc6874 message » | 0 of 2廠 locate in floorplan editorhelp on message| 4和劌滋c0 of 0locate m圖3-6編譯成功界面pinfenpininterfaces assign options window help工 compilercompiler netlist extractora ii bassemblertiming snf extractor乂 mess
26、ages compilerdeclarative parterror: line 33: file d:bjyeshejifenpinfcnpin.vhd: vhdl syntax error: found illegal use of a statement in a declarative partinfo: information on architecture fenpin-a was not stored| q message » | 0 of 3ic > 0 of 0廠 locate in floorplan editorlocate ahhelp on messa
27、ge圖3-7編譯失敗界面(3)波形圖文件波形圖文件地作用是觀察設(shè)計(jì)地程序產(chǎn)生地吋序圖,讓設(shè)計(jì)者直觀地看出設(shè)計(jì) 地程序是否滿足設(shè)計(jì)地要求首先如圖3-1點(diǎn)擊file菜單,再點(diǎn)擊new出現(xiàn)圖3-2地界面,選擇最后一項(xiàng)波形編輯文件單擊0k出現(xiàn)圖3-8所示界面.interval |50 6ns100 0nsd:biyeshejifenpinfenpinile edit view node assign utilities options window help-tenpin.scf waveform editorref |0 ons| 兩利 time |50 6nsname.cutcopypastede
28、leteinsert node-enter nodes from snf_enter text圖3-8波形文件觀察界面單擊鼠標(biāo)右鍵,選擇倒數(shù)第二項(xiàng),出現(xiàn)圖3-9地窗口,然后點(diǎn)擊“l(fā)ist”按鈕,左邊窗口出現(xiàn)程序屮地全部端口,需要觀察哪個(gè)就選屮該端口,在點(diǎn)擊“二”將其移動(dòng) 到右邊窗口.圖3-9端口選擇畫面單擊ok出現(xiàn)圖3-10地畫面.選屮輸入信號(hào)clkin設(shè)置其時(shí)序圖,點(diǎn)擊圖3-10屮 被圈出地那個(gè)圖標(biāo),出現(xiàn)時(shí)序設(shè)置窗口,設(shè)置完成后單擊ok保存設(shè)置后開始仿 真.name:1 resvalue:qooverwrite clockinterval: 0.0nsto: 1.0usstarling va
29、lue:clock period:|200.0nsmultiplied by: |1cancel圖3-10波形設(shè)置窗口如圖3-11所示,選擇file菜單中地simulator選項(xiàng),彈出右邊地編譯窗口,單擊start開始仿真,完成后點(diǎn)擊open scf選項(xiàng).出現(xiàn)圖3-12所示界面.觀察生成地時(shí)序 圖是否與預(yù)期一致若一致則說明程序完全符合要求,否則再重新修改、編譯、仿真, 直至?xí)r序圖符合要求.貯 max+plus ii - d:biyeshejifenpinfenpinmax+plus ii | file assign options initialize window helphierarchy
30、 display graphic editor symbol editor text editor waveform editor floorplan editor compiler simulator timing analyzer programmer message processorhee、fe叩in.scf - waveform editor圖3-11仿真啟動(dòng)界面從圖3-12中可以直觀地看出這是一個(gè)二分頻地分頻器,每當(dāng)clkin地上升沿到 來時(shí),clkout地電平都會(huì)發(fā)生反轉(zhuǎn),另外,當(dāng)復(fù)位信號(hào)res有效吋,clkout地電平立即復(fù) 位所以,可以得出本次設(shè)計(jì)符合預(yù)期要求這一結(jié)論.3.2
31、按鍵去抖模塊地設(shè)計(jì)(1)原理我們經(jīng)常用到地按鍵人都是利用“彈性形變”地原理制作地開關(guān),當(dāng)按下或釋 放按鈕時(shí),由于機(jī)械觸點(diǎn)發(fā)生地是彈性形變,它總是阻止觸點(diǎn)地形態(tài)產(chǎn)生變化,從而 產(chǎn)生一定地抖動(dòng),這個(gè)短暫地抖動(dòng)使得按鈕在吸合時(shí)不會(huì)瞬吋穩(wěn)定地連接,在斷開 時(shí)同樣不會(huì)瞬間地分離,如圖3-13所示.而按鈕產(chǎn)生抖動(dòng)吋間地長(zhǎng)短取決于它地機(jī) 械性質(zhì),一般為5ms-10ms12.按鈕地抖動(dòng)會(huì)讓cpu無法判斷按鈕是否確實(shí)按下,從 而產(chǎn)生一系列地誤動(dòng)作為了確保cpu能時(shí)刻準(zhǔn)確地判斷按鈕地狀態(tài),必須對(duì)按鈕實(shí) 施去抖措施即cpu必須在鍵值穩(wěn)定時(shí)才讀取其狀態(tài),在抖動(dòng)時(shí)不做任何處理.這種 措施就是按鍵去抖.有兩種方式來消除按
32、鈕地抖動(dòng),即硬件去抖和軟件去抖.當(dāng)按鍵地?cái)?shù)目較少吋, 適合使用硬件去抖,當(dāng)按鍵數(shù)目較多時(shí),軟件去抖則更加方便本課題使用地是軟件 消抖,即使用vhdl語(yǔ)言編寫去抖程序,基本原理如下:事先規(guī)定,按鍵未按下吋為 高電平1,按鍵按下吋為低電平0鍵值掃描脈沖反復(fù)掃描按鈕當(dāng)前地狀態(tài),若檢測(cè)到 按鈕當(dāng)前地輸入值為0吋,延時(shí)5ms10ms,再次檢測(cè),如果鍵值還是0,那么就認(rèn)為 有按鍵按下.反之則認(rèn)為是抖動(dòng),程序不做任何處理,繼續(xù)掃描按鍵狀態(tài).而延吋地 5ms10ms這段吋間間隙剛好好避開了按鈕地抖動(dòng)吋間,達(dá)到了去抖地目地胸.鍵按-圖3-13按鍵抖動(dòng)示意圖(2)程序設(shè)計(jì)如圖3-1到3-5所示步驟新建一個(gè)文本編輯
33、文件,保存后在其中編寫去抖程序, 完成后如圖3-14所示.j qudou.vhd - text ecftoro | g)library ieee;£use std-logic_1164 .atll;-j-use ieeestd_logic_azrith.all;use ieeestd_l.ogic_unsign©d.all;entity qudou isport(anjian_in:in std_logic;anjian_out:out std_logic;guancha_200hz:out std_logic;clkin:in std_loqic;res:in std_l
34、cgic);end entity qudou;architecture b of qudou is component fenpin is generic(n:integer:=1); port(clkin:in std_lcgic;clkoutzout stdlogic;.ilinc 1 icol iinsh圖3-14去抖程序編輯窗l(fā)i下面對(duì)去抖程序中去除抖動(dòng)地進(jìn)程進(jìn)行分析:process(clk_200hz)variable count:integer range 0 to 3;variable count 1 integer range 0 to 1;beginif clk_200hz&
35、#39;event and clk_200hz=' 1' thenif anjian_in='o' thenif count=2 thencount:=0;anjian_out<=fo,;elsecount:=count+l;end if;elsecount:=0;anjian_out<=,r;end if;end if;end process;信號(hào)clk_200hz是一個(gè)周期為5ms地脈沖信號(hào),用這一信號(hào)來檢測(cè)是否有鍵按下. 變量count對(duì)脈沖進(jìn)行計(jì)數(shù).在clk_200hz信號(hào)地每個(gè)上升沿對(duì)按鍵地狀態(tài)進(jìn)行檢測(cè), 當(dāng)檢測(cè)到按鈕地鍵值為0時(shí),即有鍵按
36、下時(shí),count加ll4.當(dāng)count地值達(dá)到2時(shí),在 clk_200hz地第三個(gè)脈沖上升沿到來時(shí),若鍵值仍為0,則說明當(dāng)前按鈕按下地時(shí)間 已過了 10ms,確實(shí)有鍵按下,并非抖動(dòng),則令去抖模塊地輸出為低電平,否則將count 清零并使輸出為高電平.(3) 波形圖文件按照?qǐng)D3-8到圖3-11所示步驟新建一個(gè)波形圖文件,然后設(shè)置各項(xiàng)參數(shù)并保存. 最后開始仿真,仿真吋序圖如圖3-15所示.name:10.0us20.0usi30.0us40.0us50.0usiigo.ous70.0us80.0us90.0usiiires1lb-1nhclkin.jl丄"anjianjn1專 guanc
37、hajoohz0 j袖 anjianout0 j圖 3-15為了方便理解,我引入了 guancha_200hz這一輸出信號(hào),實(shí)際上它就是按鍵地掃 描脈沖信號(hào)再者,之所以該信號(hào)使用地是2分頻,目地是為了方便觀察從圖中可以 直觀地看出以下結(jié)論:當(dāng)按鍵第一次按下時(shí),保持地時(shí)間是兩個(gè)周期,當(dāng)?shù)谌齻€(gè)脈沖 上升沿到來時(shí),按鍵已恢復(fù)到高電平,所以算是抖動(dòng);當(dāng)按鍵第二次按下時(shí),由于持 續(xù)地時(shí)間大于兩個(gè)周期,所以在第三個(gè)周期地上升沿令輸出值為零,直到檢測(cè)到按 鍵松開時(shí),置位輸出值麗而第三次按下表示按鍵時(shí)長(zhǎng)時(shí)間按下,在這里,程序設(shè)置 地是只做一次按鍵處理,即在anjian_in長(zhǎng)時(shí)間處于低電平時(shí),anjian_o
38、ut始終是低電 平,不會(huì)發(fā)牛電平跳變這樣做地目地是使每次按鍵時(shí)如果按鍵按下地時(shí)間比較長(zhǎng), 分?jǐn)?shù)只會(huì)增加一次,而不會(huì)連續(xù)自動(dòng)地增加這樣做地目地是防止程序產(chǎn)生錯(cuò)誤地 判斷從而導(dǎo)致發(fā)出指令出現(xiàn)錯(cuò)誤從而得出,該仿真圖符合預(yù)期地設(shè)計(jì)要求.3.3譯碼顯示模塊(1) 數(shù)碼管地選取 將多個(gè)發(fā)光二極管按照8字型拼接在一起,再在右下角加一個(gè)led構(gòu)成小數(shù)點(diǎn),這樣 就構(gòu)成了我們常用地八段數(shù)碼管(led segment displays) 它地引線在內(nèi)部已經(jīng)連 接完成,而外部引腳連接地是它們地各個(gè)段以及公共電極數(shù)碼管實(shí)際上是由七個(gè) 發(fā)光管組成8字形構(gòu)成地,加上小數(shù)點(diǎn)就是8段,分別由字母a, b, c, d, e, f
39、, g, dp來表 示數(shù)碼管有共陰和共陽(yáng)兩種,在功能上二者沒什么區(qū)別,只是為了增加它地使用范 圍才設(shè)計(jì)這兩種本設(shè)計(jì)中選用地是共陰8段數(shù)碼管,bcd顯示字符真值表見表3-1, 根據(jù)真值表就可讓數(shù)碼管顯示0-9十個(gè)數(shù)字.表3-1共陰數(shù)碼管真值表十進(jìn)制數(shù)hgfedcba顯示字符十六進(jìn)制數(shù)00111111007e10011000013020110110126d30111100137940011001143350101101155b60101111165f70111000077080111111187f90111101197b(2) 程序設(shè)計(jì)以下兩個(gè)進(jìn)程是兩位數(shù)記分板地編碼譯碼顯示進(jìn)程: xianshi
40、led 1: process(leda 1)begincase ledal iswhen 0 => ledl<=b,1111110h;when 1 => led lv二b “0110000”;when 2 => ledl<=bm1101101n;when 3 => ledl<=bu1111001n;when 4 => ledl<=bn0110011"when 5 => ledl<=b,10110ir,;when 6 => ledl<=bu1011111n;when 7 => ledl<=bm 1
41、110000"when 8 => ledlv二bt111111”;when 9 => ledlv二bt111011”;when others => ledl<=bn0000000n; end case;end process;xianshiledo:process(ledao)begincase ledao iswhen 0 => led0<=bn1111110h; when 1 => led0<=b"0110000n;when 2 => ledov二bt101101”;when 3 => ledo<=bul
42、llloolu;when 4 => ledo<=b ”0110011”;when 5 => led0<=bn10110hn;when 6 => led0<=bu1011111n;when 7 => led0<=bn1110000n;when 8 => ledov二b”lllllll”;when 9 => led0<=b,11110ir,;when others => ledo<=bnooooooon; end case;end process;這兩個(gè)進(jìn)程是譯碼并顯示兩位分?jǐn)?shù)地進(jìn)程.信號(hào)ledal與ledao是分?jǐn)?shù)顯示
43、地編 碼信號(hào),當(dāng)加分、減分、清零按鍵按下時(shí),這兩個(gè)信號(hào)地值在0-9之間循環(huán)地增加、 減少、歸零這兩個(gè)信號(hào)地變化觸發(fā)相應(yīng)地進(jìn)程執(zhí)行相應(yīng)地譯碼程序,令數(shù)碼管顯示當(dāng)前l(fā)edal或ledao地值,如圖3. 16所示.oledlh7eh7e圖3-16數(shù)碼管顯示時(shí)序圖4系統(tǒng)組態(tài)及調(diào)試4. 1系統(tǒng)組態(tài)系統(tǒng)綜合模塊圖如圖4.1所示,左邊是信號(hào)輸入引腳,從上到下依次是加分按 鍵、減分按鍵、復(fù)位按鍵和清零按鍵;右邊是信號(hào)輸出引腳,從上至下依次是加分 和減分按鍵信號(hào)觀察引腳、十位數(shù)數(shù)碼管驅(qū)動(dòng)總線端口、個(gè)位數(shù)數(shù)碼管驅(qū)動(dòng)總線端 口、蜂鳴器驅(qū)動(dòng)端口、按鍵掃描脈沖觀察端口由于是軟件仿真,所以加入一些輔助 輸出端口,這有助于
44、后期波形分析及程序修改.jifenbanuiafe nuiafe houtquianfe huianfe noutqclk i nle d j.匸占 ojresle do ojqinglingfeng_ming_qiguancha_2oohzj.圖4-1系統(tǒng)綜合模塊圖4.2頂層程序設(shè)計(jì)及調(diào)試首先,新建一個(gè)文本編輯文件,步驟參照?qǐng)D3. 1到圖3. 5,然后在其中編寫頂層程 序,如圖4. 2所示.jifenban.vhd text editor 匸二基于eda後術(shù)的兩伍數(shù)簡(jiǎn)易記分板設(shè)計(jì)一一 主程序library ieee;use ieee4all;use ieeestd_logic_arith.a
45、ll;use ieeestd_logiu_unsigned.all;entity jifenban isport (jiafen:in std_logic;力d分按鍵jianfen:in sta_logic;減分按糕jiafenou*q:out std_logic; jianfenoutq:out stdlogic; clkin:in std_lcgic; 仿真器的5mhz時(shí)鐘res:in std_logic;復(fù)位按鈕qingling:in std_logic;記分板清罕按鈕ledl:out std_logic_vector (6 downto 0);兩位記分板分?jǐn)?shù)的+位顯示七段數(shù)碼管led0
46、:out std_lcgic_vector (6 downto 0);兩位記分板分?jǐn)?shù)的個(gè)位顯示七段數(shù)碼管feng_ming_qi :out std_logic;蛭嗚器的脈沖信號(hào)輸出 guancha_200hz: cut stdlogic觀秦按鍵去抖檢測(cè)昧沖綸出;end entity jifenban;itarchitecture c of jifenban isi um 1 i col 1 iinsm圖4-2程序編寫界面使用viidl語(yǔ)言進(jìn)行多層次設(shè)計(jì)時(shí),一個(gè)很大地難點(diǎn)就是元件例化語(yǔ)句地使用.所謂元件例化語(yǔ)句就是首先把一個(gè)現(xiàn)成地設(shè)計(jì)實(shí)體包裝成一個(gè)元件,然后在其他設(shè) 計(jì)實(shí)體屮調(diào)用該元件連接屯路泅
47、下面借具體程序進(jìn)行詳細(xì)介紹:component qudou is去抖元件定義port(anjian_in:in std_logic;anjian_out:out std_logic;clkin:in std_logic;res:in stdjogic);end component;component fenpin is分頻元件定義generic(n:integer:=1);port(clkinl:in std_logic;clkout:out std_logic;res:in std_logic);end component;以上是去抖和分頻兩個(gè)元件地定義,其格式為:component 元件名
48、 isgeneric (類屬表);port (端口名表);end component 元件名;元件定義完成以后,接著就是在程序中調(diào)用元件詳細(xì)見下面程序:fenpino: fenpin generic map( 1)port map(clkin 1 =>clkin,clkout=>guancha_200hzq,res=>res);該元件例化語(yǔ)句是掃描按鍵狀態(tài)地脈沖調(diào)用分頻模塊,產(chǎn)生地脈沖供去抖模塊 使用以得出正確地鍵值.jiafeno: qudou port map(anj ian_in=>j iafen,anj ian_out=>j iafen_out5clkin
49、=>clkin,res=>res);jianfeno: qudou port map(anj ian_in=>j ianfen,anj ian_out=>j ianfen_out,clkin=>clkin,res=>res);qinglingo:qudou port map(anj ian_in=>qingling, anj ian_out=>qingling_out, clkin=>clkin,res=>res);這三個(gè)元件例化語(yǔ)句是加分、減分、分?jǐn)?shù)清零三個(gè)按鍵調(diào)用去抖模塊,為分?jǐn)?shù) 顯示提供正確地鍵值元件例化語(yǔ)句地格式為:例化名:元
50、件名port map(端口名二連接端口名,);port map語(yǔ)句是端口進(jìn)行映射地關(guān)鍵字,端口映射有兩種該方法,第一種是 位置映射:只需把名所對(duì)應(yīng)地各個(gè)端口地連接信號(hào)或端口名寫在括號(hào)中,同吋要注 意端口地連接順序第二種是名字關(guān)聯(lián)方式:確定連接情況后,把元件中地端口名寫 在前面,通過連接符號(hào)“二”和外接地端口或信號(hào)名連在一起陽(yáng).頂層程序編寫完成后開始編譯查錯(cuò),結(jié)果如圖4. 3所示,提示編譯成功.焯 compiler max+pls 11 - d:biymhcjic hengkuyouhuinj ifenbanmax*plus ii file ocessing interfaces assign
51、options window hdp$ iifenb”.vhd text editorqinglingo:qudoujiafenc jianfer jifen:process(cvariablvariablcompiler nctlist extractordatabase builderlogic synthesizerpartitioncrtiming snf extractor目|回| s3assemblerslopi start imax* plus i! - compiler攵淸零以及漕4 mtssdgc » | 0 of 204他麗ch 0 of 0project com
52、pilation was su«es$ful 0 errors0 warningsr locate in floorplan editora messages comp erinfo: chip 'jifenha?' successfully tit into auto device *fpm7fl9 info: chip 'jifcnba3' successfully tit into auto device 'epm709info: chip 'jifenba4* successfully lit into auto device
53、'epm709 info: chip 1ifenba5' successful© 徂 into auto device 'epm706variable hebing:std_logic_vector(1 aownto 0); variable add:integer range 0 to 2;beginhebing:=j iafen_out & jianfen_out; if qingling_out=0' then qe:=0;line 85 col 33 ins <| |>r圖4-3頂層程序編譯界面然后依照?qǐng)D3. 11到圖3.
54、14地步驟新建一個(gè)波形圖文件,添加需要觀察地端口,設(shè)置好相關(guān)參數(shù)后保存,之后開始仿真結(jié)果如圖4. 4所示.k?心&面a®/圍p3k ess q蠢空雯83r& 滋 0u$“1 譏m© 98 ousinterval- 62 oinnarnen-rw i>-qnghng s財(cái)" n-ckin p >afeo3utqp guancha_200tuvalue"ous40 ous60 ousso.ous100 ous120 ous140 ous160.0us180 ouso bui/wjmjmwiiwuwnnwijiwmniinwmnwi
55、nne 4ledl;pkd0h7eh6oihl7e6079hjoooo0g33rooooddceoerknhrrten mgjnwqi9 max plus n dbi>'rthfy<hengxi'oi>iu*enh*n (jifenbmvid w*vhorm fditor) qmax-plusil at edit view nod* assign ulkbes options wodow help (qs圖4-4系統(tǒng)波形圖從圖屮可以看出,個(gè)端口地時(shí)序圖基本都符合最初地設(shè)計(jì)要求:當(dāng)按一次加分 鍵ledo就從0到9依次變化,ledo每到9 一次,ledl地值就從0到9依次變化,同時(shí) ledo又從0開始變化.當(dāng)清零按鍵按下時(shí),分?jǐn)?shù)清零,同時(shí)蜂鳴器在這段時(shí)間由一串 脈沖控制發(fā)出聲音當(dāng)減分按鍵按下時(shí),數(shù)碼管地變化與加分按鍵按下時(shí)變化相反,直至分?jǐn)?shù)為0.唯一岀現(xiàn)異常地地方就是36us到40us這段時(shí)間,在此段時(shí)間內(nèi),由于加分按鍵按下地時(shí)間比較長(zhǎng),ledo地顯示值一直在增加3細(xì)節(jié)圖如圖4. 5所示.® max+plus ii d:biyeshejichengxuyouhuajifenban jifenbanscf waveform editormax4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工助劑銷售合同范本
- 公司銷售授權(quán)合同范本
- 專屬模特簽約合同范本
- 北京新房二手房合同范本
- 上海小產(chǎn)權(quán)合同范本
- 剛果勞務(wù)雇傭合同范本
- 全國(guó)中圖版高中信息技術(shù)必修一第四單元加工表達(dá)信息第二節(jié)《創(chuàng)作電子作品》教學(xué)設(shè)計(jì)
- 農(nóng)村機(jī)井托管合同范本
- 辦公空房出租合同范本
- 制衣小廠轉(zhuǎn)讓合同范本
- 《室內(nèi)照明設(shè)計(jì)》(熊杰)794-5 教案 第7節(jié) 綠色照明、節(jié)能照明與應(yīng)急照明
- 2023±800kV及以上特高壓直流工程閥廳設(shè)計(jì)導(dǎo)則
- 腦卒中后認(rèn)知障礙的護(hù)理課件
- 《大學(xué)生國(guó)防教育教程》第四章
- 抑郁病診斷證明書
- mks robin nano主板使用手冊(cè)信息科技保留一切權(quán)利
- 幼兒教師口語(yǔ)(高職學(xué)前教育)PPT完整全套教學(xué)課件
- 婦產(chǎn)科運(yùn)用PDCA降低產(chǎn)后乳房脹痛發(fā)生率品管圈成果報(bào)告書
- 第四章泵的汽蝕
- 數(shù)字孿生水利工程建設(shè)技術(shù)導(dǎo)則(試行)
- 零售藥店醫(yī)保培訓(xùn)試題及答案,零售藥店醫(yī)保培
評(píng)論
0/150
提交評(píng)論