Standalone Mode
A new -sv
flag has been introduced to
xvlog
, so if you want to read any SystemVerilog
file, you can use the following command:
xvlog -sv <Design file list>
xvlog -sv -work <LibraryName> <Design File List>
xvlog -sv -f <FileName> [Where FileName contain path of test cases]
prj Mode
If you want to run the Vivado
simulator in the prj
-based flow, use sv
as the file type, as you use verilog
or vhdl
.
xvlog -prj <prj File>
xelab -prj <prj File> <topModuleName> <other options>
Where the entry in prj file appears as follows:
verilog library1 <FileName>
sv library1 <FileName> [File parsed in SystemVerilog mode]
vhdl library2 <FileName>
sv library3 <FileName> [File parsed in SystemVerilog mode]
Primary construct | Secondary construct | LRM section | Status |
---|---|---|---|
Data type | 6 | ||
Singular and aggregate types | 6.4 | Supported | |
Nets and variables | 6.5 | Supported | |
Variable declarations | 6.8 | Supported | |
Vector declarations | 6.9 | Supported | |
2-state (two-value) and 4-state (four-value) data types | 6.11.2 | Supported | |
Signed and unsigned integer types | 6.11.3 | Supported | |
Real, shortreal and realtime data types | 6.12 | Supported | |
User-defined types | 6.18 | Supported | |
Enumerations | 6.19 | Supported | |
Defining new data types as enumerated types | 6.19.1 | Supported | |
Enumerated type ranges | 6.19.2 | Supported | |
Type checking | 6.19.3 | Supported | |
Enumerated types in numerical expressions | 6.19.4 | Supported | |
Enumerated type methods | 6.19.5 | Supported | |
Type parameters | 6.20.3 | Supported | |
Const constants | 6.20.6 | Supported | |
Type operator | 6.23 | Supported | |
Cast operator | 6.24.1 | Supported | |
$cast dynamic
casting |
6.24.2 | Supported | |
Bitstream casting | 6.24.3 | Supported | |
Aggregate data types | 7 | ||
Structures | 7.2 | Supported | |
Packed/Unpacked structures | 7.2.1 | Supported | |
Assigning to structures | 7.2.2 | Supported | |
Unions | 7.3 | Supported | |
Packed/Unpacked unions | 7.3.1 | Supported | |
Tagged unions | 7.3.2 | Not Supported | |
Packed arrays | 7.4.1 | Supported | |
Unpacked arrays | 7.4.2 | Supported | |
Operations on arrays | 7.4.3 | Supported | |
Multidimensional arrays | 7.4.5 | Supported | |
Indexing and slicing of arrays | 7.4.6 | Supported | |
Array assignments | 7.6 | Supported | |
Arrays as arguments to subroutines | 7.7 | Supported | |
Array querying functions | 7.11 | Supported | |
Array manipulation methods | 7.12 | Supported | |
Processes | 9 | ||
Combinational logic always_comb procedure |
9.2.2 | Supported | |
Implicit always_comb sensitivities |
9.2.2.1 | Supported | |
Latched logic always_latch procedure |
9.2.2.3 | Supported | |
Sequential logic always_ff procedure |
9.2.2.4 | Supported | |
Sequential blocks | 9.3.1 | Supported | |
Parallel blocks | 9.3.2 | Supported | |
Procedural timing controls | 9.4 | Supported | |
Conditional event controls | 9.4.2.3 | Supported | |
Sequence events | 9.4.2.4 | Not Supported | |
Assignment statement | 10 | ||
The continuous assignment statement | 10.3.2 | Supported | |
Variable declaration assignment (variable initialization) | 10.5 | Supported | |
Assignment-like contexts | 10.8 | Supported | |
Array assignment patterns | 10.9.1 | Supported | |
Structure assignment patterns | 10.9.2 | Supported | |
Unpacked array concatenation | 10.10 | Supported | |
Net aliasing | 10.11 | Supported | |
Operators and expressions | 11 | ||
Constant expressions | 11.2.1 | Supported | |
Aggregate expressions | 11.2.2 | Supported | |
Operators with real operands | 11.3.1 | Supported | |
Operations on logic (4-state) and bit (2-state) types | 11.3.4 | Supported | |
Assignment within an expression | 11.3.6 | Supported | |
Assignment operators | 11.4.1 | Supported | |
Increment and decrement operators | 11.4.2 | Supported | |
Arithmetic expressions with unsigned and signed types | 11.4.3.1 | Supported | |
Wildcard equality operators | 11.4.6 | Supported | |
Concatenation operators | 11.4.12 | Supported | |
Set membership operator | 11.4.13 | Supported | |
Concatenation of stream_expressions
|
11.4.14.1 | Supported | |
Re-ordering of the generic stream | 11.4.14.2 | Supported | |
Streaming concatenation as an assignment target (unpack) | 11.4.14.3 | Supported | |
Streaming dynamically sized data | 11.4.14.4 | Supported | |
Procedural programming statement | 12 | ||
unique-if ,
unique0-if and priority-if
|
12.4.2 | Supported | |
Violation reports generated by unique-if , unique0-if , and priority-if constructs |
12.4.2.1 | Supported | |
If statement violation reports and multiple processes | 12.4.2.2 | Supported | |
unique-case ,
unique0-case , and priority-case
|
12.5.3 | Supported | |
Violation reports generated by unique-case , unique0-case , and priority-case construct |
12.5.3.1 | Supported | |
Case statement violation reports and multiple processes | 12.5.3.2 | Supported | |
Set membership case statement | 12.5.4 | Supported | |
Pattern matching conditional statements | 12.6 | Not Supported | |
Loop statements | 12.7 | Supported | |
Jump statement | 12.8 | Supported | |
Tasks | 13.3 | ||
Static and Automatic task | 13.3.1 | Supported | |
Tasks memory usage and concurrent activation | 13.3.2 | Supported | |
Function | 13.4 | ||
Return values and void functions | 13.4.1 | Supported | |
Static and Automatic function | 13.4.2 | Supported | |
Constant function | 13.4.3 | Supported | |
Background process spawned by function call | 13.4.4 | Supported | |
Subroutine calls and argument passing | 13.5 | ||
Pass by value | 13.5.1 | Supported | |
Pass by reference | 13.5.2 | Supported | |
Default argument value | 13.5.3 | Supported | |
Argument binding by name | 13.5.4 | Supported | |
Optional argument list | 13.5.5 | Supported | |
Import and Export function | 13.6 | Supported | |
Task and function name | 13.7 | Supported | |
Utility system tasks and system functions (only synthesizable set) | 20 | Supported | |
I/O system tasks and system functions (only synthesizable set) | 21 | Supported | |
Compiler directives | 22 | Supported | |
Modules and hierarchy | 23 | ||
Default port values | 23.2.2.4 | Supported | |
Top-level modules and $root
|
23.3.1 | Supported | |
Module instantiation syntax | 23.3.2 | Supported | |
Nested modules | 23.4 | Supported | |
Extern modules | 23.5 | Supported | |
Hierarchical names | 23.6 | Supported | |
Member selects and hierarchical names | 23.7 | Supported | |
Upwards name referencing | 23.8 | Supported | |
Overriding module parameters | 23.10 | Supported | |
Binding auxiliary code to scopes or instances | 23.11 | Not Supported | |
Interfaces | 25 | ||
Interface syntax | 25.3 | Supported | |
Nested interface | 25.3 | Supported | |
Ports in interfaces | 25.4 | Supported | |
Example of named port bundle | 25.5.1 | Supported | |
Example of connecting port bundle | 25.5.2 | Supported | |
Example of connecting port bundle to generic interface | 25.5.3 | Supported | |
Modport expressions | 25.5.4 | Supported | |
Clocking blocks and modports | 25.5.5 | Supported | |
Interfaces and specify blocks | 25.6 | Supported | |
Example of using tasks in interface | 25.7.1 | Supported | |
Example of using tasks in modports | 25.7.2 | Supported | |
Example of exporting tasks and functions | 25.7.3 | Supported | |
Example of multiple task exports | 25.7.4 | Supported | |
Parameterized interfaces | 25.8 | Supported | |
Virtual interfaces | 25.9 | Supported | |
Packages | 26 | ||
Package declarations | 26.2 | Supported | |
Referencing data in packages | 26.3 | Supported | |
Using packages in module headers | 26.4 | Supported | |
Exporting imported names from packages | 26.6 | Supported | |
The std built-in package | 26.7 | Supported | |
Generate constructs | 27 | Supported |