2022-11-20 03:01:55 +00:00
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2022 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
2024-02-08 23:39:13 +00:00
`define stop $stop
`define checkd(gotv,expv) do if ((gotv) !== (expv)) begin $write("%%Error: %s:%0d: got=%0d exp=%0d\n", `__FILE__,`__LINE__, (gotv), (expv)); `stop; end while(0);
2022-11-20 03:01:55 +00:00
module t ( /*AUTOARG*/ ) ;
integer seed ;
integer r ;
integer sum ;
initial begin
2022-12-04 22:30:51 +00:00
//=======
2022-11-20 03:01:55 +00:00
seed = 1234 ;
r = $dist_chi_square ( seed , 5 ) ;
`checkd ( seed , 923940542 ) ;
`checkd ( r , 8 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_chi_square ( seed , 5 ) ;
`checkd ( sum , 130 ) ;
2022-12-04 22:30:51 +00:00
sum = 1 ;
repeat ( 20 ) sum + = $dist_chi_square ( seed , - 5 ) ;
`checkd ( sum , 1 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_chi_square ( seed , 2 ) ;
`checkd ( sum , 30 ) ;
2022-11-20 03:01:55 +00:00
2022-12-04 22:30:51 +00:00
//=======
2022-11-20 03:01:55 +00:00
seed = 1234 ;
r = $dist_erlang ( seed , 5 , 10 ) ;
`checkd ( seed , 1025211431 ) ;
`checkd ( r , 19 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_erlang ( seed , 5 , 10 ) ;
`checkd ( sum , 173 ) ;
2022-12-04 22:30:51 +00:00
sum = 1 ;
repeat ( 20 ) sum + = $dist_erlang ( seed , 5 , - 10 ) ;
`checkd ( sum , - 241 ) ;
2022-11-20 03:01:55 +00:00
2022-12-04 22:30:51 +00:00
//=======
2022-11-20 03:01:55 +00:00
seed = 1234 ;
r = $dist_exponential ( seed , 5 ) ;
`checkd ( seed , 85231147 ) ;
`checkd ( r , 20 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_exponential ( seed , 5 ) ;
`checkd ( sum , 104 ) ;
2022-12-04 22:30:51 +00:00
//=======
2022-11-20 03:01:55 +00:00
seed = 1234 ;
r = $dist_normal ( seed , 5 , 10 ) ;
`checkd ( seed , - 1570070672 ) ;
`checkd ( r , 4 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_normal ( seed , 5 , 10 ) ;
`checkd ( sum , 114 ) ;
2022-12-04 22:30:51 +00:00
//=======
2022-11-20 03:01:55 +00:00
seed = 1234 ;
r = $dist_poisson ( seed , 5 ) ;
`checkd ( seed , 418012337 ) ;
`checkd ( r , 2 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_poisson ( seed , 5 ) ;
`checkd ( sum , 111 ) ;
2022-12-04 22:30:51 +00:00
//=======
2022-11-20 03:01:55 +00:00
seed = 1234 ;
r = $dist_t ( seed , 5 ) ;
`checkd ( seed , - 797481412 ) ;
`checkd ( r , 0 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_t ( seed , 5 ) ;
`checkd ( sum , - 2 ) ;
2022-12-04 22:30:51 +00:00
//=======
2022-11-20 03:01:55 +00:00
seed = 1234 ;
r = $dist_uniform ( seed , 5 , 10 ) ;
`checkd ( seed , 85231147 ) ;
`checkd ( r , 5 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_uniform ( seed , 5 , 10 ) ;
`checkd ( sum , 147 ) ;
2022-12-04 22:30:51 +00:00
seed = 1234 ;
r = $dist_uniform ( seed , 10 , 5 ) ;
`checkd ( r , 10 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_uniform ( seed , - 2147483648 , - 20 ) ;
`checkd ( sum , 1768955681 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_uniform ( seed , 20 , 2147483647 ) ;
`checkd ( sum , 1534326415 ) ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_uniform ( seed , - 2147483648 , 2147483647 ) ;
`checkd ( sum , 1394525852 ) ;
seed = 0 ;
sum = 1 ;
repeat ( 20 ) sum + = $dist_uniform ( seed , - 10 , 100 ) ;
`checkd ( seed , 1003647461 ) ;
`checkd ( sum , 896 ) ;
2022-11-20 03:01:55 +00:00
$write ( " *-* All Finished *-* \n " ) ;
$finish ;
end
endmodule