出租車計(jì)費(fèi)器的FPGA實(shí)現(xiàn)_第1頁(yè)
出租車計(jì)費(fèi)器的FPGA實(shí)現(xiàn)_第2頁(yè)
出租車計(jì)費(fèi)器的FPGA實(shí)現(xiàn)_第3頁(yè)
出租車計(jì)費(fèi)器的FPGA實(shí)現(xiàn)_第4頁(yè)
出租車計(jì)費(fèi)器的FPGA實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、可編程邏輯器件的電路設(shè)計(jì)課程設(shè)計(jì)報(bào)告出租車計(jì)價(jià)器的FPGA實(shí)現(xiàn)摘要隨著公共交通的發(fā)展和社會(huì)經(jīng)濟(jì)、科技的進(jìn)步,越來(lái)越多的人會(huì)選擇出租車作為出行方式,出租車行業(yè)發(fā)展迅速。這無(wú)形中創(chuàng)造了一個(gè)巨大的出租車計(jì)價(jià)器市場(chǎng),但用戶對(duì)出租車計(jì)價(jià)器的要求也越來(lái)越高。特別是要求計(jì)價(jià)器性能穩(wěn)定,計(jì)費(fèi)準(zhǔn)確,操作方便,可靠性高。這就要求數(shù)字電路具有優(yōu)良的性能、穩(wěn)定性和可靠性?;贔PGA并用VHDL語(yǔ)言設(shè)計(jì)的EDA技術(shù)正好滿足了這一巨大的市場(chǎng)需求。EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù)作為現(xiàn)代電子設(shè)計(jì)技術(shù)的核心,依賴于功能強(qiáng)大的計(jì)算機(jī)。在EDA工具軟件平臺(tái)上,以硬件描述語(yǔ)言作為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文檔,可以自動(dòng)完成邏輯化簡(jiǎn)、

2、邏輯劃分、邏輯綜合(布局布線)、邏輯優(yōu)化和仿真等。,直到實(shí)現(xiàn)具有既定性能的電子電路系統(tǒng)功能。EDA技術(shù)使得設(shè)計(jì)人員的工作幾乎局限于使用軟件的方式,即使用硬件描述語(yǔ)言HDL和EDA軟件來(lái)完成系統(tǒng)硬件功能的實(shí)現(xiàn)。FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)是實(shí)現(xiàn)ASIC目標(biāo)的主流器件。它直接面向用戶,具有極大的靈活性和通用性,易于使用,硬件測(cè)試和實(shí)現(xiàn)速度快,開(kāi)發(fā)效率高,成本低,上市時(shí)間短,技術(shù)維護(hù)簡(jiǎn)單,工作可靠性好。VHDL(超高速集成電路硬件描述語(yǔ)言)由美國(guó)國(guó)防部發(fā)起并創(chuàng)建。時(shí)至今日,它已經(jīng)成為電子設(shè)計(jì)的主流硬件描述語(yǔ)言之一。1本設(shè)計(jì)基于FPGA開(kāi)發(fā)平臺(tái)。在Quartus和Maxplus電子設(shè)計(jì)軟件開(kāi)發(fā)平臺(tái)上,

3、完成了出租車計(jì)費(fèi)電路的VHDL文本輸入方式設(shè)計(jì)和硬件功能實(shí)現(xiàn)。首先,本報(bào)告比較和選擇了不同的設(shè)計(jì)和實(shí)施方案;然后,將系統(tǒng)劃分為不同的模塊。從底層文件開(kāi)始,進(jìn)行了各模塊的端口介紹和功能分析,并給出了計(jì)算機(jī)仿真的分析結(jié)果。然后對(duì)頂層文件進(jìn)行了分析,給出了系統(tǒng)的最終綜合和仿真結(jié)果,并用頂層設(shè)計(jì)的方法對(duì)頂層文件的功能進(jìn)行了分析。最后對(duì)硬件驗(yàn)證結(jié)果進(jìn)行了分析。關(guān)鍵詞:出租車計(jì)價(jià)器,出租車計(jì)價(jià)器FPGA VHDL EDA目錄 TOC o 1-3 h z u HYPERLINK l _RefHeading_Toc281250303 1.方案比較與選擇4 HYPERLINK l _RefHeading_Toc

4、281250304 1.1出租車計(jì)費(fèi)器的設(shè)計(jì)目標(biāo)4 HYPERLINK l _RefHeading_Toc281250305 1.2基本設(shè)計(jì)方案思想4 HYPERLINK l _RefHeading_Toc281250306 1.2.1方案一4 HYPERLINK l _RefHeading_Toc281250307 1.2.2方案二6 HYPERLINK l _RefHeading_Toc281250308 1.2.3方案的選擇7 HYPERLINK l _RefHeading_Toc281250309 2底層文件的仿真與分析8 HYPERLINK l _RefHeading_Toc2812

5、50310 2.1計(jì)程模塊8 HYPERLINK l _RefHeading_Toc281250311 2.1.1功能介紹8 HYPERLINK l _RefHeading_Toc281250312 2.1.2端口介紹8 HYPERLINK l _RefHeading_Toc281250313 2.1.3綜合電路圖9 HYPERLINK l _RefHeading_Toc281250314 2.1.4仿真波形圖10 HYPERLINK l _RefHeading_Toc281250315 2.1.5仿真分析10 HYPERLINK l _RefHeading_Toc281250316 2.2狀

6、態(tài)機(jī)控制模塊11 HYPERLINK l _RefHeading_Toc281250317 2.2.1功能介紹11 HYPERLINK l _RefHeading_Toc281250318 2.2.2端口介紹11 HYPERLINK l _RefHeading_Toc281250319 2.2.3綜合電路圖12 HYPERLINK l _RefHeading_Toc281250320 2.2.4仿真波形圖13 HYPERLINK l _RefHeading_Toc281250321 2.2.5仿真分析13 HYPERLINK l _RefHeading_Toc281250322 2.3計(jì)費(fèi)模塊

7、13 HYPERLINK l _RefHeading_Toc281250323 2.3.1功能介紹13 HYPERLINK l _RefHeading_Toc281250324 2.3.2端口介紹14 HYPERLINK l _RefHeading_Toc281250325 2.3.3綜合電路圖15 HYPERLINK l _RefHeading_Toc281250326 2.3.4仿真波形圖16 HYPERLINK l _RefHeading_Toc281250327 2.3.5仿真分析16 HYPERLINK l _RefHeading_Toc281250328 2.4譯碼模塊17 HYP

8、ERLINK l _RefHeading_Toc281250329 2.4.1功能介紹17 HYPERLINK l _RefHeading_Toc281250330 2.4.2端口介紹17 HYPERLINK l _RefHeading_Toc281250331 2.4.3綜合電路圖18 HYPERLINK l _RefHeading_Toc281250332 2.4.4仿真波形圖19 HYPERLINK l _RefHeading_Toc281250333 2.4.5仿真分析19 HYPERLINK l _RefHeading_Toc281250334 2.5溢出處理模塊20 HYPERLI

9、NK l _RefHeading_Toc281250335 2.5.1功能介紹20 HYPERLINK l _RefHeading_Toc281250336 2.5.2端口介紹20 HYPERLINK l _RefHeading_Toc281250337 2.5.3綜合電路圖20 HYPERLINK l _RefHeading_Toc281250338 2.5.4仿真波形圖21 HYPERLINK l _RefHeading_Toc281250339 2.5.5仿真分析21 HYPERLINK l _RefHeading_Toc281250340 3頂層文件仿真與分析22 HYPERLINK

10、l _RefHeading_Toc281250341 3.1計(jì)數(shù)器模塊頂層文件22 HYPERLINK l _RefHeading_Toc281250342 3.1.1功能分析22 HYPERLINK l _RefHeading_Toc281250343 3.1.2端口介紹22 HYPERLINK l _RefHeading_Toc281250344 3.1.3綜合電路圖23 HYPERLINK l _RefHeading_Toc281250345 3.1.4仿真波形圖23 HYPERLINK l _RefHeading_Toc281250346 3.1.5仿真分析24 HYPERLINK l

