基于verilog语言的出租车计费器文档格式.docx

上传人:b****3 文档编号:15407835 上传时间:2022-10-30 格式:DOCX 页数:16 大小:509KB
下载 相关 举报
基于verilog语言的出租车计费器文档格式.docx_第1页
第1页 / 共16页
基于verilog语言的出租车计费器文档格式.docx_第2页
第2页 / 共16页
基于verilog语言的出租车计费器文档格式.docx_第3页
第3页 / 共16页
基于verilog语言的出租车计费器文档格式.docx_第4页
第4页 / 共16页
基于verilog语言的出租车计费器文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于verilog语言的出租车计费器文档格式.docx

《基于verilog语言的出租车计费器文档格式.docx》由会员分享,可在线阅读,更多相关《基于verilog语言的出租车计费器文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

基于verilog语言的出租车计费器文档格式.docx

没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;

反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。

本文采用verilog语言来设计实现出租车计费系统,经过ModelSim和Quartus仿真将其实例化。

如果将该设计再结合到实际应用中,那么,只需改变设计中计费要求,就可以应用到出租车上。

另外,如果再任意输入该出租车计价器的计费标准,那么,它的适用范围可能就更广泛了。

一、设计要求

(1)行程3公里内(包括3公里),且等待累计时间2分钟内(包括2分钟),起步费为6.0元;

(2)3公里外(不包括3公里)以每公里1.0元,等待累计时间2分钟外(不包括2分钟)以每分钟以1.0元计费。

(3)能显示行驶公里数、等待累计时间和最后的总费用。

本计费器的显示范围为0~99元,计价分辨率为1元;

计程器显示范围为0~99公里,分辨率为1公里;

计时器的显示范围是分钟的显示范围是0—99,辨率为1分钟。

秒的显示范围是0—59。

分辨率为1秒。

二、工作原理

出租车的一般计费过程为:

出租车载客后,启动计费器,整个系统开始运行,里程计数器和时间计数器从0开始计数,费用计数器从6开始计算。

再根据行驶里程或停止等待的时间按以上的标准计费。

若在行驶状态,则计程器开始加计数,当路程超过三公里后,计费器以每公里1元累加。

若出租车停止等待状态,则计时器开始加计数,当时间超过两分钟后,计费器以每分钟1元累加。

出租车到达目的地停止后,停止计费器,显示总费用。

根据出租车计费器的工作过程,本系统采用分层次、分模块的方式设计,其本系统组成框图如下所示。

其中行驶路程计数模块、等待时间计数模块和计费模块,用来统计路程、等待时间和总费用,控制模块是用来控制计费模块,数码管显示模块用来显示行驶的公里数、等待累计时间和总费用等信息。

系统框图如下所示:

三、各模块的设计

本系统采用层次化、模块化的设计方法,设计顺序为自下向上。

首先实现系统框图中的各子模块,然后由顶层模块调用各子模块来完成整个系统。

为了便于显示,这里的路程、时间和费用计数器均用十六进制表示。

3.1分频模块:

3.1.1计数器的分频模块:

计数器的分频模块具体框图:

此模块的功能是对总的时钟进行分频,分出的频率是让计数器用的,因为总的时钟是50M的。

设计该模块的时候用了一个32位的计数器,当计数器计到25_000000的时候产生时钟。

在仿真的时候为了方便观察设计了一个8分频的电路。

当下载的时候用的是2HZ的时钟。

计数器的分频模块VerilogHDL源代码:

modulediv(clk_50M,clk,reset);

//端口的定义

inputclk_50M,reset;

//总的时钟是50M

outputclk;

//分频后输的时钟

regclk;

reg[31:

0]count;

//32位的计数器

always@(posedgeclk_50Mornegedgereset)//异步复位

begin

if(!

reset)

begin

clk<

='

d0;

count=32'

end

elseif(count==32'

d25_000000)//判断计时器记到了25_000000吗

count<

=32'

//计到25_000000计数器清零

=~clk;

//输出的时钟取反

end//endbegin

elsecount<

=count+1'

d1;

//没计到25_000000计数器加一

end//endalways

endmodule//结束分频模块

仿真的结果:

从波形可以看出当reset为低电平的时候clk为零,当为高电平的时候clk的高电平占了clk_50M的八个周期,低电平也占了clk_50M的八个周期。

3.1.2数码管的分频模块:

具体框图:

此模块的功能是对总的时钟进行分频,分出的频率是让数码管用的,因为总的时钟是50M的。

设计该模块的时候用了一个32位的计数器,当计数器计到50_000的时候产生时钟。

数码管的分频模块VerilogHDL源代码:

modulediv1(clk_50M,clk1,reset);

outputclk1;

regclk1;

clk1<

d50_000)//判断计时器记到了50_000吗

//计到50_000计数器清零

=~clk1;

//没计到50_000计数器加一

3.2计程模块:

计程模块的框图:

此模块的功能是计算出租车行驶的路程。

在出租车启动并行驶的过程中(即复位/启动信号reset为1,行驶/停止信号start为1),当时钟clk是上升沿的时候,系统即对路程计数器distance的里程计数器进行加计数,当路程超过三公里时,系统将输出标志正脉冲distance_enable。

计程模块的VerilogHDL源代码:

moduledistancemokuai(clk,start,reset,distance,distance_enable);

//端口的定义

inputclk,start,reset;

output[7:

0]distance;

//输出的公里

reg[7:

outputdistance_enable;

//控制计费的公里信号

regdistance_enable;

always@(posedgeclkornegedgereset)//异步复位

reset)//低电平复位

distance<

=8'

end

elseif(start)//start高电平有效

if(distance[3:

0]==9)//判断distance的低四位计到了9没有

begin

distance[3:

0]<

=4'

//计到9清零

if(distance[7:

4]==9)//判断distance的高四位计到了9没有

distance[7:

4]<

elsedistance[7:

=distance[7:

4]+1'

//distance的高四位没有计到9的时候加一

end

elsedistance[3:

=distance[3:

0]+1'

//distance的低四位没有计到9的时候加一

end//endstart

//*产生distance_enable信号*//

always@(posedgeclkornegedgereset)

if(!

distance_enable<

=1'

//复位

else

if(distance>

8'

d2)//大于公里三的时候

distance_enable<

//输出distance_enable信号

endmodule//结束计程模块

计程模块的仿真结果:

从波形图可以看出在时钟的控制下,当reset为高电平且start为高电平的时候distance开始计数,当计到大于三的时候输出了distancedistance_enable为高电平。

3.3计时模块:

计时模块的框图:

此模块用于计算停车等待的时间。

在出租车行进中,如果车辆停止等待,计数器则在1Hz信号clk的上升沿进行加计数,每60次产生进位脉冲使分钟计数器位进行加计数,当累计等待时间超过2(不包括2分钟)分钟时,输出标志time_enable正脉冲信号。

计时模块的VerilogHDL源代码:

moduletimemokuai(clk,reset,start,s,m,time_enable);

inputclk,reset,start;

0]s;

//输出的秒

0]m;

//输出的分

outputtime_enable;

//输出的控制计费的信号

wiretime_enable;

reset)//低电平有效

begin//复位

s<

m<

elseif(!

start)//start信号低电平有效

if(s[3:

0]==9)//秒的低四位是9

begin

s[3:

//清零

if(s[7:

4]==5)//秒的高四位是5

s[7:

//清零

if(m[3:

0]==9)//分的低四位是9

begin

m[3:

if(m[7:

4]==9)//分的高四位是9

m[7:

//清

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1