求助:class内部的随机参数该如何随机化?
时间:10-02
整理:3721RD
点击:
各位:
遇到一个基本的systemverilog语法问题。我在my_class中使用了一个rand bit rw,然后,我想在这个class内部随机化这个变量,使用rw.randomize(),但是irun报错:
rw.randomize();
|
ncelab: *F,CUVUNF (./tb_run.sv,99|7):Hierarchical name component lookup failed at 'randomize'
难道不能这样随机化么,一定要把这个rw放入一个另外一个class中么?
遇到一个基本的systemverilog语法问题。我在my_class中使用了一个rand bit rw,然后,我想在这个class内部随机化这个变量,使用rw.randomize(),但是irun报错:
rw.randomize();
|
ncelab: *F,CUVUNF (./tb_run.sv,99|7):Hierarchical name component lookup failed at 'randomize'
难道不能这样随机化么,一定要把这个rw放入一个另外一个class中么?
randomize(rw)即可。对于变量,随机化不是这么做的,类的话,是有底层随机函数库支撑,所以可以用.randomize。
Good answer. Got it.
谢谢!
刚才试了一下,有个warning,请问没关系么,如下:
randomize(rw);
|
ncvlog *W,FUNTSK (tb_run.sv 10|16):function called as a task vithout void'().
另外,我还想问一下,如果要对rw加额外的约束,是不是这样:
randomize(rw) with {.......};
是的,randomize是有返回值,如果不用的话,最好用void'()包起来,这样就不会有告警了。
哦。终于知道了。谢谢!