• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

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

06/17 15:28
667
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-23123113140E09.doc

共1个文件

名称:出租车自动计费器设计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

演示视频:

设计文档:

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

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=469

  • 2-23123113140E09.doc
    下载

相关推荐