]> git.nickg.me.uk Git - nvc.git/log
nvc.git
9 months agoBump version to 1.10.1 r1.10.1
Nick Gasson [Fri, 28 Jul 2023 20:23:02 +0000 (21:23 +0100)]
Bump version to 1.10.1

9 months agoAvoid name-based lookup for type declaration design unit in VHPI
Nick Gasson [Fri, 28 Jul 2023 08:26:12 +0000 (09:26 +0100)]
Avoid name-based lookup for type declaration design unit in VHPI

Fixes #744

9 months agoAdd PoC to GitHub Actions tests
Nick Gasson [Wed, 26 Jul 2023 21:07:06 +0000 (22:07 +0100)]
Add PoC to GitHub Actions tests

9 months agoFix data corruption in overloaded protected procedure call
Nick Gasson [Wed, 26 Jul 2023 20:37:00 +0000 (21:37 +0100)]
Fix data corruption in overloaded protected procedure call

9 months agoEnsure JIT is shut down before exiting
Nick Gasson [Wed, 26 Jul 2023 18:25:02 +0000 (19:25 +0100)]
Ensure JIT is shut down before exiting

9 months agoFix error with minimum/maximum predefined functions on array of physical
Nick Gasson [Wed, 26 Jul 2023 18:25:02 +0000 (19:25 +0100)]
Fix error with minimum/maximum predefined functions on array of physical

9 months agovhpi: Downgrade unimplemented iterators to error
Sean Anderson [Sun, 2 Jul 2023 18:48:56 +0000 (14:48 -0400)]
vhpi: Downgrade unimplemented iterators to error

We have implemented most of the critical iterator types, so the
remaining iterators don't necessarily represent a fatal bug in the
program. Just produce an error and keep going. This allows partial
functionality for VHPI programs which try these iterators.

9 months agovhpi: Add support for argv
Sean Anderson [Sun, 2 Jul 2023 18:25:45 +0000 (14:25 -0400)]
vhpi: Add support for argv

Add support for reading the argvs, allowing tools to parse out plusargs.

9 months agoFix crash simplifying locally static expression in package
Nick Gasson [Tue, 25 Jul 2023 19:01:42 +0000 (20:01 +0100)]
Fix crash simplifying locally static expression in package

Fixes #742

9 months agoChange format of to_string for time to match other implementations
Nick Gasson [Tue, 18 Jul 2023 19:11:50 +0000 (20:11 +0100)]
Change format of to_string for time to match other implementations

9 months agoHandle decimal string literals more than 64-bits wide
Nick Gasson [Tue, 18 Jul 2023 17:33:28 +0000 (18:33 +0100)]
Handle decimal string literals more than 64-bits wide

Fixes #731

9 months agoFix wrong 'EVENT result on delta cycle
Nick Gasson [Sat, 15 Jul 2023 08:42:25 +0000 (09:42 +0100)]
Fix wrong 'EVENT result on delta cycle

9 months agoFix incorrect sensitivity list with constant indexed name
Nick Gasson [Fri, 14 Jul 2023 20:22:54 +0000 (21:22 +0100)]
Fix incorrect sensitivity list with constant indexed name

9 months agoInclude Verilog test files in distribution
Nick Gasson [Fri, 14 Jul 2023 10:59:02 +0000 (11:59 +0100)]
Include Verilog test files in distribution

9 months agoUpdate for 1.10 release r1.10.0
Nick Gasson [Fri, 14 Jul 2023 10:33:55 +0000 (11:33 +0100)]
Update for 1.10 release

9 months agoWork around issues with dlclose on Alpine/musl
Nick Gasson [Fri, 14 Jul 2023 10:24:17 +0000 (11:24 +0100)]
Work around issues with dlclose on Alpine/musl

9 months agoUpdate Quartus installation script for 22.1
Nick Gasson [Fri, 14 Jul 2023 09:40:35 +0000 (10:40 +0100)]
Update Quartus installation script for 22.1

