题解 | #不重叠序列检测#

不重叠序列检测

https://www.nowcoder.com/practice/9f91a38c74164f8dbdc5f953edcc49cc

`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input data,
	output reg match,
	output reg not_match
	);

reg [2:0] cnt;
reg [5:0] men;

always@(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        cnt <= 0;
        men <= 0;
    end
    else if(cnt == 5)begin
        cnt <= 0;
        men[5-cnt] <= data;
    end
    else begin
        cnt <= cnt + 1;
        men[5-cnt] <= data;
    end
end

// always@(*)begin
    // case(cnt)
        // 3'd0 : men[5] = data;
        // 3'd1 : men[4] = data;
        // 3'd2 : men[3] = data;
        // 3'd3 : men[2] = data;
        // 3'd4 : men[1] = data;
        // 3'd5 : men[0] = data;
        // default : men = 6'd0;
    // endcase

// end

always@(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
        match <= 0;
        not_match <= 0;
    end
    else if(cnt==5)begin
        if(men == 6'o34)begin
            match <= 1;
            not_match <= 0;
        end
        else begin
            match <= 0;
            not_match <= 1;
        end
    end
    else begin
        match <= 0;
        not_match <= 0;
    end
end


endmodule

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务