版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、cpld/fpga 课程设计项目名称:基于 fpga 的数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016 年 6 月 4 日摘 要本设计是基于现场可编程门阵列 fpga 器件的电子密码锁的设计。通过 verilog 语 言控制 4 位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为 4 位数:0000,当输入正确时输出为 1、输入错误时输出为 0。同时输出输入的次数,当 3 次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。本设计利用 modelsim 软件编写 verilog hdl 硬件描述语言程序以实现输入密码、 开锁、报警功能。 通
2、过仿真调试,利用可编程器件 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 t
3、he 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 ala
4、rm 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 co
5、mbination lock;verilog hdl;目 录摘 要.abstract.第 1 章 所选项目的研究意义. 01.1 概述. 01.2 数字密码锁的研究现状. 11.2.1 数字密码锁的应用. 21.2.2 数字密码锁的困难. 21.3 本文研究意义. 21.4 设计思路. 3第 2 章 设计方案. 42.1 功能定义. 42.2 模块设计. 4第 3 章 系统软件设计. 63.1 设计概括. 63.2 设计流程. 63.2.1 密码存储模块. 63.2.2 编码模块. 73.2.3 比较模块. 73.3 主要程序模块. 8第 4 章 软件仿真. 134.1 仿真过程. 134.2
6、 仿真结果. 154.3 仿真分析. 154.3.1 仿真过程. 16结 论. 17参考文献. 18附录 1程序代码 . 19项目创新及特色. 25第 1 章 所选项目的研究意义1.1 概述数字密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保 密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。在人们平时生活中,贵重物 品或个人信息资料大多数都已加锁的方式进行保管。如果使用传统的机械锁进行对物品 及资料的保管,那么人们要携带很多把钥匙在身上,携带非常不便,而且钥匙丢失将对 物品保管的安全性大打折扣,也为人们的生活及心情带来不便。随着生活质量的不断提高,加强家庭防盗
7、安全变得非常重要,但传统机械锁的构造 过于简单,很容易被打开,从而降低了安全性。数字密码锁因为它的保密性很高,安全 系数也非常高,再加上其不需要携带避免了丢失的可能,省去了因钥匙丢失而需要换锁 的麻烦,受到了越来越多的人的欢迎。随着人们对高科技产品也越来越推崇,在当今社 会科技的高度集中和创新,人们对日常生活中保护自身及财产安全的物品非常追捧,对 其安全性的要求也非常的高。为了达到人们对锁具安全性的高要求,加强锁具的安全保 密性,用密码锁来取代传统机械锁的锁具是必然趋势。数字密码锁比传统机械锁具更加 的安全1 。锁具发展到现在已有若干年的历史了,锁是用于保管物品的器件,用来关住某种器 物的一种
8、器具。其必须用钥匙才能打开。所以在人们的日常生活中离不开锁,这使得我 们队锁具的结构和原理也多少有些了解,因此,就有了不借用钥匙就打开锁的方法。锁 具都存在致命的弱点,比如锁芯采用常见的铜、锌、铝等材料容易遭到暴力破坏,还有 就是锁具制作工艺的技术落后 ,从而导致防盗功能缺失 ,目前,国内市场的锁具,实际上 都不具备真正的防盗功能 ,在惯偷面前用几件简单工具就可以轻松打开这些锁 ,其实不是 他们多么的高明,而是一般锁具的原理过于简单 ,面对这一社会现状,新时代提出了锁 具必须改革的迫切需求2。安全防盗已成为人们所关注的焦点。然而传统机械弹子锁安全性低,密码量少且需 时刻携带钥匙使其无法满足一些
9、特定场合的应用要求,特别是在人员经常变动的公共场 所,目前使用的电子密码锁主要有两个方案:一是基于单片机用分立元件实现的,二是 通过现代人体生物特征识别技术实现的,前者电路较复杂且灵活性差,无法满足应用要 求;后者有其先进性但需考虑成本和安全性等诸多因素。基于此,本文设计了一种新型 电子密码锁,采用 fpga 芯片,目前以硬件描述语言(verilog 或 vhdl)所完成的电 路设计,可以经过简单的综合与布局,快速的烧录至 fpga 上进行测试,是现代 ic 设 计验证的技术主流 3。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如 and、or、xor、not)或者更复杂一些的组合功能
10、比如解码器或数学方程式。在大多数的 fpga 里面,这些可编辑的元件里也包含记忆元件例如触发器(flipflop)或者其 他更加完整的记忆块。fpga 一般来说比 asic(专用集成芯片)的速度要慢,无法完成复杂的设计,而且 消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序 中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的 fpga。因为这 些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的 fpga 上完成的,然后 将设计转移到一个类似于 asic 的芯片上。另外一种方法是用 cpld(复杂可编程逻辑器件备)4。因此,随着电子技术的飞速发展数字
11、密码锁的产生是必然,其在使用的方便性、防 盗报警功能、智能管理等方面都是传统机械锁无法比拟的,在对安全性有较高要求的设 施及场所中得到了广泛应用。1.2 数字密码锁的研究现状现如今,随着高新技术的涌入,对传统锁具进行了很大的的改进,锁具的防盗性能 得到了充分的加强,由传统锁具改进的智能密码锁已成为现如今安防系统中最强大的组 成部分,它的作用是每一个传统机械锁具无法取代的。由于其在市场中巨大的潜力,国 内外许多的公司都投入很大的人力、物力来从事智能数字密码锁的研究开发生产。目前,市场上比较先进的智能电子密码锁分别有: ic 卡电子密码锁、射频卡式电 子密码锁、红外遥控电子密码锁、指纹识别电子密码
12、锁和瞳孔识别电子密码锁等。 ic 卡电子密码锁成本低,体积小,卡片本身无须电源等优点占领了一定的市场份额,但是 由于有机械接触,会产生接触磨损,而且使用不太方便,在一定程度上限制了它的应用; 射频卡式电子密码锁是非接触式电子密码锁,成本也不太高,体积跟 ic 卡密码锁相当, 卡片使用感应电源,重量很轻,技术成熟,受到了广泛的欢迎,但是与 ic 卡电子密码 锁相比,成本偏高;指纹识别电子密码锁和瞳孔识别电子密码锁可靠性很高,安全性是目前应用系统中最高的,但是成本高昂,还没进入大众化使用阶段5。在国外,美国、日本、德国的电子密码锁保密性较好,并结合感应卡技术,生物识 别技术,使电子密码锁系统得到了
13、飞跃式的发展。这几个国家的密码锁识别的密码更复 杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式密码锁,指纹式密码锁, 虹膜密码锁,面部识别密码锁,序列混乱的键盘密码锁等各种技术的系统,它们在安全 性,方便性,易管理性等方面都各有特长,新型的电子密码锁系统的应用也越来越广。1.2.1 数字密码锁的应用密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具 有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步6。随着大规模集成电路技术的发展,出现了带微处理器的智能密码锁,它除具有
14、电子密码锁 的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛7.随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、ic 卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和 有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存 在容易机械损坏,ic 卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上 限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流8。1.2.2 数字密码锁的困难1.verilog hdl 语言的程序设计和控制函数的调用编写
15、verilog hdl 语言时,输入 4 位密码未能和程序预设密码进行比较,无论密码 输入正确与否,锁均不打开,而且报警计数器也不进行 +1 操作。在程序编译时,函数 调未能调用成功。2.报警程序模块的设计计数器+1 操作进行时,系统中断,从而导致系统重置,计数器又从 0 开始进行+1 操作,导致系统不报警。3.用 modelsim 仿真软件波形时,为准确输出正确波形在程序编写时,未考虑初始密码,导致波形错误。1.3 本文研究意义电子杂志、报刊经常刊登有密码开关、密码锁这样的电路,大多数是使用常用的数 字电路,如 cd4017,然后通过不同的连接方式实现密码控制功能。这种电路的特点就 是密码修
16、改只能通过改变电路的连接来实现,密码很容易被破解,电路复杂,故障率高。 本制作是针对这些电路而设计的,将以往的以单片机实现设计改为可编程器件 fpga 利 用 verilog hdl 编程实现电子密码锁的设计。这种设计移动方便。基于 fpga 的电子密 码锁具有保密强、灵活性高、适用范围广等特点,它在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又 可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太 简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。 当然,密码又不能太复杂,太复杂了可
17、能自己都糊涂了,或者输入密码操作成功率低, 造成使用不便。因此,为了发扬优点、克服弱点,本设计采用“任意设定数字密码”技 术使得被授权人可以根据自己的需要或喜好设定密码,常用常新,在输入密码的过程中, 当连续三次出现密码错误时,则系统会长时间报警不止,这时必须按复位方可停止。本设计的 fpga 电子密码锁的特点是:体积小、功耗低、价格便宜、安全可靠,维护 和升级都十分方便 ,具有较好的应用前景。它与传统锁具的不同之处在于:它与可编程 逻辑器件实现系统的设计,应用简洁清晰的 verilog hdl 语言实现设计编程思想,能够 实现适时、智能控制管理功能,特别是在系统的扩展上有很好的优势9。1.4
18、 设计思路基于 fpga 实现的数字密码锁设计中,主要包括 4 大部分:fpga 器件、密码存储、 译码电路、报警电路。其中 fpga 为主控部分,将消除同步模块、计数器模块、控制器 模块都用 verilog hdl 语言写入 fpga 中代替了传统复杂的电路设计,也省去了很多繁 琐的调试步骤。只有这些模块在 modelsim 平台通过了仿真,就可以实现传统电路模块 的功能。本次设计的数字密码锁主要是利用软件的编程来对主控模块的实现。当通过按 键输入密码后,就把输入的信号送给 fpga,fpga 经过里面个模块的处理后传给了各输 出电路模块。密码存储器主要是用来存储密码和防止电源掉电而导致密码
19、锁的数据丢失 和提高密码锁的安全性。对于本次密码锁的初步设计,首先要有一个大体的思路。本次设计采用 fpga 为核 心器件,通过 modelsim 对其进行程序仿真,组成的完整系统。程序通过采集输入信息, 与 fpga 的存储值进行比较,如果密码正确,则开锁电路打开;如果密码错误,锁不打 开,并且计数器进行+1 操作;累计 3 次输入密码错误,给警报一个高电平,让其报警。第2章 设计方案2.1 功能定义数字密码锁具体功能如下:(1) 用户初次使用,可按下am_en键进行密码设置。(2) 开锁时一次完整的输入密码,当输入的密码与设置的密码相同时密码锁打开, 即 lockopen 为高电平,连接的
20、绿灯亮;否则密码锁关闭,即 warn_en为高电平,连接的 红灯亮。(3) 当输入错误的次数3时,密码锁强制自动关闭。表 2-1 数字密码锁的 fpga 引脚定义inputinputinputrstam_encipher_in复位信号密码设置键密码输入高电平有效高电平有效3:0inputoutputoutputenterreturnwarn_en确定键清除键密码错误或输入次3高电平有效高电平有效高电平有效2.2 模块设计2.2.1 密码设置或修改模块用户初次使用密码锁时可通过按 am_en 键进行密码设置,先输入初始密码 0000, 则进入密码设置,高电平有效。密码是二进制的四位数字密码。以后
21、修改密码时,按 am_en 键,然后输入旧密码,正确时方可进入密码设置选项,否则重新开始。1.密码输入模块开锁时,一次完整输入密码后,按下 enter 键进行密码验证,高电平有效,看输入 的数字是否等于原密码的值,密码正确时开锁,否则关闭。当输入有误时,按下 return 键,清除输入的数字,重新输入2.密码输入次数计数模块开始时 count=0,当输入密码按下 enter 键时且密码错误时 count+1,当 conut3 时,密码锁强制自动关闭。当输入的密码正确时,count 不计数。3.显示模块当密码输入正确时,lockopen 为高电平,绿色发光二极管灯亮,当密码输入错误时 或者当 c
22、ount3 时,warn_en 为高电平,红色发光二极管灯亮。第 3 章 系统软件设计3.1 设计概括本系统主要集中在以 fpga 以核心外围扩展设计,整个电路主要电子锁具的组成框 图是以可编程逻辑器件(fpga)为核心,配以相应硬件电路,完成密码的设置、存贮、 识别和驱动电磁执行器并检测其驱动电流值、报警等功能。 fpga 接收键入的代码,并 与存贮在闪存中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不 正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则通过 fpga 产生报警。3.2 设计流程实现系统大量逻辑电路的集成,在设计中使用了现场可编程逻辑门阵列
23、器件 (fpga)。fpga 主要实现以下逻辑功能:键盘处理、设置密码、解码开门以及报警等 控制功能10。3.2.1 密码存储模块在数字密码锁中,密码存储模块是它的密码规定电路,其功能有两个:一个是将存 储的密码输出到比较模块中与外部输入的数字进行比较操作,另一个是存储用户修改后 的密码。密码存储模块的地址选择信号由计数器模块电路来进行选择。模为三的计数器模块 电路控制信号 reset 和时钟信号 cnp 是由控制器模块来提供的。下面给出密码存储模块 的流程图。如图 3-1 所示am_enn输入密码密码正确y输入新密码存储密码图 3-1 密码存储流程图更改初始密码 am_en,首先输入 4 位
24、 2 进制的初始密码,程序判定和初始密码一 致,执行更改密码的程序;否则继续输入密码,直至输入正确。输入 4 位 2 进制数后, 寄存器存储新密码。3.2.2 编码模块在保险柜密码器中,由于密码数字是由外接键盘输入的信号,因此这里需要把它转 换成 4 位 bcd 码送入到比较器中,这时需要采用 10 线至 4 线编码器来完成这样的转换。 因为前级消抖同步模块的输出是高电平,因此 a0a9 这 10 个数字的输入信号经过消抖 同步后应该是高电平有效。对于编码器的输出来说,b4 是 msb,b1 是 lsb。在密码器中, 编码模块的顶层原理图如图 3-16 所示。3.2.3 比较模块在数字密码锁中
25、,比较模块的主要功能是对编成模块的输出 4 位数据和密码存储模 块的输出 4 位数据进行比较,然后将比较的结果送入到控制器模块的 def 端口上。比较 器的具体工作原理是:当比较结果相等时,dep 的输出为 1;当比较结果不相等时,dep 的输出为 0。比较密码正确后,即可开锁。流程图如图 3-2 所示。n输入密码密码正确n+1ynn3开锁绿y红灯亮图 3-2 解锁流程图首先输入 4 位 2 进制密码,输入密码正确,绿灯亮并开锁;输入密码不正确,计数 器 n 自加 1,判定 n 是否大于 3,如果大于 3,红灯亮,系统报警;否则继续输入密码, 直至 n 大于 3。在这 3 次中,输入密码正确,
26、计数器 n 重置,绿灯亮并开锁。3.3 主要程序输入密码为 1000、再输入 0000initial begin#10 rst=1;#10 rst=0;#10 am_en=0;/10 时间单位后,am_en 赋值 0,在主程序里,有判定 am 的值来执行 if 循环#10 cipher_in=4b1000; /置 cipher 为 1000,此时输入 错误#10 cipher_in=4b0000; /置 cipher 为 0000,此时输入 正确重新置位,判断密码是否=初始密码#10 rst=1;#10 rst=0;#10 am_en=1;/10 时间单位后,am_en 赋值 1,在主程序里,
27、有判定 am 的值来执行 if 循环#10 cipher_in=4b0000; /输入 0000,错误#10 cipher_in=4b1000; /输入 1000,错误#10 am_en=0;/10 时间单位后,am_en 赋值 0,在主程序里,有判定 am 的值来执行 if 循环#10 cipher_in=4b0000; /输入 0000,错误#10 cipher_in=4b0001; /输入 0001,错误#10 cipher_in=4b1000; /输入 1000,正确寄存器定义/parameter s0=2b00,s1=2b01,s2=2b10,s3=2b11;置位/定义参数的值,通过
28、计时寄存器/s0-s3 代表输入密码错误的次数always(cipher_in or posedge rst)if(rst) begin /置位设置,if(rst)为 1 state=0; /将 state 重置为 0warn_en=0; /将 warn_en 重置为 0count=0; /将 count 重置为 0amend_cipher=0; /将 amend_cipher 重置为 0 i=0; /将 i 重置为 0end键入密码/else if(!am_en) begin /if(rst)为 0,不置位,判断初始密码 am_en 是否为 0case(state_out)s0:if(cip
29、her_in=amend_cipher) begin/判断键入密码是否等于初始密码,执行下列程序count=1;warn_en=0;end elsestate=s1;/相同,count+1,密码正确/输入密码正确,警报不累计/state=1,输入错误s1:if(cipher_in=amend_cipher) begin/判断第二次键入密码是否等于初始密码,执行下列程序count=i;warn_en=0;/相同,count=i,密码正确/输入密码正确,警报不累计end elsestate=s2;/第二位输入密码错误s2:if(cipher_in=amend_cipher) begin/判断第三次
30、输入密码是否等于初始密码,执行下列程序count=i;warn_en=0;end elsestate=s3;s3:beginwarn_en=1;/相同,count=i,密码正确/输入密码正确,警报不累计/第三位密码错误/警报此时为 1state=s3; /密码输错 3 次end /结束 if 循环嵌套default:state=s0; / 否则次数为 0,即 0 次 endcaseend /结束键入密码循环输入密码错误判定/always(cipher_in or am_en or rst)if(rst) /if(rst)为 1,重置j=0; /判定 j=0,值返回到 j,j=1 else /i
31、f(rst)为 0if(am_en) /如果初始密码为 0 case(j) /j=12b00:begin /第一位键入的密码 if(cipher_in=amend_cipher)/判断输入密码和初始密码是否相等j=j+1; /相等,则 j+1 elsej=j;/否则 j 值不变end2b01:begin/j=01 时,执行下列程序amend_cipher=cipher_in;/把输入密码赋值给初始密码j=j+1; /j 自加 1 enddefault: j=0;end/否则次数为 0,即 0 次第4章软件仿真4.1 仿真过程本设计在 modelsim 下仿真,通过 verilog hdl 语言
32、控制。 打开 modelsim 界面,如图 4-1 所示。图 4-1 modelsim 页面在 modelsim 下新建工程:lock。出现下图进行编写工程文件名。如图 4-2图 4-2 新建工程在文件名建立完成后就可以进行程序编写了,双击 locki 和 lockii,进行主程序及 激励程序的编写。如图 4-3 所示。图 4-3 程序编写编写后保存并编译,编译成功后,status 为对勾状态。若程序有错误,则不能编译。 如图 4-4 所示。图 4-4 程序编译程序编译成功后进行仿真如下图 4-4:图 4-4 成功编译4.2 仿真结果数字密码锁仿真,如图 4-5。图 4-5 数字密码锁仿真设计
33、4.3 仿真分析如图 4-6,黄线后边仿真的验证,当更改密码时,需先使 am_en 为高电平时,方可 更改密码,输入旧密码,然后输入新密码,再次验证新密码,验证正确图 4-6 仿真分析4.3.1 仿真过程输入密码时,当第一次输入错误,第二次输入密码正确时,计数器count 计数为 2, 验证正确。当更改密码时,需先使 am_en 为高电平时,方可更改密码,输入旧密码,然后输 入新密码,再次验证新密码,验证正确。如图 4-7 所示。图 4-7 仿真过程分析结论本设计主要是用硬件描述语言 verilog hdl 为主要的编译语言,以 modelsim 开发 系统为设计工具,设计了一种具有密码输入密
34、码输入正确开锁和输入错误达到三次后报 警等功能的数字电子密码锁。同时介绍了阐述数字密码锁的工作原理、个工作模块的组 成及功能介绍和数字密码锁的软件实现方法,在 modelsim 环境下进行的模拟仿真,反 馈结果都能够看出验证程序设计的可行性和可靠性,对该数字密码锁进行的时序仿真所 得出的结果都表明:该电路能够实现本设计所要求的功能。设计的数字密码锁控制器设置的是 4 位密码,在系统复位后,用户需按键 4 次,输 入完整的一个密码串,在输入完后,系统将会进行比较,如果发现密码正确,则开锁, 如果连续输入密码错误达到三次系统就会报警。这样的设计可以很好的满足人们的日常 需求,可以对保管的器物可以安
35、心。同时,本设计中的数字密码锁还具备密码修改功能, 操作简单,使得密码锁的使用更加安全、便捷。参考文献1刘昌华eda 技术与应用:基于 quartus和 vhdlm北京:北京航空航天大学出版社, 20122任葛荣可编程智能电子锁控制器的设计与实现d广东:华南理工大学,20113赵鑫vhdl 与数字电路设计m北京:机械工业出版社,2005:275-2764王金明数字系统设计与 veriloghdlm北京:电子工业出版社,200915贾熹滨数字逻辑基础与 verilog 硬件描述语言m北京:清华大学出版社,20126于斌,谢文龙modelsim 电子系统分析及仿真m北京:电子工业出版社,20142
36、7于斌,米秀杰 modelsim 电子系统分析及仿真m北京:电子工业出版社,201412 8于斌modelsim 电子系统分析及仿真m北京:电子工业出版社,201429成超原4位数字密码锁设计(密码设置及验证电路)d武汉:华中科技大学文华学院, 201210刘潇婷基于 fpga 的红外遥控电子密码锁的实现d大连:大连海事大学,2010附录 1程序代码module latch(cipher_in,count,warn_en,rst,am_en);input rst,am_en; / 定义输入变量:am_en、密码设置键input 3:0cipher_in; / 定义输入变量:4 位密码outpu
37、t warn_en; / 定义输出变量,警告output1:0count; / 定义计数reg warn_en; /定义警告为 reg 型变量 reg1:0state,state_out; /reg 型 2 位变量reg1:0count; /reg 型 2 位变量 reg3:0amend_cipher; /reg 型 4 位变量parameter s0=2b00, / 定义参数的值,通过计时寄存器s1=2b01, /s0-s3 代表输入密码错误的次数 s2=2b10,s3=2b11;integer i; / 定义有符号位变量always(cipher_in or posedge rst) /置
38、位模块if(rst) begin /rst 为 1,进行复位state=0; /将 state 重置为 0warn_en=0; /将 warn_en 重置为 0count=0; /将 count 重置为 0amend_cipher=0; /将 amend_cipher 重置为 0i=0; /将 i 重置为 0endelse if(!am_en) begin /if(rst)为 0,再判断初始密码 am_en case(state_out)s0:if(cipher_in=amend_cipher) begin/判断键入密码是否等于初始密码,执行下列程序count=1; /相同,count+1,密
39、码正确warn_en=0; /输入密码正确,警报不累计 end elsestate=s1; /state=1,输入错误 s1:if(cipher_in=amend_cipher) begin/判断第二次键入密码是否等于初始密码,执行下列程序count=i; /相同,count=i,密码正确warn_en=0; /输入密码正确,警报不累计end elsestate=s2; /第二位输入密码错误 s2:if(cipher_in=amend_cipher) begin/判断第三次输入密码是否等于初始密码,执行下列程序count=i; /相同,count=i,密码正确warn_en=0; /输入密码正
40、确,警报不累计 end elsestate=s3;s3:beginwarn_en=1;state=s3;endddddddd :state=s0;eeeeeeeendend/第三位密码错误/警报此时为 1/密码输错 3 次/结束 if 循环嵌套/ 否则次数为 0,即 0 次/结束 if 循环嵌套/结束 if 循环嵌套always(state or posedge rst)if(rst) begini=1;state_out=0;end/if(rst)为 1,重置/i 置位 1/state_out 置位 0/结束 if 循环嵌套else begini=i+1; /i 和 i 自加 1 比较,值返回 istate_out=state; /state_out 和 state 比较,值返回 state_out end /结束 if 循环嵌套integer j; /定义整型 jalways(cipher_in or am_en or rst)if(rst)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 耐酸胶鞋市场需求与消费特点分析
- 电镀参数测试仪市场需求与消费特点分析
- 2024年度安居客大连二手房地产广告发布合同
- 2024年度信息技术产品购买与维护合同
- 2024年度影视作品制作与发行权转让合同
- 2024年度汽车制造设备采购与安装合同
- 2024年度房产买卖合同模板
- 2024年度教育信息化建设与维护合同
- 椎间盘修复用医疗设备市场发展现状调查及供需格局分析预测报告
- 2024年度版权购买合同版权购买合同
- 工作面安装瓦斯监控安全技术措施
- 单门门禁一体机操作流程
- 施工现场安全知识答题试卷-附答案版4页
- 学校总务处行事历
- 财务费用报销流程图
- 五星级酒店开业筹备计划表
- 通信工程勘察设计费取费标准[整理版]
- 超声波探伤报告
- 墩身外观质量缺陷与防治
- XXX养生馆顾客和诊断管理表(doc3)
- 银行支行电子银行业务发展经验交流材料
评论
0/150
提交评论