课程设计fpga密码锁

合集下载

基于FPGA的数字密码锁

基于FPGA的数字密码锁

基于F P G A的数字密码锁LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】CPLD/FPGA课程设计项目名称:基于FPGA的数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016年6月4日摘要本设计是基于现场可编程门阵列FPGA 器件的电子密码锁的设计。

通过Verilog 语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。

同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。

本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能。

通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。

关键词:现场可编程门阵列;数字密码锁;Verilog HDL;AbstractThis design is the electronic code lock field programmable gate array FPGA devices based design. By Verilog language control 4-bit binary number, composed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1, the output of the input error to zero. At the same time the number of input and output, and when more than three times the input error, an alarm signal is output, even if the fourth and fifth also enter the correct output alarm signal.This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock, alarm function. The simulation debugging, using the programmable device FPGA design basic electronic locks to achieve the desired purpose.Key words: FPGA;The digital combination lock;Verilog HDL;目录摘要 (I)Abstract (II)第1章所选项目的研究意义 (1)概述 (1)数字密码锁的研究现状 (2)数字密码锁的应用 (3)数字密码锁的困难 (3)本文研究意义 (3)设计思路 (4)第2章设计方案 (5)功能定义 (5)模块设计 (5)第3章系统软件设计 (7)设计概括 (7)设计流程 (7)密码存储模块 (7)编码模块 (8)比较模块 (8)主要程序模块 (9)第4章软件仿真 (14)仿真过程 (14)仿真结果 (15)仿真分析 (16)仿真过程 (17)结论 (18)参考文献 (19)附录1 程序代码 (20)项目创新及特色 (26)第1章所选项目的研究意义概述数字密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。

课程设计fpga密码锁

课程设计fpga密码锁

FPGA实验报告一、实验目的1.设计一个密码锁2.加深FPGA电路原理的理解3.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧5.学会应用开发系统实现硬件电路,检验电路的功能二、实验内容题目:电子密码锁内容:设计一个4位串行数字锁1.开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。

否则进入“错误”状态,发出报警信号。

2.锁内的密码可调,且预置方便,保密性好。

3.串行数字锁的报警,直到按下复位开关,才停下。

此时,数字锁又自动等待下一个开锁状态。

三、实验步骤1.系统总框图本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。

整体系统框图如下图所示。

2.密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。

(3)错误报警:密码输入错误开始报警。

