1 / 14
文档名称:

VHDL密码锁设计.docx

格式:docx   大小:567KB   页数:14页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

VHDL密码锁设计.docx

上传人:菩提本无树 2023/2/14 文件大小:567 KB

下载得到文件列表

VHDL密码锁设计.docx

相关文档

文档介绍

文档介绍:该【VHDL密码锁设计 】是由【菩提本无树】上传分享,文档一共【14】页,该文档可以免费在线阅读,需要了解更多关于【VHDL密码锁设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。Documentserialnumber【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】
VHDL密码锁设计
VHDL语言及应用课程设计论文
----VHDL平台下
密码锁的设计
学院:电子信息学院
专业:
学号:
姓名:
指导老师:
团队成员:
完成日期:
目录
-----------------------------------------------------------1
--------------------------------------------------------------------------------------------------------1
---------------------------------------------2
密码锁设计原理--------------------------------------------------2
密码锁系统框图--------------------------------------------------2
密码锁设计提示--------------------------------------------------2
-----------------------------------------3
-----------------------------5
密码设定锁存器源程序及其仿真分析--------------------------------5
密码输入锁存器源程序及其仿真分析--------------------------------6
***控制系统源程序及其仿真分析----------------------------------8
比较器源程序及其仿真分析----------------------------------------9
LED显示源程序及其仿真分析--------------------------------------11
顶层源文件的仿真分析-------------------------------------------12
------------------------------------13
电路结构-------------------------------------------------------13
管脚分配-------------------------------------------------------14
程序下载调试过程-----------------------------------------------14
------------------------------------------------15
------------------------------------------------------16
------------------------------------------------------16

随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。因此人们对锁要求甚高,既要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。
数字密码锁是二十一世纪制锁业的一次革命,锁的特点是不用钥匙、无锁孔、机械传动、不易损坏、不磨损、不易被破译、可多次更换密码、换号不换锁、一把锁多个密码,具有防拨、防砸、防撬、防堵等功能。安装门锁时不破坏原门的结构,避免用钥匙开启旋芯式锁具的一切烦恼(如丢、落、拆、堵门被反锁等)。数字密码锁是利用数字密码来开启的锁具,其重复概率极低,有着很高的安全性;而旋芯式锁具使用不够安全。通过对社会各阶层千余人的调查,百分之百的人对目前身上挂着的串串钥匙无可奈何,都愿意一身轻松没有任何顾虑的出入家门,都愿意用上一种既安全方便又不用钥匙的锁具。因此,数字密码锁产品的市场发展前景极为广阔。
而EDA技术设计电子系统具有用软件的方式设计硬件,设计过程中可用有关软件进行各种仿真,系统可现场编程、在线升级,整个系统可集成在一个芯片上等特点;不但设计周期短、设计成本低,而且将提高产品或设备的性能,缩小产品体积、提高产品的技术含量,提高产品的附加值。
可见,用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法,使设计过程达到高度自动化。
本设计的各个模块由相应的VHDL程序具体实现,并在QuartusⅡ环境下进行了整体电路的模拟仿真,最终实现“密码锁设计”的要求。

,学会用VHDL语言来编程解决实际问题;
,掌握仿真的技巧;
,检验电路的功能;
,实现所要求的功能。

1、安锁状态。
按下开关键SETUP,密码设置灯亮时,方可进行密码设置操作。设置初始密码0~9(或二进制8位数),必要时可以更换。再按SETUP键,密码有效。
***过程。
、按启动键(START)启动***程序,此时系统内部应处于初始状态。
、依次键入0~9(或二进制8位数)。
、按开门键(OPEN)准备开门。
若按上述程序执行且拨号正确,则开门指示灯A亮,若按错密码或未按上述程序执行,则按动开门键OPEN后,报警装置鸣叫、灯B亮。
(4)、***处理事务完毕后,应将门关上,按SETUP键使系统重新进入安锁状态。若在报警状态,按SETUP键或START键应不起作用,应另用一按键RESET才能使系统进入安锁状态。
使用者如按错号码可在按OPEN键之前,按START键重新启动***程序。
设计符合上述功能的密码锁,并用层次化方法设计该电路。
用功能仿真方法验证,通过观察有关波形确认电路设计是否正确。
完成电路设计后,通过在实验系统中下载,验证设计的正确性。

