一、设计要求
设计一个可以检测10101序列的检测器
二、设计说明
RST作为复位信号,低电平有效,异步复位
采用状态机进行序列检测,分别为5个状态,Reset,S1,S10,S101,S1010,S10101五个状态,具体转换关系见下图
三、设计代码
//Design file: XuLieJianCeQi.v
//Edit by XiXiHaHasoso on 2022/7/4
module XuLieJianCeQi(CLK,RST_n, DIN,OUT);
input CLK,RST_n;
input DIN;
output OUT;
reg OUT;
parameter [4:0] reset = 5'b00000, S1 = 5'b00001,S10 = 5'b00010,S101 = 5'b00101,S1010 = 5'b01010,S10101 = 5'b10101;
reg [4:0] CurState,NxtState;
always @ (posedge CLK or negedge RST_n) begin
if (!RST_n) begin
CurState <= reset;
OUT <= 1'b0;
end
else begin
CurState <= NxtState;
end
end
always @ ( CurState or DIN) begin
case(CurState)
reset : begin
i