(4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。

3.密码锁的各个模块(1)按键消抖。

每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。

(2)密码输入比较密码输入值的比较主要有两部分 ,密码位数和内容 ,任何一个条件不满足 ,都不能打开锁。

锁内密码为“0000” , key2 和 key1 置低电平 ,分别表示输入“1” 和“0” 。

输入密码前先按start 键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验 ,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。

同时,可以进行密码修改。

若在输入密码的过程中 ,4 位二进制密码出现输入错误 ,那么锁不能开启 ,同时,蜂鸣器发出报警信号。

FPGA课设

FPGA课设

FPGA课程设计—数字密码锁学院:专业班级:姓名:学号:页脚内容1FPGA基于Verilog HDL密码锁设计1. 摘要 (3)2. 题目来源: (4)3. 理论分析 (4)4. 实现过程 (5)4.1顶层模块 (5)4.2蜂鸣器模块 (7)4.3显示模块 (8)4.4控制模块 (13)5. 实验结果 (17)5.1顶层模块时序仿真: (17)5.2蜂鸣器时序仿真 (20)5.3显示模块时序仿真: (21)5.4控制模块时序仿真 (23)6. 总结 (27)7. 参考文献 (28)页脚内容21.摘要随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。

本设计使用FPGA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。

用Verilog HDL可以更加快速、灵活地设计出符合各种要求的密码锁。

本设计基于Verilog HDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为蜂鸣器模块、显示模块、控制模块、顶层模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。

随着现代科技的日益发展,智能化,自动化技术的成熟将会代替以往的人工手动控制。

密码锁不仅可以有效地提高人们的生活效率,节约生活资源,而且十分安全可靠。

电子密码锁运用电子电路控制机械部分,使两者紧密结合,从而避免了因为机械部分被破坏而导致开锁功能失常.大大增加了密码锁得防盗功能。

同时因为电子密码锁不需要携带钥匙,弥补了钥匙极易丢失和仿造的缺陷,方便了锁具的使用。

关键字:页脚内容3密码锁Verilog HDL Quartus II2.题目来源:本设计以007为万能密码在忘记密码时开锁使用。

开始时密码锁处于关闭的状态,输入万能密码将锁打开。

在锁处于打开的状态时设计密码,此时指示灯处于亮的状态,说明锁处于开的状态。

基于FPGA的电子密码锁的研究与设计

基于FPGA的电子密码锁的研究与设计

论文题目:基于FPGA的电子密码锁设计摘要普通的机械锁保密性不好,防盗性差,而且必须使用钥匙。

但是,基于FPGA设计的电子密码锁与普通的机械锁比较来说,就克服了这些不足之处。

该论文主要描述的是一种电子密码锁的设计方法,这种电子密码锁是基于现场可编程门阵列(FPGA)的电子密码锁。

由FPGA构造的电子密码锁系统中,硬件电路可以实现所有的算法,大幅度提高了西戎的工作可靠性。

为了提高设计的效率,可以在更改设计时只更改FPGA中的控制和接口电路,这是因为FPGA的现场可编程功能,也正是利用这一点,可以将更新后的设计下载到FPGA中,省去了更改外部电路设计的麻烦。

所以,这样的系统既可以使工作的可靠性增强也可以更加方便的升级。

系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,用LED灯报警;允许用户重新输入密码。

关键词电子密码锁;FPGA;硬件描述语言;EDAAbstractFPGA-based design of electronic locks is a small digital system,compared with ordinary mechanical locks,has many unique advantages:confidentiality,security and strong,you can not have the keys,remember a password to unlock.This paper describes an approach based on field programmable gate array(FPGA)devices electronic locks design.Construct systems with FPGA devices,all algorithms entirely by hardware circuit to achieve,making the work system reliability greatly improved.As the FPGA with field-programmable function,when you need to change the design,just change the FPGA control and interface circuitry using EDA tools designed updated downloaded to the FPGA without the need to change the external circuit design,greatly improving the design efficiency.Therefore,the use of digital FPGA development system,not only has high reliability,but also extremely easy to upgrade.System implemented features:electronic locks user to set a password when using the keyboard lock,compared with the password set by the user's password,if the password is correct,then unlock;If the password is incorrect,the speaker alarm,allows the user to re- enter the password.Key wordsElectronic locks;FPGA;Hardware Description Language;EDA目录摘要 (I)Abstract (II)前言 (1)第一章概述 (2)1.1 课题背景 (2)1.2 课题研究的目的和意义 (2)1.3 国内外现状 (3)1.4 课题的主要研究工作 (4)第二章相关知识介绍 (5)2.1 FPGA的相关介绍 (6)2.1.1 可编程逻辑器件 (6)2.1.2 FPGA简介 (7)2.1.3 FPGA应用特点 (7)2.1.4 FPGA的设计流程 (9)2.2 硬件描述语言Verilog (11)2.2.1 Verilog语言简介 (11)2.2.2 Verilog语言的优点 (11)2.2.3 Verilog语言的基本结构 (12)2.3 QuartusⅡ软件开发工具 (12)第三章电子密码锁的总体设计 (14)3.1 设计要求 (14)3.2 系统原理框图 (14)3.3 系统主控制流程框图 (15)第四章电子密码锁的软件设计 (17)4.1 主要功能模块设计 (17)4.1.1 输入模块 (18)4.1.2 显示模块 (19)4.3 电子密码锁的仿真 (19)第五章电子密码锁的硬件实现 (24)5.1 电子密码锁的硬件模块实现 (24)5.2 硬件设备 (24)5.3 硬件的实现 (25)结论 (27)参考文献 (28)致谢 (30)前言基于FPGA的电子密码锁是新型现代化安全管理系统,微机自动识别技术和现代安全管理措施技术,包括生物技术、通信技术、电子和机械电等诸多新技术都在其中体现,重要部门出入口安全防范问题因此得到了解决。

基于FPGA的电子密码锁系统的设计

基于FPGA的电子密码锁系统的设计

目录第1章绪论1.1 国内外现状及其发展1.2 电子密码锁的系统简介1.3 系统设计要求1.4 本课题的研究目的和意义第2章现场可编程门阵列FPGA2.1 FPGA的基本结构2.1.1 可配置存储器2.1.2 可配置逻辑块(CLB)2.1.3 输入/输出块(IOB)2.1.4 可编程内部连线(PI)2.2 FPGA的设计流程2.3 VHDL硬件描述语言第3章电子密码锁的设计与仿真3.1 硬件设备3.2 密码锁输入电路3.3 密码锁控制电路3.4 系统有关编译和仿真结论参考文献附录基于FPGA的电子密码锁系统的设计随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。

电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。

目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。

在实际应用中,由于程序容易跑飞,系统的可靠性能较差。

本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。

用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。

由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。

因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。

本文采用EDA技术,利用Quartus II工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片FPGA芯片实现。

关键词:电子密码锁FPGA 硬件描述语言EDA第1章绪论1.1 国内外现状及其发展随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。

锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。

fpga电子密码锁课程设计

fpga电子密码锁课程设计

fpga电子密码锁课程设计一、课程目标知识目标:1. 学生能理解FPGA的基本原理和电子密码锁的工作机制;2. 学生能掌握使用硬件描述语言(HDL)进行数字电路设计和实现的方法;3. 学生能了解数字电路中常见的加密算法,并运用到电子密码锁的设计中;4. 学生能分析并解决电子密码锁在实际应用中可能遇到的问题。

技能目标:1. 学生能运用所学知识,设计并实现一个基于FPGA的电子密码锁;2. 学生能熟练使用相关硬件描述语言和开发工具,完成电子密码锁的编程与调试;3. 学生能通过实际操作,提高动手能力和团队协作能力;4. 学生能通过课程项目,培养创新思维和问题解决能力。

情感态度价值观目标:1. 学生能够认识到科技对社会和生活的重要性,增强学习科技的兴趣和责任感;2. 学生能够在课程学习中,培养勇于探索、积极进取的精神;3. 学生能够通过团队协作,学会互相尊重、沟通与协作,培养良好的团队精神;4. 学生能够关注电子密码锁在安全领域的应用,提高对国家和社会安全的意识。

二、教学内容1. 数字电路基础:回顾数字电路的基本概念,重点掌握组合逻辑电路和时序逻辑电路的设计原理;教材章节:第一章 数字逻辑基础2. FPGA原理与应用:介绍FPGA的基本结构、工作原理以及编程方法;教材章节:第二章 可编程逻辑器件及其编程技术3. 硬件描述语言(HDL):学习硬件描述语言的基本语法和编程技巧;教材章节:第三章 硬件描述语言VHDL/Verilog基础4. 加密算法:讲解常见的加密算法,如AES、DES等,分析其原理和实现方法;教材章节:第四章 数字信号处理与加密算法5. 电子密码锁设计与实现:结合所学知识,设计并实现一个基于FPGA的电子密码锁;教材章节:第五章 数字系统设计实例分析与综合6. 课程项目与实践:以小组形式进行项目实践,完成电子密码锁的设计、编程、调试和测试;教材章节:第六章 数字系统项目实践教学内容安排和进度:第1周:数字电路基础复习第2周:FPGA原理与应用学习第3-4周:硬件描述语言学习第5周:加密算法学习第6-8周:电子密码锁设计与实现第9-10周:课程项目与实践,成果展示与评价。

基于fpga的数字密码锁设计与实现

基于fpga的数字密码锁设计与实现

一、概述在当今信息技术高度发达的时代,数字密码锁已成为人们生活中常见的安全保障措施之一。

随着FPGA(可编程逻辑门阵列)技术的不断成熟和普及,基于FPGA的数字密码锁设计与实现已经成为一个备受关注的研究方向。

本文将探讨基于FPGA的数字密码锁的设计原理、实现过程以及相关技术细节,为相关领域的研究和应用提供参考。

二、数字密码锁的基本原理1.数字密码锁的基本功能数字密码锁是一种利用密码验证来进行身份识别和门禁控制的设备。

其基本功能包括输入密码、密码验证和门禁控制等。

2.数字密码锁的工作原理数字密码锁通常由键盘、控制单元和执行单元等组成,其工作原理是用户通过键盘输入密码,控制单元接收并验证密码的正确性,然后执行单元根据验证结果控制门禁的开启或关闭。

三、基于FPGA的数字密码锁设计1.基于FPGA的数字密码锁的优势相比传统的基于单片机或嵌入式系统的数字密码锁,基于FPGA的数字密码锁具有更高的灵活性和可扩展性。

FPGA可以根据实际需求进行灵活的硬件逻辑设计,同时兼容多种通信协议和接口,使得其在数字密码锁设计中具有显著的优势。

2.基于FPGA的数字密码锁的设计原理基于FPGA的数字密码锁主要包括密码输入模块、密码验证模块和门禁控制模块。

密码输入模块负责接收用户输入的密码,密码验证模块根据预设的密码进行验证,门禁控制模块根据验证结果控制门禁的开启或关闭。

3.基于FPGA的数字密码锁的设计流程(1)确定需求:明确数字密码锁的功能和性能要求。

(2)硬件设计:设计数字密码锁的硬件逻辑,包括键盘接口、密码验证逻辑和门禁控制逻辑。

(3)软件设计:设计数字密码锁的用户界面和控制逻辑。

(4)综合与实现:将硬件和软件进行综合,实现数字密码锁的功能。

四、基于FPGA的数字密码锁的实现1.硬件设计(1)键盘接口设计:采用矩阵式键盘接口,利用FPGA内部的GPIO 接口进行连接。

(2)密码验证逻辑设计:采用逻辑门设计密码验证逻辑,包括密码存储、密码输入和密码比对等功能。

基于FPGA的数字密码锁

基于FPGA的数字密码锁

基于F P G A的数字密码锁精选文档TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-CPLD/FPGA课程设计项目名称:基于FPGA的数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016年6月4日摘要本设计是基于现场可编程门阵列FPGA 器件的电子密码锁的设计。

通过Verilog 语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。

同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。

本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能。

通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。

关键词:现场可编程门阵列;数字密码锁;Verilog HDL;AbstractThis design is the electronic code lock field programmable gate array FPGA devices based design. By Verilog language control 4-bit binary number, composed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1, the output of the input error to zero. At the same time the number of input and output, and when more than three times the input error, an alarm signal is output, even if the fourth and fifth also enter the correct output alarm signal.This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock, alarm function. The simulation debugging, using the programmable device FPGA design basic electronic locks to achieve the desired purpose.Key words: FPGA;The digital combination lock;Verilog HDL;目录第1章所选项目的研究意义概述数字密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。

基于FPGA的数字密码锁

基于FPGA的数字密码锁

CPLD/FPGA课程设计项目名称:基于FPGA得数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016年6月4日摘要本设计就是基于现场可编程门阵列FPGA器件得电子密码锁得设计。

通过Veril og语言控制4位二进制数,组成数字排列,形成一个简单得数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0.同时输出输入得次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。

本设计利用Modelsim软件编写Verilog HDL硬件描述语言程序以实现输入密码、开锁、报警功能. 通过仿真调试,利用可编程器件FPGA得电子密码锁得设计基本达到了预期目得.关键词:现场可编程门阵列;数字密码锁;Verilog HDL;AbstractThisdesign is the electroniccodelock fieldprogrammable gatearrayFPGA devices baseddesign、ByVeriloglanguage control 4—bit binary number, posed of figures arranged to form a simple digital lock, assuming that the default password is 4 digits: 0000, correct output when the input is 1,the outputof the inputerror to zero、 At the same time the number of input and output, and when more than three times the input error, an alarm signal is output,evenif thefourth andfifthalso enter thecorrect output alarm signal、Thisdesignuses Modelsim softwarewriteVerilog HDLhardware descriptionlanguage program to implement apasswordlock, alarm function、The simulation debugging, using theprogrammabledevice FPGA design basic electronic locks to achieve the desired purpose、Keywords:FPGA;The digital bination lock;Verilog HDL;目录摘要................................................. 错误!未定义书签。

课程设计fpga密码锁

课程设计fpga密码锁

FPGA实验报告一、实验目的1.设计一个密码锁2.加深FPGA电路原理的理解3.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧5.学会应用开发系统实现硬件电路,检验电路的功能二、实验容题目:电子密码锁容:设计一个4位串行数字锁1.开锁代码为4位二进制,当输入代码的位数与锁给定的密码一致,且按规定程序开锁时,方可开锁。

否则进入“错误”状态,发出报警信号。

2.锁的密码可调,且预置方便,保密性好。

3.串行数字锁的报警,直到按下复位开关,才停下。

此时,数字锁又自动等待下一个开锁状态。

三、实验步骤1.系统总框图本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。

整体系统框图如下图所示。

2.密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。

(3)错误报警:密码输入错误开始报警。

(4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。

3.密码锁的各个模块(1)按键消抖。

每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。

(2)密码输入比较密码输入值的比较主要有两部分,密码位数和容,任何一个条件不满足,都不能打开锁。

锁密码为“0000”, key2 和key1 置低电平,分别表示输入“1”和“0”。

输入密码前先按start键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验,输入的密码等于锁预先设置的密码密码锁开启信号,锁开启。

同时,可以进行密码修改。

若在输入密码的过程中,4 位二进制密码出现输入错误,那么锁不能开启,同时,蜂鸣器发出报警信号。

用FPGA实现密码锁设计

用FPGA实现密码锁设计

基于FPGA的密码锁设计(开放实验)课题名称:基于FPGA的密码锁设计实验学院:电子科学与工程学院指导老师:王玉秀实验同学:袁庆学号:B08040230合作成员:吴旺伟、朱斌一、计数指标 (1)1、整体功能要求 (1)2、系统结构要求 (1)3、电器指标 (1)4、设计条件 (1)二、方案设计 (1)三、单元电路设计 (2)1、控制器 (2)2、十转二电路 (5)3、寄存器、比较器、暂存器 (7)4、密码个数计数器 (9)5、15秒定时电路 (9)6、2秒定时器 (10)7、存储器密码产生及密码电路 (11)8、显示指示灯显示电路 (12)9、输入及输出端口 (13)四、总电路图及各部仿真 (14)1、电路总揽图 (15)2、2秒定时器电路仿真 (16)3、15秒定时电路仿真 (16)4、十转二电路仿真 (16)5、密码个数计数器仿真 (17)6、整体过程仿真 (17)(1)、进行真确的密码输入1、2、3、4时个端口电位 (17)(2)、错误密码输入2、1、3、4时关口电位输出为 (18)(3)、输入第一个密码后等待时间超过15秒 (18)五、电路装配及连接 (19)六、系统效果检验 (20)一、技术指标1整体功能要求密码锁又称电子锁,它的主要功能是:1)用数字键方式输入开锁密码,输入密码正确时开锁;2)如果输入密码有误或输入时间过长,则发出报警信号。

