【SystemVerilog笔记(四)】class与package

(一)class
  • 面向对象编程的三要素:封装、继承和多态。
一、类和对象
1.class类
  • class类包含成员变量(property)和成员方法(method)的声明,属于软件的范畴,只能定义软件变量(reg和wire等硬件信号是不能用的),且默认其生命周期是动态的。此外,class可以通过interface作为媒介获取硬件信号。
2.object对象和handle句柄
  • object对象是类的实例,类的例化可以在任意时间点发生;handle句柄是用来指向对象的指针(悬空的句柄为null),示例如下。
Example ex; //声明句柄
ex = new(); //创建对象
3.创建对象
  • 每个class的都需要有new()函数,该函数为系统预留函数,也可进行自定义。不需指定返回值。
  • 在创建对象后,该对象的空间位置不会更改,指向该空间的句柄可以有多个,当没有句柄指向该对象时,sv会自动回收空间。
4.静态变量与静态方法
  • 使用static来声明class内的变量则是静态变量,该类无论例化多少个对象,都会共享一个同名的静态变量。
  • 静态方法中可以声明并使用动态变量,但是不能使用类的动态成员变量。(在使用静态方法是可能并没有创建具体的对象,也就并没有为动态成员变量开辟空间)
  • 静态方法可以使用类的静态成员变量。二者都在编译阶段就开辟了对应的内存空间。
二、类成员的封装性
  • 成员默认类型为public,子类和外部均可访问。
  • 指明protected则只有该类或者子类可以访问。
  • 指明local则只有该类可以访问成员。
  • this.xx表明调用的成员为当前类的成员。
三、类的继承
  • 继承的关键字为extends
class son extends father;
...
endclass
  • 通过super来索引父类的同名函数。子类在定义new函数时应首先通过super.new()调用父类的new函数,若父类new函数没有参数则可省略,系统自动调用。

※如果子类的句柄赋给了父类的句柄,则父类句柄也只能访问共有的父类成员变量和方法。而反之则不允许父类句柄赋给子类的句柄。(欢迎讨论!)

四、句柄的使用
  • 句柄可以作为形式参数通过方法来完成对象指针的传递。
  • 任意时刻都可以为句柄创建新的对象,注意同一个对象可能有多个句柄(不管通过哪个句柄读出数据结果也自然是一样的)。
(二)package
  • package中可以定义类、静态方法和静态变量,不可以定义硬件相关的module、interface等。
  • 通过package::xx的方式导入package中的类、方法等。
  • 如果package名称唯一且内部定义的名称也与其他package各不相同,则可通过import package_name::*的方式使得包中的内容可以被搜索到。
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SystemVerilog是一种硬件描述语言(HDL),用于设计和验证数字电路。SystemVerilog具有丰富的特性,适用于各种设计和验证任务。以下是SystemVerilog入门笔记的一些重点内容。 首先,了解SystemVerilog的基本语法是很重要的。SystemVerilog继承了Verilog的语法,同时加入了一些额外的特性,如数据类型、类和接口等。熟悉这些语法规则对于编写有效的代码至关重要。 其次,了解模块和端口的概念。SystemVerilog中的模块是最基本的构建单元,而端口则是模块与外部环境之间的接口。了解如何定义和使用模块和端口是编写可重用代码的关键。 另外,掌握数据类型和运算符是必不可少的。SystemVerilog支持多种数据类型,如整数、浮点数、逻辑值等,同时也提供了丰富的运算符,如加法、减法、逻辑运算符等。这些知识对于设计和验证数字电路非常重要。 此外,了解时序控制和并发控制是必要的。SystemVerilog提供了多种时序控制和并发控制的语法和特性,如always块、initial块和fork/join语句等。掌握这些知识对于设计复杂的数字电路至关重要。 最后,了解Verilog验证中的一些基本概念也是很重要的。例如,了解如何使用assert语句进行断言检查、如何使用coverage语句进行覆盖率分析等。 总之,SystemVerilog入门需要掌握其基本语法、模块和端口、数据类型和运算符、时序控制和并发控制,以及一些基本的验证概念。这些知识是成为一名合格的SystemVerilog工程师所必备的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值