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

下載本文檔

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

文檔簡介

1、得分評(píng)卷教師哈爾濱遠(yuǎn)東理工學(xué)院EDA課程設(shè)計(jì) 題 目: 基于VHDL語言出租車計(jì)費(fèi)器 姓 名: 鄭 超 分院: 機(jī)器人科學(xué)與技術(shù)學(xué)院 專業(yè): 電子信息工程 學(xué) 號(hào): 11030332 23 / 26文檔可自由編輯打印二一四 年 月 日摘 要 本文介紹了一種采用單片F(xiàn)PGA芯片進(jìn)行出租車計(jì)費(fèi)器的設(shè)計(jì)方法,主要闡述如何使用新興的EDA器件取代傳統(tǒng)的電子設(shè)計(jì)方法,利用FPGA的可編程性,簡潔而又多變的設(shè)計(jì)方法,縮短了研發(fā)周期,同時(shí)使出租車計(jì)費(fèi)器體積更小功能更強(qiáng)大。本設(shè)計(jì)實(shí)現(xiàn)了出租車計(jì)費(fèi)器所需的一些基本功能,計(jì)費(fèi)包括起步價(jià)、行車?yán)锍逃?jì)費(fèi)、等待時(shí)間計(jì)費(fèi),同時(shí)考慮到出租車行業(yè)的一些特殊性,更注重了把一些新

2、的思路加入到設(shè)計(jì)中。主要包括采用了FPGA芯片,使用VHDL語言進(jìn)行編程,使其具有了更強(qiáng)的移植性,更加利于產(chǎn)品升級(jí)。關(guān)鍵詞:VHDL 計(jì)費(fèi)器 FPGA AbstractThis paper describes the use of a single chip FPGA for the design of accounting-fee machine, mainly on how to use the emerging EDA electronic devices designed to replace traditional methods, using the programmable FP

3、GA, concise and changing the design Ways to shorten the development cycle, so that taxi accounting-fee machine in a smaller more powerful. The design and implementation of the taxi accounting-fee machine for some basic functions, including billing starting price, driving metered, the waiting time bi

4、lling, taking into account the special nature of some of the taxi industry, to pay more attention to a number of new Ideas into the design. Mainly including the use of the FPGA chip, the use of VHDL programming, so as to make it a stronger transplanted, and more conducive to product upgrades. Key wo

5、rds: VHDL,accounting-fee machine,F(xiàn)PGA目 錄前 言1第一部分 設(shè)計(jì)要求2一、設(shè)計(jì)目的2二、系統(tǒng)要求2三、功能描述2四、補(bǔ)充說明2第二部分 系統(tǒng)設(shè)計(jì)方案3第三部分 主要模塊設(shè)計(jì)5一、 計(jì)程計(jì)費(fèi)模塊5二、顯示模塊5三、控制模塊6第四部分 仿真結(jié)果與分析7一、計(jì)程計(jì)費(fèi)模塊仿真7二、總體仿真7第五部分 硬件調(diào)試8一、引腳鎖定8二、硬件驗(yàn)證情況8總結(jié)10致謝11參考文獻(xiàn)12附錄A 電路圖13一、電路圖13二、PCB圖14三、3D仿真圖15附錄B 程序代碼17一、top頂層文件17二、taxi控制模塊18二、display顯示模塊20前 言 隨著出租車行業(yè)的發(fā)展,對(duì)出租

6、車計(jì)費(fèi)器的要求也越來越高。二十世紀(jì)后半期,隨著集成電路和計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)字系統(tǒng)也得到了飛速發(fā)展,其實(shí)現(xiàn)方法經(jīng)歷了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的過程。同時(shí)為了提高系統(tǒng)的可靠性與通用性,微處理器和專業(yè)集成電路(ASIC)逐漸取代了通用全硬件LSI電路,而ASIC以其體積小、重量輕、功耗低、速度快、成本低、保密性好而脫穎而出。目前,業(yè)界大量可編程邏輯器件(PLD),尤其是現(xiàn)場可編程邏輯器件(FPLD)被大量地應(yīng)用在ASIC的制作當(dāng)中。在可編程集成電路的開發(fā)過程中,以計(jì)算機(jī)為工作平臺(tái),融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、智能化技術(shù)最新成果的電子設(shè)計(jì)自動(dòng)化(EDA)技術(shù)