2系统结构要求密码锁的系统结构框图如图所示。

其中数字键用于输入密码,密码锁用于判断输入密码的正误,也可以用于修改密码。

开锁LED1亮表示输入正确并开锁,报警LED2亮表示输入有误或输入超时。

3电气指标3.1开锁密码为4位十进制数字,按“确认”键后,输入的数字有效。

3.2输入的4位数字与预设的密码相同时开锁,用LED1灯亮表示,闪亮2秒后自动熄灭。

输入的数字与预设的密码相同时开锁,用LED2灯亮表示,闪亮2秒后自动熄灭。

3.3密码可以通过键盘设定或修改。

课程设计报告-基于fpga的电子密码锁的设计

课程设计报告-基于fpga的电子密码锁的设计

课程设计报告-基于fpga的电子密码锁的设计
一、引言
随着计算机技术的发展,传统的安全锁逐渐淡出人们的视野,取而代之的是一种更加
先进而安全的电子密码锁。

采用FPGA开发的电子密码锁在现代实用锁中变得越来越常见,它能够实现简单易懂、稳定可靠的安全锁功能,从而满足人们对安全问题日益严峻的需求。

本文主要介绍基于FPGA技术设计的电子密码锁的原理及实际应用,旨在为技术研究和产
品设计提供有价值的参考。

