CPLD/FPGA课程设计项目名称:基于FPGA的数字密码锁设计专业班级:学生学号:学生姓名:指导老师:2016年6月4日I摘要本设计是基于现场可编程门阵列FPGA器件的电子密码锁的设计。通过Verilog语言控制4位二进制数,组成数字排列,形成一个简单的数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1、输入错误时输出为0。同时输出输入的次数,当3次以上输入错误时,输出一个报警信号,即使第四、五次输入正确也输出报警信号。本设计利用Modelsim软件编写VerilogHDL硬件描述语言程序以实现输入密码、开锁、报警功能。通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。关键词:现场可编程门阵列;数字密码锁;VerilogHDL;IIAbstractThisdesignistheelectroniccodelockfieldprogrammablegatearrayFPGAdevicesbaseddesign.ByVeriloglanguagecontrol4-bitbinarynumber,composedoffiguresarrangedtoformasimpledigitallock,assumingthatthedefaultpasswordis4digits:0000,correctoutputwhentheinputis1,theoutputoftheinputerrortozero.Atthesametimethenumberofinputandoutput,andwhenmorethanthreetimestheinputerror,analarmsignalisoutput,evenifthefourthandfifthalsoenterthecorrectoutputalarmsignal.ThisdesignusesModelsimsoftwarewriteVerilogHDLhardwaredescriptionlanguageprogramtoimplementapasswordlock,alarmfunction.Thesimulationdebugging,usingtheprogrammabledeviceFPGAdesignbasicelectroniclockstoachievethedesiredpurpose.Keywords:FPGA;Thedigitalcombinationlock;VerilogHDL;III目录摘要.................................................................IAbstract.............................................................II第1章所选项目的研究意义.............................................11.1概述..........................................................11.2数字密码锁的研究现状..........................................21.2.1数字密码锁的应用........................................31.2.2数字密码锁的困难........................................31.3本文研究意义..................................................31.4设计思路......................................................4第2章设计方案..............................................................................................................52.1功能定义......................................................52.2模块设计......................................................5第3章系统软件设计......................................................................................................73.1设计概括......................................................73.2设计流程......................................................73.2.1密码存储模块............................................73.2.2编码模块................................................83.2.3比较模块................................................83.3主要程序模块....................................................................................................9第4章软件仿真............................................................................................................144.1仿真过程.....................................................144.2仿真结果.....................................................154.3仿真分析.....................................................164.3.1仿真过程..............................................................................................17结论................................................................................................................................18参考文献..........................................................................................................................19附录1程序代码...........................................................................................................20项目创新及特色..............................................................................................................26基于FPGA的数字密码锁(CPLD/FPGA课程设计)1第1章所选项目的研究意义1.1概述数字密码锁是一个小型的数字系统,与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。在人们平时生活中,贵重物品或个人信息资料大多数都已加锁的方式进行保管。如果使用传统的机械锁进行对物品及资料的保管,那么人们要携带很多把钥匙在身上,携带非常不便,而且钥匙丢失将对物品保管的安全性大打折扣,也为人们的生活及心情带来不便。随着生活质量的不断提高,加强家庭防盗安全变得非常重要,但传统机械锁的构造过于简单,很容易被打开,从而降低了安全性。数字密码锁因为它的保密性很高,安全系数也非常高,再加上其不需要携带避免了丢失的可能,省去了因钥匙丢失而需要换锁的麻烦,受到了越来越多的人的欢迎。随着人们对高科技产品也越来越推崇,在当今社会科技的高度集中和创新,人们对日常生活中保护自身及财产安全的物品非常追捧,对其安全性的要求也非常的高。为了达到人们对锁具安全性的高要求,加强锁具的安全保密性,用密码锁来取代传统机械锁的锁具是必然趋势。数字密码锁比传统机械锁具更加的安全[1]。锁具发展到现在已有若干年的历史了,锁是用于保管物品的器件,用来关住某种器物的一种器具。其必须用钥匙才能打开。所以在人们的日常生活中离不开锁,这使得我们队锁具的结构和原理也多少有些了解,因此,就有了不借用钥匙就打开锁的方法。锁具都存在致命的弱点,比如锁芯采用常见的铜、锌、铝等材料容易遭到暴力破坏,还有就是锁具制作工艺的技术落后,从而导致防盗功能缺失,目前,国内市场的锁具,实际上都不具备真正的防盗功能,在惯偷面前用几件简单工具就可以轻松打开这些锁,其实不是他们多么的高明,而是一般锁具的原理过于简单,面对这一社会现状,新时代提出了锁具必须改革的迫切需求[2]。安全防盗已成为人们所关注的焦点。然而传统机械弹子锁安全性低,密码量少且需时刻携带钥匙使其无法满足一些特定场合的应用要求,特别是在人员经常变动的公共场所,目前使用的电子密码锁主要有两个方案:一是基于单片机用分立元件实现的,二是通过现代人体生物特征识别技术实现的,前者电路较复杂且灵活性差,无法满足应用要求;后者有其先进性但需考虑成本和安全性等诸多因素。基于此,本文设计了一种新型电子密码锁,采用FPGA芯片,目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流[3]。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数基于FPGA的数字密码锁(CPLD/FPGA课程设计)2的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)[4]。因此,随着电子技术的飞速发展数字密码锁的产生是必然,其在使用的方便性、防盗报警功能、智能管理等方面都是传统机械锁无法比拟的,在对安全性有较高要求的设施及场所中得到了广泛应用。1.2数字密码锁的研究现状现如今,随着高新技术的涌入,对传统锁具进行了很大的的改进,锁具的防盗性能得到了充分的加强,由传统锁具改进的智能密码锁已成为现如今安防系统中最强大的组成部分,它的作用是每一个传统机械锁具无法取代的。由于其在市场中巨大的潜力,国内外许多的公司都投入很大的人力、物力来从事智能数字密码锁的研究开发生产。目前,市场上比较先进的智能电子密码锁分别有:IC卡电子密码锁、射频卡式电子密码锁、红外遥控电子密码锁、指纹识别电子密码锁和瞳孔识别