Skip to content
STIMSMITH

Gregory Tang

Person WIKI v1 · 5/25/2026

Gregory Tang is identified in the provided evidence as an AMD, Inc. author of the technical article "Generating AMD microcode stimuli using VCS constraint solver." The article discusses constrained-random microcode stimulus generation using SystemVerilog and the Synopsys VCS constraint solver, including single-class and hierarchical multi-class opcode-generation approaches.

Overview

Gregory Tang is listed as an author from AMD, Inc. on the technical article "Generating AMD microcode stimuli using VCS constraint solver." The article was co-authored with Rajat Bahl of AMD, Inc. and Alex Wakefield and Padmaraj Ramachandran of Synopsys Inc. [C1]

Technical area

The article addresses verification for increasingly complex microprocessor designs. It describes the shift away from hand-written directed tests toward automated random test generators that create microcode test sequences and improve coverage across opcode and instruction-attribute stimulus spaces. [C2]

Method described in the article

The work explores a hierarchical constrained-random method for generating AMD microcode stimuli with the Synopsys VCS constraint solver. The stated goals are to accelerate generation, reduce memory consumption, and provide distribution control and biasing for corner-case coverage. [C3]

The article explains that SystemVerilog constraint-language constructs can express microcode instructions in terms of legal attribute combinations and can control the distribution of values for individual fields. [C4]

Generator architecture

The opcode generator described in the article uses two layers. The upper layer is implemented with a SystemVerilog random sequence construct and weighted knobs for high-level distribution control. The lower layer contains the opcode class, randomized with additional constraints and weights from the upper layer. [C5]

Randomization approaches discussed

Single-class randomization

The article describes an initial or simple implementation style in which a single opcode class contains all opcode constraints. This approach is flexible because constraints can be applied between any data members, but it may slow randomization because the constraint solver must handle many random variables and a large constraint set. The described opcode class contained approximately 100 random variables and 800 constraint equations. [C6]

Hierarchical multi-class randomization

The article then describes an object-oriented hierarchical approach: a base class holds global constraints common to all opcodes, while subclasses define groups of related opcodes with similar constraints. Partitioning constraints into smaller hierarchical opcode groups is reported to drastically reduce memory requirements and increase performance. [C7]

Significance within the provided evidence

Within the available evidence, Gregory Tang's documented technical contribution is authorship of an AMD-related verification article focused on constrained-random microcode stimulus generation, SystemVerilog constraint modeling, and performance-oriented opcode-generator architecture. [C1][C3][C7]

CITATIONS

7 sources
7 citations
[1] C1: Gregory Tang is listed as an AMD, Inc. author of the article "Generating AMD microcode stimuli using VCS constraint solver," alongside Rajat Bahl, Alex Wakefield, and Padmaraj Ramachandran. Generating AMD microcode stimuli using VCS constraint solver
[2] C2: The article discusses microprocessor verification trends, including reduced reliance on hand-written directed tests and increased use of automated random test generators for microcode test sequences. Generating AMD microcode stimuli using VCS constraint solver
[3] C3: The article explores a hierarchical constrained-random approach using the Synopsys VCS constraint solver to accelerate generation, reduce memory use, and improve distribution and biasing for corner cases. Generating AMD microcode stimuli using VCS constraint solver
[4] C4: SystemVerilog constraint-language constructs are described as a way to express microcode instruction attribute combinations and control field-value distributions. Generating AMD microcode stimuli using VCS constraint solver
[5] C5: The opcode generator architecture has an upper SystemVerilog random-sequence layer with weighted knobs and a lower randomized opcode-class layer that receives additional constraints and weights. Generating AMD microcode stimuli using VCS constraint solver
[6] C6: The article describes single-class randomization as flexible but potentially slow, and states that the opcode class contained about 100 random variables and 800 constraint equations. Generating AMD microcode stimuli using VCS constraint solver
[7] C7: The article describes an object-oriented hierarchical approach with a global-constraint base class and related-opcode subclasses, reporting reduced memory requirements and increased performance. Generating AMD microcode stimuli using VCS constraint solver