出租车自动计费器设计Verilog代码vivado Nexys4开发板

名称:出租车自动计费器设计Verilog代码vivado  Nexys4开发板

软件:vivado

语言:Verilog

代码功能:

出租车自动计费器设计要求

设计一个出租车自动计费器,具有行车里程计费等候时间计费丶及起价三部分,用四位数码管显示总金额,最大值为999.9元

行车里程单价2元/公里,等候时间单价0.5元/10秒,起价10元(1公里起价)

行车里程的计费电路将汽车行驶的里程数转换成与之成正比的脉冲数,然后由计数译码电路转换成收费金额,实验中以一个脉冲模拟汽车前进100米,收费0.2元;用两个数码管显示行驶公里数


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


本代码已在Nexys4开发板验证,Nexys4开发板如下,其他开发板可以修改管脚适配:Nexys4开发板开发板.png


演示视频:


设计文档:

出租车计价设计.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. 程序RTL图

5. 管脚约束

6. Testbench

7. 仿真图

整体仿真

wheel_second_pluse模块

taxi_state模块

Display模块



部分代码展示:

module taxi_fee(
input clk,//标准时钟,100M
input reset,//复位信号,低有效 
input stop,//本次行程结束,停止计费,高有效--按键
input start,//启动信号,行程开始,高有效 --按键
input Speed,//0:等待  1:行驶--开关
output led_wheel,//车轮脉冲指示灯
output [7:0] bit_select,//数码管位选
output [7:0] seg_select//数码管段选
);
wire wheel_pulse;
wire second_pulse;
wire one_kilometre;//0.1公里产生一次
wire [15:0] totel_money;
wire [15:0] mileage;
wire [2:0] state;
//模块例化
//车轮脉冲产生及秒脉冲产生模块
wheel_second_pluse U_wheel_second_pluse(
. clk(clk),//标准时钟,100MHz
. reset(reset),//复位信号,低有效 
. Speed(Speed),//0:等待  1:行驶
. state(state),
. led_wheel(led_wheel),
. wheel_pulse(wheel_pulse), // 车轮脉冲,10个1公里,100米一次
. second_pulse(second_pulse) ////10秒脉冲
);
taxi_state U_taxi_state(
. clk(clk),//标准时钟,100M 
. reset(reset),//复位信号,低有效 
. stop(stop),//本次行程结束,停止计费,高有效
. start(start),//启动信号,行程开始,高有效 
. Speed(Speed),//0:等待  1:行驶
. one_kilometre(wheel_pulse),//0.1公里产生一次
. second_pulse(second_pulse),////10秒脉冲
. state_out(state),
. mileage_out(mileage),
. totel_money_out(totel_money)//合计费用
);
display U_display(
. clk(clk),//标准时钟,100M 
. totel_money(totel_money),//费用
. mileage(mileage),//里程
. bit_select(bit_select),//数码管位选
. seg_select(seg_select)//数码管段选
);
endmodule


代码文件(付费下载):



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

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

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