7、主要能輔助進(jìn)行三方面的設(shè)計(jì)工作:IC設(shè)計(jì),電子電路設(shè)計(jì)以及PCB設(shè)計(jì)理想的可編程邏輯開發(fā)系統(tǒng)能符合大量的設(shè)計(jì)要求:它能夠支持不同結(jié)構(gòu)的器件,在多種平臺(tái)運(yùn)行,提供易于使用的界面,并且有廣泛的特征。EDA技術(shù)(即Electronic Design Automation技術(shù))就是依賴強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語言HDL(Hardware Ddscription Langurage)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。它在硬件實(shí)現(xiàn)方面融合了大規(guī)模集成電路制造技術(shù)、IC版圖設(shè)計(jì)、A

8、SIC測試和封裝、FPGA(Gield Peogrammable Gate Array)/CPLD(Complex Programmable Logic Device)編程下載和自動(dòng)測試等技術(shù)。VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,由IEEE(The Institute of Electrical and Electronics Engineets)進(jìn)一步發(fā)展,并在1987年作為“IEEE標(biāo)準(zhǔn)1076”公布。從此VHDL成為硬件描述語言的業(yè)界標(biāo)準(zhǔn)之一。第一部分 設(shè)計(jì)要求一

9、、設(shè)計(jì)目的為培養(yǎng)學(xué)生樹立正確的設(shè)計(jì)思想和實(shí)事求是的工作作風(fēng),學(xué)習(xí)運(yùn)用所學(xué)基礎(chǔ)知識(shí)理論、專業(yè)知識(shí)、基本技能去分析和解決工程技術(shù)實(shí)際問題,提高學(xué)生的綜合素質(zhì),使學(xué)生成為工程應(yīng)用型合格人才,故進(jìn)行EDA技術(shù)及應(yīng)用的課程設(shè)計(jì)。幫助學(xué)生全面熟悉、掌握VHDL語言基本知識(shí),掌握利用VHDL語言對(duì)常用的的組合邏輯電路和時(shí)序邏輯電路編程,把編程和實(shí)際結(jié)合起來,熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動(dòng)手能力,培養(yǎng)使用設(shè)計(jì)綜合電路的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想。二、系統(tǒng)要求設(shè)計(jì)一個(gè)簡單的滿足生活所需功能的出租車計(jì)費(fèi)器。三、功能描述該計(jì)費(fèi)器能實(shí)現(xiàn)計(jì)費(fèi)功能。車起步開始計(jì)費(fèi)

10、,首先顯示起步價(jià),起步費(fèi)為3.00元,車在行駛3km以內(nèi),只收起步價(jià)。車行駛超過3km后,每km 加2元,車費(fèi)一次累加。當(dāng)遇到紅燈或客戶需要停車等待時(shí),則按時(shí)間計(jì)費(fèi),計(jì)費(fèi)單價(jià)為每20s收費(fèi)1元。要求用2位數(shù)碼管顯示里程,2位數(shù)碼管顯示費(fèi)用。四、補(bǔ)充說明(1).實(shí)現(xiàn)計(jì)費(fèi)器預(yù)置功能,能夠預(yù)置起步費(fèi)、每公里收費(fèi)、車行加費(fèi)里程、計(jì)時(shí)收費(fèi)等。(2).可以模擬汽車行駛、停止、暫停等狀態(tài),并根據(jù)不同狀態(tài)進(jìn)行計(jì)費(fèi)。(3).以十進(jìn)制顯示出租車行駛路程與車費(fèi)。第二部分 系統(tǒng)設(shè)計(jì)方案出租車自動(dòng)計(jì)價(jià)器的系統(tǒng)方框圖如圖2.1所示:它有脈沖模塊、控制模塊、計(jì)程模塊、計(jì)費(fèi)模塊及顯示等模塊組成控制模塊顯示模塊計(jì)程模塊計(jì)費(fèi)模塊

