【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第八章)密码锁实验例程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处(www.meyesemi.com)

适用于板卡型号:

紫光同创PG2L50H_MBG324开发平台(盘古PGX-Nano)

一:盘古盘古PGX-Nano开发板简介

PGX-Nano 是一套以紫光同创 FPGA 为核心的开发板,选用紫光同创 logos2 系列 28nm 工艺的 FPGA(PG2L50H_MBG324)。集成下载器芯片,极大的便利 了用户的使用。 板卡搭载一颗容量为 2MB 的 SRAM 用于数据缓存,DAC 芯片用于产生模 拟信号进行测试验证,esp32 模组进行 WIFI、蓝牙透传;预留了丰富的扩展 IO 用于用户验证、测试外接模块电路功能,一组串口进行串行通信;同时为用户提 供基础的硬件电路资源,例如 led 灯、按键、拨码开关等。

二:实验目的

利用盘古PGX-Nano板卡上的按键,拨码开关以及数码管实现一种简单的密码锁;

三:实验要求

利用拨码开关设置密码,使用按键输入开锁密码。当开锁密码与设定密码相同时开锁成功,数码管显示8888,密码错误时显示7777。

SW0~SW3设置2位数密码,每两位设置一位密码,SW1:0设置第一位数据对应的二进制数值,SW3:2设置第二位数据对应的二进制数值。所以密码是由0,1,2,3组成的四位数。

S1-S0按键作为密码输入,按键按一下数字加1,数字由数码管显示,数字在0,1,2,3中循环。

S2作为确认按键,按下S2,输入的密码与设置的密码比对,如相同则显示8888,若不同则显示7777。按下S3清零,按下后数码管显示0000,可以重新输密码。

四:实验原理

原理上与前一个章节的序列检测是类似的,在前一个实验的基础上有了一些延伸;

序列对比的位宽发生改变,单个数据占2bit,一个按键控制输入密码数据设置为2bit即可;对比与重新开始在此实验用两个按键实现,一个确认对比,一个清空结果;

五:实验源码(完整源码查看demo源文件)

根据需求我们需要如下三个子模块:

①按键控制模块;

1、对4个按键输入信号均做消抖处理

2、S3和S2取下降沿输出

3、S1:0以下降沿来变更各自的输入密码,每次数字加1(0~3循环,2bit即可)

②数码管显示模块;

显示状态有两种:

密码输入状态:

1、上电默认状态;2、S3下降沿触发进入重置状态;3、实时显示2位输入密码;

密码验证状态:

1、S2下降沿触发进入;

2、显示密码验证结果,正确则显示8888,错误则显示7777;

③密码验证模块;

S2下降沿触发使能工作;S2下降沿触发所存输入密码,并与拨码开关设置的密码进行比较;

输出密码比较结果,提供个数码管显示模块。

顶层模块设计

顶层模块与上述三个模块之间的关系如下图:

输入输出信号如下表:

Module设计如下:

按键控制设计

按键消抖设计

对比模块设计

显示模块设计

此模块设计需要注意数码管显示的两种模式:密码输入模式与密码对比结果显示模式;两种模式的切换由enter_trig与init_trig触发进入;

对于数码管的显示控制模块这里就不重复描述了;

六:实验现象

验证步骤:

1、调整输入序列,更改拨码开关的输入值(SW3:0);

2、调整固定序列,通过轻触按键S1~S0调整输入密码,数码管实时显示输入密码;

3、按下轻触按键S2,触发进行密码比对,并且数码管显示比对结果;

4、按下轻触按键S3,进入重新输入密码状态,重新执行前面三个步骤;

实验现象

当SW3:0=8'b1010;当输入密码状态时显示0022时,按下S2后数码管显示数字8888;当输入密码状态时显示不是0022时,按下S2后数码管显示数字7777;按下S3后重新调整密码,进入输入密码状态;

当SW3:0=8'b1100;当输入密码状态时显示0030时,按下S2后数码管显示数字8888;当输入密码状态时显示不是0030时,按下S2后数码管显示数字7777;按下S3后重新调整密码,进入输入密码状态;

相关推荐
XMAIPC_Robot4 小时前
基于 i.MX95 平台在新一代工业控制器中的应用 — 工业车载平板、半导体设备主控方案解析
arm开发·人工智能·机器学习·fpga开发·rk3588+fpga·i.mx95
szxinmai主板定制专家4 小时前
基于 AM62x + Artix-7 的低功耗 ARM+FPGA 平台在轨道交通车门控制中的应用
arm开发·人工智能·fpga开发·zynq·am62x
幻智星科技4 小时前
我砍掉了FPGA里的ARM核项目反而提前交付了
arm开发·网络协议·fpga开发·硬件架构
逐光者9334 小时前
Verilog 三段式状态机:原理、模板与实战
fpga开发
XMAIPC_Robot5 小时前
NXP i.MX95 + FPGA 异构计算平台 — 工业多域融合 AI 加速嵌入式控制解决方案
人工智能·分布式·fpga开发·能源·rk3576+fpga
FPGA小迷弟17 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整指南
fpga开发·dsp开发·fpga·1024程序员节·sdr·无线电
专注仿真1 天前
Vivado FPGA 开发实战项目:从入门到上板
fpga开发
NamoAmitabha1281 天前
BSP,板级支持包--deepseek
单片机·嵌入式硬件·fpga开发
szxinmai主板定制专家1 天前
ARM 还是 x86?CODESYS 数控机床控制器选型、FPGA 取舍与实时性真相
arm开发·人工智能·fpga开发·zynq·1024程序员节·codesys
星夜离尘562 天前
FPGA 小数据字如何纠错:完整实现并验证扩展 Hamming (13,8) SECDED
fpga开发