This is a major new release with the following changes:
--load
is now a global option and should be placed before the-r
command. This allows VHPI foreign subprograms to be called during elaboration (#988).- The
--per-file
coverage report option outputs code coverage reports for each source file instead of each instance (#823). - The new
--check-synthesis
analysis option warns when signals are missing from process sensitivity lists. - Fixed a crash when a generic subprogram is associated with
open
(#1025). - Added a functional coverage API in
nvc.cover_pkg
that can be used by external frameworks such as OSVVM to define cover points. - Added
threshold-<value>
option for coverage to set minimal count a coverage bin must reach to be reported as covered. - Added a warning for potential infinite loops in processes without sensitivity and lacking any wait statements (from @NikLeberg).
- Selected names can now be used to register value change callbacks with
vhpi_register_cb
(#1045). - Removed the limit on the maximum number of parameters that can be passed to a VHDL subprogram (#1036).
- The new
--no-save
analysis option parses and checks the input files but does not save the working library to disk. This is a replacement for the--syntax
top-level command which is now deprecated. - The coverage database file name has changed to
<toplevel>.ncdb
in the current working directory and this can now be customised with the new--cover-file=
elaboration option. Attempts to access the old file name inside the library directory will be redirected to the new location, with a warning. - Partial association of ports with interface views now works correctly (#1074).
- Added support for PSL suffix implication, SERE repetition, and SERE fusion.
- Nested arrays more than two levels deep can now be dumped in FST format (#1071).
- Added support for package external names (#1072).
- Fixed parser hang for bit string literals (from @NikLeberg).
- Fixed a crash on an illegal package definition inside an interface.
- Comping the Vivado vendor libraries with
nvc --install vivado
is now around 2x faster and analysing files with many dependencies is up to an order of magnitude faster (#1098). - The
--jit
elaboration mode now works on Windows-on-Arm systems. vhpi_assert
now behaves the same as VHDLassert
for the purposes of determining the simulation exit code and early termination (#1060).- The
'driving_value
attribute now works correctly with record types. - Added basic support for
'instance_name
,'path_name
and'simple_name
attributes of generate block labels (from @NikLeberg) (#1125). - Comments are now parsed correctly inside PSL directives (#1129).
- Updated to OSVVM 2024.11 and UVVM 2024.10.08 for
nvc --install
. - Several other minor bugs were resolved (#1038, #1057, #1067. #1124).
Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, @johonkanen, and @augustofg for sponsoring me!