Skip to content

Releases: nickg/nvc

1.14.1

26 Oct 11:43
r1.14.1
Compare
Choose a tag to compare

This is a minor bug fix release with the following changes:

  • Fixed an error when using the work library alias and the working library has the same name as design unit being analysed (#991).
  • Added a check for illegal references to signal or variable external names inside pure functions (#1010).
  • Added a check that the parameter of 'stable and other implicit signal attributes is a static expression (#1018).
  • Fixed an elaboration crash when an external name is passed to a procedure (#1029).
  • Record subtype constraints can now be accessed over VHPI (#1035).
  • Several other minor bugs were resolved (#1017, #1020, #1030, #1040).

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, @johonkanen, and @augustofg for sponsoring me!

1.14.0

22 Sep 12:00
r1.14.0
Compare
Choose a tag to compare

This is a major new release with the following changes:

  • Waiting on implicit 'stable and 'quiet signals now works correctly.
  • Updated to OSVVM 2024.07 and UVVM 2024.07.03b for nvc --install.
  • Added a warning when an inner declaration hides an outer declaration in a way that is likely to be unintentional (#905).
  • The -c sub-command for coverage is deprecated and replaced with separate --cover-report and --cover-merge commands. See the manual for details.
  • The argument to the --cover-export command is now the path to a coverage database file instead of a top-level unit name.
  • The --force-init command which was deprecated in the 1.7 release has been removed.
  • Coverage exclude files now support fold command to merge coverage data from independent sub-hierarchies (from @Blebowski).
  • FSM state coverage bin renamed from STATE to BIN_STATE.
  • A signature is now allowed in the formal part of generic map associations in VHDL-2019 mode.
  • use lib.pack.all no longer makes the bare package name pack potentially visible.
  • Very limited initial Verilog support has been added, including the ability to instantiate vendor-supplied UDPs from VHDL.
  • Fixed a regression which caused parse errors for some concurrent assertion statements (#956).
  • Arrays-of-arrays with downto direction are now dumped in the correct order (#957).
  • Fixed incorrect result of 'event and 'active where the prefix is an array of records.
  • Fixed a crash when the 'stable attribute is used with a record type (#960).
  • Conversion functions applied to individual record elements in a port map now work correctly (#963).
  • External name elaboration order checks were overly strict (#964).
  • Associating a signal with an out or inout parameter in a procedure that is not within a process now produces an analysis error rather than crashing at runtime (#965).
  • The --dump-arrays option now takes an optional argument to specify an upper limit on the length of nested arrays to dump (#959).
  • Matching case? statements are now checked for duplicate and missing choices at analysis time (#966).
  • Limited maximum instantiation depth to prevent crashes due to stack overflow when elaborating a design that has unbounded recursive entity instantiation (#969).
  • Physical subtype ranges and 64-bit integer types are now handled correctly by VHPI (#978).
  • Added support for generic map on subprogram call in VHDL-2019 and improved support for array type generics.
  • Optimised emission of FST initial signal values which also fixes a potential crash (#979).
  • Added checks for duplicate attribute specification (#977).
  • Several other minor bugs were resolved (#961, #962, #971, #975, #985).

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, @johonkanen, and @augustofg for sponsoring me!

1.13.3

24 Aug 05:06
r1.13.3
Compare
Choose a tag to compare

This release fixes a number of bugs that were discovered in the 1.13 branch:

  • Type checking was not performed correctly for conversion function actuals in port maps (#945).
  • Fixed a crash with signal aliases inside an instantiated generic package (#946).
  • Fixed random crashes when the simulation heap size is eight gigabytes or larger (#949).
  • Fixed a crash when a constant array with unconstrained element type is initialised with an aggregate (#954).
  • External names in concurrent assertion statements and PSL assertions are now parsed correctly (#952).
  • Several other minor bugs were resolved (#942, #943, #950, #951, #953).

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, @johonkanen, @ikwzm, and @augustofg for sponsoring me!

1.13.2

11 Aug 10:02
r1.13.2
Compare
Choose a tag to compare

This release fixes a number of bugs that were discovered in the 1.13 branch:

  • Fixed an incorrect bounds check error when a constant declaration has a partially constrained type (#932).
  • Elaboration of large designs on Windows no longer fail with linker errors due to excessive command line length.
  • Fixed a bug which prevented VCD files from being generated on Windows systems using the UCRT runtime library (#637).
  • Fixed a crash when the type of a qualified expression is an unconstrained array-of-array (#934).
  • Fixed random segmentation fault when the simulation heap size is larger than four gigabytes (#935).
  • Fixed an incorrect ambiguous subprogram error when using the 1993 standard and calling a subprogram via a selected name such as ieee.numeric_std."=".

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, @johonkanen, and @ikwzm for sponsoring me!

1.13.1

25 Jul 12:17
r1.13.1
Compare
Choose a tag to compare

This release fixes a number of bugs that were discovered in 1.13.0:

  • Windows installer was missing some standard library files.
  • Fixed a regression where generics and ports could not be referenced in external names (#921).
  • Fixed a crash when an unconstrained port with a default value is associated with open.
  • Fixed a duplicate symbol linker error with some uses of the 'delayed attribute.
  • Fixed a crash when an aliased subprogram is matched by a generic subprogram <> (#924)
  • Fixed a crash when a generic package containing a subprogram is passed to an entity package generic (#925).
  • Fixed an intermittent "failed to suspend thread" fatal error on macOS (#922).
  • Fixed a crash when a shared variable is declared inside a instantiated generic package in 2019 mode (#923).
  • Fixed a crash when a port with unconstrained array-of-record type is associated with a signal that has a static subtype.
  • Fixed incorrect longest static prefix calculation for array slices containing 'length, 'left, 'right and similar attributes (#930).
  • Fixed wrong result when slicing a generic that has an unconstrained array type (#931).

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, and @johonkanen for sponsoring me!

1.13.0

13 Jul 09:35
r1.13.0
Compare
Choose a tag to compare

This is a major new release with a large number of improvements and bug fixes:

  • Type and package generics now work correctly with components and configurations (#883).
  • Fixed a crash when a matching case? alternative contains multiple choices (#890).
  • Implemented VHPI support for package declarations and vhpiPackInsts iterators (#891).
  • Signatures in attribute names are now parsed correctly (#892).
  • Attribute specifications for all are now parsed correctly (#889).
  • Predefined "=" and "/=" operators are no longer declared for file types.
  • Alias of packages now work correctly (#893).
  • Stricter checking of identifiers to reject those with multiple consecutive underscores or trailing underscores (from @typingArtist).
  • Stricter checking for subprograms, deferred constants, and protected types referenced before their corresponding body or full declaration.
  • Decimal physical literals like 8.2 ms are now correctly rounded (to 8200 us in this case) when they are converted to the base unit (#899).
  • External names can now be passed as signal actuals to subprograms (#900).
  • Fixed a crash when branch coverage is enabled and an if-statement contains a return (#903).
  • The NVC_CONCURRENT_JOBS environment variable can be used to scale the number of worker threads NVC creates based on the number of concurrently executing simulations.
  • Fixed a crash when certain attributes such as 'val are used in the target of a signal assignment statement (#908).
  • Signals in packages are now dumped to the FST file (#901).
  • Function interface declarations can now be pure or impure (#917).

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, and @albydnc for sponsoring me!

1.12.2

15 May 21:22
r1.12.2
Compare
Choose a tag to compare

This is a minor release with an important compatibility fix for the latest LLVM version.

  • Fixed a crash when 'transaction is used with a record type.
  • Fixed a compatibility issue with LLVM 18 that could cause an illegal instruction exception when the --jit elaboration option is used (#887).

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, and @ikwzm for sponsoring me!

1.12.1

09 May 19:59
r1.12.1
Compare
Choose a tag to compare

This is a minor bug fix release fixing the following issues:

  • Fixed a crash when a process contains a force or release assignment inside a process (all) statement (#877).
  • Fixed a crash creating a waveform dump with --dump-arrays and the design contains an array-of-array-of-records (#878).
  • Fixed a spurious error when a type declaration from a package generic is used in a port list (#881).
  • Fixed an assertion failure when a procedure declared within a process (all) assigns to a signal (#882).
  • Added a missing check for illegal assignment to external signal name outside a process (#884).
  • Fixed a crash while printing diagnostic information when the simulation delta cycle limit is reached (#885).
  • Generic actuals no longer need to be globally static, which was never required by the LRM (#886).

Special thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, @albydnc, and @ikwzm for sponsoring me!

1.12.0

07 Apr 09:27
r1.12.0
Compare
Choose a tag to compare

This is a major new release with the following features and bug fixes:

  • The --jit elaboration option no longer requires --no-save.
  • Fixed a crash when subtype bounds depend on a package instance generic (#815).
  • Fixed various issues in the implementation of guarded blocks and disconnection specifications (#829).
  • The --std option now controls which VHDL standard the --install command uses to compile third-party libraries (#836).
  • The prefix of an indexed or slice name now must be another name or function call, as required by the LRM (#835).
  • The implementation of conversions in port maps has been reworked and fixes a number of long-standing issues (#843).
  • Added support for inertial keyword in port maps (#843).
  • Fixed a bug where 'last_value could give the wrong result if the signal has multiple sources.
  • Updated to OSVVM 2023.09a and UVVM 2023.09.16 for nvc --install.
  • The --exit-severity= option now also controls which severity level results in a non-zero exit code (#850).
  • Improvements to waveform dumping for signals with record types or types with non-locally-static bounds (#851, #852).
  • The parameter for attributes with dimensions such as 'length(N) may be any integer type when --relaxed is passed (#862).
  • The default standard version was changed to VHDL-2008.
  • The --vhpi-trace option now implies --vhpi-debug.
  • The bounds of array aggregates are now calculated correctly in several corner cases (#873).
  • Added supported for VHPI foreign subprograms.
  • Resolved several other minor issues (#654, #854, #855, #859, #863).

For Windows users there is a new standalone MSI installer which does not depend on any MSYS2 installation.

As always thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, and @cmarqu for sponsoring me!

1.11.3

04 Feb 10:18
r1.11.3
Compare
Choose a tag to compare

This is a minor bug fix release fixing the following issues:

  • Fixed incorrect effective value when a signal has multiple sources due to port-collapsing optimisation (#824).
  • Signals that appear in aggregate choice expressions like (S downto 0 => '0') are now included in the sensitivity list for concurrent statement equivalent processes, and in process (all) (#825).
  • The direction of aggregates with range choices is now calculated correctly in VHDL-2008 mode (#826).
  • Fixed a memory corruption bug when evaluating certain aggregates that contain a range association (#827).
  • Resolved several other minor issues (#837, #839, #840).

As always thank you to @bpadalino, @tmeissner, @Blebowski, @amb5l, @m42uko, @a-panella, @cmarqu, and @ikwzm for sponsoring me!