EDA課程設(shè)計最終版_第1頁
EDA課程設(shè)計最終版_第2頁
EDA課程設(shè)計最終版_第3頁
EDA課程設(shè)計最終版_第4頁
EDA課程設(shè)計最終版_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第11頁共13頁EDA課程設(shè)計出租車自動計費(fèi)器院系:信息工程學(xué)院班級:11級電科2班學(xué)號:201114580229姓名:仝福成同組:周亞婷指導(dǎo):賈默伊任務(wù)書一、用VHDL運(yùn)用層次化設(shè)計方法設(shè)計一個小型數(shù)字系統(tǒng)題目:簡易出租車計價器二、說明書內(nèi)容:1.系統(tǒng)設(shè)計要求(功能)2.系統(tǒng)設(shè)計方案(包括頂層電路圖)3.VHDL源程序及仿真波形圖4.課程設(shè)計注釋5.設(shè)計解釋、說明6.獨(dú)特之處目錄:第一節(jié):設(shè)計要求……4第二節(jié):系統(tǒng)設(shè)計方案………………4 1)、思路…………………...4 2)、設(shè)計…………………...4 ①、輸入端口…….5②、輸出端口…….5第三節(jié):源程序和頂層電路圖………...5源程序………5頂層電路……10第四節(jié):情景仿真…….1021公里內(nèi)無等待仿真…………….10進(jìn)行21公里以上無等待仿真……10進(jìn)行單程有等待仿真……………..11單程中進(jìn)行復(fù)位仿真……………..11綜合性仿真實驗…..12第五節(jié):系統(tǒng)拓展思路………………..12第六節(jié):設(shè)計心得總結(jié)………………..12設(shè)計要求:設(shè)計一個出租車單程自動計費(fèi)器,計費(fèi)包括起步價、行車?yán)锍逃嬞M(fèi)、等待時間計費(fèi)等。起步價為8元,起步為3km。超過3km,按照1元/km收費(fèi)。單程行駛超過21km,每公里加收50%費(fèi)用。等候時間超過一分鐘按照行駛一公里收費(fèi)。要求顯示兩位里程、四位計費(fèi)xxx.x和兩位等候時間。設(shè)計方案:按照設(shè)計要求完成流程圖:思路:①、輸入雙時鐘信號,分別模擬時間和路程。對信號進(jìn)行分頻達(dá)到一定的計數(shù)目的。②、通過對里程的計數(shù)產(chǎn)生兩個使能信號,伊達(dá)到在不同里程的時候產(chǎn)生不同的計費(fèi)方法。③、通過各種使能信號使各個計數(shù)分別處在不同的狀態(tài),從而達(dá)到不同狀態(tài)的設(shè)計要求。設(shè)計:輸入端口:clk和mile——兩個時鐘信號,分別是時鐘信號和里程信號。由于本設(shè)計存在缺點,無法根據(jù)速度和時間進(jìn)行計程,所以設(shè)置成兩個時鐘信號進(jìn)行。wait_signal——等待時間計數(shù)的使能信號。one_way——單程行駛信號,由于本設(shè)計是單程行駛的自動計費(fèi)器,所以該信號一直為‘1’。rst——復(fù)位信號,該信號為‘1’時,所有輸出全部清零。start——開始計數(shù)的使能信號。②、輸出端口:cost0,cost1,cost2,cost3——4位顯示計價,最高顯示999.9元。min0,min1——8位BCD碼顯示等待時間單位,最高時間59分鐘。km0,km1——8位BCD碼顯示里程,最高為99公里。源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitychuzujijiaisport(clk,start,wait_signal,mile,one_way,rst:instd_logic;cost0,cost1,cost2,cost3:outstd_logic_vector(3downto0);min0,min1:outstd_logic_vector(3downto0);km0,km1:outstd_logic_vector(3downto0));end;--主體部分,對各個端口進(jìn)行聲明architectureoneofchuzujijiaissignalmile_r1,mile_r2,mile_clk,start_r,clk1hz:std_logic;signalcount:integerrange0to29;signalsec:integerrange0to59;signalc0,c1,c2,c3:std_logic_vector(3downto0);signalk0,k1,m0,m1:std_logic_vector(3downto0);signalen0,en1:std_logic;signalwait_clk,cost_clk:std_logic;beginU1:process(rst,clk)--分頻部分beginifrst='0'then ifclk'eventandclk='1'then ifcount=5thencount<=0;clk1hz<='1'; elsecount<=count+1;clk1hz<='0'; endif; endif;endif;endprocess;U2:process(rst,clk1hz,start,wait_signal)--計時部分beginifrst='1'thenm0<="0000";m1<="0000";elsifstart='0'thenwait_clk<='0';elsifclk1hz'eventandclk1hz='1'thenifwait_signal='1'then ifsec=5thensec<=0;wait_clk<='1'; ifm0="1001"thenm0<="0000"; ifm1="0101"thenm1<="0000"; elsem1<=m1+'1'; endif; elsem0<=m0+'1'; endif; elsewait_clk<='0';sec<=sec+1; endif;elsewait_clk<='0';endif;endif;endprocess;U3:process(rst,clk1hz,mile,start)--同步各個時鐘信號beginifrst='0'then ifclk1hz'eventandclk1hz='1'thenmile_r2<=mile_r1;mile_r1<=mile;start_r<=start; endif;endif;endprocess;mile_clk<=mile_r1andnot(mile_r2);cost_clk<=wait_clkwhenwait_signal='1'elsemile_clkwhenen0='1'oren1='1'else'0';U4:process(rst,start,mile_clk)--計程部分beginifrst='1'thenk0<="0000";k1<="0000";elsifstart='0'thenk0<="0000";k1<="0000";en0<='0';en1<='0';elsifmile_clk'eventandmile_clk='1'then ifk1&k0>="00100000"andone_way='1'thenen1<='1';en0<='0'; endif; ifk1&k0="00000011"thenen0<='1'; endif; ifk0="1001"thenk0<="0000"; ifk1="1001"thenk1<="0000"; elsek1<=k1+'1'; endif; elsek0<=k0+'1'; endif;endif;endprocess;U5:process(rst,start,cost_clk,start_r)--計價部分beginifrst='1'thenc0<="0000";c1<="0000";c2<="0000";c3<="0000";elsifstart='1'andstart_r='0'thenc0<="0000";c1<="1000";c2<="0000";c3<="0000";elsifcost_clk'eventandcost_clk='1'then ifen1='0'anden0='1'then ifc1="1001"thenc1<="0000"; ifc2="1001"thenc2<="0000"; ifc3="1001"thenc3<="0000"; elsec3<=c3+'1'; endif; elsec2<=c2+'1'; endif; elsec1<=c1+'1';c0<="0000"; endif; else if(c0="0101"andc1="1000")orc1="1001"then ifc1="1001"andc0="0101"thenc0<="0000";c1<="0001";elsifc1="1001"andc0="0000"thenc0<="0101";c1<="0000"; elsifc1="1000"andc0="0101"thenc0<="0000";c1<="0000"; endif; ifc2="1001"thenc2<="0000"; ifc3="1001"thenc3<="0000"; elsec3<=c3+'1'; endif; elsec2<=c2+'1'; endif; elsifc0="0000"thenc0<="0101";c1<=c1+'1'; elsec0<="0000";c1<=c1+"0010"; endif; endif;endif;endprocess;min0<=m0;min1<=m1;km0<=k0;km1<=k1;cost0<=c0;cost1<=c1;cost2<=c2;cost3<=c3;--最后輸出end;頂層電路圖:仿真波形如下:㈠、進(jìn)行單程21公里以內(nèi)無等待仿真,如下:從圖中可以看出在3Km以內(nèi)直接賦值8元給個位計數(shù)的cost1,超過3公里之后進(jìn)行每公里加1計數(shù),并且到十向高一位進(jìn)位。㈡、進(jìn)行21公里以上無等待仿真:由圖可知21公里以上時每公里加價0.5元,由cost0顯示到達(dá)21公里時候顯示在26元,22公里顯示27.5元。㈢、進(jìn)行單程有等待仿真:由圖可見在等待的時候進(jìn)行計價1元/分鐘。并且在原來已有的計價上累加。㈣、單程中進(jìn)行復(fù)位仿真:由圖可見,在復(fù)位信號到來時候所有的輸出信號全部歸零。㈤、綜合性仿真實驗:在復(fù)位信號到來的時候,行駛了41公里,等待了4分鐘,應(yīng)當(dāng)支付:8+(21-3)*1+(41-21)*1.5+4=60元,與圖中顯示一致。系統(tǒng)拓展思路:如果能夠加入車速采集器或者對車輪轉(zhuǎn)動圈數(shù)進(jìn)行實時采集計算,那么就可以不依靠固定的速度進(jìn)行整個仿真。只有不依靠固定車速實現(xiàn)上述的計程功能,該款設(shè)備才能投入實際生產(chǎn)應(yīng)用。該程序還可可以修改成其他設(shè)備使用。對計價部分修改,加入實時采集油量的設(shè)備,從而可以用以檢測一部車油耗和行駛里程及時間的關(guān)系。體會與心得:在設(shè)計開始之初準(zhǔn)備設(shè)計的是20公里為另一個計價點,但是在仿真的過程中出現(xiàn)的每公里計價變化出現(xiàn)在21公里。在改變設(shè)計要求的情況下

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論