二、系统概述
电子密码锁是一种可以根据用户的输入及系统的设置的安全保护锁,它主要由输入接口、控制器、显示屏和锁具电源等组成。

基于FPGA设计的电子密码锁主要分为输入端处
理和控制端处理两部分,其中,输入端利用FPGA控制集成电路(IC)、有源转换器和输入/
输出连接器,实现密码锁的输入模块部分的处理功能;控制端利用FPGA实现温度检测和
按键、加密算法、记录密码信息等功能,满足密码锁的控制要求。

三、工作原理
电子密码锁工作原理主要是建立在输入接口和控制器之间的信息传输上。

当用户通过
输入接口输入密码时,控制器收到输入信号,利用自身中内置的加密算法,将输入的密码
信息和系统设置密码进行比对,如果密码正确,系统会将密码锁打开,从而使得受保护的
物品得到有效的安全保护。

四、总结
基于FPGA技术设计的电子密码锁为现代安全保护提供了一种先进的途径,其安全性
和可靠性得到了极大的提高,使得大多数受保护物品得到有效保护。

电子密码锁以及FPGA 技术的发展正在为我们日常生活与工作提供前所未有的便利,也将带给未来更多安全的思
考与希望。

FPGA课程论文-基于FPGA设计的电子密码锁

FPGA课程论文-基于FPGA设计的电子密码锁

FPGA课程论文摘要基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。

目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。

在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。

本文介绍一种基于现场可编程门阵列FPGA 器件的电子密码锁的设计方法采用VHDL语言对系统进行描述,并在FLEX10K10LC84-4上实现。

系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,则允许用户重新输入密码,最多可输入三次,若三次都不正确,则扬声器报警,直到按复位键才允许再次输入代码。

通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。

当然,该系统在一些细节的设计上还需要不断的完善和改进,特别是对系统的扩展有很好的实用和设计的价值。

关键词:现场可编程门阵列, 硬件描述语言, 电子密码锁, 扬声器一绪言系统以利用可编程器件实现电子密码锁的设计为研究背景、现状以及发展方向,明确指出了电子密码锁面临的问题和所解决的方法。

1.1课题背景基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。

它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。

在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。

它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统。

它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。

在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。

基于FPGA的智能密码锁设计

基于FPGA的智能密码锁设计

基于FPGA的智能密码锁设计摘要本文简述了VHDL语言的功能及其特点,介绍一种用EDA技术和VHDL语言,在Quartus Ⅱ环境下,设计一种新型的智能密码锁,该密码锁具有密码预置和误码报警等功能,用一片FPGA(Field Programmable Gate Array)现场可编程门阵列芯片实现,从而大大简化了系统结构,降低成本,提高了系统的保密性和可靠性。

它体积小,功耗低,价格便宜,安全可靠,维护和升级都十分方便,具有较好的应用前景。

关键词:智能密码锁、硬件描述语言、电子设计自动化、Quartus IIAbstractThe paper introduces the function and characteristic of VHDL language. A new type intelligent digital password lock is designed using VHDL language. An FPGA (Field Programmable Gate Array) chips is adopted in this design, thus greatly simplifying the system structure, reduce cost and improve the system of confidentiality and reliability .This new digital intelligent has better application prospect based on its small volume, low power, security and easy maintenance and upgrade.Keywords:intelligent loc k、VHD L、ED A、Quartus II目录引言 (3)1 VHDL语言特点 (3)2 智能密码锁的设计要求 (4)3 智能密码锁的电路组成 (4)3.1密码锁输入电路 (4)3.2密码锁控制电路 (4)3.3 密码锁输出显示电路 (4)4 密码锁输入电路的设计 (5)4.1 时序电路 (5)4.2 键盘扫描电路 (8)4.3 键盘消抖电路 (9)4.4 键盘译码电路 (10)4.5 按键存储电路 (13)4.6 智能密码锁控制电路 (14)5 结论 (23)谢辞 (24)参考文献 (25)引言随着社会物质财富的日益增长,安全防盗已成为全社会问题。

CPLD_FPGA设计及应用课程设计数字密码锁

CPLD_FPGA设计及应用课程设计数字密码锁

《CPLD/FPGA设计及应用课程设计》课程设计报告题目:数字密码锁院(系):信息科学与工程学院专业班级: xxxxxxxx学生姓名: xxxxx学号: xxxxxxxxxx指导教师: xxxx20 16年 4 月 11 日至20 16 年 5 月 6 日武昌首义学院制CPLD/FPGA设计及应用课程设计任务书目录1.课程设计目的 (5)2.课程设计题目描述和要求 (5)3.课程设计报告内容 (5)设计思路及原理 (5)设计需要解决的问题 (5)设计进程 (6)4.总结 (11)5.附录 (12)1i数字密码锁设计1.课程设计目的●设计一个四位十进制的密码锁。

●跟深一步的明白得FPGA的用途,精通相应的开发板。