9 months agoRemove the SYNOPSYS.ATTRIBUTES package
Nick Gasson [Wed, 12 Jul 2023 21:55:12 +0000 (22:55 +0100)]
Remove the SYNOPSYS.ATTRIBUTES package

9 months agoUpdate builds.sr.ht configs
Nick Gasson [Wed, 12 Jul 2023 21:45:44 +0000 (22:45 +0100)]
Update builds.sr.ht configs

9 months agoAllow capturing all output from TCL shell
Nick Gasson [Tue, 11 Jul 2023 18:58:15 +0000 (19:58 +0100)]
Allow capturing all output from TCL shell

9 months agoAdd test case for PSL SEREs
Nick Gasson [Wed, 12 Jul 2023 15:12:33 +0000 (16:12 +0100)]
Add test case for PSL SEREs

9 months agoNamed associations in aggregate target. Fixes #712
Nick Gasson [Tue, 11 Jul 2023 18:20:45 +0000 (19:20 +0100)]
Named associations in aggregate target. Fixes #712

9 months agoFix crash when "add wave" called multiple times
Nick Gasson [Tue, 11 Jul 2023 18:20:45 +0000 (19:20 +0100)]
Fix crash when "add wave" called multiple times

9 months agoFix compile error in workqbench
Nick Gasson [Tue, 11 Jul 2023 18:20:45 +0000 (19:20 +0100)]
Fix compile error in workqbench

9 months agoAdd mechanism to redirect TCL stdout and stderr
Nick Gasson [Tue, 11 Jul 2023 18:20:45 +0000 (19:20 +0100)]
Add mechanism to redirect TCL stdout and stderr

9 months agoFix uninitialised variable warning
Nick Gasson [Mon, 10 Jul 2023 17:02:21 +0000 (18:02 +0100)]
Fix uninitialised variable warning

9 months agoHack to allow elaborated unit in unit_registry_get. Fixes #736
Nick Gasson [Sat, 8 Jul 2023 20:15:54 +0000 (21:15 +0100)]
Hack to allow elaborated unit in unit_registry_get. Fixes #736

9 months agoAdd record subtype mirrors
Nick Gasson [Sat, 8 Jul 2023 10:53:35 +0000 (11:53 +0100)]
Add record subtype mirrors

9 months agoAdd test for missing protected type method
Nick Gasson [Sat, 8 Jul 2023 10:10:27 +0000 (11:10 +0100)]
Add test for missing protected type method

9 months agoAdd shell event handler
Nick Gasson [Sun, 9 Jul 2023 08:05:28 +0000 (09:05 +0100)]
Add shell event handler

