Cycle accurate(each clock change) checks have to be part of Monitor or Scoreboard

Hi All,

I have this question.
Cycle accurate(each clock change) checks have to be part of Monitor or Scoreboard ??

In my case, this cannot be captured in Protocol checker or assertion as it requires lots of computation.

First i will tell the differences b/w Monitor and Scoreboard.

  1. Monitor will convert a low level pin activity to high level activity (Transaction) and send it to scoreboard.
  2. Scoreboard is meant to act at high level(Transaction), and it can perform comparision at high level
    only.
  3. Scoreboard should not do each clock comparision, because monitor will have to send the expected transaction at each clock using the “*ap.write” of analysis port, and it gets overloaded.

Plz clarify my question, and correct me if my understanding was wrong.

Thanks in Advance.

As you pointed out, if you can do the check in monitor then you should!

But beyond that I feel that the checking should not be cycle accurate! Try to come up with a compromise on your checking logic in order to avoid cycle accurate checking. Often times, end-to-end checks are enough to tell you that something went wrong at cycle level. Then you can use messaging and some key assertions to narrow down the failure area. Off course this a very generic comment but you get the point. In some cases (like arbiter) you may not be able to get rid of cycle accurate checking.

While transaction level type checks suffice for most verification, i don’t see how you can escape cycle to cycle accuracy when dealing with ISPs [instruction set processors] that require binary compatibility.
Scoreboard is just another abstraction of marketing types IMO since in my experience checking it in the monitor block is far more efficient ie. once i ve monitored a packet, i can call the checking routine instantly instead of passing it off to the scoreboard block to check ! So why introduce one more hierarchy ?