基于verilog語(yǔ)言的出租車計(jì)費(fèi)器_第1頁(yè)
基于verilog語(yǔ)言的出租車計(jì)費(fèi)器_第2頁(yè)
基于verilog語(yǔ)言的出租車計(jì)費(fèi)器_第3頁(yè)
基于verilog語(yǔ)言的出租車計(jì)費(fèi)器_第4頁(yè)
基于verilog語(yǔ)言的出租車計(jì)費(fèi)器_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上1時(shí)間分頻:module div(clk_50M,clk);/ 端口的定義input clk_50M;/ 總的時(shí)鐘是50Moutput clk;/分頻后輸?shù)臅r(shí)鐘 reg clk;reg 31:0 count;/32位的計(jì)數(shù)器always (posedge clk_50M )/異步復(fù)位begin if(count=32'd25_)/ 判斷計(jì)時(shí)器記到了25_嗎 begin count<=32'd0;/計(jì)到25_計(jì)數(shù)器清零 clk<=clk;/輸出的時(shí)鐘取反 end/end begin else count<=count+1'd1;

2、/ 沒(méi)計(jì)到25_計(jì)數(shù)器加一end/end alwaysendmodule / 結(jié)束分頻模塊2速度分頻;module sududiv(op,clk_50M,clk,reset);/ 端口的定義input clk_50M,reset;/ 總的時(shí)鐘是50Minput 2:0 op;output clk;/分頻后輸?shù)臅r(shí)鐘 reg clk;reg 31:0 count;/32位的計(jì)數(shù)器always (posedge clk_50M or negedge reset)/異步復(fù)位begin if(!reset) begin clk<='d0; count=32'd0; end else

3、 begin case(op) 3'b001: if(count=32'd50_)/ 判斷計(jì)時(shí)器記到了25_嗎 begin count<=32'd0;/計(jì)到25_計(jì)數(shù)器清零 clk<=clk;/輸出的時(shí)鐘取反 end/end begin else count<=count+1'd1;/ 沒(méi)計(jì)到25_計(jì)數(shù)器加一 3'b010: if(count=32'd40_)/ 判斷計(jì)時(shí)器記到了25_嗎 begin count<=32'd0;/計(jì)到25_計(jì)數(shù)器清零 clk<=clk;/輸出的時(shí)鐘取反 end/end begi

