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
de9671d4a3
Tests: uvm_regex.cc from upstream has clang warnings
2025-08-02 15:03:09 -04:00
Wilson Snyder
12355270b3
Tests: Add uvm_dpi
2025-08-02 13:50:16 -04:00
Ryszard Rozak
f9bdab65f0
Fix coverage of variables of complex types ( #6250 )
2025-08-01 13:24:18 +02:00
Szymon Gizler
61f4c97f40
Support unassigned virtual interfaces ( #5265 ) ( #6245 )
2025-08-01 12:39:13 +02:00
Rodrigo Batista de Moraes
d0f0919830
Fix write of 0 in '%c' ( #6248 ) ( #6249 )
2025-08-01 07:54:18 +02:00
Wilson Snyder
bd1ac03828
Add I/O versus data declaration checking.
2025-07-31 18:38:50 -04:00
Ryszard Rozak
d8f1e1113a
Fix error when force assignment is used with ref function args ( #6244 )
2025-07-31 12:48:37 +02:00
Wilson Snyder
9d38e63269
Remove error on missing forward declarations of typedef in class ( #6207 ).
2025-07-30 09:14:13 -04:00
Igor Zaworski
2b62f5a625
Add error when trying to assign class object to variable of non-class types ( #6237 )
2025-07-30 09:48:02 +02:00
Wilson Snyder
0da9f6eb03
Fix queue typedef with unbounded slice ( #6236 ).
2025-07-28 19:36:52 -04:00
Wilson Snyder
2ff6ee9613
Support vpi_handle_by_name with `$root.`.
2025-07-28 18:03:21 -04:00
Wilson Snyder
833c31b031
Add `-DVERILATOR=1` definition to compiler flags when using verilated.mk.
2025-07-28 18:01:50 -04:00
Ryszard Rozak
a5b0a0d9dd
Add support for `$countones` in constraints ( #6144 ) ( #6235 )
2025-07-28 16:14:03 +02:00
Wilson Snyder
5c1d7f3ce9
Fix negate of wide structure selections ( #6186 ).
2025-07-28 02:20:57 -04:00
Wilson Snyder
e69df457fd
Fix MODDUP with duplicate packages to take first package ( #6222 ).
2025-07-28 01:45:03 -04:00
Wilson Snyder
47c5b220b3
Support non-ansi ports with `wire` before `input`
2025-07-27 17:13:56 -04:00
Wilson Snyder
64a82508f2
Fix error on `with` to give UNSUPPORTED ( #6134 )
2025-07-27 16:12:16 -04:00
Paul Swirhun
bd2cb989d1
Support bit queue streaming ( #5830 ) ( #6103 ).
2025-07-27 15:29:56 -04:00
Wilson Snyder
d359fffcdc
Internals: Refactor V3Task and add loop assert ( #6218 )
2025-07-27 10:30:19 -04:00
Wilson Snyder
c4b3f1e99c
Tests: Add test and assert for nested simulated loops ( #6223 )
2025-07-27 09:43:46 -04:00
Geza Lore
895b85a16e
Fix Replicate with unsigned count but MSB set ( #6231 ) ( #6233 )
...
Correctly compute witdh of AstReplicate in its constructor when the
count is unsigned but its MSB is set.
2025-07-27 12:30:19 +02:00
Wilson Snyder
1725ee9c52
Fix loop initialization visibility outside loop ( #4237 ).
2025-07-27 03:42:41 -04:00
Wilson Snyder
470f99694e
Revert d8dbb08a: Support bit queue streaming ( #5830 ) ( #6103 )
2025-07-26 17:59:52 -04:00
Wilson Snyder
f3560837ec
Add error on missing forward declarations ( #6207 ).
2025-07-26 17:11:35 -04:00
Paul Swirhun
d8dbb08a95
Support bit queue streaming ( #5830 ) ( #6103 )
2025-07-26 16:53:51 -04:00
Wilson Snyder
39a5c731ac
Tests: Fix missing forward decls ( #6202 partial)
2025-07-26 15:48:19 -04:00
Geza Lore
504884b7d5
Refactor DFG context objects ( #6232 )
...
- Move All DFG context objects to V3DfgContext.h
- Add separate object for ast2dfg and dfg2ast passes
- Factor out commonalities
No functional change
2025-07-26 20:37:01 +01:00
Wilson Snyder
d289934ca9
Improve `--skip-identical` to skip on identical input file contents ( #6109 ).
2025-07-26 02:43:57 -04:00
github action
20bd80698d
Apply 'make format'
2025-07-25 18:06:24 +00:00
George Polack
f1826a7c20
Support Verilog real to SystemC double ( #6136 ) ( #6158 )
2025-07-25 20:05:36 +02:00
Wilson Snyder
fa62cd3486
Fix `--stats` overridden by skipping identical build ( #6220 ).
2025-07-25 07:23:02 -04:00
Yilou Wang
10ac99ac05
Support randomization of scope variables with 'std::randomize()' ( #5438 ) ( #6185 )
2025-07-25 12:13:46 +02:00
Wilson Snyder
b408e097f6
Fix unsigned replicate ( #6229 )
2025-07-24 22:55:26 -04:00
Geza Lore
94bebb2bcb
Fix dereferencing stale iterator in DfgVertex::scopep() ( #6227 )
...
Fix dereferencing stale iterator in DfgVertex::scopep()
Fixes part of #6225
2025-07-24 15:31:31 +01:00
Geza Lore
2be257369a
Fix component numbers of new Vertices in V3DfgBreakCycles ( #6228 )
...
Fix component numbers of new Vertices in V3DfgBreakCycles
Fixes part of #6225
2025-07-24 15:31:09 +01:00
Artur Bieniek
04c38d5b3b
Tests: Switch to measuring CPU time instead of real time in test timeouts ( #6224 )
...
Signed-off-by: Artur Bieniek <abieniek@internships.antmicro.com>
2025-07-24 11:27:02 +02:00
Wilson Snyder
db5b2669fc
Add current memory usage statistic ( #6192 partial)
2025-07-24 08:36:58 +02:00
Wilson Snyder
460bfbf181
Fix replicate of negative giving 'REPLICATE has no expected width' internal error ( #6048 ).
2025-07-23 18:07:50 -04:00
Wilson Snyder
050e5ddb5b
Fix internal error after bad method
2025-07-23 17:17:35 -04:00
Wilson Snyder
393f0e4acb
Tests: Example format
2025-07-23 14:58:58 -04:00
Geza Lore
7c5d462564
Remove AstJumpLabel ( #6221 )
...
Remove AstJumpLabel
AstJumpGo now references one if its enclosing AstJumpBlocks, and
branches straight after the referenced block.
That is:
```
JumpBlock a {
...
JumpGo(a);
...
}
// <--- the JumpGo(a) goes here
```
This is sufficient for all use cases and makes control flow much easier to
reason about. As a result, V3Const can optimize a bit more aggressively.
Second half of, and fixes #6216
2025-07-23 17:51:16 +01:00
Geza Lore
763183f067
Internals: Remove AstWhile::precondsp() ( #6219 ). No functional change intended.
2025-07-23 08:50:39 -04:00
Geza Lore
2958a5aaae
Internals: Do not emit temporaries for atomic assignments. ( #6217 )
...
Added test for a particularly convoluted case requiring fixup in
V3Premit. To help with statistics stability, also prevent V3Premit from
introducing temporaries for assignment where the RHS reads the LHS, but
the assignment is known to be atomic (by emitted C++ semantics).
Also rename `createWideTemp` to `createTemp`, as it is used for non-wide
expressions as well.
2025-07-23 11:48:55 +02:00
Geza Lore
344fabf56a
Fix incorrect assumption in V3DfgDecomposition ( #6215 )
...
Due to SCC merging the deleted assumption/assertion can be violated.
Fixes #6211 .
2025-07-22 14:03:35 +01:00
Geza Lore
9f04ee68c8
Optimize combinational cycles through arrays in DFG ( #6210 )
...
Extending V3DfgBreakCycles to handle common cases involving unpacked
arrays.
2025-07-22 08:23:45 +01:00
Danny Oler
74d4b0c0ea
Fix automatic task variables in unrolled loops with forks ( #6194 ) ( #6201 ).
2025-07-21 19:28:50 -04:00
Geza Lore
a8dca71ed0
Support more complex combinational assignments in DFG. ( #6205 )
...
Previously DFG was limited to having a Sel, or an ArraySel potentially
under a Concat on the LHS of combinational assignments. Other forms or
combinations were not representable in the graph.
This adds support for arbitrary combinations of the above by
combining DfgSplicePacked and DfgSpliceArray vertices introduced in
#6176 . In particular, Sel(ArraySel(VarRef,_),_) enables a lot more code
to be represented in DFG.
2025-07-21 12:33:12 -04:00