UVM Primer - OOP基础 - 定义类

Posted yiyedada

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVM Primer - OOP基础 - 定义类相关的知识,希望对你有一定的参考价值。

 1   class rectangle;
 2     int length;  //类的数据成员
 3     int width;
 4     
 5     function new(int l, int w);   //类的构造函数
 6       length = l;
 7       width  = w;
 8     endfunction
 9     
10     function int area;  //方法
11       return length * width;
12     endfunction
13   endclass : rectangle
14 
15   
16   module top_rectangle ;
17 
18     rectangle rectangle_h; //声明了一个rectangle类型的变量。我们把它命名为rectangle_h,它是个指向长方形类的句柄。句柄类似于内存指针,不同的是句柄不能拿来运算。这句定义为句柄分配了足够的内存了,不过还没为对象分配内存
19 
20     initial begin
21 
22       rectangle_h = new(.l(50),.w(20)); //我们用new()函数创建一个长度50宽度20的长方形,是在这里为对象分配的内存。           
//这个叫做例化对象。我们可以描述这一步为例化rectangle类的一个对象,并用rectangle_h变量来保存           
//调用new()的时候为我们的新对象分配内存,我们不再引用的时候回收内存。
23 
24       $display("rectangle area: %0d", rectangle_h.area()); //有了保存在rectangle_h变量中的rectangle对象之后,我们可以用area()来计算长方形的面积了。
25 
26     end
27 endmodule : top_rectangle

 

以上是关于UVM Primer - OOP基础 - 定义类的主要内容,如果未能解决你的问题,请参考以下文章

从零开始学习 UVM2.5UVM 基础功能 —— UVM Object Copy/Clone

第三章 UVM基础

UVM系统验证基础知识0(Questasim搭建第一个UVM环境)

从零开始,搭建一个简单的UVM验证平台

C++ Primer Plus学习:第十章

C++ Primer 0x0F 学习笔记