Accellera
Extensions to Verilog-2001 SystemVerilog 3.1a
Copyright 2004 Accellera. All rights reserved. 1
Section 1
Introduction to SystemVerilog
This document specifies the Accellera extensions for a higher level of abstraction for modeling and verifica-
tion with the Verilog Hardware Description Language. These additions extend Verilog into the systems space
and the verification space. SystemVerilog is built on top of the work of the IEEE Verilog 2001 committee.
Throughout this document:
— “Verilog” or “Verilog-2001” refers to the IEEE Std. 1364-2001 standard for the Verilog Hardware Descrip-
tion Language
— “SystemVerilog” refers to the Accellera extensions to the Verilog-2001 standard.
This document numbers the generations of Verilog as follows:
— “Verilog 1.0” is the IEEE Std. 1364-1995 Verilog standard, which is also called Verilog-1995
— “Verilog 2.0” is the IEEE Std. 1364-2001 Verilog standard, commonly called Verilog-2001; this genera-
tion of Verilog contains the first significant enhancements to Verilog since its release to the public in 1990
— “SystemVerilog 3.x” is Verilog-2001 plus an extensive set of high-level abstraction extensions, as defined
in this document
— SystemVerilog 3.0, approved as an Accellera standard in June 2002, includes enhancements primarily
directed at high-level architectural modeling
— SystemVerilog 3.1, approved as an Accellera standard in May 2003, includes enhancements primarily
directed at advanced verification and C language integration
— SystemVerilog 3.1a, approved as an Accellera standard in April 2004, includes corrections and clarifi-
cations to the SystemVerilog 3.1 manual, as well as some additional enhancements to Verilog such as
VCD and PLI specifications for SystemVerilog constructs.
The Accellera initiative to extend Verilog is an ongoing effort under the direction of the Accellera HDL+ Tech-
nical Subcommittee. This committee will continue to define additional enhancements to Verilog beyond Sys-
temVerilog 3.1a.
SystemVerilog is built on top of Verilog 2001. SystemVerilog improves the productivity, readability, and reus-
ability of Verilog based code. The language enhancements in SystemVerilog provide more concise hardware
descriptions, while still providing an easy route with existing tools into current hardware implementation
flows. The enhancements also provide extensive support for directed and constrained-random testbench devel-
opment, coverage driven verification, and assertion based verification.
SystemVerilog adds extended and new constructs to Verilog-2001, including:
— Extensions to data types for better encapsulation and compactness of code and for tighter specification
— C data types: int, typedef, struct, union, enum
— other data types: bounded queues, logic (0, 1, X, Z) and bit (0, 1), tagged unions for safety
— dynamic data types: string, classes, dynamic queues, dynamic arrays, associative arrays including auto-
matic memory management freeing users from de-allocation issues
— dynamic casting and bit-stream casting
— Automatic/static specification on a per variable instance basis
— Extended operators for concise description
— Wild equality and inequality
— built-in methods to extend the language