Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- reg R;
- R = $random % 2;
- reg R;
- R = 60%(0) || 40%(1);
- reg R;
- initial begin
- assert( randomize(R) with { R dist { 0 := 6, 1 := 4 }; } );
- end
- initial begin
- $urandom(seed);
- $urandom;
- $urandom;
- end
- integer temp;
- reg r ;
- always @ ... begin
- temp = $urandom; //Range: +2_147_483_647 -2_147_483_648
- // weighting; 0 would be 50:50
- // real weighting is (0.1 + 0.5), 0.5 inherent from positive number.
- r = (temp > (2_147_483_647*0.1);
- end
- integer R;
- R = ($dist_uniform(0,100) < 60) : $dist_uniform(0,5) : $dist_uniform(6,10)
- std::randomize(R) with {R dist {[0:5] :/60, [6:10] :/ 40} ;};
- program top;
- class Packet;
- rand reg R;
- constraint percentage {R dist {1:=60,0:=40};};
- function void display;
- $display("Random Reg : %0d",this.R);
- endfunction
- endclass
- Packet P;
- initial
- begin
- P = new;
- repeat(10)
- begin
- P.randomize();
- P.display;
- end
- end
- endprogram
- reg [7:0] R;
- reg rand_bit;
- R = $random();
- if (R < 76)
- rand_bit = 1'b0;
- else
- rand_bit = 1'b1;
- wire R;
- if ($random[7:0]>(40*255/100))
- assign R = 1'b0;
- else
- assign R = 1'b1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement