EDA课程设计数字密码锁.docx

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

EDA课程设计数字密码锁.docx

《EDA课程设计数字密码锁.docx》由会员分享,可在线阅读,更多相关《EDA课程设计数字密码锁.docx(12页珍藏版)》请在冰点文库上搜索。

EDA课程设计数字密码锁.docx

EDA课程设计数字密码锁

 

摘要:

随着数字集成技术和电子设计自动化(EDA)技术的迅速发展,数字密码锁应运而生。

本文采用先进的EDA技术,利用QUARTUSⅡ工作平台和VHDL语言,设计了一种新型的数字密码锁,它不但可以完成锁具的基本功能,还能附加一些其他的智能,例如:

报警、识别功能,数字密码锁具功能齐全,安全系数高,有机械锁无可比拟的优越性,它的造价成本低,易于操作,越来越受到众多客户的青睐,可以优先占领市场有利份额。

关键词:

EDA技术;QUARTUSⅡ工作平台;VHDL语言;数字密码锁

 

1引言

1.1课程设计背景

数字密码锁随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,而且各种各样的电子产品也正在日新月异地向着高精尖技术发展。

由于电子产品的功能不断增加,使用也越来越方便,有些产品已经成为了人们日常生活中不可缺少的必备物品。

发展历史悠久的机械式门锁,因其功能单一,安全性能较差等缺点,必将被新一代的电子门锁所代替。

新颖的多功能电子门锁,集电子门锁、防盗报警器,门铃等功能于一身,而且还具有定时器呼唤,断电自动报知,显示屋内有无人和自动留言等诸多附加功能。

在未来的生活中,数字密码锁必将在学领域再创新的成绩,将给我们的生活带来更大的便利,前景不可估量。

1.2课程设计目的

1.掌握VHDL语言编程方法,通过实践加深对理论知识的理解。

2.学会QuartusⅡ软件的使用方法。

3.掌握数字密码锁的设计方法。

4.掌握波形仿真,学会分析实验现象,提高分析问题的能力。

1.3课程设计内容

设计一个数字密码锁,用户可输入4位的二进制数,可有用户任意输入正确时开锁,密码输入错误时报警.码可手动预置,并可进行修改密码,取消报警。

给出系统总体组成框图,设计思路,完成以上模块的VHDL实现及功能仿真,顶层文件及整体仿真。

2数字密码锁设计

2.1系统设计

根据系统的设计要求,系统设计采用自顶向下的设计方法。

顶层设计采用原理图的设计方式和系统的整体组装,分别由控制模块、寄存器模块、比较器模块等部分组成。

即按照这三个组成模块定义相应的芯片引脚和输入输出的参数。

2.2模块功能

系统主要由3个模块组成,分别是控制模块、寄存器模块、比较器模块。

2.2.1控制模块

控制模块采用有限状态机设计,将系统分为7个状态,即开锁状态(outlock)、安锁状态(inlock)、输入密码状态(input)、密码初验正确状态(right)、密码初验错误状态(wrong)、报警状态(alarm)、修改密码状态(change)。

状态转移图如图2-2-1。

enter=’0’

enter=’0’

图2-2-1状态转移图

系统上电时,处于开锁状态,当输入修改密码xiu信号时,系统进入修改密码状态;若输入安锁lock信号,系统进入安锁状态,锁闭合:

在安锁状态,输入输入密码start信号,系统进入输入密码状态;在输入密码状态,如输入密码内容和长度均正确,进入密码初验正确状态,如果密码错误,进入密码初验错误状态;在密码初验正确状态,输入确认信号enter时,进入开锁状态,在开锁状态kai信号等于‘1’;在密码初验错误状态,输入确认信号enter时,进入报警状态;在报警状态。

warn信号等于‘1’。

VHDL代码如下:

libraryieee;

useieee.std_logic_1164.all;

entitymimais

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

instd_logic;

warn,kai,wr,en:

outstd_logic);

end;

architecturebhvofmimais

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

signalps,ns:

state;

begin

process(clk)

begin

ifclk'eventandclk='1'then

ps<=ns;

endif;

endprocess;

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

begin

casepsis

