基于Verilog-HDL的数字密码锁的设计_第1页
基于Verilog-HDL的数字密码锁的设计_第2页
基于Verilog-HDL的数字密码锁的设计_第3页
基于Verilog-HDL的数字密码锁的设计_第4页
基于Verilog-HDL的数字密码锁的设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 成绩课程设计报告题 目:基于Verilog HDL的数字密码锁 的设计 学生姓名: 江留胜 学生学号: 系 别: 电气信息工程学院 专 业: 电子信息工程 届 别: 2013届 指导教师: 马立宪 基于Verilog HDL的数字密码锁的设计 学 生:江留胜指导教师:马立宪电气信息工程学院 电子信息工程1课程设计的任务与要求1.1 课程设计的任务设计一个6位的数字密码锁,利用Verilog HDL语言来实现,并使用Quartus进行仿真与调试。1.2 课程设计的要求设计一个简单的数字密码锁,密码为6位,其功能:1、在内部设置密码,其密码用6位十进制数表示。2、输入密码时,每次输入一位数,输入

2、后按#进行确认。3、当输入的密码顺序与设置的密码一致时,密码锁打开,否则,则报警。4、具有重置密码的功能。输入密码正确后按*号键输入要重的密码,按#号键确认密码的重置,连续输入两次,则密码重置成功。使用Verilog HDL语言编写密码锁的开锁过程的程序,并借助Quartus软件对其进行仿真,观察实验波形。1.3 课程设计的研究基础(设计所用的基础理论)密码锁就是要有一定的自我保护功能,并且能够定时更新防止破译的危险。密码锁控制器是硬件与软件的结合。Verilog HDL是一种优秀的硬件描述语言,它与C语言有许多相似之处,并继承和借鉴了C语言的多种操作符和语法结构,有C语言基础的人很快就能够学

3、习并使用该语言。在本次计中,系统开发平台为Quartus。Quartus界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在Quartus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。在本次设计中,采用的硬件描述语言是Verilog HDL。Verilog HDL也是目前应用最为广泛的硬件描述语言,并被IEEE采纳为IEEE#1064-1995标准。Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合、仿真验证和时序分析。Verilog HDL适合算法级(

4、Algorithm)、寄存器传输级(RTL)逻辑级(Logic)、门级(Gate)和版图级(Layout)等各个层次的电路设计和描述。使设计者在进行电路设计时不必过多考虑工艺实现的具体细节,Verilog HDL只需要根据系统设计的要求施加不同的约束条件,即可设计出实际电路。利用计算机的强大功能,在EDA工具的支持下,把逻辑验证与具体工艺库相匹配,将布线及延迟计算分成不同的阶段来实现,减少了设计者的繁重劳动。2 数字密码锁系统方案制定2.1 方案提出(以方框图模块化设计的形式给出至少2个方案,并简要说明)设计方案一: 采用数字电路控制,用以CMOS构成的数字逻辑电路作为密码锁的控制核心,用ve

5、rilog HDL硬件描述语言来进行仿真。设计一个简单的数字密码锁,密码为6位,其功能:在内部设置密码,其密码用6位十进制数表示。输入密码时,每次输入一位数,输入后并进行确定。若输入密码位与对应位相同,则通过并继续输入密码,直至输入结束,最后开锁。若有一位与对应密码位不同则报警,结束输入,若要开锁需重新输入。其流程图如下:输入:数值09n=1输入一位并确认与内置密码一致报警n+1=6结束是开锁成功否是否开锁失败 方案一的流程图方案二:采用以AT89C51单片机为核心控制的方案。能完成开锁,修改密码,密码错误报警,LCD显示密码等基本的密码锁功能。其主要具有如下功能: (1)密码通过键盘输入,若

6、密码正确,则将锁打开。 (2)报警功能。密码输入错误密码则蜂鸣器发出报警。 (3)可以进行密码的重置。方案二的框图2.2 方案比较基于单片机的实现方案原理复杂,调试比较麻烦,所用到的器件比较多,而用数字电路的实现过程相对而言比较简单,软件易于实现,容易调试。2.3 方案论证随着社会物质财富的日益增长,安全防盗已成为全社会关注的问题。基于EDA技术设计的电子密码锁,以其价格便宜、安全可靠、使用方便,受到了人们的普遍关注。而以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDE)为主要表达方式,以Quartus开发软件和GW48EDA开发系统为设计工具设计的电子密码锁,由于其能够实现

7、数码输入、数码清除、密码解除、密码更改、密码上锁和密码解除等功能,因此,能够满足社会对安全防盗的要求。2.4 方案选择综合以上情况,本次设计采用第一种方案。3 数字密码锁系统方案设计3.1各单元模块功能介绍及电路设计1、密码重置模块:该电路的的具体功能是:输入密码正确后按*号键输入要设置和更改的密码,按#号键确认密码设置与更改,连续输入两次,则密码设置成功。按要求,该部分要用到I2C总线E2PROM 器件AT24C08。它的容量为10248(8Kbytes),支持2.7V5.5V工作电压。当工作电压为5V的时候,其接口速度可以达到400kHz。实验箱上的供电为3.3V,所以其接口速度最高只能达

