The this keyword is used to refer to class properties, parameters and methods of the current instance. It can only be used within non-static methods, constraints and covergroups. this is basically a pre-defined object handle that refers to the object that was used to invoke the method in which this is used.

Example

A very common way of using this is within the initialization block.


class Packet;
	bit [31:0] addr;
	
	function new (bit [31:0] addr);
//		addr = addr;          //  Which addr should get assigned ?

		this.addr = addr;     //  addr variable in Packet class should be 
		                      //  assigned with local variable addr in new()
	endfunction
endclass

Unless there is ambiguity in assignment, use of this keyword is not generally needed for specifying access to class members in methods.