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

完成简易出租车计价器设计Verilog代码Quartus 睿智FPGA开发板

08/27 07:38
653
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2409111Q1561W.doc

共1个文件

名称:完成简易出租车计价器设计Verilog代码Quartus? 睿智FPGA开发板

软件:Quartus

语言:Verilog

代码功能:

完成简易出租车计价器设计,

1、起步8元/3公里,此后1元/500米

2、车速为每秒钟200米

3、通过按键控制汽车启动和暂停(S5),重新计价通过按键控制(S6)

4、数码管显示价钱精确到0.1元单位元和精确到100米的里程单位千米(数码管1-数码管4显示价格,数码管5-数码管8显示里程);

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

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

睿智FPGA开发板.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

状态机

5. 管脚分配

6. 仿真图

顶层模块仿真图

按键消抖模块

速度脉冲产生模块

状态控制模块

显示模块

部分代码展示:

`timescale?1ns?/?1ps
//出租车模拟计费系统的实现
//费用的计算及显示,出租车的起步价设为8.00元,当里程小于3km时,按起步价计算费用;当里程大于3km时,按下式计算费用:1元/500m。费用精确到0.1元,里程精确到0.1Km;
module?taxi_charge_top(
input?clk_50M,//50M时钟
input?rst_n,//复位信号
input?charge_end,//重新计费
input?charge_begin,//启动、停止
output?running_led,//高电平行驶指示灯
//数码管控制信号
output?[7:0]?bit_select,//数码管位选
output?[7:0]?seg_select//数码管段选
????);
wire?charge_begin_n;
wire?[7:0]?distance_out;//距离
wire?[15:0]?charging_money_out;//费用
wire?kilometre_en;
wire?[2:0]?state_in;
//按键消抖
key_jitter?i_key_jitter(
.?clkin(clk_50M),
.?key_in(charge_begin),//输入
.?key_negedge(charge_begin_n)//消抖后按键下降沿
);
//状态机模块
state_machine?i_state_machine(
.?clk_50M(clk_50M),//50M时钟
.?rst_n(rst_n),//复位信号
.?charge_end(charge_end),//停止计费,高有效
.?charge_begin(charge_begin_n),//启动信号
.?state_in(state_in),//当前状态
.?kilometre_en(kilometre_en),//0.1公里产生一次
.?distance_out(distance_out),//距离
.?charging_money_out(charging_money_out)//费用
);
//速度脉冲产生模块
pluse_generate?i_pluse_generate(
.?clk_50M(clk_50M),//50MHz
.?rst_n(rst_n),//复位低有效?
.?charge_begin_n(charge_begin_n),//启动停止
.?state_in(state_in),//当前状态
.?running_led(running_led),//指示灯
.?kilometre_en(kilometre_en)//0.1公里产生一次
);

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

  • 2-2409111Q1561W.doc
    下载

相关推荐