题解 | #输入序列不连续的序列检测#

输入序列不连续的序列检测

http://www.nowcoder.com/practice/f96d0e94ec604592b502b0f1800ed8aa

不知道拿data_valid当使能行不行,当data_valid无效时,当前状态不转移开始保持
`timescale 1ns/1ns
module sequence_detect(
    input clk,
    input rst_n,
    input data,
    input data_valid,
    output reg match
    );
    parameter IDLE = 3'b000,
    S1=3'b001,
    S2=3'b010,
    S3=3'b011,
    S4=3'b100;
    reg [2:0] sta,nsta;
    always@(posedge clk or negedge rst_n)
        if(!rst_n)
            sta <= IDLE;
    else if(data_valid)
        sta <= nsta;
    else
        sta <= sta;
    
    always@(*)begin
        if(data_valid)
            case(sta)
            IDLE:nsta = !data?S1:IDLE;
                S1:nsta = data?S2:S1;
                S2:nsta = data?S3:S1;
                S3:nsta = !data?S4:IDLE;
                S4:nsta = data?S2:S1;
                default:nsta = IDLE;
            endcase
          else
             nsta = IDLE;

        
    end
    
    always@(posedge clk or negedge rst_n)
        if(data_valid)
            if(!data&&sta==S3)
                match <= 1;
            else
                match <= 0;
        else
            match <= 0;
        
endmodule
全部评论

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
每晚夜里独自颤抖:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务