题解 | #含有无关项的序列检测#

含有无关项的序列检测

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] seq;

   // 数组位移
   always @(posedge clk or negedge rst_n) 
   begin
      if(~rst_n) begin
         seq <= 9'b0;
      end
      else begin
         seq <= {seq[6:0], a};
      end
   end

   // 判断数列的头部三位和末尾三位是否满足
   // 数列中间是无关项
   always @(posedge clk or negedge rst_n) 
   begin
      if(~rst_n)
         match<= 1'b0;
      else
         match <= (seq[8:6]==3'b011 && seq[2:0]==3'b110);
   end


   
   //========================================================
   // 引入casez 进行无关项判断
   // 这样用的不是最基本的逻辑门,且当判断的位数多了之后不方便
   //========================================================
   /*
   always @(posedge clk or negedge rst_n) 
   begin
      if(~rst_n) begin
         match <= 1'b0;
      end
      else begin

         casez (seq)

         9'b011_???_110: match <= 1'b1;
         default:
            match <= 1'b0;

         endcase

         // match <= (seq == 9'b011_???_110);
      end
   end
   */
  
endmodule

全部评论

相关推荐

09-19 13:59
门头沟学院 Java
用微笑面对困难:Trae一下,如果真成了,他用了直接发字节起诉代码版权,,这个代码不商用是没问题的如果没成也是情理之中的。
点赞 评论 收藏
分享
迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务