9 months agoCoverage report enhancements (#738)
Blebowski [Sun, 9 Jul 2023 06:53:46 +0000 (08:53 +0200)]
Coverage report enhancements (#738)

* src/cover: Show LHS/RHS arrows in the HTML report.

* src/cover: Add function name for expression coverage. Split loc and tree for emitted cover tags to distinguish branch type and branch condition location. Add titles and print also multi-line code samples for coverage tags.

---------

Co-authored-by: Ondrej Ille <ondrej.ille@tropicsqaure.com>
9 months agoImplement GET methods for array value mirrors
Nick Gasson [Sat, 8 Jul 2023 08:32:28 +0000 (09:32 +0100)]
Implement GET methods for array value mirrors

9 months agoFix incorrect parsing of conditional return statement
Nick Gasson [Sat, 8 Jul 2023 07:35:52 +0000 (08:35 +0100)]
Fix incorrect parsing of conditional return statement

9 months agoAdd enumeration value/subtype mirrors
Nick Gasson [Fri, 7 Jul 2023 21:16:36 +0000 (22:16 +0100)]
Add enumeration value/subtype mirrors

9 months agoCover HTML report enhancements (#735)
Blebowski [Fri, 7 Jul 2023 17:19:36 +0000 (19:19 +0200)]
Cover HTML report enhancements (#735)

* src/cover: Format printed HTML nicely for debug. Avoid printing past text buffer. Dont print newlines in code samples.

* src: Reduce size of generated coverage report, add CSS classes for common properties.

9 months agoFix unused variable warning in list_get macro
Nick Gasson [Fri, 7 Jul 2023 16:43:11 +0000 (17:43 +0100)]
Fix unused variable warning in list_get macro

9 months agoHide homographs within a declaration. Issue #733
Nick Gasson [Fri, 7 Jul 2023 08:05:27 +0000 (09:05 +0100)]
Hide homographs within a declaration. Issue #733

9 months agoRemove unused internal warn-on-hidden option
Nick Gasson [Fri, 7 Jul 2023 07:28:39 +0000 (08:28 +0100)]
Remove unused internal warn-on-hidden option

9 months agoMissing index check for null array. Fixes #734
Nick Gasson [Thu, 6 Jul 2023 20:41:04 +0000 (21:41 +0100)]
Missing index check for null array. Fixes #734

9 months agoFix crash folding IEEE matching operators
Nick Gasson [Thu, 6 Jul 2023 20:19:10 +0000 (21:19 +0100)]
Fix crash folding IEEE matching operators

9 months agoParsing for VHDL-2019 improved type generics
Nick Gasson [Thu, 6 Jul 2023 18:29:55 +0000 (19:29 +0100)]
Parsing for VHDL-2019 improved type generics

10 months agoMore attributes for array subtype mirrors
Nick Gasson [Wed, 5 Jul 2023 18:54:48 +0000 (19:54 +0100)]
More attributes for array subtype mirrors

10 months agoGet rid of global vcode unit registry
Nick Gasson [Fri, 30 Jun 2023 08:18:00 +0000 (09:18 +0100)]
Get rid of global vcode unit registry

10 months agoAdd floating value and subtype mirrors
Nick Gasson [Sun, 2 Jul 2023 20:31:57 +0000 (21:31 +0100)]
Add floating value and subtype mirrors

10 months agoInteger subtype mirrors and subtype reflection
Nick Gasson [Sat, 1 Jul 2023 21:25:40 +0000 (22:25 +0100)]
Integer subtype mirrors and subtype reflection

10 months agoUse cover scope to store hierarchy information
Nick Gasson [Sat, 1 Jul 2023 11:41:08 +0000 (12:41 +0100)]
Use cover scope to store hierarchy information

10 months agoSimplify interface between lower and coverage
Nick Gasson [Sat, 1 Jul 2023 09:23:53 +0000 (10:23 +0100)]
Simplify interface between lower and coverage

10 months agoStore coverage scopes directly in database
Nick Gasson [Sat, 1 Jul 2023 08:36:55 +0000 (09:36 +0100)]
Store coverage scopes directly in database

10 months agoUse a single namespace for cover tags
Nick Gasson [Fri, 30 Jun 2023 16:31:17 +0000 (17:31 +0100)]
Use a single namespace for cover tags

10 months agoFix crash getting expression coverage with function bodies
Nick Gasson [Fri, 30 Jun 2023 16:15:41 +0000 (17:15 +0100)]
Fix crash getting expression coverage with function bodies

10 months agoInferring constraints from initial values for signals and variables
Nick Gasson [Thu, 29 Jun 2023 21:13:54 +0000 (22:13 +0100)]
Inferring constraints from initial values for signals and variables

10 months agoTidy up library makefiles
Nick Gasson [Wed, 28 Jun 2023 21:17:30 +0000 (22:17 +0100)]
Tidy up library makefiles

10 months agoMove matching relational operators to ieee_support package
Nick Gasson [Wed, 28 Jun 2023 20:21:54 +0000 (21:21 +0100)]
Move matching relational operators to ieee_support package

10 months agoRestore NVC.IEEE_SUPPORT package
Nick Gasson [Wed, 28 Jun 2023 19:43:08 +0000 (20:43 +0100)]
Restore NVC.IEEE_SUPPORT package

This reverts commit f956783b22fd92adfe20e1e012d14fe201b9e6fe.

10 months agoFix several minor memory leaks
Nick Gasson [Wed, 28 Jun 2023 19:37:50 +0000 (20:37 +0100)]
Fix several minor memory leaks

10 months agoFix memory leak when parsing conditional analysis tokens
Nick Gasson [Wed, 28 Jun 2023 09:13:46 +0000 (10:13 +0100)]
Fix memory leak when parsing conditional analysis tokens

10 months agoAllow 'PATH_NAME, etc. on instance labels. Fixes #730
Nick Gasson [Tue, 27 Jun 2023 18:28:37 +0000 (19:28 +0100)]
Allow 'PATH_NAME, etc. on instance labels. Fixes #730

10 months agoAdd empty array value/subtype mirrors
Nick Gasson [Sun, 25 Jun 2023 16:50:42 +0000 (17:50 +0100)]
Add empty array value/subtype mirrors

10 months agoAdd plumbing for subtype mirrors
Nick Gasson [Sun, 25 Jun 2023 08:49:33 +0000 (09:49 +0100)]
Add plumbing for subtype mirrors

10 months agoFix crashes calling methods on result of 'REFLECT
Nick Gasson [Sun, 25 Jun 2023 08:12:06 +0000 (09:12 +0100)]
Fix crashes calling methods on result of 'REFLECT

10 months agoInitial support for reflection
Nick Gasson [Sat, 24 Jun 2023 22:36:34 +0000 (23:36 +0100)]
Initial support for reflection

10 months agoCode generation for accesses to protected types
Nick Gasson [Sat, 24 Jun 2023 19:43:03 +0000 (20:43 +0100)]
Code generation for accesses to protected types

10 months agoChecking for VHDL-2019 pointers-to-protected-types
Nick Gasson [Sat, 24 Jun 2023 17:52:54 +0000 (18:52 +0100)]
Checking for VHDL-2019 pointers-to-protected-types

10 months agoMissing checks that access cannot designate file/protected type
Nick Gasson [Sat, 24 Jun 2023 16:31:12 +0000 (17:31 +0100)]
Missing checks that access cannot designate file/protected type

10 months agoParsing for 'REFLECT attribute
Nick Gasson [Sat, 24 Jun 2023 16:09:33 +0000 (17:09 +0100)]
Parsing for 'REFLECT attribute

10 months agoStub out VHDL-2019 STD.REFLECTION body
Nick Gasson [Sat, 24 Jun 2023 12:52:59 +0000 (13:52 +0100)]
Stub out VHDL-2019 STD.REFLECTION body

10 months agoPartial implementation of vhpiCaseNameP for declarations. Issue #723
Nick Gasson [Sat, 24 Jun 2023 08:34:56 +0000 (09:34 +0100)]
Partial implementation of vhpiCaseNameP for declarations. Issue #723

10 months agoImport strndup from gnulib
Nick Gasson [Sat, 24 Jun 2023 09:23:13 +0000 (10:23 +0100)]
Import strndup from gnulib

10 months agoSpeed up finding source line in diag_get_source
Nick Gasson [Sat, 24 Jun 2023 07:53:00 +0000 (08:53 +0100)]
Speed up finding source line in diag_get_source

10 months agoAdd a regression test for issue #653
Nick Gasson [Fri, 23 Jun 2023 17:08:26 +0000 (18:08 +0100)]
Add a regression test for issue #653

10 months agoImprove test coverage for dumper
Nick Gasson [Thu, 22 Jun 2023 21:43:06 +0000 (22:43 +0100)]
Improve test coverage for dumper

10 months agoRemove concurrent modification warning in debug mode
Nick Gasson [Thu, 22 Jun 2023 21:01:17 +0000 (22:01 +0100)]
Remove concurrent modification warning in debug mode

10 months agovhpi: Fix error message in vhpi_get_value
Sean Anderson [Thu, 22 Jun 2023 04:53:36 +0000 (00:53 -0400)]
vhpi: Fix error message in vhpi_get_value

This error message unconditionally references decl, but sometimes all we
have is pn. Fix it.

Fixes: cdddab99 ("vhpi: Add get/set support for selected names")
10 months agovhpi: Add support for getting record types by name
Sean Anderson [Thu, 22 Jun 2023 01:10:26 +0000 (21:10 -0400)]
vhpi: Add support for getting record types by name

When cocotb tries to access an object with a name like `VHPI5.O.F`, it
doesn't know whether O is a signal or a record. This ambiguity could be
resolved by trying to look up the name like `:VHPI5:O.F` or
`:VHPI5:O:F`, but cocotb can't determine which to use ahead of time.
This is a limitation of cocotb, but probably not one which will ever get
resolved.

Add support for looking up record types by name, primarily to allow
cocotb to access them.

10 months agovhpi: Add get/set support for selected names
Sean Anderson [Thu, 22 Jun 2023 01:00:43 +0000 (21:00 -0400)]
vhpi: Add get/set support for selected names

Inhomogenous types are create scopes instead of signals. Additionally,
inhomogenous arrays have nested scopes for their elements. Add the
necessary machinery to determine the scope for a name/objDecl, and look
up the signal at the final level.

In the style of vhpi7, assign a value to each element of the test
records, and try to change them. To avoid needing to repeat the same
code while recursing through records, we just print out the values and
check them against the golden output. We cheat a bit for
multidimensional arrays because array properties are checked properly in
vhpi7.

10 months agovhpi: Add support for selected names
Sean Anderson [Thu, 22 Jun 2023 00:42:18 +0000 (20:42 -0400)]
vhpi: Add support for selected names

The other major type of prefixed names is selected names. Add support
for them. In many ways they are simpler than indexed names, since we
don't have to keep track of multiple indices. Getting/setting is not
supported, but it will be addressed in the next commit.

10 months agovhpi: Support NumFields
Sean Anderson [Wed, 21 Jun 2023 23:40:38 +0000 (19:40 -0400)]
vhpi: Support NumFields

Add support for the NumFields property of record types.

10 months agovhpi: Support record elements
Sean Anderson [Wed, 21 Jun 2023 23:32:14 +0000 (19:32 -0400)]
vhpi: Support record elements

Add support for record elements. Convert the vhpi5 test to gold to make
it easier to check recursive structures, and change the record
definition to something a little more interesting.

10 months agovhpi: Add support for vhpiPrefixP
Sean Anderson [Wed, 21 Jun 2023 23:45:24 +0000 (19:45 -0400)]
vhpi: Add support for vhpiPrefixP

Back when prefixnames got added I forgot to add support for the prefix
property itself. Add it now.

10 months agovhpi: Pre-calculate names' offsets
Sean Anderson [Sun, 18 Jun 2023 21:29:01 +0000 (17:29 -0400)]
vhpi: Pre-calculate names' offsets

We have all the information necessary to determine the offset of indexed
names when creating them. To simplify the process of determining the
offset by pre-calculating them.

10 months agoFix another case of index-of-function-call parsed incorrectly
Nick Gasson [Wed, 21 Jun 2023 19:20:07 +0000 (20:20 +0100)]
Fix another case of index-of-function-call parsed incorrectly

Issue #727

10 months agoFix remaining instances where VHDL integers are passed as int32_t
Nick Gasson [Tue, 20 Jun 2023 19:38:46 +0000 (20:38 +0100)]
Fix remaining instances where VHDL integers are passed as int32_t

10 months agoChange calling convention for FILE_OPEN to handle different integer sizes
Nick Gasson [Tue, 20 Jun 2023 19:37:33 +0000 (20:37 +0100)]
Change calling convention for FILE_OPEN to handle different integer sizes

Fixes #724

10 months agoFix crash indexing protected function call that returns an array
Nick Gasson [Tue, 20 Jun 2023 19:14:28 +0000 (20:14 +0100)]
Fix crash indexing protected function call that returns an array

E.g. P.F(X) where F takes no argument and returns an array.

Issue #726

10 months agoAdd regression test for issue #725
Nick Gasson [Tue, 20 Jun 2023 19:05:44 +0000 (20:05 +0100)]
Add regression test for issue #725

10 months agoEnsure diagnostic messages are correctly ordered wrt. textio output
Nick Gasson [Tue, 20 Jun 2023 19:02:12 +0000 (20:02 +0100)]
Ensure diagnostic messages are correctly ordered wrt. textio output

10 months agoRemove pointless directory search in lib_get_aux
Nick Gasson [Tue, 20 Jun 2023 18:53:08 +0000 (19:53 +0100)]
Remove pointless directory search in lib_get_aux

10 months agoRevert to using timestamps to determine most recently analysed
Nick Gasson [Tue, 20 Jun 2023 18:49:54 +0000 (19:49 +0100)]
Revert to using timestamps to determine most recently analysed

10 months agoRemove separate PARALLEL_MAKEFLAGS variable
Nick Gasson [Mon, 19 Jun 2023 07:12:10 +0000 (08:12 +0100)]
Remove separate PARALLEL_MAKEFLAGS variable

10 months agoFix build warning on Windows
Nick Gasson [Sun, 18 Jun 2023 18:14:41 +0000 (19:14 +0100)]
Fix build warning on Windows

10 months agoFix command line parsing crash. Issue #722
Nick Gasson [Sun, 18 Jun 2023 18:11:21 +0000 (19:11 +0100)]
Fix command line parsing crash. Issue #722

10 months agoRemove dead code in lower_wrap_element. Fixes #721
Nick Gasson [Sun, 18 Jun 2023 17:50:08 +0000 (18:50 +0100)]
Remove dead code in lower_wrap_element. Fixes #721

10 months agoUse nanosecond-resolution timestamps consistently on all platforms
Nick Gasson [Sun, 18 Jun 2023 17:36:27 +0000 (18:36 +0100)]
Use nanosecond-resolution timestamps consistently on all platforms

10 months agoFix OSVMM workflow and schedule weekly
Nick Gasson [Sun, 18 Jun 2023 13:38:35 +0000 (14:38 +0100)]
Fix OSVMM workflow and schedule weekly

10 months agosrc: Use pedantic_diag to throw error that can be demoted to warning.
Ondrej Ille [Sun, 18 Jun 2023 17:12:15 +0000 (19:12 +0200)]
src: Use pedantic_diag to throw error that can be demoted to warning.

10 months agosrc: Turn non-explicit class or mode match to warning with FRELAXED.
Ondrej Ille [Sun, 18 Jun 2023 16:17:06 +0000 (18:17 +0200)]
src: Turn non-explicit class or mode match to warning with FRELAXED.

10 months agotest: Add test for issue660.
Ondrej Ille [Sun, 18 Jun 2023 16:10:44 +0000 (18:10 +0200)]
test: Add test for issue660.

10 months agosrc: strict subprogram specification and body matching.
Ondrej Ille [Sun, 18 Jun 2023 15:24:53 +0000 (17:24 +0200)]
src: strict subprogram specification and body matching.

10 months agovhpi: Support EndOfTimeStep callbacks
Sean Anderson [Sat, 17 Jun 2023 20:14:14 +0000 (16:14 -0400)]
vhpi: Support EndOfTimeStep callbacks

Add support for EndOfTimeStep callbacks, which are the final callbacks
to occur in a timestep.

10 months agovhpi: Support EnumLiterals
Sean Anderson [Sun, 11 Jun 2023 19:01:05 +0000 (15:01 -0400)]
vhpi: Support EnumLiterals

Add support for the various *Literals properties of enums. Although
`EnumLiteral`s are generalizations of both `expr`s and `decl`s, we only
really support single-inheritance at the moment. Make c_enumLiteral a
subtype of c_abstractDecl, since there are more properties in `decl`s
than in `expr`s. This should be the only exception in this area we need
to make, since other literals aren't generalizations of decl.