2.课程设计题目描述和要求a):密码锁串行输入四位十进制数字口令b):输入口令全数正确即开锁c):口令输入最大次数3次,要求在完全输入四位以后进行判定口令正确与否;输入3次以后还不能开锁,进入锁死状态d)有相应的显示功能e)能够对输入的口令消隐f)开锁后能再次上锁3.课程设计报告的内容1)设计思路及原理i.密码锁原理利用逻辑电路将外接输入的电信号转化为时序电路,通过内部设定的规那么,当输入的信号通过处置后的时序逻辑达到内部设定的条件是开启某一种状态及时解锁状态,当没达到那种条件时始终维持一种或多种状态。

ii.密码锁的设计要求设计密码锁的系统描述:数字密码锁在设定口令和开锁时要求输入四位十进制数据,当输入状态开启时,输入正确显示一种状态,若是错误那么显示错误次数加1,累计3次锁死状态并报警,若是不输入那么一直维持原先状态;当检测到贮存状态时,输入密码并存储改变原有的贮存密码;当检测到消隐信号时,将不显示输入的数据。

2)设计中需要解决的问题01.时钟扫描读取输入的信号:过小,还没检测到就进入下次判定或多记一次,过大,响应过慢,加上消斗模块后容易引发码间干扰不易读取信号02.密码读取:读入按键开关信号要将信号处置编码送入显示和密码比较状态03.密码比较:第一是要将存入的数字进行存储和逻辑排序,然后将输入的数据进行一一比对,并进行计数,正确与否输出状态信号04.显示模块:将输入模式、开锁状态、密码存储状态和锁死状态等的显示状态显示的编码05.开发板引脚的配置等3)设计进程密码锁的系统描述a)输入输出端口概念:Sdin:输入十进制数信号按键(由于按键不够,将0—9数据以按键按下次数来编译)Lock:上锁按键Sec:解锁按键Clr:确认按键Set:密码存储按键Crack:开锁状态按键Clk:输入数字确信按键Dout:送现输出信号端Yn:选码信号c)1001 数字“9”1010 解锁成功“A”1011 01111111 解锁失败Others 其他状态01-- 上锁状态10-- 00011000 解锁状态●时钟模块由于输入时钟是50MHZ,一样扫描频率一样1000HZ左右,过50分频取得1M的频率后通事后续取得两路时钟来别离接入按键和比对模块。

数字密码锁FPGA课程设计报告

数字密码锁FPGA课程设计报告

西安邮电学院FPGA课程设计报告题目:数字密码锁院系:专业班级:学生姓名:导师姓名:起止时间:至2012年9 月21 日FPGA课程设计报告提纲1.任务设计一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。

同时输出输入的次数,当3次以上输入错误时,输出一个超告警信号,即使第四、五次输入正确也输出告警信号。

2.目的通过学习FPGA技术,应用于实践当中,掌握FPGA数字电路系统的开发流程,并且在自己的实践设计中熟练这门技术,同时排除和解决开发中遇到的问题,用Verilog语言编写设计所需要的实现的功能。

3.使用环境(软件/硬件环境,设备等)功能仿真和后仿真采用第三方验证工具(Modelsim),综合与布局布线工具为:Quartus II。

4.FPGA课程设计详细内容4.1 技术规范一、功能定义具体功能如下:(1)、用户初次使用,可按下am_en键进行密码设置。

(2)、开锁时一次完整的输入密码,当输入的密码与设置的密码相同时密码锁打开,即lockopen为高电平,连接的绿灯亮;否则密码锁关闭,即warn_en 为高电平,连接的红灯亮。

(3)、当输入错误的次数>3时,密码锁强制自动关闭。

二、引脚定义4.2 设计方案一、总体设计(1)密码设置或修改模块用户初次使用密码锁时可通过按am_en键进行密码设置,先输入初始密码0000,则进入密码设置,高电平有效。

密码是十进制的四位数字密码。

以后修改密码时,按am_en键,然后输入旧密码,正确时方可进入密码设置选项,否则重新开始。

(2)密码输入模块开锁时,一次完整输入密码后,按下enter键进行密码验证,高电平有效,看输入的数字是否等于原密码的值,密码正确时开锁,否则关闭。

当输入有误时,按下return键,清除输入的数字,重新输入(3)密码输入次数计数模块开始时count=0,当输入密码按下enter键时且密码错误时count+1,当conut>3时,密码锁强制自动关闭。

-基于FPGA的电子密码锁的设计

-基于FPGA的电子密码锁的设计

本科毕业设计基于FPGA的电子密码锁的设计摘要随着现代电子技术的迅猛发展,相信电子密码锁将会逐渐取代普通的机械密码锁。

主要是由于电子密码锁拥有几个普通机械密码锁不可能替代的优点:保密系能好、安全度高、即防盗性能强,不需要使用钥匙、即记住密码就可开锁等等。

本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。

用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。

而且由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA 工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。

因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。

此设计采用EDA技术,利用MAX+PLUSⅡ工作平台和VHDL硬件描述语言,设计了一种电子密码锁,并通过本学院的实验箱FPGA芯片实现。

