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

下載本文檔

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

文檔簡介

長沙理工大學(xué)計算機組成原理課程設(shè)計報告 學(xué) 院 計通學(xué)院 專 業(yè) 計算機科學(xué)與技術(shù) 班 級 計算機09-02班 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 課程成績 完成日期 2012年7月6日課程設(shè)計任務(wù)書 計算機與通信工程 學(xué)院 計算機科學(xué)與技術(shù) 專業(yè)課程名稱計算機組成原理課程設(shè)計時間20112012學(xué)年第一學(xué)期1920周學(xué)生姓名指導(dǎo)老師題 目基于vhdl的模擬地鐵售票控制系統(tǒng)設(shè)計與實現(xiàn)主要內(nèi)容:利用 vhdl 語言設(shè)計地鐵售票系統(tǒng)的核心功能 maxplus ii軟件作為發(fā)平臺,設(shè)計城市地鐵售票系統(tǒng)程序并進(jìn)行仿真。使其實現(xiàn)選站、選擇張數(shù)、出票、找零等功能。要求:(1)要求能獨立地運用vhdl語言、eda相關(guān)知識和max plus ii仿真軟件,編制一個簡單的課程設(shè)計。(2)學(xué)生按要求編寫課程設(shè)計報告書,能正確闡述設(shè)計和實驗結(jié)果。(3)通過課程設(shè)計培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度和團隊協(xié)作精神。(4)學(xué)生應(yīng)抱著嚴(yán)謹(jǐn)認(rèn)真的態(tài)度積極投入到課程設(shè)計過程中,認(rèn)真查閱相應(yīng)文獻(xiàn)以及實現(xiàn),給出個人分析、設(shè)計以及實現(xiàn)。應(yīng)當(dāng)提交的文件:(1)課程設(shè)計報告。(2)課程設(shè)計附件(源程序、各類圖紙、實驗數(shù)據(jù)、仿真截圖等實證材料)。課程設(shè)計成績評定學(xué) 院 計通學(xué)院 專 業(yè) 計算機科學(xué)與技術(shù) 班 級 計算機09-02班 學(xué) 號 200986250224 學(xué)生姓名 指導(dǎo)教師 完成日期 2012年7月6日 指導(dǎo)教師對學(xué)生在課程設(shè)計中的評價評分項目優(yōu)良中及格不及格課程設(shè)計中的創(chuàng)造性成果學(xué)生掌握課程內(nèi)容的程度課程設(shè)計完成情況課程設(shè)計動手能力文字表達(dá)學(xué)習(xí)態(tài)度規(guī)范要求課程設(shè)計論文的質(zhì)量指導(dǎo)教師對課程設(shè)計的評定意見綜合成績 指導(dǎo)教師簽字 年 月 日基于vhdl的模擬地鐵售票控制系統(tǒng)設(shè)計與實現(xiàn)學(xué)生姓名: 指導(dǎo)老師 摘 要: vhdl 語言對于復(fù)雜的數(shù)字系統(tǒng)的設(shè)計,它有獨特的作用。它的硬件描述能力強,能輕易的描述出硬件的結(jié)構(gòu)和功能。這種語言的應(yīng)用至少意味著兩種重大的改變:電路的 設(shè)計可以通過文字描述的方式完成;電子電路可以當(dāng)作文件一樣來存儲。隨著現(xiàn)代技術(shù)的發(fā)展,這種語言的效益與作用日益明顯,每年均能夠以超過 30的速度快速成長。這次課程設(shè)計就是利用 vhdl 語言設(shè)計地鐵售票系統(tǒng)的核心功能 maxplus ii軟件作為發(fā)平臺,設(shè)計城市地鐵售票系統(tǒng)程序并進(jìn)行仿真。使其實現(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è)計要求11.2 課題分析12 設(shè)計的基礎(chǔ)依據(jù)22.1 eda技術(shù)介紹22.2 vhdl語言介紹22.2.1 vhdl的簡介42.2.2 vhdl語言特點42.2.3 vhdl的設(shè)計流程43 設(shè)計步驟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è)計與實現(xiàn) 第 27頁 共 23 頁 1 引 言1.1 設(shè)計要求功能描述:用于模仿地鐵售票的自動售票,完成地鐵售票的核心控制功能。功能要求:售票機有兩個進(jìn)幣孔,一個是輸入硬幣,一個是輸入紙幣,硬幣的識別范圍是5角和1 元的硬幣,紙幣的識別范圍是1 元、2 元,5 元,10 元。乘客可以連續(xù)多次投入錢幣。乘客可以選擇的種類為2 元和4 元,乘客一次只能選擇一個出站口。購買車票時,乘客先選擇出站名,然后選擇所需的票數(shù),再進(jìn)行投幣,投入的錢幣達(dá)到所需金額時,售票機自動出票,并找出余額,本次交易結(jié)束,等待下一次的交易。在投幣期間,乘客可以按取消鍵取消本次操作,錢幣自動退出。1.2 課題分析1 買車票時,乘客按“開始選擇”按鈕,接著選擇出站口接著 選擇購票數(shù)量(根據(jù)提示,一次購票數(shù)限制在3張以內(nèi));然后按“開始投幣”按鈕,投入錢幣;當(dāng)投入的錢幣達(dá)到所需金額時,售票機自動出票,并找出余額??紤]到控制整個售票機的物理體積,余額將全部采用5角硬幣的形式找出。2 選擇出站口或投幣過程中,乘客都可以按“取消”按鈕取消該次交易。選擇出站口的過程中,若按“取消”,則售票機直接回到初始狀態(tài);投幣過程中,若按“取消”,則售票機將乘客已經(jīng)投入的錢幣全部退出,再回到初始狀態(tài)。3 客一次只能選擇一個出站口,根據(jù)乘坐的站數(shù)確定票價。假設(shè)乘客購票所在站到終點站共有15站。若乘坐1-8站,則票價為2元張;若乘坐9-16站,則票價為4元張。16個站用長度位4的二進(jìn)制向量編碼表示,即0001表示乘坐1站,0010表示乘坐2站,依次類推,1111表示乘坐15站(到終點站)。4 票機有2個進(jìn)幣端口。硬幣口可識別5角和1元2種硬幣,擬用長度為2的一比特?zé)嵛唬╫ne-hot)編碼方式表示,即01表示5角,10表示1元。紙幣口類似,用長度為4的一比特?zé)嵛痪幋a方式表示。乘客可以連續(xù)多次投入錢幣,并且可以以任意順序投入硬幣和紙幣。2 設(shè)計的基礎(chǔ)依據(jù)現(xiàn)代電子設(shè)計技術(shù)的核心是eda技術(shù)?;趀da技術(shù)開發(fā)的實現(xiàn)三層電梯自動控制與目前主流的利用可編程邏輯控制器實現(xiàn)電梯控制緊密相連。硬件描述語言是eda技術(shù)的重要組成部分,vhdl是作為電子設(shè)計主流硬件的描述語言。使用vhdl語言進(jìn)行程序的設(shè)計,在max +plus軟件上對程序進(jìn)行編譯、仿真。在max +plus平臺上的開發(fā)具有編程軟件具有采自易學(xué)易懂的梯形圖語言、控制靈活方便、抗干擾能力強、運行穩(wěn)定可靠等優(yōu)點。2.1 eda技術(shù)介紹20世紀(jì)90年代,國際上電子和計算機技術(shù)較先進(jìn)的國家,一直在積極探索新的電子電路設(shè)計方法,并在設(shè)計方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計領(lǐng)域,可編程邏輯器件(如cpld、fpga)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計可以如同軟件設(shè)計那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計方法、設(shè)計過程和設(shè)計觀念,促進(jìn)了eda技術(shù)的迅速發(fā)展。eda是電子設(shè)計自動化(electronic design automation)的縮寫,在20世紀(jì)90年代初從計算機輔助設(shè)計(cad)、計算機輔助制造(cam)、計算機輔助測試(cat)和計算機輔助工程(cae)的概念發(fā)展而來的。eda技術(shù)就是以計算機為工具,設(shè)計者在eda軟件平臺上,用硬件描述語言hdl完成設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。eda技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可靠性,減輕了設(shè)計者的勞動強度。2.2 vhdl語言介紹2.2.1 vhdl的簡介vhdl(very-high-speed integrated circuit hardwaredescription language),翻譯成中文就是超高速集成電路硬件描述語言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計中。誕生于1982年。自ieee公布了vhdl的標(biāo)準(zhǔn)版本,ieee-1076(簡稱87版)之后,各eda公司相繼推出了自己的vhdl設(shè)計環(huán)境,或宣布自己的設(shè)計工具可以和vhdl接口。此后vhdl在電子設(shè)計領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語言。1993年,ieee對vhdl進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展vhdl的內(nèi)容,公布了新版本的vhdl,即ieee標(biāo)準(zhǔn)的1076-1993版本,(簡稱93版)。現(xiàn)在,vhdl和verilog作為ieee的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多eda公司的支持,在電子工程領(lǐng)域,已成為事實上的通用硬件描述語言。有專家認(rèn)為,在新的世紀(jì)中,vhdl于verilog語言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計任務(wù)。2.2.2 vhdl語言的特點(1)與其他的硬件描述語言相比,vhdl具有更強的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計領(lǐng)域最佳的硬件描述語言。強大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。(2)vhdl豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計早期就能查驗設(shè)計系統(tǒng)的功能可行性,隨時可對設(shè)計進(jìn)行仿真模擬。(3)vhdl語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實現(xiàn)。(4)對于用vhdl完成的一個確定的設(shè)計,可以利用eda工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把vhdl描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。(5)vhdl對設(shè)計的描述具有相對獨立性,設(shè)計者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計實現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨立的設(shè)計。2.2.3 vhdl的設(shè)計流程(1)設(shè)計規(guī)范的定義明確設(shè)計的目的,進(jìn)行設(shè)計的總體規(guī)劃。分析設(shè)計要求,以及自己要達(dá)到的設(shè)計目的和目標(biāo)。(2)采用vhdl進(jìn)行設(shè)計描述這部分包括設(shè)計規(guī)劃和程序的編寫。設(shè)計規(guī)劃主要包括設(shè)計方式的選擇及是否進(jìn)行模塊劃分。設(shè)計方式一般包括直接設(shè)計,自頂向下和自底向下設(shè)計。(3)vhdl程序仿真對于某些人而言,仿真這一步似乎是可有可無的。但是對于一個可靠的設(shè)計而言,任何設(shè)計最好都進(jìn)行仿真,以保證設(shè)計的可靠性。另外,對于作為一個獨立的設(shè)計項目而言,仿真文件的提供足可以證明你設(shè)計的完整性。(4)綜合、優(yōu)化和布局布線綜合指的是將設(shè)計描述轉(zhuǎn)化成底層電路的表示形式,其結(jié)果是一個網(wǎng)表或者是一組邏輯方程;優(yōu)化,這個主要是為了提高程序的執(zhí)行效率及減少資源的利用;布局布線,指的是將邏輯關(guān)系轉(zhuǎn)化成電路連接的方式。(5)仿真這一步主要是未來確定你的設(shè)計在經(jīng)過布局布線之后,是不是還滿足你的設(shè)計要求。3 設(shè)計步驟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; -計算總票價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è)計工程項目的存儲,打開max +plus軟件,其初始界面如圖3.3所示:圖 3.3 max +plus軟件初始界面(2)在工具欄中選擇“新建”按鈕。在選擇輸入路徑時,選擇“text editor file”以進(jìn)行文本輸入,如圖3.4所示:圖 3.4輸入路徑選擇為文本輸入(3) 在文本輸入界面內(nèi)進(jìn)行程序輸入,如圖3.5所示:圖 3.5程序輸入界面(4)輸入完畢后,需要對程序進(jìn)行保存。文件名和實體定義的符號必須保持一致,即文件名為flift。因為是使用vhdl語言,所以文件后綴名須改成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)行編譯,此時,max +plus軟件會對程序進(jìn)行糾錯等處理。當(dāng)程序被確認(rèn)無誤以后會出現(xiàn)如下界面,如圖3.8所示。第一次編譯時由于實體名和保存時的名字不相符,所以出現(xiàn)了一個錯誤,改正后無誤。圖 3.8編譯完成圖4 程序仿真4.1 波形輸入建立在創(chuàng)建的波形仿真文件中,添加所有輸入輸出端口,并添加程序中涉及的重要變量進(jìn)行仿真。end time設(shè)定為10.0us,時鐘周期設(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)得出單張票價price為20(2元);選擇購買數(shù)量為2張,系統(tǒng)得出票數(shù)number為2。進(jìn)而得出總票價total_price為40(4元)。(3)乘客按下“取消”按鈕(cancel=1),系統(tǒng)回到初始狀態(tài)(state= initialize_state),錢幣“暫存桿”推出(此刻無暫存錢幣,僅表示初始化過程中的一個動作),然后再歸為等待狀態(tài);其余變量全部清零。此段仿真主要驗證了在選擇狀態(tài)時“取消”按鈕的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時間在960.0ns左右(如圖)圖 4.1選擇狀態(tài)時“取消” 2 (1)乘客在約1.15us時按下“開始選擇”按鈕,系統(tǒng)進(jìn)入選擇狀態(tài)。 (2)乘客選擇出站口為第11站,系統(tǒng)得出票價為4元;選擇購買3張,系統(tǒng)得出票數(shù)為3張。進(jìn)而得出總票價為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);其余變量全部清零。此段仿真主要驗證了在投幣狀態(tài)時“取消”按鈕的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時間在2.36us左右(如圖)。 圖 4.2投幣狀態(tài)時“取消”3(1)乘客在約2.45us時按下“開始選擇”按鈕,系統(tǒng)進(jìn)入選擇狀態(tài)。 (2)乘客選擇出站口為第9站,系統(tǒng)得出票價為4元;選擇購買3張,系統(tǒng)得出票數(shù)為3張。進(jìn)而得出總票價為12元。 (3)乘客按下“開始投幣”按鈕,系統(tǒng)進(jìn)入投幣狀態(tài)。 (4)乘客投入10元紙幣,系統(tǒng)得出投入的總金額為10元,再投入5元紙幣,系統(tǒng)得出投入的總金額為15元。 (5)系統(tǒng)判斷投入的總金額已經(jīng)達(dá)到票價總額(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)找零,每個時鐘上升沿時出一個5角硬幣,變量change實時顯示剩余應(yīng)找零金額。(8)找零完畢,找零口關(guān)閉;出票口關(guān)閉。系統(tǒng)回到初始狀態(tài)。此段仿真主要驗證了連續(xù)投入單種介質(zhì)錢幣購票且找零的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時間在4.56us左右(如圖)。圖 4.3連續(xù)投入單種介質(zhì)錢幣購票且找零4(1)乘客在約4.75us時按下“開始選擇”按鈕,系統(tǒng)進(jìn)入選擇狀態(tài)。 (2)乘客選擇出站口為第12站,系統(tǒng)得出票價為4元;選擇購買2張,系統(tǒng)得出票數(shù)為2張。進(jìn)而得出總票價為8元。 (3)乘客按下“開始投幣”按鈕,系統(tǒng)進(jìn)入投幣狀態(tài)。 (4)乘客依次投入5角硬幣、5角硬幣、5元紙幣、5角硬幣、1元硬幣、2元紙幣,系統(tǒng)實時計算投入的總金額。 (5)系統(tǒng)判斷投入的總金額已經(jīng)達(dá)到票價總額。(6)系統(tǒng)進(jìn)入出票狀態(tài):系統(tǒng)準(zhǔn)備好4元的票2張,出票口打開出票。(7)系統(tǒng)進(jìn)入找零狀態(tài):找零口打開找零,每個時鐘上升沿時出一個5角硬幣,變量change實時顯示剩余應(yīng)找零金額。(8)找零完畢,找零口關(guān)閉;出票口關(guān)閉。系統(tǒng)回到初始狀態(tài)。此段仿真主要驗證了連續(xù)混合投入硬幣和紙幣購票且找零的功能正常。系統(tǒng)全部恢復(fù)初始狀態(tài)的時間在7.36us左右(限于版面,未在下圖中標(biāo)出,向右移動水平進(jìn)度條可定位)。圖 4.4緊急剎車尾燈仿真圖5 結(jié)束語 兩周的課程設(shè)計結(jié)束了,在此次課程設(shè)計中,我收獲了許多,不僅在知識學(xué)習(xí)方面,而且在動手能力方面、團結(jié)合作能力等方面都有了一定的成就。 首先,在知識學(xué)習(xí)方面,雖然我們開始有在計算機組成原理這一門課程中接觸過vhdl這一門語言,但是我們都還不是很了解,只知道它由實體、結(jié)構(gòu)體組成,其余的就不是很了解,但是在此次課程設(shè)計中,我有了比較詳細(xì)的了解,基本能夠?qū)懗鲆粋€比較完整的程序。這兩周的自學(xué)中,我也體會到了自學(xué)得快樂。 其次,在動手能力方面,很多時候我都是知識不能夠結(jié)合實踐,所以很多時候我都不知道應(yīng)該怎么樣開始,不過此次由于有了老師的詳細(xì)講解,所以,我能夠很快知道接下來應(yīng)該做什么,有什么作用,得出什么結(jié)果。最后,在團結(jié)合作能力方面,雖然每個人有每個人的題目,但是我們還是充分發(fā)揮了我們的團結(jié)合作能力,找到程序的同學(xué)幫沒找到的同學(xué)找,有什么錯誤的大家一起討論,一起找資料解決,最后,實在不行還有我們堅強的后盾我們的指導(dǎo)老師,所以我們合作得很快樂。在這次設(shè)計過程中,體現(xiàn)出自己單獨設(shè)計的能力以及綜合運用知識的能力,體會了學(xué)以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補。同時,也再次體會到了團結(jié)合作的快樂。致謝在這次課程設(shè)計的撰寫過程中,我得到了許多人的幫助。首先我要感謝我的指導(dǎo)老師陳沅濤老師在課程設(shè)計上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識,而且也開闊了視野,提高了自己的設(shè)計能力。其次,我要感謝幫助過我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計上的難題。同時也感謝學(xué)院為我提供良好的做課程設(shè)計的環(huán)境。最后再一次感謝所有在設(shè)計中曾經(jīng)幫助過我的良師益友和同學(xué)。 參考文獻(xiàn)1 王雯雋 基于verilong-hdl自動售貨機的設(shè)計與實現(xiàn)m北京航空航天大學(xué)出版社 2005年5月2趙淑范 王憲偉 電子技術(shù)實驗與課程設(shè)計 第一版m清華大學(xué)出版社 2006年8月3 陳光明 施金鴻 電子技術(shù)課程設(shè)計與綜合試訓(xùn)m 第一版北京航空航天大學(xué)出版社 2007年5月4賴義漢 自動售貨機控制系統(tǒng)vhdl有限機狀態(tài)實現(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)時鐘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);-記錄單張票價的變量variable number:std_logic_vector(1 downto 0);-記錄票數(shù)的變量variable total_price:std_logic_vector(7 downto 0);-記錄總票價的變量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á)到總票價的變量beginif (clkevent and clk=1) then-時鐘信號上升沿觸發(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;-單張票價記錄清零number:=00;-購票張數(shù)記錄清零total_price:=00000000;-票價總額記錄清零total_insert:=00000000;-投入錢幣總額記錄清零change:=00000000;-應(yīng)找零金額記錄清零sign:=1;-記錄已完成系統(tǒng)初始化temp:=0;-投入達(dá)到總票價記錄清零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; -計算總票價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)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論