Language Support
NVC supports almost all of IEEE 1076-1993 and 1076-2002. Please report any missing or incorrectly implemented features.
VHDL-2008
IEEE 1076-2008 was a major update to the VHDL standard. NVC supports many of the new features, please consult the table below.
Feature | Status |
---|---|
Package generics | 1.6 |
Subprogram generics | 1.7 |
Generic types | 1.7 |
PSL integrated into VHDL | |
New fixed and floating point arithmetic packages | 1.7 |
/* */ block comments |
1.6 |
New standard
functions minimum , maximum , to_string ,
etc. |
1.6 |
Function rising_edge is defined
for boolean |
1.7 |
Arrays and records may contain unconstrained elements | 1.7 |
New boolean_vector , integer_vector ,
etc. types |
1.6 |
"Matching" case statement case? |
1.7 |
force and release for signals |
1.7 |
'INSTANCE_NAME etc. extended for package and
subprogram instantiation |
|
New standard environment package | 1.4 |
New 'SUBTYPE and 'ELEMENT
attributes |
1.7 |
New condition operator ?? |
1.6 |
Enhanced bit string literals | 1.6 |
External names | 1.7 |
Array slices in aggregates | 1.7 |
Conditional and selected sequential statements | 1.10 |
Extensions to generate statement | 1.8 |
all in sensitivity list |
1.6 |
Context declarations | 1.4 |
New and enhanced IEEE standard packages | 1.6 |
VHDL-2019
IEEE 1076-2019 was another major update to the VHDL standard. NVC has experimental support for some of the new features, please consult the table below.
LCS | Feature | Status |
---|---|---|
LCS2016-001 | Partially connected vectors on port map | master |
LCS2016-002 | Allow access to protected type parameters on function interfaces | master |
LCS2016-004 | Allow PT methods with AT and FT parameters | master |
LCS2016-006a | File IO / TextIO updates | 1.9 |
LCS2016-006c | Directory API | master |
LCS2016-006e | Environment API | 1.10 |
LCS2016-006f | Expose standard conditional analysis identifiers | 1.9 |
LCS2016-007 | Sequential declaration regions | master |
LCS2016-011 | Date/time functions | 1.10 |
LCS2016-012 | 'IMAGE and TO_STRING for composite types |
master |
LCS2016-014 | Composites of protected types | |
LCS2016-014a | Pointers to composites of protected types | 1.10 |
LCS2016_015 | Standard functions to report calling path | 1.9 |
LCS2016_015a | Standard functions to report current file name | 1.9 |
LCS2016-016 | Anonymous types | |
LCS2016-018 | Attributes for enumerated types | master |
LCS2016-018a | New attributes - 'INDEX |
1.10 |
LCS2016-018d | New attributes - 'DESIGNATED_TYPE |
1.10 |
LCS2016-019 | Inferring constraints from initial values for signals and variables | 1.10 |
LCS2016-023 | Relax library requirement on configurations | master |
LCS2016-026c | Long integers | 1.10 |
LCS2016_030 | Garbage collection | 1.7 |
LCS2016-032 | PATH_NAME and shared variables and subprograms |
|
LCS2016-033 | Composition with protected types | master |
LCS2016-034 | Protected types with generic clause | |
LCS2016-036a | Allow for conditional expressions in a declaration (baseline) | 1.10 |
LCS2016-041 | Record introspection/type reflection | master |
LCS2016-043 | Attributes for PSL | |
LCS2016-045a | Interface - defines new mode view construct for composite interface objects | 1.10 |
LCS2016-045c | Interface - 'CONVERSE for a mode view |
1.10 |
LCS2016-047 | Protected type: shared variables on entity interface | 1.10 |
LCS2016-049 | Map generics on subprogram call | |
LCS2016-050 | API for assert | master |
LCS2016-055a | Syntax regularisation - component declarations | 1.9 |
LCS2016-059 | Array type generics | master |
LCS2016-059a | Allow ordering on any scalar array | 1.10 |
LCS2016_061 | Conditional compilation | 1.4 |
LCS2016_071a | Optional trailing semicolon | 1.9 |
LCS2016_072b | Function knows vector size | 1.10 |
LCS2016_075 | Closely related record types | master |
LCS2016_082 | Empty record | 1.9 |
LCS2016_086 | All interface lists can be ordered | 1.9 |
LCS2016_094a | Conditional return statement | 1.10 |
LCS2016_099 | Extended ranges |