基于VHDL的电子密码锁的设计

合集下载

彭胜-基于VHDL的电子密码锁设计与实现正文

彭胜-基于VHDL的电子密码锁设计与实现正文

1 引言电子密码锁的使用体现了人们消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。

目前设计密码锁的方法很多,例如用传统的PCB 板设计、用PLC 设计或者用单片机设计。

而用V HDL 可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法,使设计过程达到高度自动化。

本设计在Max + plus Ⅱ的环境中进行,用Al2tera 公司ACEX 1 K系列的EP1 K30 TC14423 来实现。

ACEX 1 K是Altera 公司着眼于通信、音频处理及类似场合的应用而推出的FPGA 器件芯片系列,其典型门数为10 万门,是当今Altera 多种产品中应用前景最好的器件系列之一。

EDA 技术设计电子系统具有用软件的方式设计硬件;设计过程中可用有关软件进行各种仿真,系统可现场编程、在线升级,整个系统可集成在一个芯片上等特点;不但设计周期短、设计成本低,而且将提高产品或设备的性能,缩小产品体积、提高产品的技术含量,提高产品的附加值。

用VHDL设计电子密码锁方案:作为通用电子密码锁,主要由3 个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路,作为电子密码锁的输入电路。

可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。

(1)密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。

(2)密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。

(3)七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。

1.1 课题背景随着社会的发展和人们生活水平的提高,人们的安全意识也逐步加强。

传统的机械锁由于其构造的简单,失效的事件屡见不鲜,如何实现保密防盗这一问题变的尤其的突出,密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢迎。

基于VHDL语言的电子密码锁v1.0

基于VHDL语言的电子密码锁v1.0

成绩题目基于VHDL语言的电子密码锁设计课程名称EDA技术实训_______院(系)电子通信工程学院___专业班级 ____________________学生姓名 _____________________学号 _____________________设计地点EDA实验室_________指导教师设计起止时间: 年月日至年月日目录1 绪论 (3)1.1电子密码锁的功能要求 (3)1.2总体模块设 (3)1.3顶层文件设计 (4)2 各功能模块的具体实现 (5)2.1拨码输入模块 (5)2.2寄存器 (6)2.3密码比较模块 (8)2.4显示模块 (10)3 系统仿真 (15)4 硬件测试 (16)5实践心得及体会 (17)绪论1.1电子密码锁的功能要求1、设计六位密码(每位均可以是0~9任意数字)的电子密码锁,用四个拨码开关(k1~k4)输入,并通过七段数码管显示输入密码。

2、密码验证:按键设置验证开始,输入密码后, 密码正确时开锁,绿灯亮,红灯灭,表示开锁成功;当密码输入错误时,绿灯灭,红灯亮,表示开锁失败。

3、密码更改:密码验证正确后可以更改,并设置按键控制更改密码功能。

4、密码清除:密码输入过程中可以清除,并重新输入。

5、初始密码:预设初始密码为123456。

1.2总体模块设计通过拨码输入密码,送到密码校验电路,如果校验正确开锁,并执行显示在LED灯上,同时密码校验正确可以进行密码修改。

图11.3顶层文件设计本设计采用EDA 技术和VHDL 语言设计了一种按键输入密码并数码管回显,当输入正确密码时轰动绿灯亮、红灯熄灭表示开锁,而当输入错误密码时,红灯亮、绿灯熄灭表示关锁。

根据系统设计要求,系统设计采用自顶向下的设计方法。

顶层设计采用原理图设计方式,系统的整体组装设计原理图如图2所示。

它由拨码输入、寄存器、密码比较和显示灯四个模块组成。

其顶层文件设计如图:密码修改电路拨码输入 密码校验电路 执行电路开锁电路图2各功能模块的具体实现2.1拨码输入模块1、拨码输入模块包括设置密码并读取、输入密码、系统复位功能。

基于VHDL的电子密码锁的设计论文

基于VHDL的电子密码锁的设计论文

摘要FPGA/VHDL是近几年集成电路中发展最快的产品。

由于FPGA性能的高速发展以及设计人员自身能力的提高,可编程逻辑器件供应商将进一步扩大可编程芯片的领地,将复杂的专用芯片挤向高端和超复杂应用。

据IC Insights的数据显示,FPGA市场从1999年的29亿美元增长到去年的56亿美元,几乎翻了一番。

Matas预计这种高速增长局面以后很难出现,但可编程逻辑器件依然是集成电路中最具活力和前途的产业。

本文介绍的VHDL密码锁应具有如下功能:密码预先存入寄存器中,开锁时,输入密码存入另一寄存器中,当按下“确定”键时,启动比较器,比较两个寄存器中的内容,当结果相同时开锁;当结果不同时不开锁。

用户需要修改密码时,先开锁,再按“设定密码”,清除预先存入的密码,通过键盘输入新的2位十进制码,按“确定”完成。

关键词:VHDL,密码锁,矩阵目录摘要 (1)目录 (3)一、设计要求 (5)二电路组成 (5)三功能电路的设计 (7)1、总体设计框图 (7)2、键盘接口电路 (7)3.时序产生电路 (10)4.键盘扫描电路 (12)5.键盘消抖电路 (15)6.键盘译码电路 (19)7.按键存储电路 (26)(1)SISO—串行输入/串行输出 (26)(2)SIPO--串行输入/并行输出 (28)(3)PISO--并行输入/串行输出 (30)(4)PIPO--并行输入/并行输出 (32)8.密码设置和比较模块 (34)9.电锁控制电路设计 (36)(1)数字按键输入部分 (37)(2)功能键输入部分 (37)(3)三种工作模式 (38)附件1:程序清单 (39)一、设计要求设计一个简单的数字电子密码锁,密码为6位。

