random - 如果verilog中的模拟具有随机值,如何每次都有不同的结果?
问题描述
我想在每次运行时生成相同代码的不同输出,因为它具有分配给某些变量的随机值。有没有办法做到这一点,例如time
在 C 中使用 as 播种?
包含随机化的示例代码:
class ABC;
rand bit [4 : 0] arr []; // dynamic array
constraint arr_size{
arr.size() >= 2;
arr.size() <= 6;
}
endclass
module constraint_array_randomization();
ABC test_class;
initial begin
test_class = new();
test_class.randomize();
$display("The array has the value = %p ", test_class.arr);
end
endmodule
解决方案
我这可能取决于正在使用的工具。例如来自 cadence 的 xcelium 支持(我认为是xrun -seed some_seed
Questa )。-sv_seed some_seed
我确信所有工具都支持类似的东西。寻找模拟工具参考/手册/指南/帮助,它可能支持每次模拟运行的随机种子。
不确定这是否可以从模拟内部进行。
正如 Questa 的评论中提到的那样,-sv_seed random
应该可以解决问题。
推荐阅读
- c++ - OpenCV混合模式实现:为什么看似等价的操作却有不同的结果?
- php - 404 页面未找到:/index
- assembly - 使用位移来执行乘法
- javascript - 连接到 Gmail API 的问题
- hive - 编译语句时出错:FAILED: ParseException line 17:64 mismatched input '.' 在更新语句中期待 = 接近“暗淡”
- python - 如果相同,熊猫加入删除列
- quantum-computing - 什么是量子计算机:它的量子比特状态和修改速度有多快?
- python-3.x - 我在 python rx=3.0.1 中收到“AttributeError: type object 'Observable' has no attribute 'from_'”错误
- python - 当我连接数据框时,我正在处理熊猫,我正在获取模块'pandas'没有属性'dataFrame'
- java - Java:将数组/元素列表拆分为相等元素的子列表