裝配圖出租車計費系統(tǒng)的設(shè)計,裝配,出租車,計費,系統(tǒng),設(shè)計
摘? 要
該系統(tǒng)利用VHDL語言、PLD設(shè)計出租車計費系統(tǒng),以MAX+PLUSⅡ軟件作為開發(fā)平臺,設(shè)計了出租車計費器系統(tǒng)程序并進行了程序仿真。使其實現(xiàn)計費以及預(yù)置和模擬汽車啟動、停止、暫停等功能,并動態(tài)掃描顯示車費數(shù)目。
關(guān)鍵詞: 出租車計費器;計數(shù)器;VHDL語言;MAX+PLUSⅡ;
Rental car fare register system design
Student: YANG Youtian Teacher: LIU Yaoming
Abstract:This system using the VHDL language, PLD design rental car costs the system, develops the platform by the MAX+PLUSⅡsoftware achievement, has designed the rental car fare register system program and has carried on the procedure simulation. Causes its realization to cost as well as the initialization and the simulation automobile starts, stops, function and so on suspension, and dynamic scanning demonstration fare number.
Key words: The rental car costs the system; the counter; the VHDL language; MAX+PLUS II;
目 次
摘要……………………………………………………………………………………Ⅰ
Abstract………………………………………………………………………………Ⅱ
1 引言…………………………………………………………………………………1
1.1 設(shè)計背景………………………………………………………………………1
1.2 EDA發(fā)展概況…………………………………………………………………2
2 出租車計費系統(tǒng)的設(shè)計……………………………………………………………7
2.1 出租車計費設(shè)計………………………………………………………………7
2.2 基本設(shè)計思想…………………………………………………………………7
3 出租車計費系統(tǒng)的實現(xiàn)……………………………………………………………8
3.1 系統(tǒng)的總體框圖………………………………………………………………8
3.2 程序流程圖………………………………………………………………………9
3.3 系統(tǒng)各功能模塊的實現(xiàn)………………………………………………………10
3.3.1 模塊JIFEI的實現(xiàn)……………………………………………………10
3.3.2 模塊X的實現(xiàn)………………………………………………………12
3.3.3 模塊XXX1的實現(xiàn)……………………………………………………15
3.3.4 模塊SE的實現(xiàn)………………………………………………………16
3.3.5 模塊DI的實現(xiàn)………………………………………………………17
4 系統(tǒng)仿真……………………………………………………………………………19
4.1 模塊X的仿真結(jié)果…………………………………………………………19
4.2 模塊JIFEI的仿真結(jié)果……………………………………………………19
4.3 模塊XXX1的仿真結(jié)果………………………………………………………19
4.4 模塊SE的結(jié)果驗證…………………………………………………………20
4.5 模塊DI的結(jié)果驗證…………………………………………………………20
5 結(jié)論…………………………………………………………………………………21
致謝……………………………………………………………………………………22
參考文獻………………………………………………………………………………23
III
1
1 引 言
1.1 設(shè)計背景
隨著出租車行業(yè)的發(fā)展,對出租車計費器的要求也越來越高。二十世紀后半期,隨著集成電路和計算機技術(shù)的飛速發(fā)展,數(shù)字系統(tǒng)也得到了飛速發(fā)展,其實現(xiàn)方法經(jīng)歷了由分立元件、SSI、MSI到LSI、VLSI以及UVLSI的過程。同時為了提高系統(tǒng)的可靠性與通用性,微處理器和專業(yè)集成電路(ASIC)逐漸取代了通用全硬件LSI電路,而ASIC以其體積小、重量輕、功耗低、速度快、成本低、保密性好而脫穎而出。目前,業(yè)界大量可編程邏輯器件(PLD),尤其是現(xiàn)場可編程邏輯器件(FPLD)被大量地應(yīng)用在ASIC的制作當中。在可編程集成電路的開發(fā)過程中,以計算機為工作平臺,融合了應(yīng)用電子技術(shù)、計算機技術(shù)、智能化技術(shù)最新成果的電子設(shè)計自動化(EDA)技術(shù)主要能輔助進行三方面的設(shè)計工作:IC設(shè)計,電子電路設(shè)計以及PCB設(shè)計
理想的可編程邏輯開發(fā)系統(tǒng)能符合大量的設(shè)計要求:它能夠支持不同結(jié)構(gòu)的器件,在多種平臺運行,提供易于使用的界面,并且有廣泛的特征。此外,一個設(shè)計系統(tǒng)應(yīng)該能給設(shè)計師提供充分自由的設(shè)計輸入方法和設(shè)計工具選擇。Altered公司開發(fā)的MAX+PLUSⅡ開發(fā)系統(tǒng)能充分滿足可編程邏輯設(shè)計所有要求。
MAX+PLUSⅡ設(shè)計環(huán)境所提供的靈活性和高效性是無可比擬的。其豐富的圖形界面,輔之以完整的、可及時訪問的在線文檔,使設(shè)計人員能夠輕松、愉快地掌握和使用MAX+PLUSⅡ軟件。
編程器是一種專門用于對可編程器(如EPROM,EEPROM,GAL,CPLD,PAL等)進行編程的專業(yè)設(shè)備
PLD器件的邏輯功能描述一般分為原理圖描述和硬件描述語言描述,原理圖描述是一種直觀簡便的方法,它可以將現(xiàn)有的小規(guī)模集成電路實現(xiàn)的功能直接用PLD器件來實現(xiàn),而不必去將現(xiàn)有的電路用語言來描述,但電路圖描述方法無法做到簡練;硬件描述語言描述是可編程器件設(shè)計的另一種描述方法,語言描述可能精確和簡練地表示電路的邏輯功能,現(xiàn)在PLD的設(shè)計過程中廣泛使用。常用的硬件描述語言有ABEL,VHDL語言等,其中ABEL是一種簡單的硬件描述語言,其支持布爾方程、真值表、狀態(tài)機等邏輯描述,適用于計數(shù)器、譯碼器、運算電路、比較器等邏輯功能的描述;VHDL語言是一種行為描述語言,其編程結(jié)構(gòu)類似于計算機中的C語言,在描述復(fù)雜邏輯設(shè)計時,非常簡潔,具有很強的邏輯描述和仿真能力,是未來硬件設(shè)計語言的主流。
VHDL就是超高速集成電路硬件描述語言。覆蓋面廣,描述能力強,是一個多層次的硬件描述語言。在VHDL語言中,設(shè)計的原始描述可以非常簡練,經(jīng)過層層加強后,最終可成為直接付諸生產(chǎn)的電路或版圖參數(shù)描述。具有良好的可讀性,即容易被計算機接受,也容易被讀者理解。使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關(guān),當工藝改變時,只需修改相應(yīng)程序中的屬性參數(shù)即可。支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用。一個大規(guī)模的設(shè)計不可能由一個人獨立完成,必須由多人共同承擔,VHDL為設(shè)計的分解和設(shè)計的再利用提供了有力的支持。
1.2 EDA發(fā)展概況
電子設(shè)計技術(shù)的核心就是EDA技術(shù),EDA是指以計算機為工作臺,融合應(yīng)用電子技術(shù)、計算機技術(shù)、智能化技術(shù)最新成果而研制成的電子CAD通用軟件包,主要能輔助進行三方面的設(shè)計工作,即IC設(shè)計、電子電路設(shè)計和PCB設(shè)計。EDA技術(shù)已有30年的發(fā)展歷程,大致可分為三個階段。70年代為計算機輔助設(shè)計(CAD)階段,人們開始用計算機輔助進行IC版圖編輯、PCB布局布線,取代了手工操作。80年代為計算機輔助工程(CAE)階段。與CAD相比,CAE除了有純粹的圖形繪制功能外,又增加了電路功能設(shè)計和結(jié)構(gòu)設(shè)計,并且通過電氣連接網(wǎng)絡(luò)表將兩者結(jié)合在一起,實現(xiàn)了工程設(shè)計。CAE的主要功能是:原理圖輸入,邏輯仿真,電路分析,自動布局布線,PCB后分析。90年代為電子系統(tǒng)設(shè)計自動化(EDA)階段。
中國EDA市場已漸趨成熟,不過大部分設(shè)計工程師面向的是PC主板和小型ASIC領(lǐng)域,僅有小部分(約11%)的設(shè)計人員開發(fā)復(fù)雜的片上系統(tǒng)器件。為了與臺灣和美國的設(shè)計工程師形成更有力的競爭,中國的設(shè)計隊伍有必要購入一些最新的EDA技術(shù)。
在信息通信領(lǐng)域,要優(yōu)先發(fā)展高速寬帶信息網(wǎng)、深亞微米集成電路、新型元器件、計算機及軟件技術(shù)、第三代移動通信技術(shù)、信息管理、信息安全技術(shù),積極開拓以數(shù)字技術(shù)、網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的新一代信息產(chǎn)品,發(fā)展新興產(chǎn)業(yè),培育新的經(jīng)濟增長點。要大力推進制造業(yè)信息化,積極開展計算機輔助設(shè)計(CAD)、計算機輔助工程(CAE)、計算機輔助工藝(CAPP)、計算機機輔助制造(CAM)、產(chǎn)品數(shù)據(jù)管理(PDM)、制造資源計劃(MRPII)及企業(yè)資源管理(ERP)等。有條件的企業(yè)可開展“網(wǎng)絡(luò)制造”,便于合作設(shè)計、合作制造,參與國內(nèi)和國際競爭。開展“數(shù)控化”工程和“數(shù)字化”工程。自動化儀表的技術(shù)發(fā)展趨勢的測試技術(shù)、控制技術(shù)與計算機技術(shù)、通信技術(shù)進一步融合,形成測量、控制、通信與計算機(M3C)結(jié)構(gòu)。在ASIC和PLD設(shè)計方面,向超高速、高密度、低功耗、低電壓方向發(fā)展。外設(shè)技術(shù)與EDA工程相結(jié)合的市場前景看好,如組合超大屏幕的相關(guān)連接,多屏幕技術(shù)也有所發(fā)展。
中國自1995年以來加速開發(fā)半導(dǎo)體產(chǎn)業(yè),先后建立了幾所設(shè)計中心,推動系列設(shè)計活動以應(yīng)對亞太地區(qū)其它EDA市場的競爭。
在EDA軟件開發(fā)方面,目前主要集中在美國。但各國也正在努力開發(fā)相應(yīng)的工具。日本、韓國都有ASIC設(shè)計工具,但不對外開放 。中國華大集成電路設(shè)計中心,也提供IC設(shè)計軟件,但性能不是很強。相信在不久的將來會有更多更好的設(shè)計工具有各地開花并結(jié)果。據(jù)最新統(tǒng)計顯示,中國和印度正在成為電子設(shè)計自動化領(lǐng)域發(fā)展最快的兩個市場,年復(fù)合增長率分別達到了50%和30%。
EDA技術(shù)發(fā)展迅猛,完全可以用日新月異來描述。EDA技術(shù)的應(yīng)用廣泛,現(xiàn)在已涉及到各行各業(yè)。EDA水平不斷提高,設(shè)計工具趨于完美的地步。EDA市場日趨成熟,但我國的研發(fā)水平還很有限,需迎頭趕上。
可編程邏輯器件自70年代以來,經(jīng)歷了PAL、GALGPLD、FPGA幾個發(fā)展階段,其中CPLD/FPGA高密度可編程邏輯器件,目前集成度已高達200萬門/片,它將各模塊ASC集成度高的優(yōu)點和可編程邏輯器件設(shè)計生產(chǎn)方便的特點結(jié)合在一起,特別適合于樣品研制或小批量產(chǎn)品開發(fā),使產(chǎn)品能以最快的速度上市,而當市場擴大時,它可以很容易地轉(zhuǎn)換掩模ASIC實現(xiàn),因此開發(fā)風險也大為降低。
硬件描述語言(HDL)是一種用于設(shè)計硬件電子系統(tǒng)的計算機語言,它用軟件編程的方式來描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,與傳統(tǒng)的門級描述方式相比,它更適合大規(guī)模系統(tǒng)的設(shè)計。例如一個32位的加法器,利用圖形輸入軟件需要輸人500至1000個門,而利用VHDL語言只需要書寫一行“A=B+C”即可。而且 VHDL語言可讀性強,易于修改和發(fā)現(xiàn)錯誤。早期的硬件描述語言,如ABEL、HDL、AHDL,由不同的EDA廠商開發(fā),互不兼容,而且不支持多層次設(shè)計,層次間翻譯工作要由人工完成。為了克服以上不足,1985年美國國防部正式推出了高速集成電路硬件描述語言VHDL,1987年IEEE采納VHDL為硬件描述語言標準(IEEE STD-1076)。
VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行為級。寄存器傳輸級和邏輯門多個設(shè)計層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件俄語言的功能,整個自頂向下或由下向上的電路設(shè)計過程都可以用VHDL來完成。VHDL還具有以下優(yōu)點:(1)VHDL的寬范圍描述能力使它成為高層進設(shè)計的核心,將設(shè)計人員的工作重心提高到了系統(tǒng)功能的實現(xiàn)與調(diào)試,而花較少的精力于物理實現(xiàn)。VHDL可以用簡潔明確的代碼描述來進行復(fù)雜控制邏輯設(shè)計,靈活且方便,而且也便于設(shè)計結(jié)果的交流、保存和重用。(3)VHDL的設(shè)計不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。(4)VHDL是一個標準語言,為眾多的EDA廠商支持,因此移植性好。傳統(tǒng)的硬件電路設(shè)計方法是采用自下而上的設(shè)計方法,即根據(jù)系統(tǒng)對硬件的要求,詳細編制技術(shù)規(guī)格書,并畫出系統(tǒng)控制流圖;然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對系統(tǒng)的功能進行細化,合理地劃分功能模塊,并畫出系統(tǒng)的功能框圖;接著就進行各功能模塊的細化和電路設(shè)計;各功能模塊電路設(shè)計、調(diào)試完成后,將各功能模塊的硬件電路連接起來再進行系統(tǒng)的調(diào)試,最后完成整個系統(tǒng)的硬件設(shè)計。采用傳統(tǒng)方法設(shè)計數(shù)字系統(tǒng),特別是當電路系統(tǒng)非常龐大時,設(shè)計者必須具備較好的設(shè)計經(jīng)驗,而且繁雜多樣的原理圖的閱讀和修改也給設(shè)計者帶來諸多的不便。為了提高開發(fā)的效率,增加已有開發(fā)成果的可繼承性以及縮短開發(fā)周期,各ASIC研制和生產(chǎn)廠家相繼開發(fā)了具有自己特色的電路硬件描述語言(Hardware Description Language,簡稱HDL)。但這些硬件描述語言差異很大,各自只能在自己的特定設(shè)計環(huán)境中使用,這給設(shè)計者之間的相互交流帶來了極大的困難。因此,開發(fā)一種強大的、標準化的硬件描述語言作為可相互交流的設(shè)計環(huán)境已勢在必行。于是,美國于1981年提出了一種新的、標準化的HDL,稱之為VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,簡稱VHDL。這是一種用形式化方法來描述數(shù)字電路和設(shè)計數(shù)字邏輯系統(tǒng)的語言。設(shè)計者可以利用這種語言來描述自己的設(shè)計思想,然后利用電子設(shè)計自動化工具進行仿真,再自動綜合到門電路,最后用PLD實現(xiàn)其功能。
覆蓋面廣,描述能力強,是一個多層次的硬件描述語言。在VHDL語言中,設(shè)計的原始描述可以非常簡練,經(jīng)過層層加強后,最終可成為直接付諸生產(chǎn)的電路或版圖參數(shù)描述。
具有良好的可讀性,即容易被計算機接受,也容易被讀者理解。
使用期長,不會因工藝變化而使描述過時。因為VHDL的硬件描述與工藝無關(guān),當工藝改變時,只需修改相應(yīng)程序中的屬性參數(shù)即可。
支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用。一個大規(guī)模的設(shè)計不可能由一個人獨立完成,必須由多人共同承擔,VHDL為設(shè)計的分解和設(shè)計的再利用提供了有力的支持。
當電路系統(tǒng)采用VHDL語言設(shè)計其硬件時,與傳統(tǒng)的電路設(shè)計方法相比較,具有如下的特點:
即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計的內(nèi)容細化,最后完成系統(tǒng)硬件的整體設(shè)計。在設(shè)計的過程中,對系統(tǒng)自上而下分成三個層次進行設(shè)計:
第一層次是行為描述。所謂行為描述,實質(zhì)上就是對整個系統(tǒng)的數(shù)學模型的描述。一般來說,對系統(tǒng)進行行為描述的目的是試圖在系統(tǒng)設(shè)計的初始階段,通過對系統(tǒng)行為描述的仿真來發(fā)現(xiàn)設(shè)計中存在的問題。在行為描述階段,并不真正考慮其實際的操作和算法用何種方法來實現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)及其工作的過程是否能到達系統(tǒng)設(shè)計的要求。
第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結(jié)構(gòu)的程序,其抽象程度高,是很難直接映射到具體邏輯元件結(jié)構(gòu)的。要想得到硬件的具體實現(xiàn),必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統(tǒng)采用RTL方式描述,才能導(dǎo)出系統(tǒng)的邏輯表達式,才能進行邏輯綜合。
第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉(zhuǎn)換成用基本邏輯元件表示的文件(門級網(wǎng)絡(luò)表)。此時,如果需要,可將邏輯綜合的結(jié)果以邏輯原理圖的方式輸出。此后可對綜合的結(jié)果在門電路級上進行仿真,并檢查其時序關(guān)系。
應(yīng)用邏輯綜合工具產(chǎn)生的門網(wǎng)絡(luò)表,將其轉(zhuǎn)換成PLD的編程碼,即可利用PLD實現(xiàn)硬件電路的設(shè)計。
由自上而下的設(shè)計過程可知,從總體行為設(shè)計開始到最終的邏輯綜合,每一步都要進行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設(shè)計中存在的問題,從而可以大大縮短系統(tǒng)的設(shè)計周期。
系統(tǒng)可大量采用PLD芯片。
由于目前眾多制造PLD芯片的廠家,其工具軟件均支持VHDL語言的編程。所以利用VHDL語言設(shè)計數(shù)字系統(tǒng)時,可以根據(jù)硬件電路的設(shè)計需要,自行利用PLD設(shè)計自用的ASIC芯片,而無須受通用元器件的限制。
EDA系統(tǒng)框架結(jié)構(gòu) EDA系統(tǒng)框架結(jié)構(gòu)(FRAMEWORK)是一套配置和使用EDA軟件包的規(guī)范。目前主要的EDA系統(tǒng)都建立了框架結(jié)構(gòu),如 CADENCE公司的Design Framework,Mentor公司的Falcon Framework,而且這些框架結(jié)構(gòu)都遵守國際CFI組織制定的統(tǒng)一技術(shù)標準??蚣芙Y(jié)構(gòu)能將來自不同EDA廠商的工具軟件進行優(yōu)化組合,集成在一個易于管理的統(tǒng)一的環(huán)境之下,而且還支持任務(wù)之間、設(shè)計師之間以及整個產(chǎn)品開發(fā)過程中的信息傳輸與共享,是并行工程和自頂向下設(shè)計施的實現(xiàn)基礎(chǔ)。
EDA技術(shù)的每一次進步,都引起了設(shè)計層次上的一次飛躍,從設(shè)計層次上分,70年代為物理級設(shè)計(CAD),80年代為電路級設(shè)計(CAE),90年代進入到系統(tǒng)級設(shè)計(EDA)。物理級設(shè)計主要指IC版圖設(shè)計,一般由半導(dǎo)體廠家完成,對電子工程師沒有太大的意義,因此本文重點介紹電路級設(shè)計和系統(tǒng)級設(shè)計。
仿真通過后,根據(jù)原理圖產(chǎn)生的電氣連接網(wǎng)絡(luò)表進行PCB板的自動布局布線。在制作PCB板之前還可以進行PCB后分析,其中包括熱分析、噪聲及竄擾分析、電磁兼容分析、可靠性分析等,并可將分析后的結(jié)果參數(shù)反標回電路圖,進行第二次仿真,也稱為后仿真。后仿真主要是檢驗PCB板在實際工作環(huán)境中的可行性。
由此可見,電路級的EDA技術(shù)使電子工程師在實際的電子系統(tǒng)產(chǎn)生前,就可以全面地了解系統(tǒng)的功能特性和物理特性,從而將開發(fā)風險消滅在設(shè)計階段,縮短了開發(fā)時間,降低了開發(fā)成本。
系統(tǒng)級設(shè)計 進人90年代以來,電子信息類產(chǎn)品的開發(fā)明顯呈現(xiàn)兩個特點:一是產(chǎn)品復(fù)雜程度提高;二是產(chǎn)品上市時限緊迫。然而,電路級設(shè)計本質(zhì)上是基于門級描述的單層次設(shè)計,設(shè)計的所有工作(包括設(shè)計忙人、仿真和分析、設(shè)計修改等)都是在基本邏輯門這一層次上進行的,顯然這種設(shè)計方法不能適應(yīng)新的形勢,一種高層次的電子設(shè)計方法,也即系統(tǒng)級設(shè)計方法,應(yīng)運而生。
高層次設(shè)計是一種“概念驅(qū)動式”設(shè)計,設(shè)計人員無須通過原理圖描述電路,而是針對設(shè)計目標進行功能描述。由于擺脫了電路細節(jié)的束縛,設(shè)計人員可以把精力集中于創(chuàng)造性的方案與概念的構(gòu)思上,而且這些概念構(gòu)思以高層次描述的形式輸人計算機,EDA系統(tǒng)就能以規(guī)則驅(qū)動的方式自動完成整個設(shè)計。這樣,新的概念就能迅速有效地成為產(chǎn)品,大大縮短了,產(chǎn)品的研制周期。不僅如此,高層次設(shè)計只是定義系統(tǒng)的行為特性,可以不涉及實現(xiàn)工藝,因此還可以在廠家綜合庫的支持下,利用綜合優(yōu)化工。
2 出租車計費系統(tǒng)的設(shè)計
2.1 出租車計費設(shè)計
實際中出租車的計費工作原理一般分成3個階段:
(1)車起步開始計費。首先顯示起步價(本次設(shè)計起步費為7.00元),車在行駛3 km以內(nèi),只收起步價7.00元。
(2)車行駛超過3 km后,按每公里2.2元計費(在7.00元基礎(chǔ)上每行駛1 km車費加2.2元),車費依次累加。
(3)行駛路程達到或超過9 km后(車費達到20元),每公里加收50%的車費,車費變成按每公里3.3元開始計費。車暫時停止(行駛中遇紅燈或中途暫時停車)不計費,車費保持不變。若停止則車費清零,等待下一次計費的開始
2.2 基本設(shè)計思想
(1) 根據(jù)出租車計費原理,將出租車計費部分由5個計數(shù)器來完成分別為counterA,counterB,counterC,counterD,counterE。①計數(shù)器A完成車費百位。②計數(shù)器B完成車費十位和個位。③計數(shù)器C完成車費角和分。④計數(shù)器D完成計數(shù)到30(完成車費的起步價)。⑤計數(shù)器E完成模擬實現(xiàn)車行駛100 m的功能。
(2)行駛過程中車費附加50%的功能:由比較器實現(xiàn)。
(3)車費的顯示:由動態(tài)掃描電路來完成。用專用模塊來實現(xiàn),完成數(shù)據(jù)的輸入即動態(tài)數(shù)據(jù)的顯示。
(4)通過分析可以設(shè)計出系統(tǒng)的頂層框圖如圖2.1所示:
圖2.1 系統(tǒng)的頂層框圖
3 出租車計費系統(tǒng)的實現(xiàn)
3.1 系統(tǒng)的總體框圖
圖3.1 系統(tǒng)總體框圖
3.2 程序流程圖
車開始啟動
里程不計數(shù)
里程計數(shù)
里程顯示
計費器計數(shù)
車費顯示
車跑完成一次后
車費、里程清零
YES
YES
YES
NO
NO
圖3.2程序流程圖
3.3 系統(tǒng)各功能模塊的實現(xiàn)
3.3.1 模塊JIFEI的實現(xiàn)
圖3.3 模塊JIFEI
模塊JIFEI見圖3.2。輸入端口START、STOP、PAUSE、JS分別為汽車起動、停止、暫停、加速按鍵。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity jifei is
port (clk,start,stop,pause,js:in std_logic;
chefei,luc:out integer range 0 to 8000);
end jifei;
architecture rtl of jifei is
begin
process(clk,start,stop,pause,js)
variable a,b:std_logic;
variable aa:integer range 0 to 100;
variable chf,lc:integer range 0 to 8000;
variable num:integer range 0 to 9;
begin
if(clk'event and clk='1')then
if(stop='0')then
chf:=0;
num:=0;
b:='1';
aa:=0;
lc:=0;
elsif(start='0')then
b:='0';
chf:=700;
lc:=0;
elsif(start='1' and js='1'and pause='1')then
if(b='0')then
num:=num+1;
end if;
if(num=9)then
lc:=lc+5;
num:=0;
aa:=aa+5;
end if;
elsif(start='1'and js='0'and pause='1')then
lc:=lc+1;
aa:=aa+1;
end if;
if(aa>=100)then
a:='1';
aa:=0;
else
a:='0';
end if;
if(lc<300)then
null;
elsif(chf<2000 and a='1')then
chf:=chf+220;
elsif(chf>=2000 and a='1')then
chf:=chf+330;
end if;
end if;
chefei<=chf;
luc<=lc;
end process;
end rtl;
3.3.2 模塊X的實現(xiàn)
模塊X見圖3.3。該模塊把車費和路程轉(zhuǎn)化為4位十進制數(shù),daclk的頻率要比clk快得多
圖3.4 模塊X
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity x is
port(daclk:in std_logic;
ascore,bscore:in integer range 0 to 8000;
age,ashi,abai,aqian,bge,bshi,bbai,dqian:out std_logic_vector(3 downto 0));
end x ;
architecture rtl of x is
begin
process(daclk,ascore)
variable comb1:integer range 0 to 8000;
variable comb1a,comb1b,comb1c,comb1d:std_logic_vector(3 downto 0);
begin
if(daclk'event and daclk='1')then
if(comb1
d<=a1;
dp<=’0’;
when”001”=>d<=a2;
dp<=’0’;
when”010”=>d<=a3;
dp<=’1’;
when”011”=>d<=a4;
dp<=’0’;
when”100”=>d<=b1;
dp<=’0’;
when”101”=>d<=b2;
dp<=’0’;
when”110”=>d<=b3;
dp<=’1’;
when”111”=>d<=b4;
dp<=’0’;
when others=>null;
end case;
end process;
end rtl;
3.3.4 模塊SE的實現(xiàn)
模塊SE見圖3.6
圖3.6 模塊SE
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity se is
port(clk:in std_logic;
a:out std_logic_vector(2 down to 0));
end se;
architecture rtl of se is
begin
process(clk)
variable b:std_logic_bector(2 downto 0);
begin
if(clk’event and clk=’1’)then
if(b=”111”)then
b:=”000”;
else
b:=b+1;
end if;
end if;
a<=b;
end process;
end rtl;
3.3.5 模塊DI的實現(xiàn)
模塊DI見圖3.7
圖3.7 模塊DE
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity di is
port(d:in std_logic_vector(3 downto 0);
q:out std_logic_vector(6 downto 0));
end di;
architecture rtl of di is
begin
process(d)
begin
case d is
when”0000”=>q<=”0111111”;
when”0001”=>q<=”0000110”;
when”0010”=>q<=”1011011”;
when”0011”=>q<=”1001111”;
when”0100”=>q<=”1100110”;
when”0101”=>q<=”1101101”;
when”0110”=>q<=”1111101”;
when”0111”=>q<=”0100111”;
when”1000”=>q<=”1101111”;
when others=>q<=”1101111”
end case;
end process;
end rtl;
4 系統(tǒng)仿真
4.1 模塊X的仿真結(jié)果
將車費和路程轉(zhuǎn)換成4位的十進制如圖4.1所示:
輸入端為:Daclk, ascore, bscore
輸出端為:Age, ashi, aqian, abai, bge, bshi, bqian, bbai;
圖4.1 模塊X仿真波形圖
4.2 模塊JIFEI的仿真結(jié)果
該模塊是模擬汽車的啟動、停止、暫停、加速按鍵,如圖4.2所示:
輸入端口為:stop, start, pause, js;
輸出端口為:clk, b;
圖4.2 模塊JIFEI仿真波形圖
4.3 模塊XXX1的仿真結(jié)果
該模塊是將車費和路程顯示出來如圖4.3所示
輸入端為:c, a1,a2,a3,a4,b1,b2,b3,b4;
輸出端為:dp,d;
圖4.3 模塊XXX1仿真波形圖
4.4模塊SE的結(jié)果驗證
模塊SE仿真如圖4.4所示:
輸入端為:clk
輸出端為:a
圖4.4 模塊SE仿真波形圖
4.5模塊DI的結(jié)果驗證
模塊DI仿真的結(jié)果如圖4.5所示
輸入端為:d
輸出端為:q
圖4.5 模塊DI仿真波形圖
5 結(jié)論
出租車計費器系統(tǒng)的設(shè)計已全部完成,能按預(yù)期的效果進行模擬汽車啟動、停止、暫停等功能,并設(shè)計動態(tài)掃描電路顯示車費數(shù)目,由動態(tài)掃描電路來完成。車暫時停止不計費,車費保持不變。若停止則車費清零,等待下一次計費的開始。出租車計費器系統(tǒng)的設(shè)計已全部完成,能按預(yù)期的效果進行模擬汽車啟動、停止、暫停等功能,并設(shè)計動態(tài)掃描電路顯示車費數(shù)目,由動態(tài)掃描電路來完成。車暫時停止不計費,車費保持不變。若停止則車費清零,等待下一次計費的開始。在出租車計費系統(tǒng)的5個模塊中 ,重點在于JIFEI模塊,X模塊、XXX1模塊。JIFEI模塊主要有汽車的啟動、停止、暫停、加速按鍵;X模塊主要是把車費和路程轉(zhuǎn)化為4位十進制;X模塊是將車費和路程顯示出來。各模塊完成后,在將它們組合成完整的出租車系統(tǒng),在設(shè)計過程中還需要改進的是控制系統(tǒng)的糾錯功能。出租車計費系統(tǒng)的設(shè)計中體現(xiàn)了VHDL覆蓋面廣,描述能力強,是一個多層次的硬件描述語言及PLD器件速度快,使用方便,便于修改等特點,本設(shè)計在實用方面具有一定的價值。
致 謝
本文是在指導(dǎo)老師劉耀明老師的悉心指導(dǎo)下完成的,劉老師在學術(shù)上嚴格要求,在生活上給予關(guān)懷,劉老師的教誨和鼓勵,及在學術(shù)上一絲不茍的精神,作者受益匪淺,在此向劉老師表示衷心的感謝和敬意!
至此,畢業(yè)設(shè)計就快接近尾聲了,在這里我再一次誠摯的感謝劉老師和在大學期間對我諄諄教導(dǎo)的老師和領(lǐng)導(dǎo)們。
最后,向在設(shè)計中給予我關(guān)心、支持和幫助的同學表示謝意!
參考文獻
[1] 候伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計.修訂版電子工程師必備知識[M].西安:西安電子科技大學出版社,1999
[2] 張昌凡,等.可編程邏輯器件及VHDL設(shè)計技術(shù)[M].廣州:華南理工大學出版社,2001
[3] 曾繁泰,陳美金.VHDL程序設(shè)計[M].北京:清華大學出版社,2001
[4] 潘松,等.VHDL實用教程[M].成都:電子科技大學出版社,2000
[5] 高健, 沈慶宏, 高敦堂. ITS 中車輛檢測器設(shè)備的研究與實現(xiàn)[J ].
交通與計算機, 2002. 20 (5):15218
[6] 王小平, 王彥芳, 等. 基于EDA 技術(shù)的出租車費計價單片系統(tǒng)
[7] 盧慶利. 將VHDL 硬件描述語言引入數(shù)字電路教學的探索[J ]. 實
驗室研究與探索, 2000, 19 (5) : 67270
[8] 劉艷. EDA 技術(shù)在數(shù)字系統(tǒng)電路設(shè)計實驗中的應(yīng)用[J ]. 實驗室研
究與探索, 2002, 21 (3) : 63264
[9] 潭會生,張昌凡. EDA技術(shù)及應(yīng)用.西安:電子科技大學出版社.2001
[10] 徐穎.Protel 99 SE EDA技術(shù)及應(yīng)用.西安:機械工業(yè)出版社.2005?
23