wheninlock=>kai<='0';en<='0';warn<='0';wr<='0';

if(start='1')thenns<=input;

elsens<=inlock;

endif;

wheninput=>en<='1';kai<='0';warn<='0';wr<='0';

if(yes='1')thenns<=rightx;

elsens<=wrong;

endif;

whenrightx=>en<='0';kai<='0';warn<='0';wr<='0';

ifenter='1'thenns<=unlock;

elsens<=rightx;

endif;

whenwrong=>en<='0';kai<='0';warn<='0';wr<='0';

ifenter='1'thenns<=alarm;

elsens<=wrong;

endif;

whenunlock=>kai<='1';warn<='0';en<='0';wr<='0';

iflock='1'thenns<=inlock;

elsifxiu='1'thenns<=change;

elsens<=unlock;

endif;

whenalarm=>warn<='1';kai<='0';en<='0';wr<='0';

ifenter='1'thenns<=inlock;

elsens<=alarm;

endif;

whenchange=>en<='1';warn<='0';kai<='1';wr<='1';

ifenter='1'thenns<=unlock;

elsens<=change;

endif;

endcase;

endprocess;

end;

2.2.2比较模块

在数字密码器中,比较器模块的功能是对按键输入和寄存器模块的输出进行比较,然后将比较的结果送入到控制器模块。

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

当比较结果相等时,c输出为1;当比较结果不相等时,c的输出为0。

VHDL代码如下:

libraryieee;

useieee.std_logic_1164.all;

entitybiis

port(a,b:

instd_logic_vector(3downto0);

c:

outstd_logic);

end;

architecturebhvofbiis

begin

c<='1'whena=belse'0';

end;

2.2.3寄存模块

寄存器模块用于存放预设和修改后的密码,并在开锁时将所存密码输出到比较器与按键输入的密码进行比较,判断由按键输入密码是否正确的结果。

VHDL代码如下:

libraryieee;

useieee.std_logic_1164.all;

entityjiis

port(clk,wr,en:

instd_logic;

data_in:

instd_logic_vector(3downto0);

data_out:

outstd_logic_vector(3downto0));

end;

architecturebhvofjiis

signalm:

std_logic_vector(3downto0);

begin

process(clk)

begin

ifclk'eventandclk='1'then

if(en='1'andwr='1')then

data_out<=data_in;

m<=data_in;

elsedata_out<=m;

endif;

endif;

endprocess;

end;

3仿真分析

3.1控制模块的仿真

控制模块是系统的核心,其仿真波形如图3-1所示。

各端口功能如下:

输入信号:

clk输入时钟,lock安锁信号,start开始输入密码,xiu修改密码,enter密码确认,Yes密码比较。

输出信号:

warn警告信号,kai密码正误显示信号,wr寄存器读写信号,en密码输入使能。

图3-1控制模块仿真波形

图3-1控制器仿真波形

波形仿真分析:

起始初始密码为“0000”,安锁后锁关闭kai信号为‘0’;开锁时,按下start开锁键,密码比较yes信号为‘1’有效,输入密码正确,按下enter确认键,锁开,锁开标志信号kai为’1’;开锁状态下,按下xiu修改密码键,输入新密码后按确认键start,密码修改成功,再按下lock安锁,此时密码为新输入密码;按下输入密码键start输入密码键若输入密码错误,按下确认键enter后,报警warm信号有效。

3.2比较模块的仿真

比较器模块的工作原理是:

当比较结果相等时,输出为1;当比较结果不相等时,输出为0。

其仿真波形如图3-2。

各端口功能如下:

输入信号:

a按键输入的密码,b寄存器储存的密码。

输出信号:

c按键输入与寄存器的密码是否相等。

图3-2比较器仿真波形

波形仿真分析:

起始寄存器输出密码为“0001”,键盘输入为“0101”时不相等,所以输出c为0;当寄存器输出密码为“0011”,键盘输入为“0011”时相等,所以输出c为1,其他与此相同。

3.3寄存模块的仿真

开锁时将所存密码输出到比较器与按键输入的密码进行比较,达到判断由按键输入密码是否正确的结果。

