| Features | Example/Comment |
|---|---|
| VHDL-2008 STD and IEEE packages precompiled, including new fixed and float packages, unsigned bit etc. |
Limited by other language features such as generic package which XSIM does not yet support. Not all newly added std functions are supported. Notably, |
| Simplified sensitivity list |
process(all)
|
| Matching Relational Operators |
|
| Unary Reduction Logic Operators |
|
| Simplified Case Statement |
Instead of an intermediate variable or signal, we can use an expression directly in the case statement. |
| Array / Bit Logic Operators |
|
| Array / Bit Addition Operators | Library functions |
| Enhanced Bit String Literals |
16SX"FF” = "1111_1111_1111_1111” 16UX”FF” = “0000_0000_1111_1111” |
| Conditional and selected sequential statements |
|
| Protected type |
Protected type shared variable is supported in HDL simulation, but Tcl and GUI does not allow examining value of protected type shared variables yet. |
| Keyword 'parameter' in procedure declaration |
procedure proc parameter
(a : in std_logic)
|
| Array element resolution function in subtype definition |
|
| Block comments |
|
| Predefined array types | boolean_vector, integer_vector etc. |
| Type passed as Generic |
|
| Hierarchical references to signal |
<<signal
.top.dut_inst.sig1 : std_logic_vector(3 downto
0)>>
|
| Expression in port map | |
| Reading output port | |
| Max and Min operator | |
| Matching case statement | |
| Shift operators (rol, ror, sll, srl, sla and sra) | |
| Mixing array and scalar logical operators | |
| Conditional sequential assignments on signal | |
| Case generate | |
| Extensions to globally static and locally static expressions | |
| Static ranges and integer expressions in range bound | |
| Other features that are not mentioned in the above table, are not supported by Vivado simulator. | |