【验证小bai】静态模块(module或interface等)中的可控随机探索($urandom/$random)

前言

搭建简单的superbench

在centOS中依靠makefile和VCS搭建了自己的平台之后,可以逐步将之前记录和解决的问题付诸实践,慢慢的归纳和分享。这次要来解决的是一个经典问题,就是验证环境中的静态模块(主要是module和interface)的随机问题;

内容较多,节约时间可直接至“结论”;

背景

我需要做一个延时模块,目的是把输入信号延时一段时间,然后输出,主要的应用场景就是模拟跨异步传输延时误差和总线传输延时误差;

因为总线不止1bit,因此要例化多个模块,那么我的需求是这样的:

1.同一个延时模块进行多次延时,每次随机值应该不同;

2.不同延时模块进行同一次延时,延时随机值应该不同;

3.随机延时值必须可控,即相同种子的两次用例结果应该是一致的;

一般来说,我们做随机,常用的函数就是几个:$random、$urandom、$urandom_range(min, max)、std:randomize(),其中第一个大家一定都知道是要尽量避免使用的,因为其不受seed控制(顺便说一下,关于这里建议还是查询下sv标准,绿皮书里的说明也有些错误),这里就重点说明下$urandom与$random好了;

$urandom与$random

关于这两个系统函数呢,其实各路英雄也总结的很多了,核心就是

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

尼德兰的喵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值