Overview
Microprocessor design verification is the discipline of confirming that a processor implementation conforms to its intended functional specification prior to tape-out and manufacture. Its importance is widely acknowledged in the hardware design community, because defects that escape pre-silicon verification can be extremely costly to remediate after a chip has been produced in volume and shipped to customers.
Historical methodology gap
As of the late 1990s, despite broad recognition of its importance, no rigorous methodology was commonly followed for microprocessor design verification [1]. Verification efforts were often ad hoc, and the complexity of modern instruction-set architectures made exhaustive testing infeasible. The resulting gaps in coverage were highlighted by high-profile escape bugs, most notably the two infamous Pentium Floating Point bugs, which served as cautionary examples of the consequences of insufficient verification rigor [1].
Plan-driven verification methodology
A methodology that has been proposed to address this gap is built around a verification plan — a structured artifact that induces "smart sets" of tests which systematically carry out the verification tasks [1]. Rather than relying on unconstrained stimulus, the plan directs the generation of tests toward corners of the design that are most likely to harbor defects, while still leveraging randomness to cover a broad state space.
Automated test-program generation with Genesys
This plan-driven approach is operationalized through automated pseudo-random test-program generation. The Genesys test-program generator, developed at IBM Research, is an example of such a tool: it consumes a verification plan and automatically produces test programs that exercise the design in a targeted yet randomized fashion [1]. Genesys thus serves as the execution engine for the verification plan, scaling the methodology to the size and complexity of real industrial microprocessor designs.
Application to the x86 microprocessor family
The methodology has been applied to verify designs in the x86 microprocessor family [1]. In the reported IBM Research work, Genesys was used to drive verification of an x86 design, and the authors analyzed how the plan-driven methodology would have changed the coverage characteristics of the test campaign. In particular, the paper argued that the approach could have helped to detect or avoid known escape bugs such as the Pentium Floating Point defects [1].
Significance
The work demonstrated that microprocessor design verification can be elevated from an ad hoc activity to a rigorous, repeatable engineering discipline by combining three elements: (1) an explicit verification plan, (2) pseudo-random stimulus generation guided by that plan, and (3) application of the resulting methodology to real, commercially significant processor families such as x86 [1].
See also
- Genesys — automatic pseudo-random test-program generator used to operationalize the verification plan methodology.