Screenshot from this video. enter image description here

Whereas in UVM, sequencer has an import/export and driver has a port. Sequencer seems to be the transaction initiator and driver as the executor (as it is finally assigning transaction to the DUT). Is this right? Image from this video:

enter image description here


1 Answer 1


You have it reversed. The driver calls get()/get_next_item() methods which initiates the transaction, and the sequencer provides the implementation that executes the get.

In TLM-speak the initiator is the place in your code were you call the method; and the executor is the method being called.

  • A get() initiates a transfer where the transaction moves from the executor to the initiator
  • A put() initiates a transfer where the transaction moves from the initiator to the executor

I believe the UVM uses the term imp rather than import referring to the implementation of the method to be called. This is so you don't confuse it with an export, which is just an intermediary providing a handle to an imp to connect to a port.

Most components have two sides to them, acting as both initiator and executor. A UVM driver is translating TLM transactions it get()s and executing them as pin-level DUT transactions.

  • \$\begingroup\$ Thus, unlike the traditional SV TB, where generator has put and driver has get, in UVM, it is the driver's get next item call which retrieves the next transaction once the finish item (seems to be passive) in sequence is done. Thank you Dave for providing an insightful answer! \$\endgroup\$
    – lousycoder
    Commented Mar 18, 2022 at 12:35
  • \$\begingroup\$ In the UVM, the sequence is the generator, and put() is split into start_item/finish_item. See verificationacademy.com/cookbook/driver/sequence-api \$\endgroup\$
    – dave_59
    Commented Mar 18, 2022 at 16:19
  • \$\begingroup\$ I don't have the full access to view what you have just shared. \$\endgroup\$
    – lousycoder
    Commented Mar 18, 2022 at 18:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.