软件:Quartus
语言:Verilog
代码功能:
出租车计价器设计要求:
2.假设以50m/s速度匀速行驶,计算里程;起步价3km/10元,之后按2元/m增加。
3.里程显示两位数,单位km,小于10km显示一位整数和一位小数(带小数点),10km之后显示两位整数。
4. 金额显示两位整数,单位为元。
5.在开发板上显示里程和金额,演示开始和停止功能,并验收。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真图
整体仿真图
公里脉冲模块
控制模块
显示模块
部分代码展示:
module taxi_fee( input clk,//标准时钟,50M input reset,//复位信号,低有效 input stop,//本次行程结束,停止计费,低有效 --按键 input start,//启动信号,行程开始,低有效 --按键 output [7:0] dig_led_1, output [3:0] wei_led_1//高电平点亮,高电平选通 ); wire wheel_pulse; wire second_pulse; assign led_wheel=wheel_pulse; //模块例化 wire one_kilometre;//0.1公里产生一次 wire [15:0] totel_money;a wire [9:0] mileage; //公里脉冲模块 speed_pulse U_speed_pulse( . clk(clk),//标准时钟 . reset(reset),//复位信号,低有效 . one_kilometre(one_kilometre)//0.1公里产生一次 ); //控制模块 taxi_state U_taxi_state( . clk(clk),//标准时钟 . reset(reset),//复位信号,低有效 . stop(stop),//本次行程结束,停止计费,高有效 . start(start),//启动信号,行程开始,高有效 . one_kilometre(one_kilometre),//0.1公里产生一次 . mileage_out(mileage), . totel_money_out(totel_money)//合计费用 ); //显示模块 display U_display( . clk(clk),//标准时钟 . reset(reset),//复位信号,低有效 . totel_money(totel_money),//费用 . mileage(mileage),//里程 . dig_led(dig_led_1),//高电平点亮,高电平选通 . wei_led(wei_led_1) ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=400
阅读全文
966