4、n else count<=count+1'd1;/ 沒(méi)計(jì)到25_計(jì)數(shù)器加一 3'b011: if(count=32'd30_)/ 判斷計(jì)時(shí)器記到了25_嗎 begin count<=32'd0;/計(jì)到25_計(jì)數(shù)器清零 clk<=clk;/輸出的時(shí)鐘取反 end/end begin else count<=count+1'd1;/ 沒(méi)計(jì)到25_計(jì)數(shù)器加一 default:clk<=clk; endcase end/ end/end alwaysendmodule / 結(jié)束分頻模塊3系統(tǒng)時(shí)間計(jì)數(shù):module xttimemo

5、kuai(clk,s,m,);/ 端口的定義input clk;output 7:0 s;/輸出的秒output 7:0 m;/輸出的分reg 7:0 s;reg 7:0 m; always(posedge clk )/異步復(fù)位beginif(s3:0=9)/ 秒的低四位是9 begin s3:0<=4'd0;/清零 if(s7:4=5) / 秒的高四位是5 begin s7:4<=4'd0; /清零 if(m3:0=9) / 分的低四位是9 begin m3:0<=4'd0; /清零 if(m7:4=9) / 分的高四位是9 m7:4<=4&#

6、39;d0; /清零 else m7:4<=m7:4+1'd1; / 分的高四位不是9加一 end else m3:0<=m3:0+1'd1; /分的低四位不是9加一 end else s7:4<=s7:4+1'd1; / 秒的高四位不是5加一 endelse s3:0<=s3:0+1'd1; /秒的低四位不是9加一 end/end always /產(chǎn)生time_enable信號(hào)。endmodule/結(jié)束計(jì)時(shí)模塊4等候時(shí)間計(jì)數(shù):module timemokuai(clk,reset,start,s,m);/ 端口的定義input clk,

7、reset,start;output 7:0 s;/輸出的秒output 7:0 m;/輸出的分reg 7:0 s;reg 7:0 m;always(posedge clk or negedge reset)/異步復(fù)位beginif(!reset)/低電平有效begin /復(fù)位s<=8'd0;m<=8'd0;endelse if(!start)/start 信號(hào)低電平有效beginif(s3:0=9)/ 秒的低四位是9 begin s3:0<=4'd0;/清零 if(s7:4=5) / 秒的高四位是5 begin s7:4<=4'd0;

8、/清零 if(m3:0=9) / 分的低四位是9 begin m3:0<=4'd0; /清零 if(m7:4=9) / 分的高四位是9 m7:4<=4'd0; /清零 else m7:4<=m7:4+1'd1; / 分的高四位不是9加一endelse m3:0<=m3:0+1'd1; /分的低四位不是9加一endelse s7:4<=s7:4+1'd1; / 秒的高四位不是5加一endelse s3:0<=s3:0+1'd1; /秒的低四位不是9加一 end/end alwaysend endmodule/結(jié)束

9、計(jì)時(shí)模塊5里程計(jì)數(shù):module distancemokuai(clk,start,reset,distance);/端口的定義input clk,start,reset;output 7:0 distance;/ 輸出的公里reg 7:0 distance;always(posedge clk or negedge reset)/異步復(fù)位begin if(!reset)/低電平復(fù)位 begin distance<=8'd0; end else if(start)/ start 高電平有效 begin if(distance3:0=9)/判斷distance的低四位計(jì)到了9沒(méi)有

10、begin distance3:0<=4'd0;/計(jì)到9清零 if(distance7:4=9) /判斷distance的高四位計(jì)到了9沒(méi)有 distance7:4<=4'd0;/計(jì)到9清零 else distance7:4<= distance7:4+1'd1;/ distance的高四位沒(méi)有計(jì)到9的時(shí)候加一 end else distance3:0<=distance3:0+1'd1;/ distance的低四位沒(méi)有計(jì)到9的時(shí)候加一 end/end startend/end always/*產(chǎn)生distance_enable信號(hào)*/e

11、ndmodule/結(jié)束計(jì)程模塊6費(fèi)用計(jì)算模塊:module fee(clk,bianjia,xuanze,juli,shijian,fee,fee1,danjia);input juli ,shijian,clk,bianjia,xuanze,danjia;wire 7:0r;reg 7:0r1;reg 7:0r2;reg 7:0p;wire 7:0p1;output 7:0fee;output 7:0fee1;wire 7:0juli;wire 7:0shijian;reg 7:0x1;reg 7:0x2;always(posedge clk)begin if(bianjia) begin

12、p=p+1; end else begin p=p-1; end endalways(juli or shijian)begin x1=juli7:4*10+juli3:0; if(juli<=8'd3) r1=6; else begin if(xuanze) begin r1=(x1-3)*(p+1)+6; end else begin r1=(x1-3)*(p+2)+6; end end /end else x2=shijian7:4*10+shijian3:0; r2=x2*1; end assign p1=xuanze?p+1:p+2;assign r=danjia?p1

13、:r1+r2;assign fee17:4=r/1000;assign fee13:0=(r-1000*fee17:4)/100;assign fee7:4=(r-100*fee1)/10;assign fee3:0=r%10;endmodule7系統(tǒng)和等候時(shí)間控制輸出模塊:module timecontrol(timecontrol,xts,xtm,s,m,xss,xsm);input7:0 s; /輸入的秒input7:0 m; /輸入的分。input7:0 xts; /輸入的秒input7:0 xtm; /輸入的分。output 7:0 xss;/輸出的秒output 7:0 xsm;/

14、輸出的分wire 7:0 xss;wire 7:0 xsm;input timecontrol;assign xss=timecontrol?xts:s;assign xsm=timecontrol?xtm:m;endmodule8費(fèi)用高八位和里程的輸出控制:module feecontrol(fee1,distance,shuchu,panduan);input7:0 fee1; /輸入的秒input7:0 distance; /輸入的分。output 7:0 shuchu;/輸出wire 7:0 shuchu;input panduan;assign shuchu=panduan?dist

15、ance:fee1;endmodule9總體顯示模塊;module scan_led(distance,s,m,fee,segdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,segdat8);/input outclk;input7:0 distance,fee; /輸入的公里,費(fèi)用。input7:0 s; /輸入的秒input7:0 m; /輸入的分。wire 3:0 dispdat1,dispdat2,dispdat3,dispdat4,dispdat5,dispdat6,dispdat7,dispdat8;output 7:0 s

16、egdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,segdat8;/reg 3:0 dispdat1,dispdat2,dispdat3,dispdat4,dispdat5,dispdat6,dispdat7,dispdat8;reg 2:0 count_reg;reg 7:0 segdat1,segdat2,segdat3,segdat4,segdat5,segdat6,segdat7,segdat8;reg 3:0 count;reg7:0 min,sec,dis,money;/ assign dispdat8=fee7:4; /

17、qian shu shi wei assign dispdat1=s3:0; / miao de ge wei assign dispdat2=s7:4; /miao de shi wei assign dispdat3=m3:0; /fen de ge wei assign dispdat4=m7:4; /fen de shi wei assign dispdat5=distance3:0; /ju li ge wei assign dispdat6=distance7:4; /ju li shi wei assign dispdat7=fee3:0; /qian shu ge wei /m

18、iao de ge wei/always (dispdat1)begin case(dispdat1)4'h0: segdat1=8'b;/04'h1:segdat1=8'b;/14'h2:segdat1=8'b;/24'h3:segdat1=8'b;/34'h4:segdat1=8'b;/44'h5:segdat1=8'b;/54'h6:segdat1=8'b;/64'h7:segdat1=8'b;/74'h8:segdat1=8'b;/84'

19、;h9:segdat1=8'b;/9default: segdat1=8'b;/0endcaseend/miao de shi wei/always (dispdat2)begin case(dispdat2)4'h0: segdat2=8'b;/04'h1:segdat2=8'b;/14'h2:segdat2=8'b;/24'h3:segdat2=8'b;/34'h4:segdat2=8'b;/44'h5:segdat2=8'b;/54'h6:segdat2=8'b

20、;/64'h7:segdat2=8'b;/74'h8:segdat2=8'b;/84'h9:segdat2=8'b;/9default: segdat2=8'b;/0endcaseend/fen de ge wei/always (dispdat3)begin case(dispdat3)4'h0: segdat3=8'b;/04'h1:segdat3=8'b;/14'h2:segdat3=8'b;/24'h3:segdat3=8'b;/34'h4:segdat3=8

21、'b;/44'h5:segdat3=8'b;/54'h6:segdat3=8'b;/64'h7:segdat3=8'b;/74'h8:segdat3=8'b;/84'h9:segdat3=8'b;/9default: segdat3=8'b;/0endcaseend/ fen de shi wei/always (dispdat4)begin case(dispdat4)4'h0: segdat4=8'b;/04'h1:segdat4=8'b;/14'h2:s

22、egdat4=8'b;/24'h3:segdat4=8'b;/34'h4:segdat4=8'b;/44'h5:segdat4=8'b;/54'h6:segdat4=8'b;/64'h7:segdat4=8'b;/74'h8:segdat4=8'b;/84'h9:segdat4=8'b;/9default: segdat4=8'b;/0endcaseend/ju li de ge wei/always (dispdat5)begin case(dispdat5)4&#

23、39;h0: segdat5=8'b;/04'h1:segdat5=8'b;/14'h2:segdat5=8'b;/24'h3:segdat5=8'b;/34'h4:segdat5=8'b;/44'h5:segdat5=8'b;/54'h6:segdat5=8'b;/64'h7:segdat5=8'b;/74'h8:segdat5=8'b;/84'h9:segdat5=8'b;/9default: segdat5=8'b;/0endca

24、seend/ju li de shi wei/always (dispdat6)begin case(dispdat6)4'h0: segdat6=8'b;/04'h1:segdat6=8'b;/14'h2:segdat6=8'b;/24'h3:segdat6=8'b;/34'h4:segdat6=8'b;/44'h5:segdat6=8'b;/54'h6:segdat6=8'b;/64'h7:segdat6=8'b;/74'h8:segdat6=8'b;/84'h9:segda

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論