0

您如何在 specman 中使用 gen 生成“randc”类型的实现?
例子:

list_l : list of uint(bits:3);
keep list_1.size () == 8;

我想以这样的方式生成列表的所有元素都应该在(0 -7)之间随机出现。

4

2 回答 2

2

当前在列表上定义的约束将确保生成的列表包含范围内的所有值[0..7]
使用gen将根据需要生成列表。

例子

list_l : list of uint(bits:3);
keep list_l.size () == 8;
generate_list() is {
    gen list_l;
}

如果您希望所有列表项都是唯一的,请在列表中添加以下约束:

keep list_l.all_differnt(it);
于 2013-01-29T13:23:48.963 回答
0

可以使用“is_a_permutation()”伪方法来用每个值填充列表一次。

例子

list_l : list of uint(bits:3);
keep list_1.is_a_permutation(all_values(uint(bits:3)));

或者

keep list_1.is_a_permutation({0;1;2;3;4;5;6;7});

请注意,在此示例中,“is_a_permutation()”将列表大小限制为 8。

于 2013-02-09T21:47:46.260 回答