Code coverage is a fundamental DV metric, and it measures how well the RTL code is covered by test bench. Code coverage includes the following aspects:
- Statement / line coverage
- Condition / branch coverage
- Toggle coverage
- FSM coverage
We recommend readers to refer to this post for more details.
Code coverage is generated by simulation tool. For example, during DV regressions, code coverages of each individual test are merged by VCS
Then designers and DV engineer shall work together to figure out why certain RTL is not exercised. Unexercised RTL implies either unreachable / redundant RTL code, or direct test needs to be created to achieve higher coverage. Designers should consider remove the redundant RTL code.
Note, in coverage-driven verification methodology, code coverage review is critical.