出租车计费系统 FPGA 设计 Verilog Quartus

名称:出租车计费系统 FPGA 设计 Verilog Quartus

软件:Quartus

语言:Verilog

开发板/平台:Cyclone IV FPGA开发板

功能介绍

本设计实现了一个基于 FPGA 的出租车计费系统,使用 Verilog 语言在 Quartus 环境下完成工程设计。系统通过启动信号开始计费,通过停止计费信号结束当前计费过程,并使用运行指示灯表示车辆处于行驶/计费状态。 计费过程中,系统内部产生公里使能信号,用于推动里程累计和费用计算;当前里程与计费金额通过数码管进行显示。顶层接口包含时钟、复位、启动、停止、LED 指示和数码管控制信号,便于在 FPGA 开发板上完成完整的输入控制与显示验证。 该工程适合用于 FPGA 课程设计、数字逻辑综合实验、Verilog 状态机练习以及出租车计价器类项目参考。设计内容覆盖顶层例化、状态控制、脉冲产生、费用/里程输出和数码管显示等常见 FPGA 实验知识点。

运行环境

开发语言:Verilog 开发软件:Quartus 适用平台:Cyclone IV FPGA 开发板 工程包含 Quartus 工程文件、Verilog 源码、管脚约束文件、编译输出文件以及演示视频,可用于综合编译、上板验证和课程设计参考。

设计思路

设计以出租车计费流程为核心,将系统划分为状态控制、速度/里程脉冲产生和数码管显示三个主要部分。顶层模块统一接入 50MHz 系统时钟、复位、启动和停止控制信号,并向外输出行驶指示灯及数码管扫描信号,使逻辑功能和开发板外设连接保持清晰。 状态控制模块负责根据启动计费、停止计费等输入切换当前工作状态,并在有效行驶状态下累计里程和费用。速度脉冲产生模块在对应状态下生成公里计数使能信号,相当于把车辆行驶过程抽象成周期性的里程增量,便于在 FPGA 上进行可观察、可验证的计费演示。 显示部分接收里程与费用数据,通过动态扫描方式驱动多位数码管,将出租车行驶距离和计费金额实时显示出来。整体结构层次明确,适合学习 Verilog 模块化设计、状态机控制、计数逻辑、数码管动态显示以及 Quartus 工程综合实现流程。

模块结构

工程顶层模块为 taxi_charge_top,主要由以下模块组成: 1. taxi_charge_top:系统顶层模块,连接外部时钟、复位、启动/停止控制、运行指示灯和数码管显示接口,并完成各功能模块例化。 2. state_machine:状态控制模块,根据启动计费、停止计费和公里使能信号控制当前状态,输出里程和费用数据。 3. pluse_generate:速度脉冲产生模块,在运行状态下产生公里计数使能信号,同时控制 running_led 行驶指示输出。 4. display:数码管显示模块,对里程和费用数据进行动态扫描显示,输出位选 bit_select 和段选 seg_select 信号。

开发板验证

工程支持在 Cyclone IV FPGA 开发板上进行上板验证,设计中提供了管脚约束/分配文件,顶层接口包含 50MHz 时钟、低有效复位、启动计费、停止计费、行驶指示灯以及数码管位选/段选信号,便于直接连接开发板按键、LED 与数码管资源进行功能演示。 上板运行时,可通过启动信号进入计费流程,运行指示灯用于表示车辆行驶状态;停止计费后,数码管保持显示当前里程与费用结果,适合课程设计、FPGA 数字系统实验和出租车计费逻辑验证场景。

演示视频

包含出租车计费系统演示视频,可直观看到启动计费、行驶状态指示、里程与费用数码管显示等运行效果,便于下载前了解工程的实际展示方式。

仿真图/仿真说明/设计文档图片

设计文档中包含工程文件、程序文件、程序编译、RTL 图、Testbench、顶层仿真图以及状态控制模块、速度脉冲产生模块、数码管显示模块等相关说明图片,可用于理解系统结构、仿真验证过程和各模块之间的连接关系。

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image1.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image10.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image2.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image3.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image4.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image5.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image6.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image7.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image8.png

出租车计费系统 FPGA 设计 Verilog Quartus 设计文档图片 image9.png

部分代码

以下展示顶层模块 taxi_charge_top 的部分代码,完整源码请下载压缩包查看。

module taxi_charge_top(
input clk_50M,//50M时钟
input rst_n,//复位信号S1
input charge_end,//停止计费
input charge_begin,//启动信号,开始计费
output running_led,//高电平行驶指示灯
//数码管控制信号
output [6:0] bit_select,//数码管位选
output [7:0] seg_select//数码管段选	
    );

wire [7:0] distance_out;//距离
wire [15:0] charging_money_out;//费用
wire kilometre_en;
wire [2:0] state_in;
//状态控制模块
state_machine i_state_machine(
. clk_50M(clk_50M),//50M时钟
. rst_n(rst_n),//复位信号
. charge_end(charge_end),//停止计费,高有效
. charge_begin(charge_begin),//启动信号
. state_in(state_in),//当前状态
. kilometre_en(kilometre_en),//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),//复位低有效 
. state_in(state_in),//当前状态
. running_led(running_led),//指示灯
. kilometre_en(kilometre_en)//1公里产生一次
);

//数码管显示模块
display i_display(
. clk(clk_50M),
. distance_out(distance_out),//距离
. charging_money_out(charging_money_out),//费用
. bit_select(bit_select),//数码管位选
. seg_select(seg_select)//数码管段选	
);
endmodule

代码文件(付费下载)

📥 付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 出租车计费系统 FPGA 设计 Verilog Quartus

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员