False Error from Scoreboard – Empty function

Why OSVVM™? Forums OSVVM False Error from Scoreboard – Empty function

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #996
    Lyle Swanson
    Member

    Hi,
      I am using a scoreboard array for a testbench, and am getting what appears to be false errors from scoreboard (i.e, Scb error is shown even though the expected/actual data matches correctly).  The only clue that I have is from the error message, which shows “Empty: false” (False is returned from Empty function in ScoreBoardGenericPkg).  And oddly, the scoreboard Error Count goes back to 0 on subsequent data checks.

       Any ideas on how to debug the root cause of this false error?  Even though the scoreboard error count goes back to 0, my testbench has a global error counter that tracks/counts errors from multiple processes during the sim.  So this false error from scoreboard results in false failures of testcases.  (I could kludge a work-around, but would prefer an actual fix.)

    # %%ERROR  Scoreboard (1)    Error Count: 1   Check Count: 53   Empty: false
      . . .
    # %%GOOD  Scoreboard (1)    Error Count: 0   Check Count: 54   Empty: true

    Additional log below, which shows my own error counters = 1 on data item #53, and error count going back to 0 on the next (#54) checked data item (PREV-ErrCNT_pre/post = 0): 

    # Scb Expected: 4 byte Hdr + 4 byte Pyld = 0x478099C200010002, At Time 2296245 ns
    # Scb Actual:   4 byte Hdr + 4 byte Pyld = 0x478099C200010002, At Time 2296245 ns
    #    Time: 2296245 ns  Iteration: 2  Instance: /tbtopingress/U_Ingress_Scoreboard
    # %%ERROR  Scoreboard (1)    Error Count: 1   Check Count: 53   Empty: false
    # 2296245 ns:  *INFO* (U_Ingress_Scoreboard)  PREV-ErrCNT_pre = 1 at index = 1.
    # %%ERROR  Scoreboard (1)    Error Count: 1   Check Count: 53   Empty: false
    # 2296245 ns:  *INFO* (U_Ingress_Scoreboard)  DeltaErrorCnt = 1 at index = 1.
    # %%ERROR  Scoreboard (1)    Error Count: 1   Check Count: 53   Empty: false
    # 2296245 ns:  *INFO* (U_Ingress_Scoreboard)  PREV-ErrCNT_post = 1 at index = 1.

    #   Scb Expected: 4 byte Hdr + 4 byte Pyld = 0x478097C00001092A, At Time 2296855 ns
    #   Scb Actual:   4 byte Hdr + 4 byte Pyld = 0x478097C00001092A, At Time 2296855 ns
    #    Time: 2296855 ns  Iteration: 2  Instance: /tbtopingress/U_Ingress_Scoreboard
    # %%GOOD  Scoreboard (1)    Error Count: 0   Check Count: 54   Empty: true
    # 2296855 ns:  *INFO* (U_Ingress_Scoreboard)  PREV-ErrCNT_pre = 0 at index = 1.
    # %%GOOD  Scoreboard (1)    Error Count: 0   Check Count: 54   Empty: true
    # 2296855 ns:  *ERROR* (U_Ingress_Scoreboard)  Negative DeltaErrorCnt = -1 at index = 1.
    # %%GOOD  Scoreboard (1)    Error Count: 0   Check Count: 54   Empty: true
    # 2296855 ns:  *INFO* (U_Ingress_Scoreboard)  PREV-ErrCNT_post = 0 at index = 1.

    #997
    Jim Lewis
    Member

    Hi Lyle,

    Currently the scoreboard is only in the SynthWorks library.   In the version of the scoreboard you have, the default for GetErrorCount is to require the scoreboard to be empty or it will add one to the error count.   Also by default, the scoreboard expects you to check at least one item.  You can change these behaviors with SetFinish. 

    The following will turn both of these off:

    SB.SetFinish(
        FCheckCount => 0,
        FEmpty => FALSE,
       FStatus => FALSE);

    From the quick reference card:
    During GetErrorCount, if number of items checked by scoreboard < FCheckCount, then add one to the error count. If FEmpty and the scoreboard is not empty then add one to the error count. If FStatus, then write an error summary message for this scoreboard.

    Note that SetFinish is deprecated in the current version of the scoreboard and this behavior has been moved to GetErrorCount.  The new version also uses alerts. 

    Jim

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.