Systemverilog中有关virtual的概念与使用方法

        在搭建验证平台的过程中,我们经常会看到virtual这个单词。常见的有virtual interface,virtual function/task 和virtual class。需要使用virtual的原因如下:

        1、virtual interface

        在整个验证环境中,我们声明的interface都必须是virtual类型的。因为真实的interface是一组接口,是不可以在class或者program中例化的。所以我们需要使用virtual interface,它是真实interface的指针,可以在class中例化。

        2、virtual function/task

        我们都知道SV相比于Verilog而言,新增了面向对象编程OOP的语法规则,包括封装、继承和类的多态(虚方法)。类的多态(虚方法)即指的是当使用virtual function/task时,将调用所指向对象的成员变量或者方法

        例如,当父类句柄指向子类对象时,如果父类中的function/task声明了virtual,那么该句柄将可以调用所指向的子类对象中同名的function/task。相反,如果没有声明virtual,那么只能调用父类中该function/task。

        【没有添加virtual时,父类句柄不能访问子类的成员变量或方法。但是子类句柄访问父类的成员变量或方法是不受到限制的(这是因为继承的性质)。】

        3、virtual class

        virtual class目前用到的还比较少。暂时只需要了解virtual class只可以被继承,不可以直接例化即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值