Check functions in OSVVM

Why OSVVM™? Forums OSVVM Check functions in OSVVM

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #2451
    Hassan
    Member

    When looking at the VC documentation and related code, I came across Check functions of OSVVM. Here are a few examples:

    E:\My_Designs\FPGA\OsvvmLibraries\Common\src\AddressBusTransactionArrayPkg.vhd (14 hits)
    Line 303: procedure ReadCheck (
    Line 504: procedure ReadCheckBurstVector (
    Line 514: procedure ReadCheckBurstIncrement (
    Line 525: procedure ReadCheckBurstRandom (
    Line 536: procedure ReadCheckBurstRandom (
    Line 609: procedure ReadCheckData (
    Line 632: procedure TryReadCheckData (

    E:\My_Designs\FPGA\OsvvmLibraries\osvvm\ScoreboardGenericPkg.vhd (58 hits)
    Line 203: procedure Check (
    Line 209: procedure Check (
    Line 216: impure function Check (
    Line 222: impure function Check (
    Line 230: procedure CheckExpected (
    Line 236: procedure CheckExpected (
    Line 243: impure function CheckExpected (
    Line 249: impure function CheckExpected (
    Line 383: impure function GetCheckCount (
    Line 454: procedure CheckFinish (
    Line 598: procedure Check (ActualData : ActualType) ;
    Line 601: procedure Check (
    Line 607: procedure Check (
    Line 613: procedure Check (
    Line 620: impure function Check (ActualData : ActualType) return boolean ;
    Line 623: impure function Check (
    Line 629: impure function Check (
    Line 635: impure function Check (
    Line 643: impure function CheckExpected (
    Line 787: impure function GetCheckCount return integer ;
    Line 788: impure function GetCheckCount (Index : integer) return integer ;
    Line 873: procedure CheckFinish (
    Line 879: procedure CheckFinish (
    Line 908: procedure SetCheckCountZero ;
    Line 909: procedure SetCheckCountZero (Index : integer) ;
    Line 917: procedure CheckActualData (ActualData : ActualType) ;

    Now the question is quite simple. Why are these required when Alert and Affirm functions exist to check data values? Also, the documentation mentions (some of) them but does not really elaborate on them at all.

    #2453
    Jim Lewis
    Member

    What you find in the documentation is what is what is officially supported.

    The scoreboard package was released to our classes in 2006. The AlertLog capability was added in 2015. So there is some history there. Certainly doing

    Get(TRec, Data) ; 
    expectedData := pop(SbID) ; 
    AffirmIfEqual(TbID, Data, expectedData) ;

    Is very similar to doing:

    Get(TRec, Data) ; 
    check(SbID, Data) ; 

    I recommend the FIFO methods when you do not like the format that check produces. There is a long term plan to give users more direct control of the output of scoreboards.

    Also note that effectively internal to the scoreboard it is using AffirmIf – kind of.

    #2459
    Hassan
    Member

    The scoreboards can contain tags for “out of order” transactions and can also drop transactions. This makes them more sophisticated then mere FIFOs. But what more features could they be given when you say “There is a long term plan to give users more direct control of the output of scoreboards.”

    #2470
    Jim Lewis
    Member

    More direct control refers to output formatting when a check passes or fails.

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