- 序列检测和上一道题大差不差
- 除了最后判断是否为序列是否为目标序列时用了按位比较法,即比较高三位和第三位
- 其他几乎和上一题一致。
`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