SystemVerilog has experienced broad adoption in verification, but not until recently did it receive much attention for its design constructs. The common explanation for this is that verification is the primary bottleneck in the design schedule; hence verification enhancements should logically be of the greatest interest. Recent studies show, however, that RTL implementation consumes nearly half of the design cycle, meaning that coding methodologies are far from perfect. SystemVerilog design constructs are intended to address the inefficiencies of conventional RTL design. This paper focuses on the set of language's constructs that raise the level of design abstraction to make RTL coding more intuitive, readable, and maintainable.