Pattern Detector 10110 in SV(no FSM) - 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

205


48
 
1
// Code your testbench here
2
// or browse Examples
3
module test;
4
  reg clk=0;
5
  reg rst=1;
6
  reg in=0;
7
  wire flag;
8
  
9
  pattern_detect pat(.clk(clk), .rst(rst), .in(in), .flag(flag));
10
  
11
  initial begin
12
    forever begin
13
    #10 clk = ~clk;
14
    end
15
  end
16
  initial begin
17
     // Dump waves
18
    $dumpfile("dump.vcd");
19
    $dumpvars(1, test);
20
    
21
    #10 rst=0;
22
   
23
    in=0;
24
    #20 in=1;
25
    #20 in=1;
26
    #20 in=0;
27
    #20 in=1;
28
    #20 in=1;
29
    #20 in=0;
30
    #20 in=1;
31
    #20 in=0;
32
    #20 in=0;
33
    #20 in=1;
34
    #20 in=0;
35
    #20 in=1;
36
     
37
    $finish;
38
    
39
    
40
  end
41
  
42
endmodule
43
44
45
      
46
    
47
   
48
xxxxxxxxxx
1
39
 
1
// Code your design here
2
module pattern_detect(input clk, input rst, input bit in, output flag);
3
  logic  pat_seq[$]='{1,0,1,1,0};
4
  logic  pat_in[$]='{0,0,0,0,0};
5
  reg  flag=0;
6
  
7
  always @(posedge clk) begin
8
    if(!rst) begin
9
      pat_in.pop_front();
10
      pat_in.push_back(in);
11
12
      if(pat_in == pat_seq) begin
13
        flag <= 1;  
14
        $display("***************************");
15
        $display("flag is 1 @time=%0d", $time);
16
        $display("***************************");
17
        foreach(pat_in[i]) begin
18
          $display("pat_in[%0d]=%0d", i, pat_in[i]);
19
        end
20
        $display("***************************");
21
      end
22
      else begin
23
        flag <= 0;
24
        $display("flag is 0 @time=%0d", $time);
25
        foreach(pat_in[i]) begin
26
          $display("pat_in[%0d]=%0d", i, pat_in[i]);
27
        end
28
        //$display("flag design=%0d, @time=%0d", flag, $time);
29
30
      end
31
    end
32
    if(rst) 
33
      flag <=0 ;
34
    
35
    //$display("flag=%0d @time=%0d", flag, $time)
36
    
37
  end
38
  
39
endmodule
22 views and 0 likes     
A short description will be helpful for you to remember your playground's details
 
100:0