11、 _RefHeading_Toc281250347 3.2總體頂層文件仿真與分析25 HYPERLINK l _RefHeading_Toc281250348 3.2.1功能介紹25 HYPERLINK l _RefHeading_Toc281250349 3.2.2端口介紹25 HYPERLINK l _RefHeading_Toc281250350 3.2.3綜合電路圖26 HYPERLINK l _RefHeading_Toc281250351 3.2.4仿真波形圖26 HYPERLINK l _RefHeading_Toc281250352 3.2.5仿真分析26 HYPERLINK

12、l _RefHeading_Toc281250353 4硬件驗(yàn)證分析27 HYPERLINK l _RefHeading_Toc281250354 4.1總述27 HYPERLINK l _RefHeading_Toc281250355 4.2引腳分配27 HYPERLINK l _RefHeading_Toc281250356 4.3硬件驗(yàn)證過(guò)程與現(xiàn)象28 HYPERLINK l _RefHeading_Toc281250357 5課程設(shè)計(jì)心得29 HYPERLINK l _RefHeading_Toc281250358 5.1蔡偉龍的心得29 HYPERLINK l _RefHeading

13、_Toc281250359 5.2慕的心得29 HYPERLINK l _RefHeading_Toc281250360 5.3黃德龍的心得30 HYPERLINK l _RefHeading_Toc281250361 6 The FPGA Realization of a Taxi Meter31 HYPERLINK l _RefHeading_Toc281250362 7參考文獻(xiàn)33 HYPERLINK l _RefHeading_Toc281250363 8附錄34 HYPERLINK l _RefHeading_Toc281250364 8.1方案一實(shí)現(xiàn)代碼34 HYPERLINK l

14、 _RefHeading_Toc281250365 8.1.1計(jì)程模塊distance_counter.vhd34 HYPERLINK l _RefHeading_Toc281250366 8.1.2狀態(tài)機(jī)模塊state_machine.vhd35 HYPERLINK l _RefHeading_Toc281250367 8.1.3計(jì)費(fèi)模塊counter_fare.vhd36 HYPERLINK l _RefHeading_Toc281250368 8.1.4計(jì)數(shù)器頂層模塊counter.vhd38 HYPERLINK l _RefHeading_Toc281250369 8.1.5譯碼顯示模

15、塊counter_display.vhd39 HYPERLINK l _RefHeading_Toc281250370 8.1.6溢出處理模塊overflow.vhd42 HYPERLINK l _RefHeading_Toc281250371 8.1.7總體頂層模塊counter_of_taxi_fare.vhd43 HYPERLINK l _RefHeading_Toc281250372 8.2方案二實(shí)現(xiàn)過(guò)程簡(jiǎn)介與代碼44 HYPERLINK l _RefHeading_Toc281250373 8.2.1系統(tǒng)的構(gòu)成44 HYPERLINK l _RefHeading_Toc2812503

16、74 8.2.2VHDL實(shí)現(xiàn)源代碼471.方案比較和選擇1.1出租車計(jì)價(jià)器的設(shè)計(jì)目標(biāo)實(shí)際的出租車費(fèi)用根據(jù)距離主要分為三段:汽車開(kāi)始充電。首先顯示起步價(jià)(該設(shè)計(jì)起步價(jià)為7.00元),汽車行駛3km時(shí)起步價(jià)僅為7.00元。行駛超過(guò)3km后,按照每公里2.2元計(jì)費(fèi)(在7.00元的基礎(chǔ)上,每公里票價(jià)加2.2元),依次累加票價(jià)。行程達(dá)到或超過(guò)9公里(票價(jià)達(dá)到20元)后,每公里收取50%的票價(jià),開(kāi)始時(shí)每公里收取3.3元的票價(jià)。汽車臨時(shí)停車(闖紅燈或中途停車)不收費(fèi),票價(jià)不變。如果停了,車費(fèi)會(huì)被清零,等待下一次計(jì)費(fèi)。1.2基本設(shè)計(jì)思想選項(xiàng)1設(shè)計(jì)理念根據(jù)出租車計(jì)價(jià)器的計(jì)費(fèi)原理,首先設(shè)計(jì)了一個(gè)有四種狀態(tài)的有限狀

17、態(tài)機(jī),分別對(duì)應(yīng)停止和暫停,行駛距離為03km,行駛距離為39km,行駛距離大于9km。通過(guò)距離計(jì)數(shù)模塊輸出的距離數(shù)據(jù),在主控組合過(guò)程中實(shí)現(xiàn)各個(gè)狀態(tài)的轉(zhuǎn)換。每個(gè)狀態(tài)的外部輸出值用于實(shí)現(xiàn)充電控制器對(duì)累計(jì)費(fèi)用值的控制(判斷充電是以2.2元/km還是3.3元/km為單位)。設(shè)計(jì)出租車計(jì)價(jià)器模塊。有16位二進(jìn)制輸出數(shù)據(jù),分別對(duì)應(yīng)四個(gè)距離顯示的數(shù)碼管數(shù)據(jù)。每個(gè)4位二進(jìn)制數(shù)可以看作一個(gè)十進(jìn)制數(shù),對(duì)應(yīng)一個(gè)數(shù)碼管。十進(jìn)制計(jì)數(shù)以4位二進(jìn)制數(shù)為單位進(jìn)行,顯示單位為00.00公里。設(shè)計(jì)計(jì)費(fèi)模塊。有16位二進(jìn)制輸出數(shù)據(jù),分別對(duì)應(yīng)計(jì)費(fèi)顯示的4個(gè)數(shù)碼管數(shù)據(jù)。二進(jìn)制數(shù)每4位可視為一個(gè)十進(jìn)制數(shù),對(duì)應(yīng)一個(gè)數(shù)碼管。以二進(jìn)制數(shù)的4位

18、為單位進(jìn)行小數(shù)計(jì)數(shù),顯示單位為00.00元。本設(shè)計(jì)以100米為充電距離單位,根據(jù)狀態(tài)機(jī)在不同狀態(tài)下輸出的數(shù)據(jù)確定充電里程單價(jià)。設(shè)計(jì)計(jì)數(shù)器頂層文件。負(fù)責(zé)連接兩個(gè)計(jì)數(shù)器模塊。設(shè)計(jì)溢出處理模塊。因?yàn)榫嚯x顯示和計(jì)費(fèi)顯示都設(shè)置為00.00(公里或元),而且顯示只能限制4個(gè)數(shù)碼管。因此,設(shè)計(jì)了溢出處理模塊來(lái)處理溢出情況,并將溢出輸出到某個(gè)單元的二極管進(jìn)行顯示。設(shè)計(jì)解碼模塊。解碼模塊負(fù)責(zé)控制距離計(jì)數(shù)和計(jì)費(fèi)數(shù)據(jù)輸出到74LS138芯片,用顯示刷新時(shí)鐘控制每個(gè)數(shù)碼管的顯示。設(shè)計(jì)頂層文檔。負(fù)責(zé)連接桌面文件、溢出處理模塊和解碼模塊。方案設(shè)計(jì)框圖日志模塊狀態(tài)機(jī)時(shí)鐘信號(hào)輸入距離測(cè)量脈沖輸入計(jì)費(fèi)模塊10米進(jìn)位脈沖距離分段