功能1、密码输入:每按下一个键,要求在数码管上显示,并依次左移;2、密码清除:清除密码输入,并将输入置为”000000”;3、密码修改:将当前输入设为新的密码;4、上锁和开锁。

二电路组成为达到以上功能,可将电子密码锁分为以下几个模块:1、键盘接口电路键盘矩阵、键盘扫描、键盘消抖、键盘译码及按键存储。

《基于VHDL语言和FPGA的电子密码锁》范文

《基于VHDL语言和FPGA的电子密码锁》范文

《基于VHDL语言和FPGA的电子密码锁》篇一一、引言随着科技的发展,电子密码锁已逐渐取代传统的锁具,成为了安全领域的重要组成部分。

而作为电子密码锁核心技术之一的FPGA(现场可编程门阵列)技术,以及VHDL语言编程的灵活性,更是对密码锁设计起到了重要的推动作用。

本文旨在详细探讨基于VHDL语言和FPGA的电子密码锁的设计与实现。

二、VHDL语言与FPGA概述VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述电子系统的结构和行为。

而FPGA则是一种可编程逻辑器件,其内部由许多可配置的逻辑单元组成,通过编程可以实现各种复杂的数字电路功能。

将VHDL语言与FPGA相结合,可以实现电子密码锁的高效、灵活和可定制的设计。

三、电子密码锁的设计要求在基于VHDL语言和FPGA的电子密码锁设计中,首先需要明确设计要求。

这些要求包括:高安全性、易于使用、良好的扩展性以及低成本等。

此外,密码锁应能抵抗各种常见的攻击方式,如暴力破解等。

四、基于VHDL的密码锁设计与实现基于VHDL语言的电子密码锁设计主要分为几个模块:密码输入模块、解码模块、控制模块和输出模块等。

密码输入模块负责接收用户输入的密码;解码模块对输入的密码进行解码,判断其是否正确;控制模块根据解码结果控制输出模块的开关状态;而整个系统则由FPGA实现。

在VHDL编程中,需要详细描述各个模块的功能、接口以及它们之间的通信方式。

例如,密码输入模块应能接收一定长度的密码输入,并将其传递给解码模块。

解码模块则根据预设的算法对密码进行解码,并将结果传递给控制模块。

控制模块根据解码结果控制输出模块的开关状态,以实现密码锁的开启或关闭。

五、FPGA的实现与优化在FPGA上实现电子密码锁时,需要利用FPGA的编程工具进行编程和配置。

首先,将VHDL代码编译成可在FPGA上运行的二进制代码;然后,将二进制代码下载到FPGA中,实现对电子密码锁的硬件配置。

基于VHDL密码锁设计

基于VHDL密码锁设计

基于FPGA的数字密码器设计(黑体小三,1.5倍行距,段后1行,新起一页,居中)4.1数字密码器总体设计(黑体四号,1.5倍行距,段前0.5行)4.1.1 设计要求(黑体小四,1.5倍行距,段前0.5行)1)密码预先在内部设置,可以设置任意位密码,这里采用6位十进制数字作为密码;2)密码输入正确后,密码器将启动开启装置。

这里密码器只接受前6位密码输入,并以按键音提示,多余位数的密码输入将不起作用;3)允许密码输入错误的最大次数为三次, 密码错误次数超过三次则进入死锁状态, 并发出警报;4)报警后,内部人员可以通过按键SETUP使密码器回到初始等待状态;5)密码器具有外接键盘,可以用来输入密码和操作指令;4.1.2设计思路(黑体小四,1.5倍行距,段前0.5行)先对数字密码器进行顶层设计并写出相应的VHDL程序,然后将数字密码器划分为分频模块、消抖同步模块、使能电路模块、密码预置模块、编码模块、比较模块、计数器选择模块、数码管显示译码模块、指示电路模块、数码管扫描模块、误码模块和控制器模块12个部分,将各个模块一一实现。

顶层设计中各个模块是作为元件来引用的,因此这里需要将各个模块设计成独立设计实体的具体形式,这样便可以在顶层设计来引用这些模块了。

4.1.3 数字密码器的基本原理(黑体小四,1.5倍行距,段前0.5行)首先,密码器通过外接键盘输入数字密码,然后密码需要经过10线至4线编码器变成BCD码;接下来通过4位比较器与存储在系统中的预置密码进行比较,同时将输入的密码通过数码管扫描模块和数码管显示译码模块显示出来;最后将比较的结果DEP送到控制器模块中。

本次设计中的密码是串行输入的,每次分别与一个预置码比较。

可见,6个十进制的密码分别有24个端口送入,因此需要使用一个数据选择器来进行选择。

这里,数据选择器是一个4位的六选一数据选择器,它的两位选择信号是由一个模6的计数器来给出的,计数器的控制信号是由控制信号RESET和时钟信号CNP是由控制模块来提供的。

基于VHDL的电子密码锁

基于VHDL的电子密码锁

