题解 | #含有无关项的序列检测#(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

全部评论

相关推荐

one_t:硕还是本?什么岗
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务