题解 | #状态机-重叠序列检测#

状态机-重叠序列检测

https://www.nowcoder.com/practice/10be91c03f5a412cb26f67dbd24020a9

`timescale 1ns/1ns

module sequence_test2(
	input wire clk  ,
	input wire rst  ,
	input wire data ,

	output reg flag
);
//*************code***********//

reg [3:0]state;
reg [3:0]data_reg;

parameter s1 = 4'b0001;
parameter s2 = 4'b0010;
parameter s3 = 4'b0100;
parameter s4 = 4'b1000;

always@(posedge clk or negedge rst)
    if (rst == 1'b0)
	    state <= s1;
	else
	    case(state)
		    s1 : if (data == 1'b0)
			        state <= s1;
				else 
				    state <= s2;
			s2 : if (data == 1'b0)
			        state <= s3;
				else 
				    state <= s2;
			s3 : if (data == 1'b0)
			        state <= s1;
				else
				    state <= s4;
			s4 : if (data == 1'b0)
			        state <= s2;
				else 
				    state <= s2;
			default : state <= s1;
		endcase
	    
always@(posedge clk or negedge rst)
    if (rst == 1'b0)
	    data_reg <= 4'b0;
	else 
	    data_reg <= {data_reg[3:0],data};

always@(posedge clk or negedge rst)
    if (rst == 1'b0)
	    flag <= 1'b0;
	else if (state == s2 && data_reg == 4'b1011)
	    flag <= 1'b1;
	else 
	    flag <= 1'b0;

//*************code***********//
endmodule

全部评论

相关推荐

今天 00:11
已编辑
广东工业大学 算法工程师
避雷深圳&nbsp;&nbsp;yidao,试用期&nbsp;6&nbsp;个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务