【紫光同创国产FPGA教程】——【PGL22G第六章】密码锁实验例程

news2024/11/26 19:55:32

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

紫光同创PGL22G开发平台(盘古22K)

一:盘古22K开发板(紫光同创PGL22G开发平台)简介

盘古22K开发板是基于紫光同创Logos系列PGL22G芯片设计的一款FPGA开发板,全面实现国产化方案,板载资源丰富,高容量、高带宽,外围接口丰富,不仅适用于高校教学,还可以用于实验项目、项目开发,一板多用,满足多方位的开发需求。

二:实验目的

利用 MES22GP 板卡上的按键,拨码开关以及数码管实现一种简单的密码锁。
利用拨码开关设置密码,使用按键输入开锁密码。当开锁密码与设定密码相同时开锁成功, 数码管显示 8888,密码错误时显示 7777。
SW1~SW8 设置 4 位数密码,每两位设置一位密码,SW[2:1]设置第一位,SW[4:3]设置第二位,SW[6:5]设置第三位,SW[8:7]设置第四位。四位密码最高可设置为“3333”;
KEY4~KEY1 作为密码输入,按键按一下数字加 1,数字由数码管显示,数字在 0,1,2, 3 中循环。
K7 作为确认按键,按下 K7,输入的密码与设置的密码比对,如相同则显示 8888,若不同则显示 7777。
按下 K8 清零,按下后数码管显示 0000,可以重新输密码。
三:实验原理
原理上与前一个章节的序列检测是类似的,在前一个实验的基础上有了一些延伸;
序列对比的位宽发生改变,单个数据占 2bit,一个按键控制输入密码数据设置为 2bit 即可;对比与重新开始在此实验用两个按键实现,一个确认对比,一个清空结果;
四:实验源码设计
根据需求我们需要如下三个子模块:
①按键控制模块;
1、对 6 个按键输入信号均做消抖处理,2、KEY[4:1]以下降沿来变更各自的输入密码,
每次数字加 1(0~3 循环,2bit 即可)
②数码管显示模块;
显示状态有两种:
密码输入状态:
1、上电默认状态; 2、KEY8 触发进入重置状态;3、实时显示 4 位输入密码;
密码验证状态:
1、KEY7 触发进入;
2、显示密码验证结果,正确则显示 8888,错误则显示 7777;
③密码验证模块;
KEY7 下降沿触发使能工作; KEY7 下降沿触发所存输入密码,并与拨码开关设置的密码进行比较;
输出密码比较结果,提供个数码管显示模块
顶层模块设计
顶层模块与上述三个模块之间的关系如下图:

输入输出信号如下表:

Module 设计如下:

按键控制设计

输入输出信号如下表:
Module 设计如下:

对比模块设计
输入输出信号如下表:

Module 设计

显示模块设计
输入输出信号如下表:

此模块设计需要注意数码管显示的两种模式:密码输入模式与密码对比结果显示模式;两
种模式的切换由 enter_trig 与 init_trig 触发进入;
对于数码管的显示控制模块这里就不重复描述了;

五:实验现象 

实验步骤:
1 、 调整输入序列,更改拨码开关的输入值( SW[8 1] );
2 、 调整固定序列,通过轻触按键调整输入密码,数码管实时显示输入密码;
3 、 按下轻触按键 KEY7 ,触发进行密码比对,并且数码管显示比对结果;
4 、 按下轻触按键 KEY8 ,进入重新输入密码状态,重新执行前面三个步骤。
实验现象:
SW[8:1]=8’b10101010; 当输入密码状态时显示 4 2 ,按下 Key7 后数码管显示数字8888;当输入密码状态时显示不是 4 2 2 ,按下 Key7 后数码管显示数字 7777 ;按下 Key8后重新调整密码,进入输入密码状态。

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/952827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「2024」预备研究生mem-相同元素问题仅选取隔板法相邻与不相邻问题

一、相同元素问题&仅选取&隔板法&相邻与不相邻问题 不理解可以不考虑这种方法: 隔板法: 使用分堆分配,此时比较麻烦:

基于Java+SpringBoot+Vue前后端分离智能学习平台系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

part-01 C++知识总结(程序的内存分区、多态的实现)

总结来自:拓跋阿秀大佬的面试知识网站,侵权删 一.程序的内存分区/程序模型 内存分区分别是堆、栈,自由存储区,全局/静态存储区、常量存储区和代码存储区。 栈:在执行函数时,函数内局部变量的存储单元都可以…

centos升级python3.10,中间遇到问题,终于解决了

升级为python3.10 yum updateyum install openssl-devel bzip2-devel libffi-develyum groupinstall "Development Tools"wget https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgztar -xzf Python-3.10.2.tgzcd Python-3.10.2./configure --enable-optimi…

OpenCV(九):LUT查找表

LUT(Look-Up Table)查找表是OpenCV中一种常用的图像处理方法,用于对图像进行像素级别的颜色映射或图像增强操作。LUT查找表可以实现快速、高效的颜色转换和像素操作,尤其在处理大量像素的情况下具有优势。以下是关于OpenCV LUT查找…

王传福猛男落泪,比亚迪疯狂赚钱

