Quartus出租车计费器verilog代码仿真

名称:Quartus出租车计费器verilog代码仿真

软件:Quartus

语言:Verilog

代码功能:

出租车计费器

1、起步价7元,2公里内起步价

2、超过2公里,按每公里1.6元计费

2、总里程超过10公里,或总费用达到或超过20.0元时,每公里按2.4元收费

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com



演示视频:


设计文档:

出租车计费器.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚分配

5. RTL图

6. Testbench

7. 仿真图

7.1 整体仿真

7.2 里程脉冲产生模块式

一秒钟产生一个里程脉冲,模拟汽车行驶1公里

7.3 计费模块

下图为一次完整计费过程

首先起步价为7.0元,total_money=70

当总里程成功10公里,或总费用达到或超过20.0元时,每公里按2.4元收费,如下图,在第10公里(mileage=10)时,计费每次加24,10公里内(20元内)加16。

计费结束

7.4 显示模块

将里程和费用用百位、十位、个位显示



部分代码展示:

module taxi_fee(
input clk,//标准时钟,clock0=1024hz 
input reset,//复位信号
input stop,//本次行程结束,停止计费,高有效
input start,//启动信号,行程开始,高有效 
//合计费用 HML=xxx (BCD码显示)
output [3:0] Kmmoney_L,
output [3:0] Kmmoney_M,
output [3:0] Kmmoney_H,
//总路程,里程范围为HL=0~99(BCD码显示)
output [3:0] Kmcount_H,
output [3:0] Kmcount_L
);
wire one_kilometre;//1公里产生一次脉冲
wire [15:0] totel_money;
wire [7:0] mileage;
speed_pulse U_speed_pulse(
. clk(clk),//标准时钟,1024Hz
. reset(reset),//复位信号,低有效 
. one_kilometre(one_kilometre)//1公里产生一次脉冲
);
taxi_state U_taxi_state(
. clk(clk),//标准时钟,1024hz 
. reset(reset),//复位信号
. stop(stop),//本次行程结束,停止计费,高有效
. start(start),//启动信号,行程开始,高有效 
. one_kilometre(one_kilometre),//1公里产生一次脉冲
. mileage_out(mileage),//里程
. totel_money_out(totel_money)//合计费用
);
display U_display(
. clk(clk),//标准时钟,1024hz 
. totel_money(totel_money),//费用
. mileage(mileage),//里程
. Kmmoney_L(Kmmoney_L),
. Kmmoney_M(Kmmoney_M),
. Kmmoney_H(Kmmoney_H),
. Kmcount_H(Kmcount_H),//合计费用 HML=xxx (BCD码显示)
. Kmcount_L(Kmcount_L)//总路程,里程范围为HL=0~99(BCD码显示)
);
endmodule


代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » Quartus出租车计费器verilog代码仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员