【紫光同创国产FPGA教程】【PGC1/2KG第六章】密码锁实验例程

本文主要是介绍【紫光同创国产FPGA教程】【PGC1/2KG第六章】密码锁实验例程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

适用于板卡型号:

紫光同创PGC1/2KG开发平台(盘古1K/2K)

一:盘古1K/2K开发板(紫光同创PGC2KG开发平台)简介

盘古1/2K 开发板是一套基于紫光 FPGA 的开发套件,以紫光 Compa 系列PGC1KG-LPG100 / PGC2KG-LPG100 器件为核心,预留丰富的扩展 IO 及数码管、按键、LED 灯,为用户提供基本的硬件环境。

二:实验目的

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

三:实验要求

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

SW1-  SW4 设置 2 位数密码,每两位设置一位密码,BM[0:1]设置第一位对应 BM1和 BM2,BM[2:3]设置第二位。所以密码是由0,1,2,3 组成的四位数。

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

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

四:实验原理

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

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

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

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

①按键控制模块;

1、对4个按键输入信号均做消抖处理,2、KEY4和KEY3取下降沿输出,3、KEY[2:1]以下降沿来变更各自的输入密码,每次数字加1(0~3循环,2bit即可)

②数码管显示模块;

    显示状态有两种:

    密码输入状态:

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

    密码验证状态:

        1、KEY4下降沿触发进入;

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

③密码验证模块;

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

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

顶层模块设计

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

输入输出信号如下表:

Module设计如下:

​​​​​​​按键控制设计

Module设计如下:

​​​​​​​按键消抖设计

​​​​​​​对比模块设计

Module设计

​​​​​​​显示模块设计

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

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

六:实验现象

验证步骤:

  1. 调整输入序列,更改拨码开关的输入值(SW[3:0]);
  2. 调整固定序列,通过轻触按键调整输入密码,数码管实时显示输入密码;
  3. 按下轻触按键KEY3,触发进行密码比对,并且数码管显示比对结果;
  4. 按下轻触按键KEY4,进入重新输入密码状态,重新执行前面三个步骤;

实验现象

当SW[3:0]=8’b1010;当输入密码状态时显示0022时,按下Key3后数码管显示数字8888;当输入密码状态时显示不是4个2时2,按下Key3后数码管显示数字7777;按下Key4后重新调整密码,进入输入密码状态; 

这篇关于【紫光同创国产FPGA教程】【PGC1/2KG第六章】密码锁实验例程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371752

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.