华南师范大学课程设计实验报告课程名称:可编程数字系统设计课程设计题目:电子密码锁姓名:程硕学院:物理与电信工程学院专业:理综一班年级:2011学号:一、设计原理用VHDL设计电子密码锁方案:作为通用电子密码锁,主要由 3 个部分组成:数字密码按键输入电路、密码锁控制电路和密码锁显示电路,作为电子密码锁的输入电路。

可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。

(1)密码锁输入电路包括时序产生电路、键盘检测电路、键盘消抖电路等几个小的功能电路。

(2)密码锁控制电路包括按键数据存储电路,恢复出厂密码、两次正确输入后可修改密码、密码核对,多次错误报警,清屏等几个小的功能电路。

(3)八段数码管显示电路主要将待显示数据的BCD码转换成数码器的八段显示驱动编码。

二、系统分析本次课程设计成功地设计了一个简单的数字电子密码锁,密码为 4 位。

将电子密码锁分为以下几个模块:按键消抖模块、密码锁逻辑控制模块和密码锁显示模块,实现了以下功能:(1)密码输入:KEY1按下一次,数码管上显示数字加一,相应位置输入密码加一(2)位置选择:KEY2按下一次,数码管选择位左移一位(3)密码确认:KEY3按下一次,比较外部输入密码与原密码,正确LED长亮,错误LED变暗,同时显示密码置0;(4)密码修改:正确输入两次密码后,按下KEY4一次,将当前输入设为新的密码;(5)清屏:KEY5按下一次,外部输入置0;(6)恢复出厂设置:连续按下KEY5三次后恢复出厂密码“1234”;三、程序设计1由于程序稍显庞大,故采取分层次设计的方法,顶层采用画图法设计,底层采用VHDL语言进行设计。

顶层电路图如图1所示图1Xiao_dou模块为按键消抖模块,main为密码锁控制模块,yima为数码管显示译码模块。

Set_shuma端口为数码管段选端口,用于选择数码管。

Led端口为led灯端口,key1,key2,key3,key4,key5为五个按键接口,show_shuma端口为数码管位选选择端口。

基于VHDL4位电子密码锁的设计

基于VHDL4位电子密码锁的设计

理工大学本科实验报告题目:基于VHDL 4位电子密码锁的设计课程名称:数字电路课程设计学院(系):电子信息与电气工程专业:电子英强班级:学生:学号:完成日期:2013.7.8成绩:2013 年7 月08 日题目:基于VHDL 4位电子密码锁的设计1 设计要求○1电子密码锁为4位8421BCD码,多于4位,密码只取前4位。

○2在输入密码错误,给出一个错误信号,有三次输入机会,若三次密码都输入错误,则给出一个报警信号,此后只能由密码管理员取消报警信号。

○3在输入密码正确的情况下,可以再次设定密码。

○4每次输入一个密码,将显示在7段数码管上,并依次左移。

○5每次输入密码的时候,按取消(cancel)键可以取消这次密码的输入,课重新输入4位密码。

2 设计分析及系统方案设计在实验室DE2开发板的条件下,考虑到key键只有4个,可以用switch开关来实现密码输入模块,用switch[9]~switch[0] 来实现数字9~0的输入,并通过译码模块将其转化为8421BCD码,由8421BCD码来驱动7段数码管作为密码锁的显示模块。

每按一个键,产生一个上升沿,给4个数码管做时钟,实现没输入一个数左移一位的效果。

为了实现密码输入多于4位,可以构造一个模为4的计数器来控制只取前4位密码。

共有三次输入密码的机会,可以构造一个模为3的计数器来控制。

密码比较模块:当按下确定键(yes)键,则将输入的密码和置密码进行比较。

密码输入模块:当输入密码正确时,再输入密码,利用重置密码键(set_psw)直接将其赋值给置的密码psw即可实现。

LED 显示模块,用来显示密码输入的正确与否。

若输入密码与置密码一致,则锁打开,输出一个高电平给LEDG ,绿灯亮,密码错误则输出一个高电平给LEDR ,红灯亮。

综合上述分析,本系统的硬件部分主要由密码锁输入译码模块、密码锁显示模块、密码锁控制模块、密码比较和重置模块和LED 显示模块五个部分组成。

基于vhdl电子密码锁的设计说明书

基于vhdl电子密码锁的设计说明书

《E D A仿真与实践实习》学院:信息科学与工程学院课题名称:硬件描述语言设计——基于VHDL的电子密码锁的设计班级:学生:学号:指导教师:1 引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

基于EDA技术设计的电子密码锁。

以其价格便宜、使用方便、安全性高、成本低、功耗低、易操作等优点,受到了人们的普遍关注。

