Randomization_constraints
Randomization_constraints
Expected Output:
Random Data: 137
Random Data: 24
Random Data: 211
Random Data: 89
Random Data: 56
Expected Output:
1
Constrained Random Data: 78
Constrained Random Data: 132
Constrained Random Data: 165
Constrained Random Data: 199
Constrained Random Data: 120
Expected Output:
A: 85, B: 72, Sum: 157
A: 120, B: 55, Sum: 175
A: 45, B: 80, Sum: 125
A: 30, B: 60, Sum: 90
A: 99, B: 80, Sum: 179
2
Listing 4: Excluding Zero and 255
Expected Output:
Random Value: 145
Random Value: 89
Random Value: 250
Random Value: 33
Random Value: 124
Weighted Randomization
Assigning weights to specific values to control probability distribution.
1 class Wei ghtedRan dom ;
2 rand int x ;
3 constraint weighted {
4 x dist {10 := 5 , 20 := 2 , 30 := 1}; // 10 appears most frequently
5 }
6
7 function void display () ;
8 $ display ( " Random X : % d " , x ) ;
9 endfunction
10 endclass
11
12 module test ;
13 initial begin
14 automatic Weig htedRand om r = new () ;
15 repeat (10) begin
16 void ’( r . randomize () ) ;
17 r . display () ;
18 end
19 end
20 endmodule
Expected Output:
Random X: 10
Random X: 10
Random X: 20
Random X: 10
Random X: 30
Random X: 10
Random X: 20
Random X: 10
Random X: 10
Random X: 10
Randomizing an Array
We can randomize all elements of an array.
3
1 class ArrayRandom ;
2 rand bit [7:0] arr [5]; // Array of 5 random values
3
4 constraint range { foreach ( arr [ i ]) arr [ i ] > 50 && arr [ i ] < 200; }
5
6 function void display () ;
7 foreach ( arr [ i ]) $ display ( " arr [%0 d ] = % d " , i , arr [ i ]) ;
8 endfunction
9 endclass
10
11 module test ;
12 initial begin
13 automatic ArrayRandom r = new () ;
14 void ’( r . randomize () ) ;
15 r . display () ;
16 end
17 endmodule
Expected Output
arr[0] = 78
arr[1] = 125
arr[2] = 162
arr[3] = 145
arr[4] = 89