Jump to content

Recommended Posts

Posted

First, you should use the UVM that is included in Incisive. For example, if you have INCISIV102_025 installed, then

setenv UVM_HOME <dir_where_ius_or_ies_is_installed>/tools/uvm-1.1/uvm_lib/uvm_sv

The transaction recording implementation for a particular simulator is vendor-dependent.

Then, where you are recording transactions in your verification components, enable recording something like this:

// -- File:  monitor.svh
class my_mon extends uvm_monitor;
  my_trans trans;
  // -- Skipping...
  task run_phase(uvm_phase phase);
    trans.enable_recording("my_mon");
    void'(this.begin_tr(trans, "my_mon"));
    // -- Collect transaction...
    this.end_tr(trans);
  endtask : run_phase
endclass : my_mon

Within Simvision, run the simulation. Then, look for Transactions in the Design Browser, and add the recorded transaction object to the Waveform window if you like. Transactions won't appear until after the objects have been constructed by way of running the simulation past that point.

Hope it helps.

Posted

HI Mea,

I do the same things as mentioned by you in the code snippet,

I am using the INCISIV102_025 and trying to record my transaction.

I run the simulation go through the class hierarachy...send my transaction to the waveform window...reset the simulation in waveform window and run it again.

I do not see the recorded transaction.

Let me know if my procedure is correct

Regards,

KB

First, you should use the UVM that is included in Incisive. For example, if you have INCISIV102_025 installed, then

setenv UVM_HOME <dir_where_ius_or_ies_is_installed>/tools/uvm-1.1/uvm_lib/uvm_sv

The transaction recording implementation for a particular simulator is vendor-dependent.

Then, where you are recording transactions in your verification components, enable recording something like this:

// -- File:  monitor.svh
class my_mon extends uvm_monitor;
  my_trans trans;
  // -- Skipping...
  task run_phase(uvm_phase phase);
    trans.enable_recording("my_mon");
    void'(this.begin_tr(trans, "my_mon"));
    // -- Collect transaction...
    this.end_tr(trans);
  endtask : run_phase
endclass : my_mon

Within Simvision, run the simulation. Then, look for Transactions in the Design Browser, and add the recorded transaction object to the Waveform window if you like. Transactions won't appear until after the objects have been constructed by way of running the simulation past that point.

Hope it helps.

Posted

You also need to enable recording within the component. You can enable recording globally using:

set_config_int("*","recording_detail",UVM_HIGH);

I think if you want to use this feature, you must set the UVM_HOME as <dir_where_ius_or_inicsive_is_installed>/tools/uvm-1.1/.

Cadence makes the enhancement into UVM lib pkg in the <dir_where_ius_or_inicsive_is_installed>/tools/uvm-1.1/

Hi Jadec, right?

Posted

hi,

you need a few prerequisites:

1. use a uvm version shipped with IUS

2. enable transaction recording (via cmdline, sv-set_config_int or tcl)

3. (do not use 10.20s70,10.20s71 which are broken with respect to transaction recording)

#1+#2 is for instance accomplished with

irun -uvmhome `ncroot`/tools/uvm-1.1 +uvm_set_config_int="*",recording_detail,1 ....

then you need to build the static hierarchy (run till start_of_simulation) or simply run some time. then pick your sequence fiber and put it into the waveform.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...