• 序列检测和上一道题大差不差
  • 除了最后判断是否为序列是否为目标序列时用了按位比较法,即比较高三位和第三位
  • 其他几乎和上一题一致。
`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input a,
	output reg match
	);

	reg [8:0] reg_a;
	always@(posedge clk or negedge rst_n)begin
		if(!rst_n)begin
			reg_a <= 9'b1_1111_1111;
		end
		else begin
			reg_a <= {reg_a[7:0],a};
		end
	end
	always@(posedge clk or negedge rst_n)begin
		if(!rst_n)begin
			match <= 1'b0;
		end
		else if ((reg_a[8:6] == 3'b011)& (reg_a[2:0] == 3'b110) ) begin
			match <= 1'b1;
		end
		else begin
			match <= 1'b0;

		end
	end

endmodule