Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
verilog中的随机向量生成_Verilog - Fatal编程技术网

verilog中的随机向量生成

verilog中的随机向量生成,verilog,Verilog,我需要在Verilog中生成1023位的随机向量。我需要一些东西,我可以放在测试台上生成这样的向量,并将这些向量提供给测试中的设计如注释中所述,对$random的串联调用可能会达到您的目的,除非您真的需要避免32位周期性(这可能仍然可以通过$random实现,但如果可能的话,我不确定如何最好地实现) 最好使用一些SystemVerilog构造,即随机类: class myVector; rand bit [1022:0] vec; // 1023 bits endclass ... myV

我需要在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;
类myVector;
随机位[1022:0]vec;//1023位
末级
...
myVector vec=新的;
向量随机化();

getRandomVector但是$random只生成一个32位的随机向量。一个可能的解决方案是将32位向量连接起来形成一个1024位的向量,然后使用它。但是,我想知道我们是否可以做得更好?因为32位的随机向量是基于伪测试向量生成的,所以向量将开始重复大约2/3(2^32)后,我需要超过20亿个码字/向量用于我的应用提示,如果你需要严格控制随机变量,你真的应该使用这些SystemVerilog结构,因为它们正是出于这个原因添加到语言中的!