11、顯示位掃描1KHz脈沖時(shí)鐘信號(hào)開始信號(hào)暫停信號(hào)停止信號(hào)圖2.1 出租車自動(dòng)計(jì)價(jià)器的系統(tǒng)方框圖控制模塊將其他模塊進(jìn)行連接,是本次設(shè)計(jì)的核心。它包含計(jì)程器、計(jì)時(shí)器、計(jì)價(jià)器,同時(shí)還有讀取外部開關(guān)控制信號(hào),提供當(dāng)前顯示信號(hào)與顯示位選信號(hào),從而周期性交替顯示計(jì)價(jià)/計(jì)費(fèi)信息。計(jì)程器在非停車狀態(tài)完成計(jì)程功能并產(chǎn)生里程計(jì)價(jià)信號(hào),計(jì)時(shí)器在停車狀態(tài)完成計(jì)時(shí)功能并產(chǎn)生等時(shí)計(jì)價(jià)信號(hào)。計(jì)價(jià)器是設(shè)計(jì)的核心與難點(diǎn),涉及到多種時(shí)鐘信號(hào),并有多種計(jì)費(fèi)標(biāo)準(zhǔn)。擬使用有限次高速脈沖發(fā)生器向一組級(jí)聯(lián)的十進(jìn)制計(jì)數(shù)器提供不同費(fèi)率的計(jì)價(jià)脈沖,根據(jù)里程計(jì)價(jià)信號(hào)、等時(shí)計(jì)價(jià)信號(hào)、停車開關(guān)狀態(tài)、當(dāng)前計(jì)費(fèi)結(jié)果等信號(hào),綜合考慮,挑選適合次數(shù)的計(jì)價(jià)脈沖,

12、從而實(shí)現(xiàn)不同條件的不同計(jì)費(fèi)。計(jì)程器、計(jì)價(jià)器根據(jù)位選信號(hào),輸出相應(yīng)數(shù)據(jù)的當(dāng)前選中數(shù)字,由頂層模塊根據(jù)顯示數(shù)據(jù)類型變換信號(hào)進(jìn)行選擇,傳輸給顯示模塊。顯示模塊由實(shí)驗(yàn)箱上的四個(gè)七段數(shù)碼管、程序編寫的一個(gè)七段數(shù)碼管譯碼器程序組成。程序是本次設(shè)計(jì)的核心部分,首先要有清晰的思路,然后去實(shí)現(xiàn),程序流程如圖2.2所示。啟動(dòng)Start起步價(jià):3元3公里以內(nèi)超出3公里按2元/公里停車等待時(shí)按1元/20秒顯示計(jì)費(fèi)金額及行駛里程停止計(jì)費(fèi)計(jì)程清零金額里程PauseStop圖2.2 出租車自動(dòng)計(jì)價(jià)器的程序流程圖本次設(shè)計(jì)首先在ispLEVER環(huán)境中對(duì)出租車自動(dòng)計(jì)費(fèi)器的各個(gè)部分利用VHDL描述語言予以設(shè)計(jì),進(jìn)行仿真,然后編寫頂

13、層模塊將各個(gè)模塊連接,并對(duì)相互之間的信號(hào)進(jìn)行必要處理,從而實(shí)現(xiàn)整機(jī)功能,最后在實(shí)驗(yàn)箱上進(jìn)行物理測試,尋找漏洞、調(diào)整參數(shù),最終確定設(shè)計(jì)。第三部分 主要模塊設(shè)計(jì)一、計(jì)程計(jì)費(fèi)模塊計(jì)程計(jì)費(fèi)模塊如圖3.2所示:Clk MoneyStartStop DistancePause圖3.1 計(jì)程計(jì)費(fèi)模塊計(jì)程計(jì)費(fèi)部分用于計(jì)算乘客所行使的公里數(shù)及金額。計(jì)程器的量程為99公里,滿量程自動(dòng)歸零;計(jì)費(fèi)器的量程為99元,滿量程自動(dòng)歸零。計(jì)程計(jì)費(fèi)數(shù)據(jù)送入顯示模塊進(jìn)行譯碼,最后分別送至以公里和元為單位對(duì)應(yīng)的數(shù)據(jù)管上顯示。二、顯示模塊顯示模塊如圖3.3所示: Seg01KHzClk Seg1 Seg2 Seg3Money Seg

