Contact / Report an issue

UVM TLM

TLM


Transaction-Level Modeling (TLM) is used for communication among modules. TLM is the concept in which transaction based methods are implemented, these methods can be used for communication between the modules.

UVM TLM


The UVM provides TLM library with transaction-level interfaces, ports, exports, imp ports, and analysis ports. all these TLM elements are required to send a transaction, receive transaction, and transport from one component to another. where each one plays its unique role.

  • TLM Interfaces consists of methods for sending and receiving the transaction
  • All different types of TLM Ports are used like PIPES to connect between the components

The UVM TLM library provides,
  • TLM1 - The TLM1 ports provide blocking and non-blocking pass-by-value transaction-level interfaces.
  • TLM2 - The TLM2 sockets provide blocking and non-blocking transaction-level interfaces with well-defined completion semantics.
  • Sequencer Port - A push or pull port, with well-defined completion semantics.
  • Analysis - The analysis interface is used to perform non-blocking broadcasts of transactions to connected components

Summary of UVM TLM


UVM TLM
UVM TLM
* Click on image for a better view



TLM1


UVM TLM provides unidirectional and bidirectional,
  • TLM interfaces
  • ports
  • exports
  • imp ports
  • analysis portss
  • FIFOs

Each TLM interface is either blocking, non-blocking, or a combination of these two.
  • Blocking - Blocking TLM methods call will not return until the transaction has been successfully sent or retrieved
  • Non-blocking - Non-Blocking TLM methods call attempts to convey a transaction without consuming simulation time
  • Combination - A combination interface contains both the blocking and nonblocking variants.

Summary of UVM TLM1


UVM TLM1
UVM TLM1


* Click on image for a better view