




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 基于Verilog HDL的出租車計(jì)費(fèi)器設(shè)計(jì)基于Verilog HDL的出租車計(jì)費(fèi)器設(shè)計(jì)學(xué)生姓名:李明洪 指導(dǎo)老師:肖紅光摘 要 本次課程設(shè)計(jì)主要是基于FPGA芯片,使用硬件描述語言Veriloh HDL,采用“自頂向下”的設(shè)計(jì)方法,編寫一個(gè)出租車計(jì)費(fèi)器芯片,并使用Max+Plus II軟件仿真平臺(tái)。本文主要描述了出租車計(jì)費(fèi)器的設(shè)計(jì)思路與模塊劃分。把出租車計(jì)費(fèi)器劃分為五大模塊,共同實(shí)現(xiàn)了出租車計(jì)費(fèi)以及預(yù)置和模擬汽車啟動(dòng)、停止、暫停等功能,并動(dòng)態(tài)掃描顯示車費(fèi)數(shù)目。最后,使用Max+Plus II仿真平臺(tái)對(duì)每個(gè)模塊和主程序分別進(jìn)行了仿真,并對(duì)仿真出來的波形作了分析。關(guān)鍵詞 出租車計(jì)費(fèi); Veri
2、log HDL; Max+Plus II; 仿真The design of taxi meter based on Verilog HDLAbstract The course design is mainly based on FPGA chip, the use of hardware description language Veriloh HDL, using top down design method, the preparation of a taxi meter chip, and use the Max + Plus II software simulation platfo
3、rm. This paper describes the design idea of the taxi meter and module division. The taxi meter is divided into five modules together to achieve a taxi and analog auto billing and pre-start, stop, pause function, and dynamic scan showed the number of fare. Finally, using Max + Plus II simulation plat
4、form and the main program for each module were simulated, and the simulation from an analysis of the waveform.Keywords Taxi charges;Verilog HDL; Max+Plus II;Simulation1 引 言隨著中國(guó)城市化的快速發(fā)展,人們出行的選擇也會(huì)越來越多樣化,但是出租車作為一種重要的交通工具,也越來越多的被人們所選擇,雖然在大中城市,出租車已經(jīng)相當(dāng)普及,但是在一些小的城市,出租車行業(yè)也因?yàn)槌鞘谢M(jìn)程的加快而快速發(fā)展。當(dāng)然,出租車的計(jì)費(fèi)器也由當(dāng)初的只能顯示
5、路程的計(jì)費(fèi)方式變成現(xiàn)在的,能夠自主計(jì)費(fèi)以及打印發(fā)票和語音提示。根據(jù)出租車行業(yè)的需求,國(guó)內(nèi)各機(jī)械廠家紛紛推出國(guó)產(chǎn)計(jì)價(jià)器,傳統(tǒng)的出租車計(jì)費(fèi)器由于發(fā)展使用了十幾年,在穩(wěn)定性、成本、以及使用習(xí)慣上都具有一定的優(yōu)勢(shì)。Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語言(HDL:Hardware Description Language),均為IEEE標(biāo)準(zhǔn),被廣泛地應(yīng)用于基于可編程邏輯器件的項(xiàng)目開發(fā)。二者都是在20世紀(jì)80年代中期開發(fā)出來的,前者由Gateway Design Automation公司(該公司于1989年被Cadence公司收購(gòu))開發(fā),后者由美國(guó)軍方研發(fā)。 HDL語言以文本
6、形式來描述數(shù)字系統(tǒng)硬件結(jié)構(gòu)和行為1,是一種用形式化方法來描述數(shù)字電路和系統(tǒng)的語言,可以從上層到下層來逐層描述自己的設(shè)計(jì)思想。即用一系列分層次的模塊來表示復(fù)雜的數(shù)字系統(tǒng),并逐層進(jìn)行驗(yàn)證仿真,再把具體的模塊組合由綜合工具轉(zhuǎn)化成門級(jí)網(wǎng)表,接下去再利用布局布線工具把網(wǎng)表轉(zhuǎn)化為具體電路結(jié)構(gòu)的實(shí)現(xiàn)。目前,這種自頂向下的方法已被廣泛使用。本文介紹了相關(guān)的軟件平臺(tái)Max+Plus II及硬件編程語言-Verilog HDL。主要論述了一個(gè)出租車計(jì)費(fèi)器從設(shè)計(jì)思路到系統(tǒng)仿真的整個(gè)設(shè)計(jì)過程。本次設(shè)計(jì)的目的就是在掌握計(jì)算機(jī)組成原理理論的基礎(chǔ)上,了解EDA技術(shù),掌握Verilog HDL硬件描述語言的設(shè)計(jì)方法和思想,通
7、過學(xué)習(xí)的Verilog HDL語言結(jié)合電子電路的設(shè)計(jì)知識(shí)理論聯(lián)系實(shí)際,掌握所學(xué)的課程知識(shí),通過本課程設(shè)計(jì),達(dá)到鞏固和綜合運(yùn)用計(jì)算機(jī)原理中的知識(shí),理論聯(lián)系實(shí)際,鞏固所學(xué)理論知識(shí),并且提高自己通過所學(xué)理論分析、解決計(jì)算機(jī)實(shí)際問題的能力。通過這次EDA方面的課程設(shè)計(jì),可以提高我們對(duì)EDA領(lǐng)域及通信電路設(shè)計(jì)領(lǐng)域的認(rèn)識(shí),有利于培養(yǎng)我們?cè)谕ㄐ烹娐稥DA方面的設(shè)計(jì)能力。一人一題特別有利于鍛煉我們獨(dú)立分析問題和解決問題的能力。設(shè)計(jì)過程的復(fù)雜加老師的嚴(yán)格要求有益于培養(yǎng)我們嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)。2 理論基礎(chǔ)2.1 Verilog HDL語言的功能和設(shè)計(jì)方法Verilog HDL語言以文本形式來描述數(shù)字系統(tǒng)硬件結(jié)構(gòu)和行為
8、3,是一種用形式化方法來描述數(shù)字電路和系統(tǒng)的語言,可以從上層到下層來逐層描述自己的設(shè)計(jì)思想。即用一系列分層次的模塊來表示復(fù)雜的數(shù)字系統(tǒng)4,并逐層進(jìn)行驗(yàn)證仿真,再把具體的模塊組合由綜合工具轉(zhuǎn)化成門級(jí)網(wǎng)表,接下去再利用布局布線工具把網(wǎng)表轉(zhuǎn)化為具體電路結(jié)構(gòu)的實(shí)現(xiàn)。目前,這種自頂向下的方法已被廣泛使用。概括地講,HDL語言包含以下主要特征: (1) HDL語言既包含一些高級(jí)程序設(shè)計(jì)語言的結(jié)構(gòu)形式,同時(shí)也兼顧描述硬件線路連接的具體結(jié)構(gòu)。 (2) 通過使用結(jié)構(gòu)級(jí)行為描述,可以在不同的抽象層次描述設(shè)計(jì)。HDL語言采用自頂向下的數(shù)字電路設(shè)計(jì)方法,主要包括3個(gè)領(lǐng)域5個(gè)抽象層次。 (3) HDL語言是并行處理的,
9、具有同一時(shí)刻執(zhí)行多任務(wù)的能力。這和一般高級(jí)設(shè)計(jì)語言(例如C語言等)串行執(zhí)行的特征是不同的。 (4) HDL語言具有時(shí)序的概念。一般的高級(jí)編程語言是沒有時(shí)序概念的,但在硬件電路中從輸入到輸出總是有延時(shí)存在的,為了描述這一特征,需要引入時(shí)延的概念。HDL語言不僅可以描述硬件電路的功能,還可以描述電路的時(shí)序。 Verilog HDL的主要能力:Verilog HDL既是一種行為描述語言,也是一種結(jié)構(gòu)描述語言。如果按照一定的規(guī)則和風(fēng)格編寫代碼,就可以將功能行為模塊通過工具自動(dòng)轉(zhuǎn)化為門級(jí)互連的結(jié)構(gòu)模塊。這意味著利用Verilog語言所提供的功能,就可以構(gòu)造一個(gè)模塊間的清晰結(jié)構(gòu)來描述復(fù)雜的大型設(shè)計(jì),并對(duì)所
10、需的邏輯電路進(jìn)行嚴(yán)格的設(shè)計(jì)。 下面列出的是Verilog語言的主要功能: (1) 可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu); (2) 用延遲表示式或事件表達(dá)式來明確地控制過程的啟動(dòng)時(shí)間; (3) 通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為; (4) 提供了條件和循環(huán)等程序結(jié)構(gòu); (5) 提供了可帶參數(shù)且非零延續(xù)時(shí)間的任務(wù)程序結(jié)構(gòu); (6) 提供了可定義新的操作符的函數(shù)結(jié)構(gòu); (7) 提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符; (8) 提供了一套完整的表示組合邏輯基本元件的原語; (9) 提供了雙向通路和電阻器件的描述; (10)可建立MOS器件的電荷分享和衰減模型; (11)可
11、以通過構(gòu)造性語句精確地建立信號(hào)模型; Verilog HDL設(shè)計(jì)方法:自下而上的設(shè)計(jì)方法 自下而上的設(shè)計(jì)是傳統(tǒng)的設(shè)計(jì)方法,是從基本單元出發(fā),對(duì)設(shè)計(jì)進(jìn)行逐層劃分的過程。這種設(shè)計(jì)方法與用電子元件在模擬實(shí)現(xiàn)板上建立一個(gè)系統(tǒng)的步驟有密切的關(guān)系。優(yōu)、缺點(diǎn)分別如下: 優(yōu)點(diǎn), 設(shè)計(jì)人員對(duì)這種設(shè)計(jì)方法比較熟悉;實(shí)現(xiàn)各個(gè)子模塊所需的時(shí)間較短。 缺點(diǎn), 對(duì)系統(tǒng)的整體功能把握不足;由于必須先對(duì)多個(gè)子模塊進(jìn)行設(shè)計(jì),因此實(shí)現(xiàn)整個(gè)系統(tǒng)的功能所需的時(shí)間長(zhǎng);另外,對(duì)設(shè)計(jì)人員之間相互協(xié)作也有較高的要求。 自上而下的設(shè)計(jì)方法 自上而下的設(shè)計(jì)是從系統(tǒng)級(jí)開始,把系統(tǒng)劃分為基本單元,然后再把基本單元?jiǎng)澐譃橄乱粚哟蔚幕締卧钡娇捎肊
12、DA元件實(shí)現(xiàn)為止。這種方法的優(yōu)、缺點(diǎn)如下。 優(yōu)點(diǎn), 在設(shè)計(jì)周期開始就做好了系統(tǒng)分析;由于設(shè)計(jì)的主要仿真和調(diào)試過程是在高層完成的,所以能夠早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的錯(cuò)誤,避免了設(shè)計(jì)工作的浪費(fèi),方便了系統(tǒng)的劃分和整個(gè)項(xiàng)目的管理,可減少設(shè)計(jì)人員勞動(dòng),避免了重復(fù)設(shè)計(jì)。 缺點(diǎn) ,得到的最小單元不標(biāo)準(zhǔn),且制造成本高。 混合的設(shè)計(jì)方法 復(fù)雜數(shù)字邏輯電路和系統(tǒng)設(shè)計(jì)過程5,通常是以上兩種設(shè)計(jì)方法的結(jié)合。設(shè)計(jì)時(shí)需要考慮多個(gè)目標(biāo)的綜合平衡。在高層系統(tǒng)用自上而下的設(shè)計(jì)方法實(shí)現(xiàn),而使用自下而上的方法從庫(kù)元件或以往設(shè)計(jì)庫(kù)中調(diào)用已有的設(shè)計(jì)單元。混合設(shè)計(jì)方法兼有以上兩種方法的優(yōu)點(diǎn),并且可使用先進(jìn)的矢量測(cè)試方法。2.2 Max+Pl
13、us II設(shè)計(jì)流程Max+plus是Altera公司提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大可編程邏輯器件2的供應(yīng)商之一。Max+plus界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。在Max+plus上可以完成設(shè)計(jì)輸入、元件適配、時(shí)序仿真和功能仿真、編程下載整個(gè)流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,是設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。設(shè)計(jì)流程:使用Max+plus軟件設(shè)計(jì)流程由以下幾部分組成。(1) 設(shè)計(jì)輸入:可以采用原理圖輸入、HDL語言描述、EDIF網(wǎng)表輸入及波形輸入等幾種方式。(2) 編譯:先根據(jù)設(shè)計(jì)要求設(shè)定編譯參數(shù)和編譯策略,如器件的選擇
14、、邏輯綜合方式的選擇等。然后根據(jù)設(shè)定的參數(shù)和策略對(duì)設(shè)計(jì)項(xiàng)目進(jìn)行網(wǎng)表提取、邏輯綜合和器件適配,并產(chǎn)生報(bào)告文件、延時(shí)信息文件及編程文件,供分析仿真和編程使用。(3) 仿真:仿真包括功能仿真、時(shí)序仿真和定時(shí)分析,可以利用軟件的仿真功能來驗(yàn)證設(shè)計(jì)項(xiàng)目的邏輯功能是否正確。(4) 編程與驗(yàn)證:用經(jīng)過仿真確認(rèn)后的編程文件通過編程器(Programmer)將設(shè)計(jì)下載到實(shí)際芯片中,最后測(cè)試芯片在系統(tǒng)中的實(shí)際運(yùn)行性能。 在設(shè)計(jì)過程中,如果出現(xiàn)錯(cuò)誤,則需重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或調(diào)整電路后重復(fù)上述過程。3 出租車計(jì)費(fèi)器設(shè)計(jì)隨著中國(guó)城市化的快速發(fā)展,人們出行的選擇也會(huì)越來越多樣化,但是出租車作為一種重要的交通工
15、具,也越來越多的被人們所選擇,雖然在大中城市,出租車已經(jīng)相當(dāng)普及,但是在一些小的城市,出租車行業(yè)也因?yàn)槌鞘谢M(jìn)程的加快而快速發(fā)展。此次設(shè)計(jì)采用EDA技術(shù),把出租車計(jì)費(fèi)器劃分為五大模塊,共同實(shí)現(xiàn)了出租車計(jì)費(fèi)以及預(yù)置和模擬汽車啟動(dòng)、停止、暫停等功能,并動(dòng)態(tài)掃描顯示車費(fèi)數(shù)目。最后,使用Max+Plus II仿真軟件對(duì)每個(gè)模塊和主程序分別進(jìn)行了結(jié)果仿真,并對(duì)仿真出來的結(jié)果作了分析。3.1 整體設(shè)計(jì)方案根據(jù)自己對(duì)出租車從啟動(dòng)記費(fèi)到停止打印發(fā)票的整個(gè)過程的理解,將整個(gè)出租車計(jì)費(fèi)系統(tǒng)主要?jiǎng)澐譃?大塊。計(jì)費(fèi)器按里程收費(fèi),每100米開始一次計(jì)費(fèi)。各模塊功能如下:(1) 車速控制模塊當(dāng)起停鍵為啟動(dòng)狀態(tài)時(shí)(高電平)
16、,模塊根據(jù)車速選擇和基本車速發(fā)出響應(yīng)頻率的脈沖驅(qū)動(dòng)計(jì)費(fèi)器和里程顯示模塊進(jìn)行計(jì)數(shù);當(dāng)處于停止?fàn)顟B(tài)時(shí)暫停發(fā)出脈沖,此時(shí)計(jì)費(fèi)器和里程顯示模塊相應(yīng)的停止計(jì)數(shù)。(2) 里程動(dòng)態(tài)顯示模塊其包括計(jì)數(shù)車速控制模塊發(fā)出的脈沖以及將計(jì)數(shù)顯示動(dòng)態(tài)顯示出來,每來一個(gè)脈沖里程值加0.1(控制器每發(fā)一個(gè)脈沖代表運(yùn)行了0.1公里)。(3) 計(jì)費(fèi)動(dòng)態(tài)顯示模塊其初值為10元,當(dāng)里程超過3公里后才接受計(jì)數(shù)車速控制模塊發(fā)出的脈沖的驅(qū)動(dòng),并且計(jì)數(shù)顯示動(dòng)態(tài)顯示出來,每來一個(gè)脈沖(代表運(yùn)行了0.5公里)其數(shù)值加1元,當(dāng)收費(fèi)超過20時(shí)數(shù)值加1.5元。根據(jù)上述要求,繪制出計(jì)費(fèi)器的大致設(shè)計(jì)構(gòu)想框圖,如圖3-1所示。車速控制模塊里程動(dòng)態(tài)顯示計(jì)費(fèi)
17、動(dòng)態(tài)顯示 車速選擇 起/停開關(guān) 基本速率 Rest 掃描時(shí)鐘 顯示輸出 顯示輸出圖3-1計(jì)費(fèi)器設(shè)計(jì)構(gòu)想框圖3.2詳細(xì)設(shè)計(jì)思路本次出租車計(jì)費(fèi)器的設(shè)計(jì)主要是基于FPGA芯片,使用硬件描述語言Verilog HDL,采用“自頂向下”的設(shè)計(jì)方法,編寫一個(gè)出租車計(jì)費(fèi)器芯片,并使用Max+Plus II軟件仿真結(jié)果。把出租車計(jì)費(fèi)器劃分為五大模塊,共同實(shí)現(xiàn)了出租車計(jì)費(fèi)以及預(yù)置和模擬汽車啟動(dòng)、停止、暫停等功能,并動(dòng)態(tài)掃描顯示車費(fèi)數(shù)目。最后,使用Max+Plus II仿真平臺(tái)對(duì)每個(gè)模塊和主程序分別進(jìn)行了波形仿真,并對(duì)仿真出來的波形作了分析。本次出租車計(jì)費(fèi)器設(shè)計(jì)要求實(shí)現(xiàn)如下功能:(1) 能實(shí)現(xiàn)計(jì)費(fèi)功能,計(jì)費(fèi)標(biāo)準(zhǔn)為
18、:按行駛里程收費(fèi),起步費(fèi)為10.00元,并在車行3公里后再按2元/公里,當(dāng)計(jì)費(fèi)器計(jì)費(fèi)達(dá)到或超過一定收費(fèi)(如20元)時(shí),每公里加收50%的車費(fèi),車停止不計(jì)費(fèi)。(2) 實(shí)現(xiàn)預(yù)置功能:能預(yù)置起步費(fèi)、每公里收費(fèi)、車行加費(fèi)里程。(3) 實(shí)現(xiàn)模擬功能:能模擬汽車啟動(dòng)、停止、暫停、車速等狀態(tài)。(4) 設(shè)計(jì)動(dòng)態(tài)掃描電路:將車費(fèi)顯示出來,有兩位小數(shù)。(5) 用Verilog HDL語言設(shè)計(jì)符合上述功能要求的出租車計(jì)費(fèi)器,并用層次化設(shè)計(jì)方法設(shè)計(jì)該電路。(6) 各計(jì)數(shù)器的計(jì)數(shù)狀態(tài)用功能仿真的方法驗(yàn)證,并通過有關(guān)波形確認(rèn)電路設(shè)計(jì)是否正確。(7) 完成電路全部設(shè)計(jì)后,通過系統(tǒng)實(shí)驗(yàn)箱下載驗(yàn)證設(shè)計(jì)的正確性。3.3 模塊實(shí)現(xiàn)
19、為了使各模塊間能夠無沖突地完成各自的工作,加入適當(dāng)?shù)妮o助模塊,并結(jié)合計(jì)費(fèi)器設(shè)計(jì)要求及各模塊要實(shí)現(xiàn)的功能,在設(shè)計(jì)構(gòu)想框圖基礎(chǔ)上,將其細(xì)化,得到系統(tǒng)總體模型圖,如圖3-2所示。車速控制(MS)模擬計(jì)費(fèi)(COUNTER)掃描時(shí)鐘(PULSE) 路程、車費(fèi)顯示(SCAN-LED) 車行狀態(tài)輸出(SOUT)加速信號(hào)勻速信號(hào)加速按鍵 使能信號(hào) 暫停信號(hào) 清零信號(hào) 時(shí)鐘信號(hào)圖3-2計(jì)費(fèi)器系統(tǒng)總體模型圖在圖3-2中,車速控制模塊主要將車行駛的狀態(tài),加速或者勻速,轉(zhuǎn)換成脈沖信號(hào);掃描時(shí)鐘模塊,每隔一段時(shí)間,掃描一次車行速度,并將狀態(tài)信號(hào)送給計(jì)費(fèi)器;車行狀態(tài)輸出模塊,將車速控制模送來的脈沖信號(hào)進(jìn)行翻譯,判斷車是何
20、種行駛狀態(tài);模擬計(jì)費(fèi)模塊,根據(jù)掃描時(shí)鐘的信號(hào),定時(shí)對(duì)路程計(jì)算,并將編碼信號(hào)送給顯示模塊;路程、車費(fèi)顯示模塊,對(duì)計(jì)費(fèi)模塊送來的信號(hào)進(jìn)行編譯,并顯示出來。結(jié)合系統(tǒng)設(shè)計(jì)的總體要求和各模塊的詳細(xì)功能要求,接下來,便是使用硬件描述語言Verilog HDL和軟件仿真平臺(tái)Max+Plus II,編寫出各模塊的功能語言,并進(jìn)行編譯、仿真,最終得到系統(tǒng)模塊圖。其設(shè)計(jì)流程如圖3-3所示。 開 始功 能 分 析編譯檢 錯(cuò)檢 錯(cuò)修 改編 寫功 能 語 言結(jié) 束波形仿 真檢 錯(cuò)修 改 編譯成功 仿真成功 出 錯(cuò) 出 錯(cuò) 圖3-3計(jì)費(fèi)器模塊設(shè)計(jì)流程圖 根據(jù)設(shè)計(jì)流程,按照從部分到整體的設(shè)計(jì)思路,先設(shè)計(jì)出各個(gè)功能模塊,最后
21、,結(jié)合圖3-2將各功能模塊連接在一起,形成了計(jì)費(fèi)器整體系統(tǒng)模塊圖,如圖3-4所示。圖3-4 計(jì)費(fèi)器整體系統(tǒng)模塊圖在圖3-4中模塊MS,輸入端口CK0、CK1為兩個(gè)不同的時(shí)鐘信號(hào),高電平有效。來模擬汽車的加速和勻速,JS加速按鍵,高電平有效。CLK-OUT為狀態(tài)脈沖輸出信號(hào)。模塊PULSE實(shí)現(xiàn)將時(shí)鐘信號(hào)5分頻功能。模塊COUNTER實(shí)現(xiàn)汽車模擬計(jì)費(fèi)功能。CLR1為清零信號(hào),CLK-DIV為時(shí)鐘掃描信號(hào);SI為狀態(tài)信號(hào),c1,c2,c3分別為費(fèi)用的三為顯示。模塊SOUT實(shí)現(xiàn)車行狀態(tài)輸出功能,其中clk為時(shí)鐘信號(hào),enable 為啟動(dòng)使能信號(hào),sto暫停信號(hào),勻?yàn)楦唠娖接行Аlr為清零信號(hào),低電平
22、有效,st為狀態(tài)信號(hào),0電平表示勻速,1電平表示加速。模塊SCAN-LED實(shí)現(xiàn)顯示車費(fèi)功能。BT為選位信號(hào),SG譯碼信號(hào)。將圖3-4形成的系統(tǒng)在Max+plus平臺(tái)中進(jìn)行編譯、仿真,形成了計(jì)費(fèi)器最終頂層模塊如圖3-5所示。圖3-5 TAXI模塊圖該模塊為計(jì)費(fèi)器最終頂層模塊,T_CLK0、T_CLK1、T_CLK2為三個(gè)時(shí)鐘信號(hào),T-JS 加速信號(hào),高電平有效,T-ENABLE為啟動(dòng)使能信號(hào),高電平有效,T-CLR為清零信號(hào),低電平有效,STO為暫停信號(hào),高電平有效。T-BT為選位信號(hào),T-SG為譯碼信號(hào)。4 計(jì)費(fèi)器各模塊的仿真4.1模塊MS的仿真 依據(jù)設(shè)計(jì)思路和Max+plus II設(shè)計(jì)平臺(tái)以
23、及Verilog HDL語言,編寫出模塊程序,調(diào)試完成后,進(jìn)行波形仿真,得到MS模塊仿真圖,如圖4-1所示。圖4-1 MS模塊仿真圖圖4-1中,JS為加速輸入信號(hào),高電平有效;CK0為勻速輸入信號(hào);CK1時(shí)鐘信號(hào),高電平有效。如圖,在有加速信號(hào)持續(xù)輸入的狀態(tài)下,每隔一段時(shí)間,CLK-OUT端有一個(gè)加速脈沖輸出,由仿真圖象可以看出,MS模塊正常運(yùn)行。4.2模塊SOUT的仿真依據(jù)設(shè)計(jì)思路和Max+Plus II設(shè)計(jì)平臺(tái)以及Verilog HDL語言,編寫出模塊程序,調(diào)試完成后,進(jìn)行波形仿真,得到SOUT模塊仿真圖,如圖4-2所示。圖4-2 SOUT模塊仿真圖 圖4-2中,STO為暫停信號(hào),高電平有
24、效;ENABLE為啟動(dòng)使能信號(hào),高電平有效;CLR為清零信號(hào),高電平有效;ST為狀態(tài)信號(hào);CLK為時(shí)鐘信號(hào);ST為狀態(tài)信號(hào),0電平表示勻速,1電平表示加速。如圖,汽車在有啟動(dòng)信號(hào)持續(xù)輸入的狀態(tài)下,車行狀態(tài)輸出端有相應(yīng)的狀態(tài)信號(hào)輸出,由仿真圖象可以看出,SOUT模塊正常運(yùn)行。4.3模塊PULSE的仿真依據(jù)設(shè)計(jì)思路和Max+Plus II設(shè)計(jì)平臺(tái)以及Verilog HDL語言,編寫出模塊程序,調(diào)試完成后,進(jìn)行波形仿真,得到PULSE模塊仿真圖,如圖4-3所示。圖4-3 PULSE模塊仿真圖圖4-3中,CLK0為時(shí)鐘信號(hào),由仿真圖象可以看出,PULSE模塊正常運(yùn)行,輸出了0到4,實(shí)現(xiàn)時(shí)鐘掃描的5分頻
25、功能。4.4模塊COUNTER的仿真依據(jù)設(shè)計(jì)思路和Max+Plus II設(shè)計(jì)平臺(tái)以及Verilog HDL語言,編寫出模塊程序,調(diào)試完成后,進(jìn)行波形仿真,得到COUNTER模塊仿真圖,如圖4-4所示。圖4-4 COUNTER模塊仿真圖圖4-4中,CLR1為清零信號(hào),低電平有效;SI為狀態(tài)信號(hào);CLK-DIV為時(shí)鐘掃描信號(hào);C1、C2、C3為費(fèi)用信號(hào)的三行顯示。如圖,汽車在行駛狀態(tài)下,每隔一段時(shí)間,費(fèi)用顯示輸出端會(huì)有相應(yīng)的信號(hào)輸出,由仿真圖象可以看出,COUNTER模塊正常運(yùn)行。 4.5模塊SCAN_LED的仿真依據(jù)設(shè)計(jì)思路和Max+Plus II設(shè)計(jì)平臺(tái)以及Verilog HDL語言,編寫出模
26、塊程序,調(diào)試完成后,進(jìn)行波形仿真,得到SCAN-LED模塊仿真圖,如圖4-5所示。圖4-5 SCAN-LED模塊仿真圖圖4-5中,BT為選位信號(hào);SG譯碼信號(hào)。如圖,每行駛一段時(shí)間,顯示位上的不同數(shù)位上會(huì)有信號(hào)輸出,仿真圖象可以看出,SCAN-LED模塊正常運(yùn)行。4.6模塊TAXI的仿真依據(jù)設(shè)計(jì)思路和Max+Plus II設(shè)計(jì)平臺(tái)以及Verilog HDL語言,編寫出模塊程序,調(diào)試完成后,進(jìn)行波形仿真,得到TAXI模塊仿真圖,如圖4-6所示。圖4-6 TAXI模塊仿真圖 圖4-6中,js為加速輸入信號(hào),高電平有效;enable為啟動(dòng)使能信號(hào),高電平有效;clr為清零信號(hào),高電平有效;clk2
27、ck1 ck2為時(shí)鐘信號(hào)。結(jié)合前面各模塊的輸入、輸出端功能介紹和各模塊仿真圖像說明,可以看出,TAXI模塊正常運(yùn)行。5 小結(jié) 本次課程設(shè)計(jì)要求基于可編程邏輯器件,使用硬件描述語言Verilog HDL編寫一個(gè)出租車計(jì)費(fèi)器控制器芯片,并用Max+Plus II軟件平臺(tái)進(jìn)行仿真。根據(jù)自己對(duì)出租車從啟動(dòng)計(jì)費(fèi)到停車打票過程的理解,其過程可描述為預(yù)置、模擬汽車啟動(dòng)、停止、暫停等功能,并動(dòng)態(tài)掃描顯示車費(fèi)數(shù)目。由此必需設(shè)計(jì)出3個(gè)大的模塊:一是車速控制模塊,此模塊控制汽車的加速或勻速狀態(tài);二是動(dòng)態(tài)里程顯示模塊,此模塊的主要功能是隨時(shí)顯示車行的路程;三是計(jì)費(fèi)動(dòng)態(tài)顯示模塊,此模塊的功能是根據(jù)車行路程計(jì)算并輸出相應(yīng)
28、的費(fèi)用。在整個(gè)設(shè)計(jì)過程當(dāng)中,首先要根據(jù)模塊設(shè)計(jì)所要達(dá)到的要求編寫源代碼,在編寫完后編譯的過程中經(jīng)常會(huì)出現(xiàn)程序編譯錯(cuò)誤。根據(jù)系統(tǒng)提示,我找到了錯(cuò)誤的位置,然后查詢錯(cuò)誤的原因。通過和同學(xué)探討,或者請(qǐng)教老師,所有的問題都一一解決了。 在整個(gè)電路設(shè)計(jì)完畢并仿真成功后發(fā)現(xiàn),其實(shí)整個(gè)電路設(shè)計(jì)實(shí)現(xiàn)的功能還是比較實(shí)用和易于操作的,而自己也為此付出了許多:從根據(jù)課題要求查找相關(guān)資料,學(xué)習(xí)硬件語言,到自己能夠獨(dú)立編寫小程序;從對(duì)Max+Plus II軟件平臺(tái)的摸索,一次次修改程序,到仿真得到較滿意的結(jié)果;從對(duì)截圖工具的搜索下載,論文資料的搜集,到文字排版的學(xué)習(xí)。在設(shè)計(jì)過程中遇到了很多困難,在指導(dǎo)老師的指引和同學(xué)的
29、幫助下,通過不斷探索學(xué)習(xí),使問題得到了一定的解決。終于使出租車計(jì)費(fèi)器各模塊的功能正常運(yùn)行,仿真成功,進(jìn)而,整個(gè)計(jì)費(fèi)器系統(tǒng)成功仿真運(yùn)行成功。通過本學(xué)期課程設(shè)計(jì)的學(xué)習(xí),我從中學(xué)習(xí)到了很多,對(duì)可編程邏輯器件,Verilog HDL語言,Max+Plus II軟件平臺(tái)有了一定的了解,尤其是用Verilog HDL語言編程和仿真。在本次設(shè)計(jì)中最大的收獲是在不斷地發(fā)現(xiàn)問題,分析問題,解決問題的過程中培養(yǎng)了自己的科研能力,為今后的學(xué)習(xí)和工作積累了一定的經(jīng)驗(yàn)。第 27 頁 共 27 頁 李明洪 基于Verilog HDL的出租車計(jì)費(fèi)器設(shè)計(jì)參考文獻(xiàn)1陳林,ASIC與Verilog數(shù)字系統(tǒng)設(shè)計(jì). 武漢-華中科技大
30、學(xué)出版社. 2009.102宋萬杰,羅豐,吳順君CPLD技術(shù)及其應(yīng)用西安:西安電子科技大學(xué)出版社,1999.93王鑫明,楊吉斌.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDLM.北京:電子工業(yè)出版社,2002.4張文.可編程邏輯器件的發(fā)展與應(yīng)用J.大眾科技,2006,87(1):49-505楊志鐘,懷樺林,郭順化.數(shù)字電子技術(shù)基礎(chǔ)M.北京:高等教育出版社,2004.6 王道憲CPLD/FPGA可編程邏輯器件應(yīng)用與開發(fā)M北京:國(guó)防工業(yè)出版社,2004.1附錄:源程序設(shè)計(jì)清單/ 程序名稱:基于Verilog HDL出租車計(jì)費(fèi)器設(shè)計(jì)/ 程序功能:采用Verilog HDL語言設(shè)計(jì)程序,實(shí)現(xiàn)出租車計(jì)費(fèi)器的功能實(shí)
31、現(xiàn)。/ 程序作者:李明洪/ 最后修改日期:2010-12-29MS模塊源程序:module MS (CK0, CK1, JS, CLK_OUT);input CK0; input CK1; input JS; output CLK_OUT; reg CLK_OUT;always (JS or CK0 or CK1)beginif (JS = 1b0)beginCLK_OUT = CK0 ; endelsebeginCLK_OUT = CK1 ; end end endmoduleSOUT模塊源程序:module SOUT (CLK, ENABLE, STO, CLR, ST);input CL
32、K; input ENABLE; input STO; input CLR; output1:0 ST; reg1:0 ST;always (CLK or ENABLE or STO or CLR)begin : xhdl_1reg7:0 CQI; reg1:0 STATE; if (CLR = 1b0)beginCQI = 81b0; endelse if (CLK = 1b1)beginif (STO = 1b1)beginSTATE = 2b00; CQI = CQI; endelse if (ENABLE = 1b1)beginCQI = CQI + 1; if (CQI 30 & C
33、QI = 80)beginSTATE = 2b10; endelsebeginSTATE = 2b11; end end end ST = STATE ; end endmodulePULSE模塊源程序:module PULSE (CLK0, FOUT);input CLK0; output FOUT; reg FOUT;always (CLK0)begin : xhdl_1reg2:0 CNT; reg FULL; if (CLK0 = 1b1)beginif (CNT = 3b100)beginCNT = 3b000; FULL = 1b1; endelsebeginCNT = CNT +
34、 1; FULL = 1b0; end end FOUT = FULL ; end endmoduleCOUNTER模塊源程序:module COUNTER (CLK_DIV, CLR1, SI, C1, C2, C3);input CLK_DIV; input CLR1; input1:0 SI; output3:0 C1; reg3:0 C1;output3:0 C2; reg3:0 C2;output3:0 C3; reg3:0 C3;always (CLK_DIV or CLR1 or SI)begin : xhdl_1reg3:0 Q1; reg3:0 Q2; reg3:0 Q3;
35、if (CLR1 = 1b0)beginQ1 = 4b0000; Q2 = 4b0000; Q3 = 4b0000; endelse if (CLK_DIV = 1b1)begincase (SI)2b00 :beginQ1 = Q1; Q2 = Q2; Q3 = Q3; end2b01 :beginQ1 = 4b0000; Q2 = 4b0000; Q3 = 4b0001; end2b10 :beginif (Q2 4b1001)beginQ2 = Q2 + 1; endelsebeginQ2 = 4b0000; if (Q3 4b1001)beginQ3 = Q3 + 1; end end
36、 Q1 = 4b0000; end2b11 :beginif (Q1 4b0101)begiQ1 = Q1 + 5; endelsebeginQ1 = 4b0000; end if (Q1 = 4b0101)beginif (Q2 4b1001)beginQ2 = Q2 + 1; endelsebeginQ2 = 4b0000; if (Q3 4b1001)beginQ3 = Q3 + 1; end end endelsebeginif (Q2 4b1001)beginQ2 = Q2 + 2; endelsebeginQ2 = 4b0001; if (Q3 4b1001)beginQ3 = Q
37、3 + 1; end end end enddefault :beginendendcase end C1 = Q1 ; C2 = Q2 ; C3 = Q3 ; end endmoduleSCAN-LED模塊源程序:module SCAN_LED (DI1, DI2, DI3, CLK2, SG, BT);input3:0 DI1; input3:0 DI2; input3:0 DI3; input CLK2; output6:0 SG; reg6:0 SG;output2:0 BT; reg2:0 BT;reg1:0 CNT4; reg3:0 A; always (CLK2)begin : P1reg1:0 SQ; if (CLK2 = 1b1)beginif (SQ = 2b10)beginSQ = 2b00; endelsebeginSQ = SQ + 1; end end CNT4 = SQ ; end always (CNT4)begin : P2case (CNT4)2b00 :beginBT = 3b001
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 檢修部績(jī)效管理制度
- 檢驗(yàn)區(qū)消毒管理制度
- 概預(yù)算科室管理制度
- 母嬰店收銀管理制度
- 氟利昂冷庫(kù)管理制度
- 水管站人員管理制度
- 江陽區(qū)橋梁管理制度
- 汽修店員工管理制度
- 汽車pdi管理制度
- 家用機(jī)器人技術(shù)及市場(chǎng)前景分析
- 船舶輕量化結(jié)構(gòu)設(shè)計(jì)-深度研究
- 2025年湖北省技能高考(建筑技術(shù)類)《建筑制圖與識(shí)圖》模擬練習(xí)試題庫(kù)(含答案)
- 2025年中國(guó)工商業(yè)光伏行業(yè)上下游產(chǎn)業(yè)鏈全景、發(fā)展環(huán)境及前景研究報(bào)告
- 源網(wǎng)荷儲(chǔ)一體化試點(diǎn)項(xiàng)目可行性研究報(bào)告模板
- 2024年中儲(chǔ)糧集團(tuán)黑龍江分公司招聘筆試真題
- 兒童呼吸系統(tǒng)科普知識(shí)
- 股票名詞解釋(大全)
- 2025年貴州貴陽市貴安新區(qū)產(chǎn)業(yè)發(fā)展控股集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 園林工人交通安全宣講
- 養(yǎng)老院消防安全應(yīng)急預(yù)案規(guī)范
- 食管動(dòng)力性疾病病因介紹
評(píng)論
0/150
提交評(píng)論