Debugging VIP's API calls

Hi Forum,

As a newbie I was trying following code on edaplayground

Class send_txn1 inherits non-virtual function activate and overrides virtual function do_activate

(1) Why does the overridden task do_activate get called and not the do_activate API in base class ?

(2) Wouldn’t the call to activate call the task defined in base class ?

(3) What does inheritance actually mean ? I understand that extended classes have access to inherited APIs / properties

Would the activate task implicitly be written as part of extended class ? i.e Is it equivalent to re-write activate in extended class ?

Thanks

Before attempting to use the UVM, you should study SystemVerilog object-oriented programming. Many resources are available, including those provided by the Verification Academy.

In SystemVerilog, a call to a virtual method works by examining the runtime type of the object that makes the call, rather than just the type used in the variable declaration, and it calls the most derived method available for that object.