版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 隨著微電子技術(shù)的發(fā)展,現(xiàn)代電子技術(shù)的核心已日趨轉(zhuǎn)向基于計(jì)算機(jī)的電子設(shè)計(jì)自動(dòng)化技術(shù)。</p><p> 本學(xué)期,學(xué)校開設(shè)了EDA和VHDL課程的學(xué)習(xí),而學(xué)習(xí)一門編程語言,最好的方法莫過于在一個(gè)完整的系統(tǒng)開發(fā)過程中進(jìn)行。因此,EDA綜合實(shí)驗(yàn)就是一個(gè)最好的學(xué)習(xí)實(shí)踐機(jī)會(huì)。</p><p>
2、; 隨著我國社會(huì)經(jīng)濟(jì)的全面發(fā)展,各大中小城市的出租車營運(yùn)事業(yè)發(fā)展迅速,出租車已經(jīng)成為人們?nèi)粘3鲂羞x擇較為普遍的交通工具。人們對(duì)出租車計(jì)費(fèi)器的要求也越來越高,用戶不僅要求計(jì)費(fèi)器性能穩(wěn)定,計(jì)費(fèi)準(zhǔn)確,有防作弊功能;同時(shí)還要求其具有車票資料打印、IC卡付費(fèi)和電腦串行通信功能。不同國家和地址的計(jì)費(fèi)方式存在差異,如有些地區(qū)有夜間收費(fèi)及郊區(qū)收費(fèi)等,而有些地區(qū)則無夜間收費(fèi)和郊區(qū)收費(fèi)。出租車計(jì)價(jià)器是出租車營運(yùn)收費(fèi)的專用智能化儀表是出租車市場規(guī)范化、 標(biāo)
3、準(zhǔn)化以及減少司機(jī)與乘客之間發(fā)生糾紛的重要設(shè)備。一種功能完備、簡單易用、計(jì)量準(zhǔn)確的出租車計(jì)價(jià)器是加強(qiáng)出租車行業(yè)管理、提高服務(wù)質(zhì)量的必備品。本實(shí)驗(yàn)就是采用VHDL硬件描述語言作為設(shè)計(jì)手段,采用自頂向下的設(shè)計(jì)思路,得到一種出租車計(jì)價(jià)系統(tǒng)的軟件結(jié)構(gòu),通過在 Quartus II軟件下進(jìn)行模擬仿真,并進(jìn)行相應(yīng)的硬件下載調(diào)試,證明所設(shè)計(jì)的電路系統(tǒng)完成了出租車計(jì)價(jià)器的功能,各技術(shù)指標(biāo)符合預(yù)定標(biāo)準(zhǔn),具有一定實(shí)用性。</p><p&g
4、t; 關(guān)鍵詞:EDA &VHDL;Quartus ii;出租車計(jì)價(jià)器。</p><p><b> 目錄</b></p><p> 1.摘要--------------------------------------------1頁</p><p> 2.正文------------------------------------
5、----------------------------3頁</p><p> 1.設(shè)計(jì)要求 ----------------------------------------------------------3頁</p><p> 2.實(shí)驗(yàn)原理及程序-----------------------------------------------------4頁</p>&
6、lt;p> 出租車計(jì)價(jià)流程圖 ------------------------------------------------4頁</p><p> 統(tǒng)結(jié)構(gòu)圖-------------------------------------------------4頁</p><p> 試驗(yàn)程序----------------------------------------------
7、---5頁</p><p> 波形仿真圖-----------------------------------------------9頁</p><p> 3.參考文獻(xiàn)-------------------------------------------12頁</p><p> 4.結(jié)束語-----------------------------------
8、------ 12頁</p><p> 5.致謝--------------------------------------------12頁</p><p> 6.附錄-----------------------------------------------13頁</p><p> 源程序---------------------------------
9、-------------13頁</p><p><b> 組員及工作分配</b></p><p><b> 成員:</b></p><p><b> 喬雷 陳廷川</b></p><p><b> 分工:</b></p><p
10、><b> 硬件設(shè)計(jì):陳廷川</b></p><p><b> 軟件設(shè)計(jì):喬雷 </b></p><p> 文檔及仿真: 喬雷 陳廷川</p><p> EDA&VHDL的簡介</p><p> EDA(Electronic Design Automation)技術(shù)。EDA技
11、術(shù)就是依賴功能強(qiáng)大的計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語言HDL(Hardware Description Language)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測試,直至實(shí)現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)使得設(shè)計(jì)者的工作僅限于利用軟件的方式,即利用硬件描述語言和EDA軟件來完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn),這是電子設(shè)計(jì)技術(shù)的一個(gè)巨大進(jìn)步。</p><
12、;p> VHDL(Very-High-Speed Integrated Circuit HardwareDescription Language),誕生于1982年。1987年底,VHDL被IEEE和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言 。自IEEE-1076(簡稱87版)之后,各EDA公司相繼推出自己的VHDL設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和VHDL接口。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力
13、上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,簡稱93版。VHDL和verilog作為ieee的工業(yè)標(biāo)準(zhǔn)硬件描述語言,得到眾多EDA公司支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。</p><p><b> 出租車計(jì)價(jià)器設(shè)計(jì)</b></p><p><b> 一、設(shè)計(jì)要求</b></p&
14、gt;<p> 1.計(jì)費(fèi)起步開始計(jì)費(fèi),首先顯示起步費(fèi)3.00元,車在行駛3公里內(nèi),之手起步費(fèi);</p><p> 2.行駛超過3公里后,每公里2元,車費(fèi)一次累加;</p><p> 當(dāng)遇到紅燈或客戶需要停車等待是,按時(shí)間計(jì)費(fèi),計(jì)費(fèi)單價(jià)為美累計(jì)超過一分鐘按1.00元收費(fèi);</p><p> 4.以十進(jìn)制顯示行駛里程,等待累計(jì)時(shí)間,總費(fèi)用。<
15、/p><p><b> 二、實(shí)驗(yàn)原理</b></p><p> 車輪轉(zhuǎn)一圈產(chǎn)生一個(gè)脈沖,用計(jì)數(shù)器累加脈沖數(shù)。再根據(jù)車輪周長,確定車子跑100米要多少脈沖。每100米產(chǎn)生一個(gè)新脈沖,對(duì)新脈沖計(jì)數(shù),這樣公里數(shù)可精確到0.1。對(duì)于計(jì)價(jià)部分用加法器,3km后每到5個(gè)百米脈沖(即0.5km)時(shí)加一次公里單價(jià)的一半。</p><p> 圖1 出租車計(jì)價(jià)器
16、流程圖</p><p> 根據(jù)設(shè)計(jì)要求,系統(tǒng)的輸入信號(hào)clk,計(jì)價(jià)開始信號(hào)start,等待信號(hào)stop,里程脈沖信號(hào)fin。系統(tǒng)的輸出信號(hào)有:總費(fèi)用數(shù)C0—c3,行駛距離k0—k1,等待時(shí)間m0—m1等。系統(tǒng)有兩個(gè)脈沖輸入信號(hào)clk_750k,fin,其中clk_750k將根據(jù)設(shè)計(jì)要求分頻成14hz,15hz和1hz分別作為公里計(jì)費(fèi)和超時(shí)計(jì)費(fèi)的脈沖。兩個(gè)控制輸入開關(guān)start,stop;控制過程為:start作
17、為計(jì)費(fèi)開始的開關(guān),當(dāng)start為高電平時(shí),系統(tǒng)開始根據(jù)輸入的情況計(jì)費(fèi)。當(dāng)有乘客上車并開始行駛時(shí),fin脈沖到來,進(jìn)行行駛計(jì)費(fèi),此時(shí)的stop需要置為0;如需停車等待,就把stop變?yōu)楦唠娖?,并去除fin輸入脈沖,進(jìn)行等待計(jì)費(fèi);當(dāng)乘客下車且不等待時(shí),直接將start置為0,系統(tǒng)停止工作;價(jià)格開始?xì)w為起步價(jià)3.0元。</p><p> 整個(gè)設(shè)計(jì)由分頻模塊,計(jì)量模塊,計(jì)費(fèi)模塊,控制模塊和顯示模塊五個(gè)部分組成。其中計(jì)量
18、模塊是整個(gè)系統(tǒng)實(shí)現(xiàn)里程計(jì)數(shù)和時(shí)間計(jì)數(shù)的</p><p> 重要部分;控制模塊是實(shí)現(xiàn)不同計(jì)費(fèi)方式的選擇部分,根據(jù)所設(shè)計(jì)的使能端選擇是根據(jù)里程計(jì)費(fèi)還是根據(jù)等待時(shí)間計(jì)費(fèi),同時(shí)設(shè)計(jì)通過分頻模塊產(chǎn)生不同頻率的脈沖信號(hào)來實(shí)現(xiàn)系統(tǒng)的計(jì)費(fèi)。計(jì)量模塊采用1hz的驅(qū)動(dòng)信號(hào),計(jì)費(fèi)模塊采用14hz,13hz的驅(qū)動(dòng)信號(hào);計(jì)量模塊每計(jì)數(shù)一次,計(jì)量模塊就實(shí)現(xiàn)14次或者13次計(jì)數(shù),即為實(shí)現(xiàn)計(jì)時(shí)的1/min,計(jì)程時(shí)的2元/km的收費(fèi)。</
19、p><p><b> 圖2 系統(tǒng)結(jié)構(gòu)圖</b></p><p><b> 接口部分定義如下:</b></p><p> 輸入:clk_240,系統(tǒng)時(shí)鐘,頻率為240Hz;</p><p> Start,啟動(dòng)信號(hào),當(dāng)start=1時(shí),汽車啟動(dòng),開始計(jì)價(jià); 當(dāng)start=0時(shí),清零;</p&g
20、t;<p> Stop,暫時(shí)計(jì)時(shí)信號(hào),當(dāng)stop-1時(shí),中途暫停,開始計(jì)時(shí);當(dāng)stop=0時(shí),再次出發(fā);</p><p> Fin,汽車車速脈沖信號(hào),是一個(gè)與隨著車速變化而變化的脈沖信號(hào)。</p><p> 輸出:cha2,cha1,cha0,分別為價(jià)錢的十位,個(gè)位和角位;</p><p> Km1,km0,分別為行駛公里數(shù)的十位,個(gè)位;<
21、;/p><p> Min0,暫時(shí)分鐘數(shù)輸出。</p><p> 接口部分源程序如下:</p><p> port ( clk_240 :in std_logic; --頻率為240Hz的時(shí)鐘 </p><p> start :in std
22、_logic; --計(jì)價(jià)使能信號(hào)</p><p> stop:in std_logic; --等待信號(hào)</p><p> fin:in std_logic; --公里脈沖信號(hào)</p>&l
23、t;p> cha2,cha1,cha0:out std_logic_vector(3 downto 0); --費(fèi)用數(shù)據(jù)</p><p> km1,km0:out std_logic_vector(3 downto 0); --公里數(shù)據(jù) </p><p> min0: out std_logic_vector(3 downto 0
24、)); --等待時(shí)間 </p><p><b> 計(jì)價(jià)部分原理如下:</b></p><p> 起步價(jià)10元,3公里內(nèi)10元,超出3公里部分,每公里1.6元,車暫停時(shí),2分鐘內(nèi)不加價(jià),超出2分鐘部分,每分鐘2.5元;</p><p> 計(jì)費(fèi)部分源程序如下:</p><p> librar
25、y IEEE;</p><p> use IEEE.STD_LOGIC_1164.ALL;</p><p> use IEEE.STD_LOGIC_ARITH.ALL;</p><p> use IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> entity taxi is</p><p&
26、gt; port ( clk_240 :in std_logic; --頻率為240Hz的時(shí)鐘 </p><p> start :in std_logic; --計(jì)價(jià)使能信號(hào)</p><p> stop:in std_logi
27、c; --等待信號(hào)</p><p> fin:in std_logic; --公里脈沖信號(hào)</p><p> cha3,cha2,cha1,cha0:out std_logic_vector(3 downto 0); --費(fèi)用數(shù)據(jù)</p><
28、p> km1,km0:out std_logic_vector(3 downto 0); --公里數(shù)據(jù) </p><p> min1,min0: out std_logic_vector(3 downto 0)); --等待時(shí)間 </p><p><b> end taxi;</b></p>
29、<p> architecture behav of taxi is</p><p> signal f_15,f_16,f_1:std_logic; --頻率為15Hz,16Hz,1Hz的信號(hào)</p><p> signal q_15:integer range 0 to 15;
30、 --分頻器</p><p> signal q_16:integer range 0 to 14; --分頻器</p><p> signal q_1:integer range 0 to 239; --分頻器</p><p> signal w:integer rang
31、e 0 to 59; --秒計(jì)數(shù)器</p><p> signal c3,c2,c1,c0:std_logic_vector(3 downto 0); --制費(fèi)用計(jì)數(shù)器</p><p> signal k1,k0:std_logic_vector(3 downto 0); --公里計(jì)數(shù)器<
32、;/p><p> signal m1:std_logic_vector(2 downto 0); --分的十位計(jì)數(shù)器</p><p> signal m0:std_logic_vector(3 downto 0); --分的個(gè)位計(jì)數(shù)器</p><p> signal en1,en0,f:std_log
33、ic; --使能信號(hào)</p><p><b> begin</b></p><p> feipin:process(clk_240,start)</p><p><b> begin</b></p><p> if clk_240
34、9;event and clk_240='1' then</p><p> if start='0' then q_15<=0;q_16<=0;f_15<='0';f_16<='0';f_1<='0';f<='0';</p><p><b> e
35、lse</b></p><p> if q_15=15 then q_15<=0;f_15<='1'; --此IF語句得到頻率為15Hz的信號(hào)</p><p> else q_15<=q_15+1;f_15<='0';</p><p><b> end if;</b
36、></p><p> if q_16=14 then q_16<=0;f_16<='1'; --此IF語句得到頻率為16Hz的信號(hào)</p><p> else q_16<=q_16+1;f_16<='0';</p><p><b> end if;</b></
37、p><p> if q_1=239 then q_1<=0;f_1<='1'; --此IF語句得到頻率為1Hz的信號(hào)</p><p> else q_1<=q_1+1;f_1<='0';</p><p><b> end if;</b></p><p&
38、gt; if en1='1' then f<=f_15; --此IF語句得到計(jì)費(fèi)脈沖f</p><p> elsif en0='1' then f<=f_16;</p><p> else f<='0';</p><p><b> end if;<
39、;/b></p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> process(f_1)</p><p><b> begin</b&g
40、t;</p><p> if f_1'event and f_1='1' then</p><p> if start='0' then</p><p> w<=0;en1<='0';en0<='0';m1<="000";m0<="
41、;0000";k1<="0000";k0<="0000";</p><p> elsif stop='1' then</p><p> if w=59 then w<=0; --此IF語句完成等待計(jì)時(shí)</p><p> if
42、 m0="1001" then m0<="0000"; --此IF語句完成分計(jì)數(shù)</p><p> if m1<="101" then m1<="000";</p><p> else m1<=m1+1;</p><p><b&
43、gt; end if;</b></p><p> else m0<=m0+1;</p><p><b> end if;</b></p><p> if m1&m0>"0000001"then en1<='1'; --此IF語句得到en1使能信號(hào)
44、</p><p> else en1<='0';</p><p><b> end if;</b></p><p> else w<=w+1;en1<='0';</p><p><b> end if;</b></p><
45、p> elsif fin='1' then</p><p> if k0="1001" then k0<="0000"; --此IF語句完成公里脈沖計(jì)數(shù)</p><p> if k1="1001" then k1<="0000";</
46、p><p> else k1<=k1+1;</p><p><b> end if;</b></p><p> else k0<=k0+1;</p><p><b> end if;</b></p><p> if k1&k0>"00
47、000010" then en0<='1'; --此IF語句得到en0使能信號(hào)</p><p> else en0<='0';</p><p> end if; </p><p> else en1<='0';en0<='0';&
48、lt;/p><p><b> end if;</b></p><p> cha3<=c3;cha2<=c2;cha1<=c1;cha0<=c0; --費(fèi)用數(shù)據(jù)輸出</p><p> km1<=k1;km0<=k0;min1<='0'&m1;min0
49、<=m0; --公里數(shù)據(jù)、分鐘數(shù)據(jù)輸出</p><p><b> end if;</b></p><p> end process;</p><p> process(f,start)</p><p><b> begin</b></p><
50、;p> if start='0' then c3<="0000";c2<="0001";c1<="0000";c0<="0000";</p><p> elsif f'event and f='1' then</p><p> if c
51、0="1001" then c0<="0000"; --此IF語句完成對(duì)費(fèi)用的計(jì)數(shù)</p><p> if c1="1001" then c1<="0000";</p><p> if c2="1001" then c2<=&quo
52、t;0000";</p><p> if c3<="1001" then c3<="0000";</p><p> else c3<=c3+1;</p><p><b> end if;</b></p><p> else c2<=c2+1
53、;</p><p><b> end if;</b></p><p> else c1<=c1+1;</p><p><b> end if;</b></p><p> else c0<=c0+1;</p><p><b> end if;&l
54、t;/b></p><p><b> end if;</b></p><p> end process;</p><p> end behav; </p><p><b> 圖3 仿真波形圖1</b></p><p><b> 圖4 仿真波形圖2&l
55、t;/b></p><p><b> 參考文獻(xiàn)</b></p><p> EDA技術(shù)與VHDL 潘松 黃繼業(yè) 編著,--3版,--北京:清華大學(xué)出版社,2009.9</p><p> 單片機(jī)原理及實(shí)用技術(shù)——凌陽16位單片機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版社,2004,1.</p><p><b&
56、gt; 結(jié)束語 </b></p><p> 這次實(shí)訓(xùn)中,我們主要是運(yùn)用VHDL語言設(shè)計(jì)了一個(gè)出租車計(jì)費(fèi)器,并且用層次化的設(shè)計(jì)方法來實(shí)現(xiàn)這個(gè)電路。在程序編寫結(jié)束后,我們還對(duì)該程序進(jìn)行了調(diào)試, 能按預(yù)期的效果進(jìn)行模擬汽車啟動(dòng)、停止、暫停等功能,基本完成課程設(shè)計(jì)的要求。</p><p> 此外,由于是初學(xué)EDA及VHDL,難免一些錯(cuò)誤及不足之處,本系統(tǒng)也存在一定的缺陷,如車費(fèi)只
57、能顯示到十位,百位無法顯示,暫停也只能顯示10分鐘以內(nèi)。因此,改進(jìn)方向可從擴(kuò)大輸出范圍入手。</p><p> 通過此次實(shí)訓(xùn),我們更進(jìn)一步的深入了解了VHDL設(shè)計(jì)語言,并通過使用對(duì)它有了更深的體會(huì)。對(duì)于編程過程中可能遇到的問題有了一定的了解,也明白了其中的一些注意事項(xiàng),對(duì)于下次進(jìn)行編程設(shè)計(jì)有很大的幫助和提高。</p><p> 總之,這次實(shí)驗(yàn)不僅僅加強(qiáng)了我們的動(dòng)手編程能力,也大大加強(qiáng)了
58、團(tuán)隊(duì)合作以及設(shè)計(jì)能力,使我們?cè)诶碚搶W(xué)習(xí)和編程練習(xí)方面及實(shí)際操作方面都獲得了較大的收獲。</p><p><b> 致謝</b></p><p> 最后,衷心感謝xx老師全程指導(dǎo)及提出的寶貴建議,可以說,沒有xx老師,本實(shí)驗(yàn)就不能取得成功。</p><p><b> 附錄</b></p><p>
59、; 出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)已全部完成,能按預(yù)期的效果進(jìn)行模擬汽車啟動(dòng)、停止、暫停等功能,并設(shè)計(jì)LED數(shù)碼管顯示車費(fèi)數(shù)目。車暫時(shí)1分鐘內(nèi)車費(fèi)保持不變。若停止則車費(fèi)清零,等待下一次計(jì)費(fèi)的開始出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)中體現(xiàn)了VHDL覆蓋面廣,描述能力強(qiáng),是一個(gè)多層次的硬件描述語言及PLD器件速度快,使用方便,便于修改等特點(diǎn),本設(shè)計(jì)在實(shí)用方面具有一定的價(jià)值。</p><p><b> 百進(jìn)紙模塊</b&g
60、t;</p><p><b> 1.源程序:</b></p><p> library ieee; use ieee.std_logic_1164.all; </p><p> use ieee.std_logic_unsigned.all; </p><p> entity baijinzhi is p
61、ort(start,clk2: in std_logic; --秒脈沖 </p><p> a: out std_logic_vector(3 downto 0)); </p><p> end baijinzhi; </p><p> architecture rt1 of baijinzhi issig
62、nal </p><p> count_1:std_logic_vector(3 downto 0);</p><p> begin </p><p> a<=count_1;process(start,clk2) </p><p> begin </p><p> if
63、(start='0')then </p><p> count_1<="0000"; </p><p> elsif(clk2'event and clk2='1')then </p><p> if(count_1="0111&qu
64、ot;)then </p><p> count_1<="0000"; </p><p> else </p><p> count_1<=count_1+'1'; </
65、p><p> end if; </p><p><b> end if;</b></p><p> end process;</p><p><b> end rt1</b></p><p><b> 計(jì)費(fèi)模塊</b>&l
66、t;/p><p><b> 源程序如下:</b></p><p> Library IEEE;</p><p> use IEEE.std_logic_1164.all;</p><p> use IEEE.std_logic_arith.all;</p><p> use IEEE
67、.std_logic_unsigned.all;</p><p> entity jifei isport(clk2:in std_logic; --計(jì)費(fèi)驅(qū)動(dòng)信號(hào) </p><p> start:in std_logic; --計(jì)費(fèi)開始信號(hào) </p><p> c0,c1,c2,
68、c3:buffer std_logic_vector(3 downto 0));</p><p> end jifei;</p><p> architecture rt1 of jifei isbeginprocess(clk2,start)</p><p><b> begin </b></p><p&
69、gt; if start='0'then c3<="0000";</p><p> c2<="0000";c1<="0101";c0<="0000"; --起步價(jià)5元 </p><p> elsif clk2'event and clk2=
70、39;1'then </p><p> if c0="1001" then c0<="0000"; </p><p> if c1="1001" then c1<="0000"; </p><p> if c2="1
71、001" then c2<="0000"; </p><p> if c3="1001" then c3<="0000"; </p><p> else c3<=c3+1; </p><p> end if;
72、 </p><p> else c2<=c2+1; </p><p> end if; </p><p> else c1<=c1+1; </p><p> end if; </p><p> else c0<=
73、c0+1; </p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end rt1;</b></p><p>&
74、lt;b> 3.公里模塊</b></p><p><b> 源程序如下:</b></p><p> library ieee; </p><p> use ieee.std_logic_1164.all; </p><p> use ieee.std_logic_unsigned.all; &
75、lt;/p><p> entity gongli is </p><p> port(clk1,start: in std_logic; --百米脈沖</p><p> k1,k2,k3,k4: out std_logic_vector(3 downto 0); --里程顯示 </p><p&g
76、t; temp2 : out std_logic); </p><p> end gongli; </p><p> architecture rt1 of gongli is </p><p> signal count_1: std_logic_vector(3 downto 0);</p><p> signal coun
77、t_2: std_logic_vector(3 downto 0);</p><p> signal count_3: std_logic_vector(3 downto 0);</p><p> signal count_4: std_logic_vector(3 downto 0);</p><p><b> begin </b>
78、</p><p> k1<=count_1;</p><p> k2<=count_2;</p><p> k3<=count_3;</p><p> k4<=count_4;</p><p> process(start,clk1) </p><p><
79、b> begin </b></p><p> if(start='0')then </p><p> count_1<="0000";</p><p> count_2<="0000";</p><p> count_3<="000
80、0";</p><p> count_4<="0000"; ---公里清零</p><p> elsif(clk1'event and clk1='1')then </p><p> if(count_1="1001")then
81、 --公里計(jì)數(shù)器 </p><p> count_1<="0000";count_2<=count_2+1;temp2<='1';</p><p> if(count_2="1001")then </p><p> count_2<="0000&qu
82、ot;;count_3<=count_3+'1'; </p><p> if(count_3="1001")then </p><p> count_3<="0000";count_4<=count_4+'1'; </p><p><
83、b> end if; </b></p><p><b> end if; </b></p><p><b> else </b></p><p> count_1<=count_1+'1';temp2<='0'; </p><p>
84、; end if; </p><p><b> end if; </b></p><p> end process;</p><p><b> end rt1; </b></p><p><b> 4.輸出模塊</b></p><p
85、><b> 源程序如下:</b></p><p> library ieee; </p><p> use ieee.std_logic_1164.all; </p><p> use ieee.std_logic_unsigned.all; </p><p> entity shuchu is <
86、/p><p> port(y: in std_logic_vector(3 downto 0); </p><p> e: out std_logic_vector(6 downto 0)); </p><p> end shuchu; </p><p> architecture rt1of shuchu is </p>
87、<p><b> begin</b></p><p><b> process</b></p><p><b> begin</b></p><p><b> case y is</b></p><p> when"0000&
88、quot;=>e<="0111111";</p><p> when"0001"=>e<="0000110";</p><p> when"0010"=>e<="1011011";</p><p> when"001
89、1"=>e<="1001111";</p><p> when"0100"=>e<="1100110";</p><p> when"0101"=>e<="1101101";</p><p> when"0
90、110"=>e<="1111101";</p><p> when"0111"=>e<="0000111";</p><p> when"1000"=>e<="1111111";</p><p> when"
91、;1001"=>e<="1100111";</p><p> when others=>e<="0000000";</p><p><b> end case;</b></p><p> end process;</p><p><b&
92、gt; end rt1;</b></p><p><b> 5.顯示模塊</b></p><p><b> 源程序如下:</b></p><p> library ieee; </p><p> use ieee.std_logic_1164.all; </p>
93、<p> use ieee.std_logic_unsigned.all; </p><p> entity xianshi is </p><p> port(start: in std_logic;</p><p> a:in std_logic_vector(3 downto 0); --選擇信號(hào)</p>
94、;<p> c1,c2,c3,c4,out1,out2,out3,out4:in std_logic_vector(3 downto 0); --里程顯示,時(shí)間顯示輸入 </p><p> y:out std_logic_vector(3 downto 0)); --里程顯示,時(shí)間顯示輸出</p><p> end xianshi
95、;</p><p> architecture rt1 of xianshi is </p><p><b> begin</b></p><p><b> process </b></p><p><b> begin</b></p><p>
96、 if(start='0')then</p><p> y<="0000";</p><p> else case a is</p><p> when "0000"=> y<=c1 ;</p><p> when "0001"=>
97、 y<=c2 ;</p><p> when "0010"=> y<=c3 ;</p><p> when "0011"=> y<=c4 ;</p><p> when "0100"=> y<=out1 ;</p><p> when
98、 "0101"=> y<=out2;</p><p> when "0110"=> y<=out3 ;</p><p> when "0111"=> y<=out4;</p><p> when others =>y<= "0000"
99、;</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> end rt1;</b></p><p><b> 6.
100、dian模塊</b></p><p><b> 源程序如下:</b></p><p> library ieee; </p><p> use ieee.std_logic_1164.all; </p><p> use ieee.std_logic_unsigned.all; </p>
101、<p> entity dian is </p><p> port(a: in std_logic_vector(3 downto 0);</p><p> e: out std_logic); </p><p> end dian; </p><p> architecture rt1 of dian is <
102、/p><p><b> begin</b></p><p><b> process</b></p><p><b> begin</b></p><p> case a is </p><p> when "0001"=&
103、gt;e<='1'; </p><p> when "0101"=>e<='1';</p><p> when others=>e<='0';</p><p><b> end case;</b></p><p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)價(jià)器課程設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 課程設(shè)計(jì)--出租車計(jì)價(jià)器設(shè)計(jì)
- 出租車計(jì)價(jià)器設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器設(shè)計(jì)
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)報(bào)告
- 硬件課程設(shè)計(jì)----出租車計(jì)價(jià)器
- eda課程設(shè)計(jì)--出租車計(jì)價(jià)器
- eda課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 出租車計(jì)價(jià)器課程設(shè)計(jì)論文
- 接口課程設(shè)計(jì)---出租車計(jì)價(jià)器
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器的設(shè)計(jì)
- 課程設(shè)計(jì)--出租車計(jì)價(jià)器的設(shè)計(jì)
- 硬件課程設(shè)計(jì)--出租車計(jì)價(jià)器系統(tǒng)
- eda課程設(shè)計(jì)報(bào)告---出租車計(jì)價(jià)器
- eda課程設(shè)計(jì)報(bào)告--出租車計(jì)價(jià)器
- arm出租車計(jì)價(jià)器系統(tǒng)課程設(shè)計(jì)
- 硬件課程設(shè)計(jì)報(bào)告--出租車計(jì)價(jià)器
評(píng)論
0/150
提交評(píng)論