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

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

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

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

    parameter a = 3'b000, b = 3'b001, c = 3'b010, d = 3'b011, idle = 3'b111;
    reg [2:0] sta,nsta;
    
    always @(*) begin
        nsta = idle;
        case (sta)
            a : nsta = data_valid ? (data ? b : a) : a;
            b : nsta = data_valid ? (data ? c : a) : b;
            c : nsta = data_valid ? (data ? idle : d) : c;
            d : nsta = data_valid ? (data ? b : a) : a;
            idle : nsta = data_valid ? (data ? idle : a) : idle;
        endcase
    end
    
    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            sta <= idle;
            match <= 1'b0;
        end else if (nsta==d) begin
            match <= 1'b1;
            sta <= nsta;
        end else begin
            sta <= nsta;
            match <= 1'b0;
        end
    end

endmodule
全部评论

相关推荐

牛客316659795号:不是,证明hr初筛已经过了,要投给部门筛一遍
点赞 评论 收藏
分享
牛客464620405号:随便投,随便找,中国经过40多年的改革开放,人才缺口和职位空缺是巨大的,中国现在属于遍地黄金的年代,属于90后和00大机遇的时代
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务