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

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

https://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 st0 = 3'd0;
	parameter st1 = 3'd1;
	parameter st2 = 3'd2;
	parameter st3 = 3'd3;
	parameter st4 = 3'd4;
	parameter st5 = 3'd5;
	parameter st6 = 3'd6;
	parameter st7 = 3'd7;

	reg [2:0] st_cur;
	reg [2:0] st_next;
	always @(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			st_cur <= st0;
		end
		else begin
			st_cur <= st_next;
		end
	end

	reg done;
	always@(*) begin
		if (!rst_n) begin
			st_next <= st0;
		end
		else begin
			case(data_valid)
				1:begin
					case(st_cur)
						st0: 
							case(data)
								0: begin st_next = st1; end
								1: begin st_next = st5; end
							endcase
						st1:
							case(data)
								1: begin st_next = st2; end
								0: begin st_next = st5; end
							endcase
						st2:
							case(data)
								1: begin st_next = st3; end
								0: begin st_next = st5; end
							endcase
						st3:
							case(data)
								0: begin st_next = st4; end
								1: begin st_next = st5; end
							endcase
						st4:
							case(data)
								0: begin st_next = st1; end
								1: begin st_next = st5; end
							endcase
						st5:
							case(data)
								0: begin st_next = st1; end
								1: begin st_next = st5; end
							endcase
						st6:
						  case(data)
								0: begin st_next = st1; end
								1: begin st_next = st6; end
						  endcase
					endcase
				end
				0:begin
					case(st_cur)
						st0: begin st_next = st6; end
						st1: begin st_next = st6; end
						st2: begin st_next = st6; end
						st3: begin st_next = st6; end
						st4: begin st_next = st6; end
						st5: begin st_next = st6; end
						st6: begin st_next = st6; end
					endcase
				end
			endcase
		end
	end

	always @(*) begin
		if(!rst_n) begin
			match = 0;
		end
		else if((st_cur == st4) ) begin
			match = 1;
		end
		else begin
			match = 0;
		end
	end


  
endmodule

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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