14、4 Seg5 Seg6Distance Scan0 Scan1 Scan2 Scan3 圖3.2 顯示模塊顯示模塊包含一個(gè)3進(jìn)制計(jì)數(shù)器Cnt,位選Scan0:3,四位Data轉(zhuǎn)換,七段數(shù)碼管譯碼器Seg0:6,如圖3.2所示。當(dāng)系統(tǒng)復(fù)位時(shí),數(shù)碼管一起顯示0。開始計(jì)費(fèi)時(shí),計(jì)費(fèi)為03,計(jì)程為00。具體程序代碼詳見附錄。三、控制模塊控制模塊如圖3.3所示:ClkStartPauseStop Scan0:3 Seg0:6Money1Distance1圖3.3 控制模塊控制模塊部分用于計(jì)程計(jì)費(fèi)模塊的結(jié)合和銜接。如圖3.3所示,總輸入有Clk,Start,Pause,Stop,總輸出有Scan0:3和Se

15、g0:7,中間由信號(hào)Money1和Distance1連接。具體程序代碼見附錄top部分。該模塊將計(jì)費(fèi)數(shù)據(jù)、計(jì)程數(shù)據(jù)動(dòng)態(tài)選擇輸出。其中計(jì)費(fèi)數(shù)據(jù)送入顯示譯碼模塊進(jìn)行譯碼,最后送至十元、元為單位對(duì)應(yīng)的數(shù)碼管上顯示,最大顯示為99元;計(jì)程數(shù)據(jù)送入顯示譯碼模塊進(jìn)行譯碼,最后送至以公里為單位的數(shù)碼管上顯示,最大顯示為99公里。第四部分 仿真結(jié)果與分析一、計(jì)程計(jì)費(fèi)模塊仿真圖4.1 計(jì)程計(jì)費(fèi)模塊仿真結(jié)果該模塊的任務(wù)是當(dāng)Start產(chǎn)生一個(gè)高脈沖后,計(jì)程計(jì)費(fèi)開始,脈沖輸入,進(jìn)行計(jì)程計(jì)費(fèi),3公里內(nèi)為3元,3公里后,每公里2元。當(dāng)暫停信號(hào)(Pause)為1時(shí),計(jì)程停止,按每20秒1元計(jì)費(fèi),當(dāng)停止信號(hào)(Stop)時(shí)為1

16、時(shí),計(jì)程計(jì)費(fèi)清零。如圖4.1所示。二、總體仿真圖4.2 總體仿真結(jié)果總體仿真如圖4.2所示,當(dāng)Start產(chǎn)生一個(gè)高脈沖后,計(jì)程計(jì)費(fèi)開始,clk為基本輸入時(shí)鐘即基本車速,Clk1kHz為數(shù)碼管位掃描脈沖,即配合Scan對(duì)計(jì)程計(jì)費(fèi)各位逐位顯示。Seg6:0即為數(shù)碼管顯示編碼,根據(jù)計(jì)程計(jì)費(fèi)模塊數(shù)據(jù)進(jìn)行顯示。具體程序代碼見附錄程序Display部分。第五部分 硬件調(diào)試一、引腳鎖定做硬件驗(yàn)證之前需要清楚實(shí)驗(yàn)板上各鍵與各信號(hào)的鏈接情況,參照資料得出本設(shè)計(jì)中各引腳的對(duì)應(yīng)情況,如圖5.1所示:圖5.1 引腳鎖定表二、硬件驗(yàn)證情況做好引腳鎖定后,連接線路后,打開硬件箱的電源,數(shù)碼管有正確的數(shù)字顯示,鏈接硬件箱與

