




已閱讀5頁(yè),還剩23頁(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)介
西華大學(xué)課程設(shè)計(jì)說(shuō)明書題 目: 出租車計(jì)價(jià)器 專 業(yè): 信 息 工 程年 級(jí): 2009級(jí)學(xué) 生: 潘 帥 學(xué) 號(hào): 33200908020*指導(dǎo)教師: 林競(jìng)力 完成日期: 2012 年 6 月 6 日西華大學(xué)課程設(shè)計(jì)說(shuō)明書摘要:本文介紹了一種采用可編程邏輯器件(FPGA/CPLD)進(jìn)行出租車計(jì)費(fèi)器的設(shè)計(jì)思想以及實(shí)現(xiàn)方法。本設(shè)計(jì)實(shí)現(xiàn)了出租車計(jì)費(fèi)器所需的一些基本功能,計(jì)費(fèi)金額包括起步價(jià)、里程計(jì)費(fèi)、等待計(jì)時(shí)計(jì)費(fèi)等。該設(shè)計(jì)采用模塊化設(shè)計(jì),在Quartus II9.0軟件平臺(tái)下,采用Verilog HDL 硬件描述語(yǔ)言描述和模擬仿真了分頻模塊、計(jì)程模塊、計(jì)費(fèi)模塊、計(jì)時(shí)模塊,譯碼以及動(dòng)態(tài)掃描顯示模塊,完成了出租車計(jì)費(fèi)器仿真設(shè)計(jì)和硬件電路的實(shí)現(xiàn)。關(guān)鍵詞:FPGA,出租車計(jì)費(fèi)器,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 time 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. ITIt has completed the taxi meter simulation and the hardware circuit.Keywords: FPGA, Taximeter, Quartus, Verilog HDLIII目錄1.前言12.總體方案設(shè)計(jì)22.1 設(shè)計(jì)要求22.2 方案論證與選擇22.3 設(shè)計(jì)思想及原理33.單元模塊設(shè)計(jì)53.1 分頻模塊53.1.1 計(jì)數(shù)器分頻模塊53.1.2 計(jì)數(shù)器分頻模塊仿真結(jié)果53.1.3 數(shù)碼管分頻模塊63.2 計(jì)程模塊63.2.1 計(jì)程模塊電路63.2.2 計(jì)程模塊仿真結(jié)果73.3 計(jì)時(shí)模塊73.3.1 計(jì)時(shí)模塊電路73.3.2 計(jì)時(shí)模塊的仿真結(jié)果73.4 控制模塊83.4.1 控制模塊電路83.4.2 計(jì)時(shí)模塊的仿真結(jié)果93.5 計(jì)費(fèi)模塊103.5.1 控制模塊電路103.5.2 計(jì)費(fèi)模塊的仿真結(jié)果102.6 數(shù)碼管顯示模塊114.整體頂層模塊設(shè)計(jì)124.1 整體頂層模塊電路125.系統(tǒng)功能仿真及調(diào)試135.1 系統(tǒng)仿真及調(diào)試136.總結(jié)與體會(huì)16致謝17參考文獻(xiàn)17附錄A:單元模塊Verilog HDL源代碼18A.1 計(jì)數(shù)器的分頻模塊VerilogHDL源代碼18A.2數(shù)碼管的分頻模塊VerilogHDL源代碼18A.3 計(jì)程模塊VerilogHDL源代碼19A.4 計(jì)時(shí)模塊VerilogHDL源代碼20A.5 控制模塊VerilogHDL源代碼21A.6 計(jì)費(fèi)模塊VerilogHDL源代碼21A.7 數(shù)碼管顯示模塊VerilogHDL源代碼21A.8整體頂層模塊VerilogHDL源代碼23附錄B:整體頂層電路圖241.前言隨著出租車行業(yè)的發(fā)展,對(duì)出租車計(jì)費(fèi)器的要求也越來(lái)越高。最近幾年出租車行業(yè)發(fā)展迅速,在全國(guó)有幾千萬(wàn)家出租車公司。因此出租車計(jì)費(fèi)器市場(chǎng)是龐大的。而出租車計(jì)費(fèi)器成為不可缺少的一部分。出租車計(jì)價(jià)器是出租車營(yíng)運(yùn)收費(fèi)的專用智能化儀表,隨著電子技術(shù)的發(fā)展,出租車計(jì)價(jià)器技術(shù)也在不斷進(jìn)步和提高。國(guó)內(nèi)出租車計(jì)價(jià)器已經(jīng)經(jīng)歷了4 個(gè)階段的發(fā)展。從傳統(tǒng)的全部由機(jī)械元器件組成的機(jī)械式,到半電子式即用電子線路代替部分機(jī)械元器件的出租車計(jì)價(jià)器;再?gòu)募呻娐肥降侥壳暗膯纹瑱C(jī)系統(tǒng)設(shè)計(jì)的出租車計(jì)價(jià)器,以及FPGA計(jì)價(jià)器.出租車計(jì)價(jià)器計(jì)費(fèi)是否準(zhǔn)確,運(yùn)數(shù)據(jù)的管理是否方便都是人們最關(guān)注的。該計(jì)價(jià)器能實(shí)現(xiàn)按時(shí)間和里程綜合計(jì)算車價(jià),能顯示時(shí)間、里程、單價(jià)、總車價(jià)等相關(guān)信息顯示。信息社會(huì)的現(xiàn)代電子產(chǎn)品,性能越來(lái)越高,復(fù)雜度越來(lái)越大,更新步伐也越來(lái)越快。實(shí)現(xiàn)這種進(jìn)步的主要原因就是微電子技術(shù)和電子技術(shù)的發(fā)展。而電子技術(shù)的發(fā)展后者的核心就是電子設(shè)計(jì)自動(dòng)化技術(shù)。EDA是指以計(jì)算機(jī)為工作平臺(tái),融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、智能化技術(shù)的最新成果而開發(fā)出的電子CAD通用軟件包,它根據(jù)硬件描述語(yǔ)言HDL完成的設(shè)計(jì)文件,自動(dòng)完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局布線及仿真,直至完成對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。沒有EDA技術(shù)的支持,想要完成超大規(guī)模集成電路的設(shè)計(jì)制造是不可想象的;反過(guò)來(lái),生產(chǎn)制造技術(shù)的不斷進(jìn)步又必將對(duì)EDA技術(shù)提出新的要求。本設(shè)計(jì)采用Verilog HDL語(yǔ)言來(lái)設(shè)計(jì)實(shí)現(xiàn)出租車計(jì)費(fèi)系統(tǒng),具有良好的電路行為描述和系統(tǒng)描述的能力,并在語(yǔ)言易讀性和層次化、結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。源程序經(jīng)ALTERA的Quartus II 9.0軟件調(diào)試優(yōu)化,通過(guò)下載到特定芯片后,可應(yīng)用于實(shí)際的出租車計(jì)費(fèi)系統(tǒng)中。本次課程設(shè)計(jì)鞏固和運(yùn)用了所學(xué)課程,通過(guò)理論聯(lián)系實(shí)際,提高了分析、解決技術(shù)實(shí)際問(wèn)題的獨(dú)立工作能力,通過(guò)對(duì)一個(gè)出租車計(jì)費(fèi)器的設(shè)計(jì),進(jìn)一步熟悉了數(shù)字電路系統(tǒng)設(shè)計(jì)、制作與調(diào)試的方法和步驟。第24頁(yè)2.總體方案設(shè)計(jì)2.1 設(shè)計(jì)要求該出租車計(jì)價(jià)器實(shí)現(xiàn)功能:1、行程4公里,且等待累計(jì)時(shí)間2分鐘,起步費(fèi)為8.0元。2、行程4公里外,以每公里1.0元,等待累計(jì)時(shí)間2分鐘外,以每分鐘以1.0元計(jì)費(fèi)。3、能顯示行駛公里數(shù)、等待累計(jì)時(shí)間和最后的總費(fèi)用。4、能通過(guò)修改程序來(lái)對(duì)計(jì)費(fèi)要求實(shí)現(xiàn)改變。用Verilog HDL語(yǔ)言設(shè)計(jì)符合上述功能要求的出租車計(jì)費(fèi)器,并用層次化設(shè)計(jì)方法設(shè)計(jì)該電路,各計(jì)數(shù)器的計(jì)數(shù)狀態(tài)用功能仿真的方法驗(yàn)證,并通過(guò)有關(guān)波形確認(rèn)電路設(shè)計(jì)是否正確。2.2 方案論證與選擇方案一:采用數(shù)字電路控制,其原理圖如圖1-1所示。采用傳感器件,輸出脈沖信號(hào),經(jīng)過(guò)放大整形最為移位寄存器的脈沖,實(shí)現(xiàn)計(jì)價(jià),但是考慮到這中電路性能不夠穩(wěn)定,故障率高,如要做到很精確多功能則其規(guī)模較大,難調(diào)試。而且電路不實(shí)用。電源電路及保護(hù)電路里程傳感器單價(jià)顯示金額顯示移位寄存器電路圖2-1 數(shù)字電路方案方案二:采用單片機(jī)控制,通過(guò)單片機(jī)作為主控器,利用1602字符液晶作為顯示電路,采用外部晶振作為時(shí)鐘脈沖,通過(guò)按鍵可以方便調(diào)節(jié),以下是方案三的系統(tǒng)流程圖,本方案主要通過(guò)軟硬結(jié)合可以很容易實(shí)現(xiàn)要求,其靈活性也還不錯(cuò),成本也不高。方案原理圖如下圖所示:圖2-2 單片機(jī)控制方案方案三:采用EDA技術(shù),根據(jù)層次化設(shè)計(jì)理論,該設(shè)計(jì)問(wèn)題自頂向下可分為分頻模塊,控制模塊 計(jì)量模塊、譯碼和動(dòng)態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖1-3所示:時(shí)鐘信號(hào)計(jì)時(shí)脈沖計(jì)程脈沖復(fù)位信號(hào)控制器分頻器計(jì)費(fèi)計(jì)程計(jì)時(shí)譯碼及顯示圖2-3 PFGA控制方案方案總結(jié):通過(guò)各個(gè)方案的比較,首先數(shù)字電路控制不實(shí)用,不重點(diǎn)考慮,單片機(jī)方案雖有較大的活動(dòng)空間,能實(shí)現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能,雖然還可以方便的對(duì)系統(tǒng)進(jìn)行升級(jí),但考慮到單片機(jī)方案軟件設(shè)計(jì)調(diào)試較為繁瑣,最大限制還是在與本課程設(shè)計(jì)是利用EDA技術(shù)實(shí)現(xiàn),另一方面采用可編程邏輯器件設(shè)計(jì),外圍電路簡(jiǎn)單,模塊話設(shè)計(jì)方便原理清晰,靈活性強(qiáng),并且完成和擴(kuò)展附加功能性強(qiáng)。綜上,本設(shè)計(jì)采用方案三。2.3 設(shè)計(jì)思想及原理出租車的一般計(jì)費(fèi)過(guò)程為:出租車載客后,啟動(dòng)計(jì)費(fèi)器,整個(gè)系統(tǒng)開始運(yùn)行,里程計(jì)數(shù)器和時(shí)間計(jì)數(shù)器從0開始計(jì)數(shù),費(fèi)用計(jì)數(shù)器從8開始計(jì)算。再根據(jù)行駛里程或停止等待的時(shí)間按以上的標(biāo)準(zhǔn)計(jì)費(fèi)。若在行駛狀態(tài),則計(jì)程器開始加計(jì)數(shù),當(dāng)路程超過(guò)四公里后,計(jì)費(fèi)器以每公里1元累加。若出租車停止等待狀態(tài),則計(jì)時(shí)器開始加計(jì)數(shù),當(dāng)時(shí)間超過(guò)兩分鐘后,計(jì)費(fèi)器以每分鐘1元累加。出租車到達(dá)目的地停止后,停止計(jì)費(fèi)器,顯示總費(fèi)用。根據(jù)課程設(shè)計(jì)要求計(jì)價(jià)器可根據(jù)車輪轉(zhuǎn)數(shù)計(jì)算路程,車輪每轉(zhuǎn)一圈送一個(gè)脈沖波,假設(shè)每轉(zhuǎn)一圈為2米,車輪每轉(zhuǎn)一圈送一個(gè)脈沖波( 可用傳感器檢測(cè)送出脈沖),本設(shè)計(jì)為了好模擬仿真假設(shè)的是車輪轉(zhuǎn)動(dòng)100圈才產(chǎn)生一個(gè)脈沖,即是一個(gè)脈沖是代表200米,則經(jīng)過(guò)5分頻器后是每1Km送一個(gè)脈沖到里程計(jì)算模塊,這樣方便在軟件里面仿真觀察,若要下載到實(shí)物應(yīng)用中去,通過(guò)實(shí)際車輪周長(zhǎng)自己設(shè)置不同的分頻電路來(lái)達(dá)到產(chǎn)生任意精度的計(jì)程距離模塊。其主要原理框圖如圖1-3所示。而當(dāng)車停止的時(shí)候通過(guò)分頻模塊產(chǎn)生秒脈沖,通過(guò)計(jì)時(shí)要求來(lái)產(chǎn)生計(jì)費(fèi),本設(shè)計(jì)重點(diǎn)就在計(jì)費(fèi)控制模式模塊和計(jì)費(fèi)模塊這兩大模塊的設(shè)計(jì),則根據(jù)出租車計(jì)費(fèi)器的工作過(guò)程,其主要原理框圖如圖1-3所示。本系統(tǒng)采用分層次、分模塊的方式設(shè)計(jì),其本系統(tǒng)組成框圖如下所示。其中行駛路程計(jì)數(shù)模塊、等待時(shí)間計(jì)數(shù)模塊和計(jì)費(fèi)模塊,用來(lái)統(tǒng)計(jì)路程、等待時(shí)間和總費(fèi)用,控制模塊是用來(lái)控制計(jì)費(fèi)模塊,數(shù)碼管顯示模塊用來(lái)顯示行駛的公里數(shù)、等待累計(jì)時(shí)間和總費(fèi)用等信息。3.單元模塊設(shè)計(jì)本系統(tǒng)采用層次化、模塊化的設(shè)計(jì)方法,設(shè)計(jì)順序?yàn)樽韵孪蛏?。首先?shí)現(xiàn)系統(tǒng)框圖中的各子模塊,然后由頂層模塊調(diào)用各子模塊來(lái)完成整個(gè)系統(tǒng)。為了便于在數(shù)碼管里顯示,這里的路程、時(shí)間和費(fèi)用計(jì)數(shù)器均用十六進(jìn)制表示。3.1 分頻模塊將時(shí)鐘信號(hào)進(jìn)行分頻,分出的頻率供后面的計(jì)程模塊和計(jì)時(shí)模塊用,以及后面的數(shù)碼顯示掃描模塊都會(huì)用到。3.1.1 計(jì)數(shù)器分頻模塊此模塊的功能是對(duì)總的時(shí)鐘進(jìn)行分頻,分出的頻率是讓計(jì)數(shù)器用的,因?yàn)榭偟臅r(shí)鐘是50M的。設(shè)計(jì)該模塊的時(shí)候用了一個(gè)32位的計(jì)數(shù)器,當(dāng)計(jì)數(shù)器計(jì)到25_000000的時(shí)候產(chǎn)生時(shí)鐘。在仿真的時(shí)候?yàn)榱丝焖俚姆奖阌^察,設(shè)計(jì)了一個(gè)5分頻的電路。在此時(shí)假設(shè)車輪每轉(zhuǎn)一圈為2米,則轉(zhuǎn)動(dòng)100圈送一個(gè)脈沖,即是200米,則在經(jīng)5分頻后,每1Km送一個(gè)脈沖到里程計(jì)算模塊。同理,若知道車輪直徑,即可算出分頻比來(lái)設(shè)置合理的分頻電路,當(dāng)下載到實(shí)物時(shí)還是用的是2HZ的時(shí)鐘圖3-1 計(jì)數(shù)器的分頻模塊3.1.2 計(jì)數(shù)器分頻模塊仿真結(jié)果圖3-2 計(jì)數(shù)器的分頻模塊功能仿真從波形可以看出當(dāng)reset為低電平的時(shí)候clk為零,當(dāng)reset為高電平的時(shí)候clk的高電平占了clk_50M的5個(gè)周期,低電平也占了clk_50M的5個(gè)周期。3.1.3 數(shù)碼管分頻模塊此模塊的功能是對(duì)總的時(shí)鐘進(jìn)行分頻,分出的頻率是讓數(shù)碼管用的,當(dāng)計(jì)數(shù)器計(jì)到50_000的時(shí)候產(chǎn)生時(shí)鐘。此模塊在整體仿真時(shí),沒有用到數(shù)碼管顯示,在此不在贅述以及仿真波形,在實(shí)物下載時(shí)必不可少,其模塊如下圖:圖3-3 數(shù)碼塊分頻模塊3.2 計(jì)程模塊3.2.1 計(jì)程模塊電路此模塊的功能是計(jì)算出租車行駛的路程。在出租車啟動(dòng)并行駛的過(guò)程中(即復(fù)位/啟動(dòng)信號(hào)reset為1,行駛/停止信號(hào)start為1),當(dāng)時(shí)鐘clk是上升沿的時(shí)候,系統(tǒng)即對(duì)路程計(jì)數(shù)器distance的里程計(jì)數(shù)器進(jìn)行加計(jì)數(shù),當(dāng)路程超過(guò)三公里時(shí),系統(tǒng)將輸出標(biāo)志正脈沖distance_enable。其模塊如下:圖3-4 計(jì)程模塊3.2.2 計(jì)程模塊仿真結(jié)果圖3-5 計(jì)程模塊功能仿真從波形圖可以看出在時(shí)鐘的控制下,當(dāng)reset為高電平且start為高電平的時(shí)候distance開始計(jì)數(shù),當(dāng)計(jì)到大于三的時(shí)候輸出了distance_enable為高電平。準(zhǔn)備對(duì)第4公里以后的脈沖進(jìn)行加計(jì)費(fèi)。3.3 計(jì)時(shí)模塊3.3.1 計(jì)時(shí)模塊電路此模塊用于計(jì)算停車等待的時(shí)間。圖中s代表秒計(jì)時(shí),m代表分鐘數(shù)計(jì)時(shí)。在出租車行進(jìn)中,如果車輛停止等待,計(jì)數(shù)器則在1Hz信號(hào)clk的上升沿進(jìn)行加計(jì)數(shù),每60次產(chǎn)生進(jìn)位脈沖使分鐘計(jì)數(shù)器位進(jìn)行加計(jì)數(shù),當(dāng)累計(jì)等待時(shí)間超過(guò)2(不包括2分鐘)分鐘時(shí),輸出標(biāo)志time_enable正脈沖信號(hào)。其模塊如下圖所示:圖3-6 計(jì)時(shí)模塊3.3.2 計(jì)時(shí)模塊的仿真結(jié)果1.兩分鐘之內(nèi)(包括兩分鐘)的仿真結(jié)果如下所示:從波形圖可以看出在clk的控制下當(dāng)start為低電平reset為高電平的時(shí)候時(shí)間計(jì)數(shù),time_enable為低電平。圖3-7 計(jì)時(shí)模塊功能仿真(2分鐘內(nèi))2.兩分鐘之外(不包括兩分鐘)的仿真結(jié)果如下所示:圖3-8 計(jì)時(shí)模塊功能仿真(2分鐘外)從波形圖可以看出在clk的控制下當(dāng)start為低電平reset為高電平的時(shí)候時(shí)間計(jì)數(shù),當(dāng)時(shí)間大于二分鐘的時(shí)候,time_enable為輸出高電平,為超過(guò)2分鐘后以每增加一分鐘對(duì)計(jì)費(fèi)進(jìn)行加計(jì)數(shù)。3.4 控制模塊3.4.1 控制模塊電路控制模塊用于為計(jì)費(fèi)模塊提供時(shí)鐘,當(dāng)start高電平的時(shí)候選擇公里計(jì)費(fèi),輸出的時(shí)鐘信號(hào)為distance_enable,當(dāng)start低電平的時(shí)候選擇時(shí)間計(jì)費(fèi),輸出的時(shí)鐘信號(hào)為time_enable。這樣控制模塊便控制著其計(jì)費(fèi)模式。模塊如下圖所示:圖3-9控制模塊3.4.2 計(jì)時(shí)模塊的仿真結(jié)果1公里計(jì)費(fèi)的仿真結(jié)果如下所示:圖3-10 控制模仿真圖(公里計(jì)費(fèi))從波形圖可以看出當(dāng)start為高電平的時(shí)候輸出的信號(hào)是distance_enable。此時(shí)控制模塊選出的是distance_enable,即選出距離使能脈沖計(jì)費(fèi),則實(shí)現(xiàn)了按公里計(jì)費(fèi)。2時(shí)間計(jì)費(fèi)的仿真結(jié)果如下所示:圖3-11 控制模仿真圖(按時(shí)計(jì)費(fèi))從波形圖可以看出當(dāng)start為低電平的時(shí)候輸出的信號(hào)是time_enable。即選擇了按等待時(shí)間脈沖計(jì)費(fèi)。仿真上的公里脈沖和時(shí)間脈沖是為了仿真而簡(jiǎn)單的設(shè)置的波形,并非是前面信號(hào)組合檢測(cè)而成,在后面整體組合電路中為進(jìn)行模塊的組合。這里為了便于功能仿真區(qū)別,沒有設(shè)置過(guò)多的脈沖,以影響分辨控制模塊所選擇的計(jì)費(fèi)模式。3.5 計(jì)費(fèi)模塊3.5.1 控制模塊電路費(fèi)用計(jì)數(shù)器模塊用于出租車啟動(dòng)后,根據(jù)行駛路程和等待時(shí)間計(jì)算費(fèi)用。當(dāng)出租車停車時(shí),時(shí)鐘reset用于將費(fèi)用計(jì)數(shù)器復(fù)位為起步價(jià)6.0元;當(dāng)車處于行駛狀態(tài)時(shí),select_clk信號(hào)選擇distans_enable,若滿4公里后路程每滿1公里,費(fèi)用計(jì)數(shù)器加1元;當(dāng)出租車處于停止等待狀態(tài)且時(shí)鐘滿2分鐘時(shí),select_clk信號(hào)選擇time_enable信號(hào),時(shí)間每滿1分鐘,費(fèi)用計(jì)數(shù)器加1元。圖3-12 計(jì)費(fèi)模塊3.5.2 計(jì)費(fèi)模塊的仿真結(jié)果圖3-13 計(jì)費(fèi)模塊仿真從波形圖可以看出reset用于將費(fèi)用計(jì)數(shù)器復(fù)位為起步價(jià)8.0元;由于本仿真select_clk信號(hào)并非是系統(tǒng)選擇出來(lái)的公里脈沖和計(jì)時(shí)脈沖,通過(guò)認(rèn)為設(shè)定,不影響其觀察功能效果。3.6 數(shù)碼管顯示模塊圖3-14 數(shù)碼管顯示模塊數(shù)碼管有兩種顯示方式動(dòng)態(tài)顯示與靜態(tài)顯示,由于在本文中用到了八個(gè)數(shù)碼管所以選擇了動(dòng)態(tài)顯示,在時(shí)鐘的控制下,當(dāng)reset為高電平的時(shí)候把費(fèi)用,公里,時(shí)間譯碼輸出。這里沒有數(shù)碼管顯示仿真效果不明顯,即不給予仿真。以上單元模塊設(shè)計(jì)完畢,通過(guò)每個(gè)單元模塊代碼的設(shè)計(jì)以及仿真驗(yàn)證每個(gè)模塊的真確性,為確保后面整體模塊電路的正確性奠定了基礎(chǔ)。4.整體頂層模塊設(shè)計(jì)4.1 整體頂層模塊電路各模塊設(shè)計(jì)仿真實(shí)現(xiàn)后,可分別創(chuàng)建成元件符號(hào)。頂層就是將各分模塊用Verilog HDL語(yǔ)言或者是圖形方法連接起來(lái),便可實(shí)現(xiàn)系統(tǒng)電路。其Verilog HDL源代碼詳見其附錄。其生成的頂層原理圖如下所示:圖4-1 整體頂層電路原理圖5.系統(tǒng)功能仿真及調(diào)試本設(shè)計(jì)采用Quartus II軟件進(jìn)行仿真設(shè)計(jì),Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程。5.1 系統(tǒng)仿真及調(diào)試各個(gè)單元模塊完成后,即可將分模塊和頂層模塊進(jìn)行仿真測(cè)試,同時(shí)可根據(jù)設(shè)計(jì)要求加入測(cè)試輸入條件。仿真后得到的相應(yīng)輸出結(jié)果與預(yù)先的結(jié)果想比較,若不相符,則應(yīng)修改設(shè)計(jì),直到相符為止。為了仿真得到明顯的效果,最好能能下載到帶數(shù)碼管的試驗(yàn)想上進(jìn)行直接的數(shù)字觀察。由于條件有限,為了能使仿真效果明顯,采用了不帶譯碼顯示的波形仿真,其電路原理圖如下:圖5-1 系統(tǒng)仿真調(diào)試電路首先,對(duì)以下輸入輸出端作以下解釋和說(shuō)明,如表4-1:表5-1 測(cè)試端口說(shuō)明輸入輸出端口說(shuō)明端口類型功能定義Clk_50MInput全局時(shí)鐘。在時(shí)鐘上升沿,計(jì)算費(fèi)用。resetInput整體復(fù)位,在reset=0時(shí),等待計(jì)時(shí)為0startInput選擇計(jì)費(fèi)模式Start=1,計(jì)程計(jì)費(fèi)Start=0,計(jì)時(shí)計(jì)費(fèi)m7:0Output等待時(shí)間的輸入(分)s7:0Output等待計(jì)時(shí)的輸入(秒)distance7:0Output所行路程的輸入fee7:0Output總費(fèi)用輸出功能仿真結(jié)果驗(yàn)證如下如下所示:a為行駛中未停時(shí)的系統(tǒng)電路仿真結(jié)果:圖5-2 系統(tǒng)仿真調(diào)試電路(a)b.為行駛中停止時(shí)(在兩分鐘之內(nèi))的系統(tǒng)電路仿真結(jié)果:圖5-3 系統(tǒng)仿真調(diào)試電路(b)c.為行駛中停止時(shí)(在兩分鐘之外)的系統(tǒng)電路仿真結(jié)果:圖5-4 系統(tǒng)仿真調(diào)試電路(c)從(a)可以看出當(dāng)reset為1時(shí),費(fèi)用計(jì)數(shù)器為8元,系統(tǒng)啟動(dòng),start=1表示出租車行駛, distance_enable每產(chǎn)生一個(gè)脈沖,路程計(jì)數(shù)器加1;路程4公里內(nèi),費(fèi)用保持8不變,超過(guò)4公里,費(fèi)用計(jì)數(shù)器進(jìn)行加計(jì)數(shù),每增加1公里費(fèi)用加1元,此時(shí)等待時(shí)間計(jì)數(shù)器不變。而根據(jù)(b),(c)的仿真波形可知,當(dāng)reset為1時(shí),系統(tǒng)啟動(dòng),start=0表示出租車處于停止等待狀態(tài),此時(shí)等待時(shí)間計(jì)數(shù)器計(jì)數(shù),在2分鐘等待時(shí)間內(nèi),費(fèi)用計(jì)數(shù)器不變;等待時(shí)間超過(guò)2分鐘后,每增加1分鐘,費(fèi)用計(jì)數(shù)器增加1元,此時(shí)路程計(jì)數(shù)器保持不變。從以上仿真可看出該出租車計(jì)價(jià)器整體功能實(shí)現(xiàn)都能完成,出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)已經(jīng)全部完成,能按預(yù)期的效果進(jìn)行模擬汽車起步價(jià)格,暫停,停止等功能各種計(jì)費(fèi),并能夠通過(guò)LCD顯示車費(fèi)數(shù)目。本款出租車計(jì)價(jià)器包括總價(jià)輸出、顯示路程,顯示其等待時(shí)間等功能。另外,如果再任意輸入該出租車計(jì)價(jià)器的計(jì)費(fèi)標(biāo)準(zhǔn),那么,它的適用范圍可能就更廣泛了。(個(gè)人認(rèn)為可調(diào)的話,會(huì)引起駕駛員改價(jià)作弊的問(wèn)題,本設(shè)計(jì)沒有外圍可調(diào)電路,只能根據(jù)程序修改,因而防作弊。)6.總結(jié)與體會(huì)通過(guò)學(xué)習(xí)了數(shù)字?jǐn)?shù)字系統(tǒng)設(shè)計(jì)和Verilog HDL語(yǔ)言,對(duì)EDA技術(shù)有了一些了解,但那厚厚的一本書講的都是理論的東西。通過(guò)這本次課程設(shè)計(jì),我才把學(xué)到的東西與實(shí)踐相結(jié)合。從中對(duì)所學(xué)的知識(shí)有了更進(jìn)一步的理解。剛開始拿到這題目的時(shí)候感覺還是有難度,但著手設(shè)計(jì)時(shí),慢慢查詢資料后感覺不是很難,但在設(shè)計(jì)時(shí)又現(xiàn)了許多細(xì)節(jié)上的問(wèn)題。對(duì)Quartus II 9.0操作流程還不到位,通過(guò)自己網(wǎng)上看Quartus軟件基操作視頻,首先把Quartus的功能和各操作用途功能詳細(xì)的了解了一遍,這使我大添信心能把設(shè)計(jì)做出來(lái),相信只有細(xì)心、耐性才能把設(shè)計(jì)搞好,在這次的出租車計(jì)價(jià)器設(shè)計(jì)中,對(duì)Verilog模塊的基本結(jié)構(gòu)和基本語(yǔ)法更為熟悉。在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路,要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為交流提供了方便,為以后編程打下基礎(chǔ)。為期兩周的EDA課程設(shè)計(jì)已經(jīng)結(jié)束,從挑選課設(shè)題目,查閱資料,到研究出總體設(shè)計(jì),詳細(xì)設(shè)計(jì),再到最后的編程上機(jī)調(diào)試,修改程序,完善程序,收獲頗多。鍛煉了自己獨(dú)立發(fā)現(xiàn)問(wèn)題、分析問(wèn)題和通過(guò)查看相關(guān)資料來(lái)解決問(wèn)題的能力。使自己擴(kuò)大了知識(shí)面,提高了知識(shí)水平,借助仿真軟件,不僅可以把課堂中所學(xué)到的知識(shí),直接加以運(yùn)用,而且還可以把各個(gè)分離的知識(shí)組合為一個(gè)整體,真正做到理論聯(lián)系實(shí)際的重要性。使自己在專業(yè)知識(shí)和動(dòng)手能力上有了很大的提高。另外通過(guò)本次設(shè)計(jì),使我認(rèn)識(shí)到自己對(duì)Verilog HDL應(yīng)用編程能力有很大的欠缺,需要在以后的學(xué)習(xí)中進(jìn)一步提高。學(xué)校給我們安排課程設(shè)計(jì),大大地加深了我們對(duì)理論知識(shí)的理解,同時(shí)有意識(shí)的培養(yǎng)了我們的創(chuàng)新思想。我想這類似的課程設(shè)計(jì)是為我們提供了良好的實(shí)踐平臺(tái)。致謝由于本次設(shè)計(jì)是第一次做關(guān)于EDA課程設(shè)計(jì),不像單片機(jī)那樣順手,感謝老師的指導(dǎo),感謝老師對(duì)本次論文的認(rèn)真檢查審閱。由于時(shí)間有限和經(jīng)驗(yàn)還尚欠缺,不足之處還望老師予以批評(píng)指正。另外,我還要感謝學(xué)校能安排這次課程設(shè)計(jì),為我們學(xué)習(xí)相關(guān)專業(yè)提供了良好的實(shí)踐平臺(tái)。參考文獻(xiàn)1 王金明.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL M.北京.電子工業(yè)出版社,20112 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程 M北京:北京航天航空大學(xué)出版社,20083 華成英.電子技術(shù)M.北京.中央廣播電視大學(xué)出版社,20064 孫鵬,陳景.數(shù)字電子技術(shù)基礎(chǔ)與設(shè)計(jì).大連:大連理工大學(xué)出版社,2004.4.5 王長(zhǎng)宏.VHDL設(shè)計(jì)實(shí)例及其仿真與綜合. 北京:北京航天航空大學(xué)出版社,2001附錄A:單元模塊Verilog HDL源代碼A.1 計(jì)數(shù)器的分頻模塊VerilogHDL源代碼module div(clk_50M,clk,reset);/ 端口的定義input clk_50M,reset;/ 總的時(shí)鐘是50Moutput clk;/分頻后輸出的時(shí)鐘 reg clk;reg 31:0 count;/32位的計(jì)數(shù)器always (posedge clk_50M or negedge reset)/異步復(fù)位begin if(!reset) begin clk=d0; count=32d0;endelse if(count=3d100)/判斷計(jì)時(shí)器記到了100嗎? begin count=32d0;/計(jì)到100計(jì)數(shù)器清零 clk=clk;/輸出的時(shí)鐘取反 end/end begin else count=count+1d1;/ 沒計(jì)到100計(jì)數(shù)器加一end/end alwaysendmodule / 結(jié)束分頻模塊A.2數(shù)碼管的分頻模塊VerilogHDL源代碼module div1(clk_50M,clk1,reset);/ 端口的定義input clk_50M,reset;/ 總的時(shí)鐘是50Moutput clk1;/分頻后輸出的時(shí)鐘 1KHZreg clk1;reg 31:0 count;/32位的計(jì)數(shù)器always (posedge clk_50M or negedge reset)/異步復(fù)位begin if(!reset) begin clk1=d0; count=32d0;endelse if(count=2d50)/ 判斷計(jì)時(shí)器記到了50嗎 begin count=32d0;/計(jì)到50計(jì)數(shù)器清零 clk1=clk1;/輸出的時(shí)鐘取反 end/end begin else count=count+1d1;/ 沒計(jì)到50計(jì)數(shù)器加一end/end alwaysendmodule / 結(jié)束分頻模塊A.3 計(jì)程模塊VerilogHDL源代碼module distancemokuai(clk,start,reset,distance,distance_enable);/端口的定義input clk,start,reset;output 7:0 distance;/ 輸出的公里reg 7:0 distance;output distance_enable;/ 控制計(jì)費(fèi)的公里信號(hào)reg distance_enable;always(posedge clk or negedge reset)/異步復(fù)位begin if(!reset)/低電平復(fù)位 begin distance=8d0; end else if(start)/ start 高電平有效 begin if(distance3:0=9)/判斷distance的低四位計(jì)到了9沒有 begin distance3:0=4d0;/計(jì)到9清零 if(distance7:4=9) /判斷distance的高四位計(jì)到了9沒有 distance7:4=4d0;/計(jì)到9清零 else distance7:4= distance7:4+1d1;/ distance的高四位沒有計(jì)到9的時(shí)候加一 end else distance3:0=distance3:0+1d1;/ distance的低四位沒有計(jì)到9的時(shí)候加一 end/end startend/end always/*產(chǎn)生distance_enable信號(hào)*/always(posedge clk or negedge reset)beginif(!reset)begin distance_enable8d2)/ 大于公里三的時(shí)候 begin distance_enable=1d1;/輸出distance_enable信號(hào) endend/end alwaysendmodule/結(jié)束計(jì)程模塊A.4 計(jì)時(shí)模塊VerilogHDL源代碼module timemokuai(clk,reset,start,s,m,time_enable);/ 端口的定義input clk,reset,start;output 7:0 s;/輸出的秒output 7:0 m;/輸出的分output time_enable;/輸出的控制計(jì)費(fèi)的信號(hào)reg 7:0 s;reg 7:0 m;wire time_enable; always(posedge clk or negedge reset)/異步復(fù)位beginif(!reset)/低電平有效begin /復(fù)位s=8d0;m=8d0;endelse if(!start)/start 信號(hào)低電平有效beginif(s3:0=9)/ 秒的低四位是9 begin s3:0=4d0;/清零 if(s7:4=5) / 秒的高四位是5 begin s7:4=4d0; /清零 if(m3:0=9) / 分的低四位是9 begin m3:0=4d0; /清零 if(m7:4=9) / 分的高四位是9 m7:4=4d0; /清零 else m7:4=m7:4+1d1; / 分的高四位不是9加一endelse m3:0=m3:0+1d1; /分的低四位不是9加一endelse s7:4=s7:4+1d1; / 秒的高四位不是5加一endelse s3:08d2)&(s7:0=8d0)?1d1:1d0;/產(chǎn)生time_enable信號(hào)。endmodule/結(jié)束計(jì)時(shí)模塊A.5 控制模塊VerilogHDL源代碼module control(start,distance_enable,time_enable,select_clk);input start,distance_enable,time_enable;output select_clk;/輸出選擇的時(shí)鐘信號(hào)wire select_clk;/*當(dāng)start高電平的時(shí)候選擇公里計(jì)費(fèi),輸出的時(shí)鐘信號(hào)為distance_enable,當(dāng)start低電平的時(shí)候選擇時(shí)間計(jì)費(fèi),輸出的時(shí)鐘信號(hào)為time_enable*/assign select_clk=start?distance_enable:time_enable; endmodule/結(jié)束控制模塊A.6 計(jì)費(fèi)模塊VerilogHDL源代碼module feemokuai(select_clk,reset,fee,clk);input select_clk,reset,clk;output7:0 fee; /輸出的費(fèi)用reg 7:0 fee;always(posedge clk or negedge reset)/異步復(fù)位begin if(!reset) /低電平有效 begin fee=8d8; /起步為八元 end else if(select_clk=1d1) begin if(fee3:0=4d9) /費(fèi)用的低四位是不是計(jì)到了9 begin fee3:0=4d0;/計(jì)到9清零 if(fee7:4=4d9)/ 費(fèi)用的高四位是不是計(jì)到了9fee7:4=4d0; /計(jì)到9清零 else fee7:4=fee7:4+1d1;/ 費(fèi)用的高四位沒有計(jì)到9加1endelse fee3:0=fee3:0+1d1;/ 費(fèi)用的低四位沒有計(jì)到9加1end/end beginend/end alwaysendmodule /結(jié)束計(jì)費(fèi)模塊A.7 數(shù)碼管顯示模塊VerilogHDL源代碼module scan_led(clk1,dig,seg,distance,s,m,fee);input clk1;input7:0 distance,fee;/輸入的公里,費(fèi)用。input7:0 s;/輸入的秒input7:0 m; / 輸入的分。output7:0 dig; / 譯碼結(jié)果output7:0 seg; / 數(shù)碼管的選擇。reg 7:0 r_dig;/ 譯碼結(jié)果輸出寄存器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)begin a=a+1d1; /數(shù)碼管的選擇endalways(posedge clk1)begincase(a) 4d0: disp_dat=distance7:4;/公里的高四位用第一個(gè)數(shù)碼管顯示。4d1: disp_dat=distance3:0;/公里的低四位用第二個(gè)數(shù)碼管顯示。4d2: disp_dat=m7:4; /時(shí)間分的高四位用第三個(gè)數(shù)碼管顯示。4d3: disp_dat=m3:0; /時(shí)間分的低四位用第四個(gè)數(shù)碼管顯示4d4: disp_dat=s7:4; /時(shí)間秒的高四位用第五個(gè)數(shù)碼管顯示。4d5: disp_dat=s3:0; /時(shí)間秒的低四位用第六個(gè)數(shù)碼管顯示。4d6: disp_dat=fee7:4;/費(fèi)用的高四位用第七個(gè)數(shù)碼管顯示。4d7: disp_dat=fee3:0; /費(fèi)用的低四位用第八個(gè)數(shù)碼管顯示。default: disp_dat=4b1010;endcasecase(a)4d0:r_dig=8b01111111; / 選擇第一個(gè)數(shù)碼管4d1:r_dig=8b10111111; / 選擇第二個(gè)數(shù)碼管4d2:r_dig=8b11011111; / 選擇第三個(gè)數(shù)碼管4d3:r_dig=8b11101111; / 選擇第四個(gè)數(shù)碼管4d4:r_dig=8b11110111; / 選擇第五個(gè)數(shù)碼管4d5:r_dig=8b1111
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中必修上冊(cè)古詩(shī)詞大單元教學(xué)研究
- 兒童衛(wèi)生安全教育
- TNF-α參與特應(yīng)性皮炎瘙癢調(diào)控的機(jī)制研究
- 醫(yī)院安全檢查
- 中學(xué)考前勵(lì)志課件
- 硬膜下血腫病人護(hù)理查房
- 顱腦疾病護(hù)理課件
- 預(yù)防結(jié)核班會(huì)課件
- 預(yù)防校園欺凌課件
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》課件-第7章 帶傳動(dòng)
- 康明斯產(chǎn)品合格證
- 礦山廢水處理行業(yè)調(diào)研及投資前景分析報(bào)告
- 【五升六暑期閱讀】專題10.環(huán)境描寫及其作用-2024年五升六暑期閱讀專項(xiàng)提升(統(tǒng)編版)5
- DL∕T 1057-2023 自動(dòng)跟蹤補(bǔ)償消弧線圈成套裝置技術(shù)條件
- 【電商直播對(duì)消費(fèi)者購(gòu)買行為影響:以抖音直播為例開題報(bào)告1800字】
- 抑郁病診斷證明書
- 氣體分析儀檢定規(guī)程
- 2024-2029年吞咽困難飲食增稠劑行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃投資研究報(bào)告
- (高清版)WST 348-2024 尿液標(biāo)本的采集與處理
- FZT 73012-2017 文胸行業(yè)標(biāo)準(zhǔn)
- 肺系病的中醫(yī)護(hù)理
評(píng)論
0/150
提交評(píng)論