




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計學(xué)生姓名: 專業(yè)班級: 指導(dǎo)教師: 工作單位: 題 目: 出租車計價器的設(shè)計 初始條件:本設(shè)計利用Quartus軟件編寫VHDL代碼,運(yùn)用EDA實(shí)驗(yàn)箱上的FPGA、數(shù)碼管、LED燈、撥碼開關(guān)、3/8譯碼器、系統(tǒng)20MHz時鐘等硬件資源,實(shí)現(xiàn)簡易的出租車計價器的相關(guān)功能。要求完成的主要任務(wù): (包括課程設(shè)計工作量及技術(shù)要求,以及說明書撰寫等具體要求)1、課程設(shè)計工作量:2周。2、技術(shù)要求: 設(shè)計一個出租車計價器。要求顯示行駛里程、停車時間和計費(fèi)值。出租車的起步價為3元,當(dāng)里程行駛到1km后,費(fèi)用為4元;當(dāng)里程行駛到1.5km后,費(fèi)用為5元;,當(dāng)里程行駛到2km后,費(fèi)用為6元;當(dāng)里程行駛到
2、2.5km后,費(fèi)用為7元;當(dāng)里程行駛到3km后,費(fèi)用為8元;此后每公里計費(fèi)為0.7元。當(dāng)計費(fèi)達(dá)到20元后,每公里加收50%的車費(fèi)。停車每達(dá)3分鐘,增加0.7元。3、查閱至少5篇參考文獻(xiàn)。按武漢理工大學(xué)課程設(shè)計工作規(guī)范要求撰寫設(shè)計報告書。全文用A4紙打印,圖紙應(yīng)符合繪圖規(guī)范。時間安排:1. 2011 年 1 月 10 日集中,作課設(shè)具體實(shí)施計劃與課程設(shè)計報告格式的要求說明。2. 2011 年 1 月 11 日,查閱相關(guān)資料,學(xué)習(xí)電路的工作原理。3. 2011 年 1 月 12 日 至 2011 年 1 月 16 日,方案選擇和程序設(shè)計設(shè)計。4. 2011 年 1 月 17 日 至 2011 年
3、1 月 20 日,電路調(diào)試和設(shè)計說明書撰寫。5. 2011 年 1 月 21 日上交課程設(shè)計成果及報告,同時進(jìn)行答辯。課設(shè)答疑地點(diǎn):鑒主13樓電子科學(xué)與技術(shù)實(shí)驗(yàn)室。指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日摘 要本文介紹了一種采用單片F(xiàn)PGA芯片進(jìn)行出租車計費(fèi)器的設(shè)計方法,主要闡述如何使用新興的EDA器件取代傳統(tǒng)的電子設(shè)計方法,利用FPGA的可編程性,簡潔而又多變的設(shè)計方法,縮短了研發(fā)周期,同時使出租車計費(fèi)器體積更小功能更強(qiáng)大。本設(shè)計實(shí)現(xiàn)了出租車計費(fèi)器所需的一些基本功能,計費(fèi)包括起步價、行車?yán)锍逃嬞M(fèi)、等待時間計費(fèi),同時考慮到出租車行業(yè)的一些特殊性,更注重了把一些新的思路加
4、入到設(shè)計中。主要包括采用了FPGA芯片,使用VHDL語言進(jìn)行編程,使其具有了更強(qiáng)的移植性,更加利于產(chǎn)品升級。關(guān)鍵詞:VHDL;計費(fèi)器;Quartus;FPGAAbstractThis paper describes the use of a single chip FPGA for the design of accounting-fee machine, mainly on how to use the emerging EDA electronic devices designed to replace traditional methods, using the programmable
5、 FPGA, concise and changing the design Ways to shorten the development cycle, so that taxi accounting-fee machine in a smaller more powerful. The design and implementation of the taxi accounting-fee machine for some basic functions, including billing starting price, driving metered, the waiting time
6、 billing, taking into account the special nature of some of the taxi industry, to pay more attention to a number of new Ideas into the design. Mainly including the use of the FPGA chip, the use of VHDL programming, so as to make it a stronger transplanted, and more conducive to product upgrades. Key
7、 words: VHDL, accounting-fee machine , Quartus , FPGA目 錄摘 要2Abstract3目 錄41.緒論52.設(shè)計內(nèi)容及要求62.1.設(shè)計的目的及主要任務(wù)62.2.設(shè)計思想63.設(shè)計原理73.1.設(shè)計原理及方法73.2.單元模塊設(shè)計84.代碼仿真結(jié)果104.1.有限次數(shù)脈沖發(fā)生模塊仿真結(jié)果104.2.計數(shù)器模塊仿真結(jié)果114.3.七段數(shù)碼管模塊仿真結(jié)果114.4.分頻器模塊仿真結(jié)果125.硬件調(diào)試136.心得體會147.參考文獻(xiàn)158.附錄168.1.程序源代碼168.2.綜合網(wǎng)絡(luò)圖301. 緒論人類社會已經(jīng)進(jìn)入信息化時代,信息社會的發(fā)展離不開
8、電子產(chǎn)品的進(jìn)步。現(xiàn)代電子產(chǎn)品在性能提高、復(fù)雜度降低的同時,價格卻一直呈下降趨勢,而且產(chǎn)品更新?lián)Q代的步伐也越來越快,實(shí)現(xiàn)這種進(jìn)步的主要原因就是生產(chǎn)制造技術(shù)和電子設(shè)計技術(shù)的發(fā)展。前者以微細(xì)加工技術(shù)為代表,目前已進(jìn)展到深亞微米階段,可以在幾平方厘米的芯片上集成數(shù)萬個晶體管;后者的核心就是EDA技術(shù)1。沒有EDA技術(shù)的支持,想要完成超大規(guī)模集成電路的設(shè)計制造是不可想象的,反過來,生產(chǎn)制造技術(shù)的不斷進(jìn)步又必須對EDA技術(shù)提出新要求。EDA代表了當(dāng)今電子設(shè)計技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計人員按照“自頂向下”的設(shè)計方法,對整個系統(tǒng)進(jìn)行方案設(shè)計和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(AS
9、IC)實(shí)現(xiàn),然后采用硬件描述語言(VHDL)完成系統(tǒng)行為級設(shè)計,最后通過綜合器和適配器生成最終的目標(biāo)器件2。可編程邏輯器件自20世紀(jì)70年代以來,經(jīng)歷了PAL、GAL、CPLD、FPGA幾個發(fā)展階段,其中CPLD、FPGA屬高密度可編程邏輯器件,目前集成度以高達(dá)200萬門/片,它將掩膜ASIC集成度高的優(yōu)點(diǎn)和可編程邏輯器件設(shè)計生產(chǎn)方便的特點(diǎn)結(jié)合在一起,特別適合于樣品研制和小批量產(chǎn)品開發(fā),使產(chǎn)品能以最快的速度上市,而當(dāng)市場擴(kuò)大時,它可以和容易地轉(zhuǎn)由ASIC實(shí)現(xiàn),因此開發(fā)風(fēng)險也大為降低。CPLD/FPGA器件已成為現(xiàn)代高層次電子設(shè)計方法的實(shí)現(xiàn)載體3。 VHDL是一種全方位的硬件描述語言,包括系統(tǒng)行
10、為級、寄存器傳輸級和邏輯門級多個設(shè)計層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為3種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件描述語言的功能,整個自頂向下或自底向上的電路設(shè)計過程都可以用VHDL來完成4。另外,VHDL還有以下優(yōu)點(diǎn):VHDL的寬范圍描述能力使它成為高層次設(shè)計的核心,將設(shè)計人員的工作重心轉(zhuǎn)移到了系統(tǒng)功能的實(shí)現(xiàn)和調(diào)試上,只需要花較少的精力用于物理實(shí)現(xiàn);VHDL可以用簡潔明確的代碼描述來進(jìn)行復(fù)雜控制邏輯的設(shè)計,靈活且方便,而且也便于設(shè)計結(jié)果的交流、保存和重用;VHDL的設(shè)計不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。VHDL是一個標(biāo)準(zhǔn)語言,為眾多的EDA場上支持,因此移植性好5。2. 設(shè)計內(nèi)容
11、及要求2.1. 設(shè)計的目的及主要任務(wù)2.1.1. 設(shè)計的目的學(xué)會在Quartus環(huán)境中運(yùn)用VHDL語言設(shè)計方法構(gòu)建具有一定邏輯功能的模塊,并能運(yùn)用圖形設(shè)計方法完成頂層原理圖的設(shè)計。掌握出租車自動計費(fèi)器的主要功能與在FPGA中的實(shí)現(xiàn)方法。2.1.2. 設(shè)計任務(wù)及主要技術(shù)指標(biāo) 設(shè)計一個出租車計價器。要求顯示行駛里程、停車時間和計費(fèi)值:出租車的起步價為3元,當(dāng)里程行駛到1km后,費(fèi)用為4元;當(dāng)里程行駛到1.5km后,費(fèi)用為5元;,當(dāng)里程行駛到2km后,費(fèi)用為6元;當(dāng)里程行駛到2.5km后,費(fèi)用為7元;當(dāng)里程行駛到3km后,費(fèi)用為8元;此后每公里計費(fèi)為0.7元/0.5km。停車每到3分鐘,增加0.7元
12、。通過開關(guān)讀入停車信號,在停車時進(jìn)行計時,顯示格式為時分秒XX-XX-XX,每3分鐘,計價0.7元;按照輪胎轉(zhuǎn)動1圈為1m計算,計算并顯示行駛的里程結(jié)果(單位:Km),格式為:“000.0”。能顯示乘車費(fèi)用(單位:元),格式為:“000.0”。 運(yùn)用Quartus軟件中的仿真功能對所設(shè)計的出租車自動計費(fèi)器的各個模塊及頂層電路的功能進(jìn)行仿真分析。 將所設(shè)計的整個系統(tǒng)寫入FPGA器件中,加上需要的外圍電路在實(shí)驗(yàn)箱上實(shí)現(xiàn)整個系統(tǒng)的硬件搭建。2.2. 設(shè)計思想本次設(shè)計首先在Quartus環(huán)境中對出租車自動計費(fèi)器的各個部分利用VHDL這一硬件描述語言予以設(shè)計,生成模塊。主要有:運(yùn)算控制模塊、分頻器、顯示
13、模塊這三大部分組成。由頂層模塊協(xié)調(diào)控制完成設(shè)計任務(wù)。3. 設(shè)計原理3.1. 設(shè)計原理及方法運(yùn)算控制器分頻器時鐘信號按鍵控制LED狀態(tài)顯示七段譯碼器數(shù)碼管顯示計時信號計費(fèi)信號序列計程信號3/8譯碼器分頻模塊控制計數(shù)模塊顯示模塊本設(shè)計包含運(yùn)算控制模塊、分頻器、顯示模塊這三大部分。圖1 出租車自動計費(fèi)器系統(tǒng)框圖運(yùn)算控制器模塊將其他兩個進(jìn)行連接,是本次設(shè)計的核心。它包含計程器、計時器、計價器,同時還有讀取外部的撥碼開關(guān)控制信號,提供當(dāng)前顯示信號與顯示位選信號,從而周期性交替顯示計價/計時信息、等時信息。計程器在非停車狀態(tài)完成計程功能并產(chǎn)生里程計價信號,計時器在停車狀態(tài)完成計時功能并產(chǎn)生等時計價信號。計
14、價器是設(shè)計的核心與難點(diǎn),涉及到多種時鐘信號,并有多種計費(fèi)標(biāo)準(zhǔn)。擬使用有限次高速脈沖發(fā)生器向一組級聯(lián)的十進(jìn)制計數(shù)器提供不同費(fèi)率的計價脈沖,根據(jù)里程計價信號、等時計價信號、停車開關(guān)狀態(tài)、當(dāng)前計費(fèi)結(jié)果等信號,綜合考慮,挑選適合次數(shù)的計價脈沖,從而實(shí)現(xiàn)不同條件的不同計費(fèi)。計程器、計時器、計價器根據(jù)位選信號,輸出相應(yīng)數(shù)據(jù)的當(dāng)前選中數(shù)字,由頂層模塊根據(jù)顯示數(shù)據(jù)類型變換信號進(jìn)行選擇,傳輸給顯示模塊。實(shí)驗(yàn)箱的時鐘信號為20MHz方波,由分頻器分為10Hz的計時信號(一個周期代表現(xiàn)實(shí)中的1s)、10Hz的計程信號(一個周期代表現(xiàn)實(shí)中的10m)、500Hz的數(shù)碼管掃描信號(掃描頻率62.5Hz)、0.2Hz的顯示
15、數(shù)據(jù)類型變換信號(變化周期5s)。顯示模塊由實(shí)驗(yàn)箱上的3/8譯碼器、五個LED燈構(gòu)成狀態(tài)的指示燈、程序編寫的一個七段數(shù)碼管譯碼器(因顯示需要,原有字形“E”征用改為“”,字形F改為“ ”)組成。本次設(shè)計首先在Quartus環(huán)境中對出租車自動計費(fèi)器的各個部分利用VHDL這一硬件描述語言予以設(shè)計,進(jìn)行仿真,然后編寫頂層模塊將各個模塊連接,并對相互之間的信號進(jìn)行必要處理,從而實(shí)現(xiàn)整機(jī)功能,最后在實(shí)驗(yàn)箱上進(jìn)行物理測試,尋找漏洞、調(diào)整參數(shù),最終確定設(shè)計。3.2. 單元模塊設(shè)計3.2.1. 分頻器TAXI_FP模塊設(shè)計本設(shè)計中分頻器模塊使用了一個通用的分頻器元件例化fp。該模塊從外部讀入系統(tǒng)時鐘方波信號c
16、lk,向外輸出計時信號clk_time,計程信號clk_mil,數(shù)碼管掃描信號clk_scan,顯示數(shù)據(jù)類型變換信號clk_v。具體程序代碼詳見附錄。3.2.2. 計程器MIL模塊設(shè)計計程器的核心為一個4位十進(jìn)制數(shù)計數(shù)單元cnt10,它由四個十進(jìn)制計數(shù)器級聯(lián)構(gòu)成。在得到停車信號時,計程信號不輸入計數(shù)單元,在沒有停車信號stop時,每有10個脈沖clk(100m)才進(jìn)行計數(shù)1次。每當(dāng)成功計數(shù)5次,即500m,產(chǎn)生一個里程計費(fèi)信號p_mil。在得到復(fù)位信號rst時,計程器內(nèi)部所有計數(shù)器和計數(shù)信號清零復(fù)位,里程計費(fèi)信號輸出0。根據(jù)讀入的位選信號wx決定當(dāng)前輸出的數(shù)值datain。具體程序代碼詳見附錄
17、。3.2.3. 計時器TIM模塊設(shè)計計時器有一個24進(jìn)制cnt24、兩個60進(jìn)制的計數(shù)器cnt60級聯(lián)構(gòu)成計時單元。當(dāng)停車信號stop為1,進(jìn)行計時。計時器中還有一個3進(jìn)制計數(shù)器cnt3,每當(dāng)代表分鐘的60進(jìn)制計數(shù)器計數(shù)3次,產(chǎn)生一個等時計費(fèi)信號p_up。當(dāng)有復(fù)位信號rst時,所有計數(shù)單元清零,等時計數(shù)信號輸出0。根據(jù)讀入的位選信號wx決定當(dāng)前輸出的數(shù)值datain。具體程序代碼詳見附錄。3.2.4. 計價器PRICE模塊設(shè)計因?yàn)樵谟嬞M(fèi)過程中存在1.05元的計費(fèi)情況,故計價精度精確到分,共有五個計數(shù)器。因此計價器的計數(shù)單元有四個10進(jìn)制計數(shù)器cnt10,一個10進(jìn)制計數(shù)器cnt10_d。前者復(fù)
18、位值為0;后者復(fù)位值為3,為價格的第三位計數(shù)。它的內(nèi)部還有一個指定個數(shù)脈沖產(chǎn)生器price_s。根據(jù)停車信號stop的選擇里程計費(fèi)信號p_mil或p_t,當(dāng)計費(fèi)信號為1時,輸入適當(dāng)個脈沖,當(dāng)計費(fèi)信號為0,脈沖發(fā)生器price_s復(fù)位。當(dāng)計費(fèi)開關(guān)switch或復(fù)位信號rst為1,計價器所有模塊復(fù)位。根據(jù)讀入的位選信號wx決定當(dāng)前輸出的數(shù)值datain。具體程序代碼詳見附錄。3.2.5. 顯示模塊設(shè)計顯示模塊包含一個8進(jìn)制計數(shù)器cnt8,七段數(shù)碼管譯碼器decl7s,實(shí)驗(yàn)箱上的3/8譯碼器。還有五個狀態(tài)顯示燈,分別為停車狀態(tài)指示stop_s,計費(fèi)狀態(tài)指示switch_s,3個當(dāng)前顯示內(nèi)容標(biāo)志燈st
19、a(2.0)。當(dāng)系統(tǒng)復(fù)位時,數(shù)碼管一起顯示相同的任意數(shù),五個狀態(tài)顯示燈一起被點(diǎn)亮。正常顯示時,等時信息與計價/計程信號以5s為周期交替顯示。具體程序代碼詳見附錄。3.2.6. 運(yùn)算控制模塊TAXI設(shè)計運(yùn)算控制模塊將以上各模塊進(jìn)行連接,綜合,構(gòu)成出租車計價器。其輸入端有系統(tǒng)時鐘輸入端clk、系統(tǒng)復(fù)位信號輸入端rst、停車信號輸入端stop、計費(fèi)開關(guān)switch。輸出端有數(shù)碼管字形輸入端segout、point、位選信號輸出端wx、狀態(tài)燈控制端stop_s、switch_s、sta。具體程序代碼詳見附錄。4. 代碼仿真結(jié)果上文中提到的六個模塊中還運(yùn)用了一些更小的例化模塊。這些小模塊被上面的設(shè)計多次
20、調(diào)用,它們雖然小,功能簡單、單一,但是它們功能的正確是調(diào)用模塊乃至整個設(shè)計功能的保證,它們是整個設(shè)計的基石,因此在此著重對小模塊的邏輯功能與仿真結(jié)果進(jìn)行了說明。仿真結(jié)果分為功能仿真與邏輯仿真兩幅圖進(jìn)行呈現(xiàn)。我們會發(fā)現(xiàn)時序仿真與功能仿真的波形有差異,這是因?yàn)樵趯?shí)際門電路的運(yùn)行中,電平的處理過程造成了信號的延時。4.1. 有限次數(shù)脈沖發(fā)生模塊仿真結(jié)果該模塊的任務(wù)是當(dāng)使能信號rst為1時產(chǎn)生規(guī)定個方波信號,之后輸出結(jié)果為0。此處產(chǎn)生兩個脈沖。圖2.有限次數(shù)脈沖發(fā)生模塊功能仿真圖圖3.有限次數(shù)脈沖發(fā)生模塊時序仿真圖4.2. 計數(shù)器模塊仿真結(jié)果該模塊的任務(wù)是當(dāng)輸入脈沖時,進(jìn)行計數(shù),當(dāng)有復(fù)位信號時,計數(shù)器
21、復(fù)位。當(dāng)計數(shù)器計滿后,產(chǎn)生進(jìn)位信號。此處設(shè)定計數(shù)器的模制為10,復(fù)位初始值為0.圖4.計數(shù)器模塊功能仿真圖圖5計數(shù)器模塊時序仿真圖4.3. 七段數(shù)碼管模塊仿真結(jié)果該模塊的任務(wù)是根據(jù)輸入的十六進(jìn)制信號,輸出數(shù)碼管顯示其字形的電平信號。圖6.七段數(shù)碼管模塊功能仿真圖圖7.七段數(shù)碼管模塊時序仿真圖4.4. 分頻器模塊仿真結(jié)果該模塊的任務(wù)是將輸入的時鐘信號,進(jìn)行偶數(shù)次分頻,此處選為4分頻進(jìn)行仿真。圖8.分頻器模塊功能仿真圖圖9.分頻器模塊時序仿真圖5. 硬件調(diào)試在完成程序綜合后,進(jìn)行硬件調(diào)試之前,先要對芯片進(jìn)行定義。具體操作如下:首先點(diǎn)擊AssignmentsDevice,選擇實(shí)驗(yàn)箱所用芯片型號EP1
22、C3T144C8。點(diǎn)選Device and Pin Options。在這里選擇Unused Pins選項(xiàng)卡,將Reserve all unused pins選為As input tri-stated。然后開始進(jìn)行管腳設(shè)定,根據(jù)實(shí)驗(yàn)箱的資源配置設(shè)置如下:Pin NameLocationI/O StandardPin NameLocationI/O StandardClk16InputSegout397OutputRst49InputSegout498OutputSwitch50InputSegout599OutputStop51InputSegout6100OutputWx283OutputPo
23、int103OutputWx184OutputSta2107OutputWx085OutputSta1108OutputSegout091OutputSta0109OutputSegout194OutputStop_s110OutputSegout296OutputSwitch_s111Output表1.芯片管腳分配表再次進(jìn)行綜合,正確后就可將文件下載到芯片中。連接下載線,調(diào)整實(shí)驗(yàn)箱的跳線后,打開電源,經(jīng)Quartus中的“PROGRAMMER”菜單,調(diào)出編程器窗口。按下編程器窗口中的“START”按鈕,設(shè)計的內(nèi)容就開始下載到FPGA芯片中。進(jìn)行多組功能組合測試,顯示結(jié)果符合設(shè)計要求,證明設(shè)計
24、成功。6. 心得體會本次課程設(shè)計至此已經(jīng)接近尾聲,兩周的時間雖然很短暫,但在這兩個星期的設(shè)計過程中收獲頗豐。設(shè)計的核心內(nèi)容就是Quartus環(huán)境中,利用VHDL語言設(shè)計出基于FPGA的出租車計費(fèi)器。整個設(shè)計過程中首先對EDA(電子設(shè)計自動化)這門課程有了更深的了解,因?yàn)檎n程設(shè)計本身要求將以前所學(xué)的理論知識運(yùn)用到實(shí)際的電路設(shè)計當(dāng)中去,在電路的設(shè)計過程中,無形中便加深了對VHDL語言的了解及運(yùn)用能力,對課本以及以前學(xué)過的知識有了一個更好的總結(jié)與理解;以前的EDA實(shí)驗(yàn)只是針對某一個小的功能設(shè)計,而此次得EDA課程設(shè)計對我們的總體電路的設(shè)計的要求更嚴(yán)格,需要通過翻閱復(fù)習(xí)以前學(xué)過的知識確立了實(shí)驗(yàn)總體設(shè)計
25、方案,然后逐步細(xì)化進(jìn)行各模塊的設(shè)計;其次,在電路仿真的過程中總會出現(xiàn)一些問題,需要我們細(xì)心解決,所以這兩周下來,我對電路故障的排查能力有了很大的提高;再次,通過此次課程設(shè)計,我對設(shè)計所用到的軟件有了更加深刻地了解,這對我們以后的工作和學(xué)習(xí)的幫助都很有用處。感謝學(xué)校給我們這次機(jī)會,鍛煉了我們的動手能力。通過這次課設(shè)讓我明白了理論和實(shí)際操作之間差距,而且也讓我很明確得意識到自己在VHDL語言的語法理解上有很多的知識漏洞,以后應(yīng)該多鉆研一下。同時也感謝指導(dǎo)老師在設(shè)計過程中的輔導(dǎo)以及同學(xué)的幫助。7. 參考文獻(xiàn)1潘松,黃繼業(yè)EDA技術(shù)與VHDL北京:清華大學(xué)出版社,2007.12宋嘉玉,孫麗霞EDA實(shí)用
26、技術(shù)北京:人民郵電出版社,2006.12 3齊洪喜,陸穎VHDL電路設(shè)計實(shí)用技術(shù)北京:清華大學(xué)出版社,2004.54劉艷萍,高振斌,李志軍EDA實(shí)用技術(shù)及應(yīng)用北京:國防工業(yè)出版社,2006.15章彬宏EDA應(yīng)用技術(shù)北京:北京理工大學(xué)出版社,2007.78. 附錄8.1. 程序源代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;-ENTITY TAXI IS-頂層文件PORT(clk,rst,stop,switch:IN STD_LOGIC
27、;-時鐘;復(fù)位、停車、計費(fèi)開關(guān)point,stop_s,switch_s:OUT STD_LOGIC;-小數(shù)點(diǎn)、停車、計費(fèi)狀態(tài) segout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-數(shù)碼管輸出端wx:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);-位選端sta:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);-顯示狀態(tài)END ENTITY TAXI;ARCHITECTURE one OF TAXI IS-調(diào)用例化元件COMPONENT TAXI_FP IS-系統(tǒng)分頻器 PORT(clk:IN STD_LOGIC;-系統(tǒng)時鐘clk
28、_time,clk_mil,-計時時鐘、計程時鐘clk_scan,clk_v:OUT STD_LOGIC);-掃描時鐘、顯示切換時鐘END COMPONENT;COMPONENT MIL IS-計程器PORT(clk,rst,stop:IN STD_LOGIC;-計程時鐘、復(fù)位、停車信號wx:IN STD_LOGIC_VECTOR(2 DOWNTO 0);-位選信號p_mil:OUT STD_LOGIC;-里程計費(fèi)信號datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-輸出里程數(shù)據(jù)END COMPONENT;COMPONENT PRICE IS-計價器PORT(c
29、lk_sys,p_t,p_mil:IN STD_LOGIC;-系統(tǒng)時鐘、等時計費(fèi)、里程計費(fèi)信號rst,stop:IN STD_LOGIC;-復(fù)位、停車信號wx:IN STD_LOGIC_VECTOR(2 DOWNTO 0);-位選信號datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-輸出計價數(shù)據(jù)END COMPONENT;COMPONENT TIM IS-計時器PORT(clk_time,rst,stop:IN STD_LOGIC;-計時時鐘、復(fù)位、停車信號wx:IN STD_LOGIC_VECTOR(2 DOWNTO 0);-位選信號p_up:OUT STD_
30、LOGIC;-等時計費(fèi)信號datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-輸出等時數(shù)據(jù)END COMPONENT;COMPONENT decl7s IS-七段數(shù)碼管譯碼器PORT(data:IN STD_LOGIC_VECTOR(3 DOWNTO 0);-輸出數(shù)據(jù)led7s:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-輸出電平信號END COMPONENT;COMPONENT cnt8 IS-8進(jìn)制計數(shù)器PORT (clk:IN STD_LOGIC;-掃描時鐘 q:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);-輸出
31、結(jié)果END COMPONENT;-信號定義SIGNAL clk_time,clk_mil,-計時時鐘、計程時鐘 clk_scan,clk_v:STD_LOGIC;-掃描時鐘、顯示切換時鐘SIGNAL p_mil,p_t,rst_s:STD_LOGIC;-里程等時計費(fèi)信號、復(fù)位信號SIGNAL datain,datain_mil,datain_time,-輸出數(shù)據(jù)相關(guān)信號 datain_price:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL wx_signal:STD_LOGIC_VECTOR(2 DOWNTO 0);-位選信號BEGIN-例化元件連線定義u1:TAX
32、I_FP PORT MAP(clk,clk_time,clk_mil,clk_scan,clk_v);u2:MILPORT MAP(clk_mil,rst_s,stop,wx_signal,p_mil,datain_mil);u3:PRICEPORT MAP(clk,p_t,p_mil,rst_s,stop,wx_signal,datain_price);u4:TIMPORT MAP(clk_time,rst_s,stop,wx_signal,p_t,datain_time);u5:decl7sPORT MAP(datain,segout);u6:cnt8PORT MAP(clk_scan,w
33、x_signal);-信號賦值rst_s=(not switch) OR rst;stop_s=stop OR rst;switch_s=switch OR rst;wx=wx_signal;-顯示數(shù)據(jù)選擇進(jìn)程PROCESS(rst,clk,wx_signal)BEGINIF rst=1 THENsta =111;point IF wx_signal3 THENdatain=datain_price;ELSE datain=datain_mil;END IF;sta=110;IF wx_signal=101 OR wx_signal=001 THEN point=1;ELSE pointdat
34、ain=datain_time;sta=001;point=0;END CASE;END IF;END PROCESS;END ARCHITECTURE;-ENTITY cnt3 IS-三進(jìn)制計數(shù)器PORT (clk,rst:IN STD_LOGIC;q:out STD_LOGIC);END ENTITY;ARCHITECTURE bhv OF cnt3 ISBEGINPROCESS(clk)VARIABLE cnter :STD_LOGIC_VECTOR (1 DOWNTO 0);BEGINIF (rst=1) THENcnter:=00;q=0; ELSEIF rising_edge(cl
35、k) THEN if cnter=10 then cnter :=00;q=1;elsecnter:=cnter+1;q=0;END IF;END IF;END IF;END PROCESS;END bhv;-ENTITY cnt8 IS-八進(jìn)制計數(shù)器PORT (clk:IN STD_LOGIC;q:out STD_LOGIC_VECTOR(2 DOWNTO 0);END ENTITY;ARCHITECTURE bhv OF cnt8 ISBEGINPROCESS(clk)VARIABLE cnter :STD_LOGIC_VECTOR (2 DOWNTO 0);BEGINIF rising_
36、edge(clk) THEN if cnter=111 then cnter :=000;elsecnter:=cnter+1;END IF;end if;q=cnter;END PROCESS;END bhv;-ENTITY cnt10 IS-十進(jìn)制計數(shù)器PORT(clk,rst:IN STD_LOGIC;co:OUT STD_LOGIC;q:buffer STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY;ARCHITECTURE bhv OF cnt10 ISSIGNAL cnter :STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPR
37、OCESS(clk,rst) BEGINIF (rst=1) THENcnter=0000;co=0; ELSEIF rising_edge(clk) THEN IF cnter=1001 THEN cnter =0000;co=1;ELSEcnter=cnter+1;co=0;END IF;END IF;END IF;q=cnter;END PROCESS;END bhv;-ENTITY cnt10_d IS-初值為“3”的十進(jìn)制計數(shù)器PORT(clk,rst:IN STD_LOGIC;co:OUT STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);E
38、ND ENTITY;ARCHITECTURE bhv OF cnt10_d ISSIGNAL cnter :STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (rst=1) THENcnter=0011;co=0; ELSEIF rising_edge(clk) THEN IF cnter=1001 THEN cnter =0000;co=1;ELSEcnter=cnter+1;co=0;END IF;END IF;END IF;q=cnter;END PROCESS;END bhv;-ENTITY cnt24 IS-24進(jìn)制
39、計數(shù)器PORT (clk,rst:IN STD_LOGIC; c1,c0:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY;ARCHITECTURE bhv OF cnt24 ISBEGINPROCESS(clk,rst)VARIABLE cnter :INTEGER:=0 ;BEGINIF (rst=1) THENc1=0000;c0=0000; ELSEIF rising_edge(clk) THEN IF (c0=1001 OR (c0=0011 AND c1=0010) THEN c0=0000;IF c1=0010 THENc1=0000;
40、 ELSEc1=c1+1;END IF; ELSEc0=c0+1;END IF;END IF;END IF;END PROCESS;END bhv;-ENTITY cnt60 IS-60進(jìn)制計數(shù)器PORT (clk,rst:IN STD_LOGIC;co:OUT STD_LOGIC;c1,c0:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY;ARCHITECTURE bhv OF cnt60 ISBEGINPROCESS(clk,rst)VARIABLE cnter :INTEGER:=0 ;BEGINIF (rst=1) THENc1=0000;
41、c0=0000;co=0; ELSEIF rising_edge(clk) THEN IF (c0=1001) THEN c0=0000;IF c1=0101 THENc1=0000;co=1; ELSEc1=c1+1;co=0;END IF; ELSEc0 led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s led7s NULL;END CASE;END PROCESS;END one;-ENTITY fp IS-通用分頻器GENERIC (N:integer); PORT ( clk:IN STD_LOGIC;fpq:BUFFER STD_LOGIC);END ENTITY;ARCHITECTURE bhv OF fp ISBEGINPROCESS(clk)VARIABLE cnter :INTEGER:=0;BEGINIF rising_edge(clk) THEN IF cnter=N-1 then cn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沂水離婚協(xié)議書
- 煤氣月結(jié)協(xié)議書
- 產(chǎn)品研發(fā)及技術(shù)研發(fā)合作協(xié)議
- 專業(yè)市場招商合作協(xié)議合同書
- 《營銷策略》課件
- 銷售代理業(yè)務(wù)委托協(xié)議書
- 消費(fèi)全返協(xié)議書
- 城市交通管理智能化系統(tǒng)開發(fā)合同
- 車位租賃押金合同協(xié)議
- 連鎖超市合作協(xié)議合同
- 第3課 中華文明的起源(教學(xué)設(shè)計)七年級歷史上冊同步高效課堂(統(tǒng)編版2024)
- 貴州省貴陽市重點(diǎn)中學(xué)2024-2025學(xué)年高一年級下冊開學(xué)考試語文試卷(含答案)
- 2025年山東省淄博市高新區(qū)中考一模歷史試題(原卷版+解析版)
- 2025年高考數(shù)學(xué)壓軸題分層練習(xí):概率與統(tǒng)計(40題)
- 醫(yī)院抹布拖把標(biāo)識管理
- 2024年高校輔導(dǎo)員筆試重點(diǎn)試題及答案
- 農(nóng)藝師行業(yè)標(biāo)準(zhǔn)與職業(yè)道德探討試題及答案
- 人工智能在情緒調(diào)節(jié)與積極心理學(xué)中的應(yīng)用-全面剖析
- 2025年4月版安全法律法規(guī)標(biāo)準(zhǔn)文件清單
- 公安規(guī)范化執(zhí)法
- 2025-2030中國高碳鋼絲行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
評論
0/150
提交評論