FPGA密码锁

功能

1.输入密码:十个拨码开关输入0-9密码(改进可以用矩阵键盘),4位密码,每输入一位,密码滚动进入显示。
2.开锁:按下开锁键开始成功灯亮。
3.关锁:按下关锁键,关锁灯灭。
4.修改密码:开锁状态下才可以修改密码,长按开锁键,灯闪一次后密码修改成功。
展示:B站

模块

基本需要下面几个模块来进行

compare_num 密码对比
num_in 输入的密码
num_reg 已经设置的密码
-close 关锁
ant_ok 确认键
open 0:锁上了、1:锁开了
dig8_6 数码管显示模块
[15:0] set_data 显示数据
[3:0] dig 位显示
[7:0] dict 段显示
contorl_sw 4位密码移位寄存器
close 关锁
value 用户输入的一位密码
num 数码管要显示的数据

|

btn_deb 消抖
N 需要消抖按键个数
inputs 输入的按键信号
btn_deb 输入的按键信号消抖后
distinguish 解码按键输入信号为密码
inputs 按键输入信号
temp 按键输入对应一位密码
num_change 进入修改 --密码修改
please_change_numb 请求修改信号
num 输入要修改的密码
open 锁状态
ok_change_numb 修改成功
num_reg 输出修改后密码

代码

下面给主要模块部分的代码
1.顶层文件

module cal_top(
	input  clk,			//50MHz
    input  rst,			//异步复位 低电平有效
    input   [9:0]  inputs, 
    input   [1:0]  keys,
    output        ant_change_numb,
    output       ok_change_numb,
    output        open,
    output  [3:0] dig,   
    output  [7:0] dict	
);

/******************************************************/
/*             消抖                                  */
/******************************************************/

wire [1:0]  keys_deb;
wire [9:0] btn_deb;//消抖后输出
btn_deb#( .N (10) )
 btn_deb1
(
   .  clk(clk),  //100MHz
   .  btn_in(inputs),
   .  btn_deb(btn_deb)
);

btn_deb#( .N (2) )
 btn_deb2
(
   .  clk(clk),  //100MHz
   .
  • 5
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
FPGA密码锁是一种基于FPGA(Field-Programmable Gate Array)的电子密码锁系统。Vivado是Xilinx公司提供的一款用于FPGA设计和开发的综合工具套件。下面是关于FPGA密码锁和Vivado的介绍: FPGA密码锁FPGA密码锁是一种使用FPGA芯片实现的电子密码锁系统。它通过FPGA芯片的可编程性,可以实现高度定制化的密码锁功能。相比传统的硬件密码锁FPGA密码锁具有更高的灵活性和可扩展性。 FPGA密码锁通常包括以下几个主要组件: 1. 键盘输入模块:用于输入密码的键盘模块,可以通过按键输入密码。 2. 密码验证模块:用于验证输入的密码是否正确,并控制开关锁的操作。 3. 显示模块:用于显示密码输入状态、验证结果等信息。 4. 存储模块:用于存储密码和其他相关配置信息。 Vivado: Vivado是Xilinx公司开发的一款集成化的FPGA设计和开发工具套件。它提供了丰富的功能和工具,用于设计、验证和实现FPGA芯片的各个环节。 Vivado主要包括以下几个主要模块: 1. 设计环境:提供了图形化的界面,用于设计和配置FPGA的逻辑电路。 2. 综合器:将设计描述转换为可在FPGA上实现的逻辑电路。 3. 约束管理器:用于定义和管理FPGA设计的时序和物理约束。 4. 实现器:将综合后的逻辑电路映射到目标FPGA芯片,并生成可下载到FPGA的比特流文件。 5. 仿真器:用于对FPGA设计进行功能验证和时序分析。 6. 调试器:提供了对FPGA设计进行调试和性能优化的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海大干饭人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值