作者|丁广胜 出品|网易科技智见焦点 厮杀告一段落,成绩揭晓。 降价、吵架、还有眼泪,充斥在这略显漫长的2023上半年。 先看一组数据,上半年比亚迪新能源汽车销售151.78万辆,特斯拉是54万辆、理想汽车是14万…

英国选校8.27|8.29

目录 IC帝国理工学院 UCL伦敦大学学院 ​编辑 Band A B C 专业院系 爱丁堡 曼彻斯特 KCL伦敦国王学院 Bristol布里斯托 华威 南安普顿 IC帝国理工学院 UCL伦敦大学学院 24qs专业位置双非雅思气候备注9 MSc Scientific and Data Intensive Computing MSc Urban Sp…

阔别线下三年的BIRTV影视盛会:有哪些变革式创新应用?

2023年8月26日,以“融合创新 面向未来”为主题的第三十届北京国际广播电影电视展览会(BIRTV 2023)收官。这是一场阔别线下三年的行业顶尖盛会,展馆处处人潮涌动。 接下来盘点一下,本次BIRTV的一些特色应用&#xff1a…

司徒理财:8.30黄金日内高空,随后回调看涨

黄金走势分析: 从日线形态来看,昨晚经历了快速拉升,价格成功稳定在关键的1924压力位之上,最高甚至触及了1938的高点。这表明市场开启了新一轮走势的空间。在当天的日内交易中,我们应特别关注1924一线作为支撑&#xff…

远传水表数据是怎么远传的?

随着科技的不断发展,智慧城市的建设逐渐成为城市发展的重要方向,而智能水表作为智慧城市中的重要组成部分,它的数据远传功能更是给水务管理带来了极大的便利。下面就由在智能水电表行业摸爬滚打多年的小编来为大家讲解下吧! 一、远传水表数据…

SLAM从入门到精通(基础数学)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 不可否认,slam中的有一部分内容来自于数学。但是,我们在学习使用的过程中,也不用纠结于整个数学的推导过程&…

营收纯利双增长,朝云集团通过了消费品市场的层层筛选

8月28日晚,朝云集团发布了一份惊喜的半年报。 上半年,公司收入11.33亿元,同比增长10.7%;纯利1.36亿元,同比增长51.7%,毛利率同比增长2.2个百分点。 上半年整体消费活跃,对朝云集团的一系列消费…

day 43 | ● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III func maxProfit(prices []int) int {dp : make([][]int , len(prices))dp[0] []int{0, -prices[0], 0, -prices[0], 0}for i : 1; i < len(prices);i{val0 : dp[i - 1][0]val1 : max(dp[i - 1][0] - prices[i], dp[i - 1][1])val2 : max(dp[i - …

Overleaf,MDPI模板,参考文献,BibTex转换为bibitem格式

①&#xff1a;新建文件ref.bib。 ②&#xff1a;将BibTex格式的参考文献考入ref.bib中&#xff08;红框中的文字后面有用&#xff0c;此处先不用管&#xff09;。 ③&#xff1a;在template.tex文件中&#xff0c;直接将整个{thebibliography}部分从begin到end全部删除。 ④&a…

什么是自动语音识别?

在人工智能发展和全球疫情的双重作用下&#xff0c;企业加强了与客户的线上沟通。企业越发依赖于虚拟助手、聊天机器人以及其他的语音技术&#xff0c;以实现与客户的高效互动。这几类人工智能&#xff0c;都是依赖于自动语音识别技术&#xff0c;简称为ASR。ASR涉及到将语音转…

初识Redis之分布式

一.简单介绍: Redis是用来在内存中, 存储数据的, 他的初心是用来搞消息中间件(或者说消息队列 很熟悉了吧~~),但是呢用的不多,他现在主要是用来做 数据库,缓存 用来存储数据, 为什么不直接存储呢? Redis的优势就在于分布式系统 二.分布式系统 要说其分布式系统,简单想想都能…

相同二叉树判断

目录 题目题目要求示例 解答方法一、实现思路时间复杂度和空间复杂度代码 方法二、实现思路时间复杂度和空间复杂度代码 题目 相同二叉树判断 题目要求 题目链接 示例 解答 方法一、 递归 实现思路 如果两棵树从根结点一起访问&#xff0c;当有一个结点不相等时就返回f…

MindSponge分子动力学模拟——定义一个分子系统(2023.08)

技术背景 在前面两篇文章中&#xff0c;我们分别介绍了分子动力学模拟软件MindSponge的软件架构和安装与使用教程。这里我们进入到实用化阶段&#xff0c;假定大家都已经在本地部署好了基于MindSpore的MindSponge的编程环境&#xff0c;开始用MindSponge去做一些真正的分子模拟…

版本控制 Git工具的使用

版本控制的概念&#xff1a; 版本控制&#xff08;Revision control&#xff09;是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史&#xff0c;方便查看更改历史记录&#xff0c;备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发…

Nacos使用(中):Java项目和Spring项目使用Nacos

Nacos使用(上)&#xff1a;Nacos安装 Nacos使用(中)&#xff1a;Java项目和Spring项目使用Nacos Nacos使用(下)&#xff1a;SpringBoot和SpringCloud项目中使用Nacos 3.使用Nacos 3.1 java SDK 引入jar包 <dependency><groupId>com.alibaba.nacos</groupId>…