毕业设计论文电子密码锁的EDA设计与实现.doc
本科毕业论文论文题目:电子密码锁的EDA设计与实现 学生姓名: xxxx 学号: xxxxxxxxxxxxxxx 专业: xxxxxxxxxxxxxxxxxxx 指导教师: xxxxxxxxxxxxxxxx 学 院: xxxxxxxxxxxxxxxx 2010年 5 月 10 日 毕业论文(设计)内容介绍论文(设计)题 目电子密码锁的EDA设计与实现选题时间完成时间论文(设计)字数关 键 词电子密码锁 VHDL FPGA Quartus 论文(设计)题目的来源、理论和实践意义: 锁自古以来就是守护门户的铁将军,人们对它的要求很高,既要安全可靠又得使用方便。由于机械密码锁的局限性已经无法满足当今社会管理和防盗要求,电子密码锁是集计算机技术、电子技术、密码学技术为一体的高科技产品,具有使用方便安全性高的优点,因而越来越得到大家的认可。随着电子技术越来越走向成熟,电子密码锁替代机械密码所已是一种必然的趋势。本次课程设计利用EDA技术,以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以Quartus 软件为设计工具设计电子密码锁。本次设计让同学们联系实际问题,提高理论联系实际的能力,锻炼大家的动手能力和科研能力以及相关工具的使用能力等。论文(设计)的主要内容及创新点:论文主要阐述了基于EDA技术设计电子密码锁的原理和方法,此密码锁以现场可编程逻辑器件(FPGA)为主要载体,具有体积小、集成化的优点并且可以拥有很好的灵活性、保密性、可靠性。此密码锁设计密码为4位,能够实现密码输入、数码清除、密码更改、密码上锁、密码解除等功能。目前绝大部分密码锁都是采用单片机技术来设计的,结构比较复杂,性能不够灵活稳定且设计成本较高。本文则采用先进的EDA技术,利用Quartus 工作平台和VHDL语言设计新型的电子密码锁。此密码锁相对基于单片机技术设计的密码锁具有体积小、功耗低、价格便宜、安全可靠等优越性。附:论文(设计)本人签名: 年 月 日 目录摘要1一、电子密码锁的相关理论知识2(一)EDA技术2(二)VHDL语言4(三)FPGA硬件5(四)Quartus 软件7二、 电子密码锁的简介9(一)电子密码锁的现状9(二)电子密码锁的优势9三、电子密码锁的具体设计10(一)电子密码锁的总体结构10(二)电子密码锁的各模块设计111.输入模块的设计112.控制模块的设计133.显示模块的设计164.密码锁的整体组装设计17四、 设计仿真18(一)键盘输入去抖电路的仿真18(二)密码锁输入电路的仿真18(三)密码锁控制电路的仿真18(四)密码锁显示电路的仿真19五、总结20六、参考文献21 电子密码锁的EDA设计与实现摘要:随着社会财富的日益增长,安全防盗已经成为全社会关注的问题。人们在日常生活中对锁的要求越来越高,为增加其安全性,用密码代替钥匙的密码锁应运而生。本文以EDA技术为基础,利用VHDL语言采用自上而下的设计方法在Quartus 软件平台下,采用FPGA为主要元器件设计了一款电子密码锁。基于EDA技术设计的密码锁因其价格便宜、安全可靠受到了人们的普遍欢迎。该密码锁能够实现密码输入,数码清除,密码更改,密码上锁和密码解除等功能,并且具有体积小、安全性高、成本低、功耗小、易操作的优点。关键词:密码锁;VHDL;FPGA;中图分类号:B03A Electronic Password-Lock Designed By EDA Abstract: With the continuous development of social wealth, people have pay close attention to security. People in the daily lives have much more request of lock, in order to meet the requirements of the use of locks to increase their security, with a password instead of the password key lock came into being. This paper designed a new type password-lock with EDA technology and VHDL language, using of top-down design. The electronic password-lock designed by EDA was very popular for its low price and safety. This electronic password-lock has a lot function like digital input, digital clearance, password changes, the activation power locks and power lifting lock, at the same time it has a lot advantages such as small volume, security yand, low price, low power consumption, easy to operate. Keywords: Password-lock; VHDL; FPGA 一、电子密码锁的相关理论知识(一)EDA技术20世纪末,电子技术得到了飞速的发展,现代电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。1EDA是电子设计自动化(Electronic Design Automation)的英语缩写,是随着集成电路和计算机技术飞速发展应运而生的一种快速、有效、高级的电子设计自动化工具。也就是说,EDA就是立足于计算机工作平台而开发出来的一整套先进的电子设计软件工具。现代EDA技术的基本特征是采用高级语言描述,具有系统仿真和综合能力,具有开放式的设计环境,具有丰富的元器件模型库等。传统手工设计方法对于复杂电路的设计调试十分困难;对设计过程中出现的错误,查找和修改十分不便;设计过程中产生大量文档,不宜管理;只有在设计完成后或生产出芯片后才能进行实测等等。EDA技术进行电子系统的设计有着很大的优势:1. 采用硬件描述语言,便于复杂系统的设计。2. 具有强大的系统建模和电路仿真功能。3. 具有自主的知识产权。4. 开发技术标准化和规范化。5. 全方位的利用计算机的自动设计、仿真和测试技术。6. 对设计者的硬件知识和硬件经验要求低。随着科学技术的发展和市场需求的不断增长,作者认为EDA技术将呈现以下发展趋势:7. EDA开发工具将得到进一步发展,EDA开发工具将朝着功能强大、简单易学、使用方便的方向发展。8. EDA技术将促使ASIC和FPGA逐步走向融合,随着系统开发对EDA技术的目标器件各种性能指标要求的提高,ASIC和FPGA将更大程度的融合。9. EDA技术朝着ESDA和CE的方向发展。(ESDA电子系统设计自动化、CE并行工程)10. EDA技术的应用领域将越来越广泛。EDA技术将会广泛应用于高校电子技术实验教学、科研和新产品的开发、传统机电设备的升级换代和技术改造、信息通信领域等。近10年来,电子系统的设计方法发生了很大的变化。传统的电路设计方法都是自底向上进行设计的,而EDA技术采用一种新的自顶向下的设计方法。“自顶向下”法是一种概念驱动的设计方法,要求在整个设计过程中尽量运用概念去描述和分析设计对象,而不要过早地考虑实现该设计的具体电路、元器件和工艺,以便抓住主要矛盾避免纠缠在具体细节上,减少设计的复杂性。简言之,就是设计者首先从整体上规划整个系统的功能和性能,然后对系统进行划分,分解为规模较小、功能较为简单的局部模块,并确立它们之间的相互关系,这种划分过程可以不断地进行下去,直到划分得到的单元可以映射到物理实现。图1-1所示的是自顶向下与自底向上的设计比较。 图1-1 自顶向下与自底向上的设计比较自底向上的设计方法就是首先确定构成系统的最底层的电路模块或原件的结构和功能,然后根据主系统的结构和要求,将他们组合成更大的功能块,使它们的结构和功能满足高层系统的要求。以此流程逐步向上递推,直至完成整个目标系统的设计。它的特点是必须首先关注并致力于解决系统最底层硬件的可获得性,以及它们的功能特性方面的诸多细节问题;在整个逐级设计和测试过程中,始终必须顾及具体目标器件的技术环节。在设计过程的任一时刻,可能会出现目标器件的更换、某些技术指标不满足要求、需要提高运行速度等问题,这些问题都有可能造成设计前功尽弃。因此,这种传统的自底向上的设计方法是一种低效、低可靠性、且成本高昂的设计方法。相比之下,自顶而下的设计方法使系统被分成各个模块的集合,可以对设计的每个独立模块指派不同的工作小组,这些小组分别设计不同的模块,最后将不同的模块集合成为最终的系统模型,并对其进行综合测试和评价。这样一来系统性能参数将得到进一步的细化与确认,并随时可以根据需要加以调整,从而可保证设计结果的正确性,缩短设计周期,设计规模越大,这种设计方法的优势越明显。现在,自顶向下的设计方法已经是EDA技术的首选设计方法,是ASIC或FPGA开发的主要设计手段。(二)VHDL语言VHDL的英文全名为VHSICHDL(Very-High Speed Integrated Circuit Hardware Description Language),其诞生于1983年,由美国国防部(DOD)发起创建。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。应用VHDL进行工程设计的优点是多方面的,具体如下:1. VHDL具有更强的行为描述能力,从而决定了它是系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。2. VHDL最初是作为一种仿真标准格式出现的,因此VHDL即是一种硬件电路描述和设计语言,也是一种标准的网表格式,还是一种仿真语言而且它有丰富的仿真语句和库函数。3. VHDL的行为描述能力和程序结构决定了它具有支持大规模设计和分解已有设计的再利用功能,满足了大规模系统设计要由多人甚至多个开发组共同并行工作来实现的市场需求。VHDL中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有力的支持。4. 对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地将VHDL描述转变成门级网表,生成一个更高效、更高速的电路系统。5. VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标期间是什么,而进行独立的设计。6. 由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(三)FPGA硬件1FPGA简介FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)、可编程逻辑器件PLD(Programmable Logic Device)等可编程器件的基础上进一步发展的产物。现场可编程门阵列(FPGA)是美国Xilinx公司在20世纪80年代中期率先推出的一种高密度可编程逻辑器件,它综合了低密度PLD的优点,由掩膜门阵列(GA)演变而来。它是作为专用集成电路ASIC(Application Specific Integrated Circuit)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74系列电路,都可以用FPGA来实现。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可行性。PLD的这些优点使得PLD技术在90年代以后得到飞速的发展,同时也大大推动了电子设计自动化EDA(Electronic Design Automatic)软件和硬件描述语言VHDL(Very-High-Speed Integrated Circuit Hardware Description)的进步。2.FPGA结构及特点目前FPGA主要产品可以分为两大类,即基于SRAM编程的FPGA和基于反熔丝编程的FPGA。简化的FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。图1-2所示的是FPGA的基本结构。图1-2 FPGA基本结构FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有: (1)是采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 (2)是FPGA可做其它全定制或半定制ASIC电路的中试样片。 (3)是FPGA内部有丰富的触发器和IO引脚。 (4)是FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 (5)是FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。3.FPGA与ASIC、CPLD(1)FPGA和ASIC的比较ASIC是英文的Application Specific Integrated Circuits缩写,即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。目前用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特点。ASIC的特点是面向特定用户的需求,品种多、批量少,要求设计和生产周期短,它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,与通用集成电路相比具有体积更小、重量更轻、功耗更低、性能更稳定、成本降低等优点。2(2)FPGA与CPLD的比较FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点。CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序FPGA逻辑。也就是说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构;CPLD的规模小更适合于简单电路的设计而FPGA的规模大,逻辑复杂度高,故用于复杂电路的设计;时延方面CPLD的Pin-to-Pin延时是固定的,FPGA的Pin-to-Pin延时是不可预测的,因此,对于FPGA而言,时序结束和仿真非常重要;布线方面,CPLD采用集总式互联结构,相对布线资源有限,CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,FPGA采用分布式互联结构,具有丰富的布线资源,布线比较灵活;在在编程灵活性方面,FPGA比CPLD具有更大的灵活性;在功耗方面一般情况下CPLD的功耗要比FPGA大,且集成度越高越明显;在使用方便程度上,CPLD比FPGA使用起来更方便;在保密性方面,CPLD保密性好,FPGA保密性较差;在成本与价格方面,CPLD成本与价格低,更适合低成本设计,FPGA成本高,价格高,适合于高速、高密度的高端数字逻辑设计领域。(四)Quartus 软件 Quartus 是Altera的CPLD/FPGA集成开发软件,具有完善的可视化设计环境,并具有标准的EDA工具接口,能运行于各种操作平台。基于Quartus 进行EDA设计开发主要由设计输入、编译、仿真、编程与验证几步组成。在设计过程中,如果出现错误,则需要重新回到设计输入阶段,改正错误或调整电路后重复上述过程。3 Quartus 软件提供完整的多平台设计环境,可以容易地满足特定的设计需要,而且它允许用户在设计流程的每个阶段使用Quartus 软件图形用户界面、EDA工具界面或命令行形式。Quartus 具有以下特点:1. 支持多时钟定时分析、基于块的设计、SOPC(单芯片可编程系统),内嵌SignalTap 逻辑分析器、功能估计器等高级工具;2. 易于管脚分配和时序约束;3. 强大的HDL综合能力;4. 包含MAX+plus 的用户界面,且易于由MAX+plus 开发的工程平稳的过渡到Quartus 开发环境;5. 支持的器件种类众多;6. 支持Windows、Solaris、Hpux和Linux等多种操作系统; 在本例中,建立文件夹D:Designs作为工作库,以便将设计过程中的相关文件存储于此,具体设计过程为编辑文件、创建工程、编译、仿真几个步骤。在编译前,设计者要注意各种不同的设置方法以便指导编译器使用各种不同的综合和适配技术(如时序驱动技术等),这样可以提高设计项目的工作速度,优化器件的资源利用率,而且在编译过程中及编译完成后,可以从编译报告窗获得所有相关的详细编译结果,以利于设计者及时调整设计方案。仿真时要确保设计项目的功能和时序特性符合设计要求,保证最后硬件的功能与原设计相吻合。 二、 电子密码锁的简介 (一)电子密码锁的现状随着科学技术的发展和社会信息化程度的提高,信息对人们来说越来越重要。个人信息和商业机密等等都需要更好的保护起来,电子密码锁的研究就有着非常现实的意义。电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码就可以开锁。目前实用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性较差并且采用单片机设计的密码锁硬件复杂,设计周期长,容易出错。因此本文介绍一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。电子密码锁系统主要由电子锁体、电子密匙等部分组成,一把电子密匙里能存放多组开锁密码,用户在使用过程中能够随时修改开锁密码,更新或配制钥匙里开锁密码。一把电子锁可配制多把钥匙。电子密码锁的体积小、保密性能好、使用方便,是用在保险箱、电话或是房门上不可少的部分。(二)电子密码锁的优势本文介绍的基于EDA技术的电子密码锁的设计,采用FPGA器件构造系统,算法完全由硬件电路来实现,使系统工作可靠性很高。由于FPGA具有ISP功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的数字系统,大大提高了设计的效率。因此,采用FPGA开发的数字系统,不仅具有更高的工作效率,其升级和改进也及其方便。基于FPGA的电子密码锁已经广泛地应用在办公室、仓库、宾馆等人员经常变动的场所。同时硬件描述语言VHDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应的FPGA/CPLD器件,就可以得到最后的设计结果。 三、电子密码锁的具体设计 (一)电子密码锁的总体结构 电子密码锁整体结构包括密码锁输入模块、控制模块、显示模块。电子密码锁的总体电路结构图为: 图3-1 所示为电子密码锁的电路结构 设计一个具有较高安全性和较低成本的通用电子密码锁,它的具体功能要求如下:1数码输入:按下一个数字键,其相应的数字就会显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。设计密码为4位,系统只显示前4位输入的数码。2. 数码清除:当按下清除键时,清除前面输入的所有值,并显示为“0000”。3. 密码解除:当按下此键时,可以将电子密码锁的旧密码解除。4密码更改:将旧密码解除后,可以进行密码更改。输入任意四位数字,再按#号就可以将输入的数码当作新的密码。5. 密码上锁:输入新的密码之后按下此键可以将密码锁上锁。6. 密码解锁:按下此键后再输入密码,如果输入与系统存储密码一致,密码锁就能开锁,否则不能解锁。 (二)电子密码锁的各模块设计1.输入模块的设计密码锁的输入模块由时序产生电路、键盘扫描电路、弹跳消除电路、键盘译码电路和按键存储电路组成。输入模块的电路框图如下: 图3-2输入模块各部分电路功能如下:(1) 时序产生电路 本时序产生电路用于产生电路中三种不同频率的工作脉冲波形,包括系统时钟信号、弹跳消除取样信号和键盘扫描信号。其中系统时钟脉冲是系统内部所有时钟脉冲的源头且频率最高。(2) 键盘扫描电路 键盘电路可以提供扫描信号。该信号由ky3ky0进入键盘,其变化顺序为1110-1101-1011-0111依次周而复始。扫描信号0111代表扫描的为*、0、#这一排按键,当*按键被按下时读出的值为011.按键数码关系如下表所列。 表3-3(3) 弹跳消除电路 该电路可避免误操作发生。由于设计中采用的矩阵式键盘是机械开关结构,因此,在开关切换的瞬间,会在接触点出现信号来回弹跳的现象。为使电子密码锁可靠工作,必须加上弹跳消除电路。弹跳消除电路实现的原理如图3-4所示:图3-4 弹跳消除电路的内部实现原理图其中D触发器的VHDL语言描述为:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DCFQ IS PORT(CLK, CLRN, PRN, D: IN STD_LOGIC; 定义实体DCFQ Q: OUT STD_LOGIC); END ENTITY DCFQ ; ARCHITECTURE ART OF DCFQ IS; 定义结构体 BEGIN PROCESS (CLK, CLRN, PRN) BEGINIF CLRN='0' AND PRN='1' THEN Q<='0' ELSIF CLRN='1' AND PRN='0' THEN Q<='1' ELSIF CLK'EVENT AND CLK='1' THEN Q <=D; END IF ; END PROCESS ; END ARCHITECTURE ART; 弹跳消除电路是先将键盘的输入信号D_IN做为电路的输入信号,CLK是电路的时钟脉冲信号,也就是取样信号,D_IN经过两级D触发器延时后再使用RS触发器处理。RS触发器组态如下表:表3-5(4) 键盘译码电路 上述键盘中的按键可分为数字按键和文字按键,每一个按键可能负责不同的功能,例如清除数码、退位、激活电锁、开锁等,详细功能参见表3-6。(5) 按键存储电路 键盘存储电路可将每次扫描产生的新按键数据存储下来,因此新数据可能会覆盖前面的数据,所以需要一个按键存储电路,以将整个键盘扫面完毕的结果记录下来。按键存储电路可以由移位寄存器构成。表3-6 2.控制模块的设计密码控制电路是整个电路的控制中心,主要完成对数字键输入和功能键输入的响应和控制。数字键输入的响应控制过程如下:(1) 按下数字键,第一个数字会在显示器最右端显示,随后每按下一个新数字,显示器上已经存在的数字整体会向左移一位,并将新的数字显示出来。(2) 若要更改输入数字,则可按*键清除所有输入的数字,在重新输入数字。(3) 此密码锁密码为4位,如果输入超过4位电路将不予理会且不显示。功能按键的输入响应控制功能如下:(1) 清除功能:按下*键可清除所有输入数字并显示为“-”。(2) 更改密码:按下此键,输入旧密码再按#键即可解除旧密码。接着输入4位数字,在按下#键,就可以将该4位数字作为新密码。(3) 密码上锁:输入新密码后按下此键就可以将密码锁上锁。(4) 密码解锁:按下此键后可输入密码,如输入“1234”然后按下#键,系统将比较键盘输入的数码和寄存器中的数码,如果一致就会给出一个开锁信号,密码锁开锁;否则密码输入无效。控制电路由VHDL语言实现,部分源程序如下:(1)端口定义:ENTITY CTRL ISPORT (DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -数字输入 DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0);-功能输入 FLAG_N: IN STD_LOGIC;-数字输入标志 FLAG_F: IN STD_LOGIC;-功能输入标志 CLK: IN STD_LOGIC;-时钟 ENLOCK: OUT STD_LOGIC; -上锁键1: LOCK, 0: UNLOCK DATA_BCD: OUT STD_LOGIC_VECTOR (15 DOWNTO 0);- 数据的16位BCD码显示END ENTITY CTRL ; 该段程序主要定义了设计中的各输入输出端口,其中输入端口有DATA_N、DATA_F、FLAG_N、FLAG_F;输出端口有ENLOCK、DATA_BCD;CLK为时钟信号。(2)按键输入数据的存储、清零进程为:KEYIN_PROCESS : BLOCK IS SIGNAL RST, D0, D1: STD_LOGIC ; SIGNAL RR2 : STD_LOGIC; SIGNAL NC: STD_LOGIC_VECTOR (2 DOWNTO 0); BEGIN RST <= RR2; PROCESS(FLAG_N, RST) IS BEGINIF RST = '1' THEN ACC <= "0000000000000000" ; -清除按键输入数据 NC <= "000" ; ELSE IF FLAG_N'EVENT AND FLAG_N = '1' THEN IF NC < 4 THEN ACC <= ACC(11 DOWNTO 0) & DATA_N ; -存储按键输入数据 NC <= NC + 1 ; END IF; END IF ; END IF ; END PROCESS ; END BLOCK KEYIN_PROCESS ; 程序段主要完成了输入模块数字输入后数据的存储和清零功能。按下数字键后,数字会在显示器上显示出来,此后每按一位数字显示器上的数字左移一格并将新的数字显示出来,当输入数字超过四位时电路不予理会;按下复位键时显示器清零,这样可以更改输入的数字。 (3)上锁/开锁控制进程为:LOCK_PROCESS : BLOCK IS BEGINPROCESS(CLK, DATA_F) IS BEGIN IF (CLK'EVENT AND CLK = '1') THENIF NC = 4 THEN IF DATA_F(2) = '1' THEN -上锁控制信号有效 REG <= ACC ; -密码存储QA <= '1' ; QB <= '0' ELSIF DATA_F(0) = '1' THEN-开锁控制信号有效IF REG = ACC THEN -密码核对 QA<= '0' QB <= '1' ; END IF ; ELSIF ACC = "1000100010001000" THEN -设置“8888”为万用密码QA <= '0' ; QB<= '1' END IF ; END IF; END IF ; END PROCESS ; END BLOCK LOCK_PROCESS ; 3.显示模块的设计 本电子密码锁显示模块比较简单,主要作用是将控制模块的BCD码输出转化成7段显示编码,再驱动数码管显示。如下图: 图3-7当输入qin是"0000"时,输出qout显示0; 当输入qin是"0001"时,输出qout显示1; 当输入qin是"0010"时,输出qout显示2; 当输入qin是"0011"时,输出qout显示3; 当输入qin是"0100"时,输出qout显示4; 当输入qin是"0101"时,输出qout显示5; 当输入qin是"0110"时,输出qout显示6; 当输入qin是"0111"时,输出qout显示7; 当输入qin是"1000"时,输出qout显示8; 当输入qin是"1001"时,输出qout显示9。 4.密码锁的整体组装设计 要完成电子密码锁的设计,还必须将上述三个模块进行整合。其整合电路图如2-1所示。设计时要对电子密码锁的整体设计中的输入输出作引脚锁定,然后重新编译和下载,最后进行电子密码锁的硬件验证。实验表明:本设计能够实现电子密码锁的全部功能。