密码锁设计原理
如下示框图,密码锁系统主要由***控制,设置密码的锁存器,输入密码的锁存器,比较器,LED显示和报警系统几个部分组成。每一个模块功能的实现都是通过VHDL语言实现的,并通过顶层电路与例化语句将功能模块整合起来,之后对整个系统进行模拟仿真和硬件实现。
密码锁系统框图
密码锁设计提示
(1)锁存器:用于实现设定密码和输入密码的锁存。
(2)比较器:用于将设定密码与输入密码相比较。其中,CLK为外部输入的时钟信号。若输入密码正确,则A灯亮;否则B灯亮,同时比较器输出与CLK一样的信号,驱动蜂鸣器发出报警声。
(3)***控制:当反馈信号下降沿来到时,***控制输出低电平,用于在输入错误密码后禁止再次安锁;当RESET脚为高电平时,***控制输出高电平,打开与门,这时锁存器1使能端的变化受控于SETUP键,重新进入安锁状态。
(4)LED显示:用于设定密码或输入密码的显示。此项设计的目的是为了在下载演示时,能清楚地看到设置和输入的密码值。

调用各模块形成元件例化语句:
LIBRARYIEEE;
USEtopfileIS
PORT(SETUP,RESET,START,OPN,CLK:INSTD_LOGIC;
setpassword:INSTD_LOGIC_VECTOR(7DOWNTO0);
inputpassword:INSTD_LOGIC_VECTOR(7DOWNTO0);
led_A,led_B,warner:OUTSTD_LOGIC;
DOUT11,DOUT12,DOUT21,DOUT22:OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDENTITYtopfile;
ARCHITECTUREbrfOFtopfileIS
COMPONENTlockcontrol
PORT(RESET,FEEDBACK:INSTD_LOGIC;
Y:OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTcodeset
PORT(ENABLE:INSTD_LOGIC;
PASEWORD:INSTD_LOGIC_VECTOR(7DOWNTO0);
Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDCOMPONENT;
COMPONENTcodeinput
PORT(ENABLE:INSTD_LOGIC;
PASEWORD:INSTD_LOGIC_VECTOR(7DOWNTO0);
Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDCOMPONENT;
COMPONENTcomparator
PORT(OPN,CLK,RESET:INSTD_LOGIC;
rightpassword,password:INSTD_LOGIC_VECTOR(7DOWNTO0);
A,B,warner:OUTSTD_LOGIC;
D11,D12,D21,D22:OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOMPONENT;
COMPONENTAND2
PORT(a,b:INSTD_LOGIC;
c:OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTNOR2
PORT(e,d:INSTD_LOGIC;
f:OUTSTD_LOGIC);
ENDCOMPONENT;
COMPONENTLED
PORT(DATA:INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT7:OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDCOMPONENT;
SIGNALnet1,net2:STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALnet8,net9,net10,net11:STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALnet3,net4,net5,net6,net7:STD_LOGIC;
BEGIN
U0:lockcontrolPORTMAP(RESET=>RESET,feedback=>net3,y=>net4);
U1:AND2PORTMAP(a=>net3,b=>START,c=>net5);
U2:AND2PORTMAP(a=>SETUP,b=>net4,c=>net6);
U3:CODEINPUTPORTMAP(PASEWORD=>inputpassword,ENABLE=>net5,Q=>net1);
U4:codesetPORTMAP(PASEWORD=>setpassword,ENABLE=>net6,Q=>net2);
U5:comparatorPORTMAP(rightpassword=>net2,password=>net1,OPN=>OPN,CLK=>CLK,A=>led_A,B=>net7,warner=>warner,RESET=>RESET,D12=>net9,D11=>net8,D21=>net10,D22=>net11);
U6:NOR2PORTMAP(e=>net7,d=>net7,f=>net3);
U7:LEDPORTMAP(DATA=>net8,DOUT7=>DOUT11);
U8:LEDPORTMAP(DATA=>net9,DOUT7=>DOUT12);
U9:LEDPORTMAP(DATA=>net10,DOUT7=>DOUT21);
U10:LEDPORTMAP(DATA=>net11,DOUT7=>DOUT22);
led_B<=net7;
ENDARCHITECTUREbrf;

密码设定锁存器源程序及其仿真波形
源程序为:
LIBRARYIEEE;
USEcodesetIS
PORT(
ENABLE:INSTD_LOGIC;
PASSWORD:INSTD_LOGIC_VECTOR(7DOWNTO0);
Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDcodeset;
ARCHITECTUREbhvOFcodesetIS
BEGIN
PROCESS(ENABLE,PASSWORD)BEGIN
IFENABLE='1'THEN
Q(7)<=PASSWORD(7);
Q(6)<=PASSWORD(6);
Q(5)<=PASSWORD(5);
Q(4)<=PASSWORD(4);
Q(3)<='0';
Q(2)<='0';
Q(1)<='0';
Q(0)<='0';
ENDIF;
ENDPROCESS;
ENDbhv;
仿真波形图为:
使能控制端高电平时:
使能控制端变回低电平时:
由于硬件设备限制,不能检验全部端口,因此将低位的四位设置为低电平,通过改变使能控制端与高位的电平观察正确性。
密码输入锁存器源程序及其仿真波形
源程序为:
LIBRARYIEEE;
USEcodeinputIS
PORT(ENABLE:INSTD_LOGIC;
PASSWORD:INSTD_LOGIC_VECTOR(7DOWNTO0);
Q:OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDcodeinput;
ARCHITECTUREbhvOFcodeinputIS
BEGIN
PROCESS(ENABLE,PASSWORD)BEGIN
IFENABLE='1'THEN
Q(7)<=PASSWORD(7);
Q(6)<=PASSWORD(6);
Q(5)<=PASSWORD(5);
Q(4)<=PASSWORD(4);
Q(3)<='0';
Q(2)<='0';
Q(1)<='0';
Q(0)<='0';
ENDIF;
IFENABLE='0'THEN
Q<="00000000";
ENDIF;
ENDPROCESS;
ENDbhv;
仿真波形为:
当使能信号为低电平,锁存器输出状态保持不变,输入信号没有读入;当使能信号有低电平变为高电平,锁存器开始读入输入的信号。
***控制系统源程序及其仿真波形
源程序为:
LIBRARYIEEE;
USElockcontrolIS
PORT(FEEDBACK,RESET:INSTD_LOGIC;
Y:OUTSTD_LOGIC);
ENDlockcontrol;
ARCHITECTUREbhvOFlockcontrolIS
BEGIN
PROCESS(FEEDBACK,RESET)
BEGIN
Y<='1';
IFFEEDBACK='0'THEN
Y<='0';
ENDIF;
IFRESET='1'THEN
Y<='1';
ENDIF;
ENDPROCESS;
ENDbhv;
仿真波形为:
FEEDBACK为反馈信号,RESET为重置密码信号。当反馈信号下降沿来到时,***控制输出Y低电平,用于在输入错误密码后禁止再次安锁;当RESET脚为高电平时,***控制输出高电平。
比较器源程序以及仿真波形
源程序为:
LIBRARYIEEE;
USEcomparatorIS
PORT(rightpassword,password:INSTD_LOGIC_VECTOR(7DOWNTO0);
OPN,CLK,RESET:INSTD_LOGIC;
A,B,warner:OUTSTD_LOGIC;
D11,D12,D21,D22:OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDcomparator;
ARCHITECTUREbhvOFcomparatorIS
BEGIN
PROCESS(OPN,CLK,RESET,rightpassword,password)
BEGIN
D11(3)<=rightpassword(7);