【芯片验证学习纪实】System Verilog语法(5)
继学习了FPGA设计之后,学习IC验证也有一段时间了,学习过程中参考了很多互联网上的优秀资源,在此感谢各位前辈们的无私分享!现在,利用闲暇之余将对自己整个学习过程做个简单的回顾和总结。
首先,在system verilog学习中用到的参考书是绿皮书《system verilog验证——测试平台编写指南》(第二版)。另在回顾时翻阅了相关总结:
https://blog.csdn.net/qq_31935691/article/details/54982105
那么,开始吧。
十四、面向对象的基础(oop)
1、 oop术语:
类(class):包含变量和子程序的基本构建块。
对象(object):类的实例
句柄(handle):指向对象的指针。一个句柄可以指向很多对象。
属性(property):存储数据的变量
方法(method):任务或者函数中操作的程序性代码
原型(prototype):程序的头,包括程序名、返回类型和参数列表
2、 声明和使用handle:
例
在声明句柄tr的时候,它被初始化为特殊值null。
正确调用new()函数的方法:
例:
3、 new()和new[]的区别
new[]操作建立一个含有多个元素的数组。New()可以使用参数设置对象的值,而new[]只需使用一个数值来设置数组的大小。
4、 对象的解除分配
例:transaction t; //创建一个handle
t=new(); //分配一个新的transaction
t=new(); //分配第二个,并且释放第一个t
t=null; //解除分配第二个
5、 使用对象的方法:
例:
6、 使用静态变量的方法
例:
十五、类的方法
1、 类中的方法使用:
例:
2、 类外的方法声明:
在开始处添加关键词extern。然后在类定义后面,在方法名前加上类名和两个冒号::。
例:
3、 this的使用方法:
当使用一个变量名的时候,systemverilog将先在当前作用域内寻找,接着在上一级作用域内寻找,直到找到该变量为止。
例:
4、 在一个类中使用另外一个类的方法。
通过使用指向对象的句柄,一个类内部可以包含另一个类的实例
例:
5、 注意正确放好new的位置
例:
6、 使用new操作符复制一个对象
例:
使用new操作符复制复杂类
例: