This is a major new release with much improved support for VHDL-2019. Consult the features page for the current status of each LCS. This release also brings full support for cocotb!

Download: nvc-1.11.0.tar.gz

This release is signed with my PGP key ID 74319F1A: nvc-1.11.0.tar.gz.sig

  • New command --cover-export exports coverage data in the Cobertura XML format which is supported by most CI environments such as GitLab.
  • Generics on internal instances can now be overridden with the -g elaboration option. For example -g uut.value=42.
  • Implemented the 'reflect attribute and associated protected types from VHDL-2019.
  • Added support for VHDL-2019 sequential block statements.
  • Implemented the VHDL-2019 directory I/O functions in std.env.
  • Added VHDL-2019 assert API (with @Blebowski).
  • Implemented 'image, 'value and to_string for composite types in VHDL-2019.
  • Implemented the “closely related record types” feature from VHDL-2019.
  • Implemented the “composition with protected types” feature from VHDL-2019.
  • The new --shuffle option runs processes in a random order which can help to identify code that depends on a particular execution order.
  • Updated to OSVVM 2023.07 for nvc --install.
  • Various enhancements and fixes to the VHPI implementation.
  • Implemented the VHDL-2019 changes to instance_name and path_name for protected type variables.
  • VHPI error messages are no longer reported as diagnostic messages on the console. The new --vhpi-debug option restores the old behaviour.
  • Support for type conversions between arrays with closely related element types.
  • Added support for FSM state coverage collection (from @Blebowski).
  • An alias of a type now correctly creates implicit aliases for each predefined operator of that type (#776).
  • Improve overload resolution where a partial named association implies the formal parameter must be an array (#793).
  • Handling of implicit conversion for universal types has been reworked to better comply with the LRM.
  • Fixed a crash when string literal characters have a type which is an alias to another type (#801).
  • Added a warning when calling the predefined "=" and "/=" operators on arrays and the left and right hand sides have different lengths.
  • Expressions like abs(x)**2.0 are now parsed correctly (#805).

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @nv-h for sponsoring me!