[SV]SystemVerilog中的随机方法

SystemVerilog中的随机方法

一、基本知识

       随机数发生器(RNG)对于对象和线程来说都是本地的,被一个对象或者线程使用的随机序列独立于其他的对象或者线程,这个特性被称之为随机稳定性。随机稳定性的基础是伪随机数发生器,一般来说,伪随机数由算法和种子决定,当算法固定时,通过控制种子就可以控制其产生的随机数序列。

二、SV中的随机方法

 2.1 产生随机数的方法

$random(),$urandom(),$urandom_range()和$random(seed=0),其他方式指定的种子不能改变$random()的随机序列:

rd_addr = $random()$urandom(seed=1);

其他方式指定的种子影响$urandom()产生的随机序列,

rd_addr=$urandom()$urandom_range(int min,int max),

产生受种子影响的范围内的随机序列:

rd_addr = $urandom_range(100, 500);

 2.2 类的randomize()

std::randomize()类的randomize()方法是对类的属性随机,可以使用with进行指定约束:

rdaddr.randomize() with{
  rd_addr inside {0,12,45,36};
};

std::randomize()和randomize()类似,对作用域里的变量进行随机,也可以使

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元直数字电路验证

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值