版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、西華大學課程設計說明書題目出租車計價器專業(yè):信息工程年級:2009級學生:潘帥學號:33200908020*指導教師:林競力完成日期:2012年6月6日摘 要:本文介紹了一種采用可編程邏輯器件(FPGA/CPLD)進行出租車計費器的設計思想以及實現(xiàn)方法。本設計實現(xiàn)了出租車計費器所需的一些基本功能,計費金 額包括起步價、里程計費、等待計時計費等。該設計采用模塊化設計, 在 Quartus II9.0 軟件平臺下,采用 Verilog HDL 硬件描述語言描述和模擬仿真了分頻模塊、計程模 塊、計費模塊、計時模塊,譯碼以及動態(tài)掃描顯示模塊,完成了出租車計費器仿真 設計和硬件電路的實現(xiàn)。關鍵詞:FPG
2、A,出租車計費器,Quartus, Verilog HDLAbstract : This article describes the design ideas and methods of the taximeter, through the programmable logic device (FPGA/CPLD). The design of a taximeter to achieve the required basic functions,The total of billing included the starting price, metered, and wait for t
3、ime billing. Through the Quartus II 9.0 Software Platform, Using Verilog HDL language completed the description and simulation of frequency module, the meter module, Billing module, timing modules, decoding, dynamic scanning display module.IT It has completed the taxi meter simulation and the hardwa
4、re circuit.Keywords: FPGA, Taximeter, Quartus, Verilog HDL目錄1. 前 言 12. 總體方案設計 22.1 設計要求 22.2 方案論證與選擇 22.3 設計思想及原理 33. 單元模塊設計 53.1 分頻模塊 53.1.1 計數(shù)器分頻模塊 53.1.2 計數(shù)器分頻模塊仿真結果 53.1.3 數(shù)碼管分頻模塊 63.2 計程模塊 63.2.1 計程模塊電路 63.2.2 計程模塊仿真結果 73.3 計時模塊 73.3.1 計時模塊電路 73.3.2 計時模塊的仿真結果 73.4 控制模塊 83.4.1 控制模塊電路 83.4.2 計時模塊
5、的仿真結果 93.5 計費模塊 103.5.1 控制模塊電路 103.5.2 計費模塊的仿真結果 102.6 數(shù)碼管顯示模塊 114. 整體頂層模塊設計 124.1 整體頂層模塊電路 125. 系統(tǒng)功能仿真及調(diào)試 135.1 系統(tǒng)仿真及調(diào)試 136. 總結與體會 16致謝 17參考文獻 17附錄 A: 單元模塊 Verilog HDL 源代碼 18A.1計數(shù)器的分頻模塊 VerilogHDL 源代碼 18A.2數(shù)碼管的分頻模塊 VerilogHDL 源代碼 18A.3計程模塊 VerilogHDL 源代碼 19A.4計時模塊 VerilogHDL 源代碼 20A.5控制模塊 VerilogHD
6、L 源代碼 21A.6計費模塊 VerilogHDL 源代碼 21A.7數(shù)碼管顯示模塊 VerilogHDL 源代碼 21A.8整體頂層模塊 VerilogHDL 源代碼 23附錄 B: 整體頂層電路圖 241. 前隨著出租車行業(yè)的發(fā)展,對出租車計費器的要求也越來越高。最近幾年出租車行業(yè)發(fā)展 迅速,在全國有幾千萬家出租車公司。因此出租車計費器市場是龐大的。而出租車計費器成 為不可缺少的一部分。 出租車計價器是出租車營運收費的專用智能化儀表 , 隨著電子技術的發(fā) 展, 出租車計價器技術也在不斷進步和提高。國內(nèi)出租車計價器已經(jīng)經(jīng)歷了4 個階段的發(fā)展。從傳統(tǒng)的全部由機械元器件組成的機械式 , 到半電
7、子式即用電子線路代替部分機械元器件的 出租車計價器;再從集成電路式到目前的單片機系統(tǒng)設計的出租車計價器,以及FPG/計價器.出租車計價器計費是否準確 , 運數(shù)據(jù)的管理是否方便都是人們最關注的。 該計價器能實現(xiàn)按時 間和里程綜合計算車價,能顯示時間、里程、單價、總車價等相關信息顯示。信息社會的現(xiàn)代電子產(chǎn)品,性能越來越高,復雜度越來越大,更新步伐也越來越快。實 現(xiàn)這種進步的主要原因就是微電子技術和電子技術的發(fā)展。而電子技術的發(fā)展后者的核心就 是電子設計自動化技術。EDA是指以計算機為工作平臺,融合了應用電子技術、計算機技術、 智能化技術的最新成果而開發(fā)出的電子 CAC®用軟件包,它根據(jù)硬
8、件描述語言 HDL完成的設 計文件,自動完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局布線及仿真,直至完成對于特 定目標芯片的適配編譯、邏輯映射和編程下載等工作。沒有EDA技術的支持,想要完成超大規(guī)模集成電路的設計制造是不可想象的;反過來,生產(chǎn)制造技術的不斷進步又必將對EDA技術提出新的要求。本設計采用 Verilog HDL 語言來設計實現(xiàn)出租車計費系統(tǒng),具有良好的電路行為描述和 系統(tǒng)描述的能力 , 并在語言易讀性和層次化、結構化設計方面 , 表現(xiàn)了強大的生命力和應用潛 力。源程序經(jīng)ALTERA勺Quartus II 9.0軟件調(diào)試優(yōu)化,通過下載到特定芯片后,可應用于實 際的出租車計費系統(tǒng)中。本
9、次課程設計鞏固和運用了所學課程,通過理論聯(lián)系實際,提高了 分析、解決技術實際問題的獨立工作能力,通過對一個出租車計費器的設計,進一步熟悉了 數(shù)字電路系統(tǒng)設計、制作與調(diào)試的方法和步驟。2. 總體方案設計2.1設計要求該出租車計價器實現(xiàn)功能:1、行程w 4公里,且等待累計時間w 2分鐘,起步費為8.0元。2、行程4公里外,以每公里1.0元,等待累計時間2分鐘外,以每分鐘以1.0元計費。3、能顯示行駛公里數(shù)、等待累計時間和最后的總費用。4、能通過修改程序來對計費要求實現(xiàn)改變。用Verilog HDL語言設計符合上述功能要求的出租車計費器, 并用層次化設計方法設計該 電路,各計數(shù)器的計數(shù)狀態(tài)用功能仿真
10、的方法驗證, 并通過有關波形確認電路設計是否正確。 2.2方案論證與選擇方案一:采用數(shù)字電路控制,其原理圖如圖1-1所示。采用傳感器件,輸出脈沖信號,經(jīng)過放大整形最為移位寄存器的脈沖,實現(xiàn)計價,但是考慮到這中電路性能不夠穩(wěn)定,故障 率高,如要做到很精確多功能則其規(guī)模較大,難調(diào)試。而且電路不實用。圖2-1數(shù)字電路方案方案二:采用單片機控制,通過單片機作為主控器,利用1602字符液晶作為顯示電路,采用外部晶振作為時鐘脈沖,通過按鍵可以方便調(diào)節(jié),以下是方案三的系統(tǒng)流程圖,本方案 主要通過軟硬結合可以很容易實現(xiàn)要求,其靈活性也還不錯,成本也不高。方案原理圖如下 圖所示:圖2-2單片機控制方案方案三:采
11、用EDA技術,根據(jù)層次化設計理論,該設計問題自頂向下可分為分頻模塊,控 制模塊 計量模塊、譯碼和動態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖1-3所示:時鐘信號分頻器復位信號計程脈沖計時脈沖控> 制器計費譯碼及顯示計程計時圖2-3 PFGA控制方案方案總結:通過各個方案的比較,首先數(shù)字電路控制不實用,不重點考慮,單片機方案 雖有較大的活動空間,能實現(xiàn)所要求的功能而且能在很大的程度上擴展功能,雖然還可以方 便的對系統(tǒng)進行升級,但考慮到單片機方案軟件設計調(diào)試較為繁瑣,最大限制還是在與本課 程設計是利用EDA技術實現(xiàn),另一方面采用可編程邏輯器件設計,外圍電路簡單,模塊話設 計方便原理清晰,靈活性強,并且完
12、成和擴展附加功能性強。綜上,本設計采用方案三。2.3設計思想及原理出租車的一般計費過程為:出租車載客后,啟動計費器,整個系統(tǒng)開始運行,里程計數(shù) 器和時間計數(shù)器從0開始計數(shù),費用計數(shù)器從8開始計算。再根據(jù)行駛里程或停止等待的時 間按以上的標準計費。若在行駛狀態(tài),則計程器開始加計數(shù),當路程超過四公里后,計費器 以每公里1元累加。若出租車停止等待狀態(tài),則計時器開始加計數(shù),當時間超過兩分鐘后, 計費器以每分鐘1元累加。出租車到達目的地停止后,停止計費器,顯示總費用。根據(jù)課程設計要求計價器可根據(jù)車輪轉(zhuǎn)數(shù)計算路程,車輪每轉(zhuǎn)一圈送一個脈沖波,假設 每轉(zhuǎn)一圈為 2米,車輪每轉(zhuǎn)一圈送一個脈沖波 ( 可用傳感器檢
13、測送出脈沖 ) ,本設計為了好模 擬仿真假設的是車輪轉(zhuǎn)動 100 圈才產(chǎn)生一個脈沖,即是一個脈沖是代表 200米,則經(jīng)過 5 分 頻器后是每1Km送一個脈沖到里程計算模塊,這樣方便在軟件里面仿真觀察,若要下載到實 物應用中去,通過實際車輪周長自己設置不同的分頻電路來達到產(chǎn)生任意精度的計程距離模 塊。其主要原理框圖如圖 1-3 所示。而當車停止的時候通過分頻模塊產(chǎn)生秒脈沖,通過計時 要求來產(chǎn)生計費,本設計重點就在計費控制模式模塊和計費模塊這兩大模塊的設計,則根據(jù) 出租車計費器的工作過程,其主要原理框圖如圖 1-3 所示。本系統(tǒng)采用分層次、分模塊的方 式設計,其本系統(tǒng)組成框圖如下所示。其中行駛路程
14、計數(shù)模塊、等待時間計數(shù)模塊和計費模 塊,用來統(tǒng)計路程、等待時間和總費用,控制模塊是用來控制計費模塊,數(shù)碼管顯示模塊用 來顯示行駛的公里數(shù)、等待累計時間和總費用等信息。3. 單元模塊設計本系統(tǒng)采用層次化、模塊化的設計方法,設計順序為自下向上。首先實現(xiàn)系統(tǒng)框圖中的 各子模塊,然后由頂層模塊調(diào)用各子模塊來完成整個系統(tǒng)。為了便于在數(shù)碼管里顯示,這里 的路程、時間和費用計數(shù)器均用十六進制表示。3.1分頻模塊將時鐘信號進行分頻,分出的頻率供后面的計程模塊和計時模塊用,以及后面的數(shù)碼顯示掃 描模塊都會用到。3.1.1計數(shù)器分頻模塊此模塊的功能是對總的時鐘進行分頻, 分出的頻率是讓計數(shù)器用的,因為總的時鐘是5
15、0M 的。設計該模塊的時候用了一個 32位的計數(shù)器,當計數(shù)器計到25_000000的時候產(chǎn)生時鐘。 在仿真的時候為了快速的方便觀察,設計了一個5分頻的電路。在此時假設車輪每轉(zhuǎn)一圈為2米,則轉(zhuǎn)動100圈送一個脈沖,即是200米,則在經(jīng)5分頻后,每1Km送一個脈沖到里程 計算模塊。同理,若知道車輪直徑,即可算出分頻比來設置合理的分頻電路,當下載到實物 時還是用的是2HZ的時鐘M II ti+ M i M «+ II i *-i IIelk SOMresetI 爐IJTelk 50M elkresetI hl i +8 4-fil ck卒 11 尸 申p : | SB 片尸 , <
16、qi % 11 m a* i hi a-圖3-1計數(shù)器的分頻模塊3.1.2計數(shù)器分頻模塊仿真結果圖3-2計數(shù)器的分頻模塊功能仿真從波形可以看出當reset為低電平的時候elk為零,當reset為高電平的時候elk的高電平占了 clk_50M的5個周期,低電平也占了 clk_50M的5個周期3.1.3數(shù)碼管分頻模塊此模塊的功能是對總的時鐘進行分頻,分出的頻率是讓數(shù)碼管用的,當計數(shù)器計到50_000的時候產(chǎn)生時鐘。此模塊在整體仿真時,沒有用到數(shù)碼管顯示,在此不在贅述以及仿真波形,在實物下載時必不可少,其模塊如下圖:、IMPL T ?- sin a ihi k mil 111 h ! m 111 n
17、 « iiiaiiasaiHiHiii Iiiti riuiiiiB 11 ini 皿 i. i IH rd I I +441 id- Btl >+811 b-l; I I I il- fill* H I: d 1° d i-BI M +I B8i ,卜* II? dl< 50M:resetclk_50M dMresetclk1圖3-3數(shù)碼塊分頻模塊3.2計程模塊3.2.1計程模塊電路此模塊的功能是計算出租車行駛的路程。在出租車啟動并行駛的過程中(即復位/啟動信號reset為1,行駛/停止信號start為1),當時鐘clk是上升沿的時候,系統(tǒng)即對路程計數(shù) 器di
18、stanee的里程計數(shù)器進行加計數(shù),當路程超過三公里時,系統(tǒng)將輸出標志正脈沖 distance_enable。其模塊如下:! elkrstartf叫IWPtJTJrini IIJISJPIJT>1-:instd mtan亡它卩.0startdi -tre iscancemohuai IH Ba IH El in M ESHBlia ! MIBBI I U MlailM B I III IGTJTd 5tan,:47 .0£ r gx distsnc9_enable圖3-4計程模塊* » Pninfpf57 m1訊冃勺曰卜£怡rt322計程模塊仿真結果從波形圖
19、可以看出在時鐘的控制下,當reset為高電平且start為高電平的時候distanee 開始計數(shù),當計到大于三的時候輸出了 distance_enable為高電平。準備對第4公里以后的 脈沖進行加計費。3.3計時模塊3.3.1計時模塊電路此模塊用于計算停車等待的時間。圖中 s代表秒計時,m代表分鐘數(shù)計時。在出租車行進中,如果車輛停止等待,計數(shù)器則在1Hz信號elk的上升沿進行加計數(shù),每60次產(chǎn)生進位脈沖使分鐘計數(shù)器位進行加計數(shù),當累計等待時間超過2 (不包括2分鐘)分鐘時,輸出標clks7.U-決e*m7 .0starttime enableEI « M iKI Mi M.iil r
20、 tjrrih<ruk_d圖3-6計時模塊> M7 rjh < II - M M 41 II *1 hlI Ii l" + ! » M 19 II ll-dl II 1*11-1 Kil卜叮十"一| tme enable富” IB 產(chǎn)| IB BJ B BpJBB (,| 列 yMd | M J f志time enable正脈沖信號。其模塊如下圖所示: m ii- ori hi riii血 id t n m ir ai ar sb "fe ri i-i nfei-ii m iipii.lITUT' resetM M l»
21、; II :start 1 m.gii is!ITO亍3.3.2計時模塊的仿真結果1.兩分鐘之內(nèi)(包括兩分鐘)的仿真結果如下所示:從波形圖可以看出在clk的控制下當start為低電平reset為高電平的時候時間計數(shù),time enable為低電平。63.0 ns10.Q rsrLTTTTTTJn_rT-rL_rL-rL_ri_rT_rT_rT_rL_n_rL0001圖3-7計時模塊功能仿真(2分鐘內(nèi))2.兩分鐘之外(不包括兩分鐘)的仿真結果如下所示:圖3-8計時模塊功能仿真(2分鐘外)從波形圖可以看出在elk的控制下當start為低電平reset為高電平的時候時間計數(shù),當時 間大于二分鐘的時候
22、,time_enable為輸出高電平,為超過2分鐘后以每增加一分鐘對計費進 行加計數(shù)。3.4控制模塊3.4.1控制模塊電路控制模塊用于為計費模塊提供時鐘,當start高電平的時候選擇公里計費,輸出的時鐘信號為distance_enable ,當start低電平的時候選擇時間計費,輸出的時鐘信號為time_enable。這樣控制模塊便控制著其計費模式。模塊如下圖所示:Ji* I IB > iH4 kAM.! centre卜 4WWHEWIT lirrio_oneiLly il-gFl-y *0startdista ncAnbiesdect dkiII k 9?time enablei i-
23、i- !>CIhJE® Eselect elk:inst圖3-9控制模塊3.4.2計時模塊的仿真結果1公里計費的仿真結果如下所示:Tim右 Bar:15,45 r41 Pointer:411 鬧ImtcrYol-15.04 rStart:EndrWapeD pc10 9 "=血? nu150 a n=I!£1Q 2如匚卩ns兇0卩n515.4a nsJ= to-t ubiiiikbaiii LKaiiiia ail ajua j*>ii jmj iia iquiJ0li Etan-csenatle tinselftcl_clk"Ln-!>
24、;£11I11Iif1f1圖3-10控制模仿真圖(公里計費)從波形圖可以看出當start為高電平的時候輸出的信號是distance_enable。此時控制模塊選出的是distance_enable,即選出距離使能脈沖計費,則實現(xiàn)了按公里計費2 時間計費的仿真結果如下所示:* Pdirrer1.23 nsInterval;StatEnd:ivasrer Tine0ar15工5 n$1E0-P吁勿叫)z210.0朋ps40- 0 ns15- 45 nsJ圖3-11控制模仿真圖(按時計費)從波形圖可以看出當start為低電平的時候輸出的信號是time_enable。即選擇了按等待 時間脈沖
25、計費。仿真上的公里脈沖和時間脈沖是為了仿真而簡單的設置的波形,并非是前面信號組合檢測而成,在后面整體組合電路中為進行模塊的組合。這里為了便于功能仿真區(qū)別,沒有設置 過多的脈沖,以影響分辨控制模塊所選擇的計費模式。3.5計費模塊3.5.1控制模塊電路費用計數(shù)器模塊用于出租車啟動后,根據(jù)行駛路程和等待時間計算費用。當出租車停車時,時鐘resetffl于將費用計數(shù)器復位為起步價6.0元;當車處于行駛狀態(tài)時,select_clk信號 選擇distans_enable,若滿4公里后路程每滿1公里,費用計數(shù)器加1元;當出租車處于停止等 待狀態(tài)且時鐘滿2分鐘時,select_clk信號選擇time_enab
26、le信號,時間每滿1分鐘,費用計數(shù)器3.5.2計費模塊的仿真結果20. 0 ns40. 0 as80.0 ni1201Jlanv-eo psJelkn nresetE區(qū)電【0822nail11圖3-13計費模塊仿真從波形圖可以看出reset用于將費用計數(shù)器復位為起步價8.0元;由于本仿真select_clk 信號并非是系統(tǒng)選擇出來的公里脈沖和計時脈沖,通過認為設定,不影響其觀察功能效果。3.6數(shù)碼管顯示模塊j f ria 代T* f rev ffrf r j clR1:! dls'ancel7'b:肘燈“5:| mR.,0 IV l>il -MRI Mills- I M!
27、 WVPIW Ml! tee / 0|M 111JWI'LL-cik1di 3LFrice(7 門s7 0 mV 0M? 0cigp.J seg7 0jr LTPUT_fi ra sw-E" e - »ra二> 頃 egM-ra II- »>«!«, II- 4- ri-fei H r I- BiBi M. H 邑 ri-ir H-ns-圖3-14數(shù)碼管顯示模塊數(shù)碼管有兩種顯示方式動態(tài)顯示與靜態(tài)顯示,由于在本文中用到了八個數(shù)碼管所以選擇 了動態(tài)顯示,在時鐘的控制下,當reset為高電平的時候把費用,公里,時間譯碼輸出。這里
28、沒有數(shù)碼管顯示仿真效果不明顯,即不給予仿真。以上單元模塊設計完畢,通過每個單元模塊代碼的設計以及仿真驗證每個模塊的真確性,為確保后面整體模塊電路的正確性奠定了基礎4. 整體頂層模塊設計4.1整體頂層模塊電路Verilog HDL各模塊設計仿真實現(xiàn)后,可分別創(chuàng)建成元件符號。頂層就是將各分模塊用語言或者是圖形方法連接起來,便可實現(xiàn)系統(tǒng)電路。其Verilog HDL源代碼詳見其附錄。其生成的頂層原理圖如下所示:圖4-1整體頂層電路原理圖5. 系統(tǒng)功能仿真及調(diào)試本設計采用Quartus II軟件進行仿真設計,Quartus II是Altera公司的綜合性PLD/FPGA 開發(fā)軟件,支持原理圖、VHDL
29、VerilogHDL 以及 AHDLAItera Hardware Description Language) 等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完 整PLD設計流程5.1系統(tǒng)仿真及調(diào)試各個單元模塊完成后,即可將分模塊和頂層模塊進行仿真測試,同時可根據(jù)設計要求加 入測試輸入條件。仿真后得到的相應輸出結果與預先的結果想比較,若不相符,則應修改設 計,直到相符為止。為了仿真得到明顯的效果,最好能能下載到帶數(shù)碼管的試驗想上進行直 接的數(shù)字觀察。由于條件有限,為了能使仿真效果明顯,采用了不帶譯碼顯示的波形仿真, 其電路原理圖如下:圖5-1系統(tǒng)仿真調(diào)試電路表5
30、-1測試端口說明輸入輸出端口說明端口類型功能定義Clk_50MIn put全局時鐘。在時鐘上升沿, 計算費用。resetIn put整體復位,在reset=0時,等 待計時為0startIn put選擇計費模式Start-1,計程計費Start=0,計時計費m7:0Output等待時間的輸入(分)s7:0Output等待計時的輸入(秒)dista nce7:0Output所行路程的輸入fee7:0Output總費用輸出功能仿真結果驗證如下如下所示:a.為行駛中未停時的系統(tǒng)電路仿真結果:m40. 0 nsH30. D ns1120 0 az1160.0 ns200. 0 ns13 psJ1>
31、;0iinunuiiniiniunimiiiniinMnuniiiiiiiniiiiiiwniiniHniMliLrZStart ii1i naIinilH!l119J11B廚3田5l一illII"To11總12± Ei1'00O cli stanc et oo xoi /ST冋碼宿何何x碼麗7兩口匝何伉*r r圖5-2系統(tǒng)仿真調(diào)試電路(a)b.為行駛中停止時(在兩分鐘之內(nèi))的系統(tǒng)電路仿真結果:50.0 皿793. 0 m&3D.0 ns1 |070. 0 he191D.0 皿1950. 0 rt£990. 01 1NuJiH"CldkJ
32、EOflirnmmininimmminimmmniininmimmmMninimriiminimnirninniinini11/1resat1rH111Iiiil1Ii1Illi12start司3亦頁燉x靈烷尿便xo阿煩I1世冋晁何両磁.迎ii 12± m00DC01誦Ml+| distance250 303 fee1 1 | | 29圖5-3系統(tǒng)仿真調(diào)試電路(b)C.為行駛中停止時(在兩分鐘之外)的系統(tǒng)電路仿真結果:4A0. 3 1.ENuncA1IV231Z21°30ar tnHMnHiHHiinHnin 唧唧 1刪NiannnnmHiMf刪唧唧 nn 唧刪!瑕常 X
33、舶 X 即 DC SI X 肚 X S3 K s4 X 55 X 56 XX 50 X 59 X oc X 01 / 02430. 0 皿龍廠0354 更圖5-4系統(tǒng)仿真調(diào)試電路(c)從(a)可以看出當reset為1時,費用計數(shù)器為8元,系統(tǒng)啟動,start=1表示出租車行駛, distance_enable每產(chǎn)生一個脈沖,路程計數(shù)器加1;路程4公里內(nèi),費用保持8不變,超過4 公里,費用計數(shù)器進行加計數(shù),每增加1公里費用加1元,此時等待時間計數(shù)器不變。而根據(jù)(b),(c)的仿真波形可知,當reset為1時,系統(tǒng)啟動,start=0表示出租車處于停 止等待狀態(tài),此時等待時間計數(shù)器計數(shù),在2分鐘等
34、待時間內(nèi),費用計數(shù)器不變;等待時間超 過2分鐘后,每增加1分鐘,費用計數(shù)器增加1元,此時路程計數(shù)器保持不變。從以上仿真可看出該出租車計價器整體功能實現(xiàn)都能完成,出租車計費器系統(tǒng)的設計已 經(jīng)全部完成,能按預期的效果進行模擬汽車起步價格,暫停,停止等功能各種計費,并能夠 通過LCD顯示車費數(shù)目。本款出租車計價器包括總價輸出、顯示路程,顯示其等待時間等功能。 另外,如果再任意輸入該出租車計價器的計費標準,那么,它的適用范圍可能就更廣泛了。(個人認為可調(diào)的話,會引起駕駛員改價作弊的問題,本設計沒有外圍可調(diào)電路,只能根據(jù) 程序修改,因而防作弊。)6. 總結與體會通過學習了數(shù)字數(shù)字系統(tǒng)設計和 Verilo
35、g HDL語言,對EDA技術有了一些了解,但那厚 厚的一本書講的都是理論的東西。通過這本次課程設計,我才把學到的東西與實踐相結合。 從中對所學的知識有了更進一步的理解。剛開始拿到這題目的時候感覺還是有難度,但著手 設計時,慢慢查詢資料后感覺不是很難,但在設計時又現(xiàn)了許多細節(jié)上的問題。對 Quartus II 9.0操作流程還不到位,通過自己網(wǎng)上看 Quartus軟件基操作視頻,首先把 Quartus的功能和 各操作用途功能詳細的了解了一遍,這使我大添信心能把設計做出來,相信只有細心、耐性 才能把設計搞好,在這次的出租車計價器設計中,對 Verilog 模塊的基本結構和基本語法更 為熟悉。在設計
36、程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設 計的必經(jīng)之路,要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現(xiàn)功能,而應該 讓人一看就能明白你的思路,這樣也為交流提供了方便,為以后編程打下基礎。為期兩周的EDA課程設計已經(jīng)結束,從挑選課設題目,查閱資料,到研究出總體設計, 詳細設計,再到最后的編程上機調(diào)試,修改程序,完善程序,收獲頗多。鍛煉了自己獨立發(fā) 現(xiàn)問題、分析問題和通過查看相關資料來解決問題的能力。使自己擴大了知識面,提高了知 識水平,借助仿真軟件,不僅可以把課堂中所學到的知識,直接加以運用,而且還可以把各 個分離的知識組合為一個整體,真正做到理論聯(lián)系實際的重要
37、性。使自己在專業(yè)知識和動手 能力上有了很大的提高。另外通過本次設計,使我認識到自己對 Verilog HDL 應用編程能力 有很大的欠缺,需要在以后的學習中進一步提高。學校給我們安排課程設計,大大地加深了我們對理論知識的理解,同時有意識的培養(yǎng)了 我們的創(chuàng)新思想。我想這類似的課程設計是為我們提供了良好的實踐平臺致謝由于本次設計是第一次做關于 EDA課程設計,不像單片機那樣順手,感謝老師的指導, 感謝老師對本次論文的認真檢查審閱。由于時間有限和經(jīng)驗還尚欠缺,不足之處還望老師予 以批評指正。另外,我還要感謝學校能安排這次課程設計,為我們學習相關專業(yè)提供了良好的實踐平 臺。參考文獻1 王金明. 數(shù)字系
38、統(tǒng)設計與 Verilog HDL M. 北京. 電子工業(yè)出版社, 20112 夏宇聞 .Verilog 數(shù)字系統(tǒng)設計教程 M 北京:北京航天航空大學出版社, 20083 華成英. 電子技術 M. 北京. 中央廣播電視大學出版社, 20064 孫鵬,陳景 .數(shù)字電子技術基礎與設計 . 大連:大連理工大學出版社, 2004.4. 王長宏.VHDL設計實例及其仿真與綜合北京:北京航天航空大學出版社,2001附錄 A: 單元模塊 Verilog HDL 源代碼A.1 計數(shù)器的分頻模塊 VerilogHDL 源代碼 module div(clk_50M,clk,reset);/ 端口的定義 input
39、clk_50M,reset;/ 總的時鐘是 50M output clk;/ 分頻后輸出的時鐘 reg clk;reg 31:0 count;/32 位的計數(shù)器 always (posedge clk_50M or negedge reset)/ 異步復位 beginif(!reset)beginclk<='d0; count=32'd0;endelse if(count=3'd100)/ 判斷計時器記到了 100 嗎? begincount<=32'd0;/ 計到 100 計數(shù)器清零 clk<=clk;/ 輸出的時鐘取反end/end beg
40、inelse count<=count+1'd1;/ 沒計到 100 計數(shù)器加一 end/end always endmodule / 結束分頻模塊A.2 數(shù)碼管的分頻模塊 VerilogHDL 源代碼 module div1(clk_50M,clk1,reset);/ 端口的定義 input clk_50M,reset;/ 總的時鐘是 50M output clk1;/ 分頻后輸出的時鐘 1KHZ reg clk1;reg 31:0 count;/32 位的計數(shù)器 always (posedge clk_50M or negedge reset)/ 異步復位 beginif(!
41、reset) begin clk1<='d0; count=32'd0;endelse if(count=2'd50)/ 判斷計時器記到了 50 嗎 begincount<=32'd0;/ 計到 50 計數(shù)器清零 clk1<=clk1;/ 輸出的時鐘取反end/end beginelse count<=count+1'd1;/ 沒計到 50 計數(shù)器加一end/end alwaysendmodule / 結束分頻模塊A.3 計程模塊 VerilogHDL 源代碼module distancemokuai(clk,start,rese
42、t,distance,distance_enable);/端口的定義input clk,start,reset;output 7:0 distance;/ 輸出的公里reg 7:0 distance;output distance_enable;/ 控制計費的公里信號reg distance_enable;always(posedge clk or negedge reset)/ 異步復位beginif(!reset)/ 低電平復位begindistance<=8'd0;endelse if(start)/ start 高電平有效beginif(distance3:0=9)/ 判
43、斷 distance 的低四位計到了 9 沒有 begindistance3:0<=4'd0;/ 計到 9 清零if(distance7:4=9) / 判斷 distance 的高四位計到了 9 沒有 distance7:4<=4'd0;/ 計到 9 清零else distance7:4<= distance7:4+1'd1;/ distance 的高四位沒有計到 9 的時候加一endelse distance3:0<=distance3:0+1'd1;/ distance 的低四位沒有計到 9 的時候加一end/end startend
44、/end always/* 產(chǎn)生 distance_enable 信號 */ always(posedge clk or negedge reset) begin if(!reset) begindista nce_e nable<=1'dO; 復位endelseif(distance>8'd2)/ 大于公里三的時候 begindistance_enable<=1'd1;輸出 distance_enable信號 endend/end always endmodule/ 結束計程模塊A.4 計時模塊 VerilogHDL 源代碼module timemo
45、kuai(clk,reset,start,s,m,time_enable);/ 端口的定義 input clk,reset,start;output 7:0 s;/ 輸出的秒output 7:0 m;/ 輸出的分output time_enable;/ 輸出的控制計費的信號 reg 7:0 s;reg 7:0 m;wire time_enable;always(posedge clk or negedge reset)/ 異步復位 beginif(!reset)/ 低電平有效begin / 復位 s<=8'd0;m<=8'd0;endelse if(!start)/
46、start 信號低電平有效 beginif(s3:0=9)/ 秒的低四位是 9begin s3:0<=4'd0;/ 清零 if(s7:4=5) / 秒的高四位是 5 begins7:4<=4'd0; / 清零if(m3:0=9) / 分的低四位是 9 beginm3:0<=4'd0; / 清零 if(m7:4=9) / 分的高四位是 9 m7:4<=4'd0; / 清零 else m7:4<=m7:4+1'd1; / 分的高四位不是 9 加一 endelse m3:0<=m3:0+1'd1; / 分的低四位不是
47、 9 加一endelse s7:4<=s7:4+1'd1; / 秒的高四位不是 5 加一endelse s3:0<=s3:0+1'd1; / 秒的低四位不是 9 加一 end/end alwaysendassign time_enable=(m7:0>8'd2)&&(s7:0=8'd0)?1'd1:1'd0; / 產(chǎn)生 time_enable 信號。endmodule/ 結束計時模塊A.5 控制模塊 VerilogHDL 源代碼module control(start,distance_enable,time_e
48、nable,select_clk);input start,distance_enable,time_enable;output select_clk;/ 輸出選擇的時鐘信號wire select_clk;II*當start高電平的時候選擇公里計費,輸出的時鐘信號為 distance_enable,當start低電平的時候選擇時間計費,輸出的時鐘信號為 time_enable*/assign select_clk=start?distance_enable:time_enable;en dmodule/I結束控制模塊A.6 計費模塊 VerilogHDL 源代碼module feemokuai
49、(select_clk,reset,fee,clk);input select_clk,reset,clk;output7:0 fee; II 輸出的費用reg 7:0 fee;always(posedge clk or n egedge reset)/ 異步復位beginif(!reset) II 低電平有效beginfee<=8'd8; /起步為八元endelse if(select_clk=1'd1)beginif(fee3:0=4'd9) II 費用的低四位是不是計到了 9beginfee3:0<=4'd0;II 計到 9 清零if(fee7
50、:4=4'd9)II 費用的高四位是不是計到了 9fee7:4<=4'd0; II 計到 9 清零else fee7:4<=fee7:4+1'd1;II 費用的高四位沒有計到 9加 1endelse fee3:0<=fee3:0+1'd1;II 費用的低四位沒有計到 9加 1endIIend beginendIIend alwaysen dmodule /結束計費模塊A.7 數(shù)碼管顯示模塊 VerilogHDL 源代碼module scan_led(clk1,dig,seg,distance,s,m,fee);input clk1;input7
51、:0 distance,fee;II 輸入的公里,費用。in put7:0 s; 輸入的秒input7:0 m; II 輸入的分。 output7:0 dig; II 譯碼結果output7:0 seg; / 數(shù)碼管的選擇。 reg 7:0 r_dig;/ 譯碼結果輸出寄存器 reg 7:0 r_seg; / 數(shù)碼管的選擇寄存器。reg 3:0 disp_dat;reg3:0 a;assign dig=r_dig;assign seg=r_seg;always(posedge clk1)begina<=a+1'd1; / 數(shù)碼管的選擇endalways(posedge clk1)
52、 begincase(a)4'd0: disp_dat=distance7:4;/ 公里的高四位用第一個數(shù)碼管顯示。4'd1: disp_dat=distance3:0;/ 公里的低四位用第二個數(shù)碼管顯示。4'd2: disp_dat=m7:4;4'd3: disp_dat=m3:0;4'd4: disp_dat=s7:4;4'd5: disp_dat=s3:0;4'd6: disp_dat=fee7:4;4'd7: disp_dat=fee3:0;/時間分的高四位用第三個數(shù)碼管顯示。/時間分的低四位用第四個數(shù)碼管顯示 /時間秒的高四位用第五個數(shù)碼管顯示。 /時間秒的低四位用第六個數(shù)碼管顯示。 /費用的高四位用第七個數(shù)碼管顯示。 /費用的低四位用第八個數(shù)碼管顯示。選擇第一個數(shù)碼管 選擇第二個數(shù)碼管 選擇第三個數(shù)碼管 選擇第四個數(shù)碼管 選擇第五個數(shù)碼管 選擇第六個數(shù)碼管 選擇第七個數(shù)碼管 選擇第八個數(shù)碼管default: disp_dat=4'b1010;endcasecase(a)4'd0:r_dig=8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國太陽能器具制造行業(yè)銷售產(chǎn)值及競爭狀況分析報告
- 2024版2024年【大班體育教案】大班體育教案足球十二玩
- 2024-2030年中國多刀定軸石材切割機產(chǎn)業(yè)未來發(fā)展趨勢及投資策略分析報告
- 2024-2030年中國聲磁軟標簽行業(yè)運營模式及發(fā)展策略分析報告
- 2024-2030年中國垃圾發(fā)電行業(yè)發(fā)展困境與十三五投資建議報告
- 2024-2030年中國含漱劑單氟磷酸鈉融資商業(yè)計劃書
- 2024-2030年中國可生物降解冷凍袋行業(yè)發(fā)展動態(tài)與前景展望報告
- 2024-2030年中國醫(yī)用氧行業(yè)運營效益分析及投資策略研究報告版
- 2024-2030年中國化妝品終端渠道行業(yè)前景預測及投資營銷策略分析報告
- 部編語文五上《父愛之舟》說課:聚焦場景抓細節(jié)-探究真心品真情
- 《數(shù)字身份辯設備》課件+2024-2025學年人教版(2024)初中信息科技七年級全一冊
- 勞動一年級上冊(人民版)第十課《我?guī)桶謰寭駬癫恕罚ń虒W設計)
- 2024小學數(shù)學義務教育新課程標準(2022版)必考題庫附含答案
- 申請失業(yè)保險金承諾書
- 2024年黑龍江龍江森工集團招聘筆試參考題庫含答案解析
- 2024年通用技術集團招聘筆試參考題庫含答案解析
- 中英文旅游合同范本
- 高血壓病例分析-課件
- 課程思政示范課程—課程思政矩陣圖(示例)
- 存貨管理辦法
評論
0/150
提交評論