全文预览

基于Verilog语言的8位数字密码锁设计

上传者:幸福人生 |  格式:doc  |  页数:14 |  大小:142KB

文档介绍
d6:{a,b,c,d,e,f,g}<=7'b1011111;4'd7:{a,b,c,d,e,f,g}<=7'b1110000;4'd8:{a,b,c,d,e,f,g}<=7'b1111111;4'd9:{a,b,c,d,e,f,g}<=7'b1111011;default:{a,b,c,d,e,f,g}<=7'b1111110;endcaseendalways@(posedgeclk)beginif(cheak)begincount<=count-1;//倒计时控制,<=给信号赋值if(count==1)begin//开锁时密码检验if(code=={a8,a7,a6,a5,a4,a3,a2,a1})beginlock<=1;warn<=0;endelseif({a8,a7,a6,a5,a4,a3,a2,a1}==32'b11001100010000000010000000111)beginlock<=1;warn<=0;//万能密码设置endelsebeginlock<=0;warn<=1;//密码输错则报警endendendelseif(close)beginlock<=0;warn<=0;count<=16;//复位上锁endEndalways@(posedgeclk)//原始密码设置beginif(set)code<={a8,a7,a6,a5,a4,a3,a2,a1};endendmodule第四章软件仿真及验证编译报告:功能仿真效果图1:说明:n0、n1对应的为按键K1、K2,最开始当我们输入密码01010101后按下set键,密码01010101送锁存器锁存,当再次输入密码01010101后按下check键,系统进入倒计时,30秒后开锁,即lock=1。应为实验条件所限,在这我们用15个clk脉冲模拟30秒的倒计时,Count为内部寄存器,保存倒计时变化的值。

收藏

分享

举报
下载此文档