1 / 20
文档名称:

基于Verilog HDL密码锁设计.docx

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

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

分享

预览

基于Verilog HDL密码锁设计.docx

上传人:pppccc8 2020/9/23 文件大小:770 KB

下载得到文件列表

基于Verilog HDL密码锁设计.docx

文档介绍

文档介绍:基于VerilogHDL密码锁设计摘要随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未來使用的趋势。本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。使用EDA环境完成电路的系统综合设计和仿真。用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。本设计基于VerilogHDL语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为蜂鸣器模块、显示模块、控制模块、顶层模块进行了介绍,给出各个模块的主耍代码,在对各个模块的功能进行仿真。关键字密码锁Ver订ogHDLQuartusII总体设计密码锁分为四个模块:①顶层模块、②显示模块、③蜂鸣器模块、銅制模块。其屮由顶层模块调其他分模块來实现密码锁功能。密码锁功能:由12个拨码开关设置三位密码(0-9)再输入密码***,密码止确,指示灯亮***成功。密码输入错误,蜂鸣器响五秒,表示***失败°设计思路:木祐"111007%方台匕宓/;几心亡•^宓/卫口讣打左洛加/m"力厶片、1•宓/;〃左*加、牛比切66、用太,平琦狭11秒年屮,农小加贝天炊。调托部分顶层模块密码设置12个拨码开关显示部分七段数码管报警部分蜂鸣器V图1・0总体框图模块功能其及主要代码顶层模块实现几个模块的配合工作,它能实现对密码的设置和显示,同吋在密码正确吋吋灯亮,在密码错误吋蜂鸣器发出五秒钟的响声。程序如下:moduledingceng(nO,nl,n2,n3,n4,n5,n6,n7,n8,n9,set,close,clkl,clk2,clk3,lock,alarm,Q,ssl,ssO);inputnO,nl,n2,n3,n4,n5,n6,n7,n8,n9;inputset,close;inputclkl,clk2,clk3;outputlock,alarm,ssl,ssO;output[6:0]Q;reglock,alarm;regssO,ssl;reg[6:0]Q;wire[3:0]XI,X2,X3;wireX4,X5;codeul(.lock(lock),.warning(Xd),.numl(XI),.num2(X2),.num3(X3),.elk(clkl),・nO(nO),・nl(nl),・n: ),.n4(n4),.n5(n5),.116(n6),.n7(n7),.n8(n8),.n9(n9),.set(seiCLKCOUT)se));showu2(.A(X1),.B(X2),.( Lk2),.Q(Q[6:0]),.ssl(ssl),.ssO(ssO));speakeru3(•ENA(X4/,.匸丿,•COUT(alarm));-种一体化结构的电子讯响器,采用直流电压供电,广泛应用各类电子产品屮作发声器件。如图为其原理图::程序共有两个输入信号分别为ENA和CLK2,,个输出信号COUTo当从信号输入模块检测到有开关输入吋,信号E\A已置1,CLK2上升沿到来吋,有程序使COUT为1,蜂鸣器发出报警信号,并且进入一个5秒钊啲循环,时间到达时,跳出循环,蜂鸣器停止报警。需序如下:modulespeaker(ENA,CLK2,COUT); //ENA为使能信号CLK为吋钟信号规定工作频率inputENA,CLK2;outputCOUT;regCOUT;reg[3:0]QI;always@(posedgeCLK2)//CLK2为敏感信号begin讦(EXA&&QK6)〃当ENA为1并且Ql小于6吋执行下面的语句Q1=Q1+1;ifCena)Ql二0;//ENA为0时,执行下面的语句endalwaysbeginif(Ql=6||Q1=O)COUT二'bO;elseCOUT='bl;,原理简单易于实现,将BCD码经译码后显示成十进制的数字显示模块功能实现:模块共有四个输入信号A、、CLK,三个输出信号分别为Q、SSI、SS2。SS1、SS2可对三个数码管进行片选,使它们分别亮。八、B、C接段选,以控制数码管显示什么数字。程序如下:moduleshow(A,B,C,elk,Q,ssl,ssO);input[3:0]A,B,C;inputelk;output[6:0]Q;outputssl,ssO;reg[l:0]M;regssO,ssl;reg[6:0]Q;always©(posedgeelk)beginM二M+l;if(M二二'bl1)M<二'bOO;endalways©(posedgeelk)begini