Dear Readers,
The two Door Keepers: An Assertion, to make sure bad thing does not happen and coverage, to make sure Good thing happens!
The two Door Keepers: An Assertion, to make sure bad thing does not happen and coverage, to make sure Good thing happens!
As we all know SVA (System Verilog Assertions) and SV
Coverage are playing major role in test bench implementation which helps us
achieving maximum confidence on bug free design. These components in the test
environments are working as a ‘Door Keepers’! Assertions are mainly doing job
to make sure bad things does not happen and Coverage is mainly doing job to
make sure Good thing happens!!
Assertions are usually connected to the DUT (Design Under Test) through interface and keeps continuous eye on activities per clock. This way it is making sure that nothing bad happens, if so, it will inform user that something went wrong on particular clock. Simulation tools are also intelligent in different ways (through log dump, GUI dump etc…) to report assertion failures! In SVA there are two types of Assertions, 1. Immediate and 2. Concurrent Assertion. (For more details on assertions please see blog on ‘coverage model in system verilog’)
Functional Coverage are connected with different entities in the test bench to captures the information from the various places of test bench. Coverage gives us an enough confidence to make sure Good thing happens during the simulation. Functionality of functional coverage is to make sure that functional items, scenarios or stimulus are generated and covered. Functional coverage gives us confidence more on test bench whether all the identified, defined coverage items are generated and covered or not! At some extend functional coverage also makes sure that nothing bad has generated during the simulation. To catch such kind of unexpected behavior we have illegal and ignore bins!! As we know simulation tools are intelligent enough to catch expected and unexpected behavior and dump that in to .ucdb (coverage) files.
Assertions and Coverage are doing such a great job in test
simulation and making sure nothing bad happens and also makes sure Good
simulations happens! These Door Keepers are giving heads up at the end of the
simulation if something went wrong during the simulation.
As a conclusion, we should not see assertion message at the
end of the simulation message and should see lots of coverage information in
successful simulation!
We, the engineers have to always make sure that ‘Door
Keepers’ are intelligent and efficient!!
Happy Reading! Enjoy!