Difference between port and export

i’m reading an OVM Cookbook and trying to understand the difference between the port and the export but i don’t see one. it seems to me export is the kind of the port i connect to with a port with exception that export actually implements the put and get and and many other methods. am i correct?

any help is appreciated.

I think your question has the answer.

You can look at port as an initiator; and export as responder.
Sometime transaction flows from initiator to responder (e.g. put call)
and sometimes transaction flows from responder to initiator (e.g. get)

Note that even though exports implements the TLM methods, most of the time they actually
delegate the implementation to their parents.

In terms of class hierarchy, both port, export, imp are all derived from port_base class.

Thought I dont understand the internal working of TLM, I think ports basically deal with call forwarding and some additional checks to make sure that the TLM connections are done properly …