之前接触的序列检测电路都是通过状态机实现的,其实序列检测也可以通过移位寄存器和比较器很方便的实现:
移位寄存器用于存储输入;
比较器用于比较输入和待检测序列是否一致,产生输出;

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
参考:

本文介绍了如何在FPGA设计中,不使用状态机而是利用移位寄存器和比较器来实现序列检测的方法。通过移位寄存器存储输入信号,然后用比较器检查输入序列是否匹配预设的检测序列,以此触发相应的输出。
最低0.47元/天 解锁文章
665

被折叠的 条评论
为什么被折叠?



