Transaction-level modeling (TLM) is a high-level modern approach for modeling digital systems. TLM-1 standard defined a set of interfaces which could be used for transporting transaction by value or reference. TLM-1 is being used successfully in some applications but it had shortcomings which have now been improved upon in TLM 2.0.
TLM-1 has no standard transaction class
This is a major issue in TLM-1 which has been resolved in TLM-2 by using generic payload. Because of this problem, every application had to create its own transaction class (non-standard) and thus resulting in poor interoperability.
TLM-1 did not support timing annotations
TLM-1 models had no standard timing annotations, and models made using it had to introduce delays by using “wait” which slows down the simulation to a large extent. TLM 2.0 has solved this problem by introducing standard blocking and non-blocking interfaces with standard timing annotations.
TLM-1 interfaces requires all transaction objects to be passed by value/reference
This slows down the simulation. This also reduces the interoperability. TLM 2.0 addresses this shortcoming by introducing standard transaction objects.