0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么需要使用virtual,不用可不可以?

冬至子 来源:不二鱼 作者:不二鱼 2023-06-16 11:34 次阅读

在UVM或者SV中,经常会碰到被virtual修饰的 class、sequence、sequencer、interface、function,不知道你有没有这样的疑问,为什么需要使用virtual,不用可不可以?所以就总结了一下。

  • virtual class

在一切面向对象编程语言中,类最基本的元素。基类(或者说父类)可以包含最基础的一些组成,特征,形成最基本的框架,但是并不完整。基类作为一个不完整的类, 它的主要作用不是被实例化,而是被拓展 ,因为,不完整就实例化也没有意义。

在后续的环境构建当中,可以从这个基类扩展出很多的子类,丰富基类的结构。这样的类,就可以设置成virtual class,使其变得抽象。注意,一个抽象的类,是不能够被实例化的,它只能被继承/扩展,如果实例化,则会出错。

  • virtual function和pure virtual function

pure virtual function是偶然在工作中遇到的,可能见到的次数不多,但还是要学习一下。

virtual function和类的多态性有关,使用户在设计和实现类时不需要担心句柄指向的对象类型是父类还是子类,只要通过虚方法,就可以进行动态绑定,或者SV中称为动态查找方法(摘自红宝书)。

简单理解就是,virtual function是基类中的函数模板,可在派生类中使用新代码重写该函数模板’,它存在对的目的就是为了后续能够重写该函数。如果分不清到底需不需要加上virtual,可以都加上,便于后续的重写,不重写也不会报错。

pure virtual function 虚纯函数是基类中的函数模板, 必须在派生类中用新代码重写

总结一下:对于virtual function ,是在base中提供了一个函数模板,但不是必须进行override,但对于pure virtual function 而言,必须进行override,如果你忘记override,则会出现编译错误,也起了一种提示作用。

  • virtual sequence/sequencer

  • virtual interface

virtual interface你可以认为语法就是这样。作为类和dut之间进行通信的唯一方法,在一个类中,如果实例化一个interface,是不允许的,出现了就会报语法错误,只能在module里面直接

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • UVM
    UVM
    +关注

    关注

    0

    文章

    181

    浏览量

    18964
  • Module
    +关注

    关注

    0

    文章

    58

    浏览量

    12810
  • sequence
    +关注

    关注

    0

    文章

    23

    浏览量

    2807
收藏 人收藏

    评论

    相关推荐

    Powerpads pcb可不可以直接放封装画线路

    ,请教高手一个问题,Power p.cb.可不可以直接放封装画线路,谢谢
    发表于 10-11 12:49

    pspice可不可以仿真线圈共振

    请问一下pspice可不可以仿真两个线圈的共振呢
    发表于 07-09 20:44

    multisim 可不可以做89C52 单片机的仿真?

    multisim可不可以做89C52 单片机的仿真?
    发表于 03-22 12:50

    串行12864可不可以读出内部数据呢?

    有没有人告诉我串行12864究竟可不可以读出内部数据呢?串行12864究竟可不可以进行读操作呢?
    发表于 09-28 20:18

    版主,好的帖子,可不可以收藏在自己的用户名下?

    版主,好的帖子,可不可以收藏在自己的用户名下?
    发表于 11-16 19:53

    可不可以用来混积分

    新手需要下载大量的资料可是却不没有积分。。。。。可不可以发个帖子混混积分啊
    发表于 09-10 15:45

    功放后边可不可以再加个功放

    功放后边可不可以再加个功放
    发表于 09-22 15:10

    CC2530做开发串口的流控可不可以不用

    CC2530做开发串口的流控可不可以不用?我现在用CC2530做开发,有两个关于升级的问题请教一下:1.OTA升级时串口的流控是必须的选项吗?可不可以不用?如果
    发表于 04-05 13:39

    排阻可不可以直接用八个电阻代替啊

    排阻可不可以直接用八个电阻代替啊
    发表于 10-11 14:57

    DM8148的uboot可不可以直接用于DM8127?

    DM8148的uboot可不可以直接用于DM8127?如果不可以需要修改哪些方面?
    发表于 06-23 04:41

    jtag V8可不可以仿真M0的芯片吗?

    jtag V8 可不可以仿真M0的芯片吗?
    发表于 06-03 06:22

    可不可以将ad7763与dsp相连接?

    请问 可不可以将ad7763与dsp相连接,有具体连接方式吗
    发表于 12-20 08:12

    纽扣电池各类型有什么特点到底可不可以充电

    本文是以纽扣电池为主题展开的,重要是讨论有关纽扣电池可不可以充电的问题?不清楚的小伙伴看下文!
    发表于 08-29 17:18 4771次阅读

    PFA管是透明的吗,可不可以做彩色?

    PFA管是透明的吗,可不可以做彩色? PFA管是由PFA原料做成的,PFA管的颜色也是有PFA原料的颜色决定的。追根溯源,我们看看PFA原料有哪些颜色? 以深圳君昇为例。我们在他们东莞车间看到
    发表于 09-18 15:09 798次阅读

    常规工字电感封装尺寸可不可以进行变化

    电子发烧友网站提供《常规工字电感封装尺寸可不可以进行变化.docx》资料免费下载
    发表于 04-14 09:34 0次下载