Ee5703: Vlsi Design Lab Sequence Detector (Moore Type) : EE16M044 Apte Priya Narayanrao
Ee5703: Vlsi Design Lab Sequence Detector (Moore Type) : EE16M044 Apte Priya Narayanrao
parameter S0 = 0,
S1 = 1,
S2 = 2,
S3 = 3,
S4 = 4,
S5 = 5,
S6 = 6,
S7 = 7,
S8 = 8;
case (cstate)
S0: begin
if (in == 'b1) begin
nstate = S1;
end
else begin
nstate = S0;
end
end
S1: begin
if (in == 'b0) begin
nstate = S2;
end
else begin
nstate = S0;
end
end
S2: begin
if (in == 'b1) begin
nstate = S3;
end
else begin
nstate = S0;
end
end
S3: begin
if (in == 'b0) begin
nstate = S4;
end
else begin
nstate = S1;
end
end
S4: begin
if (in == 'b0) begin
nstate = S5;
end
else begin
nstate = S3;
end
end
S5: begin
if (in == 'b1) begin
nstate = S6;
end
else begin
nstate = S0;
end
end
S6: begin
if (in == 'b0) begin
nstate = S7;
end
else begin
nstate = S1;
end
end
S7: begin
if (in == 'b1) begin
nstate = S8;
end
else begin
nstate = S0;
end
end
S8: begin
if (in == 'b1) begin
nstate = S1;
end
else begin
nstate = S0;
end
end
default: begin
nstate = S0;
end
endcase // case (cstate)
end // always @ (cstate or in)
end //
// always @ (cstate)
endmodule // fsm
initial begin
$readmemb("seqin.txt", inputs);
$monitor($time, "in = %b, out = %b", in, out);
clk = 0;
reset = 1;
#10 reset = 0;
end
endmodule // pattern_tb
Results :
Exercise : In the example sequence detector to detect 101
sequence it was Mealy fsm. A Mealy machine is a finite-state
machine whose output values are determined both by its current
state and the current inputs. This is in contrast to a Moore
machine, whose output values are determined solely by its
current state.
In Moore we have one extra state which has its output value set
high to indicate that he pattern is detected .