How using Functional Coverage we can find out, if there is any missing functionality in the DUT?

By knowing functional coverage how can we get to know that if there’s any missing functionality in the DUT? Please Explain by considering an example.

In reply to Hadmath Singh:
That sounds like an interview, but interesting, question.
The question addresses “functional coverage” and “missing functionality”, yet the two are not related in that order. Specifically:

  1. Functionality is defined by requirements.
  2. functional coverage address the test patterns that address those requirements.
  3. Missing functionality means that the requirements were not well defined.
    If the specs are not well defined, I can see cases where functional coverage may discover cases that are not specified, and thus are ambiguous. For example, consider a FIFO with a coverage test case that checks the RTL response to a PUSH on a FULL condition.

Bottom line, IMHO, the answer to the question By knowing functional coverage how can we get to know that if there’s any missing functionality in the DUT:
Functionality is defined in the requirements. Functional coverage is more about the verification of the extent of the tests, and a possible byproduct is that it may discover a poor definition of the requirements.

If by Missed functionality you mean missed test cases for compliance to the requirements, then what you are saying is that the initial test cases were incomplete, and additional coverage identified those holes.

Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact Home - My cvcblr


  1. SVA Alternative for Complex Assertions
    Verification Horizons - March 2018 Issue | Verification Academy
  2. SVA: Package for dynamic and range delays and repeats | Verification Academy
  3. SVA in a UVM Class-based Environment
    SVA in a UVM Class-based Environment | Verification Horizons | Verification Academy

Hi Ben, So I read somewhere that one can measure Design missing functionality by comparing code coverage vs functional coverage. A low functional coverage in contrast to a high code coverage generally indicates that we may have some design functionality miss or we need better constraints to reach those functionality areas. Correct me if i am wrong.

Design missing functionality by comparing code coverage vs functional coverage.
The two are different animals.
functional coverage is about checking the requirements. Does the code produce the intended goal?

Functional coverage is more about checking that lines of code were addressed.
You can easily have code that does not meet the requirements.

I think you meant to say that code coverage is about line of code being addressed/exercised.

Low code coverage and high functional coverage means you are either missing functional requirements that need to be covered, or you have a lot of dead RTL.

High code coverage and low functional coverage means either there is more RTL that needs to be implemented, or you need more tests.

1 Like