Search form

Main menu

My Account Menu

Ask a Question

Forums: OVM

View Mode:
Q&A
  • 1 answer
    5,168 views

    assertion to check edge triggering

    I’m trying to write an assertion to “Verify that the TMS output changes on the falling edge of TCK.” Is this possible? It sounds simple, but I’m running into a few issues.

    The most obvious solution in my mind was to just see if it is $stable:

    Read more →

    Last Activity 1 week 4 days ago by rexjohn4u
  • 1 answer
    55 views

    Converting a module to/using a module in OVM?

    We have a SV module that I need to port over to OVM. What is a good resource for that? The module basically takes two interfaces and copies data from one to the other based on a config.

    Read more →

    Last Activity 1 month 1 day ago by dave_59
  • 1 answer
    97 views

    Implementation of transaction delay in Scoreboard

    3 packets are coming to score board, 1 and 2 packets came properly, but last packet comes with delay of 10, then how to detect this delay in scoreboard without using assertion VIP and waveform viewer. How to implement it in scoreboard?

    Read more →

    Last Activity 1 month 3 weeks ago by manoj_k86
  • 1 solution
    87 views

    Randomization of time delay #t us. How to ?

    Hello everyone,

    Is it possible to randomize the time delay in order to create random sequences? What I mean is for example,

    forever loop
    begin
    sig_value = 1'b1;
    #10ns
    sig_value = 1_b0;
    # random_delay
    end

    Can someone shed light on how to do this? Thank you in advance.

    Read more →

    Last Activity 1 month 3 weeks ago by Tudor Timi
  • 5 answers
    8,168 views

    importance of the clone( ) method

    Hi ALL,

    Can anybody tell me the exact application of the clone methos?
    What is the significance of the clone method?

    Regards,
    Ankit.

    Read more →

    Last Activity 1 month 3 weeks ago by ranjithkumar d
  • 1 solution
    6,393 views

    Ovm & uvm rgm

    Hi,

    I heard that cadence has a RGM package available for ovm. Is there any where I can find more info about it? Will it be integrated into UVM?

    How do you compare the RAL and RGM in terms of re-usability, tool support, basic concepts, sim performance, and pros and cons?

    thanks

    Richard

    Read more →

    Last Activity 1 month 3 weeks ago by hctseng
  • 1 answer
    3,952 views

    raise/drop objections issues on reset

    Hi,

    I'm implementing reset test, which generally contains loop with two threads, one generate typical flow sequences and the other wait random time, push a reset to the environment. and so on...
    my environment support reset, means scorboards, sequencers and all the other components know how to reset themselves on reset time.

    The problem is, some of my flow sequences contains raise and drop objections, and it seems that the sequencer stop_sequences() kill thus sequences but doesn't drop their objections, cause my test to stuck at the end.

    is there any recommended method to handle this issue?

    Thanks,
    Nadav

    Read more →

    Last Activity 1 month 3 weeks ago by dave_59
  • 0 answers
    60 views

    How to call userdefined callback with the call of ovm_fatal

    Hi,

    I was trying to set some delay before the simulation actually stops (when we call `ovm_fatal).
    Below is the code which I was trying. But the problem with this code is the call back is function not a task, so I cannot add delay in that. How can this be done?

    import ovm_pkg::*;

    class my_object extends ovm_report_object;
    `ovm_object_utils(my_object)
    virtual function bit report_fatal_hook( string id, string message, int verbosity, string filename, int line);
    $display("My callback hook");
    return 1;
    endfunction
    endclass

    class my_test extends ovm_test;
    `ovm_component_utils(my_test)
    my_object obj;
    ovm_report_handler rh;

    function new (string name="my_test", ovm_component parent=null);
    super.new(name, parent);
    obj = my_object::type_id::create("my_object");
    endfunction : new

    Read more →

    2 months 2 weeks ago - No activity yet
  • 1 answer
    74 views

    Compilation error : An abstract (virtual) class cannot be instantiated. and Package common_ovm_pkg could not be bound.

    Hi All,
    I have not set the OVM_HOME. i.e. echo $OVM_HOME gives OVM_HOME: Undefined variable.
    When I am running a test, I am getting the below errors:

    Read more →

    Last Activity 2 months 3 weeks ago by dave_59
  • 0 answers
    80 views

    get_item_done results error when using also get_response

    hi,
    i am using the code below trying to avoid blocking the sequencer, using "item_done" just tight after the "get_next_item".
    my sequence using get_response to compare the actual_data to expected data.
    on the time i'm doing the item_done - i get an comparison error since the reurned item got a random data and not the actual data is should have at the end.( when (put,rsp,xact_id) is done).
    also , when the code reaches : get_response(rsp, req.get_transaction_id()) i got the following message : Dropping response for sequence %0d, sequence not found. Probable cause: sequence exited or has been killed

    how can i solve it?
    thx ze'ev

    the code :

    my code is :
    task run();
    forever begin
    seq_item_port.get_next_item(req);
    send_to_dut(req, rsp);
    seq_item_port.item_done(rsp);
    end
    endtask : run

    Read more →

    2 months 4 weeks ago - No activity yet
  • 1 answer
    95 views

    OVM 2.1.2 bug: Issue with macro `ovm_field_array_object

    In the OVM source code for `ovm_field_array_object, `M_OVM_FIELD_ARRAY_OBJ_PACK macro is being called.
    Under this macro (M_OVM_FIELD_ARRAY_OBJ_PACK) definition, for OVM_UNPACK case:

    Read more →

    Last Activity 3 months 8 hours ago by dave_59
  • 0 answers
    76 views

    Creation and usage of input monitor in ovm?

    In my project i have 2 agents.I am transmitting both agents expected data from driver to Score board using analysis port.And in between driver and score board i want to put input monitor and my doubts are
    How to implement input monitor in ovm environment?
    Is it possible to take single monitor to both agents?
    and in which block it will create and connect?
    With out input monitor can i transfer expected data from driver to score board instead off input monitor to score board?

    Read more →

    3 months 2 days ago - No activity yet
  • 0 answers
    77 views

    Factory and Configuration

    What is the difference between factory and configuration table?

    How factory and configurations are implemented?

    Where factory and configuration settings are stored?

    Read more →

    3 months 4 days ago - No activity yet
  • 0 answers
    72 views

    new()

    Hi,
    What is the significance of

    function new(string n="test" ovm_component p=null);
    super.new(n,p);
    endfunction

    Does it mean object of ovm_component is null or handle to parent is null??

    What super.new(n,p) will execute(i'm not sure whether it is a right word to use)?

    Read more →

    3 months 4 days ago - No activity yet
  • 0 answers
    78 views

    type_id::create

    Hi,

    I came across the following statements while learning OVM regarding "create" method:

    class my_component extends base_component;
    my_driver driver;
    ...
    function build();
    driver = my_driver::type_id::create("driver",this);
    ...
    endfunction
    endclass

    And the explanation was :: "The
    type_id::create()method is a type-specific static method that returns an instance of the
    desired type (in this case, my_driver) from the factory. The arguments to create()are the
    same as the standard constructor arguments, a string name and a parent component.The
    use of the factory allows the developer to derive a new class extended from my_driver and
    cause the factory to return the extended type in place of my_driver. Thus, the parent
    component can use the new type without modifying the parent class
    ."

    Read more →

    3 months 4 days ago - No activity yet
  • 4 answers
    6,134 views

    what is the difference between ovm_transaction and ovm_sequence_item????

    Hi Sir,

    I am working on AXI 1.0 now and truing to develop AXI OVC. I used `ovm_sequence_item for generating sequences for APB protocol.But for AXI one of my college told me use `ovm_transaction instead of `ovm_sequence_item. what shall i use `ovm_sequence_item or `ovm_transation to generate the sequences.

    what is the difference between them.
    how does the below code works,how are they different from one another????
    where the difference comes????

    Please guide me

    class master_transfer extends `ovm_transaction;
    rand [31:0] waddr;
    rand [31:0] wdata;
    rand [3:0] wsize;
    rand [31:0] wlength;

    //factory registration

    //

    endclass

    class master_transfer extends `ovm_sequence_item;
    rand [31:0] waddr;
    rand [31:0] wdata;
    rand [3:0] wsize;
    rand [31:0] wlength;

    //factory registration

    //

    endclass

    Read more →

    Last Activity 5 months 1 week ago by dave_59
  • 1 solution
    127 views

    Connecting DUT and env using a wrapper class

    Hello,

    How do I integrate DUT (for example a simple ALU) and the environment using a wrapper class?

    Any input regarding the same is appreciated.

    Thank you.

    V.

    Read more →

    Last Activity 3 months 1 week ago by vkantamn
  • 0 answers
    117 views

    Analysis port issue with Parameterized components(Transaction are not passed)

    Issue::
    1.I had a coverage file with parameter.It gets some transaction via Analysis port form Monitor .But when .write(ocppkt) is called , write function is not exectued .
    2.Same file worked without parameters.

    CovergaeCode::
    class coverage_cc #(int inst_num=0 ) extends ovm_component ;
    `ovm_analysis_imp_decl(_ocp_mon)
    `ovm_component_param_utils(coverage_cc #(inst_num));
    `ovm_analysis_imp_ocp_mon#(ocp_trans,coverage_cc #(inst_num)) ocp2cc;

    function void build();
    super.build();
    ocp2cc =new ("ocp2cc",this);
    endfucntion

    function void write_ocp_mon(input ocp_tran t1)
    //NOT ENTERING in this function
    endfucntion

    Read more →

    4 months 2 days ago - No activity yet
  • 1 answer
    161 views

    p_sequencer.get_config_object

    recently, i saw there was one written style as the title shown.

    this command line was written in a sequence.

    i don't know what p_sequencer here is used for ? is it just because sequence is an object but a component and does not contain get_config_object ? if so, if we use p_sequencer, where could we get the object from ?

    Read more →

    Last Activity 4 months 4 days ago by gordon
  • 8 answers
    5,724 views

    Documenting OVM based verification code: Natural Docs help needed

    Hi All,
    I see that OVM-2.0.2 release comes with a nice Natural Docs generated html document. I wish to document my OVM-2.0.2 based environment similarly and want to know about the relevant filters etc. used with Natural Docs for System Verilog code documentation.

    Presently I use doxygen with the System Verilog filter but I suppose that still has minor issues with it.

    Read more →

    Last Activity 4 months 1 week ago by The Incorruptible