Wilson Snyder
c90f9e53b7
Add ALWNEVER warning, for `always @*` that never execute ( #6291 ) ( #6303 )
2025-08-18 12:00:53 -04:00
Artur Bieniek
53c59e7ac7
Fix referencing module variables above classes ( #6304 )
...
Signed-off-by: Artur Bieniek <abieniek@internships.antmicro.com>
2025-08-18 08:51:25 -04:00
Geza Lore
9dc31e4556
Fix unsound assertion in V3Delayed ( #6305 )
2025-08-18 13:46:35 +01:00
Geza Lore
c172cc2ab0
Internals: Simplify port connect after instance dearray ( #6302 )
...
Pre pull for #6298
2025-08-18 09:55:54 +01:00
Wilson Snyder
25d71a43a5
For hier-generated Verilog, use always_comb
2025-08-17 20:14:19 -04:00
Wilson Snyder
88046c8063
Internals: Rename AstSenTree pointers to sentreep. No functional change intended except JSON.
2025-08-17 19:14:34 -04:00
Geza Lore
f6edf26eb2
Fix hierarchical NBAs ( #6286 ) ( #6300 )
...
NBAs targeting a variable in a different scope are now allocated
temporary variables for captured values in the scope of the NBA, not the
scope of the target variable.
Fixes #6286
2025-08-17 19:35:40 +01:00
Wilson Snyder
b14539569f
Internals: Check and enforce member brace initialization. No functional change intended
2025-08-17 13:20:52 -04:00
Wilson Snyder
7126293086
Support enum.next with a parameter
2025-08-16 21:06:35 -04:00
Wilson Snyder
36c4a24661
Internals: constifyParamsEdit return value was unused. No functional change.
2025-08-16 21:03:12 -04:00
Wilson Snyder
49ca1cfdd7
Commentary
2025-08-16 18:32:40 -04:00
Geza Lore
a300bfc538
Internals: Add AstNodeStmt.h ( #6295 )
...
Move AstNodeStmt and all its subtypes into AstNodeStmt.h.
This is the first step for #6280 .
No functional change
2025-08-16 09:46:18 +01:00
Geza Lore
6f69c990fd
Internals: Remove AstCondBound and AstNodeCond ( #6293 ) ( #6294 )
...
Fixes #6293
2025-08-15 15:49:06 -07:00
Geza Lore
d273e2cbd0
Internals: Do not astgen useless Dfg vertex subtypes
2025-08-15 20:06:58 +01:00
Geza Lore
9c11f5e05d
Fix DFG circular driver tracing
2025-08-15 10:20:20 +01:00
Wilson Snyder
047a12cc62
Fix variables hiding package imports ( #6289 ).
2025-08-13 18:05:37 -04:00
Wilson Snyder
60cbbf0ec1
Add error on mismatching prototypes ( #6207 ).
2025-08-11 19:50:47 -04:00
Geza Lore
762c5f573c
Improve DFG to enable breaking more combinational cycles
2025-08-11 09:44:31 +01:00
Geza Lore
7696b0651c
Internals: Improve DFG dumping functions
2025-08-10 16:48:40 +01:00
Wilson Snyder
eb80db9397
Clarify extern error message
2025-08-10 08:38:26 -04:00
Wilson Snyder
641dd756c0
Add check for mis-assignment of dynamic/automatics per IEEE
2025-08-10 07:23:28 -04:00
Wilson Snyder
a74a3bb689
Internals: No need for 'if' before VL_FFLUSH_I
2025-08-10 06:13:18 -04:00
Geza Lore
d28436dccc
Fix stray ']' in Verilog code output for non-constant select ( #6277 )
2025-08-09 14:59:58 +01:00
Wilson Snyder
3ca1c9b6dd
Internals: Fix and enforce brace new constructors. No functional change intended.
2025-08-08 18:21:12 -04:00
Geza Lore
16d32cdd4a
Internals: Refactor Ast to Dfg conversion for reusability. ( #6276 )
...
This is mainly code motion, with minimal algorithmic changes to
facilitate reusing parts in future code. No functional change intended.
2025-08-08 22:53:12 +01:00
Wilson Snyder
d1f851e1e1
Internals: Optimize empty 'if' into StmtExpr
2025-08-08 05:10:40 -04:00
Wilson Snyder
6a225d5d00
Internals: Remove AstSysFuncAsTask
2025-08-08 05:09:54 -04:00
Artur Bieniek
5b7188fcaf
Fix same variable on the RHS forced to two different LHSs. ( #6269 )
2025-08-06 17:37:00 -04:00
github action
dc049fdd74
Apply 'make format'
2025-08-06 21:30:37 +00:00
Michael Bedford Taylor
218659f4e8
Support parameter resolution of 1D unpacked array slices ( #6257 ) ( #6268 )
2025-08-06 17:29:40 -04:00
Igor Zaworski
6c1cfc68cf
Fix dynamic cast purity ( #6267 )
...
Signed-off-by: Igor Zaworski <izaworski@internships.antmicro.com>
2025-08-06 07:09:44 -04:00
Wilson Snyder
c005486acf
Support by ignoring delay2 on UDPs
2025-08-05 17:34:42 -04:00
Wilson Snyder
6467351752
Add error on class 'function static'.
2025-08-05 17:12:00 -04:00
Wilson Snyder
870c398094
Fix incorrect Non-ANSI I/O declaration conflict error ( #6258 ) broke with #bd1ac038
2025-08-05 16:33:28 -04:00
Geza Lore
86c56e8e14
Fix true cycle detection in DFG
2025-08-05 15:04:07 +01:00
Geza Lore
25d968b833
Fix infinite loop in VString::replaceSubstr
...
If the replaced string was a suffix of the replacement, we used to get
an infinite loop.
2025-08-05 14:41:38 +01:00
Geza Lore
158a54a7ff
Defer deletion of eliminated Ast variables until end of Dfg pass. ( #6263 )
...
This is currently unnecessary but future patch will depend on it.
2025-08-05 14:29:33 +01:00
Geza Lore
8c9a4fec83
Emit memory addresses of vertices in Dfg dumps
2025-08-05 13:03:57 +01:00
Geza Lore
53332ae03e
Unify the two DFG cycle finding algorithms. ( #6262 )
...
Both V3DfgBreakCycles.cpp and V3DfgDecomposition.cpp used to contain an
implementation of the same algorithm to color strongly connected
components. Now there is only one, and it lives in V3DfgColorSCCs.cpp.
2025-08-05 13:03:30 +01:00
Geza Lore
4a5935d248
Merge DFG components made acyclic into the original acyclic sub-graph. ( #6261 )
...
After making a cyclic DFG component acyclic, merge that component back
into the acyclic sub-graph of the input graph. This enables optimizing
through the components that were made acyclic in their larger context.
2025-08-05 12:11:02 +01:00
Geza Lore
78c9e7773a
Allow more variable removal in scoped DFG ( #6260 )
2025-08-05 11:18:33 +01:00
Geza Lore
d2edab458e
Refactor Dfg variable flags ( #6259 )
...
Store all flags in a DfgVertexVar relating to the underlying
AstVar/AstVarScope stored via AstNode::user1(). user2/user3/user4 are
then usable by DFG algorithms as needed.
2025-08-05 10:24:54 +01:00
Geza Lore
d415757b0e
Remove unhelpful DFG debug dumps
2025-08-05 05:06:44 +01:00
Ryszard Rozak
7d2b6bd921
Internals: Optimize updates of Vtogcov signals. No functional change intended. ( #6110 )
2025-08-04 13:29:56 +01:00
Wilson Snyder
52ac3b3a0d
Add error on too many pattern members for structure
2025-08-03 17:26:51 -04:00
Wilson Snyder
f106c1eaec
Fix genvar check to be more strict about generate-for usage only
2025-08-03 16:57:12 -04:00
Wilson Snyder
309129ebcf
Add PARAMNODEFAULT error, for parameters without defaults.
2025-08-03 15:27:37 -04:00
Geza Lore
deed20fb78
Fix partial DFG conversion of concat assignments ( #6255 )
...
When we had a `{a, b} = ...`, and the DFG conversion of `a = ...`
succeeded, but `b = ...` failed, we still used to include `a = ...` in
the DFG, which then caused a spurious multi-driver error for `a` on
a subsequent DFG pass, as the original `{a, b} = ...` was still present
in the Ast, but we also had the extra `a = ...` from converting out of
DFG on the previous pass.
In this patch we only convert assignments with a concatenation on the
LHS, if all target LValues can be converted into DFG.
This is the proper fix for #4231
2025-08-03 14:52:20 +01:00
Wilson Snyder
36577bb549
Add check for missing 'parameter' on implicit types
2025-08-02 17:02:45 -04:00
Wilson Snyder
473d54aa95
Internals: Fis emit spacing etc. No functional change
2025-08-02 13:47:07 -04:00