1. 项目概述
本项目旨在利用 Verilog 硬件描述语言在 FPGA 平台上实现一个数字密码锁系统。该项目不仅涵盖基础功能,还包含进阶特性,有助于全面掌握数字电路设计的精髓。设计支持 4 位数字密码,每位范围 0-5,并加入密码修改及错误次数限制等实用功能。完整流程包括代码编写与功能验证,重点在于理解状态机设计的思想。
2. 设计思路与架构规划
2.1 核心功能定义
设计初期定义了以下核心功能:4 位数字密码输入(每位 0-5)、使能控制、清零功能以及密码验证结果指示。进阶功能包括密码修改,允许用户更新密码以适应实际应用场景(如权限变更)。此外,加入了错误次数限制功能,连续输错 3 次密码将锁定系统,防止暴力破解。设计中特别注重视觉反馈,使用数码管显示当前输入状态,结合 LED 灯提供错误提示。
2.2 状态机设计
状态机是该项目的核心设计思想。系统采用有限状态机(FSM)模型,划分为 7 个主要状态:等待状态(stay)、输入状态(inpt)、密码设置状态(setpw)、验证状态(check)、解锁状态(ulock)、错误状态(er)和锁定状态(lock)。每个状态都有明确的职责和转换条件。例如,在等待状态下,系统初始化所有显示并检测使能信号;当使能信号有效时,切换至输入状态。状态转换逻辑需特别注意边界条件,如从输入状态切换到验证状态时,必须确保 4 位密码均已输入完成。设计中加入了计数器机制以确保状态转换的准确性。
3. 硬件平台选型与配置
3.1 FPGA 开发板选择
选择合适的 FPGA 开发板对项目成功至关重要。建议选用资源丰富的 FPGA 开发板,如 Xilinx Artix-7 系列的 Basys3 或 Nexys4 DDR。这些开发板价格适中且 IO 资源充足,特别适合此类项目。Basys3 的 IO 资源足够本项目使用,且有现成的数码管和按键接口。开发板上的资源分配需提前规划,4 位数码管用于显示输入密码和状态信息。

