2020-08-26 system verilog学习笔记

本文详细介绍了System Verilog的面向对象编程技巧,包括类的继承、虚方法的使用、构造函数的应用、蓝图模式在事务生成器中的作用,以及类型转换和虚拟方法的概念。通过这些内容,读者可以更好地理解和应用System Verilog的高级特性。
摘要由CSDN通过智能技术生成

8 OOP技巧

1、 类的继承,如果父类构造函数无参数和返回类型,则子类扩展类不需要构造函数,如只继承变量类和方法

2、 父类的方法定义成虚方法,这样就可以再扩展类中重定义

3、 子程序的原型prototype是指明了参数列表和返回类型的第一行。

4、 当启动扩展类的时候,构造函数new:如果基类里有参数,那么扩展类必须有一个构造函数new(var),并且必须再构造函数第一行调用基类的构造函数super.new(input int var);

5、声明一个虚方法,这样svhi查看存储再tr中的对象类型,并且以此选取恰当的方法或访问正确的对象类型。如果对象是父类类型,那么调用父类方法

6、蓝图模式:想要构建一个事务发生器得时候,不需要知道怎样建立各种类型得事务,只需要能够根据给定得事务建立一个类似的新事务。

构建并使用一个对象:

class generator;
mailbox gen2drv;
Transaction tr;


function new(input mailbox gen2drv);
  this.gen2drv = gen2drv;
endfunction


task run;
      forever begin
          tr=new();
          assert(tr.randomize);
          gen2drv.put(tr);
      end
endtask
endclass

任务run创建了一个书屋并立即随机化该值。这意味着该transaction 使用默认 所有约束。若要修改约束,只能修改transaction类,不符合验证准则;并且gen只使用了transaction对象,因此无法使用扩展对象,所以只能将tr

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值