资源描述:
《EDA课程设计数字密码锁》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、..目录目录2摘要3关键词31引言41.1课程设计背景41.2课程设计目的41.3课程设计内容42数字密码锁设计42.1系统设计42.2模块功能52.2.1控制模块52.2.2比较模块72.2.3寄存模块73仿真分析83.1控制模块的仿真83.2比较模块的仿真93.3寄存模块的仿真103.4系统的仿真波形103.5系统的引脚锁定124设计总结12参考文献13word教育资料..摘要:随着数字集成技术和电子设计自动化(EDA)技术的迅速发展,数字密码锁应运而生。本文采用先进的EDA技术,利用QUARTUSⅡ工作平台和VHDL语言,设计了一
2、种新型的数字密码锁,它不但可以完成锁具的基本功能,还能附加一些其他的智能,例如:报警、识别功能,数字密码锁具功能齐全,安全系数高,有机械锁无可比拟的优越性,它的造价成本低,易于操作,越来越受到众多客户的青睐,可以优先占领市场有利份额。关键词:EDA技术;QUARTUSⅡ工作平台;VHDL语言;数字密码锁word教育资料..1引言1.1课程设计背景数字密码锁随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,而且各种各样的电子产品也正在日新月异地向着高精尖技术发展。由于电子产品的功能不断增加,使用也越来越方便,有些产品已经成为
3、了人们日常生活中不可缺少的必备物品。发展历史悠久的机械式门锁,因其功能单一,安全性能较差等缺点,必将被新一代的电子门锁所代替。新颖的多功能电子门锁,集电子门锁、防盗报警器,门铃等功能于一身,而且还具有定时器呼唤,断电自动报知,显示屋内有无人和自动留言等诸多附加功能。在未来的生活中,数字密码锁必将在学领域再创新的成绩,将给我们的生活带来更大的便利,前景不可估量。1.2课程设计目的1.掌握VHDL语言编程方法,通过实践加深对理论知识的理解。2.学会QuartusⅡ软件的使用方法。3.掌握数字密码锁的设计方法。4.掌握波形仿真,学会分析实验现
4、象,提高分析问题的能力。1.3课程设计内容设计一个数字密码锁,用户可输入4位的二进制数,可有用户任意输入正确时开锁,密码输入错误时报警.码可手动预置,并可进行修改密码,取消报警。给出系统总体组成框图,设计思路,完成以上模块的VHDL实现及功能仿真,顶层文件及整体仿真。2数字密码锁设计2.1系统设计word教育资料..根据系统的设计要求,系统设计采用自顶向下的设计方法。顶层设计采用原理图的设计方式和系统的整体组装,分别由控制模块、寄存器模块、比较器模块等部分组成。即按照这三个组成模块定义相应的芯片引脚和输入输出的参数。2.2模块功能系统主
5、要由3个模块组成,分别是控制模块、寄存器模块、比较器模块。2.2.1控制模块控制模块采用有限状态机设计,将系统分为7个状态,即开锁状态(outlock)、安锁状态(inlock)、输入密码状态(input)、密码初验正确状态(right)、密码初验错误状态(wrong)、报警状态(alarm)、修改密码状态(change)。状态转移图如图2-2-1。enter=’0’enter=’0’lock=’0’enter=’0’start=’0’enter=’0’changeoutlockrightxinputwrongalarminlocken
6、ter=’1’xiu=’0’enter=’1’yes=’1’yes=’0’start=’1’enter=’1’enter=’1’图2-2-1状态转移图系统上电时,处于开锁状态,当输入修改密码xiu信号时,系统进入修改密码状态;若输入安锁lock信号,系统进入安锁状态,锁闭合:在安锁状态,输入输入密码start信号,系统进入输入密码状态;在输入密码状态,如输入密码内容和长度均正确,进入密码初验正确状态,如果密码错误,进入密码初验错误状态;在密码初验正确状态,输入确认信号enter时,进入开锁状态,在开锁状态kai信号等于‘1’;在密码初验
7、错误状态,输入确认信号enter时,进入报警状态;在报警状态。warn信号等于‘1’。VHDL代码如下:libraryieee;useieee.std_logic_1164.all;word教育资料..entitymimaisport(clk,lock,start,xiu,enter,yes:instd_logic;warn,kai,wr,en:outstd_logic);end;architecturebhvofmimaistypestateis(inlock,input,rightx,wrong,unlock,change,alar
8、m);signalps,ns:state;beginprocess(clk)beginifclk'eventandclk='1'thenps<=ns;endif;endprocess;process(ps,