美文网首页
谈一谈SystemVerilog的randomize

谈一谈SystemVerilog的randomize

作者: li_li_li_1202 | 来源:发表于2022-03-02 10:01 被阅读0次

提到systermverilog,最常接触的就是随机,与随机紧密相关的函数就是randomize,但是实际上我们又对randomize知道多少呢?本章节我们就梳理一下randomize()的坑。

一些之前踩过的坑:https://www.cnblogs.com/xuqing125/p/15772001.html

从下面几个例子入手:

例子一:randomize的正常使用。

  • 基类bird有自己的随机变量:src/drc
  • 扩展类parr有单属于自己的随机变量:a/b
仿真结果

例子二:A = B

  • A = B;
  • 仅仅对A.randomize()
仿真结果
  • 基类的句柄A指向的是扩展类的对象B.
  • A.randomize(),从结果来看B(a/b)也进行了随机化.randomize()其实就是类似于virtual的function。

例子三:A= B,A.randomize() with {a ==2 ;};

解决方法:将基类句柄转换成扩展类的类型。

image.png

注意:这个在sequence中需要尤其注意,因为seq中涉及到随机化。

相关文章

网友评论

      本文标题:谈一谈SystemVerilog的randomize

      本文链接:https://www.haomeiwen.com/subject/pcjsrrtx.html