名称:出租车计费系统设计Verilog代码modelsim仿真
软件:modelsim
语言:Verilog
代码功能:
出租车计费系统设计
设计一个出租车计费系统实现以下功能
(1)能实现计费功能,计费标准为:按行驶路程收费,起步费为7元,并在车行驶3公里后按每公里2元计费,当总费用达到或超过45元时,每公里按4元收费。当遇到红绿灯或其他情况需要停车等待时,则按时间计费,计费单价为每20s收费1元。
(2)系统预置功能:能预置起步费、每公里收费、车行加费里程、计时收费
(3)能模拟汽车行驶、停止、暂停等状态
(4)最后将路程与车费显示出来
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.要求
2.程序文件
3.程序运行
4.testbench
5.仿真图
1.起步价7元
2.speed 等于10,11时计费,
车行驶 3 公里后按每公里 2 元计费
总费用达到或超过 45 元时,每公里按 4 元收费
3.speed 等于11,01时计费
3.speed 等于00,01时计费
要停车等待时,则按时间计费,计费单价为每 20s 收费 1 元
停车结束计费
整体仿真图
部分代码展示:
module?taxi_top( input?Clk,//标准时钟,25khz? input?Reset,//复位信号,低有效? input?Stop,//本次行程结束,停止计费,高有效 input?Start,//启动信号,行程开始,高有效? input?[1:0]?Speed,//00--暂停等待;01--低速;10--中;,11--高速 output?[3:0]?Kmmoney_L,//合计费用?BCD码显示 output?[3:0]?Kmmoney_M,//合计费用?BCD码显示 output?[3:0]?Kmmoney_H,//合计费用?BCD码显示 output?[3:0]?Kmcount_H,//总路程,BCD码显示 output?[3:0]?Kmcount_L//总路程,BCD码显示 ); wire?speed_pulse; wire?valid_1Hz; wire?wait_20seconds; wire?one_Km_pluse; //根据Speed,产生不同频率的速度脉冲 speed_pulse_ctrl?i_speed_pulse_ctrl( .?Clk(Clk),//25khz? .?Reset(Reset),//复位低有效? .?Speed(Speed),//00:暂停等待;01:低速;10:中;,11:高速 .?valid_1Hz(valid_1Hz),?//分频到1Hz .?speed_pulse(speed_pulse)?//速度档位 ); //20s产生一次,用于等待时计费 wait_for_20seconds?i_wait_for_20seconds( .?Clk(Clk),//25khz? .?Reset(Reset),//复位低有效? .?Speed(Speed),//00:暂停等待;01:低速;10:中;,11:高速 .?valid_1Hz(valid_1Hz),//1HZ .?wait_20seconds(wait_20seconds)?//等待20s产生一次脉冲 ); //1公里产生一次脉冲,用于里程计费 kilometre_pluse?i_kilometre_pluse( .?Clk(Clk),//25khz? .?Reset(Reset),//复位低有效? .?speed_pulse(speed_pulse), .
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1126