Geza Lore
197f11044e
Internals: Split reorder transfrom from V3Split to V3Reorder ( #6976 )
2026-02-01 05:09:40 +00:00
Geza Lore
f0afcede10
Internals: Use pure expressions in V3Randomize ( #6974 )
2026-02-01 05:09:19 +00:00
Geza Lore
122ceb2258
Internals: Fix use of Expr as Stmt in V3Assert ( #6280 ) ( #6973 )
2026-02-01 05:08:41 +00:00
Geza Lore
bef709a235
Optimize wide word shifts by multiple of word size ( #6970 )
...
V3Expand wide SHIFTL and SHIFTR if the shift amount is know and is a
multiple of VL_EDATA_SIZE. This case results in each word requiring a
simple copy from the original, or store of a constant zero, which
subsequent V3Subst can then eliminate.
2026-02-01 05:07:57 +00:00
Geza Lore
cea4c88e12
Optimize more wide operation temporaries with substitution ( #6972 )
...
A temporary introduced by V3Premit could not be eliminated in V3Subst if
it was involved in an expression that did a write back to a
non-temporary. To enables removing these, we need to track all variables
in V3Subst, not just the ones we would consider for elimination. Note
the new implementation is marginally faster than the old one even though
it does more work. It can eliminate ~5% more of wide temporaries on some
designs. Algorithm is largely the same.
2026-02-01 05:07:13 +00:00
Wilson Snyder
07ce0ac2ea
Internals: Move CReset under Assign ( #6978 )
2026-01-31 21:27:36 -05:00
Geza Lore
d9234501e0
Optimize concatenations that produce unused bits in DFG ( #6971 )
...
Concatenations that are only used by Sel expressions that do not consume
some bits on the edges can be narrowed to not compute the unused bits.
E.g.: `{a[4:0], b[4:0]}[5:4]` -> `{a[0], b[4]}[1:0]`
This is a superset or the PUSH_SEL_THROUGH_CONCAT DFG pattern, which is
removed.
2026-01-31 17:28:14 +00:00
Geza Lore
0915ae6ba8
Optimize string temporaries - do not localize ( #6969 )
...
Minor performance improvement, especially for assertions heavy code.
Strings are often used as temporaries in unlikely branches. Do not
localize them to avoid an unnecessary initialization on function entry.
2026-01-31 16:05:35 +00:00
Geza Lore
f472c2da6e
Change metacomment extra underscore error to warning ( #6968 )
...
Used to throw a hard v3error on stray underscores in metacomments.
Issue a BADVLTPRAGMA that can be turned off instead.
2026-01-31 15:16:20 +00:00
Pawel Kojma
b9ef4a6c48
Add parsing of coverpoint identifier in place of covergroup range list ( #6961 )
2026-01-30 07:05:57 -05:00
Wilson Snyder
996ae35a1b
Fix associative array of events causes C++ compile error ( #6962 ).
2026-01-29 20:38:50 -05:00
Wilson Snyder
5547833dde
Add UNSUPPORTED error on IEEE complex ports ( #2844 partial)
2026-01-28 19:14:10 -05:00
Wilson Snyder
913cf07491
Improve converge-limit error message
2026-01-28 18:32:50 -05:00
Pawel Kojma
30e6cd9092
Fix accessing non-rand struct member in constraints ( #6960 )
2026-01-28 07:33:16 -05:00
Geza Lore
7875552354
Internals: Add stats/dump of circular logic in scheduling ( #6953 )
2026-01-28 10:45:23 +00:00
Wilson Snyder
7c6c6a684b
Add SPDX copyright identifiers, and get 'reuse' clean. No functional change.
2026-01-26 20:24:34 -05:00
Wilson Snyder
d3ecba7699
Internals: Cleanup some verilog.y dead since IEEE 2017
2026-01-26 15:51:19 -05:00
Todd Strader
67df517bec
Fix type assignments for arrays of parameter types ( #6955 )
2026-01-26 15:50:52 -05:00
Wilson Snyder
1b9f38f78f
Fix parameterized virtual interface references that have no model references ( #4286 ).
...
Fixes #4286 .
2026-01-25 14:25:42 -05:00
Wilson Snyder
41b131389e
Internals: Some tristate and param cleanups. No functional change.
2026-01-25 14:19:27 -05:00
Wilson Snyder
140b2f2b2e
Internals: V3Tristate cleanups. No functional change.
2026-01-24 18:13:34 -05:00
Wilson Snyder
ad5005f8f5
Internals: Add user#Or functions. No functional change.
2026-01-24 18:10:59 -05:00
Wilson Snyder
07b61d3745
Fix internal error when fork under always expression ( #6911 ).
2026-01-23 22:11:04 -05:00
github action
2737a22793
Apply 'make format'
2026-01-24 03:01:38 +00:00
Cameron Waite
567fba3695
Fix null pointer dereference in class member trigger expressions ( #6946 )
2026-01-23 22:00:43 -05:00
Todd Strader
bc3c5b32dd
Fix delayed initial assignment ( #6929 )
2026-01-23 12:53:40 -05:00
Artur Bieniek
a7db9ee32f
Add error when accessing a non-static class field from a static function ( #6948 )
2026-01-23 10:18:24 -05:00
Wilson Snyder
ddbcd66722
Support `extern module` as a forward-declaration that is ignored.
2026-01-22 19:00:26 -05:00
Wilson Snyder
86cd249816
Add instance module location helper when pin not found
2026-01-21 07:50:46 -05:00
Pawel Kojma
c4dcdeab9a
Add parsing of solve-before inside foreach ( #6934 )
2026-01-20 07:14:11 -05:00
Vikash Patel
ea9752ab43
Fix typo in Verilator report output ("alloced" → "allocated") ( #6937 )
2026-01-19 08:31:22 -05:00
Wilson Snyder
ac4f9f013e
Fix static call after covergroup ( #6916 repair)
2026-01-18 19:58:33 -05:00
Wilson Snyder
db9bd3a792
Fix clocking unsupported tristate assign error ( #6942 ).
...
Fixes #6942 .
2026-01-18 16:28:48 -05:00
Jose Drowne
3a080ef543
Add IEEE 4-state type lint checks ( #3645 partial) ( #6895 )
2026-01-18 11:00:25 -05:00
Wilson Snyder
50b6954cfc
Internals: cppcheck cleanups
2026-01-17 23:18:09 -05:00
Wilson Snyder
b7382be0b6
Fix `--top-module` with underscores ( #6940 ).
2026-01-17 20:33:02 -05:00
Jose Drowne
12080dfcb1
Internals: Add AST nodes for tagged union parsing ( #6867 partial) ( #6881 )
2026-01-17 14:15:52 -05:00
github action
26ebb14c98
Apply 'make format'
2026-01-17 17:03:54 +00:00
Wei-Lun Chiu
3b6674386c
Support unbounded '$' in inside range expressions ( #6935 ) ( #6938 )
2026-01-17 12:03:00 -05:00
github action
f6532728f6
Apply 'make format'
2026-01-17 15:35:34 +00:00
emmettifelts
e6be548f72
Fix segfault after assignment pattern XOR error ( #6928 ) ( #6931 )
2026-01-17 10:34:36 -05:00
Wilson Snyder
913cf933e9
Fix segfault in missing extends ( #6903 ).
...
Fixes #6903 .
2026-01-16 19:57:23 -05:00
Srinivasan Venkataramanan
6fc9089a77
Support `unique` constraints (on 1D static arrays) ( #6810 ) ( #6878 )
2026-01-16 08:42:09 -05:00
Igor Zaworski
550cf4462d
Fix of dynamic scheduler temporary varable locations ( #6859 ) ( #6926 )
2026-01-15 06:53:00 -05:00
Pawel Kojma
3072907ea4
Fix unpacked array concatenation function arguments ( #6900 )
2026-01-14 16:23:55 -05:00
Artur Bieniek
4563501192
Fix error when calling non-static method ( #6916 )
2026-01-14 08:40:57 -05:00
Wilson Snyder
09ca7ea8d1
Fix emitting unbounded parameters ( #6912 ).
...
Fixes #6912 .
2026-01-12 22:56:23 -05:00
Wilson Snyder
8a24897c13
Fix `foreach` with mid-index empty commas ( #6910 ).
...
Fixes #6910 .
2026-01-12 19:17:17 -05:00
Wilson Snyder
a3d0f16185
Fix syntax error on unsupported defparam array ( #6915 ).
2026-01-12 17:34:10 -05:00
Yilou Wang
31f8be0b85
Support detailed failure info for constraint violations ( #6617 ) ( #6883 )
...
* logging for the unsatisfied constraints
* Apply 'make format'
* fix teh quote error in the array indexing
* Apply 'make format'
* Len change for the hash for randomity when named assertion is used
* seperate name assertion and satisfied case
* Apply 'make format'
* simply comments and display info
* refine code and fix protect case
* format
* update display in test and .out file
* add an enable flag and warning type, add a protect_id version test and update out files
* Apply 'make format'
* simplify some comments
* update out file, ready to be merged.
* update .py file to set the hash key solid
* rename and reformate the warning message to follow the verilator style
* add a nowarn test
* Apply 'make format'
* ordering
---------
Co-authored-by: Udaya Raj Subedi <075bei047.udaya@pcampus.edu.np>
Co-authored-by: github action <action@example.com>
2026-01-12 15:53:49 +01:00
Wilson Snyder
54b130e43f
Add check for automatic variable in continuous assignment LHS
2026-01-10 18:54:27 -05:00
Wilson Snyder
bc5b120156
Tests: Add include warnings to t_dist_warn_coverage
2026-01-10 04:08:08 -05:00
Christian Hecken
338afff23c
Support vpi_put/vpi_get forcing of signals ( #5933 ) ( #6704 ).
2026-01-10 03:48:46 -05:00
Wilson Snyder
a98eb4fa04
Internals: Add missing debug level setter.
2026-01-10 03:10:33 -05:00
Yutetsu TAKATSUKASA
b926fcb762
Improve signedness of packed array ( #6901 ) ( #6902 )
...
* Tests: Add a test whether signedness of a packed array is properly implemented.
* Fix signedness of a packed array when named type is not used.
* Fix signedness of the entire packed array.
2026-01-10 09:06:37 +09:00
Pawel Kojma
d664aec8b8
Fix segfault in V3Slice ( #6899 )
2026-01-10 06:15:01 +09:00
Wilson Snyder
3b1a7af74d
Fix WIDTHEXTEND suppression on add/sub with single-bit signal.
2026-01-09 00:25:12 -05:00
Wilson Snyder
b0fdea5535
Improve error message
2026-01-09 00:09:28 -05:00
Bartłomiej Chmiel
7e3cd8af65
Fix tracing signals with escaped dots in names ( #6897 )
2026-01-08 15:10:19 -05:00
Ryszard Rozak
97d5844f2e
Support dynamic array elements in std::randomize ( #6896 )
2026-01-08 09:02:28 -05:00
Yilou Wang
6abfaf23a5
fix access flags in MemberSel randomization assignments ( #6892 )
2026-01-08 09:02:13 +01:00
Wilson Snyder
c75fb4cdae
Improve format of runtime errors, especially DIDNOTCONVERGE
2026-01-08 01:01:54 -05:00
Ryszard Rozak
da14e7c4bb
Fix `disable iff` in simple properties ( #6890 )
2026-01-07 07:02:52 -08:00
Bartłomiej Chmiel
c7361f177b
Fix large debug_str for emitted Syms headers ( #6889 )
2026-01-07 13:18:54 +00:00
Luca Colagrande
112e1e3752
Fix overlapping case item expressions ( #6825 ) ( #6886 )
2026-01-06 15:07:25 -05:00
Geza Lore
45349990a1
Omit -v farg with --dump-inputs ( #6885 )
2026-01-06 19:07:33 +00:00
Igor Zaworski
d5784b8cf2
Trigger virtual interfaces in proper place ( #6844 )
2026-01-06 07:15:33 -05:00
Wilson Snyder
b2bcce33e8
Internals: Rename visiting class. No functional change.
2026-01-05 22:53:49 -05:00
Matthew Ballance
8c977133c6
Fix use-after-free error ( #6846 )
2026-01-05 20:06:42 -05:00
Jakub Wasilewski
72a6da5ac8
Support complex expressions as std::randomize arguments ( #6860 )
2026-01-05 14:37:36 -05:00
Yilou Wang
7023f38d12
Fix VarRef lookup for module-level variables ( #6741 ) ( #6882 )
2026-01-05 10:39:22 -05:00
Ryszard Rozak
cc11ff8c53
Fix dynamic array elements passed to ref argument ( #6877 )
2026-01-01 10:21:09 -05:00
em2machine
c388e793e0
Fix MULTIDRIVEN with task and default driver ( #4045 ) ( #6858 )
2026-01-01 10:20:21 -05:00
Wilson Snyder
40cf3c4b16
Remove deprecated `--make cmake`.
2026-01-01 09:27:20 -05:00
Wilson Snyder
a7b80966ec
Remove `--xml-only`.
2026-01-01 09:23:05 -05:00
Wilson Snyder
13327fa9c0
Copyright year update.
2026-01-01 07:22:09 -05:00
Wilson Snyder
4080284e53
Fix warning lint directive ordering and consistency ( #4185 ) ( #5368 ) ( #5610 ) ( #6876 ).
2025-12-30 20:31:34 -05:00
Wilson Snyder
2025b81614
Internals: Refactor V3Error, and handle UNDRIVEN/UNSUPPORTED/WIDTH consistently ( #6874 )
2025-12-30 07:08:25 -05:00
Kaleb Barrett
aa94219531
Support vpiSigned ( #6868 ) ( #6870 )
2025-12-29 20:12:19 -05:00
Wilson Snyder
2e394c3c04
Internals: Refactor some V3Error code handling and add tests. No functional change intended.
2025-12-29 18:17:24 -05:00
Wilson Snyder
4775399716
Commentary: spelling
2025-12-28 21:30:16 -05:00
Wilson Snyder
2318adabd3
Fix JSON output case statements ( #6733 ).
2025-12-26 22:43:06 -05:00
Wilson Snyder
7a2b20cff3
Fix formatting of %p to be spaceless
2025-12-26 21:45:52 -05:00
Wilson Snyder
b50e8bb9c1
Internals: Add '--debug-runtime-timeout'
2025-12-26 12:59:35 -05:00
Wilson Snyder
397e64903c
Fix typedef `::` class reference error ( #6862 ).
2025-12-24 10:01:46 -05:00
Wilson Snyder
1b93033690
Add `--quiet-build` to suppress make/compiler informationals.
2025-12-23 19:21:42 -05:00
Wilson Snyder
5dc05e1fa8
Internals: Update some JSON references. No functional change.
2025-12-23 10:13:23 -05:00
Krzysztof Bieganski
a2fcd37c08
Fix unsupported `if` virtual interface warning ( #6558 ) ( #6861 )
2025-12-23 10:12:34 -05:00
Wilson Snyder
f6b966ed16
Fix `randc` on extended class ( #6852 ).
2025-12-21 19:56:55 -05:00
Wilson Snyder
1d7f5ed33e
Commentary
2025-12-21 18:55:51 -05:00
Wilson Snyder
4201450a8a
Fix class reference throwing cannot detect changes error ( #6851 ).
2025-12-21 18:44:55 -05:00
Wilson Snyder
ef5ca74e94
Tests: Better handle multiline statements in t_dist_warn_coverage
2025-12-21 16:15:33 -05:00
Jose Drowne
c0a0f0dab9
Optimize inlining small C functions and add `-inline-cfuncs` ( #6815 )
2025-12-21 13:14:50 -05:00
Thomas Aldrian
361ab194ff
Internals: Modport expression parsing and tests ( #2601 partial) ( #6848 )
2025-12-21 08:58:21 -05:00
Wilson Snyder
a64b083b2a
Fix JSON missing `signed` indication ( #6845 ).
2025-12-20 22:11:09 -05:00
Wilson Snyder
ffa87540cc
Fix randcase under fork ( #6843 ).
2025-12-20 21:25:01 -05:00
Geza Lore
f990dd747e
Change metacomments to not enable warnings disabled in control file ( #6836 ) ( #6842 )
...
Track the location based message/feature enable bits separately for code
and control file directives. A message/feature is disabled if disabled
either in the control file, or in code directives/metacomments. That is,
enabled only if both agree should be enabled.
2025-12-20 06:33:46 -05:00
em2machine
3ceac0b37e
Fix parameterized class module parameters ( #6754 ) ( #6834 )
2025-12-19 12:57:15 -05:00
Pawel Kojma
5244766b7b
Support reduction or in constraints ( #6840 )
2025-12-19 12:37:20 -05:00
Yangyu Chen
47d1a50aa4
Fix setting thread count in VerilatedContext ( #6826 partial) ( #6841 )
2025-12-19 10:59:43 -05:00