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

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

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
	);
reg 				[3:0] 				sq,sq_r;

always@(posedge clk or negedge rst_n)
	if(!rst_n)
		sq_r <= 4'd0;
	else if(data_valid)
		sq_r <= {data,sq_r[3:1]};
	else
		sq_r <= sq_r;
	
always@(posedge clk or negedge rst_n)
	if(!rst_n) begin
		match <= 1'b0;
		sq <= sq;
	end
	else if(data_valid)begin
		// sq_r <= {data,sq[3:1]};   
		if({data,sq_r[3:1]} == 4'b0110) begin
			sq <= {data,sq_r[3:1]};
			match <= 1'b1;
		end
		else begin
			match <= 1'b0;
			sq <= sq ;
		end
	end
	else begin
		match <= 1'b0;
		sq <= sq;
	end
  
endmodule

全部评论

相关推荐

小牛炒肉:好大的官威居然不是什么官
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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