Functional coverage collection with passive monitor is the method recommended by methodology to collect coverage. There is alternative ways to collect coverage in system verilog using assertion coverage. This feature is very useful if you want to collect coverage on some important DUT events , using assertion coverage has its own advantages and disadvantages.
Advantages of assertion coverage
- Coverage monitors are not required to collect required coverage event and then trigger a cover group.
- Coverage is collected using assertions and using cover property , binding the assertion to the module or instance is required to collect coverage from the DUT.
- Implementing and collecting assertion coverage is faster compared to writing functional coverage for DUT events.
- Assertion coverage is perfect fit for collecting coverage on important DUT events.
Disadvantages of assertion coverage
- Assertions coverage if not coded appropriately takes considerable amount of simulation time.
- Debugging assertion failures is slightly complex than debugging coverage events in a passive monitor.