Bootstrap

SV,class学习笔记一


class C;
	int c1 ;
	int c2 ;
	int c3 ; // 定义变量

	function new(int a); // 构造函数初始化变量,a的值从外部传递
		 c2 = 2;
		 c3 = a;
	endfunction 
endclass 

class D extends C;// 从C中扩展类D,D具有C的特征
	int d1 = 4;
	int d2 = c2;  //可以将c2 的值传递给d2;
	int d3 = 6;

	function new;
		super.new(d1);// 使用super关键字访问原始类 
	endfunction 
endclass 


module tb;

	C p1; //创建句柄
	D p2;

	initial begin

		p1 = new(3); //实例化  new一个对象
		$display("c1 = %0d,c2 = %0d,c3 = %0d",p1.c1,p1.c2,p1.c3);

		p2 = new();
		$display("d1 = %0d,d2 = %0d,d3 = %0d",p2.d1,p2.d2,p2.d3);
	end
endmodule
	


class C; //定义一个原始类
	int c1 ;
	int c2 ;
	int c3 ; //定义变量

	function new(); //构造函数初始化变量
		 c1 = 1;
		 c2 = 2;
		 c3 = 3;
	endfunction 

	function display(); //定义一个display函数
		$display("c1 = %0d,c2 = %0d,c3 = %0d",c1,c2,c3);
	endfunction

endclass 

class D extends C; //定义一个扩展类
	int d1;
	int d2 ;

	function new;
		super.new();  //使用super关键字调用原始类里的函数
		d1 = 2;
		d2 = 3; 
	endfunction 

	function display();
		super.display();   //使用super关键字调用原始类里的display函数
		$display("d1 = %0d,d2 = %0d",d1,d2);
	endfunction
endclass 


module tb;

	C p1;
	D p2; //创建句柄

	initial begin

		p1 = new();

		p2 = new(); //new一个对象
		p2.display; //调用D类里的display函数
	end
endmodule
	

 

;