19、狀態(tài)狀態(tài)信號(hào)解碼模塊費(fèi)用信號(hào)顯示時(shí)鐘距離高位進(jìn)位溢出處理模塊高位輸出顯示LED8位數(shù)碼管輸出顯示圖1-1方案一出租車計(jì)價(jià)器系統(tǒng)設(shè)計(jì)模塊框圖方案的優(yōu)勢(shì)和創(chuàng)新分析整個(gè)系統(tǒng)由狀態(tài)機(jī)控制,帶來(lái)高效的時(shí)序控制,性能穩(wěn)定,狀態(tài)轉(zhuǎn)換速度快,可靠性高。有一個(gè)不錯(cuò)的溢出處理模塊。選項(xiàng)2設(shè)計(jì)理念總體來(lái)說(shuō):距離計(jì)數(shù)模塊用于計(jì)算行駛距離,收費(fèi)模塊用于計(jì)算車費(fèi)。這兩個(gè)模塊由重啟和暫停開(kāi)關(guān)控制,解碼和輸出模塊用于輸出結(jié)果。距離計(jì)數(shù)模塊。有16位二進(jìn)制輸出數(shù)據(jù),分別對(duì)應(yīng)4個(gè)距離顯示的數(shù)碼管數(shù)據(jù)。每個(gè)4位二進(jìn)制數(shù)可以看作一個(gè)十進(jìn)制數(shù),對(duì)應(yīng)一個(gè)數(shù)碼管。以4位二進(jìn)制數(shù)為單位進(jìn)行十進(jìn)制計(jì)數(shù),顯示單位為00.00公里。通過(guò)累積clk

20、來(lái)增加距離。計(jì)費(fèi)模塊。有16位二進(jìn)制輸出數(shù)據(jù),分別對(duì)應(yīng)計(jì)費(fèi)顯示的4個(gè)數(shù)碼管數(shù)據(jù)。二進(jìn)制數(shù)每4位可視為一個(gè)十進(jìn)制數(shù),對(duì)應(yīng)一個(gè)數(shù)碼管。以二進(jìn)制數(shù)的4位為單位進(jìn)行小數(shù)計(jì)數(shù),顯示單位為00.00元。本設(shè)計(jì)以100米為充電距離單位,通過(guò)判斷行駛的公里數(shù)來(lái)確定當(dāng)前的充電單價(jià)。解碼輸出模塊。當(dāng)前距離和票價(jià)數(shù)據(jù)輸出到74LS138芯片,用掃描時(shí)鐘控制每個(gè)數(shù)碼管的顯示。頂層文件。負(fù)責(zé)連接三個(gè)模塊。系統(tǒng)設(shè)計(jì)框圖圖1-2方案二出租車計(jì)價(jià)器系統(tǒng)設(shè)計(jì)模塊框圖該方案的優(yōu)點(diǎn)和缺點(diǎn)系統(tǒng)的設(shè)計(jì)文檔總量較小。計(jì)數(shù)器采用的進(jìn)位思想簡(jiǎn)單新穎,適合多位計(jì)數(shù)。最大范圍是99.99,超出范圍的情況不處理。1.2.3方案選擇方案二的設(shè)計(jì)思路

21、雖然新穎、簡(jiǎn)潔、獨(dú)特,但方案一由于處理全面,將是本次設(shè)計(jì)中的最終實(shí)施方案。由于方案2的優(yōu)點(diǎn),我們?cè)诟戒浿懈缴狭朔桨?的設(shè)計(jì)過(guò)程和VHDL源代碼。2模擬和分析底層文件2.1日志模塊2.1.1功能介紹將測(cè)距信號(hào)作為儀表模塊中計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘(本設(shè)計(jì)中時(shí)鐘信號(hào)作為模擬測(cè)距信號(hào))進(jìn)行計(jì)數(shù)。總共16個(gè)二進(jìn)制數(shù)字用于計(jì)數(shù)。每4位數(shù)字可視為一個(gè)獨(dú)立的十進(jìn)制數(shù)字,與數(shù)碼管顯示的每一位數(shù)字相對(duì)應(yīng)。每4位以十進(jìn)制方式計(jì)數(shù)(即從“0000”到“1001”),然后進(jìn)位到更高的4位,以此類推。2.1.2端口介紹該模塊有7個(gè)端口(4個(gè)輸入端口和3個(gè)輸出端口)。清除信號(hào)clr(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。當(dāng)它處于高電平“

22、1”時(shí),執(zhí)行復(fù)位操作。當(dāng)它是低電平“0”時(shí),執(zhí)行數(shù)據(jù)保持。計(jì)數(shù)使能信號(hào)en(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。當(dāng)它是高電平“1”時(shí),計(jì)數(shù)無(wú)效。當(dāng)它是低電平“0”時(shí),充電有效。設(shè)置數(shù)字控制信號(hào)負(fù)載(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。當(dāng)它處于高電平“1”時(shí),它會(huì)將0設(shè)置為16位輸出二進(jìn)制數(shù)。當(dāng)它處于低電平“0”時(shí),它將正常工作。時(shí)鐘clk(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。作為測(cè)距信號(hào)的計(jì)數(shù)時(shí)鐘,當(dāng)使能信號(hào)、置位信號(hào)和清零信號(hào)滿足條件時(shí),距離的“00.0*”中的“*”在時(shí)鐘的上升沿加1。日志數(shù)據(jù)輸出信號(hào)dout(輸出端口):16位標(biāo)準(zhǔn)邏輯位向量。輸出滑行的數(shù)據(jù)結(jié)果。測(cè)井?dāng)?shù)據(jù)輸出信號(hào)4位二進(jìn)制數(shù)(輸出端口)單位

23、km:類型為4位標(biāo)準(zhǔn)邏輯位向量。向外輸出測(cè)井?dāng)?shù)據(jù)中“0 x . 00”x的部分,即以公里為單位的部分。狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換的判斷信號(hào)。十米進(jìn)位信號(hào)cout0(輸出端口):類型為1位標(biāo)準(zhǔn)邏輯位。一個(gè)觸發(fā)時(shí)鐘,用于計(jì)費(fèi)模塊進(jìn)行計(jì)費(fèi),以累計(jì)計(jì)量的單價(jià)。十公里進(jìn)位信號(hào)cout1(輸出端口):類型為一個(gè)標(biāo)準(zhǔn)邏輯位。用于實(shí)現(xiàn)擴(kuò)展功能。綜合電路圖圖2-1-1測(cè)井模塊的RTL圖圖2-1-2出租車計(jì)價(jià)器模塊綜合組件圖2.1.4模擬波形圖圖2-1-3復(fù)位使能設(shè)置信號(hào)的測(cè)試模擬圖2-1-4模擬十進(jìn)制進(jìn)位測(cè)試和進(jìn)位信號(hào)測(cè)試圖2-1-5整體模擬測(cè)試模擬分析通過(guò)reset enable置位信號(hào)測(cè)試的仿真波形圖可以看出,rese

24、t信號(hào)clr和置位信號(hào)load是異步的,不受電表時(shí)鐘控制。清除信號(hào)clr和置位信號(hào)load具有類似的效果。當(dāng)它們達(dá)到高電平“1”時(shí),輸出的16個(gè)二進(jìn)制數(shù)據(jù)信號(hào)同時(shí)全部置零,然后當(dāng)高電平變?yōu)榈碗娖綍r(shí)開(kāi)始計(jì)數(shù)。當(dāng)它們處于低電平“0”時(shí),它們處于正常計(jì)數(shù)狀態(tài),并保持上次計(jì)數(shù)的數(shù)據(jù)。這說(shuō)明清零信號(hào)clr和置位信號(hào)load達(dá)到了我們的預(yù)期效果。通過(guò)十進(jìn)制進(jìn)位測(cè)試和進(jìn)位信號(hào)測(cè)試的仿真圖,我們可以清楚地看到,當(dāng)計(jì)數(shù)數(shù)據(jù)輸出的16位標(biāo)準(zhǔn)邏輯位向量dout的計(jì)數(shù)變化“0009”(以十六進(jìn)制表示)時(shí),在下一個(gè)計(jì)數(shù)脈沖到來(lái)時(shí)會(huì)變?yōu)椤?010”,當(dāng)dout等于“009”時(shí),計(jì)數(shù)十米進(jìn)位信號(hào)cout0會(huì)有一個(gè)負(fù)脈沖跳變

