Previous Section Next Section

14.5 Coverage Driven Functional Verification Methodology

A coverage-driven functional verification approach combines directed-random simulation with coverage to solve the problems with a traditional verification methodology. This approach greatly enhances productivity of the engineers and the quality of the DUT.

14.5.1 What Does e Provide?

Both directed-random generation as well as coverage are provided in a unified manner in e syntax.

These e constructs enable a new verification paradigm that was not possible before with older tools.

14.5.2 The New Verification Paradigm

In a coverage-driven functional verification methodology, the verification engineer goes through the following steps to verify a DUT (block, chip, or system):

  1. Create a test plan that identifies all possible behavior of the DUT to be verified. Define coverage requirements on interesting items and state transitions in the DUT. This methodology requires that the test plan and the coverage requirements be very thorough because it sets up a reference for the measurement of 100% coverage.

  2. Set up the verification environment with constraints (keep and keeping constraints) from the DUT specification and test plan. Specify coverage on interesting items and state transitions in the DUT using the cover struct member.

  3. Run many directed-random simulations with different seed values. The constraints will ensure that the randomness is controlled and all interesting areas are touched. Most obvious bugs will be uncovered by random simulation with minimal manual effort.

  4. Run coverage with random simulations to find out how many DUT areas have been tested. Coverage will tell what DUT cases have not been reached. Run random simulations with different seeds until no more DUT areas can be reached.

  5. Refine the verification constraints of the verification environment to verify device behavior not previously possible. Directed tests are simply tests with lots of constraints. There is some manual effort but it is only focused on areas that are not reachable by random simulation.

  6. Rerun functional coverage measurement with directed tests to ensure that all corner cases were covered.

  7. Repeat steps 5 and 6 until you reach 100% coverage.

  8. When you achieve 100% coverage, the verification is considered complete.

Figure 14-13 shows the coverage-driven functional verification methodology outlined in this section. This new verification paradigm is enabled because both directed-random simulation as well as coverage can be used as a combination from the very beginning of the verification effort. This was not possible earlier due to lack of integrated tools to do both directed-random simulation and functional coverage.

Figure 14-13. Coverage Driven Verification Methodology

graphics/14fig13.gif

14.5.3 Advantages of Coverage Driven Functional Verification

Using the coverage-driven functional verification paradigm has numerous productivity and quality advantages.

Previous Section Next Section