题解 | #含有无关项的序列检测#
https://www.nowcoder.com/practice/cba67d06d6834a5d9b93e1087b56c8d8
`timescale 1ns/1ns
module sequence_detect(
input clk,
input rst_n,
input a,
output reg match
);
//011X XX11 0
reg[8:0] a_tem;
always @(posedge clk or negedge rst_n)
if(!rst_n)
begin
a_tem <= 9'b0;
end
else
begin
a_tem <= {a_tem[7:0],a};
end
//然后截取数组的前三位和目标序列011对比,截取数组的后三位和目标序列110,
//对比声明的两个变量表示两个子序列对于的结果
always@(posedge clk or rst_n)
if(!rst_n)
match <= 1'b0;
else if(a_tem[8:6] == 3'b011 && a_tem[2:0] == 3'b110)
match <= 1'b1;
else
match <= 1'b0;
endmodule
module sequence_detect(
input clk,
input rst_n,
input a,
output reg match
);
//011X XX11 0
reg[8:0] a_tem;
always @(posedge clk or negedge rst_n)
if(!rst_n)
begin
a_tem <= 9'b0;
end
else
begin
a_tem <= {a_tem[7:0],a};
end
//然后截取数组的前三位和目标序列011对比,截取数组的后三位和目标序列110,
//对比声明的两个变量表示两个子序列对于的结果
always@(posedge clk or rst_n)
if(!rst_n)
match <= 1'b0;
else if(a_tem[8:6] == 3'b011 && a_tem[2:0] == 3'b110)
match <= 1'b1;
else
match <= 1'b0;
endmodule