25、。對(duì)十進(jìn)制進(jìn)位和進(jìn)位信號(hào)的測(cè)試和仿真達(dá)到了預(yù)期的效果。通過(guò)整體仿真圖我們可以看到,對(duì)數(shù)計(jì)數(shù)模塊可以順利地完成清零、使能控制、設(shè)置、十進(jìn)制進(jìn)位、輸出進(jìn)位信號(hào)等功能。2.2狀態(tài)機(jī)控制模塊2.2.1功能介紹電表測(cè)量脈沖作為觸發(fā)時(shí)鐘,電表輸出的4位二進(jìn)制公里數(shù)作為狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換方向的控制信號(hào)。根據(jù)距離的變化,將狀態(tài)機(jī)的狀態(tài)傳遞給計(jì)費(fèi)模塊,使得計(jì)費(fèi)模塊可以根據(jù)距離測(cè)量單價(jià)的變化。2.2.2端口介紹時(shí)鐘clk(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。用于輸入電表測(cè)量的脈沖信號(hào),作為狀態(tài)機(jī)的時(shí)鐘。清除信號(hào)停止(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。狀態(tài)的復(fù)位控制是異步的。暫停信號(hào)(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。用于停止計(jì)量和

26、充電以及停止?fàn)顟B(tài)機(jī)轉(zhuǎn)換的控制信號(hào)。起始信號(hào)(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。用于開(kāi)始計(jì)量收費(fèi)狀態(tài)的初始設(shè)置。日志數(shù)據(jù)輸入的距離:4位標(biāo)準(zhǔn)邏輯位向量。用于根據(jù)出租車計(jì)價(jià)器公里數(shù)的4位二進(jìn)制數(shù)和不同出租車計(jì)價(jià)器單價(jià)的區(qū)間來(lái)確定狀態(tài)的轉(zhuǎn)折。狀態(tài)數(shù)據(jù)輸出數(shù)據(jù)輸出(輸出端口):一個(gè)2位標(biāo)準(zhǔn)邏輯位向量。用于向計(jì)費(fèi)模塊輸出當(dāng)前狀態(tài)(current status),以便計(jì)費(fèi)模塊根據(jù)距離調(diào)整米單價(jià)。綜合電路圖圖2-2-1狀態(tài)機(jī)模塊的RTL圖圖2-2-2狀態(tài)機(jī)模塊的狀態(tài)轉(zhuǎn)換圖圖2-2-3狀態(tài)機(jī)模塊綜合組件圖2.2.4模擬波形圖圖2-2-4測(cè)試模擬啟動(dòng)信號(hào)和復(fù)位控制信號(hào)圖2-2-5狀態(tài)機(jī)模塊的整體測(cè)試模擬模擬分析從啟

27、動(dòng)信號(hào)和復(fù)位控制信號(hào)的測(cè)試仿真圖可以看出,只有當(dāng)啟動(dòng)信號(hào)開(kāi)始向狀態(tài)機(jī)輸入正脈沖時(shí),狀態(tài)機(jī)才會(huì)開(kāi)始工作。同時(shí)可以看出,當(dāng)清零信號(hào)stop向狀態(tài)機(jī)輸出正脈沖時(shí),狀態(tài)機(jī)從其他工作狀態(tài)轉(zhuǎn)移到初始狀態(tài)st0。仿真結(jié)果符合預(yù)期。從狀態(tài)機(jī)模塊的測(cè)試仿真圖可以看出,當(dāng)dout為3(“0011”)或9(“1001”)時(shí),狀態(tài)機(jī)會(huì)產(chǎn)生狀態(tài)躍遷,輸出代表該狀態(tài)的信號(hào)。從仿真結(jié)果可以看出,仿真結(jié)果符合預(yù)期。2.3計(jì)費(fèi)模塊2.3.1功能介紹以出租車計(jì)價(jià)器模塊的cout0(十米進(jìn)位)信號(hào)為工作時(shí)鐘,根據(jù)狀態(tài)機(jī)模塊發(fā)送的狀態(tài)信號(hào)確定當(dāng)前出租車計(jì)價(jià)器單價(jià),然后利用十進(jìn)制計(jì)數(shù)器的原理,每四個(gè)二進(jìn)制位(共16個(gè)二進(jìn)制位)累加進(jìn)位

28、。然后,16位二進(jìn)制代碼被輸出到解碼模塊。2.3.2端口介紹工作時(shí)鐘clk(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。計(jì)量模塊的十進(jìn)制輸出信號(hào)cout0用作該模塊的工作時(shí)鐘。清除信號(hào)clr(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。當(dāng)復(fù)位信號(hào)為高電平“1”時(shí),所有輸出的16位二進(jìn)制數(shù)字被復(fù)位。低電平時(shí),計(jì)費(fèi)計(jì)數(shù)正常工作。設(shè)置信號(hào)負(fù)載(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。當(dāng)數(shù)字信號(hào)為高電平“1”時(shí),輸出的16位二進(jìn)制數(shù)設(shè)置為“00000”,即十進(jìn)制“0-7-0-0”。低電平時(shí),計(jì)費(fèi)計(jì)數(shù)正常工作。工作使能信號(hào)en(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。低電平時(shí),處于正常充電計(jì)數(shù)工作狀態(tài)。當(dāng)為高電平時(shí),計(jì)費(fèi)計(jì)數(shù)暫停。輸入數(shù)據(jù)in(輸入端

29、口):類型2的標(biāo)準(zhǔn)邏輯位向量。當(dāng)其輸入為“00”時(shí),表示行駛距離處于0km以上3km以下的狀態(tài)。當(dāng)其輸入為“01”時(shí),表示行駛距離大于3km且小于等于9km。當(dāng)其輸入為“10”時(shí),表示行駛距離大于9km。計(jì)費(fèi)數(shù)據(jù)輸出dout(輸出端口):16位標(biāo)準(zhǔn)邏輯位向量。用于將計(jì)費(fèi)數(shù)據(jù)輸出到解碼模塊進(jìn)行顯示。充電高溢出處理信號(hào)cout(輸出端口):類型為標(biāo)準(zhǔn)邏輯位。用于將計(jì)費(fèi)溢出發(fā)送給溢出處理模塊進(jìn)行處理。綜合電路圖圖2-3-1計(jì)費(fèi)模塊的RTL圖圖2-3-2計(jì)費(fèi)模塊綜合組件圖2.3.4模擬波形圖圖2-3-3復(fù)位信號(hào)、工作使能信號(hào)和置位信號(hào)的測(cè)試模擬圖2-3-4綜合測(cè)試模擬計(jì)費(fèi)模塊模擬分析從復(fù)位信號(hào)、工作使

30、能信號(hào)和置位信號(hào)的測(cè)試仿真圖可以看出,當(dāng)復(fù)位信號(hào)clr為高電平時(shí),輸出的16位二進(jìn)制數(shù)字信號(hào)全部清零。當(dāng)使能信號(hào)en為高電平時(shí),工作時(shí)鐘不驅(qū)動(dòng)充電計(jì)數(shù)器進(jìn)行充電計(jì)數(shù),即充電計(jì)數(shù)暫停。當(dāng)設(shè)置信號(hào)為正脈沖時(shí),輸出的16位二進(jìn)制數(shù)字信號(hào)設(shè)置為“00000”(圖中“0700”為十六進(jìn)制)。仿真波形圖的結(jié)果符合設(shè)計(jì)預(yù)期。從計(jì)費(fèi)模塊的綜合測(cè)試仿真圖可以看出,當(dāng)狀態(tài)輸入信號(hào)datain為“00”時(shí),計(jì)費(fèi)輸出數(shù)據(jù)狀態(tài)保持在“0700”(十六進(jìn)制);而當(dāng)datain只有“01”時(shí),以0.22元/100米(2.2元/km)開(kāi)始收費(fèi)(實(shí)際是以“000000000100010”為單位累計(jì));當(dāng)datain為“10”時(shí)

31、,按0.33元/百米(3.3元/公里)計(jì)費(fèi)(實(shí)際以“00000000110011”為單位累計(jì))。仿真達(dá)到了設(shè)計(jì)預(yù)期。2.4解碼模塊2.4.1功能介紹解碼模塊定義了一個(gè)狀態(tài)機(jī),用來(lái)控制74LS138芯片高速穩(wěn)定地分配各個(gè)數(shù)碼管的顯示輸出。使用一個(gè)高頻時(shí)鐘作為顯示刷新時(shí)鐘,用來(lái)控制狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換(每個(gè)數(shù)碼管顯示定義為一個(gè)狀態(tài))。2.4.2端口介紹顯示時(shí)鐘clk(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。連接到高頻時(shí)鐘信號(hào)源。用于解碼顯示時(shí)數(shù)碼管的轉(zhuǎn)換控制。測(cè)井?dāng)?shù)據(jù)輸入distance_in(輸入端口):類型為16位標(biāo)準(zhǔn)邏輯位向量。連接到計(jì)量模塊的計(jì)量數(shù)據(jù)輸出端口。作為距離顯示數(shù)據(jù)的輸入。計(jì)費(fèi)數(shù)據(jù)輸入fare

32、_in(輸入端口):16位標(biāo)準(zhǔn)邏輯位向量。連接到計(jì)費(fèi)模塊的計(jì)費(fèi)數(shù)據(jù)輸出端口。作為計(jì)費(fèi)顯示數(shù)據(jù)的輸入。顯示輸出led7(輸出端口):類型為8位標(biāo)準(zhǔn)邏輯位向量。將顯示數(shù)據(jù)發(fā)送到74LS138數(shù)據(jù)選擇器進(jìn)行數(shù)據(jù)顯示和輸出。門(mén)輸出ls138(輸出端口):類型為3位標(biāo)準(zhǔn)邏輯位向量。選通數(shù)據(jù)送到74LS138,用于選擇數(shù)碼管的顯示。圖2-4-1七段數(shù)碼管解碼表2.4.3綜合電路圖圖2-4-2解碼模塊的RTL圖圖2-4-3解碼模塊狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖圖2-4-4解碼模塊綜合組件圖2.4.4模擬波形圖圖2-4-5解碼模塊綜合測(cè)試模擬模擬分析從解碼模塊的綜合測(cè)試仿真圖可以看出,解碼模塊用顯示器工作時(shí)鐘進(jìn)行狀態(tài)轉(zhuǎn)換

33、,將數(shù)據(jù)分配到各個(gè)bit 7段數(shù)碼管進(jìn)行解碼顯示。2.5溢出處理模塊2.5.1功能介紹溢出指示器的顯示由計(jì)量模塊和計(jì)費(fèi)模塊的高溢出輸出控制。2.5.2端口介紹儀表溢出信號(hào)輸入distance_cout(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。連接到對(duì)數(shù)計(jì)數(shù)模塊的10km進(jìn)位在超過(guò)100km時(shí)會(huì)向LED輸出高電平,使其亮起。溢出信號(hào)輸入fare_cout(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。連接計(jì)數(shù)器的高位溢出輸出信號(hào),當(dāng)計(jì)費(fèi)模塊的最高位為“1001”時(shí),產(chǎn)生一個(gè)負(fù)脈沖信號(hào)。LED顯示輸出light0light3(輸出端口):類型為標(biāo)準(zhǔn)邏輯位。用于輸出表示溢出數(shù)據(jù)的顯示。綜合電路圖圖2-5-1溢出模塊的RTL圖

34、圖2-5-2溢出模塊綜合組件圖2.5.4模擬波形圖圖2-5-3溢出處理模塊整體測(cè)試模擬圖模擬分析從溢出處理模塊的整體測(cè)試仿真圖可以看出,當(dāng)計(jì)費(fèi)計(jì)數(shù)模塊的高位數(shù)據(jù)溢出時(shí),會(huì)通過(guò)fare_cout給出一個(gè)負(fù)脈沖信號(hào)。此時(shí)light0會(huì)從低電平跳到高電平點(diǎn)亮第一個(gè)LED。如果溢出,它會(huì)點(diǎn)亮燈1,然后點(diǎn)亮燈2。距離溢出時(shí)僅點(diǎn)亮3盞燈??梢钥闯觯抡娼Y(jié)果符合設(shè)計(jì)預(yù)期。3頂層文件模擬和分析3.1計(jì)數(shù)器模塊的頂層文件功能分析連接底層電表模塊、計(jì)費(fèi)模塊和狀態(tài)機(jī)模塊。3.1.2端口介紹儀表時(shí)鐘clk_counter(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。作為底層文件的工作時(shí)鐘。清除信號(hào)停止(輸入端口):類型為標(biāo)準(zhǔn)邏輯位

35、。作為底層計(jì)數(shù)器和狀態(tài)機(jī)的清零控制,當(dāng)處于高電平時(shí),所有計(jì)數(shù)器清零,狀態(tài)機(jī)跳轉(zhuǎn)到初始狀態(tài)st0。暫停信號(hào)(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。高電平時(shí)底層所有計(jì)數(shù)器暫停,高電平時(shí)正常工作。初始化設(shè)置信號(hào)start(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。當(dāng)其處于高電平時(shí),底部計(jì)數(shù)器被初始化并置位(計(jì)量輸出數(shù)據(jù)為“0000-0000-0000-0000”,計(jì)費(fèi)輸出模塊為“0000-0111-0000-0000”),狀態(tài)機(jī)被初始化。日志數(shù)據(jù)輸出distance_out(輸出端口):類型為16位標(biāo)準(zhǔn)邏輯位向量。將行程信息實(shí)時(shí)輸出到解碼模塊。計(jì)費(fèi)數(shù)據(jù)輸出fare_out(輸出端口):類型為16位標(biāo)準(zhǔn)邏輯位向量。實(shí)時(shí)向

36、解碼模塊輸出成本信息。Log高溢出信號(hào)distance_cout(輸出端口):類型為標(biāo)準(zhǔn)邏輯位。將計(jì)量的溢出信息輸出到溢出處理模塊。計(jì)費(fèi)高溢出信號(hào)fare_cout(輸出端口):類型為標(biāo)準(zhǔn)邏輯位。向溢出處理模塊輸出計(jì)費(fèi)溢出信息。綜合電路圖圖3-1-1臺(tái)面模塊的RTL圖圖3-1-2臺(tái)面模塊綜合組件圖3.1.4模擬波形圖圖3-1-3暫停信號(hào)、初始設(shè)定信號(hào)和復(fù)位信號(hào)的測(cè)試模擬圖3-1-4行程和費(fèi)用聯(lián)動(dòng)測(cè)試模擬1圖3-1-5出行與成本聯(lián)動(dòng)測(cè)試模擬二圖3-1-6測(cè)試模擬計(jì)費(fèi)溢出信號(hào)圖3-1-7日志溢出信號(hào)的測(cè)試模擬分析從暫停信號(hào)、初始設(shè)置信號(hào)和復(fù)位信號(hào)的測(cè)試仿真圖可以看出,暫停信號(hào)、初始設(shè)置信號(hào)和復(fù)位信

37、號(hào)都在高電平有效,從而分別設(shè)置計(jì)數(shù)器暫??刂频某跏荚O(shè)置和復(fù)位操作。從行程和費(fèi)用聯(lián)動(dòng)測(cè)試模擬的兩個(gè)模擬波形可以看出,計(jì)費(fèi)可以自動(dòng)切換3km和9km的行程單價(jià)。從充電溢出信號(hào)和計(jì)量溢出信號(hào)的測(cè)試可以看出,當(dāng)計(jì)量數(shù)據(jù)或充電數(shù)據(jù)的最高四位為“1001”時(shí),溢出信號(hào)可以正常輸出。3.2整體頂層文檔的模擬和分析3.2.1功能介紹為每個(gè)底層文件提供信號(hào),連接并封裝每個(gè)模塊。使每個(gè)具有特定功能的模塊組合成一個(gè)完整、穩(wěn)定、快速的系統(tǒng)。3.2.2端口介紹儀表時(shí)鐘clk_counter(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。作為底層文件的工作時(shí)鐘。清除信號(hào)停止(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。作為底層計(jì)數(shù)器和狀態(tài)機(jī)的清零控制

38、,當(dāng)處于高電平時(shí),所有計(jì)數(shù)器清零,狀態(tài)機(jī)跳轉(zhuǎn)到初始狀態(tài)st0。暫停信號(hào)(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。高電平時(shí)底層所有計(jì)數(shù)器暫停,高電平時(shí)正常工作。初始化設(shè)置信號(hào)start(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。當(dāng)其處于高電平時(shí),底部計(jì)數(shù)器被初始化并置位(計(jì)量輸出數(shù)據(jù)為“0000-0000-0000-0000”,計(jì)費(fèi)輸出模塊為“0000-0111-0000-0000”),狀態(tài)機(jī)被初始化。刷新時(shí)鐘clk_display(輸入端口):類型為標(biāo)準(zhǔn)邏輯位。連接到高頻時(shí)鐘信號(hào)源。用于解碼顯示時(shí)數(shù)碼管的轉(zhuǎn)換控制。顯示輸出led7(輸出端口):類型為8位標(biāo)準(zhǔn)邏輯位向量。將顯示數(shù)據(jù)發(fā)送到74LS138數(shù)據(jù)選擇器進(jìn)行數(shù)

39、據(jù)顯示和輸出。門(mén)輸出ls138(輸出端口):類型為3位標(biāo)準(zhǔn)邏輯位向量。選通數(shù)據(jù)送到74LS138,用于選擇數(shù)碼管的顯示。LED顯示輸出light0light3(輸出端口):類型為標(biāo)準(zhǔn)邏輯位。用于輸出表示溢出數(shù)據(jù)的顯示。綜合電路圖圖3-2-1頂層模塊的綜合組件圖圖3-2-2頂部模塊技術(shù)元件圖3.2.4模擬波形圖圖3-2-3頂層文件的測(cè)試模擬模擬分析根據(jù)上面的仿真圖,整個(gè)數(shù)字電路系統(tǒng)在軟件測(cè)試和仿真中達(dá)到了設(shè)計(jì)要求。4硬件驗(yàn)證分析4.1一般描述根據(jù)以上結(jié)果,該系統(tǒng)可以通過(guò)計(jì)算機(jī)仿真。所以我們做硬件驗(yàn)證。因?yàn)橛玫氖窃缦壬a(chǎn)的FPGA芯片(EPF10K10LC84-4),所以用Maxplus下載代碼。

40、圖4-1 EDA教學(xué)測(cè)試盒的設(shè)計(jì)和使用4.2引腳分配圖4-2引腳分布圖4.3硬件驗(yàn)證過(guò)程和現(xiàn)象首先,把實(shí)驗(yàn)箱和電腦連接起來(lái)。調(diào)整兩個(gè)時(shí)鐘的頻率(要求顯示器刷新時(shí)鐘更高)。給實(shí)驗(yàn)箱通電。在電腦上用Maxplus打開(kāi)準(zhǔn)備好的底層文件逐個(gè)編譯,最后打開(kāi)編譯頂層文件。將代碼下載到實(shí)驗(yàn)箱。切換復(fù)位開(kāi)關(guān)(自定義)以復(fù)位系統(tǒng)的所有計(jì)數(shù)和狀態(tài)模塊。切換啟動(dòng)開(kāi)關(guān),將系統(tǒng)置于啟動(dòng)狀態(tài)。此時(shí)數(shù)碼管應(yīng)顯示“7.00- 0.00”,然后系統(tǒng)會(huì)自動(dòng)開(kāi)始進(jìn)入計(jì)量計(jì)費(fèi)狀態(tài)。暫停開(kāi)關(guān)測(cè)試,系統(tǒng)的暫停功能。此時(shí),數(shù)碼管應(yīng)保持在撥動(dòng)開(kāi)關(guān)之前的狀態(tài)。當(dāng)距離顯示超過(guò)“3.00”和“9.00”時(shí),檢查計(jì)費(fèi)顯示的狀態(tài)。此時(shí)累計(jì)計(jì)費(fèi)應(yīng)分別為

41、0.22和0.33。同時(shí),當(dāng)距離顯示小于“3.00”時(shí),計(jì)費(fèi)顯示應(yīng)始終顯示在“7.00”。檢查溢出情況。當(dāng)計(jì)費(fèi)溢出時(shí),每個(gè)溢出將點(diǎn)亮一個(gè)LED(從右到左,共三個(gè))。距離溢出也有同樣的效果,但是只能處理一次,因?yàn)楝F(xiàn)實(shí)中距離溢出很少發(fā)生。經(jīng)過(guò)在實(shí)驗(yàn)箱上的實(shí)際測(cè)試,以上要求全部滿足。圖4-1硬件驗(yàn)證5課程設(shè)計(jì)的經(jīng)驗(yàn)5.1蔡的經(jīng)歷這學(xué)期的EDA課程設(shè)計(jì),我們組選的題目是出租車計(jì)價(jià)器,貼近生活,能將學(xué)到的知識(shí)運(yùn)用到實(shí)用產(chǎn)品的設(shè)計(jì)中。首先,最大的感受是可以用自己的大腦思考各個(gè)功能模塊的實(shí)現(xiàn)方式,同時(shí)可以檢驗(yàn)自己的知識(shí),可以在團(tuán)隊(duì)的合作中共享資源和信息。在設(shè)計(jì)的過(guò)程中,雖然一開(kāi)始并不順利,嘗試了很多實(shí)現(xiàn)功能

42、的方法,也編譯了一些有錯(cuò)誤的程序,但就是要在錯(cuò)誤中不斷學(xué)習(xí)和提高,加深對(duì)難點(diǎn)知識(shí)點(diǎn)和VHDL語(yǔ)言規(guī)則的理解,同時(shí)鍛煉查錯(cuò)糾錯(cuò)的能力。此外,通過(guò)本次課程設(shè)計(jì),學(xué)習(xí)了FPGA的開(kāi)發(fā)流程和開(kāi)發(fā)軟件的使用,掌握了MAX+plus II和Quartus II的編譯、下載、仿真、合成的操作方法,提高了自己的實(shí)踐能力。5.2穆的經(jīng)歷只有自己寫(xiě)程序,才能真正學(xué)會(huì)EDA。我的體會(huì)很深刻。學(xué)了一個(gè)學(xué)期的EDA,我覺(jué)得空間不大了。然而,在設(shè)計(jì)課程和編寫(xiě)程序時(shí),我意識(shí)到了其中的奧妙。程序?qū)懫饋?lái)不難,但是要成功實(shí)現(xiàn)它的功能涉及到很多細(xì)節(jié),這些都需要自己去體驗(yàn)。在這次課程設(shè)計(jì)中,我收獲很大。對(duì)EDA的理解上了一個(gè)臺(tái)階,學(xué)

43、會(huì)了如何使用Max+Pulse II和quartusII。我們組選擇了出租車計(jì)費(fèi)實(shí)驗(yàn)。在編寫(xiě)程序的過(guò)程中,我經(jīng)常發(fā)現(xiàn)一些原本以為很簡(jiǎn)單的電路,用VHDL語(yǔ)言很難描述,或者程序出來(lái)時(shí)仿真結(jié)果是錯(cuò)誤的,或者不同仿真軟件的結(jié)果不一樣。通過(guò)大量的嘗試,我認(rèn)為程序編寫(xiě)復(fù)雜,導(dǎo)致EDA軟件無(wú)法按照我的預(yù)期解釋程序。有時(shí)候,改變一下表達(dá)方式,把流程拆解或者合并,往往就能解決問(wèn)題。EDA程序的編寫(xiě)一定要簡(jiǎn)單明了,用最簡(jiǎn)單的方式表達(dá)你的邏輯。在編寫(xiě)程序的過(guò)程中,我曾多次因?yàn)楦鞣N原因推翻之前的程序,甚至完全重寫(xiě)了完整的程序。我曾經(jīng)設(shè)想過(guò)各種控制方法來(lái)控制它的運(yùn)行,但是大部分都因?yàn)閷?shí)現(xiàn)困難而結(jié)論了,耗費(fèi)了大量的時(shí)間

44、。后來(lái)我干脆把控制模塊和所有外圍的東西都去掉了,只留下最簡(jiǎn)單的計(jì)距離和充電的模塊,更容易實(shí)現(xiàn)功能。起初,我并不真正了解實(shí)驗(yàn)箱中數(shù)碼管的連接方式。我按照我的理解設(shè)計(jì)了它的解碼和顯示電路,最后意識(shí)到不需要。我和團(tuán)隊(duì)成員商量后,根據(jù)實(shí)驗(yàn)箱的結(jié)構(gòu)重新寫(xiě)了一個(gè),才得以成功展示。完成的作品和我最初的想法相差很大,結(jié)構(gòu)很簡(jiǎn)單。這次同時(shí)用了max+pulsII和quartusII。我對(duì)max+pulsII并不熟悉,但quartusII是第一次使用,導(dǎo)致我在模擬上糾結(jié)了很久。經(jīng)過(guò)同學(xué)的指導(dǎo),我已經(jīng)可以熟練使用這兩個(gè)軟件了。5.3黃德龍的經(jīng)歷這學(xué)期的EDA課程設(shè)計(jì)讓我學(xué)到了很多課堂上學(xué)不到的東西。可能我們組和其他

45、組不一樣,因?yàn)槲覀兪且黄鹪O(shè)計(jì)的。我們每個(gè)人都想到了一個(gè)實(shí)施計(jì)劃,我們每個(gè)人都花了幾天時(shí)間制定自己的計(jì)劃。當(dāng)我們遇到任何問(wèn)題時(shí),我們通過(guò)各種方式聯(lián)系對(duì)方,聚在一起解決問(wèn)題。課堂上老師講的問(wèn)題很多,但是我印象不深。通過(guò)這次課程設(shè)計(jì),我深刻理解了解決這些問(wèn)題的方法,學(xué)到了很多課堂上學(xué)不到的知識(shí)。更重要的是,我學(xué)會(huì)了如何使用FPGA這種現(xiàn)場(chǎng)可編程門(mén)陣列的硬件,以及配套的開(kāi)發(fā)工具。在撰寫(xiě)報(bào)告的過(guò)程中,我逐漸熟悉了標(biāo)準(zhǔn)的紙質(zhì)報(bào)告格式和布局規(guī)則??偠灾@次課程設(shè)計(jì)給我?guī)?lái)了非常豐富的收獲。感覺(jué)學(xué)院,感覺(jué)老師,給了我們這個(gè)難得的機(jī)會(huì)。我感激你,因?yàn)槟?,我們一起學(xué)習(xí),一起學(xué)習(xí),一起進(jìn)步。6出租車計(jì)價(jià)器的FP

46、GA實(shí)現(xiàn)摘要隨著公共交通的發(fā)展和社會(huì)經(jīng)濟(jì)技術(shù)的進(jìn)步,越來(lái)越多的人會(huì)選擇出租車作為出行方式,這也帶來(lái)了出租車行業(yè)的快速發(fā)展。這無(wú)異于創(chuàng)造了一個(gè)巨大的出租車計(jì)價(jià)器市場(chǎng),同時(shí),用戶對(duì)出租車計(jì)價(jià)器的要求也越來(lái)越高。特別是工作性能穩(wěn)定,計(jì)費(fèi)準(zhǔn)確,操作方便,可靠性高。這需要性能良好、可靠的數(shù)字電路。使用基于FPGA的VHDL設(shè)計(jì),迎合了EDA技術(shù)的巨大市場(chǎng)需求。EDA (Electronic Design Automation)技術(shù)作為現(xiàn)代電子設(shè)計(jì)技術(shù)的核心,它依靠強(qiáng)大的計(jì)算機(jī)平臺(tái),在EDA軟件工具、硬件描述語(yǔ)言的邏輯描述方法下,為系統(tǒng)完成設(shè)計(jì)文件,自動(dòng)完成邏輯簡(jiǎn)化、邏輯劃分、邏輯綜合、邏輯優(yōu)化和仿真等多

47、種功能,直到電子電路的性能達(dá)到所希望的系統(tǒng)功能。EDA技術(shù)允許設(shè)計(jì)人員只使用軟件,即使用硬件描述語(yǔ)言(HDL)和EDA軟件來(lái)完成系統(tǒng)硬件功能的實(shí)現(xiàn)。FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)是主流的ASIC(專用集成電路)目標(biāo)器件。它的特點(diǎn)是直接面向用戶,具有極大的靈活性和通用性,易于使用,硬件測(cè)試和實(shí)現(xiàn)速度快,開(kāi)發(fā)效率高,成本低,上市時(shí)間短,技術(shù)維護(hù)簡(jiǎn)單,可靠性好等特點(diǎn)。VHDL(超高速集成電路硬件描述語(yǔ)言)最初是由美國(guó)國(guó)防部創(chuàng)建的。發(fā)展至今,它已經(jīng)成為電子設(shè)計(jì)硬件描述語(yǔ)言的主流。本設(shè)計(jì)基于FPGA開(kāi)發(fā)平臺(tái),Quartus和Maxplus電子設(shè)計(jì)軟件開(kāi)發(fā)環(huán)境,采用VHDL文本設(shè)計(jì)方法,完成并實(shí)現(xiàn)了出租車計(jì)

48、價(jià)器電路的設(shè)計(jì)。本報(bào)告首先關(guān)注不同解決方案的競(jìng)爭(zhēng)和選擇;其次,將系統(tǒng)分成不同的模塊,從底層的VHDL文件開(kāi)始,介紹每個(gè)模塊連接的各個(gè)端口和功能分析,并展示分析的計(jì)算機(jī)仿真結(jié)果;第三,對(duì)頂層VHDL文件進(jìn)行分析,并給出了該系統(tǒng)的最終綜合和仿真結(jié)果。最后但并非最不重要的是,它是分析硬件驗(yàn)證的結(jié)果。7參考文獻(xiàn)1.宋、黃、。EDA技術(shù)實(shí)踐教程-VHDL版本。理科. 2010.6: 1 5。8附錄8.1方案一實(shí)施代碼8.1.1測(cè)井模塊的距離計(jì)數(shù)器vhd圖書(shū)館ieee使用IEEE . STD _ logic _ 1164 . all;使用IEEE . STD _ logic _ unsigned . al

49、l;實(shí)體距離_計(jì)數(shù)器為port(clk,clr,en,load:in STD _ logic;-用于記錄距離、復(fù)位信號(hào)、計(jì)數(shù)使能(即暫停信號(hào))和異步設(shè)置(即啟動(dòng)信號(hào))的時(shí)鐘。dout:out std_logic_vector(15下降到0);-距離輸出dout _ sm:out STD _ logic _ vector(11 down to 8);-公里輸出,作為狀態(tài)機(jī)的檢測(cè)信號(hào)。cout0、cout 1:out STD _ logic);-攜帶超過(guò)100米(作為計(jì)費(fèi)時(shí)鐘,100米將計(jì)費(fèi)一次),攜帶超過(guò)100Km超出范圍。結(jié)束距離_計(jì)數(shù)器;距離計(jì)數(shù)器的體系結(jié)構(gòu)bhv為開(kāi)始進(jìn)程(時(shí)鐘、時(shí)鐘、en

50、、加載)變量q:std_logic_vector(15下降到0);開(kāi)始if (clr=1 或load=1 )則q:=(others = 0 );-清除或有效設(shè)置。elsif (clkevent and clk=1 )然后如果en=0 那么如果q(3下降到0)“1001”那么q(3下降到0):=q(3下降到0)+1;-一點(diǎn)+1else q(3 down to 0):=“0000”;-每一位都有進(jìn)位。如果q(7下托4)“1001”那么q(7下托4):=q(7下托4)+1;-十位數(shù)+1else q(7 downto 4):= 0000 ;如果q(11下降到8)“1001”那么q(11下降到8):=q

51、(11下降到8)+1;-百+1else q(11 down to 8):= 0000 ;-數(shù)百人攜帶。如果q(15下到12)“1001”那么q(15下到12):=q(15下到12)+1;-else q(15下到12):=“0000”;-結(jié)束if;結(jié)束if;結(jié)束if;結(jié)束if;結(jié)束if;結(jié)束if;如果q(3 down to 0)=“1001”,那么cout 0 =“0”;-全程百米搬運(yùn)else cout0 = 1結(jié)束if;如果q(15 downto 12)=1001 ,那么cout1 = 0-100公里全程運(yùn)載else cout1 = 1結(jié)束if;dout = q;dout_sm=q(11下降到

52、8);結(jié)束進(jìn)程;結(jié)束bhv狀態(tài)機(jī)模塊state_machine.vhd圖書(shū)館ieee使用IEEE . STD _ logic _ 1164 . all;使用IEEE . STD _ logic _ unsigned . all;實(shí)體狀態(tài)機(jī)為port(clk,stop,pause,start:在std _ logic-時(shí)鐘、復(fù)位、暫停、開(kāi)始信號(hào)距離:在std_logic_vector(3 downto 0)中;-輸入距離公里數(shù)out:out STD _ logic _ vector(1 downto 0)-輸出充電控制信號(hào)。);結(jié)束狀態(tài)機(jī);狀態(tài)機(jī)的體系結(jié)構(gòu)bhv是類型狀態(tài)為(st0,st1,st

53、2,st3);-定義四種狀態(tài)。信號(hào)current_state,next _ state:States:= st0;開(kāi)始注冊(cè):過(guò)程(CLK,停止)-掌握連續(xù)的過(guò)程。開(kāi)始如果stop=1 那么current _ state = st0elsif clkevent和clk=1 then當(dāng)前狀態(tài) dataout=00 時(shí);-距離、票價(jià)重置狀態(tài)如果pause=1 ,那么next _ state = st0elsif start = 1 then next _ state = st1;elsif stop = 1 then next _ state = st0;否則next _ state dataout

54、 = 00-距離不到3公里。如果距離“0011 ”,則如果pause=1 ,那么next _ state = st1elsif stop = 1 then next _ state = st0;否則next _ state = st1結(jié)束if;否則next _ state dataout = 01-距離大于3公里小于9公里。如果距離“1001 ”,則如果pause=1 ,那么next _ state = st2elsif stop = 1 then next _ state = st0;否則next _ state = st2結(jié)束if;否則next _ state dataout = 10-超

55、過(guò)9公里如果pause=1 ,那么next _ state = st3elsif stop = 1 then next _ state = st0;否則next _ state next _ state = st0結(jié)束案例;結(jié)束進(jìn)程COM結(jié)束bhv8.1.3計(jì)費(fèi)模塊counter_fare.vhd圖書(shū)館ieee使用IEEE . STD _ logic _ 1164 . all;使用IEEE . STD _ logic _ unsigned . all;實(shí)體counter_fare為port(clk,clr,en,load:in STD _ logic;-用于記錄費(fèi)用(從100米的距離攜帶)、清

56、除信號(hào)、計(jì)數(shù)使能(即暫停信號(hào))和異步設(shè)置(即開(kāi)始信號(hào))的時(shí)鐘。datain:在std_logic_vector中(1向下到0);-來(lái)自狀態(tài)機(jī)的控制信號(hào),它影響收費(fèi)標(biāo)準(zhǔn)。dout:out std_logic_vector(15下降到0);-通行費(fèi)的產(chǎn)出。cout:out STD _ logic);攜帶一百元以上。結(jié)束counter _ farecounter_fare的架構(gòu)bhv為常數(shù)add 0:STD _ logic _ vector(7 down to 0):= 00000000 ;常數(shù)add 1:STD _ logic _ vector(7 down to 0):= 00100010 ;常

57、數(shù)add 2:STD _ logic _ vector(7 down to 0):= 00110011 ;-add0、add1、add2是三種充電標(biāo)準(zhǔn)。常量load 0:STD _ logic _ vector(15 down to 0):= 00000 ;常量load 1:STD _ logic _ vector(15 down to 0):= 00000 ;- load0、load1是兩個(gè)設(shè)定值。信號(hào)add:STD _ logic _ vector(7 down to 0);信號(hào)加載:STD _ logic _ vector(15 down to 0);開(kāi)始datain = 00 else

58、時(shí)Add = add0根據(jù)狀態(tài)機(jī)的控制信號(hào),確定計(jì)費(fèi)標(biāo)準(zhǔn)。當(dāng)datain=01 else時(shí)添加1當(dāng)datain=10 else時(shí)添加2add0loading = load 0 when clr = 1 else-根據(jù)清除和設(shè)置信號(hào)的控制來(lái)確定設(shè)置值。當(dāng)load=1 否則為load1load0進(jìn)程(時(shí)鐘、時(shí)鐘、en、加載)變量q:std_logic_vector(15下降到0);開(kāi)始如果clr=1 或load=1 ,則q:= loading;elsif (clkevent and clk=1 )然后En = 0 則計(jì)數(shù)啟用q(3下到0):=q(3下到0)+add(3下到0);-一位數(shù)加法如果(3

59、減0)“1010”那么-確定每個(gè)位相加的結(jié)果是否有結(jié)轉(zhuǎn)。q(7降4):=q(7降4)+add(7降4);-如果沒(méi)有進(jìn)位,就加十位數(shù)。如果q(7下降到4)“1010”,則為空;else q(7下托4):=q(7下托4)-“1010”;-超越十,進(jìn)行調(diào)整。如果q(11下降到8)“1001”那么q(11下降到8):=q(11下降到8)+1;else q(11 down to 8):= 0000 ;如果q(15下到12)“1001”那么q(15下到12):=q(15下到12)+1;else q(15下到12):=“0000”;結(jié)束if;結(jié)束if;結(jié)束if;其他q(3下到0):=q(3下到0)-“101

60、0”;-如果個(gè)位數(shù)相加的結(jié)果超過(guò)十,則進(jìn)行調(diào)整。q(7下托4):=q(7下托4)+add(7下托4)+1;-十位數(shù)相加,加上一位數(shù)的進(jìn)位。如果q(7下降到4)“1010”,則為空;else q(7下托4):=q(7下托4)-“1010”;如果q(11下降到8)“1001”那么q(11下降到8):=q(11下降到8)+1;else q(11 down to 8):= 0000 ;如果q(15下到12)“1001”那么q(15下到12):=q(15下到12)+1;else q(15下到12):=“0000”;結(jié)束if;結(jié)束if;結(jié)束if;結(jié)束if;結(jié)束if;結(jié)束if;如果q(15 downto 1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論