17、計(jì)算機(jī)開始驗(yàn)證。操作運(yùn)行實(shí)驗(yàn)結(jié)果完全符合要求。通過仿真驗(yàn)證表明,本文所設(shè)計(jì)的出租車計(jì)價(jià)器能夠正常地顯示行駛的里程數(shù)和乘客應(yīng)付的費(fèi)用,符合預(yù)定的計(jì)費(fèi)標(biāo)準(zhǔn)和功能要求,如圖5.2 所示:圖5.2 實(shí)驗(yàn)箱實(shí)踐結(jié)果d. 9公里時(shí) 計(jì)費(fèi)15元c. 7公里時(shí) 計(jì)費(fèi)11元b. 6公里時(shí) 計(jì)費(fèi)9元a. 5公里時(shí) 計(jì)費(fèi)7元總結(jié)短短一個(gè)月的EDA課程設(shè)計(jì)已經(jīng)接近尾聲了,我們從挑選課設(shè)題目,查閱資料,到研究出總體設(shè)計(jì),詳細(xì)設(shè)計(jì),然后分工合作,再到最后的編程上機(jī)調(diào)試,修改程序,完善程序,收獲頗多。出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)已全部完成,能按預(yù)期的效果進(jìn)行模擬汽車啟動(dòng),停止、暫停等功能,并設(shè)計(jì)動(dòng)態(tài)掃描電路顯示車費(fèi)數(shù)目。車暫停時(shí)

18、停止計(jì)費(fèi)。若停止清零,等待下一次計(jì)費(fèi)的開始。出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì)中體現(xiàn)了VHDL覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語言及FPGA器件速度快,使用方便,便于修改等特點(diǎn)。本設(shè)計(jì)由于時(shí)間有限和經(jīng)驗(yàn)的欠缺,不足之處還望老師予以指正。在這一段時(shí)間里我們?cè)俅问煜ず驮鰪?qiáng)了對(duì)VHDL語言的基本知識(shí),熟悉利用VHDL語言對(duì)常用的的組合邏輯電路和時(shí)序邏輯電路編程,把編程和實(shí)際結(jié)合起來。VHDL硬件描述語言打破了硬件和軟件設(shè)計(jì)人員之間互不干涉的界限,可以使用語言的形式來進(jìn)行數(shù)字系統(tǒng)的硬件結(jié)構(gòu)、行為的描述,直接設(shè)計(jì)數(shù)字電路硬件系統(tǒng)。通過編程、下載后,該芯片已經(jīng)具備了原來需要使用復(fù)雜的數(shù)字電路實(shí)現(xiàn)的功能;更加了

19、解和加深了對(duì)編制和調(diào)試程序的技巧,進(jìn)一步提高了上機(jī)動(dòng)手能力,培養(yǎng)了使用設(shè)計(jì)綜合電路的能力,養(yǎng)成了提供文檔資料的習(xí)慣和規(guī)范編程的思想。本次的課程設(shè)計(jì)將各個(gè)單一的模塊實(shí)現(xiàn)其功能后,學(xué)會(huì)通過原理圖或頂層文件把各模塊連接,從而實(shí)現(xiàn)對(duì)出租車自動(dòng)計(jì)費(fèi)。課設(shè)注重的不僅是把理論知識(shí)鞏固,而且應(yīng)把理論和實(shí)際相結(jié)合,把知識(shí)應(yīng)用到生活中。在課設(shè)過程中,遇到了不少問題,數(shù)碼管無法正常顯示,計(jì)費(fèi)不按要求等。通過的對(duì)源代碼的修改,發(fā)現(xiàn)了一些易忽略的細(xì)節(jié)。課設(shè)考驗(yàn)的是思維邏輯能力,對(duì)知識(shí)的靈活應(yīng)用,當(dāng)然,合作精神是不可或缺的。課設(shè)時(shí)間不長,要在短時(shí)間內(nèi)完成絕不是個(gè)人力量能達(dá)到的,要學(xué)會(huì)集眾人之精華,還要善于利用已有的工具為

