在 SystemVerilog 中,Virtual Class 是否与 Abstract Class 相同?
In SystemVerilog, Is Virtual Class same as Abstract Class?
请帮助我理解 SystemVerilog 中 Virtual Class 的需要。
对于抽象class,我们可以使用SystemVerilog中的Interface。这两者之间有什么区别?
是的,SystemVerilog 中的抽象 class 与虚拟 class 相同。 Java 使用关键字 'abstract',但其他语言如 C++ 没有特定的关键字。 SystemVerilog 重新使用关键字 virtual
以免保留另一个关键字。抽象 class 只是构造函数受保护的抽象,您不能直接构造它,必须先扩展 class 才能构造派生对象。
Abstract classes 允许另一个概念是纯虚方法。这些是必须在扩展 class 中覆盖的方法。像 UVM 这样的基础 class 库充满了抽象 classes 并且具有您必须覆盖的方法,例如复制或打印方法。
仅包含纯虚方法的抽象 class 称为 interface class
,您可以定义实现多个接口 class 的接口 class。今年 DVCon 有很多关于这个主题的论文。
请帮助我理解 SystemVerilog 中 Virtual Class 的需要。
对于抽象class,我们可以使用SystemVerilog中的Interface。这两者之间有什么区别?
是的,SystemVerilog 中的抽象 class 与虚拟 class 相同。 Java 使用关键字 'abstract',但其他语言如 C++ 没有特定的关键字。 SystemVerilog 重新使用关键字 virtual
以免保留另一个关键字。抽象 class 只是构造函数受保护的抽象,您不能直接构造它,必须先扩展 class 才能构造派生对象。
Abstract classes 允许另一个概念是纯虚方法。这些是必须在扩展 class 中覆盖的方法。像 UVM 这样的基础 class 库充满了抽象 classes 并且具有您必须覆盖的方法,例如复制或打印方法。
仅包含纯虚方法的抽象 class 称为 interface class
,您可以定义实现多个接口 class 的接口 class。今年 DVCon 有很多关于这个主题的论文。