|
本帖最后由 愁苦忍着 于 2016-10-23 21:27 编辑
其实是一个课程设计的内容
简单数字密码锁
设计一个数字密码锁,假设预设密码为4位数:0000,当输入正确时输出为1,输入错误时输出为0。当输入值发生3次以上输入错误时,输出一个告警信号,即使第四、五次输入正确也输出告警信号。
自己是个新手。。。是在是找不出问题在哪,求大神花一点时间帮忙解决一下,非常感谢
module password(in,out,confirm,beep,rst,clk);
input [3:0] in; // 四位密码输入
input confirm; //密码确认
input rst,clk; //时钟,复位
output out; //输出
output beep; //警告输出
reg beep=1;
reg out=0; //输出临时变量
reg [3:0] errortime=4'b0000; //判断错误
reg [2:0] select;
parameter key =4'b0000;
parameter Idle =3'b000;
parameter start =3'b001;
parameter stt =3'b010;
always@(posedge clk)
if (!rst)
begin
select <=Idle;
out <=0;
beep <=1;
errortime<=4'b0000;
end
else
if(!confirm)
begin
case(select)
Idle :begin
if(in==key)
begin
select<=start;
out <=1;
beep <=1;
end
else
begin
select<=stt;
out <=0;
beep <=1;
end
end
start:begin
if(errortime>=4'b0011)
begin
select<=Idle;
beep<=0;
end
else
begin
select<=Idle;
beep<=1;
end
end
stt :begin
if(errortime>=4'b0011)
begin
select<=Idle;
beep<=0;
end
else
begin
select<=Idle;
errortime<=errortime+4'b0001;
beep<=1;
end
end
default:select<=3'bx;
endcase
end
endmodule
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|