关键词:电子密码锁FPGA VHDL硬件描述语言EDA MAX+PLUSⅡThe Design of Electronic Locks Based on FPGAWu Yaoxiao(College of Engineering, South China Agricultural University, Guangzhou 510642, China) Abstract:With the rapid development of modern electronic technology, electronic locks will gradually replace the ordinary mechanical locks. Confidential Department has the advantages of several ordinary mechanical locks can not substitute electronic locks, such as high security, anti-theft performance, and does not require the use of a key, Remember password can unlock. This article focuses on the design method which is based on field programmable gate array (FPGA) devices, electronic locks. FPGA device constructed system, all of the algorithms completely realized by a hardware circuit so that the operational reliability of the system can be greatly improved. And with field-programmable function, when it need to change the methods of the design, just change the FPGA control and interface circuit with using EDA tools updated design that is downloaded to the FPGA without the need to change the external circuit design, greatly improving the efficiency of the design. Therefore, the use of digital systems developed by the FPGA, not only has a very high operating reliability, but also extremely easy to upgrade. The design of the system uses the EDA technology, MAX+PLUSⅡsoftware and VHDL hardware description language, designed an electronic lock, and implemented by the Institute of experimental box FPGA chip.Keywords: electronic locks FPGA VHDL hardware description language EDAMAX + PLUS II目录1 前言 01.1 EDA技术及其发展 01.2 电子密码锁的国内外发展状况 01.3 电子密码锁的重要性 (1)2 MAX+PLUSⅡ软件环境概述 (2)2.1 MAX+PLUSⅡ设计流程 (2)2.2 MAX+PLUSⅡ支持的硬件描述语言 (3)2.3 MAX+PLUSⅡ工作过程 (4)3 硬件环境FPGA的工作原理及其结构 (5)3.1 FPGA的基本结构 (5)3.2 FPGA的设计流程 (6)4 基于FPGA电子密码锁系统的基本描述 (8)4.1 电子密码锁的系统的方案比较和选择 (8)4.2 基于FPGA的电子密码锁的设计的思路 (9)4.3 本系统设计的目的和意义 (9)5 基于FPGA电子密码锁系统的仿真和分析 (10)5.1 底层文件仿真和分析 (10)5.1.1 扫描时钟产生模块 (10)5.1.2按键去抖模块 (10)5.1.3键盘扫描模块 (11)5.1.44*4键盘编码及其按键功能的设置模块 (12)5.1.5数码管显示模块 (13)5.1.6 比较判断和功能描述模块 (15)5.2 顶层文件仿真和分析 (16)6 结论 (17)参考文献 (18)附录 (18)致谢 (33)华南农业大学本科生毕业设计成绩评定表1 前言1.1 EDA技术及其发展在计算机技术的推动下,20世纪末,电子技术获得了飞速的发展,现代电子产品几乎渗透于社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时又促使现代电子产品性能的进一步提高,产品更新换代的节奏也越来越快(潘松,等,2005)。

数字密码锁FPGA课程设计报告

数字密码锁FPGA课程设计报告

西安邮电学院FPGA课程设计报告题目:数字密码锁院系:专业班级:学生姓名:导师姓名:起止时间:至2012年9 月21 日FPGA课程设计报告提纲1.任务设计一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。

同时输出输入的次数,当3次以上输入错误时,输出一个超告警信号,即使第四、五次输入正确也输出告警信号。

2.目的通过学习FPGA技术,应用于实践当中,掌握FPGA数字电路系统的开发流程,并且在自己的实践设计中熟练这门技术,同时排除和解决开发中遇到的问题,用Verilog语言编写设计所需要的实现的功能。

3.使用环境(软件/硬件环境,设备等)功能仿真和后仿真采用第三方验证工具(Modelsim),综合与布局布线工具为:Quartus II。

4.FPGA课程设计详细内容4.1 技术规范一、功能定义具体功能如下:(1)、用户初次使用,可按下am_en键进行密码设置。

(2)、开锁时一次完整的输入密码,当输入的密码与设置的密码相同时密码锁打开,即lockopen为高电平,连接的绿灯亮;否则密码锁关闭,即warn_en 为高电平,连接的红灯亮。

(3)、当输入错误的次数>3时,密码锁强制自动关闭。

二、引脚定义4.2 设计方案一、总体设计(1)密码设置或修改模块用户初次使用密码锁时可通过按am_en键进行密码设置,先输入初始密码0000,则进入密码设置,高电平有效。

密码是十进制的四位数字密码。

以后修改密码时,按am_en键,然后输入旧密码,正确时方可进入密码设置选项,否则重新开始。

(2)密码输入模块开锁时,一次完整输入密码后,按下enter键进行密码验证,高电平有效,看输入的数字是否等于原密码的值,密码正确时开锁,否则关闭。

当输入有误时,按下return键,清除输入的数字,重新输入(3)密码输入次数计数模块开始时count=0,当输入密码按下enter键时且密码错误时count+1,当conut>3时,密码锁强制自动关闭。

FPGA的电子密码锁设计

FPGA的电子密码锁设计

