verilog写题笔记26-------含有无关项的序列检测
含有无关项的序列检测
https://www.nowcoder.com/practice/cba67d06d6834a5d9b93e1087b56c8d8
	3个输入:
	1、时钟信号clk
	2、复位信号rst_n
	3、串行数据a
	一个输出
	检测合格标志位match
	这个题跟上一道题没有任何区别,有无关项那我们就在判断的时候不判断无关项就好了。移位储存并检测的方法是一样的,这个题直接上代码了,如果不理解可以看我上一道题的帖子。
`timescale 1ns/1ns
module sequence_detect(
	input clk,
	input rst_n,
	input a,
	output reg match
	);
  parameter a_reg_true = 'b011000110;	//这里保证前三位和后三位是题目要求就好,中间三位可以随便填,我用了000来占位。
reg [8:0] a_reg;
	
initial 
	begin
		a_reg = 9'b000000000;
	end
	
	
always@(posedge clk or negedge rst_n)           //移位存储
	if(rst_n == 1'b0)
		a_reg <= 9'd0;
	else 
		a_reg <= {a,a_reg[8:1]};
		
always@(posedge clk or negedge rst_n)           
	if(rst_n == 1'b0)
		match <= 1'b0;
	else if(a_reg[8:6] == a_reg_true[8:6] && a_reg[2:0] == a_reg_true[2:0])  //只检测前三位和后三位就好了
		match <= 1'b1;
	else
		match <= 1'b0;
    
endmodule
verilog写题笔记 文章被收录于专栏
 写Verilog题目的一些笔记备忘

查看22道真题和解析