【紫光同创盘古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后重新调整密码,进入输入密码状态;

相关推荐
仲南音2 天前
Xilinx FPGA——时钟IP核MMCM、PLL
fpga开发
I'm a winner2 天前
基于Xilinx FPGA的LVDS高速串行通信系统(三)--数据训练及握手机制【文末源码】
fpga开发
upper20203 天前
coremark移植坑之-nostartfiles -nostdlib参数
学习·fpga开发·coremark移植·riscv设计
Eloudy3 天前
Vivado 纯命令行构建 FPGA 项目教程
fpga开发
Rambo.xia3 天前
AXI跨时钟域与数据一致性——CDC FIFO深度不够、写后读冒险、多Master仲裁、乱序返回,出了Bug根本查不出来
fpga开发·bug
upper20203 天前
FPGA部署卷积神经网络识别MINST图片
fpga开发·卷积神经网络·minst·minst识别·部署神经网络·神经网络识别图片
你是我的解忧王子3 天前
嵌入式 ADC采样 原始数据分析上层(平均值 波动率 正态分布 线性补偿 系统误差)
fpga开发·数据挖掘·数据分析
9527华安4 天前
FPGA纯verilog代码ISP图像处理培训教程,基于IMX214,提供工程源码+视频教程+FPGA开发板
图像处理·fpga开发·isp·imx214·mipi
千寻xun5 天前
二、实战篇-NVME SSD控制之ZYNQ实现(六)-读写NVME SSD硬盘数据
fpga开发·nvme·nvme ssd
千寻xun5 天前
二、实战篇-NVME SSD控制之ZYNQ实现(三)
fpga开发·nvme ssd·nvme协议