一、前言电子密码锁的使用体现了人们的消费水平、保安意识和科技水平的提高;而且避免了携带甚至丢失钥匙的麻烦..目前设计密码锁的方法很多;例如传统的PCB板设计、用PLC设计或者单片机设计等等..而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁;优于其他设计方法..VHDL是一种符合IEEE标准的硬件描述语言;其最大的特点是借鉴高级程序语言的功能特性;对电路的行为与结构进行高度的抽象化、规范化的形式描述;并对设计的不同层次、不同领域的模拟验证与综合优化等处理;使设计过程延到高度自动化..二、方案设计密码锁的的构成主要由密码输入、密码设置、比较控制和报警部分组成;此外密码锁必须能够保存已设置的密码;因而需要一个寄存器来保存密码;同时由于控制电路和报警电路要用到不同的时钟;因而需要一个时序产生电路来生成需要的不同信号;采用分频方法实现..根据密码锁的电路特点;选用的是实验箱的模式6电路;根据电路功能;在这里设计的密码锁以4位2进制代码作为密码的电子密码锁..其原理框图如下所示:三、功能模块的实现1、时序电路在密码锁的电路中;输入计时、报警计时需要的1HZ的时钟脉冲信号;而驱动蜂鸣器工作需要的很高频率的脉冲信号;因而这里采用输入一个高频脉冲1024HZ信号来驱动蜂鸣器;采用分频的方法得到1HZ的计时脉冲;程序如下:processclk_1kvariablecnt1:integer:=0;beginifrising_edgeclk_1kthenifcnt1=512thenclk_1<=notclk_1;cnt1:=0;elsecnt1:=cnt1+1;endif;endif;endprocess;程序说明:clk_1k为输入的1024HZ高频脉冲;cnt为分频得到的1HZ计时脉冲..2、密码设置为了安全性;密码锁必须能够重复的设定密码;在设定密码锁后;应该设置一个寄存器来存储设定的密码;程序如下:processrst;password;enter_pisbeginifrst='0'thenifenter_p='1'thenram<=password;en1<='1';endif;endif;endprocess;程序说明:rst低电平时所有的模块复位;只有密码设置模块工作;password为设置密码时的输入端;ram就是存储密码的寄存器;enter_p为在这里为密码设置使能端;高电平有效..密码设置的仿真波形如下图;由图中可以清楚地看到在enter_p高电平时寄存器ram中得到了输入的密码1001..图二、密码设置仿真波形3、密码输入密码输入部分要求在密码开始输入时进行计时;超时了要求报警;因此在密码输入时设置一个计时使能信号en2;密码开始输入时使能信号en2有效;控制电路的计时器开始计时;而且在密码确认键按下之前;电路不能对输入密码和已设置密码进行比较;因此需要设置一个寄存器;来存储输入的数据;当确认键按下时;就将寄存器里的数据送给控制部分进行比较..程序如下:processrst;enter_c;en1;codebeginifrst='1'thenifen1='1'thenifenter_c='1'thencode_tmp<=code;en2<='1';endif;elsecode_tmp<="0000";en2<='0';endif;elsecode_tmp<="0000";en2<='0';endif;endprocess;程序说明:rst置高;设置密码模块不工作;其他部分正常工作;en1为高时代表密码设置完毕;密码锁开始工作;enter_c是密码输入使能信号;高电平时表示开始密码输入;此时code_tmp中开始存储输入的数据;计时使能信号en2也变成高电平..密码输入仿真波形如下;由图中可清楚的看到在enter_c为高时;寄存器code_tmp 中存储了输入的数据code系统仿真时有10ns的延时..图三、密码输入仿真波形4、控制部分此部分是密码锁设计的核心模块;它实现密码锁的逻辑功能..开锁代码为4位二进制数;当输入代码的位数和位值与锁内设置的密码一致;且在规定时间内开锁;方可打开;并且点亮开锁指示灯led_g;否则;系统进入“错误”状态;并且发出警报..警报的方式为蜂鸣器发出警报;指示灯led_r闪烁..直到30秒过后或者按下复位键;经行下一次密码输入..模块源程序:processrst;clk_1;en2variablelock:std_logic:='0';variablecnt3:integer:=0;beginifrst='0'thenlock:='0';cnt3:=0;sp_en<='0';led_g<='0';led_r<='0'; elseifrising_edgeclk_1theniflock='0'thenifen2='1'thenifcnt3=5thensp_en<='1';led_g<='0';led_r<='1';cnt3:=0;lock:='1';elseifcode_en='1'thenifram=code_tmpthensp_en<='0';led_g<='1';led_r<='0';lock:='1';elsesp_en<='1';led_g<='0';led_r<='1';endif;endif;cnt3:=cnt3+1;endif;endif;elsecnt3:=0;endif;endif;endif;endprocess;程序说明:、lock为自锁信号;lock为1时;系统进入自锁状态;不再工作..、Cnt3为密码输入计时信号;en2为1即开始输入密码时开始计时;当超过5秒而没有输入正确密码时;系统自锁并报警..、code_en为密码确认键;此键按下时;系统开始将输入的密码和设置的密码进行比较;若二者一致则发出开锁信号;若不一致则发出报警信号;系统进入自锁状态..5、报警电路报警电路的作用就是在密码输入错误或者输入超时的情况下经行报警;蜂鸣器发出声音;并且警报灯不停闪烁;直到复位键按下或者计时30s结束..源程序如下:processrst;sp_en;clk_1;clk_1kvariabletmp_en1:std_logic:='0';variablecnt4:integer:=1;beginifrst='1'thenifrising_edgeclk_1thenifsp_en='1'andcnt4>0thenifcnt4=31thencnt4:=0;tmp_en1:='0';elsecnt4:=cnt4+1;tmp_en1:='1';endif;endif;endif;elsetmp_en1:='0';cnt4:=1;endif;speaker<=tmp_en1andclk_1k;led_f<=tmp_en1andclk_1;endprocess;程序说明:Cnt4是一个30进制计数器;对报警时间进行计时..Sp_en是控制电路发出的报警信号..四、软件仿真将完整的程序在Quartus软件下进行编译;通过之后进行波形仿真;观察仿真波形看是否实现了密码锁的逻辑功能;下面是在密码输入正确、密码输入超时和密码输入错误时的仿真波形图..图四、密码输入正确仿真波形如图所示;首先在rst为0时将密码设为1001;然后输入密码1001;当确认键code_en按下时;系统判断密码正确;输出一个开锁信号;开锁指示灯led_g点亮..图五、密码输入错误仿真波形如图;密码设置仍然为1001;但输入一个错误的密码1000;当密码确认按下时;系统发出错误警报;蜂鸣器Speaker发出响声;报警灯led_f闪烁..图六、出入超时仿真波形如图;密码设置不变;依旧是1001;但是密码输入按键enter_c按下;输入密码后不按下确认键;五秒过后;系统判断密码输入超时;此时输出超时警报;蜂鸣器报警;led_g点亮;led_f闪烁..五、心得体会这次的课程设计安排在了假期以后;上学期的VHDL语言已经有些生疏了;这给编程带来了一些难度;但是经过复习还是重新熟悉了编程的方法和技巧..在写程序的时候有时候不注意仿真;犯了想当然的毛病;认为程序会实现想象中的逻辑功能;但实际不然;所以在编程过程中;不能单凭想象来做;必须写完一部分后就进行一次仿真;及时发现问题;及时改正;避免可在写完程序之后才发现错误;这时再修改就会很麻烦了..这次的课程设计标题是密码锁设计;通过在查阅资料的过程中了解了电子密码锁的发展前景和FPGA的广泛应用;在日常生活中会有许多的电子设备都与FPGA有关;因此学好EDA技术对自己的以后的发展会有很大的帮助..。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FPGA实验报告一、实验目的1.设计一个密码锁2.加深FPGA电路原理的理解3.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧5.学会应用开发系统实现硬件电路,检验电路的功能二、实验内容题目:电子密码锁内容:设计一个4位串行数字锁1.开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。

否则进入“错误”状态,发出报警信号。

2.锁内的密码可调,且预置方便,保密性好。

3.串行数字锁的报警,直到按下复位开关,才停下。

此时,数字锁又自动等待下一个开锁状态。

三、实验步骤1.系统总框图本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。

整体系统框图如下图所示。

2.密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。

(3)错误报警:密码输入错误开始报警。

