ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:104.77KB ,
资源ID:9892864      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9892864.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA密码锁课设.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EDA密码锁课设.docx

1、EDA密码锁课设1设计意义电子技术获得了飞速的发展,在其推动下,现在电子产品几乎渗透了社会的各领域,有力地推动了社会生产里的发展和社会信息化程度的提高,同时也是使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。EDA技术在进入21世纪后,得到了很大的发展,其基本特征是采用高级语言描述,具有系统级仿真和综合能力。VHDL硬件描述语言是设计源文件可以采用类似与C语言的书写形式,并采用结构设计方法。可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持。EDA技术在进入21世纪后,由于更大规模的FPGA和凹m器件的不断推出,在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不

2、断更新、增加,使电子EDA技术得到了更大的发展。电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SoC高效低成本设计技术的成熟。随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。可以说电子EDA技术是电子设计领域的一场革命。传统的“固定功能集成块十连线”的设计方法正逐步地退出历史舞台,而基

3、于芯片的设计方法正成为现代电子系统设计的主流。这不仅是提高设计效率的需要,更是时代发展的需求,只有攀握了EDA技术才有能力参与世界电子工业市场的竞争,才能生存与发展。随着科技的进步,电子产品的更新日新月异,EDA技术作为电子产品开发研制的源动力,已成为现代电子设计的核心。数字密码锁是在实际应用中使用极其广泛的一种数字电路,它的主要功能是用来对某些物品进行加密保护,目的是避免无权人员进行越权操作。随着人们生活水平的提高,密码锁作为家庭防盗卫士的作用日趋重要,它与普通机械锁相比有一些独特的优势,如:保密性强,防盗性能好,可以不用钥匙,只要记住密码即可开锁。所以,具有防盗报警功能的数字密码锁代替安全

4、性较差的机械锁已经成为必然趋势。2 设计原理本系统是基于EDA作为开发工具,VHDL语言为硬件描述语言,QUARTUS II作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标。本系统具体采用元件例化的方法将各个工作模块连接在一起,实现系统完整的功能。数字密码锁的系统结构框图如图1所示。密码锁密码由3位十进制数字组成,初始密为“000”,密码由用户随意设置,当密码输入正确时开锁,密码输入错误时报警。控制器是整个系统的功能核心,接受按键和其它模块传来的信息。然后,根据系统的功能将不同的控制信号送到各个模块;比较器用来比较输入数据和寄存器的数据是否相等,结果送给控制器;寄存

5、器在密码数据校验时,输出密码以供比较,在修改密码时,保存新的密码信息;钥匙信号控制锁的开和关;报警信号可接到LED或其它防盗设备上。按“安锁”键,将锁闭合,开锁时,先按“输入密码”键,输入密码,再按“确认”键。若输入密码有误,则报警,只有在开锁状态下才可设置新密码,应该先按“修改密码”键,输入新密码,然后按“确认”键。3 仿真分析3.1 整体波形仿真在数字密码锁代码编写完成后,用QUARTUS II对其进行编译并仿真,整个系统的仿真波形如图2所示。可以看到,系统的初始密码为“000”,按“输入密码”键(start)后,“钥匙信号”(key)变为高电平,再按“确认”键(enter),此时系统为开

6、锁状态;在此状态下,按“修改密码”键(ps_ch),输入新密码“111”,再按“确认”键(entet);按“安锁”键(lock),锁闭合(key变为低电平);再按“输入密码”键(start),此时输入密码“000”,然后按“确认”键(enter),系统报警(warn),因为新密码已变为“111”;再次按“输入密码”键(start),此时输入密码“111”,“钥匙信号”(key)变为高电平,报警信号(warn)变为低电平,然后按“确认”键(enter)。图2 数字密码锁整体仿真波形3.2 模块波形仿真(1) 寄存器模块波形仿真图3是寄存器模块的仿真波形。m的初始值为000。当en=1时,寄存器将

