这适用于SystemVerilog.我知道你可以在随机变量选择的值集中指定值或值范围的权重,但是如果你想要一个漂亮的高斯分布怎么办?你怎么写这种约束?
当随机化被调用时,这个类会产生变量"值"与正态(高斯)分布,其平均值和标准差分别为100和20,的值.我没有测试过这么多,但它应该工作.
class C;
int seed = 1;
rand int mean;
rand int std_deviation;
rand int value;
function int gaussian_dist();
return $dist_normal( seed, mean, std_deviation );
endfunction
constraint c_parameters {
mean == 100;
std_deviation == 20;
}
constraint c_value { value == gaussian_dist(); }
endclass
Run Code Online (Sandbox Code Playgroud)