UVM TLM EXPORT USAGE REASON

Hello,
I would like to know why do we use export in between a port and an import, when they are at different hierarchy, while we could connect the port directly to the import. Is it something related to semantics, or it’s just a good practice.

In reply to mtbanna:

FYI, this TLM terminology comes directly from SystemC. There are only ports and exports; there are no imports. These are connections that pass a handle to the implementation of a TLM method like put, get, or write.

When the imp and the port are at the same level of hierarchy, you can connect the imp directly the port. The port is the initiator of a request, and it requires a responder, which the imp provides as a handle to a TLM method. When you create additional levels of hierarchy, TLM practice wants to keep the lower level hierarchy details hidden. So as you go up the hierarchy, you would connect a low level port to the upper level port, and a lower level imp to an upper level export. At some point you will get to the level in the hierachy where a connection from export to port is made.