Comprehensive Functional Verification: The Complete Industry Cycle

Complex designs require robust stimulus generation components. Together with the checking components, stimulus generation is critical for discovering design problems. This chapter describes methods for creating simulation-based stimulus generation in complex designs.
Earlier chapters used simpler example designs to illustrate deterministic test cases and introduce the building blocks of a simulation environment. The Calc1 design was used as an example of a relatively simple design under verification (DUV). To illustrate more complex stimulus generation techniques, this chapter launches the Calc2 design, which builds on Calc1.
This chapter introduces four corners of stimulus generation, which range from deterministic to random generation and from predetermined to on-the-fly verification environments. Each has strengths and weaknesses, which the verification team must evaluate using their insight into the function of the DUV. This chapter should enable the reader to plan a stimulus environment that appropriately matches the requirements of the design under verification.
When devising a stimulus environment, the verification engineer must understand the interrelationship of events and interface activity on the DUV. Often, the design places restrictions on the inputs, requiring intelligence in creating stimulus components. This is called constraint solving and is an integral part of complex stimulus generation. Insight into design constraints contributes greatly to the quality of the stimulus generation components. This chapter describes the process for evaluating design constraints and the methods for properly tuning the stimulus components to exploit these constraints.
No stimulus component is complete without coverage feedback, which provides invaluable insight into the quality of...