Commit Graph

9890 Commits

Author SHA1 Message Date
Stephen Williams 19f2cc7fcb
Merge pull request #1051 from steveicarus/steveicarus/remove-mingw32-from-ci
Remove MINGW32 from regression test scripts
2023-12-17 20:10:46 -08:00
Stephen Williams 68841d4670 Remove MINGW32 from regression test scripts
The MINGW32 test is failing randomly. It is not something that we
typically need anyhow, so give up and remove it.
2023-12-17 19:52:01 -08:00
Stephen Williams c6df820ff9
Merge pull request #1043 from steveicarus/steveicarus/remove-regress-vams
vams: Remove the regress-vams test
2023-12-10 20:40:34 -08:00
Stephen Williams d39e8cfc3c
Merge pull request #1042 from steveicarus/steveicarus/remove-regress-v10
ivtest: Remove the regress-v10 test list
2023-12-10 20:09:11 -08:00
Stephen Williams 3c65f5d750 vams: Remove the regress-vams test
Use the more sophisticated python based tests to run these tests, and
remove the verilog-vams list.
2023-12-10 20:06:46 -08:00
Stephen Williams 0be07afab3 ivtest: Remove the regress-v10 test list
This list is not needed with the new scheme. This means that some gold
files that are v10 specific are removed, as well as the list itself.
2023-12-10 19:05:12 -08:00
Cary R 987b7d1dc0 fread() support integral variables not just registers 2023-12-09 14:30:25 -08:00
Cary R 5d561f3ef1 Fix time issue in FreeBSD (pow() bug) 2023-12-09 12:51:13 -08:00
Stephen Williams 58dcf39db3
Merge pull request #1017 from steveicarus/steveicarus/ivtest-test-conversion-20231029
ivtest: reformat some regression tests
2023-11-25 17:43:12 -08:00
Stephen Williams bed166915f ivtest: reformat some regression tests
This empties out the revress-ivl2.list

This includes the tests:
* always4A
* always4B
* br_gh383a
* br_gh383b
* br_gh383c
* br_gh383d
* ca_time_real
* delayed_sfunc
* localparam_type
* parameter_type
* pr1701890
* pr1864110a
* pr1864110b
2023-11-17 15:00:25 -08:00
Cary R c9548f0332
Merge pull request #1034 from smunaut/fix-for-structs
Couple of fixes for struct supports
2023-11-16 03:37:18 -08:00
Sylvain Munaut 483de9a75b ivtest: Add test for partselect on enum inside pack struct
See issue #1033

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2023-11-16 09:26:04 +01:00
Sylvain Munaut e0b255f34f elab_expr: Support part select for enums inside of structs
Fixes #1033

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2023-11-16 09:26:04 +01:00
Sylvain Munaut d564cecfb9 ivtest: Add test for $left / $right on structure field
See issue #1032

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2023-11-16 09:26:01 +01:00
Sylvain Munaut 8ca387d6de eval_tree: Properly support struct fields in get_array_info
Fixes #1032

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2023-11-16 09:26:01 +01:00
Sylvain Munaut 37eba70ca4 eval_tree: Indent fixes
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2023-11-16 09:26:01 +01:00
Cary R 28987277ad
Merge pull request #1023 from marlonjames/fix-escaped-vpi_handle_by_name
Fix vpi_handle_by_name() for toplevel modules with escaped identifiers
2023-11-06 18:43:02 -08:00
Marlon James d4aef1e6d8 Fix vpi_handle_by_name() handling of escaped identifiers when finding a toplevel module
find_scope() requires the hierarchical path to use escaped identifiers;
without the leading '\' and trailing ' ', if there are any '.' characters,
the path will be broken up at the wrong point(s).
2023-11-06 15:48:31 -08:00
Marlon James 22b68ad24d ivtest/vpi/br_gh317: Update test for missing case of toplevel module with escaped identifier containing '.' 2023-11-06 15:48:07 -08:00
Cary R b1006b3848
Merge pull request #1020 from DeflateAwning/install-update-1
Update INSTALL to refer to better instructions for this project
2023-11-06 14:14:36 -08:00
DeflateAwning dc44a192e2 Update Hello World example 2023-11-03 15:09:14 -06:00
DeflateAwning 2cd94d4bcf Improve README code snippet formatting 2023-11-03 15:06:36 -06:00
DeflateAwning 73d8297c38 Update INSTALL to refer to better instructions for this project
* Update instructions to match README
* Update instructions to refer to README for simpler instructions
2023-11-03 14:59:42 -06:00
DeflateAwning b47b57e52f Fix code snippet formatting in INSTALL 2023-11-03 14:53:58 -06:00
Cary R 77d7f0b8f7
Merge pull request #1011 from DeflateAwning/readme-1
Update project URL, other tiny README fixes
2023-10-24 08:05:18 -07:00
DeflateAwning 95217830b4 Update URL http://iverilog.icarus.com/ -> https://steveicarus.github.io/iverilog/ 2023-10-15 19:29:40 -06:00
DeflateAwning 950d72c77d Tiny README fixes 2023-10-15 19:29:04 -06:00
Cary R a9ef00676f
Merge pull request #1008 from larsclausen/2state-net-array
vvp: Add parser rule for unsigned 2-state net arrays
2023-10-15 10:49:47 -07:00
Lars-Peter Clausen b7ef0b5d88 Add regression test for continuous assignment to 2-state arrays
Check that continuous assignments to both signed and unsigned 2-state
arrays are supported.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-10-15 10:07:24 -07:00
Lars-Peter Clausen 52a8b31ac3 vvp: Add parser rule for unsigned 2-state net arrays
vvp is missing a parser rule for unsigned 2-state net arrays. E.g.

