Jump to content

Search the Community

Showing results for tags 'per_instance'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Accellera Systems Initiative
    • Information
    • Announcements
    • In the News
  • SystemC
    • SystemC Language
    • SystemC AMS (Analog/Mixed-Signal)
    • SystemC TLM (Transaction-level Modeling)
    • SystemC Verification (UVM-SystemC, SCV, CRAVE, FC4SC)
    • SystemC CCI (Configuration, Control & Inspection)
    • SystemC Datatypes
  • UVM (Universal Verification Methodology)
    • UVM (IEEE 1800.2) - Methodology and BCL Forum
    • UVM SystemVerilog Discussions
    • UVM Simulator Specific Issues
    • UVM Commercial Announcements
    • UVM (Pre-IEEE) Methodology and BCL Forum
  • Portable Stimulus
    • Portable Stimulus Discussion
    • Portable Stimulus 2.0 Public Review Feedback
  • IP Security
    • SA-EDI Standard Discussion
    • IP Security Assurance Whitepaper Discussion
    • IP-XACT Discussion
  • SystemRDL
    • SystemRDL Discussion
  • IEEE 1735/IP Encryption
    • IEEE 1735/IP Encryption Discussion
  • Commercial Announcements
    • Announcements


  • SystemC
  • UVM
  • UCIS
  • IEEE 1735/IP Encryption

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start





Website URL












Found 1 result

  1. Using an array of class objects which have a covergroup in them, I've run into the following problems. I look for a solution which is supported by all/most simulators. This topic array seems to be a common issue, based upon web search results. ERROR TYPE0: Same coverage is recorded for both covergroups, despite option.per_instance=1 being used. # vsim -voptargs=+acc=npr # cg_fa[0] - Coverage=81.25 % # cg_fa[1] - Coverage=81.25 % ERROR TYPE1: Compile error with another simulator cg_fa[0] - Coverage=xmsim: *N,COVNSM: (File: ./testbench.sv, Line: 42):(Time: 0 FS + 0) Sampling of covergroup type "cg_wrapper::cg" (./testbench.sv:7), referred in the statement is not enabled. As a result, coverage methods get_coverage(), get_inst_coverage(), get_hitcount(), and get_inst_hitcount() will return 0 coverage. Relevant LRM reference: IEEE_Std1800-2017 19.8.1 Overriding the built-in sample method Code: https://edaplayground.com/x/6Zuh Does anyone have a tip for either of these issues? package data_types_pkg; class cg_wrapper; covergroup cg with function sample ( bit [7:0] data ); option.per_instance = 1; cp_data : coverpoint data[7:0]; endgroup : cg function new(); cg = new(); endfunction endclass : cg_wrapper endpackage : data_types_pkg // MODULE: TOP // The testbench of covergroup array module top; import data_types_pkg::*; cg_wrapper cg_fa[2]; initial begin $display("Make cg_fa[0]"); cg_fa[0] = new(); //supply transaction as ref to covergroup instances instances cg_fa[0].cg.set_inst_name("cg_fa[0]"); $display("Make cg_fa[1]"); cg_fa[1] = new(); //supply transaction as ref to covergroup instances instances cg_fa[1].cg.set_inst_name("cg_fa[1]"); //Sample each, but mainly [0] repeat (100) begin // many samples for [0] cg_fa[0].cg.sample( $urandom()%256 ); // //#5; // TRIED TO ADD DELAY SO DIFFERENT TIME SLOTS USED end // ALSO TRIED TO CALL SAMPLE() from automatic function repeat ( 1) begin // few samples for [1] cg_fa[1].cg.sample( $urandom()%256 ); // //#5; end //Report coverage $display ("cg_fa[0] - Coverage=%0.2f %%", cg_fa[0].cg.get_inst_coverage()); $display ("cg_fa[1] - Coverage=%0.2f %%", cg_fa[1].cg.get_inst_coverage()); end endmodule As a side-note/question: If a simulator does not allow access to a covergroup's name with "cg.option.name" access (i.e. dot notation, such as to print it), then if name string is set with set_inst_name, how else can it be accessed? Only in a tool output report?
  • Create New...