Tutorials
Learn More
Transaction Level Modeling (TLM)
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.
TLM provides
- unidirectional, bidirectional, or broadcasting manner communication between components
- Broadcasting of information promptly.
- One component to multiple components connection.
- The mechanism uses task and function methods to establish a connection.
- FIFO can hold transactions and get them based on the requirement.
- A higher level of abstraction.
- Connection to systemC.
Advantages of TLM
- Reusable in different verification environments.
- Available with plug and play connections
- Easy to implement with fewer details.
- Due to high-level abstraction, unnecessary details like internal connections are hidden.
- 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
- Ports
- FIFO
- Set of methods
- Transport
- Sockets
- Generic payload class
- uvm_tlm_time class
- Analysis ports
- Exports
- Imp ports
TLM Tutorials