8、到100kHz。AT24C08与外部的I/O接口引脚连接电路如图所示。在本系统中I2CSCL、I2CSDA分别与FPGA连接。AT24C08与外部的I/O接口引脚连接电路2、键盘输入模块:键盘扫描过程:在本系统中采用34的键盘,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出3行为高电平,然后输出4列为低电平,在读入输出的3行的值,通常高电平会被低电平拉低,如果读入的3行均为高电平,那么肯定没有按键按下,否则,如果读入的3行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然

9、后在输出3行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。本实验箱上的34矩阵键盘的电路原理如图所示。34矩阵键盘电路原理图3、报警电路:根据设计要求,当密码输入连续三次错误,则报警电路连通,其中报警声要求为高声2.5KHz,低声1.25KHz交替报警,交替周期为1s(1Hz时钟,需要对系统时钟进行10K分频)。在整个试验平台的下方有两组跳线,位于左边的一组跳线用来选取喇叭的声源信号。当跳线位于左边的时候喇叭的声源来自FPGA,位于右边时声源来自AIC23模块的输入信号。位于右边的一组跳线用来控制喇叭的开关,当跳线位于左边时喇叭为开的状态,位于右边时为关的状态

10、。要使喇叭发声请确认喇叭处于开的状态,并且声源是信号输入。扬声器(喇叭)电路图如图所示:扬声器电路图4、密码锁处理单元电路如下图为处理单元逻辑结构图由6位的拨动开关设置的数码作为6选1多路选择器的数据输入,3位二进制计数器的输出作为多路选择器的选择数据输入。多路选择器的输出与BIT开关产生的数码相比较,两者相同时输出B为1,不同时为0.。复位后,控制单元发出CLR命令使计数器清零,在控制信号的作用下,多路选择器的输入数据从低位到高位逐位被选择出来。控制单元根据处理电路反馈回来的状态信息,获得各次比较的结果。开锁密码位数的确定由比较器完成,当输入数码的位数为8位时,比较器输出M为1,否则为0。处

11、理单元逻辑结构图5、密码锁控制模块控制器实际上是一个有限状态机,下图为它的状态流程图。 它一共有六个状态: 准备状态 S0、密码输入状态 S1、密码设置状态 S2、确认状态 S3、开锁状态 S4和报警状态 S5。报 警OPEN准 备确 认BTRYREAD READ准备状态S0:系统开锁、报警或上电后进入准备状态,这时系统不接收除READY信号外的任何输入信号。 密码输入状态S1:在该状态下,如果按下“READY”则保持该状态不变;如果按下“OK”和“OPEN”则转到报警状态;如果有数据输入,则控制器输入一个DATA- IN 信号,输出RD 和CNP1 信号,从RAM中读取密码进行比较,同时使计

12、数器加1 ;检查计数是否计数到100 ,若CNTe1 有效,表示已经接收到四个正确的密码,可以转入下一个状态,否则返回本状态,继续接收其它密码。 检查Dep信号状态,Dep=1则密码正确,进入确认状态,反之则输出CNP2 信号进入报警状态;如果仍然有数据输入,则说明输入密码错误,则输出CNP2 信号进入报警状态。密码设置状态S2:在确认状态下按“SET”键进入该状态,EN 信号有效。该状态首先由控制器发RESET-CNT信号;检查是否有数据输入,如果没有则等待;若有数据输入,控制器则输出WR 和CNP1信号,向RAM发出信号,并使计数器加1 ,检查计数器是否计数到100 ,若CNTe1有效,表

13、示已经接收到四个正确的密码,进入确认状态,否则返回本状态,继续接收其它密码。 确认状态S3:输入密码正确后进入该状态。密码输入得到确认才可以进入开锁状态,密码设置完毕后,只有得到确认才可生效,并返回准备状态。 开锁状态S4:输入密码确认后进入该状态,此时按“OPEN”键,控制器便发出SLT信号开锁并返回到准备状态。 报警状态 S5:每次进入该状态首先检查计数器 2 是否计数到 01。若输入错误,则 CNTe2 有效,控制器输出 SLB 信号,报警电路报警。3.2电路参数的计算及元器件的选择I2C总线E2PROM 器件AT24C08实验箱供电电源5V导线若干键盘按键与编码的对应表编码000000

14、010010001101000101按键字符012345编码011001111000100110101011按键字符6789#*控制状态转换表3.3 特殊器件的介绍通常在一个键盘中使用了一个瞬时接触开关,并且用如图2 所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的I/O 口的输入将被拉低得到逻辑0。图2 简单键盘电路但是开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个

