




免費預覽已結束,剩余19頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
CPLD/FPGA原理及應用課程設計課程設計報告題 目: 出租車計價器 院 (系): 信息科學與工程學院 專業(yè)班級: 學生姓名: 學 號: 指導教師: CPLD/FPGA原理及應用課程設計任務書目 錄1前言1頁碼2課程設計目的2頁碼3課程設計題目描述和要求 2頁碼4課程設計報告內容2頁碼4.1分屏模塊電路2頁碼4.2計程模塊電路3頁碼4.3計費模塊電路4頁碼4.4LCD顯示屏的輸入時鐘電路 4頁碼4.5LCD顯示屏模塊電路 5頁碼5各模塊源代碼6頁碼5.1分頻模塊源代碼6頁碼5.2LCD分頻模塊源代碼 7頁碼5.3計程模塊源代碼8頁碼5.4計費模塊電路9頁碼5.5LCD顯示模塊源代碼12頁碼6總結與體會18頁碼參考文獻 19頁碼(要求:目錄題頭用三號黑體字居中書寫,隔行書寫目錄內容。目錄中各級題序及標題用小四號黑體)1.前言隨著出租車行業(yè)的發(fā)展,對出租車計費器的要求也越來越高。最近幾年出租車行業(yè)發(fā)展迅速,在全國有幾千萬家出租車公司。因此出租車計費器市場是龐大的。而出租車計費器成為不可缺少的一部分。出租車計價器是出租車營運收費的專用智能化儀表,隨著電子技術的發(fā)展,出租車計價器技術也在不斷進步和提高。國內出租車計價器已經(jīng)經(jīng)歷了4 個階段的發(fā)展。從傳統(tǒng)的全部由機械元器件組成的機械式,到半電子式即用電子線路代替部分機械元器件的出租車計價器;再從集成電路式到目前的單片機系統(tǒng)設計的出租車計價器,以及FPGA計價器.出租車計價器計費是否準確,運數(shù)據(jù)的管理是否方便都是人們最關注的。該計價器能實現(xiàn)按時間和里程綜合計算車價,能顯示里程、總車價等相關信息顯示。信息社會的現(xiàn)代電子產(chǎn)品,性能越來越高,復雜度越來越大,更新步伐也越來越快。實現(xiàn)這種進步的主要原因就是微電子技術和電子技術的發(fā)展。而電子技術的發(fā)展后者的核心就是電子設計自動化技術。EDA是指以計算機為工作平臺,融合了應用電子技術、計算機技術、智能化技術的最新成果而開發(fā)出的電子CAD通用軟件包,它根據(jù)硬件描述語言HDL完成的設計文件,自動完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局布線及仿真,直至完成對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。沒有EDA技術的支持,想要完成超大規(guī)模集成電路的設計制造是不可想象的;反過來,生產(chǎn)制造技術的不斷進步又必將對EDA技術提出新的要求。本設計采用Verilog HDL語言來設計實現(xiàn)出租車計費系統(tǒng),具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結構化設計方面,表現(xiàn)了強大的生命力和應用潛力。源程序經(jīng)ALTERA的Quartus II 9.0軟件調試優(yōu)化,通過下載到特定芯片后,可應用于實際的出租車計費系統(tǒng)中。本次課程設計鞏固和運用了所學課程,通過理論聯(lián)系實際,提高了分析、解決技術實際問題的獨立工作能力,通過對一個出租車計費器的設計,進一步熟悉了數(shù)字電路系統(tǒng)設計、制作與調試的方法和步驟。12.課程設計目的1.學會在Quartus II環(huán)境中運行VHDL語言設計方法構建具有一定邏輯功能的模塊,并能運用圖形設計方法完成頂層原理圖的設計。2.掌握出租車計價器的主要功能與在FPGA中的實現(xiàn)方法。3 設計題目和要求:1. 實現(xiàn)計費功能。按行駛里程計費,車行駛后按1.0元/km計費,當計費器達到或超過20元時,每千米加收50%的車費;2. 設計數(shù)碼管動態(tài)掃描電路,將車費和路程顯示出來,有一位小數(shù)。3. 實現(xiàn)預置功能:能預置起步費、每公里收費、車行加費里程。4. 用VHDL語言設計符合上述功能要求的出租車計費器,并用層次化設計方法設計該電路。5. 完成電路全部設計后,通過實驗下板載驗證設計的正確性。4.課程設計報告內容4.1 分頻模塊電路此模塊的功能是對總的時鐘進行分頻,分出的頻率是讓計數(shù)器用的,因為總的時鐘是50M的。設計該模塊的時候用了一個32位的計數(shù)器,當計數(shù)器計到25_000000的時候產(chǎn)生時鐘。在仿真的時候為了快速的方便觀察,設計了一個50M分頻的電路。 4.2 計程模塊電路此模塊的功能是計算出租車行駛的路程。在出租車啟動并行駛的過程中,當時鐘clk是上升沿的時候,系統(tǒng)即對路程計數(shù)器km0,km1的里程計數(shù)器進行加計數(shù)。其模塊如下:4.3 計費模塊電路費用計數(shù)器模塊用于出租車啟動后,根據(jù)行駛路程和等待時間計算費用。時間每滿1秒,費用計數(shù)器加1元。行駛路程超過20公里按1.5元/km計費4.4 LCD顯示屏的輸入時鐘電路此模塊的功能是對總的時鐘進行分頻,分出的頻率是讓計數(shù)器用的,因為總的時鐘是50M的。設計該模塊的時候用了一個32位的計數(shù)器,當計數(shù)器計到50的時候產(chǎn)生時鐘。在仿真的時候為了快速的方便觀察,設計了一個100分頻的電路。4.5 LCD顯示屏模塊電路LCD的顯示有兩種顯示方式動態(tài)顯示與靜態(tài)顯示,由于在本文中用到了LCD的靜態(tài)顯示和動態(tài)顯示,在時鐘的控制下,當CLK為高電平的時候把費用,公里,時間譯碼輸出。4.6 整體頂層模塊電路以上單元模塊設計完畢,通過每個單元模塊代碼的設計以及仿真驗證每個模塊的真確性,為確保后面整體模塊電路的正確性奠定了基礎。各模塊設計仿真實現(xiàn)后,可分別創(chuàng)建成元件符號。頂層就是將各分模塊用Verilog HDL語言或者是圖形方法連接起來,便可實現(xiàn)系統(tǒng)電路。其Verilog HDL源代碼詳見其附錄。其生成的頂層原理圖如下所示:5單元模塊Verilog HDL源代碼5.1 計數(shù)器的分頻模塊VerilogHDL源代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pin1hz isport(clkin :instd_logic; reset: IN STD_LOGIC;clkout :outstd_logic);end pin1hz;architecture a of pin1hz isbeginprocess(clkin)variable cnttemp: integer range 0 to 49999999;beginif clkin=1 and clkinevent thenif cnttemp=49999999 then cnttemp:=0;elseif cnttemp25000000 then clkout=1;else clkout=0;end if;cnttemp:=cnttemp+1;end if;end if;end process;end a;5.2LCD的分頻模塊VerilogHDL源代碼LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PIN100K ISPORT(CLK_50M_IN: IN STD_LOGIC; CLK_100K_OUT: OUT STD_LOGIC);END PIN100K;ARCHITECTURE ARC OF PIN100K ISBEGINPROCESS(CLK_50M_IN)VARIABLE CNTTEMP : INTEGER RANGE 0 TO 499;BEGIN IF CLK_50M_IN =1AND CLK_50M_INEVENT THEN IF CNTTEMP=499 THEN CNTTEMP:=0; ELSE IF CNTTEMP250 THEN CLK_100K_OUT=1; ELSE CLK_100K_OUT =0; END IF; CNTTEMP:=CNTTEMP+1; END IF; END IF;END PROCESS;END ARC;5.3 計程模塊VerilogHDL源代碼LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY lichen IS PORT(CLK:IN STD_LOGIC; reset:IN STD_LOGIC; km0:out STD_LOGIC_VECTOR(3 DOWNTO 0); km1:out STD_LOGIC_VECTOR(3 DOWNTO 0);END lichen;ARCHITECTURE ART OF lichen ISsignal k0:STD_LOGIC_VECTOR(3 DOWNTO 0);signal k1:STD_LOGIC_VECTOR(3 DOWNTO 0);signal en :std_logic; BEGIN km0=k0; km1=k1;PROCESS(CLK,reset)BEGIN IF(reset=1)THEN -異步復位 k0=0000; k1=0000;ELSIF(CLKEVENT AND CLK=1)THEN IF(k0=9)THEN k0=0000; k1=k1+1; -計數(shù)功能的實現(xiàn) ELSE k0=k0+1; END IF;if k1=0001 and k0=1001 then en=1;end if; END IF; -END IF LOAD END PROCESS;END ART;5.4 計費模塊VerilogHDL源代碼LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY jifei IS PORT(CLK:IN STD_LOGIC; reset:IN STD_LOGIC; char0:out STD_LOGIC_VECTOR(3 DOWNTO 0); char1:out STD_LOGIC_VECTOR(3 DOWNTO 0); char2:out STD_LOGIC_VECTOR(3 DOWNTO 0); char3:out STD_LOGIC_VECTOR(3 DOWNTO 0);END jifei;ARCHITECTURE behave OF jifei ISsignal c0,c1,c2,c3:STD_LOGIC_VECTOR(3 DOWNTO 0);signal en :std_logic;beginchar0=c0;char1=c1;char2=c2;char3=c3;PROCESS(reset,clk,en) BEGIN IF(reset=1)THEN -異步復位 c0=0000; c1=0000; c2 = 0000; c3 = 0000;ELSIF(CLKEVENT AND CLK=1)THEN IF en = 0 THEN -小于20公里時,每公里1元 IF c1 = 1001 THEN c1 = 0000; IF c2 = 1001 THEN c2 = 0000; IF c3 = 1001 THEN c3 = 0000; ELSE c3 = c3+1; END IF; ELSE c2 = c2+1; END IF; ELSE c1= c1+1; END IF; ELSE -超過20公里,每公里1.5元 IF (c0 = 0101 AND c1 = 1000) OR c1 = 1001 THEN -等于XX9.5時,累加得XX1.0 IF c1 = 1001 AND c0 = 0101 THEN c0 = 0000; c1 = 0001; -等于XX9.0時,累加得XX0.5 ElSIF c1 = 1001 AND c0 = 0000 THEN c0 = 0101; c1 = 0000; -等于XX8.5時,累加得XX0.0 ELSIF c1 = 1000 AND c0 = 0101 THEN c0 = 0000; c1 = 0000; END IF; IF c2 = 1001 THEN c2 = 0000; IF c3 = 1001 THEN c3 = 0000; ELSE c3 = c3 + 1; END IF; ELSE c2 = c2 + 1; END IF; ELSIF c0 = 0000 THEN c0 = 0101; c1 = c1 + 1; ELSE c0 = 0000; c1 = c1 + 0010; END IF; END IF; END IF; END PROCESS; END behave;5.5 LCD顯示模塊VerilogHDL源代碼-80H 81H 82H 83H 84H 85H 86H 87H-90H 91H 92H 93H 94H 95H 96H 97H-88H 89H 8AH 8BH 8CH 8DH 8EH 8FH-98H 99H 9AH 9BH 9CH 9DH 9EH 9FHlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;entity clock_lcd_disp is port(clk:in std_logic; km0:in STD_LOGIC_VECTOR(3 DOWNTO 0); km1:in STD_LOGIC_VECTOR(3 DOWNTO 0) ; char0:in STD_LOGIC_VECTOR(3 DOWNTO 0); char1:in STD_LOGIC_VECTOR(3 DOWNTO 0); char2:in STD_LOGIC_VECTOR(3 DOWNTO 0); char3:in STD_LOGIC_VECTOR(3 DOWNTO 0); rw,rs,e,lcd_rst:out std_logic; lcd_data:out std_logic_vector(7 downto 0);end clock_lcd_disp;architecture tcl of clock_lcd_disp is type state is(s0,s1,s2,s3,s4,s5,s6,s7,s8,s9); signal current_s:state; type data_buffer is array(0 to 15)of std_logic_vector(7 downto 0); type data_buffer0 is array(0 to 7)of std_logic_vector(7 downto 0); type data_buffer1 is array(0 to 7)of std_logic_vector(7 downto 0); signal disp_time0:data_buffer0:=(x31,x32,x3a,x33, x34,x3a,x35,x36); signal disp_time1:data_buffer1:=(x31,x32,x3a,x33, x34,x3a,x35,x36) ; constant data_buf0:data_buffer:=(x20,x20,x20,x20, xbc,xc6,xb3,xcc, xa1,xc3,x20,x20, xa2,xb2,x20,x20); constant data_buf1:data_buffer:=(x20,x20,x20,x20, xbc,xc6,xb7,xd1, xa1,xc3,x20,x20, xa2,xb2,x20,x20); begin disp_time0(7)=x20; disp_time0(6)=x20; disp_time0(5)=x20; disp_time0(4)=km0(3 DOWNTO 0)+x30; disp_time0(3)=km1(3 DOWNTO 0)+x30; disp_time0(2)=x20; disp_time0(1)=x20; disp_time0(0)=x20; disp_time1(7)=x20; disp_time1(6)=x20; disp_time1(5)=char0(3 DOWNTO 0)+x30; disp_time1(4)=x2e; disp_time1(3)=char1(3 DOWNTO 0)+x30; disp_time1(2)=char2(3 DOWNTO 0)+x30; disp_time1(1)=char3(3 DOWNTO 0)+x30; disp_time1(0)rw=1;rs=1;e=1;cnt1:=cnt1+1; if cnt1500 then lcd_rst=0; elsif cnt11000 then lcd_rst=1; elsif cnt1=1000 then lcd_rst=1;cnt1:=0;current_scnt_1:=cnt_1+1; if cnt_11*3 then e=1;rs=0;rw=0; elsif cnt_12*3 then lcd_data=x0c; elsif cnt_110*3 then e=0; elsif cnt_1=10*3 then cnt_1:=0;current_scnt_1:=cnt_1+1; if cnt_11*3 then e=1;rs=0;rw=0; elsif cnt_12*3 then lcd_data=x80; elsif cnt_110*3 then e=0; elsif cnt_1=10*3 then cnt_1:=0;current_s if cnt_11*3 then e=1;rs=1;rw=0; elsif cnt_12*3 then lcd_data=data_buf0(data_cnt); elsif cnt_1=2*3 then data_cnt:=data_cnt+1; elsif cnt_1100 then e=0; end if; cnt_1:=cnt_1+1; if cnt_1=100 then cnt_1:=0; if data_cnt=16 then current_scnt_1:=cnt_1+1; if cnt_11*3 then e=1;rs=0;rw=0; elsif cnt_12*3 then lcd_data=x88; elsif cnt_110*3 then e=0; elsif cnt_1=10*3 then cnt_1:=0;current_s if cnt_11*3 then e=1;rs=1;rw=0; elsif cnt_12*3 then lcd_data=data_buf1(data_cnt); elsif cnt_1=2*3 then data_cnt:=data_cnt+1; elsif cnt_1100 then e=0; end if; cnt_1:=cnt_1+1; if cnt_1=100 then cnt_1:=0; if data_cnt=16 then current_scnt_1:=cnt_1+1; if cnt_11*3 then e=1;rs=0;rw=0; elsif cnt_12*3 then lcd_data=x90; elsif cnt_110*3 then e=0; elsif cnt_1=10*3 then cnt_1:=0;current_s if cnt_11*3 then e=1;rs=1;rw=0; elsif cnt_12*3 then lcd_data=disp_time0(data_cnt); elsif cnt_1=2*3 then data_cnt:=data_cnt+1; elsif cnt_1100 then e=0; end if; cnt_1:=cnt_1+1; if cnt_1=100 then cnt_1:=0; if data_cnt=8 then current_scnt_1:=cnt_1+1; if cnt_11*3 then e=1;rs=0;rw=0; elsif cnt_12*3 then lcd_data=x98; elsif cnt_110*3 then e=0; elsif cnt_1=10*3 then cnt_1:=0;current_s if cnt_11*3 then e=1;rs=1;rw=0; elsif cnt_12*3 then lcd_data=disp_time1(data_cnt); elsif cnt_1=2*3 then data_cnt:=data_cnt+1; elsif cnt_1100 then e=0; end if; cnt_1:=cnt_1+1; if cnt_1=100 then cnt_1:=0; if data_cnt=8 then current_scurrent_s=s0; end case; end if;end process;end tcl;6.總結與體會通過學習了數(shù)字數(shù)字系統(tǒng)設計和Verilog HDL語言,對EDA技術有了一些了解,但那厚厚的一本書講的都是理論的東西。通過這本次課程設計,我才把學到的東西與實踐相結合。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畜禽智能飼喂與管理系統(tǒng)考核試卷
- 衛(wèi)浴零售商風險管理與業(yè)務連續(xù)性規(guī)劃考核試卷
- 管理團隊建設考核試卷
- 化學礦產(chǎn)業(yè)與現(xiàn)代農(nóng)業(yè)的協(xié)同發(fā)展考核試卷
- 筆的故障分析與品質改進考核試卷
- 礦物加工自動化與信息化考核試卷
- 稻谷加工與國際貿易實務考核試卷
- 遼寧省撫順市六校協(xié)作體2025屆高三九月份統(tǒng)一聯(lián)考英語試題含解析
- 江蘇城鄉(xiāng)建設職業(yè)學院《中醫(yī)經(jīng)典導讀》2023-2024學年第一學期期末試卷
- 天津市紅橋區(qū)名校2024-2025學年普通高中教育教學質量監(jiān)測考試(1月)生物試題含解析
- 裝配式建筑發(fā)展存在的問題及對策分析
- 中國古典文獻學(全套)
- 面試真題華中科技
- 自身免疫性腦炎
- 醫(yī)院質控科工作質量考核指標
- CRPS電源設計向導 CRPS Design Guide r-2017
- GB/T 9345.1-2008塑料灰分的測定第1部分:通用方法
- GB/T 4937.22-2018半導體器件機械和氣候試驗方法第22部分:鍵合強度
- GB/T 3452.2-2007液壓氣動用O形橡膠密封圈第2部分:外觀質量檢驗規(guī)范
- 煤礦從業(yè)人員安全培訓考試題庫(附答案)
- 第十章-國際政治與世界格局-(《政治學概論》課件)
評論
0/150
提交評論