是否有一种方法可以使用来自另一个随机队列的元素以基于约束的方式填充队列?例如,
class some_class;
rand bit [7:0] choices [$];
rand bit [7:0] chosen [$];
int num_choices = 20;
int num_chosen = 5;
function new();
endfunction
constraint choices_size_c { choices.size() == num_choices; }
constraint chosen_c {
chosen.size() == num_chosen;
foreach (chosen[i]) {
// check chosen[i] exists somewhere within choices
}
}
endclass
我们的想法是,我们有一些有效的choices
,例如,在某个地方编程。然后,我们选择了其中的5个有效的选择进行测试。这可以用约束来完成吗?或者我需要手动进行后随机化吗?
发布于 2022-10-12 02:17:59
使用set成员资格运算符inside
constraint chosen_c {
chosen.size() == num_chosen;
foreach (chosen[i]) {
chosen[i] inside {choices};
}
}
您还可以添加unique
约束,以防止重复,如果这是您没有提到的要求。
constraint uniq {
unique {choices};
unique {chosen};
}
https://stackoverflow.com/questions/74035401
复制相似问题