面试问题:我有一个基于systemverilog的课程如下:
class A;
rand n;
constraint c:{n>=10 &&n<=15};
bit [31:0] arr[];
randc [31:0] data;
endclass
在这种情况下,'n'是动态数组arr的大小 . 问题是如何编写一个方法来创建数组,以便该数组中的所有元素彼此不同 .
所以问题是randc类型只能确保每次我实例化类时,我得到一个不同的值,但是如何将这些值存储在这样的数组中呢?任何帮助表示赞赏 .
附:课堂上可能有错误,可以编辑 .
3 回答
你想要 unique 约束 .
您可以使用一些严格的约束生成动态数组的唯一随机模式 . 我尝试给出相同的解决方案 . 我还为此添加了一个代码示例 . 希望它会对你有所帮助 .
没有唯一性,你可以这样做: