EDA基于VHDL語言的出租車計價器課程設(shè)計_第1頁
EDA基于VHDL語言的出租車計價器課程設(shè)計_第2頁
EDA基于VHDL語言的出租車計價器課程設(shè)計_第3頁
EDA基于VHDL語言的出租車計價器課程設(shè)計_第4頁
EDA基于VHDL語言的出租車計價器課程設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

word文檔可自由復制編輯得分評卷教師EDA課程設(shè)計題目:基于VHDL語言出租車計費器姓名:分院:機器人科學與技術(shù)學院專業(yè):電子信息工程學號:word文檔可自由復制編輯摘要本文介紹了一種采用單片F(xiàn)PGA芯片進行出租車計費器的設(shè)計方法,主要闡述如何使用新興的EDA器件取代傳統(tǒng)的電子設(shè)計方法,利用FPGA的可編程性,簡潔而又多變的設(shè)計方法,縮短了研發(fā)周期,同時使出租車計費器體積更小功能更強大。本設(shè)計實現(xiàn)了出租車計費器所需的一些基本功能,計費包括起步價、行車里程計費、等待時間計費,同時考慮到出租車行業(yè)的一些特殊性,更注重了把一些新的思路加入到設(shè)計中。主要包括采用了FPGA芯片,使用VHDL語言進行編程,使其具有了更強的移植性,更加利于產(chǎn)品升級。關(guān)鍵詞:VHDL計費器FPGAAbstractThispaperdescribestheuseofasinglechipFPGAforthedesignofaccounting-feemachine,mainlyonhowtousetheemergingEDAelectronicdevicesdesignedtoreplacetraditionalmethods,usingtheprogrammableFPGA,conciseandchangingthedesignWaystoshortenthedevelopmentcycle,sothattaxiaccounting-feemachineinasmallermorepowerful.Thedesignandimplementationofthetaxiaccounting-feemachineforsomebasicfunctions,includingbillingstartingprice,drivingmetered,thewaitingtimebilling,takingintoaccountthespecialnatureofsomeofthetaxiindustry,topaymoreattentiontoanumberofnewIdeasintothedesign.MainlyincludingtheuseoftheFPGAchip,theuseofVHDLprogramming,soastomakeitastrongertransplanted,andmoreconducivetoproductupgrades.Keywords:VHDL,accounting-feemachine,F(xiàn)PGAword文檔可自由復制編輯目錄5948前言 126068第一部分設(shè)計要求 223456一、設(shè)計目的 215603二、系統(tǒng)要求 223175三、功能描述 224598四、補充說明 22996第二部分系統(tǒng)設(shè)計方案 33688第三部分主要模塊設(shè)計 51621一、計程計費模塊 511359二、顯示模塊 59986三、控制模塊 628229第四部分仿真結(jié)果與分析 715010一、計程計費模塊仿真 722540二、總體仿真 732128第五部分硬件調(diào)試 817535一、引腳鎖定 830751二、硬件驗證情況 830553總結(jié) 1020361致謝 116352參考文獻 123368附錄A電路圖 1311909一、電路圖 1317012二、PCB圖 141282三、3D仿真圖 1520214附錄B程序代碼 1722065一、top頂層文件 17875二、taxi控制模塊 187274二、display顯示模塊 20word文檔可自由復制編輯前言隨著出租車行業(yè)的發(fā)展,對出租車計費器的要求也越來越高。二十世紀后半期,隨著集成電路和計算機技術(shù)的飛速發(fā)展,數(shù)字系統(tǒng)也得到了飛速發(fā)展,其實現(xiàn)方法經(jīng)歷了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的過程。同時為了提高系統(tǒng)的可靠性與通用性,微處理器和專業(yè)集成電路(ASIC)逐漸取代了通用全硬件LSI電路,而ASIC以其體積小、重量輕、功耗低、速度快、成本低、保密性好而脫穎而出。目前,業(yè)界大量可編程邏輯器件(PLD),尤其是現(xiàn)場可編程邏輯器件(FPLD)被大量地應(yīng)用在ASIC的制作當中。在可編程集成電路的開發(fā)過程中,以計算機為工作平臺,融合了應(yīng)用電子技術(shù)、計算機技術(shù)、智能化技術(shù)最新成果的電子設(shè)計自動化(EDA)技術(shù)主要能輔助進行三方面的設(shè)計工作:IC設(shè)計,電子電路設(shè)計以及PCB設(shè)計理想的可編程邏輯開發(fā)系統(tǒng)能符合大量的設(shè)計要求:它能夠支持不同結(jié)構(gòu)的器件,在多種平臺運行,提供易于使用的界面,并且有廣泛的特征。EDA技術(shù)(即ElectronicDesignAutomation技術(shù))就是依賴強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言HDL(HardwareDdscriptionLangurage)為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動地完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。它在硬件實現(xiàn)方面融合了大規(guī)模集成電路制造技術(shù)、IC版圖設(shè)計、ASIC測試和封裝、FPGA(GieldPeogrammableGateArray)/CPLD(ComplexProgrammableLogicDevice)編程下載和自動測試等技術(shù)。VHDL的英文全名是VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,由IEEE(TheInstituteofElectricalandElectronicsEngineets)進一步發(fā)展,并在1987年作為“IEEE標準1076”公布。從此VHDL成為硬件描述語言的業(yè)界標準之一。第一部分設(shè)計要求一、設(shè)計目的為培養(yǎng)學生樹立正確的設(shè)計思想和實事求是的工作作風,學習運用所學基礎(chǔ)知識理論、專業(yè)知識、基本技能去分析和解決工程技術(shù)實際問題,提高學生的綜合素質(zhì),使學生成為工程應(yīng)用型合格人才,故進行《EDA技術(shù)及應(yīng)用》的課程設(shè)計。幫助學生全面熟悉、掌握VHDL語言基本知識,掌握利用VHDL語言對常用的的組合邏輯電路和時序邏輯電路編程,把編程和實際結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進一步提高上機動手能力,培養(yǎng)使用設(shè)計綜合電路的能力,養(yǎng)成提供文檔資料的習慣和規(guī)范編程的思想。二、系統(tǒng)要求設(shè)計一個簡單的滿足生活所需功能的出租車計費器。三、功能描述該計費器能實現(xiàn)計費功能。車起步開始計費,首先顯示起步價,起步費為3.00元,車在行駛3km以內(nèi),只收起步價。車行駛超過3km后,每km加2元,車費一次累加。當遇到紅燈或客戶需要停車等待時,則按時間計費,計費單價為每20s收費1元。要求用2位數(shù)碼管顯示里程,2位數(shù)碼管顯示費用。四、補充說明(1).實現(xiàn)計費器預置功能,能夠預置起步費、每公里收費、車行加費里程、計時收費等。(2).可以模擬汽車行駛、停止、暫停等狀態(tài),并根據(jù)不同狀態(tài)進行計費。(3).以十進制顯示出租車行駛路程與車費。第二部分系統(tǒng)設(shè)計方案出租車自動計價器的系統(tǒng)方框圖如圖2.1所示:它有脈沖模塊、控制模塊、計程模塊、計費模塊及顯示等模塊組成控控制模塊顯示模塊計程模塊計費模塊顯示位掃描1KHz脈沖時鐘信號開始信號暫停信號停止信號圖2.1出租車自動計價器的系統(tǒng)方框圖控制模塊將其他模塊進行連接,是本次設(shè)計的核心。它包含計程器、計時器、計價器,同時還有讀取外部開關(guān)控制信號,提供當前顯示信號與顯示位選信號,從而周期性交替顯示計價/計費信息。計程器在非停車狀態(tài)完成計程功能并產(chǎn)生里程計價信號,計時器在停車狀態(tài)完成計時功能并產(chǎn)生等時計價信號。計價器是設(shè)計的核心與難點,涉及到多種時鐘信號,并有多種計費標準。擬使用有限次高速脈沖發(fā)生器向一組級聯(lián)的十進制計數(shù)器提供不同費率的計價脈沖,根據(jù)里程計價信號、等時計價信號、停車開關(guān)狀態(tài)、當前計費結(jié)果等信號,綜合考慮,挑選適合次數(shù)的計價脈沖,從而實現(xiàn)不同條件的不同計費。計程器、計價器根據(jù)位選信號,輸出相應(yīng)數(shù)據(jù)的當前選中數(shù)字,由頂層模塊根據(jù)顯示數(shù)據(jù)類型變換信號進行選擇,傳輸給顯示模塊。顯示模塊由實驗箱上的四個七段數(shù)碼管、程序編寫的一個七段數(shù)碼管譯碼器程序組成。程序是本次設(shè)計的核心部分,首先要有清晰的思路,然后去實現(xiàn),程序流程如圖2.2所示。啟動啟動Start起步價:3元3公里以內(nèi)超出3公里按2元/公里停車等待時按1元/20秒顯示計費金額及行駛里程停止計費計程清零金額里程PauseStop圖2.2出租車自動計價器的程序流程圖本次設(shè)計首先在ispLEVER環(huán)境中對出租車自動計費器的各個部分利用VHDL描述語言予以設(shè)計,進行仿真,然后編寫頂層模塊將各個模塊連接,并對相互之間的信號進行必要處理,從而實現(xiàn)整機功能,最后在實驗箱上進行物理測試,尋找漏洞、調(diào)整參數(shù),最終確定設(shè)計。第三部分主要模塊設(shè)計一、計程計費模塊計程計費模塊如圖3.2所示:ClkClkMoneyStartStopDistancePause圖3.1計程計費模塊計程計費部分用于計算乘客所行使的公里數(shù)及金額。計程器的量程為99公里,滿量程自動歸零;計費器的量程為99元,滿量程自動歸零。計程計費數(shù)據(jù)送入顯示模塊進行譯碼,最后分別送至以公里和元為單位對應(yīng)的數(shù)據(jù)管上顯示。二、顯示模塊顯示模塊如圖3.3所示:Seg01KHzClkSeg1Seg01KHzClkSeg1Seg2Seg3MoneySeg4Seg5Seg6DistanceScan0Scan1Scan2Scan3圖3.2顯示模塊顯示模塊包含一個3進制計數(shù)器Cnt,位選Scan[0:3],四位Data轉(zhuǎn)換,七段數(shù)碼管譯碼器Seg[0:6],如圖3.2所示。當系統(tǒng)復位時,數(shù)碼管一起顯示0。開始計費時,計費為03,計程為00。具體程序代碼詳見附錄。三、控制模塊控制模塊如圖3.3所示:ClkStartClkStartPauseStopScan[0:3]Seg[0:6]Money1Money1Distance1Distance1圖3.3控制模塊控制模塊部分用于計程計費模塊的結(jié)合和銜接。如圖3.3所示,總輸入有Clk,Start,Pause,Stop,總輸出有Scan[0:3]和Seg[0:7],中間由信號Money1和Distance1連接。具體程序代碼見附錄top部分。該模塊將計費數(shù)據(jù)、計程數(shù)據(jù)動態(tài)選擇輸出。其中計費數(shù)據(jù)送入顯示譯碼模塊進行譯碼,最后送至十元、元為單位對應(yīng)的數(shù)碼管上顯示,最大顯示為99元;計程數(shù)據(jù)送入顯示譯碼模塊進行譯碼,最后送至以公里為單位的數(shù)碼管上顯示,最大顯示為99公里。第四部分仿真結(jié)果與分析一、計程計費模塊仿真圖4.1計程計費模塊仿真結(jié)果該模塊的任務(wù)是當Start產(chǎn)生一個高脈沖后,計程計費開始,脈沖輸入,進行計程計費,3公里內(nèi)為3元,3公里后,每公里2元。當暫停信號(Pause)為1時,計程停止,按每20秒1元計費,當停止信號(Stop)時為1時,計程計費清零。如圖4.1所示。二、總體仿真圖4.2總體仿真結(jié)果總體仿真如圖4.2所示,當Start產(chǎn)生一個高脈沖后,計程計費開始,clk為基本輸入時鐘即基本車速,Clk1kHz為數(shù)碼管位掃描脈沖,即配合Scan對計程計費各位逐位顯示。Seg[6:0]即為數(shù)碼管顯示編碼,根據(jù)計程計費模塊數(shù)據(jù)進行顯示。具體程序代碼見附錄程序Display部分。第五部分硬件調(diào)試一、引腳鎖定做硬件驗證之前需要清楚實驗板上各鍵與各信號的鏈接情況,參照資料得出本設(shè)計中各引腳的對應(yīng)情況,如圖5.1所示:圖5.1引腳鎖定表二、硬件驗證情況做好引腳鎖定后,連接線路后,打開硬件箱的電源,數(shù)碼管有正確的數(shù)字顯示,鏈接硬件箱與計算機開始驗證。操作運行實驗結(jié)果完全符合要求。通過仿真驗證表明,本文所設(shè)計的出租車計價器能夠正常地顯示行駛的里程數(shù)和乘客應(yīng)付的費用,符合預定的計費標準和功能要求,如圖5.2所示:圖5.2實驗箱實踐結(jié)果d.9公里時計費15元c.7公里時計費11元b.6公里時計費9元a.5公里時計費7元圖5.2實驗箱實踐結(jié)果d.9公里時計費15元c.7公里時計費11元b.6公里時計費9元a.5公里時計費7元總結(jié)短短一個月的EDA課程設(shè)計已經(jīng)接近尾聲了,我們從挑選課設(shè)題目,查閱資料,到研究出總體設(shè)計,詳細設(shè)計,然后分工合作,再到最后的編程上機調(diào)試,修改程序,完善程序,收獲頗多。出租車計費器系統(tǒng)的設(shè)計已全部完成,能按預期的效果進行模擬汽車啟動,停止、暫停等功能,并設(shè)計動態(tài)掃描電路顯示車費數(shù)目。車暫停時停止計費。若停止清零,等待下一次計費的開始。出租車計費系統(tǒng)設(shè)計中體現(xiàn)了VHDL覆蓋面廣,描述能力強,是一個多層次的硬件描述語言及FPGA器件速度快,使用方便,便于修改等特點。本設(shè)計由于時間有限和經(jīng)驗的欠缺,不足之處還望老師予以指正。在這一段時間里我們再次熟悉和增強了對VHDL語言的基本知識,熟悉利用VHDL語言對常用的的組合邏輯電路和時序邏輯電路編程,把編程和實際結(jié)合起來。VHDL硬件描述語言打破了硬件和軟件設(shè)計人員之間互不干涉的界限,可以使用語言的形式來進行數(shù)字系統(tǒng)的硬件結(jié)構(gòu)、行為的描述,直接設(shè)計數(shù)字電路硬件系統(tǒng)。通過編程、下載后,該芯片已經(jīng)具備了原來需要使用復雜的數(shù)字電路實現(xiàn)的功能;更加了解和加深了對編制和調(diào)試程序的技巧,進一步提高了上機動手能力,培養(yǎng)了使用設(shè)計綜合電路的能力,養(yǎng)成了提供文檔資料的習慣和規(guī)范編程的思想。本次的課程設(shè)計將各個單一的模塊實現(xiàn)其功能后,學會通過原理圖或頂層文件把各模塊連接,從而實現(xiàn)對出租車自動計費。課設(shè)注重的不僅是把理論知識鞏固,而且應(yīng)把理論和實際相結(jié)合,把知識應(yīng)用到生活中。在課設(shè)過程中,遇到了不少問題,數(shù)碼管無法正常顯示,計費不按要求等。通過的對源代碼的修改,發(fā)現(xiàn)了一些易忽略的細節(jié)。課設(shè)考驗的是思維邏輯能力,對知識的靈活應(yīng)用,當然,合作精神是不可或缺的。課設(shè)時間不長,要在短時間內(nèi)完成絕不是個人力量能達到的,要學會集眾人之精華,還要善于利用已有的工具為自己服務(wù),開拓思維。在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復修改、不斷改進是程序設(shè)計的必經(jīng)之路;要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計課程過程中遇到問題是很正常的,但應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。課程設(shè)計結(jié)束了,但是從中學到的知識會讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學習、工作和生活中。致謝EDA課程設(shè)計是我們專業(yè)課程知識綜合應(yīng)用的實踐訓練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程.我今天認真的進行課程設(shè)計,學會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的基礎(chǔ).通過這次設(shè)計,我們在多方面都有所提高。同時各科相關(guān)的課程都有了全面的復習,獨立思考的能力也有了提高。在這次設(shè)計過程中,體現(xiàn)出自己單獨設(shè)計模具的能力以及綜合運用知識的能力,體會了學以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學習的不足和薄弱環(huán)節(jié),從而加以彌補。不經(jīng)意間,這段時間的課程設(shè)計已經(jīng)接近尾聲。在這次設(shè)計中,我學到了在設(shè)計這種思維很嚴密的報告中一定要按照老師給的要求和步驟一步一步的走下去。自己在動手之前一定要先有一個總體的設(shè)計,總的框架圖,這樣在設(shè)計中不至于手忙腳亂的或者丟三落四。在此感謝我們的老師.,老師嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣;老師循循善誘的教導和不拘一格的思路給予我無盡的啟迪。在此感謝對我?guī)椭^的同學們,謝謝你們對我的幫助和支持,讓我感受到同學的友誼。這次設(shè)計的每個細節(jié)和每個數(shù)據(jù),都離不開老師您的細心指導。而您開朗的個性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計。參考文獻1)《EDA技術(shù)與VHDL》潘松黃繼業(yè)編著清華大學出版社2)《EDA實用技術(shù)》宋嘉玉孫麗霞編著人民郵電出版社3)《VHDL電路設(shè)計實用技術(shù)》齊洪喜陸穎編著清華大學出版社4)《EDA實用技術(shù)及應(yīng)用》劉艷萍高振斌李志軍編著國防工業(yè)出版社5)《EDA應(yīng)用技術(shù)》章彬宏主編北京理工大學出版社6)《EDA應(yīng)用技術(shù)及應(yīng)用》姜波郭宏編著哈爾濱工業(yè)大學出版社附錄A電路圖一、電路圖二、PCB圖三、3D仿真圖附錄B程序代碼一、top頂層文件libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitytopisport(clk:INSTD_LOGIC;start:INSTD_LOGIC;stop:INSTD_LOGIC;pause:INSTD_LOGIC; clk1khz:instd_logic;scan:outstd_logic_vector(3downto0);seg7:outstd_logic_vector(6downto0));endtop;architecturetttoftopiscomponenttaxiport(clk:INSTD_LOGIC;start:INSTD_LOGIC;stop:INSTD_LOGIC;pause:INSTD_LOGIC;money:OUTINTEGERRANGE0TO29;distance:OUTINTEGERRANGE0TO29);endcomponent;componentdecoderport(clk1khz:instd_logic;money_in:inintegerrange0to29;distance_in:inintegerrange0to29;scan:outstd_logic_vector(3downto0);seg7:outstd_logic_vector(6downto0) );endcomponent;signalmoney1:integerrange0to29;signaldistance1:integerrange0to29;begin u1:taxiportmap(clk,start,stop,pause,money1,distance1); u2:decoderportmap(clk1khz,money1,distance1,scan,seg7);endttt;二、taxi控制模塊libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytaxiisPORT(clk:INSTD_LOGIC;start:INSTD_LOGIC;stop:INSTD_LOGIC;pause:INSTD_LOGIC;money:OUTINTEGERRANGE0TO29;distance:OUTINTEGERRANGE0TO29);end;architectureoneoftaxiisbegin PROCESS(clk,start,stop,pause) VARIABLEmoney_reg:INTEGERRANGE0TO29; VARIABLEdistance_reg:INTEGERRANGE0TO29; VARIABLEnum:INTEGERRANGE0TO9; VARIABLEtime1:INTEGERRANGE0TO20;BEGIN IFstop='1'THEN money_reg:=0; distance_reg:=0; num:=0;ELSIF start='1'THEN money_reg:=3; distance_reg:=0; num:=0;ELSIFclk'EVENTANDclk='1'THEN IFpause='1'THEN IFtime1=20THEN time1:=0; money_reg:=money_reg+1; ELSEtime1:=time1+1; ENDIF; ELSIFstart='0'ANDpause='0'ANDstop='0'THEN time1:=0; IFnum=9THEN num:=0; distance_reg:=distance_reg+1; IFdistance_reg>3THEN money_reg:=money_reg+2; ENDIF; ELSEnum:=num+1; ENDIF; ENDIF;ENDIF; money<=money_reg; distance<=distance_reg; ENDPROCESS;END;三、display顯示模塊libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydecoderisport(clk1khz:instd_logic;money_in:inintegerrange0to29;distance_in:inintegerrange0to29;scan:outstd_logic_vector(3downto0);seg7:outstd_logic_vector(6downto0));end;architectureoneofdecoderissignaldata:std_logic_vector(3downto0);signalm_one,m_ten:std_logic_vector(3downto0);signald_one,d_ten:std_logic_vector(3downto0);beginprocess(clk1khz,money_in)variablecomb1:integerrange0to29;variablecomb1_a,comb1_b:std_logic_vector(3downto0);beginifclk1khz'eventandclk1khz='1'thenifcomb1<money_inthenifcomb1_a=9andcomb1_b=9thencomb1_a:="0000";comb1_b:="0000";comb1:=0;elsifcomb1_a=9thencomb1_a:="0000";comb1_b:=comb1_b+1;comb1:=comb1+1;elsecomb1_a:=comb1_a+1;comb1:=comb1+1;endif;elsifcomb1=money_inthenm_one<=comb1_a;m_ten<=comb1_b;elsifcom

溫馨提示

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

評論

0/150

提交評論