False Error from Scoreboard – Empty function
Why OSVVM™? › Forums › OSVVM › False Error from Scoreboard – Empty function
- This topic has 1 reply, 2 voices, and was last updated 9 years, 4 months ago by Jim Lewis.
-
AuthorPosts
-
June 16, 2015 at 15:25 #996Lyle SwansonMember
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: trueAdditional 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.June 16, 2015 at 17:59 #997Jim LewisMemberHi 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
-
AuthorPosts
- You must be logged in to reply to this topic.