What are some examples of protocol checking in monitor?

UVM suggests that we should put some protocol checking in monitor instead of scoreboard.
My question is what are some examples of protocol checking and what aren’t protocol checking?

Thanks.

That is a new recommendation to me. Protocol checking, such as making sure request is followed by grant, should be in the bus functional model / interface code that talks to the design signals. SVA are a good approach. Also, check for X and Z values here.

The monitor sees the final transaction values, and does not know the signal-level details, such as delays. The monitor sends the transactions (handles) to analysis components such as a scoreboard and coverage collector. The monitor should not be peeking at the transaction contents.

1 Like

Hi,

Few possible protocol checking examples:

  1. Few examples for AMBA AXI protocol:

    • READ Response is monitored for id which has no matching ongoing READ Request.
    • Burst type = WRAP enforces some rules on the possible length values. You can also classify it as “protocol check”.
  2. AMBA APB protocol:
    For READ transfers, the Requester must drive all bits of PSTRB LOW.

  3. A protocol which sends a packet(transaction) divided into few flits/segments(transfers) and has some info/meta-data/cmd fields which describes which segment is first one and which one is last one.
    For example: SOP (Start Of Packet) and EOP (End Of Packet).
    Each of 1bit width on the bus.
    Protocol rules:
    For the first segment SOP should be ‘1’.
    For the last segment EOP should be ‘1’.
    If packet has only a single segment/flit, than SOP=‘1’ && EOP=‘1’ for the same segment/flit.
    Segments of different packets should not be interleaved.
    Segments of same packet should be send in-order (meaning latter segments cannot bypass prior segments)
    Possible transactions monitored by the monitor which breaks the protocol: the first segment of the packet arrived with SOP=‘0’, and EOP=‘1’.
    Another illegal case, 2 segments arriving with SOP bit set for same packet, while no segment with EOP bit was set before arrival of the next segment with SOP bit set.
    Same case for 2 segments arriving with EOP bit set, without having the SOP bit set between them.

thanks michael