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

`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input a,
	output reg match
	);
    
    parameter seq_t = 8'b0111_0001;
    reg [7:0] seq_r;
    always @ (posedge clk, negedge rst_n) begin
        if (~rst_n) begin
            seq_r <= 'b0;
        end
        else begin
            seq_r <= {seq_r[6:0], a};
        end
    end
    
    always @ (posedge clk, negedge rst_n) begin
        if (~rst_n) begin
            match <= 'b0;
        end
        else begin
            match <= seq_r == seq_t;
        end
    end
    
    

  
endmodule

####笔试题思考,序列检测####


    always @ (posedge clk, negedge rst) begin
        if(~rst) begin
            cnt_16 <= 0;
        end
        else begin
            cnt_16 <= cnt + 1;
        end
    end
    
    always @ (posedge clk, negedge rst) begin
        if(~rst) begin
            cnt_240 <= 0;
        end
        else if(flag_t_seq) begin        
            cnt_240 <= cnt_240 + 1;
        end
        else begin
            cnt_240 <= 0;
        end
    end
    

    
    always @ (*) begin
        if(~rst) begin
            flag_t_seq <= 0;
            //fsync_o <= 0;
        end
        else if(tmp_seq == target_seq && cnt_240 < 239) begin
            flag_t_seq <= 1;
        end
        else begin
            flag_t_seq <= 0;
        end
    end
    
    always @ (posedge clk, negedge rst) begin
        if(~rst) begin
            cnt_3 <= 0;
            fsync_o <= 0;
        end
        else if(tmp_seq == target_seq) begin
            cnt_3 <= cnt_3 + 1;
        end
        else if (cnt_3 == 3) begin
            fsync_o <= 1;
            cnt_3 <= 0;
        end
    end
    
endmodule


全部评论

相关推荐

10-11 15:42
皖西学院 Java
青鱼LINK:我硕士,也是java0面试,吾道不孤
点赞 评论 收藏
分享
听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务