密码锁文件

module mimasuo(clk,reset,reset2,set,enter,in0,in1,in2,in3,in4,in5,in6,in7,in8,in9,open,error,s_set,o_out1,o_out2,o_out3,o_out4,in,jishu,out1,out2,out3,out4);
  
input clk,reset,reset2,set,enter;
input in0,in1,in2,in3,in4,in5,in6,in7,in8,in9;
output open,error,s_set;
output[3:0] o_out1,o_out2,o_out3,o_out4,in,out1,out2,out3,out4;
output[1:0] jishu;
reg[3:0] out1,out2,out3,out4,in;
reg[3:0] o_out1,o_out2,o_out3,o_out4;
reg open,error,s_set;
reg[1:0] jishu;

always @(posedge clk)
begin
  if(!reset)
    begin
      open<=0;error<=0;out1<=0;out2<=0;out3<=0;out4<=0;jishu<=0;in<=0;s_set<=0;o_out1<=0;o_out2<=0;o_out3<=0;o_out4<=0;
    end
  else if(in0&&in1==0 && in2==0 && in3==0 && in4==0 && in5==0 && in6==0 && in7==0 && in8==0 && in9==0)
    in<=0;
  else if(in0==0 && in1 && in2==0 && in3==0 && in4==0 && in5==0 && in6==0 && in7==0 && in8==0 && in9==0)
    in<=1;
  else if(in0==0 && in1==0 && in2 && in3==0 && in4==0 && in5==0 && in6==0 && in7==0 && in8==0 && in9==0)
    in<=2;
  else if(in0==0 && in1==0 && in2==0 && in3 && in4==0 && in5==0 && in6==0 && in7==0 && in8==0 && in9==0)
    in<=3;
  else if(in0==0 && in1==0 && in2==0 && in3==0 && in4 && in5==0 && in6==0 && in7==0 && in8==0 && in9==0)
    in<=4;
  else if(in0==0 && in1==0 && in2==0 && in3==0 && in4==0 && in5 && in6==0 && in7==0 && in8==0 && in9==0)
    in<=5;
  else if(in0==0 && in1==0 && in2==0 && in3==0 && in4==0 && in5==0 && in6 && in7==0 && in8==0 && in9==0)
    in<=6;
  else if(in0==0 && in1==0 && in2==0 && in3==0 && in4==0 && in5==0 && in6==0 && in7 && in8==0 && in9==0)
    in<=7;
  else if(in0==0 && in1==0 && in2==0 && in3==0 && in4==0 && in5==0 && in6==0 && in7==0 && in8 && in9==0)
    in<=8;
  else if(in0==0 && in1==0 && in2==0 && in3==0 && in4==0 && in5==0 && in6==0 && in7==0 && in8==0 && in9)
    in<=9;   
end

always @(negedge set)
begin
    s_set<= ~ s_set;
end

always @(negedge enter)
begin
  if(jishu==3)
    begin
    jishu<=0;
    s_set<=0;
    end
  else
    jishu<=jishu+1;
end

always @(posedge clk)
begin
  if(jishu==0 && enter && s_set)
    begin
       out1<=in;
    end
  else if(jishu==1 && enter && s_set)
    begin
      out2<=in;
    end
  else if(jishu==2 && enter && s_set)
    begin
      out3<=in;
    end
  else if(jishu==3 && enter && s_set)
    begin
    out4<=in;
    open<=0;
    end
end

always @(posedge clk)
begin
  if(jishu==0 && enter && s_set==0)
    o_out1<=in;
  else if(jishu==1 && enter && s_set==0)
    o_out2<=in;
  else if(jishu==2 && enter && s_set==0)
    o_out3<=in;
  else if(jishu==3 && enter && s_set==0)
    begin
    o_out4<=in;
    if(o_out1==out1 && o_out2==out2 && o_out3==out3 && o_out4==out4)
      open<=1;
    else
      error<=1;
    end
end

always @(posedge clk)
begin
 if(reset2)
   error<=0;
end
endmodule

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值