randc in specman

时间:2013-01-29 12:59:54

标签: specman

你如何产生" randc"在specman中使用gen的实现方式?
示例:

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

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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()”将list-size限制为8。