```
  bit a[0:1];
  assign a[0] = 1'b0;
```

will synthesize fine, but when running it with vvp cause a syntax error.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-10-15 10:03:10 -07:00
Cary R c498d53d0d
Merge pull request #1006 from larsclausen/queue-darray-2state-oob
Return '0 for out-of-bounds access on 2-state queues and dynamic arrays.
2023-10-10 04:36:48 -07:00
Lars-Peter Clausen 3e58507e87 Enable regression tests for out-of-bounds on 2-state queues and dynamic arrays
Now that out-of-bounds access on 2-state queues and dynamic arrays yields
the right value move the tests from the "Not Implemented" list to the list
of tests that get run.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-10-01 09:09:31 -07:00
Lars-Peter Clausen 85bf2d11fa tgt-vvp: Cast reads from 2-state dynamic arrays/queues
vvp does not track whether the values stored in a dynamic array or queue
are 2-state or 4-state. Internally the data is always stored as 4-state.

To make sure that the read value is actually 2-state do a cast for 2-state
reads.

E.g. performing an out-of-bounds access on a 2-state dynamic array or queue
will yield a undefined value.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-10-01 09:09:31 -07:00
Lars-Peter Clausen 560800489d tests: sv_queue_vec: Change base type to 4-state
The sv_queue_vec test uses queues of 2-state vectors, but also checks if
certain operations on the queue yield 'X.

2-state queues should never yield 'X and the test only passes because of a
bug. In preparation for fixing the bug change the test to use a 4-state
base type instead.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-10-01 09:09:31 -07:00
Cary R d22bb3d250
Merge pull request #1003 from larsclausen/2state-array-init-prop
vvp: Fix initial value propagation for 2-state non-automatic arrays
2023-09-25 01:02:41 -07:00
Lars-Peter Clausen 6e81891de0 Add regression test for 2-state array initial value propagation
Check that the initial value that gets propagated for 2-state arrays is '0.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-09-23 06:19:09 -07:00
Lars-Peter Clausen 0eb01fff1e vvp: Fix initial value propagation for 2-state non-automatic arrays
For 2-state non-automatic arrays currently real 0.0 value is propagated as
the initial value. This will cause an assert at the downstream receivers
which expect a vector.

Make sure that the vector value 0 is propagated instead for 2-state
vectors.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-09-23 05:40:13 -07:00
Cary R 778b6d937e
Merge pull request #998 from esola-thomas/esola-thomas/Enhance_README
README file enhancements
2023-09-11 21:03:17 -07:00
Ernesto Sola-Thomas 93f916a67e Add table of contents and drop downs 2023-09-11 20:49:24 -04:00
Cary R 36a8a99177
Merge pull request #997 from larsclausen/netrange-cleanup
Small cleanups around netrange_t
2023-09-10 22:13:04 -07:00
Lars-Peter Clausen 484846ab3e NetNet: Pass unpacked dimensions as `std::vector` instead of `std::list`
Most places in the code use a std::vector for array dimensions.
The only exception is the constructor of NetNet, which uses
a `std::list` to pass the unpacked dimensions. But to store the
unpacked dimensions it also uses a `std::vector`.

There does not seem to be a good reason why the constructor
has to take a `std::list`, so switch it also to `std::vector`.

This allows to simplify the code and remove some special handling
for `std::list<netrange_t>`.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-09-09 05:51:17 -07:00
Lars-Peter Clausen 763907b0e5 Add a typedef for `std::vector<netrange_t>`
`std::vector<netrange_t>` is used for signal array dimensions. As such it is
used in quite a few places.

Add a typedef that can be used as a shorthand to refer to it. This helps to
keep lines where this is used from growing to overly long.

The new type is called `netranges_t`.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-09-09 05:50:40 -07:00
Lars-Peter Clausen d6d95c7c49 Use non-array `NetNet` constructor where appropriate
There are two `NetNet` constructors, one for arrays and one for non-arrays.
There are a few places where the array constructor is used for non-arrays,
but with an empty unpacked dimensions list. Switch this over to using the
non-array constructor.

This slightly reduces boiler-plate code.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-09-09 05:50:25 -07:00
Lars-Peter Clausen bdbe74252c Use `netrange_width()` helper where appropriate
The `netrange_width()` helper function computes the total width of a set of
ranges. There are a few places where this is currently open-coded and
`netrange_width()` can be used. This removes a bit of duplicated code.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-09-09 05:50:25 -07:00
Lars-Peter Clausen 4269388878 `netrange_width()`: Add a base_width parameter
There are sometimes cases where calculating the total width of a
`vector<netrange_t>` has to take into account an existing base width. E.g.
when chaining multiple `vector<netrange_t>`. Add support to the
`netrange_width()` function to be able to handle this case.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-09-09 05:49:46 -07:00
Lars-Peter Clausen 4b66d40d62 Remove unused `calculate_count()` function
The templatized version of `calculate_count()` that is used on a data type
is not used. Remove it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2023-09-09 05:49:23 -07:00
Cary R f50cc35d2f Fix space issues 2023-09-04 14:15:11 -07:00
Cary R 807058e3a4 Add check for pragma name in ivlpp 2023-09-04 14:00:41 -07:00
Cary R 76a65d5958 Add error message for bad line directives to ivlpp 2023-09-04 14:00:41 -07:00
Cary R 7ce068fbdb
Merge pull request #994 from mole99/sdf-interconnect-vector
SDF: Interconnection delays for input/output vectors
2023-09-04 07:02:28 -07:00