Home > Community > Forums > Functional Verification > cross coverage between different vr_ad registers

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 cross coverage between different vr_ad registers 

Last post Thu, Jan 6 2011 9:13 PM by lakku. 2 replies.
Started by lakku 06 Jan 2011 04:54 AM. Topic has 2 replies and 1354 views
Page 1 of 1 (3 items)
Sort Posts:
  • Thu, Jan 6 2011 4:54 AM

    • lakku
    • Not Ranked
    • Joined on Wed, Jan 5 2011
    • Posts 2
    • Points 25
    cross coverage between different vr_ad registers Reply

    Hi,

    I am trying to achieve cross coverage b/w two different vr_ad registers, like when register -1 is accessed then i want to get the cross coverage on the register -2 fields.. (Assume that register2 is configured with some values before register-1 access)..  i tried many ways but i failed to see the coverage collection for such items..

    Please let me know whether it is possible?? If not is it possible to get the cross coverage on diffrent register fields?? My coverage scenario is as follows..  Need solution for this

    Ex scenario:

    extend  vr_ad_reg {
       event reg_1_e;
    };

    extend REG2 vr_ad_reg {
      cover reg_1_e is {
       cross REG2_FLD1,REG2_FLD2,REG2_FLD3;
      };
    };

    extend REG1 vr_ad_reg {
     post_access(direction : vr_ad_rw_t) is only {
        if direction == READ {
           emit reg_1_e;
        };
    };

    • Post Points: 20
  • Thu, Jan 6 2011 6:31 AM

    • StephenH
    • Top 25 Contributor
    • Joined on Tue, Sep 2 2008
    • Bristol, Avon
    • Posts 258
    • Points 4,100
    Re: cross coverage between different vr_ad registers Reply

    The example you posted won't work because there is one reg_1_e event for each instance of vr_ad_reg, it's not one event shared across all struct instances.

    What you need to do is make a pointer to REG2 inside REG1, so that you can emit the event on REG2.
    Try something along these lines:

    extend REG2 vr_ad_reg {
      event reg_1_e;
      cover reg_1_e is { ... };
    };
    extend REG1 vr_ad_reg {
      !p_reg2 : REG2 vr_ad_reg;
      post_access(direction:vr_ad_rw_t) is also {
        if direction==READ and p_reg2 != NULL {
          emit p_reg2.reg_1_e;
        };
      };
    };
    extend MY vr_ad_reg_file {
      post_generate() is also {
        reg1.p_reg2 = reg2;
      };
    };

    Steve Hobbs / Applications Engineer / Cadence Functional Verification
    Filed under:
    • Post Points: 20
  • Thu, Jan 6 2011 9:13 PM

    • lakku
    • Not Ranked
    • Joined on Wed, Jan 5 2011
    • Posts 2
    • Points 25
    Re: cross coverage between different vr_ad registers Reply

    Hi Stephen,

     Thank you very much for the solution . It is working now..

    Regards

    Lakku

    • Post Points: 5
Page 1 of 1 (3 items)
Sort Posts:
Started by lakku at 06 Jan 2011 04:54 AM. Topic has 2 replies.