版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 大連海事大學(xué)</b></p><p><b> 畢 業(yè) 論 文</b></p><p><b> 二○一○年 六 月</b></p><p> 基于FPGA設(shè)計(jì)地鐵自動售票系統(tǒng)</p><p> 專業(yè)班級: 電科1班</p>
2、<p> 姓 名: 魏 思 奧</p><p> 指導(dǎo)教師: 畢 春 娜</p><p><b> 信息科學(xué)技術(shù)學(xué)院</b></p><p><b> 內(nèi)容摘要</b></p><p> 本畢業(yè)設(shè)計(jì)是基于FPGA設(shè)計(jì)一個地鐵自動售票系統(tǒng)。近年來,集成電路技術(shù)的迅猛發(fā)展
3、,特別是可編程邏輯器件的高速發(fā)展,電子設(shè)計(jì)自動化EDA技術(shù)成為電子設(shè)計(jì)工程師的新寵。然而隨著城市人口的迅速增加、車輛的增多,世界各地的城市交通變得愈發(fā)擁擠,地鐵成為城市交通的重要組成部分。隨著國民經(jīng)濟(jì)的發(fā)展,我國的地鐵建設(shè)也日益成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧W鳛榈罔F運(yùn)營服務(wù)的第一道關(guān),改善地鐵已逐漸落后于時代步伐的售票系統(tǒng)勢在必行。本系統(tǒng)是結(jié)合行業(yè)管理中實(shí)際的地鐵售票系統(tǒng)運(yùn)行過程中的需求過程,經(jīng)過實(shí)際的需求分析,開發(fā)出來的地鐵自動
4、售票系統(tǒng)。整個系統(tǒng)的設(shè)計(jì)從符合操作簡便快捷、靈活實(shí)用、保證穩(wěn)定安全的要求出發(fā),完成售票管理的基本過程。</p><p> 本設(shè)計(jì)采用自頂向下的模塊化設(shè)計(jì)方法,基于FPGA使用Verilog語言設(shè)計(jì)制作一個地鐵自動售票控制系統(tǒng),該系統(tǒng)能出售2條線路3種不同價位的票,完成售票、找零、顯示等功能。通過本設(shè)計(jì),正確掌握數(shù)字系統(tǒng)的模塊劃分、并能自如應(yīng)用硬件描述語言描述各模塊功能,以實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)。以VHDL語言和MAX+P
5、LUSII為工具,在ZY11EDA13BE實(shí)驗(yàn)系統(tǒng)主板上,實(shí)現(xiàn)了地鐵自動售票系統(tǒng)。系統(tǒng)劃分為幾個功能模塊,分模塊進(jìn)行分析和設(shè)計(jì),系統(tǒng)給出相應(yīng)的設(shè)計(jì)原理圖和VHDL源程序,通過仿真實(shí)現(xiàn)預(yù)定的功能。</p><p> 關(guān)鍵詞:FPGA;地鐵自動售票系統(tǒng);EDA;VHDL; MAX+PLUSII;模塊;仿真</p><p><b> ABSTRACT</b></p
6、><p> The graduation project is based on the FPGA design of a subway ticket system. In recent years, the rapid development of integrated circuit technology, in particular the rapid development of programmable
7、logic devices, electronic design automation EDA technology to become the new darling of electronic design engineers. However, with the rapid urban population increase in the number of vehicles around the world have becom
8、e increasingly congested urban traffic, Metro became an important part of urb</p><p> This design uses a top-down modular design method, based on FPGA design using VHDL, a subway ticket control system, whic
9、h can sell two lines 3 different ticket prices, the completion of ticket sales, give change, and display functions . Through this design, the correct number of system control module division, and to ease application of h
10、ardware description language to describe the function of each module to achieve the system design. In VHDL and MAX + PLUSII language as a tool, ZY11EDA13BE expe</p><p> keywords: subway automatic ticketing
11、system; EDA;VHDL MAX+PLUSII; Module; Simulation目 錄</p><p><b> 1 緒論1</b></p><p> 1.1 研究背景1</p><p> 1.2 研究內(nèi)容及功能介紹1</p><p> 1.3 論文結(jié)構(gòu)2</p>
12、<p><b> 2 理論基礎(chǔ)2</b></p><p> 2.1 EDA技術(shù)2</p><p> 2.2 FPGA2</p><p> 2.2.1 FPGA簡介2</p><p> 2.2.2 FPGA的基本特點(diǎn)3</p><p> 2.2.3 FPGA的優(yōu)點(diǎn)3
13、</p><p> 2.3 VHDL語言4</p><p> 2.3.1 VHDL簡介4</p><p> 2.3.2 VHDL系統(tǒng)設(shè)計(jì)的特點(diǎn)4</p><p> 2.3.3 VHDL系統(tǒng)優(yōu)勢5</p><p> 2.3.4 VHDL基本結(jié)構(gòu)5</p><p> 2.4 M
14、AX+plusⅡ軟件6</p><p> 2.4.1 MAX+plusⅡ軟件簡介6</p><p> 2.4.2 MAX+plusⅡ軟件特點(diǎn)6</p><p> 2.4.3 MAX+plusⅡ可編程設(shè)計(jì)流程6</p><p> 3 系統(tǒng)分析與設(shè)計(jì)方案8</p><p> 3.1 系統(tǒng)的總體框架結(jié)構(gòu)
15、8</p><p> 3.2 功能模塊分析9</p><p> 3.2.1 車票選擇模塊9</p><p> 3.2.2 錢幣處理模塊11</p><p> 3.2.3 余額計(jì)算模塊12</p><p> 3.2.4 顯示功能模塊14</p><p> 4. 硬件實(shí)現(xiàn)16
16、</p><p> 4.1 連線布局與下載16</p><p> 4.2 系統(tǒng)不足17</p><p> 5 系統(tǒng)改進(jìn)方向及設(shè)計(jì)總結(jié)17</p><p> 5.1 系統(tǒng)改進(jìn)方向17</p><p> 5.2 設(shè)計(jì)總結(jié)18</p><p><b> 【參考文獻(xiàn)】1
17、9</b></p><p><b> 【致謝】20</b></p><p> 基于FPGA設(shè)計(jì)地鐵自動售票系統(tǒng)</p><p><b> 1 緒論</b></p><p><b> 1.1 研究背景</b></p><p> 地鐵
18、,源于19世紀(jì)中葉的英國。在當(dāng)時的倫敦,因?yàn)樯a(chǎn)力的急速發(fā)展,數(shù)以千計(jì)的工廠、房屋被建造起來。城市在爆炸性的發(fā)展中幾乎陷于崩潰。為此人們迫切需要有比狹窄的街道更好的交通渠道。查爾斯·皮爾遜提出了解決這一問題的方法,那就是“在地下建造鐵路”。世界首條地鐵“大都市鐵道”于1843年在他的提議下開始建設(shè),至1863年終于開通。在其開通的首年,就創(chuàng)造了運(yùn)載乘客950萬人次的記錄,顯示了地鐵在城市交通中勃勃的生命力。[1]</p&
19、gt;<p> 在一百多年后的今天,隨著城市人口的迅速增加、車輛的增多,世界各地的城市交通變得愈發(fā)擁擠。同時,環(huán)境污染、能源危機(jī)等一系列問題也促使人們?nèi)ミM(jìn)一步的思考城市交通的未來。地鐵與城市中其它交通工具相比,在許多方面有著明顯的優(yōu)勢:除了能夠避免城市地面擁擠和充分利用空間外,它的運(yùn)量大,運(yùn)輸能力是地面公共汽車的7一10倍,這是任何城市交通工具所不能比擬的;速度快,可以在地下隧道內(nèi)直線地快速行進(jìn),行駛的時速可超過100公
20、里;并且無污染,以電力作為動力,不存在空氣污染問題。</p><p> 地鐵配套設(shè)備的范圍十分廣泛,包括了車輛選型與行車組織、供電系統(tǒng)、環(huán)控通風(fēng)系統(tǒng)、給排水及消防系統(tǒng)、通信系統(tǒng)、信號系統(tǒng)、自動扶梯、電梯、自動售檢票系統(tǒng)、防災(zāi)報警系統(tǒng)、設(shè)備監(jiān)控系統(tǒng)、綜合信息管理系統(tǒng)、旅客向?qū)到y(tǒng)、運(yùn)營控制中心系統(tǒng)、車輛段及綜合基地系統(tǒng)、勘察、檢驗(yàn)系統(tǒng)、施工系統(tǒng)等各個方面。[2]</p><p> 其中,
21、自動售檢票(AFC)系統(tǒng)利用先進(jìn)的機(jī)電一體化技術(shù)和先進(jìn)的電子、通信、網(wǎng)絡(luò)等技術(shù),使售票、檢票、計(jì)費(fèi)、收費(fèi)、統(tǒng)計(jì)全過程管理自動化,減少了運(yùn)營部門工作人員的勞動強(qiáng)度,能及時獲取客流信息與軌道交通系統(tǒng)運(yùn)營收益的第一手資料,保證投資回報。它的出現(xiàn),淘汰了工作強(qiáng)度大、漏檢票率高、適用范圍又小的傳統(tǒng)手工售檢票方式,為地鐵能夠合理計(jì)費(fèi)、吸引客流、遏制舞弊和逃票、減少管理人員、削減運(yùn)營成本等都提供了可能,顯著提高了其社會效益和經(jīng)濟(jì)效益,目前已成為了現(xiàn)代
22、化地鐵的標(biāo)準(zhǔn)配置。[3]</p><p> 在地鐵系統(tǒng)的應(yīng)用越來越廣泛,大大改善城市交通的同時,人們也對其配套設(shè)備的現(xiàn)代化程度提出了更高的要求。隨著國民經(jīng)濟(jì)的發(fā)展,我國的地鐵建設(shè)也日益成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?。絕大多數(shù)的城市軌道交通系統(tǒng)都是用來運(yùn)載市內(nèi)通勤的乘客,而在很多場合下城市軌道交通系統(tǒng)都會被當(dāng)成城市交通的骨干。通常,城市軌道交通系統(tǒng)是許多都市用以解決交通堵塞問題的方法。然而售票作為地鐵運(yùn)營服務(wù)
23、的第一道關(guān),改善地鐵已逐漸落后于時代步伐的售票系統(tǒng)勢在必行。</p><p> 然而近年來,集成電路技術(shù)的迅猛發(fā)展,特別是可編程邏輯器件的高速發(fā)展,電子設(shè)計(jì)自動化EDA技術(shù)成為電子設(shè)計(jì)工程師的新寵。EDA技術(shù)以計(jì)算機(jī)為工具完成數(shù)字系統(tǒng)的邏輯綜合、布局布線和設(shè)計(jì)仿真等工作。電路設(shè)計(jì)者只需要完成對系統(tǒng)功能的描述,就可以由計(jì)算機(jī)軟件進(jìn)行系統(tǒng)處理,最后得到設(shè)計(jì)結(jié)果,并且修改設(shè)計(jì)方案如同修改軟件一樣方便。利用EDA工具可
24、以極大地提高設(shè)計(jì)效率。所以最終采用EDA技術(shù)基于FPGA設(shè)計(jì)如此地鐵自動售票系統(tǒng)。[4]</p><p> 1.2 研究內(nèi)容及功能介紹</p><p> 作為車站設(shè)備的一員,自動售票機(jī)ATVM(Auto Ticket Vending Machine),往往被安裝在車站非付費(fèi)區(qū)內(nèi),用于軌道交通車票銷售的乘客自助服務(wù)。自動售票機(jī)具有引導(dǎo)乘客購票的相關(guān)操作說明和提示,配備觸模屏、乘客顯示器及
25、運(yùn)營狀態(tài)顯示器,用于顯示地鐵線路、票價、投入錢幣金額、設(shè)備運(yùn)行狀態(tài)等信息。目前通用的軌道交通單程車票一般為非接觸式的方形IC卡,自動售票機(jī)根據(jù)規(guī)格型號的不同,可以分別按照硬幣、紙幣以及交通一卡通儲值卡這三種支付方式的一到多種進(jìn)行售票。一次交易中的發(fā)卡數(shù)量也可以在一到多張間不等。</p><p> 本設(shè)計(jì)采用自頂向下的模塊化設(shè)計(jì)方法,基于FPGA,以VHDL語言和MAX+ PLUSII為工具,在ZY11EDA13
26、BE實(shí)驗(yàn)系統(tǒng)主板上,運(yùn)用VHDL有限狀態(tài)機(jī)設(shè)計(jì)地鐵自動售票系統(tǒng)。[5]</p><p> 本系統(tǒng)是結(jié)合行業(yè)管理中實(shí)際的地鐵售票系統(tǒng)運(yùn)行過程中的需求過程,經(jīng)過實(shí)際的需求分析,開發(fā)出來的地鐵自動售票系統(tǒng)。</p><p> 筆者參與設(shè)計(jì)的自動售票機(jī),就其功能特點(diǎn)來說,可以歸納如下:</p><p> 1)該自動售票系統(tǒng)可對1號、2號兩條地鐵線售票,每條線均有3、4
27、、5元三種票。</p><p> 2)能選擇買1張或2張票;</p><p> 3)有5元、10元兩個投幣口。當(dāng)投入的錢幣與選擇的票款相等時,送出車票;若投入的錢幣不夠,1分鐘后,退出錢幣,無票送出;若投入的錢幣超過票款,能自動找贖。</p><p> 4)系統(tǒng)顯示選擇的是幾號線、所選票面額、購買的票數(shù)、投入的錢幣額及找贖的錢額。</p><
28、;p><b> 1.3 論文結(jié)構(gòu)</b></p><p> 本文分五章,第一章是緒論部分,簡單介紹了地鐵自動售票機(jī)的背景、系統(tǒng)設(shè)計(jì)的內(nèi)容以及功能描述、論文整體結(jié)構(gòu)。第二章是理論基礎(chǔ),主要介紹了EDA技術(shù)、FPGA、VHDL語言結(jié)構(gòu)和MAX+plusⅡ軟件的設(shè)計(jì)流程。第三章介紹了系統(tǒng)設(shè)計(jì)的總體思路和各個模塊的功能設(shè)計(jì)與編譯仿真。第四章是系統(tǒng)頂層圖連線布局,下載硬件實(shí)現(xiàn),結(jié)果分析,以及
29、系統(tǒng)存在的不足。第五章主要介紹系統(tǒng)的改進(jìn)方向,并總結(jié)本系統(tǒng)設(shè)計(jì)的意義。</p><p><b> 2 理論基礎(chǔ)</b></p><p><b> 2.1 EDA技術(shù)</b></p><p> EDA是電子設(shè)計(jì)自動化(Electronic Design Automation)的縮寫,在20世紀(jì)60年代中期從計(jì)算機(jī)輔助設(shè)
30、計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來的。</p><p> 20世紀(jì)90年代,國際上電子和計(jì)算機(jī)技術(shù)較先進(jìn)的國家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了極大的靈活性。這些器件可
31、以通過軟件編程而對其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。[6]</p><p> EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺上,用硬件描述語言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映
32、射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動強(qiáng)度。</p><p> 利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個過程的計(jì)算機(jī)上自動處理完成。</p><p> 現(xiàn)在對EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通
33、信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個領(lǐng)域,都有EDA的應(yīng)用。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計(jì)、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。[7]</p><p><b> 2.2 FPGA</b></p><p> 2.2.1 FPGA簡介</p><p>
34、 FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。[8]</p><p> 目前以硬件描述語言(Verilog-HDL或VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局
35、,快速的燒錄至FPGA上進(jìn)行測試,是現(xiàn)代IC設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。</p><p> 系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路
36、試驗(yàn)板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。[9]</p><p> FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以
37、這些設(shè)計(jì)的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。[10]</p><p> 2.2.2 FPGA的基本特點(diǎn)</p><p> FPGA采用了邏輯單元陣列(LOA,Logic Cell Arry)這樣一個新概念,內(nèi)部包括可配置邏輯模塊(CLB,Configurable Logic Block)、輸入輸
38、出模塊(IOB,Input Output Block)和內(nèi)部連線(Interconnect)三個部分。FPGA的基本特點(diǎn)主要有:</p><p> 1)采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn)就能得到合用的芯片;</p><p> 2)FPGA可做其他全定制或半定制ASIC電路的試樣片:</p><p> 3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳;&
39、lt;/p><p> 4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險最小的器件之一;</p><p> 5)FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。</p><p> 可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度和可靠性的最佳選擇之一。[11]</p><p> 目前FPGA的品種很多,有X
40、ILINX的xc系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。</p><p> FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的。因此,工作時需要對片內(nèi)的RAM進(jìn)行編程。用戶可以根據(jù)不同的配置模式采用不同的編程方式。</p><p> 加電時,F(xiàn)PGA芯片將EPROM中的數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部
41、邏輯關(guān)系消失。因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程不需專用的FPGA編程器,只需用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA、不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。</p><p> FPGA有下面4種配置模式:</p><p> 1)并行主模式為一片F(xiàn)PGA加一片EPROM的方式
42、;</p><p> 2)主從模式可以支持一片PROM編程多片F(xiàn)PGA:</p><p> 3)串行模式可以采用串行PROM編程FPGA;</p><p> 4)外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對其編程。[12]</p><p> 2.2.3 FPGA的優(yōu)點(diǎn)</p><p> FPGA芯片
43、都是特殊的ASIC芯片,除了具有ASIC的特點(diǎn)之外,還具有以下3個優(yōu)點(diǎn)。</p><p> 1)隨著超大規(guī)模集成電路(VLSI,Very Large Scale IC)工藝的不斷提高,單一芯片內(nèi)部可以容納上百萬個晶體管,F(xiàn)PGA/CPLD芯片的規(guī)模也越來越大,其單片邏輯門數(shù)已達(dá)到上百萬門,它所能實(shí)現(xiàn)的功能也越來越強(qiáng),同時也可以實(shí)現(xiàn)系統(tǒng)集成。</p><p> 2)FPGA/CPLD芯片
44、在出廠之前都做過百分之百的測試,不需要設(shè)計(jì)人員承擔(dān)投片風(fēng)險和費(fèi)用,設(shè)計(jì)人員只需在自己的實(shí)驗(yàn)室里就可以通過相關(guān)的軟硬件環(huán)境來完成芯片的最終功能設(shè)計(jì)。所以,F(xiàn)PGA/CPLD的資金投入小,節(jié)省了許多潛在的花費(fèi)。</p><p> 3)用戶可以反復(fù)地編程、擦除、使用或者在外圍電路不動的情況下用不同的軟件實(shí)現(xiàn)不同的功能。所以,用FPGAiCPLD試制樣片,能以最快的速度占領(lǐng)市場。FPGA/CPLD軟件包中有各種輸入工具
45、和仿真工具及版圖設(shè)計(jì)工具和編程器等全線產(chǎn)品,電路設(shè)計(jì)人員在很短的時間內(nèi)就可完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。當(dāng)電路有少量改動時,更能顯示出FPGA/CPLD的優(yōu)勢。電路設(shè)計(jì)人員使用FPGA/CPLD進(jìn)行電路設(shè)計(jì)時,不需要具備專門的IC(集成電路)深層次的知識,F(xiàn)PGA/CPLD軟件易學(xué)易用,可以使設(shè)計(jì)人員更能集中精力進(jìn)行電路設(shè)計(jì),快速將產(chǎn)品推向市場。[13]</p><p> 2.3 VHD
46、L語言</p><p> 2.3.1 VHDL簡介</p><p> VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,誕生于1982年。1987年底,VHDL被IEEE和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言 。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076(簡稱87版)之后,各EDA
47、公司相繼推出了自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語言。1993年,IEEE對VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,(簡稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多EDA公司的支持,在電子工程
48、領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。有專家認(rèn)為,在新的世紀(jì)中,VHDL于Verilog語言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。[14]</p><p> VHDL語言是一種用于電路設(shè)計(jì)的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計(jì)的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計(jì)語言 。 </p><p> VHDL的英文全寫是:VHSIC(Very Hi
49、gh Speed Integrated Circuit)Hardware Description Language.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。目前,它在中國的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來設(shè)計(jì)ASIC。[15]</p><p> VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許
50、多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對一個設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。[16]&
51、lt;/p><p> 2.3.2 VHDL系統(tǒng)設(shè)計(jì)的特點(diǎn)</p><p> 與其他硬件描述語言相比,VHDL具有以下特點(diǎn): </p><p> 1)功能強(qiáng)大、設(shè)計(jì)靈活</p><p> VHDL具有功能強(qiáng)大的語言結(jié)構(gòu),可以用簡潔明確的源代碼來描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級描述。VHDL支持同
52、步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語言所不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。</p><p> 2)支持廣泛、易于修改</p><p> 由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路
53、設(shè)計(jì)過程中,主要的設(shè)計(jì)文件是用VHDL編寫的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。</p><p> 3)強(qiáng)大的系統(tǒng)硬件描述能力</p><p> VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型
54、。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。</p><p> 4)獨(dú)立于器件的設(shè)計(jì)、與工藝無關(guān)</p><p> 設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時,不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)其功能。</p><p><b&
55、gt; 5)很強(qiáng)的移植能力</b></p><p> VHDL是一種標(biāo)準(zhǔn)化的硬件描述語言,同一個設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。</p><p><b> 6)易于共享和復(fù)用</b></p><p> VHDL采用基于庫(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)
56、計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。[16]</p><p> 2.3.3 VHDL系統(tǒng)優(yōu)勢</p><p> 1)與其他的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和
57、設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。 </p><p> 2)VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時可對設(shè)計(jì)進(jìn)行仿真模擬。 </p><p> 3)VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實(shí)現(xiàn)。 </p
58、><p> 4)對于用VHDL完成的一個確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級網(wǎng)表。 </p><p> 5)VHDL對設(shè)計(jì)的描述具有相對獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。[17]</p><p> 2.3.4 VHDL基本結(jié)構(gòu)</p><
59、p> VHDL程序包括了三部分:程序包、實(shí)體、結(jié)構(gòu)體。[18]</p><p> 1)程序包:定義在設(shè)計(jì)結(jié)構(gòu)體和實(shí)體中將用到的常數(shù)、數(shù)據(jù)類型、子程序和設(shè)計(jì)好的電路單元等。</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE
60、.STD_LOGIC_ARITH.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> 2)實(shí)體:設(shè)計(jì)系統(tǒng)單元所需要的輸入輸出端口信息。</p><p> ENTITY 實(shí)體名稱 IS</p><p><b> PORT(</b></p>&
61、lt;p> 端口信號名稱1: 輸入/輸出狀態(tài) 數(shù)據(jù)類型;</p><p> 端口信號名稱1: 輸入/輸出狀態(tài) 數(shù)據(jù)類型;</p><p><b> …………</b></p><p> 端口信號名稱N: 輸入/輸出狀態(tài) 數(shù)據(jù)類型</p><p><b> );</b><
62、;/p><p><b> END實(shí)體名稱 ;</b></p><p> 3)結(jié)構(gòu)體:描述電路單元具體的內(nèi)部結(jié)構(gòu)和邏輯功能。</p><p> ARCHITECTURE 結(jié)構(gòu)體名 OF 實(shí)體名稱 IS</p><p><b> 說明語句</b></p><p><b&
63、gt; BEGIN </b></p><p><b> 電路功能描述語句</b></p><p><b> END 結(jié)構(gòu)體名;</b></p><p><b> 結(jié)構(gòu)體注意事項(xiàng):</b></p><p> ?、俳Y(jié)構(gòu)體不能單獨(dú)存在,它必須有一個界面說明,即一個
64、實(shí)體。</p><p> ②每個實(shí)體可以有一個或多個結(jié)構(gòu)體,每個結(jié)構(gòu)體對應(yīng)著實(shí)體不同結(jié)構(gòu)和算法實(shí)現(xiàn)。多個結(jié)構(gòu)體名應(yīng)區(qū)分。</p><p> ③對于具有多個結(jié)構(gòu)體的實(shí)體,必須用CONFIGURATION配置。</p><p> ?、芙Y(jié)構(gòu)體中說明和定義的數(shù)據(jù)類型、常數(shù)等只能用于該結(jié)構(gòu)體中,若要用于其他實(shí)體或結(jié)構(gòu)體中,需將其作為程序包來處理。[19]</p>
65、;<p> 2.4 MAX+plusⅡ軟件</p><p> 2.4.1 MAX+plusⅡ軟件簡介</p><p> MAX+plusⅡ(Multiple Array and Programming Logic User System)開發(fā)工具是美國Altera 公司推出的一種EDA 工具,具有靈活高效,使用便捷,易學(xué)易用的特點(diǎn)。Altera 公司在推出各種CPLD
66、和FPGA 的同時也在不斷地升級相應(yīng)的開發(fā)工具軟件,已從早期的第一代A+plus、第二代MAX+plus 發(fā)展到目前的第三代MAX+plus II 和第四代Quartus。使用MAX+plusⅡ軟件,設(shè)計(jì)者無需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),只需熟悉所用的設(shè)計(jì)輸入工具,如硬件描述語言、原理圖等進(jìn)行輸入,MAX+plusⅡ自動將設(shè)計(jì)轉(zhuǎn)換成目標(biāo)文件下載到器件中去。[20]</p><p> 2.4.2 MAX+plusⅡ軟
67、件特點(diǎn)</p><p> MAX+plusⅡ開發(fā)系統(tǒng)具有以下特點(diǎn)。</p><p> 1)多平臺系統(tǒng) MAX+plusⅡ的設(shè)計(jì)輸入、處理與校驗(yàn)功能一起提供了全集成化的可編程開發(fā)工具,可以加快動態(tài)調(diào)試,縮短開發(fā)周期。</p><p> 2)開放的界面 MAX+plusⅡ可與其它工業(yè)標(biāo)準(zhǔn)的設(shè)計(jì)輸入、綜合和校驗(yàn)工具鏈接。具有EDIF,VHDL,Verilog HDL
68、 以及其他的網(wǎng)表接口,便于與許多公司的EDA 工具接口,包括Cadence,Mentor,Synopsys,Synplicity,Viewlogic等公司提供的EDA 工具的接口。</p><p> 3)模塊組合式工具軟件MAX+plusⅡ具有一個完整的可編程邏輯設(shè)計(jì)環(huán)境,包括設(shè)計(jì)輸入、設(shè)計(jì)處理、設(shè)計(jì)校驗(yàn)仿真和下載編程四個模塊,設(shè)計(jì)者可以按設(shè)計(jì)流程選擇工作模塊。</p><p> 4)
69、與結(jié)構(gòu)無關(guān) MAX+plusⅡ支持Altera 的Classic、MAX5000、MAX7000、FLEX8000、FLEXlOK 等可編程器件系列,提供工業(yè)界中唯一真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計(jì)環(huán)境。</p><p> 5)硬件描述語言 MAX+plusⅡ支持各種HDL 硬件設(shè)計(jì)輸入語言,包括VHDL、VerilogHDL 和Altera 的硬件描述語言AHDL。[21]</p><p&g
70、t; 2.4.3 MAX+plusⅡ可編程設(shè)計(jì)流程</p><p> MAX+plusⅡ設(shè)計(jì)流程圖如圖1所示:</p><p> 圖 1 MAX+plusⅡ設(shè)計(jì)流程圖</p><p> 步驟1:為本項(xiàng)工程設(shè)計(jì)建立文件夾</p><p> 任何一項(xiàng)設(shè)計(jì)都是一項(xiàng)工程(Project),都必須首先為此工程建立一個放置與此工程相關(guān)的文件的文
71、件夾,此文件夾將被EDA軟件默認(rèn)為工作庫(Work Library)。一般不同的設(shè)計(jì)項(xiàng)目最好放在相應(yīng)的文件夾中,注意,一個設(shè)計(jì)項(xiàng)目可以包含多個設(shè)計(jì)文件,文件夾名不能用中文,且不可帶空格。</p><p> 步驟2:輸入設(shè)計(jì)項(xiàng)目和存盤[22]</p><p> 設(shè)計(jì)者將所設(shè)計(jì)的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表現(xiàn)出來,并送入計(jì)算機(jī)的過程稱為設(shè)計(jì)輸入。設(shè)計(jì)輸入通常有以下幾種方式。<
72、/p><p><b> 1)原理圖輸入方式</b></p><p> 2)硬件描述語言輸入方式</p><p><b> 3)波形輸入方式</b></p><p> 4)層次化設(shè)計(jì)輸入方式</p><p> 步驟3:將設(shè)計(jì)項(xiàng)目設(shè)置成工程文件</p><
73、;p> 為了使MAX+ plusII能對輸入的設(shè)計(jì)項(xiàng)目按設(shè)計(jì)者的要求進(jìn)行各項(xiàng)處理,必須將設(shè)計(jì)文件設(shè)置成當(dāng)前Project。[23]</p><p> 步驟4:選擇目標(biāo)器件并編譯</p><p> 這是器件設(shè)計(jì)中的核心環(huán)節(jié)。在設(shè)計(jì)處理過程中,編譯軟件將對設(shè)計(jì)輸入文件進(jìn)行邏輯化簡、綜合和優(yōu)化,并適當(dāng)?shù)赜靡黄蚨嗥骷詣舆M(jìn)行適配,最后產(chǎn)生編程用的編程文件。[24]</p>
74、;<p><b> 步驟5:時序仿真</b></p><p><b> 1)建立波形文件</b></p><p><b> 2)輸入信號節(jié)點(diǎn)</b></p><p><b> 3)設(shè)置波形參量</b></p><p><b>
75、; 4)設(shè)置仿真時間</b></p><p><b> 5)加上輸入信號</b></p><p><b> 6)波形文件存盤</b></p><p> 7)運(yùn)行仿真器[25]</p><p><b> 步驟6:建立元件</b></p><
76、;p> 步驟7:引腳鎖定[26]</p><p><b> 步驟8:編程下載</b></p><p> 在以上步驟都正確實(shí)施并完全通過以后,我們就可以將我們設(shè)計(jì)的項(xiàng)目(最終的數(shù)據(jù)編程文件)下載到器件中去,然后加入實(shí)際的激勵信號進(jìn)行測試,在我們的目標(biāo)系統(tǒng)中進(jìn)行產(chǎn)品級使用了。如果還未最終達(dá)到我們的設(shè)計(jì)目的,則需返回以上步驟查找設(shè)計(jì)問題直至無誤。[27]<
77、/p><p> 3 系統(tǒng)分析與設(shè)計(jì)方案</p><p> 3.1 系統(tǒng)的總體框架結(jié)構(gòu)</p><p> 地鐵自動售票系統(tǒng)大致可分為四個功能模塊:車票選擇模塊、錢幣處理模塊、余額計(jì)算模塊、顯示功能模塊。[28]</p><p> 系統(tǒng)總體框圖如圖2所示:</p><p> 圖 2 系統(tǒng)總體框圖</p>
78、<p> 1)車票選擇模塊。當(dāng)自動售票機(jī)通電時,表示一次投幣售票過程開始;乘客正常購買車票操作失誤包括改變購買意向或不再購買,按rd按鈕重新進(jìn)入初始狀態(tài);在初始狀態(tài)path、pri和qua生效時,顧客可以根據(jù)自己的需要,選擇其中一種車票(只限一種)和票數(shù),進(jìn)入下一模塊。</p><p> 2)錢幣處理模塊。表示投入的錢幣是5元、10元的coin_5、coin_10生效,記錄所投錢幣總額。</
79、p><p> 3)余額計(jì)算模塊。當(dāng)投人錢幣總額大于或等于車票價格,并且按確認(rèn)鍵后出票并找零;若投入錢幣總額小于車票價格,售票機(jī)不出票,并退出所投錢幣,進(jìn)入初始狀態(tài)。</p><p> 4)顯示功能模塊。此模塊根據(jù)輸入提供的數(shù)據(jù),用數(shù)碼管來顯示選擇的是幾號線、所選票面額、購買的票數(shù)、投入的錢幣額及找贖的錢額。[29]</p><p> 本系統(tǒng)中乘客投幣售票流程如圖3
80、所示:</p><p> 圖 3 投幣售票流程圖</p><p> 3.2 功能模塊分析</p><p> 3.2.1 車票選擇模塊</p><p> 車票選擇模塊是指對商品進(jìn)行選擇與購買。4種票價(3元,4元,5元,6元),乘客可以選擇所要購買的票數(shù)(1張票,2張票)。[30]</p><p> 車票選擇模
81、塊如圖4所示:</p><p> 圖 4 車票選擇模塊</p><p><b> 1)輸入</b></p><p> ?、賠d:模塊復(fù)位信號,將所有輸出信號清零。作為開始一次購票過程的按鍵,也可以作為讓乘客重新選票的按鍵。</p><p> ?、赾lk:模塊的時鐘信號。</p><p> ?、?/p>
82、pri_3,pri_4,pri_5,pri_6:將其中一個置高電平,作為選擇一種票價(3元,4元,5元,6元)。</p><p> ?、躴ua_1,qua_2:將其中一個置高電平,作為選擇購買車票的數(shù)量(一張票,兩張票)。</p><p><b> 2)輸出</b></p><p> ?、賞ri[3..0]:表示所選票價,輸出到余額計(jì)算模塊和
83、顯示功能模塊,作為判斷出何種票的條件,并在數(shù)碼管顯示出車票單價。</p><p> ?、趒ua[3..0]:表示所買票數(shù),輸出到顯示功能模塊,在數(shù)碼管顯示出票數(shù)。</p><p> ?、踓ost[3..0]:表示應(yīng)付總額,根據(jù)票價和票數(shù)來計(jì)算出應(yīng)付的總額,輸出到余額計(jì)算模塊,用來計(jì)算找贖金額。[31]</p><p> 該車票選擇模塊的源程序如下:</p&g
84、t;<p><b> 車票選擇模塊</b></p><p> 圖 4 車票選擇模塊</p><p><b> 1)輸入</b></p><p> ①rd:模塊復(fù)位信號,將所有輸出信號清零。作為開始一次購票過程的按鍵,也可以作為讓乘客重新選票的按鍵。</p><p> ②clk
85、:模塊的時鐘信號。</p><p><b> ③</b></p><p> ?、躳ri_3,pri_4,pri_5, pri_6:將其中一個置高電平,作為選擇一種票價(3元,4元,5元 6元)。</p><p> ?、輖ua_1,qua_2:將其中一個置高電平,作為選擇購買車票的數(shù)量(一張票,兩張票)。</p><p>
86、;<b> 2)輸出</b></p><p> 1)pri[3..0]:表示所選票價,輸出到余額計(jì)算模塊和顯示功能模塊,作為判斷出何種票的條件,并在數(shù)碼管顯示出車票單價。</p><p> 2)qua[3..0]:表示所買票數(shù),輸出到顯示功能模塊,在數(shù)碼管顯示出票數(shù)。</p><p> 3)cost[3..0]:表示應(yīng)付總額,根據(jù)票價和
87、票數(shù)來計(jì)算出應(yīng)付的總額,輸出到余額計(jì)算模塊,用來</p><p> Module seller1(qua_1,qua_2, pri_3,pri_4,pri_5, pri_6,rd,clk,pri,qua,cost );</p><p> output qua,cost,pri;</p><p> input qua_1,qua_2,pri_3,pri_4,pr
88、i_5,pri_6,rd,clk;</p><p> reg pri,qua,cost;</p><p> reg[3,0]pri;</p><p> reg[3,0]qua;</p><p> reg[3,0]cost;</p><p> always@(rd or clk or qua_1 or qua_
89、2 or pri_3 or pri_4 or pri_5 or pri_6)</p><p><b> begin</b></p><p><b> if(rd==0)</b></p><p> pri<=0000;</p><p> qua<=0000;</p>
90、<p> cost<=0000;</p><p> else (posedge clk)</p><p><b> begin</b></p><p> if(pri_3=1||qua_1=1)</p><p><b> begin</b></p><p
91、> pri<=0011;</p><p> qua<=0001;</p><p><b> cost=pri;</b></p><p><b> end</b></p><p> else if(pri_3=1||qua_2=1)</p><p>
92、<b> begin</b></p><p> pri<=0011;</p><p><b> qua<=0010</b></p><p> cost<=pri+pri</p><p><b> end</b></p><p>
93、;<b> end</b></p><p> else if(pri_4=1||qua_1=1)</p><p><b> begin</b></p><p> pri<=0100;</p><p> qua<=0001;</p><p><b&g
94、t; cost=pri;</b></p><p><b> end</b></p><p> else if(pri_4=1||qua_2=1)</p><p><b> begin</b></p><p> pri<=0100;</p><p>
95、 qua<=0010;</p><p> cost<=pri+pri</p><p><b> end</b></p><p> else if(pri_5=1||qua_1=1)</p><p><b> begin</b></p><p> pri
96、<=0101;</p><p> qua<=0001;</p><p><b> cost=pri;</b></p><p> else if(pri_5=1||qua_2=1)</p><p><b> begin</b></p><p> pri&l
97、t;=0101;</p><p> qua<=0010;</p><p> cost<=pri+pri</p><p><b> end</b></p><p> if(pri_6=1||qua_1=1)</p><p><b> begin</b>&l
98、t;/p><p> pri<=0110;</p><p> qua<=0001;</p><p><b> cost=pri;</b></p><p> else if(pri_6=1||qua_2=1)</p><p><b> begin</b><
99、/p><p> pri<=0110;</p><p><b> qua<=0010</b></p><p> cost<=pri+pri</p><p><b> end</b></p><p><b> end</b></
100、p><p><b> end </b></p><p><b> endmodule</b></p><p> 建立波形文件,波形仿真圖如圖5所示</p><p> 圖 5 車票選擇模塊波形仿真圖</p><p> 在此波形仿真圖中,將path_1,pri_4,qua_
101、2依次置高電平作為輸入,輸出顯示為選擇的一號線,4元票,兩張票,應(yīng)付總額8元,說明達(dá)到此車票選擇模塊的預(yù)期功能。</p><p> 3.2.2 錢幣處理模塊</p><p> 錢幣處理模塊是對投入的錢幣進(jìn)行處理的過程,輸出參數(shù)coin為投幣數(shù)值計(jì)數(shù)器,以1元為單位進(jìn)行計(jì)算。該模塊入口參數(shù) coin1(投入1元錢)coin5(投入5元錢),coin10(投入10元錢)coin20(投入2
102、0元錢)。功能類似于計(jì)錢器,在清零的前提下,可準(zhǔn)確計(jì)算,記錄并保存所投入的總錢數(shù)。</p><p> 錢幣處理模塊如圖6所示:</p><p> 圖 6 錢幣處理模塊</p><p><b> 1)輸入</b></p><p> ①rd:模塊復(fù)位信號,將所有輸出信號清零。</p><p>
103、 ?、赾lk:模塊的時鐘信號。</p><p> ?、踓oin_1,coin_5,coin_10 coin_20:表示投入1元錢,5元錢,10元錢,20元錢。一次時鐘上升沿,若信號為‘1’時,表示投入一次1元錢,5元錢,10元錢和20元錢。</p><p><b> 2)輸出</b></p><p> ?、賑oinh[3..0],coinl[
104、3..0]:信號輸出到顯示功能模塊,在數(shù)碼管上顯示出投入錢幣總額的十位和個位。</p><p> ②coin[3..0]:表示投入錢幣的總額,輸出到余額計(jì)算模塊,與應(yīng)付總額相比較,來計(jì)算出找贖金額。</p><p> 該錢幣處理模塊的源程序如下:</p><p> ; module seller2(rd,clk,coin_1,coin_5,coin_10,co
105、in_20,coinh,coinl,coin)</p><p> output coinh,coinl,coin;</p><p> input rd,clk,coin_1,coin_5,coin_10,coin_20;</p><p> reg[3,0]coinh,coinl,coin;</p><p> always@(rd or
106、 clk or coin_1 or coin_5 or coin_10 or coin_20)</p><p><b> begin</b></p><p><b> if(!rd)</b></p><p><b> begin</b></p><p> coinh&l
107、t;=0000;</p><p> coinl<=0000;</p><p> coin<=0000;</p><p><b> end</b></p><p> else (posedge clk)</p><p><b> begin</b><
108、/p><p> if(coin_1=1)</p><p><b> begin</b></p><p> if(coinl=1001)</p><p><b> begin</b></p><p> coinl<=0000;</p><p>
109、; coinh<=coinh+1;</p><p> coin<=coin+1;</p><p><b> end</b></p><p><b> else</b></p><p><b> begin</b></p><p>
110、 coinl<=coinl+1;</p><p> coin<=coin+1;</p><p><b> end</b></p><p><b> end</b></p><p> else if(coin_5=1)</p><p><b>
111、begin</b></p><p> if(coinl=0101)</p><p> coinl<=0000;</p><p> coinh<=coinh+1;</p><p> coin<=coin+5;</p><p><b> end</b></
112、p><p><b> else</b></p><p><b> begin</b></p><p> coinl<=coinl+5;</p><p> coin<=coin+5;</p><p><b> end</b></p&
113、gt;<p><b> end</b></p><p> else if(coin_10=1)</p><p><b> begin</b></p><p> coinh<=coinh+1;</p><p> coin<=coin+10;</p>&
114、lt;p><b> end</b></p><p> else(coin20=1)</p><p><b> begin</b></p><p> coinh<=coinh+2;</p><p> coin<=coin+20;</p><p>&l
115、t;b> end</b></p><p><b> end</b></p><p><b> end </b></p><p><b> endmodule</b></p><p> 經(jīng)過編譯后建立波形文件,波形仿真圖如圖7所示:</p>
116、<p> 圖 7 投幣處理模塊波形仿真圖</p><p> 在此波形仿真圖中,coin_5,coin_10依次置了一個時鐘周期的高電平作為輸入,輸出顯示總額低位為5,高位為1,所投錢幣總額為15,說明達(dá)到此錢幣處理模塊的預(yù)期功能。</p><p> 3.2.3 余額計(jì)算模塊</p><p> 余額計(jì)算模塊主要完成出票找零操作。通過所投錢幣總額c
117、oin和應(yīng)付總額cost計(jì)算找贖余額,然后用發(fā)光二極管點(diǎn)亮表示出票和找零。錢數(shù)不夠票價的,退出所投錢幣數(shù)。</p><p> 余額計(jì)算模塊如圖8所示:</p><p> 圖 8 余額計(jì)算模塊</p><p><b> 1)輸入</b></p><p> ①rd:模塊復(fù)位信號,將所有輸出信號清零。</p>
118、;<p> ?、踗inish:用戶使用的確定按鍵。此信號置為高電平后,開始判斷是否出票,計(jì)算找贖余額。</p><p> ?、躳ri_in[3..0]:輸入乘客所選的票價,用來判斷出票時具體出哪張票。</p><p> ④cost_in[3..0],coin_in[3..0]:輸入應(yīng)付總額和所投錢幣總額,用來判斷是否出票,是否找贖,計(jì)算找贖余額。</p>&l
119、t;p><b> 2)輸出</b></p><p> ①act[3..0]:表示出票。車票共有4種,用4個發(fā)光二極管的點(diǎn)亮來表示具體出哪張票,若都不亮則表示不出票。</p><p> ?、赼ct_1:表示找贖。若信號為‘1’,用1個發(fā)光二極管的點(diǎn)亮表示需要找贖。</p><p> ?、踨est[3..0]:表示找贖余額。信號輸出到顯示
120、功能模塊,在數(shù)碼管顯示找贖余額。</p><p> 該余額計(jì)算模塊的源程序如下:</p><p> module seller3(rd,finish,pri_in,cost_in,coin_in,act,act_1,rest)</p><p> output act,act_1,rest;</p><p> input rd,fini
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga設(shè)計(jì)地鐵自動售票系統(tǒng)
- 論文綜述-基于fpga的地鐵售票系統(tǒng)設(shè)計(jì)
- 基于FPGA的地鐵自動售票機(jī)系統(tǒng)設(shè)計(jì).pdf
- 畢業(yè)論文-影院售票系統(tǒng)
- 火車售票系統(tǒng)(畢業(yè)論文)
- 民航售票管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──售票管理【畢業(yè)論文設(shè)計(jì)】
- 基于fpga的自動售貨機(jī)控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于fpga的自動售貨機(jī)控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于fpga的自動售貨機(jī)控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 地鐵自動驗(yàn)售票系統(tǒng)的設(shè)計(jì)與應(yīng)用.pdf
- 基于java的火車售票系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)論文
- 基于46net的網(wǎng)上航空售票系統(tǒng)-畢業(yè)論文設(shè)計(jì)
- 畢業(yè)論文--基于java的火車票售票系統(tǒng)
- 畢業(yè)論文——民航售票管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 民航售票管理系統(tǒng)──前臺界面設(shè)計(jì)【畢業(yè)論文設(shè)計(jì)】
- 基于單片機(jī)的地鐵自動門設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文——民航售票管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于單片機(jī)的地鐵自動門設(shè)計(jì)-畢業(yè)論文
- 地鐵自動售票圖形模擬系統(tǒng) 終極版
- 民航售票管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)論文設(shè)計(jì)】
評論
0/150
提交評論