菜鸟求助!sv随机化问题
时间:10-02
整理:3721RD
点击:
一个随机类如何在每次仿真启动后能产生一个不同的随机序列?
ps:我每次都产生相同的随机序列!
自个儿给自个儿顶一下
需要在runtime命令中指定不同的seed
能否具体点,thx
vcs运行时指定+ntb_random_seed=seed
或者在代码,类的new函数里面设置类的随机化种子,使用buid-in函数:
this.srandom(seed);
每次开始的时候seed不一样就可以了;你可以这样,使用一个file来记录之前每次你使用过的种子,使用
$fwrite()追加模式,然后在每次启动之前都把当前你设置的种子和file里记录的之前的所有种子比较,如果不一样就可以用了,这个比较的过程很简单,可以使用一个动态或者队列把file的内容读出来,使用buid-in函数如find()之类。
总之,用一个正规的file来让程序自动记录是最好的我认为,一次两次你可以人为的控制让它不同,当时1万次呢,我个人比较喜欢用文件来保存东西,$fopen$fwrite$fscanf$close可以搞定绝大多数应用。
一家之言,也许有其它更简洁的方法,仅供参考
modelsim下是-sv_seed 数字
谢谢大家这么热心!