继学习了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操作符复制复杂类 例: