基于verilog语言的出租车计费器.doc

基于verilog语言的出租车计费器.doc

ID:50906764

大小:67.50 KB

页数:12页

时间:2020-03-15

基于verilog语言的出租车计费器.doc_第1页
基于verilog语言的出租车计费器.doc_第2页
基于verilog语言的出租车计费器.doc_第3页
基于verilog语言的出租车计费器.doc_第4页
基于verilog语言的出租车计费器.doc_第5页
资源描述:

《基于verilog语言的出租车计费器.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、1时间分频:modulediv(clk_50M,clk);//端口的定义inputclk_50M;//总的时钟是50Moutputclk;//分频后输的时钟regclk;reg[31:0]count;//32位的计数器always@(posedgeclk_50M)//异步复位beginif(count==32'd25_000000)//判断计时器记到了25_000000吗begincount<=32'd0;//计到25_000000计数器清零clk<=~clk;//输出的时钟取反end//endbe

2、ginelsecount<=count+1'd1;//没计到25_000000计数器加一end//endalwaysendmodule//结束分频模块2速度分频;modulesududiv(op,clk_50M,clk,reset);//端口的定义inputclk_50M,reset;//总的时钟是50Minput[2:0]op;outputclk;//分频后输的时钟regclk;reg[31:0]count;//32位的计数器always@(posedgeclk_50Mornegedgereset

3、)//异步复位beginif(!reset)beginclk<='d0;count=32'd0;endelsebegincase(op)3'b001:if(count==32'd50_000000)//判断计时器记到了25_000000吗begincount<=32'd0;//计到25_000000计数器清零clk<=~clk;//输出的时钟取反end//endbeginelsecount<=count+1'd1;//没计到25_000000计数器加一3'b010:if(count==32'd40_

4、000000)//判断计时器记到了25_000000吗begincount<=32'd0;//计到25_000000计数器清零clk<=~clk;//输出的时钟取反end//endbeginelsecount<=count+1'd1;//没计到25_000000计数器加一3'b011:if(count==32'd30_000000)//判断计时器记到了25_000000吗begincount<=32'd0;//计到25_000000计数器清零clk<=~clk;//输出的时钟取反end//endbe

5、ginelsecount<=count+1'd1;//没计到25_000000计数器加一default:clk<=clk;endcaseend//end//endalwaysendmodule//结束分频模块3系统时间计数:modulexttimemokuai(clk,s,m,);//端口的定义inputclk;output[7:0]s;//输出的秒output[7:0]m;//输出的分reg[7:0]s;reg[7:0]m;always@(posedgeclk)//异步复位beginif(s[3:

6、0]==9)//秒的低四位是9begins[3:0]<=4'd0;//清零if(s[7:4]==5)//秒的高四位是5begins[7:4]<=4'd0;//清零if(m[3:0]==9)//分的低四位是9beginm[3:0]<=4'd0;//清零if(m[7:4]==9)//分的高四位是9m[7:4]<=4'd0;//清零elsem[7:4]<=m[7:4]+1'd1;//分的高四位不是9加一endelsem[3:0]<=m[3:0]+1'd1;//分的低四位不是9加一endelses[7:4]

7、<=s[7:4]+1'd1;//秒的高四位不是5加一endelses[3:0]<=s[3:0]+1'd1;//秒的低四位不是9加一end//endalways//产生time_enable信号。endmodule//结束计时模块4等候时间计数:moduletimemokuai(clk,reset,start,s,m);//端口的定义inputclk,reset,start;output[7:0]s;//输出的秒output[7:0]m;//输出的分reg[7:0]s;reg[7:0]m;always

8、@(posedgeclkornegedgereset)//异步复位beginif(!reset)//低电平有效begin//复位s<=8'd0;m<=8'd0;endelseif(!start)//start信号低电平有效beginif(s[3:0]==9)//秒的低四位是9begins[3:0]<=4'd0;//清零if(s[7:4]==5)//秒的高四位是5begins[7:4]<=4'd0;//清零if(m[3:0]==9)//分的低四位是9beginm[3:0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。