20、自己服務(wù),開拓思維。在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計(jì)課程過程中遇到問題是很正常的,但應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。課程設(shè)計(jì)結(jié)束了,但是從中學(xué)到的知識(shí)會(huì)讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實(shí)踐能力的提高都會(huì)受益于我在以后的學(xué)習(xí)、工作和生活中。致謝EDA課程設(shè)計(jì)是我們專業(yè)課程知識(shí)綜合應(yīng)用的實(shí)踐訓(xùn)練,著是我們邁向社會(huì),從事職業(yè)工作前一個(gè)必不少的過程我今天認(rèn)真的進(jìn)行課程設(shè)計(jì)

21、,學(xué)會(huì)腳踏實(shí)地邁開這一步,就是為明天能穩(wěn)健地在社會(huì)大潮中奔跑打下堅(jiān)實(shí)的基礎(chǔ)通過這次設(shè)計(jì),我們?cè)诙喾矫娑加兴岣?。同時(shí)各科相關(guān)的課程都有了全面的復(fù)習(xí),獨(dú)立思考的能力也有了提高。在這次設(shè)計(jì)過程中,體現(xiàn)出自己單獨(dú)設(shè)計(jì)模具的能力以及綜合運(yùn)用知識(shí)的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。不經(jīng)意間,這段時(shí)間的課程設(shè)計(jì)已經(jīng)接近尾聲。在這次設(shè)計(jì)中,我學(xué)到了在設(shè)計(jì)這種思維很嚴(yán)密的報(bào)告中一定要按照老師給的要求和步驟一步一步的走下去。自己在動(dòng)手之前一定要先有一個(gè)總體的設(shè)計(jì),總的框架圖,這樣在設(shè)計(jì)中不至于手忙腳亂的或者丟三落四。在此感謝我們的老師.,老師嚴(yán)

22、謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。在此感謝對(duì)我?guī)椭^的同學(xué)們,謝謝你們對(duì)我的幫助和支持,讓我感受到同學(xué)的友誼。這次設(shè)計(jì)的每個(gè)細(xì)節(jié)和每個(gè)數(shù)據(jù),都離不開老師您的細(xì)心指導(dǎo)。而您開朗的個(gè)性和寬容的態(tài)度,幫助我能夠很順利的完成了這次課程設(shè)計(jì)。參考文獻(xiàn)1) EDA技術(shù)與VHDL 潘松 黃繼業(yè) 編著 清華大學(xué)出版社2) EDA實(shí)用技術(shù) 宋嘉玉 孫麗霞 編著 人民郵電出版社3) VHDL電路設(shè)計(jì)實(shí)用技術(shù) 齊洪喜 陸穎 編著 清華大學(xué)出版社 4) EDA實(shí)用技術(shù)及應(yīng)用 劉艷萍 高振斌 李志軍 編著 國防工業(yè)出版社 5) EDA應(yīng)用技術(shù) 章彬宏

23、主編 北京理工大學(xué)出版社 6) EDA應(yīng)用技術(shù)及應(yīng)用 姜波 郭宏 編著 哈爾濱工業(yè)大學(xué)出版社附錄A 電路圖一、電路圖二、PCB圖三、3D仿真圖附錄B 程序代碼一、top頂層文件library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity top isport(clk:IN STD_LOGIC; start:IN STD_LOGIC; stop:IN STD_LOGIC; pause:IN STD_LOGIC; clk1khz:in std_

24、logic; scan:out std_logic_vector(3 downto 0); seg7: out std_logic_vector(6 downto 0) );end top;architecture ttt of top iscomponent taxi port(clk:IN STD_LOGIC; start:IN STD_LOGIC; stop:IN STD_LOGIC; pause:IN STD_LOGIC; money:OUT INTEGER RANGE 0 TO 29; distance:OUT INTEGER RANGE 0 TO 29 );end componen

