Commit Graph

8801 Commits

Author SHA1 Message Date
Martin Whitaker c564184bd1 Fix evaluation of out-of-bounds bit/part-select in constant function (issue #531).
(cherry picked from commit 3b1b611a18)
2021-07-30 22:52:02 +01:00
Martin Whitaker b48cdff89e Fix segfault in wildcard port connection with unnamed port (issue #530).
A module port list may contain unnamed entries, e.g.

  module dut(a,);

When performing a wildcard connection, these entries should be skipped,
as there is no name to match.

(cherry picked from commit 061121203b)
2021-07-30 22:51:52 +01:00
Cary R d3b0992a22 Cleanup space 2021-06-20 22:51:41 -07:00
Cary R 5a9ff97df5 Update pform_dump copyright year 2021-06-20 22:40:34 -07:00
Cary R 87d7881365 Correctly dump case items 2021-06-20 22:39:53 -07:00
Cary R afe008ca75 Update fstapi files to latest from GTKWave 2021-06-17 21:41:46 -07:00
Martin Whitaker b45a52a164 Fix .event/or connectivity when inputs have multiple fanout (issue #508).
The old implementation connected all inputs to the same vvp_net_t port,
on the basis that we don't care about the data values or what port they
arrived on. But if one or more of the inputs fans out to multiple nets,
the chains get tangled, which either results in connections being lost
or inappropriate connections being made, depending on the order that
the inputs are linked.

This could have been fixed by using a standard wide functor. But as we
don't care about the data values, that would be unnecessary overhead.
We just need separate vvp_net_t objects to handle the input connectivity
and can keep using a single shared functor.

(cherry picked from commit 1f8876be1c)
2021-05-18 10:08:01 +01:00
Martin Whitaker a676db798a Remove redundant elab_and_eval_lossless().
(cherry picked from commit 711623f682)
2021-05-16 22:38:53 +01:00
Martin Whitaker a14118cd6c Do not force lossless calculation for index expressions (issue #515)
The standard Verilog expression bit length rules must be used.

(cherry picked from commit a040ddc070)
2021-05-16 22:38:44 +01:00
Martin Whitaker 0bd51dbfb8 Record the actual data type when a module port has an enum type.
This fixes assignment compatibility problems (issue #498).

(cherry picked from commit cf0bf4d9aa)
2021-04-28 20:35:57 +01:00
Martin Whitaker ada3067899 Fix waveform dumpers to use vpiInstance when dumping all variables.
(cherry picked from commit a7cb93842e)
2021-04-21 11:42:14 +01:00
Martin Whitaker 69cf8d8901 Add support for vpiInstance as the type code in calls to vpi_iterate().
This is needed for the waveform dumpers now that vpi_iterate(vpiModule, NULL)
has been ficed to only return modules.

This includes recognising vpiProgram and vpiInterface, although the compiler
and vvp currently incorrectly classify them as modules.

(cherry picked from commit d2521878d7)
2021-04-21 11:41:51 +01:00
Martin Whitaker a83a205b06 Properly report errors for out-of-bounds constant indexed part selects.
(replacing assertions)

The IEEE standard either requires out-of-bounds bits to be ignored on
write, returned as 1'bx on read, or requires a compile-time error message.
The latter is easier to implement.

(cherry picked from commit 7d7aa0604c)
2021-04-21 11:41:07 +01:00
Martin Whitaker c0c46dc173 Support indexed part selects that index sub-arrays (issue #497)
(cherry picked from commit 4af830187e)
2021-04-21 11:39:48 +01:00
Cary R cccf36d76f Fix warning and little E full vector up/down selects
(cherry picked from commit 0c12344b27)
2021-04-21 11:39:40 +01:00
Martin Whitaker f64c831688 Fix width calculation for bit/part selects of multi-dimensioned packed arrays.
If we have a bit/part select that is selecting one or more sub-arrays, e.g.

  wire [3:0][3:0] foo;
  assign foo[1] = 4'd1;

we need to take into account the bit width of the sub-array when calculating
the bit width of the select.

(cherry picked from commit 7c024d6cab)
2021-04-21 11:39:01 +01:00
Martin Whitaker adb4be5c75 Don't return packages when iterating over root modules (issue #496)
The code assumed all handles stored in vpip_root_table were modules. This
is true for traditional Verilog, but not so for SystemVerilog.

Whilst here, also add support for iterating over packages.

(cherry picked from commit 3167b2ed24)
2021-04-18 10:53:34 +01:00
Cary R eaea698027 V11: Add support to include macro expanded strings 2021-02-13 16:58:09 -08:00
Cary R 338b9a69ee Update severity tasks to match devel 2021-02-01 00:23:35 -08:00
Cary R b613cf4bf5 Update warning to match devel 2021-01-30 14:29:09 -08:00
Martin Whitaker a89eab47f5 CI: run 'make check' before 'make install'.
This makes sure 'make check' works when iverilog isn't already
installed on the system.
2021-01-28 00:38:45 +00:00
Martin Whitaker 0d9268cdbc Don't exit when ivl_root not found - the user may have supplied it.
When running 'make check' without having an installed copy, find_ivl_root()
will fail on Unix systems that don't provide /proc/self/exe (e.g. MacOS).

(cherry picked from commit 56d2d798ec)
2021-01-28 00:34:11 +00:00
Cary R f806ed5084 Add define to indicate Icarus synthesis 2021-01-14 00:15:58 -08:00
Cary R e396369410 Update copyright data to match patch 2021-01-11 21:39:26 -08:00
Cary R 9771be8ba1 Fix index down part selects to work with multiple dimensions 2021-01-11 21:39:16 -08:00
Martin Whitaker 3d7d2e5502 Explicitly require C99 if using autoconf < 2.70.
(cherry picked from commit 57e87149e8)
2021-01-05 21:02:12 +00:00
Martin Whitaker 8c4dd80944 Remove redundant assignment. 2021-01-03 19:59:09 +00:00
Martin Whitaker b58ca95909 Elaborate package scopes in textual order (fix for issue #461)
When elaborating a subclass, the base class scope needs to be elaborated
before the subclass scope. If the base class and subclass are defined in
different packages, this requires the package scopes to be elaborated in
the correct order. SystemVerilog reqires packages to be defined before
they are used, so that is the order we should elaborate them in.

(cherry picked from commit ba25b55f53)
2021-01-03 19:50:49 +00:00
Martin Whitaker 7866168cf7 Protect against infinite recursion in NetScope::find_class().
(cherry picked from commit 9fa9a9d95a)
2021-01-03 19:50:40 +00:00
Martin Whitaker d56efebbfe Fix build with clang.
(cherry picked from commit aae3a570c2)
2021-01-03 19:50:05 +00:00
Martin Whitaker 48615fb8ac Fix warnings about implicit copy assignments.
(cherry picked from commit 51a171a399)
2021-01-03 19:49:06 +00:00
Martin Whitaker 25154b6482 Avoid possible truncation of path strings when writing config file.
(cherry picked from commit 2e4bf05e21)
2021-01-03 19:47:29 +00:00
Martin Whitaker d9484b4f75 Fix configure scripts to work with autoconf 2.70.
Numerous deprecated features have now become obsolete. Mostly done by
running autoupdate, but that left a few fixes to be done manually.

This includes the latest version of AX_PROG_CC_FOR_BUILD from
https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html

(cherry picked from commit 4b3e1099e5)
2021-01-03 19:08:32 +00:00
Stephen Williams 859e3e39be
Merge pull request #458 from steveicarus/steveicarus/v11-real-output-port
output ports of type real are variables, not wires.
2020-12-29 22:45:10 -08:00
Stephen Williams c690558cd6 output ports of type real are variables, not wires. 2020-12-29 22:22:20 -08:00
Cary R 838349590e Remove R-value class check until class variables are found correctly 2020-12-28 04:55:50 -08:00
Cary R 5aac481d9a Report operators that cannot be used with null/class vars 2020-12-27 19:06:01 -08:00
Cary R 363f45cd7d Handle a void function call in the delay type calculation 2020-12-27 12:54:39 -08:00
Cary R b4d8108409 Check if no argument task calls are allowed in the current context 2020-12-27 12:52:33 -08:00
Martin Whitaker c8aa7bf873 Fix search for class imported from another package (issue #437).
(cherry picked from commit a019994513)
2020-12-23 19:17:59 +00:00
Cary R 864c09d034 Add support for calling queue/darray functions as tasks 2020-12-20 16:50:44 -08:00
Cary R b62c37ea58 Update to the latest GTKWave files 2020-12-20 12:52:05 -08:00
Martin Whitaker ebad47937e Support macro text continuation after single line comment (issue #435)
(cherry picked from commit fe79f130b5)
2020-12-20 13:16:02 +00:00
Martin Whitaker 45c52d5291 Fix CI test.sh to return an exit code of 1 if any step fails.
(cherry picked from commit a1dd6bb056)
2020-12-14 11:37:08 +00:00
Martin Whitaker 8d8cb16b72 tgt-vlog95: fix assertion failure when function calls a void function
(cherry picked from commit f4d22af4bd)
2020-12-13 22:59:26 +00:00
Martin Whitaker 04b0a1f80d Add extra debug output.
(cherry picked from commit fbd87b4fee)
2020-12-13 22:59:01 +00:00
Martin Whitaker 1fda3ff23e Fix assertion failure when elaborating a void function call (issue #318)
Depending on the order of elaboration, a function may not have been
elaborated before a call to it is elaborated, so don't assert that it
has been. As an optimisation, try to elaborate it on the fly, so we can
elide the call if the function body is empty.

(cherry picked from commit 393236a9a8)
2020-12-13 22:58:48 +00:00
Martin Whitaker bfac44a630 Fix assertion failure for function body with single null statement (GH issue #411)
(cherry picked from commit 94b503fc64)
2020-12-10 17:42:10 +00:00
Martin Whitaker 27986477fb Further fix to CI test script. 2020-12-05 22:55:23 +00:00
Martin Whitaker 0b991f5a28 Fix CI test script. 2020-12-05 22:01:38 +00:00