7、data_in的数据赋给m,当en=0时,寄存器将m的数据赋给data_out。图3 寄存器模块波形仿真(2) 控制器模块波形仿真 图4是控制器模块的仿真波形。按“输入密码”键(statr),再使“确认”键(entet)、“比较信号”键分别为高电平有效,“钥匙信号”(key)变为高电平,系统处于开锁状态;在此状态下,按“修改密码”键(ps_ch),计数器时钟信号(cnt_clk)有效计数,按“安锁”键(lock),锁闭合,钥匙信号(key变为低电平);使“确认”键(entet)为高电平、“比较信号”键为低电平,这时再按“输入密码”键(start),钥匙信号(key变为低电平),系统报警(war

8、n)。图4 控制器模块波形仿真(3) 比较器模块波形仿真图5是比较器模块的仿真波形。在数字密码锁中,比较器模块的功能是将输入数据与寄存器数据进行比较,结果送入控制器模块。比较器的具体工作原理是:当a和b相等时,c输出为1,不相等时为0。图5 比较器模块波形仿真3.3 系统整体封装图如图6所示,为顶层文件整体封装图。图中有六个输入端口,两个输出端口。图6 整体封装图4 设计总结这次EDA课程设计历时两个星期,在整整两个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,

9、让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示:在设定开锁信号后,但是钥匙信号有时候有,有时候没有,这让我非常的郁闷。后来,在数十次的调试之后,才发现是因为定义的中间信号对于器件来说有延迟时,以至于总是不能成功,后来把中间信号改成变量,于是得到了正确的仿真结果。另外系统时钟的设置也存在一点小问题,经过调试后,困难

10、被克服。最后,得以观察到完整正确的仿真结果。本次课设采用ACEX1K-EP1K30TC144-3实验开发系统对密码锁系统进行硬件仿真分析及测试,引脚锁定采用模式五。通过在实验箱上对设计进行操作及验证,验证结果与预计相符。本次课设中,在连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学

11、的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。总的来说,这次设计的数字秒表还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给

12、过我帮助的所有同学和各位指导老师再次表示忠心的感谢!5 参考文献1. 藩松,黄继业. EDA技术实用教程. 科学出版社,2010. 6.2. 刘江海. EDA技术课程设计. 华中科技大学出版社,2009.5. 附录源代码:-控制模块-library ieee;use ieee.std_logic_1164.all;entity control is port(clk,lock,start,ps_ch,enter,yes:in std_logic; warn,key,wr,en:out std_logic);end; architecture bhv of control istype stat

13、e is(inlock,input,right1,wrong,unlock,change,alarm);signal ps,ns:state;begin process(clk) begin if clkevent and clk=1then pskey=0;en=0;warn=0;wr=0; if(start=1)then ns=input; else nsen=1;wr=0;key=0;warn=0; if(yes=1)then ns=right1; else nsen=0;wr=0;key=0;warn=0; if enter=1 then ns=unlock; else nsen=0;

14、wr=0;key=0;warn=0; if enter=1then ns=alarm; else nskey=1;warn=0;en=1;wr=0; if lock=1then ns=inlock; elsif ps_ch=1then ns=change; else nswarn=1;key=0;en=0;wr=0; if enter=0then ns=inlock; else nsen=1;wr=1;warn=0;key=1; if enter=1then ns=unlock; else ns=change; end if; end case; end process;end;-寄存器模块-

15、library ieee;use ieee.std_logic_1164.all;entity reg isport(clk,wr,en:in std_logic; data_in:in std_logic_vector(2 downto 0); data_out:out std_logic_vector(2 downto 0);end;architecture bhv of reg isbegin process(clk) variable m:std_logic_vector(2 downto 0); begin if clkevent and clk=1 then if en=1and

16、wr=1then m:=data_in; end if; if wr=0and en=1 then data_out=m; end if; end if; end process;end; -比较器模块-library ieee;use ieee.std_logic_1164.all;entity cmp isport(a,b:in std_logic_vector(2 downto 0); c:out std_logic);end;architecture bhv of cmp isbegincclk,lock=lock,start=start, ps_ch=ps_ch,enter=enter,yes=g,key=key, warn=warn,wr=d,en=e);u2:reg port map(clk=clk,wr=d,en=e,data_in=key_in,data_out=f);u3:cmp port map(a=key_in,b=f,c=g);end;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1