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

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

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] seq;
 	always @(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			seq <= 0;
		end	
		else begin
			if(data_valid) begin
				seq <= {seq[2:0],data};
			end
			else begin
				seq <= 4'b0;
			end
		end
	end

	always @(posedge clk or negedge rst_n) begin
		if(!rst_n) begin
			match <= 0;
		end	
		else begin
			if(data_valid && {seq[2:0],data} == 4'b0110) begin
				match <= 1;
			end
			else begin
				match <= 0;
			end
		end
	end
  
endmodule //牛牛的答案提前一个时钟周期

全部评论

相关推荐

点赞 评论 收藏
分享
酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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