Home > Community > Forums > Functional Verification > Slow simulation caused by Assertions

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: *

 Slow simulation caused by Assertions 

Last post Fri, Apr 5 2013 7:39 AM by tpylant. 4 replies.
Started by nwang 04 Apr 2013 07:24 AM. Topic has 4 replies and 1177 views
Page 1 of 1 (5 items)
Sort Posts:
  • Thu, Apr 4 2013 7:24 AM

    • nwang
    • Not Ranked
    • Joined on Wed, Mar 20 2013
    • Newbury, Berkshire
    • Posts 3
    • Points 45
    Slow simulation caused by Assertions Reply

    I am using -profile to investigate why my simulation is so slow, and I found the warning:

    ncsim: *W,FLSTRT

    the explanation of it is: The assertion is spending a significant amount of time starting new
            attempts that immediately terminate.  In most assertions, such activity
            can be minimized by optimizations in ncsim; something about this
            assertion is preventing those optimizations from taking effect. 

    I want to know what prevent the optimization, how can I fix it?

     My assertion is fairly simple as below:

     property check_conflict;
          @(posedge clk) ((a && b && !c) ##1 (d && c)) |-> ##[0:2]  S;
       endproperty
       conflict:assert property (disable iff (!rst_an) check_conflict)
             else `uvm_error("ERROR",$psprintf("conflict at %0t \n",$time))

     

    Further, I don't quite understand what it means in the warning explaination "starting new attempts". In the case of my assertion, does it mean new attempts are started by satifying the first part of the expression (a && b && !c) is true, but terminated by (d&&c) is not true after ##1?  From what I see in the waveform, my undertanding is not right. Can someone explain?

     Could anyone help? Really appreciated.

    • Post Points: 20
  • Thu, Apr 4 2013 7:57 AM

    • tpylant
    • Top 50 Contributor
    • Joined on Fri, Jul 11 2008
    • Austin, TX
    • Posts 135
    • Points 2,030
    Re: Slow simulation caused by Assertions Reply

    You should check out the Coding Style Guidelines for Maximizing Assertion Performance guide. You can find it by launching 'cdnshelp' and going to Incisive Enterprise Simulator -> Assertion-Based Verification -> Assertion Writing Guide -> Maximizing Assertion Performance.

    Tim 

    • Post Points: 35
  • Thu, Apr 4 2013 8:08 AM

    • nwang
    • Not Ranked
    • Joined on Wed, Mar 20 2013
    • Newbury, Berkshire
    • Posts 3
    • Points 45
    Re: Slow simulation caused by Assertions Reply

     Thank you very much, Tim.

    That's the document I need to study.

    • Post Points: 5
  • Fri, Apr 5 2013 1:53 AM

    • nwang
    • Not Ranked
    • Joined on Wed, Mar 20 2013
    • Newbury, Berkshire
    • Posts 3
    • Points 45
    Re: Slow simulation caused by Assertions Reply

     Hi Tim,

    I have a further question.

    In the report ncprof.out, I have over 20% Stream Counts hits on SSS_MT_SVHASSIGN method, is it normal ?

    And over 60% on a function which is checking memory data. Although the test case is doing a lot of memory read/write continuously, does this high percetage look OK?

    Thank you.

    • Post Points: 20
  • Fri, Apr 5 2013 7:39 AM

    • tpylant
    • Top 50 Contributor
    • Joined on Fri, Jul 11 2008
    • Austin, TX
    • Posts 135
    • Points 2,030
    Re: Slow simulation caused by Assertions Reply

    These method entries are optimized assembly routines which are mostly event simulator internal operations. I would suggest trying the "-iprof" option that provide more detail than the standard "-profile" option. you'll need to use the "iprof" command to analyze the output from "-iprof". It is best to review the iprof help by searching for iprof in cdsnhelp.

     Tim  

    • Post Points: 5
Page 1 of 1 (5 items)
Sort Posts:
Started by nwang at 04 Apr 2013 07:24 AM. Topic has 4 replies.