基于 Verilog 语言的出租车计费器设计
本文主要介绍了基于 Verilog 语言的出租车计费器设计,通过使用 Verilog 语言实现了出租车计费系统的设计,仿真了计费器的工作过程,并讨论了设计的实现细节。
1. 设计要求
本设计要求实现一个基于 Verilog 语言的出租车计费器,能够显示行驶公里数、等待累计时间和最后的总费用。计费器的显示范围为 0~99 元,计价分辨率为 1 元;计程器显示范围为 0~99 公里,分辨率为 1 公里;计时器的显示范围是分钟的显示范围是 0—99,辨率为 1 分钟。秒的显示范围是 0—59,分辨率为 1 秒。
2.工作原理
出租车的一般计费过程为:出租车载客后,启动计费器,整个系统开始运行,里程计数器和时间计数器从 0 开始计数,费用计数器从 6 开始计算。再根据行驶里程或停止等待的时间按以上的标准计费。若在行驶状态,则计程器开始加计数,当路程超过三公里后,计费器以每公里 1 元累加。若出租车停止等待状态,则计时器开始加计数,当时间超过两分钟后,计费器以每分钟 1 元累加。出租车到达目的地停止后,停止计费器,显示总费用。
3. 系统设计
本系统采用分层次、分模块的方式设计,包括行驶路程计数模块、等待时间计数模块、计费模块、控制模块和数码管显示模块。其中,行驶路程计数模块和等待时间计数模块用来统计路程和等待时间,计费模块用来计算总费用,控制模块用来控制计费模块,数码管显示模块用来显示行驶的公里数、等待累计时间和总费用等信息。
4. 各模块的设计
本系统采用层次化、模块化的设计方法,设计顺序为自下向上。首先实现系统框图中的各子模块,然后由顶层模块调用各子模块来完成整个系统。为了便于显示,这里的路程、时间和费用计数器均用十六进制表示。
4.1 分频模块
计数器的分频模块具体框图:此模块的功能是对总的时钟进行分频,分出的频率是让计数器用的,因为总的时钟是 50M 的。设计该模块的时候用了一个 32 位的计数器,当计数器计到 25_000000 的时候产生时钟。在仿真的时候为了方便观察设计了一个 8 分频的电路。当下载的时候用的是 2HZ 的时钟。
5. 结论
本文通过使用 Verilog 语言实现了出租车计费器的设计,采用的分层次、模块化的设计方法,可以使系统更加灵活、可靠。该设计可以应用于实际的出租车计费系统中,只需改变设计中计费要求,就可以应用到出租车上。