题解 | #含有无关项的序列检测#(casex)
含有无关项的序列检测
https://www.nowcoder.com/practice/cba67d06d6834a5d9b93e1087b56c8d8
`timescale 1ns/1ns module sequence_detect( input clk, input rst_n, input a, output reg match ); //此题采用序列寄存法 也可以采用状态机解法 reg [8:0] reg_num ; // 通过移位和拼接 构造序列输入 always@(posedge clk or negedge rst_n)begin if(!rst_n) reg_num <= 9'b0 ; else reg_num <= {reg_num[8:0], a}; end //进行序列匹配,这里使用了一个casex 的语法 xxx为可以理解为无关项 always@(posedge clk or negedge rst_n)begin if(!rst_n) match <= 1'b0; else begin casex(reg_num) 9'b011_xxx_110: match <= 1'b1; default: match <= 1'b0; endcase end end endmodule