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

Subversion Repositories ahb_slave

[/] [ahb_slave/] [trunk/] [src/] [gen/] [prgen_rand.v] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 eyalhoc
 
2
function integer rand_chance;
3
      input [31:0] chance_true;
4
 
5
      begin
6
         if (chance_true > 100)
7
           begin
8
              $display("RAND_CHANCE-E-: fatal error, rand_chance called with percent chance larger than 100.\tTime: %0d ns", $time);
9
              $finish;
10
           end
11
         rand_chance = (rand(1,100) <= chance_true);
12
      end
13
endfunction // rand_chance
14
 
15
 
16
function integer rand;
17
      input [31:0] min;
18
      input [31:0] max;
19
 
20
      integer      range;
21
      begin
22
         if (min > max)
23
           begin
24
              $display("RAND-E-: fatal error, rand was called with min larger than max.\tTime: %0d ns", $time);
25
              $finish;
26
           end
27
 
28
         range = (max - min) + 1;
29
         if (range == 0) range = -1;
30
         rand  = min + ($random % range);
31
      end
32
endfunction // rand
33
 
34
 
35
function integer align;
36
      input [31:0]  num;
37
      input [31:0]  align_size;
38
 
39
      integer       align;
40
      begin
41
         align = num - (num % align_size);
42
      end
43
endfunction
44
 
45
 
46
function integer rand_align;
47
      input [31:0] min;
48
      input [31:0] max;
49
      input [31:0] align;
50
 
51
      integer      rand_align;
52
      begin
53
         rand_align = rand(min, max);
54
 
55
         if (rand_align > align)
56
           rand_align = align(rand_align, align);
57
      end
58
endfunction
59
 

powered by: WebSVN 2.1.0

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