版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、主要 研究 內(nèi)容目標(biāo) 特色用 VHDL 語(yǔ)言設(shè)計(jì)一種新型出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì),能夠模擬啟動(dòng)、停止,并且能 夠在控制下實(shí)現(xiàn)不同時(shí)段不同價(jià)格的計(jì)價(jià),行駛里程,等待時(shí)間,等待費(fèi)用的顯 示。這種新型計(jì)價(jià)器不僅成本低、周期短、可靠性高,而且可隨時(shí)在系統(tǒng)中修改其邏輯功能。成果描述本設(shè)計(jì)系統(tǒng)已基本達(dá)到了設(shè)計(jì)要求,能實(shí)現(xiàn)啟動(dòng)/停止,并使計(jì)費(fèi)器正常運(yùn)轉(zhuǎn),但一些模塊還待改進(jìn),延遲現(xiàn)象比較嚴(yán)重。成果價(jià)值成本低、周期短、可靠性咼,而且可隨時(shí)在系統(tǒng)中修改其邏輯功能。 在抗干擾方面性能更強(qiáng),具有廣泛的應(yīng)用前景。、開展本課題的意義及工作內(nèi)容:1 課題意義:1 隨著生活水平的提高,全國(guó)已有上千家出租車公司,而且油價(jià)的不 穩(wěn)定
2、,出租車計(jì)費(fèi)系統(tǒng)也隨時(shí)跟著改變。一種成本低、周期短、可靠 性高,而且可隨時(shí)在系統(tǒng)中修改其邏輯功能的計(jì)費(fèi)器已經(jīng)成為必要。2.復(fù)習(xí) EDA 的相關(guān)學(xué)習(xí)中學(xué)到的知識(shí),特別是 EDA 課程的復(fù)習(xí)運(yùn)用。3. 培養(yǎng)自己查閱資料、收集資料、獨(dú)立解決問題、處理問題、解決難 點(diǎn)、總結(jié)設(shè)計(jì)經(jīng)驗(yàn)的能力。4. 了解出租車計(jì)費(fèi)系統(tǒng)的運(yùn)做;結(jié)合本次設(shè)計(jì)系統(tǒng)掌握應(yīng)用VHDL 語(yǔ)言及 MAXPLUSI 進(jìn)行電子電路設(shè)計(jì)的方法,使自己具有能應(yīng)用相關(guān)軟件 的運(yùn)用、調(diào)試、仿真、下載的能力;加強(qiáng)自己的動(dòng)手能力。5. 通過本次設(shè)計(jì),能基本掌握工程設(shè)計(jì)的步驟,設(shè)計(jì)技巧等知識(shí)。為以 后工作學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。2.工作內(nèi)容:1.基于 VHD
3、L 語(yǔ)言設(shè)計(jì)出租車計(jì)費(fèi)系統(tǒng),使其能夠模擬計(jì)費(fèi)器的啟動(dòng)、停止, 并能夠?qū)崿F(xiàn)計(jì)價(jià)功能,和相關(guān)的顯示功能。2.在上面的要求上做出相應(yīng)的創(chuàng)新。二、課題預(yù)期達(dá)到的效果:設(shè)計(jì)能夠?qū)崿F(xiàn)計(jì)價(jià)功能如:起步價(jià),里程價(jià),等待價(jià)格;以及顯示功能:顯示等待時(shí)間, 里程的顯示,計(jì)價(jià)的顯示。并且能夠?qū)崿F(xiàn)自檢功能。二、文獻(xiàn)綜述EDA (Electro nics Design Automatio n)技術(shù)是隨著集成電路和計(jì)算機(jī)技術(shù)的飛速發(fā)展應(yīng)運(yùn)而生的一種高級(jí)、快速、有效的電子設(shè)計(jì)自動(dòng)化工具。EDA 技術(shù)在數(shù)字系統(tǒng)中的應(yīng)用以基于 Altera 的 EPM7128SLC84-15 芯片和 MAX+Plusll 10.0 軟件平臺(tái)的
4、數(shù)字鐘的設(shè)計(jì)為例討論 EDA 技術(shù)在數(shù)字系統(tǒng)中的具體應(yīng)用。EDA 技術(shù)涉及面很廣 ,內(nèi)容豐富 ,從教案和實(shí)用的角度看 ,主要應(yīng)掌握如下 4 個(gè)方面的內(nèi)容 一是大規(guī)模可編程邏輯器件。二是硬件描述語(yǔ)言。三是軟件開發(fā)工具。四是實(shí)驗(yàn)開發(fā)系 統(tǒng)。其中 ,大規(guī)??删幊踢壿嬈骷抢?EDA 技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的載體 ,硬件描述語(yǔ)言 是利用 EDA 技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的主要表達(dá)手段,軟件開發(fā)工具是利用 EDA 技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的智能化的自動(dòng)設(shè)計(jì)工具,實(shí)驗(yàn)開發(fā)系統(tǒng)則是利用 EDA 技術(shù)進(jìn)行電子系統(tǒng)設(shè)計(jì)的下載工具及硬件驗(yàn)證工具。在設(shè)計(jì)方法上 ,EDA 技術(shù)為數(shù)字電子電路設(shè)計(jì)領(lǐng)域帶來了根本性的變革, 將傳
5、統(tǒng)的 “電路設(shè)計(jì)硬件搭試調(diào)試焊接 ”模式轉(zhuǎn)變?yōu)樵谟?jì)算機(jī)上自動(dòng)完成,采用“自頂而下”的全新設(shè)計(jì)方法 這種方法首先從系統(tǒng)入手 , 在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計(jì),在方框圖一級(jí)進(jìn)行仿真、糾錯(cuò) ,并用硬件描述語(yǔ)言對(duì)高層的系統(tǒng)進(jìn)行描述,在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證 ,然后用綜合優(yōu)化工具生成具體的門電路網(wǎng)表 , 其對(duì)應(yīng)的物理實(shí)現(xiàn)級(jí)可以是印刷電路板或?qū)S眉呻娐?由于設(shè)計(jì)的主要仿真和調(diào)試過程是在高層次上完成的,這既有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的錯(cuò)誤避免設(shè)計(jì)工時(shí)的浪費(fèi) ,同時(shí)也減少了邏輯功能仿真的工作量 ,提高了設(shè)計(jì)的一次成功率。基于 MAX+plusU開發(fā)平臺(tái)的 EDA 設(shè)計(jì)方法:MAX + plusn是一種與結(jié)構(gòu)
6、無(wú)關(guān)的全集成化設(shè)計(jì)環(huán)境CPLD 系列方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。的處理能力和高度的靈活性。其主要優(yōu)點(diǎn):與結(jié)構(gòu)無(wú)關(guān)、多平臺(tái)、豐富的設(shè)計(jì)庫(kù)、開放的界面、全集成化、支持多種硬件描述語(yǔ)言 ( HDL) 等。具體設(shè)計(jì)過程如下:1)設(shè)計(jì)輸入。MAX + plusn支持多種設(shè)計(jì)輸入方式,如原理圖輸入、波形輸入、文本輸入 和它們的混合輸入。2)設(shè)計(jì)處理。 設(shè)計(jì)輸入完后,用 MAX + plusn的編譯器編譯、查錯(cuò)、修改直到設(shè)計(jì)輸入正 確,同時(shí)將對(duì)輸入文件進(jìn)行邏輯簡(jiǎn)化、優(yōu)化,最后生成一個(gè)編程文件。 這是設(shè)計(jì)的核心環(huán) 節(jié)。3)設(shè)計(jì)檢查。MAX + plusn為設(shè)計(jì)者提供完善的檢查方法設(shè)計(jì)仿真和定時(shí)分析
7、。其目的 是檢驗(yàn)電路的邏輯功能是否正確,同時(shí)測(cè)試目標(biāo)器件在最差情況下的時(shí)延。這一查錯(cuò)過程對(duì) 于檢驗(yàn)組合邏輯電路的競(jìng)爭(zhēng)冒險(xiǎn)和時(shí)序邏輯電路的時(shí)序、時(shí)延等至關(guān)重要。4)器件編程。 當(dāng)電路設(shè)計(jì)、校驗(yàn)之后,MAX+plusn的 Programmer 將編譯器所生成的編 譯文件下載到具體的 CPLD 器件中,即實(shí)現(xiàn)目標(biāo)器件的物理編程5) 系統(tǒng)仿真。使用 VHDL 語(yǔ)言設(shè)計(jì) FPGA 勺幾個(gè)常見問題的探討:1分頻電路分頻電路是數(shù)字系統(tǒng)設(shè)計(jì)中的基本電路。在硬件電路設(shè)計(jì)中,時(shí)鐘信號(hào)是最重要的 信號(hào)之一,經(jīng)常需要對(duì)較高頻率的時(shí)鐘進(jìn)行分頻操作,得到較低頻率的時(shí)鐘信號(hào)。分頻電 路一般分為三種:第一種是任意占空比的偶數(shù)
8、分頻及非等占空比的奇數(shù)分頻,通常由計(jì)數(shù)器或計(jì)數(shù) 器的級(jí)聯(lián)來完成。 第二種是等占空比的奇數(shù)分頻電路。要實(shí)現(xiàn)占空比為50%的 M=2N+份頻電路,第三種是小數(shù)分頻電路。實(shí)現(xiàn)分頻系數(shù)為N-0.5 的分頻器可以采用 1 個(gè)模 N 的減法計(jì)數(shù), 使設(shè)計(jì)者能對(duì) Altera 的各種MAX+ plusn開發(fā)系統(tǒng)具有強(qiáng)大器、 1 個(gè)異或門、 1 個(gè) 2 分頻器。要想用同一個(gè)電路完成多種形式半分頻,可以在半整數(shù) 分頻器原理的基礎(chǔ)上對(duì)異或門加 1 個(gè)使能控制信號(hào)。延時(shí)電路是電子設(shè)計(jì)中常用的電路。在學(xué)習(xí)數(shù)字電路時(shí)采用實(shí)現(xiàn)脈沖的延遲,而在進(jìn)行信號(hào)處理時(shí),很多設(shè)計(jì)并不能使用 VHDL語(yǔ)言設(shè)計(jì)時(shí)一般用計(jì)數(shù)器或計(jì)數(shù)器的級(jí)聯(lián)
9、來實(shí)現(xiàn)。3 雙 向在工程應(yīng)用中,雙向電路是設(shè)計(jì)者必須面對(duì)的問題。使用時(shí),經(jīng)常會(huì)遇到很多接口控制電路的設(shè)計(jì),例如FPGA 與外部存儲(chǔ)設(shè)備的接口電路設(shè)計(jì)、FPGA 與 DSP 接口電路的設(shè)計(jì)、FPGA 與 CPU 接口電路的設(shè)計(jì)等,其中數(shù)據(jù)總線的設(shè)計(jì)是不 可避免的,而數(shù)據(jù)總線往往是雙向的。因此,如何正確處理數(shù)據(jù)總線是進(jìn)行時(shí)序邏輯電路 設(shè)計(jì)的基礎(chǔ)。4VHDL 語(yǔ)言中的+一位網(wǎng)友是這樣說的;“ VHDL 是提供了操作符“ + ”,而且在很多情況下,我們 是可以直接用這個(gè)加操作符的。但是,VHDL 提供的加法操作只能給出“和”,卻無(wú)法給出“進(jìn)位”。例如我們?cè)谠O(shè)計(jì)計(jì)數(shù)器的時(shí)候經(jīng)常用到的加 1 操作,對(duì)于一
10、個(gè) 8 位的計(jì)數(shù)器, 當(dāng)計(jì)數(shù)器的結(jié)果為 Oxff 時(shí),如果在加 1 就為 0 x00。實(shí)際上,結(jié)果應(yīng)該時(shí) 0 x100,而最高位 的 1 就是進(jìn)位,我們無(wú)法利用。而我們的實(shí)際設(shè)計(jì)中,不僅要用“和”,有時(shí)還要用到兩個(gè)數(shù)相加的進(jìn)位。所以有必要用VHDL 來描述一個(gè)帶進(jìn)位的加法器。加法器實(shí)際上完全可以由組合邏輯實(shí)現(xiàn),但在頻率較高的場(chǎng)合下工作時(shí),容易產(chǎn)生毛刺。 所以整個(gè)加法器設(shè)計(jì)成 時(shí)序電路的形式,所有的加操作都是時(shí)鐘的上升沿觸發(fā)的?;?VHDL 語(yǔ)言的出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)【摘 要】 :介紹一種基于 ALTERA 公司大規(guī)??删幊踢壿嬈骷?EPF10K10 的應(yīng)用VHDL 語(yǔ)言設(shè)計(jì)的出租車計(jì)費(fèi)器的一
11、種新的方案,使其具有模擬出租車起動(dòng)、停止、暫停和加速等功能,并用動(dòng)態(tài)掃描電路顯示出租車所走的里程,顯示所走路程需要的費(fèi)用。所有源程序經(jīng) Altrera 公司的軟件 Max+Plusn10.0 調(diào)試,仿真正確,下載到 Altrera 公司的 EPF10K10LC84-4芯片中 ,模擬結(jié)果基本符合預(yù)計(jì)要求。由于使用FPGA 芯片 ,具有外圍電少、成本低、抗干擾能力強(qiáng)等特點(diǎn),可用于實(shí)際的出租車收費(fèi)系統(tǒng) .引言1研究背景隨著 EDA 技術(shù)的發(fā)展及大規(guī)模可編程邏輯器件 CPLD/FPGA 勺出現(xiàn),電子系統(tǒng)的設(shè)計(jì)技術(shù) 和工具發(fā)生了巨大的變化,通過 EDA 技術(shù)對(duì) CPLD/FPGA 編程開發(fā)產(chǎn)品,不僅成本
12、低、周期 短、可靠性高,而且可隨時(shí)在系統(tǒng)中修改其邏輯功能9。2 延 時(shí)電路 555 型集成定時(shí)器來555 集成定時(shí)器來完成。用電路VHDL 語(yǔ)言設(shè)計(jì) FPGA現(xiàn)代電子系統(tǒng)設(shè)計(jì)通常運(yùn)用 EDA(Electronic DesignAutomation) 技術(shù) , 采用并行工程和 “自頂向下”的設(shè)計(jì)方法 , 從系統(tǒng)設(shè)計(jì)入手 ,在頂層進(jìn)行層次劃分和結(jié)構(gòu)設(shè)計(jì) , 在功能模塊一 級(jí)進(jìn)行仿真、糾錯(cuò),并用 VHDL 硬件描述語(yǔ)言對(duì)高層次的系統(tǒng)行為進(jìn)行描述,VHDL(Very HighSpeed Integrated Circuit Hardware Description Language,超高速集成電路硬件
13、描述語(yǔ)言) 主要描述數(shù)字系統(tǒng)的行為、結(jié)構(gòu)、功能和接口?,F(xiàn)在計(jì)費(fèi)器大多數(shù)以單片機(jī)為平臺(tái)的,但是單片機(jī)程序是不通用的,不同的芯片有不 同的指令集,因此設(shè)計(jì)研發(fā)比較困難。而FPGA 等數(shù)字可編程器件的出現(xiàn)徹底解決了這個(gè)問題,而且性能更穩(wěn)定、設(shè)計(jì)更靈活、能實(shí)現(xiàn)較復(fù)雜的功能,運(yùn)用EDA 軟件可方便的在電腦上實(shí)現(xiàn)設(shè)計(jì)與仿真。本文根據(jù)龍巖市出租車計(jì)費(fèi)的實(shí)際情況,采用 VHDL 語(yǔ)言來設(shè)計(jì)的一種出租車計(jì)費(fèi)器,源程序經(jīng) Max+ Plusn軟件調(diào)試優(yōu)化,最后下載到 EPF10K10LC84-4 芯片中來 實(shí)現(xiàn)的。由于使用 FPGA 芯片,外圍電路少、成本低、抗干擾能力強(qiáng),可用于實(shí)際的出租車收費(fèi)系統(tǒng)中。FPGA
14、是電子設(shè)計(jì)領(lǐng)域中最具活力和發(fā)展前途的一項(xiàng)技術(shù),未來必定會(huì)取代部分 落伍的數(shù)字器件。2主要研究工作本次設(shè)計(jì)主要涉及到 EDA 防真系統(tǒng),而由于 MAXPLUS II 應(yīng)用防真軟件的特殊性,只 能夠在實(shí)驗(yàn)箱上進(jìn)行操作。本次設(shè)計(jì)需要選擇較大容量芯片如:EPF10K10LC84-4 芯片,內(nèi)容上以出租車計(jì)費(fèi)系統(tǒng)為基礎(chǔ),利用VHDL 語(yǔ)言模擬計(jì)費(fèi),原理簡(jiǎn)單,易懂,能夠?qū)崿F(xiàn)里程、等待時(shí)間、里程價(jià)、等待價(jià)、以及分段計(jì)費(fèi)等功能。在實(shí)現(xiàn)過程中具體研究開發(fā)如 下:(1)模擬出租車計(jì)費(fèi)系統(tǒng),其中基本的模塊有 9 個(gè),包括分頻模塊 CLKGEN 等待 判別模塊 DDPB 里程計(jì)算模塊 LCJS,里程計(jì)費(fèi)模塊 LCJF
15、,等待計(jì)時(shí)模塊 DDJS,等待計(jì)費(fèi)模塊 DDJF,選擇信號(hào)模塊 SE,輸出數(shù)據(jù)模塊 SCXZ 顯示模塊 DI。(2) 增加時(shí)間段設(shè)置模塊,出租車白天和夜晚的計(jì)費(fèi)標(biāo)準(zhǔn)是不一樣的。(3)增加個(gè)自檢功能,模擬行駛一段路,檢查所走的路程與相關(guān)計(jì)費(fèi)是否標(biāo)準(zhǔn)。3主要研究?jī)?nèi)容本次設(shè)計(jì)的主要內(nèi)容分為5 章,第一章 EDA 簡(jiǎn)介,主要介紹 VHDL 語(yǔ)言設(shè)計(jì)步驟,MAX+PLUSII 簡(jiǎn)介。第二章方案設(shè)計(jì)與論證 第三章單元模塊設(shè)計(jì) 為本文的核心部分第四章 系統(tǒng)仿真、綜合、下載,主要圍繞本次設(shè)計(jì)仿真過程中遇到的問題和所得的結(jié)果進(jìn)行一個(gè) 小結(jié)。 第五章為結(jié)束語(yǔ)和致謝辭,最后是參考文獻(xiàn)部分和各個(gè)模塊主要程序介紹。1.
16、 EDA 簡(jiǎn)介1.1 VHDL 語(yǔ)言設(shè)計(jì)步驟1利用 VHDL 語(yǔ)言進(jìn)行設(shè)計(jì)可分為以下幾個(gè)步驟:1.1.1設(shè)計(jì)要求的定義。在從事設(shè)計(jì)進(jìn)行編程VHDL 代碼之前,必須先對(duì)你的設(shè)計(jì)目的和要求有一個(gè)明確的認(rèn)識(shí)。對(duì)所需的信號(hào)建立時(shí)間、時(shí)鐘 / 輸出時(shí)間、最大系統(tǒng)工作頻率、關(guān)鍵的路徑等這些要 求,要有一個(gè)明確的定義,這將有助于設(shè)計(jì),然后再選擇適當(dāng)?shù)脑O(shè)計(jì)方式和相應(yīng)的器件結(jié) 構(gòu),進(jìn)行設(shè)計(jì)的綜合。1. 1. 2 用 VHD 語(yǔ)言進(jìn)行設(shè)計(jì)描述。(1) 應(yīng)決定設(shè)計(jì)方式,設(shè)計(jì)方式一般說來有三種 : 自頂向下設(shè)計(jì),自底向上設(shè)計(jì),平坦 式設(shè)計(jì)。前兩種方式包括設(shè)計(jì)階層的生成,而后一種方式將描述的電路當(dāng)作單模塊電路來 進(jìn)行的
17、。自頂向下的處理方式要求將你的設(shè)計(jì)分成不同的功能元件,每個(gè)元件具有專門定 義的輸入和輸出,并執(zhí)行專門的邏輯功能。首先生成一個(gè)由各功能元件相互連接形成的頂 層塊來做成一個(gè)網(wǎng)表,然后再設(shè)計(jì)其中的各個(gè)元件。而自底向上的處理方法正好相反。平 坦式設(shè)計(jì)則是指所有功能元件均在同一層和同一圖中詳細(xì)進(jìn)行的。(2) 編寫設(shè)計(jì)代碼。編寫VHDL 語(yǔ)言的代碼與編寫其他計(jì)算機(jī)程序語(yǔ)言的代碼有很大的不同。必須清醒地認(rèn)識(shí)到正在 設(shè)計(jì)硬件,編寫的 VHDL 代碼必須能夠綜合到采用可編程邏輯器件來實(shí)現(xiàn)的數(shù)字邏輯中。懂 得 EDA 工具中仿真軟件和綜合軟件的大致工作過程,將有助于編寫出優(yōu)秀的代碼。1.1. 3 用 VHD 仿真
18、器對(duì) VHDL 原代碼進(jìn)行功能仿真。對(duì)于大型設(shè)計(jì),采用 VHDL 仿真軟件對(duì)其進(jìn)行仿真可以節(jié)省時(shí)間,可以在設(shè)計(jì)的早期階 段檢測(cè)到設(shè)計(jì)中的錯(cuò)誤,從而進(jìn)行修正,以便盡可能地減少對(duì)設(shè)計(jì)日程計(jì)劃的影響。因?yàn)?對(duì)于小型設(shè)計(jì),其綜合優(yōu)化、配置花費(fèi)的時(shí)間不多,而且在綜合優(yōu)化之后,往往會(huì)發(fā)現(xiàn)為 了實(shí)現(xiàn)性能目標(biāo),將需要修改設(shè)計(jì)。在這種情況下,用戶事先在原代碼仿真時(shí)所花費(fèi)的時(shí) 間是毫無(wú)意義的,因?yàn)橐坏└淖冊(cè)O(shè)計(jì),還必須重新再做仿真。1. 1. 4 利用 VHDI 綜合優(yōu)化軟件對(duì) VHDL 原代碼進(jìn)行綜合優(yōu)化處理。選擇目標(biāo)器件、輸入約束條件后,VHDL 綜合優(yōu)化軟件工具將對(duì) VHDL 原代碼進(jìn)行處理,產(chǎn)生一個(gè)優(yōu)化了的
19、網(wǎng)絡(luò)表,并可以進(jìn)行粗略的時(shí)序仿真。1. 1. 5 配置。將綜合優(yōu)化處理后得到的優(yōu)化了的網(wǎng)絡(luò)表,安放到前面選定的CPLD 或 FPGA 目標(biāo)器件之中,這一過程成為配置。1. 1. 6 配置后的時(shí)序仿真。這時(shí)的時(shí)序仿真將檢查諸如信號(hào)建立時(shí)間、時(shí)鐘到輸出、寄存器到寄存器的時(shí)延是否 滿足要求。因?yàn)橐呀?jīng)得到實(shí)際連線引起的時(shí)延數(shù)據(jù),所以仿真結(jié)果能比較精確地未來芯片 的實(shí)際性能如果時(shí)延仿真結(jié)果不能滿足設(shè)計(jì)的要求,就需要重新對(duì)VHDL 原代碼進(jìn)行綜合優(yōu)化,并重新裝配于新的器件之中,或選擇不同速度品質(zhì)的器件。同時(shí),也可以重新觀察 和分析 VHDL原代碼,以確認(rèn)描述是正確有效的。只有這樣,取得的綜合優(yōu)化和配置的結(jié)
20、果 才符合實(shí)際要求。1. 1. 7 器件編程。在成功地完成了設(shè)計(jì)描述、綜合優(yōu)化、配置和配置后的時(shí)序仿真之后,則可以對(duì)器件 編程和繼續(xù)進(jìn)行系統(tǒng)設(shè)計(jì)的其他工作。1.2 MAX+PLUSII 簡(jiǎn)介本次設(shè) 計(jì)選用 的開發(fā)環(huán)境是美國(guó) ALTERA 公司自行設(shè)計(jì) 開發(fā)的 EDA 工具 。 MAX+PLUSII ,其全稱為 Multiple Array and Programmable Logic User Systems 。它具有運(yùn)行 速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。它的器件系列從最初的Max 系列到最新的 FLEXIOK 系列,從 500 門到 10 萬(wàn)門提供了滿足各種條件需要的一系列器件。
21、其中最為先 進(jìn)的 FLEX系列采用獨(dú)特的快通道技術(shù),使得器件的可預(yù)測(cè)性大大增強(qiáng),速度也得到提高, 資源利用率達(dá) 70 滋右時(shí),F(xiàn)LEX I OK 系列可以提供 70MHz 左右的工作速度。MAX 十 PLUSH結(jié)合各種系列器件的物理結(jié)構(gòu),提供了各種的優(yōu)化措施,以在提高工作速度和資源利用率 之間給以平衡。從而對(duì)大多數(shù)設(shè)計(jì)提供解決方案。 MAX+PLUSII 提供了原理圖輸入、文本輸 入(采用硬件描述語(yǔ)言 )和波形輸入等多種輸入手段,并可以任意組合使用。利用該工具所 配備的編輯、編譯、仿真、綜合、芯片編程等功能,可將設(shè)計(jì)電路圖或電路描述程序變成 基本的邏輯單元寫入到可編程的芯片中(如FPGA 芯片
22、),做成 ASIC 芯片。用戶首先對(duì)所做工程進(jìn)行設(shè)計(jì),明確設(shè)計(jì)目的、設(shè)計(jì)要求。然后利用原理圖輸入方式或文本輸入方式進(jìn)行 設(shè)計(jì)輸入。輸入完成后,進(jìn)行編譯,若編譯過程中發(fā)現(xiàn)錯(cuò)誤,則檢查設(shè)計(jì)輸入,修改密 碼,直至沒有錯(cuò)誤發(fā)生 : 編譯完成后,就可以進(jìn)行仿真,檢查設(shè)計(jì)是否達(dá)到設(shè)計(jì)要求,否則 還需要重新檢查設(shè)計(jì)輸入。仿真結(jié)果達(dá)到要求后,就可以進(jìn)行燒錄,把設(shè)計(jì)程序下載到目 的芯片中。最后把芯片放到實(shí)際系統(tǒng)中進(jìn)行驗(yàn)證、測(cè)試。MAX+PLUSII 借助 EDIF 網(wǎng)表文件,SRAM 目 標(biāo)文件(.sof), LPM 和 VHDL 能與 Can de nee. Mentor Graphics, OrCAD, S
23、y nopsys,Synplieity 和 Viewlogic 等公司提供的其他多種EDA 工具接口 .MAX+PLUSII 編譯器可以在 PC機(jī)及各種工作站平臺(tái)上運(yùn)行,這使MAX+PLUSII 成為工業(yè)界唯一與平臺(tái)和結(jié)構(gòu)無(wú)關(guān)的可編程邏輯設(shè)計(jì)環(huán)境5。2 方案設(shè)計(jì)與論證2.1設(shè)計(jì)方案比較方案一:采用單片機(jī)設(shè)計(jì),此種方法應(yīng)用電路簡(jiǎn)單,但是軟件設(shè)計(jì)復(fù)雜,可能引起系統(tǒng)的不可靠性增加。方案二:采用可編程邏輯器件與單片機(jī)聯(lián)合設(shè)計(jì),雖然可發(fā)揮它們各自的長(zhǎng)處,但是分工 與連接也是比較棘手的問題,穩(wěn)定性也是個(gè)問題。方案三 : 采用可編程邏輯器件設(shè)計(jì),此種方法可以就用可編程邏輯器件模塊化的結(jié)構(gòu),無(wú) 論是仿真、下載
24、、調(diào)試都來的方便。通過 EDA 技術(shù)對(duì) CPLDFPGA 編程開發(fā)產(chǎn)品,不僅 成本低、周期短、可靠性高,而且可隨時(shí)在系統(tǒng)中修改其邏輯功能。綜上所述本設(shè)計(jì)采用第三種方案。2.2設(shè)計(jì)任務(wù)與要求用 VHDL 語(yǔ)言設(shè)計(jì)一個(gè)多功能的出租車計(jì)費(fèi)系統(tǒng),要求該計(jì)費(fèi)系統(tǒng)具有以下幾個(gè)功能(1) 計(jì)價(jià)功能1起步價(jià):顧客上車,顯示起步價(jià)5,行車距離在 2 公里以內(nèi)。2里程價(jià):起步 5 元,超過 2 公里按 1. 8 元/公里計(jì)費(fèi),當(dāng)超過 8 公里每公里 2.7 元。3等待價(jià):龍巖市區(qū)等待時(shí)價(jià)滿前 5 分鐘 0.9 元,滿 7 分鐘 1.8 元,滿 10 分鐘 2.7 元。少于 10 秒不計(jì)。在這次設(shè)計(jì)中,我把等待時(shí)間
25、前 1 小時(shí)的等待費(fèi)用為 12 元(20 分/ 分鐘),超過 1 小時(shí)的等待費(fèi)用為 20 元( 33 分/分鐘)。(2) 顯示功能:1顯示等待時(shí)間:精確到 0.1 秒,顯示等待費(fèi)用2顯示里程:精確到 0.1 公里,3顯示計(jì)價(jià):可顯示總價(jià),顯示范圍 Z99 元。(3) 自檢功能2.3 總體方案根據(jù)系統(tǒng)的設(shè)計(jì)要求,我們可將整個(gè)出租車計(jì)費(fèi)系統(tǒng)CZJFXT 分為九個(gè)模塊,它們分別是:分頻模塊 CLKGEN 等待判別模塊 DDPB 里程計(jì)算模塊 LCJS,里程計(jì)費(fèi)模塊 LCJF,等待計(jì) 時(shí)模塊DDJS,等待計(jì)費(fèi)模塊 DDJF,選擇信號(hào)模塊 SE,輸出數(shù)據(jù)模塊 SCXZ 顯示模塊 DI 其設(shè) 計(jì)原理圖如
26、2-1 所示。3.單元模塊設(shè)計(jì)3. 1 等待判別模塊 DDPB根據(jù)速度傳感器脈沖信號(hào) WCLK 和分頻器產(chǎn)生的基準(zhǔn)時(shí)鐘信號(hào)CLK1HZ 計(jì)算單位時(shí)間里 WCLK 勺脈沖個(gè)數(shù)(每 1 千 M 產(chǎn)生 10 個(gè)脈沖信號(hào),即每百 M 產(chǎn)生一個(gè)脈沖信號(hào)),亦即 出租車行駛速度,從而判別出租車是否處于等待狀態(tài),發(fā)出等待標(biāo)志信號(hào)DDBZ 當(dāng)速度大于 12 千 M/小時(shí),即速度大于200M/分鐘時(shí),出租車處于運(yùn)行狀態(tài),這時(shí)等待標(biāo)志DDBZ=0 當(dāng)速度小于等于 12 千 M/小時(shí),出租車處于等待狀態(tài),這時(shí)等待標(biāo)志DDBZ=1 該模塊的 VHDL 程序設(shè)計(jì)可分為三個(gè)進(jìn)程;60 秒周期性跳變信號(hào)產(chǎn)生進(jìn)程,每分鐘行駛
27、距離計(jì)算進(jìn)程,等待標(biāo)志判別進(jìn)程。等待標(biāo)志判別進(jìn)程就是比較每分鐘WCLK 脈沖個(gè)數(shù)與等待狀態(tài) WCLK 脈沖臨界個(gè)數(shù)的大小,從而確定DDBZ 的賦值。模塊封裝原理圖如 3-1 所示:(3-1 )等待判別模塊(2-1 )設(shè)計(jì)原理圖S93.2 里程計(jì)算模塊 LCJS該模塊可以預(yù)制參數(shù),使其實(shí)際計(jì)數(shù)值大于預(yù)制數(shù)值后,每 計(jì)數(shù)值送進(jìn)制轉(zhuǎn)換電路轉(zhuǎn)換后送譯碼動(dòng)態(tài)掃描模塊進(jìn)行顯示。100 M 送出一個(gè)脈沖, 并將在本設(shè)計(jì)中設(shè)置固定是價(jià)格5 元,按照龍巖市最新標(biāo)準(zhǔn),超過2 公里按 1.8 元/公里計(jì)費(fèi),當(dāng)超過 8 公里時(shí)每公里 2.7 元.當(dāng)輸入一個(gè)脈沖里程計(jì)數(shù)一次,即 0.1 公里,相應(yīng)的費(fèi)用設(shè)定初始值其價(jià)
28、5 元模塊封裝見下圖.。里程計(jì)算模塊 LCJS:根據(jù)速度傳感器脈沖信號(hào) WCLK 和等待標(biāo)志 DDBZ 對(duì)出租車行駛的里程數(shù)XSLC 進(jìn)行計(jì)算,同時(shí)發(fā)出里程標(biāo)志信號(hào)LCBZ和里程計(jì)費(fèi)標(biāo)志信號(hào) JFBZ。 如果LCBZ=1說明行駛距離超過 2千M,里程計(jì)費(fèi)啟動(dòng); 如果LCBZ=0,說明沒超過 2 千 M,計(jì)費(fèi)標(biāo)志信號(hào) JFBZ 應(yīng)跳變 1 次。該模塊的 VHDL 程序設(shè)計(jì) 可分為兩個(gè)進(jìn)程:里程計(jì)算及標(biāo)志產(chǎn)生進(jìn)程,產(chǎn)生計(jì)費(fèi)信號(hào)進(jìn)程。產(chǎn)生計(jì)費(fèi)信號(hào)進(jìn)程。產(chǎn) 生計(jì)費(fèi)信號(hào)進(jìn)程就是每行駛2千 MJFBZ 由低電平變?yōu)?1,經(jīng)過一個(gè)系統(tǒng)時(shí)鐘周期后JFBZ 又回復(fù)到低電平 0,里程計(jì)費(fèi)模塊LCJF 就是在 JF
29、BZ 脈沖信號(hào)的上升沿進(jìn)行計(jì)費(fèi)的加法操作。模塊封裝原理圖如 3-2 所示LCJS&TRRTXSLCXS _ _ 0DBOZMCLkLCBZijF*總 N(3-2 )里程計(jì)費(fèi)模塊 里程計(jì)算模塊達(dá)到預(yù)計(jì)效果,仿真波形圖如下所示:START(3-3 )里程計(jì)算模塊仿真圖3. 3 里程計(jì)費(fèi)模塊 LCJF:在計(jì)費(fèi)標(biāo)志信號(hào) JFBZ,等待標(biāo)志信號(hào) DDBZ里程標(biāo)志信號(hào) LCBZ和時(shí)段標(biāo)志 信號(hào) XDBZ等信號(hào)的控制下,計(jì)算行駛里程超過2 千 M 以上里程的費(fèi)用 LCFY該模塊的 VHDL 程序是通過由多個(gè)條件控制的加法進(jìn)程來,里程計(jì)費(fèi)的條件是在 DDBZ=0 并且在 JFBZ 的上升沿根據(jù) SDB
30、Z 分別進(jìn)行回潮計(jì)費(fèi)操作。當(dāng)SDBZ=1時(shí),表示在早 6: 00晚 23 : 00 時(shí)段,其單價(jià) SD1 為 1.8 元/千 M 當(dāng) SDBZ=0 時(shí),表示其他時(shí)段,其單價(jià)SD2 為 2 元/千 M 如果 LCBZ=1 說明行駛距離超過 2千 M 里程計(jì)費(fèi)啟動(dòng);如果 LCBZ=Q 說明沒超過 2 千 M,按起價(jià)計(jì)費(fèi)。 模塊封裝原理圖如 3-4 所示-Iff兇1QHD01DHtUIDH07dZ 2|datri5 0? er|ddla3|l!5.0j抄冃2|d剜屮.0q、MWK4Pim 8T - untidH丨-序d - weiornn EdWorJ粘 呼E3 Edt如尢LJbibn;進(jìn)jndof
31、l Helpms鳥A3E2.5ms3.0kns3.5msJ (fen s4 5ma5.0ms5.5/nsI:用陽(yáng)用爲(wèi)弓SI;ooo日:】:oooc )(565gooE;(Si6r)(ooi( )(0011丫皿也乞gem百K001611皿存)(5500旳E:;(55i5) SwQZ)HHJ1D目頁(yè)呵POOP阪巨陽(yáng)00卩丸)010乂001 ! $ 001) )X1斗.甜0!1)(吵1& 100打 如0世)(5麗為XI1A阿可低呃HC01DLC JF:STiHlRTr- DOBZ1LC&ZLCFt X5 rT0aFBZSOB Z靄耐韻手3】-dziiwdevh.匚KTWCWMCKK電
32、華業(yè)論交-Mrcrwirft Wtard |4逮S3韭戔巾:29(3-5 )里程計(jì)費(fèi)模塊仿真圖3.4 等待計(jì)時(shí)模塊 DDJS模塊時(shí)間計(jì)費(fèi)模塊為模 16 的加法計(jì)數(shù)器,該模塊以 DDBZ 言號(hào)為起始,時(shí)鐘 送入標(biāo)準(zhǔn)脈沖 1H乙通過一個(gè)多層嵌套的加法進(jìn)程來完成等待時(shí)間計(jì)數(shù)。程序使 用 if 語(yǔ)句,START 為高電平是復(fù)位,ms=0000。mg=0000。fs=0000。fg ur|dm|1 前 a|datM15.O|TL rL rL rL r.nr nnnnnnnHOOOO0000LOOSC ,ILO110;LD1A4 0230丄睦Jo館0STARTODFY X5 CLK1HZOOF粋 心昆鳳図
33、盤 圍通蠹 同聞瀏 簽薜攣聖HaInterval 0.0nsL :11 File Edit Vtew Node Assign Utilities Options Wihdow Help經(jīng)過仿真達(dá)到預(yù)期效果;仿真圖如下:MAX+plus II - e: niaMplu52cadd j f - rddjF.scf - Wave Form EditorRd:0.0nsName:Value:10A- START0-DDBZ1亠 A CLK1 HZ14DDFYHOOOOd? CNTBDHGO砂0DFY1-51HOOOO心32|dataa7.GHGO1Zder|datga7.OHGO20Q.0nsII40
34、Q.Ons6000ns0OOOnIIJ000000 !I01X02X03X00000000Ioi( 02 f03rX W JK02(03Kb塊,SE 與被傳送數(shù)據(jù)的具體關(guān)系如表3-1 所示。選擇模塊封裝如 3-10 所示,輸出控制模塊封裝 3-11 所示。SECLH FLEBt選擇模塊封裝(3-10)SCXZ;SEL2.OJXSLC JL5. OLCF YICXS. ODHTR 7 -亠01!DD%Jl|XS. , ODDFYX5,rO):2 4riaBBreiaBBri r ! !(3-11)輸出控制模塊封裝圖數(shù)據(jù)輸出控制程序:DATA=DDSJ(7 DOWNTO 0) HEN SEL= 0
35、00”ELSE DDSJ(15 DOWNTO 8) WHEN SEL= ” 001 ”。 ELSE LCFY(7 DOWNTO 0) WHEN SEL= ”010”。ELSE LCFY(15 DOWNTO 8) WHEN SEL= ” 011 ”。ELSE DDFY(7 DOWNTO 0) WHEN SEL= ”100”。ELSE DDFY(15 DOWNTO 8) WHEN SEL= ” 101”。ELSE XSLC(7 DOWNTO 0) WHEN SEL= ”110”。 ELSE X SLC(15 DOWNTO 8) WHEN SEL= ” 111”。具體程序見附錄表 3-1 :經(jīng)過仿真
36、達(dá)到預(yù)期效果,圖形如下:(3-12)輸出控制時(shí)序仿真圖SEL000001010011100101110111被選 數(shù)據(jù)等待時(shí)間 秒數(shù)DDS7.0等待時(shí)間 分?jǐn)?shù)DDS15.8超過 2 公 里計(jì)費(fèi)低8 位LCJF7.0超過2公 里計(jì)費(fèi)高 8 位LCJF15.8等待計(jì)費(fèi) 低 8位DDFY7.0等待計(jì)費(fèi)高8 位DDFY15.8里程數(shù)據(jù) 低 8位XSLC7.0里程數(shù)據(jù)高8 位XSLC15.8對(duì)呼幻旺E任Edit皆Mode些巒的ons出id葉D目副刪魚吐判:|制畠倒國(guó)出豈也應(yīng)國(guó)直吧滋宴割匪理|空|1 HAi(4p|u II -UntAledl -1甌H簽就I - W-d-vtlQriiri Editvrj
37、URe( |0.D購(gòu)|*|*| Time國(guó).日購(gòu)00hIrflerval: 34 8usNtNTlQ護(hù)SEL亠XSLC“ LCFY10 Ous2Q0u$Qu?50Out60 Out70 0u$SDOut10QHDHOBBSH0365X 1 X 2 J0365HQH500150HCKacesa“ DATAHSOX 0:-5000035Q13. 7 顯示模塊顯示模塊是由七段 LED 數(shù)碼管譯碼和動(dòng)態(tài)掃描顯示兩部分組成。數(shù)碼管控制及譯碼顯 示模塊將十進(jìn)制的輸入信號(hào)用七段數(shù)碼管顯示,由七段發(fā)光二極管組成數(shù)碼顯示器,利用字段的不同組合,可分別顯示 09 十個(gè)數(shù)字。本設(shè)計(jì)中,要求輸出的段信號(hào)為低電平有效系
38、統(tǒng)頂層原理圖模塊封裝如 3-13 所示(3-13)顯示模塊封裝4.系統(tǒng)仿真、綜合、下載與調(diào)試4. 1 系統(tǒng)仿真、綜合、下載仿真是 EDA 技術(shù)的重要組成部分,也是對(duì)設(shè)計(jì)的電路進(jìn)行功能和性能測(cè)試的有效手段。EDA 工具提供了強(qiáng)大且與電路實(shí)時(shí)行為相吻合的精確硬件系統(tǒng)測(cè)試工具。各個(gè)功能子模塊設(shè)計(jì)完成后,利用 MAXPLUS 的圖形編輯器(Graphic Editor)將各功能子模塊(.sym)進(jìn)行連接。芯片管腳定義可以直接用編輯.pin 文件或在 Floor Plan Editor下進(jìn)行。完成管腳定義后選擇器件(FLEX1OK10LC8 4),編譯后生成.sof、. pof 及報(bào)告文件.rpt。在建
39、立了波 形文件、輸入信號(hào)節(jié)點(diǎn)、波形參數(shù)、加輸入信號(hào)激勵(lì)電平并存盤之后,選擇主菜單“MAX+plusll ”中的仿真器項(xiàng)Simulator ” ,彈出對(duì)話框之后單擊Start ”進(jìn)行仿真運(yùn)算 完成之后就可以看到時(shí)序波形。圖4-2 為總電路的時(shí)序圖。最終的電路設(shè)計(jì)完成后,若總體電路編譯無(wú)錯(cuò),且時(shí)序仿真成功,可進(jìn)行硬件測(cè)試。將總 電路下載到可編程邏輯器件中,按 fit 文件中自動(dòng)分配引腳搭建硬件電路。系統(tǒng)頂層原理圖如圖4-1 所示。打開電源,數(shù)碼管有正確的數(shù)字顯示,操作運(yùn)行實(shí)驗(yàn)結(jié)果完全符合要求。查看報(bào)告文件可得 到器件引腳的利用情況及器件內(nèi)部資源的使用情況,通過更換適當(dāng)?shù)钠骷蛊滟Y源配置達(dá)到最優(yōu)。選
40、擇器件的一般原則是系統(tǒng)所使用的資源不要超過器件資源的80%,若超過 90%,系統(tǒng)功耗將增大,工作不穩(wěn)定。本設(shè)計(jì)中輸入、輸出引腳共用16 個(gè),器件利用率遠(yuǎn)遠(yuǎn)低于80%具有較大的擴(kuò)展空間。4-1BESTAftTSTARTSDBZO.K經(jīng)過仿真達(dá)到預(yù)計(jì)效果: MAJC-t-phi II - lilWDdE-vtidldEEigBfv9OOiB50帖BOQusII*I1EETim&: O.IDn5-166 QusTO.OJS日QOIB50 015100I*_0_I1 X 2 K 3X 5XGtX口HaaTw 血供何(m五!0010 仙COOOYOOli *D039 X D03C 0050 00
41、64 0D7B ODBC *ODBX00別 * OK8 加 ODCgjQQ廠可“X QQ2S X阿)T麗口Q064 X換X四珥OOAD* 00前廠矗XOODCooo am * oozg ooac了DOBO*OONco?門OOBCfoooo門tm I Poss鼻 期c廠麗麗K。阿X呵&)T麗門CLOOPX確麗門BBCf 0DE4呦直1(oaoDX聞“二 叩33丫 叩廠丫00印:叩討*OOTB*OOBU丫OtmBfflOfflOfflOOOOOOOOOraXXHXHXHWHXWooAQ門0B4 * oacaXOODCODAD ( OOB4 00C8 DODCrjorammraoofraoo
42、園開蠟川普勺MO1. _KTWCWyKDK窄呻越| -U:曲如h 理巴企咅-kr&soft Wwd :$甸申薄J71+T(4-2)出租車時(shí)序仿真圖4. 2 系統(tǒng)調(diào)試結(jié)果系統(tǒng)硬件電路圖如圖(4.3)發(fā)光二級(jí)管組ALTERAFLEX*EPF10K10LCa41 扣* i h擇器亠塾碼皆旃岀譜碼8 -f 擇 器TrJ IJIJU.U. LI咼0 0 B H 0 H B底0 Q B 0 0 0 B撥碼開關(guān)組,本系統(tǒng)通過在 MAX+PLUS 軟件進(jìn)行編譯,綜合最后下載到FPGA(EPF10KLC84-4 芯片并在實(shí)驗(yàn)開發(fā)系統(tǒng)上進(jìn)行實(shí)驗(yàn),實(shí)際測(cè)試表明系統(tǒng)的各項(xiàng)功能要求均得到實(shí)現(xiàn),并且系統(tǒng) 運(yùn)行、穩(wěn)
43、定性良好。結(jié)束語(yǔ)結(jié)束語(yǔ)本次設(shè)計(jì)是基 VHDL 語(yǔ)言的出租車計(jì)費(fèi)系統(tǒng),在MAXPLUSII10.0 下順利通過編譯與仿真,下載?;緦?shí)現(xiàn)了預(yù)定的效果。但是也有不足之處,系統(tǒng)延遲現(xiàn)象比較明顯。通過這次畢業(yè)設(shè)計(jì),使我得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在 EDA 應(yīng)用系統(tǒng)開發(fā),以及在常用編程設(shè)計(jì)思路技巧,VHDL 語(yǔ)言編程的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。在這次設(shè)計(jì)中遇 到了很大的挑戰(zhàn),為了更好的做好這次設(shè)計(jì),特地請(qǐng)教了司機(jī),了解出租車計(jì)費(fèi)系統(tǒng)的運(yùn) 作,特別是一直困擾我的等待計(jì)費(fèi)問題 ,龍巖市出租車起步價(jià)格為 5 元,2 公里后每公里
44、 1.8 元, 超過 8 公里是 2.7 元每公里 !而等待費(fèi)用是停止時(shí)間達(dá)到 5 分鐘系統(tǒng)自動(dòng)加上 0.9 元, 若 等待時(shí)間達(dá)到了 7 分鐘, 系統(tǒng)加上 1.8 元,滿十分鐘后是 2.7 元. 這些在設(shè)計(jì)初都是沒有意料 到的!所以給我?guī)砗艽蟮睦щy ,通過老師的指導(dǎo)和網(wǎng)絡(luò)交流 ,總算解決了這一問題 ,我設(shè)置 了 1 小時(shí)之內(nèi)每分鐘 20 分 ,1 小時(shí)后每分鐘 33 分 .由于前期主要花時(shí)間在實(shí)習(xí)上,再加上對(duì) VHDL 語(yǔ)言并不是很熟悉,所以很多功能想到卻并不能按照自己的意愿完成 !但是在張老師的悉心指導(dǎo)下 ,順利完成了這次設(shè)計(jì) ,為以后工作 打下了基礎(chǔ) !附錄主要 VHDL 源程序:1
45、等待判別模塊 DDPB 勺 VHDLS程序:-DDPB.VHDLIBRARY IEEE 。USE IEEE.STD_LOGIC_1164.ALL 。USE IEEE.STD_LOGIC_UNSIGNED.ALL 。USE IEEE.STD_LOGIC_ARITH.ALL 。ENTITY DDPB ISPORT (START,WCLK:IN STD_LOGIC 。-輸入速度傳感器信號(hào)和啟動(dòng)信號(hào)CLK1HZ:IN STD_LOGIC 。-輸入 1 秒時(shí)鐘信號(hào)DDBZ:OUT STD_LOGIC) 。 -輸出等待等待標(biāo)志信號(hào) END ENTITY DDPB 。ARCHITECTURE ART OF
46、DDPB ISSIGNAL T60S:STD_LOGIC 。 -60 秒計(jì)時(shí)信號(hào)SIGNAL WCLKCOU:STD_LOGIC_VECTOR(7 DOWNTO 0)。BEGINPROCESS(START,CLK1HZ)IS - 產(chǎn)生 60 秒周期性信號(hào)跳變進(jìn)程 VARIABLECNT60:STD_LOGIC_VECTOR(7 DOWNTO 0)。 -每分鐘行駛距離BEGINIF START=1THENCnt60:=00000000 。T60s=0。ELSIF CLK1HZEVENT AND CLK1HZ=1THENIF CNT60=00111100 THENT60S=1 。 CNT60:=0
47、0000000 。ELSECNT60:=CNT60+1 。 T60S=0 。END IF 。END IF 。END PROCESS 。PROCESS(START,WCLK,T60S) IS - 每分鐘行駛距離計(jì)算進(jìn)程 BEGINIF START=1 THENWCLKCOU=00000000 。ELSIF WCLKEVENT AND WCLK=1 THENIF T60S=1 THENWCLKCOU =00000000 。ELSEWCLKCOU=WCLKCOU+1 。 -距離計(jì)算,單位為 M END IF 。END IF 。END PROCESS 。PROCESS(WCLKCOU,T60S) IS
48、 - 等待標(biāo)志判別進(jìn)程 BEGINIF T60SEVENT AND T60S=1 THENIF WCLKCOU=11001000 THENDDBZ=1 。 - 汽車等待ELSEDDBZ=0 。 - 汽車行駛END IF 。END IF 。END PROCESS 。END ARCHITECTURE ART 。 4,等待計(jì)時(shí)模塊 DDJS 的 VHDL 源程序 LIBRARY IEEE 。USE IEEE.STD_LOGIC_1164.ALL 。USE IEEE.STD_LOGIC_UNSIGNED.ALL 。USE IEEE.STD_LOGIC_ARITH.ALL 。ENTITY DDJS IS
49、PORT(START,DDBZ:IN STD_LOGIC 。 - 啟動(dòng)信號(hào), 等待標(biāo)志 CLK1HZ: IN STD_LOGIC 。- 時(shí)鐘信號(hào)DDSJ:OUT STD_LOGIC_VECTOR(15 DOWNTO 0) 。 - 等待時(shí)間 XDBZ:OUTSTD_LOGIC) 。 - 熄燈標(biāo)志END ENTITY DDJS 。ARCHITECTURE ART OF DDJS ISSIGNAL MS,MG ,FS,FG:STD_LOGIC_VECTOR(3 DOWNTO 0) 。- 秒個(gè)位,秒十位,分十位,分個(gè)位SIGNAL XIDENG: STD_LOGIC 。 -熄燈 BEGINPROCES
50、S(START,DDBZ,CLK1HZ) ISBEGINIF START=1THEN - 沒有啟動(dòng)計(jì)費(fèi)MS=0000 。MS=0000 。FS=0000 。FG=0000 。ELSIF CLK1HZEVENT AND CLK1HZ=1 THENIF DDBZ=1 THEN - 汽車等待IF MG=9 THEN MG=0000 。IF MS=5 THEN MS=0000 。IF FG=9 THEN FG=0000 。IF FS=5 THENXIDENG=1 。FS=0000 。ELSEFS=FS+1 。END IF 。ELSEFG=FG+1 。END IF 。ELSEMS=MS+1 。END I
51、F 。ELSEMG=MG+1 。END IF 。END IF 。END IF 。END PROCESS 。XDBZ=XIDENG 。DDSJ(15 DOWNTO 12) =FS 。DDSJ(11 DOWNTO 8) =FG 。DDSJ(7 DOWNTO 4) =MS 。DDSJ(3 DOWNTO 0)= MG 。-等待時(shí)間END ARCHITECTURE ART 。- 熄燈標(biāo)志為 1-分?jǐn)?shù)十位計(jì)算- 分?jǐn)?shù)個(gè)位計(jì)算- 秒數(shù)十位計(jì)算- 秒數(shù)個(gè)位計(jì)算- 送給熄燈標(biāo)志2 等待計(jì)費(fèi)模塊 DDJF 勺VHDL 源程序:LIBRARY IEEE 。USE IEEE.STD_LOGIC_1164.ALL 。U
52、SE IEEE.STD_LOGIC_UNSIGNED.ALL 。use ieee.std_logic_arith.alloUSE IEEE.STD_LOGIC_ARITH.ALL 。ENTITY DDJF IS - 每分鐘等待費(fèi)用定義,單位為分 GENERIC(WDJ1:INTEGER:=20 。 -單價(jià) 1WDJ2:INTEGER:=33) 。 - 單價(jià) 2PORT(START,XDBZ,DDBZ,CLK1HZ:IN STD_LOGIC - 啟動(dòng)信號(hào),熄燈信號(hào),等待標(biāo)志,時(shí)鐘信號(hào) DDFY:OUT STD_LOGIC_VECTOR(15 DOWNTO 0) END ENTITY DDJF 。
53、ARCHITECTURE ART OF DDJF ISSIGNAL DDFY1:STD_LOGIC_VECTOR(15 DOWNTO 0) SIGNALCNT60:STD_LOGIC_VECTOR(7 DOWNTO 0) SIGNAL T60S: STD_LOGIC 。 -60 秒定時(shí)信號(hào) BEGINPROCESS(CLK1HZ) IS - 產(chǎn)生 60 秒周期性跳變信號(hào)BEGINIF CLK1HZEVENT AND CLK1HZ=1 THENIF CNT60=00111100THEN -CNT60=60T60S=1 。CNT60=00000000 。ELSECNT60=CNT60+1 。T60
54、S=0 。END IF 。END IF 。END PROCESS 。 - 等待費(fèi)用計(jì)算進(jìn)程 PROCESS(T60S,XDBZ,DDBZ)ISBEGINIF START=1 THENDDFY1=0000000000000000 。ELSIF T60SEVENT AND T60S=1THENIF DDBZ=1THEN - 等待時(shí)間小于 1 小時(shí) DDFY1=DDFY1+WDJ1 。ELSIF XDBZ=1THEN - 等待時(shí)間大于 1 小時(shí)DDFY1=DDFY1+WDJ2 。END IF 。END IF 。END PROCESS 。-等待費(fèi)用計(jì)算結(jié)果輸出DDFY=DDFY1 。END ARCHI
55、TECTURE ART 。library IEEE 。use IEEE.std_logic_1164.all 。 use ieee.std_logic_unsigned.all 。-等待費(fèi)用entity LCJF isGENERIC(SD0:INTEGER:=160 。- 06:00-22:00 單價(jià) ,1.8 元SD1:INTEGER:=180 。 - 其它時(shí)間 2 元 qibu:INTEGER:=60 。 - 起步公里數(shù), 2 公里內(nèi)為固定價(jià)格 qbjg:INTEGER:=1000 - 起步價(jià)格, 2 公里內(nèi)為 5 元)。port ( START,DDBZ: in std_logic 。
56、- 開始, 等待標(biāo)志 LCBZ,jfbz,SDBZ: in std_logic 。- 里程,計(jì)費(fèi),時(shí)段標(biāo)志 LCFY : out std_logic_vector(15 downto 0) - 行駛產(chǎn)生的費(fèi)用 ) 。end entity 。architecture arch of LCJF issignal LCFY1: std_logic_vector(15 downto 0) 。 - 里程費(fèi)用緩存 beginPROCESS(start,LCBZ,jfbz,SDBZ)BEGINif start=1 then-new cycle,not wait,runningLCFY1=0000000000
57、000000 。 -CLEAR OLD V ALUESelsif JFBZevent and JFBZ=1 then - 計(jì)費(fèi)了 if ddbz=0 then- 運(yùn)行中if LCBZ=0 then -6KM 以內(nèi),起步以內(nèi)LCFY1=0000000000000000 。elsif LCBZ=1 then -6KM 以上,超過起步 if SDBZ=0 then - 時(shí)段 0LCFY1=LCFY1+SD0 。 - 相應(yīng)費(fèi)用 elsif SDBZ=1 then - 時(shí)段 1LCFY1=LCFY1+SD1 。 end if 。end if 。end if 。end if 。end process。lc
58、fy=lcfy1+qbjg 。end arch 。3. 里程計(jì)算模塊程序 :- LCJS.VHD library IEEE 。use IEEE.std_logic_1164.all 。 use ieee.std_logic_unsigned.all 。use ieee.std_logic_arith.all 。entity LCJS is-1:INTEGER:=180 。 - 其它時(shí)間qibu:INTEGER:=60 - 起步公里數(shù), 2 公里內(nèi)為固定價(jià)格GENERIC(-0:INTEGER:=160- 06:00-22:00 單價(jià)-jg:INTEGER:=1000 - 起步價(jià)格, 2 公里內(nèi)
59、為 5 元)。 port ( START,DDBZ,WCLK: in std_logic 。XSLC: out std_logic_vector(15 downto 0) 。LCBZ,jfbz : out std_logic ) 。end entity 。architecture arch of LCJS issignal bms : std_logic_vector(15 downto 0) 。 - 百 M 數(shù) signal bms1:integer range 0 to 99999 。signal jfbz1:std_logic 。 beginPROCESS(start,wclk)vari
60、able sms :std_logic_vector(7 downto 0) 。 - 十 M 數(shù) BEGINif start=1 then-new cycle,not wait,runningsms:=00000000 。bms=0000000000000000 。 - 百 M 數(shù) lcbz=0 。elsif wclkevent and wclk=1 then if ddbz=0 then - 行駛中 if sms=00001010 then -10 次計(jì)數(shù),100m sms:=00000000 。bms=qibu then -2km 大于起步里程 , 20 00m lcbz=1 。end if 。 else sms:=sms+1 。e
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度產(chǎn)品發(fā)布會(huì)宣傳視頻拍攝服務(wù)合同4篇
- 2025年度魚塘承包權(quán)抵押貸款服務(wù)合同3篇
- 2025年度家用電器維修技能認(rèn)證合作合同4篇
- 2025年度電商物流信息化建設(shè)與運(yùn)營(yíng)管理合同4篇
- 2025年度綠色環(huán)保住宅出售與租賃綜合服務(wù)合同4篇
- 農(nóng)產(chǎn)品倉(cāng)儲(chǔ)安全管理-深度研究
- 二手汽車買賣規(guī)范合同2024年版版
- 2025年度車輛運(yùn)輸與維修服務(wù)合同4篇
- 2025年度綠色節(jié)能車間廠房出租服務(wù)協(xié)議范本3篇
- 2025年度鋼材行業(yè)環(huán)保設(shè)施投資合同
- 《大學(xué)生職業(yè)發(fā)展與就業(yè)指導(dǎo)》課程標(biāo)準(zhǔn)
- 第23課《出師表》課件(共56張)
- GB/T 3953-2024電工圓銅線
- 發(fā)電機(jī)停電故障應(yīng)急預(yù)案
- 接電的施工方案
- 常用藥物作用及副作用課件
- 幼兒阿拉伯?dāng)?shù)字描紅(0-100)打印版
- 社會(huì)組織等級(jí)評(píng)估報(bào)告模板
- GB/T 12173-2008礦用一般型電氣設(shè)備
- 新媒體研究方法教學(xué)ppt課件(完整版)
- 2020新版?zhèn)€人征信報(bào)告模板
評(píng)論
0/150
提交評(píng)論