Difference between put_port and get_port?

Can anyone please help me in understanding exact difference between put_port and get_port from usage and definition point of view.
Thanks

In reply to ashutosh1122:

In UVM, PORT is always an initiator of a request. It has a symbol of Square.
Export is always a provider of that request.
So put_port() method is used to send data/transaction to a consumer which has corresponding export.
Similarly, get_port() method is used to fetch some data/transaction from the consumer which has the corresponding Export (symbolizes with circle).
For more details and expample you can refer section 2.3.1.3 of UVM Verification Methodology 1.2 User’s Guide’2015.
Hope it will help you.

In reply to kapil_kumar@mentor.com:

“Absolutely helpful”!!

okies…so is it like we will be having separate physical connections for put_port and get_port?
producer | consumer
uvm_put_port #(t) put_port; | uvm_put_export #(t,consumer) put_export;
uvm_get_export #(t) get_export uvm_get_port #(t) get_port;
|
|
|

In reply to ashutosh1122:

Yes We need separate connections for Port to Export.

Thanks a lot :)