软件: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
阅读全文
694