mealy sequence detector 0010 - EDA Playground
Warning! This exercise has been opened in another tab; autosave has been disabled. Close this tab or refresh to reactivate.

 Languages & Libraries

 Tools & Simulators

 Examples

206


29
 
1
// Code your testbench here
2
// or browse Examples
3
module tb();
4
  reg clk,rst,in;
5
  wire out;
6
  mealy_sd m1(clk,rst,in,out);
7
  initial begin
8
    clk = 0;
9
    forever #5 clk = ~clk;
10
  end
11
  initial begin
12
    in = 0;
13
    rst = 1;
14
    #30 rst = 0;
15
    #10 in = 1;
16
    #10 in = 0;
17
    #10 in = 0;
18
    #10 in = 0;
19
    #10 in = 0;
20
    #10 in = 0;
21
    #10 in = 1;
22
    #10 in = 0;
23
    #100 $finish;
24
  end
25
  initial begin
26
    $dumpfile("dump.vcd"); 
27
    $dumpvars;
28
  end
29
endmodule
xxxxxxxxxx
1
65
 
1
// Code your design here
2
module mealy_sd(clk,rst,in,out);
3
  input clk,rst,in;
4
  output reg out;
5
  //reg y;
6
  parameter A = 2'b00;
7
  parameter B = 2'b01;
8
  parameter C = 2'b10;
9
  parameter D = 2'b11;
10
  reg [2:0] state, nxt_state;
11
  always@(posedge clk , posedge rst) begin
12
    if(rst == 1) begin
13
      state <= A;
14
      out <= 0;
15
    end
16
    else begin
17
      state <= nxt_state;
18
      //out <= y;
19
    end
20
  end
21
  always@(state) begin
22
    case(state)
23
      A : begin
24
        if(in == 0) begin
25
          nxt_state <= B;
26
          out <= 0;
27
        end else begin 
28
          nxt_state <= A;
29
          out <= 0;
30
        end
31
      end
32
      B : begin
33
        if(in == 0) begin
34
          nxt_state <= C;
35
          out <= 0;
36
        end else begin
37
          nxt_state <= A;
38
          out <= 0;
39
        end
40
      end
41
      C : begin
42
        if(in == 0) begin
43
          nxt_state <= C;
44
          out <= 0;
45
        end else begin
46
          nxt_state <= D;
47
          out <= 0;
48
        end
49
      end
50
      D : begin
51
        if(in == 0) begin
52
          nxt_state <= B;
53
          out <= 1;
54
        end else begin
55
          nxt_state <= A;
56
          out <= 0;
57
        end
58
      end
59
      default : begin
60
        nxt_state <= A;
61
        out <= 0;
62
      end
63
    endcase
64
  end
65
endmodule
1325 views and 0 likes     
A short description will be helpful for you to remember your playground's details
 
100:0