《計(jì)算機(jī)組成原理》課程設(shè)計(jì)報(bào)告-基于VHDL的模擬地鐵售票控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).doc_第1頁
《計(jì)算機(jī)組成原理》課程設(shè)計(jì)報(bào)告-基于VHDL的模擬地鐵售票控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).doc_第2頁
《計(jì)算機(jī)組成原理》課程設(shè)計(jì)報(bào)告-基于VHDL的模擬地鐵售票控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).doc_第3頁
《計(jì)算機(jī)組成原理》課程設(shè)計(jì)報(bào)告-基于VHDL的模擬地鐵售票控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).doc_第4頁
《計(jì)算機(jī)組成原理》課程設(shè)計(jì)報(bào)告-基于VHDL的模擬地鐵售票控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).doc_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

長沙理工大學(xué)計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告 學(xué) 院 計(jì)通學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級 計(jì)算機(jī)09-02班 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 課程成績 完成日期 2012年7月6日課程設(shè)計(jì)任務(wù)書 計(jì)算機(jī)與通信工程 學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專業(yè)課程名稱計(jì)算機(jī)組成原理課程設(shè)計(jì)時(shí)間20112012學(xué)年第一學(xué)期1920周學(xué)生姓名指導(dǎo)老師題 目基于vhdl的模擬地鐵售票控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)主要內(nèi)容:利用 vhdl 語言設(shè)計(jì)地鐵售票系統(tǒng)的核心功能 maxplus ii軟件作為發(fā)平臺,設(shè)計(jì)城市地鐵售票系統(tǒng)程序并進(jìn)行仿真。使其實(shí)現(xiàn)選站、選擇張數(shù)、出票、找零等功能。要求:(1)要求能獨(dú)立地運(yùn)用vhdl語言、eda相關(guān)知識和max plus ii仿真軟件,編制一個(gè)簡單的課程設(shè)計(jì)。(2)學(xué)生按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果。(3)通過課程設(shè)計(jì)培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和團(tuán)隊(duì)協(xié)作精神。(4)學(xué)生應(yīng)抱著嚴(yán)謹(jǐn)認(rèn)真的態(tài)度積極投入到課程設(shè)計(jì)過程中,認(rèn)真查閱相應(yīng)文獻(xiàn)以及實(shí)現(xiàn),給出個(gè)人分析、設(shè)計(jì)以及實(shí)現(xiàn)。應(yīng)當(dāng)提交的文件:(1)課程設(shè)計(jì)報(bào)告。(2)課程設(shè)計(jì)附件(源程序、各類圖紙、實(shí)驗(yàn)數(shù)據(jù)、仿真截圖等實(shí)證材料)。課程設(shè)計(jì)成績評定學(xué) 院 計(jì)通學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級 計(jì)算機(jī)09-02班 學(xué) 號 200986250224 學(xué)生姓名 指導(dǎo)教師 完成日期 2012年7月6日 指導(dǎo)教師對學(xué)生在課程設(shè)計(jì)中的評價(jià)評分項(xiàng)目優(yōu)良中及格不及格課程設(shè)計(jì)中的創(chuàng)造性成果學(xué)生掌握課程內(nèi)容的程度課程設(shè)計(jì)完成情況課程設(shè)計(jì)動(dòng)手能力文字表達(dá)學(xué)習(xí)態(tài)度規(guī)范要求課程設(shè)計(jì)論文的質(zhì)量指導(dǎo)教師對課程設(shè)計(jì)的評定意見綜合成績 指導(dǎo)教師簽字 年 月 日基于vhdl的模擬地鐵售票控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名: 指導(dǎo)老師 摘 要: vhdl 語言對于復(fù)雜的數(shù)字系統(tǒng)的設(shè)計(jì),它有獨(dú)特的作用。它的硬件描述能力強(qiáng),能輕易的描述出硬件的結(jié)構(gòu)和功能。這種語言的應(yīng)用至少意味著兩種重大的改變:電路的 設(shè)計(jì)可以通過文字描述的方式完成;電子電路可以當(dāng)作文件一樣來存儲。隨著現(xiàn)代技術(shù)的發(fā)展,這種語言的效益與作用日益明顯,每年均能夠以超過 30的速度快速成長。這次課程設(shè)計(jì)就是利用 vhdl 語言設(shè)計(jì)地鐵售票系統(tǒng)的核心功能 maxplus ii軟件作為發(fā)平臺,設(shè)計(jì)城市地鐵售票系統(tǒng)程序并進(jìn)行仿真。使其實(shí)現(xiàn)選站、選擇張數(shù)、出票、找零等功能。 關(guān)鍵詞: 地鐵,售票,vhdl 語言,maxplus iivhdl based simulation of subway ticket control system design and implementation student: yuan jun advisor:yuangtaochenabstract: vhdl language is used to describe the behavior and structure of electronic systems but isparticularly suited as a language to describe the structure and behavior of digital electronichardware designs. the application of it means two changes: electro circuitdesign can be done by the kind of file description. and electro circuit canbe stored as a file.it is used to lower the cost and reduce the design cycle.it can supply designers needs easily. with the development of moderntechnology it grows more than 30 every year.the graduation project just simulate tickedsales system of metro use vhdl language and it under the platform of maxplus ii. the functionsstation select numbers select ticket out bids all will be showing in the emulator.key word: metro,ticked sales,vhdl,max-plus目錄1 引 言11.1 設(shè)計(jì)要求11.2 課題分析12 設(shè)計(jì)的基礎(chǔ)依據(jù)22.1 eda技術(shù)介紹22.2 vhdl語言介紹22.2.1 vhdl的簡介42.2.2 vhdl語言特點(diǎn)42.2.3 vhdl的設(shè)計(jì)流程43 設(shè)計(jì)步驟53.1系統(tǒng)流程圖53.2 系統(tǒng)狀態(tài)圖63.5 編寫vhdl程序代碼73.6 程序調(diào)試84 程序仿真124.1 波形輸入建立124.2 波形仿真結(jié)果分析135 結(jié)束語17致謝18參考文獻(xiàn)19附錄20 袁俊 基于vhdl的模擬地鐵售票控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 第 27頁 共 23 頁 1 引 言1.1 設(shè)計(jì)要求功能描述:用于模仿地鐵售票的自動(dòng)售票,完成地鐵售票的核心控制功能。功能要求:售票機(jī)有兩個(gè)進(jìn)幣孔,一個(gè)是輸入硬幣,一個(gè)是輸入紙幣,硬幣的識別范圍是5角和1 元的硬幣,紙幣的識別范圍是1 元、2 元,5 元,10 元。乘客可以連續(xù)多次投入錢幣。乘客可以選擇的種類為2 元和4 元,乘客一次只能選擇一個(gè)出站口。購買車票時(shí),乘客先選擇出站名,然后選擇所需的票數(shù),再進(jìn)行投幣,投入的錢幣達(dá)到所需金額時(shí),售票機(jī)自動(dòng)出票,并找出余額,本次交易結(jié)束,等待下一次的交易。在投幣期間,乘客可以按取消鍵取消本次操作,錢幣自動(dòng)退出。1.2 課題分析1 買車票時(shí),乘客按“開始選擇”按鈕,接著選擇出站口接著 選擇購票數(shù)量(根據(jù)提示,一次購票數(shù)限制在3張以內(nèi));然后按“開始投幣”按鈕,投入錢幣;當(dāng)投入的錢幣達(dá)到所需金額時(shí),售票機(jī)自動(dòng)出票,并找出余額??紤]到控制整個(gè)售票機(jī)的物理體積,余額將全部采用5角硬幣的形式找出。2 選擇出站口或投幣過程中,乘客都可以按“取消”按鈕取消該次交易。選擇出站口的過程中,若按“取消”,則售票機(jī)直接回到初始狀態(tài);投幣過程中,若按“取消”,則售票機(jī)將乘客已經(jīng)投入的錢幣全部退出,再回到初始狀態(tài)。3 客一次只能選擇一個(gè)出站口,根據(jù)乘坐的站數(shù)確定票價(jià)。假設(shè)乘客購票所在站到終點(diǎn)站共有15站。若乘坐1-8站,則票價(jià)為2元張;若乘坐9-16站,則票價(jià)為4元張。16個(gè)站用長度位4的二進(jìn)制向量編碼表示,即0001表示乘坐1站,0010表示乘坐2站,依次類推,1111表示乘坐15站(到終點(diǎn)站)。4 票機(jī)有2個(gè)進(jìn)幣端口。硬幣口可識別5角和1元2種硬幣,擬用長度為2的一比特?zé)嵛唬╫ne-hot)編碼方式表示,即01表示5角,10表示1元。紙幣口類似,用長度為4的一比特?zé)嵛痪幋a方式表示。乘客可以連續(xù)多次投入錢幣,并且可以以任意順序投入硬幣和紙幣。2 設(shè)計(jì)的基礎(chǔ)依據(jù)現(xiàn)代電子設(shè)計(jì)技術(shù)的核心是eda技術(shù)?;趀da技術(shù)開發(fā)的實(shí)現(xiàn)三層電梯自動(dòng)控制與目前主流的利用可編程邏輯控制器實(shí)現(xiàn)電梯控制緊密相連。硬件描述語言是eda技術(shù)的重要組成部分,vhdl是作為電子設(shè)計(jì)主流硬件的描述語言。使用vhdl語言進(jìn)行程序的設(shè)計(jì),在max +plus軟件上對程序進(jìn)行編譯、仿真。在max +plus平臺上的開發(fā)具有編程軟件具有采自易學(xué)易懂的梯形圖語言、控制靈活方便、抗干擾能力強(qiáng)、運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn)。2.1 eda技術(shù)介紹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ì)帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結(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ā)展。eda是電子設(shè)計(jì)自動(dòng)化(electronic design automation)的縮寫,在20世紀(jì)90年代初從計(jì)算機(jī)輔助設(shè)計(jì)(cad)、計(jì)算機(jī)輔助制造(cam)、計(jì)算機(jī)輔助測試(cat)和計(jì)算機(jī)輔助工程(cae)的概念發(fā)展而來的。eda技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在eda軟件平臺上,用硬件描述語言hdl完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。eda技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可靠性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。2.2 vhdl語言介紹2.2.1 vhdl的簡介vhdl(very-high-speed integrated circuit hardwaredescription language),翻譯成中文就是超高速集成電路硬件描述語言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。誕生于1982年。自ieee公布了vhdl的標(biāo)準(zhǔn)版本,ieee-1076(簡稱87版)之后,各eda公司相繼推出了自己的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公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。有專家認(rèn)為,在新的世紀(jì)中,vhdl于verilog語言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。2.2.2 vhdl語言的特點(diǎn)(1)與其他的硬件描述語言相比,vhdl具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。(2)vhdl豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對設(shè)計(jì)進(jìn)行仿真模擬。(3)vhdl語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。(4)對于用vhdl完成的一個(gè)確定的設(shè)計(jì),可以利用eda工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把vhdl描述設(shè)計(jì)轉(zhuǎn)變成門級網(wǎng)表。(5)vhdl對設(shè)計(jì)的描述具有相對獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。2.2.3 vhdl的設(shè)計(jì)流程(1)設(shè)計(jì)規(guī)范的定義明確設(shè)計(jì)的目的,進(jìn)行設(shè)計(jì)的總體規(guī)劃。分析設(shè)計(jì)要求,以及自己要達(dá)到的設(shè)計(jì)目的和目標(biāo)。(2)采用vhdl進(jìn)行設(shè)計(jì)描述這部分包括設(shè)計(jì)規(guī)劃和程序的編寫。設(shè)計(jì)規(guī)劃主要包括設(shè)計(jì)方式的選擇及是否進(jìn)行模塊劃分。設(shè)計(jì)方式一般包括直接設(shè)計(jì),自頂向下和自底向下設(shè)計(jì)。(3)vhdl程序仿真對于某些人而言,仿真這一步似乎是可有可無的。但是對于一個(gè)可靠的設(shè)計(jì)而言,任何設(shè)計(jì)最好都進(jìn)行仿真,以保證設(shè)計(jì)的可靠性。另外,對于作為一個(gè)獨(dú)立的設(shè)計(jì)項(xiàng)目而言,仿真文件的提供足可以證明你設(shè)計(jì)的完整性。(4)綜合、優(yōu)化和布局布線綜合指的是將設(shè)計(jì)描述轉(zhuǎn)化成底層電路的表示形式,其結(jié)果是一個(gè)網(wǎng)表或者是一組邏輯方程;優(yōu)化,這個(gè)主要是為了提高程序的執(zhí)行效率及減少資源的利用;布局布線,指的是將邏輯關(guān)系轉(zhuǎn)化成電路連接的方式。(5)仿真這一步主要是未來確定你的設(shè)計(jì)在經(jīng)過布局布線之后,是不是還滿足你的設(shè)計(jì)要求。3 設(shè)計(jì)步驟3.1系初始狀態(tài)按“開始選擇”選擇出站口按“開始投幣”投入錢幣錢幣足夠找零口找零出票口出票按“取消”按“取消”退回錢幣錢幣入庫選擇購票數(shù)統(tǒng)流程圖圖 3.1系統(tǒng)流程圖3.2 系統(tǒng)狀態(tài)圖圖 3.2系統(tǒng)狀態(tài)圖 3.5 編寫vhdl程序代碼if(ticket_stop=0001)and(ticket_stop=1001)and(ticket_stop-選擇3張票temp_account:=00100;-表示3張票number:=11;-購票張數(shù)為3total_price:=price+price+price; -計(jì)算總票價(jià)account_temp:=1; -記錄已選擇購票張數(shù) when 10=-選擇2張票temp_account:=00010;number:=10;total_price:=price+price;account_temp:=1; when 01=-選擇1張票temp_account:=00001;number:=01;total_price:=price;account_temp:=1; when others=null; end case;end if;3.6 程序調(diào)試 (1)建立好工作庫目錄,以便設(shè)計(jì)工程項(xiàng)目的存儲,打開max +plus軟件,其初始界面如圖3.3所示:圖 3.3 max +plus軟件初始界面(2)在工具欄中選擇“新建”按鈕。在選擇輸入路徑時(shí),選擇“text editor file”以進(jìn)行文本輸入,如圖3.4所示:圖 3.4輸入路徑選擇為文本輸入(3) 在文本輸入界面內(nèi)進(jìn)行程序輸入,如圖3.5所示:圖 3.5程序輸入界面(4)輸入完畢后,需要對程序進(jìn)行保存。文件名和實(shí)體定義的符號必須保持一致,即文件名為flift。因?yàn)槭鞘褂胿hdl語言,所以文件后綴名須改成vhd,詳見圖3.6所示:圖 3.6文本輸入保存界面 (5)保存以后,對程序進(jìn)行編譯。在編譯前,需要把文件設(shè)置為頂層文件,或稱工程文件project。選擇菜單“file”“project”“set project to current file”,當(dāng)前的文件即被指定。詳見圖3.7所示:圖 3.7設(shè)置頂層文件 (6)在“max +plus”下拉按鈕里選擇“compiler”,對程序進(jìn)行編譯,此時(shí),max +plus軟件會(huì)對程序進(jìn)行糾錯(cuò)等處理。當(dāng)程序被確認(rèn)無誤以后會(huì)出現(xiàn)如下界面,如圖3.8所示。第一次編譯時(shí)由于實(shí)體名和保存時(shí)的名字不相符,所以出現(xiàn)了一個(gè)錯(cuò)誤,改正后無誤。圖 3.8編譯完成圖4 程序仿真4.1 波形輸入建立在創(chuàng)建的波形仿真文件中,添加所有輸入輸出端口,并添加程序中涉及的重要變量進(jìn)行仿真。end time設(shè)定為10.0us,時(shí)鐘周期設(shè)定為100ns,模擬完成乘客5次購票的過程,以期測試系統(tǒng)的所有功能是否正常。全部的仿真波形截圖如下:4.2 波形仿真結(jié)果分析1 (1)乘客按下“開始選擇”按鈕(select_start=1),錢幣“暫存桿”進(jìn)入等待狀態(tài)(money_gate=01),系統(tǒng)進(jìn)入選擇狀態(tài)(state=select_state)。(2)乘客選擇出站口為第6站,系統(tǒng)得出單張票價(jià)price為20(2元);選擇購買數(shù)量為2張,系統(tǒng)得出票數(shù)number為2。進(jìn)而得出總票價(jià)total_price為40(4元)。(3)乘客按下“取消”按鈕(cancel=1),系統(tǒng)回到初始狀態(tài)(state= initialize_state),錢幣“暫存桿”推出(此刻無暫存錢幣,僅表示初始化過程中的一個(gè)動(dòng)作),然后再歸為等待狀態(tài);其余變量全部清零。此段仿真主要驗(yàn)證了在選擇狀態(tài)時(shí)“取消”按鈕的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時(shí)間在960.0ns左右(如圖)圖 4.1選擇狀態(tài)時(shí)“取消” 2 (1)乘客在約1.15us時(shí)按下“開始選擇”按鈕,系統(tǒng)進(jìn)入選擇狀態(tài)。 (2)乘客選擇出站口為第11站,系統(tǒng)得出票價(jià)為4元;選擇購買3張,系統(tǒng)得出票數(shù)為3張。進(jìn)而得出總票價(jià)為12元。 (3)乘客按下“開始投幣”按鈕(insert_start=1),系統(tǒng)進(jìn)入投幣狀態(tài)(state=insert_state)。 (4)乘客投入5元紙幣(note=0100),系統(tǒng)得出投入的總金額為5元(total_insert為50);投入1元硬幣(coin=10),系統(tǒng)得出投入的總金額為6元(total_insert為60)。 (5)乘客按下“取消”按鈕,系統(tǒng)回到初始狀態(tài),錢幣“暫存桿”推出,退出乘客投入的錢幣,然后再歸為等待狀態(tài);其余變量全部清零。此段仿真主要驗(yàn)證了在投幣狀態(tài)時(shí)“取消”按鈕的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時(shí)間在2.36us左右(如圖)。 圖 4.2投幣狀態(tài)時(shí)“取消”3(1)乘客在約2.45us時(shí)按下“開始選擇”按鈕,系統(tǒng)進(jìn)入選擇狀態(tài)。 (2)乘客選擇出站口為第9站,系統(tǒng)得出票價(jià)為4元;選擇購買3張,系統(tǒng)得出票數(shù)為3張。進(jìn)而得出總票價(jià)為12元。 (3)乘客按下“開始投幣”按鈕,系統(tǒng)進(jìn)入投幣狀態(tài)。 (4)乘客投入10元紙幣,系統(tǒng)得出投入的總金額為10元,再投入5元紙幣,系統(tǒng)得出投入的總金額為15元。 (5)系統(tǒng)判斷投入的總金額已經(jīng)達(dá)到票價(jià)總額(total_insert=total_price)。(6)系統(tǒng)進(jìn)入出票狀態(tài)(ticket_state):系統(tǒng)準(zhǔn)備好4元的票3張(10100),出票口打開(ticket_gate=1)出票。(7)系統(tǒng)進(jìn)入找零狀態(tài)(change_state):找零口打開(change_gate=1)找零,每個(gè)時(shí)鐘上升沿時(shí)出一個(gè)5角硬幣,變量change實(shí)時(shí)顯示剩余應(yīng)找零金額。(8)找零完畢,找零口關(guān)閉;出票口關(guān)閉。系統(tǒng)回到初始狀態(tài)。此段仿真主要驗(yàn)證了連續(xù)投入單種介質(zhì)錢幣購票且找零的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時(shí)間在4.56us左右(如圖)。圖 4.3連續(xù)投入單種介質(zhì)錢幣購票且找零4(1)乘客在約4.75us時(shí)按下“開始選擇”按鈕,系統(tǒng)進(jìn)入選擇狀態(tài)。 (2)乘客選擇出站口為第12站,系統(tǒng)得出票價(jià)為4元;選擇購買2張,系統(tǒng)得出票數(shù)為2張。進(jìn)而得出總票價(jià)為8元。 (3)乘客按下“開始投幣”按鈕,系統(tǒng)進(jìn)入投幣狀態(tài)。 (4)乘客依次投入5角硬幣、5角硬幣、5元紙幣、5角硬幣、1元硬幣、2元紙幣,系統(tǒng)實(shí)時(shí)計(jì)算投入的總金額。 (5)系統(tǒng)判斷投入的總金額已經(jīng)達(dá)到票價(jià)總額。(6)系統(tǒng)進(jìn)入出票狀態(tài):系統(tǒng)準(zhǔn)備好4元的票2張,出票口打開出票。(7)系統(tǒng)進(jìn)入找零狀態(tài):找零口打開找零,每個(gè)時(shí)鐘上升沿時(shí)出一個(gè)5角硬幣,變量change實(shí)時(shí)顯示剩余應(yīng)找零金額。(8)找零完畢,找零口關(guān)閉;出票口關(guān)閉。系統(tǒng)回到初始狀態(tài)。此段仿真主要驗(yàn)證了連續(xù)混合投入硬幣和紙幣購票且找零的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時(shí)間在7.36us左右(限于版面,未在下圖中標(biāo)出,向右移動(dòng)水平進(jìn)度條可定位)。圖 4.4緊急剎車尾燈仿真圖5 結(jié)束語 兩周的課程設(shè)計(jì)結(jié)束了,在此次課程設(shè)計(jì)中,我收獲了許多,不僅在知識學(xué)習(xí)方面,而且在動(dòng)手能力方面、團(tuán)結(jié)合作能力等方面都有了一定的成就。 首先,在知識學(xué)習(xí)方面,雖然我們開始有在計(jì)算機(jī)組成原理這一門課程中接觸過vhdl這一門語言,但是我們都還不是很了解,只知道它由實(shí)體、結(jié)構(gòu)體組成,其余的就不是很了解,但是在此次課程設(shè)計(jì)中,我有了比較詳細(xì)的了解,基本能夠?qū)懗鲆粋€(gè)比較完整的程序。這兩周的自學(xué)中,我也體會(huì)到了自學(xué)得快樂。 其次,在動(dòng)手能力方面,很多時(shí)候我都是知識不能夠結(jié)合實(shí)踐,所以很多時(shí)候我都不知道應(yīng)該怎么樣開始,不過此次由于有了老師的詳細(xì)講解,所以,我能夠很快知道接下來應(yīng)該做什么,有什么作用,得出什么結(jié)果。最后,在團(tuán)結(jié)合作能力方面,雖然每個(gè)人有每個(gè)人的題目,但是我們還是充分發(fā)揮了我們的團(tuán)結(jié)合作能力,找到程序的同學(xué)幫沒找到的同學(xué)找,有什么錯(cuò)誤的大家一起討論,一起找資料解決,最后,實(shí)在不行還有我們堅(jiān)強(qiáng)的后盾我們的指導(dǎo)老師,所以我們合作得很快樂。在這次設(shè)計(jì)過程中,體現(xiàn)出自己單獨(dú)設(shè)計(jì)的能力以及綜合運(yùn)用知識的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。同時(shí),也再次體會(huì)到了團(tuán)結(jié)合作的快樂。致謝在這次課程設(shè)計(jì)的撰寫過程中,我得到了許多人的幫助。首先我要感謝我的指導(dǎo)老師陳沅濤老師在課程設(shè)計(jì)上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報(bào)告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識,而且也開闊了視野,提高了自己的設(shè)計(jì)能力。其次,我要感謝幫助過我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計(jì)上的難題。同時(shí)也感謝學(xué)院為我提供良好的做課程設(shè)計(jì)的環(huán)境。最后再一次感謝所有在設(shè)計(jì)中曾經(jīng)幫助過我的良師益友和同學(xué)。 參考文獻(xiàn)1 王雯雋 基于verilong-hdl自動(dòng)售貨機(jī)的設(shè)計(jì)與實(shí)現(xiàn)m北京航空航天大學(xué)出版社 2005年5月2趙淑范 王憲偉 電子技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì) 第一版m清華大學(xué)出版社 2006年8月3 陳光明 施金鴻 電子技術(shù)課程設(shè)計(jì)與綜合試訓(xùn)m 第一版北京航空航天大學(xué)出版社 2007年5月4賴義漢 自動(dòng)售貨機(jī)控制系統(tǒng)vhdl有限機(jī)狀態(tài)實(shí)現(xiàn)北京m 科學(xué)出版社 2007年 1月5中國電子網(wǎng). 附錄library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity subway isport(clk:in std_logic;-系統(tǒng)時(shí)鐘select_start:in std_logic;-“開始選擇”按鈕insert_start:in std_logic;-“開始投幣”按鈕coin:in std_logic_vector(1 downto 0);-硬幣入口note:in std_logic_vector(3 downto 0);-紙幣入口cancel:in std_logic;-“取消”按鈕ticket_stop:in std_logic_vector(3 downto 0);-出站口編號ticket_account:in std_logic_vector(1 downto 0);-購票張數(shù)money_gate:out std_logic_vector(1 downto 0);-錢幣“暫存桿”ticket_out:out std_logic_vector(4 downto 0);-購買的車票ticket_gate:out std_logic;-出票口change_gate:out std_logic-找零口);end subway;architecture behave of subway istype state_type is (initialize_state,select_state,insert_state,ticket_state,change_state);-狀態(tài)變量申明signal state:state_type;-狀態(tài)信號申明beginprocess(clk)variable type_temp:std_logic;-記錄是否已選擇出站口的變量variable account_temp:std_logic;-記錄是否已選擇購票張數(shù)的變量variable temp_type:std_logic_vector(4 downto 0);-記錄票種的中間變量variable temp_account:std_logic_vector(4 downto 0); -記錄票數(shù)的中間變量variable price:std_logic_vector(7 downto 0);-記錄單張票價(jià)的變量variable number:std_logic_vector(1 downto 0);-記錄票數(shù)的變量variable total_price:std_logic_vector(7 downto 0);-記錄總票價(jià)的變量variable total_insert:std_logic_vector(7 downto 0);- 記錄投入錢幣總額的變量variable change:std_logic_vector(7 downto 0);-記錄應(yīng)找零金額的變量variable sign:std_logic;-記錄系統(tǒng)是否已經(jīng)過初始化的變量variable temp:std_logic;-記錄投入錢幣金額達(dá)到總票價(jià)的變量beginif (clkevent and clk=1) then-時(shí)鐘信號上升沿觸發(fā)case state iswhen initialize_state=-初始狀態(tài)if(sign=0)then-表示系統(tǒng)未經(jīng)過初始化 money_gate=00;-錢幣“暫存桿”退出錢幣ticket_out=00000;-購票記錄清零ticket_gate=0;-出票口關(guān)閉change_gate=0;-找零口關(guān)閉temp_type:=00000;-票種記錄清零temp_account:=00000;-票數(shù)記錄清零type_temp:=0;account_temp:=0;price:=00000000;-單張票價(jià)記錄清零number:=00;-購票張數(shù)記錄清零total_price:=00000000;-票價(jià)總額記錄清零total_insert:=00000000;-投入錢幣總額記錄清零change:=00000000;-應(yīng)找零金額記錄清零sign:=1;-記錄已完成系統(tǒng)初始化temp:=0;-投入達(dá)到總票價(jià)記錄清零else-表示系統(tǒng)已經(jīng)過初始化money_gate=01;-錢幣“暫存桿”歸為等待狀態(tài)if (select_start=1) then-按下“開始選擇”按鈕sign:=0;state-選擇狀態(tài)if(type_temp=0)then-表示尚未選擇出站口if(ticket_stop=0001)and(ticket_stop=1001)and(ticket_stop-選擇3張票temp_account:=00100;-表示3張票number:=11;-購票張數(shù)為3total_price:=price+price+price; -計(jì)算總票價(jià)account_temp:=1; -記錄已選擇購票張數(shù) when 10=-選擇2張票temp_account:=00010;number:=10;total_price:=price+price;account_temp:=1; when 01=-選擇1張票temp_account:=00001;number:=01;total_price:=price;account_temp:=1; when others=null; end case;end if;if(type_temp=1)and(account_temp=1)then-表示已選擇出站口且已選擇購票張

溫馨提示

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

評論

0/150

提交評論