Wilson Snyder
d6ba65ba75
Version bump
2024-10-27 09:38:06 -04:00
Wilson Snyder
f496138855
Commentary: Changes update
2024-10-27 09:33:54 -04:00
Wilson Snyder
2f272a4190
Fix $countbits in assert with non-tristates ( #5566 ).
2024-10-27 09:30:54 -04:00
Wilson Snyder
469eca7de2
Commentary: Changes update
2024-10-25 18:54:39 -04:00
Todd Strader
ec2eae607a
Fix enum name method ( #5563 )
2024-10-25 18:49:45 -04:00
Ryszard Rozak
292c2e289e
Support rand dynamic arrays of objects ( #5557 ) ( #5564 )
2024-10-25 12:00:43 -04:00
Ryszard Rozak
87ac61140d
Tests: Don't use indices in check_rand ( #5561 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-10-25 11:06:32 -04:00
Geza Lore
81ee89de15
Properly skip t_ccache_report when no ccache ( #5562 )
2024-10-25 14:33:26 +01:00
Todd Strader
83081aaefc
Fix struct literal on pattern assignment ( #5552 ) ( #5559 )
2024-10-24 18:50:57 -04:00
Tomasz Gorochowik
fd2917c928
Commentary: Fix sv-bugpoint paragraph typo ( #5558 )
2024-10-24 09:41:27 -04:00
Ryszard Rozak
4cd69f9feb
Fix queue element access ( #5551 )
2024-10-24 09:40:54 -04:00
Eric Müller
4e5c7f4568
Fix build on gcc when using the spack wrapper ( #5555 )
2024-10-24 07:53:11 -04:00
Tomasz Gorochowik
647af27274
Commentary: Mention sv-bugpoint in the contributing guidelines ( #5553 )
2024-10-24 07:42:57 -04:00
Todd Strader
8cc7e180ca
Fix array trace splitting ( #5549 )
2024-10-23 11:51:48 -04:00
Todd Strader
d3d45c0be5
Tests: Fix file_grep_count() error message ( #5550 )
2024-10-23 10:07:03 -04:00
Wilson Snyder
549dd31224
Commentary: Changes update
2024-10-22 09:34:09 -04:00
Wilson Snyder
36888fac5d
Fix long module names crashing string handling ( #5546 ).
2024-10-22 09:25:58 -04:00
Yilou Wang and Udaya Raj Subedi
2409f32d87
Fix multi-range indices assignment ( #5534 ) ( #5547 )
...
Co-authored-by: Udaya Raj Subedi <[email protected] >
2024-10-21 09:56:50 -04:00
Yilou Wang
8c3cc3af8f
Fix struct array assignment ( #5455 ) ( #5537 )
2024-10-21 09:54:33 -04:00
Todd Strader
76fe224e7c
Fix complex user type problem with --x-assign ( #5543 )
2024-10-18 19:52:25 -04:00
Krzysztof Boroński
7ccc93d9df
Fix reduction methods for verilated types ( #5542 )
2024-10-18 19:51:44 -04:00
Geza Lore
55661e7f71
Install public executables into bindir instead of pkgdatadir ( #5140 ) ( #5544 )
...
Instead of installing redirect scripts in to bindir, and real
executables in to pkgdatadir/bin, we now put the real executables into
bindir, and add redirect scripts into pkgdatadir/bin. (That is, we
redirect in the opposite direction as before).
This enables the same relocatable and testable installations as before
without putting architecture specific binaries into pkgdatadir, so
hopefully we now conform to the Linux Filesystem Hierarchy Standard.
This requires a small fixup in the installed `verilator` script to
hardcode the relative path between bindir and pkgdatadir.
Fixes #5140
2024-10-18 10:06:28 +01:00
Aidan McNay
ece0613e09
Commentary: Fix CMake comments ( #5545 )
2024-10-17 16:39:51 -04:00
Ryszard Rozak
0dce97b09d
Fix assignments of concatenation to queues and dynamic arrays ( #5540 )
2024-10-15 07:35:59 -04:00
Ryszard Rozak
a3d0cc6522
Fix static function wrappers ( #5536 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-10-14 07:41:17 -04:00
Wilson Snyder
1df20f7076
Remove driver.pl - deprecated earlier with driver.py
2024-10-13 21:55:31 -04:00
Wilson Snyder
2fc94557a0
Fix error on enums with x/z using .name(), and internal refactoring
2024-10-11 22:37:48 -04:00
Vito Gamberini and Wilson Snyder
789698cb5c
Fix coverage counts missing due to table optimization ( #5473 ) ( #5474 ).
...
Co-authored-by: Wilson Snyder <[email protected] >
2024-10-10 21:22:06 -04:00
Yilou Wang
3cced9baad
Fix foreach on associative arr with the same logic and update the tests ( #5530 )
2024-10-10 12:50:43 -04:00
Yilou Wang
f3cc32554c
Fix foreach with 2-D queues and dynamic arrays ( #5525 ) ( #5529 )
2024-10-10 10:50:37 -04:00
Ryszard Rozak
2a905c1d6e
Fix copy constructor of classes that use std::process ( #5528 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-10-10 14:40:07 +02:00
Wilson Snyder
230b145c04
Commentary
2024-10-10 08:14:21 -04:00
Wilson Snyder
9f34764f4b
Tests: Find filenames with fix me
2024-10-10 07:48:23 -04:00
Wilson Snyder
69ac3c14e8
Fix crash with internal assertion on short array initializer (partial #5511 )
2024-10-10 07:20:44 -04:00
Wilson Snyder
f98637e122
Internals: Cleanup style of coverage visitors. No functional change. Ignore whitespace if diff.
2024-10-09 18:13:23 -04:00
Wilson Snyder
6d936654ba
Commentary: Changes update
2024-10-09 18:01:34 -04:00
Wilson Snyder
4dd4047c47
Internals: Less verbose docs build
2024-10-09 18:01:30 -04:00
Zhou Shen
1710b6bab4
Support for wired nets, wor/trior/wand/triand. ( #5496 )
2024-10-09 17:53:46 -04:00
Geza Lore
041f6603c3
Make incorrect soft ordering constraint into a hard constraint. ( #5520 )
...
An ordering constraint between NBA commit blocks ('Post' logic) and the
written variable were previously added as soft constraints (cutable
edges). However these are required for correctness, so if it ever is
cut we will have incorrect simulation results.
Change these into hard constraints instead. This necessitates adding a
flag on AstVar to ignore special variables constructed during V3Delayed
that might otherwise appear as degenerate logic loops. E.g.:
if (VdlySet) {
VdlySet = 0; // <- This write to VdlySet can and must be ignored
LHS = VdlyVal;
}
No functional change, but you might get an error if this constraint was
ever violated. (Theoretically it should never be, as these variables
were inserted in a way that does not require violating these constraints
...)
2024-10-09 11:43:53 +01:00
Geza Lore
5acced1e33
Refactor V3Delay for extensibility ( #5516 )
...
* Refactor V3Delay for extensibility
Introduce the concept of an "NBA Scheme", which is the lowering pattern
we can use for various variables that are the targets of NBAs.
E.g.:
- ShadowVariable (old default scheme)
- FlagShared (old array set flag scheme)
- ValueQueueWhole (recent dynamic commit queue)
We now analyse all AstAssignDly before making any decisions on which
scheme to apply. We then choose a specific scheme for each variable that
is the target of an NBA, and then all NBAs targeting that variable use
the same scheme. This enables easy mix and match of schemes as needed,
while remaining consistent by design after extensions.
Output is perturbed due to node insertion order, but no functional
or performance change is intended.
2024-10-09 10:39:40 +01:00
Yilou Wang
920c8012de
Support unconstrained randomization for associative array and queue ( #5515 )
2024-10-08 10:54:20 -04:00
Geza Lore
8f1ea09558
Add lsb index to V3Number::setMask ( #5522 )
2024-10-08 13:15:36 +01:00
Wilson Snyder
b873c23cf2
Internals: Refactor into V3Width enumSelect function
2024-10-07 21:44:07 -04:00
Wilson Snyder
13c7b6e827
Tests: Faster first retry
2024-10-07 21:44:07 -04:00
Wilson Snyder
bbce7926b9
Tests: Remove unused clk input
2024-10-07 21:44:07 -04:00
Wilson Snyder
2c445e4bfd
Commentary: Changes update
2024-10-07 21:44:07 -04:00
Furqan Nadir
338d54fd34
Commentary: Add name to CONTRIBUTORS ( #5519 )
2024-10-07 14:10:43 -04:00
Ryszard Rozak
009d1f2f5b
Fix -j option without argument in hierarchical verilation ( #5514 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-10-07 07:31:59 -04:00
github action
08279645ca
Apply 'make format'
2024-10-06 22:10:07 +00:00
Wilson Snyder
28ecd8e908
Support local and protected on typedef ( #5460 ).
2024-10-06 18:08:40 -04:00
Wilson Snyder
bc8a332ee8
Tests: Disable last test due to clang warning
2024-10-06 05:00:57 -04:00
Wilson Snyder
d52822781c
Tests: Fix driver for --iv etc
2024-10-06 04:49:53 -04:00
github action
bdd37e40fe
Apply 'make format'
2024-10-06 08:02:10 +00:00
Wilson Snyder
4b713e9882
Fix pattern initialization with typedef key ( #5512 ).
2024-10-06 04:01:15 -04:00
Wilson Snyder
fd9f5ab34e
Fix not reporting class reference with extra parameters ( #5467 ).
2024-10-04 05:38:36 -04:00
Wilson Snyder
d06f986b51
Add elaboration dot-error message context, plus debug improvements
2024-10-04 05:38:05 -04:00
Wilson Snyder
8638e46cb7
Fix IEEE version number
2024-10-04 05:22:09 -04:00
Wilson Snyder
85909f02b3
Commentary
2024-10-04 05:21:18 -04:00
Nathan Graybeal
3572bd2f1a
Fix configure inserting absolute paths for Python and Perl ( #5504 ) ( #5505 )
...
* Migrate all tools to AC_CHECK_PROG
2024-10-04 10:08:44 +01:00
Wilson Snyder
ff1d20d50c
Tests: Add t_struct_initial_assign, still fails ( #5380 ) ( #5381 ).
2024-10-03 20:36:23 -04:00
Wilson Snyder
c300075a20
Tests: Remove driver Python version package requirement ( #5505 )
2024-10-03 19:39:28 -04:00
Wilson Snyder
4bdfc653a3
Add error on misused genvar ( #408 ).
2024-10-03 18:54:30 -04:00
Wilson Snyder
554653900a
Commentary: Move C++20 deprec to after Ubuntu 20.04 EOL
2024-10-03 18:15:51 -04:00
Wilson Snyder
b90b81e12c
Tests: Fix string !== for other simulators.
2024-10-03 18:14:53 -04:00
Han Qi
bf2b4e1b6a
Fix equivalence checking when replacing type parameters ( #5213 ) ( #5255 )
2024-10-03 21:19:07 +01:00
Yilou Wang
c05c48aaf3
Support unpacked array Constrained Randomization ( #5437 ) ( #5489 )
2024-10-02 10:29:47 -04:00
Fabian Keßler
39143cc15a
Fix explicit CMAKE_INSTALL_PREFIX usages ( #5500 )
2024-10-01 13:38:16 -04:00
Wilson Snyder
03012da11c
Internals: astgen: Detect bad node types after edits.
...
Also add checks for nodes that can be multiple types with syntax
`AstNode<AstNodeExpr|AstNodeDType>`
2024-09-30 22:25:28 -04:00
0547108e3f
Add -output-groups to build with concatenated .cpp files ( #5257 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
Signed-off-by: Ryszard Rozak <[email protected] >
Signed-off-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Mariusz Glebocki <[email protected] >
Co-authored-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Bartłomiej Chmiel <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
Co-authored-by: Ryszard Rozak <[email protected] >
2024-09-30 21:42:36 -04:00
Bartłomiej Chmiel
1a31aa5d62
Internals: Fix annotation checker not considering base class virtual function annotations ( #5459 )
2024-09-30 21:34:34 -04:00
Wilson Snyder
13a1240359
Commentary: Changes update
2024-09-29 21:41:05 -04:00
Wilson Snyder
b7e5486baa
Internals: Fix astgen spacing
2024-09-29 16:56:50 -04:00
Wilson Snyder
afeca21d73
Internals: For debug, quote symbol table to see spaces.
2024-09-29 16:56:32 -04:00
Wilson Snyder
d0ec6092b3
Change package import/export to link post-parsing, prep for later commit.
2024-09-28 20:55:22 -04:00
Wilson Snyder
5c923d6629
Fix to avoid IMPLICIT creation if data type of same name.
2024-09-28 17:58:26 -04:00
Wilson Snyder
1dc6fd3d93
Internals: Move interface error to later phase, prep for later commit. No functional change intended.
2024-09-28 17:37:44 -04:00
Arkadiusz Kozdra
5b56c80830
Better error recovery ( #5493 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-27 20:38:49 +02:00
Wilson Snyder
2291d3d4c6
Tests: Fix some non-IEEE issues in tests.
2024-09-27 09:00:20 -04:00
Arkadiusz Kozdra
02e7767886
Fix randomize with foreach constraints ( #5492 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-26 19:31:06 +02:00
Geza Lore
2a01365f9b
Fix V3Table trying to generate 'x' bits in the lookup table. ( #5491 )
...
Due to out of range selects, V3Table attempted to create a table in the
constant pool with an 'x' value in it, which caused an internal error.
Ensure V3Table behaves the same for out of range selects as the original
logic would.
There is a related bug #5490 , about leaving partially out of range
selects in the logic after inserting bounds checks in V3Unknown.
2024-09-26 16:31:47 +01:00
Arkadiusz Kozdra and Szymon Gizler
91c8866ac3
Fix exponential ConcatN ( #5488 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Szymon Gizler <[email protected] >
2024-09-26 05:12:24 -04:00
Wilson Snyder
798bbe98e8
Add syntax error on empty case items, per IEEE grammar.
2024-09-25 22:40:28 -04:00
Wilson Snyder
a3bbf13506
Internals: Minor parser reorgs in prep for future pull. No functional change intended.
2024-09-25 20:41:49 -04:00
Wilson Snyder
650da7beb2
Examples: Cleanup some spacing
2024-09-25 14:24:01 -04:00
Geza Lore
3bc09d49fb
Generate one trigger per SenItem instead of per SenTree ( #5483 )
2024-09-25 10:35:50 +01:00
Wilson Snyder
6c61a9aff3
Support objcache when compiling Verilated files with cmake.
2024-09-24 20:55:11 -04:00
Wilson Snyder
a4085f3a06
Internals: Standardize format of CMake files with gersemi. No functional change intended.
2024-09-24 20:43:19 -04:00
Wilson Snyder
3ae18af8dd
Fix short-circuting on method calls ( #5486 ).
2024-09-24 20:24:27 -04:00
Wilson Snyder
811eab8fa5
Fix short-circuting with associative array access ( #5484 ).
2024-09-24 19:24:01 -04:00
Wilson Snyder
4ec75b2618
Fix over-permissive parsing of UDPs without identifiers
2024-09-24 18:53:32 -04:00
Wilson Snyder
5a65d27851
Internals: bisonpre: Support -Wcounterexamples
2024-09-23 21:42:02 -04:00
Chris Bachhuber
685ea0bc65
Add Docker pre-commit hook ( #5238 ) ( #5452 )
2024-09-23 07:37:24 -04:00
Wilson Snyder
c48d80592e
Fix extra dot in coverage point hierarchy when using name()=''.
2024-09-23 07:34:12 -04:00
Wilson Snyder
0aa8356eca
Change --main and --binary to use a TOP hierarchy name of "" ( #5482 ).
2024-09-22 23:03:51 -04:00
Wilson Snyder
670b7c5243
Support DPI imports and exports with double underscores ( #5481 ).
2024-09-22 22:11:01 -04:00
Wilson Snyder
706679e6b1
Support DPI imports and exports with double underscores.
2024-09-22 22:06:39 -04:00
Wilson Snyder
d288488b7f
Fix --binary with .cpp PLI filenames under relative directory paths.
2024-09-22 16:47:15 -04:00
Chris Bachhuber
b17619296a
Documentation: Highlight syntax in install.rst ( #5478 )
2024-09-22 15:55:12 -04:00
Wilson Snyder
88bd479bc7
Add error on instances without parenthesis.
2024-09-22 12:25:35 -04:00
Wilson Snyder
2584befa5a
Internals: Show tree traversal in V3LinkDot Resolve debug. No functional change intended.
2024-09-22 10:46:04 -04:00
Wilson Snyder
90215878f8
Tests: Improve t_dist_warn_coverage.py
2024-09-22 09:10:03 -04:00
Wilson Snyder
a1a74cb1d9
Fix mis-parsing of constraint = new.
2024-09-22 09:10:01 -04:00
Wilson Snyder
9f9770e722
Parse elaboration-time nettype declarations (as UNSUPPORTED)
2024-09-21 21:00:02 -04:00
Wilson Snyder
888af29a72
Delay struct type determination until elaboration
2024-09-21 20:27:55 -04:00
Wilson Snyder
5f39c69d19
Delay parameter type assignment determination until elaboration
2024-09-21 20:27:41 -04:00
Wilson Snyder
e7de2c5a05
Remove warning on unsized numbers exceeding 32-bits.
2024-09-21 19:19:12 -04:00
Geza Lore
59b07529b1
driver.py: fix aslr_off ( #5477 )
2024-09-21 16:37:51 +01:00
Geza Lore
a6e9bce0dd
driver.py: consume all stdout from subprocess ( #5476 )
2024-09-21 16:24:45 +01:00
Wilson Snyder
2c52119d6c
Tests: Rename some tests into proper groups. No functional change.
2024-09-21 10:04:58 -04:00
Wilson Snyder
48faf8d036
Fix tracing when name() is empty ( #5470 ).
2024-09-21 08:25:14 -04:00
Wilson Snyder
0484143282
Tests: Update t_timing_finish ( #5472 )
2024-09-21 07:46:04 -04:00
Wilson Snyder
0ee214a157
Tests: Fix t_timing_fork_comb_bad committed earlier
2024-09-20 22:16:00 -04:00
Wilson Snyder
774ec42be4
Internals: Experimental cleanup; avoid :: on package symbol tables
2024-09-20 20:39:49 -04:00
Wilson Snyder
5a6f2b661d
Tests: Avoid multiple lint/compile runs in one test; hard to debug
2024-09-20 20:34:35 -04:00
Wilson Snyder
80cba789f4
Internals: Remove V3LinkParse's need of class links. No functional change intended.
2024-09-20 18:26:23 -04:00
Wilson Snyder
92dd8ee8f5
Fix timing mode not exiting on empty events ( #5472 ).
2024-09-20 17:46:27 -04:00
Todd Strader
1665d15d4d
Fix user-type parameter overlap ( #5469 )
2024-09-20 14:29:31 -04:00
Wilson Snyder
f0fb0b05ff
Internals: Misc V3Param cleanups.
2024-09-20 08:59:10 -04:00
Wilson Snyder
02e88e3848
Fix suppression of WIDTH* warnings when immediately under a size cast ( #3417 ).
2024-09-19 22:56:47 -04:00
Wilson Snyder
87eef36b1c
Tests: Fix driver race sometimes missing final log data
2024-09-19 22:49:40 -04:00
Wilson Snyder
579257bc42
Tests: Fix driver not accepting debug pass-down flags to Verilator, broke earlier commit.
2024-09-19 22:08:40 -04:00
Wilson Snyder
e2041f7450
Commentary: Changes update
2024-09-19 20:29:39 -04:00
Yilou Wang
70112438c3
Support packed/unpacked and dynamic array unconstrained randomization ( #5414 ) ( #5415 )
2024-09-19 20:07:05 -04:00
Wilson Snyder
175e1dde73
Tests: Run t_hier_block_cmake.py first so finishes
2024-09-19 19:33:43 -04:00
Wilson Snyder
e990415ee0
Tests: Improve driver performance with forkserver
2024-09-19 19:28:07 -04:00
Wilson Snyder
1543b202b2
Tests: Move per-command expect= to instead check logfiles
2024-09-19 18:53:22 -04:00
Wilson Snyder
f63168a5b5
CI: More parallelism
2024-09-19 18:51:33 -04:00
Wilson Snyder
49bccb5f1b
Commentary
2024-09-19 17:58:37 -04:00
Wilson Snyder
c7e1358bb7
Tests: Fix --gdb with one test ( #5466 )
2024-09-19 17:06:32 -04:00
Geza Lore
62a58f420c
Fix latest pylint issues ( #5465 )
2024-09-19 15:51:13 +01:00
Arkadiusz Kozdra
dd95e033e7
Support inside array constraints ( #5448 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-19 07:27:59 -04:00
Wilson Snyder
371a4055b0
Fix false LIFETIME warning on repeat in fork-join ( #5456 ).
2024-09-18 21:20:17 -04:00
Wilson Snyder
f251f7b774
Tests: CONSTRIAINTIGN, ZERODLY no longer need suppression on UVM
2024-09-17 21:21:08 -04:00
Wilson Snyder
0f3e0de891
Commentary
2024-09-17 20:58:14 -04:00
Wilson Snyder
7081ea0ede
Support as a task call
2024-09-17 20:53:08 -04:00
Wilson Snyder
fb04765c0e
Fix class reference with pin that is a class reference ( #5454 ).
2024-09-17 17:38:18 -04:00
Wilson Snyder
b8bda729d4
Tests: Fix debug message
2024-09-16 20:29:23 -04:00
Wilson Snyder
195a665293
Internals: Fix V3LinkDot debug message print
2024-09-15 21:18:51 -04:00
Wilson Snyder
c8de3630a5
Tests: Fix driver error report, and passing --dumpi-tree
2024-09-15 21:10:44 -04:00
Wilson Snyder
99a29acca0
CI: One-time yamlfix cleanups. No functional change intended.
2024-09-15 14:37:09 -04:00
Wilson Snyder
48a607cc78
Internals: Cleanup Makefile.in to commented sections. No functional change intended.
2024-09-15 13:55:43 -04:00
Wilson Snyder
19170badd3
Fix warning IEEE reference ( #5453 )
2024-09-15 11:05:48 -04:00
Wilson Snyder
77fc771ed0
Tests: Fix missing stdout on execute()
2024-09-14 18:01:49 -04:00
github action
9b9a554489
Apply 'make format'
2024-09-14 00:46:48 +00:00
Wilson Snyder
0fe8c73d19
Fix $fatal to not be affected by +verilator+error+limit ( #5135 ).
2024-09-13 20:45:44 -04:00
Wilson Snyder
eb66e137db
Fix fault on defparam with UNSUPPORTED ignored ( #5450 ).
2024-09-13 18:31:55 -04:00
Wilson Snyder
c2b82c293f
Tests: Fix driver creating .out with --gold
2024-09-13 18:31:35 -04:00
Arkadiusz Kozdra
0b7510befa
Support basic dist constraints ( #5431 )
2024-09-12 05:20:36 -07:00
Arkadiusz Kozdra
140eb0a6e5
Re-sync parser on endclass
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-11 15:57:45 +02:00
Arkadiusz Kozdra
6b8f253ecd
Re-sync parser in constraints and cross coverpoints
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-11 15:57:45 +02:00
Arkadiusz Kozdra
ac29393ec9
Do not parse covergroup identifiers as types
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-11 15:57:45 +02:00
Wilson Snyder
22d6bb8180
Fix display with multiple string formats ( #5311 ).
2024-09-11 08:41:11 -04:00
Wilson Snyder
f4e4602dcb
Tests: Fix driver handling of interrupts
2024-09-10 20:29:26 -04:00
Wilson Snyder
521c5c2f75
Fix extra events in traces ( #5405 ).
2024-09-10 19:14:52 -04:00
Wilson Snyder
3525484730
Commentary
2024-09-10 19:04:55 -04:00
Arkadiusz Kozdra
4a58997604
Support basic constrained queue randomization ( #5413 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-10 09:33:14 -04:00
Arkadiusz Kozdra
ef259f63ca
Fix randomize treated as std::randomize in classes ( #5436 )
2024-09-10 09:10:36 -04:00
Arkadiusz Kozdra
2f690c0530
Fix foreach colliding index names ( #5444 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-10 07:17:21 -04:00
Wilson Snyder
283a5edbdb
Tests: Make GCOV_PREFIX path directories
2024-09-09 21:47:47 -04:00
Wilson Snyder
e566b5a4f5
Change .vlt config files to be read before .v files ( #5185 ).
2024-09-09 20:18:54 -04:00
Wilson Snyder
4e4fdd3b66
Fix multidimensional function return value selects ( #5382 ).
2024-09-09 19:56:09 -04:00
Wilson Snyder
434896d50c
Tests: test class IGNOREDRETURN.
2024-09-09 19:48:15 -04:00
Andrew Nolte
1e7611edea
Change to use maximum for cover point aggregation ( #5402 )
2024-09-09 14:20:18 -04:00
Geza Lore
2890126110
Remove out of range Sel in V3Unknown ( #5443 )
...
Fixes #5393
2024-09-09 14:09:29 +01:00
Wilson Snyder
07bb8c701d
Convert test driver to Python ( #5427 )
2024-09-08 13:00:03 -04:00
Wilson Snyder
55ae48ac13
Commentary
2024-09-08 11:11:20 -04:00
Wilson Snyder
c83ee391bb
Fix associative array next/prev/first/last mis-propagating constants ( #5435 ).
2024-09-07 15:25:35 -04:00
Wilson Snyder
d01b917062
Commentary: Changes update
2024-09-07 15:24:06 -04:00
Wilson Snyder
b21117091b
CI: Add Ubuntu 24.04 GCC; combine reloc with GCC-10 runs
2024-09-07 13:43:47 -04:00
Wilson Snyder
3a73d83741
Tests: Fix clang 18 warning
2024-09-07 10:20:59 -04:00
Wilson Snyder
9643232d36
CI: Add Ubuntu 24.04 script (not enabled yet)
2024-09-07 10:12:35 -04:00
Wilson Snyder
7b41d2046d
Fix GTKWave clang 18 warning
2024-09-07 10:12:09 -04:00
Wilson Snyder
7eb1b6c32b
Tests: Fix GCC 13.2.0 issues. No functional change.
2024-09-06 22:04:49 -04:00
Andrew Nolte
083fb7e9c2
Add partial coverage symbol and branch data in lcov info files ( #5388 )
2024-09-06 18:15:18 -04:00
Krzysztof Bieganski
afb8428db4
Support IEEE-compliant intra-assign delays ( #3711 ) ( #5441 )
2024-09-06 18:13:52 -04:00
Bartłomiej Chmiel
d6923c8571
Improve performance of V3VariableOrder with parallelization ( #5406 )
2024-09-06 08:04:26 -04:00
Wilson Snyder
1c38744fd1
Tests: Fix requiring core dump
2024-09-04 20:10:05 -04:00
Krzysztof Bieganski
51691dfde5
Fix driving clocking block in Reactive
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-09-04 07:57:51 -04:00
Arkadiusz Kozdra
409efa1249
Internals: Factor out creating clocking event. No functional change.
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-04 07:57:51 -04:00
Wilson Snyder
e4ff0909dc
Tests: Misc test cleanups from Python branch.
2024-09-03 21:42:06 -04:00
Wilson Snyder
d3670b6890
Test: Remove old test
2024-09-03 21:32:09 -04:00
Wilson Snyder
7a74ddc1af
Internals: Fix some getter/setter ordering. No functional change intended.
2024-09-02 18:48:49 -04:00
Wilson Snyder
551862a55e
Tests: Move some misplaced files. No functional change.
2024-09-02 15:50:40 -04:00
Arkadiusz Kozdra
d3fcec3e84
Fix clearing trigger of events with no sentrees ( #5426 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-02 18:19:49 +02:00
Krzysztof Bieganski
088862d449
Support appending to queue via [] ( #5421 )
2024-09-02 09:45:47 -04:00
github action
e9f758ce67
Apply 'make format'
2024-09-02 01:13:41 +00:00
Wilson Snyder
b698bfd850
Tests: Untabify some tests.
2024-09-01 21:12:37 -04:00
Wilson Snyder
c9970ff822
Tests: Fix --verbose broken display
2024-09-01 21:01:07 -04:00
Wilson Snyder
df594ee430
Tests: Fix ll scan test.
2024-09-01 20:59:42 -04:00
Todd Strader
201e343795
Fix sformatf internal error on initial automatics ( #5423 )
2024-08-30 19:35:47 -04:00
Wilson Snyder
9a307c4abd
Tests: Cleanup trace_filename use. No test functionality change.
2024-08-30 18:34:42 -04:00
Krzysztof Bieganski
657d7f257b
Support named event locals ( #5422 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-30 17:10:47 +02:00
Wilson Snyder
0ec5e02ce1
Improve hex too many digits error ( #5419 ).
2024-08-30 07:48:00 -04:00
Wilson Snyder
cdfb2221bb
Tests: Remove ancient GCC 4.4 skip.
2024-08-29 19:25:22 -04:00
Krzysztof Bieganski
f133a2811f
Fix capturing params in randomize() with ( #5416 ) ( #5418 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-29 23:02:21 +02:00
Krzysztof Bieganski
aecf38e3ad
Fix V3Randomize compile error on old GCC ( #5403 ) ( #5417 ).
...
No functional change intended.
2024-08-29 10:39:54 -04:00
Wilson Snyder
fa32d10f39
Fix performance of V3Trace when many activity blocks ( #5372 ).
2024-08-28 20:45:51 -04:00
Wilson Snyder
f4fe89a8c4
Commentary: Changes update
2024-08-28 17:32:57 -04:00
Krzysztof Bieganski
675d9a641e
Call pre/post_randomize on randomize() with ( #5412 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-28 19:42:49 +02:00
Krzysztof Bieganski
d896f1ff08
Fix queue [$-i] select as reference argument ( #5411 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-28 17:29:12 +02:00
Arkadiusz Kozdra
5cb6f370e9
Internals: Emit rand constraint right away. No functional change intended. ( #5409 )
...
This change gets rid of most of the shared pointers and useless memory
allocations. Also takes advantage of higher-arity bvxor/concat to
reduce amount of data sent to the solver.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-08-28 16:11:39 +02:00
Kaleb Barrett
e04ef5d83a
Add method to check if there are VPI callbacks of the given type ( #5399 )
2024-08-27 17:36:51 -04:00
Krzysztof Bieganski
155dcc5658
Fix empty foreach in if in constraints ( #5408 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-27 15:39:36 +02:00
Wilson Snyder
e927536099
Reduce --debugi 2 verbosity
2024-08-27 07:28:27 -04:00
Krzysztof Bieganski
f623db7d68
Normalize types in constraints ( #5407 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-27 12:53:44 +02:00
Wilson Snyder
d40f7f5167
Tests: Fix lint-py (last commit)
2024-08-27 05:31:40 -04:00
Wilson Snyder
34bb013941
Tests: Fix broken t_proc.pl, and misc cleanups.
2024-08-26 21:53:36 -04:00
Wilson Snyder
ae35be9102
Internals: Reformat with new settings (last commit). No functional change.
2024-08-26 21:53:36 -04:00
Wilson Snyder
bde4097df2
Internals: Add .style.yapf
2024-08-26 21:53:36 -04:00
Wilson Snyder
17b70788df
Internals: Run yapf3 in parallel
2024-08-26 21:53:36 -04:00
Krzysztof Bieganski
b1927e4fb5
Fix infinite recursion due to recursive functions/tasks ( #5398 )
2024-08-26 12:18:52 -04:00
Yilou Wang
c4cb26fa9a
Support unconstrained randomization for unions ( #5395 ) ( #5396 )
2024-08-26 11:04:45 -04:00
Wilson Snyder
4e86e60491
Tests: Use only case-sensitve non-extended regexps
2024-08-26 08:14:39 -04:00
Wilson Snyder
d3e07b6ad9
Internals: Always use parallel for make -j 4 clang-format yapf format-pl-exec
...
make[1]: Entering directory '/svaha/wsnyder/SandBox/homecvs/v4/verilator'
yapf3 -i bin/verilator_ccache_report bin/verilator_difftree bin/verilator_gantt bin/verilator_includer bin/verilator_profcfunc examples/json_py/vl_file_copy examples/json_py/vl_hier_graph docs/guide/conf.py docs/bin/vl_sphinx_extract docs/bin/vl_sphinx_fix src/astgen src/bisonpre src/config_rev src/cppcheck_filtered src/flexfix src/vlcovgen src/.gdbinit.py test_regress/t/*.pf nodist/clang_check_attributes nodist/code_coverage nodist/dot_importer nodist/fuzzer/actual_fail nodist/fuzzer/generate_dictionary nodist/install_test nodist/log_changes nodist/code_coverage.dat
chmod a+x test_regress/t/*.pl
clang-format-14 -i ./include/verilated.cpp ./include/verilated_cov.cpp ./include/verilated_dpi.cpp ./include/verilated_fst_c.cpp ./include/verilated_fst_sc.cpp ./include/verilated_probdist.cpp ./include/verilated_profiler.cpp ./include/verilated_random.cpp ./include/verilated_save.cpp ./include/verilated_threads.cpp ./include/verilated_timing.cpp ./include/verilated_vcd_c.cpp ./include/verilated_vcd_sc.cpp ./include/verilated_vpi.cpp ./examples/make_hello_c/sim_main.cpp ./examples/make_hello_sc/sc_main.cpp ./examples/make_protect_lib/sim_main.cpp ./examples/make_tracing_c/sim_main.cpp ./examples/make_tracing_sc/sc_main.cpp ./src/VlcMain.cpp ./src/VlcTop.cpp ./src/V3Active.cpp ./src/V3ActiveTop.cpp ./src/V3Assert.cpp ./src/V3AssertPre.cpp ./src/V3Ast.cpp ./src/V3AstNodes.cpp ./src/V3Begin.cpp ./src/V3Branch.cpp ./src/V3Broken.cpp ./src/V3CCtors.cpp ./src/V3CUse.cpp ./src/V3Case.cpp ./src/V3Cast.cpp ./src/V3Class.cpp ./src/V3Clean.cpp ./src/V3Clock.cpp ./src/V3Combine.cpp ./src/V3Common.cpp ./src/V3Config.cpp ./src/V3Const.cpp ./src/V3Coverage.cpp ./src/V3CoverageJoin.cpp ./src/V3Dead.cpp ./src/V3Delayed.cpp ./src/V3Depth.cpp ./src/V3DepthBlock.cpp ./src/V3Descope.cpp ./src/V3Dfg.cpp ./src/V3DfgAstToDfg.cpp ./src/V3DfgCache.cpp ./src/V3DfgDecomposition.cpp ./src/V3DfgDfgToAst.cpp ./src/V3DfgOptimizer.cpp ./src/V3DfgPasses.cpp ./src/V3DfgPeephole.cpp ./src/V3DfgRegularize.cpp ./src/V3DupFinder.cpp ./src/Verilator.cpp ./src/V3EmitCBase.cpp ./src/V3EmitCConstPool.cpp ./src/V3EmitCFunc.cpp ./src/V3EmitCHeaders.cpp ./src/V3EmitCImp.cpp ./src/V3EmitCInlines.cpp ./src/V3EmitCMain.cpp ./src/V3EmitCMake.cpp ./src/V3EmitCModel.cpp ./src/V3EmitCPch.cpp ./src/V3EmitCSyms.cpp ./src/V3EmitMk.cpp ./src/V3EmitV.cpp ./src/V3EmitXml.cpp ./src/V3Error.cpp ./src/V3ExecGraph.cpp ./src/V3Expand.cpp ./src/V3File.cpp ./src/V3FileLine.cpp ./src/V3Force.cpp ./src/V3Fork.cpp ./src/V3Gate.cpp ./src/V3Global.cpp ./src/V3Graph.cpp ./src/V3GraphAcyc.cpp ./src/V3GraphAlg.cpp ./src/V3GraphPathChecker.cpp ./src/V3GraphTest.cpp ./src/V3Hash.cpp ./src/V3Hasher.cpp ./src/V3HierBlock.cpp ./src/V3Inline.cpp ./src/V3Inst.cpp ./src/V3InstrCount.cpp ./src/V3Interface.cpp ./src/V3Param.cpp ./src/V3ParseGrammar.cpp ./src/V3ParseImp.cpp ./src/V3ParseLex.cpp ./src/V3PreProc.cpp ./src/V3PreShell.cpp ./src/V3Premit.cpp ./src/V3ProtectLib.cpp ./src/V3Randomize.cpp ./src/V3Reloop.cpp ./src/V3Sampled.cpp ./src/V3Sched.cpp ./src/V3SchedAcyclic.cpp ./src/V3SchedPartition.cpp ./src/V3SchedReplicate.cpp ./src/V3SchedTiming.cpp ./src/V3SchedVirtIface.cpp ./src/V3Scope.cpp ./src/V3Scoreboard.cpp ./src/V3Slice.cpp ./src/V3Split.cpp ./src/V3SplitAs.cpp ./src/V3SplitVar.cpp ./src/V3StackCount.cpp ./src/V3Stats.cpp ./src/V3StatsReport.cpp ./src/V3String.cpp ./src/V3Subst.cpp ./src/V3TSP.cpp ./src/V3Table.cpp ./src/V3Task.cpp ./src/V3ThreadPool.cpp ./src/V3Timing.cpp ./src/V3Trace.cpp ./src/V3TraceDecl.cpp ./src/V3Tristate.cpp ./src/V3Undriven.cpp ./src/V3Unknown.cpp ./src/V3Unroll.cpp ./src/V3VariableOrder.cpp ./src/V3Waiver.cpp ./src/V3Width.cpp ./src/V3WidthCommit.cpp ./src/V3WidthSel.cpp ./src/V3Life.cpp ./src/V3LifePost.cpp ./src/V3LinkCells.cpp ./src/V3LinkDot.cpp ./src/V3LinkInc.cpp ./src/V3LinkJump.cpp ./src/V3LinkLValue.cpp ./src/V3LinkLevel.cpp ./src/V3LinkParse.cpp ./src/V3LinkResolve.cpp ./src/V3Localize.cpp ./src/V3MergeCond.cpp ./src/V3Name.cpp ./src/V3Number.cpp ./src/V3OptionParser.cpp ./src/V3Options.cpp ./src/V3Order.cpp ./src/V3OrderGraphBuilder.cpp ./src/V3OrderMoveGraph.cpp ./src/V3OrderParallel.cpp ./src/V3OrderProcessDomains.cpp ./src/V3OrderSerial.cpp ./src/V3Os.cpp ./src/V3Param.cpp ./src/V3ParseGrammar.cpp ./src/V3ParseImp.cpp ./src/V3ParseLex.cpp ./src/V3PreProc.cpp ./src/V3PreShell.cpp ./src/V3Premit.cpp ./src/V3ProtectLib.cpp ./src/V3Randomize.cpp ./src/V3Reloop.cpp ./src/V3Sampled.cpp ./src/V3Sched.cpp ./src/V3SchedAcyclic.cpp ./src/V3SchedPartition.cpp ./src/V3SchedReplicate.cpp ./src/V3SchedTiming.cpp ./src/V3SchedVirtIface.cpp ./src/V3Scope.cpp ./src/V3Scoreboard.cpp ./src/V3Slice.cpp ./src/V3Split.cpp ./src/V3SplitAs.cpp ./src/V3SplitVar.cpp ./src/V3StackCount.cpp ./src/V3Stats.cpp ./src/V3StatsReport.cpp ./src/V3String.cpp ./src/V3Subst.cpp ./src/V3TSP.cpp ./src/V3Table.cpp ./src/V3Task.cpp ./src/V3ThreadPool.cpp ./src/V3Timing.cpp ./src/V3Trace.cpp ./src/V3TraceDecl.cpp ./src/V3Tristate.cpp ./src/V3Undriven.cpp ./src/V3Unknown.cpp ./src/V3Unroll.cpp ./src/V3VariableOrder.cpp ./src/V3Waiver.cpp ./src/V3Width.cpp ./src/V3WidthCommit.cpp ./src/V3WidthSel.cpp ./include/verilated.h ./include/verilated_config.h ./include/verilated_cov.h ./include/verilated_cov_key.h ./include/verilated_dpi.h ./include/verilated_fst_c.h ./include/verilated_fst_sc.h ./include/verilated_funcs.h ./include/verilated_imp.h ./include/verilated_intrinsics.h ./include/verilated_profiler.h ./include/verilated_random.h ./include/verilated_save.h ./include/verilated_sc.h ./include/verilated_sc_trace.h ./include/verilated_sym_props.h ./include/verilated_syms.h ./include/verilated_threads.h ./include/verilated_timing.h ./include/verilated_trace.h ./include/verilated_trace_imp.h ./include/verilated_types.h ./include/verilated_vcd_c.h ./include/verilated_vcd_sc.h ./include/verilated_vpi.h ./include/verilatedos.h ./include/verilatedos_c.h ./src/V3Active.h ./src/V3ActiveTop.h ./src/V3Assert.h ./src/V3AssertPre.h ./src/V3Ast.h ./src/V3AstInlines.h ./src/V3AstNodeDType.h ./src/V3AstNodeExpr.h ./src/V3AstNodeOther.h ./src/V3AstUserAllocator.h ./src/V3Begin.h ./src/V3Branch.h ./src/V3Broken.h ./src/V3CCtors.h ./src/V3CUse.h ./src/V3Case.h ./src/V3Cast.h ./src/V3Class.h ./src/V3Clean.h ./src/V3Clock.h ./src/V3Combine.h ./src/V3Common.h ./src/V3Config.h ./src/V3Const.h ./src/V3Coverage.h ./src/V3CoverageJoin.h ./src/V3Dead.h ./src/V3Delayed.h ./src/V3Depth.h ./src/V3DepthBlock.h ./src/V3Descope.h ./src/V3Dfg.h ./src/V3DfgCache.h ./src/V3DfgOptimizer.h ./src/V3DfgPasses.h ./src/V3DfgPatternStats.h ./src/V3DfgPeephole.h ./src/V3DfgVertices.h ./src/V3DupFinder.h ./src/V3EmitC.h ./src/V3EmitCBase.h ./src/V3EmitCConstInit.h ./src/V3EmitCFunc.h ./src/V3EmitCMain.h ./src/V3EmitCMake.h ./src/V3EmitMk.h ./src/V3EmitV.h ./src/V3EmitXml.h ./src/V3Error.h ./src/V3ExecGraph.h ./src/V3Expand.h ./src/V3File.h ./src/V3FileLine.h ./src/V3Force.h ./src/V3Fork.h ./src/V3FunctionTraits.h ./src/V3Gate.h ./src/V3Global.h ./src/V3Graph.h ./src/V3GraphAlg.h ./src/V3GraphPathChecker.h ./src/V3GraphStream.h ./src/V3Hash.h ./src/V3Hasher.h ./src/V3HierBlock.h ./src/V3Inline.h ./src/V3Inst.h ./src/V3InstrCount.h ./src/V3Interface.h ./src/V3LangCode.h ./src/V3LanguageWords.h ./src/V3Life.h ./src/V3LifePost.h ./src/V3LinkCells.h ./src/V3LinkDot.h ./src/V3LinkInc.h ./src/V3LinkJump.h ./src/V3LinkLValue.h ./src/V3LinkLevel.h ./src/V3LinkParse.h ./src/V3LinkResolve.h ./src/V3List.h ./src/V3Localize.h ./src/V3MemberMap.h ./src/V3MergeCond.h ./src/V3Mutex.h ./src/V3Name.h ./src/V3Number.h ./src/V3OptionParser.h ./src/V3Options.h ./src/V3Order.h ./src/V3OrderCFuncEmitter.h ./src/V3OrderGraph.h ./src/V3OrderInternal.h ./src/V3OrderMoveGraph.h ./src/V3Os.h ./src/V3PairingHeap.h ./src/V3Param.h ./src/V3Parse.h ./src/V3ParseImp.h ./src/V3ParseSym.h ./src/V3PchAstMT.h ./src/V3PchAstNoMT.h ./src/V3PreExpr.h ./src/V3PreLex.h ./src/V3PreProc.h ./src/V3PreShell.h ./src/V3Premit.h ./src/V3ProtectLib.h ./src/V3Randomize.h ./src/V3Reloop.h ./src/V3Rtti.h ./src/V3Sampled.h ./src/V3Sched.h ./src/V3Scope.h ./src/V3Scoreboard.h ./src/V3SenExprBuilder.h ./src/V3SenTree.h ./src/V3Simulate.h ./src/V3Slice.h ./src/V3Split.h ./src/V3SplitAs.h ./src/V3SplitVar.h ./src/V3StackCount.h ./src/V3Stats.h ./src/V3StdFuture.h ./src/V3String.h ./src/V3Subst.h ./src/V3SymTable.h ./src/V3TSP.h ./src/V3Table.h ./src/V3Task.h ./src/V3ThreadPool.h ./src/V3Timing.h ./src/V3Trace.h ./src/V3TraceDecl.h ./src/V3Tristate.h ./src/V3Undriven.h ./src/V3UniqueNames.h ./src/V3Unknown.h ./src/V3Unroll.h ./src/V3VariableOrder.h ./src/V3Waiver.h ./src/V3Width.h ./src/V3WidthCommit.h ./src/V3WidthRemove.h ./src/VlcBucket.h ./src/VlcOptions.h ./src/VlcPoint.h ./src/VlcSource.h ./src/VlcTest.h ./src/VlcTop.h ./src/config_build.h ./src/config_package.h ./src/config_rev.h ./src/verilog.y ./src/V3PreLex.l ./src/verilog.l test_regress/t/*.c* test_regress/t/*.h
make[1]: Leaving directory '/svaha/wsnyder/SandBox/homecvs/v4/verilator'
2024-08-26 05:01:37 -04:00
Wilson Snyder
fa4af38b0a
configure: Print inbound CXX setting
2024-08-26 04:58:59 -04:00
Wilson Snyder
a9635aaa2c
Tests: Default to check_finished=>1
2024-08-24 19:27:59 -04:00
Wilson Snyder
f0cd6dd95c
Fix REALCVT warning on integral timescale conversions ( #5378 ).
2024-08-24 08:01:28 -04:00
Wilson Snyder
d8fdfa6be2
Internals: git ignore nohup.out
2024-08-24 07:56:48 -04:00
Wilson Snyder
f9511e9755
Internals: Make V3Number::selfTest()
2024-08-24 05:41:22 -04:00
Wilson Snyder
cfe1f23fff
Commentary: Changes update
2024-08-23 18:45:54 -04:00
Wilson Snyder
8741fd17ad
Internals: cppcheck cleanups. No functional change intended.
2024-08-23 18:24:34 -04:00
ffe76717c6
Thread pool rewrite ( #5161 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
Signed-off-by: Bartłomiej Chmiel <[email protected] >
Signed-off-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Krzysztof Bieganski <[email protected] >
Co-authored-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
2024-08-23 08:36:49 -04:00
Krzysztof Bieganski
eb8bbcda05
Internals: Simplify CaptureVisitor in V3Randomize ( #5397 )
2024-08-23 07:57:57 -04:00
Arkadiusz Kozdra
ed7040adc0
Fix dot fallback finding wrong symbols ( #5394 )
2024-08-22 15:49:08 -04:00
Wilson Snyder
48776277bd
devel release
2024-08-21 08:55:53 -04:00
Wilson Snyder
8ca45df9c7
Version bump
2024-08-21 08:40:24 -04:00
Wilson Snyder
8db9c1d227
Commentary: Changes update
2024-08-21 08:40:14 -04:00
Krzysztof Bieganski
930f35acc9
Support constraint_mode ( #5338 )
2024-08-21 06:16:44 -04:00
Krzysztof Bieganski
13e0fc7c27
Fix virtual interface null checks ( #5391 )
2024-08-21 05:40:52 -04:00
Bartłomiej Chmiel
a730daabef
Support 'parameter type' in hierarchical blocks ( #5309 ) ( #5333 )
2024-08-21 05:30:59 -04:00
Andrew Nolte
3c28b72897
Tests: Add info files to golden ( #5390 )
2024-08-21 06:44:02 +03:00
Wilson Snyder
05e5f1955e
Update include/gtkwave from upstream
2024-08-20 15:23:53 -04:00
Wilson Snyder
378800ee4a
Commentary: Changes update
2024-08-20 15:13:44 -04:00
Wilson Snyder
43a57da950
Add quotes to not-found filenames
2024-08-20 14:47:43 -04:00
James Bailey and James Bailey
99a43b7695
Fix +: and -: unpacked array slicing when array has nonzero low index ( #5345 ) ( #5387 )
...
Co-authored-by: James Bailey <[email protected] >
2024-08-20 14:20:48 -04:00
Krzysztof Bieganski
59d2eea302
Fix capturing fields from superclass in randomize() with ( #5389 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-20 13:25:58 -04:00
Kaleb Barrett
6f3f64e63f
Add --timing flag as Verilated cc define ( #5383 )
2024-08-18 20:02:54 +03:00
Drew Ranck
48c71ef76c
Support default value on module input ( #5358 ) ( #5373 )
2024-08-15 10:04:07 -04:00
Ryszard Rozak
563faeb33f
Internals: Fix removing nodes in V3Life ( #5365 )
2024-08-14 09:23:24 +02:00
Wilson Snyder
9c5c77c69c
Favor use of more general idAny in parser
2024-08-13 15:25:07 -04:00
Wilson Snyder
4573e04488
Fix segfault after unsupported member call ( #5359 ).
2024-08-13 14:39:37 -04:00
Krzysztof Bieganski
6cb0a41857
Support inline random variable control ( #5317 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-13 14:20:31 -04:00
Geza Lore
124e3463fc
Fix cache config file resolution performance ( #5369 )
...
V3ConfigWildcardResolver::resolve used to only cache the result of a
name lookup if there were any directives applied to the queried name.
This can be a performance problem. E.g. the module resolver is invoked
for every variable to check for attributes. If you had 'n' variables in
the design, and you also had 'k' directives that apply to specific
modules not involving most of the 'n' variables, then checking the
attributes involved O(n*k) operations. This can be very expensive
for large 'n' and 'k'.
In this patch we resolve every name exactly once, so the same above is
now O(n) in the worst case, and often a lot smaller due to repeat
lookups.
2024-08-13 19:52:23 +02:00
Ethan Sifferman
1b15509a9c
Fix lint_off on Errors ( #5351 ) ( #5363 )
2024-08-11 21:04:46 +02:00
Wilson Snyder
eb3f10399a
Internal: Rename tokenPipeScanTypeEq. No functional change.
2024-08-11 12:15:20 -04:00
Wilson Snyder
4660806c8f
Internals: Remove wrong = new grammar rule.
2024-08-11 11:03:28 -04:00
Wilson Snyder
6f5d1037b4
Commentary
2024-08-11 10:33:04 -04:00
Wilson Snyder
24b097b228
Improve new class error ( #5359 )
2024-08-11 10:09:05 -04:00
Wilson Snyder
a0ea96b355
Favor use of more general idAny in parser
2024-08-09 18:00:36 -04:00
Wilson Snyder
a663da7393
Internals: Split idType from simple_type. No functional change intended
2024-08-09 17:45:54 -04:00
Tim Hutt
c812a9b18f
Fix shortened module names when searching for files ( #5196 ) ( #5246 )
2024-08-09 17:23:00 -04:00
Arkadiusz Kozdra
367249ec84
Add parsing but otherwise ignore std::randomize ( #5354 )
2024-08-09 17:21:32 -04:00
Wilson Snyder
f4acc59b82
Tests: Check for wrong quotes in docs ( #5355 )
2024-08-09 17:18:59 -04:00
Luca Colagrande
d1da1664f0
Docs: Fix typos in :vlopt: command usage in docs ( #5355 ) ( #5356 )
2024-08-09 14:17:36 +01:00
Krzysztof Bieganski
b100615726
Internals: Relax requirements for AstClass iteration methods ( #5335 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-09 10:05:52 +01:00
Krzysztof Bieganski
ec0815e9ac
Fix NBAs in suspendables ( #5348 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-08 22:12:00 +01:00
Krzysztof Bieganski
97e9996f0b
Fix optimized-out sentrees with --timing ( #5080 ) ( #5349 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-08 21:57:12 +01:00
Krzysztof Bieganski
b7af859ba3
Fix forks capturing non-input ports in tasks ( #5237 ) ( #5343 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-08 21:55:46 +01:00
Krzysztof Bieganski
701fa5438a
Fix output clockvar overwriting signal ( #5320 ) ( #5347 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-08 21:48:25 +01:00
Geza Lore
004865a8b2
Fix tracing_{on,off} in the presence of non-inlined modules ( #5346 )
...
Previously "*.foo.*" failed to match non-inlined instances called 'foo'.
2024-08-08 17:16:54 +01:00
Arkadiusz Kozdra
3e5859e5da
Support constraining AstSel ( #5344 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-08-08 15:37:08 +01:00
Arkadiusz Kozdra
78555b683c
Fix missing type coercion in 'inside {array}' ( #5340 )
2024-08-08 03:46:41 -04:00
Wilson Snyder
c2e44dbd99
Fix $sformat with array arguments ( #5330 ).
2024-08-08 03:32:07 -04:00
Wilson Snyder
18fc3e6089
Internals: Favor idAny in typedefs.
2024-08-07 18:45:53 -04:00
Wilson Snyder
f4f8ea0dcf
Internals: Change cast fileline to point to cast operator
2024-08-07 18:45:53 -04:00
Arkadiusz Kozdra
f78c4e8490
Fix compilation error on unreachable disable fork / wait fork ( #5339 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-08-07 18:44:02 -04:00
Arkadiusz Kozdra
e6fe367bdb
Support streams to/from arrays of wide data ( #5334 )
2024-08-06 16:18:16 +01:00
Ryszard Rozak
3426ee5170
Fix purity of functions with AstJumpBlock or AstStmtExpr ( #5332 )
2024-08-06 16:07:38 +01:00
Arkadiusz Kozdra
a32b8d80f9
Support streaming operator on arrays and wide data ( #5326 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-08-06 08:48:46 -04:00
Bartłomiej Chmiel
3b81654c72
Fix -Wunused-but-set-variable clang warning ( #5331 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2024-08-06 08:48:12 -04:00
Wilson Snyder
6abd556f5a
Tests: Fix GCC 11.4.0 hang
2024-08-06 08:47:28 -04:00
Varun Koyyalagunta
31c1df638b
Fix assert on wide expression ( #5319 ) ( #5324 )
2024-08-06 01:45:57 -04:00
Krzysztof Bieganski
f4cb2c8cf2
Add more rand_mode unsupported errors ( #5329 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-05 17:56:03 -04:00
Bartłomiej Chmiel
7d5e19365e
Support assertcontrol directive type ( #5310 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2024-08-05 17:54:13 -04:00
Wilson Snyder
6fa1ade4e0
Commentary: Changes update
2024-08-05 04:03:21 -04:00
Bartłomiej Chmiel
99c619a4c9
Error on static variable initializers using automatic variables in procedures ( #5296 )
2024-08-05 08:39:43 +01:00
Krzysztof Bieganski
37a4002098
Fix stringify in nested preprocessor macros ( #5323 )
2024-08-02 11:46:02 -04:00
Krzysztof Boroński
45ee949cc4
Internals: Disambiguate variable references under with clauses of randomize() methods ( #5277 )
2024-08-02 11:45:17 -04:00
Arkadiusz Kozdra
54f9f4b6a9
Support foreach constraints ( #5302 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-08-02 10:03:55 -04:00
Arkadiusz Kozdra
a61178bd89
Internals: Convert foreach loops in V3Begin as well as V3Width ( #5283 )
2024-08-02 08:29:05 -04:00
Krzysztof Bieganski
2f5c58b345
Support rand_mode ( #5273 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-07-31 22:30:48 +01:00
Wilson Snyder
403a197e23
Python lint fix
2024-07-28 14:57:29 -04:00
Wilson Snyder
3a659d460d
Fix ==? and !=? with X values.
2024-07-28 14:40:55 -04:00
Wilson Snyder
8707c88787
Tests: Close misc internal code coverage holes
2024-07-28 14:18:24 -04:00
github action
167cba723e
Apply 'make format'
2024-07-28 17:59:13 +00:00
Wilson Snyder
7f40dd8b5b
CI: Fix codecov upload
2024-07-28 13:58:26 -04:00
Wilson Snyder
1609c23fea
Fix cputime being zero
2024-07-28 13:14:10 -04:00
Wilson Snyder
216fc8a212
CI: Fix codecov upload
2024-07-27 07:18:50 -04:00
Wilson Snyder
5136ea1082
CI: Fix codecov upload
2024-07-27 07:02:18 -04:00
Wilson Snyder
5b931faf2b
CI: Fix codecov upload
2024-07-27 06:31:20 -04:00
Wilson Snyder
a2496e041e
CI: Change to action-based codecov upload
2024-07-26 14:07:53 -04:00
Wilson Snyder
fab268f772
CI: Change to action-based codecov upload
2024-07-26 10:39:08 -04:00
Wilson Snyder
550d47b7f4
CI: Change to action-based codecov upload
2024-07-26 10:27:00 -04:00
Markus Krause
a01a21db86
Fix make flows to pass PYTHON3 (like perl) ( #5307 ) ( #5308 )
...
Fixes #5307
2024-07-26 09:35:37 -04:00
Wilson Snyder
2082f1aa9e
Internals: Update fastcov.py from upstream
2024-07-26 08:48:12 -04:00
Wilson Snyder
50a5a1ff5b
Tests: Fix some verilog.y parser coverage holes
2024-07-26 07:29:15 -04:00
Arkadiusz Kozdra
1600cc01a4
Internals: clean up begin blocks and lifetimes in foreach loops ( #5306 )
...
According to IEEE 1800-2023 12.7.3, the loop creates an implicit block
around it, containing declarations of the loop variables with automatic
lifetime.
No functional change intended.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-07-26 05:50:29 -04:00
Ryszard Rozak
b9e1d55262
Fix handling of rand fields not referenced in constraints ( #5305 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-07-26 05:46:30 -04:00
Geza Lore
0d43c14b93
Internals: Remove redundant hash lookup ( #5276 partial) ( #5303 )
...
Minor help for #5276
2024-07-25 16:07:58 -04:00
Ricardo Barbedo
87d1c10fa7
Fix compiler coroutine check ( #5190 ) ( #5300 )
...
The necessary options to support C++ coroutines vary greatly between
compilers, its versions, and the standard library being used. This
patch makes the check for coroutine support more robust by adding a
declaration of a coroutine variable, instead of just including the
header. It also makes sure that the HAVE_COROUTINE and
CFG_CXXFLAGS_COROUTINES flags are always set together, and only when
coroutine support is detected.
2024-07-24 17:21:14 -04:00
Udaya Raj Subedi
a2506a6f96
Fix monitor block sensitivity items ( #4400 ) ( #5294 )
2024-07-24 07:18:57 -04:00
Bartłomiej Chmiel
20dba7464d
Support--compiler-include headers in user-supplied cpp files ( #5271 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2024-07-24 06:40:39 -04:00
Wilson Snyder
cb5d03ff0b
Fix WIDTHEXPAND on left shift of intuitive amount ( #5284 ).
2024-07-24 06:39:27 -04:00
github action
2727c33219
Apply 'make format'
2024-07-24 10:07:59 +00:00
Wilson Snyder
0419ed0430
Fix initializing static array in dynamic arrays and queues ( #5287 ).
2024-07-24 06:06:57 -04:00
Wilson Snyder
1e3c7a5496
Fix inline function ref port persistence
2024-07-23 18:47:04 -04:00
Wilson Snyder
d2dfcbca53
Internals: Add log_changes for updating Changes file
2024-07-23 18:36:57 -04:00
Wilson Snyder
e779934443
Commentary: Changes update
2024-07-22 17:22:37 -04:00
Arkadiusz Kozdra
a3b255b054
Internal: Suppress new clang-tidy messages ( #5293 )
...
The two most useless warning classes are llvmlibc-* on virtually every
identifier use that it does not resolve to __llvm_libc:: namespace, and
altera-* ones that warn on virtually every loop statement that it could
be unrolled with a pragma. No functional change.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-07-22 13:11:50 -04:00
Krzysztof Bieganski
f5caa4b7dc
Fix randomizing current object with rand class instance member ( #5292 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-07-22 14:41:12 +02:00
Wilson Snyder
8f4490628f
Commentary: Clarify some warning messages.
2024-07-20 17:50:14 -04:00
Wilson Snyder
df566bdf4d
Improve PINMISSING to show related port
2024-07-20 17:37:33 -04:00
Wilson Snyder
981d3ce782
Add suggestions on misspelled PLI functions.
2024-07-20 07:20:10 -04:00
Wilson Snyder
b7345eb5d5
Tests: Add checkp macro. No test functionality change.
2024-07-20 06:51:50 -04:00
Krzysztof Bieganski
2bd2b9324f
Fix inline constraints creating class random generator ( #5280 )
2024-07-19 13:03:48 -04:00
Arkadiusz Kozdra
298faa84ee
Fix elaborating foreach loops ( #5285 )
2024-07-19 14:56:30 +02:00
Arkadiusz Kozdra
43377ed8b0
Add support for this.randomize with ( #5282 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-07-19 09:14:56 +02:00
Krzysztof Bieganski
b18037b7e7
Internals: Move non-visit methods to the proper place ( #5279 )
2024-07-18 08:57:39 -04:00
Yutetsu TAKATSUKASA
095b1ccb67
Fix incorrect result of width mismatch ( #5186 ) ( #5189 )
2024-07-17 11:54:58 +02:00
Krzysztof Bieganski
2a30a87580
Fix randomization when used with inheritance ( #5268 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-07-17 08:21:45 +02:00
Krzysztof Bieganski
e11bc6beeb
Internals: Refactor function argument traits ( #5269 )
...
No functional change intended.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-07-16 20:55:04 +02:00
Arkadiusz Kozdra
0a9b31bb30
Add warning on dist in constraints ( #5264 )
2024-07-15 21:01:33 -04:00
Krzysztof Bieganski
34e37d7bd0
Keep one member map for randomize method creation ( #5263 )
...
No functional change intended.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-07-15 16:42:41 +02:00
Yangyu Chen
164a7a7c5d
Improve emitted code to use a reference for VlSelf ( #5254 )
2024-07-15 09:44:01 -04:00
Krzysztof Obłonczek
67ea819d82
Fix toggle coverage aggregation on same line ( #5248 )
...
Documentation states that minimum of all reported coverage of all signals in a line should be taken.
Previous logic would break if there were any signals with zero coverage followed by signals with
nonzero coverage - a minimum from those nonzero toggle count would be taken, disregarding zero
coverage of previous signals.
Internal-tag: [#62193 ]
Signed-off-by: Krzysztof Obłonczek <[email protected] >
2024-07-14 17:05:58 -04:00
Andrew Nolte
60f9e21d8c
Fix --x-assign to be independent from +verilator+rand+reset ( #5214 )
2024-07-14 17:04:00 -04:00
Wilson Snyder
dc037db1cd
Internals: Make upcase clean. No functional change.
2024-07-14 15:28:00 -04:00
Wilson Snyder
0658af90f5
Fix classes/modules of case-similar names ( #5109 ).
2024-07-14 13:57:16 -04:00
Wilson Snyder
131623de34
Internals: Favor s string literals. No functional change.
2024-07-14 11:39:45 -04:00
Wilson Snyder
74ae879c2f
Internals: Remove duplicate filenameNonExt. No functional change.
2024-07-14 11:31:32 -04:00
Wilson Snyder
8c3b754bac
Internals: Rename some filename functions. No functional change.
2024-07-14 09:34:54 -04:00
Wilson Snyder
e080f5c0cb
Fix tracing with --main-top-name - ( #5261 ).
2024-07-14 07:35:26 -04:00
Wilson Snyder
2284cf595d
Commentary: Changes update
2024-07-14 07:34:36 -04:00
Wilson Snyder
b1cc0c54c1
Tests: Fail with test.pl-file-needs-have_solver()-call if forget have_solver()
2024-07-13 08:55:06 -04:00
Geza Lore
4cf017d7fe
Tests: Skip t_randomize_method_constraints when no solver is installed ( #5260 )
2024-07-13 08:31:16 -04:00
Geza Lore
25f5db4b5f
DFG: Allow inlining of variabels driven from forced vars ( #5259 )
...
Not sure why this was disabled before, but it seems legal to me to
change
'forced A' -> 'B' -> 'C'
into
'forced A' -> 'B',
'forced A' -> 'C'
Fixes #5249
2024-07-13 12:35:09 +01:00
Krzysztof Boroński
3cf9606ea9
Support inline constraints for class randomization methods ( #5234 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2024-07-12 16:18:18 +02:00
Wilson Snyder
6882f8c55e
Commentary: Surfer ( #5253 )
2024-07-11 18:33:35 -04:00
Krzysztof Bieganski
2696a9a5bd
Fix unconstrained randomization of unpacked structs ( #5252 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-07-11 16:43:56 +02:00
Krzysztof Bieganski
abb46c9cb2
Refactor AstMemberSel creation with AstVar ( #5251 )
...
No functional change intended.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-07-11 16:42:58 +02:00
Wilson Snyder
bbb223f217
Fix error on empty generate with -O0 ( #5250 ).
2024-07-11 06:59:15 -04:00
Arkadiusz Kozdra
570e1bc35a
Support conditional constraints ( #5245 )
2024-07-10 11:30:18 -04:00
11da07d3b9
Support $assertcontrol assertion_type ( #5236 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
Signed-off-by: Ryszard Rozak <[email protected] >
Co-authored-by: Ryszard Rozak <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
2024-07-10 05:06:13 -04:00
Arkadiusz Kozdra
2cfec0ecc3
Support clocking blocks in virtual interfaces ( #5235 )
2024-07-09 18:31:58 -04:00
Wilson Snyder
e3e7b3f2b5
Fix errors on using string in incorrect format ( #5240 ).
2024-07-09 08:30:20 -04:00
Wilson Snyder
fe0b210a0c
Fix errors on using string in incorrect format ( #5340 ).
2024-07-09 08:29:22 -04:00
Chris Bachhuber
c383f4868f
Commentary: Mention docker hub explicitly ( #5241 )
2024-07-09 06:59:43 -04:00
Wilson Snyder
b66fdd7421
Fix unknown conversion on queues ( #5220 ).
2024-07-08 10:19:51 -04:00
Wilson Snyder
83878325a7
Commentary: Update git issue templates.
2024-07-08 08:12:58 -04:00
github action
490bc63eb5
Apply 'make format'
2024-07-06 12:13:35 +00:00
Ryan Ziegler
947b6fd23f
Add --emit-accessors ( #5182 ) ( #5227 )
2024-07-06 13:12:53 +01:00
Wilson Snyder
de44ca8df3
Fix top-level unpacked structure resets ( #5221 ).
2024-07-05 17:22:26 -04:00
Wilson Snyder
3cee54dfdf
Commentary: Changes update
2024-07-05 17:17:29 -04:00
Geza Lore
dace2c0a9a
Tests: Skip t_constraint_state when no solver is installed ( #5224 )
2024-07-04 11:42:53 +01:00
Liam Braun
ca4858eb7f
Fix concurrency for mailbox and semaphores ( #5222 )
2024-07-03 22:29:32 +01:00
Wilson Snyder and Seth Pellegrino
a6d438d111
Fix mis-removing $value$plusargs calls ( #5127 ) ( #5137 ). [Seth Pellegrino]
...
Co-authored-by: Seth Pellegrino <[email protected] >
2024-07-02 18:46:58 -04:00
Bartłomiej Chmiel
955ed3f193
Fix splitting if statements with impure conditions ( #5219 )
2024-07-02 15:17:10 -04:00
Wilson Snyder
8bffb8c391
Fix table optimizing logic with side effect ( #5137 prep)
2024-07-02 09:22:56 -04:00
Arkadiusz Kozdra
85356f464f
State-dependent constraints ( #5217 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-07-01 20:19:15 +02:00
Arkadiusz Kozdra
72993ec3dd
Support cross-module clockvars access ( #5184 )
2024-06-30 15:19:02 -04:00
404allen404
d6a294b784
Commentary: Fix typo in for --trace-max-array and --trace-max-width options ( #5205 )
2024-06-27 21:25:21 -04:00
Bartłomiej Chmiel
864a852bca
Add --compiler-include for additional C++ includes ( #5139 ) ( #5202 )
2024-06-27 18:53:44 -04:00
Wilson Snyder
b0992406aa
Commentary: Changes update
2024-06-25 19:22:00 -04:00
Bartłomiej Chmiel
9e2c8aefc8
Add --pins-sc-uint-bool to force SystemC uint type ( #5192 )
2024-06-25 05:27:09 -04:00
Gus Smith
4c584c17e6
Add -std=gnu++20 ( #5200 )
2024-06-25 05:23:50 -04:00
Wilson Snyder
3315a6e431
Internals: Also cleanup gettes/setters in .cpp. No functional change intended.
2024-06-22 19:50:59 -04:00
github action
ba0183131c
Apply 'make format'
2024-06-22 22:58:42 +00:00
Ryan Ziegler
e1580b9c3d
Internals: Reorder class getters/setters ( #5197 ). No functional change intended.
2024-06-22 18:57:54 -04:00
Tim Hutt
aadd5ea509
Fix linking with pthreads on CMake ( #5194 )
2024-06-21 10:34:11 -04:00
Philip Axer
833df6d9ea
Fix CMake installation missing verilated.mk ( #5187 ) ( #5188 )
2024-06-19 08:07:17 -04:00
Wilson Snyder
607c19a67d
Fix isPure to be superset of isOutputter.
...
This may cause some additional SIDEEFFECT warnings that previously were not shown.
2024-06-16 21:43:30 -04:00
Wilson Snyder
d5cfe1a379
Fix fusing macro arguments to not ignore whitespace ( #5061 ).
2024-06-15 09:21:21 -04:00
Wilson Snyder
6e557791c8
devel release
2024-06-15 08:49:57 -04:00
Wilson Snyder
cd693ce02b
Version bump
2024-06-15 08:43:45 -04:00
Wilson Snyder
2641bc98aa
Update include/gtkwave from upstream
2024-06-15 08:14:43 -04:00
Wilson Snyder
ad2862ce3f
Fix DPI import of null C-string ( #5179 ).
2024-06-14 22:50:54 -04:00
Bartłomiej Chmiel
4695967185
Fix signed types emitted in hierarchical Verilation ( #5178 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2024-06-14 08:07:32 -04:00
Wilson Snyder
f96e99542c
Internals: Fix cppcheck warnings. No functional change.
2024-06-13 21:29:03 -04:00
Wilson Snyder
7de193c2e9
Commentary: Changes update
2024-06-13 18:04:57 -04:00
Arkadiusz Kozdra
442c9bc316
Support parsing and otherwise ignoring inline constraints ( #5126 )
2024-06-13 08:38:20 -04:00
Arkadiusz Kozdra
3203019408
Fix coroutines without awaits to have a co_return ( #4208 ) ( #5175 )
...
After the V3Timing refactoring the V3SchedTiming phase could apparently
move away all awaits from a coroutine without adding a co_return
statement.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-06-12 15:13:52 -04:00
Geza Lore
bc853e260b
Support StructSel in unpacked array assignments ( #5176 )
2024-06-12 17:07:33 +01:00
github action
d6e5703298
Apply 'make format'
2024-06-12 11:44:29 +00:00
Alex Solomatnikov
a9e50327fd
Fix hierarchical compilation with nested -F ( #5114 ) ( #5124 )
2024-06-12 07:42:52 -04:00
Wilson Snyder
6f0a36318e
Tests: Fix test stability ( #5167 update).
2024-06-11 20:55:01 -04:00
Wilson Snyder
221fecad0b
Commentary
2024-06-11 19:47:53 -04:00
Wilson Snyder
fd1e4d9e45
Add assertion on reusing VerilatedContext ( #5167 ).
2024-06-11 19:38:58 -04:00
Wilson Snyder
920ed5ca3d
Internals: Avoid unordered_map/set. No functional change intended.
2024-06-11 18:52:09 -04:00
Arthur Rosa
2537431273
Fix table optimization when applied on real data type ( #5172 ) ( #5173 )
2024-06-11 13:26:11 -04:00
Bartłomiej Chmiel
13114f2efe
Fix SystemC BITS_PER_DIGIT in VL_ASSIGN_SBW ( #5170 )
...
The BITS_PER_DIGIT macro value differs between SystemC versions,
thus referencing it directly is required.
2024-06-10 20:45:49 -04:00
Arkadiusz Kozdra
e9f59e44a5
Fix non-constant replication in concats ( #5171 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-06-10 11:21:43 -04:00
Arkadiusz Kozdra
d4c3e35f97
Support $psprintf system function ( #4314 ) ( #5169 )
...
`$psprintf` is a non-standard system function present in some other
simulators, and has been rejected for standardization by IEEE because
of being basically the same as `$sformatf`.
To encourage users to fix their codebase, a warning is emitted by
default, but it gets otherwise interpreted as `$sformatf` as early as
during lexing.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
* wording/formatting
Signed-off-by: Arkadiusz Kozdra <[email protected] >
---------
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-06-10 08:38:26 -04:00
Wilson Snyder
02dd33b60e
Commentary: Changes update
2024-06-09 17:10:53 -04:00
Geza Lore
2bc883f3b3
Extend out-of-range select ( #5159 ) ( #5164 )
2024-06-09 17:05:14 -04:00
Geza Lore
29db25b70e
Reset radix in width warnings ( #5166 )
2024-06-09 14:39:17 +01:00
Geza Lore
d6bc0c712a
Disable ASLR for more tests. ( #5165 )
...
These show spurious errors with some toolchains due to an address sanitizer bug.
2024-06-09 14:32:31 +01:00
github action
962efa3691
Apply 'make format'
2024-06-09 02:45:26 +00:00
Valentin Atepalikhin
4babba16d6
Support 2D dynamic array initialization ( #4700 ) ( #5122 )
...
* Support 2D dynamic array initialization (#4700 )
- new[] on sub arrays (as per original issue)
- Built-in methods for sub-arrays
- Initialization and literals assignmensts
- Dynamic array as an element for other arrays and queues
2024-06-08 22:44:45 -04:00
Wilson Snyder
5363d89870
Tests: Disable msbuild executable running ( #5163 )
2024-06-08 19:37:31 -04:00
Wilson Snyder
44acb08ea9
Tests: Commentary - enable msbuild debug
2024-06-08 19:36:50 -04:00
Yutetsu TAKATSUKASA
6584b4d426
Fix assertion failure in V3Gate ( #5101 )
2024-06-08 08:37:01 -04:00
Paul Bowen-Huggett
9ff06c1664
Fix 'experimental/coroutine' file not found on macOS ( #5030 ) ( #5031 ) ( #5151 )
...
libcxx has removed the experimental/coroutine include file in favor of
the C++20-standard coroutine include. If the latter is available we
use it otherwise falling back to the existing experimental version (in
which case we also disable the deprecated-experimental-coroutine warning).
(See also https://reviews.llvm.org/D108697 .)
2024-06-08 08:33:50 -04:00
github action
1537c9badc
Apply 'make format'
2024-06-08 03:05:01 +00:00
Wilson Snyder
708f875b31
Fix MSVC warnings. No functional change intended.
2024-06-07 22:52:56 -04:00
Kaleb Barrett
0d3cb86a44
Fix VerilatedVpiPutHolder class ( #5156 )
2024-06-07 22:25:33 -04:00
Wilson Snyder
5c2b9d55b2
Fix MSVC C4805 == type mismatch warning
2024-06-07 22:14:32 -04:00
Arkadiusz Kozdra
1dbf1be3e6
Support inout clocking items ( #5160 )
2024-06-07 08:30:58 -04:00
Wilson Snyder and Dercury
3f886f7c61
Fix select value too wide ( #5148 ) ( #5153 ).
...
Co-authored-by: Dercury <[email protected] >
2024-06-07 08:27:03 -04:00
Wilson Snyder
7c9fa8647c
Fix string to be more standard ( #5082 ) ( #5083 ).
2024-05-31 21:51:12 -04:00
Wilson Snyder
dbf68a99e8
Tests: SHow expected values in t_typenames
2024-05-30 22:54:40 -04:00
Andrew Nolte and Andrew Nolte
53c2e416f4
Tests: Extend t_typenames ( #5083 )
...
Co-authored-by: Andrew Nolte <[email protected] >
2024-05-30 22:32:14 -04:00
github action
e834b5be2d
Apply 'make format'
2024-05-29 20:56:45 +00:00
Kaleb Barrett
bd7689f59a
Fix overflow of string on VPI reads ( #5145 ) ( #5146 )
2024-05-29 16:55:46 -04:00
Kaleb Barrett
3496eb80a5
Improve VerilatedVpiPutHolder storage requirements ( #5144 )
2024-05-29 08:39:08 -04:00
Ryszard Rozak
839c3bf444
Commentary: Fix docs of verilator_coverage ( #5149 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-05-29 08:11:35 -04:00
Geza Lore
d4b3583307
Apply DFG regularization to cyclic graphs ( #5142 )
...
The Dfg2Ast conversion assumes the 'regularize' pass was run, but we
failed to run it on cyclic sub-graphs. Do so now.
Fixes #5130 .
2024-05-26 12:01:30 +01:00
Wilson Snyder
ee130cb20d
Tests: Skip if no constraint solver
2024-05-23 22:25:14 -04:00
github action
552a146f9c
Apply 'make format'
2024-05-22 11:54:22 +00:00
Pawel Jewstafjew
913679f261
Fix output C++ type error on change detect of I/O arrays ( #5125 ) ( #5131 )
...
operand order reversed for AstCMethodHard "neq"
interface between C-style arrays and VlUnpacked
overloads added to VlUnpacked::neq(), VlUnpacked::assign()
VlUnpacked::operator=() added
Fixes #5125
2024-05-22 12:53:28 +01:00
Ethan Sifferman
d9078df650
Fix 4-state value support for $readmem ( #5070 ) ( #5078 )
2024-05-21 17:27:32 -04:00
Wilson Snyder
f84592af49
Fix x-valued parameters with --x-assign unique ( #5129 ).
2024-05-21 08:07:57 -04:00
Wilson Snyder
5f85c89425
Commentary: Changes update
2024-05-18 17:48:52 -04:00
Wilson Snyder
94f789b677
Update issue template
2024-05-18 17:41:36 -04:00
Arkadiusz Kozdra
739be2f782
Support constrained randomization with external solvers ( #4947 )
2024-05-17 10:38:34 -04:00
Krzysztof Bieganski
25b9a16bc7
Fix references to ports in forks ( #5123 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-05-17 07:38:36 -04:00
Arkadiusz Kozdra
9a8e68928d
Internals: Move getenvStr to verilatedos. ( #5118 )
...
* Internals: Move getenvStr to verilatedos. No functional change intended.
* Fix POS34-C. Do not call putenv() with a pointer to an automatic variable as the argument.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-05-13 10:23:51 -04:00
Todd Strader
19cccd170e
Fix vpiInertialDelay for memories ( #5113 )
2024-05-10 18:49:43 -04:00
Wilson Snyder
d99c8f5d44
Fix redundant AstExtend breaks DFG ( #5112 )
2024-05-10 18:48:09 -04:00
Geza Lore
cf111d2e1f
Do not create aliases for forced port signals ( #5105 )
...
+ don't remove forced signals in V3Const and Dfg
Fixes #5062
2024-05-10 18:19:51 +01:00
Arkadiusz Kozdra
45eb5b8a5c
Fix method calls parsing in constraints ( #5110 )
2024-05-10 06:37:19 -04:00
Yinan Xu
ce5cad17a8
Add increasing of stack size when possible ( #5071 ) ( #5104 )
2024-05-08 22:40:42 -04:00
Wilson Snyder
ed01befc25
Fix tracing interface functions ( #5108 ).
2024-05-08 22:23:53 -04:00
Wilson Snyder
69a2bfee68
Commentary: Changes update
2024-05-08 08:41:56 -04:00
Wilson Snyder
1cc37ad6ce
Internals: Add missing VL_DO_DANGLING. No functional change intended.
2024-05-08 08:36:24 -04:00
2a9f29912c
Add parameterless assert control system tasks ( #5010 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
Co-authored-by: Ryszard Rozak <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
Co-authored-by: Arkadiusz Kozdra <[email protected] >
2024-05-08 08:31:34 -04:00
Wilson Snyder
298e0f24d1
Add traceCapable indication to model header ( #5053 ).
2024-05-03 20:18:06 -04:00
Geza Lore
80b08b71aa
Support NBAs to arrays inside loops ( #5092 )
...
For NBAs that might execute a dynamic number of times in a single
evaluation (specifically: those that assign to array elements inside
loops), we introduce a new run-time VlNBACommitQueue data-structure
(currently a vector), which stores all pending updates and the necessary
info to reconstruct the LHS reference of the AstAssignDly at run-time.
All variables needing a commit queue has their corresponding unique
commit queue.
All NBAs to a variable that requires a commit queue go through the
commit queue. This is necessary to preserve update order in sequential
code, e.g.:
a[7] <= 10
for (int i = 1 ; i < 10; ++i) a[i] <= i;
a[2] <= 10
needs to end with array elements 1..9 being 1, 10, 3, 4, 5, 6, 7, 8, 9.
This enables supporting common forms of NBAs to arrays on the left hand
side of <= in non-suspendable/non-fork code. (Suspendable/fork
implementation is unclear to me so I left it unchanged, see #5084 ).
Any NBA that does not need a commit queue (i.e.: those that were
supported before), use the same scheme as before, and this patch should
have no effect on the generated code for those NBAs.
2024-05-03 07:45:49 -04:00
Vito Gamberini
64ba569f0d
Fix MacOS missing <type_traits> header ( #5096 ) ( #5097 )
2024-05-02 21:38:36 -04:00
Wilson Snyder
3cb4033c97
Fix width extension of unpacked array select ( #5095 ).
2024-05-02 20:41:39 -04:00
github action
6509bac59e
Apply 'make format'
2024-05-02 23:03:39 +00:00
Wilson Snyder
ec45a77d93
Fix macro expansion in strings per 1800-2023 ( #5094 ).
2024-05-02 19:02:28 -04:00
Wilson Snyder
8044833c74
Fix $typename on array.min and others ( #5049 ).
2024-05-01 20:07:13 -04:00
Geza Lore
3f89bdcfac
Defer conversion of set flag based AssignDlys ( #5091 )
...
No functional change. Postpone the conversion of all AstAssignDlys that
use the 'VdlySet' scheme for array LHSs until after the complete
traversal of the netlist. The next patch takes advantage of this by
using some extra information also gathered through the traversal to
change the conversion.
AstAssignDlys inside suspendable or fork are not deferred and are
processed identical to the previous version.
There are some TODOs in this patch that are fixed in the next patch.
Output code perturbed due to variable ordering.
MULTIDRIVEN message ordering perturbed due to processing order change.
2024-05-02 00:24:00 +01:00
Todd Strader
c99364b81a
Support vpiInertialDelay ( #5087 )
2024-05-01 18:56:50 -04:00
Geza Lore
d841a791e6
Refactor V3Delayed to enable algorithmic extension ( #5090 )
...
No functional change.
This patch is just cleanup with some non-functional changes to enable
the next patch. Most importantly createDlyOnSet, which implements NBAs
for arrays, has a new streamlined implementation that does the same
thing. Some output code is perturbed due to statement/local variable
insertion order.
Also renamed Vdlyvfoo to VdlyFoo for easier readability of the generated
code.
2024-05-01 23:06:25 +01:00
Geza Lore
b5b937e2f2
Fix missed optimization in V3Delayed ( #5089 )
...
Checking the wrong node meant we never actually pushed constant
bit-select indices into the delayed update, as was the intention, but
always generated a temporary instead.
2024-05-01 16:22:56 +01:00
Todd Strader
4a41f69293
Internals: Remove C-style cast in VPI_HANDLE ( #5088 )
2024-05-01 10:11:44 -04:00
Wilson Snyder
8fd038f88e
Add --localize-max-size option and optimization ( #5072 ).
2024-04-30 19:46:54 -04:00
Wilson Snyder
4982f63da2
Update coverage for last commit
2024-04-30 19:34:41 -04:00
Wilson Snyder
71bc60fb91
Add error on zero width select ( #5028 ).
2024-04-30 18:38:37 -04:00
Wilson Snyder
0da7ecf753
Commentary: Changes update
2024-04-30 07:37:06 -04:00
Andrea Calabrese
25ca1af8b3
Internals: Fix missing const ( #4899 )
2024-04-29 22:57:56 -04:00
Wilson Snyder
5d54fa8e6f
Fix missing parameters with comma to be errors ( #4979 ) ( #5012 ).
2024-04-29 22:41:16 -04:00
Christopher Taylor
e8c5b9faad
Fix missing flex include path variable ( #4970 ) ( #4971 )
2024-04-29 22:01:09 -04:00
Aleksander Kiryk
8e0301c287
Fix bound queue printing ( #5032 )
2024-04-29 21:52:06 -04:00
Iztok Jeras
3f625fc359
Tests: Add unsupported streaming LHS tests ( #4302 )
2024-04-29 21:35:19 -04:00
Geza Lore
72b96d5069
tests: disable ASLR for t_trace_ub_misaligned_address ( #5075 )
...
This works around an address-sanitizer bug hit with some GCC versions
2024-04-29 15:38:00 +01:00
Bartłomiej Chmiel
d1b45b8d32
Fix attempted to destroy locked thread pool error ( #5040 )
2024-04-29 07:59:24 -04:00
Wilson Snyder
5601056ed0
Tests: Check for bad event methods
2024-04-28 13:10:25 -04:00
Wilson Snyder
8ed269c77f
Make 'disable isn't underneath a begin' into UNSUPPORTED error ( #4699 ).
2024-04-27 21:30:40 -04:00
Geza Lore
27b7e70218
Fix DFG assertion with SystemC ( #5076 )
...
Fixes #5050
2024-04-27 13:41:10 +01:00
Geza Lore
97680656d3
Remove unknown '--' form cmake -E ( #5073 )
...
After #5063 , with cmake 3.22.1, I get test failures, saying:
cmake -E env: unknown option '--'
The '--' is necessary so removing.
2024-04-27 11:09:59 +01:00
Michael Bikovitsky
4202ec2ab2
Fix CMake builds to export VERILATOR_ROOT ( #5063 )
2024-04-26 19:29:10 -04:00
Wilson Snyder
4f3a816fb0
Fix false ASSIGNIN on functions with explicit port map ( #5069 ).
2024-04-26 19:26:21 -04:00
Todd Strader
25fd8ef5c0
Add VPI eval needed tracking ( #5065 )
2024-04-25 09:07:31 -04:00
Gökçe Aydos
a9664b8d16
Remove $(info) which cannot be silenced by -MAKEFLAGS '--quiet' ( #5059 )
2024-04-20 08:48:16 -05:00
Wilson Snyder
26a5729514
Add CITATION.cff ( #5057 ) ( #5058 ).
2024-04-19 20:33:11 -04:00
Arkadiusz Kozdra
5b839699ac
Support empty queue as dynarray default value ( #5055 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-04-18 11:53:23 -05:00
Wilson Snyder
1315aa31ed
Commentary
2024-04-13 08:18:45 -04:00
Wilson Snyder
5d8da6b4ac
Fix width extension on delays ( #5045 ).
2024-04-13 08:16:59 -04:00
Wilson Snyder
aac2563a07
Commentary: Changes update
2024-04-13 08:03:57 -04:00
Wilson Snyder
8e44487354
Tests: update style
2024-04-13 08:02:25 -04:00
Wilson Snyder
1012c054e6
Fix $system with string argument ( #5042 ).
2024-04-11 17:31:14 -04:00
Paul Wright
a8b5738b44
Support __en/__out signals on top level inout ports ( #4812 ) ( #4856 )
2024-04-11 09:02:58 -04:00
Wilson Snyder
72845167e6
Commenary: Fix README badge paragraph
2024-04-10 17:02:07 -04:00
Krzysztof Bieganski
7ca2d6470a
Fix consecutive zero-delays ( #5038 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-04-05 16:48:47 -04:00
Wilson Snyder
33e999e01a
devel release
2024-04-05 06:23:30 -04:00
Wilson Snyder
522bead374
Version bump
2024-04-05 05:52:00 -04:00
Wilson Snyder
030286142f
Commentary: Changes update
2024-04-04 22:11:33 -04:00
Wilson Snyder
8a4ceb5717
Tests: Fix test failure, last commit.
2024-04-02 07:04:27 -04:00
Andrew Nolte
63fa6accc4
[Vpi] Fix missing scopes 2 ( #4965 )
2024-04-01 23:11:15 -04:00
Wilson Snyder
28718f964a
Fix tracing replicated hierarchical models ( #5027 ) ( #5029 )
2024-03-30 16:00:52 -04:00
Wilson Snyder
1d486e3a59
Rename statsPrintSummary()
2024-03-30 13:19:47 -04:00
Wilson Snyder
9b396f7125
Fix pylint warning
2024-03-30 13:13:51 -04:00
Wilson Snyder
e16cbce52e
Internals: Fix clang_check_attributes false error print
2024-03-30 11:58:34 -04:00
Wilson Snyder
840970e8f7
Internals: Add VL_MT_SAFE flags
2024-03-30 11:54:29 -04:00
Wilson Snyder
e390d6779d
Internals: Rename threadsInModel()
2024-03-30 11:13:14 -04:00
Wilson Snyder
39ee522f92
Commentary: Changes update
2024-03-28 08:22:15 -04:00
Wilson Snyder
9526efcf72
Fix V3Hash MacOS ambiguity ( #5011 )
2024-03-28 08:11:48 -04:00
github action
d397e0d838
Apply 'make format'
2024-03-28 11:32:57 +00:00
Szymon Gizler
8301fdc6d3
Add JSON AST dumps ( #5020 )
2024-03-28 07:32:18 -04:00
Arkadiusz Kozdra
f645382f11
Support inside range with implicit type conversion ( #5026 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-03-28 07:31:45 -04:00
Wilson Snyder
1ed5557d2d
Support 1800-2023 class and function :initial, :extends, :final virtual overrides ( #5025 ). ( #5025 )
2024-03-27 23:57:58 -04:00
Wilson Snyder
28b9216f8a
Fix tracing class parameters ( #5014 ).
2024-03-27 20:07:46 -04:00
Wilson Snyder
0114cb67ca
Fix $readmem with missing newline ( #5019 ).
2024-03-27 18:42:20 -04:00
Wilson Snyder
ea8f86dd30
Internals: Prefer '(void)' to avoid unused var. No functional change.
2024-03-27 18:07:14 -04:00
Wilson Snyder
0ff77fc352
Internals: Remove extra single-line {}. No functional change.
2024-03-27 17:57:49 -04:00
Wilson Snyder
341963e820
Internals: Avoid '%Error' so can grep logs for real errors
2024-03-27 09:00:34 -04:00
Wilson Snyder
db60b92613
Fix internal error on missing pattern key ( #5023 )
2024-03-27 08:41:58 -04:00
Geza Lore
98206a4f04
Improve V3List user interface ( #4996 )
2024-03-25 23:06:25 +00:00
Wilson Snyder
4df9e2e0e5
Add printing summary reports ( #4909 ) ( #5018 )
2024-03-25 07:03:17 -04:00
Wilson Snyder
34e4cffb62
Add stats on output size
2024-03-24 10:50:53 -04:00
Wilson Snyder
71d76c993c
Fix MSVC++ warnings. No functional change.
2024-03-24 10:19:26 -04:00
Wilson Snyder
e67bdb4c08
Commentary
2024-03-24 09:23:37 -04:00
Wilson Snyder
23f013f2d7
Add stats on input size etc ( #5017 )
2024-03-24 09:14:31 -04:00
Geza Lore
9b729b80e0
Plug memory leaks ( #5016 )
2024-03-23 22:12:43 +00:00
Wilson Snyder
38ad328956
Remove duplicate stop ignored messages
2024-03-22 19:35:42 -04:00
Wilson Snyder
f767f0cfaa
Commentary
2024-03-22 19:35:13 -04:00
Fuad Ismail
1c79df8630
Support stream operation on unpacked array ( #4714 ) ( #5006 )
2024-03-21 18:26:42 -04:00
Wilson Snyder
248573205b
Commentary: Changes update
2024-03-20 18:27:35 -04:00
Arkadiusz Kozdra
88831ca21b
Fix preprocessor to respect strings in joins ( #5007 )
...
This adheres more to the wording used in IEEE 1800-2017 22.5.1,
specifying the join operator to be more of a delimiter than join:
> A `` delimits lexical tokens without introducing white space,
> allowing identifiers to be constructed from arguments.
Before, string RHS arguments to the join operator were silently dropped.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-03-20 08:54:23 -04:00
Arkadiusz Kozdra
26f15e11c4
Fix unique {} constraints missing semicolon ( #5001 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-03-19 08:22:39 -04:00
Ryszard Rozak
5c0a7e06dc
Fix inout ports of unpacked stuct type ( #5000 )
2024-03-19 06:43:06 -04:00
Andrew Nolte
290b313dc0
Fix missing VPI scopes ( #4918 )
2024-03-18 20:47:28 -04:00
Wilson Snyder
93e5ca3f6d
Fix class type as an associative array parameter ( #4997 ).
2024-03-18 20:44:18 -04:00
Geza Lore
6ffff8565f
Use the same serial ordering within MTasks as we use in serial mode ( #4994 )
...
The goal here is to use as single ordering heuristic (which can be
improved later) within MTasks as we do for serial code ordering. The
heuristic itself is factored out into the new OrderMoveGraphSerializer.
This also yields slightly nicer ordering than the previously use
GraphStream, so we end up with fewer trigger (domain) conditionals in
the MTasks, this can be worth a few percent speedup.
This has the somewhat nice side-effect of reusing OrderMoveGraphVertex
for both serial and parallel mode, so MTaskMoveGraphVertex can be
removed.
Serial mode yields identical output.
2024-03-17 13:15:39 +00:00
Geza Lore
494e05b326
Fix install instructions for attribute checks, do the same in CI ( #4995 )
...
On Ubuntu 22.04, pip install clang picks up a mismatched version by
default. There are 'apt' packages with correct dependencies, so use
those instead.
2024-03-17 12:10:13 +00:00
Kevin Nygaard
a24f61403a
Support implicitly-typed variable definitions in for-loop initializers ( #4945 ) ( #4986 )
...
- Adds support for C-style for-loop initializers
- Current implementation supports: for (x a = 1, y b = 2, ...)
- This patch extends support to: for (x a = 1, b = 2, ...)
- Adds unit test for new feature
2024-03-16 19:02:37 -04:00
Geza Lore
292cc54768
Compute MTask affinity in V3VariableOrder ( #4991 )
...
Instead of carrying around MTask affinity from scheduling, compute it in
V3VariableOrder (where it is used), by tracing through the code. This
simplifies some code and has the benefit of handling variables
introduced after scheduling. It's worth a few % speed at run-time, and
the new implementation of V3VariableOrder is slightly more efficient,
though the speed/space is still dominated by the TSP sort.
2024-03-16 16:32:12 +00:00
Geza Lore
e8a9662eb5
Simplify LogicMTask/ExecMTask IDs ( #4990 )
...
There is no strong need to re-map LogicMTask IDs and it just adds extra
processing. Instead we just allocate a separate set of ExecMTask IDs as
they are created, which can also be used as the unique profiling ID as
well. The only effect on the output of this is the change in mtask IDs
emitted, which was fairly arbitrary to begin with.
2024-03-16 14:02:17 +00:00
Wilson Snyder
0262819c20
Fix object assignment from conditionals ( #4968 ).
2024-03-16 09:12:18 -04:00
Wilson Snyder
d3b93a1113
Fix object reference to conditional null : null
2024-03-16 09:12:18 -04:00
Wilson Snyder
5f8c06c805
Internals: Add AstNode::isNull(). No functional change.
2024-03-16 09:12:18 -04:00
Kevin Nygaard
a5ad26cd28
Fix tests on macOS ( #4984 ) ( #4985 )
2024-03-16 09:08:03 -04:00
Fuad Ismail
5802818b9a
Add error when pass net to function argument ( #4132 ) ( #4966 )
2024-03-16 08:25:42 -04:00
Geza Lore
df519ff16e
Fix --prof-exec predicted time values ( #4988 )
...
Wrapping the functions in #4933 broke --prof-exec report as the
predicted MTask times are computed during thread packing, but are
emitted in the wrapping functions.
2024-03-16 12:17:24 +00:00
Geza Lore
bf8a88a0ad
Do not create any empty ExecMTasks ( #4987 )
2024-03-16 12:00:32 +00:00
Geza Lore
878204db73
Do not feed any empty logic into scheduling ( #4972 )
2024-03-16 10:35:56 +00:00
Nolan Poe
08c76b1da6
Fix GCC14 warnings on template specialization syntax ( #4974 ) ( #4975 )
2024-03-15 22:21:08 -04:00
Wilson Snyder
e82c9db6da
Fix unpacked structure upper bit cleaning ( #4978 ).
2024-03-15 21:56:24 -04:00
Wilson Snyder
65c3cb4708
Tests: stop testing if --fail-max tests fail
2024-03-15 21:11:24 -04:00
Wilson Snyder
0cab076b86
CI: Reenable address sanitizer and fix core dumps ( #4983 )
2024-03-15 21:06:21 -04:00
Wilson Snyder
3a28ed24ea
Revert last bin/verilator change.
2024-03-15 10:34:50 -04:00
Wilson Snyder
71775eae4c
sanitize
2024-03-15 10:32:31 -04:00
Wilson Snyder
953249aa43
CI: Add dist-vlt-3 to avoid out of disk space
2024-03-12 07:49:01 -04:00
Wilson Snyder
229dbbb100
Tests: RUn same job count as CPU instead of +1 to reduce CI congestion
2024-03-11 20:13:23 -04:00
Wilson Snyder
4a439beae5
Add error on missing pure virtual functions ( #4961 ).
2024-03-11 18:56:30 -04:00
Wilson Snyder
49022c3e73
Add error on calling static function without object ( #4962 ).
2024-03-11 18:23:55 -04:00
Geza Lore
c92ced4ac7
Do not defer deletion in const-bit-op-tree
...
Deferring deletion of unused terms is not necessary, but can cause huge
memory usage increases in some bad cases.
2024-03-11 17:33:40 +00:00
Wilson Snyder
ba47da6587
Internals: Move vl_timescaled_double to verilated_funcs.h. No functional change intended
2024-03-10 22:34:32 -04:00
Wilson Snyder
2c27f22900
Remove unused vltstd::exchange, should be using C++14 std::exchange instead
2024-03-10 22:32:51 -04:00
Geza Lore
c0391990ad
Increase graph ParallelismReprot values to uint64_t
2024-03-10 18:56:31 +00:00
Geza Lore
2247e1e345
Cleanup/simplify V3OrderParallel ( #4959 )
...
No functional change.
2024-03-10 18:15:45 +00:00
Geza Lore
e4847464d4
Split V3Partition into logically separate pieces ( #4958 )
...
V3Partition used to contain 2 conceptually separate set of algorithms
- The MTask partitioning/coarsening algorithm used by V3Order. This has
been moved to V3OrderParallel.cpp
- The lowering of AstExecGraph into per thread functions by packing
tasks into threads and creating additional code
(V3Partition::finalize). This has been moved to the new
V3ExecGraph.cpp
This patch is just code movement/rename with minimal fixes required to
do so.
2024-03-10 15:58:58 +00:00
Wilson Snyder
7694a7bf41
Fix suggestion of ulimit -s ( #4956 )
2024-03-10 11:20:25 -04:00
Geza Lore
a686e547cf
Factor out graph parallelism report into a generic algorithm ( #4957 )
...
This is a generic algorithm parametrised by a cost function, so
implement it as such for easy reuse.
2024-03-10 14:56:43 +00:00
Geza Lore
1481d34959
Add candidate item count to MergeCond stats
2024-03-09 22:11:04 +00:00
Nolan Poe
04512e5d04
Add custom version for verilator --version packaging ( #4954 )
2024-03-09 16:44:25 -05:00
Geza Lore
9a3aed57b1
Internals: Simplify/cleanup V3OrderSerial ( #4955 ). No functional change.
...
Remove redundant data structures and simplify/cleanup implementation.
No functional change. Output is identical.
2024-03-09 16:19:35 -05:00
Geza Lore
5a69321be3
Split V3Order into further part and decouple various components ( #4953 )
...
Continuing the idea of decoupling the implementations of the various algorithms.
The main points:
-Move the former "processDomain" stuff, dealing with assigning combinational logic into the relevant sensitivity domains into V3OrderProcessDomains.cpp
-Move the parallel code construction in V3OrderParallel.cpp (Could combine this with some parts of V3Partition - those not called from V3Partition::finalize - but that's not for this patch).
-Move the serial code construction into V3OrderSerial.cpp
-Factored the very small common code between the parallel and serial code construction (processMoveOneLogic) into V3OrderCFuncEmitter.cpp
2024-03-09 12:43:09 +00:00
Wilson Snyder
5ee938fd1c
Fix assignment of null into struct member ( #4952 ).
2024-03-08 17:33:51 -05:00
Arkadiusz Kozdra
f78783e187
Internals: Use LogOr/LogAnd on inside operator expansion ( #4951 )
...
This will help introducing constrained randomization, as SMT solvers
treat booleans and 1-bit vectors as incompatible types.
2024-03-08 08:17:41 -05:00
Wilson Snyder
11bfe7a7bb
cppcheck fixes. No functional change.
2024-03-07 19:20:00 -05:00
Wilson Snyder
8ba494c71f
Fix null characters in shortened identifiers ( #4946 ).
2024-03-07 18:09:55 -05:00
Geza Lore
acb63c929b
Split V3Order.cpp into multiple smaller files ( #4950 ). No functional change intended.
...
Move OrderBuildVisitor into V3OrderGraphBuilder.cpp (and rename to
V3OrderGraphBuilder). Move ProcessMoveBuildGraph to
V3OrderMoveGraphBuilder.cpp (and rename to V3OrderGraphBuilder).
This patch is pure code movement/rename, no refactoring at all.
2024-03-07 17:12:19 -05:00
Geza Lore
26dd5d4550
Add some missing VNUserInUse ( #4949 )
2024-03-07 20:26:58 +00:00
Bartłomiej Chmiel
32f288084a
Add UNUSEDLOOP when unused loop is removed ( #4926 )
2024-03-07 08:33:49 -05:00
Andrew Nolte
6db149c588
Fix generate blocks in vpi_iterate ( #3609 ) ( #4913 )
2024-03-06 18:33:30 -05:00
Geza Lore
0fed5f8b3e
Avoid creating redundant vertices in V3DfgPeephole ( #4944 )
...
Add a new data-structure V3DfgCache, which can be used to retrieve
existing vertices with some given inputs vertices. Use this in
V3DfgPeephole to eliminate the creation of redundant vertices.
Overall this is performance neutral, but is in prep for some future
work.
2024-03-06 18:01:52 +00:00
Geza Lore
a30930bdcc
Fix unsound temporary name generation in V3DfgRegularize
...
Sadly used to produce some conflicting names.
2024-03-05 19:17:41 +00:00
Geza Lore
3a1355fb54
Fix bad assertion in DFG variable elimination
...
Fixes #4943
2024-03-05 18:51:46 +00:00
Andrew Nolte
97db128d66
Tests: Add VPI dump testcases ( #4838 )
2024-03-05 12:08:22 -05:00
Wilson Snyder
3d57256070
Commentary: Changes update
2024-03-04 08:22:36 -05:00
Wilson Snyder
5dc8fb5b4f
Commentary ( #4930 )
2024-03-04 08:04:39 -05:00
Wilson Snyder
3f0d434f82
Gtkwave: Update from upstream for warning cleanup ( #4941 )
2024-03-03 19:24:03 -05:00
Wilson Snyder
2cdc5ea48b
Fix unaligned access in --trace --runtime-debug ( #4941 ).
2024-03-03 12:33:11 -05:00
Geza Lore
745605efe3
Fix DFG removing forceable signals ( #4942 )
...
DFG could remove forceable signals by replacing them with their
in-design driver. This is a bit of a pain to prevent, and ideally the
forcing transform should happen before DFG, but implementing it there is
a pain due to having to rewrite ports based on direction. This is an
attempted fix in DFG. More cases might remain.
2024-03-03 16:22:41 +00:00
Wilson Snyder
0fbd4313b2
Fix __Vlip undefined error in --freloop ( #4824 ).
2024-03-03 11:10:46 -05:00
Wilson Snyder
9f8f61ef2f
Internals: Only show SimulateVisitor note once per type
2024-03-03 11:10:19 -05:00
github action
4b1f4938b8
Apply 'make format'
2024-03-03 15:23:47 +00:00
Kefa Chen
5f1dc73a1b
Support public packed struct / union ( #860 ) ( #4878 )
2024-03-03 10:23:04 -05:00
Geza Lore
5e1fc6e24d
Add DFG 'regularize' pass, and improve variable removal ( #4937 )
...
This functionality used to be distributed in the removeVars pass and the
final dfgToAst conversion. Instead added a new 'regularize' pass to
convert DFGs into forms that can be trivially converted back to Ast, and
a new 'eliminateVars' pass to remove/repalce redundant variables. This
simplifies dfgToAst significantly and makes the code a bit easier to
follow.
The new 'regularize' pass will ensure that every sub-expression with
multiple uses is assigned to a temporary (unless it's a trivial memory
reference or constant), and will also eliminate or replace redundant
variables. Overall it is a performance neutral change but it does
enable some later improvements which required the graph to be in this
form, and this also happens to be the form required for the dfgToAst
conversion.
2024-03-02 19:49:29 +00:00
Wilson Snyder
0ec32ee404
Parse 1800-2023 map expressions and throw UNSUPPORTED
2024-03-02 10:15:19 -05:00
Wilson Snyder
97b21b3849
Parse 1800-2023
2024-03-02 10:15:19 -05:00
Wilson Snyder
214173c6b8
Support 1800-2023 preprocessor ifdef expressions; add PREPROC zero warning.
2024-03-02 10:15:19 -05:00
Wilson Snyder
3786f59e03
Change to IEEE 1800-2023 warning mentions
2024-03-02 10:15:19 -05:00
Wilson Snyder
fa7234ff68
Support 1800-2023 DPI headers, svGetTime/svgGetTimeUnit/svGetTimePrecision methods.
2024-03-02 10:15:19 -05:00
Wilson Snyder
91dd3c5fac
Support 1800-2023 keywords.
2024-03-02 10:15:19 -05:00
Wilson Snyder
a378dbd9b2
Tests: Fix t_dist_whitespace
2024-03-02 10:14:54 -05:00
Yutetsu TAKATSUKASA
da9521a351
Internals: Add --debug-width option for developers to check width consistency ( #4923 )
2024-03-02 08:57:26 -05:00
Wilson Snyder
af51107587
Fix statistics missing some additions.
2024-03-01 20:27:57 -05:00
Wilson Snyder
e60f652a64
Commentary ( #4936 )
2024-03-01 17:32:26 -05:00
Wilson Snyder
a4813ec677
Add warning on TOP-named modules ( #4935 ).
2024-03-01 17:28:12 -05:00
Kamil Rakoczy
01dadb0a8d
Fix try-lock spuriously fails ( #4931 ) ( #4938 )
2024-03-01 15:29:13 -05:00
Geza Lore
9dcb7ea6a9
Fix minor V3DfgPatternStats coding issues
2024-03-01 14:56:35 +00:00
github action
adfe072b89
Apply 'make format'
2024-03-01 14:15:34 +00:00
Yan Xu
b12f8b3d73
Fix V3Unknown unpacked struct x-assign ( #4934 )
2024-03-01 09:14:49 -05:00
Geza Lore
f56f318217
Make installation relocatable, and the installation testable ( #4927 )
...
Fixes #4893
2024-03-01 00:08:28 +00:00
Geza Lore
3af0eb7fa0
Internals: Emit a separate CFunc for each MTask body ( #4932 ) ( #4933 )
2024-02-29 16:53:53 -05:00
Wilson Snyder
a69cb9b044
Tests: Avoid verilated.v include in most tests
2024-02-27 18:08:37 -05:00
Geza Lore
b68a696859
Ignore all JSON tree dumps in test-snap/test-diff
2024-02-27 17:16:34 +00:00
Wilson Snyder
e320b0b581
Internals: Favor const_iterators. No functional change intended.
2024-02-25 17:12:13 -05:00
Wilson Snyder
42041f2403
Fix invalid cast on string structure creation ( #4921 ).
2024-02-25 08:19:53 -05:00
Wilson Snyder
881c6ee655
devel release
2024-02-24 07:52:19 -05:00
Wilson Snyder
d8b2993974
Version bump
2024-02-24 07:39:16 -05:00
Wilson Snyder
30e711aa5c
Commentary: Changes update
2024-02-23 11:49:42 -05:00
Yutetsu TAKATSUKASA
51ae8e13fb
Add --assert-case option ( #4919 )
2024-02-23 23:05:53 +09:00
Geza Lore
0892b39ad2
Fix incorrect code generation for change expression on typedefed unpacked array ( #4915 )
2024-02-23 03:53:42 -05:00
Geza Lore
5964d5cf63
Fix inconsistent driver resolution with typedefs ( #4917 )
2024-02-22 18:33:23 +00:00
Wilson Snyder
2162a31d3a
Commentary: Changes update
2024-02-22 03:57:56 -05:00
Paul Swirhun
e00e4d4245
Fix whitespace in pragma protect version ( #4914 )
2024-02-22 03:29:57 -05:00
Yutetsu TAKATSUKASA
4b9532fe24
Improve message for priority case assertion failure ( #4905 )
2024-02-22 03:09:14 -05:00
Jiangjie Weng
c3ff52208a
Commentary: Fix typo in the call condition of designp->nextTimeSlot() ( #4912 )
2024-02-21 10:15:29 -05:00
Andrew Nolte and Andrew Nolte
cfb73923bd
Test driver: Add -xrun Xcelium support ( #4896 )
...
Co-authored-by: Andrew Nolte <[email protected] >
2024-02-20 14:41:05 -05:00
Yutetsu TAKATSUKASA and Wilson Snyder
a951446f9b
Add --[no]-stop-fail option ( #4904 )
...
Co-authored-by: Wilson Snyder <[email protected] >
2024-02-19 21:26:58 +09:00
Wilson Snyder
a187a16e56
Commentary: Changes update
2024-02-13 21:47:09 -05:00
Wilson Snyder
d1dec38f38
Fix integer compare warning ( #4887 ). No functional change.
2024-02-13 18:37:41 -05:00
Yutetsu TAKATSUKASA
65b632a7dd
Improve assertion for unique case ( #4892 )
...
- Use parallel_case, unique, and unique0 in error message
- Distinguish multiple match and no match
- Show the case value that triggers the assertion
2024-02-13 21:53:32 +09:00
Geza Lore
ec0787015e
Ignore JSON tree dumps and DFG stats in test-snap/test-diff
2024-02-11 20:38:16 +00:00
Geza Lore
cbc76a7816
Dump DFG patterns with --stats ( #4889 )
...
With --stats, we will print DFG pattern combinations, one per line, as
S-expressions to new stat files, together with their frequency, to aid
discovery of new peephole patterns.
2024-02-11 15:41:10 +00:00
Szymon Gizler
d667b73e8d
Add --json-only and related JSON dumping ( #4715 ) ( #4831 ).
2024-02-09 17:50:09 -05:00
Wilson Snyder
248de2be2e
Fix coverage with member
2024-02-08 21:51:36 -05:00
Wilson Snyder
365537d8e3
Fix coverage of delayed nets
2024-02-08 20:25:17 -05:00
Wilson Snyder
a23cf1ceea
Fix toggle coverage dataDeclp error on multi-edge driven signals.
2024-02-08 19:21:44 -05:00
Wilson Snyder
be471e9ccc
Internals: Minor coverage reformatting/renaming. No functional change.
2024-02-08 19:10:38 -05:00
Wilson Snyder
d0e7eaafc9
Tests: Define stop uniformly. No functional change.
2024-02-08 18:39:13 -05:00
Wilson Snyder
13b7cce8be
Fix compile error on structs with queues (and ignore toggle coverage on queues).
2024-02-08 08:44:27 -05:00
Wilson Snyder
efff630763
Fix tautological-compare warnings.
2024-02-07 22:16:08 -05:00
Wilson Snyder
e2e0795538
Fix toggle coverage of unpacked unions with reals.
2024-02-07 21:03:32 -05:00
Wilson Snyder
c20634e4f8
Fix coverage of real arrays giving operator^ not defined
2024-02-07 20:11:27 -05:00
Wilson Snyder
715dce546f
Fix debug infinite loop when bad coverage pointers
2024-02-07 19:57:02 -05:00
Wilson Snyder
07d86bf91d
Allow loop unrolling with coverage
2024-02-07 19:56:32 -05:00
Krzysztof Bieganski
fe8c7c5a94
Fix timing with expr on assign LHS ( #4880 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-02-06 07:27:19 -05:00
Wilson Snyder
7ada5195d8
Fix this in member initialization ( #4710 ). ( #4876 )
2024-02-04 19:44:10 -05:00
Wilson Snyder
a6ad85244f
Backout ( #4710 ) due to leak
2024-02-04 18:13:22 -05:00
Wilson Snyder
f13f2296de
Fix this in member initialization ( #4710 ).
2024-02-04 16:09:01 -05:00
Wilson Snyder
b1d901f100
Tests: Hardcode copyright exceptions ( #4874 )
2024-02-04 15:43:01 -05:00
Wilson Snyder
8ab576f7e6
Internals: Use std::to_string. No functional change intended.
2024-02-04 14:38:25 -05:00
Wilson Snyder
6f92c9c974
CI: Update upload-artifacts/download-artifacts version ( #4875 )
2024-02-04 10:29:34 -05:00
Wilson Snyder
7425037db6
Fix Copyright
2024-02-04 09:35:19 -05:00
Geza Lore
6ca60429ce
Fix incorrect temporary insertion in loop conditions with statements ( #4873 )
...
When the condition of an AstWhile loop contains a statement (e.g.
through an AstExprStmt), temporaries inserted in that statement need to
go before that statement, not in the AstWhile precondition.
2024-02-04 09:19:54 -05:00
Bartłomiej Chmiel and Bartłomiej Chmiel
c702fc944e
Fix SystemC biguint sign desynchronization ( #4870 )
...
* Fix writing to SystemC values with `VL_ASSIGN_SBW`
Signed-off-by: Krzysztof Bieganski <[email protected] >
Co-authored-by: Bartłomiej Chmiel <[email protected] >
2024-02-02 07:00:13 -05:00
Yutetsu TAKATSUKASA
999c9ae21c
Fix #4864 of wrong runtime result ( #4867 )
...
* Fix #4864 . Ignore if EQ/NE is under SHIFTR.
2024-01-30 00:00:00 +09:00
Szymon Gizler
c715cfc254
Add --valgrind switch ( #4828 )
2024-01-29 07:50:05 -05:00
Wilson Snyder
22687a6901
Internals: Use C++14 quoted literal std::string
2024-01-28 21:00:20 -05:00
Wilson Snyder
eecdf4b0f3
Internals: Use C++14 exchange
2024-01-28 21:00:20 -05:00
Wilson Snyder
e3e5f30ba1
Check for C++14 without also accepting GNU C++11 ( #4865 )
2024-01-28 19:42:29 -05:00
Wilson Snyder
ce174743bb
Fix some MSVC warnings
2024-01-28 14:47:14 -05:00
Wilson Snyder
a84be1844f
MSVC fix, part of fix of null ( #4862 ).
2024-01-28 11:05:38 -05:00
Wilson Snyder
9ccef4180f
Fix $fwrite of null ( #4862 ).
2024-01-28 09:05:50 -05:00
Wilson Snyder
3bf896f7db
Commentary: Changes update
2024-01-28 09:04:29 -05:00
Yutetsu TAKATSUKASA
e4a0e5aad6
Fix #4857 consider NOT when checking EQ/NEQ under AND/OR tree ( #4863 )
2024-01-28 22:36:09 +09:00
Wilson Snyder
d6f8ccd20b
Add unroll_disable and unroll_full loop control metacomments ( #3260 ).
2024-01-26 07:49:07 -05:00
Wilson Snyder
94460867d3
Fix nondeterministic fork/tristate ordering ( #4690 ).
2024-01-25 20:33:43 -05:00
Wilson Snyder
5b70325e52
Internals: Style/debug cleanups. No functional change.
2024-01-25 20:26:56 -05:00
Wilson Snyder
3aece189ac
Fix tracing chandles ( #4860 ).
2024-01-25 08:13:52 -05:00
Wilson Snyder
188f0eb4ad
Tests: Add t_enum_enumvalue_struct_bad ( #2855 )
2024-01-25 07:57:45 -05:00
Wilson Snyder
d4c8a15407
Add --runtime-debug for Verilated executable runtime debugging.
2024-01-25 07:34:30 -05:00
Wilson Snyder
354a534d68
Add '--decorations node' for inserting debug comments into emitted code.
2024-01-24 21:51:47 -05:00
Wilson Snyder
c8a40e0b52
Commentary; Tests: Check summary options match guide options
2024-01-24 19:28:46 -05:00
Wilson Snyder
771cb5f60b
Tests: Fix last commit when no coroutines.
2024-01-24 18:48:27 -05:00
Wilson Snyder
23836ee8d0
Document gprof steps better. Add t_prof_timing test to show GCC bug ( #4858 ).
2024-01-24 17:55:23 -05:00
github action
8a7f36c34b
Apply 'make format'
2024-01-24 12:46:22 +00:00
Jonathan Schröter
31262e81f9
Fix to not emit already waived warnings in waiver output ( #4574 ) ( #4818 )
2024-01-24 07:45:38 -05:00
github action
3d006afacc
Apply 'make format'
2024-01-24 03:08:39 +00:00
Wilson Snyder
74ec50f933
Support interface class diamond relationship.
2024-01-23 22:07:35 -05:00
Wilson Snyder
21e85f87bc
Fix compilation error on multi-inherited interface class usage ( #4819 ).
2024-01-23 19:36:11 -05:00
github action
0b8daf4ae4
Apply 'make format'
2024-01-23 18:06:10 +00:00
Paul Swirhun
6c0c88cfc4
Fix unsafe write in wide array insertion ( #4850 ) ( #4855 )
2024-01-23 13:05:27 -05:00
Wilson Snyder
f0d010d9c5
Github: Update actions ( #4852 )
2024-01-22 22:32:00 -05:00
Wilson Snyder
2989e54eaa
Add unsupported warning on property iff ( #4848 )
2024-01-21 16:18:48 -05:00
Wilson Snyder
1a2c9ca813
Updat GTKwave libraries from upstream
2024-01-21 13:59:54 -05:00
Wilson Snyder
e3f3e3399f
Commentary: Changes update
2024-01-21 13:50:27 -05:00
Yutetsu TAKATSUKASA
6b8531f0a6
Fix widthMin in replaceShiftOp ( #4837 ) ( #4841 ) ( #4849 )
2024-01-21 10:30:01 -05:00
Yutetsu TAKATSUKASA
50df902b54
Fix incorrect bit-op-tree NOT optimization ( #4832 ) ( #4847 )
...
* Fix #4832 . Bit-op-tree opt. should not touch a subtree under NOT in AND/OR tree.
2024-01-21 07:25:24 -05:00
Wilson Snyder
3a5248a919
Internals: Mark structs final/VL_NOT_FINAL. No functional change intended.
2024-01-20 15:06:46 -05:00
Wilson Snyder
1a92502788
Add --main support for dumping coverage, and +verilator+coverage+file runtime option.
2024-01-20 12:28:49 -05:00
Wilson Snyder
a38fea1f9e
Tests: Use context coverage write
2024-01-20 11:19:42 -05:00
Wilson Snyder
d595d4c7ac
Tests: Use --binary with some --timing tests
2024-01-20 10:57:00 -05:00
Wilson Snyder
a43fd06f85
Tests: Imply no driver.pl make when using --build. No functional change intended
2024-01-20 10:37:35 -05:00
Wilson Snyder
375a121377
Tests: Use lint() where able instead of compile(). No functional change intended.
2024-01-20 10:25:17 -05:00
Wilson Snyder
fef0502d50
Tests: Imply make_main=>0 on --main tests
2024-01-20 10:17:35 -05:00
Wilson Snyder
c30b9d04a8
Change unused vars to standard void syntax. No functional change intended.
2024-01-20 08:57:22 -05:00
Wilson Snyder
89cfa0737f
Internals: Fix cppcheck warnings
2024-01-17 19:48:07 -05:00
Wilson Snyder
8b03f2d47b
Commentary
2024-01-17 19:47:07 -05:00
Anthony Donlon
f80c167d65
Fix warnings in verilated_sc_trace.h for Clang. No functional change. ( #4807 ) ( #4827 )
2024-01-17 19:30:42 -05:00
Szymon Gizler
db3ce29b36
Fix wrong utimes() param ( #4829 )
2024-01-17 08:32:44 -05:00
Wilson Snyder
6f96c6763d
Commentary
2024-01-17 08:25:54 -05:00
Szymon Gizler
372cdf1fc8
Tests: Let debugger handle signals instead of test driver ( #4817 )
2024-01-16 11:18:20 -05:00
github action
54922c036a
Apply 'make format'
2024-01-14 00:53:31 +00:00
Adrian Sampson
2e999a5441
Fix too null pointer dereference ( #4810 ) ( #4825 )
2024-01-13 20:52:50 -04:00
Tim Hutt
5073f208af
Internals: Use more standard syntax for avoiding unused variable warnings ( #4826 )
2024-01-13 15:34:59 -05:00
Larry Doolittle
c9d7486d16
Fix maybe-uninitialized compiler warning ( #4820 ) ( #4822 )
2024-01-12 13:09:34 -05:00
Wilson Snyder
27d906a6b3
Commentary: Changes update
2024-01-12 08:20:53 -05:00
Wilson Snyder
21bf2d62d2
Fix mis-splitting of dump control functions ( #4821 ).
2024-01-12 08:19:30 -05:00
Wilson Snyder
fcdd8e5da6
Fix missing includes with multiple inheritance ( #3819 partial)
2024-01-11 20:19:48 -05:00
Andrew Nolte
ab47fc6656
Fix localparam elaboration ( #3858 ) ( #4794 )
2024-01-11 07:49:07 -05:00
Szymon Gizler
5f52c066e5
Internals: Add serializeOnly() and dumpTreeEitherLevel() ( #4815 ) ( #4715 ). No functional change intended.
2024-01-09 10:35:13 -05:00
Wilson Snyder
19cb366e5d
Update ifdef ( #4805 ) ( #4807 ). No functional change.
2024-01-08 07:35:34 -05:00
Anthony Donlon
55d1b87b34
Support parsing anonymous primitive instantiations ( #4809 )
2024-01-07 10:59:56 -05:00
Wilson Snyder
eec41fd039
Fix lint_off disables on preprocessor warnings ( #4703 ).
2024-01-06 18:49:19 -05:00
Wilson Snyder
69043549d6
Fix const anon union ( #4800 )
2024-01-06 17:26:07 -05:00
Wilson Snyder
68e4eeb53e
Add predicted stack overflow warning ( #4799 ).
2024-01-06 16:16:14 -05:00
Wilson Snyder
0ca90257a5
Add predicted stack overflow warning ( #4799 ).
2024-01-06 16:14:58 -05:00
Anthony Donlon
7507c5f56c
Support SystemC 3.0.0 public review version ( #4805 ) ( #4807 )
2024-01-06 06:01:35 -05:00
Wilson Snyder
acbbb2594a
Tests: Make some tests single-threaded only, for faster regressions
2024-01-05 18:25:39 -05:00
Wilson Snyder
5294140753
Fix delays using wrong timeunits when modules inlined ( #4806 ).
2024-01-05 18:07:24 -05:00
Wilson Snyder
a36a07c297
Internals: Favor UASSERT over v3fatalSrc. No functional change intended.
2024-01-05 18:00:06 -05:00
Wilson Snyder
47b129bf07
Commentary
2024-01-05 07:14:40 -05:00
Chykon
1a0c8f1573
Commentary: Add a link to Create-Binary Execution to the list of examples ( #4802 )
2024-01-04 10:47:22 -05:00
Wilson Snyder
2be6f03848
Commentary: runtime debugging
2024-01-03 21:03:17 -05:00
github action
4172c0f29e
Apply 'make format'
2024-01-03 12:13:21 +00:00
Pengcheng Xu
ec01008fe3
Change zero replication width error to ZEROREPL warning ( #4753 ) ( #4762 )
2024-01-03 07:11:50 -05:00
Marlon James
8ea814e4b4
Fix VPI parameter iteration ( #4798 )
2024-01-02 18:57:34 -05:00
Marlon James
0195fe9dfd
Add vpiConstType support to vpi_get_str() ( #4797 )
2024-01-02 18:52:57 -05:00
Marlon James
e430ea13f4
Fix vpi_get() and vpi_get64() to return vpiUndefined on errors ( #4795 )
...
See IEEE 1800-2017 section 38.6 and 38.7.
2024-01-02 16:25:14 -05:00
Mariusz Glebocki
719954a24a
Internals: Make V3Const.cpp parseable by non-compilers ( #4796 )
2024-01-02 14:51:40 -05:00
Paul Wright
3adb31f53b
Fix $time not rounding up ( #4790 ) ( #4792 )
2024-01-01 20:11:46 -05:00
Wilson Snyder
3eaed3b6f5
Remove deprecated 32-bit pointer mode ( #4791 ).
2024-01-01 10:16:48 -05:00
Wilson Snyder
22de598456
devel release
2024-01-01 03:46:48 -05:00
Wilson Snyder
5c5314b39c
Version bump
2024-01-01 03:42:12 -05:00
Wilson Snyder
e76f29e5ba
Copyright year update
2024-01-01 03:19:59 -05:00
Wilson Snyder
5a83209b9b
Tests: Fix last commit on width ( #4781 ).
2023-12-31 13:28:49 -05:00
Wilson Snyder
4655ee014b
Fix max multiply width. ( #4781 )
2023-12-31 11:42:06 -05:00
Wilson Snyder
12f0017d4a
Commentary: Changes update
2023-12-31 11:35:11 -05:00
Wilson Snyder
ca3b5fbe99
Add verilated asserts that VL_MULS_MAX_WORDS does not overflow ( #4781 ). No functional change intended.
2023-12-30 15:31:58 -05:00
Wilson Snyder
9de6612cde
Avoid shift by 32 even if later masked, to avoid sanitizer warning ( #4781 ). No functional change intended.
2023-12-30 14:46:57 -05:00
Rasfunk
2d7e8b58e4
Require C++14 or newer ( #4784 ) ( #4786 )
2023-12-29 10:39:00 -05:00
Wilson Snyder
f3a97841bd
Commentary
2023-12-27 15:35:22 -05:00
Wilson Snyder
40f0378136
CI: Run --sanitize on Ubuntu 22.04 in prep for eventual 24.04. ( #4782 )
2023-12-27 15:01:17 -05:00
Wilson Snyder
17b6ce1379
Commentary: Changes update
2023-12-27 10:15:29 -05:00
Wilson Snyder
14ac24cacc
Commentary: sccache
2023-12-26 15:15:15 -05:00
Wilson Snyder
6bf253deda
Tests: Test for unsupported default disable ( #4016 )
2023-12-24 13:11:09 -05:00
Wilson Snyder
aa4346a0e3
Tests: Add test for unfixed ( #4237 )
2023-12-24 12:19:15 -05:00
Wilson Snyder
8c541a6e4d
Tests: Add test for unfixed ( #4038 )
2023-12-24 12:17:54 -05:00
Wilson Snyder
1a43afe6f7
Fix $finish twice to no longer exit ( #4757 ).
2023-12-24 11:02:52 -05:00
Wilson Snyder
9882c4c761
Github: Commentary
2023-12-24 10:35:12 -05:00
Wilson Snyder
54ad04b6e9
Fix 'for' loop with outside variable reference ( #4660 ).
2023-12-24 10:17:44 -05:00
Fan Shupei
540cd772e4
Add user C/C++ code to final achieve, and make a libmodel.a ( #4749 ) ( #4754 )
2023-12-23 09:31:10 -05:00
Krzysztof Bieganski
621de301c7
Run the V3Fork stage only if --timing is set ( #4778 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-12-22 22:57:45 +01:00
Wilson Snyder
8769c1a92b
Internals: Add -fno-dead-cells, -fno-dead-assigns for debug use
2023-12-22 16:26:51 -05:00
github action
8e1c0b0852
Apply 'make format'
2023-12-21 12:49:55 +00:00
Jordan McConnon
56d6791205
Support invoking interface methods on virtual interface variables ( #4774 ) ( #4775 )
2023-12-21 07:49:07 -05:00
Krzysztof Bieganski
016e630ecf
Refine dynamic NBA condition ( #4773 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-12-20 18:12:17 +01:00
Wilson Snyder
69b779b4a8
Internals: Cleanup cpp-check warnings. No functional change.
2023-12-20 07:49:03 -05:00
Wilson Snyder
7a537765bc
Tests: Comment driver.pl with some argument meanings. No functional change.
2023-12-19 22:43:18 -05:00
Wilson Snyder
21b2e874ce
Tests: Make some includes more generic to help copying tests. No test change.
2023-12-19 21:08:30 -05:00
Wilson Snyder
55ad950609
Fix power operator with wide numbers and constants ( #4721 ) ( #4763 )
2023-12-19 19:22:54 -05:00
Todd Strader
654ab117f2
Fix tracing FST enums ( #4661 ) ( #4756 )
2023-12-19 11:07:06 -05:00
Todd Strader
5ec9bfc47d
Support packages in vpi_handle_by_name() ( #4768 )
2023-12-15 17:32:23 -05:00
Todd Strader
1066f06ec1
Support VPI parameter iteration ( #4765 )
2023-12-15 13:53:13 -05:00
Todd Strader
668dbb25ab
Tests: Use test macros in t_vpi_package ( #4726 ) ( #4764 ).
2023-12-15 12:11:51 -05:00
Todd Strader
fced4d6e57
Support vpiConstType in vpi_get() ( #4761 )
2023-12-14 20:37:47 -05:00
Geza Lore
c5ba6e22fa
Minor cleanup of trace internals
2023-12-12 20:27:16 +00:00
Geza Lore
6012ec8eb7
Put dynamic NBA commit in eval_phase__nba
...
Fixes #4634
2023-12-12 18:11:43 +00:00
Mariusz Glebocki
75a44e5aa9
Fix deadlocks in error handler ( #4672 )
2023-12-12 08:10:01 -05:00
Ryszard Rozak
a811f2e17d
Support inside operator on unpacked arrays and queues ( #4751 )
2023-12-12 09:20:22 +01:00
Stefan Wallentowitz
b65f2509a2
Devcontainer support ( #4748 )
...
devcontainers are a convenient way to provide users a reproducible
build environment. It is currently supported by Visual Studio Code,
Visual Studio and IntelliJ.
When the user opens the verilator repo in VSCode with the standard
devcontainer extension installed, VSCode will ask the user if they
want to reopen in the devcontainer, then build the Docker image as per
our definition and then restart VSCode 'remotely' attached to the
Docker container.
More information:
https://code.visualstudio.com/docs/devcontainers/containers
Also:
- zlibc is missing on Debian-based systems now
- Add non-root user to Dockerfile and make default
2023-12-12 08:46:25 +01:00
Ryszard Rozak
b60117c713
Fix typedefs pointing to parameterized classes ( #4747 )
...
* Skip handling of ClassOrPackageRef nodes that point to Typedefs
2023-12-08 07:13:38 -05:00
Ryszard Rozak
d3142736c8
Tests: Add a test for type parameters in virtual interfaces ( #4746 )
2023-12-08 07:11:32 -05:00
Ryszard Rozak
1ececf1127
Support multiple parameters in virtual interfaces ( #4745 )
2023-12-07 13:56:16 +01:00
Geza Lore
a09f7713ce
Fix race in t_interface_virtual_sched_ico
2023-12-06 16:32:22 +00:00
Geza Lore
f3bace10ae
Improve V3Premit performance etc. ( #4736 )
...
- Enable creating constant pool entries for RHS of simple
var = const assignments
- Never extract ArraySel (it's just pointer arithmetic)
- Remove unnecessary AstTraceInc precond child tree
- Always fully recurse expressions (fix transplanted from #4617 )
- General cleanup
Overall the patch is performance neutral to slightly positive, but saves
~10% peak Verialtor memory usage due to not creating temporaries (which
are later expanded) for any ArraySels.
2023-12-06 09:42:46 -05:00
Wilson Snyder
39d9bd4d47
Internals: V3LinkDot fix missing restorer.
2023-12-06 08:29:33 -05:00
Ryszard Rozak
eb2cfe1d19
Support parameterized virtual interaces ( #4047 ) ( #4743 )
2023-12-06 08:02:04 -05:00
Ryszard Rozak
ca5a7d7656
Add class name in the error msg about calling 'new' on virtual class ( #4739 )
2023-12-05 16:31:59 +01:00
Krzysztof Bieganski
ea2084392f
Support --timing triggers for virtual interfaces ( #4673 )
2023-12-04 22:11:07 -05:00
Geza Lore
5d99534d54
Improve W primitive operations with -Oz ( #4733 )
2023-12-02 22:59:30 +00:00
Geza Lore
f048cff093
Add inline for VL_ATTR_ALWINLINE, even on non GNU-C platforms ( #4734 )
...
This is required to avoid multiple definition errors at link time for
functions defined in headers and marked VL_ATTR_ALWINLINE.
2023-12-02 21:51:59 +00:00
Wilson Snyder
f571181d36
Commentary: Changes update
2023-12-02 16:48:33 -05:00
Wilson Snyder
fc9b66b078
Tests: Fix t_assigndly_dynamic_notiming_bad to survive new dead code elimination
2023-12-02 15:57:38 -05:00
Wilson Snyder
f039a94744
Tests: Add _bad to some negative tests.
2023-12-02 09:48:06 -05:00
Wilson Snyder
b4baa7ce02
Internals: Avoid extranious base class calls in recent commit.
2023-12-01 19:05:21 -05:00
Krzysztof Boroński
bd38c8fe3c
Fix # 0 delays for process resumption, etc. ( #4697 )
2023-12-01 13:08:58 -05:00
Todd Strader
9a0748d8ed
vpi_iterate packages with vpiInstance ( #4726 )
2023-12-01 07:34:09 -05:00
Wilson Snyder
feae9ca4aa
Internals: Use astgen for cross-node pointers. No functional change intended. ( #4727 )
2023-11-30 19:58:16 -05:00
Ryszard Rozak
d1ee9827a0
Fix block names of nested do..while loops ( #4728 )
2023-11-30 14:32:12 +01:00
Todd Strader
1fe591ae20
fix --rrsim ( #4725 )
2023-11-30 07:15:12 -05:00
Krzysztof Bieganski
b820e1b587
Support iff in sensitivity list ( #1482 ) ( #4626 )
...
Adds a new field to `AstSenItem` that stores the `iff` condition which is then handled by `SenExprBuilder`.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-11-29 19:10:32 +01:00
Ryszard Rozak
ebfc2a4942
Fix parameter passing to ports ( #4723 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-11-29 17:07:23 +00:00
Wilson Snyder
7167d4bdc0
Fix shift of > 32-bit number ( #4719 ).
2023-11-27 21:41:32 -05:00
Wilson Snyder
a022b672a0
Fix 0**0 with wide numbers ( #4721 ).
2023-11-26 17:11:22 -05:00
William D. Jones
a7a48221d3
Fix Windows include gates in filesystemFlush implementation. ( #4720 )
2023-11-26 05:26:20 +01:00
Wilson Snyder
e5118661a7
Commentary
2023-11-24 13:02:05 -05:00
Wilson Snyder
58d9a5ebac
Use newline instead of endl, for fewer stream flushes
2023-11-24 11:45:52 -05:00
Wilson Snyder
fae7f11222
Fix compilers seeing empty input due to file system races ( #4708 ). Part 2.
2023-11-22 05:18:13 -05:00
Wilson Snyder
1986e62477
Internals: Remove unused append dumpTreeFile option
2023-11-21 22:32:13 -05:00
Wilson Snyder
0ee2a0e6d7
Don't remove DepSet as messes with skip-identical, part of last commit
2023-11-21 22:08:47 -05:00
Wilson Snyder
2b28ddd0c6
Fix MSWIN compile in last commit
2023-11-21 21:49:36 -05:00
Wilson Snyder
b15ef49c57
Fix compilers seeing empty input due to file system races ( #4708 ).
2023-11-21 21:22:35 -05:00
Wilson Snyder
ed05caec93
Rename __hier*.f files to match other generated files
2023-11-21 20:31:54 -05:00
Wilson Snyder
25ca965938
Commentary
2023-11-21 19:17:39 -05:00
github action
ead27db9f0
Apply 'make format'
2023-11-21 02:02:56 +00:00
Jinyan Xu
4650105d90
Fix conflicted namespace for coroutines ( #4701 ) ( #4707 )
2023-11-20 21:02:10 -05:00
Krzysztof Bieganski
b8417abee5
Fix dynamic NBAs with automatic vars ( #4696 )
...
This patch addresses two issues with NBAs in non-inlined functions/tasks:
- If the NBA writes to a local automatic var, the var could cease to exist before the NBA executes. This is normally addressed by fork dynscopes (#4356 ), but NBA-to-fork transformation happens way after `V3Fork` (in `V3Timing`). To solve this, we put NBAs that write to locals under forks in `V3Fork` already. This way, such locals will be put in dynscopes, and will still exist after the task containing the NBA exits.
- The above change means that any writes in forks other than `fork..join` should be handled by `V3Fork`. Thus, in `V3SchedTiming`, we only have to worry about read references, so we can simply copy all remaining locals. Because we copy, lifetimes are not an issue. This fixes a bug that allowed assignment intravals to be overwritten if they go out of scope in the containing function.
2023-11-16 11:21:23 +01:00
Krzysztof Boroński
cc982ec7fe
Fix range access to fields under classes that depend on parameter resolution ( #4681 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-11-15 14:24:41 +01:00
Ryszard Rozak
2dba76a7c2
Fix access type of function arguments ( #4692 ) ( #4694 )
2023-11-14 17:02:13 -05:00
Wilson Snyder
9fd5634778
Internals: Remove unneeded private's. No functional change
2023-11-13 21:37:45 -05:00
Wilson Snyder
c8063e5732
Internals: Misc cleanups in V3Graph and V3Dead. No functional change.
2023-11-12 22:08:08 -05:00
Wilson Snyder
ee3ba7c761
Internals: Use faster VNVisitorConst where able. No functional change intended.
2023-11-12 18:26:40 -05:00
Geza Lore
2882737bcd
V3Const: Fix select into And/Or/Xor pattern ( #4689 )
2023-11-12 19:41:18 +00:00
Geza Lore
47588f343b
astgen: Enforce the use of aliased operand accessors ( #4688 )
...
This patch enforces the use of the most specific accessors for operands
which have an '@astgen alias' declaration, by making the superclass
accessors of the same operands private. This ensures client code is
cleaner as you can't use multiple different methods to reference the
same operands (which we used to in some places). Also prep for some
refactoring.
2023-11-12 18:30:48 +00:00
Geza Lore
1c0af6c7bc
Reduce peak memory use of V3Subst ( #4687 )
...
V3Subst is currently the pass responsible for peak memory usage. This
patch saves ~16% of peak memory on OpenTitan.
2 changes:
- It is actually safe to delete the substituted expressions immediately,
but this is the lesser contribution
- More importantly, we only ever substitute STMTTEMP variables, which
are always defined within the same CFunc, so we can limit the scope of
the optimization to CFunc. This allows us to reclaim the SubstVarEntry
structures at the end of every CFunc, rather than at the end of the
whole pass, which gives us most of the memory savings.
Generated output is identical
2023-11-12 16:01:07 +00:00
Geza Lore
b07ffb3c78
Cleanup V3Gate ( #4667 ) ( #4685 )
...
Lot of redundant/dead/obsolete code here. NFCI, but contains some minor
bug fixes.
2023-11-12 15:29:25 +00:00
Geza Lore
bea82def10
Add node memory usage info to V3Stats ( #4684 )
2023-11-12 14:19:53 +00:00
Wilson Snyder
671a857560
Fix compiler warning on 'wait' with non-zero constant.
2023-11-12 08:44:55 -05:00
Wilson Snyder
eff2d977c1
Fix mis-elimination of variables across randomize()
2023-11-12 07:32:08 -05:00
Wilson Snyder
30a0d62436
Fix assignment of class reference to itself causing double free.
...
Test in next commit.
2023-11-12 07:30:56 -05:00
Wilson Snyder
91d0f25442
Internals: Fix style of iterator. No functional change.
2023-11-11 20:52:23 -05:00
Wilson Snyder
4a10c9ef6f
Internals: Rename. No functional change.
2023-11-11 20:47:10 -05:00
Wilson Snyder
9d7f5bdc26
Internals: Dump CFunc entry points.
2023-11-11 20:34:51 -05:00
Wilson Snyder
99dbd23f1b
Support passing constraints to --xml-only output (still otherwise unsupported) ( #4683 )
2023-11-11 20:20:37 -05:00
Wilson Snyder
673f086e87
Commentary: Update contributors.
2023-11-11 18:49:51 -05:00
Wilson Snyder
4103925835
Commentary: add docs/README.rst
2023-11-11 17:19:27 -05:00
Wilson Snyder
cad2780219
Fix display with no % printing assoc array ( #4376 ).
2023-11-11 15:28:44 -05:00
Wilson Snyder
4636a7f14b
Internals: Fix uninitalized variables ( #4636 )
2023-11-11 14:58:54 -05:00
Wilson Snyder
a64bdf50fb
Commentary
2023-11-11 14:48:51 -05:00
Wilson Snyder
706534ffe1
Fix 'for' loop with outside variable reference ( #4660 ).
2023-11-11 14:47:54 -05:00
Wilson Snyder
4286af3599
Commentary: Changes update
2023-11-11 10:38:37 -05:00
Wilson Snyder
9a0254a118
Optimize timing-delayed queue ( #4584 ). ( #4669 )
2023-11-11 10:04:10 -05:00
Wilson Snyder
f3ae4b8786
Fix spelling
2023-11-10 23:25:53 -05:00
Anthony Donlon
6566e853cd
Support ccache when compiling Verilator with CMake ( #4678 )
2023-11-09 21:05:36 -05:00
Anthony Donlon
ab06ace1f6
Fix trace when using SystemC with certain configurations ( #4676 )
2023-11-09 07:48:23 -05:00
David Ledger
9a65ed4ce2
Fix Mingw Compilation ( #4675 )
2023-11-08 06:27:56 -05:00
Marlon James
5ba7084815
Fix VPI TOP level variable iteration ( #3919 ) ( #4618 )
2023-11-07 07:47:55 -05:00
Wilson Snyder
dc10118d3b
Fix C++20 compilation errors ( #4670 )
2023-11-06 07:13:31 -05:00
Wilson Snyder
27102ea0fb
CI: Combine lint and build workflows ( #4671 )
2023-11-06 07:13:00 -05:00
Geza Lore
c563175ff0
Fix scheduling of external force signals ( #4668 )
...
Used to set the wrong public flag on forceEn/forceVal, which means they
were not included in ICO as necessary, but V3Gate tended to inline them,
so this was hard to hit.
Fixes #4577
2023-11-05 16:58:22 +00:00
Krzysztof Boroński
b110c55993
Fix a memory leak in V3Fork ( #4628 )
2023-11-05 11:39:06 -05:00
Geza Lore
dc346b7ffa
Remove deprecated options ( #4663 )
2023-11-04 17:28:36 +00:00
Anthony Donlon
88fcbf5f1d
Fix interface parameters used in loop generate constructs ( #4664 ) ( #4665 )
2023-11-04 13:19:35 -04:00
Wilson Snyder
eace1d9c67
Internals: Use UINFO for preproc debug, to avoid stderr/cout output reordering confusion.
2023-11-04 10:51:14 -04:00
Anthony Donlon
d0d39c13e7
Fix linking parameterized hierarchical blocks and recursive hierarchical blocks ( #4654 )
2023-11-03 07:55:53 -04:00
Anthony Donlon
2733d43ea7
Fix identifiers that end with '_' on Windows ( #4655 )
2023-11-02 17:53:52 -04:00
Geza Lore
ae6ec411d0
Remove dead code from V3EmitV
2023-11-02 20:25:44 +00:00
Geza Lore
8a77af7a6d
Remove redundant user*ClearTree calls
2023-11-02 19:16:48 +00:00
Wilson Snyder
2a57ead7e3
Commentary ( #4517 )
2023-11-01 17:43:11 -04:00
Wilson Snyder
839315b271
devel release
2023-10-31 19:53:03 -04:00
Wilson Snyder
67dfa37c56
Version bump
2023-10-31 19:50:01 -04:00
Wilson Snyder
590188820d
Commentary: Changes update
2023-10-31 19:49:40 -04:00
Ryszard Rozak
a764c70b4a
Fix handling of static keyword in methods ( #4649 )
2023-10-31 08:15:54 -04:00
Wilson Snyder
a27abab65f
Fix PCH to recompile on version change
2023-10-31 08:10:41 -04:00
Wilson Snyder
c241ec90ec
Commentary: Changes update
2023-10-30 22:10:03 -04:00
Krzysztof Bieganski
f789d28277
Fix signals read via virtual iface optimized out ( #4645 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-10-30 21:26:46 -04:00
Wilson Snyder
c1c8b30a35
CI: Add lint-py action ( #4640 )
2023-10-30 08:02:54 -04:00
Wilson Snyder
15046c6c59
Commentary: Icarus URL ( #4639 )
2023-10-30 08:01:12 -04:00
Ícaro Lima
1da15181da
Update CONTRIBUTORS ( #4641 )
2023-10-29 16:44:42 -04:00
Wilson Snyder
3c6b755352
Tests: Rename t_opt_dead
2023-10-29 09:42:52 -04:00
Geza Lore
3c144ada53
Delete AstNode user5 ( #4638 )
...
This saves about 5% memory. V3AstUserAllocator is appropriate for most use
cases, performance is marginally up as we are mostly D-cache bound on
large designs.
2023-10-29 01:12:27 +01:00
Wilson Snyder
7ba6647c4f
Internals: Cleanup some V3Graph constructors/funcs and docs. No functional change.
2023-10-28 20:11:28 -04:00
Geza Lore
e708670f9a
Minor memory optimizatoin of AstUser*Allocator
2023-10-28 20:31:57 +01:00
Geza Lore
de4c6065dc
make: add test-snap/test-diff targets ( #4635 )
2023-10-28 15:58:29 +01:00
Geza Lore
d60f180f43
Avoid double traversal of maps
...
The typical find/if-not-exists-insert pattern can be achieved with 1
lookup instead of 2 using emplace with a sentinel value. Also maps value
initialize their values when inserted with the [] operator, this is
defined and so there is no need to explicitly insert zeroes for integer
values.
2023-10-28 13:41:43 +01:00
Geza Lore
30318a6654
C++11 cleanup
2023-10-28 11:26:48 +01:00
Geza Lore
d8420413b7
test: fix FST trace file names
2023-10-28 10:40:07 +01:00
Geza Lore
a5951babfc
test: make output deterministic
2023-10-28 10:36:30 +01:00
Geza Lore
2cba167634
Make eval loop construction more unified and the output more readable
2023-10-28 08:48:04 +01:00
Krzysztof Boroński
89743aae5d
Fix stable name generation in V3Fork ( #4615 ) ( #4624 )
2023-10-27 15:08:02 -04:00
Ryszard Rozak
e6135981a5
Fix dynamic casts of null values ( #4631 )
2023-10-27 15:58:40 +02:00
Kamil Rakoczy
739521333c
Tests: Fix clang_check_attributes missing dataclass decorator ( #4604 ) ( #4611 )
2023-10-27 08:24:27 -04:00
Ryszard Rozak
64af83161a
Fix rand fields of reference types ( #4627 )
2023-10-26 17:17:23 -04:00
Chih-Mao Chen
98252634fc
Include systemc instead of systemc.h in model header files ( #4622 ) ( #4623 )
...
This may require that SystemC programs add:
using namespace sc_core;
using namespace sc_dt;
2023-10-26 14:36:18 -04:00
Krzysztof Boroński
a87fb57656
Allow assigning events ( #4403 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-10-26 16:38:47 +02:00
Geza Lore
34708bbba1
Respect --dump-tree-addrids in tree dumps
2023-10-25 18:17:26 +01:00
Krzysztof Boroński and Wilson Snyder
f91259f46d
Fix insertion at queue's end ( #4619 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
2023-10-25 17:41:28 +02:00
Marlon James
cf6e362972
Support VPI variables of real and string data types ( #4594 )
2023-10-24 20:46:20 -04:00
Geza Lore
95c4ade718
Unify code generation for trace declarations in both trace formats ( #4612 )
...
This patch adds some abstract enums to pass to the trace decl* APIs, so
the VCD/FST specific code can be kept in verilated_{vcd,fst}_*.cc, and
removed from V3Emit*. It also reworks the generation of the trace init
functions (those that call 'decl*' for the signals) such that the scope
hierarchy is traversed precisely once during initialization, which
simplifies the FST writer. This later change also has the side effect of
fixing tracing of nested interfaces when traced via an interface
reference - see the change in the expected t_interface_ref_trace - which
previously were missed.
2023-10-24 16:33:29 +01:00
Ryszard Rozak
84125d7c92
Fix virtual methods ( #4616 )
2023-10-24 15:51:46 +02:00
Geza Lore
17721aff55
Remove unused IMPLICITWIRE var type
2023-10-24 10:02:00 +01:00
Geza Lore
d1b6224c2b
Associate trace codes with function indices ( #4610 )
...
For each traced variable, also register the trace function index that
will write it.
2023-10-23 16:01:55 +01:00
github action
1bd31742b9
Apply 'make format'
2023-10-23 14:07:52 +01:00
Geza Lore
165a2ef1b8
Separate tracing of const values from non-const values
...
Some values emitted to the trace files are constant (e.g.: actual
parameter values), and never change. Previously we used to trace these
in the 'full' dumps, which also included all other truly variable
signals. This patch introduces a new generated trace function 'const',
to complement the 'full' and 'chg' flavour, and 'const' now only
contains the constant signals, while 'full' and 'chg' contain only the
truly variable signals. The generate 'full' and 'chg' trace functions
now have exactly the same shape. Note that 'const' signals are still
traced using the 'full*' dump methods of the trace buffers, so there is
no need for a third flavour of those.
2023-10-23 14:07:52 +01:00
Ryszard Rozak
774c10396c
Fix try_put method of unbounded mailbox ( #4608 )
2023-10-23 14:33:22 +02:00
Marlon James
33c5b5feb8
Add sv_vpi_user.h from IEEE 1800-2017 Annex M ( #4606 )
2023-10-22 20:41:40 -04:00
Wilson Snyder
b83b9974ee
Fix gcc -O0 incompatible allocator warning
2023-10-22 09:51:02 -04:00
Wilson Snyder
bcbe5059a9
Internal: V3Graph style cleanup. No functional change
2023-10-22 09:50:38 -04:00
Wilson Snyder
5bda901146
Internals: Fix stats report to include main AstCFile made
2023-10-21 20:56:24 -04:00
Geza Lore
82565690c7
test driver.pl: don't redirect to STDOUT of interactive GDB
2023-10-22 00:56:10 +01:00
Geza Lore
978d900e36
Simplify and fix code stats
...
V3Stats for "fast" code have bit-rotted a little and is causing some
problems with tests that rely on stats outputs. The problem is that not
all code is necessarily reachable from eval() any more (due to the
complexity of some the features added over the past few years), so it
might miss some things, as for measuring the "fast" code, it is trying
to trace the execution paths via calls, starting from eval(). It also
appears the fast code can also contain calls to slow code in some
circumstances.
To avoid all that, removed trying to trace dynamic execution, and simply
report the static node counts, which is enough for testing.
Similarly, the variable counts are somewhat dubious, as they don't
include all data types, or all instances of a module in some stages.
Removing these as they are not widely used nor dependable. More specific
stats can be added if required and can be well defined.
2023-10-22 00:25:07 +01:00
Geza Lore
d330100542
Create implicit nets for inputs of gate primitives.
...
Prior to this we failed to create implicit nets for inputs of gate
primitives, which is required by the standard (IEEE 1800-2017 6.10).
Note: outputs were covered due to being modeled as the LHS of
assignments, which do create implicit nets.
2023-10-21 22:45:26 +01:00
Geza Lore
4c0edd2efb
Improve --prof-exec infrastructure and report
...
Again --prof-exec have bit-rotted a little with all the recent changes
to the structure of the generated code. This patch contains a few
improvements:
- Repalce the eval/evl_loop begin/end events with generic
section_push/section_pop events, that can be arbitrarily sprinkled
into the generate code (so long as they are matched correctly) to
measure various sections. The report then contains a nested profile
of the sections, and the VCD trace shows the section names.
- Better handling of exec graphs
- Clearer overall statistics
2023-10-21 21:09:03 +01:00
Geza Lore
146cdc020d
Remove V3AstConstOnly.h
...
This is now redundant with the introduction of VNVisitorConst
2023-10-21 20:41:46 +01:00
Geza Lore
52f2b9ef58
Remove pointless test
...
t_optm_if_cond was a test for a then non-existent optimization to merge
conditionals. V3MergeCond implements this and has its own tests.
2023-10-21 20:41:46 +01:00
Geza Lore
a09506a0ad
Trivial simplification of V3EmitCModel
...
Still some remains of the --threads 0 mode. Remove unnecessary complexity
from V3EmitCModel. (Also don't pretend there is an MTask in single
threaded mode, when there really isn't.)
2023-10-21 20:41:46 +01:00
Geza Lore
10d33238b9
Do not merge entry/exit MTasks during coarsening
2023-10-21 19:31:52 +01:00
Geza Lore
b78ea06829
Make VL_LOCK_SPINS configurable
...
It's unlikely one value fits all use case, so making VL_LOCK_SPINS
configurable at model build time.
For testing, we reduce the value as we expect high contention.
2023-10-21 18:05:53 +01:00
Wilson Snyder
eae942b91c
Internals: Fix some lint-py warnings
2023-10-21 12:48:36 -04:00
Geza Lore
1075b006b5
Consider children of AstConcat in V3InstrCount
...
Previously V3InstrCount used to completely ignore an AstConcat,
including its children (see the rational in the comment). The problem is
the operands can be huge and expensive compound expressions (especially
since DFG), and not just a simple variable reference. This fix gains
some MT speed improvement.
2023-10-21 17:15:40 +01:00
Wilson Snyder
afaa02709c
CI: Increase CCACHE_MAXSIZE ( #4595 )
2023-10-21 10:38:46 -04:00
Wilson Snyder
332a687aef
Commentary
2023-10-21 10:35:07 -04:00
Geza Lore
d1c7875406
Fix conditionals on obsolete --threads 0
...
Since we removed --threads 0 support, the 'threads()' option always
returns a value >= 1. Remove corresponding dead code.
Some of the coverage counters appear to use atomics even if the model is
single threaded. I'm under the impression this was a bug originally so
those ones I changed to use threads() > 1 instead.
2023-10-21 15:14:27 +01:00
Geza Lore
cbc2f9eb32
Do not overwrite LD_LIBRARY_PATH in t_flag_ldflags
2023-10-21 11:34:36 +01:00
Quentin Corradi
26e3785963
Fix PLI/DPI user defined system task/function grammar ( #4587 ) ( #4588 )
...
According to 1800-2017 36.3, 1800-2017 A.9.3, 1364-2005 20.2 and 1364-2005 A.9.3, user defined system task and function identifiers can use the same character set for the second character as all the following characters.
2023-10-21 02:43:49 -04:00
Wilson Snyder
f8b7fb72b8
Fix fault on empty clocking block ( #4593 ).
2023-10-21 02:40:08 -04:00
Krzysztof Bieganski
7b12f6a1dd
Support NBAs in non-inlined functions/tasks ( #4496 ) ( #4572 )
2023-10-20 20:01:45 -04:00
Mariusz Glebocki
c7a0613c57
Support Clang 16 ( #4592 )
2023-10-20 15:47:09 -04:00
Aleksander Kiryk
83a0085c4d
Support wait fork ( #4586 )
2023-10-20 07:13:57 -04:00
Wilson Snyder
05bb7fa821
Tests: Use UVM with UVM_NO_DPI defined
2023-10-20 02:37:11 -04:00
Wilson Snyder
4cc42133b5
Internals: Rename some parser rules. No functional change.
2023-10-19 20:13:27 -04:00
Wilson Snyder
a773a52559
Cleanup some IEEE references
2023-10-19 19:26:36 -04:00
Wilson Snyder
5af271cf3a
Fix display optimization ignoring side effects ( #4585 ).
2023-10-19 18:33:58 -04:00
Wilson Snyder
0c2bab1f69
Fix method narrowing conversion compiler error ( #4568 ).
2023-10-18 17:51:25 -04:00
Wilson Snyder
b7233d063f
Internals: Fix same() called outside of sameTree ( #4561 ).
2023-10-18 17:36:21 -04:00
Krzysztof Bieganski
8720841c48
Fix to not remap local assign intravals in forks ( #4583 )
2023-10-18 16:49:20 -04:00
Wilson Snyder
263697e491
Commentary ( #4580 )
2023-10-18 08:15:55 -04:00
Wilson Snyder
493f1da266
Fix compile warning on unused member function variable ( #4567 ).
2023-10-18 08:09:54 -04:00
Wilson Snyder
8b44a54bb2
Support Verilated precompiled header compilations ( #4580 )
2023-10-18 08:08:15 -04:00
Wilson Snyder
b5828a7ce9
Fix header order botched by clang-format in recent commit.
2023-10-18 06:37:46 -04:00
Wilson Snyder
51a18225ad
cmake: Fix missing headers
2023-10-18 06:37:38 -04:00
Wilson Snyder
28625451dd
Fix MSVC makefile list (part of previous commit)
2023-10-18 06:07:05 -04:00
Wilson Snyder
3914176bc4
Internals: Remove unused IGNORED to fix MSVC warning. No functional change intended.
2023-10-18 06:06:00 -04:00
Wilson Snyder
13989b965d
Tests: Add --binary with split, to check parallel builds
2023-10-17 23:13:04 -04:00
github action
770cd24f27
Apply 'make format'
2023-10-18 02:50:27 +00:00
Wilson Snyder
431bb1ed16
Support compiling Verilator with gcc/clang precompiled headers ( #4579 )
2023-10-17 22:49:28 -04:00
Ryszard Rozak
3bb9c7ee92
Fix dictionaries with keys of class types ( #4576 )
2023-10-17 17:15:24 +02:00
Ryszard Rozak
45edcbb03e
Fix logical expressions with class objects - caching in v3Const ( #4552 )
2023-10-17 07:38:45 -04:00
Ryszard Rozak
e99fd2892b
Make VNDeleter a member of VNVisitor. No function change. ( #4573 )
2023-10-17 09:26:53 +02:00
Krzysztof Bieganski
99ea16d7fd
Fix dynamic triggers for named events ( #4571 )
2023-10-16 11:06:41 -04:00
Krzysztof Bieganski
bc9ff6d1bf
Fix interface comparison ( #4570 )
2023-10-16 11:05:39 -04:00
Aleksander Kiryk
ad3bcbb1bb
Support disable fork ( #4125 ) ( #4569 )
2023-10-16 14:02:29 +02:00
Yutetsu TAKATSUKASA
25dde58297
Internals: Use VN_AS instead of static_cast. Fix some wrong types. ( #4561 )
2023-10-16 05:17:52 -04:00
Anthony Donlon
bba3487dc4
Internals: Fix hash and comparison function for AstBasicDType ( #4564 )
2023-10-15 15:15:46 -04:00
Anthony Donlon
4fdaa46328
Fix using functions/tasks following class definition inside module ( #4553 )
2023-10-15 13:01:32 -04:00
Anthony Donlon
4427f03b08
Fix error message for invalid parameter overrides ( #4559 )
2023-10-15 12:59:36 -04:00
Yutetsu TAKATSUKASA
4e2c63c8cb
Support concatenation of unpacked arrays ( #4558 )
2023-10-15 12:53:35 -04:00
github action
afecde87d8
Apply 'make format'
2023-10-15 11:00:14 +00:00
Wilson Snyder
c14eae6d56
Add SIDEEFFECT warning on mishandled side effect cases ( #487 partial)
2023-10-15 06:44:35 -04:00
Wilson Snyder
684aba0e90
Fix purity calculation during V3Const simplifying Ast
2023-10-15 06:25:42 -04:00
Wilson Snyder
46f8a659b3
Fix shift to remove operation side effects ( #4563 ).
2023-10-14 22:34:37 -04:00
Wilson Snyder
3940a214d0
Internals: Reorder some shift functions for next commit. No functional change.
2023-10-14 22:23:58 -04:00
Wilson Snyder
411f563cbe
Internals: Remove unneeded pure checks. No functional change.
2023-10-14 22:23:58 -04:00
Wilson Snyder
b5a6b34968
Tests: Remove old hack from before unpacked structs
2023-10-14 22:23:58 -04:00
github action
fa8eaf7355
Apply 'make format'
2023-10-14 19:20:22 +00:00
Wilson Snyder
7eb09c3445
Fix instance arrays connecting to array of structs ( #4557 ).
2023-10-14 15:19:19 -04:00
Varun Koyyalagunta
edfd3d7206
Fix large constant buffer overflow ( #4556 )
2023-10-13 07:08:58 +09:00
Wilson Snyder
d699caf255
Revert fix Verilated Makefile to get CXX etc. from environment ( #4549 ) ( #4554 ).
2023-10-12 04:22:58 -04:00
Wilson Snyder
bd4eede6b4
Commentary: Changes update
2023-10-10 20:43:32 -04:00
Wilson Snyder
1fd8e772b0
Fix loss of warning source content with `line enter (due to earlier commit 472ad90d83).
2023-10-10 20:40:21 -04:00
Anthony Donlon
7ce0bd1181
Fix broken link error for enum references ( #4551 )
2023-10-10 17:55:40 -04:00
Gus Smith
a4b7c39a9a
Fix Verilated Makefile to get CXX etc. from enviorment ( #4549 ) ( #4554 )
2023-10-10 17:53:02 -04:00
Mariusz Glebocki
a5ee8b39ef
Internals: Remove use of V3Width code from V3AstNodes ( #4537 ). No functional change intended.
...
`getCommonClassTypep` and its helper code has been moved to AstNode
class. This is a lot better place for this functionality. Moreover, it
allowed to get rid of the dependency on V3Width from generic AST-related
code.
2023-10-09 17:43:27 -04:00
Ryszard Rozak
5b06c60318
Internals: Change deleteTree to pushDeletep ( #4548 ). No functional change intended.
2023-10-09 09:45:09 -04:00
Wilson Snyder
b306715b4a
Optimize empty expression statements ( #4544 ).
2023-10-09 05:50:31 -04:00
Wilson Snyder
8d99bdac25
Internals: Move afterCommentp to AstNode. No functional change.
2023-10-09 05:03:57 -04:00
github action
e114dfda6d
Apply 'make format'
2023-10-09 08:14:14 +00:00
Wilson Snyder
472ad90d83
Change lint_off to not propagate upwards to files including where the lint_off is.
2023-10-09 04:12:01 -04:00
Wilson Snyder
622f0c047c
Fix reporting `line at wrong spot. Rework some internal fileline parsing functions.
2023-10-08 20:38:45 -04:00
Wilson Snyder
7f38414276
Internals: Rename addIgnoreMatch. No functional change.
2023-10-08 01:02:23 -04:00
Wilson Snyder
1d3d59243c
Fix preprocessor to show `line 2 on resumed file per IEEE.
2023-10-07 14:29:46 -04:00
Wilson Snyder
e2343c03e0
Internals: Create V3WidthCommit from overly fat header. No functional change intended.
2023-10-06 23:18:26 -04:00
Wilson Snyder
0e0df1fb3b
Fix enum functions in localparams ( #3999 ).
2023-10-06 22:38:46 -04:00
Wilson Snyder
800a789f50
Fix inlining of real functions miscasting ( #4543 ).
2023-10-06 21:33:31 -04:00
Wilson Snyder
106664b942
Internals: Fix long lines. No functional change.
2023-10-05 20:07:53 -04:00
Ryszard Rozak
1c738c6b83
Fix object destruction after a copy constructor ( #4540 ) ( #4541 )
2023-10-05 07:21:33 -04:00
Wilson Snyder
25fa1d7c6a
Commentary: Changes update
2023-10-04 20:17:14 -04:00
Wilson Snyder
45162652de
Commentary
2023-10-04 20:13:59 -04:00
Wilson Snyder
537650a2cd
Fix stream of 32 bit ( #4536 ).
2023-10-03 22:10:50 -04:00
Todd Strader
f849073137
Fix non-inlined interface tracing ( #3984 ) ( #4530 )
2023-10-03 19:55:25 -04:00
Ryszard Rozak
a3c154dcd3
Fix this in a constructor ( #4533 )
2023-10-03 14:32:18 +02:00
Ryszard Rozak
1b8228b642
Fix stream operations with operands of struct type ( #4531 ) ( #4532 )
2023-10-03 07:23:20 -04:00
Wilson Snyder
732d03f4e5
Fix conversion of integers in $display %e ( #4528 ).
2023-10-01 13:00:16 -04:00
Wilson Snyder
33787c6add
Internals: Fix number nodep cloning, and assert stays consistent ( #4528 partial)
2023-10-01 12:46:35 -04:00
Ryszard Rozak
44e7d2ebe6
Internals: rename VPurity class and related functions. No functional change ( #4523 )
2023-09-29 12:23:51 +02:00
Wilson Snyder
e49ae663a6
Fix constification of $realtobits, $bitstoreal ( #4522 ).
2023-09-28 22:45:00 -04:00
Wilson Snyder
2385ab8294
Tests: randc now supported
2023-09-26 22:53:25 -04:00
Wilson Snyder
84ccb23098
Fix C++11 compiler constexpr return error
2023-09-26 22:43:17 -04:00
Wilson Snyder
ad343f8260
Add warning on interface instantiation without parens ( #4094 ).
2023-09-26 22:15:48 -04:00
Wilson Snyder
018d766179
Fix clang error ( #4462 )
2023-09-26 21:07:43 -04:00
Justin Thiel
a948be184c
Tests: Add t_interface_localparam_unsup ( #3857 partial) ( #3858 )
2023-09-26 20:35:23 -04:00
Wilson Snyder
72b4a74245
Fix clang error on last commit
2023-09-26 19:58:09 -04:00
Wilson Snyder
36c824d973
Add trace() API even when Verilated without --trace ( #4462 ).
2023-09-26 18:37:50 -04:00
Anthony Donlon
229ce1aecf
Fix handling input file path separator ( #4515 ) ( #4516 )
2023-09-26 15:42:15 -04:00
Anthony Donlon
be45a9b7d5
Style: Update clang-format config to make formatted code consistent between versions. No functional change ( #4520 )
2023-09-26 15:05:57 -04:00
Wilson Snyder
d2c72a7f21
CI: Disable m32 runs
2023-09-25 12:30:25 -04:00
Anthony Donlon
60e9827ffe
Support converting parameters inside modules to localparams ( #4511 )
2023-09-25 11:39:04 -04:00
Wilson Snyder
a9256d4758
CI: Disable m32 runs
2023-09-25 11:28:44 -04:00
Anthony Donlon
750b5be5d3
Remove support for parameterized UDPs ( #4518 )
2023-09-25 10:40:44 -04:00
Mariusz Glebocki
28bd7e5b19
Rework multithreading handling to separate by code units that use/never use it. ( #4228 )
2023-09-24 22:12:23 -04:00
Anthony Donlon
d64c023099
CI: Cancel previous runs for pull requests automatically ( #4512 )
2023-09-23 11:50:05 -04:00
Wilson Snyder
429cb1f7f7
Commentary ( #4517 )
2023-09-23 09:04:35 -04:00
Wilson Snyder
9f75068059
Cleanup some error messages to properly quote
2023-09-23 08:52:50 -04:00
Ryszard Rozak
4636e9cffb
Fix passing arguments by reference ( #3385 partial) ( #4489 )
2023-09-20 07:33:11 -04:00
Wilson Snyder
4b2bf556d8
Tests: Revert UVM upstream ( chipsalliance/uvm-verilator#7 )
2023-09-20 07:32:21 -04:00
Kamil Rakoczy
a16ea94836
Fix detecting local vars in nested forks ( #4493 ) ( #4506 )
2023-09-19 17:32:42 -04:00
Michal Czyz
b9ea249f81
Rewrite usage of annotation options ( #4486 ) ( #4504 )
2023-09-19 09:08:17 -04:00
Wilson Snyder
470f480bc1
Fix -m32 compile issue
2023-09-19 07:23:35 -04:00
Wilson Snyder
24ff3155ae
Support randc ( #4349 ).
2023-09-18 21:17:21 -04:00
Ryszard Rozak
47b3f464a9
Disable conversion of impure logical expressions to bitwise expressions ( #487 partial) ( #4437 )
2023-09-18 09:21:30 -04:00
github action
cd201f8eb8
Apply 'make format'
2023-09-18 01:44:43 +00:00
Wilson Snyder
016278a759
Commentary
2023-09-17 21:43:00 -04:00
Wilson Snyder
b68f101e81
Support preprocessing __LINE__
2023-09-17 19:49:38 -04:00
Wilson Snyder
ab13548018
Support resizing function call inout arguments ( #4467 ).
2023-09-17 18:23:44 -04:00
Wilson Snyder
f507ee56b0
Fix warning in configure sc_main compile. ( #4499 )
2023-09-17 08:01:54 -04:00
Wilson Snyder
761adf1cf0
Internals: Add cloneTreePure to prepare for side effect check.
...
Use cloneTreePure when what is being cloned must be side-effect free.
Use cloneTree when safe to contain side effects (e.g. cloning module).
2023-09-16 22:50:54 -04:00
Wilson Snyder
cd1fe64e6c
devel release
2023-09-16 21:46:01 -04:00
Wilson Snyder
8f43e74288
Update CMakeList version
2023-09-16 20:54:54 -04:00
Wilson Snyder
cef3960a4e
Version bump
2023-09-16 18:36:39 -04:00
Wilson Snyder
783b7ecdab
Fix clang override warning (last commit)
2023-09-16 17:52:02 -04:00
Wilson Snyder
8bd1c63b32
Support function non-constant default arguments ( #4470 ).
2023-09-16 17:37:25 -04:00
Wilson Snyder
e6fb7e970d
Fix recursive display causing segfault ( #4480 ).
2023-09-16 10:10:21 -04:00
Wilson Snyder
891cc0f9b6
Fix t_dist_cppstyle Perl performance issue ( #4085 ).
2023-09-16 09:22:12 -04:00
Wilson Snyder
10fbe74cef
Commentary: Changes update
2023-09-15 23:25:28 -04:00
Wilson Snyder
05d04a3959
Internals: Fix misnamed member. No functional change.
2023-09-15 23:02:34 -04:00
Wilson Snyder
19f7279542
Fix false INFINITELOOP on forever..mailbox.get() ( #4323 ).
2023-09-15 22:05:55 -04:00
Wilson Snyder
aa608472ae
Support recursive function calls ( #3267 ).
2023-09-15 20:46:31 -04:00
Wilson Snyder
26ed2a06a0
Tests: Add UVM test that generates ok with known issues commented out. ( #1538 ) ( #3267 ) ( #4125 ) ( #4323 ) ( #4349 ) ( #4465 ) ( #4467 ) ( #4468 ) ( #4470 ) ( #4493 ) ( #4494 ) ( #4495 ) ( #4496 ) ( #4497 )
2023-09-15 20:26:46 -04:00
Wilson Snyder
07013da13d
Tests: Disabled test ( #4493 )
2023-09-15 19:56:05 -04:00
Wilson Snyder
d840c612d4
Fix IGNOREDRETURN to not warn on void-cast static function calls.
2023-09-15 19:01:11 -04:00
Wilson Snyder
188cf85b3f
Suppress some debug unknown hash/simulate warnings in UVM.
2023-09-15 18:33:02 -04:00
Wilson Snyder
c52ba28dd0
Tests: Fix commentary to unify issue references.
2023-09-15 18:12:11 -04:00
Wilson Snyder
10c1653e72
Fix ZERODLY to not warn on 'wait(0)'.
2023-09-15 08:53:29 -04:00
Wilson Snyder
2fbd41e13b
Tests: Add t_queue_persistence.pl as broken test ( #3385 ) ( #4489 )
2023-09-15 07:59:06 -04:00
Ryszard Rozak
96857c5f95
Fix the error message when the type of ref argument is wrong ( #4490 )
2023-09-15 07:17:24 -04:00
Wilson Snyder
131eb319e0
Tests: Advance UVM through V3LinkDot Param ( #1538 partial)
2023-09-14 20:09:43 -04:00
Wilson Snyder
6e589377f4
Fix reference to extended class in parameterized class ( #4466 ).
2023-09-14 20:07:49 -04:00
Wilson Snyder
2c84b37bf7
Internals: Rename some V3LinkDot variables. No functional change.
2023-09-14 20:06:20 -04:00
Kamil Rakoczy
0d67caff77
Internals: V3Task: refactor common code to connectPort. No functional change intended ( #4488 )
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2023-09-14 07:24:49 -04:00
Anthony Donlon
3dde57d539
Fix lint of case statements with enum and wildcard bits ( #4464 ) ( #4487 )
2023-09-14 07:22:49 -04:00
Kamil Rakoczy
ec2e3ec0e4
Update clang_check_attributes to take into account MT_DISABLED ( #4479 )
2023-09-13 16:32:18 -04:00
Kamil Rakoczy
9fe459c820
Internals: V3LockGuard: Add constructor for adopting already locked mutex. ( #4476 )
2023-09-13 13:52:59 -04:00
Wilson Snyder
823e0723fb
Internals: Remove legacy define. No functional change.
2023-09-13 08:46:51 -04:00
Kamil Rakoczy
8bd6d7c5b1
Internals: Add V3ThreadSafety ( #4477 )
2023-09-13 07:57:48 -04:00
Wilson Snyder
839a8fa4d9
Fix error on enum with VARHIDDEN of cell ( #4482 ).
2023-09-12 17:47:57 -04:00
Krzysztof Boroński
24917a187a
Fix V3CUse, do not consider implementations (.cpp) at all ( #4386 )
2023-09-12 17:59:57 +02:00
Ryszard Rozak
6c6f03cf7c
Fix static cast from a stream type ( #4469 ) ( #4485 )
2023-09-12 11:06:12 -04:00
Kamil Rakoczy and Mariusz Glebocki
5676443139
Internals: Rename and slightly change other threads stopping/resuming methods. ( #4478 )
...
Co-authored-by: Mariusz Glebocki <[email protected] >
2023-09-11 13:43:26 -04:00
Kamil Rakoczy and Mariusz Glebocki
e77d847671
Check whether V3ERROR_NO_GLOBAL_ is not already defined. ( #4475 )
...
Co-authored-by: Mariusz Glebocki <[email protected] >
2023-09-11 09:01:34 -04:00
Kamil Rakoczy and Mariusz Glebocki
0baee84e96
Move dpiTemporaryVarSuffix() to header. ( #4474 )
...
Co-authored-by: Mariusz Glebocki <[email protected] >
2023-09-11 09:01:09 -04:00
Ryszard Rozak
c446cc2596
Internals: Remove unused constructor. No functional change. ( #4473 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-09-11 07:10:33 -04:00
Ryszard Rozak
b66c4153b1
Compute purity of AstCMethodHard ( #4460 )
2023-09-11 13:06:15 +02:00
Wilson Snyder
d72f1b89fc
Internals: Minor internal code coverage cleanups
2023-09-10 18:53:51 -04:00
Wilson Snyder
b5b278d072
Fix fork crash with no init, test for ( #4471 )
2023-09-10 08:53:21 -04:00
Wilson Snyder
cb5466a90b
Tests: UVM passes V3Param stage
2023-09-09 11:54:55 -04:00
Wilson Snyder
4de25369da
Tests: Add t_uvm_all
2023-09-08 22:29:23 -04:00
Wilson Snyder
cdd8953085
Disable Subst when not pure
2023-09-08 21:52:33 -04:00
Wilson Snyder
2f2f0164ff
Internals: Use specific types on some cloneTrees. No functional change.
2023-09-08 21:51:59 -04:00
Kamil Rakoczy
6e977e1024
Generate compile_commands.json using bear ( #4463 )
2023-09-08 17:26:11 -04:00
Krzysztof Boroński
70b11f91b4
Support block_item_declaration in forks ( #4455 )
2023-09-08 16:40:14 +02:00
Wilson Snyder
014301587f
Unsupported instead of syntax error on parameter var initial values
2023-09-08 08:37:17 -04:00
Krzysztof Bieganski
139e93d371
Internals: Reduce the number of typechecks in graphs ( #4398 ). No functional change intended.
2023-09-08 07:35:52 -04:00
Krzysztof Bieganski
fb1fc46b06
Internals: Rework self pointers ( #4396 )
2023-09-08 07:34:35 -04:00
Wilson Snyder
9882ab6c67
Tests: Remove unstable new test
2023-09-08 07:22:52 -04:00
Ryszard Rozak
1a1f919882
Check the output in t_class_method_str_literal.v ( #4459 )
2023-09-08 08:51:54 +02:00
Ryszard Rozak
91227d26bb
Internals: Rename pure to dpiPure. No functional change. ( #4461 )
2023-09-08 08:51:19 +02:00
Wilson Snyder
11b5dae88d
Support let
2023-09-07 21:45:51 -04:00
Wilson Snyder
0c7d485417
Fix error printing internal name()
2023-09-06 21:07:06 -04:00
Ryszard Rozak
c40e34b134
Support assignments of stream expressions on queues to packed values ( #4458 )
2023-09-06 15:25:48 +02:00
Wilson Snyder
6cdf8da3f7
Fix documentation line wrap ( #4456 )
2023-09-05 07:25:33 -04:00
Wilson Snyder
c65265477f
Tests: Enable cover named property
2023-09-03 21:02:42 -04:00
Wilson Snyder
de77f1ee5c
Improve error that assert-under-assert is unsupported
2023-09-03 09:08:43 -04:00
Wilson Snyder
c8c980c49d
Fix mis-warning on #() in classes' own functions.
2023-09-02 08:33:56 -04:00
Wilson Snyder
ad329612fd
Internals: Remove unnecessary cloneTree.
2023-09-01 20:13:20 -04:00
Wilson Snyder
c324895cbc
Internals: Remove unnecessary cloneTree.
2023-09-01 19:49:57 -04:00
Wilson Snyder
679a4314dc
Tests: Avoid side effect on array index
2023-09-01 19:26:50 -04:00
Wilson Snyder
36932d31c4
Fix C++11 missing C++14's std::make_unique.
2023-09-01 18:07:15 -04:00
Wilson Snyder
ed25aaaad9
Internals: Fix g++ std11 warning. No functional change.
2023-09-01 17:59:30 -04:00
Wilson Snyder
147aa41ba5
Internals: Fix virt call in constructor warning. No functional change.
2023-09-01 17:58:17 -04:00
Ryszard Rozak
5b7e32581b
Internals: Cleanup V3Task. No function change intended. ( #4454 )
2023-09-01 08:03:16 -04:00
Wilson Snyder
2f90fb2bec
Set lifetime for repeat variable ( #4451 partial)
2023-08-31 18:34:37 -04:00
Wilson Snyder
8c480fd39e
Internals: Fix cppcheck warnings
2023-08-31 18:29:58 -04:00
Krzysztof Bieganski
ffbbd438ae
Internals: Use runtime type info instead of dynamic_cast for faster graph type checks ( #4397 )
2023-08-31 18:00:53 -04:00
Anthony Donlon
96ee81fa3f
Fix unstable output of VHashSha256 ( #4453 )
2023-08-31 13:42:37 -04:00
Wilson Snyder
3d2399ea0f
Tests: Enable fixed-earlier ( #2314 )
2023-08-30 18:10:30 -04:00
Wilson Snyder
6d5dde8645
Fix duplicate Vfork functions ( #4418 )
2023-08-30 17:59:25 -04:00
Wilson Snyder
048c9f3fe2
Support extra commas before $display
2023-08-30 17:31:11 -04:00
Wilson Snyder
373265752f
Fix display %x formatting of real.
2023-08-30 17:21:33 -04:00
Wilson Snyder
5e6519c1b0
Commentary
2023-08-30 07:46:39 -04:00
Wilson Snyder
ccdb52c1d9
Fix lifetime unknown error on enum.name ( #4448 ).
2023-08-30 07:20:25 -04:00
Yinan Xu
b4b74d72f0
Add prepareClone and atClone APIs for Verilated models ( #3503 ) ( #4444 )
...
This API is used if the user copies the process using `fork`
and similar OS-level mechanisms. The `at_clone` member function
ensures that all model-allocated resources are re-allocated, such
that the copied child process/model can simulate correctly.
A typical allocated resource is the thread pool, which every model
has its own pool.
2023-08-30 07:02:55 -04:00
Wilson Snyder
ca6ab584d0
Internals: Remove cloneTreeNull. No functional change intended.
2023-08-29 20:29:11 -04:00
github action
799a502cac
Apply 'make format'
2023-08-29 23:56:25 +00:00
Ethan Sifferman
8d1570db28
Add check for conflicting options e.g. binary+lintonly ( #4409 )
2023-08-29 19:55:37 -04:00
Wilson Snyder
2a30bbe493
Fix internal error on real conversion ( #4447 ).
2023-08-29 18:07:23 -04:00
Anthony Donlon
cf6566b9bc
Internal: Optimize program size by refactoring error reporting routines ( #4446 )
2023-08-29 16:54:32 -04:00
Krzysztof Boroński
c3e19f2821
Move variables mutated under fork..join_none/join_any blocks into anonymous objects ( #4356 )
2023-08-29 20:01:00 +02:00
Ryszard Rozak
e24197fd16
Don't move function calls before the expression ( #4413 )
2023-08-28 15:44:41 +02:00
Anthony Donlon
63db60f646
Fix using type in parameterized classes without #() ( #4281 ) ( #4440 )
...
* Check whether a class is parameterized or not with AstClass::isParameterized method
* Fix usage conflict of user2 pointer in V3Param.cpp
2023-08-26 12:06:26 -01:00
Wilson Snyder
e66b28823d
Internals: Cleanup some spacing. No functional change.
2023-08-26 05:59:56 -04:00
Wilson Snyder
77bd565ef6
Commentary: Changes update
2023-08-25 08:28:26 -04:00
Wilson Snyder
00d63883f8
Fix false MULTITOP on bound interfaces ( #4438 ).
2023-08-25 08:21:15 -04:00
Wilson Snyder
10dd675371
Fix false UNUSEDPARAM on generate localparam ( #4427 ).
2023-08-25 07:59:29 -04:00
Ryszard Rozak
2daa32b98b
Support assignments of packed values to stream expressions on queues ( #4401 )
2023-08-25 11:24:12 +02:00
Ryszard Rozak
e8e7912871
Tests: Fix t_net_delay test ( #4436 )
2023-08-23 13:27:17 -01:00
Ryszard Rozak
90079c2974
Fix nested assignments on the LHS ( #4435 )
2023-08-23 12:08:22 +02:00
Wilson Snyder
967a8530dd
Fix errors on some $past cases ( #4425 )
2023-08-22 01:49:06 -04:00
Krzysztof Boroński
ef4794e36d
Support parenthesesless calls to static methods ( #4432 )
2023-08-22 06:06:34 +01:00
Aleksander Kiryk
7c7c92d2dd
Fix coroutine handle movement during queue manipulation ( #4431 )
2023-08-21 10:22:09 -04:00
Wilson Snyder
95f3dd0535
Commentary ( #4429 )
2023-08-21 06:23:35 -04:00
Anthony Donlon
768b78e7d0
Fix checking for parameter and port connections in the wrong place ( #4428 )
2023-08-20 08:55:16 -04:00
Aleksander Kiryk
4370254e73
Fix ++/-- under statements ( #4399 )
2023-08-19 07:03:21 -04:00
Wilson Snyder
436f72582b
Update GTKWave from upstream.
2023-08-19 06:57:43 -04:00
Wilson Snyder
af3aba7821
Commentary: Changes update
2023-08-19 04:56:49 -04:00
github action
7479db6ffc
Apply 'make format'
2023-08-19 08:52:38 +00:00
Frans Skarman
e9cc2786b7
Add --no-trace-top option ( #4422 )
2023-08-19 04:51:29 -04:00
Anthony Donlon
cbdee5a804
Fix Windows filename format, etc. ( #3873 ) ( #4421 )
...
* Ignore CLion project files and CMake outputs
* Supporting stripping file path that contains backslash
* Set /bigobj flag and increase stack size for windows platform
* Fix MSVC warnings
2023-08-16 07:34:57 -04:00
Anthony Donlon
0f66262fa1
Internals: Refactor AstNode::checkTreeIter for better stack size ( #4420 )
2023-08-16 07:32:39 -04:00
Jose Loyola
6c80457262
CI: Refactor docker build action to define DOCKER_HUB_NAMESPACE as repo variable ( #4419 )
2023-08-15 06:45:07 +02:00
Wilson Snyder
16008acdf1
Internals: Add disabled duplicate function check ( #4418 )
2023-08-12 10:51:35 -04:00
Wilson Snyder
5447ed2629
Fix multple function definitions in V3Sched ( #4416 ).
2023-08-12 10:41:44 -04:00
Wilson Snyder
9eba61018a
Tests: Ignore debug message in error line
2023-08-12 09:39:02 -04:00
Wilson Snyder
bc97319402
Internals: State commentary. No functional change.
2023-08-12 08:55:08 -04:00
Wilson Snyder
709db5c648
Internals: Avoid unordered_set
2023-08-12 08:46:25 -04:00
Krzysztof Boroński
b752faa107
Fix jumping over object initialization ( #4411 )
2023-08-11 18:28:37 +02:00
Krzysztof Boroński
8d512c3187
Fix variable lifetimes in extern methods ( #4414 )
2023-08-11 16:52:59 +02:00
Ryszard Rozak
2d9bc73709
Fix dtype of condition operation on class objects ( #4345 ) ( #4352 )
2023-08-07 05:54:30 -04:00
Ryszard Rozak
b0942ed8c7
Fix detection of mixed blocking and nonblocking assignment in nested assignments ( #4404 )
2023-08-07 11:35:44 +02:00
Wilson Snyder
b1c1aa53a9
devel release
2023-08-06 10:53:16 -04:00
Wilson Snyder
f79749e7b2
Version bump
2023-08-06 10:39:35 -04:00
Krzysztof Bieganski
1a77030c9b
Internals: Speedup to only typecheck node child getters in debug builds ( #4394 )
2023-08-05 03:24:00 -04:00
Wilson Snyder
817ade27fb
Commentary: Changes update
2023-08-05 03:18:00 -04:00
Aleksander Kiryk
4afa14b612
Internals: Remove m_pkgp and m_classp from WidthVisitor ( #4402 )
2023-08-05 03:07:23 -04:00
Krzysztof Bieganski
9caa79a7ea
Internals: Remove the name field from AstVarRef ( #4395 )
2023-08-03 02:52:52 -04:00
Wilson Snyder
446f21d2a0
Tests: Fix more missing internal code coverage
2023-07-27 06:53:43 -04:00
Wilson Snyder
06521f6cf1
Tests: Fix some missing coverage, and cleanup some error messages
2023-07-27 06:53:43 -04:00
github action
75336670d7
Apply 'make format'
2023-07-27 09:44:05 +00:00
Andrew Miloradovsky
106a9fe67f
Fix config_build.h issues ( #4380 ) ( #4381 )
2023-07-27 05:42:35 -04:00
Wilson Snyder
a5eccc199b
Commentary: Changes update
2023-07-27 04:01:28 -04:00
Vito Gamberini
837d9f9d77
Require CMake config minimum version 3.13 ( #4389 ) ( #4390 )
2023-07-26 17:54:18 -04:00
Anthony Donlon
959387b69f
Support property declaration with empty parentheses ( #4313 ) ( #4317 )
2023-07-26 05:18:21 -04:00
Ryszard Rozak
fd0703b8c8
Fix selects on unpacked structs ( #4359 )
2023-07-25 12:50:24 +02:00
Ryszard Rozak
3ff608b9cb
Fix non-public methods with wide output ( #4364 )
2023-07-25 04:55:58 -04:00
Aleksander Kiryk
edc0a0e982
Optimize V3Number::opAdd ( #4385 )
2023-07-24 17:09:27 -04:00
Aleksander Kiryk
1549ff9185
Support more types in wait ( #4374 )
2023-07-24 08:14:01 -04:00
Wilson Snyder
3454641244
Commentary: Add website badge
2023-07-21 04:11:15 -04:00
Wilson Snyder
5dedf25e3b
Commentary: Add website badge
2023-07-21 04:07:29 -04:00
Wilson Snyder
7214c180ae
Commentary: Add website badge
2023-07-21 04:06:22 -04:00
Ryszard Rozak
aa0ef554b3
Fix order of evaluation of function calls in statements ( #4375 )
2023-07-21 03:29:11 -04:00
Ryszard Rozak
a6015863d8
Support for static method calls as default values of function arguments ( #4378 )
2023-07-21 03:27:00 -04:00
Aleksander Kiryk
5a694ccb8a
Fix assign to input var in methods ( #4367 )
2023-07-17 09:52:37 -04:00
Aleksander Kiryk
f7d09c671a
Fix VlProcess not found ( #4368 )
2023-07-17 09:52:07 -04:00
Ryszard Rozak
4de1b22672
Fix handling of super.new calls ( #4366 )
2023-07-17 13:30:42 +02:00
Krzysztof Boroński
4bdda3f240
Improve propagation of process requirement and decouple it from suspendability ( #4321 )
2023-07-14 17:12:02 +02:00
Ryszard Rozak
ced1dfeffd
Fix select operation on assoc array with wide keys ( #4360 )
2023-07-12 18:48:24 +02:00
Krzysztof Boroński
0774f825cf
Internals: Use pointer to const nodes in V3MemberMap ( #4353 )
2023-07-12 11:36:24 -04:00
Ryszard Rozak
23fe5c1b93
Fix string concatenations ( #4354 )
2023-07-10 12:58:54 -04:00
Wilson Snyder
bd4afeea69
Tests: Fix removing line numbers ( #4352 )
2023-07-10 08:17:49 -04:00
Julian Daube
3ee9b33f8a
Fix cmake astgen for Rocky Linux 8.7 ( #4343 )
2023-07-09 06:02:21 +05:00
Wilson Snyder
5be0813893
Explicity reference std:: in header files ( #4338 ). No functional change intended.
2023-07-08 13:20:40 -04:00
Wilson Snyder
f94c1b32e5
Internals: Make V3MemberMap to remove member cache ( #4350 )
2023-07-08 12:40:27 -04:00
Wilson Snyder
ff4923cf67
Internals: Make V3MemberMap towards removing member cache ( #4350 )
2023-07-08 12:27:50 -04:00
Krzysztof Bieganski
5788bc8048
Propagate class timescale to class package ( #4348 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-07-07 17:27:33 +02:00
Wilson Snyder and Ahmed El-Mahmoudy
5749662194
Documentation: Drop analytics_id unless VERILATOR_ANALYTICS_ID set ( #4333 )
...
Co-authored-by: Ahmed El-Mahmoudy <[email protected] >
2023-07-07 10:44:33 -04:00
Krzysztof Bieganski
d5d1cc47e0
Fix multiple edge timing controls in class methods ( #4318 ) ( #4320 ) ( #4344 )
...
Multiple edge timing controls in class methods would cause compilation errors on
the generated C++ code. This is because the `SenExprBuilder` used for these
would get recreated per timing control, resulting in duplicate variable names.
The fix is to have a single `SenExprBuilder` per scope.
2023-07-07 08:19:49 -04:00
Ryszard Rozak
da043ca16d
Fix comparison of class objects ( #4346 )
2023-07-07 16:20:23 +05:00
Aleksander Kiryk
9aa90569bf
Support string replication with variable ( #4341 )
2023-07-07 13:05:06 +05:00
Wilson Snyder
294d78e0e2
Backout unstable dbb35ab8 ( #4318 ) ( #4320 )
2023-07-05 14:26:28 -04:00
Wilson Snyder
8182c3fe2c
Tests: Fix t_vpi_unimpl exiting early with missed error
2023-07-05 14:12:22 -04:00
Wilson Snyder
6f7bc38088
Tests: Improve specparam verilog.y coverage
2023-07-05 14:11:55 -04:00
Wilson Snyder
dcbc0ccfdc
Commentary: Revert lost name.
2023-07-05 13:55:47 -04:00
Aleksander Kiryk
399319dc1c
Fix wildcard referring types ( #4336 ) ( #4342 )
2023-07-05 13:08:00 -04:00
Krzysztof Bieganski
35d6da391b
Fix multiple edge timing controls in class methods ( #4318 ) ( #4320 )
...
Multiple edge timing controls in class methods would cause compilation errors on the generated C++ code. This is because the `SenExprBuilder` used for these would get recreated per timing control, resulting in duplicate variable names. The fix is to have a single `SenExprBuilder` per scope.
2023-07-05 10:36:10 +00:00
Aleksander Kiryk
fcbd7c87af
Fix unexpected RefDType on assoc arrays ( #4337 )
2023-07-04 18:13:22 +05:00
Ryszard Rozak
97feba6898
Support locator methods with "with" on assoc arrays ( #4335 )
2023-07-04 18:11:15 +05:00
Aleksander Kiryk
9249ffdb84
Fix queue slicing ( #4329 )
2023-07-03 13:55:24 -04:00
أحمد المحمودي
71df9e3381
Commentary: Fix typo of concurrent ( #4332 )
2023-07-02 16:12:09 -04:00
Wilson Snyder
3c964147be
Add MISINDENT lint warning for misleading indentation.
2023-07-01 10:45:25 -04:00
Wilson Snyder
54b4b6b378
Internals: Fix missing calls to cleanFileline.
2023-07-01 08:59:26 -04:00
Wilson Snyder
cff37f0775
Add GENUNNAMED lint warning.
...
Also fix generate-for blocks with empty statements getting lost.
2023-07-01 08:31:53 -04:00
Wilson Snyder
8b1cc3b303
Commentary: Changes update
2023-07-01 07:35:58 -04:00
Mariusz Glebocki
65b6121186
Revert .gdbinit modified by accident. ( #4330 )
...
`test_regress/.gdbinit` has been modified in
d42f9c095b most likely by accident.
Restore its previous content.
2023-06-30 16:57:31 -04:00
Ryszard Rozak
3d30527860
Fix unique..with method on queues of class objects ( #4328 )
2023-06-30 17:04:09 +02:00
Ryszard Rozak
24a9f7c650
Fix references to members of results of static methods ( #4327 )
2023-06-30 13:23:34 +02:00
Ryszard Rozak
242f661644
Fix selects of static members ( #4326 )
2023-06-30 09:12:22 +02:00
Aleksander Kiryk
32019d2bc4
Fix state update for always processes ( #4311 )
2023-06-29 09:21:49 -04:00
Krzysztof Boroński
b252bb048f
Fix unhandled overloads in V3InstrCount ( #4324 )
2023-06-28 08:49:56 -04:00
Ryszard Rozak
ba47c01a01
Fix implicit calls of base class constructors with optional arguments ( #4319 )
2023-06-27 16:08:38 +02:00
Ryszard Rozak
51266898ec
Fix comparison of string parameters ( #4308 )
2023-06-27 10:40:45 +02:00
Wilson Snyder
f9164ab0d2
Internals: Assert dtype comparison. No functional change intended.
2023-06-25 07:40:00 -04:00
Wilson Snyder
c43e707f43
Internals: refactor sameTreeIter. No functional change.
2023-06-25 07:26:45 -04:00
Mariusz Glebocki
85b7f828b3
Internals: Use std::packaged_task as a job wrapper; add and use V3ThreadPool::ScopedExclusiveAccess ( #4310 ).
...
* Add VL_ASSERT_CAPABILITY; add assumeLocked and pretendUnlock to V3Mutex.
* Pass jobs as template-arguments and use std::packaged_task.
* Add and use V3ThreadPool::ScopedExclusiveAccess.
2023-06-23 18:25:12 -04:00
Wilson Snyder
7005a65d32
Tests: Attempt 20.04 fix for (#b1aec9b) ( #4307 )
2023-06-23 07:09:07 -04:00
Wilson Snyder
776d4e6ac2
CI: Build 20.04 on pull requests
2023-06-23 07:08:04 -04:00
Jiamin Zhu
1c88c3083c
Fix splitting coroutines ( #4297 ) ( #4307 )
2023-06-23 06:01:38 -04:00
Ryszard Rozak
4522834f7a
Fix duplicate fork names ( #4295 )
2023-06-22 06:51:53 -04:00
Ryszard Rozak
9ee5fd0585
Fix handling of ref types in initial values of type parameters ( #4304 )
2023-06-20 14:10:07 -04:00
Wilson Snyder
63b2dbb827
Fix error when multiple duplicate DPI exports ( #4301 ).
2023-06-20 06:26:46 -04:00
Wilson Snyder
5bee8ef15b
Remove long deprecated verilated_heavy.h
2023-06-17 08:45:13 -04:00
Wilson Snyder
e7de3d368f
Commentary: Deprecation planned for 32-bit pointer -m32 mode ( #4268 ).
2023-06-17 08:44:13 -04:00
Wilson Snyder
d45deccc0a
Internals: Favot std::array. No functional change intended.
2023-06-16 19:44:40 -04:00
Wilson Snyder
d5b03ab721
Tests ( #3806 ) ( #3807 )
2023-06-16 18:30:25 -04:00
Ryszard Rozak
d1ff81a41c
Fix class reference assignment checking ( #4296 )
2023-06-15 14:00:47 +02:00
Krzysztof Bieganski
43fa6858f6
Fix VlForkSync redeclaration ( #4277 )
...
Given nested forks, if the inner fork had a `join` or `join_any` at the end,
`V3Sched::transformForks()` would decide that the fork's `VlForkSync` variable
should be passed in from the outside. This resulted in the `VlForkSync` getting
redeclared as a function argument. Ultimately, it led to C++ compilation errors
due to variable redeclaration.
Fixed by rearranging the `if`s that decide whether a variable should be passed
in or left as-is.
2023-06-15 07:49:50 -04:00
Wilson Snyder
db7eb45433
Contributors: Add Krzysztof Boronski and re-sort
2023-06-14 18:53:44 -04:00
Krzysztof Boronski
21c01ba97b
V3Fork - transform processes that can outlive their parents into separate tasks ( #4253 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-06-14 20:44:53 +02:00
Ryszard Rozak
b517fb5ee3
Support some stream operations on queues ( #4292 )
2023-06-13 22:46:42 -04:00
Wilson Snyder
9dbc669199
devel release
2023-06-13 19:39:50 -04:00
Wilson Snyder
7d2d32420a
Version bump
2023-06-13 19:31:57 -04:00
Wilson Snyder
48e98ea2bd
Internals: Sort some error codes ( #4253 ). No functional change intended.
2023-06-13 08:52:13 -04:00
Wilson Snyder
01d0f0327b
Commentary ( #4254 )
2023-06-13 08:22:57 -04:00
Wilson Snyder
0dc887720d
Tests: Fix tests, broke in commit 3a9eeabd
2023-06-12 22:38:45 -04:00
Wilson Snyder
e08bbcdb07
Commentary
2023-06-12 21:59:52 -04:00
Wilson Snyder
70d26ec123
Commentary ( #4211 ) ( #4254 )
2023-06-12 21:59:33 -04:00
Wilson Snyder
a06f260f42
Fix C++11 compiler error with C++14 rbegin
2023-06-12 21:46:32 -04:00
Wilson Snyder
d42f76c346
Tests: Fix tests, broke in commit 3a9eeabd
2023-06-12 21:36:23 -04:00
Wilson Snyder
66c3d6d2d1
Commentary
2023-06-12 20:52:29 -04:00
Wilson Snyder
81affad2dc
Tests: Fix test, broke in previous commit
2023-06-12 20:41:33 -04:00
Wilson Snyder
2488af9066
Commentary: Changes update
2023-06-12 20:38:33 -04:00
Wilson Snyder
5cf9d78516
Commentary
2023-06-12 20:28:32 -04:00
Wilson Snyder
3a9eeabdb2
Tests: Auto detect and exit --timing with no coroutines
2023-06-12 20:09:12 -04:00
Julien Margetts
ac4315e145
Fix LATCH warning on function local variables ( #4221 ) ( #4284 )
2023-06-12 09:24:46 -04:00
John Wehle
5094e94df1
Fix tracing undefined alignment ( #4201 ) ( #4288 )
2023-06-12 07:13:00 -04:00
Àlex Torregrosa
4b7b185d05
Fix VCD scope types ( #4227 ) ( #4282 )
2023-06-08 11:43:04 -04:00
Aleksander Kiryk
6cb0335d28
Support array max ( #4275 )
2023-06-07 07:44:21 -04:00
Aleksander Kiryk
c248318958
Fix struct redefinition ( #4276 )
2023-06-06 18:28:35 -04:00
Ryszard Rozak
c3e5db5f04
Fix names of foreach blocks ( #4264 )
2023-06-06 16:24:42 +02:00
Krzysztof Bieganski
058233fc87
Set the global usesTiming flag if forks exist ( #4274 )
2023-06-06 09:35:12 -04:00
Mariusz Glebocki
186c851695
Internals: Avoid pessimistic mutex locking in waitIfStopRequested() ( #4272 ). No functional change intended.
...
`stopRequested()` reads only atomic variables. It doesn't need a mutex
to do this.
This function is called in `waitIfStopRequested()`, which in turn
is called before execution of every job, and inside some jobs. With this
change the mutex inside `waitIfStopRequested` needs to be locked only in
very rare cases instead of every time.
2023-06-05 19:40:36 -04:00
Mariusz Glebocki
5aa36357f6
Internals: Use auto instead of SFINAE in return type ( #4271 ). No functional change intended.
2023-06-05 18:53:19 -04:00
Wilson Snyder
191d30cf1c
Update gtkwave from upstream ( #4141 )
2023-06-03 12:10:07 -04:00
Andrei Kostovski
d8c2ecaaf8
Commentary: Update install.rst for help2man ( #4260 ) ( #4261 )
2023-06-03 10:31:17 -04:00
github action
a7b0551d23
Apply 'make format'
2023-06-03 14:11:23 +00:00
John Wehle
dc34968fe7
Add class specific same methods for AstVarScope, AstVar, and AstScope ( #4203 ) ( #4250 )
2023-06-03 10:07:39 -04:00
Jiamin Zhu
45f064f7cb
Fix missing assignment for wide class members. ( #4267 )
2023-06-03 06:40:23 -07:00
Krzysztof Boroński
545caba720
Give iterated variables in foreach loops VAUTOM lifetimes ( #4265 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-06-02 17:16:42 +02:00
Krzysztof Boroński
0e24f36fef
Use STATIC lifetime for variables created from clocking items ( #4262 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-06-01 17:49:27 +02:00
Aleksander Kiryk
db7935faf3
Add std::process class ( #4212 )
2023-06-01 10:02:08 -04:00
Adrien Le Masle
9cc218db3e
Fix incorrect multi-driven lint warning ( #4231 ) ( #4248 )
2023-06-01 08:43:17 -04:00
Ryszard Rozak
15f8ebc562
Fix static methods with prototypes ( #4220 )
2023-05-31 21:18:32 -04:00
github action
205cae963b
Apply 'make format'
2023-05-31 16:03:33 +00:00
Don Williamson
df2746de71
Add --main-top-name option for C main TOP name ( #4235 ) ( #4249 )
2023-05-31 09:02:26 -07:00
Risto Pejašinović
7f471d862e
Fix operator == for unpacked struct, if elements are VlUnpacked arrays ( #4247 )
2023-05-31 08:34:34 -04:00
Risto Pejašinović
338acabe2b
Fix AstStructSel clean when data type is structure ( #4241 ) ( #4244 )
2023-05-30 23:44:48 -04:00
Ryszard Rozak
4f1f487ae4
Fix function calls in with statements ( #4245 )
2023-05-30 09:02:59 -04:00
Krzysztof Bieganski
77502aeb97
Add warning that timing controls in DPI exports are unsupported ( #4238 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-05-30 09:00:10 -04:00
Ryszard Rozak
ba82d43ca1
Support for condition operator on class objects ( #4214 )
2023-05-30 08:59:00 -04:00
Wilson Snyder
e9135598b3
Fix method calls on function return values.
2023-05-29 18:51:27 -04:00
Risto Pejašinović
1c0739db10
Fix unpacked struct == and != operators ( #4234 ) ( #4240 )
2023-05-29 12:08:39 -04:00
Ryszard Rozak
dfd3907787
Mark AstMemberSel as clean ( #4236 )
2023-05-29 09:35:53 +02:00
Wilson Snyder
1069652701
Fix some AstExprStmt handling issues, towards side effect fixes.
2023-05-27 12:43:40 -04:00
Wilson Snyder
70b82f1aec
Internals: V3Dead cleanups. No functional change.
2023-05-27 11:46:25 -04:00
Wilson Snyder
5573bdb219
Internals: Cleanup V3SplitAs VL_RESTORED. No functional change intended.
2023-05-27 10:43:04 -04:00
Wilson Snyder
cf68578261
Internals: Cleanup V3SplitAs VL_RESTORED. No functional change intended.
2023-05-27 10:17:51 -04:00
Wilson Snyder
f407d442d4
Commentary
2023-05-27 09:43:23 -04:00
Wilson Snyder
7f12ad9d91
Commentary: Changes update
2023-05-27 07:17:37 -04:00
Wilson Snyder
5efe9367d2
Fix SystemC signal copy macro use ( #4135 ).
2023-05-27 07:00:26 -04:00
Wilson Snyder
cfce92645f
Tests: Check equality of complex types.
2023-05-26 18:01:11 -04:00
Krzysztof Bieganski
519792d02b
Fix to commit coroutines immediately on wait statements ( #4229 )
...
Event-triggered coroutines live in two stages: 'uncommitted' and 'ready'. First
they land in 'uncommitted', meaning they can't be resumed yet. Only after
coroutines from the 'ready' queue are resumed, the 'uncommitted' ones are moved
to the 'ready' queue, and can be resumed. This is to avoid self-triggering in
situations like waiting for an event immediately after triggering it.
However, there is an issue with `wait` statements. If you have a `wait(b)`, it's
being translated into a loop that awaits a change in `b` as long as `b` is
false. If `b` is false at first, the coroutine is put into the `uncommitted`
queue. If `b` is set to true before it's committed, the coroutine won't get
resumed.
This patch fixes that by immediately committing event controls created from
`wait` statements. That means the coroutine from the example above will get
resumed from now on.
2023-05-25 20:20:44 -04:00
Jiamin Zhu
bfa1f2d7ce
Fix missing assignment for wide unpacked structs ( #4233 )
2023-05-25 20:13:02 -04:00
Aleksander Kiryk
42beaf467c
Tests: Add incomplete type definition test ( #4230 )
2023-05-25 14:06:37 -04:00
Mariusz Glebocki
8303938d0e
Internals: Make mutex classes uncopyable. ( #4223 )
2023-05-25 07:35:14 -04:00
Mariusz Glebocki
0ece155418
Internals: Move some includes to .cpp files. ( #4224 )
2023-05-24 18:53:14 -04:00
Ryszard Rozak
4f7e155e59
Fix class parameters of enum types ( #4219 )
2023-05-24 15:51:03 +02:00
Wilson Snyder
ff324625e4
CI: Disable m32 on g++
2023-05-23 23:04:24 -04:00
Wilson Snyder
fd7515b046
Tests: Cleanup scenarios lines. No test run change.
2023-05-23 22:40:19 -04:00
Wilson Snyder
607f853bc7
CI: Disable m32 on g++
2023-05-23 22:35:07 -04:00
Wilson Snyder
09fb1174f1
CI: Disable m32 on g++
2023-05-23 22:34:27 -04:00
Wilson Snyder
542eaab3dd
CI: Disable m32 on g++
2023-05-23 22:28:40 -04:00
Wilson Snyder
a301a498f5
CI: Disable m32 on g++
2023-05-23 22:27:10 -04:00
Wilson Snyder
d66e749ec8
CI: Fix mold build
2023-05-23 22:25:03 -04:00
Wilson Snyder
c8ca54ea31
CI: Disable m32 on g++
2023-05-23 22:24:47 -04:00
Wilson Snyder
5704552053
Fix ci for mold
2023-05-23 21:30:39 -04:00
Wilson Snyder
426069a4dd
Configure for faster C++ linking using 'mold', if it is installed.
2023-05-23 21:26:29 -04:00
Wilson Snyder
19d0aabe7a
Internals: Fix extra cast on ExprStmt.
2023-05-23 20:52:30 -04:00
Krzysztof Boroński
fb0d735f68
Tests: Skip t_suspendable_deep if coroutines are not supported by CXX toolchain ( #4217 )
2023-05-23 14:02:40 -04:00
Krzysztof Boroński
167a30be1c
Fix deep traversal of class inheritance timing ( #4216 )
2023-05-23 09:01:57 -04:00
Wilson Snyder
5982528274
Fix duplicate std:: declaration with -I ( #4215 ).
2023-05-22 20:32:20 -04:00
Krzysztof Boroński
de3095e3b4
Fix missing class forward declarations ( #4151 )
2023-05-22 08:29:01 -04:00
Wilson Snyder
8e0682f442
Fix V3Expand ignoring side effects
2023-05-21 21:02:39 -04:00
Wilson Snyder
140994d2c4
Internals: Cleanup more VL_RESTORER. No functional change intended.
2023-05-21 14:06:39 -04:00
Wilson Snyder
950e29d56e
Internals: Cleanup some missing VL_RESTORER in V3Gate. No functional change intended.
2023-05-21 12:49:07 -04:00
Wilson Snyder
65667356b6
wip
2023-05-21 12:24:00 -04:00
Wilson Snyder
6b393e9d7c
Internals: Allow statement-in-statement recursion in V3Premit
2023-05-21 12:03:13 -04:00
Wilson Snyder
4818130e4f
Internals: Remove dead code, addBeforeStmt
2023-05-20 22:37:28 -04:00
Ryszard Rozak
9da3aacd08
Fix bit selections under parameterized classes ( #4210 )
2023-05-18 20:01:36 -04:00
Krzysztof Bieganski
729f8b9334
Move suspendable detection to a separate visitor ( #4208 )
...
This makes the implementation of the detection and propagation of the
suspendable property simpler and easier to read. More importantly, there are no
more jumps around the AST with the `visit` functions, which in some cases could
result in incorrect visitor context while in the `visit` function. See the added
test, which would cause Verilator to segfault before this patch.
In testing, verilation performance was not shown to be affected by this change.
Though there is a slight performance improvement from this patch, due to adding
one more check before refreshing class member cache.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-05-17 17:09:33 +00:00
Ryszard Rozak
279216048b
Fix dotted references in parameterized classes ( #4206 )
2023-05-16 07:40:02 -04:00
Ryszard Rozak
2ce7a348df
Fix references to members of parameterized base classes ( #4196 )
2023-05-15 19:50:04 -04:00
Wilson Snyder
46f719ceaa
Tests: Fix some coverage holes
2023-05-13 20:15:03 -04:00
Mariusz Glebocki
949be301de
Internals: Fix unbalanced V3LockGuard locking ( #4193 )
2023-05-13 10:32:33 -04:00
Mariusz Glebocki
be429a5800
Internals: Lock the same mutex reference as specified in VL_ACQUIRE. ( #4194 )
2023-05-13 10:28:34 -04:00
Mariusz Glebocki
e7714e0902
Internals: Add additional clang's thread safety analysis annotations ( #4195 )
...
* Simplify some Clang-specific attribute defines.
* Add `VL_RETURN_CAPABILITY` and `VL_PT_GUARDED_BY`.
2023-05-12 09:06:36 -04:00
Krzysztof Bieganski
4835ed6967
Fix forced assignments that override non-continuous assignments ( #4183 ) ( #4192 )
...
Only assign forced value on release if it was forced in the first place.
2023-05-12 06:57:12 -04:00
Ryszard Rozak
0198a3fc52
Use unchanged copy of parameterized class for instantation ( #4179 )
2023-05-11 09:56:15 +02:00
Krzysztof Boroński
e095bf1af0
Support inside expressions with strings and doubles ( #4138 ) ( #4139 )
2023-05-10 20:36:41 -04:00
Aylon Chaim Porat
d5de67c6dc
Fix wide structure VL_TOSTRING_W generation ( #4188 ) ( #4189 )
...
* V3Common.cpp::makeVlToString: fix `VL_TOSTRING_W` statement generation to include width argument
* fix contribution name
* add testcase for long struct `VL_TO_STRING_W` bug
2023-05-10 20:34:44 -04:00
Ryszard Rozak
2267db093f
Fix hashes of instances of parameterized classes ( #4182 )
2023-05-10 18:34:29 -04:00
Ryszard Rozak
5aecfa98a1
Internals: Add param value string to hash in V3Param.cpp ( #4186 )
2023-05-10 17:52:17 -04:00
Wilson Snyder
485e230dd8
Commentary ( #4187 )
2023-05-10 17:51:22 -04:00
Wilson Snyder
befb415f27
Fix mod/div/round argument side effects
2023-05-07 22:31:31 -04:00
Wilson Snyder
c0490627bf
Tests: Update historical
2023-05-07 22:00:52 -04:00
Wilson Snyder
d269fbb446
Add creating __inputs.vpp file with --debug ( #4177 ).
2023-05-07 17:58:14 -04:00
Wilson Snyder
444020f7c7
Fix super.new missing data type ( #4147 ).
2023-05-07 16:47:34 -04:00
Wilson Snyder
6188083baa
Tests: Improve randc tests
2023-05-07 15:08:44 -04:00
Wilson Snyder
c2a524d80b
Commentary ( #4175 )
2023-05-07 08:36:03 -04:00
Wilson Snyder
e6f5a0495f
Fix $fscanf of decimals overflowing variables ( #4174 ).
2023-05-07 08:25:10 -04:00
Wilson Snyder
0606a29f13
Fix arrays of unpacked structs ( #4173 ).
2023-05-06 21:41:17 -04:00
Wilson Snyder
c6052830e1
Fix C++17 requirement on previous commit.
2023-05-06 20:23:35 -04:00
Wilson Snyder
4bb876aee5
Fix false IMPLICITSTATIC on package functions.
2023-05-06 19:48:22 -04:00
Wilson Snyder
a3640c1767
Support get_randstate/set_randstate class method function.
2023-05-06 19:09:19 -04:00
Wilson Snyder
250c6950cf
Fix randomize missing simple class rand members.
2023-05-06 18:33:08 -04:00
Wilson Snyder
76f5de6e54
Replace flake8 with ruff for Python linting
2023-05-06 06:08:32 -04:00
Wilson Snyder
1a1c5c5d44
Internals: Fix pylint warning
2023-05-06 06:05:11 -04:00
Wilson Snyder
4ae80f9a9f
Commentary
2023-05-05 22:50:28 -04:00
github action
8a3cb8daa8
Apply 'make format'
2023-05-06 02:37:42 +00:00
Ethan Sifferman
64ab537b68
Add NEWERSTD warning when using feature in newer language standard ( #4168 ) ( #4172 ).
2023-05-05 22:36:51 -04:00
Wilson Snyder
fdea386727
Fix false WIDTHEXPAND on array declarations ( #3959 ).
2023-05-05 22:05:19 -04:00
Wilson Snyder
28944ed862
Fix crash on duplicate imported modules ( #3231 ).
2023-05-05 20:31:48 -04:00
Wilson Snyder
3250ee5707
Commentary: Changes update
2023-05-05 20:24:45 -04:00
Wilson Snyder
d308a561e4
Fix detection of wire/reg duplicates
2023-05-05 20:16:27 -04:00
Wilson Snyder
584f8cc9e7
Internal: With --xml-only support --debug-exit-uvm
2023-05-05 13:47:34 -04:00
Kamil Rakoczy
61e1483b74
Add multi-threaded Verilating at emit stage ( #3608 )
2023-05-05 08:36:20 -04:00
Wilson Snyder
3bb4e34044
Commentary
2023-05-04 19:04:38 -04:00
Kamil Rakoczy
832b17d4d2
clang_check_attributes: fix mt-safe checks for global objects in constructor context ( #4171 )
2023-05-04 14:00:30 -04:00
Krzysztof Bieganski
76c5875912
Fix marking overridden methods as coroutines ( #4120 ) ( #4169 )
...
This patch fixes two cases where methods in base classes were not being marked
as coroutines, even though they were being overridden by coroutines.
- One case is the class member cache not getting refreshed for searched classes.
- The other is when the overriding methods are not declared as `virtual`. In
that case, the `isVirtual()` getter on such a method returns false, which led
to `V3Timing` skipping the step of searching for overridden methods.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-05-04 15:27:45 +02:00
Ryszard Rozak
266dc7679a
Don't link AstRefDType if it has parameterized class ref ( #4164 ) ( #4170 )
2023-05-04 15:09:01 +02:00
Jose Loyola
d693dc85e4
Add Github action to build and push docker images ( #4163 )
2023-05-04 07:44:55 -04:00
Wilson Snyder
add68130b8
Internals: Rename to dumpLevel(), to avoid confusion with make-a-dump()
2023-05-03 18:04:10 -04:00
Tudor Timi
d9b5680a45
Fix crash caused by $display() optimization ( #4165 ) ( #4166 )
2023-05-03 17:04:18 -04:00
Wilson Snyder
dc25be536c
Internals: Deprecate VL_ATTR_ALIGNED, use alignas instead.
2023-05-02 21:21:10 -04:00
Stefan Wallentowitz
7708c88e32
Fix duplicate static names in blocks in functions ( #4144 ) ( #4160 )
...
Static variables of functions are created in the function. When blocks
in a function use identical names for static variables, we need to name
those variables properly.
2023-05-02 20:24:44 -04:00
february cozzocrea
707f230353
Commentary: Update install.rst help2man dependency ( #4161 )
2023-05-02 14:32:24 -04:00
Kamil Rakoczy
49d2eb9a08
Fix initialization order of initial static after function/task ( #4159 )
2023-05-02 11:50:57 -04:00
github action
128186ea68
Apply 'make format'
2023-05-02 11:29:45 +00:00
Hennadii Chernyshchyk and Oleh Maks
949be9d0a1
Optimize VPI callValueCbs ( #4155 )
...
Co-authored-by: Oleh Maks <[email protected] >
2023-05-02 07:28:56 -04:00
Wilson Snyder
3e986517c3
devel release
2023-04-30 07:10:14 -04:00
Wilson Snyder
5d3a9eec7f
Version bump
2023-04-30 07:08:27 -04:00
Wilson Snyder
3d21a79148
Fix pylint warning
2023-04-29 22:22:38 -04:00
Wilson Snyder
e15f5266a3
Commentary: Changes update
2023-04-29 22:16:53 -04:00
Toru Niina
9130eb8b99
Fix DPI function type alias ( #4148 ) ( #4149 )
2023-04-28 07:21:09 -04:00
Ryszard Rozak
09e856d2f3
Fix deleting unused parameterized classes ( #4150 )
2023-04-28 07:20:25 -04:00
Ryszard Rozak
ee5c0a2902
Support parameterized class references in extends statement ( #4146 )
2023-04-24 17:25:53 -04:00
Ryszard Rozak
621b7e63cf
Print the type of provided RHS in class type check ( #4145 )
2023-04-24 17:24:04 -04:00
github action
c6bf9fb89e
Apply 'make format'
2023-04-24 11:29:33 +00:00
Risto Pejašinović and Risto Pejasinovic
f794180865
Fix hier attribute of --xml-only cell section to respect begin blocks ( #4129 ) ( #4133 )
...
Co-authored-by: Risto Pejasinovic <[email protected] >
2023-04-24 07:28:29 -04:00
Geza Lore
0e769d42a1
Optimize trigger evaluation
...
Pack the elements of VlTriggerVec as dense bits (instead of a 1 byte
bool per bit), and check whether they are set on a word granularity.
This effectively transforms conditions of the form `if (trig.at(0) |
trig.at(2) | trig.at(64))` into `if (trig.word(0) & 0x5 | trig.word(1) &
0x1)`. This improves OpenTitan ST by about 1%, worth more on some other
designs.
2023-04-24 09:09:36 +02:00
Wilson Snyder
cbeb9d39ff
Fix -CFLAGS to allow overriding optimization levels ( #4140 ).
2023-04-23 10:18:48 -04:00
Wilson Snyder
5a98c1a3b1
Commentary
2023-04-23 10:10:05 -04:00
Geza Lore
cac634d39b
Fix DfgToAst conversion of CountBits ( #4101 ) ( #4143 )
2023-04-23 08:49:44 -04:00
Peter Monsson
08330bad0b
Fix variables in class methods to be automatic ( #4111 ) ( #4137 )
2023-04-21 08:07:22 -04:00
Ryszard Rozak
84a46939b3
Fix class extend param references ( #4136 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-04-20 07:11:35 -04:00
Kamil Rakoczy
65a484e00b
Internal: Update clang_check_annotations conditions ( #4134 )
2023-04-20 07:02:31 -04:00
Krzysztof Boroński
843fdd3e57
Resolve class lvalues after parameterization ( #4131 )
2023-04-19 18:05:37 -04:00
Ryszard Rozak
a10b51705f
Fix class param extends A=B ( #4128 )
...
Visit global class params even if a class extends a param
2023-04-17 09:08:57 -03:00
Eyck Jentzsch
df86e39845
Fix systemc namespace issues ( #4126 ) ( #4127 )
...
* replaces use of "systemc.h" with <systemc> to avoid default namespace import
2023-04-17 06:57:29 -03:00
Wilson Snyder
7f49b6c102
Parse 'let' as unsupported
2023-04-16 17:23:16 -04:00
Krzysztof Boroński
754a0b8320
Fix to use parallel build for projects with a lot of files ( #4116 )
2023-04-14 18:52:05 -04:00
Krzysztof Boroński
7d3b3761b2
Fix including __Syms header in generated C++ files ( #4123 )
2023-04-14 11:53:27 -04:00
Ryszard Rozak
d1b80ffa29
Support parameterized return types of methods ( #4122 )
2023-04-14 08:52:43 -04:00
Ryszard Rozak
f95ce886f1
Fix duplicating parameter class types ( #4115 )
2023-04-14 06:51:33 -04:00
Wilson Snyder
fa16eff003
Commentary ( #4118 )
2023-04-14 06:46:53 -04:00
Geza Lore
23f90b13f3
Do not create unnecessary DPI AstSenTrees
...
No functional change
2023-04-13 14:01:45 +01:00
Geza Lore
37e7b5dfc7
Fix unused/hard-coded argument
...
No functional change.
2023-04-13 14:01:37 +01:00
Kamil Rakoczy
e1683afb31
Internals: V3ThreadPool: add function waiting for list of futures ( #4112 )
2023-04-12 08:49:48 -04:00
Kamil Rakoczy
e38b359d75
Internals: Refactor for better clang thread-safety analysis ( #4092 )
2023-04-11 07:25:10 -04:00
Kamil Rakoczy
b6dcec2710
Internals: Split Mutex class used in verilated code and verilator ( #4048 )
2023-04-11 07:23:24 -04:00
Wilson Snyder
0307d59c1f
Fix unpacked structs under classes ( #4102 ).
2023-04-10 19:40:34 -04:00
Wilson Snyder
3aa013c8db
Tests: Remove old file
2023-04-10 19:40:34 -04:00
github action
fc70876aa9
Apply 'make format'
2023-04-10 23:38:20 +00:00
Srinivasan Venkataramanan
722ab9306a
Support class method calls without parenthesis ( #3902 ) ( #4082 )
2023-04-10 19:37:24 -04:00
Wilson Snyder
2ab34b5eeb
Fix false error on new const assignment ( #4098 ).
2023-04-09 19:46:47 -04:00
Wilson Snyder
e3bdae77a0
Tests: Add randsequence test
2023-04-09 17:08:04 -04:00
Wilson Snyder
663d6a1c8d
Commentary
2023-04-09 10:23:35 -04:00
Wilson Snyder
bf5cbb512e
Add UNSUPPORTED on dotted disable instead of syntax error
2023-04-09 10:11:47 -04:00
Wilson Snyder
d4bb58630e
Support 'for' initialization with comma
2023-04-09 09:56:39 -04:00
Wilson Snyder
fff0eb5d88
Internals: Use standard 'result' name for return variable. No functional change.
2023-04-08 22:11:28 -04:00
Wilson Snyder
7ae0c5d546
Internals: cppcheck fixes. No functional change intended
2023-04-08 21:36:32 -04:00
Wilson Snyder
114d93b212
Internals: Move -debug-exit-uvm to post V3LinkDot, just before V3Param ( #1538 )
2023-04-08 15:11:26 -04:00
Wilson Snyder
13a87e5514
Parse process class, and report runtime errors ( #3612 )
2023-04-08 15:04:42 -04:00
Wilson Snyder
d67d75282c
Support ++/-- on dotted member variables.
2023-04-07 20:57:17 -04:00
Kamil Rakoczy
827cbf22c9
Fix sense expression variable naming ( #4081 )
2023-04-07 07:23:37 -04:00
Wilson Snyder
2530cda507
Fix debug crash when no std:: used
2023-04-06 21:43:39 -04:00
Wilson Snyder
38000a3da0
Fix unnecessary verilated_std.sv waivers in --waiver-output.
2023-04-06 21:43:23 -04:00
Wilson Snyder
6c21b21ecc
Internals: Indent verilated_std.sv with Verilog-mode. No functional change.
2023-04-06 21:27:16 -04:00
Wilson Snyder
8caf9be3e6
Internals: Favor {} constructor syntax. No functional change intended.
2023-04-06 21:04:26 -04:00
Krzysztof Bieganski
cdb61842d6
Internals: Remove VlNow ( #4089 )
...
`VlNow{}` is completely unnecessary, as coroutines are always on the
heap (unless optimized out). Also fix access of var ref passed to forked processes.
2023-04-06 10:31:52 -04:00
Wilson Snyder
05660d1118
Add CONSTRAINTIGN warning when constraint ignored. Likewise ignore constraint_mode, rand_mode.
2023-04-05 21:27:37 -04:00
Ryszard Rozak
a3f9221a67
Fix importing symbols from base class ( #4084 )
2023-04-04 20:56:18 -04:00
Wilson Snyder
7e1980af7a
Tests: Avoid t_dist failures on deleted files.
2023-04-02 15:10:45 -04:00
Wilson Snyder
921fd919b5
Tests: Improve short circuit test
2023-04-01 23:10:05 -04:00
Robert Balas and Robert Balas
fc5a5ea53d
Commentary: Fix spelling mistakes ( #4080 )
...
Co-authored-by: Robert Balas <[email protected] >
2023-04-01 20:45:28 -04:00
Wilson Snyder
86156dd05b
Revert false-positive static error ( #4072 ) ( #4077 )
2023-04-01 18:54:37 -04:00
Wilson Snyder
3219ffddd4
Tests: Ignore commented out messages
2023-04-01 18:17:45 -04:00
Wilson Snyder
3a01c32bf9
Revert false-positive static error ( #4072 ) ( #4077 )
2023-04-01 15:45:34 -04:00
Wilson Snyder
9ffd0a4e70
Support queue[$-1] selects.
2023-04-01 15:23:39 -04:00
Wilson Snyder
90e049c674
Internals: Remove unneeded variable. No functional change.
2023-04-01 11:46:43 -04:00
Wilson Snyder
69121633cf
Support class srandom and class random stability.
2023-04-01 10:50:27 -04:00
Wilson Snyder
28eadded87
Update include/gtkwave from upstream
2023-04-01 10:38:47 -04:00
Wilson Snyder
93c598dd19
Commentary
2023-04-01 10:38:33 -04:00
Krzysztof Bieganski
d012563ab1
Fix tracing with awaits at end of block ( #4075 ) ( #4076 )
...
Given an await at the end of a block, e.g. at the end of a loop body, a trace
activity setter was not inserted, as there were no following statements. This
patch makes the activity update unconditional.
2023-03-31 13:51:31 -04:00
Krzysztof Bieganski
0b96789e65
Add error on static access to non-static class member ( #4072 )
...
Before this patch, it was possible to access non-static class members using
static access, which resulted in C++ compilation errors. This adds
verilation-time checks for such situations.
2023-03-27 10:46:51 -04:00
Wilson Snyder
947402bc57
Fix interface generate begin ( #4065 ).
2023-03-26 08:49:38 -04:00
Yutetsu TAKATSUKASA
d4107dce52
Improve xor tree optimization ( #4071 )
...
* AstNot does not have to be frozen in an xor tree during BitOp tree optimization.
* Tests: Update stats.
2023-03-26 20:36:32 +09:00
Yutetsu TAKATSUKASA
990b19e048
Fix incorrect optimization of bit op tree ( #4059 ) ( #4070 )
2023-03-26 03:29:10 -04:00
Srinivasan Venkataramanan
2290e6ccf2
Fix info message prints under --assert ( #4036 ) ( #4053 )
2023-03-24 19:22:48 -04:00
Wilson Snyder
14c8f072f1
Commentary
2023-03-24 19:06:07 -04:00
Krzysztof Bieganski
c55df02b1a
Fix C++ compile errors when passing class refs as task arg ( #4063 )
...
1. Fixes passing a null reference as a task argument. Before this patch it would
cause a C++ compile error like `cannot convert ‘VlNull’ to ‘VlClassRef<...>’`.
2. Fixes passing a class reference as a task argument when the argument is a
reference to a base class. Before the patch it would cause a C++ compile
error like `cannot convert ‘VlClassRef<{DERIVED_CLASS}>’ to ‘VlClassRef<{BASE_CLASS}>`.
2023-03-24 13:18:59 -04:00
Ryszard Rozak
5b86248b54
Add error if class types don't match ( #4064 )
2023-03-24 13:18:20 -04:00
Josep Sans
449ac44131
Fix _Vilp used before declaration ( #4057 ) ( #4062 )
2023-03-24 11:51:02 +01:00
Ryszard Rozak
f439a7927f
Fix parameters in a class body to be localparam ( #4061 )
2023-03-23 10:20:35 +01:00
Aleksander Kiryk
277bd67f72
Fix NBAs inside fork-joins ( #4050 )
2023-03-21 10:39:29 -04:00
Krzysztof Bieganski
5de8ccbf32
Fix task calls as fork statements ( #4055 )
...
Before this patch, calling tasks directly under forks would result in each
statement of these tasks being executed concurrently. This was due to Verilator
inlining tasks most of the time. Such inlined tasks' statements would simply
replace the original call, and there would be no indication that these used to
be grouped together. Ultimately resulting in `V3Timing` treating each statement
as a separate process.
The solution is simply to wrap each fork sub-statement in a begin in `V3Begin`
(except for the ones that are begins, as that would be pointless). `V3Begin` is
already aware of forks, and is supposed to avoid issues like this one, so it
seems like a natural fit. This also protects us from similar bugs, i.e. if some
statement gets replaced or expanded into multiple statements.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-03-21 13:50:53 +01:00
Wilson Snyder
577e0700ba
Commentary: Changes update
2023-03-21 04:52:12 -04:00
github action
71a37484f5
Apply 'make format'
2023-03-21 08:43:31 +00:00
Jesse Taube
daf157e6c0
Fix false LATCH warning on --assert 'unique else if' ( #4033 ) ( #4054 ).
2023-03-21 04:42:19 -04:00
Iztok Jeras
2aa6a229ca
Change range order warning from LITENDIAN to ASCRANGE ( #4010 )
2023-03-20 20:44:11 -04:00
Wilson Snyder
9b869edd90
Internals: Fix cppcheck warnings. No functional change.
2023-03-18 19:28:48 -04:00
Wilson Snyder
2b21697b86
Support class extends of package::class.
2023-03-18 17:26:36 -04:00
Wilson Snyder
895ab8789b
Internals: Fix recently added assertion false firing
2023-03-18 17:11:39 -04:00
Wilson Snyder
5f02f95ce6
Commentary ( #3906 ) ( #3931 )
2023-03-18 15:49:11 -04:00
Wilson Snyder
f2aac8c49a
Internals: Use VNVisitorConst where possible, for better performance. No functional change indended.
2023-03-18 12:23:17 -04:00
Wilson Snyder
82e653a739
Internals: Avoid emit inheritance in V3EmitCBase. No functional change intended.
2023-03-18 12:23:17 -04:00
Tim Snyder
053f760e2a
Fix characters from DEFENV literals for conda ( #4035 ) ( #4044 )
...
The baked in DEFENV paths might end up with extra NULL characters
at the end if the binaries are installed by something that patches them
for relocatable installs (e.g. conda). Avoid this issue by immediately
passing them through std::string::c_str() method to stop at the first NULL
2023-03-18 11:25:27 -04:00
Wilson Snyder
ba9e141fae
Commentary: Update CONTRIBUTING and internals xrefs ( #4043 )
2023-03-18 10:23:19 -04:00
Wilson Snyder
d60a3e2b66
Fix random internal crashes ( #666 ).
...
Internally, in V3Broken check m_interpp for null, and make several cleanups
in the addNext/addNextHere/unlinkFr* methods.
2023-03-18 09:48:26 -04:00
Yu-Sheng Lin
70c2d1eded
Fix install, standardization in cmake CMakeLists.txt ( #3974 )
2023-03-18 07:38:09 -04:00
Wilson Snyder
80cbf81b3b
Internals: Fix missing relink() and add assert
2023-03-17 22:29:48 -04:00
Kamil Rakoczy
798d7346cf
Internals: Add VL_MT_SAFE attribute to functions that requires locking. ( #3805 )
2023-03-17 20:24:15 -04:00
Wilson Snyder
d6c5d40f9b
Internals: Add VNVisitorConst class.
2023-03-17 19:59:09 -04:00
Ryszard Rozak
371b8310d9
Support method calls without parenthesis ( #4034 )
...
* Support method class without parenthesis
Signed-off-by: Ryszard Rozak <[email protected] >
* Delete replaced nodes
Signed-off-by: Ryszard Rozak <[email protected] >
---------
Signed-off-by: Ryszard Rozak <[email protected] >
2023-03-17 13:25:39 +01:00
Ryszard Rozak
1ac721af8f
Add STATICVAR warning and convert to automatic ( #4027 ) ( #4030 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-03-17 07:48:41 -04:00
Wilson Snyder
85fd88ace2
Optimize duplicate JumpBlocks away ( #4028 )
2023-03-16 22:29:06 -04:00
Wilson Snyder
ed1e377bb1
Fix large return blocks with --comp-limit-blocks ( #4028 ).
2023-03-16 21:40:01 -04:00
Wilson Snyder
4240c29f4b
Internals: Fix missing broken check
2023-03-16 21:14:49 -04:00
Wilson Snyder
51ba4a1531
Fix clocking block scope internal error ( #4032 ).
2023-03-16 20:48:18 -04:00
Wilson Snyder
d1b55cb7aa
Fix compile error last commit ( #4029 )
2023-03-16 20:22:08 -04:00
Kamil Rakoczy
bbf53bd5af
Add VL_MT_SAFE attribute to several functions. ( #3729 )
2023-03-16 19:48:56 -04:00
Wilson Snyder
b2ced6ff1d
Add more debug info to --report-unoptflat graph ( #4039 )
2023-03-16 19:47:13 -04:00
Wilson Snyder
a9b07fe7d7
Tests: Remove unintended t_0 test
2023-03-16 18:44:28 -04:00
Kamil Rakoczy
66e4656a8e
Fix event controls reusing same variable ( #4014 )
2023-03-16 07:12:54 -04:00
Wilson Snyder
8f4d4f07a4
Commentary
2023-03-16 07:09:16 -04:00
Wilson Snyder
8e55580cde
Update include/gtkwave from upstream
2023-03-15 22:11:06 -04:00
Wilson Snyder
8ae79066a2
Fix false ENUMVALUE on expressions and arrays.
2023-03-15 21:56:35 -04:00
Wilson Snyder
36da6a3563
Fix parsing #1_2 delays
2023-03-15 21:22:28 -04:00
Wilson Snyder
45690faea7
Parse defparam = as unsupported
2023-03-15 21:04:10 -04:00
Wilson Snyder
046fecbb35
Fix fclose(0).
2023-03-15 20:49:59 -04:00
Ryszard Rozak
0f6024ef3c
Fix rand fields in base classes ( #4025 )
2023-03-15 11:48:18 -04:00
Wilson Snyder
2488b5a97f
Fix pullup/pulldown to create implicit wires.
2023-03-14 21:14:27 -04:00
Wilson Snyder
56de6f1a9f
Fix min/typ/max internal error
2023-03-14 20:40:58 -04:00
Wilson Snyder
0fc5d37901
Fix bounded queues with parameter bounds
2023-03-14 20:29:47 -04:00
Wilson Snyder
ea4cc4e076
Parse nettype with package, still unsupported
2023-03-14 19:52:01 -04:00
Wilson Snyder
9e25c21fed
Fix unpacked struct clocking
2023-03-14 19:35:40 -04:00
Ryszard Rozak
fc3fdcc71c
Tests: Fix randomize_method test ( #4024 )
2023-03-14 13:47:43 -04:00
Ryszard Rozak
80b7b8bbdb
Don't call randomize on null field ( #4023 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-03-14 14:48:06 +01:00
Wilson Snyder
a8ce272e4a
Commentary: spelling
2023-03-14 08:39:54 -04:00
Wilson Snyder
72963c4e20
Commentary ( #4020 )
2023-03-14 08:29:39 -04:00
Ryszard Rozak
4e5bd361e0
Internal: Fix dumping of AstMethodCall ( #4021 )
2023-03-14 06:54:45 -04:00
Ryszard Rozak
ed1a9309d4
Throw warning if static variable is declared in a loop ( #4018 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-03-14 10:03:08 +01:00
Ryszard Rozak
1d0a06438c
Assign unique names for blocks in do..while loop ( #4019 )
2023-03-14 09:54:43 +01:00
Wilson Snyder
2c62714a30
Fix push to dynamic queue in struct ( #4015 ).
2023-03-13 22:03:53 -04:00
Wilson Snyder
f13e753b52
Change ZERODLY to a warning.
2023-03-12 21:28:14 -04:00
Wilson Snyder
39a5bce8a6
Parse covergroup, still unsupported.
2023-03-12 14:11:11 -04:00
Wilson Snyder
ba953bfa94
Commentary: Changes update
2023-03-12 10:49:19 -04:00
Wilson Snyder
1debd0405b
Support complicated IEEE 'for' assignments.
2023-03-12 10:46:40 -04:00
Wilson Snyder
1f1d9312d2
Parse event 'iff', still unsupported.
2023-03-11 22:39:59 -05:00
Wilson Snyder
259201b352
Support $fopen as an expression
2023-03-11 18:11:01 -05:00
Wilson Snyder
bb45bd048e
Commentary
2023-03-11 11:27:40 -05:00
Wilson Snyder
5489ec6eff
Parse 'first_match', and still unsupported.
2023-03-11 11:08:37 -05:00
Wilson Snyder
e55e81bcd0
Parse sequence 'local input', still unsupported.
2023-03-11 10:53:10 -05:00
Wilson Snyder
5c5c758718
Parse 'wait_order' and test, still unsupported.
2023-03-11 10:47:08 -05:00
Wilson Snyder
b87669039e
Commentary
2023-03-10 22:25:47 -05:00
Wilson Snyder
60a6ed2a20
Support assert property statement-else-statement
2023-03-10 22:13:17 -05:00
Wilson Snyder
81e8388c3f
Parse 'expect', still unsupported.
2023-03-10 21:48:56 -05:00
Wilson Snyder
4532680e5f
Internals: Cleanup assert/assume. No functional change.
2023-03-10 21:17:54 -05:00
Andrew Nolte
fc17ab280a
Add --public-depth to force public to a certain instance depth ( #3952 )
2023-03-09 21:48:05 -05:00
Wilson Snyder
621cd0f008
Internals: Framework for renaming warnings ( #4010 partial)
2023-03-08 21:32:37 -05:00
Andrew Nolte
13c9877099
Add --public-params flag ( #3990 )
2023-03-08 19:38:26 -05:00
Wilson Snyder
ff889fde18
Add debug comment when trace disabled ( #4004 ).
2023-03-06 18:22:46 -05:00
Krzysztof Boroński
f68c16a5e6
Fix symbol entries when inheriting classes ( #3995 ) ( #3996 )
2023-03-06 07:43:58 -05:00
Ryszard Rozak
cc45f64280
Add __PVT__ prefix to selects nodes ( #4001 )
2023-03-06 13:18:48 +01:00
Wilson Snyder
725ec088ea
Parse 'sequence' declarations, property case/if, still unsupported.
2023-03-06 05:12:09 -05:00
Wilson Snyder
87c3de5aab
Parse 'matches', still unsupported.
2023-03-05 23:58:54 -05:00
Wilson Snyder
6d7c04a3de
Parse cycle delays and boolean abbrev, still unsupported.
2023-03-05 23:22:41 -05:00
Wilson Snyder
d0f5ce0cc4
Parse intersect/throughout/within, still unsupported.
2023-03-05 19:57:09 -05:00
Wilson Snyder
cb89ef9885
Parse more property expression syntax, as still unsupported
2023-03-05 19:42:21 -05:00
Wilson Snyder
90360d40fd
Change property expression handling towards eventual more general expressions.
2023-03-05 18:52:55 -05:00
Wilson Snyder
15dcd326f8
Internals: Parse weak/strong but do not lex
2023-03-05 18:30:43 -05:00
Wilson Snyder
ae1eb56695
Internals: Parser commentary
2023-03-05 17:59:17 -05:00
Wilson Snyder
a47fd07585
Internals: Standard grammar for property_expression |-> |=>.
2023-03-05 16:59:24 -05:00
Wilson Snyder
19bc257002
Internals: UNSUPPORTED commentary
2023-03-05 16:45:07 -05:00
Wilson Snyder
a1d4cd658e
devel release
2023-03-04 11:31:58 -05:00
Wilson Snyder
21093fd1bd
Version bump
2023-03-04 11:19:44 -05:00
Wilson Snyder
329a933efd
Internals: Parse nettype as unsupported
2023-03-04 10:50:28 -05:00
Wilson Snyder
e21198cb2d
Add warning on missing class reference #()
2023-03-03 21:06:52 -05:00
Wilson Snyder
ab502c5196
Fix coverage of class methods ( #3998 ).
2023-03-03 19:26:15 -05:00
Felix Neumärker
12728bc478
Fix UNDRIVEN warning seg fault ( #3989 )
2023-03-03 18:54:38 -05:00
Wilson Snyder
3fc684359a
Fix prettyName in structure dumps, partial ( #4001 )
2023-03-03 18:49:26 -05:00
Wilson Snyder
1e28387541
Tests: Add nettype test
2023-03-02 20:29:42 -05:00
Wilson Snyder
dd917d50eb
Internals: Parse interconnect then say unsupported
2023-03-02 20:02:14 -05:00
Kamil Rakoczy
0130c2bceb
Internals: update clang attributes check report conditions ( #3997 )
2023-03-02 18:37:07 -05:00
Wilson Snyder
8a5804fc3a
Tests: Add tagged union test
2023-03-02 08:11:11 -05:00
Wilson Snyder
3df29085c8
Fix end label fileline reporting.
2023-03-02 07:50:16 -05:00
Wilson Snyder
976af0068b
Support parsing min:typ:max parameters
2023-03-01 23:11:48 -05:00
Wilson Snyder
a85e6a9d8c
Commentary: Changes update
2023-03-01 22:43:39 -05:00
Wilson Snyder
463ea57b0a
Add error (vs previous warning) on enum value overflow.
2023-03-01 22:36:42 -05:00
Wilson Snyder
326a60d307
Add error on mixing .name and by-port instantiations.
2023-03-01 21:19:21 -05:00
Ryszard Rozak
2c60c5f816
Support recursive methods ( #3987 )
2023-03-01 21:07:37 -05:00
Cameron Kirk
faf3804b9a
Fix LITENDIAN warning is backwards ( #3966 ) ( #3967 ).
2023-03-01 11:46:44 -05:00
github action
08a433260c
Apply 'make format'
2023-03-01 05:44:35 +00:00
Wilson Snyder
7fc278f6db
Fix import of extends typedefs
2023-03-01 00:30:45 -05:00
Wilson Snyder
b1a95f642f
Support cast to numbers from strings.
2023-02-28 23:34:33 -05:00
Wilson Snyder
c6a569df49
Commentary
2023-02-28 18:38:52 -05:00
Krzysztof Boroński
06661ab676
Disallow ++/-- over expressions with potential side effects ( #3976 ).
2023-02-28 15:21:58 -05:00
Wilson Snyder
d9a0e69597
Commentary, fix copyright
2023-02-28 01:09:09 -05:00
Wilson Snyder
a0997d0b98
Fix internal error with UNSUPPORTED of procedural clocked assertions
2023-02-28 00:35:58 -05:00
Felix Neumärker
a3ff375ce7
Fix timing delays to not truncate below 64 bits ( #3973 ) ( #3982 )
2023-02-27 21:42:22 -05:00
Wilson Snyder
c03affa544
Fix enum.next(0) and enum.prev(0).
2023-02-26 15:24:24 -05:00
Wilson Snyder
4703fc39be
Add error to avoid @* fatal
2023-02-26 13:13:02 -05:00
Wilson Snyder
9bf0e54937
Internals: add const
2023-02-26 12:21:17 -05:00
Wilson Snyder
b039f246df
Lint check posedge of nonintegral
2023-02-26 12:08:10 -05:00
Wilson Snyder
a93b344096
Tests: use standard lower case for Perl vm_prefix
2023-02-26 10:18:40 -05:00
Peter Debacker and Peter Debacker
191c71edea
Fix cmake on macOS to mark weak symbols with -U linker flag ( #3978 ) ( #3979 )
...
Co-authored-by: Peter Debacker <[email protected] >
2023-02-23 17:27:29 -05:00
Wilson Snyder
b4dd398af6
Tests: Cleanup some C++ new calls. No functional change.
2023-02-23 06:14:54 -05:00
Wilson Snyder
cfe0fdd5cc
Untabify
2023-02-23 05:47:56 -05:00
Adam Bagley
003a8cfe75
Add lint warning on always_comb multidriven ( #3888 ) ( #3939 )
2023-02-23 05:36:28 -05:00
Wilson Snyder
7559af5879
Fix missing error on negative replicate ( #3963 ).
2023-02-22 19:11:02 -05:00
Ryszard Rozak
47a7e75841
Fix subsequent parameter declarations ( #3969 )
2023-02-22 11:26:25 +01:00
Wilson Snyder
adf1de45de
With -Wpedantic change ASSIGNIN to a warning
2023-02-21 16:45:35 -05:00
Ryszard Rozak
45f955f175
Fix self references to parameterized classes ( #3962 )
2023-02-17 11:17:35 -05:00
Ryszard Rozak
063f9a7a4c
Fix dicts declared with ref type ( #3960 )
2023-02-16 12:49:45 -05:00
Wilson Snyder
c82a098f2e
Internals: Parse class extends ::
2023-02-14 21:23:55 -05:00
Wilson Snyder
393b7714c4
Convert some mis-syntax errors to UNSUPPORTED
2023-02-14 20:48:52 -05:00
Wilson Snyder
43d8de4f80
Support property var decls.
2023-02-14 20:44:14 -05:00
Wilson Snyder
026bbc306b
Removed deprecated --cdc option.
2023-02-13 22:49:51 -05:00
Wilson Snyder
f8b0e359b9
Support class parameters without initial values.
2023-02-13 22:06:52 -05:00
Wilson Snyder
94ef1b76d0
Fix error text on packed struct init.
2023-02-13 20:58:49 -05:00
Wilson Snyder
50929e5d43
Fix packed array structure replication.
2023-02-13 07:49:08 -05:00
github action
3f4b7af8a1
Apply 'make format'
2023-02-13 04:21:52 +00:00
Larry Doolittle
bc6a7787ed
Fix date on the front page of verilator.pdf ( #3956 ) ( #3957 )
2023-02-12 23:21:03 -05:00
Wilson Snyder
5064ec2806
Support type case and type equality comparisons.
2023-02-12 20:09:10 -05:00
Wilson Snyder
4f19eeaffa
Fix type(typedef) operation core dump
2023-02-12 19:57:52 -05:00
Wilson Snyder
10d0088f73
Fix generate case with empty body statements.
2023-02-12 18:14:18 -05:00
Wilson Snyder
15d0ec317d
Fix lint for non-integral types in packed structs.
2023-02-12 16:32:36 -05:00
Wilson Snyder
260d58e47e
Tests: Add struct tests
2023-02-12 13:30:52 -05:00
Wilson Snyder
d9c4d9316f
Parse checkers as UNSUPPORTED.
2023-02-11 14:31:28 -05:00
Wilson Snyder
e9441cff50
Parse external constraints as UNSUPPORTED.
2023-02-11 13:29:52 -05:00
Wilson Snyder
daa545774e
Parse randsequence as UNSUPPORTED.
2023-02-11 13:03:10 -05:00
Wilson Snyder
dee2e45e27
Tests: Add defparam not resolved test
2023-02-11 11:00:07 -05:00
Wilson Snyder
4d29487e75
Fix -Wpedantic on std::process.
2023-02-11 10:55:06 -05:00
Wilson Snyder
2bb2935924
Commentary: Changes update
2023-02-11 10:38:00 -05:00
Larry Doolittle
aff3f7c4f6
Fix build on hppa ( #3954 )
...
As supplied by John David Anglin in Debian bug #1030913
2023-02-11 04:23:26 -05:00
Wilson Snyder
5aa4f46101
Internals: Add some std::. No functional change intended.
2023-02-10 20:32:39 -05:00
Zixi Li
8f87022496
Fix CMake bad C identifiers ( #3948 ) ( #3951 )
2023-02-10 20:06:05 -05:00
Ryszard Rozak
d34aa10faf
Fix class field linking when a super classes is a param ( #3949 )
2023-02-10 07:44:14 -05:00
Kamil Rakoczy
93d50c4499
Internals: Add mutex to V3Error ( #3680 )
2023-02-09 22:15:37 -05:00
Todd Strader
4eb280601e
handle constant format field widths ( #3946 )
2023-02-09 10:09:00 -05:00
Wilson Snyder
b778784333
Add --annotate-points option, change multipoint on line reporting ( #3876 ).
2023-02-08 20:22:54 -05:00
Todd Strader
9121a81a74
Fix constant enum methods ( #3621 )
2023-02-08 18:50:27 -05:00
Todd Strader
d3cbb1e53f
Fix constant string function assignment ( #3945 )
2023-02-08 18:48:07 -05:00
Wilson Snyder
cf88700fc2
Fix virus detection false positive ( #3944 ).
2023-02-08 18:44:07 -05:00
Ryszard Rozak
072d76fe8e
Use VAR_BASE as attr type if a select's base is a ref ( #3943 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-02-07 15:10:19 +01:00
Aleksander Kiryk
3436d1780f
Fix namespace fallback resolution ( #3863 ) ( #3942 )
2023-02-07 07:13:55 -05:00
Wilson Snyder
1607225063
Fix VPI upper interface scopes not found ( #3937 ).
2023-02-05 16:16:39 -05:00
Wilson Snyder
807e5b22a0
Fix verilator_difftree header flush
2023-02-05 15:20:56 -05:00
Wilson Snyder
2c64b83c19
Internals: Fix constructor syntax
2023-02-05 14:29:49 -05:00
Wilson Snyder
dfc98e77c0
Commentary
2023-02-05 14:12:27 -05:00
Wilson Snyder
936bb7b1ed
Add error on size with unsized number
2023-02-05 14:06:03 -05:00
Wilson Snyder
88e5017564
Internals: Directly assign dtype instead of using dtype's dtype
2023-02-05 13:50:29 -05:00
Wilson Snyder
508f6f7e5a
Fix core dump with initial variable delays
2023-02-05 13:17:35 -05:00
Wilson Snyder
70eceae3d8
Fix core dump on bad dotted reference.
2023-02-05 12:45:14 -05:00
Wilson Snyder
eb5aad94f1
Support to packed array
2023-02-05 10:18:03 -05:00
Wilson Snyder
2d89c458f6
Fix force/release of real.
2023-02-04 20:37:36 -05:00
Wilson Snyder
d33ded22f9
Internals: Remove unused variable
2023-02-04 19:50:04 -05:00
github action
edc32ca82d
Apply 'make format'
2023-02-04 13:20:41 +00:00
Kritik Bhimani
dc9c81256d
Fix MsWin missing directory exception, and ::std ( #3928 ) ( #3933 ) ( #3935 )
2023-02-04 08:19:49 -05:00
Wilson Snyder
6908e471e7
Revert: e3558d9e: Support vpiDefName ( #3906 ) ( #3931 )
2023-02-03 21:26:21 -05:00
Andrew Nolte
e3558d9e1b
Support vpiDefName ( #3906 ) ( #3931 )
2023-02-03 19:14:41 -05:00
Wilson Snyder
11043aeb9b
Work around mswin crash with --std ( #3933 )
2023-02-03 19:01:20 -05:00
Wilson Snyder
15c163c12e
github: msbuild compile with -j 3
2023-02-03 18:47:54 -05:00
Wilson Snyder
c7ed73e249
Fix MSVC++ compile warning
2023-02-03 18:47:37 -05:00
Wilson Snyder
4aa3e72509
Fix cmake 3.12+ warnings on MSWIN.
2023-02-03 17:16:39 -05:00
Aleksander Kiryk
31130c4b4a
Fix std:: to be parsed first ( #3864 ) ( #3928 )
2023-02-03 09:04:16 -05:00
github action
00f0027c80
Apply 'make format'
2023-02-03 13:48:46 +00:00
Joseph Nwabueze
c8be50d40b
Add /*verilator public[flat|flat_rd|flat_rw| ]*/ metacomments ( #3894 )
2023-02-03 08:47:55 -05:00
Wilson Snyder
e16e9b89cd
Commentary ( #3932 ).
2023-02-03 07:27:23 -05:00
Yoda Lee
80b291407b
Add cmake warning if multiple SOURCES w/o PREFIX ( #3916 ) ( #3927 )
2023-02-02 22:08:13 -05:00
David Stanford
d2aff13402
Commentary: Add some more details to the vpi example ( #3925 )
2023-02-02 21:51:23 -05:00
github action
82f450d838
Apply 'make format'
2023-02-03 00:11:37 +00:00
Wilson Snyder
f6d4f1ad02
Fix very long VPI signal names ( #3929 ).
2023-02-02 19:10:23 -05:00
Wilson Snyder
645e1387e0
Tests: Fix merge conflict failure
2023-02-02 19:10:20 -05:00
Andrew Nolte
d3c14cc1ac
Split WIDTH warning into WIDTHEXPAND and WIDTHTRUNC ( #3900 )
2023-02-02 18:25:25 -05:00
Ryszard Rozak
33468fa0e7
Fix class extend parameter dot case ( #3926 )
2023-02-02 17:59:47 -05:00
Ryszard Rozak
0e955d503e
Handle references of static members of type aliases of a parametrized class ( #3922 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-02-02 08:36:11 +01:00
Andrew Nolte
18e317fb78
Fix inconsistent naming of generate scope arrays ( #3840 )
2023-02-01 17:30:02 -05:00
Wilson Snyder
ef9f443532
Fix single-element replication to dynarray/unpacked/queue ( #3548 ).
2023-01-31 22:43:41 -05:00
Wilson Snyder
6e3b957b30
Tests: Add iterate check ( #3919 )
2023-01-31 19:34:27 -05:00
Wilson Snyder
aea1834ed8
Commentary ( #3920 )
2023-01-31 12:11:35 -05:00
Ryszard Rozak
7f3e178b68
Fix paramaterized class function linkage ( #3917 )
...
* Visit function arguments even if the function is unlinkable
* Don't use m_unlinedScopep in AstLambdaArgRef handling
2023-01-30 22:20:56 -05:00
Larry Doolittle
87a7881d46
Add SOURCE_DATE_EPOCH for docs/guide/conf.py ( #3918 )
2023-01-30 22:14:33 -05:00
Larry Doolittle
29f4821d78
Tests: Check Makefiles for stray tabs ( #3914 )
2023-01-30 07:31:39 -05:00
Larry Doolittle
9f9c84aa64
Internals: Avoid using <tab> in the middle of lines ( #3913 )
2023-01-29 22:39:22 -05:00
Larry Doolittle
d80e0523cc
Fix nonsensical permissions of some files in test_regress/t ( #3912 )
...
chmod a-x *.out *.v *.vlt
2023-01-29 20:32:19 -05:00
Wilson Snyder
164aa96953
Fix GCC warning (fixes recent #3510 )
2023-01-29 17:34:48 -05:00
Wilson Snyder
6a12c4d02a
Commentary: Changes update
2023-01-29 16:57:30 -05:00
Wilson Snyder
6a7dfb7696
Fix pattern assignment to unpacked structs ( #3510 ).
2023-01-29 16:50:10 -05:00
Wilson Snyder
4208db7811
Support multiple-output buf/not gate primitives
2023-01-28 23:20:48 -05:00
Wilson Snyder
a19dddf05e
Fix real parameters of infinity and NaN.
2023-01-28 22:11:09 -05:00
Wilson Snyder
7855a78a0f
Support %p of union with real
2023-01-28 21:41:50 -05:00
Wilson Snyder
248bd173d3
Support interface classes and class implements.
2023-01-28 18:06:37 -05:00
Wilson Snyder
8d2be855f5
Internals: Parsing and tests for class interfaces
2023-01-28 16:30:47 -05:00
Wilson Snyder
ba8700f99d
Support $changed_gclk, $fell_gclk, $rose_gclk, $stable_gclk
2023-01-28 14:05:26 -05:00
Wilson Snyder
f20997a2f0
Support global clocking and $global_clock.
2023-01-28 12:31:52 -05:00
Wilson Snyder
bea225e191
Fix duplicate name check on extern symbols
2023-01-28 11:55:44 -05:00
Wilson Snyder
93517b8378
Support unpacked unions.
2023-01-27 22:41:12 -05:00
Kamil Rakoczy
a39c7f7dac
Internals: Add V3ThreadPool class ( #3898 )
...
The thread pool is self tested, but not otherwise used by the code yet.
2023-01-27 10:43:50 -05:00
Wilson Snyder
5125b94fd8
Commentary ( #3908 )
2023-01-26 18:27:00 -05:00
Ilya Barkov
d118a739dc
Fix cinlude check ( #3907 )
2023-01-26 06:35:59 -05:00
Wilson Snyder
c2a8810eb1
Tests: Check for new .pl file copyrights
2023-01-25 22:14:43 -05:00
Ryszard Rozak
91c44d7830
Support class extending its parameter ( #3904 )
2023-01-25 20:33:18 -05:00
Wilson Snyder
21aafe8f50
Tests: Fix file length issue (cousin of #3905 )
2023-01-25 19:42:28 -05:00
Ryszard Rozak
4a8cfe367d
Support function calls without parenthesis ( #3903 ) ( #3902 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-01-24 15:36:30 +01:00
Ryszard Rozak
b56e7f6910
Support static function variables ( #3830 )
2023-01-23 08:35:10 -05:00
Wilson Snyder
8a85cedaf5
Tests: Update test, part of ( #3378 ) ( #3892 )
2023-01-23 07:23:42 -05:00
Varun Koyyalagunta
be26e8da1b
Support struct I/O in --lib-create ( #3378 ) ( #3892 )
2023-01-22 22:24:36 -05:00
Wilson Snyder
b2dd5de860
Tests: Fix some unusual check_finished cases.
2023-01-22 22:21:36 -05:00
Kamil Rakoczy
6ea725f479
Add --verilate-jobs option ( #3889 )
...
Currently this option isn't used, but in the future it will be used to specify parallelization of Verilation step.
2023-01-22 21:52:52 -05:00
Wilson Snyder
665758a68b
devel release
2023-01-22 11:55:22 -05:00
Wilson Snyder
5b8941d717
Version bump
2023-01-22 11:52:21 -05:00
Wilson Snyder
f4865a4bb2
Fix configure; always look for std=c++17 rather than by distro.
...
This backs out #606b35853b, which is believed no longer needed due to
(#3881 ) being fixed.
If this proves wrong and additional OS dependencies are needed, we should
use a feature test macro so that the OS test doesn't need upkeep.
2023-01-22 09:53:55 -05:00
Wilson Snyder
53835355b0
Add CFG_CXXFLAGS_STD so CFG_CXXFLAGS_STD_NEWEST can still exist ( #3881 )
2023-01-22 09:44:50 -05:00
Wilson Snyder
5cd3d831bb
Commentary: Changes update
2023-01-22 08:59:06 -05:00
Geza Lore
3069860fdf
Allow mismatched widths in operands of shifts in DFG
...
Fixes #3872 .
Testing this is a bit tricky, as the front-end fixes up the operand
widths in shifts to match, and we need V3Const to introduce a mismatched
one by reducing `4'd2 ** x` (with x being 2 2-bit wide signal) to `4'd1
<< x`, but t_dfg_peephole runs with V3Const disabled exactly because it
makes it hard to write tests. Rather than fixing this one case in
V3Const (which we should do systematically at some point), I fixed DFG
to accept these just in case V3Const generates more of them. The
assertions were there only because of paranoia (as I thought these were
not possible inputs), the code otherwise works.
2023-01-22 10:55:03 +00:00
Wilson Snyder
3a8288b0f6
Move test driver documentation into internals.rst
2023-01-21 16:17:26 -05:00
Wilson Snyder
30fd49e21f
Tests: Suppress test leak
2023-01-21 14:46:21 -05:00
Wilson Snyder
bc7048e8d1
Convert verilator_includer to python3
2023-01-21 14:40:22 -05:00
Wilson Snyder
a98eceb501
Tests: Call debug earlier to allow command line override
2023-01-21 14:05:11 -05:00
Wilson Snyder
c2bdd06fcc
Fix VPI one-time timed callbacks ( #2778 ).
2023-01-21 13:43:27 -05:00
Ilya Barkov
8918f17c17
Support class queue equality ( #3895 )
2023-01-21 13:20:02 -05:00
Wilson Snyder
604af511fc
Tests: Fix missing include ( #2778 partial)
2023-01-20 21:15:01 -05:00
Wilson Snyder
5a39fc4ba9
Tests: Add t_dist_copyright.pl
2023-01-20 20:42:46 -05:00
Wilson Snyder
30d6edd2e5
Cleanup missing copyrights and those on simply copied files. No functional change.
2023-01-20 20:42:30 -05:00
Wilson Snyder
79f99dddf7
Tests: Rename to .out suffix
2023-01-20 20:32:52 -05:00
Wilson Snyder
c3fa475096
Remove leakchecking.txt
2023-01-20 20:32:52 -05:00
James Shi
5ef373500f
Fix module parameter name collision ( #3854 ) ( #3855 )
2023-01-20 18:38:59 -05:00
Ryszard Rozak
be53eec5ca
Support property calls without parenthesis ( #3879 ) ( #3893 )
2023-01-20 07:25:37 -05:00
github action
41e5f6b7d5
Apply 'make format'
2023-01-19 23:22:37 +00:00
James Shi
c1c0aa61f9
Fix signed/unsigned parameter types ( #3866 )
2023-01-19 18:00:32 -05:00
Wilson Snyder
e94023367f
Fix elaboration of member selected classes ( #3890 ).
2023-01-19 17:44:27 -05:00
Wilson Snyder
317fe7a787
Fix VL_CPU_RELAX on MIPS/Armel/s390/sparc ( #3891 )
2023-01-19 17:22:28 -05:00
Wilson Snyder
035bf13e4a
Fix foreach unnamedblk duplicate error ( #3885 ).
2023-01-18 21:48:06 -05:00
Wilson Snyder
6a60ace2c7
Commentary ( #3887 )
2023-01-18 18:21:53 -05:00
Joey Liu
901d1d8087
Fix unpacked array expansion ( #3861 )
2023-01-18 14:35:48 -05:00
github action
6cd26edb64
Apply 'make format'
2023-01-18 16:48:16 +00:00
Gökçe Aydos
956fd89b87
Support import/export lists in modport ( #3886 )
2023-01-18 11:46:51 -05:00
Wilson Snyder
3fe81a3832
Add manpages for missing user commands (using help2man)
2023-01-17 19:26:12 -05:00
Ilya Barkov
ff2f711d0c
Fix chain call of abstract class constructor ( #3868 ) ( #3883 )
2023-01-17 13:02:39 -05:00
Wilson Snyder
46cc7b5d07
Test ( #3876 )
2023-01-17 07:31:04 -05:00
Kamil Rakoczy
4d453c6822
Fix to use same std flag in Verilator and Verilated design ( #3881 )
2023-01-17 07:11:12 -05:00
Aleksander Kiryk
a1160a85a3
Support p format for UnpackArray ( #3877 )
2023-01-16 12:41:02 -04:00
Andrew Nolte and Andrew Nolte
e5eb7d8930
Add VL_VALUE_STRING_MAX_WORDS override ( #3869 )
...
Co-authored-by: Andrew Nolte <[email protected] >
2023-01-13 15:23:15 -05:00
Wilson Snyder
83f6b11235
Fix astgen in CMakeLists.txt ( #3867 )
2023-01-13 09:33:50 -05:00
Wilson Snyder
5fce23e90d
Fix empty case items crash ( #3851 ).
2023-01-10 07:18:12 -05:00
Wilson Snyder
7e4760a7e4
Commentary ( #3847 )
2023-01-10 07:13:08 -05:00
Larry Doolittle
2d6d1235d6
Commentary: Spelling (and grammar) fixes ( #3846 )
2023-01-08 18:17:24 -05:00
Wilson Snyder
520f6e5fdc
CI: Try apt twice to reduce false network failures
2023-01-07 20:27:00 -05:00
Wilson Snyder
30f6831be6
Commentary: Changes update
2023-01-07 14:54:12 -05:00
Wilson Snyder
26e2f9e629
Commentary: Remove unintended text
2023-01-06 07:34:24 -05:00
Wilson Snyder
1d2293b783
Fix some indents of warnMore
2023-01-05 17:59:51 -05:00
Ryszard Rozak
4784daa7dc
Add IMPLICITSTATIC warning when a ftask/function is implicitly static ( #3839 )
2023-01-05 17:42:05 -05:00
Sören Tempel
78fe77db0f
Fix compatibility with musl libc / Alpine Linux ( #3845 )
2023-01-05 15:50:25 -05:00
Wilson Snyder
c039a5229d
github: Remove 18.04
2023-01-05 07:25:34 -05:00
Larry Doolittle
2ab70ba452
Internals: Cleanup .txt file whitespace ( #3842 )
2023-01-05 05:00:54 -05:00
Larry Doolittle
4370490a71
Convert three files from Unicode to ASCII ( #3841 )
2023-01-04 21:19:07 -05:00
Yutetsu TAKATSUKASA
816cff009a
Fix #3824 of wrong bit op tree optimization ( #3825 )
...
* Tests: Add a test to reproduce #3824
* Fix #3824 of wrong bitOpTree optimization. Consider constant 1 in an Or-tree made by shift-out.
2023-01-04 23:10:55 +09:00
Wilson Snyder
e004ea7ae2
Revert ( #3835 ) ( #3836 )
2023-01-03 08:25:30 -05:00
Andrew Nolte
6159a7dd8d
Fix VPI generate scope array naming ( #3835 ) ( #3836 )
2023-01-03 07:38:55 -05:00
Kamil Rakoczy
be65030d61
Fix cmake upper-case and missing include directory ( #3838 )
2023-01-02 06:25:50 -05:00
Geza Lore
a168d593eb
Fix some front-end memory leaks
2023-01-01 15:31:29 +00:00
Geza Lore
6ab47f799b
Actually delete the netlist when VL_LEAK_CHECKS
2023-01-01 15:31:29 +00:00
Geza Lore
fd52f7f479
Fix memory leak in V3Sched.
...
Fixes #3834 .
2023-01-01 15:31:29 +00:00
Wilson Snyder
b24d7c83d3
Copyright year update
2023-01-01 10:18:39 -05:00
Ryszard Rozak
bf4a844f2b
Fix self references when param class instantiated ( #3833 )
2022-12-30 06:05:01 -05:00
Wilson Snyder
5dbff89a90
Internal line coverage fixes
2022-12-29 20:18:28 -05:00
Wilson Snyder
9255707dd4
Fix detecting multiple pattern defaults
2022-12-29 20:16:30 -05:00
Wilson Snyder
24198ef0ed
Internal line coverage fix
2022-12-29 14:18:45 -05:00
Wilson Snyder
8064b78d4f
Test: Rename
2022-12-29 14:10:47 -05:00
Wilson Snyder
fde380868a
Fix misc memory leaks
2022-12-29 13:59:24 -05:00
Wilson Snyder
be42dc906c
Fix GDB watchedit
2022-12-29 13:58:19 -05:00
Wilson Snyder
bad4110b03
For --stat, add total elapsed time
2022-12-29 11:48:19 -05:00
github action
f6b101d98b
Apply 'make format'
2022-12-26 09:31:25 +00:00
Larry Doolittle
80a144797d
Commentary: Fix more spelling ( #3828 )
2022-12-26 10:30:41 +01:00
Kritik Bhimani
a86ded97c9
CI: Add ci for cmake on windows ( #2681 ) ( #3819 )
2022-12-23 18:12:17 -05:00
Wilson Snyder
45abcb6107
Internals: Some V3LinkInc cleanups. No functional change.
2022-12-23 16:17:08 -05:00
Wilson Snyder
1f58f48c05
Tests: Rename test of last commit
2022-12-23 13:12:21 -05:00
Wilson Snyder
d5a18c99fe
fungetc has lvalue character argument.
2022-12-23 13:00:34 -05:00
Wilson Snyder
c0499da28b
Spelling fixes
2022-12-23 11:32:38 -05:00
Wilson Snyder
3ccb2e0f2d
Fix initiation of function variables ( #3815 ).
2022-12-23 10:51:52 -05:00
Wilson Snyder
afd7c2ae25
Internals: Use visitor to refactor Ctors, prep for ( #3815 )
2022-12-23 10:12:11 -05:00
Krzysztof Bieganski
bb44d4e4f2
Support clocking blocks ( #3674 )
2022-12-23 07:34:49 -05:00
Wilson Snyder
d64971ba35
Fix some MSVC warnings.
2022-12-22 12:19:09 -05:00
Wilson Snyder
71d29a235f
Commentary: Changes update
2022-12-20 19:51:17 -05:00
Kritik Bhimani
65daf99bf4
Support Windows-native builds using cmake ( #3814 )
2022-12-20 19:42:27 -05:00
Jevin Sweval
299261714b
Fix crash in DFT due to width use after free ( #3817 ) ( #3820 )
2022-12-20 19:36:04 -05:00
Aleksander Kiryk
c2b09e35f8
Support unpacked structs ( #3802 )
2022-12-20 19:22:42 -05:00
Wilson Snyder
c3b4bc85fa
Tests: Ignore tabs in .mk.in
2022-12-20 11:20:23 -05:00
Jevin Sweval
3340f7b0b4
Fix macOS weak symbols with -U linker flag ( #3823 )
2022-12-20 11:17:43 -05:00
Mariusz Glebocki
cb413aa264
Tests: Make it mt-safe to call operators on guarded and local objects. ( #3821 )
2022-12-19 10:53:28 -05:00
Kamil Rakoczy
982fa3d7bb
Fix signed/unsigned comparison compile warning ( #3822 )
2022-12-19 10:52:19 -05:00
Wilson Snyder
51de2c9194
Remove reader task code which was non-functional ( #3360 )
2022-12-17 16:48:08 -05:00
Wilson Snyder
a15cd76a28
Tests: Add copyright.
2022-12-16 18:09:00 -05:00
Kamil Rakoczy
7a15457511
Tests: Add multithreading attribute checks ( #3748 )
2022-12-16 11:19:27 -05:00
Kamil Rakoczy
4f7df4a915
Internals: Mark more VL_MT_SAFE functions ( #3816 ).
2022-12-16 10:14:02 -05:00
Wilson Snyder
a554dd7c8d
Optimize expansion of extend operators - fix earlier commit.
2022-12-15 22:49:49 -05:00
Wilson Snyder
073af8e1f2
Fix to zero possibly uninitialized bits in replications ( #3815 )
2022-12-15 22:00:21 -05:00
Wilson Snyder
2eafd82696
Internals: Mark more VL_MT_SAFE functions ( #3748 ). No functional change
2022-12-15 21:32:34 -05:00
Wilson Snyder
7d93952a0d
Fix make intermediate ( #3748 )
2022-12-15 19:53:51 -05:00
Wilson Snyder
1ddb2dd5e7
Fix make intermediate ( #3748 )
2022-12-15 19:26:54 -05:00
Wilson Snyder
2770ddf071
Optimize expansion of extend operators.
2022-12-15 07:38:53 -05:00
Wilson Snyder
bae60ab8ea
devel release
2022-12-14 22:08:39 -05:00
Wilson Snyder
4cefccf5d2
Version bump
2022-12-14 21:59:58 -05:00
Kamil Rakoczy
925fb921a2
Fix missing VL_REQUIRES in definition ( #3804 )
2022-12-14 21:16:16 -05:00
github action
fcd1306ef3
Apply 'make format'
2022-12-14 12:08:19 +00:00
Kritik Bhimani
9d2f1c607a
Fix MSVCC issues ( #3813 )
2022-12-14 07:07:25 -05:00
Wilson Snyder
f331c192b4
Tests: Fix duplicated if.
2022-12-12 21:32:45 -05:00
github action
d192372c7e
Apply 'make format'
2022-12-12 23:46:23 +00:00
Kritik Bhimani
7b073fec7d
Fix MSVC++ portability issues ( #3812 )
2022-12-12 18:45:32 -05:00
Wilson Snyder
424faa883e
Internals: Mark more VL_MT_SAFE functions. No functional change
2022-12-11 23:10:59 -05:00
Wilson Snyder
61d6546400
Internals: Mark more VL_MT_SAFE functions. No functional change
2022-12-11 23:03:27 -05:00
Wilson Snyder
972a11537c
Internals: Fix lint-py warnings
2022-12-11 21:58:02 -05:00
Wilson Snyder
609bfa46e8
Fix ENUMVALUE on parameter, again ( #3777 ).
2022-12-11 21:10:12 -05:00
Wilson Snyder
01b521a0ea
Commentary: Changes update
2022-12-11 15:10:23 -05:00
Wilson Snyder
0a3c90e517
Fix forked processes compiled as slow/cold ( #3766 )
2022-12-11 14:44:18 -05:00
Wilson Snyder
afc66f6a85
Fix make jobserver with submakes ( #3758 ).
2022-12-11 14:19:40 -05:00
Wilson Snyder
722e38f532
Commentary, part of last commit ( #3783 )
2022-12-11 13:30:00 -05:00
Wilson Snyder
86b07423a9
Fix ENUMVALUE on parameter ( #3777 ).
2022-12-11 13:28:24 -05:00
Wilson Snyder
3f4d4dec77
Fix ENUMVALUE on typedef ( #3777 )
2022-12-11 11:50:22 -05:00
Wilson Snyder
86e3c02339
Internal: Remove stale make rule ( #3811 ).
2022-12-11 09:48:25 -05:00
Wilson Snyder
b6cdae30f6
docs: Fix grammar.
2022-12-10 20:09:47 -05:00
Wilson Snyder
a9ff0a0f32
docs: Fix grammar
2022-12-09 23:16:14 -05:00
Wilson Snyder
a0e7930036
docs: Fix spelling
2022-12-09 22:39:41 -05:00
Wilson Snyder
d61ad04f32
docs: Fix and test for AsciiDoc breaks ( #3728 )
2022-12-09 21:01:33 -05:00
Wilson Snyder
0824ef377f
wip
2022-12-09 20:32:09 -05:00
Wilson Snyder
fc2654f1f6
msg
2022-12-09 20:17:19 -05:00
Kamil Rakoczy
5aa935d170
Internals: Add annotations for check attributes ( #3803 )
2022-12-09 07:12:26 -05:00
Wilson Snyder
bcf58defe0
Update include/gtkwave from upstream
2022-12-08 07:30:23 -05:00
Wilson Snyder
2dc0053ea4
Tests: rename
2022-12-08 07:23:53 -05:00
Krzysztof Bieganski
4b6e15d0eb
Fix non-blocking assignments in forks ( #3781 ) ( #3800 )
2022-12-06 07:16:07 -05:00
Krzysztof Bieganski
87bb32fde1
Fix forks without any delayed statements ( #3792 ) ( #3801 )
2022-12-06 07:14:29 -05:00
Wilson Snyder
ea1b141d13
Support probablity distribution functions.
2022-12-04 17:30:51 -05:00
Wilson Snyder
84c7368621
Rename std.sv and add to install.
2022-12-03 11:31:26 -05:00
Wilson Snyder
675cc891a5
Tests: Add rerunnable(0)
2022-12-02 19:57:40 -05:00
Wilson Snyder
0809c17ce1
Tests: Rename some tests that should be _bad.
2022-12-02 19:17:29 -05:00
Larry Doolittle
f27cf4c804
Commentary: Fix spelling in C++ comments ( #3797 ) ( #3798 )
2022-12-02 18:46:38 -05:00
Wilson Snyder
701d2277cd
Tests: rename
2022-12-02 07:34:34 -05:00
Wilson Snyder
338e875b70
Internals: Mark more VL_MT_SAFE functions. No functional change
2022-12-01 19:32:09 -05:00
Wilson Snyder
87135d0b2d
Internals: Fix missing const. No functional change.
2022-12-01 18:47:09 -05:00
Wilson Snyder
e465a30eee
Fix lint_off EOFNEWLINE in .vlt files ( #3796 ).
2022-12-01 18:27:36 -05:00
Yutetsu TAKATSUKASA
889a1211f1
Fix 3786 (Internal error in bit op tree optimization) ( #3793 )
...
* Tests: Add a test to reproduce 3786
* Fix #3786 (Internal error in bit op tree optimization).
2022-12-01 22:00:24 +09:00
Wilson Snyder
31d8b4cb8e
Internals: Rename AstNodeSystem*D etc. No functional change intended.
2022-11-30 22:08:57 -05:00
Wilson Snyder and G-A. Kamendje
d87ef8394a
Fix CASEINCOMPLETE when covers all enum values ( #3745 ) ( #3782 ).
...
Co-authored-by: "G-A. Kamendje" <[email protected] >
2022-11-30 19:42:21 -05:00
Wilson Snyder
4f4c26383c
Support unpacked byte assignment from strings.
2022-11-30 19:17:28 -05:00
Wilson Snyder
42e4e18ec8
Support multiple $dumpvar identifiers
2022-11-30 18:13:57 -05:00
Wilson Snyder
355c4f76d0
Add error when super.new is not first statement ( #3789 )
2022-11-30 07:41:57 -05:00
Ryszard Rozak
073dc03adc
Support super.new calls ( #3789 )
2022-11-30 06:42:48 -05:00
Wilson Snyder
468a33b61c
Move SystemC requirement out of .cpp files ( #3507 )
2022-11-29 22:44:37 -05:00
Wilson Snyder
8ff607f679
Deprecate verilated_fst_sc.cpp and verilated_vcd_sc.cpp ( #3507 )
2022-11-29 22:17:50 -05:00
Wilson Snyder
6143892619
Internals: Add some VL_UNLIKELY. No functional change.
2022-11-29 20:36:56 -05:00
Wilson Snyder
b51bb4d0e7
Internal: Add node objects to UASSERT ( #3786 )
2022-11-29 18:34:44 -05:00
Wilson Snyder
f0a7abcef8
Internals: Use named accessors instead of op1p etc. No functional change intended.
2022-11-29 18:17:50 -05:00
Ryszard Rozak
faedcc755b
Tests: Add test of passing this as argument ( #3790 )
2022-11-29 10:46:26 -05:00
Yinan Xu
ff9596bb23
Fix missing user objects in --lib-create mode ( #3780 ) ( #3784 )
2022-11-29 09:02:39 -05:00
Wilson Snyder
7d807a7e0e
Commentary
2022-11-29 07:33:12 -05:00
Yinan Xu
e569ff2752
Add error when use --exe with --lib-create. ( #3785 )
2022-11-29 06:37:38 -05:00
Krzysztof Bieganski
68e1b473e2
Support std::semaphore and typed std::mailbox ( #3708 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-11-28 16:53:55 +01:00
Wilson Snyder
4452a9b10f
Internals: Fix some VL_MT metacomments.
2022-11-28 07:08:34 -05:00
Larry Doolittle
6349e76abd
Remove $date from .vcd files ( #3779 )
2022-11-27 20:24:22 -05:00
Wilson Snyder
f4be3d5d2b
Fix empty string literals converting to string types ( #3774 ).
2022-11-27 13:28:57 -05:00
Wilson Snyder
054b792021
Fix ENUMVALUE error to show value location ( #3783 )
2022-11-27 08:44:30 -05:00
Wilson Snyder
c303ba7f0a
Prefer std:: in examples
2022-11-27 08:32:34 -05:00
Wilson Snyder
2c7f1ef40f
Internals: Cleanup debug dumps so can grep-out leading-dashed lines
2022-11-27 08:31:22 -05:00
Wilson Snyder
5f583b0680
Fix clang warning from previous commits.
2022-11-27 06:27:51 -05:00
Wilson Snyder
fa4270b551
bisonpre: Commentary
2022-11-27 06:18:58 -05:00
Wilson Snyder
d8071819fc
Fix unquoted name in dtype errors.
2022-11-27 05:59:40 -05:00
Wilson Snyder
833780fac1
Internal: cppcheck fixes. No functional change intended.
2022-11-27 05:52:40 -05:00
Wilson Snyder
4b3731d318
Remove env from main() to be C++11 compatible
2022-11-23 18:50:31 -05:00
Ryszard Rozak
68f8617f79
Support member selects in with clauses ( #3775 )
2022-11-23 13:15:10 -05:00
Wilson Snyder
a83ed6b06f
Internals: Fix destructor calling virtual. No functional change intended.
2022-11-23 07:04:22 -05:00
github action
821dd070bf
Apply 'make format'
2022-11-23 09:08:02 +00:00
Yves Mathieu
06fdf7be58
Add support of Events for VCD/FST traces ( #3759 )
2022-11-23 04:07:14 -05:00
Wilson Snyder
e97e6c2213
Fix V3Tristate warning ( #3773 )
2022-11-22 17:46:58 -05:00
Geza Lore
508e937164
Fix tautological predicate in V3DfgPeephole
...
Fixes #3771
2022-11-22 15:05:34 +00:00
Ryszard Rozak
57975c82b7
Support 'with' in unique, unique_index, min, max in queues ( #3772 )
2022-11-22 09:10:25 -05:00
Wilson Snyder
66d85b3381
Internals: Fix cppcheck warnings. No functional change intended.
2022-11-21 21:40:49 -05:00
Wilson Snyder
73d6de4471
Internals: Fix constructor style.
2022-11-21 20:41:32 -05:00
Wilson Snyder
0af02563ca
Internals: Fix verilog.y style
2022-11-21 20:22:13 -05:00
Wilson Snyder
b82ce5743b
Internals: Fix verilog.y style
2022-11-21 08:30:40 -05:00
Wilson Snyder
d3c1f4353e
Fix float parameters without parens
2022-11-21 06:48:13 -05:00
Ryszard Rozak
62bdd3ab49
Fix timing control in while-break loops ( #3733 ) ( #3769 )
2022-11-21 06:27:55 -05:00
Wilson Snyder
2eed4452ad
Internals: Fix constructor style.
2022-11-20 20:13:55 -05:00
Wilson Snyder
f44cd9cd48
Internals: Fix constructor style.
2022-11-20 17:40:38 -05:00
Wilson Snyder
25f970eac2
Internals: Fix constructor style.
2022-11-20 15:06:49 -05:00
Geza Lore
3abb65d732
Strengthen AstNode types to AstNodeExpr
...
Declare every AstNode children and variables as AstNodeExpr where we
statically know this is the appropriate sub-type.
2022-11-20 19:31:28 +00:00
Wilson Snyder
352d0b4582
Internals: Fix constructor style.
2022-11-20 13:11:01 -05:00
github action
a60e273c29
Apply 'make format'
2022-11-20 15:26:23 +00:00
Jiacheng Qian
47253450a4
Fix to escape VERILATOR_ROOT file paths ( #3764 ) ( #3765 )
2022-11-20 10:25:41 -05:00
Wilson Snyder
278d532368
Tests: Add TEST_DUMPFILE define
2022-11-20 09:40:02 -05:00
Wilson Snyder
6297650fef
Tests: Fix internal error stability
2022-11-20 07:45:51 -05:00
Wilson Snyder
5634e96bb6
Tests: Remove unsupported() in tests, instead check whatever is current behavior
2022-11-19 22:43:10 -05:00
Wilson Snyder
e266b2cb03
Tests: Add $dist tests
2022-11-19 22:01:55 -05:00
Wilson Snyder
0af3efda5c
Tests: Fix top_filename to properly test ( #3767 )
2022-11-19 17:09:43 -05:00
Wilson Snyder
d3e1c40238
Tests: Cleaner macro. No functional change.
2022-11-19 17:06:11 -05:00
Wilson Snyder
aacb38b776
Support assignment expressions.
2022-11-19 15:23:37 -05:00
Wilson Snyder
21d80cdfa1
Internals: Fix constructor style.
2022-11-19 14:45:38 -05:00
Mariusz Glebocki
d0e7177d8e
Disable stack size limit ( #3706 ) ( #3751 )
2022-11-19 14:44:54 -05:00
Andrew Nolte
cd2208ea3f
Contributors ( #3762 )
2022-11-19 14:09:51 -05:00
Wilson Snyder
3a27e3d67b
Fix false ENUMVALUE errors in unstable branch ( #3761 )
2022-11-19 14:07:39 -05:00
Wilson Snyder
09dff9c3a7
Fix false ENUMVALUE errors in unstable branch ( #3761 )
2022-11-19 13:30:23 -05:00
Wilson Snyder
f266b02bc7
Internals: Improve dtype small dump.
2022-11-19 13:23:28 -05:00
Wilson Snyder
de9c92fd14
Internals: Add missing const. No functional change.
2022-11-19 10:48:46 -05:00
Wilson Snyder
0322e9da7e
Fix randcase inside function.
2022-11-18 21:30:34 -05:00
Wilson Snyder
b2d92b7c25
Allow ENCAPSULATED and ENUMVALUE to be disabled
2022-11-18 21:30:34 -05:00
Ryszard Rozak
ef72b73a59
Support foreach loops on strings ( #3760 )
2022-11-18 07:07:56 -05:00
Wilson Snyder
749aab0a56
Support triple-quote blocks.
2022-11-17 20:38:01 -05:00
github action
cd8528e83b
Apply 'make format'
2022-11-18 00:14:05 +00:00
Wilson Snyder
e8a1e4745c
Support $stacktrace
2022-11-17 19:12:54 -05:00
Wilson Snyder
96306b7630
Tests: Update t_class_class
2022-11-17 18:15:38 -05:00
Ryszard Rozak
d41efb189d
Fix pre/postincrement operations ( #3744 ) ( #3756 )
2022-11-17 13:26:45 -05:00
Wilson Snyder
3c77c7bb92
Support and
2022-11-16 21:10:54 -05:00
Ryszard Rozak
3ddfa214e3
Fix $unit as base package for other packages ( #3755 )
2022-11-16 18:58:57 -05:00
Wilson Snyder
a58cd66358
Fix printtimescale
2022-11-16 18:17:24 -05:00
Kamil Rakoczy
79e0fa3327
CI: Switch building pull requests to ubuntu 22.04 ( #3753 )
2022-11-16 10:14:12 -05:00
Miodrag Milanović
f782496092
Fix for mingw cross-compile, arm and riscv ( #3752 )
2022-11-16 05:34:25 -08:00
Mariusz Glebocki
dc28e7f3e2
Commentary. Remove repeated entry in Verilator help. ( #3754 )
2022-11-16 05:32:32 -08:00
Wilson Snyder
e6da59eecd
Internals: Mark some VL_PURE functions. No functional change.
2022-11-15 09:18:47 -05:00
Wilson Snyder
04f68cbd99
Internals: Spacing
2022-11-13 21:58:18 -05:00
Wilson Snyder
8c6d1e53ca
Internals: Fix some 'p' names, and make new base class for VlDeleter. No functional change intended.
2022-11-13 17:40:50 -05:00
Wilson Snyder
c6ecd60993
Support pre_randomize and post_randomize.
2022-11-13 11:59:40 -05:00
Wilson Snyder
ee26dddfa1
Internals: Fix constructor style.
2022-11-13 11:23:57 -05:00
github action
d1658b9e82
Apply 'make format'
2022-11-13 14:27:37 +00:00
Wilson Snyder
818347f99b
Internals: Fix some unnecessary member paddings. No functional change intended.
2022-11-13 09:26:46 -05:00
Kritik Bhimani
201419c646
Fix MSVC compiler errors ( #3742 ) ( #3746 )
2022-11-13 08:35:06 -05:00
Wilson Snyder
d25834e57b
Add ENUMVALUE warning when value misused for enum ( #726 ).
2022-11-12 20:11:05 -05:00
Wilson Snyder
4f50073feb
Internals: Fix constructor style.
2022-11-12 19:51:03 -05:00
Wilson Snyder
218dd4322b
Fix C++11 warnings
2022-11-12 16:03:13 -05:00
Geza Lore
eaf09ba0e7
Dfg: resolve multi-driven signal ranges
...
In order to avoid unexpected breakage on multi-driven variables, we
resolve in DFG construction by using only the first driver encountered.
Also issues the MULTIDRIVEN error for these signals.
2022-11-12 20:34:51 +00:00
github action
8291d8bcc1
Apply 'make format'
2022-11-12 17:10:41 +00:00
Wilson Snyder
0a045a7bf6
Change ENDLABEL from warning into an error.
2022-11-12 12:09:48 -05:00
Geza Lore
dbcaad99c5
Dfg: Fix crash on additional driver from non-DFG logic
...
Ensure variables written by non-DFG code are kept
Fixes #3740
2022-11-12 11:55:49 +00:00
Wilson Snyder
6736e92cdb
Internals: Fix some ugly line breaks. No functional change.
2022-11-11 22:33:17 -05:00
Wilson Snyder
a427860825
Support randcase.
2022-11-11 21:53:05 -05:00
William D. Jones
41d2ebe288
Fix CONTEXT compile error on mingw64 ( #3741 ).
2022-11-11 21:43:10 -05:00
Wilson Snyder
227e61f891
Fix comparing ranged slices of unpacked arrays.
2022-11-11 18:01:30 -05:00
Wilson Snyder
b2e61425d6
Fix const initial assignments.
2022-11-11 17:45:34 -05:00
Wilson Snyder
9d7c4d9af3
Fix wait 0.
2022-11-11 17:18:59 -05:00
Wilson Snyder
0c75d4eaca
Internals: Fix constructor style.
2022-11-10 22:58:27 -05:00
Wilson Snyder
528a73a492
Fix instability after disable iff error.
2022-11-10 22:09:24 -05:00
Wilson Snyder
fbf2e59c85
Fix loss of V3Simulate on expression statements.
2022-11-10 20:49:11 -05:00
Wilson Snyder
16586d1d37
Fix tracing parameters overridden with -G ( #3723 ).
2022-11-10 20:30:10 -05:00
Ryszard Rozak
441b5da5ce
Fix 'with' clause handling in functions ( #3739 )
2022-11-10 18:08:15 -05:00
Kamil Rakoczy
207bc2b18a
Fix comment annotation
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2022-11-10 13:36:14 +00:00
Wilson Snyder
e64295e92b
Fix missing UNUSED warnings with --coverage ( #3736 ).
2022-11-09 21:45:14 -05:00
Ryszard Rozak
cbf9cc8e5f
Fix return in constructors ( #3734 )
2022-11-09 06:32:22 -05:00
Ryszard Rozak
a29d9469da
Fix jump handling in do while loops ( #3731 )
2022-11-08 20:01:08 -05:00
Geza Lore
2a3eabff73
Various Dfg performance improvements
2022-11-06 15:54:51 +00:00
Geza Lore
454efbe3fc
Dfg: Use a worklist driven algorithm for unused vertex removal
...
This improves verilation speed slightly.
2022-11-06 14:13:42 +00:00
Geza Lore
fb9ec03c3f
DfgPeephole: Use a work list driven algorithm for speed
...
Replace the 'run to fixed point' algorithm with a work list driven
approach. Instead of marking the graph as changed, we explicitly add
vertices to the work list, to be visited, when a vertex is changed. This
improves both memory locality (as the work list is processed in last in
first out order), and removed unnecessary visitations when only a few
nodes changes.
2022-11-05 20:31:09 +00:00
Wilson Snyder
21926eeb6b
Tests: Improve some coverage
2022-11-05 11:40:34 -04:00
Geza Lore
6ae6b16223
V3Const: Fix folding of LogAnd with non-bool operands
...
Folding an AstLogAnd with a non-zero constant operand used to coerce the
type of the other operand, yielding an ill-typed node that DFG was then
unhappy about. Add a RedOr instead if the width of the replacement
operand is greater than zero.
Fixes #3726
2022-11-05 13:36:21 +00:00
Wilson Snyder
167f4ebbd4
Commentary: Changes update
2022-11-05 09:32:41 -04:00
Kamil Rakoczy
d6126c4b32
Remove --no-threads; require --threads 1 for single threaded ( #3703 ).
2022-11-05 08:47:34 -04:00
Ryszard Rozak
8d61cea366
Fix return type of $countbits functions to int ( #3725 )
2022-11-04 08:58:17 -04:00
Geza Lore
65e08f4dbf
Make all expressions derive from AstNodeExpr ( #3721 ).
...
Apart from the representational changes below, this patch renames
AstNodeMath to AstNodeExpr, and AstCMath to AstCExpr.
Now every expression (i.e.: those AstNodes that represent a [possibly
void] value, with value being interpreted in a very general sense) has
AstNodeExpr as a super class. This necessitates the introduction of an
AstStmtExpr, which represents an expression in statement position, e.g :
'foo();' would be represented as AstStmtExpr(AstCCall(foo)). In exchange
we can get rid of isStatement() in AstNodeStmt, which now really always
represent a statement
Peak memory consumption and verilation speed are not measurably changed.
Partial step towards #3420
2022-11-03 16:02:16 +00:00
Wilson Snyder
cf4c00e3b4
Internals: if assertion should be VL_UNLIKELY
2022-11-02 20:11:25 -04:00
Ryszard Rozak
bac98df46b
Support named properties ( #3667 )
2022-11-01 18:53:47 -04:00
Wilson Snyder
0b0b642241
devel release
2022-10-29 17:54:12 -04:00
Wilson Snyder
52d29d238c
Version bump
2022-10-29 17:45:54 -04:00
Geza Lore
0675510eb9
DFG: Fix attempted evaluation of constants wider than 32 bits
...
Fixes #3718
2022-10-28 17:14:19 +01:00
Geza Lore
99791ac8b3
Reduce verbosity of DFG debug
2022-10-28 16:35:53 +01:00
Wilson Snyder
ee26378394
Tests: Fix instability ( #3717 )
2022-10-28 10:32:52 -04:00
Geza Lore
54c4351c39
V3Const: Do not introduce redundant AstExtend
...
Fixes #3716
2022-10-28 14:54:00 +01:00
Geza Lore
e504e9aced
Optimize clocked processes to comb when referencing const variables
...
In V3Active, we try hard to turn `always @(a or b or c)` into an
`always_comb` if the only variables read in the block are also in the
sensitivity list. In addition, also allow this optimization when reading
variables that are not in the sensitivity list, but are known to be
constant/never changing after initialization. In particular lookup
tables introduced by V3Table are covered by this. This can have a
significant impact on designs that use the `always @(a or b or c)` style
for combinational logic.
2022-10-28 14:37:30 +01:00
Geza Lore
ef2776034e
Adjust instruction count estimates for AstCMethodHard
...
The cost of an AstCMethodHard right now is generally unknown. However,
VlTriggerVec::at is used a lot in conditions, so we make an effort
to estimate this correctly via 2 changes:
- In general when an AstVarRef appears as the target of an
AstCMethodHard, we cost it as a simple address computation (an add)
- Check for VlTriggerVec::at explicitly when costing AstCMethodHard,
which is essentially a load.
This can have a significant effect when there are a lot of unique
triggers in the design.
2022-10-28 14:37:30 +01:00
Wilson Snyder
5c658f8cd5
Fix width mismatch on inside operator ( #3714 ).
2022-10-28 06:38:49 -04:00
Wilson Snyder
0ed7aaeabd
Update include/gtkwave/fstapi.c from upstream.
2022-10-27 21:37:09 -04:00
Wilson Snyder
5f9b0929b4
Commentary: Changes update
2022-10-27 21:35:09 -04:00
Geza Lore
65290afe0a
Fix VString::endsWith when suffix is longer than input string.
2022-10-27 18:38:44 +01:00
Kamil Rakoczy
ed93a111c2
Fix deadlock in `timeprecision` when using systemC ( #3707 )
2022-10-26 04:50:28 -07:00
Wilson Snyder
3487701b04
Tests: Cover some previously uncovered warnings
2022-10-22 16:03:42 -04:00
Wilson Snyder
d33a3d09f7
Tests: Fix bison-dependent .out
2022-10-22 14:35:36 -04:00
Wilson Snyder
0716a28816
Tests: Check for v3warn/v3error without a test
2022-10-22 13:46:49 -04:00
Wilson Snyder
8e1901da10
Tests: Cover some previously uncovered warnings
2022-10-22 13:45:48 -04:00
Wilson Snyder
ecfa385f13
Test/cleanup endtable without table
2022-10-22 12:30:44 -04:00
Wilson Snyder
63df87e220
Commentary
2022-10-22 12:18:28 -04:00
Wilson Snyder
495d52d30f
Test and fix extra end_keywords
2022-10-22 12:17:56 -04:00
Wilson Snyder
2df886b2b0
Tests: Check std:: package for mailbox/process/semaphore
2022-10-22 10:58:10 -04:00
Krzysztof Bieganski
fcf0d03cd4
Dynamic triggers for non-static contexts ( #3599 )
...
In non-static contexts like class objects or stack frames, the use of
global trigger evaluation is not feasible. The concept of dynamic
triggers allows for trigger evaluation in such cases. These triggers are
simply local variables, and coroutines are themselves responsible for
evaluating them. They await the global dynamic trigger scheduler object,
which is responsible for resuming them during the trigger evaluation
step in the 'act' eval region. Once the trigger is set, they await the
dynamic trigger scheduler once again, and then get resumed during the
resumption step in the 'act' eval region.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-22 14:05:39 +00:00
Wilson Snyder
4154584c4b
Commentary: Changes update
2022-10-21 20:04:07 -04:00
Wilson Snyder
a57a3579c0
Fix false LATCH warning on 'unique if' ( #3088 ).
2022-10-21 19:10:06 -04:00
Wilson Snyder
203993b018
Internals: Fix constructor style.
2022-10-21 19:03:40 -04:00
Wilson Snyder
347e9b4ec8
Fix cell assigning integer array parameters ( #3299 ).
2022-10-21 18:26:39 -04:00
Wilson Snyder
9d02082801
Internals: Avoid VM_COVERAGE ifdef in library to get closer to libverilated.a
2022-10-21 17:09:06 -04:00
Krzysztof Bieganski
785c51dd0b
Fix emitting timing debug info with --protect-ids ( #3689 ) ( #3701 )
2022-10-21 16:56:44 -04:00
Jiuyang Liu
2e4f5c863f
Fix VPI inline module naming mismatch ( #3690 ) ( #3694 )
2022-10-21 13:04:42 -04:00
HungMingWu
196f3292d5
Improve V3Ast function usage ergonomics ( #3650 )
...
Signed-off-by: HungMingWu <[email protected] >
2022-10-21 14:12:12 +01:00
Arkadiusz Kozdra
627a144b83
Support access to constructs inside type parameters ( #3702 )
...
This changeset brings support for accesses like:
class Cls#(type TYPE1);
TYPE1::some_method();
endclass
It is done by delaying dot resolution on type parameters until they get
resolved by V3Param, and doing a more thorough reference skip.
2022-10-21 09:00:40 -04:00
Krzysztof Bieganski
5688d1a935
Internals: Add V3UniqueNames consistency assertion ( #3692 )
2022-10-21 07:05:38 -04:00
Geza Lore
8b0d71994d
DFG: don't try to call DfgVertex::width() on arrays
...
In DFG DfgVertex::width() is only defined for vertices representing
packed values, which DfgVertex::hash() used to violate. The only
non-packed values at the moment are DfgVarArray, which is a
DfgVertexVar, which are handled specially anyway, so this is easy to
fix.
Fixes #3682
2022-10-21 10:57:13 +01:00
Wilson Snyder
79682e6072
Support empty generate_regions ( #3695 ). [mpb27]
2022-10-20 22:04:50 -04:00
Wilson Snyder
7e1b92fa75
Add --get-supported to determine what features are in Verilator ( #3688 ).
2022-10-20 21:42:30 -04:00
Wilson Snyder
ca8ef7ce73
github: upload-artifacts/download-artifacts/cache@v3 ( #3700 )
2022-10-20 20:23:04 -04:00
Wilson Snyder
23d538fdaf
github: upload-artifacts/download-artifacts/cache@v3
2022-10-20 20:04:45 -04:00
Wilson Snyder
aaadc3def7
github: Use checkout@v3 ( #3700 )
2022-10-20 19:57:50 -04:00
Krzysztof Bieganski
444a4a760c
Support timing with more Clang and libc++ versions ( #3669 ) ( #3698 )
2022-10-20 19:54:22 -04:00
Wilson Snyder
b42799f3b5
Commentary
2022-10-20 19:48:13 -04:00
Geza Lore
7b07cf912e
Delete trigger dump when --protect-ids is used
...
In order to not leak signal names with --protect-ids, we simply make the
trigger dump function empty (this is a debug only construct).
Partial fix for #3689
2022-10-20 15:44:51 +01:00
Geza Lore
6a3ec17887
DFG: Do not inline SystemC variables
...
The emitted SystemC types (e.g. sc_bv) are not interchangeable with
Verilator internal C++ types (e.g.: VlWide), so the variables themselves
are not interchangeable (but can be assigned to/from each other). We can
preserve correctness simply be not inlining any SystemC variables (i.e.:
don't simplify any 'sc = nonSc' or 'nonSc = sc' assignments). SystemC
types only appear at top level ports so this should have no significant
impact.
Fixes #3688
2022-10-20 15:44:51 +01:00
Krzysztof Bieganski
8c3ca30c91
Fix print format warning on some platforms ( #3699 )
2022-10-20 10:15:29 -04:00
Arkadiusz Kozdra
0e4da3b0bf
Support virtual interfaces ( #3654 )
2022-10-20 06:31:00 -04:00
Krzysztof Bieganski
e6add5e0b8
Fix trace activity with --timing ( #3576 ) ( #3678 ) ( #3696 )
2022-10-20 06:28:55 -04:00
Krzysztof Bieganski
22243d1e49
Support class type params without defaults ( #3693 )
2022-10-19 21:59:26 -04:00
Krzysztof Bieganski
bec0b7d4d0
Disallow delays with --lib-create ( #3691 )
2022-10-19 20:52:29 -04:00
Wilson Snyder
f6f13c7fda
Internals: Comment out debug that may flag ASAN problem ( #3574 )
2022-10-18 21:17:52 -04:00
Wilson Snyder
e7068369fe
Fix $display of fixed-width numbers ( #3565 ).
2022-10-18 21:10:35 -04:00
Wilson Snyder
b930d0731a
Fix foreach and pre/post increment in functions ( #3613 ).
2022-10-18 20:04:09 -04:00
Wilson Snyder
2723223884
Fix LSB error on --hierarchical submodules ( #3539 ).
2022-10-18 17:29:51 -04:00
Kamil Rakoczy
b6c116d4bf
Internals: Add VL_MT_SAFE annotations to const functions ( #3681 )
2022-10-18 17:07:09 -04:00
Kamil Rakoczy
54e3f15dce
Internals: Add attribute when using clang to VL_MT_SAFE and VL_MT_UNSAFE ( #3685 )
2022-10-18 05:15:33 -04:00
github action
c057847760
Apply 'make format'
2022-10-17 23:52:01 +00:00
Topa Topino
46c5764383
Split UNUSED warning into genvar, param, and signal warnings ( #3607 )
2022-10-17 19:51:13 -04:00
Wilson Snyder
22ce36012e
Add VERILATOR_TIMING define ( #3684 )
2022-10-17 18:18:56 -04:00
Geza Lore
5c65e0cfa1
Dfg: Fix incorrect folding of associative expressions with shared terms
...
Fixes #3679
2022-10-17 15:03:30 +01:00
Geza Lore
840e26b69a
Fix incorrect return in DFG decomposition
...
Fixes #3676
2022-10-17 14:41:20 +01:00
Krzysztof Bieganski
5e79652922
Test tracing with --timing and --main ( #3656 )
...
Add a test for tracing with `--main` and `--timing`.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-17 12:36:37 +02:00
Wilson Snyder
cb7b024e8f
Commentary: Spelling, and add upgrade notes ( #3462 )
2022-10-16 11:10:41 -04:00
Wilson Snyder
f3292a3651
Tests: Prove fixed ( #2410 )
2022-10-16 10:36:18 -04:00
Wilson Snyder
76ccd332a6
Internals: Remove DETECTARRAY, dead code.
2022-10-16 09:41:51 -04:00
Wilson Snyder
3cd2c8532d
Internals: Cleanup spacing of Vi for loops.
2022-10-15 18:47:10 -04:00
Wilson Snyder
c0739e908c
Fix internal traceActivity to be zero reset not randomized.
2022-10-15 18:37:44 -04:00
Wilson Snyder
379a947379
Tests: Fix some internal code coverage holes
2022-10-15 13:59:07 -04:00
Wilson Snyder
916a3d9066
Fix --main --trace missing initial timestep ( #3678 ).
2022-10-15 13:24:38 -04:00
Wilson Snyder
b16b607b98
Commentary: Changes update
2022-10-15 11:04:03 -04:00
Wilson Snyder
732d5bea10
Commentary: Standard format for company contributions
2022-10-15 10:59:31 -04:00
Wilson Snyder
d9a0d0ade2
Commentary (fix earlier commit)
2022-10-15 10:57:46 -04:00
Wilson Snyder
e32ff0e1a6
Tests: Better mailbox and semaphore tests.
2022-10-15 10:37:24 -04:00
Wilson Snyder
5957156dee
Tests: Fix bad result check.
2022-10-15 06:57:12 -04:00
Wilson Snyder
14f58ed6c7
Add error on real edge event control.
2022-10-15 06:21:34 -04:00
Arkadiusz Kozdra
038d57070b
Support standalone 'this' in classes ( #3675 ) ( #2594 ) ( #3248 )
2022-10-14 08:55:55 -04:00
Krzysztof Bieganski
8a347248f5
Use AstDelay nodes for intra-assignment delays ( #3672 )
...
Also fix messy implementation of net delays.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-14 09:35:26 +02:00
Krzysztof Bieganski
caed086516
Move Postponed logic after the eval loop ( #3673 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-13 21:04:43 +02:00
Krzysztof Bieganski
68927d4fd3
Make class ref typing stricter ( #3671 )
...
Prevents the possibility of assigning an integer to a class reference,
both at the SystemVerilog and the emitted C++ levels.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-13 14:33:15 +02:00
Geza Lore
b2070a9407
Commentary: Mention DFG in changes
2022-10-12 10:21:02 +01:00
github action
8dacbdec3a
Apply 'make format'
2022-10-11 09:04:38 +00:00
Geza Lore
2a110c91cf
Speed up DfgGraph decomposition algorithms
2022-10-11 09:55:08 +01:00
Krzysztof Bieganski
ba052beccd
Make reference to increment temporary an rvalue ( #3659 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-10 13:58:05 +02:00
Wilson Snyder
6f9c585452
Spelling ( #3664 )
2022-10-09 14:18:14 -04:00
Wilson Snyder
18c26b90af
Fix --trace with --main/--binary ( #3664 )
2022-10-09 14:16:44 -04:00
Geza Lore
ff49f797e5
Speed up DfgGraph::addGraph
...
Append whole lists in one go, rather than going item by item.
2022-10-08 12:46:02 +01:00
Geza Lore
c033a0d7c8
Optimize DfgGraph vertex storage
...
Vertices representing variables (DfgVertexVar) and constants (DfgConst)
are very common (40-50% of all vertices created in some large designs),
and we also need to, or can treat them specially in algorithms. Keep
these as separate lists in DfgGraph for direct access to them. This
improve verilation speed.
2022-10-08 12:46:02 +01:00
Geza Lore
461f3c1004
DFG: Remove topological sort
...
Cyclic components are now extracted separately, so there is no
functional reason to have to do a topological sort (previously we used it
to detect cyclic graphs). Removing it to gain some speed.
2022-10-08 12:46:02 +01:00
Geza Lore
90447d54d1
Make DfgConst hold V3Number directly
...
Remove intermediary AstConst. No functional change intended.
2022-10-08 12:46:02 +01:00
Geza Lore
439d30a953
Minor cleanup in V3Number
2022-10-08 12:46:02 +01:00
Iztok Jeras
a972230b3a
Commentary: example_binary does not uses SystemC code ( #3662 )
2022-10-08 09:50:15 +03:00
Geza Lore
29a080dd9b
DFG: Special case representation of AstSel
...
AstSel is a ternary node, but the 'widthp' is always constant and is
hence redundant, and 'lsbp' is very often constant. As AstSel is fairly
common, we special case as a DfgSel for the constant 'lsbp', and as
'DfgMux` for the non-constant 'lsbp'.
2022-10-06 19:59:01 +01:00
Geza Lore
0570cb8d9f
DFG: Correctly set dtype when converting DfgCountOnes to Ast
2022-10-06 19:59:01 +01:00
Geza Lore
6fa14bf029
Speed up DfgPeephole in various ways
2022-10-06 19:59:01 +01:00
Geza Lore
4f0158b5e0
Speed up Dfg common sub-expression elimination
...
Added a DfgVertex::user() mechanism for storing data in vertices.
Similar in spirit to AstNode user data, but the generation counter is
stored in the DfgGraph the vertex is held under. Use this to cache
DfgVertex::hash results, and also speed up DfgVertex hashing in general.
Use these and additional improvements to speed up CSE.
2022-10-06 19:59:01 +01:00
Krzysztof Bieganski
97add4d57a
Fix null access on optimized-out fork statements ( #3658 )
...
`V3SchedTiming` currently assumes that if a fork still exists, it must
have statements within it (otherwise it would have been deleted by
`V3Timing`). However, in a case like this:
```
module t;
reg a;
initial fork a = 1; join
endmodule
```
the assignment in the fork is optimized out by `V3Dead` after
`V3Timing`. This leads to `V3SchedTiming` accessing fork's `stmtsp`
pointer, which at this point is null. This patch addresses that issue.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-06 15:38:59 +02:00
Geza Lore
5b742571d3
DFG: run removeVars after CSE
...
This enables removing some more redundant variables.
2022-10-06 09:31:56 +01:00
Geza Lore
a83043d735
DfgPeephole: Rework folding of associative operations
...
Allow constant folding through adjacent nodes of all associative
operations, for example '((a & 2) & 3)' or '(3 & (2 & a))' can now be
folded into '(a & 2)' and '(2 & a)' respectively. Also improve speed of
making associative expression trees right leaning by using rotation of
the existing vertices whenever instead of allocation of new nodes.
2022-10-06 09:10:26 +01:00
Geza Lore
22fcd616aa
DfgPeephole: Further restrict PUSH_REDUCTION_THROUGH_CONCAT
...
Only apply when there is guaranteed to be a subsequent constant folding
and elimination of some of the expression, otherwise this sometimes
interferes with the simplification of concatenations and harms overall
performance.
2022-10-06 09:10:26 +01:00
Krzysztof Bieganski
1a8188e1b4
Fix linker errors in user-facing timing functions ( #3657 )
...
Before this change, a design verilated with `--timing` that does not
actually use timing features would be emitted with `eventsPending` and
`nextTimeSlot` declared in the top class. However, their definitions
would be missing, leading to linker errors during design compilation.
This patch makes Verilator always emit the definitions, which prevents
linker errors. Trying to use `nextTimeSlot` without delays in the design
will result in an error at runtime.
2022-10-05 18:16:05 -04:00
Geza Lore
f87fe4c3b4
DfgPeephole: add constant folding for all integer types
...
Also added a testing only -fno-const-before-dfg option, as otherwise
V3Const eats up a lot of the simple inputs. A lot of the things V3Const
swallows in the simple cases can make it to DFG in complex cases, or DFG
itself can create them during optimization. In any case to save
complexity of testing DFG constant folding, we use this option to turn
off V3Const prior to the DFG passes in the relevant test.
2022-10-05 12:05:40 +01:00
Geza Lore
f23f3ca907
Try to ensure DFG peephole patterns don't grow the graph
...
Some optimizations are only a net win if they help us remove a graph
node (or at least ensure they don't grow the graph), or yields otherwise
special logic, so try to apply them only in these cases.
2022-10-04 18:54:46 +01:00
Geza Lore
965d99f1bc
DFG: Make implementation more similar to AST
...
Use the same style, and reuse the bulk of astgen to generate DfgVertex
related code. In particular allow for easier definition of custom
DfgVertex sub-types that do not directly correspond to an AstNode
sub-type. Also introduces specific names for the fixed arity vertices.
No functional change intended.
2022-10-04 15:49:30 +01:00
Krzysztof Bieganski
56ac054fb2
Internals: Refactor verilated_timing.* ( #3653 ).
...
* Put suspended coroutine source location in a separate struct,
* Have `dump()` always print, wrap calls in `VL_DEBUG_IF`,
* Improve const correctness.
2022-10-03 11:40:30 -04:00
Wilson Snyder
ced82cbac4
Internals: Add some internal coverage exclusions etc. No functional change.
2022-10-03 10:57:37 -04:00
Geza Lore
2fc1746ef5
Tracing: Clear offload buffer pointers when no longer needed
...
These are also used as a marker (when non-nullptr) when creating a
buffer. Reset them when they are not valid to avoid invalid write if a
buffer is created after a close (due to a subsequent re-open).
Fixes #3651 .
2022-10-03 10:50:47 +01:00
Wilson Snyder
10fc1f757c
Internals: cppcheck cleanups. No functional change intended.
2022-10-02 23:04:55 -04:00
Wilson Snyder
90009b9ec7
Commentary: Fix sphinx doc warnings
2022-10-02 16:47:32 -04:00
Wilson Snyder
4367e03e46
Internals: Make VL_UNREACHABLE similar to std::unreachable()
2022-10-02 16:35:45 -04:00
Wilson Snyder
c9634695a7
Fix std::exchange for C++11 compilers
2022-10-02 16:25:11 -04:00
Geza Lore
2a12b052f2
DFG: handle simple always blocks
2022-10-01 16:46:58 +01:00
Geza Lore
84b9502af4
DFG: Add more peephole patterns
2022-10-01 16:46:58 +01:00
Geza Lore
694bdbc130
DFG: Improve .dot dumps slightly
2022-10-01 16:46:58 +01:00
Wilson Snyder
880cac2fdd
Merge branch 'master' into develop-v5
2022-10-01 11:24:55 -04:00
github action
a204b24fcf
Apply 'make format'
2022-10-01 15:06:12 +00:00
Marcel Chang
526e6b9fc7
Add --dump-tree-dot to enable dumping Ast Tree .dot files ( #3636 )
2022-10-01 11:05:33 -04:00
github action
f1ba6cb517
Apply 'make format'
2022-10-01 14:53:40 +00:00
Kanad Kanhere
159cf0429c
Support linting for top module interfaces ( #3635 )
2022-10-01 10:48:37 -04:00
Ryszard Rozak
46b8dca360
Add handling of tristate select/extend ( #3604 )
2022-10-01 10:34:30 -04:00
Wilson Snyder
4db998d357
CI: coverage on 22.04
2022-10-01 10:09:14 -04:00
Wilson Snyder
0b843ada03
devel release
2022-10-01 08:34:43 -04:00
Wilson Snyder
746c7ea8f7
Version bump
2022-10-01 08:28:27 -04:00
Wilson Snyder
5ed882faf2
Fix unused compiler warning when not VL_THREADED.
2022-09-30 23:41:35 -04:00
Wilson Snyder
fa4b10b4d9
Commentary: Changes update
2022-09-30 23:03:26 -04:00
Geza Lore
cc51966ad1
DFG: Remove unconneced variables early
2022-09-30 11:53:03 +01:00
Geza Lore
c9d6344f2f
DFG: Extract cyclic components separately
...
A lot of optimizations in DFG assume a DAG, but the more things are
representable, the more likely it is that a small cyclic sub-graph is
present in an otherwise very large graph that is mostly acyclic. In
order to avoid loosing optimization opportunities, we explicitly extract
the cyclic sub-graphs (which are the strongly connected components +
anything feeing them, up to variable boundaries) and treat them
separately. This enables optimization of the remaining input.
2022-09-30 09:51:10 +01:00
Geza Lore
acebafcbc2
DFG: Partial support for unpacked arrays
...
Representation and Ast / Dfg conversions available, for element-wise
access only. Not much optimization yet (only CSE).
2022-09-29 19:00:45 +01:00
Geza Lore
4a1a2def95
DFG: make variable inlining part of the peephole optimizer
...
This saves some traversals and prepares us to better handle cyclic DFGs.
2022-09-29 18:40:10 +01:00
Geza Lore
09e352ef66
DFG: support hashing of graphs circular through variables
...
No functional change
2022-09-29 18:40:10 +01:00
Geza Lore
17976d7401
DFG: fix REPLACE_EQ_OF_CONST_AND_CONST peephole pattern
2022-09-29 18:40:10 +01:00
Wilson Snyder
f25a9a4c80
examples: Use SC_ZERO_TIME in tracing ( #3646 )
2022-09-28 19:11:00 -04:00
Wilson Snyder
cd2a5771b8
Add --timing to --binary ( #3625 ).
2022-09-28 19:02:23 -04:00
Krzysztof Bieganski
9c2ead90d5
Add custom memory management for verilated classes ( #3595 )
...
This change introduces a custom reference-counting pointer class that
allows creating such pointers from 'this'. This lets us keep the
receiver object around even if all references to it outside of a class
method no longer exist. Useful for coroutine methods, which may outlive
all external references to the object.
The deletion of objects is deferred until the next time slot. This is to
make clearing the triggered flag on named events in classes safe
(otherwise freed memory could be accessed).
2022-09-28 18:54:18 -04:00
Geza Lore
a999c73ce0
Commentary
2022-09-28 14:43:40 +01:00
Wilson Snyder
b92173bf3d
Add --binary option as alias of --main --exe --build ( #3625 ).
2022-09-28 09:04:33 -04:00
github action
91823c41c5
Apply 'make format'
2022-09-28 02:22:05 +00:00
Wilson Snyder
c6bce636ee
Merge branch 'master' into develop-v5
2022-09-27 22:19:04 -04:00
Wilson Snyder
75a70bee6d
Update to clang-format-14 on Ubuntu22.04
2022-09-27 21:47:45 -04:00
Wilson Snyder
1b1907af49
Tests: Rename some tests
2022-09-27 18:42:03 -04:00
Jake Merdich
1b18eee5dc
Tests: Fix CCache test not properly skipped ( #3643 )
...
If the skip condition happens, the rest still runs and it fails. Don't do that.
2022-09-27 09:11:49 -04:00
Ryszard Rozak
4931e48016
Support resolving assignments with equal strengths ( #3637 )
2022-09-26 21:21:37 -04:00
Geza Lore
1b17acdb01
DFG: Support AstSel and AstConcat on LHS of assignments
...
Added DfgVertexVariadic to represent DFG vetices with a varying number
of source operands. Converted DfgVar to be a variadic vertex, with each
driver corresponding to a fixed range of bits in the packed variable.
This allows us to handle AstSel on the LHS of assignments. Also added
support for AstConcat on the LHS by selecting into the RHS as
appropriate.
This improves OpenTitan ST speed by ~13%
2022-09-26 19:54:52 +01:00
Geza Lore
9c1cc5465d
DFG: Support packed structure and union types
2022-09-26 18:31:50 +01:00
Geza Lore
d8b5359fcb
Merge branch 'master' into develop-v5
2022-09-26 14:45:08 +01:00
Geza Lore
f96454adcc
gitignore .gdb_history
2022-09-26 14:43:09 +01:00
Geza Lore
9da012568c
Ensure DFG stats are consistent
2022-09-26 14:38:26 +01:00
Geza Lore
9a20a258f5
Omit AstNode::m_editCount in release build
...
This is only a debugging aid at this point, so compile out of the
release build. This reduces peak memory consumption by 4-5%. We still
keep the global counters to detect the tree have changed, to avoid
unnecessary dumps.
2022-09-25 08:57:33 +01:00
Geza Lore
10796457d2
V3Life: don't depend on AstNode::editCountGbl()
...
No functional change intended.
2022-09-24 20:45:30 +01:00
Geza Lore
78e659a142
Reduce size of FileLine
...
Multiple tricks to reduce the size of class FileLine from 72 to 40
bytes:
- Reduce file name index from 32 to 16 bits. This still allows 64K
unique input files, which is hopefully enough.
- Intern message/warning enable bitset and use a 16-bit index, again
allowing 64K unique sets which is hopefully enough.
- Put the m_waive flag into the sign bit of one of the line numbers.
- Use explicit reference counting to avoid overhead of shared_ptr.
Added assertions to ensure interned data fits within it's index space.
This saves ~5-10% peak memory consumption at no measurable run-time cost
on various designs.
2022-09-24 20:16:21 +01:00
Geza Lore
2f50642ecb
Exclude VL_DEFINE_DEBUG_FUNCTIONS from code coverage
2022-09-23 17:20:24 +01:00
Geza Lore
47bce4157d
Introduce DFG based combinational logic optimizer ( #3527 )
...
Added a new data-flow graph (DFG) based combinational logic optimizer.
The capabilities of this covers a combination of V3Const and V3Gate, but
is also more capable of transforming combinational logic into simplified
forms and more.
This entail adding a new internal representation, `DfgGraph`, and
appropriate `astToDfg` and `dfgToAst` conversion functions. The graph
represents some of the combinational equations (~continuous assignments)
in a module, and for the duration of the DFG passes, it takes over the
role of AstModule. A bulk of the Dfg vertices represent expressions.
These vertex classes, and the corresponding conversions to/from AST are
mostly auto-generated by astgen, together with a DfgVVisitor that can be
used for dynamic dispatch based on vertex (operation) types.
The resulting combinational logic graph (a `DfgGraph`) is then optimized
in various ways. Currently we perform common sub-expression elimination,
variable inlining, and some specific peephole optimizations, but there
is scope for more optimizations in the future using the same
representation. The optimizer is run directly before and after inlining.
The pre inline pass can operate on smaller graphs and hence converges
faster, but still has a chance of substantially reducing the size of the
logic on some designs, making inlining both faster and less memory
intensive. The post inline pass can then optimize across the inlined
module boundaries. No optimization is performed across a module
boundary.
For debugging purposes, each peephole optimization can be disabled
individually via the -fno-dfg-peepnole-<OPT> option, where <OPT> is one
of the optimizations listed in V3DfgPeephole.h, for example
-fno-dfg-peephole-remove-not-not.
The peephole patterns currently implemented were mostly picked based on
the design that inspired this work, and on that design the optimizations
yields ~30% single threaded speedup, and ~50% speedup on 4 threads. As
you can imagine not having to haul around redundant combinational
networks in the rest of the compilation pipeline also helps with memory
consumption, and up to 30% peak memory usage of Verilator was observed
on the same design.
Gains on other arbitrary designs are smaller (and can be improved by
analyzing those designs). For example OpenTitan gains between 1-15%
speedup depending on build type.
2022-09-23 16:46:22 +01:00
Geza Lore
3a8a314566
Merge branch 'master' into develop-v5
2022-09-23 11:21:12 +01:00
Geza Lore
050060b139
Make enum constructors and operators constexpr
2022-09-23 11:10:28 +01:00
Geza Lore
ddb678cc5b
Merge branch 'master' into develop-v5
2022-09-22 17:33:36 +01:00
Geza Lore
63c694f65f
Streamline dump control options
...
- Rename `--dump-treei` option to `--dumpi-tree`, which itself is now a
special case of `--dumpi-<tag>` where tag can be a magic word, or a
filename
- Control dumping via static `dump*()` functions, analogous to `debug()`
- Make dumping independent of the value of `debug()` (so dumping always
works even without the debug flag)
- Add separate `--dumpi-graph` for dumping V3Graphs, which is again a
special case of `--dumpi-<tag>`
- Alias `--dump-<tag>` to `--dumpi-<tag> 3` as before
2022-09-22 17:24:41 +01:00
github action
12093e6939
Apply 'make format'
2022-09-21 19:22:15 +00:00
Geza Lore
9949a6cd17
Generate AstGen::checkTreeiter to enforce Ast op*p use
...
Use astgen to generate a more thorough version of AstNode::checkTree,
which checks that operands are or consistent structure and type, as
described in the @astgen op directives. Also change checkTree to always
run when --debug-check is given.
Fix discovered fallout.
2022-09-21 18:12:11 +01:00
Geza Lore
4600932d8c
Remove unused files
2022-09-21 14:16:20 +01:00
Geza Lore
79ded3bb61
Merge branch 'master' into develop-v5
2022-09-21 14:15:21 +01:00
Geza Lore
95145038b4
Generate AstNode accessors via astgen
...
Introduce the @astgen directives parsed by astgen, currently used for
the generation child node (operand) accessors. Please see the updated
internal documentation for details.
2022-09-21 14:05:27 +01:00
Geza Lore
ce03293128
Generate AstNode accessors via astgen
...
Introduce the @astgen directives parsed by astgen, currently used for
the generation child node (operand) accessors. Please see the updated
internal documentation for details.
2022-09-21 13:56:03 +01:00
Geza Lore
72e7271a14
Merge branch 'master' into develop-v5
2022-09-21 12:19:00 +01:00
Geza Lore
0a8cfb8d2c
Put dump file in TEST_OBJ_DIR
2022-09-21 11:35:03 +01:00
Kamil Rakoczy
0b07679ff2
v3errorEnd: look for instance only when warning is not ignored ( #3632 )
...
This approach reduced total time of V3Undriven stage from 34,2s to 2,5s
in design containing almost 400 000 unused variables.
Signed-off-by: Kamil Rakoczy <[email protected] >
2022-09-21 10:54:23 +01:00
Wilson Snyder
550a5111b7
Commentary
2022-09-20 20:28:43 -04:00
Wilson Snyder
d162619bd3
Merge branch 'master' into develop-v5
2022-09-20 20:06:21 -04:00
Wilson Snyder
5df14627fd
Fix 32-bit build of previous commit
2022-09-20 18:23:44 -04:00
Mariusz Glebocki
fc3ce29845
Improve Verilation memory by reducing V3Number size ( #3521 )
2022-09-20 16:46:47 -04:00
Yu-Sheng Lin
bba800f2d6
Fix calling trace() after open() segfault ( #3610 ) ( #3627 )
2022-09-20 16:45:09 -04:00
Ryszard Rozak
fe2a1e1749
Remove assignments with strengths weaker than strongest non-tristate RHS ( #3629 )
2022-09-19 04:54:20 -04:00
Wilson Snyder
fc4ffd454e
Rename --bin to --build-dep-bin.
2022-09-18 10:32:43 -04:00
Wilson Snyder
8dae4ad93a
Tests: Rename to avoid dash.
2022-09-18 10:19:15 -04:00
Wilson Snyder
8da261f302
Tests: Rename to avoid dash.
2022-09-18 10:19:15 -04:00
Geza Lore
7bc7b5372e
Merge branch 'master' into develop-v5
2022-09-17 16:12:28 +01:00
Geza Lore
7d88e63bab
astgen: generate type specific addNext, remove astNextNull
...
Generate type specific static overloads of Ast<Node>::addNext, which
return the correct sub-type of the 'this' they were invoked on.
Also remove AstNode::addNextNull, which is now only used in the parser,
implement in verilog.y directly as a template function.
2022-09-17 15:05:22 +01:00
Wilson Snyder
a214fd1f78
Internals: Fix constructor syntax in new develop-v5 code
2022-09-17 08:56:41 -04:00
Wilson Snyder
79be097e34
Sort -V env variable output
2022-09-17 08:17:55 -04:00
Wilson Snyder
11b0d36ba2
Merge cleanups from 'develop-v5'. No functional change
2022-09-17 08:17:22 -04:00
Wilson Snyder
1234ee5fd2
Merge branch 'master' into develop-v5
2022-09-17 08:02:25 -04:00
Wilson Snyder
80b73859a2
Commentary: Some fixes from 'develop-v5'
2022-09-17 08:00:40 -04:00
Wilson Snyder
a548a77f26
Merge branch 'develop-v5' into master: Changes file
2022-09-17 07:58:56 -04:00
Wilson Snyder
d6bfb37e6a
Docker: Use 22.04
2022-09-17 07:47:06 -04:00
Geza Lore
af305bf280
Merge branch 'master' into develop-v5
2022-09-16 16:24:36 +01:00
Geza Lore
38a8d7fb2e
Remove redundant 'inline' keywords from definitions
...
Also add checks to t/t_dist_cppstyle
2022-09-16 15:52:25 +01:00
Geza Lore
0c70a0dcbf
Remove redundant 'virtual' keywords from overridden methods
...
'virtual' is redundant when 'override' is present, so keep only
'override'.
Add t/t_dist_cppstyle.pl to check for this.
2022-09-16 15:19:38 +01:00
Geza Lore
d16619fe86
astgen: Explicitly generate AstNode members
...
Generate boilerplate members of AstNode sub-types directly via astgen.
This is in preparation for generating additional members.
2022-09-16 11:18:20 +01:00
Wilson Snyder
ab6e1c2399
Commentary on --main
2022-09-15 20:26:08 -04:00
Wilson Snyder
2dc85a5acd
Internals: enum constructor cleanups. No functional change intended.
2022-09-15 19:58:10 -04:00
Kamil Rakoczy
dbe1348b4c
Tests: Fix earlier commit, add build jobs to stats ( #3623 ) ( #3626 )
2022-09-15 11:29:50 -04:00
Geza Lore
22846df03e
Merge branch 'master' into develop-v5
2022-09-15 14:01:19 +01:00
Wilson Snyder
d74536a4dc
Internals: Cleanup some constructors. No functional change intended.
2022-09-15 08:54:04 -04:00
Kamil Rakoczy
da20da264b
Add --build-jobs, and rework arguments for -j ( #3623 )
2022-09-15 08:28:58 -04:00
Geza Lore
22b9dfb9c9
Split and re-order AstNode definitions ( #3622 )
...
- Move DType representations into V3AstNodeDType.h
- Move AstNodeMath and subclasses into V3AstNodeMath.h
- Move any other AstNode subtypes into V3AstNodeOther.h
- Fix up out-of-order definitions via inline methods and implementations
in V3Inlines.h and V3AstNodes.cpp
- Enforce declaration order of AstNode subtypes via astgen,
which will now fail when definitions are mis-ordered.
2022-09-15 13:10:39 +01:00
Geza Lore
27031ed688
Merge branch 'master' into develop-v5
2022-09-15 10:28:35 +01:00
Wilson Snyder
e43c089ab8
Commentary
2022-09-14 23:26:34 -04:00
Wilson Snyder
d85b909054
Internals: Use std:: for mem and str functions.
2022-09-14 21:10:19 -04:00
Wilson Snyder
75fd71d7e5
Add --main to generate main() C++ (previously was experimental only) ( #3265 ).
2022-09-14 20:18:40 -04:00
Wilson Snyder
9efd64ab98
Commentary
2022-09-14 20:13:28 -04:00
Wilson Snyder
7aa01625d8
Commentary: Changes update
2022-09-14 08:15:42 -04:00
Ryszard Rozak
a3c58d7b70
Support IEEE constant signal strengths ( #3601 ).
2022-09-14 07:39:27 -04:00
Kamil Rakoczy
ae466b1703
Internals: Improve Verilation peak memory usage in V3Subst ( #3512 ).
2022-09-14 07:37:51 -04:00
Geza Lore
2564484429
astgen: Rewrite in a more OOP way, in preparation for extensions
...
Rely less on strings and represent AstNode classes as a 'class Node',
with all associated properties kept together, rather than distributed
over multiple dictionaries or constructed at retrieval time.
No functional change intended.
2022-09-13 21:54:12 +01:00
Kamil Rakoczy
93a044f587
Internals: Rework addFilesp towards parallel emit ( #3620 ). No functional change intended.
2022-09-13 12:15:34 -04:00
Wilson Snyder
81fe35ee2e
Fix typedef'ed class conversion to boolean ( #3616 ).
2022-09-12 18:03:56 -04:00
Geza Lore
08b6bdddf9
Update default --mod-prefix when --prefix is repeated
...
Fixes #3603
2022-09-12 17:25:09 +01:00
Kamil Rakoczy
4d49db48a3
Internals: Remove usage of user1 from EmitCTrace ( #3617 ). No Functional change intended.
2022-09-12 12:00:41 -04:00
Kamil Rakoczy
9b2266f68c
Internals: Remove usage of global state in V3EmitCFunc ( #3615 ). No functional change intended.
2022-09-12 11:59:14 -04:00
Wilson Snyder
752f425025
Tests: Process/Semaphore/Mailbox testing (all fail until supported)
2022-09-11 13:05:24 -04:00
Gustav Svensk
47262cd4ec
Fix arguments in non-static method call ( #3547 ) ( #3582 )
2022-09-11 12:33:31 -04:00
Wilson Snyder
47e64535d6
Commentary
2022-09-11 12:25:44 -04:00
Wilson Snyder
45d622e4bc
Github actions: Avoid cpan cert expirations.
2022-09-08 11:06:44 -04:00
Wilson Snyder
249feaae7c
Tests: Remove lint-py, need ci package.
2022-09-07 22:59:32 -04:00
Wilson Snyder
9a27004ae5
Github actions: Avoid cpan cert expirations.
2022-09-07 22:49:09 -04:00
Wilson Snyder
42283150d7
Actions: Use 22.04 for contrib action
2022-09-07 22:13:02 -04:00
Wilson Snyder
5a1bcf9794
Tests: Add lint-py checker
2022-09-07 22:04:57 -04:00
Wilson Snyder
361cef4633
Fix pylint warnings.
2022-09-07 21:48:52 -04:00
Geza Lore
90ab746a42
Make it possible to parallelize ico and act scheduling sections
...
Small fixup patch so the 'ico' and 'act' scheduling sections could be
ordered as multi-threaded. However, we still only order these single
threaded at the moment (but switching them to multi-threaded now works).
2022-09-06 16:01:13 +01:00
github action
e94cdcf29c
Apply 'make format'
2022-09-05 22:43:09 +00:00
Mladen Slijepcevic
1af046986d
Fix thread saftey in SystemC VL_ASSIGN_SBW/WSB ( #3494 ) ( #3513 ).
2022-09-05 18:42:12 -04:00
Wilson Snyder
1c9263a25b
Commentary
2022-09-05 15:20:08 -04:00
Geza Lore
fd6275a62b
Merge branch 'master' into develop-v5
2022-09-05 17:03:43 +01:00
Krzysztof Bieganski
6b6790fc50
Preserve return type of AstNode::addNext via templating ( #3597 )
...
No functional change intended.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 16:56:57 +01:00
Krzysztof Bieganski
fb931087ab
Add stats tracking for V3Undriven. ( #3600 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 16:20:38 +01:00
Krzysztof Bieganski
a2e1b32a1c
Fix inlining of forks ( #3594 )
...
Before this change, some forked processes were being inlined in
`V3Timing` because they contained no `CAwait`s. This only works under
the assumption that no `CAwait`s will be added there later, which is not
true, as a function called by a forked process could be turned into a
coroutine later. The call would be wrapped in a new `CAwait`, but the
process itself would have already been inlined at this point.
This commit moves the inlining to `transformForks` in `V3SchedTiming`,
which is called at a point when all `CAwait`s are already in place.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 15:19:19 +01:00
Krzysztof Bieganski
54f89bce42
Move SenExprBuilder to a header. ( #3598 )
...
No functional change intended.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 15:17:51 +01:00
Krzysztof Bieganski
8b19d02e3b
Fix co_await VlNow{} being added too many times ( #3596 )
...
(or not at all)
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 11:46:34 +01:00
Krzysztof Bieganski
da7ad35577
Fix fork debug output ( #3593 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 11:27:24 +01:00
Geza Lore
937e893b6d
Build verilator_bin with -O3 ( #3592 )
...
This is consistently a few percent faster.
2022-09-03 22:10:07 +01:00
Geza Lore
d42a2d6494
Fix V3Gate crash on circular logic
...
The recent patch to defer substitutions on V3Gate crashes on circular
logic that has cycle length >= 3 with all inlineable signals (cycle
length 2 is detected correctly and is not inlined). Fix by stopping
recursion at the loop-back edge.
Fixes #3543
2022-09-02 19:58:58 +01:00
Geza Lore
8e8f4b1e5c
Remove AstVarScope::valuep() and related code
...
This is detritus from when V3TraceDecl used to run after V3Gate, today
V3TraceDecl runs before V3Gate and this value has no function at all.
No functional change intended.
2022-09-02 16:44:13 +01:00
Geza Lore
298f71f2b1
Merge branch 'master' into develop-v5
2022-09-02 12:19:35 +01:00
Geza Lore
2ba39b25f1
Replace dynamic_casts with static_casts
...
dynamic_cast is not free. Replace obvious instances (where the result is
unconditionally dereferenced) with static_cast in contexts with
performance implications.
2022-09-02 12:08:34 +01:00
Geza Lore
5c828b7e60
V3Partition: use V3Lists to keep track of SiblingMCs
...
Replace std::set<SiblingMC> with V3Lists to keep track of SiblingMCs
associated with MTasks, use a std::set<LogicMTask*> for ensuring
uniqueness. This yields a bit more speed in PartContraction.
2022-09-01 19:40:44 +01:00
Geza Lore
4640bea31a
V3Partition: More improvements for PartFixDataHazards
...
- Remove redundant loop through the MTask graph
- Gather variables directly from the OrderGraph, which is simpler and
faster.
2022-09-01 16:30:04 +01:00
Geza Lore
875361d7ce
V3Partition: Reduce working set size of PartContraction ( #3587 )
...
This yields an additional 25% speedup of MT scheduling.
2022-09-01 16:29:40 +01:00
Wilson Snyder
849bb5590a
Merge branch 'master' into develop-v5
2022-08-31 19:51:07 -04:00
Wilson Snyder
8d0c06e570
devel release
2022-08-31 19:49:24 -04:00
Wilson Snyder
5b2fbf4f37
Version bump
2022-08-31 19:46:45 -04:00
Wilson Snyder
592dab2bdb
Commentary: Changes update
2022-08-31 19:27:43 -04:00
Wilson Snyder
51daa64e9a
Fix --hierarchical with order-based pin connections ( #3585 ).
2022-08-31 18:12:21 -04:00
Geza Lore
c0f9b0d8f6
V3Partition: Refactor initialization of MTask dependencies
...
No functional change
2022-08-31 16:54:04 +01:00
Geza Lore
505bba14eb
Improve PartFixDataHazards for clarity and speed.
...
- Use modern C++
- Implement OrderLogicVertex->LogicMTask map with
OrderLogicVertex::userp(), insteas of std::unordered_map
- Simplify data structures
- Simplify code and assert properties
No functional change.
2022-08-31 16:52:05 +01:00
Geza Lore
ebbe24966c
Remove unnecessary virtual methods
2022-08-31 16:52:05 +01:00
Geza Lore
881c3f6e40
Minor optimization of PartContraction
...
Remove rarely used debug code from initialization loop.
2022-08-31 16:52:05 +01:00
Geza Lore
546aeab9f2
V3Order: Minor refactoring for clarity
...
Refactor ProcessMoveBuildGraph utilizing the fact that OrderGraph is a
bipartite graph, also remove unnecessary unordered_map and distribute
variable domain map. No functional change.
2022-08-31 16:52:05 +01:00
Geza Lore
8de21e9bb7
Document and ensure OrderGraph is bipartite
...
Minor refactoring and documentation. No functional change.
2022-08-31 16:52:05 +01:00
Geza Lore
2ecda74471
Merge branch 'master' into develop-v5
2022-08-31 10:45:18 +01:00
Aleksander Kiryk
2136afde6b
Support negated properties ( #3572 )
2022-08-30 06:33:42 -04:00
Wilson Snyder
ea55db7286
Internals: Cleanup some string constructors. No functional change.
2022-08-30 01:02:39 -04:00
Wilson Snyder
819e8741cc
Merge branch 'master' into develop-v5
2022-08-30 00:20:21 -04:00
Wilson Snyder
6a5f77b278
Internals: Cleanup some string/model constructors. No functional change.
2022-08-29 23:50:32 -04:00
Wilson Snyder
8658a0d7dc
Internals: Constructor format update. No functional change.
2022-08-29 23:05:52 -04:00
Wilson Snyder
c335aad25f
Fix --hierarchical with order-based pin connections ( #3583 ).
2022-08-29 22:49:19 -04:00
Wilson Snyder
9d9d647c1f
Fix indentation of --protect import function SV code.
2022-08-29 22:28:02 -04:00
Wilson Snyder
d47a37fb76
Internals: Cleanup constructors etc. No functional change.
2022-08-29 22:17:27 -04:00
Aleksander Kiryk
24ec84851a
Support $sampled ( #3569 )
2022-08-29 08:39:41 -04:00
Arkadiusz Kozdra
0a3a15a66e
Support class parameters ( #2231 ) ( #3541 )
2022-08-28 10:24:55 -04:00
Wilson Snyder
2358ced061
Rename tracing rolloverSize and add test ( #3570 ).
2022-08-28 08:25:02 -04:00
Krzysztof Bieganski
2af5304884
Fix tracing of slow coroutines ( #3576 part) ( #3579 )
2022-08-26 05:11:44 -05:00
Varun Koyyalagunta
5869fdf7f6
Fix $dump systemtask with --output-split-cfuncs ( #3495 ) ( #3497 )
2022-08-25 18:29:11 -05:00
Krzysztof Bieganski
1a1d2ecfd9
Enable tracing in generated main ( #3578 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-08-25 14:55:37 +01:00
Geza Lore
5c356a4680
Merge branch 'master' into develop-v5
2022-08-22 14:32:06 +01:00
Krzysztof Bieganski
39af5d020e
Timing support ( #3363 )
...
Adds timing support to Verilator. It makes it possible to use delays,
event controls within processes (not just at the start), wait
statements, and forks.
Building a design with those constructs requires a compiler that
supports C++20 coroutines (GCC 10, Clang 5).
The basic idea is to have processes and tasks with delays/event controls
implemented as C++20 coroutines. This allows us to suspend and resume
them at any time.
There are five main runtime classes responsible for managing suspended
coroutines:
* `VlCoroutineHandle`, a wrapper over C++20's `std::coroutine_handle`
with move semantics and automatic cleanup.
* `VlDelayScheduler`, for coroutines suspended by delays. It resumes
them at a proper simulation time.
* `VlTriggerScheduler`, for coroutines suspended by event controls. It
resumes them if its corresponding trigger was set.
* `VlForkSync`, used for syncing `fork..join` and `fork..join_any`
blocks.
* `VlCoroutine`, the return type of all verilated coroutines. It allows
for suspending a stack of coroutines (normally, C++ coroutines are
stackless).
There is a new visitor in `V3Timing.cpp` which:
* scales delays according to the timescale,
* simplifies intra-assignment timing controls and net delays into
regular timing controls and assignments,
* simplifies wait statements into loops with event controls,
* marks processes and tasks with timing controls in them as
suspendable,
* creates delay, trigger scheduler, and fork sync variables,
* transforms timing controls and fork joins into C++ awaits
There are new functions in `V3SchedTiming.cpp` (used by `V3Sched.cpp`)
that integrate static scheduling with timing. This involves providing
external domains for variables, so that the necessary combinational
logic gets triggered after coroutine resumption, as well as statements
that need to be injected into the design eval function to perform this
resumption at the correct time.
There is also a function that transforms forked processes into separate
functions.
See the comments in `verilated_timing.h`, `verilated_timing.cpp`,
`V3Timing.cpp`, and `V3SchedTiming.cpp`, as well as the internals
documentation for more details.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-08-22 13:26:32 +01:00
Geza Lore
9ac64d0b92
Improve performance of MTask coarsening
...
Various optimizations to speed up MTasks coarsening (which is the long
pole in the multi-threaded scheduling of very large designs).
The biggest impact ones:
- Use efficient hand written Pairing Heaps for implementing priority
queues and the scoreboard, instead of the old SortByValueMap. This
helps us avoid having to sort a lot of merge candidates that we will
never actually consider and helps a lot in performance.
- Remove unnecessary associative containers and store data structures
(the heap nodes in particular) directly in the object they relate to.
This eliminates a huge amount of lookups and helps a lot in
performance.
- Distribute storage for SiblingMC instances into the LogicMTask
instances, and combine with the sibling maps. This again eliminates
hash table lookups and makes storage structures smaller.
- Remove some now bidirectional edge maps, keep only the forward map.
There are also some other smaller optimizations:
- Replaced more unnecessary dynamic_casts with static_casts
- Templated some functions/classes to reduce the number of static
branches in loops.
- Improves sorting of edges for sibling candidate creation
- Various micro-optimizations here and there
This speeds up MTask coarsening by 3.8x on a large design, which
translates to a 2.5x speedup of the ordering pass in multi-threaded
mode. (Combined with the earlier optimizations, ordering is now 3x
faster.)
Due to the elimination of a lot of the auxiliary data structures, and
ensuring a minimal size for the necessary ones, memory consumption of
the MTask coarsening is also reduced (measured up to 4.4x reduction
though the accuracy of this is low).
The algorithm is identical except for minor alterations of the order
some candidates are added or removed, this can cause perturbation in the
output due to tied scores being broken based on IDs.
2022-08-20 21:18:50 +01:00
Wilson Snyder
7cc89b8b42
Merge branch 'master' into develop-v5
2022-08-20 14:19:45 -04:00
Wilson Snyder
c6607724cb
Fix clang warning.
2022-08-20 14:19:00 -04:00
Wilson Snyder
ebb37b0156
Merge branch 'master' into develop-v5
2022-08-20 14:02:09 -04:00
Wilson Snyder
90dc04cf93
Add --future0 and --future1 options.
2022-08-20 14:01:13 -04:00
Krzysztof Bieganski
10cf492946
Add support for expressions in event controls ( #3550 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-08-19 20:18:38 +02:00
Geza Lore
4d81eb021d
Revert "Improve performance of MTask coarsening"
...
This reverts commit 83475008d9 .
2022-08-19 18:03:45 +01:00
Geza Lore
83475008d9
Improve performance of MTask coarsening
...
Various optimizations to speed up MTasks coarsening (which is the long
pole in the multi-threaded scheduling of very large designs).
The biggest impact ones:
- Use efficient hand written Pairing Heaps for implementing priority
queues and the scoreboard, instead of the old SortByValueMap. This
helps us avoid having to sort a lot of merge candidates that we will
never actually consider and helps a lot in performance.
- Remove unnecessary associative containers and store data structures
(the heap nodes in particular) directly in the object they relate to.
This eliminates a huge amount of lookups and helps a lot in
performance.
- Distribute storage for SiblingMC instances into the LogicMTask
instances, and combine with the sibling maps. This again eliminates
hash table lookups and makes storage structures smaller.
- Remove some now bidirectional edge maps, keep only the forward map.
There are also some other smaller optimizations:
- Replaced more unnecessary dynamic_casts with static_casts
- Templated some functions/classes to reduce the number of static
branches in loops.
- Improves sorting of edges for sibling candidate creation
- Various micro-optimizations here and there
This speeds up MTask coarsening by 3.8x on a large design, which
translates to a 2.5x speedup of the ordering pass in multi-threaded
mode. (Combined with the earlier optimizations, ordering is now 3x
faster.)
Due to the elimination of a lot of the auxiliary data structures, and
ensuring a minimal size for the necessary ones, memory consumption of
the MTask coarsening is also reduced (measured up to 4.4x reduction
though the accuracy of this is low).
The algorithm is identical except for minor alterations of the order
some candidates are added or removed, this can cause perturbation in the
output due to tied scores being broken based on IDs.
2022-08-19 16:59:20 +01:00
Geza Lore
03ac7ad730
Make PartPropagateCp specific to the MTask graph
...
While keeping the client code abstract in PartPropagateCp is nice for
testing, there is performance to be had removing the abstraction. As
this code dominates in scheduling large designs, we eliminate the
abstraction and re-work the testing to use the actual LogicMTask and
MTaskEdge graph types. No functional change intended.
2022-08-19 14:06:11 +01:00
Geza Lore
cd50949a7e
Reuse MTaskEdge instances in MT scheduling
...
Instead of deleting then re-allocating MTaskEdge instances when merging
two MTasks, just redirect the edged of the donor MTask to the recipient
MTask. This is both faster as it avoids an allocation and a deletion,
together with one update of the sibling maps, and also makes the
algorithm more stable due to MergeCandidate IDs being stable and
allocated up front for all MTaskEdges, before any SiblingMCs are
allocated.
Perturbations in output are expected as the IDs used to break ties
between merge candidates with equal costs are not updated when
redirecting an edge (on purpose). The relinking of only one end of the
graph edges also perturbs the order in which they are enumerated, which
does change candidate opportunities when the number of edges is larger
than PART_SIBLING_EDGE_LIMIT. Confirmed output is identical when
IDs are updated and edges are updated to appear in their original order.
2022-08-19 14:06:11 +01:00
Geza Lore
f0040c7b9a
Remove reliance on pointer comparison in MT scheduling
...
The critical path propagation used to rely on a pointer comparison to
break equal scoring critical path updates. Use the corresponding mtask
ids instead, which is deterministic across invocations.
2022-08-19 14:06:11 +01:00
Geza Lore
f8a0389e73
Do not use stepCost when gathering sibling merge candidates
...
siblingPairFromRelatives gathers neighbours of a vertex, and sorts them.
It then takes the N best nodes, and creates sibling merge candidates
from them. We now use the unadjusted cost instead of the step cost of
the vertices when sorting. This is both faster as we need not do the
log-space rounding to compute stepCost, and will also make similar but
yet cheaper nodes appear closer to the front as we don't lose precision
in rounding, hence they are more likely to be entered as merge
candidates. Note that when creating the merge candidate, we still use
the stepCost, so it's purpose of reducing the propagation of critical
path updates is maintained in full. In summary, this should make both
Verilator and the generated model very slightly faster, at least in
theory, and I have observed minor improvement in places.
2022-08-19 14:06:11 +01:00
Geza Lore
b436794773
Add specialized GraphStreamUnordered
...
GraphStreamUnordered used to be GraphStream<std::less<const
V3GraphVertex*>>, but a lot of performance improvements can be had by a
specialized implementation, so added a highly optimized one. This helps
a lot with --debug-partition.
2022-08-19 14:06:11 +01:00
Geza Lore
1404319b28
Merge branch 'master' into develop-v5
2022-08-19 13:39:44 +01:00
Geza Lore
90d22cbec6
Fix AstNode::exists return type
2022-08-19 13:22:06 +01:00
Krzysztof Bieganski
33e2acfe61
Fix AstNode::forall return type ( #3559 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-08-19 12:33:17 +01:00
Ryszard Rozak
db5fdfb0ee
Fix === with some tristate constants ( #3551 ).
2022-08-18 07:03:05 -04:00
Krzysztof Bieganski
951cd73fe0
Handle MemberSel in V3EmitV.cpp ( #3555 )
2022-08-18 06:33:45 -04:00
Arkadiusz Kozdra
0eeb40b975
Fix converting subclasses to string ( #3552 )
2022-08-17 18:08:43 -04:00
Wilson Snyder
93272c13fd
Tests: Confirm fixed ( #181 )
2022-08-15 22:17:36 -04:00
Wilson Snyder
43abaeb055
Tests: Confirm fixed ( #485 )
2022-08-15 22:17:17 -04:00
Wilson Snyder
18b9e661c9
Tests: Confirm fixed ( #446 )
2022-08-15 22:17:09 -04:00
Wilson Snyder
f435d96241
Fix case statement comparing string literal ( #3544 ).
2022-08-15 21:56:09 -04:00
github action
d32e3f042f
Apply 'make format'
2022-08-12 10:56:12 +00:00
Mostafa Gamal
df5f95a5bd
Fix nested default assignment for struct pattern ( #3511 ) ( #3524 )
2022-08-12 06:55:07 -04:00
Drew Ranck
b0c475205b
Fix void-cast queue pop_front or pop_back ( #3542 ) ( #3364 )
...
Fix compile error for queue method usage, if it is the
first statement in a block of code, and the return
value is not used. Example:
> if (foo)
> void'(bar.pop_front());
2022-08-12 06:51:25 -04:00
Wilson Snyder
1e2219347e
Internals: Cleanup ifdef, move up not under compilver version ifdef
2022-08-11 17:41:43 -04:00
Wilson Snyder
cbe1b8e266
Fix segfault exporting non-existant package ( #3535 ).
2022-08-08 17:53:50 -04:00
Mariusz Glebocki
2b12fe5773
Internals: Construct V3Number with correct type instead of changing it manually. ( #3529 )
2022-08-08 08:17:02 -04:00
Geza Lore
a4fd6d38fb
Add operator != to VlWide
...
This is required by VlUnpacked::neq
2022-08-07 13:13:28 +01:00
Yutetsu TAKATSUKASA
d20f22beb1
Fix tristate logic when reading inout port in a module #3399 ( #3523 )
...
* Tests: Add a test to reproduce #3399
* Fix #3399 . When reading an inout port in a module, it should refer the
original inout port, not the generated MODTEMP.
2022-08-07 21:12:57 +09:00
Wilson Snyder
f4fe10844b
Tests: Fix t_flag_help.pl ( #3532 ).
2022-08-07 04:57:59 -04:00
Mariusz Glebocki
122e89ffde
Fix V3Number::isMsbXZ(). ( #3530 )
2022-08-05 19:12:52 +01:00
Geza Lore
c266739e9f
Merge branch 'master' into develop-v5
2022-08-05 12:17:57 +01:00
Geza Lore
96a4b3e5a5
Update clang-format config and apply
...
- Regroup and sort #include directives (like we used to, but automatic)
- Set AlwaysBreakTemplateDeclarations to true
2022-08-05 12:00:24 +01:00
Geza Lore
7403226a97
Merge branch 'master' into develop-v5
2022-08-04 10:03:38 +01:00
Geza Lore
fac8e76923
Rework SortByValueMap for better performance
...
Keep a single std::set of key/value pairs, and a single unordered_map
from key to iterators into the set. Also improve some of the accessing
mechanisms using modern C++. This speeds up multi-threaded ordering by
about 10%.
2022-08-03 21:17:02 +01:00
Geza Lore
b864f5f5ba
V3Partition: use static_cast with LogicMTaskVertex
...
dynamic_cast is not free, and the mtask graph contains only
LogicMTaskVertex vertices, use static_cast instead for some speedup.
2022-08-03 17:05:01 +01:00
Geza Lore
f9f66d787e
Fix integer overflow in V3Unroll ( #3451 )
2022-08-03 09:41:30 +01:00
Geza Lore
bd211c87aa
astgen: split 'visit' method declarations from definitions
...
Add definitions to V3Ast.cpp, and use static_cast.
This fixes a lot of clang-tidy noise.
2022-08-02 17:53:19 +01:00
Geza Lore
6c33e6e889
Tell clang-tidy .h files are C++ (not C) headers
2022-08-02 17:53:19 +01:00
Geza Lore
6fc25dae9e
Fix clang-tidy warnings ( #3522 )
2022-08-02 15:58:48 +01:00
Kamil Rakoczy
cfb6fd8b34
Reduce max RSS usage ( #3483 )
...
By constant folding nodes earlier in V3Expand, we can save some max RSS on large designs.
2022-08-02 13:36:14 +01:00
Geza Lore
39d1a62f9e
Fix change detection on unpacked arrays
...
Expand array assignment when creating the trigger, as V3Expand might
mangle it otherwise.
2022-08-02 13:01:41 +01:00
Geza Lore
ba66fa7200
Merge branch 'master' into develop-v5
2022-08-02 11:16:35 +01:00
Geza Lore
cb60663d49
V3Gate: Defer substitutions until required as well
...
Similarly to the earlier patch that defers constant folding on optimized
logic, now we also defer the variable substitutions as well. This again
eliminates a lot of traversals, and yields another ~10x speedup of V3Gate
on a design where V3Gate used to dominate while producing identical
results.
2022-08-01 12:54:41 +01:00
Geza Lore
0d2bf23d82
V3Gate: Defer constant folding until required
...
Rather than constant folding each logic block after every substitution,
only constant fold updated blocks when re-analysed, or at the end. This
removes a lot of invocations of V3Const on large blocks that can be
optimized well, and should yield the same result.
This speeds up V3Gate by ~4x on a design where V3Gate dominates.
2022-07-31 20:42:04 +01:00
Geza Lore
682a60e325
Cleanup V3Gate, no functional change
2022-07-31 20:07:54 +01:00
Geza Lore
2ab6272cc7
Use AstNode::foreach in V3Gate
...
This yields a little speedup.
2022-07-31 20:05:25 +01:00
Geza Lore
152a6cd886
Improve AstNode::foreach (also exists and forall)
...
Speed improvements:
- Use a direct, recursion-free implementation
- Improve pre-fetching
Functionality:
- Support remove/replace of currently iterated node
2022-07-31 19:07:32 +01:00
Wilson Snyder
3c54d5df70
Merge branch 'master' into develop-v5
2022-07-30 14:42:51 -04:00
Wilson Snyder
f91793e931
Revert - SC overrides cause non-override clang error.
2022-07-30 13:53:54 -04:00
Wilson Snyder
12925cd8b0
Internals: clang-tidy cleanups. No functional change intended.
2022-07-30 12:49:30 -04:00
Wilson Snyder
daac7cb90d
Merge branch 'master' into develop-v5
2022-07-30 12:09:05 -04:00
Wilson Snyder
a2d26b45bb
Internals: Fix some clang-tidy issues. No functional change intended.
2022-07-30 11:54:28 -04:00
Wilson Snyder
dce8f3d25d
Internals: Spacing from develop-v5. No functional change.
2022-07-30 11:54:28 -04:00
Geza Lore
38e5b6c1ad
Replace __gcov_flush with __gcov_dump
...
__gcov_flush was a private function and was removed from later GCC
versions (at least from 11.2.0, possibly earlier). Replace with the
documented public __gcov_dump.
2022-07-30 16:02:03 +01:00
Wilson Snyder
4859f5e1fa
Merge branch 'master' into develop-v5
2022-07-30 10:26:16 -04:00
Wilson Snyder
b9d7819faa
Internals: Fix some cppcheck issues. Some dump functions fixed.
2022-07-30 10:01:39 -04:00
Geza Lore
ad2fbfe62d
Merge branch 'master' into develop-v5
2022-07-29 12:04:24 +01:00
Yutetsu TAKATSUKASA
1f9323d086
Set correct dtype in replaceShiftSame() ( #3520 )
...
* Tests: Add a test to reproduce bug3399
* Fix3399. Set the correct dtype in replaceShiftSame().
* Tests: update stats.
* Update Changes
2022-07-29 07:05:04 +09:00
Geza Lore
574dbfded1
V3MergeCond: Fix incorrect merge of assignments to the condition
2022-07-28 15:50:02 +01:00
Wilson Snyder
2a87387eb3
Documentation fixes ( #3514 )
2022-07-28 08:41:01 -04:00
Geza Lore
a5ddd10e31
Tests: compare VCD files both ways
...
vcddiff is a bit broken, and sometimes 'vcddiff a b' fails while the
files are indeed equivalent. There is a chance however that 'vcddif b a'
will succeed in this case, so compare trace files both ways when
checking test results and claim success if vcddiff succeeds in at least
one direction.
2022-07-27 10:48:02 +01:00
github action
e871cd8a44
Apply 'make format'
2022-07-25 21:47:29 +00:00
Mostafa Gamal
7b431b37c7
Fix struct pattern assignment ( #2328 ) ( #3517 ).
2022-07-25 17:46:22 -04:00
Gustav Svensk
eeef5ab4de
Fix sformat string incorrectly cleared ( #3515 ) ( #3519 ).
2022-07-25 17:36:34 +02:00
Geza Lore
ac4ec87942
Respect clang's default -fbracket-depth by default
...
Set default value of --comp-limit-parens to 240, to respect default
maximum nesting of parentheses in clang (which is controlled by
-fbracket-depth and defaults to 256). For code generation consistency,
also use the same default with gcc.
2022-07-25 12:59:26 +01:00
Geza Lore
290c2e0388
Mark FileLine::v3errorEndFatal as noreturn
2022-07-25 12:51:02 +01:00
Geza Lore
89924bda51
Always type '$clog2' as signed 32
2022-07-25 12:48:13 +01:00
Yutetsu TAKATSUKASA
60eab3eb8c
Fix wrong result of bit op tree optimization #3509 ( #3516 )
...
* Tests: Add a test to reproduce #3509
* Tests: Compile without tautological-compare check because bit op tree optimization is disabled in the test.
* Internals: Dedup code. No functional change is intended.
* Fix #3509 .
"2'b10 == (2'b11 & {1'b0, val[0]})" and "2'b10 != (2'b11 & {1'b0, val[0]})" were
wrongly optimized to "!val[0]" and "val[0]" respectively.
Now properly optimize them to 1'b0 and 1'b1.
* Commentary
* Commentary: Update Changes
2022-07-24 19:54:37 +09:00
Geza Lore
386401da60
Merge branch 'master' into develop-v5
2022-07-22 15:09:20 +01:00
Geza Lore
31abe537a0
Fix DPI export trigger sensitivity in 'nba'
...
Fixes #3508
2022-07-21 17:43:03 +01:00
Geza Lore
e0b61ceabd
Remove legacy #ifdef SYSTEMC_64BIT_PATCHES
...
These days this is always false, see #3505
2022-07-21 15:01:17 +01:00
Geza Lore
f9ecbdc70b
Merge branch 'master' into develop-v5
2022-07-21 09:56:14 +01:00
Geza Lore
30e3edb81d
Remove deprecated and unused timescale override defines
...
These have been 'deprecated' for 2 years and are otherwise unused except
for using a temporary placeholder value, which I have inlined with the
default value.
Also remove the now VL_TIME_STR_CONVERT utility function (and
corresponding unit tests), which have no references in any project on
GitHub.
2022-07-20 14:06:09 +01:00
Arkadiusz Kozdra
542e324869
Wildcard index type support for associative arrays ( #3501 ).
...
Associative arrays that specify a wildcard index type may be indexed by
integral expressions of any size, with leading zeros removed
automatically. A natural representation for such expressions is a
string, especially that the standard explicitly specifies automatic
casts from string indices to bit vectors of equivalent size.
The automatic cast part is done implicitly by the existing type system.
A simpler way to just make this work would be to convert wildcard index
type to a string type directly in the parser code, but several new AST
classes are needed to make sure illegal method calls are detected.
The verilated data structure implementation is reused, because there is
no need for differentiating the behavior on C++ side.
2022-07-20 15:01:36 +02:00
Geza Lore
1c5e5704f5
Fix iteration fixup in AstNode::addHereThisAsNext
...
Previous version broke verialor_ext_tests due to iteration order
mismatch after 3fc8249429
2022-07-20 13:08:51 +01:00
Geza Lore
1d400dd98c
Configure tracing at run-time, instead of compile time ( #3504 )
...
All remaining use of conditional compilation in the tracing
implementation of the run-time library are replaced with the use of
VerilatedModel::traceConfig, and is now done at run-time.
2022-07-20 11:27:10 +01:00
Geza Lore
a4ed3c2086
Make parallel tracing switchable at run-time
2022-07-19 17:13:13 +01:00
Geza Lore
efb5caad22
Improve robustness of trace configuration
...
Always fail if adding a model to a trace file that has already executed
a dump. We used to do this before as well, though in a less robust way.
We will be relying on this property more in the future, so improve the
check.
2022-07-19 14:16:08 +01:00
Geza Lore
3a002b6cf2
Remove VerilatedVcd::m_evcd and related dead code.
...
The legacy code that was using this was removed earlier, and m_evcd was
constant false, so removed.
2022-07-19 13:58:18 +01:00
Geza Lore
f8b7981be4
Make use of FST writer thread switchable at run-time.
...
Always build the FST libray with -DFST_WRITER_PARALLEL, iff VL_THREADED.
This supports run-time enablement of the FST writer thread, and has no
measurable performance impact on single threaded tracing but simplifies
the library build.
Note: the actual choice of using the fst writer thread is still compile
time, but can now be made run-time easily.
2022-07-19 13:48:03 +01:00
Geza Lore
b55ee79d86
Fix typo
2022-07-19 12:36:21 +01:00
Geza Lore
af70db88db
Remove unused method
2022-07-19 11:32:16 +01:00
Geza Lore
7ef033f876
Ensure generated Makefile for hierarchical build is stable.
...
Avoid iterating unordered_map. Iterate sorted blocks instead.
2022-07-19 11:32:01 +01:00
Geza Lore
db59c07f27
Implement trace offloading with fewer ifdefs
...
Step towards a proper run-time library. Reduce the amount of ifdefs in
the implementation of offloaded tracing. There are still a very small
number of ifdefs left, which will need more careful changes in order to
keep user API compatibility.
2022-07-19 11:31:35 +01:00
Geza Lore
9085e34d70
Pass VerilatedModel at trace registration time
2022-07-19 11:00:09 +01:00
Arkadiusz Kozdra
0dfa7d3af5
Internals: const-qualify findDType function. No functional change. ( #3502 )
2022-07-18 18:58:55 +02:00
Geza Lore
c28bf9ce24
Fix change detection over unpacked arrays.
2022-07-18 12:25:22 +01:00
Geza Lore
5a1f1796d7
Fix t/t_public_{clk,src}.pl after merge of master
2022-07-15 16:48:22 +01:00
Geza Lore
ffc95fcf0e
Merge branch 'master' into develop-v5
2022-07-15 16:48:14 +01:00
Todd Strader
b0e796ca83
Public combo propagation issues ( #2905 )
2022-07-15 11:44:32 -04:00
Geza Lore
3773e2ef95
Simplify primary input checks
2022-07-15 16:18:41 +01:00
Geza Lore
00c1f67c57
Make trigger dumping functions always Slow code
2022-07-14 16:28:09 +01:00
Geza Lore
3f19ba1554
Improve handling of extra trigges in V3Sched.
...
Add utility class for allocation, and add human readable text to debug
code.
2022-07-14 16:06:15 +01:00
Geza Lore
f37cc2353d
Fix standard library incldues
2022-07-14 15:49:00 +01:00
Geza Lore
6a7bda6910
Correctly schedule combinational logic driven from DPI exports.
...
Fixes #3429 .
2022-07-14 15:35:49 +01:00
Geza Lore
ff1b9930fc
Handle multiple external domains in V3Order
...
Make the external domains provider of ordering populate an output
vector, which then allows us to add multiple external sensitivities to
combinational logic.
2022-07-14 11:09:40 +01:00
Geza Lore
582da6df9a
Merge branch 'master' into develop-v5
2022-07-14 10:08:52 +01:00
Geza Lore
3bd830eacf
Minor clean up of initialization
2022-07-13 18:24:48 +01:00
Geza Lore
f4efcbde5c
Remove simple use of static data from V3OutFormatter::indentSpaces
2022-07-13 16:15:21 +01:00
Geza Lore
658819bb71
Trivial static const -> constexpr
2022-07-13 16:01:03 +01:00
Geza Lore
3fc8249429
Use AstNode::addHereThisAsNext in a few places
2022-07-13 13:57:00 +01:00
Geza Lore
e0a38ce2c2
Remove unnecessary AstNode::clearIter()
2022-07-13 13:57:00 +01:00
Geza Lore
178e1789b5
Make AstNode::addHereThisAsNext always O(1)
...
Using unlinkFrBackWithNext is O(n) in the size of the list if unlinking
from the middle, so addHereThisAsNext also had this complexity. This
patch implements addHereThisAsNext directly, which is always O(1).
2022-07-13 12:13:40 +01:00
William D. Jones
108c900387
Fix unique_ptr memory header for MinGW64 ( #3493 ).
2022-07-13 06:38:03 -04:00
Wilson Snyder
63507e8e29
Internals: Favor UASSERT_OBJ when have object.
2022-07-12 18:02:57 -04:00
Geza Lore
87f1e06c41
Small algorithmic improvement of PartContraction::siblingPairFromRelatives
...
Use std::partial_sort for the non-exhaustive case. This is O(n) instead
of O(n*log(n)) in the size of the candidate list being sorted. (It
actually is O(n*log(k)), but k is constant 6 in the non-exhaustive
case).
2022-07-12 19:10:01 +01:00
Geza Lore
7e8bafd217
Remove static data use from PartContraction::siblingPairFromRelatives
...
Use std::sort with lambda rather than qsort with static function and
static data. Verilation performance neutral.
2022-07-12 19:09:40 +01:00
Geza Lore
457ad07ade
Remove unnecessary static state from V3EmitCFunc
2022-07-12 17:51:17 +01:00
Geza Lore
c9ac9a75a6
Merge branch 'master' into develop-v5
2022-07-12 17:29:45 +01:00
Geza Lore
79c901c220
Tighten signatures/implementaion of VerilatedModel abstract methods.
2022-07-12 16:06:08 +01:00
Geza Lore
b61d819fcb
Move contextp() under VerilatedModel
2022-07-12 16:06:08 +01:00
Geza Lore
f4038e3674
Move thread pool and execution profiler into the context. ( #3477 )
...
Fixes #3454
2022-07-12 11:41:15 +01:00
Arkadiusz Kozdra
8377514127
Add support for $test$plusargs(expr) ( #3489 )
2022-07-11 06:21:35 -04:00
Wilson Snyder
d8ea989eda
Tests/examples: Remove some legacy Verilator:: calls.
2022-07-09 09:50:50 -04:00
Wilson Snyder
5f3316d3dc
* Fix empty string arguments to display ( #3484 ).
2022-07-09 08:30:57 -04:00
Wilson Snyder
a4fddb3fbe
Fix table misoptimizing away display ( #3488 ).
2022-07-09 07:55:46 -04:00
Wilson Snyder
3d71716a8a
Internals: Constructor style cleanup. No functional change.
2022-07-09 07:40:07 -04:00
Yutetsu TAKATSUKASA
9f37cef1bb
Fix #3470 of incorrect bit op tree optimization ( #3476 )
...
* Tests: Add a test to reproduce #3470
* Update LSB during return path of traversal. No functional change is intended.
* Introduce LeafInfo::m_msb
* Update LeafInfo::m_msb when visitin AstCCast
* Internals: Add comment, reorder. No functional change is intended.
* Delete explicit from copy constructor to fix build error.
* Update Changes
* Internals: Remove unused parameter. No functional change is intended.
* Tests: Add explanation to t_const_opt.
2022-07-06 08:33:37 +09:00
Geza Lore
0de1bbc85b
Add and use VL_CONSTEXPR_CXX17
2022-07-05 14:21:28 +01:00
Geza Lore
3aa8624658
Set 'threads' in tests via parameter to compile
...
This is in preparation to #3454 .
2022-07-05 12:33:41 +01:00
Geza Lore
42b711b862
Don't use 'assert' in profiler initialization
2022-07-05 12:18:54 +01:00
Wilson Snyder
b25b798dbe
Merge branch 'master' into develop-v5
2022-07-04 13:20:03 -04:00
Mariusz Glebocki
2873dbe154
Optimize file writing by using a memory buffer. ( #3461 )
2022-07-04 10:23:31 -04:00
Felix Yan
31a83cb0d8
Fix use of C++17 on Arch Linux ( #3479 )
2022-06-29 11:24:30 -04:00
Geza Lore
383e384739
Remove always true cfg_with_threaded from test driver
2022-06-27 15:23:32 +01:00
Geza Lore
1bb6433649
Improve worker thread shutdown.
...
Always ensure worker thread task queue is drained before shutting down.
2022-06-27 15:03:36 +01:00
Yutetsu TAKATSUKASA
ced39d0982
Internals: preparation for fixing #3470 ( #3475 )
...
* Internals: Let LeafInfo class. No functional change is intended.
* Internals: Rename LeafInfo::width -> LeafInfo::varWidth(). No functional change is intende.
2022-06-27 22:41:33 +09:00
Wilson Snyder
fc4d6a62af
Remove VL_PROFILER ifdef. Partial ( #3454 ).
2022-06-22 20:06:23 -04:00
Wilson Snyder
fa99cbbc73
Commentary: Fix mis-sorted option names. No functional change.
2022-06-21 19:28:26 -04:00
Wilson Snyder
49455721a3
Commentary
2022-06-21 19:28:23 -04:00
Unai Martinez-Corral
11032b1936
Fix bisonpre for MSYS2 ( #3471 )
2022-06-20 11:59:27 -04:00
Wilson Snyder
e7ca4a69e3
Merge branch 'master' into develop-v5
2022-06-19 15:22:09 -04:00
Wilson Snyder
f2fba51fe2
devel release
2022-06-19 15:13:29 -04:00
Wilson Snyder
7c79f0d431
Version bump (Changes update)
2022-06-19 15:10:23 -04:00
Wilson Snyder
41b9b30b9b
Version bump
2022-06-19 15:01:17 -04:00
Wilson Snyder
1fa82ffb7b
Commentary: Update ChangeLog
2022-06-19 15:00:10 -04:00
Wilson Snyder
4f93ac6477
Internals: Style modernization. No functional change intended.
2022-06-15 18:49:32 -04:00
Krzysztof Bieganski
f7533010c6
Internals: Add setNoopt() function to LifeVisitor ( #3468 )
2022-06-15 18:11:03 -04:00
Todd Strader
47b650d821
Fix public unpacked input ports ( #3465 )
2022-06-15 07:41:59 -04:00
Geza Lore
0c2c097377
Add -fno-merge-cond-motion option
...
This disables code motion during V3MergeCond, for debugging.
2022-06-13 14:16:11 +01:00
Geza Lore
d721f70690
Commentary
2022-06-13 12:14:37 +01:00
Kevin Kiningham
ea8aaa21e8
Fix compile error under strict C++11 mode ( #3463 )
2022-06-13 12:14:02 +01:00
Kamil Rakoczy
660d1059b0
With --no-decoration, remove output whitespace ( #3460 )
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2022-06-10 07:26:33 -04:00
Wilson Snyder
e7dc2de14b
Fix BLKANDNBLK on $readmem/$writemem ( #3379 ).
2022-06-04 12:43:18 -04:00
github action
aca9fd3bed
Apply 'make format'
2022-06-04 16:30:41 +00:00
Wilson Snyder
09f3f40462
Fix clang-discovered missing comma.
2022-06-04 12:27:44 -04:00
Wilson Snyder
e2525d8440
Tests: Fix racy tests for develop-v5.
2022-06-04 12:22:11 -04:00
Wilson Snyder
6769106881
Merge branch 'master' into develop-v5
2022-06-04 12:17:29 -04:00
Wilson Snyder
32100a3c91
Tests: Fix racy tests for develop-v5.
2022-06-04 12:17:04 -04:00
Wilson Snyder
0f324c8309
Merge branch 'master' into develop-v5
2022-06-04 11:59:49 -04:00
Wilson Snyder
67f7432dd7
Commentary ( #3436 ).
2022-06-04 08:37:42 -04:00
Wilson Snyder
59dc2853e3
Support concat assignment to packed array ( #3446 ).
2022-06-03 21:32:13 -04:00
Wilson Snyder
ada58465b2
Add -f<optimization> options to replace -O<letter> options ( #3436 ).
2022-06-03 20:43:16 -04:00
Wilson Snyder
173f57c636
Changed --no-merge-const-pool to -fno-merge-const-pool ( #3436 ).
2022-06-03 19:41:59 -04:00
Wilson Snyder
1f3e8640f7
Examples: -Os should be a compile flag, not Verilator flag.
2022-06-03 18:45:39 -04:00
Wilson Snyder
6039e9dcc3
Commentary
2022-06-02 21:32:22 -04:00
Yutetsu TAKATSUKASA
d64f979f99
Fix BitOpTree optimization to consider polarity of frozen node ( #3445 ) ( #3459 )
...
* Tests: add a test to another failing case of #3445
* Consider polarity as lsb in BitOpTree optimization.
2022-06-01 09:26:16 +09:00
Huanghuang Zhou
0c53d19113
Commentary: InstrCountVisitor documentation ( #3457 )
...
Signed-off-by: huanghuang.zhou <[email protected] >
2022-05-31 07:10:58 -04:00
Geza Lore
c64a07fd09
CI: fix cache keys in test jobs
2022-05-30 18:35:59 +01:00
Geza Lore
694919b9d1
CI: add ubuntu-22.04 regressions
2022-05-30 18:34:41 +01:00
Geza Lore
606b35853b
Configure and compile with C++17 on Ubuntu 22.04
...
The packaged libsystemc on Ubuntu 22.04 uses C++17, so default to that
on that platform. Keep C++14 elsewhere.
2022-05-30 18:34:41 +01:00
Yutetsu TAKATSUKASA and Geza Lore
26b7452178
Fix #3445 of BitOpTreeOpt ( #3453 )
...
* Tests: Check BitOpTree statistics in t_const_opt.
* Tests: Add a test to reproduce #3445
* Fix #3445 . Don't forget LSB of frozen node in BitOpTreeOpt.
* Apply suggestions from code review
Co-authored-by: Geza Lore <[email protected] >
2022-05-30 19:33:06 +09:00
Geza Lore
b51f887567
Perform VCD tracing in parallel when using --threads ( #3449 )
...
VCD tracing is now parallelized using the same thread pool as the model.
We achieve this by breaking the top level trace functions into multiple
top level functions (as many as --threads), and after emitting the time
stamp to the VCD file on the main thread, we execute the tracing
functions in parallel on the same thread pool as the model (which we
pass to the trace file during registration), tracing into a secondary
per thread buffer. The main thread will then stitch (memcpy) the buffers
together into the output file.
This makes the `--trace-threads` option redundant with `--trace`, which
now only affects `--trace-fst`. FST tracing uses the previous offloading
scheme.
This obviously helps a lot in VCD tracing performance, and I have seen
better than Amdahl speedup, namely I get 3.9x on XiangShan 4T (2.7x on
OpenTitan 4T).
2022-05-29 19:08:39 +01:00
Geza Lore
c4b8675d77
Always inline some small, hot trace routines
2022-05-28 12:47:09 +01:00
Geza Lore
a7cd7a1ed9
Initialize VerilatedTrace members in class
2022-05-28 12:47:07 +01:00
Geza Lore
a48c779367
Rename verilated_trace_imp.cpp -> verilated_trace_imp.h
...
Also fix file header to describe purpose of this file.
2022-05-28 12:20:35 +01:00
Geza Lore
cf1eccc24f
Make local function 'static' in verilated_profiler.h
2022-05-28 12:17:39 +01:00
Geza Lore
d45caca011
Remove legacy VCD tracing API
...
This has not been used by Verilator for a while, but was kept for
compatibility with some external code. Now removed.
2022-05-28 12:07:24 +01:00
Geza Lore
0722f47539
Improve V3MergeCond by reordering statements ( #3125 )
...
V3MergeCond merges consecutive conditional `_ = cond ? _ : _` and
`if (cond) ...` statements. This patch adds an analysis and ordering
phase that moves statements with identical conditions closer to each
other, in order to enable more merging opportunities. This in turn
eliminates a lot of repeated conditionals which reduced dynamic branch
count and branch misprediction rate. Observed 6.5% improvement on
multi-threaded large designs, at the cost of less than 2% increase in
Verilation speed.
2022-05-27 16:57:51 +01:00
Geza Lore
3af5e7e8da
Remove scope pointer from OrderEitherVertex.
...
For ordering, only the scope of logic vertices should be relevant, so
remove the scope pointer from OrderEitherVertex and move it into
OrderLogicVertex. This does not change single-threaded scheduling at
all. Theoretically, multi-threaded scheduling should not be affected
either though due to some implementation quirk depending on vertex order
in a graph the MT schedule is perturbed by this change, but the
performance effect of this is negligible on all benchmarks I have access
to.
No functional change intended.
Fixes #3442
2022-05-25 20:32:32 +01:00
Geza Lore
160f3ee4a7
Remove dead code, no functional change
2022-05-25 19:11:20 +01:00
Krzysztof Bieganski
3a310f19f0
Adjust loop conditions in VlTriggerVec functions
...
This change is not a functional one; it is only meant to appease the
compiler with respect to warnings such as GCC's `-Wtype-limits`.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-25 18:45:59 +01:00
Krzysztof Bieganski
d7a75dc026
Merge branch 'master' into develop-v5
2022-05-25 11:06:38 +02:00
github action
a372e010bd
Apply 'make format'
2022-05-25 04:51:51 +00:00
Wilson Snyder
530817191e
Support non-ANSI interface port declarations ( #3439 ).
2022-05-25 00:50:50 -04:00
Geza Lore
1282548a1c
Only consider definitions in t_flag_csplit
2022-05-20 18:02:00 +01:00
Geza Lore
c7610ed044
Fix FST tracing thread in CMake build
2022-05-20 17:04:46 +01:00
Geza Lore
ffc1c51526
Commentary
2022-05-20 16:44:53 +01:00
Geza Lore
b130a8cfeb
Add -DVM_TRACE_VCD in model builds with Make with --trace
2022-05-20 16:44:38 +01:00
Geza Lore
551bd284dd
Rename some internals related to multi-threaded tracing
...
Rename the implementation internals of current multi-threaded tracing to
be "offload mode". No functional change, nor user interface change
intended.
2022-05-20 16:44:35 +01:00
Wilson Snyder
f0a2c98376
Commentary
2022-05-20 08:34:32 -04:00
Krzysztof Bieganski
9edccfdffa
Initial support for intra-assignment timing controls, net delays ( #3427 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 19:19:44 +01:00
Geza Lore
1a056f6db9
Fix invalid conditional merging when starting at 'c = c ? a : b'
...
Fixes #3409 .
2022-05-17 18:36:40 +01:00
Krzysztof Bieganski
e018eb7bac
Support AstClass::repairCache() after V3Class ( #3431 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 09:22:43 -04:00
Krzysztof Bieganski
0a91ddf38a
Tests: Better grep check in t_foreach ( #3435 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 09:20:59 -04:00
Krzysztof Bieganski
67bb2c640e
Tests: Rename t_timing_clkgen to t_timing_clkgen1 ( #3430 )
...
This is a pre-PR to #3363 , which will introduce more clock gen tests.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 09:19:51 -04:00
Krzysztof Bieganski
561eaa311d
Tests: Enable CI testing with GCC 10 ( #3432 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 09:19:06 -04:00
Geza Lore
282887d9c6
Fix code coverage holes
...
Fixes #3422
2022-05-16 21:22:21 +01:00
Krzysztof Bieganski
3f7a248ed4
Refactor some of the Begin handling to a separate function ( #3426 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-16 20:45:33 +01:00
Krzysztof Bieganski
ecaa07a72a
Rename AstTimingControl to AstEventControl ( #3425 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-16 20:44:41 +01:00
Geza Lore
0e62cd11da
Don't issue DEPRECATED for now no-op clock_enable attribute
...
Fixes #3421
2022-05-16 18:57:51 +01:00
Wilson Snyder
99bdc27be3
Internals: Cleanup some statics, trivial part towards ( #3419 )
2022-05-15 14:26:55 -04:00
Wilson Snyder
c3c46967dc
Tests: Appease sanitizer ( #3121 ).
2022-05-15 11:50:52 -04:00
Wilson Snyder
7f1a9239ab
Commentary, fix typo ( #3121 )
2022-05-15 11:14:07 -04:00
Geza Lore
599d23697d
IEEE compliant scheduler ( #3384 )
...
This is a major re-design of the way code is scheduled in Verilator,
with the goal of properly supporting the Active and NBA regions of the
SystemVerilog scheduling model, as defined in IEEE 1800-2017 chapter 4.
With this change, all internally generated clocks should simulate
correctly, and there should be no more need for the `clock_enable` and
`clocker` attributes for correctness in the absence of Verilator
generated library models (`--lib-create`).
Details of the new scheduling model and algorithm are provided in
docs/internals.rst.
Implements #3278
2022-05-15 16:03:32 +01:00
Geza Lore
c8102c8ffe
Fix typo
2022-05-15 16:01:35 +01:00
Wilson Snyder
5aa12e9b51
Add assert when VerilatedContext is mis-deleted ( #3121 ).
2022-05-15 10:51:03 -04:00
Geza Lore
829437b20b
Commentary - dependencies
2022-05-15 15:25:46 +01:00
Wilson Snyder
3c4131d45d
Fix 'with' operator with type casting ( #3387 ).
2022-05-15 09:53:48 -04:00
Wilson Snyder
ae8d8ee1ac
Fix crash with misuse of display.
2022-05-15 09:29:45 -04:00
Geza Lore
39b7c47e7b
Merge branch 'master' into develop-v5
2022-05-15 13:39:14 +01:00
Geza Lore
89ec3d16dc
Allow const nodes in VNRef
...
No functional change.
2022-05-15 13:30:07 +01:00
Geza Lore
f6f03bc261
Merge branch 'master' into develop-v5
2022-05-15 12:05:12 +01:00
Wilson Snyder
7602c983c5
Commentary
2022-05-14 18:16:31 -04:00
HungMingWu
560efb2c9e
Internals: Fix memory leak in V3FileLine ( #3407 ) ( #3408 ). No functional change intended.
2022-05-14 18:15:38 -04:00
Wilson Snyder
c2328ef46a
Spelling fixes.
2022-05-14 16:12:57 -04:00
Geza Lore
766fb56651
Merge branch 'master' into develop-v5
2022-05-14 10:30:45 +01:00
Wilson Snyder
f6035447ae
Internals: Use mutable for mutexes. No functional change.
2022-05-13 07:21:39 -04:00
Wilson Snyder
38438b3373
Internals: Cleanup some defaults. No functional change.
2022-05-12 23:30:39 -04:00
Wilson Snyder
71dedccbbe
Support compile time trace signal selection with tracing_on/off ( #3323 ).
2022-05-12 22:28:08 -04:00
Martin Stadler
cddbe4642f
Fix cmake rules to support higher-level targest ( #3377 ) ( #3386 ).
...
Don't add linker flags as generator expression to support linking `TARGET` to higher-level targets in a top-level CMakeLists.txt file.
2022-05-11 21:33:05 -04:00
Wilson Snyder
bdfdc737a0
Internals: Cleanup V3Config. No functional change intended.
2022-05-11 00:47:52 -04:00
Wilson Snyder
3d045c3aee
Internals: Cleanup some verilog.y formatting. No functional change.
2022-05-09 00:37:51 -04:00
HungMingWu
9583f152ee
Fix compile error when enable VL_LEAK_CHECKS ( #3411 ).
...
Signed-off-by: HungMingWu <[email protected] >
2022-05-08 20:49:13 -04:00
Wilson Snyder
5b2755d28d
Untabify verilog.y ( #3412 ). No functional change.
2022-05-08 20:46:18 -04:00
Geza Lore
bec4610e12
Merge branch 'master' into develop-v5
2022-05-08 15:50:50 +01:00
Kamil Rakoczy
9378259779
Fix UNOPTFLAT warning from initial static var ( #3406 )
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2022-05-06 10:24:03 +02:00
Wilson Snyder
3d762282b9
Fix hang with large case statement optimization ( #3405 ).
2022-05-05 07:02:52 -04:00
Wilson Snyder
184ebe72a2
Merge branch 'master' into develop-v5
2022-05-02 22:27:58 -04:00
Wilson Snyder
30783e6a79
devel release
2022-05-02 22:23:05 -04:00
Wilson Snyder
aa86c777f4
Version bump
2022-05-02 22:17:20 -04:00
Geza Lore
a2792785fe
Add V3GraphVertex::dotRank to add GraphViz ranks to graph dumps
...
This is a simple debugging aid to allow constraining the graph layout
via GraphViz rank directives. Note this is not related in any way to the
vertex 'rank' attribute used by some of the graph algorithms.
No functional change.
2022-05-02 10:27:26 +01:00
Wilson Snyder
267315e7d4
Commentary: Update ChangeLog
2022-05-01 22:01:30 -04:00
Geza Lore
2ad0bcbba9
Merge branch 'master' into develop-v5
2022-05-01 16:49:42 +01:00
Wilson Snyder
99d39cb6ff
Fix autoconf warning
2022-05-01 10:43:04 -04:00
Wilson Snyder
915ceb2d04
Tests: Untabify tests. No functional change.
2022-05-01 10:10:00 -04:00
Geza Lore
88bb7cdca6
Merge branch 'master' into develop-v5
2022-04-29 17:14:11 +01:00
Geza Lore
49c90ecbce
Issue consistent INITIALDLY/COMBDLY/BLKSEQ warnings
...
Some cases of warnings about the use of blocking and non-blocking
assignments in combinational vs sequential processes were suppressed in
a way that is inconsistent with the *actual* current execution model of
Verilator. Turning these back on to, well, warn the user that these might
cause unexpected results. V5 will clean these up, but until then err on
the side of caution.
Fixes #864 .
2022-04-29 17:05:44 +01:00
Geza Lore
8395004d25
Add AstNode::exists and AstNode::forall predicates
2022-04-29 15:44:22 +01:00
Kamil Rakoczy
5de1c619c8
Fix foreach segmentation fault ( #3400 ).
2022-04-28 06:11:31 -04:00
Yoda Lee
a6d678d41d
Fix hang in generate symbol references ( #3391 ) ( #3398 )
2022-04-27 18:40:36 -04:00
Aliaksei Chapyzhenka
2b91d764b5
Added missing #include <memory> ( #3392 )
...
Fixes #3390
2022-04-23 20:11:46 +01:00
Geza Lore
46de9460a6
Merge branch 'master' into develop-v5
2022-04-23 15:38:30 +01:00
Geza Lore
62337bb6ac
Future proofing some tests. No functional change.
2022-04-23 15:12:52 +01:00
Geza Lore
9abab2c366
Add separate AstInitialStatic node for static initializers
...
Static variable initializers run before initial blocks, so use an
explicitly different procedure type for them. This also enables us to
now raise errors for assignments to const variables in initial blocks.
2022-04-23 15:12:49 +01:00
Geza Lore
b22e368b25
Add default parameters to some Ast nodes for convenience
...
Also update usage to utilize. No functional change.
2022-04-23 14:47:16 +01:00
Geza Lore
a9cd2998e5
Don't mangle run-time library method names.
2022-04-23 14:47:16 +01:00
Geza Lore
f1ea30f257
Use iterate*Const V3EmitV visitors. No functional change.
2022-04-23 14:47:12 +01:00
Geza Lore
0b74e9b354
Ensure topological ordering of module list.
...
At the end of V3Param, fix up the module list to be topologically
sorted. We need to do this at the end as a later instantiation of a
recursive module might instantiate an earlier specialization, which we
cannot know until we processed everything. The rest of the compiler
depends on the module list being topologically sorted.
Fixes #3393
2022-04-23 13:25:27 +01:00
Geza Lore
8189416d0c
Partial cleanup of V3Param. No functional change.
2022-04-23 13:03:52 +01:00
Geza Lore
5f0e1fae7f
Simplify and clarify reporting of enclosing instance
...
Rename AstNodeModule::hierName -> someInstanceName and explain that this
is only used for user messages.
Rename AstNode::locationStr -> instanceStr and simplify implementation.
In particular, do not report an instance if we can't find a reasonable
guess.
2022-04-22 23:38:23 +01:00
HungMingWu
880a9be3b1
Internal: Add C++20ish reverse_view for range loops. No functional change ( #3388 ).
...
Signed-off-by: HungMingWu <[email protected] >
2022-04-18 13:03:56 -04:00
Wilson Snyder
7bfc1a00a7
Fix tracing interfaces inside interfaces ( #3309 ).
2022-04-14 09:14:44 -04:00
Wilson Snyder
92f64de115
Add FIXMEV5 comments
2022-04-13 22:18:59 -04:00
Wilson Snyder
f4baa86b71
Devel version 5
2022-04-13 07:15:11 -04:00
Julien Margetts
baff64a43d
Add VK_USER_OBJS dependency to --create-lib library ( #3370 ) ( #3382 ).
2022-04-12 07:04:31 -04:00
github action
b7f2bb0e80
Apply 'make format'
2022-04-12 10:54:48 +00:00
HungMingWu
08e0a397d3
Fix debugi-V3Param null pointer fault ( #3380 ) ( #3381 )
...
Signed-off-by: HungMingWu <[email protected] >
2022-04-12 06:53:52 -04:00
Wilson Snyder
5f333be947
Internals: Dump TraceDecl codes.
2022-04-10 19:40:27 -04:00
Wilson Snyder
f5f4e15ce2
Fix filenames with dots overwriting debug .vpp files ( #3373 ).
2022-04-10 10:33:16 -04:00
Geza Lore
fbd568dc47
Prep for multiple AstExecGraph. No functional change.
2022-04-10 12:00:17 +01:00
Geza Lore
c79ea88576
Fix incorrect localization when encountering non-leaf functions.
...
Fixes #3286 .
2022-04-09 20:30:39 +01:00
Wilson Snyder
9be4e7b576
Fix Bison 3.8.2 error ( #3366 ).
2022-03-31 19:14:13 -04:00
Wilson Snyder
33105f017c
Commentary
2022-03-30 20:17:59 -04:00
Wilson Snyder
e02f97854c
Deprecate 'vluint64_t' and similar types ( #3255 ).
2022-03-27 15:27:40 -04:00
Wilson Snyder
960d0de361
Tests: Cleanup vluint_t/vlsint_t in tests, part of ( #3255 )
2022-03-27 15:03:25 -04:00
Wilson Snyder
31ce1fdfd3
Tests: Check legacy part of ( #3255 )
2022-03-27 14:50:49 -04:00
Wilson Snyder
9821381059
Tests: new t_lint_latch_5 test ( #2997 ).
2022-03-27 14:42:36 -04:00
Wilson Snyder
3f7bf3d2dc
Fix MSVC localtime_s ( #3124 ).
2022-03-27 13:59:18 -04:00
Geza Lore
f9e69984ff
Set vlSymsp in modules at construction time.
...
This ensures it's available from very early on. No functional change.
2022-03-27 16:10:20 +01:00
Geza Lore
b1b5b5dfe2
Improve run-time profiling
...
The --prof-threads option has been split into two independent options:
1. --prof-exec, for collecting verilator_gantt and other execution
related profiling data, and
2. --prof-pgo, for collecting data needed for PGO
The implementation of execution profiling is extricated from
VlThreadPool and is now a separate class VlExecutionProfiler. This means
--prof-exec can now be used for single-threaded models (though it does
not measure a lot of things just yet). For consistency VerilatedProfiler
is renamed VlPgoProfiler. Both VlExecutionProfiler and VlPgoProfiler are
in verilated_profiler.{h/cpp}, but can be used completely independently.
Also re-worked the execution profile format so it now only emits events
without holding onto any temporaries. This is in preparation for some
future optimizations that would be hindered by the introduction of function
locals via AstText.
Also removed the Barrier event. Clearing the profile buffers is not
notably more expensive as the profiling records are trivially
destructible.
2022-03-27 15:57:30 +02:00
Geza Lore
c7440b250f
Validate integer run-time arguments
2022-03-26 22:58:47 +00:00
Geza Lore
bab8462789
Rebuild run-time library if generated makefile changes
...
The generated makefile contains compiler options that are passed when
building the run-time library, so re-build if it changes.
2022-03-26 21:29:03 +00:00
Wilson Snyder
4eaa6fdd06
Internals: Use python pass appropriately. No functional change intended.
2022-03-26 15:57:52 -04:00
Wilson Snyder
38b2845e2a
Tests: Fix whitespace test and resulting fallout.
2022-03-26 15:41:32 -04:00
Xi Zhang
14d24213a8
Support LoongArch ISA multithreading ( #3353 ) ( #3354 )
2022-03-17 09:04:47 -04:00
Wilson Snyder
c61258c0d0
Commentary ( #3351 )
2022-03-14 09:10:03 -04:00
Yutetsu TAKATSUKASA
47226236f4
Internals: Resolve potential SEGV risk ( #3350 )
2022-03-13 18:13:51 +09:00
Wilson Snyder
e744c21f56
devel release
2022-03-12 13:17:48 -05:00
Wilson Snyder
89a0632ecc
Version bump
2022-03-12 13:09:08 -05:00
Wilson Snyder
dcc05db7f1
Commentary: Changes updated.
2022-03-12 11:34:04 -05:00
Drew Ranck
90fb2e5487
Fix ++/-- tree fix in case statements ( #3346 ) ( #3349 ).
2022-03-12 11:24:32 -05:00
Wilson Snyder
b5ce7d5982
Add VERILATOR_VERSION_INTEGER for determining API ( #3343 ).
2022-03-12 11:17:39 -05:00
Wilson Snyder
f211616a4c
Fix missing debug, and code cleanup in V3LinkInc.
2022-03-11 07:34:11 -05:00
Chuxuan Wang
a9cb9bac21
Commentary in docs/guide/connecting.rst ( #3345 )
2022-03-09 03:57:55 -05:00
Wilson Snyder
ae005434e4
Fix $fscanf etc to return -1 on EOF ( #3313 ).
2022-03-07 17:44:16 -05:00
Wilson Snyder
ef87d057fc
Fix $fscanf etc to return -1 on EOF ( #3113 ).
2022-03-07 17:43:33 -05:00
github action
181b9a5795
Apply 'make format'
2022-03-06 22:17:42 +00:00
Wilson Snyder
9baf9c55c2
Commentary
2022-03-06 17:16:41 -05:00
Yutetsu TAKATSUKASA
e29132377e
Fix driver.pl when expected value is 0 ( #3339 )
...
* Tests: use defined() to accept $expvalue==0
* Tests: Update expected stats of t_cast_huge in --vltmt mode
2022-03-06 14:43:28 +09:00
Yutetsu TAKATSUKASA
999751c422
Count non-empty always blocks in V3Split ( #3337 )
...
"Optimizations, Split always" in stats now means the number of newly added always.
Co-authored-by: Wilson Snyder <[email protected] >
2022-03-06 12:56:34 +09:00
Wilson Snyder
22656d6fdd
Fix Vdeeptemp error with --threads and --compiler clang ( #3338 ).
2022-03-05 20:17:36 -05:00
Wilson Snyder
ef0c5fd772
Fix unnamedblk error on foreach ( #3321 ).
2022-03-05 17:05:22 -05:00
Wilson Snyder
90c61c79d6
Fix unnamedblk error on foreach ( #3321 ).
2022-03-05 17:04:52 -05:00
Wilson Snyder
4ba3bff87f
Fix class stringification on wide arrays ( #3312 ).
2022-03-05 16:32:30 -05:00
Wilson Snyder
c3dd6f5344
Fix public function arguments that are arrayed ( #3316 ).
2022-03-05 16:19:53 -05:00
Wilson Snyder
321880f5a6
Add trace dumpvars() call for selective runtime tracing ( #3322 ).
2022-03-05 15:44:32 -05:00
Geza Lore
3737d209f6
Keep recursive module list topologically ( #3324 ).
...
Fixes (#3324 ).
2022-03-05 15:04:13 +00:00
Todd Strader
29c4b0a141
Fix cast to array types ( #3333 )
2022-03-03 07:48:04 -05:00
Wilson Snyder
956f64c6ba
Fix compile error with --trace-fst --sc ( #3332 ).
2022-03-02 07:26:26 -05:00
Larry Doolittle
c2d18d8ae4
Commentary: More minor spelling fixes in docs/guide/*.rst ( #3331 )
2022-03-01 22:07:12 -05:00
Geza Lore
5b9806ae6d
Improve V3Combine
...
- Always use a fast function to replace a slow one if available
- Iterate to fixed point (i.e.: if combining made more functions
identical, combine those too). This will be more useful in the future.
- Use only single, const traversal
2022-02-27 20:40:58 +00:00
Geza Lore
665fa140a8
V3Combine: Fix crash if CCall in expression position
2022-02-27 12:52:40 +00:00
Yutetsu TAKATSUKASA
32f843a214
Internals: Don't show "Split always" statistics twice. (Split and Reorder were shown). ( #3328 )
2022-02-27 20:33:54 +09:00
Larry Doolittle
72a3c756ad
Commentary: Minor spelling fixes in docs/guide/*.rst ( #3327 )
2022-02-27 10:01:44 +00:00
github action
47069dfe52
Apply 'make format'
2022-02-27 07:53:05 +00:00
HungMingWu
43a84d7ad8
Internals: Fix VL_RESTORER behavior on passing a lvalue reference ( #3326 )
...
Signed-off-by: HungMingWu <[email protected] >
2022-02-27 07:52:11 +00:00
Jamie Iles
b6ca2a42f2
Fix FST traces to include vector range ( #3296 ) ( #3297 )
2022-02-26 12:52:24 -05:00
Wilson Snyder
e52a4ac74f
Fix $readmem file not found to be warning not error ( #3310 ).
2022-02-19 10:04:12 -05:00
Geza Lore
decfa6bd7a
V3Order: Use unique ordinals per function name
...
This helps diffing generated code after reordering output, otherwise no
functional change.
2022-02-16 18:36:40 +00:00
Geza Lore
8931bd37e2
Cleanup V3Changed and V3GenClk
2022-02-16 18:09:19 +00:00
Geza Lore
4b79d23d00
Replace SenTreeSet with generic collection
...
Introduce VNRef that can be used to wrap AstNode keys in STL
collections, resulting in equality comparisons rather than identity
comparisons. This can then replace the SenTreeSet data-structure.
2022-02-16 18:09:19 +00:00
github action
77fe7c426e
Apply 'make format'
2022-02-16 05:11:38 +00:00
Raynard Qiao
331c2244fc
Fixed signed number operation ( #3294 ) ( #3308 )
2022-02-16 00:10:34 -05:00
Wilson Snyder
5a3eab634a
Suppress WIDTH warning on negate using carry bit ( #3295 ). [Peter Monsson]
2022-02-13 15:28:07 -05:00
Wilson Snyder
77e68acf54
Suppress WIDTH warning on negate using carry bit ( #2395 ). [Peter Monsson]
2022-02-13 15:27:31 -05:00
Wilson Snyder
7a355d448a
Fix skipping public enum values with four-state values ( #3303 ).
2022-02-10 19:27:28 -05:00
Wilson Snyder
3b7ad1820d
GTKWave header updates from upstream.
2022-02-09 21:56:22 -05:00
Wilson Snyder
d3b63b2653
Fix error if file not found
2022-02-09 21:56:22 -05:00
Wilson Snyder
046896e60a
Commentary
2022-02-09 21:56:22 -05:00
Geza Lore
fb9119ff49
Rename AstCFunc attribute for clarity.
...
'formCallTree' -> 'isFinal'. No functional change.
2022-01-28 16:18:50 +00:00
Guokai Chen
818aaa8b89
Fix macOS arm64 build by excluding x86 only cpuid header ( #3285 ) ( #3291 )
...
Signed-off-by: Guokai Chen <[email protected] >
2022-01-23 09:15:09 -05:00
Geza Lore
26bdfc3474
Commentary
2022-01-21 05:53:42 +00:00
Wilson Snyder
0e91d8a10e
Internal: Rename for clarity. No functional change.
2022-01-19 19:14:09 -05:00
Wilson Snyder
434c3c3ef3
Removed the deprecated "fl" attribute in XML output; use "loc" attribute instead.
2022-01-17 16:22:07 -05:00
Wilson Snyder
21e05c43dd
Removed the deprecated lint_off flag -msg; use -rule instead.
2022-01-17 16:04:06 -05:00
Wilson Snyder
0e154b35ef
devel release
2022-01-17 15:54:31 -05:00
Wilson Snyder
e6554e061c
Version bump
2022-01-17 15:52:26 -05:00
Wilson Snyder
0f004c8e7b
Commentary, ChangeLog up to date
2022-01-17 14:16:09 -05:00
Julie Schwartz
f5b1a5cd58
Fix make support for BSD ar ( #2999 ) ( #3256 ). [Julie Schwartz]
...
While GNU 'ar' supports '@' to specify a file, BSD 'ar' does not.
The max line length can be handled by 'xargs' instead, which will know
to break up the command. In case there are multiple calls, only build
the index (specified with '-s') once in a later call.
2022-01-17 14:04:43 -05:00
Wilson Snyder
48a098b041
Tests: Fix some force/release coverage holes.
2022-01-16 16:53:06 -05:00
Geza Lore
f8c0169e82
Implement 'forceable' attribute
...
Using the 'forceable' directive in a configuration file, or the /*
verilator forceable */ metacomment on a variable declaration will
generate additional public signals that allow the specified signals to
be forced/released from the C++ code.
2022-01-16 15:31:37 +00:00
Geza Lore
539c9d4c63
Merge alternate 'force'/'release' implementation
...
- Add more tests, including for tracing.
- Apply some cleaner, more generic abstractions in the implementation.
- Use clearer AstRelease which is not an assignment.
2022-01-16 15:31:37 +00:00
Geza Lore
b4d8220cbb
Deprecate --cdc ( #3279 )
2022-01-16 15:30:44 +00:00
Wilson Snyder
5eded789aa
Fix test
2022-01-09 19:29:30 -05:00
Wilson Snyder
e931c6230a
Run EmitV test after all stages, and fix resulting fallout
2022-01-09 18:11:24 -05:00
Geza Lore
64a6e1ac8b
Add AstNode::foreach method for simple pre-order traversal ( #3276 )
2022-01-09 22:34:10 +00:00
Wilson Snyder
50094ca296
Internals: Add cpplint control file and related cleanups
2022-01-09 16:49:38 -05:00
Wilson Snyder
15b32dc140
Internals: cpplint cleanups. No functional change.
2022-01-08 12:01:39 -05:00
Wilson Snyder
441ecfedc9
Internals: Make all .h files compilable
2022-01-08 11:18:23 -05:00
HungMingWu
78147ee8d7
Fix compile error at GCC11
...
Fixes #3273
Signed-off-by: HungMingWu <[email protected] >
2022-01-08 10:40:51 +00:00
Geza Lore
8c58612a3b
Improve V3Inline speed and memory consumption
...
Avoid cloning the module when inlining the last instance that references
that module. This saves a lot of memory because it saves cloning
singleton modules (those with a single instance), which we always
inline. The top few levels of the hierarchy are often simple wrappers,
including the one added by Verilator in V3LinkLevel::wrapTop. Cloning
these and putting off deleting the originals can be very expensive
because they often have a lot of contents inlined into them, so each
layer of wrapper that is inlined would essentially add a whole new clone
of the large top-level. Directly inlining the module for the last cell
without cloning saves us from all this duplicate memory consumption and
also from having to create the clones in the first place.
Also added minor traversal speedups
This reduces the memory consumption of V3Inline by 80% and peak memory
consumption of Verilator by about 66% on a large design, while speeding
up the V3Inline pass by ~3.5x and the whole of Verilator by ~8% while
producing identical output.
2022-01-07 12:11:10 +00:00
Geza Lore
56f9d244de
Cleanup V3Inline. No functional change.
2022-01-07 12:08:17 +00:00
Geza Lore
2ba9eb4228
Speed up TSP sort implementation
...
- More efficient comparison by pre-computing sorting keys.
- Remove work items in algorithms known to be redundant earlier.
This greatly reduces data structure sizes.
- Use V3GraphVertex->user() for state tracking instead of unordered_map
while both of these are constant time, they do add up.
- In `makeMinSpanningTree`, instead of batch inserting outgoing edges of
each visited vertex into an ordered set, keep an ordered set of sorted
vectors of edges. This reduces the size of the ordered set
significantly (it is now O(V) rather than O(E), and as the subject
graph is a complete graph, V ~ sqrt(E), so this is a significant gain).
- Use a vector + sorting in `perfectMatching` instead of an ordered set.
This is faster on large working sets.
This yields 3.8x speedup on the variable order pass and overall 14%
verilation speed gain on a large design.
2022-01-07 12:05:52 +00:00
Geza Lore
9a8c878f2d
Avoid repeated traversal for SC text sections in emit when not needed
...
Repeatedly traversing whole modules in emit (due to file splitting)
looking for `systemc_* sections can add up to a lot of time on large
designs that have been flattened and need to be split into many files.
Assuming `systemc_* is a rarely used feature, just don't bother if we
don't need to. This gain 9% verilation speed improvement on a large
benchmark.
2022-01-07 12:05:50 +00:00
Wilson Snyder
41a563bdc8
Internal cleanups towards recursive functions ( #3267 )
2022-01-04 20:19:58 -05:00
Yutetsu TAKATSUKASA
4e5f30858b
Fix #3258 of internal error with inout port ( #3268 )
...
* Tests: Modify t_tri_inout to reproduce #3258
* Set direction of __en accorting to its main signal direction
* Update Changes
2022-01-05 08:37:20 +09:00
Wilson Snyder
b989ac6db5
Internals: Support linking recursive function calls (but not later stages)
2022-01-03 18:50:41 -05:00
Wilson Snyder
4d1f4bbf49
Backout last commit; is unstable.
2022-01-03 13:04:47 -05:00
Wilson Snyder
e9ad665d32
Internals: Support linking recursive function calls (but not later stages)
2022-01-03 12:25:50 -05:00
Wilson Snyder
78052f87bd
Tests: Update recursive function tests
2022-01-03 12:02:53 -05:00
Wilson Snyder
ebf5c11e03
Internals: In astgen text output, pickup missing node references
2022-01-02 20:54:39 -05:00
Wilson Snyder
7e355e211c
Fix dangling node on error
2022-01-02 20:54:13 -05:00
Wilson Snyder
f36461e696
Internals: Remove dead code
2022-01-02 18:38:07 -05:00
github action
88d7ca01b0
Apply 'make format'
2022-01-02 20:13:16 +00:00
Wilson Snyder
2e2b82c052
Support class static members ( #2233 ).
2022-01-02 15:09:07 -05:00
Wilson Snyder
f1bb0544be
Internals: Cleanups towards static class members. No functional change intended.
2022-01-02 15:03:57 -05:00
Wilson Snyder
3b1371124e
Update bug template.
2022-01-02 14:03:20 -05:00
Wilson Snyder
e6857df5c6
Internals: Rename Ast on non-node classes ( #3262 ). No functional change.
...
This commit has the following replacements applied:
s/\bAstUserInUseBase\b/VNUserInUseBase/g;
s/\bAstAttrType\b/VAttrType/g;
s/\bAstBasicDTypeKwd\b/VBasicDTypeKwd/g;
s/\bAstDisplayType\b/VDisplayType/g;
s/\bAstNDeleter\b/VNDeleter/g;
s/\bAstNRelinker\b/VNRelinker/g;
s/\bAstNVisitor\b/VNVisitor/g;
s/\bAstPragmaType\b/VPragmaType/g;
s/\bAstType\b/VNType/g;
s/\bAstUser1InUse\b/VNUser1InUse/g;
s/\bAstUser2InUse\b/VNUser2InUse/g;
s/\bAstUser3InUse\b/VNUser3InUse/g;
s/\bAstUser4InUse\b/VNUser4InUse/g;
s/\bAstUser5InUse\b/VNUser5InUse/g;
s/\bAstVarType\b/VVarType/g;
2022-01-02 14:03:20 -05:00
github action
73374a0303
Apply 'make format'
2022-01-02 18:36:52 +00:00
Wilson Snyder
e334740dd6
Add AstInitialAutomatic as prep for static class members
2022-01-02 12:35:44 -05:00
Wilson Snyder
84ee833ea7
Ignore --x-initial unique inside classes.
2022-01-02 12:26:10 -05:00
Wilson Snyder
b7ad1e6d61
Internals: Rename some non-nodes to avoid Ast prefix. No functional change.
2022-01-02 10:37:20 -05:00
github action
340efe3a3a
Apply 'make format'
2022-01-02 14:46:15 +00:00
Wilson Snyder
2342549caf
Internals: V3Class cleanup. No functional change.
2022-01-02 09:43:37 -05:00
Wilson Snyder
028737cde8
Tests: Add unsupported t_class_static_member tests.
2022-01-02 09:43:26 -05:00
Wilson Snyder
bf972963f4
Misc internal and test work towards enum type checks ( #726 ).
2022-01-01 22:16:58 -05:00
Wilson Snyder
9bda91b3bf
Fix clang compile warning
2022-01-01 19:33:12 -05:00
Wilson Snyder
e4c5eb5e69
Fix spurious UNUSED by ignoring inout pin connections ( #3242 ).
2022-01-01 18:37:34 -05:00
Wilson Snyder
2e8cc22c54
Copyright year update.
2022-01-01 18:34:15 -05:00
Wilson Snyder
655910d486
Fix associative array first method as statement ( #3228 ).
2022-01-01 17:10:26 -05:00
github action
2a0ec88379
Apply 'make format'
2022-01-01 21:55:27 +00:00
Wilson Snyder
80859a609a
Fix $fclose not accepting expressions ( #3237 ).
2022-01-01 16:48:15 -05:00
Wilson Snyder
d679d50eca
Fix $random not updating seed ( #3238 ). [Julie Schwartz]
2022-01-01 16:43:06 -05:00
Wilson Snyder
65de118e51
Internals: Factor common V3Width function.
2022-01-01 16:15:53 -05:00
Wilson Snyder
4cd56b1fb9
Use C++11 standard types for MacOS portability ( #3254 ) ( #3257 ).
2022-01-01 16:04:20 -05:00
Wilson Snyder
f3945e7c02
Tests: Add t_class_param_pkg test.
2022-01-01 14:30:41 -05:00
Wilson Snyder
5ef982b4b5
Fix internal error on reference to typedef'ed class
2022-01-01 13:48:53 -05:00
Wilson Snyder
f96d336b97
Internals: Pre-elaboration progress towards class parameters.
2022-01-01 12:50:43 -05:00
Wilson Snyder
a68a4fc888
Commentary
2022-01-01 12:26:30 -05:00
Wilson Snyder
0c3ffa1841
Support force/release ( #2491 ) ( #2593 ).
2022-01-01 12:24:19 -05:00
Wilson Snyder
24a0d2a0c9
Internals: Favor member assignment initialization. No functional change intended.
2022-01-01 11:46:49 -05:00
Wilson Snyder
ca42be982c
Copyright year update.
2022-01-01 08:26:40 -05:00
Wilson Snyder
ffc31e2efa
devel release (overdue)
2022-01-01 08:25:44 -05:00
Wilson Snyder
8952aa59ff
Tests: Add force/release tests.
2021-12-31 15:17:16 -05:00
Wilson Snyder
2966f03042
Tests: Enumerations supported
2021-12-31 15:10:29 -05:00
Wilson Snyder
d15e9e2b7a
Internals: Refactor Tristate pull creation. No functional change.
2021-12-31 14:46:16 -05:00
Wilson Snyder
fd45be3def
Internals: Fix class dump
2021-12-22 20:06:14 -05:00
Yutetsu TAKATSUKASA
0658a7654f
Add tests of tracing SystemC model verilated with --hierarchical ( #3252 )
...
* Tests: Add t_hier_block_sc_trace(fst|vcd) that tests tracing hierarchical block on SystemC.
* Add a check that elaboration is done before a trace file is opened.
* Add a check that elaboration is done before trace() is called to verilated SystemC model.
* Tests: call sc_core::sc_start(sc_core::SC_ZERO_TIME) before opening a trace file
* Tests: Fix t_trace_two_sc to call sc_start before opening trace
* Use vl_fatal as suggested in PR review.
2021-12-23 08:41:11 +09:00
Wilson Snyder
7526151670
Fix bad ending address on $readmem ( #3205 ).
2021-12-21 19:55:04 -05:00
Wilson Snyder
560b59f97f
Use C++11 standard types for MacOS portability ( #3254 ).
2021-12-21 13:18:05 -05:00
Geza Lore
b2ca89c185
Add final time and memory stats for "emit" stage
2021-12-20 14:33:10 +00:00
Geza Lore
1de2de4bde
Fix splitting of large _eval and related functions
...
Fix bug that only used to measure size of first statement in functions
to determine if splitting was necessary. Measure whole function instead.
2021-12-20 11:24:11 +00:00
Wilson Snyder
4135867e53
Internals: Some V3Tristate cleanups. No functional change.
2021-12-19 16:06:45 -05:00
Geza Lore
ff425369ac
Reduce .rodata footprint of trace initialization ( #3250 )
...
Trace initialization (tracep->decl* functions) used to explicitly pass
the complete hierarchical names of signals as string constants. This
contains a lot of redundancy (path prefixes), does not scale well with
large designs and resulted in .rodata sections (the string constants) in
ELF executables being extremely large.
This patch changes the API of trace initialization that allows pushing
and popping name prefixes as we walk the hierarchy tree, which are
prepended to declared signal names at run-time during trace
initialization. This in turn allows us to emit repeat path/name
components only once, effectively removing all duplicate path prefixes.
On SweRV EH1 this reduces the .rodata section in a --trace build by 94%.
Additionally, trace declarations are now emitted in lexical order by
hierarchical signal names, and the top level trace initialization
function respects --output-split-ctrace.
2021-12-19 15:15:07 +00:00
Yutetsu TAKATSUKASA
30ccccdb67
Support FST tracing in hierarchical verilation ( #3251 )
...
* Rename t_hier_block_trace -> t_hier_block_trace_vcd
* Add t_hir_block_trace_fst test
* Support FST dump with hierarchical verilation
2021-12-18 16:57:28 +09:00
Wilson Snyder
5e3016f34a
Fix foreach on dotted reference.
2021-12-12 20:44:58 -05:00
Wilson Snyder
f775feb7f0
Fix foreach on dotted reference.
2021-12-12 20:43:15 -05:00
Wilson Snyder
0a94ea5386
Fix missing override
2021-12-12 19:53:20 -05:00
Wilson Snyder
aa8423ba46
Tests: Add t_class_param_mod.pl
2021-12-12 19:49:06 -05:00
Wilson Snyder
d753f36ebc
Internals: Add missing broken assertions & cloneTrees
2021-12-12 18:10:52 -05:00
Wilson Snyder
55976dbc25
Tests: Add t_class_param_nconst_bad test.
2021-12-12 15:26:29 -05:00
Wilson Snyder
77c005835d
Internals: Const cleanup. No functional change.
2021-12-12 15:12:45 -05:00
Wilson Snyder
6b0601fd54
Support lower dimension looping in foreach loops ( #3172 ).
2021-12-11 20:39:58 -05:00
Wilson Snyder
c1652979d5
Avoid += in configure ( #3132 )
2021-12-11 18:58:26 -05:00
Wilson Snyder
740fee660e
Fix associative array foreach loop ( #3229 ).
2021-12-11 18:38:23 -05:00
Wilson Snyder
984ee624ed
Fix break under foreach loop ( #3230 ).
...
Internals: Move Foreach handling into V3Width.
2021-12-11 15:06:33 -05:00
Adrien Le Masle
00ef0519f5
Fix top level parameter overwrite when a package has same parameter ( #3241 ) ( #3247 )
2021-12-11 14:55:59 -05:00
Wilson Snyder
59d170c6f8
Support up to 64 bit enums for .next/.prev/.name ( #3244 ).
2021-12-11 11:29:01 -05:00
Wilson Snyder
9a722ccf62
Internals: Cleanup of InitArray stuff. No functional change intended.
2021-12-11 11:22:04 -05:00
Wilson Snyder
748fa4cb80
Fix coredump after huge enum warning.
2021-12-10 23:08:03 -05:00
Wilson Snyder
694cf371f9
Tests: Always failing tests
2021-12-10 21:22:23 -05:00
Wilson Snyder
8696e38e6f
Primary inputs and outputs (VL_INW/VL_OUTW) now use VlWide type ( #3236 ).
2021-12-09 19:41:33 -05:00
Wilson Snyder
706162ecc6
Commentary
2021-12-09 19:30:16 -05:00
Adrien Le Masle
c3f17ce2c4
Fix VL_STREAML_FAST_QQI with 64 bit left-hand-side ( #3232 ) ( #3235 )
2021-12-09 17:30:04 -05:00
Wilson Snyder
41f29d2ce3
Tests ( #3230 )
2021-12-06 21:27:32 -05:00
Unai Martinez-Corral
7b119a594f
Fix MSWIN compile error ( #2681 ).
2021-12-06 08:15:58 -05:00
Wilson Snyder
b7d20b102b
Internals: Remove unused and cleanup VL_ASSIGNSEL.
2021-12-05 11:59:49 -05:00
Wilson Snyder
ac05a779ae
devel release
2021-12-05 11:16:02 -05:00
Wilson Snyder
935032366f
Version bump
2021-12-05 11:10:19 -05:00
Yutetsu TAKATSUKASA
1160dddc6d
Fix bit op tree optimization ( #3221 )
...
* Add a test to reproduce #3197
* Fix #3197 . Optimize correctly even if a variable is >32
* Quick exit instead of continue. No functional change is intended.
* Delete comment-out line.
* update per review comment
2021-11-30 23:20:00 +09:00
Wilson Snyder
293a5f402b
Fix timescale portability on Arm64 ( #3222 ).
2021-11-28 15:47:19 -05:00
Wilson Snyder
ca09f73446
Tests: Fix open test on some automount cloud providers
2021-11-28 15:40:35 -05:00
Wilson Snyder
e814855357
Tests: Skip gdb tests if no gdb
2021-11-28 15:33:33 -05:00
Wilson Snyder
692306ef44
Optimize $random concatenates/selects ( #3114 ).
2021-11-28 14:17:28 -05:00
Wilson Snyder
ffdc0afe5f
Disable unintended debug message
2021-11-28 14:10:50 -05:00
Wilson Snyder
98037cad56
Internals: Optimize VL_RANDOM to have unclean output
2021-11-28 14:00:19 -05:00
Wilson Snyder
61e3536163
Internals: Remove some unused arguments.
2021-11-28 13:44:16 -05:00
Wilson Snyder
a1a186a86c
Internals: Remove some unused arguments.
2021-11-28 13:07:37 -05:00
Wilson Snyder
04e0c7e4f1
Support tracing through --hierarchical/--lib-create libraries ( #3200 ).
2021-11-27 17:07:27 -05:00
Wilson Snyder
833686446c
Commentary, ChangeLog up to date
2021-11-27 09:05:51 -05:00
Wilson Snyder
c6dae40cf6
Support task name in $display %m ( #3211 ).
2021-11-26 20:38:48 -05:00
Wilson Snyder
cd737065f2
Internals: More const. No functional change intended.
2021-11-26 17:55:36 -05:00
Wilson Snyder
010084201a
Internals: Remove dead code.
2021-11-26 16:15:08 -05:00
Wilson Snyder
60f7eff701
Remove dead statistic.
2021-11-26 16:10:16 -05:00
Wilson Snyder
d1862e25eb
Internals: Cleanup some constructor-constructor assigns. No functional change intended.
2021-11-26 16:05:07 -05:00
Wilson Snyder
b0018fd680
Internals: Remove dead output variable. No functional change.
2021-11-26 15:13:36 -05:00
Wilson Snyder
2742a8c813
Internals: No need for variable name on immediate visitors. No functional change intended.
2021-11-26 10:52:45 -05:00
Wilson Snyder
05e12ab60e
Internals: More const. No functional change intended.
2021-11-26 10:52:45 -05:00
Michaël Lefebvre
9bda2cb4ad
Fix some SliceSels not being constants ( #3186 ) ( #3218 ).
2021-11-26 10:51:11 -05:00
Wilson Snyder
393b9e435d
Internals: Revert previous commit const for clang.
2021-11-25 09:47:06 -05:00
Wilson Snyder
e87a726989
Internals: More const. No functional change intended.
2021-11-25 09:05:50 -05:00
Wilson Snyder
62387a0e32
Fix display of empty string constant ( #3207 ) ( #3215 ).
2021-11-25 08:03:27 -05:00
Wilson Snyder
31079ca8b5
Fix $size on dynamic strings ( #3216 ).
2021-11-25 07:50:47 -05:00
Wilson Snyder
4184ad1921
Commentary
2021-11-23 18:27:40 -05:00
Wilson Snyder
e7ebe0e280
Fix $fopen etc on integer arrays ( #3214 ).
2021-11-23 18:22:16 -05:00
Wilson Snyder
c14bbb9421
Fix incorrect width after and-or optimization ( #3208 ).
2021-11-23 18:15:21 -05:00
Wilson Snyder
b1b92b7dd4
Fix hang on recursive definition error ( #3199 ).
2021-11-23 07:27:41 -05:00
Julie Schwartz
a14394dbb5
Commentary: remove duplicate/wrong change-log entry ( #3212 )
2021-11-18 05:15:02 -05:00
Wilson Snyder
96b7831243
Commentary: C++14 moves to 2023.
2021-11-17 18:56:11 -05:00
Wilson Snyder
1e440765c0
Commentary, about previous commit: Fix display of signed without format ( #3204 ).
2021-11-17 18:52:53 -05:00
Wilson Snyder
2ccf49031b
Fix $display of signed/unsigned without format ( #3207 ).
2021-11-17 18:50:52 -05:00
Wilson Snyder
0abc856be9
Fix %0 format on $value$plusargs.
2021-11-17 17:54:07 -05:00
Wilson Snyder
d2a8fa7440
Fix display of empty string constant ( #3207 ).
2021-11-17 17:46:08 -05:00
Wilson Snyder
106d635d0f
Fix vluint64 portability ( #3150 ).
2021-11-17 07:10:48 -05:00
Wilson Snyder
cff9f8143e
Commentary
2021-11-17 07:06:43 -05:00
Wilson Snyder
cfa401e01d
Internals: Add lib-create const and improve comments.
2021-11-14 12:01:02 -05:00
Wilson Snyder
d6195e354f
Add some missing COLD attributes.
2021-11-14 11:05:20 -05:00
Wilson Snyder
c0892dd11c
When using --lib-create, disable tracing hash/internals. Partial ( #3200 ).
2021-11-14 10:16:59 -05:00
Wilson Snyder
899de9a282
Add --lib-create, similar to --protect-lib but without protections ( #3200 ).
2021-11-14 09:39:31 -05:00
Wilson Snyder
4b593f8eb3
Commentary
2021-11-14 09:01:03 -05:00
Wilson Snyder
28b6e79cf7
Tests: Rename t_lib_prot tests in prep for new options.
2021-11-14 08:58:04 -05:00
Wilson Snyder
fe5822ba54
Commentary
2021-11-13 15:01:27 -05:00
Wilson Snyder
c496649c49
Internals: Remove unused DfaGraph code.
2021-11-13 14:48:21 -05:00
Wilson Snyder
37e3c6da70
Internals: Add more const. No functional change intended.
2021-11-13 13:50:44 -05:00
Wilson Snyder
4cb5c1e1db
Internals: More const. No functional change.
2021-11-13 11:38:12 -05:00
Wilson Snyder
b7a7504ba5
Internals: More obvious debug filename.
2021-11-13 11:35:03 -05:00
Wilson Snyder
3a5cbd5b67
Internals: Untabify some embedded tabs.
2021-11-13 10:46:25 -05:00
Wilson Snyder
27883b52d6
Internals: Add const
2021-11-13 10:42:26 -05:00
Wilson Snyder
b95ee84343
Commentary
2021-11-13 10:41:00 -05:00
Geza Lore
185e5d8f42
Make 'bit', 'logic' and 'time' types unsigned by default
...
IEEE 1800-2017 6.11.3 says these types are unsigned. Until now these
types were treated as not having a signedness (NOSIGN), and nodes having
these types were later resolved by V3Width to be unsigned. This is a bit
problematic when creating nodes of these types after V3Width. Treating
these types as unsigned from the get go is fine, and actually improves
generated code slightly.
2021-11-09 21:54:21 +00:00
Geza Lore
987ce927eb
Remove unused code. No functional change.
2021-11-09 19:46:19 +00:00
Yutetsu TAKATSUKASA
b08c694cd6
Fix wrong bit op tree optimization ( #3185 )
...
* Add a test to reproduce bug3182. Run the same HDL with -Oo to confirm the result is same.
* Hopefully fix #3182 . The result can be 0 only when polarity is true (no AstNot is found during traversal).
2021-11-06 12:31:50 +09:00
Geza Lore
e69a8e838d
Improve memory usage of V3Partition. Only performance change intended. ( #3192 )
2021-11-05 22:08:54 -04:00
Wilson Snyder
61612582e6
Improve memory usage of V3Partition. Only performance change intended.
2021-11-04 07:39:28 -04:00
Wilson Snyder
8b00939f0c
Improve performance of V3Scoreboard. Only performance change intended.
2021-11-03 22:16:18 -04:00
Wilson Snyder
da5644211f
Improve memory usage of V3Partition. Only performance change intended.
2021-11-03 22:01:40 -04:00
Wilson Snyder
c1d7bfa617
Internals: Skip some asserts in fastpath partitioning.
2021-11-03 19:19:23 -04:00
Wilson Snyder
c26ce25cea
Internals: Add more const. No functional change.
2021-11-03 17:49:19 -04:00
Wilson Snyder
758264dc77
Fix nested generate if genblk naming ( #3189 ).
2021-11-01 08:59:00 -04:00
Wilson Snyder
304697d133
Commentary
2021-11-01 08:57:43 -04:00
Teng Huang
fdbf465eda
Fix array method names with parens ( #3181 ) ( #3183 )
2021-10-26 12:20:45 -04:00
Wilson Snyder
90102d9867
Commentary
2021-10-25 21:02:02 -04:00
Wilson Snyder
a1bb471aca
Internals: Iterate sentree in clocker to avoid confusing iterateChildren. No functional change intended.
2021-10-25 20:19:49 -04:00
Wilson Snyder
4ef37d9411
Commentary
2021-10-25 19:53:41 -04:00
Yutetsu TAKATSUKASA
f3b10df454
Skip merging assign statements if a variable is marked split_var to fix #3177 ( #3179 )
...
* add tests to reproduce #3177 .
Any random test circuits can be added to t_split_var_4.v later because it uses CRC to check the result while
t_split_var_0.v has just barrel shifters.
* Fix #3177 . Don't merge assign statements if a variable is marked split_var.
2021-10-25 20:56:59 +09:00
Geza Lore
f5a226a183
Partial clean up of V3Order. No functional change intended.
...
This is a partial cleanup of V3Order with the aim of increasing clarity:
- Split the initial OrderGraph building and the actual ordering process
into separate classes (OrderVisitor -> OrderBuildVisitor + OrderProcess)
- Remove all the historical cruft from the graph building phase (now in
OrderBuildVisitor), and add more assertions for assumptions.
- Change the dot styling of OrderGraph to use shapes and more easily
distinguishable colors.
- Expand vague comments, remove incorrect comments, and add more.
- Replace some old code with cleaner C++11 constructs.
- Move code about a bit so logically connected sections are closer to
each other, scope some definitions where they are used rather than file
scope.
- The actual ordering process (now in OrderProcess) is still largely
unchanged.
The generated code is identical to before (within the limits of the
exiting non-determinism).
2021-10-24 16:49:05 +01:00
Geza Lore
5515eed0b6
Make AstTopScope accessible from AstNetlist
...
AstTopScope is a singleton node and making it accessible without a
traversal simplifies some code and decouple some other.
2021-10-24 13:00:29 +01:00
Geza Lore
381c87a1eb
Remove VN_CAST_CONST and VN_AS_CONST.
...
The _CONST suffix on these macros is only lexical notation, pointer
constness can be preserved by overloading the underlying
implementations appropriately. Given that the compiler will catch
invalid const usage (trying to assign a non-const pointer to a const
pointer variable, etc.), and that the declarations of symbols should
make their constness obvious, I see no reason to keep the _CONST
flavours.
2021-10-24 11:43:48 +01:00
github action
20e896ec21
Apply 'make format'
2021-10-22 18:51:57 +00:00
Geza Lore
70603bb752
Add static assertions for unnecessary VN_IS/VN_AS/VN_CAST
...
Fail at compile time if the result of these macros can be statically
determined (i.e.: they aways succeed or always fail). Remove unnecessary
casts discovered. No functional change.
2021-10-22 19:39:24 +01:00
Geza Lore
7cb6dc664e
Generate YYSTYPE members with astgen
...
In preparation for strengthening Ast type system. No functional change.
2021-10-22 19:27:32 +01:00
Geza Lore
dae9fa5053
Use VN_AS wherever possible and obvious. No functional change.
2021-10-22 14:06:00 +01:00
Wilson Snyder
aa1a0b0f13
Tests: Fix numactl on WSL2
2021-10-19 21:24:22 -04:00
Wilson Snyder
371bf01957
Tests: Fix numactl on WSL2
2021-10-19 21:21:52 -04:00
Wilson Snyder
ef7759a522
Commentary re: WSL2
2021-10-19 20:34:13 -04:00
Wilson Snyder
0ef9087f89
Commentary
2021-10-17 14:51:50 -04:00
Wilson Snyder
00059987a1
devel release
2021-10-17 14:47:19 -04:00
Wilson Snyder
8f090176a6
Version bump
2021-10-17 14:36:23 -04:00
Wilson Snyder
43e8263d1f
Commentary
2021-10-17 14:35:34 -04:00
Geza Lore
ac622f9db8
Introduce VN_AS for downcasting to known AstNode subtype.
...
VN_AS should be used over VN_CAST in code where the author knows up
front (i.e.: statically) what the true type of the node is. This has
multiple benefits over VN_CAST:
- In the debug build: Asserts node type is as expected
- In the optimized build: It is faster as no superfluous type test
- And (I would argue most importantly) it documents intent in the code
No current instances of VN_CAST changed in this patch
2021-10-16 23:52:31 +01:00
Wilson Snyder
749a66b7a2
Add assertion on mix of combo/posedge ( #3170 )
2021-10-16 18:14:32 -04:00
Geza Lore
fc80ace6e4
Reduce size of astgen generated implementation boilerplate.
...
Rely on C++ templates instead for simplicity. No functional change.
2021-10-16 20:15:51 +01:00
Wilson Snyder
b8f6b262e4
Fix false EOFNEWLINE warning when DOS carriage returns present ( #3171 ).
2021-10-13 21:21:51 -04:00
Wilson Snyder
b64e89f7ed
Fix calling new with arguments in same class ( #3166 ).
2021-10-12 21:22:59 -04:00
Wilson Snyder
c3bec344a4
Fix missing install of vl_file_copy/vl_hier_graph ( #3165 ).
2021-10-12 20:20:45 -04:00
Iru Cai
9731ec76e3
Fix $urandom_range when the range is 0 ... UINT_MAX ( #3161 )
2021-10-11 06:45:19 -06:00
Matthew Ballance
a9646cf45c
Fix constructor-parameter argument comma-separation in C++ ( #3162 )
2021-10-09 17:19:31 -06:00
Wilson Snyder
5f597dd9fc
Tests: Improve internal coverage holes
2021-10-05 22:02:37 -04:00
Wilson Snyder
7d57c3ca78
Internals: Remove dead code.
2021-10-05 22:02:23 -04:00
Wilson Snyder
4739956cfe
Internals: Add missing const. No functional change.
2021-10-05 21:20:22 -04:00
Wilson Snyder
e202a6324a
Tests: Improve internal coverage holes
2021-10-05 21:09:57 -04:00
Wilson Snyder
66d70c8b37
Internal coverage: Fix some test runs having conflicting sources.
2021-10-05 20:22:29 -04:00
Wilson Snyder
02aa639425
Internals: Add some const etc. No functional change.
2021-10-05 19:42:31 -04:00
Wilson Snyder
55da66164b
Fix verilator_gantt time on Arm.
2021-10-04 22:13:34 -04:00
Wilson Snyder
2560fc867f
verilator_gantt: Fix reading broken /cpu/procinfo reports
2021-10-02 11:10:43 -04:00
Wilson Snyder
f5c9deecb8
Tests: Add verilator_gantt no-proc test.
2021-10-02 10:05:59 -04:00
github action
20af8a36a7
Apply 'make format'
2021-09-28 11:29:21 +00:00
Zhanglei Wang
1c1c805b07
Fix internal error on bad widths ( #3140 ) ( #3145 )
2021-09-28 07:28:02 -04:00
Wilson Snyder
9029da5ab8
Add profile-guided optmization of mtasks ( #3150 ).
2021-09-26 22:51:11 -04:00
Wilson Snyder
def7c8fe4d
Commentary
2021-09-26 16:21:58 -04:00
Wilson Snyder
9184c4f501
Fix cygwin compile error due to missing -std=gnu++14 ( #3149 )
2021-09-26 16:19:46 -04:00
Wilson Snyder
44809f1843
Remove unused CFG_CXXFLAGS_STD_OLDEST
2021-09-26 16:01:25 -04:00
Wilson Snyder
87ced0cc3e
Fix crash on clang 12/13 ( #3148 ).
2021-09-25 17:10:57 -04:00
Wilson Snyder
741bb5328e
verilator_gantt: Fix argument report omitting last digits
2021-09-24 21:11:15 -04:00
Wilson Snyder
33650336f5
Commentary
2021-09-24 08:49:16 -04:00
Wilson Snyder
bbce1dc256
Commentary
2021-09-24 08:48:20 -04:00
Wilson Snyder
8ab51dbf22
Verilator_gantt: remove ASCII graphics
2021-09-24 08:48:20 -04:00
Wilson Snyder
fd4595d6b4
verilator_gantt: Add eval count to report
2021-09-24 08:48:20 -04:00
github action
204804ae52
Apply 'make format'
2021-09-24 03:00:42 +00:00
Wilson Snyder
c2819923c5
Verilator_gantt now shows the predicted mtask times, eval times, and additional statistics.
2021-09-23 22:59:36 -04:00
Wilson Snyder
68f1432a68
Gantt: Subtract common start in slowpath to reduce collection measurement error.
2021-09-23 19:43:20 -04:00
Keith Colbert
0defb61a18
Fix --waiver-output for multiline warnings ( #2429 ) ( #3141 )
2021-09-22 07:42:59 -04:00
Wilson Snyder
0fc805202c
Commentary ( #3139 )
2021-09-21 18:15:56 -04:00
Wilson Snyder
a7374e84a2
Tests: Some coverage improvements
2021-09-20 18:20:48 -04:00
Wilson Snyder
76681fd931
Commentary
2021-09-17 20:18:47 -04:00
Wilson Snyder
2418df7bb2
Commentary
2021-09-17 20:03:45 -04:00
Wilson Snyder
97d8d32049
Commentary
2021-09-17 18:52:12 -04:00
Wilson Snyder
08c8b0d7d6
Fix removing if statement with side effect in condition ( #3131 ).
2021-09-13 15:52:53 -04:00
Wilson Snyder
81fd3e4732
Commentary
2021-09-13 15:47:03 -04:00
Wilson Snyder
d384a69877
Fix display has no time units on class function ( #3116 ).
2021-09-08 19:31:46 -04:00
github action
a8b480559d
Apply 'make format'
2021-09-08 22:46:27 +00:00
Wilson Snyder
f1b8b1d99b
Format: perltidy spacing cleanup. No functional change.
2021-09-08 18:45:25 -04:00
Wilson Snyder
f67637144f
Internals: Some verilog.y format cleanups. No functional change.
2021-09-08 08:34:53 -04:00
Wilson Snyder
4b274a8d4d
Convert verilator_gantt to python
2021-09-08 08:16:31 -04:00
Wilson Snyder
c678e7ec3e
Format: perltidy spacing cleanup. No functional change.
2021-09-07 23:50:28 -04:00
Wilson Snyder
2a79e46c46
Tests: Fix t_dist_fixme to detect later files.
2021-09-07 19:27:46 -04:00
Wilson Snyder
d09b6a7d2c
Include processor information in verilator_gantt data file.
2021-09-05 11:56:28 -04:00
Wilson Snyder
35eac0c457
Commentary: Fix profcfunc naming.
2021-09-05 11:33:20 -04:00
Wilson Snyder
cac0b0f316
Tests: Fix t_gantt_io
2021-09-04 16:51:55 -04:00
Wilson Snyder
8519dc1383
Tests: Skip unstability
2021-09-04 13:48:16 -04:00
Wilson Snyder
72f198d79e
Tests: Add t_gantt_io test
2021-09-04 12:44:13 -04:00
Wilson Snyder
1cb8091125
verilator_profcfunc: Also allow eval_step.
2021-09-04 12:28:26 -04:00
Wilson Snyder
18c543f2f2
Convert verilator_difftree to Python
2021-09-04 09:31:22 -04:00
Wilson Snyder
496b9f9c63
Tests: Add difftree test.
2021-09-04 08:27:59 -04:00
Wilson Snyder
1ee46ac5e1
Convert verilator_profcfunc to python.
2021-09-04 08:21:09 -04:00
Wilson Snyder
f37c875be8
Internal: Remove fixme
2021-09-04 08:07:48 -04:00
Wilson Snyder
56dc66d842
Fix verilator_profcfunc profile accounting ( #3115 ).
2021-09-03 19:59:10 -04:00
Wilson Snyder
7ae54ef973
Commentary
2021-09-02 09:00:01 -04:00
Iru Cai
4ed00c563c
Support displaying x and z in $display task ( #3107 ) ( #3109 )
2021-09-02 08:10:52 -04:00
Daniel Bates
a49bfe871c
Docs: Fix typo in coverage instructions ( #3111 )
2021-09-02 07:41:10 -04:00
Wilson Snyder
6d97fea2f5
Internals: Cleanup some const, etc. No functional change.
2021-09-01 22:15:38 -04:00
Wilson Snyder
da833d55fe
devel release
2021-09-01 21:08:17 -04:00
Wilson Snyder
960813cb0f
Version bump
2021-09-01 20:58:03 -04:00
Wilson Snyder
cd56dfee1c
Update GTKwave from upstream.
2021-09-01 20:45:41 -04:00
Wilson Snyder
3e03cd5a4d
Commentary
2021-09-01 20:39:59 -04:00
Krzysztof Bieganski
cd9e9da4b5
Support assignment patterns as children of pins ( #3041 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2021-08-30 10:44:03 -04:00
Wilson Snyder
f64d9d87f6
Clang compile fix
2021-08-28 17:44:19 -04:00
Wilson Snyder
43aa3229fb
Support empty queue assignment to delete queue
2021-08-28 17:23:35 -04:00
Wilson Snyder
27d53691bd
Add header guards on Dpi.h generated files ( #2979 ).
2021-08-23 21:43:54 -04:00
Wilson Snyder
959793cde3
Internals: Cleanup VL_VALUE_STRING_MAX widths ( #3050 ).
2021-08-23 21:13:33 -04:00
Wilson Snyder
c3d64d9743
Fix internal error on wide -x-initial unique ( #3106 ).
2021-08-23 20:13:09 -04:00
Wilson Snyder
f9806595f2
Add error when constant function under a generate ( #3103 ).
2021-08-21 10:33:20 -04:00
Geza Lore
34a0bb448e
Improve V3MergeCond
...
- Merge AstNodeIf nodes as well (not just assignment from AstCond)
- Merge merged results recursively (optimizes nested conditionals/ifs)
- Only checking mergeability once per node.
- Don't add redundant masking
- Duplicate cheap statements in both branches, if doing so yields a
larger merge
- Include reduced nodes before the starting conditional in the merge
2021-08-19 18:55:39 +01:00
Geza Lore
8681861be9
Improve bitop tree optimization
...
- Remove redundant casting
- Cheaper final XOR parity flip (~/^1 instead of != 0)
- Support XOR reduction of ~XOR nodes
- Don't add redundant masking of terms
- Support unmasked terms
- Add cheaper implementation for single bit only terms
- Ensure result is clean under all circumstances (this fixes current bugs)
2021-08-18 22:00:13 +01:00
Geza Lore
fffc63970d
Use narrowest RedXor
2021-08-18 22:00:09 +01:00
Ivan Vnučec
8f527a0c6e
Commentary ( #3102 )
...
Actually you can see `https://github.com/verilator/verilator ` URL in your browser.
2021-08-18 15:19:02 -04:00
Geza Lore
c69ddc46f8
Fix bitop tree optimization dropping necessary cleaning AND ( #3097 )
...
Fixes #3096 .
2021-08-14 21:09:01 +01:00
Yutetsu TAKATSUKASA
4ec8bc3589
Fix op count and wrong optimization in bitop tree ( #3099 )
...
- Fix op calculation.
- Fix wrong optimization revealed by changing the op calculation:
Not(CCast(And(a, b))) must be frozen.
2021-08-14 12:28:47 +01:00
Geza Lore
536bdf506e
Fix re-evaluation of logic dependent on state set in DPI exports ( #3091 ).
...
Verilator should now correctly re-evaluate any logic that depends on
state set in a DPI exported function, including if the DPI export is
called outside eval, or if the DPI export is called from a DPI import.
Whenever the design contains a DPI exported function that sets a
non-local variable, we create a global __Vdpi_export_trigger flag, that
is set in the body of the DPI export, and make all variables set in any
DPI exported functions dependent on this flag (this ensures correct
ordering and change detection on state set in DPI exports when needed).
The DPI export trigger flag is cleared at the end of eval, which ensured
calls to DPI exports outside of eval are detected. Additionally the
ordering is modifies to assume that any call to a 'context' DPI import
might call DPI exports by adding an edge to the ordering graph from the
logic vertex containing the call to the DPI import to the DPI export
trigger variable vertex (note the standard does not allow calls to DPI
exports from DPI imports that were not imported with 'context', so we
do not enforce ordering on those).
2021-08-12 21:43:32 +01:00
Pieter Kapsenberg
d1836b7b6f
Traces show array instances using brackets instead of parens ( #3092 ) ( #3095 )
2021-08-12 20:40:44 +03:00
Geza Lore
00fe36f44c
Name temporary variables based on hash of related node.
...
This improves output stability by removing sequence numbers and hence
can improve ccache hit rate. No functional change intended.
2021-08-11 17:29:22 +01:00
Geza Lore
5adc856950
Tests: ignore all hashes in files_identical
...
Also add 'h' prefix to all printed hashes, to reduce ambiguity. No
functional change.
2021-08-11 16:55:11 +01:00
Geza Lore
bc3e24c8cd
Use c++XX instead of gnu++XX language standards.
...
The GNU extensions to C/C++ are not required to build Verilator. Note
this change does not affect __attribute__, __builtin_* and intrinsics,
which are still available when using GCC or Clang with the standard
language options.
2021-08-04 11:48:32 +01:00
Geza Lore
2c8456ea75
Internals: Cleanup V3SplitVar
...
- Use C++11 initialization syntax
- Use C++11 for loops
- Add const
- Factor out repeated _->fileline() sub-expressions
- Factor out issuing warning message
No functional change.
2021-08-02 15:48:26 +01:00
Geza Lore
519cc7d61c
Internals: Remove code duplication from V3Order
...
No functional change
2021-08-02 14:06:50 +01:00
Wilson Snyder
0f4daa12e4
Ignore sv-test's `pragma protect end
2021-07-29 09:00:10 -04:00
Wilson Snyder
6bad0e14ce
Support timeunit/timeprecision in $unit.
2021-07-29 08:40:41 -04:00
Geza Lore
3ec3c2c268
Internals: Cleanup V3Expand
...
- Use C++ initialization syntax
- Add const
- Make members static where appropriate
- Factor out repeated _->fileline() sub-expressions
No functional change.
2021-07-27 13:18:57 +01:00
Wilson Snyder
b8e804f05b
Internals: Some clang-tidy cleanups. No functional change intended.
2021-07-25 13:38:27 -04:00
Geza Lore
cdeb6e792f
Add --instr-count-dpi option, change default to 200
...
This replaces the former static AstNode::INSTR_COUNT_DPI, and makes it
user adjustable to fit the design.
Fixes #3068 .
2021-07-25 16:40:12 +01:00
Wilson Snyder
deebfa3239
Tests: Remove Ubuntu 16.04 as github removes in a month.
2021-07-25 11:22:25 -04:00
Wilson Snyder
f937e3282f
Tests: Ignore DepSet hash numbers. ( #3083 )
2021-07-25 11:20:19 -04:00
Geza Lore
b46664c70a
Internals: Use C++11 constexpr for instruction count costs
...
No functional change.
2021-07-25 13:32:40 +01:00
github action
33af14eba8
Apply 'make format'
2021-07-25 01:07:07 +00:00
Steven Hugg
18b0f6387d
Add XML ccall, constpool, initarray, and if/while begins ( #3080 )
...
* EmitXml: Added <ccall>, <constpool>, <initarray>/<inititem>, wrapped children of <if> and <while> with <begin> elements to prevent ambiguity
* EmitXml: added signed="true" to signed basicdtypes
2021-07-24 21:06:06 -04:00
Wilson Snyder
43ecaec9a0
Internal C++11 flex cleanups. No functional change intended.
2021-07-24 12:49:07 -04:00
Wilson Snyder
275885a797
Internals: Fix some long UNSUP lines. No functional change.
2021-07-24 12:21:04 -04:00
Wilson Snyder
68aa731ce9
Fix missing null on blackbox parse.
2021-07-24 12:13:19 -04:00
Wilson Snyder
b90fce55f4
Includes: Refactor verilated.h and deprecate verilated_heavy.h ( #2701 ).
2021-07-24 10:00:33 -04:00
Wilson Snyder
44173b40a1
Internals: Remove dead code. No functional change.
2021-07-24 09:18:49 -04:00
Wilson Snyder
ab13a2ebdc
Internals: Use C++11 const and initializers. No functional change intended.
2021-07-24 08:36:11 -04:00
Wilson Snyder
19875d2e85
Increase split count of ChangeDet ( #3072 ).
2021-07-23 19:24:25 -04:00
Geza Lore
1de33b9fb7
Support localparams in tasks/functions
2021-07-23 20:34:49 +01:00
Geza Lore
90c917ee83
Enable now supported tests for string array initializers
...
Fixes #2895 .
2021-07-23 17:21:15 +01:00
Geza Lore
4ab4c0c8ba
Emit parameter values as 'static constexpr' instead of enum
...
All parameters that are required in the output are now emitted as
'static constexpr, except for string or array of strings parameters,
which are still emitted as 'static const' (required as std::string is
not a literal type, so cannot be constexpr). This simplifies handling
of parameters and supports 'real' parameters.
2021-07-23 17:20:26 +01:00
Geza Lore
9907d211ff
Make VlWide and VlUnpacked C++20 compatible aggregates.
...
C++20 requires that aggregate types do not have a user declared
constructor, not even an explicitly defaulted one. We need these types
to be aggregates for static initialization.
Fixes #3076 .
2021-07-23 12:57:45 +01:00
Wilson Snyder
13933743ad
Suppress creating change_request if not needed.
2021-07-22 20:50:03 -04:00
Wilson Snyder
fc25721e55
Increase instruction count of ChangeDet ( #3072 )
2021-07-22 20:13:45 -04:00
Wilson Snyder
fa64f8fb32
Internals: C++11 cleanup. No functional change intended.
2021-07-22 20:05:54 -04:00
Geza Lore
ab4063f098
Emit implementations into separate files based on required headers.
...
This patch partitions AstCFuncs under an AstNodeModule based on which
header files they require for their implementation, and emits them
into separate files based on the distinct dependency sets. This helps
with incremental recompilation of the output C++.
2021-07-22 18:01:07 +01:00
Geza Lore
8bb77f86ec
Emit: Factor out parent module access via user4
...
No functional change.
2021-07-22 16:31:46 +01:00
Geza Lore
42d918c163
Internals: Omit selfPointer from ConstPool references
...
AstVarRefs to constant pool values are special and they have no use for
the selfPointer. Removing it simplifies future downstream code.
2021-07-22 13:35:22 +01:00
Geza Lore
e3dd70c373
Internals: Simplify V3CUse
...
No functional change intended.
2021-07-20 19:52:15 +01:00
Geza Lore
9273fafbbf
Internals: Split parts of V3CUse into V3Common
...
Apart from adding required AstCUse, V3CUse also used to create some
standard methods for classes. This is now done in a separate pass
V3Common. Note that this is not a performance issue, as V3Common just
iterates through each module, which are stored in a simple linked list
under the netlist, and does not need to traverse the whole netlist.
2021-07-20 17:18:52 +01:00
Geza Lore
d9c893af11
Internals: Add VString::startsWith predicate function
2021-07-20 14:29:43 +01:00
Geza Lore
a9c4a96c0f
Internals: const pointer argument
2021-07-20 14:29:36 +01:00
Geza Lore
32e99ba0d9
Emit: Attach VL_ATTR_COLD to definitions as well as declarations.
...
This is required by clang if the definition precedes the declaration
(which can happen when building via __ALL.cpp), otherwise we get a
warning.
2021-07-20 13:52:53 +01:00
Wilson Snyder
da8930a57a
Fix multitop to go to stderr ( #3070 )
2021-07-20 08:00:14 -04:00
Geza Lore
1166728a8d
Tests: make t_trace_*two* tests less sensitive to file names
...
No functional change intended
2021-07-19 17:48:41 +01:00
Geza Lore
30fa5e41be
Don't emit trace files with --lint-only
2021-07-19 17:48:38 +01:00
Geza Lore
cf39331d1f
Emit: Factor out visitor that can emit constant initializers
...
This is needed both by the V3EmitCConstPool emitter and the
V3EmitCHeaders emitter.
2021-07-14 13:56:04 +01:00
Geza Lore
bac84726e1
Emit: Clean up some code coverage holes
2021-07-14 12:27:33 +01:00
Geza Lore
ddef61d62e
Internals: Move AstNodeCCall::m_selfPointer to AstCCall
...
Other sub-classes of AstNodeCCall do not need the self pointer. Moving
it into the specific sub-class that needs it clarifies V3Descope and
Emit. No functional change intended.
2021-07-13 17:47:42 +01:00
Geza Lore
4081a1a539
Internals: Separate emitting of C++ headers and implementation
...
Internal AstNodeModule headers (.h) and implementation (.cpp) files are
now emitted separately in V3EmitC::emitcHeaders() and
V3EmitC::emitcImp() respectively. No functional change intended
2021-07-13 17:43:44 +01:00
Geza Lore
1691bbfe25
Remove unnecesasry and incorrect trace class CUse.
2021-07-13 14:20:57 +01:00
Geza Lore
17cc452f79
Add V3VariableOrder pass
...
A separate V3VariableOrder pass is now used to order module variables
before Emit. All variables are now ordered together, without
consideration for whether they are ports, signals form the design, or
additional internal variables added by Verilator (which used to be
ordered and emitted as separate groups in Emit). For single threaded
models, this is performance neutral. For multi-threaded models, the
MTask affinity based sorting was slightly modified, so variables with no
MTask affinity are emitted last, otherwise the MTask affinity sets are
sorted using the TSP sorter as before, but again, ports, signals, and
internal variables are not differentiated. This yields a 2%+ speedup for
the multithreaded model on OpenTitan.
2021-07-12 14:53:40 +01:00
Wilson Snyder
8ecdc85cf7
Internals: C++11 style cleanups. No functional change.
2021-07-11 18:42:01 -04:00
Geza Lore
5ad3c4e499
Internals: Speed up and improve V3Broken
...
This patch makes OpenTitan verilation with --debug-check 22% faster, and
the same with --debug --no-dump-tree 91% faster. Functionality is the
same (including when VL_LEAK_CHECKS is defined), except V3Broken can now
always find duplicate references via child/next pointers if the target
node is not `maybePointedTo()` (previously this only happened when
compiled with VL_LEAK_CHECKS). The main change relates to storing the
v3Broken traversal state in the AstNode by stealing a byte from what
used to be unused flags. We retain an unordered_set only for marking
pointers as valid to be referenced via a non-child/non-next member
pointer.
2021-07-11 21:03:17 +01:00
Geza Lore
8073e8bb46
Fix typo
2021-07-11 16:52:02 +01:00
Geza Lore
8a9d6d225b
Internals: Add source file/line info to BROKEN_RTN messages
2021-07-11 16:50:05 +01:00
Wilson Snyder
c7499133b2
Internals: C++11 for bool. No functional change.
2021-07-11 10:42:32 -04:00
Wilson Snyder
687dd440a9
Removed deprecated Verilator tarball generation makefile rules.
2021-07-11 10:25:24 -04:00
Wilson Snyder
f1bb0bb725
Tests: Whitespace check all git files
2021-07-11 10:25:13 -04:00
Wilson Snyder
a8168d5d62
Commentary
2021-07-11 09:46:00 -04:00
Geza Lore
896b18e024
Emit function locals in the place they appear in the tree
...
Do not sort and hoist function local variables to the top of the
function definition. The stack layout of automatic variables is not
defined by C so the compilers can lay these out optimally. Simplifies
internals for follow on work. Effect on model performance is neutral to
very slight improvement, so we do not seem to be loosing anything.
2021-07-10 15:20:19 +01:00
Geza Lore
766ad14ae0
Check function locals are referenced only when in scope
...
V3Broken now checks that AstVar nodes referenced in an AstCFunc are
either external, or appear in the tree before the reference, and are in
scope.
Fix V3Begin to move lifted AstVars to beginning of FTask, rather than
end, which trips the above check.
2021-07-10 15:20:19 +01:00
Geza Lore
add3811f46
Internals: Fix debug prints racing with option parsing.
...
debug() declared by VL_DEGUB_FUNC used to cache the result of the debug
level lookup (which depends on options) in a static. This meant that if
the debug() function was called before option parsing, the default debug
level of 0 would be used for the rest of the program, even if a --debug
option was given. Fixed by not caching the debug level until after
option parsing is complete.
2021-07-10 12:57:40 +01:00
Wilson Snyder
f55177a49f
Tests: Fix coverage holes. No functional change.
2021-07-10 07:11:50 -04:00
Wilson Snyder
bdceb08963
Internals: Fix off-by-one #line.
2021-07-10 07:11:34 -04:00
Geza Lore
825d6b87a8
Internals: Put AstNode flags in padding gap, initialize spare bits
...
The bool AstNode flags fit in a padding gap after m_type. This reduces
memory consumption by about 2% on OpenTitan. Initializing the unused
bits in the flags then avoids a read-modify-write in the constructor
(replacing it with a store constant). Overall verilation speed is about
1% faster.
2021-07-10 08:56:05 +01:00
Wilson Snyder
61e2e55ba5
Internals: Fix coverage holes. No functional change.
2021-07-09 18:11:59 -04:00
Wilson Snyder
e6b75f752b
Commentary
2021-07-09 17:46:11 -04:00
Geza Lore
a4f5d95648
Fix -G to treat simple integer literals as signed ( #3060 )
...
The -G option now correctly parses simple integer literals as signed
numbers, which is in line with the standard and is significant when
overriding parameters without a type specifier.
Fixes #3060
2021-07-08 13:42:25 +01:00
Geza Lore
686baaf2cf
Internals: Streamline trace function generation
...
Remove magic code fragments form EmitCTrace, so Emit need not be aware
that a function is tracing related or not (apart from the purpose of
file name generation). All necessary code is now generated via text
nodes in V3TraceDecl and V3Trace. No functional change intended.
2021-07-08 02:08:09 +01:00
Geza Lore
76b3776fa3
Change generated tracing routines to use snake_case
...
For consistency with the rest of the generated code, generated methods
related to tracing now use snake_case instead of camelCase. No
functional change intended.
2021-07-08 02:08:09 +01:00
Wilson Snyder
3ed2af638b
devel release
2021-07-07 20:50:11 -04:00
Wilson Snyder
8e2ba6a003
Version bump
2021-07-07 20:43:07 -04:00
Wilson Snyder
3aa6332f25
Fix Codacy warnings. No functional change.
2021-07-07 19:42:49 -04:00
Wilson Snyder
36599133bf
Add --prof-c to pass profiling to compiler ( #3059 ).
2021-07-07 19:12:52 -04:00
Wilson Snyder
941f96c913
Commentary
2021-07-07 17:59:22 -04:00
Wilson Snyder
93578d64d2
Internals: Remove old needHeavy code.
2021-07-07 17:56:34 -04:00
Dan Petrisko
8c705ee145
Support middle-of-design nested topmodules ( #3026 )
2021-07-07 15:00:29 -04:00
Dan Petrisko
c5c5f11e16
Tests: Adding failing test case for source synchronous signals ( #3038 )
2021-07-07 14:00:17 -04:00
Morten Borup Petersen
fd0446f481
Internals: Add .dot graph visualization of ThreadSchedule ( #3048 )
...
* Move MTaskState to ThreadSchedule
MTaskState does not concern itself with sandbagging, and thus solely contains information related to the finalized schedule, i.e., completion time, thread ID and next MTask on thread.
* Add .dot graph visualization of ThreadSchedule
Follow-up to #2779 .
This commit adds the creation of .dot files - used by GraphViz - to visualize how mtasks are statically scheduled across the set of specified threads.
We visualize each thread as a row, with nodes of a row being the mtasks scheduled for the given thread. The width of the mtask nodes are proportional to their cost. MTask dependencies are shown using an edge between the source and sink mtasks.
2021-07-06 07:06:00 -04:00
Geza Lore
2ebed755e6
V3Simulate: Avoid copying while managing free list.
...
V3Simulate reuses allocated AstConst nodes for efficiency, however this
used to be implemented in a way that required a deep copy of a
std::unorderd_map<_, std::deque<_>>, which was quite inefficient when it
grew large. The free list is now managed without any copying. This takes
the V3Table pass from taking 12s to 0.2s on SweRV EH1.
2021-07-05 17:07:33 +01:00
Geza Lore
2a7aa28b20
V3Simulate/V3Table: change deques to vectors for performance
...
We can get away with only push_back and back on sequence containers, in
which case std::vector is significantly faster than std::deque.
2021-07-05 15:53:56 +01:00
Geza Lore
fb56f4f880
Tests: make t_prot_lib*.pl name mangling deterministic
...
This is to facilitate diffing generated files in tests.
2021-07-02 00:21:24 +01:00
Geza Lore
d4e73e215e
Tests: fail test if vcddiff aborts, fix failing tests
...
Tests used to silently pass when vcddiff aborted. Now fixed. Updated
large array trace reference files for FST, added same reference files
for VCD.
Developers need to update their local vcddiff.
2021-07-01 23:22:25 +01:00
Geza Lore
d5c9369103
Internals: Fix suspicious dtype clone relinking. ( #3056 )
2021-07-01 14:33:44 -04:00
Geza Lore
af27702188
Fix type parameter resolution with hash collision.
...
We incorrectly treated two different struct types the same when passed
as an actual parameter to a `parameter type` parameter in an instance,
if the actual parameter expression both hash to the same value and the
structs have the same struct name. This is now corrected.
Fixes #3055 .
2021-07-01 16:52:29 +01:00
Morten Borup Petersen
2c813488f4
Tests: Add simulator benchmarking data option for regression tests ( #3054 )
...
This commit adds the '--simbenchmark' option to the regression test compile command.
The option is not intended as a fully-fledged benchmarking infrastructure, but rather a
utility for easily generating cycle- and execution time information when executing a verilated test.
As an example use case, the included test file shows how optimization level is varied across
three different builds+simulations, with the statistics for each run output to the same file in
the output directory.
Future work:
- 'sim_time' in the generated top-level main file should be a parameter.
- Given the above, the test execution script from verilog-sim-benchmark can be integrated
to generate better estimates of cycles/second through varying 'sim_time' over multiple executions.
2021-07-01 11:17:55 -04:00
Geza Lore
708abe0dd1
Introduce model interface class, make $root part or Syms ( #3036 )
...
This patch implements #3032 . Verilator creates a module representing the
SystemVerilog $root scope (V3LinkLevel::wrapTop). Until now, this was
called the "TOP" module, which also acted as the user instantiated model
class. Syms used to hold a pointer to this root module, but hold
instances of any submodule. This patch renames this root scope module
from "TOP" to "$root", and introduces a separate model class which is
now an interface class. As the root module is no longer the user
interface class, it can now be made an instance of Syms, just like any
other submodule. This allows absolute references into the root module to
avoid an additional pointer indirection resulting in a potential speedup
(about 1.5% on OpenTitan). The model class now also contains all non
design specific generated code (e.g.: eval loops, trace config, etc),
which additionally simplifies Verilator internals.
Please see the updated documentation for the model interface changes.
2021-06-30 16:35:40 +01:00
Yutetsu TAKATSUKASA
22e0f3edbe
Introduce small object optimization to V3Number ( #3034 )
2021-06-30 21:20:56 +09:00
Felix Yan
2cdf0aae72
Commentary: Correct a typo in configure.ac ( #3045 )
2021-06-28 23:18:14 -04:00
Wilson Snyder
ee4a601c9e
Internals: Use interface initialization for cleaner code. No functional change.
2021-06-28 22:40:39 -04:00
Morten Borup Petersen
e7b6a7ef6a
Fix shadowing of vlSymsp member with argument ( #3046 ).
...
This commit removes shadowing of the vlSymsp member of the emitted
modules, allowing models to compile when -Werror=shadow is set. This may
be useful when i.e., an external project which defines its own error
flags depends on the verilated model.
2021-06-28 20:37:09 +01:00
Geza Lore
2825940fad
Fix dtype when simplifying masked shift.
...
Fixes #3044
2021-06-25 18:06:43 +01:00
Geza Lore
c6f6dab413
Emit: Factor out parts needed for emitting an AstCFunc
...
Factored out bits from V3EmitC.cpp that is required to emit a whole
(non-trace) AstCFunc. This is mostly what used to be the EmitCStmts
class plus relevant bits from EmitCImp. These now live in EmitCFunc,
which is reusable by anything that needs to emit a regular AstCFunc
(differences in tracing to be addressed later). EmitCImp now extends
EmitCFunc instead of EmitCStmts. No functional change intended.
2021-06-24 19:39:47 +01:00
Geza Lore
bbbee8b89e
Make emitVarDecl and emitModCUse reusable via V3EmitCBase.
...
Moved these 2 function into V3EmitCBase so we can reuse them later.
emitVarDecl required minor alteration to move building of m_ctorVarsVec
back into V3EmitC (which is now done in V3EmitC::emitSortedVarList).
No functional change intended.
2021-06-24 18:15:47 +01:00
Geza Lore
5250408019
Add V3EmitCBase.cpp to hold implementations
...
No need to keep complex functions in the V3EmitCBase.h header (which is
included in a lot of compilation units). No functional change intended.
2021-06-24 18:04:54 +01:00
Geza Lore
a198a3c1e1
Add extern "C" to function declarations in VPI tests.
...
These are necessary to link the executables. So far we have been saved
by one of the generated headers forward declaring these functions with
extern "C", but changing that header would break these tests.
2021-06-24 16:48:58 +01:00
Wilson Snyder
f311a0a5a5
Internals: Add const. No functional change.
2021-06-22 08:43:54 -04:00
Geza Lore
ec1c112791
Remove deprecated --inhibit-sim ( #3035 )
2021-06-21 12:38:42 -04:00
Geza Lore
7ecc2d4df7
V3Hash: Add missing include.
...
Fixes #3029
2021-06-21 15:32:58 +01:00
Wilson Snyder
512fe0a2d1
Internals: Add const. No functional change.
2021-06-20 18:33:13 -04:00
Yutetsu TAKATSUKASA
ec4eb18846
Fiix incorrect result by bit tree opt ( #3023 ) ( #3030 )
...
* Add a test to reproduce #3023 . Also applied verilog-mode formatting.
* use unique_ptr. No functional change is intended.
* Introduce restorer that reverts changes during iterate() if failed.
2021-06-21 07:28:39 +09:00
Geza Lore
f064a94f1d
Configure time unit/time precision in the Sym constructor.
...
This used to be done in the constructor of the top module, but there is
no reason to do it there. Internals are cleaner with this in the Sym
constructor. No functional change intended.
2021-06-19 20:42:38 +01:00
Geza Lore
19398efc4c
Remove no-op VL_CELL. No functional change intended.
2021-06-19 20:42:38 +01:00
Geza Lore
fcb8bc22bd
Internals: Remove m_classPrefix from AstNodeVarRef/AstNodeCCall
...
This is now redundant and can be reconstituted in V3EmitC without being
explicitly stored.
2021-06-19 20:42:38 +01:00
Wilson Snyder
2ee52222e2
Tests: Add test ( #2912 ).
2021-06-19 14:39:34 -04:00
Wilson Snyder
c11cd18491
In XML, show pinIndex information ( #2877 ).
2021-06-19 13:41:41 -04:00
Geza Lore
eebda248c7
Internals: Use AstUserAllocator in V3Order
2021-06-19 15:23:02 +01:00
Wilson Snyder
8d737271ca
Allow configure override of AR program ( #2999 ).
2021-06-19 10:00:31 -04:00
Wilson Snyder
52cde49a6f
Internals: Add more const. No functional change.
2021-06-18 22:24:08 -04:00
Geza Lore
6c9c16c31d
Simplify redundant masking of AstShiftR/AstShiftL
...
AND(CONST,SHIFTR(_,C)) appears often after V3Expand, with C a large
enough dense mask (i.e.: of the form (1 << n) - 1) to make the masking
redundant. E.g.: 0xff & ((uint32_t)a >> 24). V3Const now replaces these
ANDs with the SHIFTR node.
Similarly, we also simplify the same with SHIFTL,
e.g.: 0xff000000 & ((uint32_t)a << 24)
2021-06-18 20:06:53 +01:00
Geza Lore
0c93c3844f
Simplify AND(CONST,OR(_,_)) with redundant terms
...
V3Expand generates a lot of OR nodes that are under a clearing mask, and
have redundant terms, e.g.: 0xff & (a << 8 | b >> 24). The 'a << 8' term
in there is redundant as it's bottom bits are all zero where the mask is
non-zero. V3Const now removes these redundant terms.
2021-06-18 19:07:00 +01:00
Geza Lore
e5e5bc0fa3
Localize variables used in multiple functions
...
Teach V3Localize how to localize variables that are used in multiple
functions, if in all functions where they are used, they are always
written in whole before being consumed. This allows a lot more variables
to be localized (+20k variables on OpenTitan - when building without
--trace), and can cause significant performance improvement (OpenTitan
simulates 8.5% - build single threaded and withuot --trace).
2021-06-18 16:22:51 +01:00
Geza Lore
d6237e55b2
Internals: Add AstUserNAllocator utility classes.
...
These utility classes can be used to hang advanced data structures off
AstNode user*u() pointers, and they take care of memory management for
the client. Use via the call operator().
2021-06-18 16:22:51 +01:00
Geza Lore
3ec1e9eb07
Localize variables from other modules when possible
...
V3Localize can now localize variable references that reference variables
located in scopes different from the referencing function. This also
means V3Descope has now moved after V3Localize.
2021-06-18 16:22:51 +01:00
Geza Lore
d5bdd07c01
Fix out of bounds index into VlWide under AstSel
...
When part selecting bits via an AstSel in a VlWide, V3Expand used to do
something akin to:
word_index = lsb / 32;
bit_index = lsb % 32;
result =
wide[word_index + 1] << (32 - bit_index) | wide[word_index] >> bit_index;
The unconditional "+ 1" can cause an out of bounds access into the
VlWide, when the whole of the select is into the most significant word
(i.e.: when word_index is already the most significant word). We now
emit roughly this instead:
lo_word_index = lsb / 32;
bit_index = lsb % 32;
hi_word_index = (lsb + width - 1) / 32;
result =
wide[hi_word_index] << (32 - bit_index) | wide[lo_word_index] >> bit_index;
i.e.: we explicitly calculate which word the MSB of the select falls
into, and address that word, rather than the unconditional + 1. The
shifts ensure we still yield the right result, even if lo_word_index and
hi_word_index are the same.
Note: The actual expression created by V3Expand can be a bit more
complicated as we might need to access 3 words when the result is a
QData, all 3 word indices are calculated explicitly.
2021-06-18 14:31:01 +01:00
Wilson Snyder
5fddf51e8c
Internals: Favor VlWide over WData arrays. No functional change intended.
2021-06-17 21:17:25 -04:00
Geza Lore
0a28fc8c63
Internals: minor cleanup to V3Descope
2021-06-17 14:30:15 +01:00
Geza Lore
9eafca5e28
Remove deprecated --no-relative-cfuncs ( #3024 )
2021-06-16 23:17:43 -04:00
Geza Lore
729bd268de
Internals: make AstCFunc::m_isStatic a bool.
...
All functions are now known to be static or not static when they are
created, so turn the isStatic flag into a bool (from VBoolOrUnknown).
2021-06-16 14:24:28 +01:00
Geza Lore
6c332a2f8e
Emit: Remove emitVarCmtChg
...
emitVarCmtChg used to emit MTask affinity of variables in comments in
the generated header. This causes unnecessary changes in the output when
scheduling changes slightly between compilation, hindering ccache reuse.
If needing this info for debugging Verilator, add a separate dump file
instead of emitting it in the generated code.
2021-06-16 14:24:25 +01:00
Geza Lore
a8f83d5758
Construct AstExecGraph implementation outside of V3EmitC. ( #3022 )
...
The goal of this patch is to move functionality related to constructing
the thread entry points and then invoking them out of V3EmitC (and into
V3Partition). The long term goal being enabling V3EmitC to emit
functions partitioned based on header dependencies. V3EmitC having to
deal with only AstCFunc instances and no other magic will facilitate
this.
In this patch:
- We construct AstCFuncs for each thread entry point in
V3Partition::finalize and move AstMTaskBody nodes under these functions.
- Add the invocation of the threads as text statements within the
AstExecGraph, so they are still invoked where the exec graph is located.
(the entry point functions are still referenced via AstCCall or
AstAddOrCFunc, so lazy declarations of referenced functions are created
automatically).
- Explicitly handle MTask state variables (VlMTaskVertex in
verilated_threads.h) within Verilator, so no need to text bash a lot of
these any more (some text refs still remain but they are all created
next to each other within V3Partition.cpp).
The effect of all this on the emitted code should be nothing but some
identifier/ordering changes. No functional change intended.
2021-06-16 12:18:56 +01:00
Geza Lore
65bfb4e5ff
Build Verilator without -Og in the coverage build
...
The coverage numbers decreased when adding -Og to the debug build. This
patch restores them by adding --enable-coverage to configure and
building without -Og if requested.
2021-06-14 19:55:03 +01:00
Geza Lore
c75a686081
Internals: Update to clang-format-11 ( #3021 )
2021-06-14 14:50:40 -04:00
Geza Lore
2705715bb1
CI: set CI_M32 to 0 in coverage workflow
2021-06-14 01:30:50 +01:00
Geza Lore
208f1504fb
CI: Add -m32 build
2021-06-14 00:37:59 +01:00
Geza Lore
24b5215cf9
Add --enable-m32 to configure
2021-06-14 00:37:59 +01:00
Geza Lore
6016e74b55
Drop ambiguous overloads in VlWide
...
The 32-bit build fails with the ambiguous overload present.
2021-06-14 00:37:33 +01:00
Geza Lore
0c4d88bacc
Fix V3Hash when building -m32
2021-06-13 23:19:25 +01:00
Geza Lore
01a54d6960
CI: Build opt and dbg together, archive whole source tree
...
Prep for adding more CI targets. Building dbg and opt in the same job
(as standard) simplifies caching, debugging and artifact handling. With
ccache it should not take much longer either. Also removes the need to
re-configure in the test job.
2021-06-13 22:45:57 +01:00
Geza Lore
23fc08bdf9
CI: swap order of platforms
...
GitHub Actions starts the jobs earlier in the list first. This change
has the effect of starting the few longer running jobs (those on ubuntu
20.04) first.
2021-06-13 22:45:57 +01:00
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
18cabc369b
CI: fix error in coverage workflow file
2021-06-13 03:16:58 +01:00
Geza Lore
cd871ca79e
CI: Increase cache sizes slightly
2021-06-13 03:16:56 +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
2d2bd5b95e
CI: Upload separate named artifacts, only fetch ones that are needed
2021-06-13 01:05:42 +01:00
Geza Lore
02835f199b
CI: Improve caching
...
GitHub Actions allow a total 5 GB of cache storage space per repository,
after which it will evict old caches. Tweaked cache sizes so master + a
few PRs can fit at the same time. Don't cache coverage builds as they
run weekly and with additional compiler options, so their caches would
likely be state anyway.
2021-06-13 00:19:40 +01:00
Geza Lore
e6e7bd8d83
Compile the debug build with -Og -ggdb -gz if supported.
...
Check the C++ compiler for -Og via configure and use it if available.
Per the GCC manual:
-Og should be the optimization level of choice for the standard
edit-compile-debug cycle, offering a reasonable level of optimization
while maintaining fast compilation and a good debugging experience. It
is a better choice than -O0 for producing debuggable code because some
compiler passes that collect debug information are disabled at -O0.
The debug exe is painfully slow on large designs, hopefully this is an
improvement.
Similarly, check for and use -gz to compress the debug info as it is
huge otherwise. This should help with distribution and caching on CI.
Also checks for -ggdb via configure for compatibility.
2021-06-12 23:25:58 +01:00
Geza Lore
b1c7de4ad5
Minor compiler compatibility fixes
...
- Initialize variable to avoid 'may be uninitialized' warning
- More reliable segfault (the previous version was compiled into an
undefined instruction by clang sometimes, thew new one is always a store
to zero).
2021-06-12 23:25:58 +01:00
Wilson Snyder
f0f68f42d1
devel release
2021-06-12 13:05:33 -04:00
Wilson Snyder
e3341e9a7c
Verison bump
2021-06-12 12:36:03 -04:00
Geza Lore
1abd339863
CI: fix caching in coverage build
2021-06-10 01:04:43 +01:00
Geza Lore
d22df4e907
CI: Add extra dist-vlt shard for better load balancing
2021-06-09 23:51:03 +01:00
Geza Lore
ac19d552b1
CI: Change name and commit message of formatting job
...
The format job actually runs more than just clang-format these days.
Change message to hint more directly towards what it does. Change job
name to 'format'.
2021-06-09 22:45:25 +01:00
Geza Lore
58b4ed0995
CI: Do not limit parallelism
...
Free accounts can run up to 20 jobs, pro ones 40. There does not seem to
be a reason to limit ourselves to 8.
2021-06-09 22:45:25 +01:00
Geza Lore
7ef9b32faa
CI: Use separate ccache instances for each job
2021-06-09 22:21:32 +01:00
Geza Lore
24b3816f5e
Improve distribution of V3Hash/V3Hasher
...
- Better combining, without multiplication, which means a 0 hash value
is now allowed.
- Do not OR in bottom bits (this was used to avoid a 0 hash but had the
side effect of hashing 0 and 1 to the same value, which are actually
common inputs.
- Hash whole content of V3Number. This does not seem to be noticeable in
runtime, but quite often the bottom word can be a special value like
zero while the rest of the content varies.
2021-06-09 21:17:02 +01:00
Geza Lore
5555f20bd2
Improve ccache-report
2021-06-09 19:14:11 +01:00
Geza Lore
809701d7c6
Add missing 'inline' to function in verilated.h
...
Otherwise we get a separate copy of this function in every
compilation unit including this header.
2021-06-08 23:46:07 +01:00
Wilson Snyder
6fd48da7cf
Untabify cmakefiles. No functional change.
2021-06-07 07:47:15 -04:00
Wilson Snyder
b976b8dac9
Fix slowdown in elaboration ( #2911 ).
2021-06-06 22:09:30 -04:00
github action
c238d3da76
Apply clang-format
2021-06-06 23:57:41 +00: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
8f2e4f6bb0
Fix clang warning.
2021-06-06 10:32:50 -04:00
Wilson Snyder
2158a4573e
Tests: Reenable 18.04 MT ( #2963 ).
2021-06-06 10:27:44 -04:00
Wilson Snyder
1e89392e76
Add --expand-limit argument ( #3005 ).
2021-06-06 10:27:01 -04:00
Martin Schmidt
b0c1ac7ea2
Add support of --trace-structs parameter for CMake ( #2986 )
2021-06-06 09:27:44 -04:00
Wilson Snyder
1f19e8e206
Tests: Add test case for #2895 .
2021-06-06 09:17:56 -04:00
Geza Lore
258d9adfea
Aid IDE code linking in V3AstNodes.h ( #3009 )
2021-06-05 17:40:56 +01:00
Miodrag Milanović
fa063574d0
Fix Makefiles to support Windows EXEEXT usage ( #3008 ).
2021-06-04 12:04:55 -04:00
Geza Lore
eea7e1bd2a
Do not emit leading spaces on blank lines ( #3007 )
2021-06-04 15:00:13 +01:00
Wilson Snyder
fb561d925a
Commentary ( #2996 )
2021-06-03 21:19:11 -04:00
Wilson Snyder
9f5eb8f66e
Commentary
2021-06-03 21:15:42 -04: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
Pieter Kapsenberg
e4dcbb22e3
Fix unused variable warnings ( #2991 )
2021-05-30 20:19:35 -04:00
Geza Lore
f4c1a7efeb
Emit: Fix indent tracking when // inside string literal ( #2990 )
...
// was so far unconditionally treated as comment.
c443e229ee introduced a string literal in
the output that contained a http:// url, which broke the indent
tracking. No functional change intended
2021-05-29 23:46:15 +01:00
Geza Lore
ef9f477df2
Make _ctror_var_reset and _configure_coverage static. ( #2977 )
...
Another step towards #2958/#2140. Make the mentioned generated functions
static for modules (but not for classes).
2021-05-22 18:50:55 +01:00
Geza Lore
2dd5ef5e8b
Internals: Move --coverage and --savable check out of V3EmitC ( #2976 )
2021-05-22 12:27:32 +01:00
github action
a43eba7011
Apply clang-format
2021-05-22 10:14:07 +00:00
Geza Lore
61c9866a1e
Internals: Generate ASTGEN_SUPER_* macros instead of expanding. ( #2975 )
...
astgen now generates ASTGEN_SUPER_* macros, instead of expanding the
ASTGEN_SUPER itself. This means that V3AstNodes.h itself can be included
in V3Ast.h, which helps IDEs (namely CLion) find definitions in
V3AstNodes.h a lot better. Albeit this is a little bit more boilerplate,
writing constructors of Ast nodes should be a lot rarer than trying to
find their definitions, so hopefully this is an improvement overall.
astgen will error if the developer calls the wrong superclass
constructor.
2021-05-22 11:13:02 +01:00
Wilson Snyder
63782556ae
Internals: Fix some pylint warnings
2021-05-21 20:47:53 -04:00
Geza Lore
8814111724
Rework Ast hashing to be stable ( #2974 )
...
Rework Ast hashing to be stable
Eliminated reliance on pointer values in AstNode hashes in order to make
them stable. This requires moving the sameHash functions into a visitor,
as nodes pointed to via members (and not child nodes) need to be hashed
themselves.
The hashes are now stable (as far as I could test them), and the impact
on verilation time is small enough not to be reliably measurable.
2021-05-21 14:34:27 +01:00
Geza Lore
fd35492226
Split V3Hashed to V3Hasher and V3DupFinder ( #2967 )
...
V3Hasher is responsible for computing AstNode hashes, while V3DupFinder
can be used to find duplicate trees based on hashes. Interface of
V3DupFinder simplified somewhat. No functional change intended at this
point, but hash computation might differ in minor details, this however
should have no perceivable effect on output/runtime.
Implements (#2964 )
2021-05-21 01:41:46 +01:00
Geza Lore
a44d2b2570
Move unreleased changes in right place in Changelog
2021-05-20 11:30:44 +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
Wilson Snyder
0f7ec6c9ba
Fix missing array include ( #2966 )
2021-05-17 18:24:18 -04:00
Geza Lore
471f14d26a
Clean up V3Combine ( #2965 )
...
- Remove dead code
- Simplify what is left
- Minor improvements using C++11
- Remove special case AstNode constructors used only in one place in
V3Combine (inlined instead).
2021-05-17 13:26:24 +01:00
Wilson Snyder
bdc162db87
Fix 16.04 gcc warning
2021-05-16 18:38:43 -04:00
Wilson Snyder
706842d093
CI: Disable Ubuntu-18.04 clang ( #2963 )
2021-05-16 15:11:39 -04:00
Yutetsu TAKATSUKASA and Wilson Snyder
31779b8b8b
Format time string using integer ( #2940 )
...
Co-authored-by: Wilson Snyder <[email protected] >
2021-05-16 19:01:03 +09:00
Geza Lore
80d62adec7
Make all AstNode* base class constructors protected. ( #2962 )
...
No functional changes intended. Boring patch in the hope of being
helpful to new contributors. Although AstNode* base classes needing to
be abstract is described in the internals manual, this might provide a
bit of extra safety.
2021-05-15 21:10:16 +01:00
Geza Lore
38cab569ed
Add --reloop-limit argument ( #2960 )
...
Add --reloop-limit argument
2021-05-15 18:04:40 +01:00
Geza Lore
828f78ece4
Don't emit empty files with low split limits ( #2961 )
...
Attempt to split output files when we know a function will actually be
emitted, otherwise we might end up with empty files.
2021-05-15 16:05:24 +01:00
Geza Lore
5e95cc9280
Internals: Make AstAlwaysPost an AstNodeProcedure. ( #2959 )
...
This seems to belong there, eliminates some code duplication in V3Clock,
and also enables splitting AstAlwaysPost statements into different
functions in V3Order, but should otherwise have little effect.
2021-05-15 10:56:28 -04:00
Wilson Snyder
88fed4bc2f
Commentary on traces ( #2925 )
2021-05-13 18:57:39 -04:00
Wilson Snyder
3718fe1ca1
Commentary (trigger rebuild)
2021-05-13 18:34:20 -04:00
Ameya Vikram Singh
a4ab3e12f6
Update latest C++ Standard Compilation flag ( #2951 )
...
For SystemC Project sets the CXX_STANDARD flag from SystemC CMake build config.
2021-05-13 14:26:53 -04:00
Yutetsu TAKATSUKASA
9c85426e77
Internals: Fix build failure on older gcc such as 4.8.5 on CentOS7. No functional change is intended. ( #2954 )
2021-05-13 06:45:56 +09:00
Yutetsu TAKATSUKASA
e3b20a3ea2
Internals: Mark VerilatedContextImp::timeFormatSuffix() const ( #2947 )
2021-05-11 11:45:43 -04:00
Yutetsu TAKATSUKASA
f7c23c4ade
Internals: Set missing timescale though it is not referred yet. ( #2946 )
2021-05-11 22:38:13 +09: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
1422c23434
Split procedures to better respect --output-split-cfuncs ( #2942 )
...
CFuncs only used to be split at procedure (always/initial/final block),
which on occasion can still yield huge output files if they have large
procedures. This patch make CFuncs split at statement boundaries within
procedures. This has the potential to help a lot, but still does not
help if there are huge statements within procedures.
2021-05-11 07:44:07 -04:00
Geza Lore
1a6378291a
Emit 'else if' without nesting. No functional change intended. ( #2944 )
...
Instead of:
if (a) {
x;
} else {
if (b) {
y;
} else {
if (c) {
z;
} else {
w;
}
}
}
Emit:
if (a) {
x;
} else if (b) {
y;
} else if (c) {
z;
} else {
w;
}
2021-05-10 22:15:12 +01: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
Yutetsu TAKATSUKASA
45fbd98ff1
Use V3OptionParser in verilator_coverage ( #2935 )
...
* Internals: Mark unused to avoid compilation failure. No functional change is intended.
* Use V3OptionParser in VlcMain.cpp
2021-05-09 07:04:22 +09: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
Yutetsu TAKATSUKASA
5e56f4d11b
Tests: Enable undefined behavior sanitizor when --sanitize is set. ( #2923 )
2021-05-08 08:20:26 -04:00
Jonathan Drolet
2bf248bf60
Add TRACE_THREADS to CMake ( #2934 )
2021-05-08 08:18:08 -04:00
Yutetsu TAKATSUKASA
39ce2f77f4
Internals: Remove VerilatedVcd::m_suffixesp. No functional change is intended. ( #2933 )
...
Reasons are:
- it's error prone to keep updating whennever m_suffixes is resized
- invalid pointer may be set when there is not signal to trace as in t_trace_dumporder_bad
2021-05-07 20:45:58 -04:00
Yutetsu TAKATSUKASA and Wilson Snyder
9797af0ad4
Introduce a macro VL_ATTR_NO_SANITIZE_ALIGN to suppress unaligned access check in ubsan ( #2929 )
...
* Add VL_ATTR_NO_SANITIZE_ALIGN macro to disable alignment check of ubsan
* Mark a function VL_ATTR_NO_SANITIZE_ALIGN because the function is intentionally using unaligned access for the sake of performance.
Co-authored-by: Wilson Snyder <[email protected] >
2021-05-08 07:16:40 +09: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
Philipp Wagner
44fd205e12
Fix make support for gmake 3.x ( #2920 ) ( #2921 )
...
The "file" make function is only available in gmake 4.x, which isn't
available on RHEL/CentOS 7. Use alternative syntax to support older
gmake versions.
Fixes #2920
2021-05-06 12:07:15 -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
Wilson Snyder
490f9f757d
devel release
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
53d9c30277
Internals: Factor out V3OptionParser from V3Options.cpp. No functional change is intended. ( #2919 )
2021-05-04 06:30:18 +09:00
Geza Lore
76494891cf
Speed up V3Width by pulling skip condition before node iteration.
2021-05-02 16:58:30 +01:00
Geza Lore
008b8d5b56
Speed up sparse V3Number multiplication
2021-05-02 12:34:12 +01: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
2022ec43cf
Update gtkwave from upstream.
2021-04-24 11:00:35 -04:00
Wilson Snyder
15f7741eaf
Version bump
2021-04-24 10:34:05 -04: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
Wilson Snyder
82b878ce42
Internal coverage: locally download codecov script for security ( #2904 )
2021-04-24 09:39:54 -04:00
Wilson Snyder
15802dadf1
Commentary
2021-04-24 09:23:53 -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
Todd Strader
a1cd55225c
more vpi_get_str() ( #2894 )
2021-04-21 08:09:19 -04:00
github action
47e7e21706
Apply clang-format
2021-04-20 13:09:24 +00: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
Wilson Snyder
f579e55706
Commentary
2021-04-13 20:19:08 -04:00
Wilson Snyder
cf7f49e139
Docs: Fix cross-references
2021-04-13 09:25:11 -04:00
Wilson Snyder
39d9ecfe51
Fix cmake version number ( #2881 )
2021-04-13 09:10:29 -04:00
Wilson Snyder
4c2a9aac4c
Docs: Fix make html rule
2021-04-13 09:01:22 -04:00
Todd Strader
70c1eda174
Fix package reported as vpiModule ( #2885 )
2021-04-12 15:00:36 -04:00
Wilson Snyder
ac26d5889f
Fix whitespace
2021-04-11 22:22:43 -04:00
Wilson Snyder
8fcf9da1ad
Docs: Move html generation to single directory
2021-04-11 21:49:48 -04:00
Wilson Snyder
136468ca78
Docs: fix unicode arrows
2021-04-11 21:49:27 -04:00
Wilson Snyder
62b528c2e3
Fix duplicate figures in sphinx docs
2021-04-11 21:14:25 -04:00
Wilson Snyder
ee875d0166
Fix edit-on-git in sphinx docs
2021-04-11 20:52:40 -04:00
github action
04ebba8667
Apply clang-format
2021-04-12 00:39:38 +00:00
Wilson Snyder
a9bd112e0c
Fix version number in doc guide
2021-04-11 20:38:37 -04:00
Wilson Snyder
adce7ecf4b
Documentation has been rewritten into a book format.
2021-04-11 18:55:06 -04:00
HyungKi Jeong
0d6099b2b7
Fix MinGW not supportting 'localtime_r'. ( #2882 )
2021-04-09 10:40:41 -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
github action
52fc134272
Apply clang-format
2021-04-07 13:56:12 +00: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
Wilson Snyder
7242ceb998
Remove old TODO
2021-04-06 18:07:28 -04:00
Wilson Snyder
cb95a7294f
Fix backtrace on bisonpre error
2021-04-06 18:07:28 -04:00
Wilson Snyder
efc116323b
Commentary
2021-04-06 18:07:28 -04:00
Àlex Torregrosa
a29ac44af9
Add FST SystemC tracing ( #2806 )
2021-04-06 16:18:58 -04:00
Wilson Snyder
961a2fef61
Some minor preliminary docs reorg
2021-04-04 22:05:44 -04:00
Wilson Snyder
5658d7238d
Commentary
2021-04-03 13:11:26 -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
c8d8e95d52
Tests: Honor make_top_shell=>0 ( #2847 ).
2021-04-01 08:52:48 -04:00
Wilson Snyder
e9c7f40bb4
Internals: Prefer using over typedef. No functional change.
2021-03-29 21:28:08 -04:00
Wilson Snyder
8c12dcf751
Commentary
2021-03-29 19:37:47 -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
014bffdf5e
CI: Run coverage with SystemC
2021-03-28 12:47:35 -04:00
Wilson Snyder
8992e2ec02
Commentary
2021-03-28 11:50:05 -04:00
Wilson Snyder
f39318bde5
CI: Run coverage with SystemC
2021-03-28 11:47:45 -04:00
Wilson Snyder
e9b5721fb0
Internals: Remove VL_FUNC as __func__ part of C++11
2021-03-28 11:14:51 -04:00
Wilson Snyder
0b17d4f059
CI: Run coverage with SystemC
2021-03-28 11:14:44 -04:00
Wilson Snyder
64802f6f3d
CI: Run coverage with SystemC
2021-03-28 09:55:56 -04:00
Wilson Snyder
9a39c69cb9
CI: Run coverage with SystemC
2021-03-28 09:54:50 -04:00
Wilson Snyder
05db4e41cd
Add better suggestions on some bad options.
2021-03-27 13:14:43 -04:00
Wilson Snyder
d4d87ef300
Examples: Clearer to define sc_time_stamp
2021-03-27 08:55:38 -04:00
Wilson Snyder
5b4448de23
Internals: Add some std::'s. No functional change intended.
2021-03-26 23:22:52 -04:00
Wilson Snyder
e0808bcd15
Commentary
2021-03-26 23:05:04 -04:00
Wilson Snyder
4155de721b
Fix Cygwin example compile issues ( #2856 ).
2021-03-26 23:01:58 -04:00
Wilson Snyder
02d82978e5
Avoid quoting + to appease cygwin bash/gcc --gdbbt ( #2856 )
2021-03-26 22:13:55 -04:00
Wilson Snyder
ca01d6f18d
Internals: Add some std::'s. No functional change intended.
2021-03-26 21:23:18 -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
4e41c13501
Structurize option parser ( #2809 )
...
Add V3OptionsParser that can suggest correct option.
Co-authored-by: Wilson Snyder <[email protected] >
Co-authored-by: github action <[email protected] >
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
2e158d88c1
Commentary. Remove dox comments from private members,
2021-03-20 21:11:53 -04:00
Wilson Snyder
a1ab295b74
Commentary: Cleanup all include/* header comments.
2021-03-20 17:46:00 -04:00
Wilson Snyder
93eabb83b2
Cleanup some python warnings. No functional change.
2021-03-20 17:37:24 -04:00
Wilson Snyder
b6c393e9f0
Add VerilatedCovContext::forcePerInstance ( #2793 ).
2021-03-19 22:24:00 -04:00
Wilson Snyder
3fd3526d76
Ignore _build directories.
2021-03-19 21:53:08 -04:00
Wilson Snyder
82710a55a4
Quieter archive (broke few commits ago)
2021-03-19 20:58:42 -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
07de647cd7
Tests: On first file_identical miscompare look for others
2021-03-18 18:45:34 -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
5da9368032
Update contributors.
2021-03-17 18:39:32 -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
f79e59b226
Commentary
2021-03-16 21:17:55 -04:00
Wilson Snyder
daf5174134
Commentary
2021-03-14 21:26:56 -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
50866e470a
Commentary: Convert Changes to RST format
2021-03-14 14:12:58 -04:00
Wilson Snyder
e6b19d557e
Fix false $dumpfile warning on model save ( #2834 ).
2021-03-14 09:08:17 -04:00
Wilson Snyder
4261f72bd2
Fix exceeding command-line ar limit ( #2834 ).
2021-03-13 15:10:56 -05:00
Wilson Snyder
6a189a1f81
Fix exceeding command-line ar limit ( #2834 ).
2021-03-13 15:09:10 -05: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
1b4a82acde
Verilated signals now use VlUnpacked in place of C arrays. ( #2774 ) partial.
2021-03-13 12:37: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
abcb9cc91b
Add VlWide to WDataInP. Part of coming commit.
2021-03-12 21:16:07 -05:00
Wilson Snyder
689d5b5090
Internals: Add std:: to make_pair. No functional change.
2021-03-12 18:17:49 -05:00
Wilson Snyder
3a55600913
Internals: Restyle with C++11 using replacing typedef
2021-03-12 18:10:45 -05:00
Wilson Snyder
404b323f8c
Internals: Remove some unnecessary typedefs. No functional change.
2021-03-12 17:26:53 -05:00
Wilson Snyder
21e9794fd7
Tests: Mark some tests lint only
2021-03-12 16:06:47 -05:00
Wilson Snyder
1b985da2a1
devel release
2021-03-12 15:52:35 -05:00
Wilson Snyder
1b18a85e76
Version bump
2021-03-12 15:48:31 -05:00
Wilson Snyder
5022e81af7
Commentary
2021-03-12 14:14:21 -05:00
Wilson Snyder
c99f01b7fe
Converted Asciidoc documentation into reStructuredText (RST) format.
2021-03-12 13:52: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
2cde7b0128
Commentary
2021-03-12 08:50:24 -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
Drew Taussig
3651321679
Fix for MSVC++ compile error ( #2831 ) ( #2833 )
2021-03-11 13:30:23 -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
5a4e4b2dcd
Add -Oo to disable const bit tree ( #2830 ).
2021-03-10 17:47:31 -05:00
Wilson Snyder
9483ebefae
Internal code coverage cleanups.
2021-03-07 21:05:15 -05:00
Wilson Snyder
1533693654
Internal coverage: Backout -fkeep-inline-functions.
2021-03-07 21:05:00 -05:00
Wilson Snyder
ac171f16fd
Github: Use 10+10 runners for coverage.
2021-03-07 16:41:46 -05:00
Wilson Snyder
c61d3ee557
Internal coverage: cover inline/static
2021-03-07 15:12:25 -05:00
Wilson Snyder
4592724c1f
Remove sonarCloud
2021-03-07 15:11:57 -05:00
Wilson Snyder
31598e6cb6
Add sonarcloud
2021-03-07 15:05:08 -05:00
Wilson Snyder
041d04b052
Add sonarcloud
2021-03-07 14:59:30 -05:00
Wilson Snyder
878a75c0f3
Add sonarcloud
2021-03-07 14:57:12 -05:00
Wilson Snyder
6ff1911110
Tests: Cover some internal code coverage issues
2021-03-07 13:52:37 -05:00
Wilson Snyder
a9d61a8bff
Increase devel version as next release will be 4.200
2021-03-07 11:40:10 -05:00
Wilson Snyder
8df06a9f08
Commentary
2021-03-07 11:33:55 -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
caa9c99837
Commentary
2021-03-07 08:28:13 -05:00
Wilson Snyder
8c3ad591ae
Internals: Add additional mutex exclusion checks. No functional change.
2021-03-06 18:29:11 -05:00
Wilson Snyder
47dcbd4b8a
Internal: Remove deprecated/insecure functions. No functional change intended.
2021-03-06 10:34:03 -05:00
Yutetsu TAKATSUKASA
cf9ac8270b
Internals: Remove duplicated entry of -quiet-exit. No functional change is intended. ( #2821 )
2021-03-05 23:11:54 -05:00
Wilson Snyder
de774ac4d8
Cleanup python code style issues. No functional change intended.
2021-03-05 22:52:39 -05:00
Wilson Snyder
81ef8fb201
Cleanup python code style issues. No functional change intended.
2021-03-05 21:59:00 -05:00
Wilson Snyder
018d994781
Convert VPI to singleton, part of ( #2660 ).
2021-03-04 19:23:40 -05:00
Yutetsu TAKATSUKASA
97b869e5d8
Internals: Mark some functions of VSpellCheck 'const'. No functional change is intended. ( #2817 )
2021-03-04 22:08:44 +09:00
Wilson Snyder
ed2f8dc097
Internals: Rename some internal functions etc to avoid _V
2021-03-03 22:53:50 -05:00
Wilson Snyder
be31fdcfe4
Use Google-style-guide header guard naming, to avoid __ prefix.
2021-03-03 21:57:07 -05:00
Wilson Snyder
90773f4980
Internals: Avoid coverage base class. No functional change.
2021-03-03 18:58:54 -05:00
Wilson Snyder
92f02c9db7
Tests: Adjust eta
2021-03-03 18:58:17 -05:00
Wilson Snyder
4fa41c5dd8
Tests: Add default filename check to context tests
2021-03-02 20:31:49 -05:00
Wilson Snyder
7cc7afca04
Commentary
2021-03-02 17:39:16 -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
fec5e69ec5
--inhibit-sim is planned for deprecation, file a bug if this is still being used.
2021-02-28 09:26:06 -05:00
Wilson Snyder
05e5fb04ed
Fix formatting vars in protect-lib wrapper
2021-02-27 20:06:48 -05:00
Wilson Snyder
5489bbcc41
Fix deadlock when error in flush routines
2021-02-27 14:43:52 -05:00
Wilson Snyder
dfd54a6abf
devel release
2021-02-25 21:52:04 -05:00
Wilson Snyder
17b75c6428
Version bump
2021-02-25 21:43:33 -05:00
Wilson Snyder
ce78d6e438
Fix flexfix to directly run with python.
2021-02-25 21:19:37 -05:00
Wilson Snyder
dad86b9a84
Tests: Fix leak found by previous commit
2021-02-25 20:38:38 -05:00
Wilson Snyder
e1a48dcb07
Fix spacing
2021-02-25 20:13:13 -05:00
Wilson Snyder
0b501df959
Tests: Rename
2021-02-25 20:05:54 -05:00
Wilson Snyder
57d1404f40
Tests: Cleanup to return instead of exit
2021-02-25 19:26:36 -05:00
Wilson Snyder
2f8fa75691
Tests: On format make tests executable
2021-02-25 19:24:41 -05:00
Wilson Snyder
00c3bafe7d
Tests: With --gdbsim build with ggdb
2021-02-25 19:20:11 -05:00
Wilson Snyder
206bd416aa
Internals: Cleanup some RANDOM functions.
2021-02-24 22:13:24 -05:00
Wilson Snyder
30c34e4975
Internals: Avoid extra typedef. No functional change.
2021-02-24 21:13:00 -05:00
Wilson Snyder
1a5f599626
Commentary
2021-02-24 18:32:21 -05:00
Wilson Snyder
c95e606c0a
Fix range inheritance on port without data type ( #2753 ).
2021-02-24 18:21:13 -05:00
Wilson Snyder
a886f28c85
Internals: Use static_assert
2021-02-23 19:02:04 -05:00
Wilson Snyder
8c2ee6c5ab
With -DVL_NO_LEGACY hide all outdated API routines
2021-02-22 22:59:23 -05:00
Wilson Snyder
6ada513fa5
Internal: Don't serialize debug, turn on each run.
2021-02-22 22:39:57 -05:00
Wilson Snyder
9f381f7617
Remove old SP_AUTO_COVER3 define
2021-02-22 22:27:33 -05:00
Wilson Snyder
48986ccdeb
Remove VL_TIME_I, rarely/never used and too little precision.
2021-02-21 21:56:43 -05:00
Wilson Snyder
0f8e494c76
Tests: Add t_verilated_legacy
2021-02-21 21:49:55 -05:00
Wilson Snyder
9650aefa42
Internals: Cleanup unneeded {}. No functional change
2021-02-21 21:25:21 -05:00
Wilson Snyder
3ae75926e4
Inline old VL_CTOR macros.
2021-02-21 12:12:11 -05:00
Wilson Snyder
18f3df438e
For generated --main, use unique_ptr. No functional change intended.
2021-02-21 11:02:02 -05:00
Andreas Kuster
99c02419c0
Commentary - contributors. ( #2801 )
2021-02-21 08:22:52 -05:00
bb5384bc50
Optimize bit op tree #2186 , #2632 , and #2633 ( #2751 )
...
* Tests:Add some more signals to t_const_opt_red.v
* Optimize bit op trees such as ~a[2] & a[1] & ~a[0] to 3'b010 == (3'111 & a)
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Apply clang-format
* Don't edit and-or tree.
* Call matchBitOpTree() after V3Expand does its job.
* Internals: Rename newNodep -> newp. No functional change is intended.
* Internals: Remove m_sels. No functional change is intended.
* Internals: Remove stringstream. No functional change is intended.
* Internals: Use V3Number::bitIs1(). No functional change is intended.
* Internals: Use V3Number instead of std::map. Resolved laek. Result should be same.
* Internals: Resolve overload of setPolarity. No functional change is intended.
* Internals: Pass failure reason. No functional change is intended.
* Internals: Add VNUser::toPtr(). No functional change is intended.
* Internals: Use user4 instead of std::map. No functional change is intended.
* Catch up with the AST style aftre V3Expand
* Internals: Rename Context to VarInfo. No functional change is intended.
* Add some more test case
* tests:Add stats to tests
Update stats in t_merge_cond.pl as matchBitopTree does some of them.
* insert CCast if necessary
* small optimization to remove redundant bit mask
* No quick exit even when unoptimizable node is found.
* Simplify removing redundant And
* simplify
* Revert "Internals: Add VNUser::toPtr(). No functional change is intended."
This reverts commit f98dce10db .
* Consider AstWordSel and cleanup
* Update test
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Update src/V3Const.cpp
Co-authored-by: Wilson Snyder <[email protected] >
* Apply clang-format
* Internals: rename variables. No functional change is intended.
Co-authored-by: Wilson Snyder <[email protected] >
Co-authored-by: github action <[email protected] >
2021-02-21 18:11:33 +09:00
Wilson Snyder
fd6edd90bc
Fix little endian interface pin swizzling ( #2475 ).
2021-02-20 22:11:20 -05:00
Wilson Snyder
191f76dd90
Increase LINE_TOKEN_MAX ( #2752 ).
2021-02-20 20:55:38 -05:00
Wilson Snyder
975c1b39a9
Fix little endian packed array pattern assignment ( #2795 ).
2021-02-20 20:29:28 -05:00
Yutetsu TAKATSUKASA
62e877ebf0
Add transformation of '^(const ^ a)' -> '(^const) ^ (^a)' ( #2800 )
...
* Add transformation of '^(const ^ a)' -> '(^const) ^ (^a)'
* Use TREEOP instead of TREEOPC
2021-02-20 23:16:55 +09:00
Wilson Snyder
aa99833580
Tests: Show (non-)per-instance coverage
2021-02-18 19:20:53 -05:00
Yutetsu TAKATSUKASA
120322df3e
Remove redundant AND with 1 ( #2791 )
2021-02-18 19:28:49 +09:00
Yutetsu TAKATSUKASA
c1b6faff6d
Add more patterns to t_const_opt_red.v ( #2792 )
2021-02-18 19:28:30 +09:00
Wilson Snyder
22e299e78e
Support concat selection ( #2721 ).
2021-02-17 23:03:47 -05:00
Wilson Snyder
d559190e9e
Tests for future concat select ( #2721 )
2021-02-17 22:57:52 -05:00
Wilson Snyder
c5e5be8e99
Commentary
2021-02-16 22:40:21 -05:00
Wilson Snyder
2b2fe13e79
Tests: Add unsupported test for interface typedef ( #2783 )
2021-02-16 22:31:30 -05:00
Wilson Snyder
64887bd92d
Commentary
2021-02-16 20:40:16 -05:00
Wilson Snyder
95b0e9eef2
Tests: Add missing sc_time_stamp calls.
2021-02-16 20:34:44 -05:00
Wilson Snyder
e44563fddc
Tests: Use vl_time_stamp64 where reasonable
2021-02-16 20:14:30 -05:00
Yutetsu TAKATSUKASA
f2a7f30b09
Commentary: In docs remove +I ( #2789 )
2021-02-15 08:40:49 -05:00
Wilson Snyder
43cf5693d1
Fix shifts by > 32 bit values ( #2785 ).
2021-02-14 11:15:12 -05:00
Wilson Snyder
20b3f0efa0
Fix class extends with VM_PARALLEL_BUILDS ( #2775 ).
2021-02-13 17:29:34 -05:00
Wilson Snyder
2b72218dd8
Fix examples not flushing vcd ( #2787 ).
2021-02-13 17:06:53 -05:00
Wilson Snyder
36eb952b60
Tests: Fix mising init
2021-02-03 19:43:29 -05:00
Wilson Snyder
99afffa949
Tests: Add some verbose statements.
2021-02-03 19:38:44 -05:00
Wilson Snyder
ae311200bf
Tests: Pass tool to allow ifdefs in VPI C code.
2021-02-03 19:29:24 -05:00
Wilson Snyder
828fa80afa
Tests: Add common use_libvpi for multiple simulators
2021-02-03 18:59:27 -05:00
Wilson Snyder
fe0a42eaa8
Tests: Cleanup some unused functions.
2021-02-03 18:50:23 -05:00
Wilson Snyder
153335ff35
Tests: Cleanup some DPI warnings.
2021-02-03 18:30:39 -05:00
github action
7bce15b065
Apply clang-format
2021-02-03 22:39:03 +00:00
Wilson Snyder
2225acd3ec
Tests: Avoid C++11 requirement in TestVpi.h
2021-02-03 17:37:31 -05:00
github action
af5fc4f1ad
Apply clang-format
2021-02-03 19:41:25 +00:00
Àlex Torregrosa
e77e4e1fe6
Improve struct scopes when dumping structs to VCD ( #2776 )
2021-02-03 14:40:21 -05:00
Morten Borup Petersen
843ae2955e
Commentary on incorrectly specified debug level ( #2777 )
...
As seen at https://github.com/verilator/verilator/blob/master/src/V3Options.cpp#L1202
setting --debug enables a debug level of 3.
2021-02-03 14:38:34 -05:00
Samuel Riedel
483516ce4e
Fix build to execute vlcovgen with python3. ( #2773 )
2021-01-28 15:01:33 -05:00
Wilson Snyder
05bb24df6c
Fix $fread extra semicolon inside statements.
2021-01-26 22:20:16 -05:00
Wilson Snyder
31223d4058
Fix $ in filenames ( #2768 ).
2021-01-26 20:10:38 -05:00
Paul Wright
d891e5ac3a
Fix to exclude strings from toggle coverage ( #2766 ) ( #2767 )
2021-01-25 07:33:38 -05:00
Wilson Snyder
3c79e00d24
Commentary ( #2764 )
2021-01-24 20:24:23 -05:00
github action
555269f791
Apply clang-format
2021-01-23 15:32:52 +00:00
Wilson Snyder
64941538b7
Fix TIMESCALE warnings on primitives ( #2763 ).
2021-01-23 10:31:41 -05:00
James Hanlon
fadc6776ec
For --flatten, override inlining of public and no_inline modules ( #2761 )
2021-01-18 08:03:18 -05:00
Yutetsu TAKATSUKASA
878a252437
Internals: Add TREEOPC() that executes only when m_doCpp==true ( #2759 )
2021-01-17 13:53:49 +09:00
Wilson Snyder
5cadabeb2d
Fix argparse difference on ubuntu 18.04
2021-01-16 14:14:39 -05:00
Wilson Snyder
2517bfd0af
Fix argparse difference on ubuntu 18.04
2021-01-16 13:57:56 -05:00
Wilson Snyder
1f105edf69
Internals: Convert astgen to python.
2021-01-16 13:24:14 -05:00
Yutetsu TAKATSUKASA
b82085fbc6
Internals: Use size_t to compare with vector::capacity(). No functional change intended. ( #2758 )
2021-01-16 09:47:27 -05:00
Yutetsu TAKATSUKASA
cea8b65f8c
Internals: Make some accessors in V3Number public ( #2756 ). No functional change.
2021-01-16 09:47:04 -05:00
Wilson Snyder
22260c6b85
Internals: Rename V3Const TREEOPC to TREEOPA.
2021-01-15 22:13:06 -05:00
Pierre-Henri Horrein
3c849d7ce0
Generate SELRANGE instead of errors for potentially unreachable code ( #2625 ) ( #2754 )
...
When using a "if" statement inside an always block, part of the code may
be unreachable. This can be used to avoid errors, but it generated an
error, this commit demotes this to a warning. Partly fixes #2625 .
2021-01-15 07:31:48 -05:00
Wilson Snyder
fb2c243fc7
Build cmake examples with -j
2021-01-13 20:02:21 -05:00
Wilson Snyder
3bb8fbe73b
Internal coverage improvements
2021-01-13 20:01:10 -05:00
Wilson Snyder
ab5d4bd51d
Tests: Abstract out common test comparison
2021-01-12 18:31:23 -05:00
Wilson Snyder
bcf9abf490
Internals: Var rename. No functional change.
2021-01-11 22:42:14 -05:00
Philipp Wagner
b7c26dbea9
Fix to include limits header for std::numeric_limits ( #2747 )
...
Code using `std::numeric_limits` wasn't including the limits header,
leading to a compilation error in Fedora Rawhide (GCC 11.0).
2021-01-11 11:23:54 -05:00
github action
4f1867a4f8
Apply clang-format
2021-01-11 03:55:27 +00:00
Wilson Snyder
bd551a7444
Internals: Convert bisonpre to python3
2021-01-10 22:53:59 -05:00
Wilson Snyder
d4d9e12b66
CI: Fix coverage action (install systemc)
2021-01-10 19:45:43 -05:00
Wilson Snyder
6060acc73d
CI: Fix coverage action
2021-01-10 19:15:39 -05:00
Wilson Snyder
e972668169
CI: Fix coverage action
2021-01-10 18:55:56 -05:00
Wilson Snyder
945496d6d9
devel release
2021-01-10 13:36:46 -05:00
Wilson Snyder
484b76e5b3
Version bump
2021-01-10 13:34:59 -05:00
Wilson Snyder
801d850724
Commentary
2021-01-10 13:14:25 -05:00
Paul Wright
769c0fa318
Fix to ignore coverage on real ports ( #2741 ) ( #2745 )
2021-01-10 12:40:03 -05:00
Julien Margetts
a11700271f
Add LATCH and NOLATCH warnings ( #1609 ) ( #2740 ).
2021-01-05 14:26:01 -05:00
Wilson Snyder
6d80e8f856
Test update
2021-01-05 09:04:31 -05:00
Wilson Snyder
f57c72e5db
clang-format
2021-01-03 12:01:14 -05:00
Wilson Snyder
7eeb930c72
examples: Use unique_ptr
2021-01-03 11:54:43 -05:00
Yutetsu TAKATSUKASA
5b280c1911
Fix hierarchical verilation with explicit setting of default parameter value ( #2738 )
...
* Test hierarchical block that is explicitly set its default parameter value.
* Fix hierarchical verilation when a hierarchical block is instantiated with explicit setting of the default value.
Parameterized hierarchical block must have mangled name even when all parameters have default value,
otherwise the parameterized module will be hidden by protect-lib wrapper.
* rename variable names. No functional change is intended.
2021-01-03 12:19:37 +09:00
Wilson Snyder
1a073fbf5e
Fix vpiLeftRange on little-endian memories ( #2696 ).
2021-01-02 22:00:13 -05:00
Wilson Snyder
83d978c2cd
Fix generate for unrolling to be signed ( #2730 ).
2021-01-02 21:43:13 -05:00
Wilson Snyder
a17e2375b3
CI: Need flexlexer for internal coverage testrun
2021-01-02 21:42:41 -05:00
Yutetsu TAKATSUKASA
c0a6858c42
Refactor V3Param ( #2736 )
...
* Use unique_ptr to manage lifetime. Slightly changed variable name. No functional change is intended.
* Let ParameterizedHierBlocks::areSame() public. No functional change is intended.
2021-01-03 07:21:45 +09:00
Yutetsu TAKATSUKASA and Wilson Snyder
7a18adc716
Emit timescale in hierarchical block only when timescale is specified ( #2735 )
...
* Add a test for hierarchical verilation without timescale
* Emit timeunit in hierarchical wrapper only when it is specified in the input design or command line option.
* Update src/V3AstNodes.h
Co-authored-by: Wilson Snyder <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
2021-01-02 08:31:27 +09:00
Wilson Snyder
bd602d0e2d
Copyright year update
2021-01-01 10:29:54 -05:00
Wilson Snyder
72b2df30f8
Fix tracing empty sc module ( #2729 ).
2020-12-28 11:13:58 -05:00
Wilson Snyder
d6c5d31dcd
docker: Use sed to avoid perl
2020-12-23 19:23:23 -05:00
Wilson Snyder
84c323188e
Internals: yapf reformat vlcovgen. No functional change.
2020-12-23 19:17:46 -05:00
Wilson Snyder
cbd1bd5dad
Tests: Fix some VPI coverage holes
2020-12-23 19:15:00 -05:00
Wilson Snyder
97255dc835
Tests: Test future if condition optimization ( #2726 )
2020-12-23 18:23:47 -05:00
Wilson Snyder
9f8b17230a
Cleanup extra space on 'VlWide<...>>'
2020-12-23 18:09:12 -05:00
Wilson Snyder
93476a7372
Internals: Convert vlcovgen to python3. No functional change.
2020-12-23 16:54:05 -05:00
Wilson Snyder
b8b9170f9d
Remove Unix::Processors dependency
2020-12-23 16:07:14 -05:00
Wilson Snyder
575539996b
Fix manifest for src/config_rev in last commit
2020-12-23 16:07:04 -05:00
Wilson Snyder
922eab5f93
Internals: Convert config_rev, cppcheck_filtered, flexfix to python3
2020-12-23 15:41:14 -05:00
Wilson Snyder
b7a533109d
Fix cppcheck warnings. No functional change intended.
2020-12-23 15:22:02 -05:00
Wilson Snyder
941e5c659a
Fix cppcheck parse error
2020-12-23 15:22:02 -05:00
Unai Martinez-Corral
e37a93bffb
CI: (fix) check that CCACHE_DIR is set, before execing mkdir
2020-12-23 19:52:37 +01:00
Unai Martinez-Corral and Wilson Snyder
6e3de7bfd1
CI: exploit concurrency ( #2687 )
...
Co-authored-by: Wilson Snyder <[email protected] >
2020-12-23 18:53:05 +01:00
Nandu Raj
1124829500
Fix $urandom_range maximum value ( #2723 )
2020-12-22 07:52:38 -05:00
Yutetsu TAKATSUKASA
4096dee598
Use files from gtkwave3-gtk3, not from gtkwave3 ( #2718 )
2020-12-21 07:06:03 +09:00
HyungKi Jeong
36f41e08a5
Fix to allow inheriting 'VerilatedVcdFile' class. ( #2720 )
2020-12-20 12:18:09 -05:00
Wilson Snyder
28ff71b1bf
Internals: Misc refactoring from dcache branch. No functional change.
2020-12-19 20:46:10 -05:00
Wilson Snyder
db276946b4
Internals: Convert internal code_coverage to python3.
2020-12-19 20:29:09 -05:00
Wilson Snyder
beb03be731
Internals: convert install_test and dot_importer to python3.
2020-12-19 12:48:22 -05:00
Wilson Snyder
b93e409f0e
Optimize additional display statements ( #2702 ).
2020-12-19 11:12:47 -05:00
Yutetsu TAKATSUKASA
788de3ad24
CI: Enable address sanitizer for vlt tests. ( #2715 )
2020-12-19 11:12:15 -05:00
Yutetsu TAKATSUKASA
cb4ddd3213
Update files from GTKWave f119b35816e605e753fc1a24ae121a3787615b26 ( #2716 )
2020-12-19 09:13:18 -05:00
Wilson Snyder
7e94b3a4fa
Examples: Explicitly refer to PYTHON3 not PYTHON
2020-12-18 23:07:21 -05:00
Wilson Snyder
ca9bdc6e70
Tests: Ignore github action commits
2020-12-18 23:06:42 -05:00
github action
37ebc6e634
Apply clang-format
2020-12-19 03:55:46 +00:00
Wilson Snyder
457e926168
Use yapf3 and add to CI
2020-12-18 22:54:06 -05:00
Wilson Snyder
ec4e408b2b
Add yapf and reformat python code
2020-12-18 22:34:14 -05:00
Wilson Snyder
a16ebaf79c
Remove some stale and unsupported maintainer utilities
2020-12-18 21:57:48 -05:00
Wilson Snyder
1e34ae31d2
Fix vpi_release_handle to be called implicitly per IEEE ( #2706 ).
2020-12-18 21:16:57 -05:00
Wilson Snyder
43811821d6
Backout GTKwave update 7deac509c6
2020-12-18 21:03:02 -05:00
Wilson Snyder
3797b5bca1
Check for vpi_release_handle even when no VL_DEBUG
2020-12-18 20:46:43 -05:00
Wilson Snyder
7deac509c6
GTKwave updates from upstream.
2020-12-18 19:33:57 -05:00
Wilson Snyder
c39a8b439a
Internals: Use emplace instead of insert(make_pair(...)). No functional change intended.
2020-12-18 18:24:47 -05:00
Wilson Snyder
d0c4aee7b5
Tests: clang-format
2020-12-17 22:44:50 -05:00
Todd Strader
a88965a124
Fix scope map for multiple construction ( #2710 )
2020-12-17 12:21:40 -05:00
James Hanlon and James Hanlon
c18cbca813
Add support for package imports preceeding parameters in interfaces ( #2714 )
...
Co-authored-by: James Hanlon <[email protected] >
2020-12-17 11:26:53 -05:00
Yutetsu TAKATSUKASA
e4eab56495
Add a workflow that calls clang-format and commit. ( #2713 )
...
* Add a workflow that calls clang-format and commit.
2020-12-17 23:41:10 +09:00
Wilson Snyder
deb5531e54
Tests: Make explicit some IEEE-mandated freeing of VPI handles
2020-12-16 20:57:02 -05:00
Wilson Snyder
9bb353c577
Tests: Make explicit some IEEE-mandated freeing of VPI handles
2020-12-16 20:36:04 -05:00
Wilson Snyder
a816c2b75e
Tests: Fix hardcoded path in last test
2020-12-16 19:38:35 -05:00
Wilson Snyder
ff702174d8
Report double calls to vpi_release_handle when using VL_DEBUG
2020-12-16 19:10:17 -05:00
Wilson Snyder
d5d6598d75
Internals: spacing
2020-12-16 19:08:10 -05:00
Wilson Snyder
0abf18f618
Fix supporting begin_keywords 1364-2001-noconfig
2020-12-16 18:40:45 -05:00
Wilson Snyder
6adda241c9
Fix $urandom_range with no second argument
2020-12-16 18:34:49 -05:00
Yutetsu TAKATSUKASA
ce9293fcb3
Fix memory leaks found in trace related tests ( #2708 )
...
* Fix memory leak of t_trace_cat and t_trace_cat_renew
* Fix memory leak of t_trace_c_api
* Fix memory leak in t_trace_public_func and t_trace_public_func_vlt
* Fix memory leaks in t_flat_build (and probably more).
* Use unique_ptr in testcases
2020-12-17 08:31:47 +09:00
Wilson Snyder
d6168f654e
Update contributor URL ( #2711 )
2020-12-16 18:02:54 -05:00
Yutetsu TAKATSUKASA
738ee3d4eb
Fix memory leaks when using shared protect-lib ( #2707 )
...
* Guarantee mechanism to initialize just once is now in VerilatedInitializer. No functional change is intended.
* Make sure to initialize Verilated::NonInitialized just once. Fixes
memory leak in t_prot_lib_shared and t_hier_block_prot_lib_shared.
* Call setup() and teardown() of Verilated::NonSerialized.
2020-12-16 12:30:58 -05:00
Todd Strader
b75901b3eb
Fix VPI module tree ( #2704 )
2020-12-16 11:46:57 -05:00
Yutetsu TAKATSUKASA
f98782c061
Tests: Fix use-after-free in fst testcases ( #2709 )
2020-12-16 10:00:13 -05:00
Wilson Snyder
3039735648
Tests: Fix various test leaks ( #2703 ).
2020-12-15 23:12:13 -05:00
Wilson Snyder
c00c26c705
Remove some comments emitted in output.
...
* Comments were disabling some optimizations.
* Suspect rarely referred to.
* Sometimes incorrectly placed due to other optimizations.
2020-12-15 22:55:17 -05:00
Wilson Snyder
084ba6711b
Tests: Fix various test leaks ( #2703 ).
2020-12-15 22:09:40 -05:00
Wilson Snyder
c54360485e
Fix over-iterating dpi dimensions ( #2703 ).
2020-12-15 22:09:24 -05:00
Yutetsu TAKATSUKASA
d9ef4ac435
Rename --asan to --sanitize ( #2705 )
2020-12-15 21:07:27 -05:00
Yutetsu TAKATSUKASA and Wilson Snyder
176cc5a196
Add --asan option that enables address sanitizer to the test driver ( #2700 )
...
* Experimentally add --vltasan which enables address sanitizer
Co-authored-by: Wilson Snyder <[email protected] >
2020-12-16 07:33:26 +09:00
Yutetsu TAKATSUKASA
7821da6ad5
Fix DPI-C and protect-lib if port is implicit logic ( #2699 )
2020-12-15 09:51:14 -05:00
Wilson Snyder
5ee30e271e
When combine functions, favor keeping non-slow name.
2020-12-13 21:53:55 -05:00
Wilson Snyder
4ce48788c5
Always use verilated_heavy ( #2701 ).
...
On test suite adds ~7% runtime but will simplify logic and enable some
future changes.
Most large designs I saw were already using verilated_heavy as were using
strings, queues, associative arrays, classes, $readmem, $writemem, or
$valueplusargs.
2020-12-13 19:40:05 -05:00
Wilson Snyder
3590f7e206
Remove unused VL_DISABLE_INTRINSICS, use VL_PORTABLE_ONLY instead
2020-12-13 19:14:09 -05:00
Wilson Snyder
882b310897
Fix little endian packed array counting ( #2499 ).
2020-12-13 16:23:59 -05:00
Wilson Snyder
82fc142c1c
Add error on real to non-real output pins ( #2690 ).
2020-12-13 13:33:48 -05:00
Wilson Snyder
5898c22b3b
Internals: Cleanup variables for pin interconnection
2020-12-13 13:22:42 -05:00
Yutetsu TAKATSUKASA
13e88106da
Internals:Cleanup dpiTypesToStringConverter. No functional change is intended. ( #2698 )
2020-12-13 16:05:06 +09:00
Marlon James
457d1a66f2
Fix VPI memory word indexing ( #2695 )
...
* Test that indexing into memory word fails
* VPI: don't index into memory word
Memory and memory words share a VerilatedVar, so check for memory word before attempting to index.
2020-12-12 22:47:47 -05:00
Wilson Snyder
b04a1caeac
In warnings, rename cells to instances to match IEEE
2020-12-12 22:43:55 -05:00
Wilson Snyder
53c4c7d540
Fix error format ( #2095 ).
2020-12-12 22:26:50 -05:00
Wilson Snyder
fb689bbb19
Fix clang warning, recent change
2020-12-12 22:16:10 -05:00
Wilson Snyder
e2e3cc8463
Better error on inside on unpacked, queues, etc ( #2566 )
2020-12-12 21:20:42 -05:00
Wilson Snyder
6061744c4d
Tests: Add t_dynarray_unpacked ( #2314 )
2020-12-12 20:56:35 -05:00
Wilson Snyder
8e25d2c61d
Commentary ( #2095 ).
2020-12-12 20:26:50 -05:00
Wilson Snyder
18f8c8a14f
Fix error when dotted refers to missing module ( #2095 ).
2020-12-12 20:25:00 -05:00
Wilson Snyder
44765e03a3
Internals: clang-format
2020-12-12 20:22:28 -05:00
Wilson Snyder
3f119f5647
Fix --no-decoration to turn off DPI import/export locations
2020-12-12 19:33:18 -05:00
Wilson Snyder
517fdb7587
Support queue of arrays
2020-12-12 19:19:32 -05:00
Wilson Snyder
0ca72f8098
For debug build, mv to prevent text busy error durring regression
2020-12-12 19:19:32 -05:00
Yutetsu TAKATSUKASA
28d139149a
Test: Add unpacked array of 1 bit wire to DPI tests ( #2694 )
2020-12-13 07:28:37 +09:00
Wilson Snyder
81ce2cbc05
Internals: Params cleanups in prep for dedot.
2020-12-12 15:48:10 -05:00
Wilson Snyder
d7af6436a2
Fix genblk naming to match IEEE ( #2686 ).
2020-12-12 12:57:11 -05:00
Yutetsu TAKATSUKASA
c80ca8d03e
Test: Use non-blocking assignment as DRIVE macro does in t_prot_lib ( #2693 )
2020-12-12 23:07:12 +09:00
Wilson Snyder
93304f3b82
Internals: Reorder library code. No functional change.
2020-12-12 08:58:03 -05:00
Marlon James
30546afdab
Fix VPI range iterator null return ( #2691 )
...
* Test that range iterator exhausts after 1 dimension
* Separate range iterator from range object
Range iterators should return NULL after all ranges have been returned
2020-12-12 08:11:08 -05:00
Wilson Snyder
82d8fe0c27
Internal coverage fixes
2020-12-10 22:01:56 -05:00
Wilson Snyder
4db673b2ff
ci: Fix Ubuntu-18.04/16.04 runs
2020-12-10 20:22:00 -05:00
Wilson Snyder
a5fa468343
Fix cast from packed structs, broke with $cast ( #2684 )
2020-12-10 18:36:06 -05:00
Wilson Snyder
2df1b72ce2
CI: Add separate contributors action ( #2689 )
2020-12-10 18:12:26 -05:00
Unai Martinez-Corral
2998890647
CI: remove unused 'ci-ccache-size.bash' ( #2688 )
2020-12-10 15:59:31 -05:00
Unai Martinez-Corral
8e178ca4a9
CI: Misc style cleanups ( #2683 )
2020-12-10 12:33:26 -05:00
Unai Martinez-Corral
d94a8a28fa
Fix Windows msys2, define WEXITSTATUS ( #2685 )
2020-12-10 12:20:54 -05:00
Unai Martinez-Corral
9a32158b5e
CI: Cleanup ci/coverage to use a matrix to define coverage jobs ( #2682 )
...
* contributors: add Unai Martinez-Corral
* ci/coverage: use a matrix to define coverage jobs
2020-12-10 11:15:30 -05:00
Wilson Snyder
b15dd3f898
Commentary
2020-12-10 09:06:01 -05:00
Wilson Snyder
af0e535015
Internals: Remove Xnor node type.
...
Convert to Not(Xor(x)) up front, to help code coverage and optimize out extra nots sooner.
2020-12-10 00:04:10 -05:00
Wilson Snyder
5b2844e1be
Fix instability in last commit from dangling deletes.
2020-12-09 23:57:40 -05:00
Wilson Snyder
53ce708294
Fix showing reference locations for BLKANDNBLK ( #2170 ).
2020-12-09 23:07:11 -05:00
Wilson Snyder
a1322635fd
Internal coverage improvements
2020-12-09 22:32:09 -05:00
Wilson Snyder
ab4ad9965c
Fix DPI open array handling issues, and do internal coverage ( #2350 ).
2020-12-09 22:15:34 -05:00
Wilson Snyder
2273fa62d9
CI: coverage action parallelism
2020-12-09 22:12:04 -05:00
Wilson Snyder
cca874dc83
CI: coverage action parallelism
2020-12-09 21:35:48 -05:00
Wilson Snyder
274475aefd
CI: coverage action parallelism
2020-12-09 21:33:22 -05:00
Wilson Snyder
a91cf18d09
CI: coverage action parallelism
2020-12-09 21:30:31 -05:00
Wilson Snyder
a7723ee9a5
CI: coverage action parallelism
2020-12-09 21:13:09 -05:00
Wilson Snyder
28ee80c310
CI: coverage action parallelism
2020-12-09 21:10:34 -05:00
Wilson Snyder
26da90ffce
CI: coverage action parallelism
2020-12-09 20:57:17 -05:00
Wilson Snyder
9eb211a8d4
CI: coverage action parallelism
2020-12-09 20:55:01 -05:00
Wilson Snyder
75c2884fea
CI: coverage action parallelism
2020-12-09 20:54:06 -05:00
Wilson Snyder
f49f86c7ce
CI: coverage action parallelism
2020-12-09 20:47:02 -05:00
Wilson Snyder
a1989161d8
CI: coverage action parallelism
2020-12-09 20:38:41 -05:00
Wilson Snyder
f11fa61ecf
CI: coverage action parallelism
2020-12-09 20:37:11 -05:00
Wilson Snyder
9a904b97b2
CI: coverage action parallelism
2020-12-09 20:30:18 -05:00
Wilson Snyder
7d05be802d
Misc internal coverage hole and related bug fixes
2020-12-09 19:18:12 -05:00
Krzysztof Bieganski
5e7b0d526d
Support 'randc' as alias to 'rand' ( #2680 )
...
* Add alias 'randc' to 'rand'
* Make the 'RANDC' warning; add tests
2020-12-09 19:17:30 -05:00
Yutetsu TAKATSUKASA
ff3d35ca61
Support unpacked array port in protect-lib and hierarchical verilation ( #2672 )
...
* Add a test to use unpacked array port in hierarchical verilation and protect-lib.
* V3EmitV supports unpacked array variables
* Can Emit local unpacked array properly
* Update golden of t_debug_emitv
* Support unpacked array port in protect-lib
* Remove t_prot_lib_unpacked_bad test as unpacked array is supported now.
2020-12-09 08:29:45 +09:00
Wilson Snyder
c23de458ed
Misc internal coverage cleanups
2020-12-08 08:40:22 -05:00
Wilson Snyder
90e0c9bdcd
CI: internal coverage updates
2020-12-08 08:00:24 -05:00
Wilson Snyder
7892c5af13
Tests: Fix fstrobe instability
2020-12-08 07:49:48 -05:00
Wilson Snyder
0a0e4dce09
Internal coverage: default VERILATOR_ROOT setting.
2020-12-08 07:12:57 -05:00
Wilson Snyder
8e06b1e925
Misc internal coverage cleanups
2020-12-07 23:15:29 -05:00
Wilson Snyder
a15540dfdd
Tests: Add coverage github action
2020-12-07 21:57:10 -05:00
Wilson Snyder
3c680ddf22
Tests: Test some warnings without tests.
2020-12-07 20:30:16 -05:00
Wilson Snyder
47eeef485d
Report UNUSED on parameters, localparam and genvars ( #2627 ).
2020-12-07 19:49:50 -05:00
Wilson Snyder
251812638d
Internals: Rename accessor. No functional change.
2020-12-07 18:50:31 -05:00
Krzysztof Bieganski
cf7ea06b5d
Support randomize() class method and rand
2020-12-07 17:55:22 -05:00
Wilson Snyder
cd248f6bd7
Internals: Make consistent left/right/lo/hi accessors to ranges.
...
Change order of Range to store always left:right.
XML output changes to now show left:right (previously info was lost), no other change intended.
2020-12-06 21:13:56 -05:00
Wilson Snyder
b32d530000
Error message cleanup
2020-12-06 20:33:08 -05:00
Wilson Snyder
570631380b
Internal: Misc cleanups. No functional change intended.
2020-12-06 13:49:44 -05:00
Wilson Snyder
d5f88cbf78
Tests: Rename some tests.
2020-12-06 11:37:56 -05:00
Wilson Snyder
74ef35d3b3
Support $cast and new CASTCONST warning.
2020-12-05 22:58:36 -05:00
Wilson Snyder
8b8ebb0e43
Internals: Use restorer. No functional change.
2020-12-05 22:21:30 -05:00
Yutetsu TAKATSUKASA
301b4ff1ad
Internals: Introduce TaskDpiUtils in V3Task ( #2670 )
...
* Internals:Simplify V3Task.cpp. no functional change intended
* Internals:Introduce TaskDpiUtils in V3Task.cpp. No functional change intended
2020-12-06 12:09:48 +09:00
Yutetsu TAKATSUKASA
5476ff93e2
Ignore some files generated by modelsim ( #2669 )
2020-12-05 21:55:56 -05:00
Yutetsu TAKATSUKASA
375ea169b9
Internals: Apply verilog-mode. No functional change is intended. ( #2671 )
2020-12-05 21:55:06 -05:00
Wilson Snyder
9c2785b49b
Internals: Swap lhs/rhs $cast args.
2020-12-05 17:11:00 -05:00
Wilson Snyder
8582aed66a
Add --top option as alias of --top-module.
2020-12-05 16:58:17 -05:00
Wilson Snyder
9bd5cd4ef3
Internals: Track null separately from '0
2020-12-05 16:49:10 -05:00
Wilson Snyder
f858dd44ac
Fix :: references to forward classes
2020-12-05 16:23:20 -05:00
Wilson Snyder
e69736124f
Debug: Less verbose link.
2020-12-05 16:16:37 -05:00
Wilson Snyder
f0e691a1b8
Handle unsupported parameters through link phase
2020-12-05 11:30:14 -05:00
Wilson Snyder
5fb834e41e
Fix passing parameter type instantiations by position number.
2020-12-05 11:00:30 -05:00
Yutetsu TAKATSUKASA
7f6d4ac359
Use both gcc and clang in CI ( #2667 )
...
* Remove remaining TRAVIS_ variable
* Use both gcc and clang.
2020-12-05 12:36:04 +09:00
Wilson Snyder
666d0ab552
Standard YAML spacing is 2 spaces.
2020-12-04 17:39:53 -05:00
Wilson Snyder
b9f2400d17
Rename workflow to appease badges
2020-12-04 17:11:00 -05:00
Wilson Snyder
85b2c6b6c7
Github actions badge fix
2020-12-04 17:06:18 -05:00
Yutetsu TAKATSUKASA and Wilson Snyder
73a7595335
Add the initial version of CI using GitHub Actions ( #2665 )
...
* Add the initial version of CI using GitHub Actions
* Update .github/workflows/check_pr.yml
Co-authored-by: Wilson Snyder <[email protected] >
* remove setting for travis
* rename travis-*.bash to ci-*.bash
* Rename TRAVIS_ variables to CI_
* install ccache and libsystemc(-dev) in ci-install.bash
* Use CI_ variables and Ubuntu-20.04 that provides SystemC
* call ccache maintenance
Co-authored-by: Wilson Snyder <[email protected] >
2020-12-05 00:30:46 +09:00
Wilson Snyder
38c6085f54
devel release
2020-12-02 20:19:04 -05:00
Wilson Snyder
b350b6a0ff
Version bump
2020-12-02 20:09:23 -05:00
Wilson Snyder
80564a8f89
Remove vgen test to avoid Bit::Vector for testing.
2020-12-02 20:06:07 -05:00
Yuri Victorovich
016611021d
Fix the default GNU Make executable name on FreeBSD ( #2553 )
2020-12-02 19:27:53 -05:00
Wilson Snyder
fa20614277
Fix Ubuntu 16.04 LTS warning
2020-12-02 19:20:03 -05:00
Wilson Snyder
1e69167191
Internals: Move function in V3Width. No functional change.
2020-12-02 18:51:29 -05:00
Wilson Snyder
faa5edc068
Add TspStateBase destructor ( #2620 ).
2020-12-02 07:37:34 -05:00
Wilson Snyder
e3c32adad4
Rename static/thread misnamed variables. No functional change.
2020-12-01 19:32:01 -05:00
Wilson Snyder
b054d937cb
Rename static/thread misnamed variables. No functional change.
2020-12-01 19:01:20 -05:00
Wilson Snyder
212e8fb14b
Internals: Cleanup some inlines, use constexpr. No functional change intended.
2020-12-01 18:49:03 -05:00
Wilson Snyder
014e43f0ef
Reset index counts on clearing verilated_cov (static removal)
2020-12-01 18:30:25 -05:00
Wilson Snyder
d21b4e3fc7
Internal cast preparatory cleanups.
2020-11-29 18:26:06 -05:00
Wilson Snyder
0818d88113
Tests: Cast enum test
2020-11-29 16:59:08 -05:00
Wilson Snyder
77ec2dc875
Internals: Rename some CI comments
2020-11-29 15:06:29 -05:00
Wilson Snyder
665e8edaff
Support $monitor and $strobe.
2020-11-29 11:31:38 -05:00
Wilson Snyder
67103d346b
Fix $fwriteh/$fwriteo
2020-11-29 10:53:44 -05:00
Wilson Snyder
aebb54444e
Internals: Favor NodeProcedure. No functional change intended.
2020-11-29 09:50:30 -05:00
Wilson Snyder
a54ac52a35
Internals: Use 'Bit' where mean 2-state type. No functional change.
2020-11-29 08:23:36 -05:00
Wilson Snyder
aa360052a8
Internals: Code movement, no functional change.
2020-11-28 22:01:11 -05:00
Wilson Snyder
e09f039a36
Internals: Remove dead code. No functional change.
2020-11-28 21:43:37 -05:00
Wilson Snyder
ff262fc4fb
Support type(t) static casting
2020-11-28 17:29:21 -05:00
Wilson Snyder
9a9931fb9d
Support complex function arguments.
2020-11-28 13:46:14 -05:00
Wilson Snyder
30686d8550
Support passing of objects to functions
2020-11-28 12:43:24 -05:00
Wilson Snyder
05f3fd7c6e
Fix class new with math.
2020-11-28 12:26:44 -05:00
Wilson Snyder
e14319b401
Internals: Refactor V3Param through code movement only. No functional change intended.
2020-11-28 12:04:29 -05:00
Wilson Snyder
1299b70945
Internals: Pass class parameters through link.
2020-11-27 22:48:42 -05:00
Wilson Snyder
cf2810db8b
Change -sv option to select 1800-2017 instead of 1800-2005.
2020-11-27 21:49:47 -05:00
Wilson Snyder
d77beecc6e
Fix $countbits(..., 'z)
2020-11-27 21:34:40 -05:00
Wilson Snyder
0c6bd42da3
Fix $countbits(..., 'x)
2020-11-27 20:51:32 -05:00
Wilson Snyder
5091298fae
Internals: Cleanup V3Unknown. No functional change intended.
2020-11-27 20:25:02 -05:00
Wilson Snyder
cef7610b14
Fix crash on virtual interfaces.
2020-11-27 20:02:17 -05:00
Wilson Snyder
ed268805ce
Lint check for pure virtual in non-virtual class.
2020-11-27 19:53:04 -05:00
Wilson Snyder
123d1af29d
Fix crash on non-class static function
2020-11-27 14:58:50 -05:00
Wilson Snyder
cc307626c0
Tests: Add class name test.
2020-11-27 10:34:31 -05:00
Wilson Snyder
963fd0664d
Fix class-in-module issues
2020-11-27 09:42:51 -05:00
Wilson Snyder
4643d6e883
Internals: Refactor V3Param through code movement only. No functional change intended.
2020-11-27 09:17:44 -05:00
Wilson Snyder
d89fc05da1
Internals: Refactor V3Param through code movement only. No functional change intended.
2020-11-27 09:04:56 -05:00
Wilson Snyder
84d7380588
Internals: Param immediate delete, in prep for next commit. No functional change intended.
2020-11-27 08:50:29 -05:00
Wilson Snyder
04febb1944
Internals: Move V3Param code. No functional change.
2020-11-26 15:03:55 -05:00
Wilson Snyder
d56b923eaa
Fix 'randomize() with {}' crash
2020-11-26 11:50:50 -05:00
Wilson Snyder
a37866ee92
Support 'super'.
2020-11-26 11:06:59 -05:00
Wilson Snyder
1a92a44c7d
Internals: Assert on misexpected 'new'.
2020-11-26 09:38:47 -05:00
Wilson Snyder
60a1d25a96
Fix extern function member references.
2020-11-26 08:55:32 -05:00
Wilson Snyder
ad21f2e850
Fix 'this' in extern functions.
2020-11-26 08:28:53 -05:00
Wilson Snyder
ffbae97a3d
Tests: Make t_lint_syncasyncnet_bad etc tolerate -Oi.
2020-11-25 21:54:50 -05:00
Wilson Snyder
380137a402
Fix internal pointer shown on CLKDATA warnings
2020-11-25 21:34:56 -05:00
Wilson Snyder
ac2058c7ec
Tests: Fix t_unopt_combo_waive with -Oi
2020-11-25 21:18:13 -05:00
Wilson Snyder
de931d6a97
Fix LHS is not a lvalue when using tristate with -Oi.
2020-11-25 21:09:25 -05:00
Wilson Snyder
f2d8e45d72
For performance, use unordered_set/map where possible. No functional change intended.
2020-11-25 20:57:30 -05:00
Wilson Snyder
085ef5fc05
Fix extern function var refs getting errors.
2020-11-25 20:05:44 -05:00
Wilson Snyder
6095efd84e
Check for proper 'local' and 'protected' ( #2228 ).
2020-11-25 07:03:01 -05:00
Wilson Snyder
114ab1378f
Internals: Track class package on membersels
2020-11-24 23:36:09 -05:00
Wilson Snyder
8622c754b7
Fix unstable statistic
2020-11-24 23:35:44 -05:00
Wilson Snyder
bf24fa9478
Fix access to non-overridden base class variable ( #2654 ).
2020-11-24 22:46:02 -05:00
Wilson Snyder
e1c45440fc
Internals: Rename packagep(). No functional change.
2020-11-24 21:56:03 -05:00
Wilson Snyder
b0cb43b2f2
Fix not iterating some extended classes depending on declaration order.
2020-11-24 21:41:32 -05:00
Wilson Snyder
dc1f44840d
Internals: Fix not clearing packagep on some assignments. Should affect assertions only.
2020-11-24 21:34:11 -05:00
Wilson Snyder
fd21a41acd
Internals: Minor cleanups before class fix ( #2654 ). No functional change intended.
2020-11-24 21:28:26 -05:00
Wilson Snyder
cf09a9b6d2
Commentary
2020-11-24 18:45:36 -05:00
Wilson Snyder
dc306cf371
Internal debug: avoid segflt with gdb "pnt"
2020-11-24 18:35:12 -05:00
Wilson Snyder
35374f09b4
Add error on class extending itself
2020-11-24 18:15:49 -05:00
Wilson Snyder
e85a2e860e
Support 'with item.index'.
2020-11-23 23:18:58 -05:00
Wilson Snyder
103ba1fb6d
Commentary
2020-11-20 21:48:11 -05:00
Wilson Snyder
b684995292
Support $random and $urandom seeds.
2020-11-19 21:32:33 -05:00
Wilson Snyder
c371a63d41
Internals: Fix missing final. No functional change.
2020-11-19 08:23:15 -05:00
Yutetsu TAKATSUKASA
0102efd4ea
Support unpacked array in DPI-C ( #2648 )
...
* Add tests for unpacked array in DPI-C
* Add more generic parameter generator to AstNodes
* Supports multi dimensional array in DPI ( DPI argmuments <=> Verilator internal type conversion)
consider typedef in V3Task
fix export test
fix inout for scalar
support export func of time
* V3Premit does not show an error for wide words nor ArraySel
* Unnecessary pack func for unapcked array does not appear anymore
* Support unpacked array in runtime header
- Add an overload for lvalue VL_CVT_PACK_STR_NN
- Allow conversion from void *
* touch up tests for codacy advices
* resolve free functions. no functional change intended.
2020-11-19 22:02:58 +09:00
Wilson Snyder
abfee1270f
Improve internal code coverage
2020-11-18 22:21:48 -05:00
Wilson Snyder
5992d678be
Fix clang error, broke last commit.
2020-11-18 22:18:29 -05:00
Wilson Snyder
b6ded59c2b
Internals: Use and enforce class final for ~5% performance boost.
2020-11-18 21:32:16 -05:00
Wilson Snyder
c0888c1b0f
Internals: Use newline instead of endl to avoid unneeded flush.
2020-11-18 21:03:23 -05:00
Wilson Snyder
fa77141519
Fix unpacked array parameters near functions ( #2639 ).
2020-11-18 20:12:14 -05:00
Wilson Snyder
b3760911e7
Internals: Param minor cleanups. No functional change intended.
2020-11-18 19:50:47 -05:00
Yutetsu TAKATSUKASA
b500e57991
Add an overload of VL_CVT_PACK_STR_NN for lvalue ( #2651 )
2020-11-19 06:52:03 +09:00
Yutetsu TAKATSUKASA
19e4013ab5
Allow conversion from const void * to QData ( #2650 )
2020-11-18 23:44:45 +09:00
Wilson Snyder
82b2af3b83
Commentary
2020-11-17 22:48:37 -05:00
Wilson Snyder
e6f7510895
Add check for rand_mode/constraint_mode.
2020-11-17 22:14:18 -05:00
Wilson Snyder
2f718b9ea0
Show IEEE reference in array port message, plus internal cleanups.
2020-11-17 21:10:50 -05:00
Marlon James
899e7bacb2
Fix VPI callback list iteration ( #2644 )
...
The end iterator always points to an element past the end of the list.
When new elements are added to the back of the list, they are inserted
before the end iterator.
Instead, track the last element in the list at the start of processing
and stop after it's been processed.
2020-11-17 17:19:51 -05:00
Tomasz Gorochowik
5b3717b369
Tests: Memory clean up in tests ( #2645 )
...
This patch normalizes what the tests do before exiting. After this
change each test should call final on the top module and explicitly
free the top module object before exiting.
2020-11-17 06:37:55 -05:00
Wilson Snyder
1e7c61b23e
Internals: Refactor huge func in V3Param. No functional change intended.
2020-11-16 22:35:51 -05:00
Marlon James
0e1e380a55
Fix test for callCbs() so it can fail ( #2613 )
2020-11-16 21:00:09 -05:00
Wilson Snyder
1b0a48ea02
Internals: Use C++11 = default where obvious. No functional change intended.
2020-11-16 19:56:16 -05:00
Wilson Snyder
70b3a599ce
Fix trace signal names getting hashed ( #2643 ).
2020-11-16 18:11:27 -05:00
Wilson Snyder
26c0e6ba00
Fix missing array include.
2020-11-16 07:31:12 -05:00
Wilson Snyder
efc6fb7fc3
Internals: Better pack AstNode. No functional change.
2020-11-15 22:03:06 -05:00
Wilson Snyder
b68038a73f
clang-tidy fix. No functional change.
2020-11-15 17:23:02 -05:00
Wilson Snyder
f4ef4ad9f3
Internals: Favor std::array where easy. No functional change intended.
2020-11-15 16:21:26 -05:00
Wilson Snyder
f6f7684ccd
Internal member initialization. No functional change intended.
2020-11-15 15:40:35 -05:00
Wilson Snyder
e74cc32f2d
Add internal assertion that VarScopes properly formed.
2020-11-14 16:13:06 -05:00
Wilson Snyder
c64cc989f0
verilator_gantt: Show CPU physical info.
2020-11-14 12:22:15 -05:00
Wilson Snyder
f94fcaa8e4
Move YYDEBUG into header. No functional change intended.
2020-11-14 10:20:27 -05:00
Wilson Snyder
297b297bc7
devel release
2020-11-14 10:00:01 -05:00
Wilson Snyder
02cb3d17a2
Version bump
2020-11-14 09:50:30 -05:00
Wilson Snyder
c3cfaf55ed
Commentary
2020-11-14 09:26:38 -05:00
Wilson Snyder
3e7013af31
Internal scope cleanup. No functional change.
2020-11-13 21:12:18 -05:00
Wilson Snyder
f7a5883205
Internals: assert not double adding. No functional change intended.
2020-11-13 21:12:03 -05:00
Wilson Snyder
5d3482734a
Fix precision in verilator_gantt.
2020-11-13 18:51:45 -05:00
Yutetsu TAKATSUKASA
e8c03650ae
Fix internal error if always block without begin-end has concat ( #2640 ) ( #2641 )
2020-11-13 09:50:09 -05:00
Wilson Snyder
7eac788306
Add error on using :: with module
2020-11-12 19:45:26 -05:00
Wilson Snyder
6a58e67699
Commentary
2020-11-12 19:31:53 -05:00
Wilson Snyder
b49be06a5a
Tests: Standard wording.
2020-11-12 18:50:05 -05:00
Wilson Snyder
87b2adb6a1
With --debug, turn off address space layout randomization.
2020-11-12 18:49:49 -05:00
Wilson Snyder
5634a18f78
Tests: Smaller t_vpi_var test
2020-11-11 20:57:24 -05:00
Wilson Snyder
b84c9bb4c0
Internals: Show scope debug information.
2020-11-11 19:00:10 -05:00
Wilson Snyder
6dfce882a1
Support $exit as alias of $finish
2020-11-10 22:49:48 -05:00
Wilson Snyder
79d33bf1ee
Use C++11 for loops, from clang-migrate. No functional change intended
2020-11-10 22:10:38 -05:00
Wilson Snyder
44eb362a18
clang-tidy cleanups. No functional change intended.
2020-11-10 21:40:14 -05:00
Wilson Snyder
8664aac225
Fix missing newlines in emit.
2020-11-09 18:29:09 -05:00
Wilson Snyder
6965e138aa
Add clearer unsupported message for inside on array ( #2566 )
2020-11-08 23:26:58 -05:00
Wilson Snyder
fc52fb9093
Fix arrays of modport interfaces ( #2614 ).
2020-11-08 22:43:32 -05:00
Wilson Snyder
cef7708f38
Internals: Fix missed access change. No functional change intended.
2020-11-08 22:02:35 -05:00
Dan Petrisko
438fb01665
Fix exited typo ( #2634 )
2020-11-08 21:55:33 -05:00
Wilson Snyder
67d5b1a11a
Internals: Preserve arrays of modports. Part of #2614 .
2020-11-08 19:15:53 -05:00
Wilson Snyder
d78941885b
Fix cast width propagation ( #2597 ).
2020-11-08 19:07:33 -05:00
Wilson Snyder
6e7b07c794
Internals: Prep for #2597 . No functional change intended
2020-11-08 18:58:31 -05:00
Wilson Snyder
9655e287ab
Tests: Travis regression fix
2020-11-08 17:06:03 -05:00
Wilson Snyder
917ca2bad7
Tests: Add t_const_opt_red ( #2632 ) ( #2633 )
2020-11-08 16:39:28 -05:00
Wilson Snyder
c3f5dd7414
Tests: Try to stabilize cron test.
2020-11-08 11:17:42 -05:00
Wilson Snyder
04c7fd1696
Tests: Add wire-or mux test for future optimization.
2020-11-07 21:57:31 -05:00
Wilson Snyder
152689776d
Report error on typedef referencing self ( #2539 ).
2020-11-07 15:41:37 -05:00
Wilson Snyder
778f133118
Fix dynamic new with init argument ( #2325 ).
2020-11-07 14:28:05 -05:00
Wilson Snyder
ff5465308b
Internals: Tree dump DEFAULT pattern. No functional change.
2020-11-07 11:56:24 -05:00
Wilson Snyder
602750b1ee
Commentary
2020-11-07 10:49:54 -05:00
Wilson Snyder
2a24bb4759
Fix queue poping wrong value when otherwise unused ( #2512 ).
2020-11-07 10:37:55 -05:00
Krzysztof Bieganski
7c4259bc0a
Support static methods and typedefs in classes ( #2615 )
2020-11-06 19:51:21 -05:00
Kaleb Barrett
1c2384cb3d
Fix iteration over mutating list bug in VPI impl ( #2588 )
...
Previously, in any given VPI callback, if the callback body registered
the same callback, that registering would be processed in the currently
executing call to the call*Cbs function. In the worse case, this could
lead to an infinite loop.
2020-11-06 17:56:15 -05:00
Yutetsu TAKATSUKASA and Wilson Snyder
75881754a9
Fix dangling reference (Issue #2622 ) ( #2623 )
...
* collect multiple string literals of "__Vcvt". No functional change is intended.
* temporary variable for DPI-C should be static if its type is string
* Update src/V3EmitC.cpp
Co-authored-by: Wilson Snyder <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
2020-11-04 06:08:03 +09:00
Wilson Snyder
0505816d31
Fix C++14 deprecated random_shuffle.
2020-11-03 08:52:47 -05:00
Wilson Snyder
48bcf66ac7
Fix C++14 deprecated random_shuffle.
2020-11-02 20:07:58 -05:00
Wilson Snyder
0145d9d514
Fix C++14 deprecated random_shuffle.
2020-11-02 19:55:01 -05:00
Wilson Snyder
2ce86eddfa
Internal debug. No functional change.
2020-11-01 22:27:27 -05:00
Wilson Snyder
b663d1a230
Rename internal interface references, part of #2614 .
2020-11-01 20:52:21 -05:00
Wilson Snyder
5821048df7
Fix clang warning.
2020-11-01 17:18:06 -05:00
Wilson Snyder
80284c437e
Internals: Refactor some VAssign printing. No functional change.
2020-11-01 16:59:23 -05:00
Wilson Snyder
2aedc91151
Support queue and associative array 'with' statements. ( #2616 )
2020-11-01 10:56:07 -05:00
Wilson Snyder
c1e8337fc1
Support pattern assignment to dynamic arrays.
2020-11-01 10:18:32 -05:00
Wilson Snyder
1858cc8ff1
Fix test stability due to #2618 .
2020-11-01 09:26:55 -05:00
Wilson Snyder
5e6aca59ab
Fix test stability due to #2618 .
2020-11-01 09:14:45 -05:00
Wilson Snyder
726e78fdda
Add 'with' syntax checks.
2020-10-31 10:33:36 -04:00
Wilson Snyder
085e8454b8
Support 'with' into elaboration (only).
2020-10-31 10:00:55 -04:00
Wilson Snyder
85b05366bc
Internals: Misc prep work for 'with' support.
2020-10-31 09:24:16 -04:00
Wilson Snyder
e6b0479b80
Internals: CFunc VL_RESTORER. No functional change intended.
2020-10-31 09:14:47 -04:00
Wilson Snyder
3a53b32a32
Move queue code before assoc, as assoc will eventually use queues. No functional change.
2020-10-30 22:49:55 -04:00
Wilson Snyder
cf7b5c091a
Internals: Track some VAccess that can be ReadOnly. No functional change.
2020-10-30 22:28:51 -04:00
Wilson Snyder
51b0963e61
Internals: Favor const for map keys. No functional change intended.
2020-10-30 18:00:40 -04:00
Wilson Snyder
0c949ceba2
Internals: classOrPackage is a module, from #2615 .
2020-10-30 08:43:20 -04:00
Wilson Snyder
5c070558ae
Internals: Misc cleanups in prep for interface bugfix. No functional change intended.
2020-10-29 21:27:19 -04:00
Wilson Snyder
0c328b6eaf
clang-format of test_regress. No functional change.
2020-10-28 18:42:36 -04:00
Wilson Snyder
f670eccf8c
Tests: $countbits
2020-10-28 07:39:13 -04:00
Wilson Snyder
23140aeff0
Internals: V3Begin code cleanup. No functional change.
2020-10-27 22:39:45 -04:00
Wilson Snyder
d44426b3f3
clang-format. No functional change.
2020-10-27 20:33:45 -04:00
Yutetsu TAKATSUKASA
05ff96bea3
Fix SEGV when $fgets, $sscanf, or $fscanf is used with string ( #2604 )
...
* Add a test to use string for $fgets
* Use dedicated function for $fgets to std::string
* share the implementation of $fgets
* Pass -1 for bitwidth of std::string to distinguish from POD
* add checks for scanf with string
* apply clang-format
2020-10-28 08:37:12 +09:00
Jean Berniolles
77ac9bfcc6
Fix WIFEXITED missing from MinGW/MSYS2 ( #2609 )
...
* WIFEXITED missing from MinGW/MSYS2, added defines
* Found source of the WIFEXITED macro in the binutils-gdb repo. Now with less pointer manipulation.
2020-10-27 13:33:25 -04:00
Marlon James
34b8ed4cf0
Return bool from callValueCbs() ( #2589 ) ( #2605 )
...
* Return bool from callValueCbs()
Returns true if any registered callback was called, else false.
* Add test for callCbs() and callValueCbs()
2020-10-26 21:55:27 -04:00
Wilson Snyder
95d1272269
Support associative array pattern assignments and defaults.
2020-10-25 21:05:22 -04:00
Wilson Snyder
046c0a7aa1
Fix queue assignment with different limits, negative indicies
2020-10-24 22:08:11 -04:00
Wilson Snyder
835905bdae
Convert cast tasks to assertions
2020-10-24 20:30:52 -04:00
Wilson Snyder
51d1235cda
Shorter stringify of empty queues, and better queue tests
2020-10-24 18:00:40 -04:00
Wilson Snyder
2f21b3385a
Tests: Casting.
2020-10-24 17:46:09 -04:00
Wilson Snyder
9d0a7d5e70
Commentary ( #2606 ).
2020-10-23 18:30:10 -04:00
Wilson Snyder
4cec3ff2a0
Fix WIDTH warnings on comparisons with nullptr ( #2602 ).
2020-10-22 17:27:23 -04:00
Wilson Snyder
25593c0ee2
Fix capitalization
2020-10-22 17:13:42 -04:00
Wilson Snyder
5d3dd52f13
Support queue slicing ( #2326 ).
2020-10-18 13:23:39 -04:00
Wilson Snyder
ec36d0d772
Internals: When resolving assignments pass dtype to children.
2020-10-18 12:30:33 -04:00
Wilson Snyder
3d2503f9aa
Tests: Run execute on non-Verilator when unsupported test.
2020-10-17 21:31:58 -04:00
Wilson Snyder
4576644591
Prep for future queue slicing.
2020-10-17 21:09:10 -04:00
Wilson Snyder
d8df216a8d
Fix emit indent of VL_TO_STRING
2020-10-17 20:05:21 -04:00
Wilson Snyder
964dcd5b7c
Tests: Add additional array method tests and error
2020-10-17 19:23:27 -04:00
Wilson Snyder
f62c070d06
Internals: Concat strings only when final; prep for queues.
2020-10-17 18:56:38 -04:00
Wilson Snyder
a56e0a6e89
Internals: Prep for type method. No functional change intended.
2020-10-17 16:48:11 -04:00
Wilson Snyder
451e961e03
Internals: Prep for type method. No functional change intended.
2020-10-17 16:04:29 -04:00
Wilson Snyder
cb550e5357
Remove old MSVC 6 workarounds
2020-10-17 14:21:27 -04:00
Wilson Snyder
829db3eefa
Fix tick style on %p formats.
2020-10-16 19:26:04 -04:00
Wilson Snyder
44f938e507
Use static const for emitted parameter declarations.
2020-10-16 19:05:28 -04:00
Wilson Snyder
4849c0530b
Fix class extends with typedef.
2020-10-16 18:25:32 -04:00
Wilson Snyder
f4ed367850
Internals: Remove verilator_difftree old cleanups.
2020-10-15 21:36:35 -04:00
Wilson Snyder
d4df94d866
Internals: Move static resolution to LinkParse.
2020-10-15 21:08:24 -04:00
Wilson Snyder
5d8019f941
Internals: Only need to applyFTask once. No functional change intended.
2020-10-15 21:02:24 -04:00
Wilson Snyder
48597bebaf
Tests: Better static tests
2020-10-15 20:44:51 -04:00
Wilson Snyder
470859f929
devel release
2020-10-15 08:26:36 -04:00