Difference between uvm_put_port and uvm_nonblocking_put_port

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.

1 Like