Opcode Category Partitioning
ConceptOpcode category partitioning is a hierarchical constraint-decomposition technique used in constrained-random microcode stimulus generation. Opcode definitions and their associated constraints are split across a base class (holding global constraints shared by every opcode) and a set of derived sub-classes that each group a category of related opcodes with similar constraints. This partitioning reduces the size of the problem presented to the SystemVerilog constraint solver, which in turn drastically lowers memory consumption and improves randomization performance compared to defining all opcodes in a single class.
WIKI
Overview
Opcode category partitioning is an object-oriented technique for organizing constrained-random stimulus generators used in microprocessor verification. Rather than describing every opcode in one large class, the opcode definitions and their implication constraints are partitioned hierarchically: a common base class expresses the global constraints that apply to all opcodes, and derived sub-classes capture the constraints that apply to a specific category of related opcodes.
This partitioning is motivated by the observation that putting every opcode in a single class forces the constraint solver to solve one enormous problem with many random variables and many cross-cutting constraints. Splitting the problem along natural opcode categories shrinks the working set that the solver must manipulate, which reduces memory usage and increases randomization throughput.
NEIGHBORHOOD
No graph connections found for this entity yet. It may appear in future ingestion runs.
explore full graph →