Overview
Alex Wakefield is identified in the available evidence as an author affiliated with Synopsys Inc. on the Design-Reuse article "Generating AMD microcode stimuli using VCS constraint solver." The byline lists Gregory Tang and Rajat Bahl of AMD, Inc., and Alex Wakefield and Padmaraj Ramachandran of Synopsys Inc. [1]
Technical publication
The cited article addresses verification stimulus generation for increasingly complex microprocessor designs. It states that hand-written directed tests had become less common and that automated random test generators were being used to create microcode test sequences with broader coverage across opcodes and instruction attributes. [2]
The article presents a hierarchical constrained-random approach using the Synopsys VCS constraint solver. The stated goals of the method are to accelerate generation, reduce memory consumption, improve distribution control, and bias generation toward corner cases. [3]
Methods described in the article
The article describes the use of SystemVerilog constraint language constructs to model microcode instructions in terms of possible attribute combinations and to control distributions for individual fields. It contrasts this with sequential randomization methods, which the article says can produce verbose, redundant code and provide limited distribution control. [4]
The generator architecture described in the article has two layers:
- an upper layer implemented with a SystemVerilog random sequence construct and weighted knobs for controlling high-level item distribution; and
- a lower opcode-class layer randomized with additional constraints and weights supplied by the upper layer. [5]
The article also compares single-class and multi-class randomization approaches. In the single-class approach, all opcodes are contained in one opcode class, allowing flexible constraints across data members but potentially slowing randomization because of a large constraint-solving problem. The article reports an opcode class with approximately 100 random variables and 800 constraint equations. [6]
To reduce randomization problem size, the article describes splitting the opcode class into multiple smaller classes, with a base class for global constraints and derived subclasses for related opcode groups. The article states that hierarchical partitioning reduced memory requirements and improved performance. [7]
Notes
No additional biographical details about Alex Wakefield are provided in the supplied evidence.
[1]: Design-Reuse article byline. [2]: Article discussion of verification trends and random test generators. [3]: Article statement of hierarchical constrained-random approach using Synopsys VCS. [4]: Article discussion of SystemVerilog constraints and sequential randomization limitations. [5]: Article generator architecture description. [6]: Article single-class randomization discussion. [7]: Article object-oriented hierarchical partitioning discussion.