Pseudo-Random Test-Program Generation
Overview
Pseudo-random test-program generation is a functional verification technique used in microprocessor design verification. Instead of relying on manually authored test cases, an automatic generator synthesizes test programs algorithmically, producing stimuli that exercise a design under verification (DUV) in a pseudo-random fashion. The approach is intended to address the lack of a rigorous, widely adopted methodology for microprocessor verification by automating stimulus creation while still allowing verification engineers to direct the effort.
Methodology
The technique is typically organized around a verification plan—a structured description of the design features, scenarios, and corner cases that must be exercised. The verification plan induces "smart sets of tests" that carry out the verification tasks, meaning the pseudo-random generation is biased or constrained so that the resulting test programs emphasize meaningful coverage targets rather than producing uniformly random but low-value stimuli. This combination of automatic generation with plan-driven biasing is the core methodological contribution associated with the technique.
Application to x86 Microprocessor Verification
Pseudo-random test-program generation has been applied to the verification of x86 microprocessor designs. The reported application uses the technique to exercise an x86 design and to demonstrate how plan-guided, automatically generated test programs can be deployed in an industrial verification flow. The methodology was also retrospectively analyzed in the context of known escape bugs, including the infamous Pentium Floating Point bugs, with the argument that a plan-driven pseudo-random generation methodology could have helped avoid such escapes.
Implementations
A prominent tool that implements pseudo-random test-program generation is Genesys, described as an automatic pseudo-random test-program generator. Genesys is the vehicle through which the verification-plan-driven methodology was published and applied to x86 designs in the late 1990s.
Significance
By coupling automatic test-program synthesis with an explicit verification plan, pseudo-random test-program generation provides a scalable alternative to purely hand-written test suites. The technique aims to combine the breadth of random stimulus generation with the focus of directed testing, and has been positioned as a practical response to the verification challenges of complex instruction-set architectures such as x86.