EETOP 创芯网论坛

便捷登录,只需一步

找回密码

  登录   注册  

搜帖子
电子实例资料:如何改善测量精度 | 有奖:300信元+15个小米电动牙刷
查看: 177|回复: 0
打印 上一主题 下一主题

[求助] 1110010 序列检测器的debug S3状态跳转错误

[复制链接]
跳转到指定楼层
1#
发表于 2020-3-8 18:45:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
        module seq_fsm(
        input din,clk,rst_n,
        output cout,
        output reg [2:0]current_state,next_state
);
parameter  S0=000,               
                   S1=001,                
                   S2=010,                
                   S3=011,                                        
                   S4=100,        
                   S5=101,                                
                   S6=110;                
always@(posedge clk or negedge rst_n) begin
        if(!rst_n) begin
                        current_state<=S0;
                                end
else                        begin
                        current_state<=next_state ;
                                end
                                                                        end
always@(*) begin
                case(current_state)
                S0:begin if(din==1'b1)
                begin        next_state=S1; end
else        begin        next_state=S0;end
                end
                S1:begin if(din==1'b1)                        
                begin        next_state=S2;end
else        begin        next_state=S0;end
                end
                S2:begin if(din==1'b1)
                begin        next_state=S3; end
else        begin        next_state=S0;end
                end
                S3:begin if(din==1'b0)
                begin        next_state=S4;end
else        begin        next_state=S3;end
                end
                S4:begin if(din==1'b0)                        
                begin        next_state=S5;        end                                               
else        begin        next_state=S1;end
                end
                S5:begin if(din==1'b1)
                begin        next_state=S6;end
else        begin next_state=S0;end
                end
                S6:begin if(din==1'b0)
                begin        next_state=S0;end
else        begin        next_state=S2;end
                end
                default:next_state=S0;
endcase   
                               
                                end
assign cout=((current_state==S6)&&(din==1'b0))? 1:0;
endmodule

abc.png (7.62 KB, 下载次数: 5)

abc.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭
关闭

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( )

GMT+8, 2020-5-23 02:32 , Processed in 0.053632 second(s), 9 queries , Gzip On, Redis On.

Powered by X3.4

© 2001-2017

快速回复 返回顶部 返回列表
秒速赛车下载 秒速赛车开户 加拿大28 秒速赛车登陆 秒速赛车开户 秒速赛车网站 北京28 秒速赛车网站 秒速赛车开户 天天乐棋牌