1、背景
最近转行IC验证中,在学习systemverilog,发现有些方面sv和C++非常相似,比如类class、静态变量、全局变量和局部变量的继承等等方面。为了保证这些逻辑是一样的,特别做了几个小的case用于验证这些相关的特性。
2、public、local、protected
这三个关键字,熟悉C++的同学一定不会陌生。在systemverilog中这个功能是一致的。分为三个方面:
(1)public:首先,变量在无修饰情况下默认为是public类型,此类型也是最“暴露”的类型。用此关键字修饰(或者无修饰默认此修饰)的变量或者方法都可以被外部调用或者类继承;
(2)local:此关键字意味着这个变量或者方法只能在这个类class中使用,不能被外部调用或者类继承;
(3)protected: 此关键字意味着这个变量或方法可以被类继承使用,但是不能被外部调用。
字数太多,看表:
key word | 类中可调用 | 继承类可调用 | 外部可调用 |
public/NULL | 是 | 是 |