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

出租车计价设计Verilog代码vivado ego1开发板

06/14 11:38
969
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2312301026443K.doc

共1个文件

名称:出租车计价设计Verilog代码vivado  ego1开发板

软件:vivado

语言:Verilog

代码功能:

设计任务与要求:

乘客乘坐出租车时,其费用分成起步价、行车里程费和等候时间费三部分,由自动计费器自动记录。在汽车行进时向自动计费器发送脉冲信号,在一定的公里数(即一定的脉冲数)内,按起步价计费超过这一里程后,自动计费器按里程计费;如果停车等候,按等候时间的多少计费。

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

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

ego1开发板.png

演示视频:

设计文档:

1. 功能设计

要求:

设计:

车速脉冲,10个脉冲1公里,起步价5元,3公里内起步价,大于3公里按里程计价,2.1元每公里,停车计费按0.6元每十分钟计费。

2. 工程文件

3. 程序文件

4. 程序运行

5. 程序RTL图

6. 管脚约束

7. Testbench

8. 仿真图

整体仿真

wheel_second_pluse模块

speed_pulse模块

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] dig_led_1,
output   [3:0] wei_led_1,
output   [7:0] dig_led_2,
output   [3:0] wei_led_2//高电平点亮,高电平选通
);
wire [2:0]state_out;
wire wheel_pulse;
wire second_pulse;
//车轮脉冲产生及秒脉冲产生模块
wheel_second_pluse U_wheel_second_pluse(
. clk(clk),//标准时钟,100MHz
. reset(reset),//复位信号,低有效 
. Speed(Speed),//0:等待  1:行驶
. led_wheel(led_wheel),
. wheel_pulse(wheel_pulse), // 车轮脉冲,10个1公里
. second_pulse(second_pulse) //秒脉冲
);
//模块例化
wire one_kilometre;//1公里产生一次
wire ten_minute;//暂停等待,10分钟产生一次
wire [15:0] totel_money;
wire [7:0] mileage;
wire [7:0] second;
//信号定义
speed_pulse U_speed_pulse(
. clk(clk),//标准时钟,100M 
. reset(reset),//复位信号,低有效 
. wheel_pulse(wheel_pulse), // 车轮脉冲,10个1公里
. second_pulse(second_pulse), //秒脉冲
. one_kilometre(one_kilometre),//1公里产生一次
. state(state_out),
. second_out(second),
. ten_minute(ten_minute)//10分钟产生一次
);
taxi_state U_taxi_state(
. clk(clk),//标准时钟,100M 
. reset(reset),//复位信号,低有效 
. stop(stop),//本次行程结束,停止计费,高有效
. start(start),//启动信号,行程开始,高有效 
. Speed(Speed),//0:等待  1:行驶
. one_kilometre(one_kilometre),//1公里产生一次
. ten_minute(ten_minute),//10分钟产生一次
. state_out(state_out),
. mileage_out(mileage),
. totel_money_out(totel_money)//合计费用
);
display U_display(
. clk(clk),//标准时钟,100M 
. reset(reset),//复位信号,低有效 
. totel_money(totel_money),//费用
. mileage(mileage),//里程
. second(second),
. dig_led_1(dig_led_1),
. wei_led_1(wei_led_1),
   
. dig_led_2(dig_led_2),
. wei_led_2(wei_led_2)//高电平点亮,高电平选通
);
endmodule

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

  • 2-2312301026443K.doc
    下载

相关推荐