【发布时间】:2011-05-17 06:29:37
【问题描述】:
我想测试 Verilog 模块的所有可能输入组合。我已经能够通过构建一个带有嵌套 for 循环的数组来生成这些输入。但是我想以随机顺序遍历数组。如何做到这一点,或者有没有办法生成一个包含所有可能输入的数组,这些输入已经是随机顺序的?
【问题讨论】:
-
我不确定我是否理解。您说您“不想以随机顺序遍历数组”-但嵌套的
for循环不会是随机的?另外,你能解释一下“生成一个包含所有可能输入的数组,这些输入已经是随机顺序”的意思吗? -
如果您的目标是遍历输入中所有可能的有效组合,而不执行相当于 1、2、3、4、5 等的操作,但也不重复输入?跨度>
-
也许您正在寻找shuffle algorithm?
-
@Andy,你能把它贴在答案中,这样我就可以投票了吗?我以前从未听说过这种算法,但我可以立即看到它们在验证设置中的用途。我想知道 SystemVerilog 是否将这类事情作为其受约束的随机内容的一部分。
-
@Marty:SystemVerilog 的数组有一个
shuffle方法。
标签: arrays random verilog system-verilog