Welcome ! This website will help YOU (recent graduates/professionals) learn verification languages like SystemVerilog and UVM. Register for free and access more content !

Transaction Level Modeling, is a modeling style for building highly abstract models of components and systems. In this scheme, data is represented as transactions (class objects that contain random, protocol specific information) which flow in and out of different components via special ports called TLM interfaces. This brings about a higher level of abstraction which is very much required in today's verification environments because of the large amount of signals associated with different protocols. It would be a lot simpler to understand, debug and verify if we can represent data and changes in signals as transactions (like write operation/read operation).


GitHub

You can clone/download the TLM examples from our repository at GitHub.


UVM provides a set of transaction-level communication interfaces that can be used to connect between components such that data packets can be transferred between them. The good part about this setup is that it isolates a component from the changes in other components, and promotes reusability and flexibility because now you can just swap a component with another which also have a TLM interface.

 
class simple_packet extends uvm_object;
  `uvm_object_utils (simple_packet)
 
  rand bit [7:0] addr;
  rand bit [7:0] data;
     bit     rwb;
 
  constraint c_addr { addr > 8'h2a; };
  constraint c_data { data inside {[8'h14:8'he9]};
 
endclass
 

simple_packet class object will be a transaction that can be sent from componentA to componentB via TLM interface ports port and export.


Was this article helpful ?

We use cookies to personalize content and ads, to provide social media features and to analyze our traffic. You consent to our cookies if you continue to use our website. To find out more about the cookies we use and how to delete them, see our privacy policy.

  I accept cookies from this site.
Agree
EU Cookie Directive plugin by www.channeldigital.co.uk