停车场车位计数控制 FPGA 设计 Verilog Quartus
名称:停车场车位计数控制 FPGA 设计 Verilog Quartus
软件:Quartus
语言:Verilog
开发板/平台:Cyclone IV FPGA开发板
功能介绍
本设计实现一个停车场车位计数控制系统,使用 Verilog 语言完成 FPGA 逻辑设计,工程环境为 Quartus。系统通过入口按键和出口按键模拟车辆进出停车场,经过按键消抖后送入计数模块,实现车辆数量的同步统计。 系统输出包含停车场满位指示、空位指示、蜂鸣器报警以及数码管显示。当剩余车位为 0、停车场达到满位状态时,满位 LED 可用于状态提示,同时蜂鸣器输出报警信号;当停车场无车辆时,空位 LED 可用于提示当前车辆数为 0。车辆数量通过数码管动态扫描方式显示,便于在开发板上直观看到计数变化。 该设计适合作为 FPGA 入门综合实验、数字逻辑课程设计或 Verilog 工程实践案例,覆盖按键输入处理、状态计数、LED/蜂鸣器输出控制、数码管显示以及顶层模块例化等常见 FPGA 设计内容。运行环境
开发语言:Verilog 开发软件:Quartus 目标平台:Cyclone IV FPGA开发板 顶层模块:park_station_top 工程包含可综合 Verilog 源码、Quartus 工程配置、管脚约束、Testbench、编译结果以及设计说明相关内容。设计思路
系统采用模块化设计思路,将停车场计数功能拆分为按键消抖、车辆计数控制和数码管显示三个主要部分。入口按键和出口按键作为外部机械输入,先经过消抖模块处理,避免按键抖动导致一次按下被重复计数,从而提升计数结果的稳定性。 车辆计数模块负责核心控制逻辑,在时钟驱动下根据入口信号和出口信号更新当前车辆数量,并结合复位信号完成初始状态恢复。计数结果同时用于驱动满位指示、空位指示和蜂鸣器控制,当车辆数达到系统设定的边界状态时,输出对应的提示信号,避免出现超范围计数带来的显示和状态错误。 显示部分采用数码管动态扫描方式,将车辆数量转换为段选和位选输出。顶层模块负责连接各功能模块,将消抖后的入口/出口信号送入计数模块,再把计数结果送入显示模块,同时把 LED、蜂鸣器和数码管接口统一引出,便于工程综合、管脚分配和上板验证。模块结构
主要模块包括: park_station_top:顶层模块,完成时钟、复位、入口/出口按键、LED、蜂鸣器和数码管接口连接,并例化各子模块。 key_debounce:按键消抖模块,对入口按键和出口按键分别进行抖动滤除,输出稳定的按键信号。 park_station:停车场计数模块,根据入口、出口按键状态更新车辆总数,并输出满位、空位和蜂鸣器控制信号。 display:数码管显示模块,对车辆数量进行动态扫描显示,输出位选和段选信号。 park_station_top_tb:顶层仿真 Testbench,用于对顶层停车场计数流程进行仿真验证。开发板验证
本设计支持 Cyclone IV FPGA开发板验证,工程中包含面向开发板的管脚约束/分配文件,并配套 AC101 开发板相关实物和引脚参考图片。入口按键、出口按键、复位按键、LED、蜂鸣器以及数码管接口均通过顶层端口引出,便于在开发板上进行停车场进出计数、满位/空位状态提示和数码管显示效果验证。

演示视频
包含演示视频,可用于查看停车场计数控制在开发板上的运行效果,包括按键模拟车辆进出、数码管车辆数量变化、LED 状态提示和蜂鸣器报警等现象。仿真图/仿真说明/设计文档图片
包含设计文档相关图片内容,覆盖工程文件、程序文件、程序编译、RTL 图、管脚分配、仿真图、Testbench、顶层仿真、按键消抖模块、停车场计数模块和显示模块等说明。仿真内容可用于理解顶层信号连接、按键输入处理、车辆计数变化以及显示输出逻辑。










部分代码
以下展示顶层模块 park_station_top 的部分代码,完整源码请下载压缩包查看。
module park_station_top(
input clk,//输入时钟
input rst_n,//低电平复位--key0
input a_key,//入口--key1
input b_key,//出口--key2
output full_led,//停车场满(高电平亮)led0
output empty_led,//停车场空(高电平亮)led1
output beep ,//剩余车位为0时(停车场满),蜂鸣器报警。高电平时不响,输出1KHz=响
output [7:0] weixuan,//数码管位选(高电平选择)
output [7:0] duanxuan//数码管段选
);
//消抖后的按键信号
wire a;//入口按键(消抖后)
wire b;//出口按键(消抖后)
//车辆计数输出
wire [7:0] cnt_car_num;//车辆总数
//入口按键消抖
key_debounce u_key_a(
.clk(clk),
.button_in(a_key),
.button_jitter(a)
);
//出口按键消抖
key_debounce u_key_b(
.clk(clk),
.button_in(b_key),
.button_jitter(b)
);
//车辆计数模块(同步低电平复位)
park_station u_counter(
.clk(clk),
.rst_n(rst_n),
.a(a),
.b(b),
.cnt_car_num(cnt_car_num),
.full_led(full_led),
.empty_led(empty_led),
.beep(beep)
);
//数码管显示模块(动态扫描显示车辆数)
display u_display(
.clk(clk),
.cnt_car_num(cnt_car_num),
.weixuan(weixuan),
.duanxuan(duanxuan)
);
endmodule
代码文件(付费下载)
📥
付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 停车场车位计数控制 FPGA 设计 Verilog Quartus
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 停车场车位计数控制 FPGA 设计 Verilog Quartus