These provide a facility to record transactions into a database using a consistent API. The main interface to the UVM recording facility is the uvm_recorder class, which is the reference to the policy used to record a transaction and the particular transaction in the database. You can configure what gets recorded into the database without knowing the nitty-gritty details of how that connection to the database is made. By default, UVM records the transactions in the form of textual logs, and avoids the need to have tool/vendor specific code in the testbench.


Transaction Recording Databases

There's a backend tool that records information for the user, so that it can be viewed with waveforms.

  • uvm_tr_database :
  • This class hides the underlying implementation details from the end-user since these details are often vendor/tool specific. This is a pure, virtual class and should be extended before use.

  • uvm_text_tr_database :
  • The default implementation for uvm_tr_database, which provides the ability to store recording information into a textual log file.

Transaction Recording Stream

A stream contains many records, and you can access it via classes

  • uvm_tr_stream :
  • This class contains methods to open, close, configure streams.

  • uvm_text_tr_stream :
  • This is the default stream implementation for uvm_tr_stream

Was this article helpful ?