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

`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


全部评论

相关推荐

码农索隆:竞争压力小,就你一个不用卷
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:32
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务