在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3477|回复: 8

[求助] UVM 源代码 uvm_create_random_seed()

[复制链接]
发表于 2022-1-18 10:13:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 许晴125 于 2022-1-18 18:01 编辑

最近跟seed较上劲了,各种奇奇怪怪的问题,但其实在实际的项目应用中,我们就是用+ntb_random_seed=1234567,来指定seed,但是最近看源码,发现有uvm_create_random_seed()这个函数,从表面意思来看,就是指定random seed。这里我有两个问题,

第一:+ntb_random_seed=123456作为vcs的一个参数,它是怎么样在代码的内部来指定seed的?

+ntb_random_seed=value
Sets the seed value to be used by the top-level random number generator at the start of simulation. The srandom(seed) system function call overrides this setting. The value can be any integer. The default random seed value is 1.

第二:uvm_create_random_seed()这个函数的作用是什么意思?跟+ntb_random_seed指定的seed有什么联系呢?

image.png

image.png

image.png


 楼主| 发表于 2022-1-18 10:13:51 | 显示全部楼层
求大佬指教
发表于 2022-1-18 12:12:09 来自手机 | 显示全部楼层
学霸,其实我是好奇你为什么想钻研这个呢?自己搞我只是在之前带新人的时候有的小lab会这么写一下,真正的项目还是你说的这种直接给仿真器传一个seed就可以了
发表于 2022-1-18 12:55:55 | 显示全部楼层
个人感觉是两套机制吧,UVM在SV RNG的基础上做了一些random stability的enhancement
可以参考https://iksciting.com/random-stability/
不知道你能不能访问的了。。。
发表于 2022-1-18 12:56:44 | 显示全部楼层


sfc19910705 发表于 2022-1-18 12:55
个人感觉是两套机制吧,UVM在SV RNG的基础上做了一些random stability的enhancement
可以参考https://iksci ...


网址是韩语的,可以翻译成英文
发表于 2022-1-18 14:43:31 | 显示全部楼层
看的挺详细的啊。我的理解啊,+ntp_random_seed是用来指定仿真器的初始seed,仿真器内部参数,应该看不到具体的实现方式,uvm_create_random_seed()是用这个初始的seed 再次随机出来一个seed供后续的环境使用,可能可以获取到更好的随机性(这个东西需要理论证明,按我的理解都是从一个源头过来的,可能影响不会太大)。两个东西并不冲突啊。
另外uvm_create_random_seed()这个函数有点小问题,会有概率返回0,而srandom的参数应该是不可以为0的,仿真多了仔细看log应该可以看到这个warning。
 楼主| 发表于 2022-1-18 17:04:51 | 显示全部楼层


eaglezhang01 发表于 2022-1-18 12:12
学霸,其实我是好奇你为什么想钻研这个呢?自己搞我只是在之前带新人的时候有的小lab会这么写一下,真正的 ...


最近组内有同学在讲seed部分,但又讲不太清楚,就自己琢磨一下
 楼主| 发表于 2022-1-18 17:56:00 | 显示全部楼层


sfc19910705 发表于 2022-1-18 12:55
个人感觉是两套机制吧,UVM在SV RNG的基础上做了一些random stability的enhancement
可以参考https://iksci ...


这个讲的太好的,解开了我所有的疑惑,感谢。
 楼主| 发表于 2022-1-18 18:00:42 | 显示全部楼层


dtyuzhou 发表于 2022-1-18 14:43
看的挺详细的啊。我的理解啊,+ntp_random_seed是用来指定仿真器的初始seed,仿真器内部参数,应该看不到具 ...


image.png 是的,所有thread的派生关系如图,其实UVM就是在这个上面又做了一层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-9 08:04 , Processed in 0.022003 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表