而以可编程逻辑器件(FBDA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ5.1开发软件等为设计工具设计的电子密码锁,由于其能够实现密码输入、密码校验、密码设置和更改等功能,因此,能够满足社会对安全防盗的需求。

本设计的各个模块由相应的VHDL程序具体实现,并在QuartusⅡ5.1环境下进行了整体电路的模拟仿真,最终实现“密码锁控制器设计”的要求。

2 设计内容和要求2.1 设计内容:题目:电子密码锁内容:设计一个4位串行数字锁。

(1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。

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

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

(3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。

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

要求:(1)通过查阅相关技术资料,详细描述电子密码锁的基本原理。

(2)编写电子密码锁的Verilog HDL或VHDL程序,并仿真编译下载验证。

(3)给出完整的系统顶层模块图与波形仿真图。

3 设计分案密码锁控制器是硬件与软件的结合。

根据设计要求,决定以FBDA 芯片和VHDL语言设计此电子密码锁。

VHDL电子密码锁课程设计

VHDL电子密码锁课程设计

VHDL电子密码锁课程设计一、课程目标知识目标:1. 学生能理解VHDL语言的基本语法和程序结构,掌握利用VHDL进行数字电路设计的基本方法。

2. 学生能够描述电子密码锁的工作原理,了解其电路组成和功能模块。

3. 学生能够运用所学知识,设计并实现一个简单的电子密码锁程序。

技能目标:1. 学生能够运用VHDL语言进行代码编写,培养编程实践能力。

2. 学生通过课程设计,提高问题分析、解决能力,培养创新思维和团队协作能力。

3. 学生能够运用仿真软件对设计的电子密码锁进行功能验证,提高实际操作能力。

情感态度价值观目标:1. 学生通过课程学习,培养对电子技术和数字电路设计的兴趣,提高学习积极性。

2. 学生在课程实践中,树立正确的工程观念,认识到技术发展对社会进步的重要性。

3. 学生在团队协作中,学会尊重他人、沟通协作,培养良好的团队合作精神。

本课程旨在帮助学生将理论知识与实践相结合,通过电子密码锁的设计与实现,提高学生的编程能力、问题解决能力和团队协作能力,培养学生对电子技术的兴趣和正确价值观。

二、教学内容1. VHDL语言基础:包括VHDL的基本语法、数据类型、运算符、信号与变量、进程和顺序语句等,对应教材第1-3章内容。

2. 数字电路设计方法:介绍组合逻辑电路和时序逻辑电路的设计方法,包括触发器、计数器等基本电路的设计,对应教材第4-5章内容。

3. 电子密码锁原理:分析电子密码锁的工作原理,包括密码设置、验证机制和开锁逻辑等,对应教材第6章实例分析部分。

4. VHDL代码编写:根据电子密码锁的原理,指导学生进行VHDL代码编写,实现密码设置、验证和开锁功能,对应教材第7章编程实践部分。

5. 功能仿真与验证:教授学生使用仿真软件进行电子密码锁的功能验证,确保设计的正确性,对应教材第8章仿真技术部分。

6. 课程设计与实践:安排课程设计任务,指导学生分组进行电子密码锁的设计、编程、仿真和调试,培养学生实践能力和团队协作精神。

基于VHDL-4位电子密码锁的设计说明

基于VHDL-4位电子密码锁的设计说明

理工大学本科实验报告题目:基于VHDL 4位电子密码锁的设计课程名称:数字电路课程设计学院(系):电子信息与电气工程专业:电子英强班级:学生:学号:完成日期:2013.7.8成绩:2013 年7 月08 日题目:基于VHDL 4位电子密码锁的设计1 设计要求○1电子密码锁为4位8421BCD码,多于4位,密码只取前4位。

○2在输入密码错误,给出一个错误信号,有三次输入机会,若三次密码都输入错误,则给出一个报警信号,此后只能由密码管理员取消报警信号。

○3在输入密码正确的情况下,可以再次设定密码。

○4每次输入一个密码,将显示在7段数码管上,并依次左移。

○5每次输入密码的时候,按取消(cancel)键可以取消这次密码的输入,课重新输入4位密码。

2 设计分析及系统方案设计在实验室DE2开发板的条件下,考虑到key键只有4个,可以用switch开关来实现密码输入模块,用switch[9]~switch[0] 来实现数字9~0的输入,并通过译码模块将其转化为8421BCD码,由8421BCD码来驱动7段数码管作为密码锁的显示模块。

每按一个键,产生一个上升沿,给4个数码管做时钟,实现没输入一个数左移一位的效果。

为了实现密码输入多于4位,可以构造一个模为4的计数器来控制只取前4位密码。

共有三次输入密码的机会,可以构造一个模为3的计数器来控制。

密码比较模块:当按下确定键(yes)键,则将输入的密码和置密码进行比较。

密码输入模块:当输入密码正确时,再输入密码,利用重置密码键(set_psw)直接将其赋值给置的密码psw即可实现。

LED显示模块,用来显示密码输入的正确与否。

若输入密码与置密码一致,则锁打开,输出一个高电平给LEDG,绿灯亮,密码错误则输出一个高电平给LEDR,红灯亮。

综合上述分析,本系统的硬件部分主要由密码锁输入译码模块、密码锁显示模块、密码锁控制模块、密码比较和重置模块和LED显示模块五个部分组成。

基于VHDL的多功能电子密码锁设计

基于VHDL的多功能电子密码锁设计

学位论文诚信声明书本人郑重声明:所呈交的学位论文(设计)是我个人在导师指导下进行的研究(设计)工作及取得的研究(设计)成果。

除了文中加以标注和致谢的地方外,论文(设计)中不包含其他人或集体已经公开发表或撰写过的研究(设计)成果,也不包含本人或其他人在其它单位已申请学位或为其他用途使用过的成果。

与我一同工作的同志对本研究(设计)所做的任何贡献均已在论文中做了明确的说明并表示了致谢。

申请学位论文(设计)与资料若有不实之处,本人愿承担一切相关责任。

学位论文(设计)作者签名:日期:学位论文知识产权声明书本人完全了解学校有关保护知识产权的规定,即:在校期间所做论文(设计)工作的知识产权属西安科技大学所有。

学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。

本人允许论文(设计)被查阅和借阅;学校可以公布本学位论文(设计)的全部或部分内容并将有关内容编入有关数据库进行检索,可以采用影印、缩印或其它复制手段保存和汇编本学位论文。

保密论文待解密后适用本声明。

学位论文(设计)作者签名:指导教师签名:年月日论文题目:基于VHDL的多功能电子密码锁设计专业:本科生:(签名)___________指导教师:(签名)___________摘要随着社会的发展,安全防盗受到人们的重视。

而锁一直都是人们的防盗首选。

首先需能防盗且要实用方便。

在现今社会技术环境下电子密码锁已成一种趋势。

本设计采用FPGA 设计一个具有6位密码的电子密码锁并具有火灾报警和数字时钟功能。

论文的硬件部分以EP1C3T144C8芯片为核心的开发板、4*4矩阵键盘、数码管、发光二极管、蜂鸣器等组成。

软件以VHDL语言为基础在FPGA平台上设计。

电子密码锁由分频模块、消抖模块、键盘扫描模块、密码控制模块、密码显示模块组成,实现了密码清除、密码修改、暗文输入、明文输入、上锁、解锁、错误报警的功能;火灾报警模块具有温度显示、报警功能;数字时钟模块显示时钟并可调。

电子密码锁vhdl课程设计

电子密码锁vhdl课程设计

电子密码锁vhdl课程设计一、课程目标知识目标:1. 学生理解VHDL语言的基本结构和编程原理;2. 学生掌握利用VHDL进行电子密码锁设计的方法;3. 学生了解电子密码锁的工作原理及其在现实生活中的应用。

技能目标:1. 学生能够运用VHDL语言编写简单的程序;2. 学生能够独立完成电子密码锁的VHDL代码编写、仿真与验证;3. 学生具备分析电子密码锁程序问题及优化代码的能力。

情感态度价值观目标:1. 学生培养对电子信息技术领域的兴趣和热情;2. 学生形成良好的编程习惯,注重团队协作,善于沟通交流;3. 学生认识到电子密码锁在保护信息安全中的重要性,增强信息安全意识。

课程性质:本课程为实践性课程,以项目为导向,结合理论知识与实际操作,培养学生的编程能力和实际应用能力。

学生特点:学生为高年级电子信息技术专业,具备一定的电子基础和编程能力,对实际应用有较高的兴趣。

教学要求:教师需注重理论与实践相结合,引导学生主动参与,鼓励学生思考、提问、实践,提高学生的综合运用能力。

同时,关注学生的个体差异,给予个性化指导,确保每个学生都能达到课程目标。

通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。

二、教学内容1. VHDL语言基础:回顾VHDL的基本语法、数据类型、运算符、信号与变量等基础知识,确保学生掌握VHDL编程的基本框架。

相关教材章节:第一章至第三章2. 电子密码锁原理:讲解电子密码锁的工作原理、基本构成和设计方法,使学生了解电子密码锁在实际应用中的技术要求。

相关教材章节:第六章3. VHDL编程实践:a) 电子密码锁的VHDL代码编写:引导学生根据电子密码锁原理,编写相应的VHDL代码;b) 代码仿真与验证:教授学生如何使用仿真工具进行代码测试,确保程序的正确性和可靠性。

相关教材章节:第四章、第五章4. 程序优化与调试:分析电子密码锁程序中可能存在的问题,教授学生如何对程序进行优化和调试。

基于VHDL的电子密码锁设计

基于VHDL的电子密码锁设计
关键词: D M X L SI V D ;密码锁 E A; A P U I; H L
中图分 类号 :P 9 T31
文献标识 码 : B
文章 编号 :6 1 72(0 090 1.3 17 - 9. 1).130 4 2
Ab t c: o gwi ed v lp n f  ̄c o i c n lg , lcrn cp s wo dlc a etef c o f sr tAln t t e eo me t e t nct h oo y ee t i a s r kh v m d no a hh o r e o o h i
ue e D vl met iiF G t mu t n ols X L SI, ip s od ok a elh8 u s t Ad e p n k P A,e i li o iMA P U t s a w r c sl i c- E h e o ts h s ao t I h s l h t lg e 1
r 、 elw ott elw o rls eo eains l h rcei is n n i t c s、 p we st p rt i ec aa trs e ds o . y t h o h o o h o mp t a o
Ke wo d : DA;M AXP US I ;VHDL;P swo d1  ̄k y rs E L I as r xc .


< 工 0

的 电

D s g f E e t o i a s o d L c a e n V D e i n o l c r n c P s w r ok B s d o H L



韩团军
H r un n a aj t T u ( 陕西理工学院, 陕西 汉 中 7 30 ) 2 00 (h nx iesy f ehooy hax azo g 2 00 S ani vri T c lg,S ani nhn 30 ) Un to n H 7

基于vhdl语言的电子密码锁设计说明书

基于vhdl语言的电子密码锁设计说明书

EDA技术课程设计论文题目基于VHDL语言的电子密码锁设计课程名称 EDA技术实训院(系)电子通信工程学院专业班级学生姓名学号设计地点 EDA实验室指导教师设计起止时间: 年月日至年月日目录1 绪论 (3)1.1电子密码锁的功能要求 (3)1.2总体模块设 (3)1.3顶层文件设计 (4)2 各功能模块的具体实现 (5)2.1拨码输入模块 (5)2.2寄存器 (6)2.3密码比较模块 (8)2.4显示模块 (10)3 系统仿真 (15)4 硬件测试 (16)5实践心得及体会 (17)绪论1.1电子密码锁的功能要求1、设计六位密码(每位均可以是0~9任意数字)的电子密码锁,用四个拨码开关(k1~k4)输入,并通过七段数码管显示输入密码。

2、密码验证:按键设置验证开始,输入密码后, 密码正确时开锁,绿灯亮,红灯灭,表示开锁成功;当密码输入错误时,绿灯灭,红灯亮,表示开锁失败。

3、密码更改:密码验证正确后可以更改,并设置按键控制更改密码功能。

4、密码清除:密码输入过程中可以清除,并重新输入。

5、初始密码:预设初始密码为123456。

1.2总体模块设计通过拨码输入密码,送到密码校验电路,如果校验正确开锁,并执行显示在LED灯上,同时密码校验正确可以进行密码修改。

图11.3顶层文件设计本设计采用EDA技术和VHDL语言设计了一种按键输入密码并数码管回显,当输入正确密码时轰动绿灯亮、红灯熄灭表示开锁,而当输入错误密码时,红灯亮、绿灯熄灭表示关锁。

根据系统设计要求,系统设计采用自顶向下的设计方法。

顶层设计采用原理图设计方式,系统的整体组装设计原理图如图2所示。

它由拨码输入、寄存器、密码比较和显示灯四个模块组成。

其顶层文件设计如图:图2各功能模块的具体实现2.1拨码输入模块1、拨码输入模块包括设置密码并读取、输入密码、系统复位功能。

该模块中我们设置了6个按键,各个按键的功能分别为:按键1、2、3、4分别对应4位二进制密码输入、键5为密码确认键、键6为系统复位和密码读取按键。

一种基于VHDL的电子密码锁的设计与实现

一种基于VHDL的电子密码锁的设计与实现

一种基于VHDL的电子密码锁的设计与实现阐述了一种基于VHDL设计一种数字电子密码锁的原理和方法,所用EDA开发工具为ISE,仿真工具是Modelsim SE该密码锁具有高安全性、低成本、低功耗、操作简单等特点。

随着社会的发展和人们生活水平的提高,人们的安全意识也逐步加强。

密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢迎。

VHDL语言描述能力强,覆盖面广,抽象能力强,所以采用VHDL建立硬件模型。

Modelsim是业界最优秀的HDL语言仿真调试环境,提供最佳的仿真性能和调试特性,已经成为众多FPGA(Field Programable Gate Array)和ASIC(Application Specific Integrated Circuit)厂商首选的仿真调试工具。

一、功能描述密码锁的设计主要达到以下五个功能:(1)数码输入:按下一个数字键,其对应的数字就显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

此处密码设定为4位,在实际中为了增加安全性,可以设置为更多位。

(2)数码清除:当按下清除键时,清除前面输人的所有值,并显示为“0000”。

(3)密码激活:按下此键,将前面输入的四位数字设为密码,密码锁上锁。

4)密码更改:将输人的值作为新的密码。

