OpenCores
URL https://opencores.org/ocsvn/i2c_to_wb/i2c_to_wb/trunk

Subversion Repositories i2c_to_wb

[/] [i2c_to_wb/] [trunk/] [sim/] [models/] [glitch_generator.v] - Blame information for rev 2

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 qaztronic
// --------------------------------------------------------------------
2
//
3
// --------------------------------------------------------------------
4
 
5
 
6
`timescale 1ns/10ps
7
 
8
 
9
module
10
  glitch_generator
11
  #(
12
    parameter ENABLE = 0,
13
    parameter MAX_FREQ = 10000,
14
    parameter MAX_WIDTH = 120
15
  )
16
  (
17
    output out
18
  );
19
 
20
 
21
  // --------------------------------------------------------------------
22
  //  wires & regs
23
  reg glitch_generator_en;
24
  reg glitch;
25
  reg glitch_en;
26
 
27
 
28
  // --------------------------------------------------------------------
29
  //  init 
30
  initial
31
    begin
32
      glitch_generator_en <= ENABLE;
33
      glitch              <= 1'b0;
34
      glitch_en           <= 1'b0;
35
 
36
      forever
37
        begin: glitch_loop
38
 
39
          #({$random} % MAX_FREQ);
40
 
41
          if( ~glitch_generator_en )
42
            disable glitch_loop;
43
 
44
          glitch_en = 1'b1;
45
          #({$random} % MAX_WIDTH);
46
 
47
          glitch = ~glitch;
48
          #({$random} % MAX_WIDTH);
49
 
50
          glitch_en = 1'b0;
51
 
52
        end
53
    end
54
 
55
 
56
  // --------------------------------------------------------------------
57
  //  enable_glitch_generator
58
  task enable_glitch_generator;
59
    begin
60
 
61
    glitch_generator_en <= 1'b1;
62
 
63
    end
64
  endtask
65
 
66
 
67
  // --------------------------------------------------------------------
68
  //  disable_glitch_generator
69
  task disable_glitch_generator;
70
    begin
71
 
72
    glitch_generator_en <= 1'b0;
73
 
74
    end
75
  endtask
76
 
77
 
78
  // --------------------------------------------------------------------
79
  //  outputs   
80
 
81
  assign (supply1, supply0) out = glitch_en ? glitch : 1'bz;
82
 
83
endmodule
84
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.