User guide

24-128
SystemVerilog Testbench Constructs
Aspect Oriented Extensions
The Aspect oriented extensions is a Limited Customer availability
(LCA) feature in NTB(SV) and requires a separate license. Please
contact your Synopsys AC for a license key.
Aspect-Oriented Programming (AOP) methodology complements
the OOP methodology using a construct called aspect or an
aspect-oriented extension (AOE) that can affect the behavior of a
class or multiple classes. In AOP methodology, the terms “aspect”
and “aspect-oriented extension” are used interchangeably.
Aspect oriented extensions in SV allow testbench engineers to
design testcase more efficiently, using fewer lines of code.
AOP addresses issues or concerns that prove difficult to solve when
using Object-Oriented Programming (OOP) to write
constrained-random testbenches.
Such concerns include:
1. Context-sensitive behavior.
2. Unanticipated extensions.
3. Multi-object protocols.
In AOP these issues are termed cross-cutting concerns as they cut
across the typical divisions of responsibility in a given programming
model.
In OOP, the natural unit of modularity is the class. Some of the cross
cutting concerns, such as "Multi-object protocols" , cut across
multiple classes and are not easy to solve using the OOP