A bus normally conforms to a well-established protocol and investment in a formal specification of the protocol is normally worthwhile.
A bus monitor is a typical example of dynamic validation: it is a checker that flags protocol violations:
For implementation in silicon, or if we are using an old simulator (e.g. a Verilog interpreter) that does not provide PSL or other temporal logic, the assertions can be compiled to an RTL checker automaton.
A bus monitor connects to the net-level bus in RTL or silicon. (TLM formal monitoring is also being developed.)
The monitor can keep statistics as well as detect protocol violations.
Example of checker synthesis from a formal spec: »www.cl.cam.ac.uk/research/srg/han/hprls/orangepath/transactors and Bus Monitors
|6: (C) 2012-18, DJ Greaves, University of Cambridge, Computer Laboratory.|