密码锁_OK概念.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的电子密码锁的设计 一、设计内容与要求 设计一个密码锁,密码为一个8位的十六进制数,密码固化在锁内 用户有三次输入密码的机会,如果正确,则开锁 如果三次都输入错误,密码将报警并进入锁定状态 用户在较长的一段时间内不能再次输入密码,警报时间过后,密码重新回到等待状态,用户可以再次输入密码。 二、所需设备 Quartus II 开发软件 1套 T-Rex C1 Development Kit 设计思想 可通过FPGA有限状态机来实现。 设计有限状态机最开始的工作时要确定电路,包括哪些状态,比如某个电路包括四个状态,S0,S1,S2,S3。然后对所有状态给出一个状态编码,比如为状态S0赋予编码00,为状态S1赋予编码01,为状态S2赋予编码10,为状态S3赋予编码11。状态编码是状态的标识,保存在寄存器当中,对于此编码形式,只需一个2位的寄存器就可以了。 FSM Encoding Style 主要有: Binary Encoding One Hot Encoding Gray Encoding 二进制与一位热码的特性比较: 状态机可以认为是组合逻辑和寄存器逻辑的特殊租户,它一般包括两个部分:组合逻辑部分和寄存器逻辑部分。寄存器用于存储状态,组合电路用于状态译码和产生输出信号。状态机的下一个状态及输出,不仅与输入信号有关,而且还有寄存器当前所处的状态有关。 根据输出信号产生方法的不同,状态机可以分成两类:Mealy型和Moore型。Moore型状态机的输出只是当前状态的函数,而Moore型状态机的输出只是当前状态的函数,而Mealy型状态机的输出则是当前状态和当前输入状态的函数。其原理如下两图: 四、设计流程: 本次密码锁的设计,有限状态机应该包括以下状态:密码为输入前的等待状态、输入密码时的等待状态、输入密码正确时的通过状态、输入密码错误时的警报状态。 其中当密码输入时又可包括以下状态,正常输入状态、异常输入状态(包括命令状态)、输入确认状态。 状态编码 状态编码主要有二进制编码、格雷编码和一位独热编码等方式。 格雷编码时,相邻状态每次只有一个比特位产生变化,这样减少了瞬变的次数,也减少了产生毛刺和一些状态的可能。 采用一位独热编码,虽然多用了触发器,当可以有效节省和简化组合电路。对于寄存器数量多而逻辑相对缺乏的FPGA器件来说,采用一位独热编码可以有效提高电路的速度和可靠性,也有利于提高器件资源的利用率。 将产生状态的组合逻辑电路和用于保存状态的寄存器分别写在不同的always块中。其中主要包括:输出控制部分、警报计时部分、锁打开后的计时部分、比较密码部分、记录密码部分和记录错误次数的部分。 编写代码 功能仿真和时序仿真 引脚配置与下载 五、程序清单: module passwd_lock( clk, resetb, cmd, alarmed, passed, ); input clk; //输入时钟信号 input resetb; //输入复位信号 input [4:0] cmd; //输入命令信号 output alarmed; //输出警报信号 output passed; //输出通过信号 wire clk; wire resetb; wire [4:0] cmd; reg alarmed; reg passed; //输入与输出的声明部分,其中,clk为输入的时钟信号,resetb为密码复位的输入信号,cmd为输入命令,需注意的时,cmd并不是总在表示密码,也表示密码的间隔,如当输入4位密码后需要一个确认“enter”信号,当密码输入错误时,需要取消“cancel”信号,这些信号之间在设计中通过有限状态转换机实现。 parameter PASSWORD=16d1234;//盛放密码的参数 reg [15:0] password;//输入数值盛放寄存器 //输入的数字编码 0~9,enter,cancel reg one=5b10001,。 two=5b10010, three=5b10011, four=5b10100, five=5b10101, six=5b10110, seven=5b10111, eight=5b11000, nine=5b11001, zero=5b10000,//改成0

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档