图4是寄存器模块的仿真波形。

图3-3寄存器仿真波形

 

波形仿真分析:

当使能信号en和wr都有效时,将data_in输入的信号存储到寄存器中,无论输入信号data_in为多少,输出信号data_out都为寄存器所存内容。

其他情况下,输出data_out信号,不随data_in输入改变。

3.4系统的仿真波形

图3-4系统仿真波形

波形分析:

上电后,系统的初始密码为“0000”,按下start键由键盘key输入密码“0000”,输入密码正确按确认键enter键锁开按,锁关闭开锁输出标志信号kai无效为1,显示开锁;在开锁状态下按xiu修改密码键后,由键盘key输入新密码0001后按确认键enter密码修改成功,按lock键密码锁上锁,此时密码锁密码为新密码;若按下start键后输入的密码错误如图“1111”与密码锁密码“0000”不同,warm报警信号有效,锁不开且报警。

若按下start键后输入的密码正确如图“1111”与密码锁密码“1111”相同,kai开锁信号有效,锁开且不报警。

顶层文件VHDL代码如下:

libraryieee;

useieee.std_logic_1164.all;

entitytopis

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

instd_logic;

key:

instd_logic_vector(3downto0);

warn,kai:

outstd_logic);

end;

architecturebhvoftopis

componentmimais

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

instd_logic;

warn,kai,wr,en:

outstd_logic);

endcomponent;

componentjiis

port(clk,wr,en:

instd_logic;

data_in:

instd_logic_vector(3downto0);

data_out:

outstd_logic_vector(3downto0));

endcomponent;

componentbiis

port(a,b:

instd_logic_vector(3downto0);

c:

outstd_logic);

endcomponent;

signald,e,g:

std_logic;

signalf:

std_logic_vector(3downto0);

begin

u1:

mimaportmap(clk=>clk,lock=>lock,start=>start,

xiu=>xiu,enter=>enter,yes=>g,kai=>kai,

warn=>warn,wr=>d,en=>e);

u2:

jiportmap(clk=>clk,wr=>d,en=>e,data_in=>key,data_out=>f);

u3:

biportmap(a=>key,b=>f,c=>g);

end;

3.5系统的引脚锁定

如图3-5所示:

图3-5引脚锁定表

4设计总结

通过这次的课程设计,使我对EDA这门课程、对QuartusⅡ开发软件和FPGA实验开发系统有了一个更加深刻的认识。

我深深地被EDA的强大所震撼,QuartusⅡ开发软件虽然使用起来有些麻烦,但它的功能真的很强大,而且设计很自由,设计方式很多,能极大地满足当今社会高速发展的需要。

通过这次课程设计,我还懂得了理论与实际相结合的重要性。

我们只有把所学的理论知识与实践相结合起来,从实践中检验理论,才能真正为社会服务,并且我们也可以在实践中提高自己的实际动手能力和独立思考的能力,使自己更加适合当今社会的需要。

这次关于密码锁的课程设计,总的来说,还是比较成功的。

在设计的过程中遇到的问题,反映出来我的许多不足之处,我以后要努力克服缺点。

说真的,这次的课程设计真的很不容易,在过程中遇到了不少的问题。

如:

编写源程序时,经常不能通过。

就如在写顶层文件的程序时,遇到了不少的问题,各元件之间的连接、顶层文件程序与底层文件程序之间的连接以及信号的定义,总是有错误。

但在老师同学的帮助下,再加上自己不懈的努力,最终还是算比较顺利地做了出来。

经过这次的课程设计,使我以后的学习和生活受益匪浅,让我在以后的学习中更加注重理论与实践的结合,我应该感谢这次的设计。

参考文献

[1]VolneiA.Pedroni著,乔庐峰、王志功等译,VHDL数字电路设计教程.电子工业出版社,2010

[2]周立功,EDA实验与实践.第一版.北京航空航天大学出版社,2007

[3]潘松,黄继业。

《EDA技术实用教程》。

科学出版社,2010.6

[4]刘江海。

《EDA技术课程设计》。

华中科技大学出版社,2009.5

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

当前位置:首页 > 表格模板 > 合同协议

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

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