欢迎来到天天文库
浏览记录
ID:18343695
大小:100.50 KB
页数:12页
时间:2018-09-17
《基于verilog语言的出租车计费器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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//endbeginelsecount<=count+1
2、'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)//异步复位beginif(!reset)beginclk<='d0;count=
3、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_000000)//判断计时器记到了25_000000吗begincount<=32'd0;//计到25_000000计数器清零
4、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//endbeginelsecount<=count+1'd1;//没计到25_000000计数器加一default:clk<=clk;endcaseend//end//endalw
5、aysendmodule//结束分频模块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:0]==9)//秒的低四位是9begins[3:0]<=4'd0;//清零if(s[7:4]==5)//秒的高四位是5begins[7:4]<=4'd0;//清零if(m[3:0]==9)//分的低四位是9be
6、ginm[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]<=s[7:4]+1'd1;//秒的高四位不是5加一endelses[3:0]<=s[3:0]+1'd1;//秒的低四位不是9加一end//endalways//产生time_enable信号。endmodule//结束计时模块4等候时间计数:modu
7、letimemokuai(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@(posedgeclkornegedgereset)//异步复位beginif(!reset)//低电平有效begin//复位s<=8'd0;m<=8'd0;endelseif(!start)//start信号低电平有效beginif(s[3:0]==9)//秒的低四位是9begins[3:
8、0]<=4'd0;//清零if(s[7:4]==5)//秒的高四位是5begins[7:4]<=4'd0;//清零if(m[3:0]==9)//分的低四位是9beginm[3:0
此文档下载收益归作者所有