EDA密码锁课设Word文档下载推荐.docx

上传人:b****1 文档编号:5632620 上传时间:2023-05-05 格式:DOCX 页数:11 大小:104.77KB
下载 相关 举报
EDA密码锁课设Word文档下载推荐.docx_第1页
第1页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第2页
第2页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第3页
第3页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第4页
第4页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第5页
第5页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第6页
第6页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第7页
第7页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第8页
第8页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第9页
第9页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第10页
第10页 / 共11页
EDA密码锁课设Word文档下载推荐.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA密码锁课设Word文档下载推荐.docx

《EDA密码锁课设Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EDA密码锁课设Word文档下载推荐.docx(11页珍藏版)》请在冰点文库上搜索。

EDA密码锁课设Word文档下载推荐.docx

 

2设计原理

本系统是基于EDA作为开发工具,VHDL语言为硬件描述语言,QUARTUSII作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标。

本系统具体采用元件例化的方法将各个工作模块连接在一起,实现系统完整的功能。

数字密码锁的系统结构框图如图1所示。

密码锁密码由3位十进制数字组成,初始密为“000”,密码由用户随意设置,当密码输入正确时开锁,密码输入错误时报警。

控制器是整个系统的功能核心,接受按键和其它模块传来的信息。

然后,根据系统的功能将不同的控制信号送到各个模块;

比较器用来比较输入数据和寄存器的数据是否相等,结果送给控制器;

寄存器在密码数据校验时,输出密码以供比较,在修改密码时,保存新的密码信息;

钥匙信号控制锁的开和关;

报警信号可接到LED或其它防盗设备上。

按“安锁”键,将锁闭合,开锁时,先按“输入密码”键,输入密码,再按“确认”键。

若输入密码有误,则报警,只有在开锁状态下才可设置新密码,应该先按“修改密码”键,输入新密码,然后按“确认”键。

3仿真分析

3.1整体波形仿真

在数字密码锁代码编写完成后,用QUARTUSII对其进行编译并仿真,整个系统的仿真波形如图2所示。

可以看到,系统的初始密码为“000”,按“输入密码”键(start)后,“钥匙信号”(key)变为高电平,再按“确认”键(enter),此时系统为开锁状态;

在此状态下,按“修改密码”键(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时,寄存器将data_in的数据赋给m,当en=0时,寄存器将m的数据赋给data_out。

图3寄存器模块波形仿真

(2)控制器模块波形仿真

图4是控制器模块的仿真波形。

按“输入密码”键(statr),再使“确认”键(entet)、“比较信号”键分别为高电平有效,“钥匙信号”(key)变为高电平,系统处于开锁状态;

在此状态下,按“修改密码”键(ps_ch),计数器时钟信号(cnt_clk)有效计数,按“安锁”键(lock),锁闭合,钥匙信号(key变为低电平);

使“确认”键(entet)为高电平、“比较信号”键为低电平,这时再按“输入密码”键(start),钥匙信号(key变为低电平),系统报警(warn)。

图4控制器模块波形仿真

(3)比较器模块波形仿真

图5是比较器模块的仿真波形。

在数字密码锁中,比较器模块的功能是将输入数据与寄存器数据进行比较,结果送入控制器模块。

比较器的具体工作原理是:

当a和b相等时,c输出为1,不相等时为0。

图5比较器模块波形仿真

3.3系统整体封装图

如图6所示,为顶层文件整体封装图。

图中有六个输入端口,两个输出端口。

图6整体封装图

4设计总结

这次EDA课程设计历时两个星期,在整整两个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。

特别是当每一个子模块编写调试成功时,心里特别的开心。

但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。

在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示:

在设定开锁信号后,但是钥匙信号有时候有,有时候没有,这让我非常的郁闷。

后来,在数十次的调试之后,才发现是因为定义的中间信号对于器件来说有延迟时,以至于总是不能成功,后来把中间信号改成变量,于是得到了正确的仿真结果。

另外系统时钟的设置也存在一点小问题,经过调试后,困难被克服。

最后,得以观察到完整正确的仿真结果。

本次课设采用ACEX1K-EP1K30TC144-3实验开发系统对密码锁系统进行硬件仿真分析及测试,引脚锁定采用模式五。

通过在实验箱上对设计进行操作及验证,验证结果与预计相符。

本次课设中,在连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

总的来说,这次设计的数字秒表还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。

最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

5参考文献

1.藩松,黄继业.《EDA技术实用教程》.科学出版社,2010.6.

2.刘江海.《EDA技术课程设计》.华中科技大学出版社,2009.5.

附录

源代码:

-------------------控制模块-----------------------

libraryieee;

useieee.std_logic_1164.all;

entitycontrolis

port(clk,lock,start,ps_ch,enter,yes:

instd_logic;

warn,key,wr,en:

outstd_logic);

end;

architecturebhvofcontrolis

typestateis(inlock,input,right1,wrong,unlock,change,alarm);

signalps,ns:

state;

begin

process(clk)

begin

ifclk'

eventandclk='

1'

then

ps<

=ns;

endif;

endprocess;

process(ps,lock,start,ps_ch,enter,yes)

casepsis

wheninlock=>

key<

='

0'

;

en<

warn<

wr<

if(start='

)thenns<

=input;

elsens<

=inlock;

wheninput=>

if(yes='

=right1;

=wrong;

whenright1=>

ifenter='

thenns<

=unlock;

whenwrong=>

thenns<

=alarm;

whenunlock=>

iflock='

elsifps_ch='

=change;

whenalarm=>

whenchange=>

endcase;

-----------------寄存器模块--------------------

entityregis

port(clk,wr,en:

data_in:

instd_logic_vector(2downto0);

data_out:

outstd_logic_vector(2downto0));

architecturebhvofregis

variablem:

std_logic_vector(2downto0);

then

ifen='

andwr='

thenm:

=data_in;

ifwr='

anden='

thendata_out<

=m;

--------------比较器模块-----------------------

entitycmpis

port(a,b:

c:

architecturebhvofcmpis

c<

whena=belse

'

------------------顶层文件---------------------

entitytopis

port(clk,lock,start,ps_ch,enter:

key_in:

warn,key:

architecturebhvoftopis

componentcontrolis

endcomponent;

componentregis

componentcmpis

signald,e,g:

std_logic;

signalf:

u1:

controlportmap(clk=>

clk,lock=>

lock,start=>

start,

ps_ch=>

ps_ch,enter=>

enter,yes=>

g,key=>

key,

warn=>

warn,wr=>

d,en=>

e);

u2:

regportmap(clk=>

clk,wr=>

e,data_in=>

key_in,data_out=>

f);

u3:

cmpportmap(a=>

key_in,b=>

f,c=>

g);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2