在验证日志中生成随机向量



我需要在Verilog中生成随机的1023位向量。我需要一些可以放在测试平台中的东西来生成这样的向量并将这些向量馈送到被测设计中

如评论中所述,对$random的串联调用可能符合您的目的,除非您确实需要避免 32 位周期性(这仍然可以通过 $random 实现,但我不确定如果可能的话如何最好地做到这一点(。

最好使用一些SystemVerilog结构,即随机类:

class myVector;
   rand bit [1022:0] vec; // 1023 bits
endclass
...
myVector vec = new;
vec.randomize();
getRandomVector <= vec.vec;
vec.randomize();
getAnotherRandomVector <= vec.vec;

如果要确保对.randomize()的多次调用不会重复,则可以将vec声明为randc(您可以在IEEE 1800-2012 Ch 18中阅读有关确切差异的更多信息(。您还可以对随机化提供约束,以便仅在需要时获取某种形式的向量(例如限制 1 的数量或类似的东西(。

最新更新