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

`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


全部评论

相关推荐

头像
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务