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

输入序列连续的序列检测

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

`timescale 1ns/1ns
module sequence_detect(
    input clk,
    input rst_n,
    input a,
    output reg match
    );
    
    /*reg [7:0]a_tmp;
    always @(posedge clk or negedge rst_n)
        if(~rst_n)
            match <= 1'b0;
        else if(a_tmp == 8'b01110001)
            match <= 1'b1;
        else
            match <= 1'b0;
    
    always @(posedge clk or negedge rst_n)begin
        if(~rst_n)
            a_tmp <= 8'd0;
        else 
           // a_tmp <= {a,a_tmp[7:1]};
            a_tmp <= {a_tmp[6:0],a};
    end*/
    localparam IDLE =0,ONE =1,TWO =2,THREE =3,FOUR =4,
             FIVE =5,SIX =6,SEVEN =7,EIGHT =8;
    reg[3:0]curr_state,next_state;
    
    always @(posedge clk or negedge rst_n)
        if(~rst_n)
            curr_state <= IDLE;
        else
            curr_state <= next_state;
    
    always @(*)begin
        case(curr_state)
            IDLE:   next_state =(a==0)?ONE:IDLE;
            ONE:    next_state =(a==0)?ONE:TWO;
            TWO:    next_state =(a==0)?ONE:THREE;
            THREE:  next_state =(a==0)?ONE:FOUR;
            FOUR:   next_state =(a==0)?FIVE:IDLE;
            FIVE:   next_state =(a==0)?SIX:TWO;
            SIX:    next_state =(a==0)?SEVEN:TWO;
            SEVEN:  next_state =(a==0)?ONE:EIGHT;
            EIGHT:  next_state =(a==0)?ONE:THREE;
            default:next_state =IDLE;
        endcase      
    end
    always @(posedge clk or negedge rst_n)
        if(~rst_n)
            match <= 1'b0;
    else if(curr_state == EIGHT)
            match <= 1'b1;
        else
            match <= 1'b0;
        
        
endmodule
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 听劝,这个简历怎么改 #
14086次浏览 182人参与
# 面试被问“你的缺点是什么?”怎么答 #
6359次浏览 98人参与
# 水滴春招 #
16352次浏览 346人参与
# 入职第四天,心情怎么样 #
11310次浏览 63人参与
# 租房找室友 #
8021次浏览 53人参与
# 读研or工作,哪个性价比更高? #
26152次浏览 356人参与
# 职场新人生存指南 #
199211次浏览 5509人参与
# 参加完秋招的机械人,还参加春招吗? #
26977次浏览 276人参与
# 文科生还参加今年的春招吗 #
4108次浏览 31人参与
# 简历无回复,你会继续海投还是优化再投? #
48624次浏览 561人参与
# 你见过最离谱的招聘要求是什么? #
144719次浏览 829人参与
# 如果重来一次你还会读研吗 #
155716次浏览 1706人参与
# 机械人选offer,最看重什么? #
69077次浏览 449人参与
# 选择和努力,哪个更重要? #
44292次浏览 493人参与
# 如果再来一次,你还会学硬件吗 #
103645次浏览 1245人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
20520次浏览 413人参与
# 招聘要求与实际实习内容不符怎么办 #
46727次浏览 494人参与
# 22届毕业,是读研还是拿外包offer先苟着 #
4652次浏览 27人参与
# 你们的毕业论文什么进度了 #
901211次浏览 8960人参与
# 软开人,你觉得应届生多少薪资才算合理? #
81375次浏览 496人参与
# 国企还是互联网,你怎么选? #
109189次浏览 853人参与
牛客网
牛客企业服务