Tech Tip: An Intro to IP Verification

By Michael Cizl, Munich Design Center Director, IPextreme

Continued ...

Pure random testing has the disadvantage of not indicating which function, feature or behavior of the design will be tested when. It might also require thousands of tests to reach certain corner cases. To accurately measure functional coverage, coverage points must be defined in the verification environment and coverage data must be collected during simulation. This allows you to grade the tests (to select those that add the most to the coverage) and to implement specific tests for special corner cases. With random testing, this is done by constraining all the parameters that have an impact on what is actually tested. To ensure full coverage though, the structural coverage must also be observed, i.e. whether:

  • all lines have been touched
  • all expressions within conditions have been evaluated leading to a true/false result
  • all FSM state transitions have been executed

The requirement for structural observation arises because the test plan is based on the design specification; all the features to be tested are derived from a document. While the engineer implements the design according (or not according) to the specification, the structural and code coverage must be observed to check that:

  • only the function, as described in the specification, was implemented
  • the specification matches the implementation

Ideally full coverage can be attained without visibility into the DUT. The verification team simply explores such a ‘black box’ based on the design specification and the test plan, which enables verification to be more independent from design. If some coverage points require internal visibility, details of the implementation need to be communicated to the verification team so that the verification environment can be developed appropriately to reach the 100% coverage goal. This is often called ‘white box’ testing.

Last but not least, coverage for a configurable IP must also include the parameters. Depending on the number of parameters and their level of interdependency, an IP core may require so many tests that it is literally impossible to verify the functional correctness with all possible legal parameter combinations in a reasonable time with limited resources (i.e. licenses, compute servers, etc). Therefore you should carefully design the parameter set of your IP to:

  • minimize the number of parameters, and
  • avoid unnecessary dependencies (i.e. limiting the number of possible legal combinations)

If you have any questions please do not hesitate to contact us at info@ip-extreme.com