15、球。弹起效果将产生如图3 所示的好几个脉冲。弹起的持续时间通常将维持在5ms30ms 之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。图3 按键抖动键盘上阵列这些开关最有效的方法(当需要5个以上的键时)就形成了一个如图4所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。 图43.4

16、 系统整体电路图1、系统电路组成:密码锁处理电路密码锁控制电路键盘输入电路报警电路密码重置电路2、密码锁的系统结构框图:数值比较器数位比较器密码设定清零BCD码修改器计数器C3计数器C2计数器C1控制器处理器AlterOpenMBOutResetResetCpBM处理器1处理器201231开锁984567ErrorOk4 数字密码锁系统仿真和调试4.1 仿真软件介绍Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有

17、的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simul

18、ink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承

19、了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 4.2 系统仿真实现设计程序:module Lock_RTL(OPEN,ERROR,nRESET,TRY,READ,BIT,CLK);input nRESET,TRY,READ,BIT,CLK;output OPEN,ERROR;reg OPEN,ERROR;wire nRESET,TRY,READ,BIT,CLK;parameter S0=6b, S1=6b, S2=6b, S3=6b, S4=6

20、b, S5=6b;parameter password=8b;reg 5:0CurrentState,NextState;reg nCLR,CNT;wire B,M;reg 2;0Q;wire A2,A1,A0;wire 7:0D;reg Mux_out;always (posedge CLK or negedge nRESET)begin: stateregif (nRESET)begin CurrentState=S0;nCLR=1b0;endelse begin CurrentState=Nextstate;nCLR=1b1;endend/ stateregalways (BIT or

21、READ or TRY or B or M or CurrentState)begin:fsmOPEN=1b0;ERROR=1b0;CNT=1b0;case(CurrentState)S0:begin NextState=S1;endS1:begin CNT=(TRY&READ=1b1); if(TRY) NextState=S5; else if(READ) NextState=S1; else if(B)NextState=S5;else if(M) NextState=S2; else NextState=S3;endS2:beginif (READ) =S5;else if(READ)

22、 NextState=S2;else NextState=S4;endS3:beginNestState=S1;endS4:beginOPEN=1b1;NextState=S4;endS5:beginERROR=1b1;NextState=S5;enddefault:NextState=S0;endcaseendalways (posedge CLK or negedge nCLR)begin:counterif (nCLR) Q=3b000;else if(CNT=1b1)Q=Q+1b1;else Q=Q;endassign M=(Q=3b111);assignA2,A1,A0=Q;assi

23、gn D=password;always (A2 or A1 or A0 or D)begin : Muxltiplexercase(A2,A1,A0)3d0:Mux_out=D0;3d1:Mux_out=D1;3d2:Mux_out=D2;3d3:Mux_out=D3;3d4:Mux_out=D4;3d5:Mux_out=D5;endcaseendassign B=( Mux_outBIT);endmodule4.3 系统测试(要求测试环境、测试仪器、测量数据)测试环境:Windows操作系统、Quartus开发平台测试仪器:EDA实验箱、Quartus软件下的仿真仿真时序图:正确开锁的时序

24、图错误开锁的时序4.4 数据分析(对比系统功能及参数与设计要求是否相符)由系统的时序仿真图可以看出,当我们输入的密码数字和系统原始预设的密码顺序一样时,我们所设计的密码锁可以正确开锁,而当输入密码与原始预置密码不一样时,系统将发出警报,无法进行开锁,因此我们所设计的系统达到了设计的要求。5 总结5.1 设计小结本次设计是以FPGA 为设计载体,以硬件描述语言 Verilog HDL为主要表达方式,以 Quartus开发软件和GW48EDA开发系统为设计工具,设计了一种具有密码输入、密码重置、正确开锁和错误报警等功能的电子密码锁。同时阐述电子密码锁的工作原理和软硬件实现方法,在Quartus环境

25、下进行电路的模拟仿真,反馈结果可以验证程序设计的可行性与可靠性,对该电子密码锁进行时序仿真和硬件验证的结果表明:该电路能够实现所要求的功能。设计的密码锁控制器设置的是六位密码,在系统复位后,用户按键6次,输入一个完整的密码串,输入完后,系统会进行比对,如果发现密码吻合,则开门,否则系统报警,直到输入正确的密码,报警声停止。这样的设计可以很好的满足人们的日常需求。同时,密码锁还具有密码修改功能,方便操作,使得密码锁的使用更加安全、便捷。5.2 收获体会在软件、硬件设计和仿真过程中遇到不少问题,但最终还是把它们解决了,使得设计符合要求。除了自己思考设计之外,这与和本组成员的同心协力的合作与讨论是分不开的的。相互的探讨使得我们的思路更加开阔,解决问题的办法也更多。总之,此次课程设计让我收益良多,同时因为有了实践操作,对基于VerilogHDL的现代数字电路与系统课程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论