(4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。

3.密码锁的各个模块(1)按键消抖。

每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。

(2)密码输入比较密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。

锁内密码为“0000” , key2 和key1 置低电平,分别表示输入“1” 和“0” 。

输入密码前先按start键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。

同时,可以进行密码修改。

若在输入密码的过程中,4 位二进制密码出现输入错误,那么锁不能开启,同时,蜂鸣器发出报警信号。

直到按下复位开关,报警才停止。

此时,数字锁又自动进入等待下一次开锁的状态。

(3)密码修改为防止任意进行密码修改,必须在正确输入密码后,才能重新设置密码。

输入正确密码后,锁打开,就可直接进行修改密码的操作。

修改密码实质就是用输入的新密码去取代原来的旧密码,按确定按键ok, 存储新密码。

(4)报警对50M晶振进行分频,实现对蜂鸣器的控制(5)数码显示八段数码管是电子开发过程中常用的输出显示设备。

在本设计中使用的是8个四位一体、共阴极型八段数码管。

其单个静态数码管如下图所示。

由于八段数码管公共端连接到VCC(共阳极型),当数码管的中的一个段被输入低电平,则相应的这一段被点亮。

反之则不亮。

四位一体的八段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。

八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。

单个数码管管脚示意图本实验通过计数信号count控制数码管亮的个数,用temp信号控制数码管的动态扫描显示,以实现每输入一位密码,数码管显示左移一位。

4.软件仿真(1)密码输入正确时,蜂鸣器不响,beep=1。

(默认密码为0000),仿真图如下:(2)密码输入错误时(0001),蜂鸣器响,beep=0。

(默认密码为0000),仿真图如下:四、实验总结这次密码锁的设计过程表明,用VHDL可以快速、灵活地设计出符合要求的密码锁控制器,而且操作简单。

可以实现密码输入、密码校验、密码设置和更改等功能。

设计过程能够在设计完成后在QuartusⅡ环境下进行电路的模拟仿真,反馈结果可以验证程序设计的可行性与可靠性。

本密码锁控制器设置的是4位密码,在系统复位后,输入一个完整的密码串,输入完后,系统会进行比对,如果发现密码吻合,则开门,如果输入的密码串都是错误的,则系统报警。

这样的设计可以很好的满足人们的日常需求。

同时,密码锁还具有密码修改功能,方便操作,使得密码锁的使用更加安全、便捷。

在软件、硬件设计和仿真过程中间我们也遇到不少问题,但最终还是把它们解决了,使得设计符合要求。

除了自己思考设计之外,这与和同学的同心协力的合作与讨论是分不开的的。

相互的探讨使得我们的思路更加开阔,解决问题的办法也更多。

总之,此次课程设计让我收益良多,同时因为有了实践操作,对EDA技术能够更好的掌握和应用了。

附:VHDL程序总代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity lock isport(key1,key2:in std_logic; --按键clk,start,ok: in std_logic; --时钟,开始,确定,复位 beep:out std_logic:='1'; --正确,蜂鸣器信号dig:out std_logic_vector(7 downto 0); --数码管片选信号seg:out std_logic_vector(7 downto 0) --数码管片内显示);end lock;architecture rt1 of lock issignal keyin,password:std_logic_vector(3 downto 0):="0000"; --输入密码,密码signal open1:std_logic:='0'; --开锁信号signal beep1,keyen1,keyen2:std_logic:='1'; --蜂鸣器信号signal shuru:std_logic; --输入信号signal count: std_logic_vector(2 downto 0):="000"; --计数输入密码的位数signal temp: std_logic_vector(1 downto 0):="00";beginprocess(clk,key1)variable m:integer range 0 to 250000; --按键消抖beginif clk'event and clk='1'thenif key1='0' thenif m=250000 then m:=m;else m:=m+1;end if;if m=249999 then keyen1<='0';else keyen1<='1';end if;else m:=0;end if;end if;end process;process(clk,key2)variable a:integer range 0 to 250000; --按键消抖beginif clk'event and clk='1'thenif key2='0' thenif a=250000 then a:=a;else a:=a+1;end if;if a=249999 then keyen2<='0';else keyen2<='1';end if;else a:=0;end if;end if;end process;process(clk,start,ok) --密码输入,比较,修改模块beginif clk'event and clk='1'thenif start='0' thenshuru<='1';count<="000";keyin<="0000"; open1<='0';beep1<='1';end if;if shuru='1' thenif count="000" thenif keyen1='0' thenkeyin(0)<='0' ;count<=count+1;elsif keyen2='0' thenkeyin(0)<='1' ;count<=count+1;end if;end if;if count="001" thenif keyen1='0' thenkeyin(1)<='0' ;count<=count+1;elsif keyen2='0' thenkeyin(1)<='1' ;count<=count+1;end if;end if;if count="010" thenif keyen1='0' thenkeyin(2)<='0' ;count<=count+1;elsif keyen2='0' thenkeyin(2)<='1' ;count<=count+1;end if;end if;if count="011" thenif keyen1='0' thenkeyin(3)<='0' ;count<=count+1;shuru<='0';elsif keyen2='0' thenkeyin(3)<='1' ;count<=count+1;shuru<='0';end if;end if;end if;if ok='0'and open1='0' thenif (keyin=password) and count="100" thenopen1<='1'; shuru<='1';elsebeep1<='0';open1<='0';end if;end if;if ok='0'and open1='1'thencount<="000";password<=keyin;end if;end if;end process;process(clk,start,ok) -- 报警模块variable g:integer range 0 to 25000;beginif clk'event and clk='1'thenif g=25000 theng:=0;elseg:=g+1;end if;if g<=12500 and beep1='0' thenbeep<='0';elsebeep<='1';end if;end if;end process;process(clk)variable n:integer range 0 to 2500; --计数模块beginif clk'event and clk='1'thenif n=2500 thenn:=0;if temp="11"thentemp<="00";elsetemp<=temp+1;end if;elsen:=n+1;end if;end if;end process;process(clk) --数码管显示模块beginif clk'event and clk='1'thenif count="001" thencase temp iswhen "00" => dig<="01111111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>seg<="11111111" ;end case ;elsif count="010" thencase temp iswhen "00" => dig<="01111111" ;if keyin(1)='0'then seg<="11000000";else seg<="11111001";end if;when "01" => dig<="10111111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>seg<="11111111" ;FPGA实验报告end case ;elsif count="011" thencase temp iswhen "00" => dig<="01111111" ;if keyin(2)='0'then seg<="11000000";else seg<="11111001";end if;when "01" => dig<="10111111" ;if keyin(1)='0'then seg<="11000000";else seg<="11111001";end if;when "10" => dig<="11011111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>seg<="11111111" ;end case ;elsif count="100" thencase temp iswhen "00" => dig<="01111111" ;if keyin(3)='0'then seg<="11000000";else seg<="11111001";end if;when "01" => dig<="10111111" ;if keyin(2)='0'then seg<="11000000";else seg<="11111001";end if;when "10" => dig<="11011111" ;if keyin(1)='0'then seg<="11000000";else seg<="11111001";end if;when "11" => dig<="11101111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>null;end case ;elsedig<="11111111" ;seg<="11111111";end if;end if;end process ; end rt1;。

相关文档
最新文档