搜索
bottom↓
回复: 9

四位密码锁设计的有问题,编译没错,但是时序仿真以及...

[复制链接]

出0入0汤圆

发表于 2016-10-23 20:41:22 | 显示全部楼层 |阅读模式
本帖最后由 愁苦忍着 于 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周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-10-23 21:11:48 | 显示全部楼层
你的结果肯定是如果输错一次就输出3次以上的错误;

状态机的转移是clk来转移的,应该使用每次的输入,输入一次转移一次;
现在是clk,那么只要是错误的,马上就到3次以上了;

出0入0汤圆

 楼主| 发表于 2016-10-23 21:27:54 | 显示全部楼层
jm2011 发表于 2016-10-23 21:11
你的结果肯定是如果输错一次就输出3次以上的错误;

状态机的转移是clk来转移的,应该使用每次的输入,输入 ...

也就是说我用confirm来做触发了?

出0入0汤圆

发表于 2016-10-24 22:28:08 | 显示全部楼层
这个是时序电路,肯定需要使用时钟来触发,但是在里面用条件语句;

你再好好想想,现在的写法肯定不对;

出0入0汤圆

 楼主| 发表于 2016-10-25 16:00:49 | 显示全部楼层
jm2011 发表于 2016-10-24 22:28
这个是时序电路,肯定需要使用时钟来触发,但是在里面用条件语句;

你再好好想想,现在的写法肯定不对; ...

好吧,我再看看

出0入0汤圆

发表于 2016-10-25 16:07:14 | 显示全部楼层
建议先用TTL门电路画好,然后,把这些门电路翻译成HDL语言

心中无电路,就别用描述语言,描述的是什么都没人知道

出0入0汤圆

 楼主| 发表于 2016-10-25 23:29:16 | 显示全部楼层
1ongquan 发表于 2016-10-25 16:07
建议先用TTL门电路画好,然后,把这些门电路翻译成HDL语言

心中无电路,就别用描述语言,描述的是什么都 ...

好吧,这方面确实是薄弱,我们学院主要搞材料,虽然学的是微电子,但是电路方面掌握的真的很不好,所以不是很有思路如何设计,学院只教了verilog,惦记着用状态机但是无奈时间不是很充分,头一次弄这个东西,有点不知道该怎么办。

出0入0汤圆

发表于 2016-10-26 08:54:57 来自手机 | 显示全部楼层
也可以用状态机来做,关键是要把状态转移图画好,然后才是程序的正确实现问题。

出0入0汤圆

发表于 2016-10-26 08:58:07 | 显示全部楼层
愁苦忍着 发表于 2016-10-25 23:29
好吧,这方面确实是薄弱,我们学院主要搞材料,虽然学的是微电子,但是电路方面掌握的真的很不好,所以不 ...

和学院没关系!!
课程都一样,几乎很多学校老师基本都是照书念。

出0入0汤圆

 楼主| 发表于 2016-10-28 09:18:29 | 显示全部楼层
可以结贴了,特上传此PDF,可以用于参考,感谢各位解答

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 19:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表