25、t;component decoder port(clk1khz:in std_logic; money_in:in integer range 0 to 29; distance_in: in integer range 0 to 29; scan:out std_logic_vector(3 downto 0); seg7: out std_logic_vector(6 downto 0);end component;signal money1:integer range 0 to 29;signal distance1: integer range 0 to 29;beginu1:tax

26、i port map(clk,start,stop,pause,money1,distance1);u2:decoder port map(clk1khz,money1,distance1,scan,seg7);end ttt;二、taxi控制模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity taxi isPORT(clk:IN STD_LOGIC; start:IN STD_LOGIC; stop:IN STD_LOGIC; pause:IN STD_LOGIC; money:O

27、UT INTEGER RANGE 0 TO 29; distance:OUT INTEGER RANGE 0 TO 29);end;architecture one of taxi isbeginPROCESS(clk,start,stop,pause)VARIABLE money_reg:INTEGER RANGE 0 TO 29;VARIABLE distance_reg:INTEGER RANGE 0 TO 29;VARIABLE num:INTEGER RANGE 0 TO 9;VARIABLE time1:INTEGER RANGE 0 TO 20;BEGIN IF stop=

28、9;1'THEN money_reg:=0;distance_reg:=0;num:=0;ELSIF start='1'THEN money_reg:=3;distance_reg:=0;num:=0;ELSIF clk'EVENT AND clk='1'THENIF pause='1' THEN IF time1=20 THEN time1:=0;money_reg:=money_reg+1;ELSE time1:=time1+1;END IF;ELSIF start='0'AND pause='0

29、9;AND stop='0'THENtime1:=0;IF num =9 THEN num:=0; distance_reg:=distance_reg+1;IF distance_reg>3 THEN money_reg:= money_reg+2;END IF;ELSE num:=num+1;END IF;END IF;END IF;money<=money_reg;distance<=distance_reg;END PROCESS;END;三、display顯示模塊library ieee;use ieee.std_logic_1164.all;use

30、 ieee.std_logic_unsigned.all;entity decoder isport(clk1khz:in std_logic;money_in:in integer range 0 to 29;distance_in: in integer range 0 to 29;scan:out std_logic_vector(3 downto 0);seg7: out std_logic_vector(6 downto 0);end;architecture one of decoder issignal data:std_logic_vector(3 downto 0);sign

31、al m_one,m_ten:std_logic_vector(3 downto 0);signal d_one,d_ten:std_logic_vector(3 downto 0);beginprocess(clk1khz,money_in)variable comb1:integer range 0 to 29;variable comb1_a,comb1_b:std_logic_vector(3 downto 0);begin if clk1khz'event and clk1khz='1' then if comb1<money_in thenif com

32、b1_a=9 and comb1_b=9 thencomb1_a:="0000"comb1_b:="0000" comb1:=0;elsif comb1_a=9 then comb1_a:="0000"comb1_b:=comb1_b+1;comb1:=comb1+1;elsecomb1_a:=comb1_a+1;comb1:=comb1+1;end if;elsif comb1=money_in thenm_one<=comb1_a;m_ten<=comb1_b;elsif comb1>money_in thenc

33、omb1_a:="0000"comb1_b:="0000"comb1:=0;end if;end if;end process;process(clk1khz,distance_in)variable comb2:integer range 0 to 29;variable comb2_a,comb2_b:std_logic_vector(3 downto 0);beginif clk1khz'event and clk1khz='1' then if comb2<distance_in thenif comb2_a=9 a

34、nd comb2_b=9 thencomb2_a:="0000"comb2_b:="0000"comb2:=0;elsif comb2_a=9 thencomb2_a:="0000"comb2_b:=comb2_b+1;comb2:=comb2+1;elsecomb2_a:=comb2_a+1;comb2:=comb2+1;end if;elsif comb2=distance_in thend_one<=comb2_a;d_ten<=comb2_b;elsif comb2>distance_in thencomb2_a:="00

溫馨提示

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

評(píng)論

0/150

提交評(píng)論