EDA综合设计课程设计-电子密码锁设计.docx_第1页
EDA综合设计课程设计-电子密码锁设计.docx_第2页
EDA综合设计课程设计-电子密码锁设计.docx_第3页
EDA综合设计课程设计-电子密码锁设计.docx_第4页
EDA综合设计课程设计-电子密码锁设计.docx_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南科技大学课 程 设 计 说 明 书课程名称 EDA综合设计 题 目 电子密码锁设计学 院 电气工程学院班 级 学生姓名 学 号 指导教师 日 期 2015年6月26日 课程设计任务书课程设计名称 EDA综合设计 学生姓名 胡慧芳 专业班级 电信科122 设计题目 电子密码锁设计 一、 课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;4、锻炼撰写研究报告、研究论文的能力;5、通过本实践环节,培养科学和严谨的工作作风。二、 设计内容、技术条件和要求1、设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;2、在锁的控制电路中储存一个可以修改的4位二进制代码,当开锁按钮开关的输入代码等于储存代码时,开锁;3、 从第一个按钮触动后的30秒内若未将锁打开,则电路长报警30S,若输入密码错误1或2次,则每次短报警5S,若输错三次密码则长报警。三、 时间进度安排1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。四、 主要参考文献(1)谭会生、瞿遂春,EDA技术综合应用实例与分析,西安电子科技大学出版社,2004(2)高有堂,EDA技术及应用实践,清华大学出版社,2006(3)亿特科技,CPLD/FPGA应用系统设计与产品开发,人民邮电出版社,2005(4)曹昕燕、周凤臣等,EDA技术实验与课程设计,清华大学出版社,2006指导教师签字: 2015年6月15日电子密码锁设计摘要:随着现代电子技术的迅猛发展,相信电子密码锁将会逐渐取代普通的机械密码锁。主要是由于电子密码锁拥有几个普通机械密码锁不可能替代的优点:保密系能好、安全度高、即防盗性能强,不需要使用钥匙、即记住密码就可开锁等等。本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。而且由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。此设计采用EDA技术,利用MAX+PLUS工作平台和VHDL硬件描述语言,设计了一种电子密码锁,并通过本学院的实验箱FPGA芯片实现 关键词:电子密码锁 仿真 VHDL语言 模块化设计 1 VHDL和FPGA1.1 FPGA1.1.1 FPGA简介FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。1.1.2 FPGA基本工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)2和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。1.2 VHDL1.2.1 VHDL简介VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。1.1.2 VHDL特点功能强大、设计灵活支持广泛、易于修改强大的系统硬件描述能力独立于器件的设计、与工艺无关很强的移植能力易于共享和复用二,设计要求1、设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;2、在锁的控制电路中储存一个可以修改的4位二进制代码,当开锁按钮开关的输入代码等于储存代码时,开锁;3、 从第一个按钮触动后的30秒内若未将锁打开,则电路长报警30S,若输入密码错误1或2次,则每次短报警5S,若输错三次密码则长报警。三,总体设计思路判断模块设置密码模块输入密码模块分频模块显示与报警模块根据设计要求,该电子密码锁主要具有设置密码,30秒时间输入密码(即第一个按键按下后的30秒内输入密码),报警(即若输入密码错误1或2次,则每次短报警5S,若输错三次密码或30S内没有开锁则长报警),开锁(对应的指示灯发生变换)的功能。四、电路图4.1系统时钟产生4.1.1利用锁相环产生输出信号的设置 如下图所示是扫描时钟的电路图;从中可看到inclk0是输入口,PLL的输入inckl0时钟是50Mhz;c0的时钟频率为50MHz,相位差为0ns;PLL输出时钟c2的时钟频率为50MHZ,相位差为10ns4.1.2时钟产生模块电路4.2 按键去抖4.2.1 重要性通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。 为了使按键信息正确地输出,即消除因为按键抖动而引起输出不必要的错误和保证键入信息通过传输不出错,按键去抖电路是必须的。抖动时间的长短由按键的机械特性决定,一般为5ms10ms。这是一个很重要的时间参数,在很多场合都要用到。按键按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。4.2.2 按键去抖模块4.3按键综合与按键计数模块4.4密码存储与报警电路4.4.1密码存储变量为pwo【3;0】,密码输入存储变量为pwto【3;0】。当输入密码与存储密码相等时,输出right为高电平,error为低电平,密码正确。此时的开发板上D5亮。当输入密码与存储密码相等时,输出right为低电平,error为高电平,密码错误。此时的开发板上D4亮。4.5 系统控制 电路输入错误信号后Ctrl电路30S计时,并给出5S报警信号和30S报警信号第一次输入错误报警5S;第二次输入错误报警30S;4.6报警电路的实现当EN为低电平时beep1k持续输出1KHZ的占空比百分之五十的脉冲信号,从而驱动蜂鸣器。五,心得体会 这次的课程设计安排在了考试以后,上学期的VHDL语言已经有些生疏了,这给编程带来了一些难度,但是经过复习还是重新熟悉了编程的方法和技巧。在写程序的时候有时候不注意仿真,犯了想当然的毛病,认为程序会实现想象中的逻辑功能,但实际不然,所以在编程过程中,不能单凭想象来做,必须写完一部分后就进行一次仿真,及时发现问题,及时改正,避免可在写完程序之后才发现错误,这时再修改就会很麻烦了。 这次的课程设计标题是密码锁设计,通过在查阅资料的过程中了解了电子密码锁的发展前景和FPGA的广泛应用,在日常生活中会有许多的电子设备都与FPGA有关,因此学好EDA技术对自己的以后的发展会有很大的帮助。六、实物图将程序和电路下载到试验箱上我们可以直接的看到它的硬件实现功能情况。按键8代表电路图中的enter_1(设置密码确认键),按键7代表enter_2(输入密码确认键),按键3到按键6代表四位二进制密码输入键。D8设置为绿灯,D7设置为红灯七、参考文献【1】谭会生、瞿遂春,EDA技术综合应用实例与分析,西安电子科技大学出版社,2004【2】高有堂,EDA技术及应用实践,清华大学出版社,2006【3】亿特科技,CPLD/FPGA应用系统设计与产品开发,人民邮电出版社,2005【4】曹昕燕、周凤臣等,EDA技术实验与课程设计,清华大学出版社,2006八,源代码因为有了这么多帮助我的人,我才能走到今天。衷心地祝福每个人事事顺心,幸福。module beep(input en,input CLK,output beep1k);integer DIV_KHZ = 48_000;reg31:0cnt_khz;reg clk_1k;always(posedge CLK)beginif(en=0)beginif(cnt_khz = DIV_KHZ/2)begin cnt_khz = 32b0; clk_1k = !clk_1k;endelse cnt_khz = cnt_khz + 1b1;Endendassign beep1k = clk_1k;Endmodulemodule cnt(input flag5s, input flag30s, input clk, output finsh); parameter integer clkf=1_000_000; integer number5s;integer number30s;reg finshq=0;always(posedge clk)begin if(flag5s=1&flag30s!=1)begin if(number5s=5*clkf-1)begin number5s=0;finshq=1;endelse beginnumber5s=number5s+1;finshq=0;endendif(flag30s=1)begin if(number30s=30*clkf-1)begin number30s=0;finshq=1;endelse begin number30s=number30s+1;finshq=0;End endif(flag30s=0)&(flag5s=0) finshq=0;Endassign finsh=finshq;endmodulemodule compare( input 1:0key , input 2:0timep, input clk, input savepw, output error, output right, output 3:0pwtooutput 3:0pwo );reg 3:0pw=0;reg 3:0pwt=0;reg errorq =0;reg rightq =0;reg savepwt;always (posedge clk)begin if(key!=0)&(savepw=0)begincase (timep2:0)3b001:begin pwt0=key1;end3b010:begin pwt1=key1;end3b011:begin pwt2=key1;end3b100:begin pwt3=key1;endendcaseEndif(key!=0)&(savepw!=0)begin case (timep2:0)3b001:begin pw0=key1;end3b010:begin pw1=key1;end3b011:begin pw2=key1;end3b100:begin pw3=key1;endendcaseendendalways (posedge clk)begin if(key!=0) savepwt=savepw; if(pwt!=pw)&(timep=3b100)&(savepwt=0) begin rightq=0;errorq=1; end else if(pwt=pw)&(timep=3b100)&(savepwt=0)begin rightq=1;errorq=0; end else begin rightq=0;errorq=0; endend assign error=errorq;assign right=rightq;assign pwto3:0 = pwt3:0;assign pwo 3:0 = pw 3:0;Endmodulemodule ctrl(input error,input right,input clk,input finish,input count30s,output flag5s,output flag30s); reg 1:0errorn=0;reg flag_error;reg flag_errorb;reg flag5sq=0;reg flag30sq=0;reg count30sb;reg count30sq2;integer number30s;integer clkf=1_000_000;initial begin flag_error=0; flag_errorb=0;endalways(posedge clk)begin flag_error=error;if(flag_errorb=0)&(flag_error=1b1)&(right=0) beginerrorn=errorn+1;flag5sq=1;flag_errorb=flag_error;endelse flag_errorb=flag_error;if(errorn=2b11)beginflag30sq=1;errorn=0;end if(finish!=0)begin flag30sq=0;flag5sq=0;endif(count30s=1)begin if(number30s=30*clkf-1)begin number30s=0;flag30sq=1;errorn=0;endelse number30s=number30s+1;if(right=1b1) number30s=0;endend assign flag5s = flag5sq;assign flag30s = flag30sq;endmodulemodule enable (input flag5s,input flag30s,input clk,output en);reg enq;always(posedge clk)begin if (flag5s=0)&(flag30s=0)enq=1b1;elseenq=0;endassign en=enq;Endmodulemodule keytansform(input key1,input key2,input key3,input key4,input clk,input en,input flag_30s,output 1:0keyout,output 2:0timep,output savep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论