已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
沈陽大學(xué)畢業(yè)設(shè)計(論文)基于VHDL的地鐵售票系統(tǒng)設(shè)計與實現(xiàn)專業(yè)電子信息科學(xué)與技術(shù)班級2011級姓名王發(fā)展沈陽大學(xué)畢業(yè)設(shè)計(論文)目錄引言31EDA技術(shù)和VHDL語言介紹511EDA技術(shù)介紹512VHDL語言介紹513VHDL語言的特點614VHDL語言結(jié)構(gòu)框架715VHDL軟件設(shè)計簡介142利用VHDL語言設(shè)計地鐵售票系統(tǒng)1521地鐵售票系統(tǒng)功能分析1522地鐵售票系統(tǒng)的總體設(shè)計分析1523地鐵售票系統(tǒng)的系統(tǒng)流程設(shè)計1624地鐵售票系統(tǒng)的系統(tǒng)狀態(tài)設(shè)計173系統(tǒng)程序模塊化設(shè)計2131選站模塊設(shè)計2132選票模塊設(shè)計2133投幣模塊設(shè)計2234出票模塊設(shè)計2335余額找零模塊設(shè)計244系統(tǒng)程序的編譯和仿真2641MAXPLUS的介紹2642系統(tǒng)程序編譯2743系統(tǒng)程序仿真305仿真結(jié)果驗證3651選票狀態(tài)“取消鍵”驗證3652投幣狀態(tài)下“取消鍵”驗證3753余額找零驗證39結(jié)論41致謝42參考文獻(xiàn)43附錄源程序45沈陽大學(xué)畢業(yè)設(shè)計(論文)NO1摘要VHDL語言是一種很高級的硬件描述語言,它主要應(yīng)用于復(fù)雜的數(shù)字系統(tǒng)設(shè)計領(lǐng)域。它具有很強(qiáng)的硬件描述能力,能夠輕易的描述出硬件的結(jié)構(gòu)和功能,能夠很好的描述復(fù)雜數(shù)字系統(tǒng)的行為、結(jié)構(gòu)、接口和功能。在本文中實現(xiàn)地鐵售票系統(tǒng)的設(shè)計,就是利用VHDL語言來設(shè)計地體售票系統(tǒng)的核心功能,在設(shè)計系統(tǒng)時加入了有限狀態(tài)機(jī)的思想來完善售票系統(tǒng),對整個系統(tǒng)程序進(jìn)行分模塊處理,逐個實現(xiàn)單個功能,最后將各個模塊完整的組合起來構(gòu)成完整的系統(tǒng)程序。同時,以MAXPLUSII軟件作為開發(fā)平臺,完成地鐵售票系統(tǒng)程序的仿真調(diào)試工作。使其實現(xiàn)地鐵售票系統(tǒng)的選站、選票、投幣、出票、找零等功能。本文主要體現(xiàn)VHDL在實際生活中的應(yīng)用,隨著數(shù)字化的進(jìn)步,VHDL在逐步深入到各個領(lǐng)域的應(yīng)用。在地鐵售票系統(tǒng)中,采用VHDL很好的實現(xiàn)了需要實現(xiàn)的功能,在這里,只是在VHDL中實現(xiàn)了地鐵售票系統(tǒng)的理論化進(jìn)程,并且在MAXPLUS軟件環(huán)境下順利仿真運行,并且得到了預(yù)想的結(jié)果。如果還想得到在硬件上的體現(xiàn),那么,這里我們還要用到VHDL的硬件設(shè)計功能,實現(xiàn)系統(tǒng)程序在VHDL中的硬件描述。關(guān)鍵詞地鐵;售票;狀態(tài)機(jī);模塊沈陽大學(xué)畢業(yè)設(shè)計(論文)NO2ABSTRACTVHDLLANGUAGEISAHANDWAREDESCRIPTIONLANGUAGEWITHHIGHLEVEL,WHICHISMAINLYUSEDINCOMPLEXDIGITALSYSTEMDESIGNINGITHASAGREATABILITYOFHANDWAREDESCRIPTION,DESCRIBINGTHESTRUCTUREANDFUNCTIONOFHANDWAREEASILYITALSOCANBEAGOODDESCRIPTIONOFTHEBEHAVIOROFCOMPLEXDIGITALSYSTEMS,STRUCTURE,INTERFACES,ANDFUNCTIONSINTHISTHESIS,THEREALIANCEOFTHEDESIGNOFSUBWAYTICKETINGSYSTEMSISTOTHATUSETHEVHDLLANGUAGETODESIGNTHECOREFUNCTIONSOFTHEBODYTICKETINGSYSTEMFIRST,WITHTHEADDITIONOFIDEAOFAFINITESTATEMACHINEINTHEDESIGNOFTHESYSTEM,THETICKETINGSYSTEMPROVEDALOTNEXT,DIVIDETHEWHOLESYSTEMPROJECTSINTOSEVERALMODULESOTHATEACHFUNCTIONCANBEREALIZEDGRADUALLYFINALLY,COMBINEEACHMODULETOGETHERCOMPLETELYTOFORMACOMPLETESYSTEMPROCESSMEANWHILE,WITHTHEBASEOFTHEMAXPLUSSOFTASADEVELOPMENTPLATFORM,FINISHTHESIMULATIONDEBUGGINGSUBWAYTICKEINGSYSTEMPROGRAMTHUSTHEFUNCTIONOFSTATIONSELECTING,TICKETCHOOSING,TICKETGIVINGANDCHANGEGIVINGCANBEREALIZEDTHISPAPERMAINLYSHOWEDTHEVHDLSAPPLICATIONINTHEREALLIFEWITHTHEADVANCEMENTOFTHEDIGITALIZATION,VHDLGRADUALLYGODEEPINTOTHEAPPLICATIONOFVARIOUSFIELDSINTHESUBWAYTICKINGSYSTEM,VHDLSUSINGHAVEREALIZEDTHEFUNCTIONGREATLYWHICHISNEEDEDINTHISPAPER,THETHEORIZINGPROCESSOFTHESUBWAYTICKETINGSYSTEMISJUSTREALIZEDINTHEVHDLANDITCANREALIZEEMULATIONALRUNUNDERMAXPLUSSOFTWAREENVIRONMENTITHASGAINEDTHEDESIREDRESULTIFWEWANTTOGETTHEREFLECTIONINTHEHARDWARE,WEHAVETOUSETHECAPABILITIESOFVHDLHARDWAREDESIGNTOREALIZETHEHARDWAREDESCRIPTIONINVHDLOFTHESYSTEMPROGRAMKEYWORDSTHESUBWAYTHETICKTTHESTATEMACHINEMODEL沈陽大學(xué)畢業(yè)設(shè)計(論文)NO3引言隨著電子科學(xué)技術(shù)的發(fā)展,技術(shù)的發(fā)展需要更加先進(jìn)的硬件電路設(shè)計,因此就出現(xiàn)了另外一種新興的,能夠很好地完成設(shè)計的一種硬件描述語言,這將會是電子設(shè)計自動化領(lǐng)域的一次重大的變革。目前,我們在廣泛使用的硬件描述語言分為VHDL語言和VERILOGHDL語言,它們先后被規(guī)定為國際標(biāo)準(zhǔn)語言。據(jù)不完全統(tǒng)計,目前在世界各地幾乎所有的ASIC和FPGA都是采用硬件描述語言進(jìn)行設(shè)計的,VHDL的應(yīng)用在EDA解決方案中所起到的作用越來的重要,由此,它也逐漸的成為復(fù)雜數(shù)字系統(tǒng)設(shè)計中的重要核心。VHDL語言之所以使用最頻繁,是因為它有非常強(qiáng)的行為描述能力。它有很多功能,比如描述復(fù)雜數(shù)字系統(tǒng)的行為、結(jié)構(gòu)等,在應(yīng)用設(shè)計上很常用。它拋開具體的器件結(jié)構(gòu),從邏輯行為上來展開描述和設(shè)計大規(guī)模電子系統(tǒng)。從當(dāng)前比較經(jīng)常使用的EDA工具和VHDL綜合器來說,它們能夠很快速的,方便的完成對程序硬件的設(shè)計構(gòu)造1。VHDL語言在硬件設(shè)計方面的作用,在眾多的數(shù)字系統(tǒng)設(shè)計中,它具有自己的特點,簡單易懂,會讓人們更加易學(xué)一些,這也就注定這種語言將會流行。在應(yīng)用VHDL語言時,我們會驚奇的發(fā)現(xiàn)它不同于其他的描述語言,它內(nèi)部的輔助設(shè)計功能要比其他描述語言的使用起來簡單、方便、快速等其他描述語言不能實現(xiàn)的功能。在新時代的科學(xué)進(jìn)步中,我們追求的往往是引領(lǐng)本領(lǐng)域尖端的科技成果,其實VHDL語言就相當(dāng)于硬件描述語言當(dāng)中的以中間段語言,他不僅方便了工作人員在該領(lǐng)域的設(shè)計工作,更給電子科技領(lǐng)域帶來了一個劃時代的變化。VHDL語言和可編程邏輯器件的結(jié)合將會出現(xiàn)一種新的科技創(chuàng)新,為更多的設(shè)計提供更多的方便與快速。這將成為硬件設(shè)沈陽大學(xué)畢業(yè)設(shè)計(論文)NO4計領(lǐng)域一個劃時代的創(chuàng)造。在地鐵售票系統(tǒng)中,采用VHDL語言來設(shè)計售票過程中各個部分的功能語句,能夠很好地實現(xiàn)功能。由于VHDL語言的硬件描述功能性比較強(qiáng),它被廣泛的應(yīng)用于電子電路的設(shè)計中,不僅可以方便設(shè)計者快速、準(zhǔn)確的完成設(shè)計項目,還能夠高效的優(yōu)化設(shè)計工作,這就體現(xiàn)的VHDL語言的強(qiáng)大功能。在今后的科學(xué)技術(shù)發(fā)展中,VHDL語言肯定會隨著科學(xué)的進(jìn)步繼續(xù)更新發(fā)展。在電子電路系統(tǒng)的設(shè)計中,不止存在一種設(shè)計語言,但是最常使用的是VHDL語言。在這次的地鐵售票系統(tǒng)的設(shè)計過程中就很直接的體現(xiàn),每個模塊的程序文件體現(xiàn)出VHDL的特點。VHDL語言在電子電路系統(tǒng)領(lǐng)域是一個不可替代的核心。地鐵售票系統(tǒng)最基本的幾個功能是實現(xiàn)選站、選票、投幣、出票、退錢2。在實現(xiàn)這些功能時,可以采用模塊化設(shè)計,把每個模塊當(dāng)做是一個單個實體,單獨拿出來分析解剖,使用VHDL語言中特定的功能語句編寫單獨模塊的源程序文件,在所有模塊源程序編寫結(jié)束后,把所有模塊組合起來,組成一個連續(xù)的過程實現(xiàn)售票功能3。再設(shè)計地鐵售票系統(tǒng)的過程中,要考慮到實際連續(xù)使用的問題,這里就會用到狀態(tài)機(jī)的部分問題。在VHDL語言的設(shè)計中,能夠很好的設(shè)計這些基本功能4。在VHDL設(shè)計好地鐵售票系統(tǒng)的源程序文件后,需要驗證程序的正確性。MAXPLUSII軟件平臺用來驗證源程序文件的正確性,它源程序文件輸入到該平臺上,通過編譯仿真得出結(jié)果判斷是否實現(xiàn)5。沈陽大學(xué)畢業(yè)設(shè)計(論文)NO51EDA技術(shù)和VHDL語言介紹11EDA技術(shù)介紹EDA即是電子設(shè)計自動化,我們用簡單的語言描述就是,通過電子計算機(jī)自動完成復(fù)雜的電子電路系統(tǒng)的設(shè)計工作。在這當(dāng)中,最重要的就是使用到電子計算機(jī),它是其中的核心,在電子計算機(jī)上完成電路設(shè)計的工作,不僅需要電路方面的知識,還要用到計算機(jī)方面的知識,綜合EDA技術(shù)在計算機(jī)當(dāng)中的應(yīng)用,它涵蓋了計算機(jī)圖形學(xué)、拓?fù)涞扰c電路系統(tǒng)設(shè)計相關(guān)聯(lián)的多種先進(jìn)的計算機(jī)應(yīng)用技術(shù)6。EDA技術(shù)的發(fā)展共經(jīng)歷三個階段CAD階段、CAE階段、EDA階段7。EDA技術(shù)具有強(qiáng)大的系統(tǒng)建模和電路仿真功能,采用硬件描述語言進(jìn)行設(shè)計。電子設(shè)計方法隨著電子和計算機(jī)的發(fā)展在不斷地進(jìn)步,不斷地更新,在共同的發(fā)展促進(jìn)下電子產(chǎn)品的性能也會越來越高,更新速度也會越來越快,由此,EDA技術(shù)的應(yīng)用也就會越來越廣。12VHDL語言介紹在80年代后期,美國國防部開發(fā)了VHDL語言。它是用于電路設(shè)計的一種很高級的硬件描述語言。在當(dāng)時,美國政府的本意并不是著重發(fā)展電子電路的設(shè)計工作,它是由于某個小的方面的使用才開發(fā)出來了VHDL語言。在不斷地發(fā)展中,VHDL語言在逐漸演變到電子發(fā)展領(lǐng)域而成為一種超高速集成電路硬件描述語言,在數(shù)字邏輯設(shè)計領(lǐng)域主要應(yīng)用。但是它的應(yīng)用是很廣泛的。比如FPGA/CPLD/EPLD/ASIC的設(shè)計當(dāng)中。VHDL語言主要用于描述數(shù)字系統(tǒng)的功能、接口、結(jié)構(gòu)和行為8。VHDL的語言和一般的計算機(jī)高級語言相比,形式、描述風(fēng)格以及語法在某種程度上是很相似的。VHDL語言是將設(shè)計實體分為兩部分,這兩部分是外部和內(nèi)部。當(dāng)然這個實體可以有很多沈陽大學(xué)畢業(yè)設(shè)計(論文)NO6形式表現(xiàn)出來,比如電路模塊,系統(tǒng)等。其中為可視部分及端口為外部,而內(nèi)部又稱為不可視部分。怎樣才可以直接調(diào)用實體,就是開發(fā)內(nèi)部,定義實體外部,聽上去相當(dāng)簡單,只要按照這個程序,就可以調(diào)用了所以VHDL語言設(shè)計的基本特點就是將實體分為兩部分9。13VHDL語言的特點VHDL語言主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口,與其他硬件描述語言相比,VHDL語言有如下優(yōu)越之處(1)VHDL語言具有很強(qiáng)的行為描述能力,使它成為被經(jīng)常用的語言。具體行為和邏輯行為都是描述電路器件結(jié)構(gòu)的表現(xiàn)形式,而VHDL不同于其他的語言結(jié)構(gòu),它是避開具體行為從邏輯行為上描述、設(shè)計大規(guī)模電子電路系統(tǒng)的。邏輯行為的描述是他最大的特點10;(2)VHDL語言有很多功能語句和庫函數(shù),不管在什么樣的系統(tǒng)中,都能夠進(jìn)行驗證,它是分不同的具體過程來完成的,首先對程序語言編譯,需要程序無錯誤后才能進(jìn)行下一步執(zhí)行,編譯無誤后就可以進(jìn)行仿真驗證,整個過程就被完成;(3)VHDL語言有自己的特點,功能很強(qiáng)大,它擁強(qiáng)大的分解和組合功能,其實就是說,在遇到龐大的系統(tǒng)文件時,為了能夠很好地完成設(shè)計分析工作,需要將文件分解處理,而分解后的個體實際上仍然可以單獨執(zhí)行;組合也就是在VHDL中存在已有的可用模塊,在設(shè)計中遇到可用模塊時,不需要設(shè)計者在花時間單獨設(shè)計,直接從設(shè)計庫中調(diào)用使用即完成目的。當(dāng)然,它根據(jù)不同的情況解決不同的問題,支持大規(guī)模設(shè)計的分解與組合,不僅可以提高系統(tǒng)的效率,還能更好地幫助設(shè)計者完成設(shè)計工作11;沈陽大學(xué)畢業(yè)設(shè)計(論文)NO7(4)在使用VHDL語言完成設(shè)計的同時,當(dāng)然我們也可以巧妙地利用EDA工具對系統(tǒng)進(jìn)行邏輯綜合和優(yōu)化,這樣就可以出現(xiàn)多種解決方案,處理起來問題就會比較快速便捷,同時還可以自動的把VHDL描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表以方便使用;(5)VHDL語言還有一個非常大的特點,就是它對于設(shè)計系統(tǒng)具有相對獨立性,能夠進(jìn)行獨立的設(shè)計工作,工作人員不需要了解很多,幾乎是可以不需要知道電路元件的具體結(jié)構(gòu)框架,只需要知道我們要設(shè)計什么系統(tǒng)即能夠很好的完成設(shè)計工作。綜上所述,這種語言的優(yōu)點,使得這種語言應(yīng)用廣泛,簡單易懂,容易學(xué)會,可能零基礎(chǔ)的也可以很快學(xué)會。14VHDL語言結(jié)構(gòu)框架一個完整的VHDL程序由實體ENTITY、結(jié)構(gòu)體ARCHITECTURE、配置CONFIGURATION、包PACKAGE和庫LIBRARY5個部分組成12。什么是實體所設(shè)計的系統(tǒng)的外部接口信號用實體定義;系統(tǒng)內(nèi)部的結(jié)構(gòu)和行為用結(jié)構(gòu)體描述;配置用于從庫中選取所需單元來組成系統(tǒng)設(shè)計的不同版本,對于比較簡單只存在一個結(jié)構(gòu)單元的設(shè)計,配置部分可以省略;包中存放各設(shè)計模塊能共享的數(shù)據(jù)類型、常數(shù)和子程序等;庫存放已經(jīng)編譯的實體、結(jié)構(gòu)體、包集合和配置。庫、包、實體和結(jié)構(gòu)體是一個硬件實體的VHDL描述中必不可少的部分。VHDL結(jié)構(gòu)框架如圖1所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO8圖1VHDL程序結(jié)構(gòu)框圖圖1中是VHDL的全部結(jié)構(gòu),但實際上我們并不需要全部的結(jié)構(gòu),就像在許多設(shè)計項目中,大部分工程師只用到VHDL其中的30的語法。其中,最常用到的有USE定義區(qū)、PACKAGE定義區(qū)、ENTITY定義區(qū)、ARCHITECTURE定義區(qū),其他的根據(jù)不同的需要會得到不同的應(yīng)用。VHDL程序基本結(jié)構(gòu)如圖2所示圖2VHDL程序基本結(jié)構(gòu)141實體(ENTITY)實體ENTITY是VHDL程序設(shè)計中最基本的單元結(jié)構(gòu),它表示的電路可沈陽大學(xué)畢業(yè)設(shè)計(論文)NO9以非常的復(fù)雜,也可以是單個邏輯門那樣非常簡單。實體定義部分用于定義實體的名稱、輸入接口、輸出接口等實體與外部對象相連接的信息。實體定義是一個初級設(shè)計單元,可以單獨編譯,也可以被并入設(shè)計庫中,它給實體命名并給實體定義一個接口,接口信息用來和其它模塊通信連接13。實體定義部分描述了器件的外部視圖,其實我們在外部看元件的外在特性,可以看到比較重要的參數(shù),比如器件的名稱,端口等。當(dāng)在實體定義時也可以定義元件參數(shù)。這樣也就實現(xiàn)了把參數(shù)從元件外部傳送到模塊內(nèi)部的功能。實體結(jié)構(gòu)語句格式如下ENTITY實體名ISGENERIC(類屬參數(shù)說明);常數(shù)名數(shù)據(jù)類型設(shè)定值;PORT(端口說明)端口名端口模式數(shù)據(jù)類型;ENDENTITY實體名;142結(jié)構(gòu)體(ARCHITECTURE)結(jié)構(gòu)體是次級設(shè)計單元,在結(jié)構(gòu)體之前的單元實體部分編譯后,將其并入到設(shè)計庫中,之后結(jié)構(gòu)體就可以單獨編譯,編譯后再加入到設(shè)計庫中14。結(jié)構(gòu)體就是主要建立設(shè)計的輸入輸出關(guān)系,描述一個設(shè)計的結(jié)構(gòu)或行為。一個設(shè)計實體當(dāng)中可以有多個結(jié)構(gòu)體。在一個完整可以執(zhí)行的VHDL程序文件中,結(jié)構(gòu)體時必須存在的一部分,它在程序文件中最大的作用就是描述程序的行為功能。在一個程序文件中,可能會有多種結(jié)構(gòu)體表述形式。按照結(jié)構(gòu)體對結(jié)構(gòu)描述的層次來分,VHDL對結(jié)構(gòu)體的描述有以下3種層次。其語句沈陽大學(xué)畢業(yè)設(shè)計(論文)NO10格式如下ARCHITECTURE結(jié)構(gòu)體名;說明語句BEGIN功能描述語句ENDARCHITECTURE結(jié)構(gòu)體名;結(jié)構(gòu)體的基本結(jié)構(gòu)框架如圖3所示圖3結(jié)構(gòu)體構(gòu)造圖圖3中的五種語句結(jié)構(gòu)的基本組成和功能分別是(1)一系列并行執(zhí)行語句組合成塊語句,塊語句最突出的特點是它對并沈陽大學(xué)畢業(yè)設(shè)計(論文)NO11行語句的組合功能。有關(guān)的并行語句組成一個或者很多模塊,能夠很好地表述程序模塊的功能。這就使得我們會經(jīng)常用到塊語句;(2)進(jìn)程語句通俗的來講它就是順序語句的一種,進(jìn)程語句的功能就是從外部對內(nèi)部的信號進(jìn)行賦值,實現(xiàn)外部內(nèi)部的轉(zhuǎn)換傳遞工作。同時,進(jìn)程語句是分狀態(tài)完成的,它具有很強(qiáng)的順序邏輯性,這樣不會使系統(tǒng)內(nèi)部出錯,來完成系統(tǒng)的設(shè)計工作;(3)信號賦值語句是對已經(jīng)定義好的信號等用內(nèi)部的處理信號賦值,這樣可以很方便的傳遞數(shù)據(jù),方便系統(tǒng)的設(shè)計工作;(4)子程序調(diào)用語句是當(dāng)然指的是它具有調(diào)用的功能,在程序中能被調(diào)用的只有用函數(shù)和過程,具體的就是實現(xiàn)端口之間的對接,從而方便系統(tǒng)程序的執(zhí)行。143進(jìn)程語句(PROCESS)進(jìn)程(PROCESS)語句是眾多語句中最具VHDL語言特點的語句,它提供的方法是用一種用算法來描述硬件行為15。進(jìn)程事實上描述順序,就是講述一個事件的過程,發(fā)生的順序。進(jìn)程語句結(jié)構(gòu)包含了一個進(jìn)程,進(jìn)程語句是用來描述程序文件中邏輯行為和獨立語句的。我們已經(jīng)知道在一個結(jié)構(gòu)體中能夠同時存在多個并行運行的進(jìn)程結(jié)構(gòu),而這些進(jìn)程語句的內(nèi)部結(jié)構(gòu)就是一個順序語句的樣式,也就是說進(jìn)程語句它實際上是順序語句的一種。進(jìn)程語句有它自己的特點,比如順序執(zhí)行、多進(jìn)程、邏輯描述等。我們必須知道,進(jìn)程語句結(jié)構(gòu)中的順序語句和普通的順序語句在執(zhí)行的過程中不同是相對于計算機(jī)過程而言,它實際上就是順序執(zhí)行過程,這個順序執(zhí)行過程不能簡單地等同于硬件結(jié)構(gòu)的邏輯行為,他們之間存在著本質(zhì)上沈陽大學(xué)畢業(yè)設(shè)計(論文)NO12的不同。在進(jìn)程語句結(jié)構(gòu)中存在著時序邏輯和組合邏輯之分,它們都采用順序描述語句進(jìn)行描述程序結(jié)構(gòu)。但是,硬件中的組合邏輯具有非常典型的并行邏輯功能,而硬件中的時序邏輯也并不都是以順序方式工作的。進(jìn)程語句的表達(dá)格式如下PROCESS(敏感信號參數(shù)表)IS進(jìn)程說明部分;BEGIN順序描述語句;ENDPROCESS進(jìn)程標(biāo)號;所謂的進(jìn)程結(jié)構(gòu)本身是并行語句,一個結(jié)構(gòu)體中可以同時包含有多個并行進(jìn)程結(jié)構(gòu),而每一進(jìn)程結(jié)構(gòu)的每一個敏感參數(shù)的變化都是相對于自身的敏感信號參數(shù)表中定義的,每個進(jìn)程都可以在任意時刻被啟動,所有被啟動的進(jìn)程都是并行執(zhí)行的。144元件例化語句元件例化就是將設(shè)計實體看做一個元件,然后將元件與所指定的端口連接,其中用一些指定的功能語句即可,最后就是引入一個設(shè)計層次結(jié)構(gòu),當(dāng)然要低一級12。在這種情況下,設(shè)計實體本身在電路系統(tǒng)中可以單獨作用,它可以是一個比較大的電路系統(tǒng),被例化的元件與設(shè)計實體端口之間是一種對接關(guān)系,它們是可以嵌合在一起的,好比插頭與插座的關(guān)系。元件例化其實就是使VHDL在設(shè)計實體時構(gòu)成自上而下層次化設(shè)計16。其實在結(jié)構(gòu)體中調(diào)用子程序和元例化過程是非常非常相似的。只不過在調(diào)用時,會有些不同,系統(tǒng)會增加一個模塊,這個模塊是類似于元件的功能沈陽大學(xué)畢業(yè)設(shè)計(論文)NO13模塊。這樣的調(diào)用是不可以越級的,只能在同一個層次內(nèi)調(diào)用,其實這個過程是非常簡單的,因為它沒有增加額外的層次模塊。整個過程都是和例化十分接近,只有一點小的區(qū)別。當(dāng)然,元件例化不只是可以在同層次間進(jìn)行,還可以在不同層次中進(jìn)行,在一個設(shè)計實體中元件,它可以例化后調(diào)用其他元件,因為它本身也可以是一個當(dāng)前被調(diào)用的低層次的設(shè)計實體,這樣就可以構(gòu)成更加低層次的結(jié)構(gòu),這就可以看出元件例化就是在當(dāng)前的結(jié)構(gòu)再構(gòu)建一個新的層次用來設(shè)計。這個設(shè)計層次的總稱就是元件,但它可以以不同的形式出現(xiàn)元件例化語句分為兩個部分,第一部分是將一個已經(jīng)完成的設(shè)計實體定義為一個簡單元件的語句,第二部分則是元件與設(shè)計實體的連接說明。元件例化語句格式如下17第一部分COMPONENT例化元件名ISGENERIC(類屬表);PORT(例化元件端口名表);ENDCOMPONENT例化元件名;第二部分元件例化名例化元件名PORTMAP(例化元件端口名連接實體端口名,);這兩部分在元件例化過程中缺一不可,缺少任何一個都不能完成任務(wù)。前者語句是例化元件的定義語句,后者是原價例化的功能語句。元件例化的第一部分是類屬參數(shù),它的類屬表包含了端口的數(shù)據(jù)類型和參數(shù),例化元件沈陽大學(xué)畢業(yè)設(shè)計(論文)NO14的端口名列表同時也包含了對外連接的各個端口名。元件例化的第二部分是元件例化生成語句,結(jié)構(gòu)中的的元件例化名是必須要存在的,它相當(dāng)于在當(dāng)前系統(tǒng)中已知的一個代名詞,例化元件名就是準(zhǔn)備與之相連接的、已定義好的元件名。PORTMAP是端口映射的意思,在元件定義語句中的端口名表中,例化元件端口名是已經(jīng)定義好的例化元件端口的名稱,剩下的一一對應(yīng),按照順序連接起來即可。15VHDL軟件設(shè)計簡介系統(tǒng)電路的軟件設(shè)計可以采用的工具軟件有MAXPLUS和QUTERS,在本文中使用的是MAXPLUS,使用這個軟件平臺是因為他的硬件環(huán)境,對于輸入的每一個應(yīng)用程序都必須首先進(jìn)行編譯,編譯沒有錯誤后才可以進(jìn)行下一步。要想進(jìn)行分析,仿真,調(diào)試等必須做足一定的工作之后才能實現(xiàn)。首先設(shè)計制作單個器件,然后生成文庫,當(dāng)然同時產(chǎn)生相對應(yīng)的電路符號,最后將每一個生成的文庫與各個端口對應(yīng)連接在一起,這樣基本完成相應(yīng)的軟件結(jié)構(gòu)與系統(tǒng)電路對應(yīng)。其中還會有一些問題,所以中間的過程要格外細(xì)心。連接每個器件的端口,采用圖形輸入的方式,在圖形輸入界面可以調(diào)用已經(jīng)完成的庫文件。最后的工作就是用導(dǎo)線將每個器件符號的各個端口連接起來這樣就全部完成,構(gòu)成系統(tǒng)主電路的電路圖18。沈陽大學(xué)畢業(yè)設(shè)計(論文)NO152利用VHDL語言設(shè)計地鐵售票系統(tǒng)21地鐵售票系統(tǒng)功能分析地鐵售票機(jī)的進(jìn)幣口總共有兩個,分為硬幣輸入口和紙幣輸入口,系統(tǒng)只能識別5角和1元的硬幣,其他的硬幣系統(tǒng)概不識別;系統(tǒng)只能識別1元、5元和10元這三種面值的紙幣,其他面值的紙幣系統(tǒng)是不能是別的。乘客在購票時可以連續(xù)多次投入錢幣,但是不能同時投入硬幣和紙幣,因為它們之間是順序過程而非并行。在購買車票時,乘客一次只能選擇一個出站口,根據(jù)流程,乘客先選擇出站口名稱,然后選擇所需要購買的車票數(shù)量,之后再進(jìn)行投幣,投入的錢幣達(dá)到所購買的總票價時,售票機(jī)會由系統(tǒng)控制自動出票,出票結(jié)束后,系統(tǒng)會根據(jù)票價計算自動退出余額,余額全部退出后系統(tǒng)會自動跳回選站狀態(tài),等待乘客再次進(jìn)行新的操作。在選票和投幣期間,乘客可以按取消鍵取消本次操作,選票狀態(tài)按下“取消鍵”,則系統(tǒng)自動回到選站狀態(tài),投幣狀態(tài)選擇“取消鍵”,錢幣自動退出,回到選站狀態(tài)。22地鐵售票系統(tǒng)的總體設(shè)計分析(1)在購買車票時,乘客點擊“開始選擇”按鈕,緊接著選擇出站口的名稱,再接著選擇購買車票的數(shù)量數(shù)量,這里規(guī)定乘客每次購買的車票不允許超過3張,然后點擊“開始投幣”按鈕,投入可以大于等于車票總額的錢幣;當(dāng)投入的錢幣滿足系統(tǒng)所需金額時,售票機(jī)會自動出票,同時找出余額;(2)在選擇出站口或投幣過程中,乘客都可以隨時選擇“取消”按鈕取消該次操作。在選擇出站口的過程中,如果點擊“取消”按鈕,則售票系統(tǒng)會直接回到選站狀態(tài);在投幣過程中,如果點擊“取消”按鈕,則售票系統(tǒng)會將乘客已經(jīng)投入的錢幣全部退回,并且回到選站狀態(tài);沈陽大學(xué)畢業(yè)設(shè)計(論文)NO16(3)這里規(guī)定乘客每次只能選擇一個出站口,系統(tǒng)會根據(jù)乘客乘坐的站數(shù)來確定票價。我們假設(shè)地鐵線路從起點站到終點站總共有15個站。如果選擇乘坐范圍為18站之間,則每張票的單價為2元張;如果乘坐范圍為916站之間,則每張票的單價為4元張。這16個站采用4位二進(jìn)制向量編碼來進(jìn)行表示,分別為0001表示乘坐1站,0010表示乘坐2站,依次類推表示,1111表示乘坐15站即到達(dá)終點站;(4)售票機(jī)總共有2個進(jìn)幣口。硬幣口和紙幣口,硬幣口可識別5角和1元2種硬幣,這里采用長度為2的一比特?zé)嵛痪幋a方式進(jìn)行表示,即01表示5角,10表示1元。紙幣口同樣采取這種方式,用長度為4的一比特?zé)嵛痪幋a方式進(jìn)行表示,它們是類似的。乘客可以連續(xù)多次投入錢幣,并且可以以任意順序投入硬幣和紙幣,但是,不可以同時投入硬幣和紙幣。23地鐵售票系統(tǒng)的系統(tǒng)流程設(shè)計(1)在仿真調(diào)試售票系統(tǒng)時候,必須先對系統(tǒng)進(jìn)行上電復(fù)位,此系統(tǒng)為高電平復(fù)位,系統(tǒng)復(fù)位操作后就會停留在選站狀態(tài)等待乘客的購票操作;(2)乘客在確定自己的出站名以后,根據(jù)內(nèi)部系統(tǒng)設(shè)定,自動完成票價計算,票價有兩種,2元和4元票價;(3)在上個操作完成后,進(jìn)入選票狀態(tài),系統(tǒng)讀取乘客的購買票數(shù)后,會根據(jù)已經(jīng)設(shè)定好的票價計算總購票金額;(4)選站選票結(jié)束后系統(tǒng)會自動進(jìn)入到投幣狀態(tài),此時,乘客需要根據(jù)系統(tǒng)提示投入系統(tǒng)會能夠識別的錢幣,有硬幣和紙幣,硬幣有5角和1元,紙幣有1元,5元和10元,在投幣過程中,系統(tǒng)會按照乘客的投幣進(jìn)程不斷累加乘客多次的投幣金額,在乘客投幣結(jié)束后系統(tǒng)會自動判乘客投入的錢幣沈陽大學(xué)畢業(yè)設(shè)計(論文)NO17是否達(dá)到系統(tǒng)計算的車票總額,如果沒有達(dá)到,則系統(tǒng)會繼續(xù)停留在投幣狀態(tài)并提醒乘客需要繼續(xù)投幣;(5)當(dāng)乘客投入的錢幣達(dá)到系統(tǒng)計算的車票總額后,系統(tǒng)會自動的進(jìn)入到出票狀態(tài),由于避免同時出票會出現(xiàn)出票口卡票問題,要求系統(tǒng)每個周期只能出一張票,在乘客購買的所有車票都出完后系統(tǒng)會自動進(jìn)入到余額找零狀態(tài),根據(jù)系統(tǒng)的比對計算,找出剩余的錢幣;(6)余額找零是會涉及到多種錢幣的選擇問題,那就需要一個算法來設(shè)定一個錢幣選擇順序,比如根據(jù)面值從大到小或者從小到大均可,只要有順序即可,等找完零錢后會自動返回到初始界面,方便下一位乘客購票;(7)在購買車票的過程中,乘客在選票狀態(tài)和投幣狀態(tài)都可以結(jié)束本次操作,這就需要設(shè)置一個取消鍵的發(fā)揮作用,它是由高電平出發(fā)的。在選票過程中,當(dāng)乘客按下取消鍵是,系統(tǒng)就會很快的回到初始狀態(tài),即選站狀態(tài),這樣就可以重新購票。假如遇到這種情況,乘客的錢已經(jīng)投入,但是不足以買票,這樣顧客可以按下取消鍵,任意時刻均可,投入的錢可以返出,系統(tǒng)自動回到初始界面,這樣下一個顧客可以繼續(xù)進(jìn)行購票,這樣會很方便,而且可以節(jié)省很多時間。24地鐵售票系統(tǒng)的系統(tǒng)狀態(tài)設(shè)計地鐵售票系統(tǒng)可以分為以下五個狀態(tài)選站狀態(tài);選票狀態(tài);投幣狀態(tài);出票狀態(tài);余額找零狀態(tài),系統(tǒng)每個狀態(tài)完成以下功能。系統(tǒng)流程如圖4所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO18圖4系統(tǒng)流程圖(1)選站狀態(tài)選站狀態(tài)是乘客根據(jù)需求選擇乘坐站數(shù)的界面,乘客在確定乘坐站數(shù)以后,系統(tǒng)會自動進(jìn)入到選票狀態(tài)。同時,選站狀態(tài)還是售票機(jī)的默認(rèn)狀態(tài),也就是當(dāng)沒有人使用售票機(jī)時,系統(tǒng)依然會停留在這個狀態(tài)下,等待乘客使用操作;(2)選票狀態(tài)選票狀態(tài)下乘客在選站后需要選擇自己購買車票張數(shù)的沈陽大學(xué)畢業(yè)設(shè)計(論文)NO19界面,乘客在確定票數(shù)以后,系統(tǒng)會自動進(jìn)入到投幣狀態(tài)。同時乘客也可以在這個狀態(tài)下按下取消鍵來取消本次操作,此時,系統(tǒng)會回到選站狀態(tài)等待乘客下一次的操作;(3)投幣狀態(tài)在投幣狀態(tài)下乘客可以根據(jù)自己的購票狀況進(jìn)行投幣,并且可以連續(xù)多次投幣。乘客投幣結(jié)束后,系統(tǒng)內(nèi)部會自動完成計算投幣的總額,同時將計算結(jié)果跟系統(tǒng)計算的票價總額進(jìn)行比較,如果所投錢幣不夠,系統(tǒng)就會保留在投幣狀態(tài)并提醒乘客需要繼續(xù)投入錢幣,同時,乘客也可以選擇取消鍵將所投錢幣退回結(jié)束操作;如果所投入的錢幣正好或者多于系統(tǒng)計算的總票價,則會進(jìn)入到出票狀態(tài)。在出票結(jié)束后,如果所投錢幣還有剩余,則系統(tǒng)會自動進(jìn)入到余額找零狀態(tài)找回余額;(4)出票狀態(tài)在出票狀態(tài)下完成出票功能,每個周期出只能出一張票,直到所有的票出完為止。當(dāng)顧客所買的票售完之后,系統(tǒng)會自動回到初始界面或者進(jìn)入找零狀態(tài),提醒顧客相應(yīng)票已經(jīng)售完;(5)余額找零狀態(tài)余額狀態(tài)是把購票結(jié)束后把余額退回給乘客,在出票完畢后,系統(tǒng)會判斷是否有余額,如果余額不為零,則系統(tǒng)會繼續(xù)停留在找零狀態(tài),直到退回所有錢幣,如果余額已經(jīng)為零,系統(tǒng)就會回到初始狀態(tài)等待乘客下一次操作。在這里,系統(tǒng)中給出TP,TMONEY,PMONEY,NUM,EN幾個變量,同時系統(tǒng)會控制這幾個狀態(tài)之間的轉(zhuǎn)移。它們分別表示判斷選站操作、判斷乘選票操作、判斷投幣操作、判斷出票操作、判斷余額找零操作。在系統(tǒng)設(shè)計中的輸入變量有CLK,RESET,STATION,TN,LETTUCE,COIN,CANCELKEY等。其中變量CLK表示的是時鐘周期信號,變量RESET指的是系統(tǒng)復(fù)位信號,沈陽大學(xué)畢業(yè)設(shè)計(論文)NO20變量STATION指的是乘客所選擇的出站數(shù)量,在程序設(shè)計中總共設(shè)置了16個站點,不同站數(shù)對應(yīng)不同的票價,有2元和4元之分。0代表起始站,110站的票價為2元,1115站的票價為4元。變量TN指的是乘客所選的車票的數(shù)量,為了方便操作,乘客每次允許購買的車票數(shù)量不可以超過3張票。變量LETTUCE指的是乘客總共投入的紙幣的錢數(shù),變量COIN表示的是乘客總共投入的硬幣的錢數(shù),變量CANCELKEY指的是乘客可以在選票和投幣狀態(tài)下放棄本次操作。在系統(tǒng)設(shè)計中的輸出變量有TOUT,MOUT,MONEYINPUTALARM,STATE等。它們所代表的是出票、找零、余額不足提醒、狀態(tài)轉(zhuǎn)換。系統(tǒng)狀態(tài)轉(zhuǎn)換如圖5所示圖5系統(tǒng)狀態(tài)轉(zhuǎn)化圖沈陽大學(xué)畢業(yè)設(shè)計(論文)NO213系統(tǒng)程序模塊化設(shè)計31選站模塊設(shè)計在購票系統(tǒng)中,首先要實現(xiàn)的就是選站。在這里,假設(shè)共有16站,為了實現(xiàn)表示這16站,采用4位二進(jìn)制碼表示,0000表示初始站,1111表示第15站,在描述選站的同時,還需要規(guī)定對應(yīng)站所需票價,在這里我們規(guī)定110站的票價為2元,1115站的票價為4元,在乘客選完站后,系統(tǒng)會自動顯示票價,乘客確定后就可以進(jìn)行選票操作,如果乘客沒有選站,則系統(tǒng)一直會停留在選站狀態(tài)等待乘客選站,不會進(jìn)入下一模塊選擇。選站模塊主要源程序CASESTATIONISWHEN“0000“TP0;WHEN“0001“TP2;WHEN“0010“TP2;WHEN“0011“TP2;WHEN“0100“TP2;WHEN“0101“TP2;WHEN“0110“TP2;WHEN“0111“TP2;WHEN“1000“TP2;WHEN“1001“TP2;WHEN“1010“TP2;WHEN“1011“TP4;WHEN“1100“TP4;WHEN“1101“TP4;WHEN“1110“TP4;WHEN“1111“TP4;WHENOTHERSNULL;32選票模塊設(shè)計選站之后,就需要乘客進(jìn)行選票,由于在日常生活中,乘客基本上都是自己購票,當(dāng)然也有可能一人購買多張去同一個站的多張票,為了減少不必要的麻煩和方便乘客購票,將每次購票的張數(shù)限制在3張以內(nèi)。選完票之后,沈陽大學(xué)畢業(yè)設(shè)計(論文)NO22系統(tǒng)會根據(jù)選擇的站數(shù)和購買的票數(shù)自動計算票價,結(jié)束后,會自動出現(xiàn)投幣界面。在選票過程中,由于不同的原因,乘客可能會選擇重新回到選站或選票界面,在這里就必須設(shè)計一個取消鍵,取消鍵采用高電平控制,在按下取消鍵后,系統(tǒng)自動回到選站狀態(tài),讓乘客重新選擇。在沒有問題時,乘客可以進(jìn)入投幣界面進(jìn)行投幣操作。選票模塊源程序WHENSELTICKETSTATETMONEYTMONEY1TP;NUM1;WHEN“10“TMONEYTMONEY2TP;NUM2;WHEN“11“TMONEYTMONEY3TP;NUM3;WHENOTHERSNULL;ENDCASE;IFTMONEY/0THENNEXT_STATEINPUTCOIN;ELSENEXT_STATESELTICKET;ENDIF;ENDIF;33投幣模塊設(shè)計進(jìn)入投幣狀態(tài)后,在生活中,錢幣分為硬幣和紙幣,硬幣的面值有五角和一元,紙幣的面只有1元、5元、10元等,由于票價及方便的原因,在系統(tǒng)中采用三種紙幣的面值,即1元、5元、10元。紙幣和硬幣分為兩個不同的過程,它們之間是一個順態(tài)過程,即它們不能同時進(jìn)行,但它們使用同一個累加過程。在這里使用4位二進(jìn)制碼表示紙幣面額,即0001表示1元,0101表示5沈陽大學(xué)畢業(yè)設(shè)計(論文)NO23元,1010表示10元。乘客可以進(jìn)行連續(xù)投幣,同時錢幣進(jìn)行累加。當(dāng)投入的金額達(dá)到票價時,系統(tǒng)就會自動進(jìn)入出票狀態(tài)。在投幣過程中,若乘客按下取消鍵,系統(tǒng)會自動退回所投入錢幣,并自動轉(zhuǎn)回選站狀態(tài)。投幣模塊源程序WHENINPUTCOINSTATEPMONEYPMONEY1;WHEN“0101“PMONEYPMONEY5;WHEN“1010“PMONEYPMONEY10;WHENOTHERSNULL;ENDCASE;CASECOINISWHEN“01“HALFHALF1;IFHALF2THENPMONEYPMONEY1;HALF0;ENDIF;WHEN“10“PMONEYPMONEY1;WHENOTHERSNULL;ENDCASE;34出票模塊設(shè)計在出票狀態(tài)下,考慮實際問題,在乘客購買多張車票時,車票是一張一張的出來的,那么就需要設(shè)計系統(tǒng)控制出票,通過時鐘周期來實現(xiàn)控制出票。其實,只需要兩個變量就可以實現(xiàn),TOUT和NUM,當(dāng)TOUT不為零的時候,系統(tǒng)就一直通過NUM的遞減來實現(xiàn)出票,這實際是一個有限循環(huán)過程,每個時鐘周期出一張票。事實上,在選票模塊中已經(jīng)提到,票數(shù)最多可以選擇三張,在這里也就最多循環(huán)三次,來完成出票口出票。在出票結(jié)束后,系統(tǒng)會出現(xiàn)兩沈陽大學(xué)畢業(yè)設(shè)計(論文)NO24個選擇,一個是繼續(xù)選票,一個是余額找零,如果乘客需要繼續(xù)選票,則點擊繼續(xù)選票,系統(tǒng)會跳轉(zhuǎn)到選票狀態(tài);如果乘客選擇余額找零則系統(tǒng)會自動進(jìn)入到余額找零狀態(tài)。出票模塊源程序WHENTICKETOUTSTATENULL;WHEN1TOUTNUMNUM1;TOUTNUMNUM1;TOUTSTATE10THENRMONEYRMONEY10;MOUT5THENRMONEYRMONEY5;MOUT1THENRMONEYRMONEY1;MOUTNEXT_STATESELSTATION;ENDCASE;沈陽大學(xué)畢業(yè)設(shè)計(論文)NO264系統(tǒng)程序的編譯和仿真41MAXPLUS的介紹MAXPLUSII是ALTERA公司推出的的第三代PLD開發(fā)系統(tǒng),ALTERA是的世界上最大可編程邏輯器件的供應(yīng)商之一。如果沒有它,人類至少還要多費好多年來研究,而且使用MAXPLUSII非常簡單,不需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),不需掌握所有的內(nèi)部結(jié)構(gòu),非常好理解,簡單易上手,當(dāng)然,設(shè)計者可以用自己熟悉的設(shè)計工具(如原理圖輸入或硬件描述語言)建立設(shè)計,MAXPLUSII把這些設(shè)計轉(zhuǎn)自動換成最終使用者所需的格,其設(shè)計速度又快又準(zhǔn)19。411MAXPLUSII界面MAXPLUSII界面如圖6所示圖6MAXPLUS界面沈陽大學(xué)畢業(yè)設(shè)計(論文)NO27412MAXPLUS的特點(1)具有面向全過程的界面,為用戶提供的EDA工具接口,方便硬件結(jié)構(gòu)的設(shè)計;(2)與器件結(jié)構(gòu)無關(guān)的邏輯描述。這個系統(tǒng)有很強(qiáng)大的內(nèi)部功能系統(tǒng),可以脫離元器件的具體結(jié)構(gòu)完成量化設(shè)計,幾乎大部分的的電路系統(tǒng)都可以通過這個系統(tǒng)平臺來綜合完成設(shè)計,設(shè)計者也不必深究,按照自己的系統(tǒng)即可;(3)具有多平臺結(jié)構(gòu);(4)實現(xiàn)電路系統(tǒng)高度集成化。這個軟件的所有動態(tài)均在統(tǒng)一的開發(fā)環(huán)境中,比如設(shè)計輸入、處理與校驗功能等,由此可以快速的完成電路系統(tǒng)的運行;(5)具有強(qiáng)大的設(shè)計庫。在MAXPLUS系統(tǒng)平臺中,內(nèi)部實際上已經(jīng)定義好豐富的設(shè)計庫單元,基本上都能夠滿足設(shè)計者的需求,利用設(shè)計庫單元的資源,就能夠大大減少工作量,提高工作效率;(6)系統(tǒng)必備模塊化設(shè)計工具;(7)支持多種硬件描述語言。42系統(tǒng)程序編譯(1)打開MAXPLUS運行環(huán)境,在FLIE項目中選擇新建一個文本編輯文件,即是按照界面“FILE”“NEW”“TEXTEDITORFILE”“OK”順序完成操作,這就可以建立一個文本編輯文件。新建文件對話框如圖7所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO28圖7新建文件對話框(2)當(dāng)點擊“OK”按鈕時出現(xiàn)一個空白頁面,將已編輯好的程序輸入空白頁中。程序輸入對話框如圖8所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO29圖8程序輸入對話框(3)在輸入程序后,保存程序文件,之后會出現(xiàn)圖9所示的對話框界面,點擊“OK”按鈕后即完成保存此文檔,如圖9所示圖9保存文檔對話框沈陽大學(xué)畢業(yè)設(shè)計(論文)NO30(4)選擇菜單中的“MAXPLUS”“COMPILER”,及是對編輯文件進(jìn)行編譯,如果程序沒有錯誤,就會出現(xiàn)如下對話框如圖10所示圖10編譯成功43系統(tǒng)程序仿真(1)首先建立一個仿真波形文件。即是按照“FILE”“NEW”“WAVEFORMEDITORFILE”“OK”順序操作完成,之后將出現(xiàn)波形編輯器子窗口。建立和保存仿真波形文件如圖11和圖12所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO31圖11建立仿真波形文件圖12保存仿真波形文件(2)設(shè)置結(jié)束時間。選擇菜單中的“FILE”“ENDTIME”,之后將會出現(xiàn)設(shè)沈陽大學(xué)畢業(yè)設(shè)計(論文)NO32置仿真時間對話框。把其中的TIME項設(shè)置為100US,點擊“OK”按鈕,如圖13所示圖13設(shè)置結(jié)束時間(3)設(shè)置信號結(jié)點。選擇菜單中的“NODE”“ENTERNODESFROMSNF”,出現(xiàn)選擇信號結(jié)點對話框。點擊對話框中右上側(cè)的“LIST”按鈕,左邊的列表框?qū)谐鏊锌梢赃x擇的信號結(jié)點,然后點擊導(dǎo)入按鈕,將左邊列表框中的所有結(jié)點全部導(dǎo)入到右邊的列表框中。點擊“OK”按鈕,被選中的所有信號將會出現(xiàn)在波形編輯器當(dāng)中。結(jié)點設(shè)置圖如圖14所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO33圖14設(shè)置結(jié)點(4)設(shè)置輸入信號參數(shù)。在波形觀察窗中,連接點在右邊的按鈕是用于設(shè)置輸入信號的,使用的時候需要用鼠標(biāo)在輸入波形上的周期上拖拽一個區(qū)域,該區(qū)域會變成黑色區(qū)域,然后點擊相應(yīng)的信號節(jié)點按鈕完成參數(shù)設(shè)置。其中,“0”,“1”,“X”,“Z”,“INV”,“G”參數(shù),它們分別代表低電平、高電平、任意、高電阻、反相和總線數(shù)據(jù),是用于設(shè)置不同頻率的脈沖輸入信號。假設(shè)乘客需要乘坐11站,購買2張票,投入10元紙幣。信號參數(shù)設(shè)置圖如圖15所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO34圖15仿真參數(shù)設(shè)置(5)運行仿真器進(jìn)行仿真。頂層文件還要設(shè)置為此文件,選擇主菜單“MAXPLUS”“SIMULATOR”,之后會出現(xiàn)仿真啟動窗如圖16,點擊該窗口中的“START”按鈕,就開始了對程序文件的仿真。在仿真運算結(jié)束后,顯示“0ERRORS,0仿真結(jié)果如圖16所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO35圖16仿真啟動圖17仿真結(jié)果沈陽大學(xué)畢業(yè)設(shè)計(論文)NO365仿真結(jié)果驗證在不同的購票階段會出現(xiàn)不同的狀況,需要從多個方面來驗證各項功能的實現(xiàn),最主要的就是取消鍵的實現(xiàn)和余額找零的實現(xiàn),現(xiàn)在從這兩個方面來驗證仿真結(jié)果。51選票狀態(tài)“取消鍵”驗證現(xiàn)三位乘客需要乘坐11站,購買三張車票,但發(fā)現(xiàn)他需要在前一站下車,這就需要重新選站,這就需要使用取消鍵來解決回到選站狀態(tài)。選票狀態(tài)下按下“取消鍵”設(shè)置參數(shù)如圖18所示圖18參數(shù)設(shè)置沈陽大學(xué)畢業(yè)設(shè)計(論文)NO37按下“取消鍵”后,系統(tǒng)仿真結(jié)果如圖19所示圖19仿真結(jié)果從上面兩張圖可以看出,在選票狀態(tài)時,按下“取消鍵”后,系統(tǒng)會自動回到初始狀態(tài),停留在選站狀態(tài)。“取消鍵”在選票狀態(tài)下的作用得以驗證。52投幣狀態(tài)下“取消鍵”驗證現(xiàn)兩位乘客需要乘坐11站,購買兩張車票,按照售票系統(tǒng)程序,進(jìn)入投幣狀態(tài),在投入5元紙幣后,發(fā)現(xiàn)沒有售票機(jī)可以識別的錢幣了,只能選擇其它交通方式,這時就要退回所投錢幣。使用“取消鍵”可以實現(xiàn)退幣功能。投幣狀態(tài)下參數(shù)設(shè)置如圖20所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO38圖20參數(shù)設(shè)置按下“取消鍵”后,系統(tǒng)仿真結(jié)果如圖21所示圖21仿真結(jié)果由圖21可以得出,在按下取消鍵后,MOUT一項中出現(xiàn)余額找零5元,從沈陽大學(xué)畢業(yè)設(shè)計(論文)NO39仿真結(jié)果可以知道,乘客在投幣狀態(tài)時要想放棄購票退回自己已投錢幣,可以通過“取消鍵”來完成操作。53余額找零驗證乘客購買車票后,肯定不能正好完全投入系統(tǒng)需要的錢幣,假如乘客都買3張票價為4元的車票,那么所買車票總額為12元,乘客投入兩張面值為10元的錢幣,這是系統(tǒng)會根據(jù)面值從大到小的錢幣進(jìn)行找零,也即是找零為1張5元和3張1元。購買車票參數(shù)設(shè)置如圖22所示圖22參數(shù)設(shè)置仿真結(jié)果驗證如圖23所示沈陽大學(xué)畢業(yè)設(shè)計(論文)NO40圖23仿真結(jié)果由圖23可以得出,驗證了余額找零的正確性,和預(yù)想的想要達(dá)到的目的是一致的,系統(tǒng)會按照規(guī)定好的程序進(jìn)行余額找零功能的執(zhí)行。在MOUT一項中能夠清楚的看到找零為1張5元和3張1元,這就證明的余額找零程序的正確性。沈陽大學(xué)畢業(yè)設(shè)計(論文)NO41結(jié)論本論文基本實現(xiàn)了地鐵售票系統(tǒng)的整個售票過程。主要實現(xiàn)乘客在選站、選票、投幣、出票、余額找零這幾個狀態(tài)的操作。其中有一個比較重要的問題是投幣問題,投幣口可識別的紙幣和硬幣都是有不同面值的,如何設(shè)置錢幣累加過程,如何設(shè)置余額找零的順序,以及出票過程和取消鍵的功能設(shè)置,都是售票系統(tǒng)中必須要解決的問題。在設(shè)計售票系統(tǒng)時,考慮到實際生活交通狀況問題,把站臺分為了不同的站點,在實際生活中可能會有更多的站,只需更改程序中的二進(jìn)制碼即可實現(xiàn)。不同的站數(shù)階段內(nèi)需要設(shè)置合理的票價段,規(guī)定不同站對應(yīng)不同的單價,這樣就能更貼近現(xiàn)實生活中的地鐵售票系統(tǒng)。另外,在乘客提供的金額沒有達(dá)到系統(tǒng)計算票價總額時,系統(tǒng)會提示乘客所投入的錢幣不足,請乘客繼續(xù)投幣達(dá)到所需金額,此時乘客可以選擇繼續(xù)投幣,也可以選擇退錢放棄購票;繼續(xù)投幣,滿足票價總額時系統(tǒng)會自動出票找零,放棄購票可以選擇取消鍵,這樣乘客提供的的錢幣會全部退出,此次操作被取消,系統(tǒng)自動回到選站狀態(tài)。在實現(xiàn)這些功能時本程序是采用狀態(tài)機(jī)的原理進(jìn)行編程的。本文主要體現(xiàn)VHDL在實際生活中的應(yīng)用,隨著數(shù)字化的進(jìn)步,VHDL在逐步深入到各個領(lǐng)域的應(yīng)用。沈陽大學(xué)畢業(yè)設(shè)計(論文)NO42致謝時光飛逝,光陰似箭。眨眼間,四年的大學(xué)生活就要結(jié)束了?;仡欉@四年的時間在沈大的求學(xué)經(jīng)歷,歡笑與淚水同在,成功與失敗并存。借助此次論文的方式,截稿的機(jī)會,我謹(jǐn)向尊敬的老師,親愛的同學(xué)以及始終支持我的親人和朋友致以最誠摯的感謝。首先特別感謝我的導(dǎo)師吳瓊老師。在與恩師朝夕相處的時光里,恩師不僅在學(xué)習(xí)和科研上耐心指導(dǎo),并且在生活等方面給我很多幫助和教導(dǎo),尤其在做人做事上對我的影響巨大。本論文是在吳瓊老師的精心指導(dǎo)下完成的,在論文的選題、結(jié)構(gòu)、內(nèi)容和設(shè)計上,恩師都提出很多珍貴的意見和建議,給予我大量的鼓勵與支持,使我圓滿的完成了碩士階段的學(xué)習(xí)。老師淵博的知識、認(rèn)真的態(tài)度、風(fēng)趣幽默的性格、嚴(yán)謹(jǐn)踏實的作風(fēng)讓我學(xué)習(xí)到了很多。在此,謹(jǐn)向吳瓊老師致以最衷心的感謝此外,衷心感謝曾經(jīng)指導(dǎo)過我的信息工程學(xué)院的各位老師,因為他們在這四年教給我的專業(yè)知識的基礎(chǔ)和更深入的專業(yè)知識,感謝他們在我求學(xué)階段給予的悉心教導(dǎo)和培養(yǎng)。另外,衷心感謝和我一起學(xué)習(xí)的朋友以及和我并肩學(xué)習(xí)過的同學(xué)們。他們認(rèn)真的態(tài)度和嚴(yán)謹(jǐn)?shù)淖黠L(fēng)值得我學(xué)習(xí),能夠和他們一起學(xué)習(xí)真的讓我學(xué)到很多很多,非常感謝他們。最后,特別感謝我的父母和家人,在我人生的求學(xué)期間始終默默的支持與奉獻(xiàn),感謝他們給予我的愛和支持。多年來,如果不是父母在思想以及經(jīng)濟(jì)上的鼎力支持,我不可能堅持到今天。養(yǎng)育之恩無以為報,我只有不斷的努力,不斷地超越自我才是對他們最好的報答。沈陽大學(xué)畢業(yè)設(shè)計(論文)NO43參考文獻(xiàn)1張霞VHDL在現(xiàn)代EDA中的應(yīng)用J現(xiàn)代電子技術(shù),2011,543522呂樂地鐵自動售票系統(tǒng)設(shè)計研究J數(shù)字化用戶,2013,1168873陳虹地鐵自動售票系統(tǒng)交互設(shè)計J城市軌道交通研究,2012,756984劉楚生地鐵售票系統(tǒng)控制設(shè)計J機(jī)械工程師,2012,856675林敏,方穎立VHDL數(shù)字系統(tǒng)設(shè)計與高層次綜合M電子工業(yè)出版社,201211242416焦素敏E
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度木結(jié)構(gòu)建筑設(shè)計與施工總承包合同8篇
- 國際貿(mào)易課件:WTO的反傾銷制度
- 2025年度數(shù)據(jù)中心承建與信息安全防護(hù)合同4篇
- 二零二五年度LED顯示屏產(chǎn)品安全認(rèn)證合同3篇
- 2025版環(huán)保設(shè)施運營維護(hù)管理承包合同范本4篇
- 2025年度木材市場風(fēng)險管理與價格波動合同4篇
- 二零二五年度養(yǎng)老產(chǎn)業(yè)項目合伙人分紅及服務(wù)質(zhì)量保障合同
- 二零二五年度池塘水域漁業(yè)養(yǎng)殖技術(shù)培訓(xùn)與推廣協(xié)議
- 2025年度企業(yè)銷售團(tuán)隊績效目標(biāo)協(xié)議書
- 二零二五年度順豐快遞員勞動合同爭議解決機(jī)制
- 2024生態(tài)環(huán)境相關(guān)法律法規(guī)考試試題
- 有砟軌道施工工藝課件
- 兩辦意見八硬措施煤礦安全生產(chǎn)條例宣貫學(xué)習(xí)課件
- 40篇短文搞定高中英語3500單詞
- 人教版高中數(shù)學(xué)必修二《第九章 統(tǒng)計》同步練習(xí)及答案解析
- 兒科護(hù)理安全警示教育課件
- 三年級下冊口算天天100題
- 國家中英文名稱及代碼縮寫(三位)
- 人員密集場所消防安全培訓(xùn)
- 液晶高壓芯片去保護(hù)方法
- 拜太歲科儀文檔
評論
0/150
提交評論