Yilou Wang
c74eee5123
Fix rand variable used as array index in constraint evaluated as constant ( #7238 ) ( #7247 )
2026-03-12 10:12:53 -04:00
Wilson Snyder
08c6d5bde5
Improve some display error handling ( #7212 prep)
2026-03-12 07:49:21 -04:00
Wilson Snyder
f2fdc57366
Fix --hierarchical dropping arguments in -f/-F files ( #7240 ).
2026-03-12 07:25:32 -04:00
Wilson Snyder
d87035d187
Commentary: Fix non-grammar
2026-03-11 19:53:23 -04:00
Geza Lore
be429ce956
Fix tracing of typedefed 1D packed arrays with --trace-structs ( #7237 )
...
Used to incorrectly unroll 1D packed arrays of 'bit' or 'logic' into
elements when using --trace-structs if the array element type was given
via a typedef. Keep them as a single signal instead.
2026-03-11 12:46:13 +00:00
Yilou Wang
f351882cf0
Fix enum range constraints missing for rand variables in sub-objects ( #7230 ) ( #7235 )
2026-03-11 07:21:40 -04:00
Rahul Behl
cd8818ca23
Fix randomize size+element queue constraints ( #5582 ) ( #7225 )
2026-03-11 06:51:32 -04:00
Pawel Kojma
4e6eafd994
Allow constant expressions without parentheses in PATHPULSE$ declaration ( #7199 )
2026-03-11 06:01:33 -04:00
Yilou Wang
5bf1d060c9
Fix internal error when derived class calls this.randomize() with inherited rand members ( #7229 ) ( #7234 )
2026-03-10 19:03:18 -04:00
Yilou Wang
3ba9077726
Fix soft cross-object constraint priority inversion ( #7228 ) ( #7233 )
...
Emit nested constraint setup tasks in depth-first order (deepest first)
so outer-scope soft constraints get higher priority per IEEE 18.5.13.
2026-03-10 19:02:15 -04:00
Wilson Snyder
a7a5c9f548
Improve not-found message to show cwd
2026-03-10 08:55:51 -04:00
Rahul Behl
2046879beb
V3Randomize: Fix dist operator inside ConstraintIf blocks ( #7221 ) ( #7224 )
...
The lowerDistConstraints() function was not recursing into ConstraintIf
nodes, causing dist operators inside if-else blocks to remain unlowered
and trigger an internal error when ConstraintExprVisitor encountered them.
Fix by adding recursive handling of ConstraintIf nodes in lowerDistConstraints:
- Check for AstConstraintIf nodes before AstConstraintExpr
- Recursively process thensp() and elsesp() branches
- This ensures all dist operators are lowered regardless of nesting
Test case: t_randomize_dist_conditional.v demonstrates conditional dist:
constraint c {
if (randd) {
x dist { 8'd0 := 1, 8'd255 := 3 }; // 25% / 75%
} else {
x dist { 8'd0 := 3, 8'd255 := 1 }; // 75% / 25%
}
}
Fixes #7221
2026-03-10 07:06:00 +00:00
em2machine
1b2b8afdc1
Fix wrong $bits() for parameterized interface struct typedefs ( #7218 ) ( #7219 )
2026-03-09 22:32:13 -04:00
Christian Hecken
9c5f4e2483
Internals: Extend VerilatedVar to hold force control signal pointers ( #7217 )
2026-03-08 15:53:32 -04:00
Wilson Snyder
3097df46fa
Change `--converge-limit` default to 10000 ( #7209 ).
...
Fixes #7209 .
2026-03-07 09:05:37 -05:00
Wilson Snyder
68d6dd7eee
Internals: Add UASSERT to avoid error fault on sv-tests regress-sv_sv_import_hier_fail1_iv
2026-03-07 09:03:42 -05:00
Wilson Snyder
4d369e4262
Fix --debug-inputs for .vlt files
2026-03-07 08:01:27 -05:00
em2machine
bef5c1f475
Fix static function not found from parameterized extends class ( #7204 ) ( #7208 )
2026-03-06 16:23:02 -05:00
Rahul Behl
efa53189ea
Support constraint `with` item.index array reduction ( #7198 )
2026-03-06 05:14:55 -05:00
Geza Lore
cedec65c39
Change array tracing to always dump left index to right index ( #7205 )
...
Also add array bounds and struct/union member counts to trace pushPrefix
(not used by vcd/fst/saif). Together these improve consistency in some
waveform formats.
2026-03-06 09:32:08 +00:00
Wilson Snyder
b89d29cab9
* Support procedural concurrent assertion simple cases ( #6944 ).
...
Fixes #6944 .
2026-03-05 20:03:48 -05:00
github action
fb00eb3bc6
Apply 'make format'
2026-03-05 21:06:48 +00:00
Julian Carrier
45a5e72509
Fix recursive default assignment for subarrays ( #4589 ) ( #7202 )
2026-03-05 16:05:54 -05:00
Geza Lore
4f4d48e9d7
Fix library/hier_block tracing when top name is empty ( #7200 )
2026-03-05 08:44:41 -05:00
Ryszard Rozak
258629634c
Support force assignments to array elements of real type ( #7048 )
2026-03-05 08:37:20 -05:00
Nick Brereton
e5ad9b3a4b
Support Z non-blocking assignment ( #7192 ) ( #496 ) ( #7197 )
2026-03-04 22:39:05 -05:00
Wilson Snyder
572f50126b
Improve function call argument error to show target function (rewording)
2026-03-04 20:22:25 -05:00
Wilson Snyder
c93f5256d4
Fix string cast on array call
2026-03-04 20:12:10 -05:00
Wilson Snyder
1bf2ea7643
Improve function call argument error to show target function
2026-03-04 19:01:01 -05:00
Igor Zaworski
7acd73fede
Fix super constructor calls with local variables, by using init functions ( #6214 ) ( #6933 )
2026-03-04 17:55:55 -05:00
em2machine
c34cd6ddf1
Fix missing scope when calling package function ( #7128 repair) ( #7188 ) ( #7190 )
2026-03-04 15:37:55 -05:00
Rahul Behl
9a5c1d27c8
Support array reduction methods with 'with' clause in constraints ( #6455 ) ( #6999 )
2026-03-04 12:01:35 -05:00
Nick Brereton
44701201ac
Support inout inside SV interface ( #3466 ) ( #7134 )
2026-03-04 09:08:07 -05:00
jalcim
7cf539cf05
Add --func-recursion-depth CLI option ( #7175 ) ( #7179 )
2026-03-04 06:46:07 -05:00
Yilou Wang
3bc73cc768
Support constraint imperfect distributions ( #6811 ) ( #7168 )
2026-03-03 11:23:14 -05:00
em2machine
5f3d475736
Internals: Minor coverage improvement as followup to ( #7128 followup) ( #7184 )
2026-03-03 11:13:32 -05:00
em2machine
5821d0697c
Fix interface localparam dependencies and arbitrary nesting ( #6936 ) ( #7128 )
2026-03-03 06:55:59 -05:00
Yilou Wang
ed84f3adb2
Support constraints on fixed-size array of class object members ( #7170 ) ( #7183 )
2026-03-03 06:27:31 -05:00
jalcim
d406efdcf9
Fix recursive constant function in $unit scope ( #7174 ) ( #7178 )
2026-03-02 15:15:34 -05:00
Wilson Snyder
251d1835cf
Internals: Comment to explain stray emit semicolon
2026-03-02 11:26:48 -05:00
Yilou Wang
8a413b3ec7
Fix std::randomize() in static function with static class members ( #7167 ) ( #7169 )
2026-03-02 05:59:00 -05:00
Yilou Wang
108d209bd7
Support soft constraint solving with last-wins priority ( #7124 ) ( #7166 )
2026-03-01 15:16:55 -05:00
Wilson Snyder
192445097a
Internals: Fix non-determinism in V3Delayed, V3SplitVar, V3Task ( #7120 partial) ( #7165 )
2026-03-01 11:59:29 -05:00
Geza Lore
6c48b3282e
Enable V3LiftExpr with code coverage ( #7164 )
2026-03-01 15:04:49 +00:00
Geza Lore
3249fd8cc0
Internals: Mark Premit temporaries funcLocal, noReset ( #7160 )
2026-03-01 14:56:21 +00:00
Geza Lore
97838325cd
Fix scheduling non-determinism ( #7120 partial) ( #7162 )
2026-03-01 07:44:59 -05:00
Geza Lore
77ce9cec1e
Optimize conditional merging across some impure statements ( #7159 )
...
- Allow reordering pure statements with DPI import calls iff no public
variables (including those read via a DPI export) are involved. This
ensures the DPI import can't observe the reordering
- Allow reordering of pure statements with AstDisplay and AstStop. This
requires an assumption that AstDisplay and AstStop will not read or
write model state other than via a VarRef explicitly present int the
Ast.
Overall this allows eliminating a lot of conditionals around assertions,
which were previously not possible.
2026-03-01 05:47:05 -05:00
Geza Lore
26eac21432
Internals: Use existing astgen type info for ASTGEN_MAX_NODE_SIZE ( #7161 )
2026-03-01 05:33:30 -05:00
Wilson Snyder
e9dd6eaaf0
Internals: Fix VL_ALLOC_RANDOM_CHECKS with multiple threads
2026-02-28 20:24:09 -05:00
Wilson Snyder
e23c7a510e
Internals: Add VL_ALLOC_RANDOM_CHECKS
2026-02-28 18:21:51 -05:00
Geza Lore
098fe96643
Add V3LiftExpr pass to lower impure expressions and calls ( #7141 )
...
Introduce new pass that converts impure expressions, or those with
function and method calls into simple assignment statements. Please see
the blurb at the top of the file why this is useful and how it works.
In particular currently it enables more Dfg optimization as functions
will be inlined without AstExprStmt.
Ideally we should enforce this lowering is applied to every procedural
statement (there are still a handful of exceptions). With that, long
term with this pass + #6820 , there should be no need to ever use an
AstExprStmt past this new lowering pass, which should enable more easier
optimization down the line.
Also ideally this should be run earlier. Currently it's after V3Tristate
as that calls pinReconnectSimple so we don't have to touch Cell ports.
Currently disabled when code coverage is enabled due to #7119 .
2026-02-28 22:20:09 +00:00
Geza Lore
2ceea267e5
Fix eliminating assignments to DPI-read vaiables ( #7158 )
2026-02-28 10:09:01 -05:00
Pawel Kojma
face700f29
Improve assignment-compatibility type check ( #2843 ) ( #5666 ) ( #7052 )
2026-02-28 09:55:06 -05:00
Geza Lore
139bdc1ae3
Optimize function call return value temporaries ( #7152 )
2026-02-28 09:54:39 -05:00
Szymon Gizler
1af7fa92c2
Optimize size of trace declaration object code ( #7150 )
2026-02-28 09:54:08 -05:00
Ryszard Rozak
6f892d58ac
Fix forcing unpacked variables ( #7149 )
2026-02-28 09:53:41 -05:00
Kamil Danecki
df6b808c49
Fix parameters inside std::randomize `with` clause ( #7140 )
2026-02-28 09:53:05 -05:00
Todd Strader
8705bc56c8
Fix errant integer promotion ( #7012 )
2026-02-28 09:52:35 -05:00
Nick Brereton
02c1dbc5dc
Fix lambda coroutines ( #6106 ) ( #7135 )
2026-02-28 09:52:02 -05:00
Geza Lore
1716423d07
Internals: Fix invalid use of user1 in V3Const ( #7157 )
2026-02-28 09:51:07 -05:00
Wilson Snyder
1e6c1ab106
Add VPI callback support to --main ( #7145 ).
...
Fixes #7145 .
2026-02-28 09:42:28 -05:00
Wilson Snyder
af65a85a1e
Fix function locals in display %p
2026-02-26 18:12:12 -05:00
Wilson Snyder
22290a74c2
Fix class initial-automatic insertion order ( #7086 repair)
2026-02-25 19:01:19 -05:00
em2machine
d658517715
Change type definition error to show type chain with source context ( #7151 )
2026-02-25 14:47:13 -05:00
AUDIY
10eafb9b3f
Add coverage type information to verilator_coverage annotation output ( #7131 ) ( #7133 ).
...
Fixes #7131 .
2026-02-24 20:59:42 -05:00
Gilberto Abram
826b03c21f
Fix segfault in EmitCSyms::getSymCtorStmts ( #7142 ) ( #7143 )
2026-02-24 14:08:01 -05:00
Wilson Snyder
7607f0e7fa
Support proper automatic/static initialization, and remove STATICVAR warning ( #6405 ). ( #7086 )
2026-02-24 14:04:43 -05:00
Todd Strader
6a5d3b0b72
Add --max-replication option ( #7139 )
2026-02-23 16:51:37 -05:00
Geza Lore
f7c5454d91
Internals: Strengthen AstNodeExpr operand types ( #7138 )
2026-02-23 20:55:08 +00:00
Geza Lore
8c7f08dfc3
Fix inlining of CFuncs with reloop locals ( #7132 )
...
The recent V3InlineCFuncs only checks AstCFunc::varsp for locals, but
V3Reloop used to insert them into AstCFunc::stmtsp resulting in multiple
locals with the same name being inlined into the caller if the stars
align. Fix Reloop. Such things will also go away with #6280 .
2026-02-23 17:35:15 +00:00
Wilson Snyder
7c923bb330
Internals: Fix hasher message
2026-02-23 03:34:37 -05:00
Geza Lore
1e5a6901c8
Internals: Make AstWith explicit in AstCMethodHard ( #7129 )
...
This makes it consistent with other usage in NodeFTaskRef. Also AstWith
is no longer a NodeExpr.
2026-02-22 15:38:28 -05:00
Geza Lore
da51021b0a
Internals: Simplify AstForeach header handling ( #7126 )
...
Rename AstSelLoopVars to AstForeachHeader, and make it a non-NodeExpr.
Tweak parser to always create an AstForeachHeader, so no need to fix it
up later.
2026-02-22 18:57:12 +00:00
Yilou Wang
1717df0261
Support solve..before constraints ( #5647 ) ( #7123 )
2026-02-22 11:33:18 -05:00
Geza Lore
350966de6b
Internals: Remove all AstClassOrPackageRef in V3Width ( #7125 )
2026-02-22 11:26:44 -05:00
Geza Lore
579acced99
Internals: Make AstArg into an AstNode, not Expr ( #7122 )
2026-02-22 14:40:51 +00:00
Yilou Wang
443678d8c4
Support array reduction methods without 'with' clause in constraints for dynamic arrays ( #7104 ) ( #7108 )
2026-02-22 09:23:02 -05:00
Yilou Wang
79e1f33173
Fix new <obj> shallow copy not preserving polymorphic runtime type ( #7105 ) ( #7109 )
2026-02-22 09:22:37 -05:00
Geza Lore
78ee787bb1
Internals: Clean up AstArg usage in AstNodeFTaskRef ( #7121 )
...
- Strengthen type of AstNodeFTaskRef::pinsp to be List[AstArg]
- Rename 'pinsp' to 'argsp'
- Add default constructor arguments
2026-02-22 10:38:37 +00:00
Geza Lore
e023113b79
Internals: Carry 'with' clause as op4 on AstNodeFTaskRef ( #7114 )
...
op4 is now available to carry the 'with' clause explicitly instead of
being part of the argument lit. Will strengthen 'pinsp' to be
List[AstArg] next.
2026-02-22 09:15:28 +00:00
github action
03ed6a5bd3
Apply 'make format'
2026-02-21 05:44:17 +00:00
Alex Zhou
a4ad255438
Fix extending class by a typedef ( #6679 ) ( #6855 )
2026-02-21 11:13:22 +05:30
Yilou Wang
f25a85ea57
Fix associative array size() constraint generating invalid resize() call ( #7103 ) ( #7112 )
2026-02-20 10:54:02 -05:00
Yilou Wang
e0edb49f7a
Support 'this' keyword inside inline randomize() with {} constraint blocks ( #7102 ) ( #7113 )
2026-02-20 10:53:34 -05:00
Geza Lore
52a6de29cb
Internals: Remove unused AstNodeFTaskRef::namep() ( #7110 )
2026-02-20 10:52:54 -05:00
Wilson Snyder
2d86f1373e
Support vpiBitVar ( #7107 ).
...
Fixes #7107 .
2026-02-20 05:39:38 -05:00
Wilson Snyder
ace9a34c10
Internal: Fix clang override warning ( #7106 repair).
2026-02-19 21:34:17 -05:00
Wilson Snyder
0d2fcfd49d
Fix circular class reference %p-printing causing infinite recursion ( #7106 ).
...
Fixes #7106 .
2026-02-19 20:15:37 -05:00
Geza Lore
4a4f8c6698
Optimize continuous assignments with function on RHS in Dfg ( #7096 )
2026-02-19 18:21:55 +00:00
Igor Zaworski
69564078da
Fix determinism of AwaitBeforeTrigVisitor ( #6932 repair) ( #7101 )
2026-02-19 18:21:40 +00:00
Ryszard Rozak
ff3028aca3
Support `disable iff` with sequences ( #7090 )
2026-02-19 11:33:30 +01:00
Yilou Wang
0e26b049ea
Support function calls with random arguments in constraints ( #7061 ) ( #7083 )
2026-02-19 15:37:55 +05:30
Ryszard Rozak
f843780aad
Add UNSUPPORTED on $sampled in sensitivity list ( #7093 )
2026-02-19 08:36:21 +01:00
Wilson Snyder
702d6ede09
Fix time to not advance after `$finish` ( #7095 ).
...
Fixes #7095 .
2026-02-18 19:36:36 -05:00
Geza Lore
2cd8dc6cf7
Optimize functions inlined from packages in Dfg ( #7091 )
2026-02-18 19:11:33 +00:00
Todd Strader
cf1de0b9a8
Fix interface internal type reference ( #6920 ) ( #6966 )
2026-02-18 09:38:42 +05:30
Artur Bieniek
da28c67e60
Fix #0 delays to control fork scheduling ( #6730 repair) ( #6891 )
...
Signed-off-by: Artur Bieniek <abieniek@internships.antmicro.com>
2026-02-17 21:51:11 -05:00
Geza Lore
7176bdcff6
Optimize always blocks using local temporary variables in Dfg ( #7085 )
...
Enable synthesis of blocks that use a variable only within certain
branches, if that variable is not externally observable.
2026-02-17 20:00:55 +00:00
Ryszard Rozak
5d0352ab46
Fix conditional expressions in constraints ( #7087 )
2026-02-17 11:40:15 -05:00
Wilson Snyder
9049c93009
Internals: Call common V3NUmber function to zero data type. Cleanup chandle clearling.
2026-02-17 06:18:57 -05:00
Geza Lore
a1a9147267
Optimize straight line code in Dfg always ( #7084 )
2026-02-17 11:17:52 +00:00
Geza Lore
5834f22944
Optimize logic and variable removal early in Dfg ( #7081 )
...
After conversion of Ast to Dfg, but before synthesizing AstAlways into
primitives, run a pass to remove variables that are not observable, and
all logic that only computes such variables. This can get rid of a lot
of content early so we don't build redundant Dfgs, and also enables
synthesizing always blocks that use temporaries only in some branches,
which will come in a follow up.
2026-02-17 08:28:06 +00:00
Wilson Snyder
7182e8d937
Internals: Track what variables get user initial assignment.
2026-02-17 02:05:05 -05:00
Wilson Snyder
6c5dee5043
Change automatic variables to not be traced.
2026-02-17 01:38:39 -05:00
Yilou Wang
ed3aa43657
Fix enum variables in constraint solver producing invalid enum values ( #7058 ) ( #7065 )
2026-02-16 22:44:38 -05:00
Yilou Wang
4357aee09a
Fix randomize() on null object handle crashing instead of returning 0 ( #7059 ) ( #7066 )
2026-02-16 22:43:57 -05:00
Yilou Wang
5173f7e42f
Fix inside operator crash with impure expression and unsized range literals ( #7063 ) ( #7067 )
2026-02-17 08:33:31 +05:30
Yilou Wang
994ef82e76
Support unique constraint on explicit array element subsets ( #7057 ) ( #7064 )
2026-02-16 19:46:46 -05:00
Artur Bieniek
7fc428f518
Fix randomize() null pointer dereference ( #7026 )
2026-02-16 19:43:59 -05:00
Ryszard Rozak
8491d6a80c
Support force assignments to unpacked structs ( #7060 )
2026-02-17 05:35:07 +05:30
Wilson Snyder
c21498293e
Internals: Minor cleanups preparing for initialization fixes.
2026-02-16 08:10:29 -05:00
Wilson Snyder
14a94b6de9
Internals: Add addNextNull. No functional change intended.
2026-02-16 08:09:29 -05:00
Kamil Danecki
821eacebea
Support power expressions with constant exponent in constraints ( #7073 )
2026-02-16 06:01:24 -05:00
Srinivasan Venkataramanan
7c1b348b41
Support `$get_initial_random_seed` ( #7056 ) ( #7069 ).
...
Fixes #7056 .
2026-02-16 05:57:44 -05:00
Geza Lore
505d33b35a
Support #0 delays with IEEE-1800 compliant semantics ( #7079 )
...
This patch adds IEEE-1800 compliant scheduling support for the Inactive
scheduling region used for #0 delays.
Implementing this requires that **all** IEEE-1800 active region events
are placed in the internal 'act' section. This has simulation
performance implications. It prevents some optimizations (e.g.
V3LifePost), which reduces single threaded performance. It also reduces
the available work and parallelism in the internal 'nba' section, which
reduced the effectiveness of multi-threading severely.
Performance impact on RTLMeter when using scheduling adjusted to support
proper #0 delays is ~10-20% slowdown in single-threaded mode, and ~100%
(2x slower) with --threads 4.
To avoid paying this performance penalty unconditionally, the scheduling
is only adjusted if either:
1. The input contains a statically known #0 delay
2. The input contains a variable #x delay unknown at compile time
If no #0 is present, but #x variable delays are, a ZERODLY warning is
issued advising the use of '--no-sched-zero-delay' which is a promise
by the user that none of the variable delays will evaluate to a zero
delay at run-time. This warning is turned off if '--sched-zero-delay'
is explicitly given. This is similar to the '--timing' option.
If '--no-sched-zero-delay' was used at compile time, then executing
a zero delay will fail at runtime.
A ZERODLY warning is also issued if a static #0 if found, but the user
specified '--no-sched-zero-delay'. In this case the scheduling is not
adjusted to support #0 , so executing it will fail at runtime. Presumably
the user knows it won't be executed.
The intended behaviour with all this is the following:
No #0 , no #var in the design (#constant is OK)
-> Same as current behaviour, scheduling not adjusted,
same code generated as before
Has static #0 and '--no-sched-zero-delay' is NOT given:
-> No warnings, scheduling adjusted so it just works, runs slow
Has static #0 and '--no-sched-zero-delay' is given:
-> ZERODLY on the #0 , scheduling not adjusted, fails at runtime if hit
No static #0 , but has #var and no option is given:
-> ZERODLY on the #var advising use of '--no-sched-zero-delay' or
'--sched-zero-delay' (similar to '--timing'), scheduling adjusted
assuming it can be a zero delay and it just works
No static #0 , but has #var and '--no-sched-zero-delay' is given:
-> No warning, scheduling not adjusted, fails at runtime if zero delay
No static #0 , but has #var and '--sched-zero-delay' is given:
-> No warning, scheduling adjusted so it just works
2026-02-16 03:55:55 +00:00
Geza Lore
a0b89dde8e
Internals: Make AstCAwait an AstNodeStmt ( #6280 ) ( #7078 )
...
AstCAwait is only ever uses in statement position, so model it as a
statement. We should never ever have a coroutine that returns a value.
There is no need for it in SV, nor should we rely on it for internals.
Also reworks the fix for V3Life incorrectly constant propagating the
beforeTrig functions (#7072 ). The property that upsets V3Life is that
a function:
1. Is called from multiple static call sites (multiple AstCCall)
2. Reads model state directly (AstVarRef to non-locals/arguments)
Such function can only be created internally after scheduling (V3Task
throws an unsupported error on a non-inlined function that reads model
state), so added a flag to AstCFunc to mark the dangerous ones for
V3Life.
2026-02-14 20:15:32 +00:00
Geza Lore
be27811a10
Optimize: Remove redundant variables during Dfg Peephole pass ( #7076 )
...
Many rules in the Dfg Peephole pass check if a node has more than one
sinks. Redundant variables that will ultimately be removed can prevent
these from matching. Remove such variables during the Peeophole pass
itself to enable more matches.
2026-02-14 12:33:20 +00:00
Geza Lore
a45a058b09
Optimize additional DFG peephole Shift and Concat patterns ( #7077 )
2026-02-14 07:25:17 -05:00
Geza Lore
e0c626e48a
Fix constant propagating DPI-written variables ( #7074 )
2026-02-13 18:28:14 +00:00
Igor Zaworski
7d71c3bb76
Fix of event triggering with V3Life ( #6932 effect) ( #7068 partial) ( #7072 )
2026-02-13 11:01:19 -05:00
Geza Lore
0aaf17acfd
Internals: Add referencing flags in Dfg dumps
2026-02-13 14:20:38 +00:00
Pawel Kojma
64511d30b6
Internals: Fix marking `AstVar`s as class members ( #7070 )
2026-02-13 07:45:13 -05:00
Geza Lore
3dd2b762e7
Fix scope tree in traces in hierarchical mode ( #7042 )
2026-02-12 20:54:03 -05:00
Todd Strader
fed41aba91
Fix UNUSED / UNDRIVEN for unused functions ( #6967 )
2026-02-12 11:01:14 -05:00
Yilou Wang
9b1b9a5b3b
Fix randc cyclic behavior broken with constraints ( #7029 ) ( #7035 )
2026-02-12 10:58:04 -05:00
Igor Zaworski
446bec3d1a
Fix event triggering ( #6932 )
2026-02-11 10:35:59 -08:00
Yilou Wang
e41436bd4a
Support inherited and nested pre/post_randomize callbacks ( #7049 ) ( #7053 )
2026-02-11 09:33:57 -08:00
Yilou Wang
554fcef627
Fix rand_mode()/constraint_mode() when used as function arguments ( #7051 ) ( #7055 )
2026-02-11 09:33:09 -08:00
Yilou Wang
996a4b6e1a
Fix constraint_mode()/rand_mode() in constructor being overwritten by init code ( #7054 )
2026-02-11 09:32:08 -08:00
Yilou Wang
84350859e0
Support System Functions in Constraint Blocks ( #7028 ) ( #7036 )
2026-02-11 05:19:25 -08:00
Pawel Kojma
5d12ae3a2f
Fix non-member identifiers used inside constraints ( #7033 )
2026-02-11 05:18:24 -08:00
Wilson Snyder
67bff893bf
Fix whitespace
2026-02-10 20:17:22 -05:00
Yilou Wang
2bb807a931
Fix Inline foreach constraints on dynamic arrays of class objects ( #7030 ) ( #7037 )
2026-02-10 15:22:31 -08:00
Geza Lore
a031dd1a22
Fix tracing without module inlining to match with inlining ( #7041 )
...
This is an attempt to generate an identical trace file scope hierarchy
both with and without -fno-inline. Primarily because it's needed for
testing in upcoming patch, but also improves consitency prior to #7001
2026-02-10 21:05:41 +00:00
Yilou Wang
925543676e
Fix rand_mode() on nested object variables causes Z3 solver error ( #7031 ) ( #7034 )
2026-02-10 13:59:09 -05:00
Yilou Wang
8791e6c5f2
Support constraint_mode() on static constraints ( #7027 ) ( #7038 )
2026-02-10 13:58:35 -05:00
Ryszard Rozak
6303eb45ce
Fix multidim dynamic array elements passed to ref argument ( #7023 )
2026-02-10 08:46:04 +01:00
Igor Zaworski
a660fa54a7
Fix unique constraint in derived class ( #7022 )
2026-02-09 09:56:38 -05:00
Leela Pakanati
e36838ad8e
Fix tristate enables for -fno-inline ( #7016 ) ( #7019 )
2026-02-08 22:47:09 -05:00
Wilson Snyder
5a236dd35d
Change INITIALSTATIC to also report on processes, per IEEE ( #7020 )
2026-02-08 20:47:12 -05:00
Wilson Snyder
9ba625225d
Internals: Minor cleanups preparing for initialization fixes. No functional change.
2026-02-08 17:54:04 -05:00
Wilson Snyder
8700617fae
Internals: Cleanup CRESET verilog and other misc fixes
2026-02-08 17:53:56 -05:00
Geza Lore
3752102879
Internals: Clean up V3Reorder ( #7015 )
...
This is primarily cleanup, but there are 2 functional changes included:
- It used to accidentally reorder bodies of AstNodeIf that were outside
an AstAlways. Now it will not touch anything outside an AstAlways.
- Removed one redundant edge from the graph which perturbs the result of
V3Graph::acyclic. This should make no difference for the actual
intended result of reordering NBAs to eliminate shadow variables.
2026-02-08 16:09:53 +00:00
Wilson Snyder
e12c62c070
Change JSON dumps to not include booleans that are false ( #6977 ).
...
Fixes #6977 .
2026-02-08 07:59:55 -05:00
Wilson Snyder
0c83594e1e
Fix variable conflict when multiple cells with unused input defaults
2026-02-07 18:11:55 -05:00
Wilson Snyder
bbb231dfe2
Internals: Minor cleanups preparing for initialization fixes. No functional change.
2026-02-07 14:16:12 -05:00
Geza Lore
bb0e1c8c61
Optimize temporary insertion for concatenations in Dfg ( #7013 )
...
Add a new Dfg pass 'pushDownSel'. This will try to move selects through
a tree of concatenations in order to eliminate temporary nodes holding
intermediate concatenation results. This can get rid of a lot of
variables when packed arrays are assigned in parts (e.g. bit-wise).
2026-02-07 18:06:12 +00:00
Geza Lore
6100c39764
Internals: Assign trace codes starting from zero ( #7007 )
...
Use uint32_t max value instead of zero as sentinel value for a trace
code being unassigned. Prep for follow on patch.
Note the actual trace file will still start codes from one, the codes
in the model are just an offset from the base code.
2026-02-07 14:01:53 +00:00
Igor Zaworski
dc26dd601d
Fix internal error - virtual interface not found ( #7010 )
2026-02-06 22:20:10 +00:00
Pawel Kojma
9a8538fafa
Support signed multiplication in constraints ( #7008 )
2026-02-06 10:14:54 -05:00
github action
60b52a4986
Apply 'make format'
2026-02-06 11:39:13 +00:00
Leela Pakanati
b14d65a787
Support modport expression syntax + nested ( #2601 ) ( #5581 ) ( #7005 )
2026-02-06 06:38:16 -05:00
Leela Pakanati
2215d01d6b
Fix hierarchical interface/modport issues ( #5941 ) ( #6997 )
2026-02-05 22:15:30 -05:00
Wilson Snyder
bee456822e
Internals: Fix missing newline on co_return output code
2026-02-05 12:57:26 -05:00
Geza Lore
4e9792c34c
Fix C++ types of non-inlined module ports ( #7002 )
...
We use special C++ types for ports, e.g. SystemC types in --sc mode, and native C arrays for unpacked arrays in --cc mode. These types are not substitutable for internal types, e.g. VlUnpacked, however all the runtime primitives expect internal types.
I think the intention was to use these special IO types only for top level ports, but the current implementation also uses them for the ports of all non-inlined modules. This means the output C++ will not compile if such a port is passed to a runtime primitive (e.g. array 'sort' as in the new test) or DPI import.
Changed to use the special IO types only on the top level ports.
Note these are likely still broken if attempting to invoke on a top level port (we might be saved by wrapTop, but later optimizations might eliminate the intermediary)
2026-02-05 14:49:07 +00:00
github action
55eaa64386
Apply 'make format'
2026-02-04 21:27:14 +00:00
Leela Pakanati
57c3b8e51b
Support nested interface as port connection ( #5066 ) ( #6986 )
2026-02-04 16:26:20 -05:00
Oleh Maksymenko
229a696ab8
Add decoded Verilog name in JSON output ( #6919 ) ( #6995 )
2026-02-04 07:08:33 -05:00
Krzysztof Bieganski
ad85d89817
Support `foreach` with nested dots ( #6991 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2026-02-03 08:44:18 -05:00
Leela Pakanati
b2fa3fb54e
Fix parameterized class typedef as interface type parameter ( #6983 ) ( #6984 )
2026-02-01 22:37:29 -05:00
Wilson Snyder
407fc74195
Internals: Use Var::isConst to allow constant substitution
2026-02-01 21:06:26 -05:00
Wilson Snyder
a05cbd8382
Support structure initial values ( #6130 ).
...
Fixes #6130 .
2026-02-01 13:44:20 -05:00
Geza Lore
d3f608058f
Optimize expanded constant pool words ( #6979 )
...
Re-inline ConstPool entries in V3Subst that have been expanded into
word-wise accessed by V3Expand. This enables downstream constant folding
on the word-wise expressions.
As V3Subst now understands ConstPool entries, we can also omit expanding
straight assignments with a ConstPool entry on the RHS. This allows the
C++ compiler to see the memcpy directly.
2026-02-01 17:08:49 +00:00
Wilson Snyder
7ca113a84f
Fix non-inlined function return value clearing ( #6982 ).
2026-02-01 11:57:09 -05:00
Geza Lore
5e5dcdbdbd
Optimize right shifts as clean ( #6981 )
2026-02-01 08:12:18 -05:00
Geza Lore
ca17904a62
Internals: Improve readability of selects in output ( #6980 )
2026-02-01 07:29:56 -05:00
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
Oleh Maksymenko
a098e4894f
Fix JSON dump missing output ports ( #6751 ) ( #6831 )
2025-12-19 07:30:33 -05:00
Wilson Snyder
c2c00888d6
Fix firing array selects of events ( #6829 ).
2025-12-18 20:45:22 -05:00
Wilson Snyder
24e43f4ddd
Internals: Add assertion at expected expressions ( #6829 partial)
2025-12-18 20:37:11 -05:00
Geza Lore
04a7b31b84
Fix false IMPLICITSTATIC on localparam ( #6835 )
2025-12-18 12:51:31 +00:00
Yilou Wang
41937ecbe4
Fix member select of variable without randmode ( #6800 ) ( #6833 )
2025-12-18 06:49:04 -05:00
Wilson Snyder
b90865a08a
Change `--lint-only` and `--json-only` to imply `--timing` ( #6790 ).
2025-12-17 19:24:43 -05:00
Wilson Snyder
12ff481689
REVERT 612237b7: Optimize trace code for faster compiles on repeated types ( #6707 ) ( #6832 partial).
2025-12-17 17:37:35 -05:00
Todd Strader
d10e841b56
Skip properties for expression coverage ( #6830 )
2025-12-17 13:51:40 -05:00
Yangyu Chen
bd38775ad2
V3DfgPasses: Optimize mux with UInt To OneHot ( #6822 )
...
Signed-off-by: Yangyu Chen <cyy@cyyself.name>
2025-12-17 12:07:21 -05:00
em2machine
6f43ad8607
Fix type deduction for variable parameterized classes ( #6281 ) ( #6813 )
2025-12-17 08:08:44 -05:00
Thomas Dybdahl Ahle
5115be6e6b
Fix duplicate name error with interface initial blocks ( #6804 ) ( #6805 ).
2025-12-16 20:57:58 -05:00
Wilson Snyder
41c4f948fe
Support assert under assert ( #6146 ).
2025-12-16 20:45:31 -05:00
Luca Colagrande
a9ef4b3ff1
Fix nested struct within parameter port list ( #6818 ) ( #6824 )
2025-12-16 18:08:49 -05:00
Todd Strader
35dcf70f48
Optimize trace code for faster compiles on repeated types ( #6707 )
2025-12-16 17:52:00 -05:00
Dan Ruelas-Petrisko
394d9cf168
Support `-libmap` ( #5891 partial) ( #6764 )
2025-12-16 11:21:46 -05:00
Geza Lore
47a4f7fb9b
Improve reusability of --dump-inputs output ( #6812 )
2025-12-16 11:08:19 +00:00
Ryszard Rozak
25f72e4305
Support force assignments to unpacked array elements of simple types (partial #4735 ) ( #6787 )
2025-12-16 08:35:59 +01:00
Krzysztof Bieganski
7e67f73844
Fix process reference giving no return statement error ( #6767 ) ( #6823 )
2025-12-15 18:09:45 -05:00
Alex Solomatnikov
8da8ca4203
Fix error on resized lvalues with warning suppressed ( #6497 ) ( #6816 )
2025-12-15 06:49:32 -05:00
Wilson Snyder
dc00bf2484
Fix 'void(' mis-throwing assertion
2025-12-13 21:43:27 -05:00
Wilson Snyder
27558c9349
Internals: Reorganize system function/task parse rules. No functional change.
2025-12-13 21:34:28 -05:00
Wilson Snyder
5634795140
Improve message on cast assertion failure.
2025-12-13 20:51:13 -05:00
em2machine
aff501f5c4
Fix resolution of specialized typedefs ( #6754 ) ( #6808 )
2025-12-12 15:20:15 -05:00
em2machine
2995748d46
Fix parameterized class function ( #6659 ) ( #6802 )
2025-12-12 04:17:08 -08:00
Yilou Wang
f097e8a34e
Fix write variable placement for global constraints ( #6740 ) ( #6750 ) ( #6797 )
2025-12-11 14:16:34 -05:00
Geza Lore
af1be26b96
Fix O(n*2) analysis in const-bit-op-tree ( #6791 )
...
Note this might miss some cases where a sub-tree within an And/Or/Xor
tree is optimizeable, but not the whole tree, but in practice this seems
to work better than the alternative of keeping a set of failed nodes and
bail early.
2025-12-11 14:32:25 +00:00
em2machine
afc4bed0f8
Fix generate function(s) inside of generate blocks ( #1011 ) ( #6789 )
2025-12-10 20:53:19 -05:00
Wilson Snyder
5d768a4a20
Internals: Fix rand dump text
2025-12-10 19:07:51 -05:00
Pawel Kojma
37318ab2bd
Fix input sampling of clocking block signals ( #6788 )
2025-12-10 10:59:08 -05:00
Wilson Snyder
075d624b29
Add SUPERNFIRST error on super.new on non-first statement ( #6784 ).
2025-12-09 19:22:59 -05:00
Ryszard Rozak
0f355c717e
Fix `disable iff` in simple properties ( #6783 )
2025-12-09 07:18:32 -05:00
Wilson Snyder
ec38fb723d
Internals: Remove added debug to avoid false leak warning
2025-12-08 21:33:21 -05:00
Wilson Snyder
a3f913c5b1
Fix randomize call in parameterized class
2025-12-08 20:26:53 -05:00
Wilson Snyder
0f46f6eb40
Internals: Fix missing override
2025-12-08 20:17:40 -05:00
Wilson Snyder
29ae520e69
Fix class param static not found again error ( #6768 ).
2025-12-08 20:11:28 -05:00
Wilson Snyder
bd87dfc579
Internals: Add --debug-exit-elab; remove --debug-exit-uvm*
2025-12-08 18:02:46 -05:00
em2machine
d0a5da2445
Fix typedef derived from type defined inside interface ( #3441 ) ( #6776 )
2025-12-08 15:36:21 -05:00
Geza Lore
7e55c62cac
Improve combinational cycle fixup in Dfg ( #6744 ) ( #6746 )
...
Now that we have an efficient algorithm to analyse which bits in a
combinational cycle are not dependent on the cycle, can simplify the
cycle fixup algorithms. Remove FixUpSelDrivers: this was a heuristic
to save on the expensive independent bits analysis, but itself can
cause a performance problem on certain inputs that result in a large
number of attempted fixups. Doing this simplifies the driver tracing
algorithm, and because we now only attempt to trace drivers that are
known to be independent of the cycles, it should always succeed...
Unless of course there is a mismatch between the independent bit
analysis ant the driver tracing algorithm. In such case (when we managed
to prove independence, but then fail to trace a driver), we will crash,
which is still easier to sv-bugpoint than a performance bug.
Fixes #6744
2025-12-08 18:43:21 +00:00
Geza Lore
1baa832efc
Fix reordering of function body inlined on RHS of <= NBA ( #6780 )
2025-12-08 18:42:52 +00:00
Christian Hecken
9a23711ff9
Fix stale pointers in VerilatedImpData::m_hierMap ( #6726 )
2025-12-07 15:42:29 -05:00
Wilson Snyder
ae480c5f76
Fix enum item references in class extends with parameters.
2025-12-07 15:26:52 -05:00
Wilson Snyder
8130fed777
Fix pre/post_randomize on extended classes ( #6467 ).
2025-12-07 14:14:48 -05:00
Wilson Snyder
ba9d6df20c
Fix class-in-class extends with parameters ( #6773 ).
2025-12-07 13:38:25 -05:00
Wilson Snyder
4b02e32314
Fix DPI under param class ( #6733 partial)
2025-12-07 13:30:54 -05:00
Wilson Snyder
7946e9d197
Internals: Add some missing cfunc attribute dumps
2025-12-07 13:25:37 -05:00
Wilson Snyder
35a794687b
Internals: Add some additional dangling checks. No functional change intended
2025-12-07 13:25:37 -05:00
Matthew Ballance
0e03ab2a57
Fix crash when super.new() called without a base class ( #6772 )
2025-12-06 18:08:51 -05:00
Wilson Snyder
040484cc3f
Fix extern function that returns parametrized class ( #4924 ).
2025-12-06 16:16:06 -05:00
Geza Lore
5278f42025
Fix Dfg assertion on out of bounds selects
2025-12-06 15:31:27 +00:00
em2machine
c2cba8bfc6
Fix localparam type assignment from interface type parameters ( #6637 ) ( #6732 )
2025-12-06 09:42:59 -05:00
github action
ba3794a495
Apply 'make format'
2025-12-06 14:12:22 +00:00
Dan Ruelas-Petrisko
8c252952db
Support `config` instance clauses ( #5891 partial) ( #6745 )
2025-12-06 09:11:20 -05:00
Geza Lore
18dd44e970
Fix --lib-create with multi-bit clocks ( #6759 )
2025-12-05 15:21:35 +00:00
Geza Lore
e2c05ae15e
Fix select assignment expansion ( #6757 )
2025-12-05 10:07:53 -05:00
Geza Lore
df7726c40d
Fix Dfg reusing volatile variables
...
Forceable/externally written variables cannot be used as the canonical
result variable for a Dfg value as the variables value can be
inconsistent with its Dfg drivers (e.g. when forced).
2025-12-05 14:12:36 +00:00
Wilson Snyder
cfada791e6
Internals: Fix leak in covergroup, last commit
2025-12-05 04:14:24 -05:00
Wilson Snyder
2f4b178957
Support parsing only of covergroup.option.option_name
2025-12-04 21:55:55 -05:00
Ryszard Rozak
f2c2daa017
Throw UNSUPPORTED on force / release statements with complex select expressions ( #6755 )
2025-12-04 14:06:47 +01:00
Yilou Wang
1fc86fd2f1
Fix randomize called within func/task ( #6144 ) ( #6753 )
...
Co-authored-by: Udaya Raj Subedi <075bei047.udaya@pcampus.edu.np>
2025-12-04 07:18:07 -05:00
Yilou Wang
22cd9bcadc
Support rand_mode in global constraint gathering ( #6740 ) ( #6752 )
2025-12-04 07:16:03 -05:00
Wilson Snyder
4426aff3d3
Internals: Fix coredump when dump with bad null enum itemp()
2025-12-03 21:35:59 -05:00
Wilson Snyder
7957701db8
Suppress unsupported for unused constant sequences
2025-12-03 21:23:48 -05:00
Matthew Ballance
3fc70b61d0
Fix internal fault when cross-class calling with DPI ( #6735 ) ( #6742 )
...
Signed-off-by: Matthew Ballance <matt.ballance@gmail.com>
2025-12-02 22:05:59 -05:00
Wilson Snyder
9a1dba357e
Fix `randsequence return` inside function
2025-12-02 17:54:40 -05:00
Geza Lore
60fe2c873c
Optimize trace initialization code size ( #6749 )
2025-12-02 07:19:45 -05:00
Yilou Wang
e25c66de07
Support complex std::randomize patterns ( #6736 ) ( #6737 )
2025-12-01 16:26:16 -05:00
Wilson Snyder
b9b6eb61d9
Support randsequence ( #6131 )
2025-11-30 09:04:42 -05:00
Geza Lore
35615c268b
Fix Dfg independent bits analysis performance ( #6731 ) ( #6743 )
...
This removes a factor N from DfgBreakCycles, by doing the necessary data
flow analysis for the entire graph up front, and resulting the result for
all subsequent cycle fixups in the current iteration.
Fixes #6731
2025-11-29 19:01:22 +00:00
Wilson Snyder
287d8aef9e
Fix duplicate member on interface always
2025-11-29 10:24:37 -05:00
Wilson Snyder
1583c79a8a
Add assert ( #6740 partial)
2025-11-28 09:55:19 -05:00
Jonathan Drolet
f2e05bc0b7
Support unpacked struct in localparam ( #6053 partial) ( #6708 )
2025-11-27 23:17:18 +04:00
Artur Bieniek
2c5ff3f63f
Fix fork scheduling semantics ( #6730 )
...
Signed-off-by: Artur Bieniek <abieniek@internships.antmicro.com>
2025-11-26 15:52:53 +03:00
Yilou Wang
f4654a451b
Support array reference arguments into 'std::randomize()' ( #6384 ) ( #6719 )
2025-11-26 15:50:24 +03:00
Wilson Snyder
8293a8d035
Fix multitop cross references ( #6699 ).
2025-11-26 06:09:29 -05:00
Wilson Snyder
9155e2529b
Internals: Add AstLoop statement constructor. No functional change.
2025-11-25 09:05:42 -05:00
Geza Lore
7cfe9b5356
Fix --prof-exec using --lib-create
2025-11-25 10:08:03 +00:00
Geza Lore
d2ce5e62e7
Internals: Factor out --prof-exec section handling, add debug code
2025-11-25 10:08:03 +00:00
Wilson Snyder
840c8f5782
Internals: Auto-set useRandimizeMethods if new a AstRandCase. No functional change
2025-11-23 17:14:19 -05:00
Geza Lore
6ab8d56993
Optimize combinational loops through sign extension ( #6724 )
2025-11-23 19:26:51 +00:00
github action
28c78d3f9a
Apply 'make format'
2025-11-23 01:21:13 +00:00
Dan Ruelas-Petrisko
9346b98cb6
Support `config` cell clauses ( #6717 )
2025-11-22 20:17:17 -05:00
Michael Bikovitsky
9632c614be
Fix X handling in UDPs ( #6723 )
2025-11-22 20:09:49 -05:00
Wilson Snyder
087ca15138
Support clocking output delay `1step` ( #6681 ).
2025-11-22 17:40:40 -05:00
Wilson Snyder
6bba9f6c40
Internals: Defer interface typedefs, and add more tests ( #3441 tests)
2025-11-21 19:42:22 -05:00