5)电锁解除:按下电锁解除键,系统会将输人与密码进行检查核对,如果正确,电锁开启,否则打不开锁。

二、设计思路电子密码锁主要由数字密码输入电路、密码锁控制电路和密码锁显示电路三部分组成。

原理如图1所示,key board为键盘输入电路,ctrl为密码锁控制电路,采用七段数码管显示。

在keyboard模块中,elk为系统原始时钟脉冲,key-in为按键输入信号,elkscan是键盘扫描序列,仿真时用;data-n为数字输出,data-f为功能输出,flag-n为数字输出标志,flag-f为功能输出标志,elk-ctr为控制电路时钟信号,enlock为上锁信号,data-bed(15:0)是4位十进制数码的bcd码形式。

基于VHDL电子密码锁毕业设计-最终版

基于VHDL电子密码锁毕业设计-最终版

基于VHDL的密码锁设计Xxx(xxx 电信工程系通信工程专业,2006级2班,)指导教师:[摘要] 本设计采用自顶向下的数字系统设计方法,将数字密码系统分解为若干子系统,并且进一步细化为若干模块,然后用硬件描述语言VHDL来设计这些模块,并且分别进行软件和硬件仿真。

数字密码锁的设计电路主要包括3个模块,分别为密码输入模块、控制模块、密码显示模块,各模块由相应的VHDL程序具体实现。

