FPGA笔试面试专题——不用状态机实现序列检测

之前接触的序列检测电路都是通过状态机实现的,其实序列检测也可以通过移位寄存器和比较器很方便的实现:

移位寄存器用于存储输入;

比较器用于比较输入和待检测序列是否一致,产生输出;

FPGA笔试面试专题——不用状态机实现序列检测_第1张图片

module seqdet
(
   input wire x,
   input wire clk,
   input wire rst,
   output wire z,
   output reg [4:0] q
);
 

 
assign z = (q == 5'b10010) ? 1'b1:1'b0;
 
always @ (posedge clk,negedge rst)
   if(!rst)
      q <= 5'd0;
   else
      q <= {q[3:0],x};
 
endmodule 

参考:

Verilog -- 序列检测器(采用移位寄存器实现)

 

你可能感兴趣的:(FPGA面试专题,FPGA/Verilog基础)