In reply to Venkatesh Maddibande Sheshadrivasan:
In general TLM, "ports" are requirements that they get connected to implementations with a specific set of callable methods.
uvm_nonblocking_put port requires the try_put() and can_put() methods.
uvm_blocking_put port requires the put() method.
uvm_put port requires all of the above.
You get an error if you try to call a method that was not specified by the port.