该数字密码锁能够校验4位十进制数密码,且可以预置密码,显示输入密码,输入错误指示,解码有效指示。

这种密码锁具有体积小,功耗低,操作简单易于修改和维护,因此具有良好的应用前景。

[关键词]EDA 密码锁 VHDLDesign of The Password Lock Based on VHDLXXX(Grade 06,Class 2,Communication engineering ,Electronics and information engineering Dept.,)Tutor:XXX[Abstract]:This digital encrypted lock is designed with top-down approach.Firstly.the digital encrypted lock system is divided into several subsystems and several modules.Secondly,these modules are described with VHDL,and simulated using software and hardware.The circuit-desing of the Digital-Password-Lock mainly includes three modules. Digital input module, respectively, the control module, the password display module, every module is desingned by VHDL language , The outcome of simulation indicates that this digital encrypted lock can checkout 3 decimal passwords。

基于VHDL的电子密码锁设计

基于VHDL的电子密码锁设计

图2 密 码锁 存 模 块
实体为 : nt x mi et m i y s
p r a i d l gc v co ( o t 1 o t : s _ o i— e t r d wno l : ( nt 3 )
d u :u d lgc v co ( o t ) o t t t o i e t r3d wno I : o s 1
t[. A .】 30
11 1
Bf3 0卜 o 【. t .】


图 3 输 入 密 码 馈 存 模 块
图1密码锁结构图
不处 于报警状态 ,可设置密码 :如果处于报警状态 ,即当反馈信 号上 升沿 到来时 ,禁止安 锁。当R S T E E 为高 电平时 ,这 时锁存 器受控 于 S T  ̄钮 ,进入安锁状 态。其模块 图如图2 E UP 所示 。 ( ) 2 初始 密码 锁存模块 的输入 、 出。 输 初始密码锁存模块的输入 :

_
R S T:系统的复位信号 。当需要复位系统时 ( EE 一般在密码锁 自 动报 警之 后 ),只需使 R S T E E 变为 高电平 ( E E =l) R S T ’ 即可将整 个 系统复位 ,处 于等待输入 密码的状 态。 D 3 t :设置的 电子密码 锁的4 [.】 . ) 位二进 制原始密码 ,可以 自由的
bgn ei
p o e ss r.) r s(t t c a a
e i b gn
i a =0 te f tr ’’h n s t
k 3d wno‘ < a 3d wn oI ; ( o t 1 = ( o t J ) l
e ndi; f e m c s ; nd p e s d <=k: out

基于VHDL语言的8位数字密码锁设计

基于VHDL语言的8位数字密码锁设计

EDA 课程设计报告书课题名称 基于VHDL 语言的8位数字密码锁设计 姓 名 学 号 院、系、部 专 业 指导教师2016年6月20日※※※※※※※※※ ※※ ※※ ※※※※※※※※※※※2014级学生EDA 课程设计基于VHDL语言的8位数字密码锁设计1 设计目的(1)熟悉集成电路的引脚安排。

(2)掌握各芯片的逻辑功能及使用方法。

(3)了解面包板结构及其接线方法。

(4)了解电子密码锁的组成及工作原理。

(5)熟悉电子密码锁的设计与制作。

2设计方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。

作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。

拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。

数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。

液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED 数码管。

根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。

整个密码锁系统的总体总体框图如图2.1所示。

图2.1电子密码锁系统总体框图3功能模块3.1 输入模块3.1.1功能介绍输入时有三个拨码键控制输入,每个拨码各控制一位密码,对于其中一个拨码键每拨一次码按一次按键,表示输入一位,当输入四位时输出一位数,用“888”作为初始密码。

3.1.2输入模块与仿真图形单脉冲控制如图3.1如下图图3.1上图为单脉冲控制输入,当M给一上升沿信号将在PUL输出一位与之对应的高或低电平。

四位串行输入并行输出寄存器如下图3.2图3.2上图为4为串行输入并行输出寄存器,它由4个D触发组成,当reset为高电平时,每给一脉冲输入数据将向右移一位二值代码,它能同时复位。

基于VHDL密码锁的设计PPT

基于VHDL密码锁的设计PPT

完成弹跳消除原理图及仿真波形
输入模块仿真波形
密码锁控制电路


密码锁控制电路,完成对数字按键输入和功能按键 输入的响应控制。 它包括按键数据的缓冲存储电路,密码的清除、变 更、存储、激活电锁电路,密码核对,解锁电路 (开/关门锁电路)等几个小的功能电路数字按键输 入
控制模块仿真波形
密码锁显示电路的设计

可以看出当设定密码为1 5 9 0,当按下*时,ENLOCK出现高电 平,上锁成功。开始解码时,输入的解码值为6 7 0 1,按下#解 锁,密码错误,ENLOCK仍然保持高电平,证明锁没有被打开。 SOUND为按键音当每次有键被按下的时候就伴随着一个伴随音。 当密码输错的时候SOUND一直为高电平当输入正确密码的时候 SOUND才为低电平即报警音消除。接着输入开锁密码1 5 9 0, 按下#键确认,系统判断正确,ENLOCK端变为低电平,SOUND 端也同时变为低电平,证明开锁成功。

密码显示电路的设计比较简单,七段数码管显示 电路主要将待显示数据的BCD码转换成数码器的 七段显示驱动编码。
显示模块仿真波形

密码锁显示电路仿真波形对照仿真图可 以看到,当为1111110时,对应数码管的 a b c d e f为高电平,只有g为低电平, 即数码管显示为0。

密码锁顶层图
密码锁顶层仿真波形
基于VHDL密码锁的设计
指导老师: 作者:
设计要求

设计一个四位密码锁。 该密码锁系统:要求可以用4个数码管显示 并能对密码进行清除,变更等操作。

在MAX+ plus II 设计平台上完成全部编译和仿 真,并下载实现。
密码锁工作模式
密码锁整体设计原理图
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《E D A仿真与实践实习》学院:信息科学与工程学院课题名称:硬件描述语言设计——基于VHDL的电子密码锁的设计班级:学生:学号:指导教师:1 引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

基于EDA技术设计的电子密码锁。

以其价格便宜、使用方便、安全性高、成本低、功耗低、易操作等优点,受到了人们的普遍关注。

而以可编程逻辑器件(FBDA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ5.1开发软件等为设计工具设计的电子密码锁,由于其能够实现密码输入、密码校验、密码设置和更改等功能,因此,能够满足社会对安全防盗的需求。

本设计的各个模块由相应的VHDL程序具体实现,并在Quartus Ⅱ5.1环境下进行了整体电路的模拟仿真,最终实现“密码锁控制器设计”的要求。

2 设计内容和要求2.1 设计内容:题目:电子密码锁内容:设计一个4位串行数字锁。

(1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。

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

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

(3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。

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

要求:(1)通过查阅相关技术资料,详细描述电子密码锁的基本原理。

(2)编写电子密码锁的Verilog HDL或VHDL程序,并仿真编译下载验证。

(3)给出完整的系统顶层模块图与波形仿真图。

3 设计分案密码锁控制器是硬件与软件的结合。

根据设计要求,决定以FBDA 芯片和VHDL语言设计此电子密码锁。

用一片FBDA芯片实现,从而大大简化了系统结构,降低了成本,提高了系统的保密性和可靠性。

这种设计不仅简化了系统结构,降低了成本,更提高了系统的可靠性和保密性。

另外,采用可编程逻辑器件开发的数字系统,方便地升级和改进。

3.1 系统总框图本系统的硬件部分主要由密码锁控制电路、密码锁显示电路、LED显示电路、报警电路、密码更改与设置电路组成。

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

密码锁总框图3.2 密码锁的内部结构及主要功能3.2.1密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键;红绿灯指示门的状态,也就是密码校验结果,如果密码校验正确,绿亮起,否则如果密码校验错误红灯亮,并凤鸣器响,表明密码错误。

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

(4)密码修改:输入密码正确后4秒内按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功4 系统硬件电路4.1 密码锁的显示模块段数码管是电子开发过程中常用的输出显示设备。

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

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

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

反之则不亮。

共阳极性的数码管与之相反。

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

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

4.2 密码锁控制模块该模块的作用是将输入的密码(暂时寄存于ACC中)跟已经存储的密码(REG中的密码信息)进行对比,如果一样,则密码锁开锁。

而在通过密码验证后可以按按键设定密码。

在这里值得注意的是有一个密码“0000”为开始密码,如果改名密码了但是又忘记了密码,重新下载之后的初始密码只要输入的密码为“0000”则都可通过密码锁。

模块lock是整个设计的核心,它实现密码锁的逻辑功能。

在任何时候按动密码初始化按键内密码设置为程序初始化密码值(在本模块程序中此值为“0000”代码为4 位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯(緑灯)亮。

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

串行数字锁的报警方式是点亮指示灯(红灯),并使喇叭鸣叫,直到按下复位开关,报警才停止。

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

该4 位串行电子密码锁设置4 位二进制密码,要求锁内给定的密码是可调的,且设置方便,保密性好。

其具体操作分为输入密码和修改密码两部分4.2.1输入密码密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。

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

输入密码前先进行复位操作,再按着从密码最低位到最高位的顺序依次正确输入0000,会在数码管逐一显示。

经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。

同时,密码修改控制信号rw置低电平。

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

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

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

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

输入正确密码后,锁打开,同时,密码修改控制信号按键rw 置低电平,就可直接进行修改密码的操作。

修改密码实质就是用输入的新密码去取代原来的旧密码,按确定按键ok, 存储新密码时.5 VHDL程序设计密码锁控制器的各个功能模块都是通过VHDL语言来完成的。

本设计由密码锁显示显示模块、分频模块、密码输入及校验模块、报警模块、密码更改与设置模块几部分组成,各模块分工合作,最后达到密码锁控制器设计的要求。

表4-1 程序的管脚分配表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,reset,rw,clr: in std_logic;red,green,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:std_logic:='1';signal a,shuru:std_logic;signal count: std_logic_vector(2 downto 0):="000";signal temp: std_logic_vector(1 downto 0):="00";beginprocess(clk)variable m:integer range 0 to 10;beginif clk'event and clk='1'thenif m=9 thenm:=0;a<='1';elsem:=m+1;a<='0';end if;end if;end process;process(clk,start,ok,clr,rw,reset)beginif clk'event and clk='1'thenif reset='0' thenred<='1';green<='1';beep1<='1';open1<='0';keyin<="0000";shuru<='0';co unt<="000";end if;if start='0' thenshuru<='1';end if;if rw='0' and open1='1'thenshuru<='1';count<="000";end if;if clr='0' thenkeyin<="0000";count<="000";shuru<='1';elsif a='1' and shuru='1' thenif key1='0' thenkeyin<=keyin(2 downto 0)&'0';elsif key2='0' thenkeyin<=keyin(2 downto 0)&'1';end if;if count="011" thenshuru<='0';count<=count+1;elsecount<=count+1;end if;end if;if ok='0'and open1='0' thenif (keyin=password)thenred<='1';green<='0';open1<='1';elsered<='0';green<='1';beep1<='0';open1<='0';end if;end if;if ok='0'and open1='1'thenpassword<=keyin;end if;end if;end process;process(clk,start,ok,clr,rw,reset)variable g:integer range 0 to 49999999;beginif clk'event and clk='1'thenif g=49999999 theng:=0;elseg:=g+1;end if;if g<=24999999 and beep1='0' thenbeep<='0';elsebeep<='1';end if;end if;end process;process(clk)variable n:integer range 0 to 50000;beginif clk'event and clk='1'thenif n=49999 thenn:=0;if temp="11"thentemp<="00";elsetemp<=temp+1;end if;elsen:=n+1;end if;if 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" ;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 ;else。

相关文档
最新文档