Learn More

TLM establishes a connection between producer and consumer components through which transactions are sent. A transaction is nothing but a class object containing specific information.

producer-consumer in TLM

TLM provides

  1. unidirectional, bidirectional, or broadcasting manner communication between components
  2. Broadcasting of information promptly.
  3. One component to multiple components connection.
  4. The mechanism uses task and function methods to establish a connection.
  5. FIFO can hold transactions and get them based on the requirement.
  6. A higher level of abstraction.
  7. Connection to systemC.

Advantages of TLM

  1. Reusable in different verification environments.
  2. Available with plug and play connections
  3. Easy to implement with fewer details.
  4. Due to high-level abstraction, unnecessary details like internal connections are hidden.
  5. Ports can be replaced easily by changing port declaration and methods.

History of TLM

TLM 1.0  – April 2005

TLM 2.0 (draft-1) –  Dec 2006

TLM 2.0 (draft-2) –  Nov 2007

TLM 2.0 –  Jun 2008

TLM 2.0.1 – July 2009

TLM was created for SystemC and later added to UVM. But there are some feature differences between SystemC and UVM.

TLM 1.0 

Get, put and transport req-rsp interface

TLM 2.0 (draft-1)

Generic payload

TLM 2.0 (draft-2)

New payload and extension

TLM 2.0

Unified interfaces and sockets

TLM 2.0.1

LRM and Minor additions

Ports in TLM

TLM includes

  1. Ports
  2. FIFO
  3. Set of methods
  4. Transport
  5. Sockets
  6. Generic payload class
  7. uvm_tlm_time class
  8. Analysis ports
  9. Exports
  10. Imp ports