名称:出租车计价设计Verilog代码vivado ego1开发板
软件:vivado
语言:Verilog
代码功能:
设计任务与要求:
乘客乘坐出租车时,其费用分成起步价、行车里程费和等候时间费三部分,由自动计费器自动记录。在汽车行进时向自动计费器发送脉冲信号,在一定的公里数(即一定的脉冲数)内,按起步价计费超过这一里程后,自动计费器按里程计费;如果停车等候,按等候时间的多少计费。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在ego1开发板验证,ego1开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
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