Verification is still the bottleneck of the complex digital system design process. Formal techniques have advanced in
their capacity to handle more complex descriptions, but they still suffer from problems of memory or time explosion.
Simulation-based techniques handle descriptions of any size or complexity, but the efficiency of these techniques is
reduced with the increase in the system complexity because of the exponential increase in the number of simulation tests
necessary to maintain the coverage. Semi-formal techniques combine the advantages of simulation and formal
techniques as they increase the efficiency of simulation-based verification. In this area, several research works have
introduced techniques that automate the generation of vectors driven by traditional coverage metrics. However, these
techniques do not ensure the detection of 100% of faults.
This paper presents a novel technique for the generation of vectors. A major benefit of the technique is the more efficient
generation of test-benches than when using techniques based on structural metrics.
The technique introduced is more efficient since it relies on a novel coverage metric, which is more directly correlated to
functional faults than structural coverage metrics (line, branch, etc.). The proposed coverage metric is based on an
abstraction of the system as a set of polynomials where all system behaviours are described by a set of coefficients. By
assuming a finite precision of coefficients and a maximum degree of polynomials, all the system behaviors, including
both the correct and the incorrect ones, can be modeled. This technique applies mathematical theories (computer algebra
and number theory) to calculate the coverage and to generate vectors which maximize coverage.
Moreover, in this work, a tool which implements the technique has been developed. This tool takes a C-based system
description and provides the coverage and the generated vectors as output.