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

输入序列连续的序列检测

https://www.nowcoder.com/practice/d65c2204fae944d2a6d9a3b32aa37b39

`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input a,
	output reg match
	);

//序列缓存对比法,则是将八个时刻的数据缓存,作为一个数组,每个时刻的输入位于数组的末尾,数组其它元素左移,把最早输入的数据移出。然后将数组和目标序列对比,如果数组和目标序列相等,则说明出现目标序列。
reg [7:0] b;
always@(posedge clk or negedge rst_n) begin
	if(rst_n==1'b0)
		b<=  8'b0;
	else 
		b<= {b[6:0],a} ;
end

always@(posedge clk or negedge rst_n) begin
	if(rst_n==1'b0)begin
		match<=  1'b0;
	end
	else if(b==8'b01110001)begin
		match<=  1'b1;
	end
	else begin
		match<=  1'b0;
	end

end
endmodule

全部评论

相关推荐

11-24 11:23
门头沟学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务