Wilson Snyder
13ddd0bc1c
Fix error on unsupported recursive functions ( #2957 ).
2021-06-13 12:38:31 -04:00
Wilson Snyder
31121141db
Convert pipe filter example to python
2021-06-13 12:03:53 -04:00
Wilson Snyder
9d3e800311
Commentary
2021-06-13 12:03:53 -04:00
Geza Lore
7280307a39
Implement DPI import/export as loose functions
2021-06-13 15:06:28 +01:00
Geza Lore
c207e98306
Implement a distinct constant pool ( #3013 )
...
What previously used to be per module static constants created in
V3Table and V3Prelim are now merged globally within the whole model and
emitted as part of a separate constant pool. Members of the constant
pool are global variables which are declared lazily when used (similar to
loose methods).
2021-06-13 15:05:55 +01:00
Geza Lore
60d5f0e86b
Emit model implementation as loose methods. ( #3006 )
...
This patch introduces the concept of 'loose' methods, which semantically
are methods, but are declared as global functions, and are passed an
explicit 'self' pointer. This enables these methods to be declared
outside the class, only when they are needed, therefore removing the
header dependency. The bulk of the emitted model implementation now uses
loose methods.
2021-06-13 14:33:11 +01:00
Geza Lore
c67fe02f06
Do not generate debug info in tests
...
Pointless and takes up a lot of cache space in CI, so remove -ggdb and
associated debug options from tests.
2021-06-13 02:55:29 +01:00
Geza Lore
5555f20bd2
Improve ccache-report
2021-06-09 19:14:11 +01:00
Geza Lore
0edf1f0c94
Add ccache-report target to standard Makefile ( #3011 )
...
Using the standard model Makefile, when in addition to an explicit
target, the target 'ccache-report' is also given, a summary of ccache
hits/misses during this invocation of 'make' will be prited at the end
of the build.
2021-06-07 00:56:30 +01:00
Wilson Snyder
31bb73e3de
Fix MCD close also closing stdout ( #2931 ).
2021-06-06 19:32:48 -04:00
Wilson Snyder
1e89392e76
Add --expand-limit argument ( #3005 ).
2021-06-06 10:27:01 -04:00
Wilson Snyder
1f19e8e206
Tests: Add test case for #2895 .
2021-06-06 09:17:56 -04:00
Geza Lore
eea7e1bd2a
Do not emit leading spaces on blank lines ( #3007 )
2021-06-04 15:00:13 +01:00
Julien Margetts
1f331bd94f
Fix part select issues in LATCH warning. ( #2948 ) ( #2938 )
2021-06-01 09:01:18 -04:00
Wilson Snyder
2143bcfad5
Fix constant function calls with uninit value ( #2995 ).
2021-05-31 22:46:41 -04:00
Geza Lore
e1f9fffb42
Fix --protect-ids when using SV classes ( #2994 )
...
A few names were incorrectly mangled, which made --protect-ids produce
invalid output when certain SV class constructs were uses. Now fixed and
added a few extra tests to catch this.
2021-05-31 13:40:22 +01:00
Wilson Snyder
aba3883092
Commentary on MULTIDRIVEN ( #2972 ).
2021-05-19 08:14:14 -04:00
Geza Lore
9699192de8
Don't merge bit select assignments in C code ( #2971 )
2021-05-18 14:28:48 -04:00
Yutetsu TAKATSUKASA
31779b8b8b
Format time string using integer ( #2940 )
...
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
2021-05-16 19:01:03 +09:00
Geza Lore
38cab569ed
Add --reloop-limit argument ( #2960 )
...
Add --reloop-limit argument
2021-05-15 18:04:40 +01:00
Yutetsu TAKATSUKASA
00cedf3797
Tests: Add a test to check if there is overflow or rounding ( #2945 )
2021-05-11 22:27:31 +09:00
Geza Lore
267c6f6dce
Improve Reloop to accept constant index offsets. ( #2939 )
...
V3Reloop now can roll up indexed assignments between arrays if there is a
constant offset between indices on the left and right hand sides, e.g.:
a[0] = b[2];
a[1] = b[3];
...
a[x] = b[x + 2];
2021-05-10 18:01:11 +01:00
Geza Lore
f6c0108c86
Optimize large lookup tables to static data ( #2926 )
...
Implements #2925
2021-05-08 20:04:56 +01:00
Jonathan Drolet
37d68d39c8
Support --trace-fst for SystemC with CMake ( #2927 )
2021-05-08 08:42:00 -04:00
Jonathan Drolet
2bf248bf60
Add TRACE_THREADS to CMake ( #2934 )
2021-05-08 08:18:08 -04:00
Yutetsu TAKATSUKASA
1e4839e5d1
Fix casting to integer not to cause integer overflow. ( #2930 )
2021-05-07 12:00:36 -04:00
Todd Strader
b2139f65d8
VPI memory access for packed arrays ( #2922 )
2021-05-07 07:17:54 -04:00
Yutetsu TAKATSUKASA
8624ce6a84
Stop checking dtype for better optimization chance in BitOpTree ( #2909 )
...
* Tests: Add more case that does not match native C++ width (8, 16, 32 or 64).
* Use AstVarRef::same() instead of AstNode::sameGateTree() because the latter checks dtype in addition to scope.
AstVarRef may have different minWidth in some cases,
but the difference should be ignored in the context of bitOpTree optimization.
2021-05-04 10:40:16 +09:00
Wilson Snyder
e68788d914
Fix initialization of assoc in assoc array ( #2914 ).
2021-05-03 19:37:04 -04:00
Krzysztof Bieganski
5290062549
Fix bounds check in VL_SEL_IWII ( #2910 )
2021-05-03 17:59:41 -04:00
Yutetsu TAKATSUKASA
d77c9da983
Tests: Add a case to cover the line using m_frozenNodes. ( #2915 )
2021-05-02 06:12:38 +09:00
Udi Finkelstein
422c076fec
Support ignoring "`pragma protect ..." ( #2886 )
...
This support code merely adds the capability to skip over the encrypted
parts. Many models have unencrypted module interfaces with ports, and
only encrypt the critical parts.
2021-04-26 18:16:24 -04:00
Todd Strader
12416bc0a3
Scope module fix ( #2893 )
2021-04-26 09:50:25 -04:00
Yutetsu TAKATSUKASA
4351abfe71
Fix assertion failure in bitOpTree opt ( #2899 )
...
* Tests: Add another testcase that triggers assertion failure in bitOpTree opt.
* Fix assertion failure in bitOpTree opt reported in #2891 . Consider the follwoing case.
CCast -> WordSel -> VarRef(leaf)
* Make sure that m_bitPolarity is expanded enough.
2021-04-25 11:46:05 +09:00
Wilson Snyder
aedd16225a
Tests: Don't expose version numbers
2021-04-24 10:33:49 -04:00
Wilson Snyder
8749f545b6
Partial fix to avoid init error on lint-only ( #2895 )
2021-04-24 09:49:23 -04:00
Todd Strader
f446295274
Public interface params ( #2901 )
2021-04-21 13:46:13 -04:00
Todd Strader
f450d51de1
expose packed vectors via the VPI ( #2900 )
2021-04-21 12:35:18 -04:00
Wilson Snyder
dd0c2cac9b
Fix V3Premit infinite loop on always read-and-write ( #2898 ).
2021-04-21 09:21:06 -04:00
Graham Rushton
6660627558
Fix concat of long hashed names in traces etc ( #2854 )
2021-04-20 09:08:29 -04:00
Wilson Snyder
c443e229ee
Fix URL references.
2021-04-18 11:52:29 -04:00
Wilson Snyder
2e9e4ae110
Add an URL on warnings to point to the manual's description.
2021-04-18 10:17:05 -04:00
Yutetsu TAKATSUKASA
56dd58d259
Fix assertion failure in bitOpTree ( #2892 )
...
* Tests: Add a test to reproduce #2891
* Fix assertion failure in binary op tree opt.
2021-04-17 05:50:30 +09:00
Todd Strader
53a6830f71
Fix cast from packed, typedef'ed interface signal ( #2884 )
2021-04-16 15:25:47 -04:00
David Metz
f5ad5cf034
Fix dumping waveforms to multiple FST files ( #2889 )
2021-04-14 16:52:14 -04:00
Todd Strader
70c1eda174
Fix package reported as vpiModule ( #2885 )
2021-04-12 15:00:36 -04:00
Wilson Snyder
adce7ecf4b
Documentation has been rewritten into a book format.
2021-04-11 18:55:06 -04:00
Udi Finkelstein
23c243bb82
Add support for null ports ( #2875 )
2021-04-09 10:39:46 -04:00
Wilson Snyder
e2c11cceb8
Fix select of with index variable ( #2880 ).
2021-04-08 19:35:03 -04:00
Àlex Torregrosa
2b2680770b
Improve scope types in FST and VCD traces ( #2805 ).
2021-04-07 09:55:11 -04:00
Yutetsu TAKATSUKASA
6a31b19224
Tests: Add a test to improve code coverage of V3Const.cpp ( #2878 )
2021-04-07 22:37:31 +09:00
Yutetsu TAKATSUKASA
8d0f7cdac8
Tests: Add a test to check if shortcut operators are properly handled. ( #2869 )
2021-04-07 22:26:40 +09:00
Àlex Torregrosa
a29ac44af9
Add FST SystemC tracing ( #2806 )
2021-04-06 16:18:58 -04:00
Geza Lore
4f36e3e6c9
Fix incorrect condition in varNotReferenced ( #2873 )
...
The intention was to not merge impure assignments, but the actual
predicate failed if the assignment was indeed pure.
This fix gains 1.5% speed on SweRV EH1.
2021-04-03 12:57:06 -04:00
Wilson Snyder
273fcce095
Fix test error in last commit
2021-04-01 19:51:22 -04:00
Udi Finkelstein
0ea5af40c5
Add PINNOTFOUND warning in place of "Pin not found" error ( #2868 )
2021-04-01 18:17:42 -04:00
Wilson Snyder
a9f4129b6b
Tests: Add test for ( #1613 )
2021-04-01 09:03:38 -04:00
Wilson Snyder
c62546c761
Add --coverage-max-width ( #2853 ).
2021-03-29 18:54:51 -04:00
Wilson Snyder
6d3ec160e1
Internal coverage improvements
2021-03-28 20:30:22 -04:00
Wilson Snyder
f26a7c2a5d
Fix --comp-limit-parens with real data types
2021-03-28 20:18:18 -04:00
Wilson Snyder
2ca21c01d2
Internal coverage improvements
2021-03-28 20:03:08 -04:00
Rupert Swarbrick
d6c2e2faf6
Allow overlaps in priority case statements ( #2864 )
...
This will still warn if a case item is completely covered by previous
items, but will no longer complain about overlaps like this:
priority casez (foo_i)
2'b ?1: bar_o = 3'd0;
2'b 1?: bar_o = 3'd1;
Before, there was a warning for the second statement because the first
two patterns match 2'b11.
2021-03-28 19:57:36 -04:00
Wilson Snyder
05db4e41cd
Add better suggestions on some bad options.
2021-03-27 13:14:43 -04:00
Todd Strader
ee25114a00
interface localparam access ( #2859 )
2021-03-26 18:27:38 -04:00
Todd Strader
87728a9ee3
Fix --public-flat-rw / DPI issue ( #2858 )
2021-03-26 18:24:31 -04:00
Yutetsu TAKATSUKASA
4e41c13501
Structurize option parser ( #2809 )
...
Add V3OptionsParser that can suggest correct option.
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
Co-authored-by: github action <action@example.com>
2021-03-26 22:48:24 +09:00
Wilson Snyder
7ea014dab5
Fix false WIDTHCONCAT on casted constant ( #2849 ).
2021-03-23 19:49:57 -04:00
Wilson Snyder
b6c393e9f0
Add VerilatedCovContext::forcePerInstance ( #2793 ).
2021-03-19 22:24:00 -04:00
Wilson Snyder
29505ef013
Support arrayed parameter functions partial ( #2846 )
2021-03-19 18:44:26 -04:00
Wilson Snyder
a159c41219
Fix USERINFO etc to show message with no arguments
2021-03-18 18:46:07 -04:00
Wilson Snyder
334e42b38e
Cleanup REDEFMACRO to not show two separate warnings
2021-03-17 20:33:31 -04:00
Wilson Snyder
96f9f8558b
Mark --no-relative-cfuncs as scheduled for deprecation.
2021-03-17 18:59:45 -04:00
Wilson Snyder
c20bced485
Fix --output-split with class extends ( #2839 ).
2021-03-17 18:25:54 -04:00
Wilson Snyder
dfab80fab1
Fix false TIMESCALEMOD on generate-ignored instances ( #2838 ).
2021-03-16 22:52:29 -04:00
Wilson Snyder
38f6a467e9
Fix --timescale-override not suppressing TIMESCALEMOD ( #2838 ).
2021-03-16 22:44:13 -04:00
Wilson Snyder
26c0fa0a6a
Fix --timescale-override not suppressing TIMESCALEMOD ( #2838 ).
2021-03-16 22:42:28 -04:00
Wilson Snyder
12eb4e85ac
Changed TIMESCALEMOD from error into a warning. ( #2838 )
2021-03-16 21:58:15 -04:00
Wilson Snyder
8350c381c2
Add EOFNEWLINE warning when missing a newline at EOF.
2021-03-14 21:23:48 -04:00
Wilson Snyder
ba1f53a070
Improve DEFPARAM warning text.
2021-03-14 20:37:50 -04:00
Wilson Snyder
9dcda6947d
Fix unpacked-in-class pattern assignment
2021-03-13 13:39:29 -05:00
Wilson Snyder
e3788e871e
Fix unpacked-in-class array reference assignments
2021-03-13 13:04:13 -05:00
Wilson Snyder
ce79c4ebf9
Fix class unpacked-array compile error ( #2774 ).
2021-03-13 12:47:19 -05:00
Wilson Snyder
67853e2f29
Tests: Add t_prof test.
2021-03-13 12:29:14 -05:00
Wilson Snyder
b201b6257b
Tests: Improve coverage when not expanding
2021-03-13 10:22:32 -05:00
Wilson Snyder
d1becbb793
Tests: Fix gmon file not always flushing
2021-03-12 23:05:56 -05:00
Wilson Snyder
21e9794fd7
Tests: Mark some tests lint only
2021-03-12 16:06:47 -05:00
Wilson Snyder
b52b063c16
Tests: Use common TEST_ error reporting.
2021-03-12 12:43:28 -05:00
Wilson Snyder
2feb46fc5d
Tests: Refactor t_vpi_time_cb to avoid shared object
2021-03-12 12:08:11 -05:00
Wilson Snyder
44478a53c2
comps
2021-03-12 09:44:21 -05:00
Wilson Snyder
29ed866061
Fix range inheritance on port without data type ( #2753 ).
2021-03-11 19:22:19 -05:00
Wilson Snyder
e88dff6929
Tests: Improve t_mod_interface_array4
2021-03-11 13:32:38 -05:00
Wilson Snyder
7469166c38
Fix or-reduction on different scopes broken in 4.110 ( #2828 ).
2021-03-10 18:08:11 -05:00
Wilson Snyder
9483ebefae
Internal code coverage cleanups.
2021-03-07 21:05:15 -05:00
Wilson Snyder
6ff1911110
Tests: Cover some internal code coverage issues
2021-03-07 13:52:37 -05:00
Wilson Snyder
2cad22a22a
Add simulation context (VerilatedContext) ( #2660 ). ( #2813 )
...
** Add simulation context (VerilatedContext) to allow multiple fully independent
models to be in the same process. Please see the updated examples.
** Add context->time() and context->timeInc() API calls, to set simulation time.
These now are recommended in place of the legacy sc_time_stamp().
2021-03-07 11:01:54 -05:00
Wilson Snyder
47dcbd4b8a
Internal: Remove deprecated/insecure functions. No functional change intended.
2021-03-06 10:34:03 -05:00
Wilson Snyder
4fa41c5dd8
Tests: Add default filename check to context tests
2021-03-02 20:31:49 -05:00
David Turner
e81abdb616
Fix slice-assign overflow bug ( #2803 ) ( #2811 )
2021-03-01 18:20:56 -05:00
Wilson Snyder
81417a2889
Tests: Misc test updates for context prep.
2021-02-28 10:48:27 -05:00
Wilson Snyder
dad86b9a84
Tests: Fix leak found by previous commit
2021-02-25 20:38:38 -05:00