Wilson Snyder
4b4ca90c71
Internals: Create FuncRef/TaskRef directly from Func/Task pointer. No functional change intended
2024-12-15 09:15:49 -05:00
Wilson Snyder
6aa7123a8c
Internals: Function/variable renames. No functional change.
2024-12-14 12:49:42 -05:00
Wilson Snyder
80b2fa3583
Add error on randc inside dist
2024-12-14 11:47:46 -05:00
Wilson Snyder
c2dcca980e
Improve to throw UNSUPPORTED instead of syntax error on extend class arguments
2024-12-13 17:15:04 -05:00
Wilson Snyder
a23dfdc4ee
Fix backward external constraint error, from recent new support.
...
(Thanks sv-tests!)
2024-12-13 16:54:14 -05:00
Todd Strader
41a038b79b
Fix interface bracketed array parameter access ( #5678 ) ( #5677 )
2024-12-13 12:00:49 -05:00
Ryszard Rozak
a8e06874bd
Fix `randomize..with` of parameterized classes ( #5676 )
...
Broke in 7a04a5b
2024-12-13 09:32:47 -05:00
Yilou Wang
54ef9ad31c
Support associative array basic constrained randomization ( #5658 ) ( #5670 )
2024-12-12 11:31:54 -05:00
Bartłomiej Chmiel
32f9cf072b
Fix hierarchical verilation for projects with dot-f dependency lists ( #5199 ) ( #5669 )
2024-12-12 11:25:19 -05:00
Ryszard Rozak
03e8ef0b0f
Fix wildcard equality and inside operators for non-fourstate expressions ( #5673 )
2024-12-12 14:51:48 +01:00
Wilson Snyder
a2f327f729
Support `extern constraint`
2024-12-12 08:16:19 -05:00
Wilson Snyder
6e204ed0dd
Internals: Cleanup 'error error' on fatals
2024-12-11 08:52:41 -05:00
Bartłomiej Chmiel
58ddf997e3
Improve optimization of duplicate wide expressions ( #5637 )
...
Prevent inlining of expensive wide expressions in V3Gate (#5637 )
2024-12-11 11:45:31 +00:00
Ryszard Rozak
9656311521
Fix error on duplicated declaration of gen block ( #5663 )
2024-12-06 07:20:31 -05:00
Wilson Snyder
a247041cab
Internals: Refactor 713dab27 to avoid IfaceRef being known in LinkCells
2024-12-03 12:00:56 -05:00
Yilou Wang
a64660a530
Fix foreach mixed array ( #5655 ) ( #5656 )
2024-12-03 07:57:50 -05:00
Todd Strader
b6f292f556
Fix imported array assignment literals ( #5642 ) ( #5648 )
2024-12-02 15:08:47 -05:00
Wilson Snyder
4781a6046a
Update error as misnamed port dtype might be interface
2024-12-02 07:35:44 -05:00
Wilson Snyder
b16b48f458
Internals: Misc ANSI port parsing cleanups; baseline for future commit.
2024-12-02 07:21:39 -05:00
Bartłomiej Chmiel
a668b7c658
Fix missing VlProcess handle in coroutines with splits ( #5623 ) ( #5650 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
2024-12-02 05:43:26 -05:00
Wilson Snyder
94fd17e4f7
Internals: Port parsing cleanups
2024-12-01 23:03:19 -05:00
Wilson Snyder
aa2b653c71
Internals: With `--dumpi-tree >= 9`, create pre-sort cells.tree
2024-12-01 17:38:02 -05:00
Wilson Snyder
d75f41b641
Tests: Add param type to t_typename test
2024-12-01 17:28:13 -05:00
Wilson Snyder
b0f898cec8
Internals: Determine needing verilated_std without symbol table
2024-12-01 11:35:00 -05:00
Wilson Snyder
7a04a5b9a8
Internals: Refactor symIterate functions. No functional change intended
2024-11-30 22:55:16 -05:00
Wilson Snyder
2d71d66cf5
Commentary
2024-11-30 22:35:36 -05:00
Wilson Snyder
a51e26e62d
Internals: Some V3LinkCells debug improvements. No functional change.
2024-11-30 20:09:05 -05:00
Wilson Snyder
e44f34dde3
Improve concat lint error & cleanups for future commit.
2024-11-30 18:56:00 -05:00
Wilson Snyder
0c820c3068
Internals: Standardize template argument names. No functional change.
2024-11-29 20:20:38 -05:00
Wilson Snyder
990ccd6763
Internals: Standardize on `template<typename`. No functional change.
2024-11-29 18:01:50 -05:00
Wilson Snyder
f631587a20
Internals: Rename classOrPackageSkip as kept confusing with member accessor. No functional change.
2024-11-29 16:57:18 -05:00
Wilson Snyder
9f8fcaf827
Fix linking types of typedefs
2024-11-29 16:09:39 -05:00
Wilson Snyder
d7893a60ca
Internals: In V3LinkDot debug, show node name prefix. No functional change.
2024-11-29 16:09:04 -05:00
Wilson Snyder
93090c56ee
Fix mis-aliasing of instances with mailbox parameter types ( #5632 partial).
2024-11-29 09:20:02 -05:00
Wilson Snyder
d750ffc129
Internals: Fix debug dump of deleted nodes.
2024-11-29 08:51:32 -05:00
Wilson Snyder
7efa0fc82a
Internals: Rewrite skipRefp to avoid recursion and fix const-ness. No functional change intended.
2024-11-29 08:10:51 -05:00
Wilson Snyder
8db9db7e25
Internals: Rename same() function. No functional change.
2024-11-28 15:01:58 -05:00
Wilson Snyder
d165671225
Improve error when no parameter type value ( #5645 partial)
2024-11-28 14:09:06 -05:00
Wilson Snyder
7a8f71e7d8
Add `--fno-slice` to disable array assignment slicing ( #5644 ).
2024-11-28 13:49:34 -05:00
Wilson Snyder
e0ad430cd9
Internals: V3Slice style cleanup. No functional change; ignore whitespace
2024-11-28 13:33:59 -05:00
Todd Strader
94e545bdca
Fix interface and struct pattern collision ( #5640 ) ( #5639 )
2024-11-27 17:20:21 -05:00
Wilson Snyder
99daa8d24b
Support `default disable iff` and `$inferred_disable` ( #4016 ).
2024-11-26 22:27:32 -05:00
Wilson Snyder
e14903cfb2
Internals: Fix null skipRef for consistency. No functional change intended.
2024-11-26 22:10:54 -05:00
Wilson Snyder
bee344d1ae
Add error on illegal `--prefix` etc. values ( #5507 ).
2024-11-26 21:06:43 -05:00
Wilson Snyder
713dab278c
Fix mis-public interfaces, broke in f58aee2ff2
2024-11-26 19:16:05 -05:00
Wilson Snyder
7a9140821d
Fix public_module requiring a wire to become public ( #4916 ).
2024-11-25 21:21:11 -05:00
Wilson Snyder
25d75ee86f
Add `--fno-inline-funcs` to disable function inlining.
2024-11-25 19:59:10 -05:00
Wilson Snyder
a72009fb41
Fix UNDRIVEN on refs
2024-11-25 18:41:38 -05:00
Wilson Snyder
a934d965be
Internals: Rename isInoutish
2024-11-25 18:25:36 -05:00
Wilson Snyder
6f35fec5ce
Commentary
2024-11-24 20:47:57 -05:00
Wilson Snyder
f58aee2ff2
Internals: Defer marking variables as IfaceRef until cells resolved. No functional change intended.
2024-11-24 18:33:10 -05:00
Wilson Snyder
f5ee7aa0ab
Internals: Decouple Bison class/package symbol table parsing from Link symbol table. ( #5629 )
...
Not intended to change non-error cases, but side-effects are likely.
2024-11-24 18:19:19 -05:00
github action
0d5fedce92
Apply 'make format'
2024-11-24 03:02:04 +00:00
sumpster
24b5c641f5
Fix array of struct member overwrites on member update ( #5605 ) ( #5618 ) ( #5628 )
2024-11-23 22:01:02 -05:00
Ryszard Rozak
ae990ebcda
Add warning on global constraints ( #5625 )
2024-11-22 08:47:14 -05:00
Ryszard Rozak
5470cf9fa9
Support randomize size constraints with restrictions ( #5582 partial) ( #5611 )
2024-11-15 10:45:06 -05:00
Wilson Snyder
9bde98e912
Commentary
2024-11-14 21:07:45 -05:00
Greg Davill
904be103df
Support parameter names in pattern initialization ( #5593 ) ( #5596 )
2024-11-14 07:25:58 -05:00
Wilson Snyder
8e82440a55
Fix extranous local:: error
2024-11-13 19:15:10 -05:00
Wilson Snyder
d4a8cbb1d6
Fix `function fork...join_none` regression with unknown type ( #4449 ).
2024-11-13 08:00:43 -05:00
Wilson Snyder
192236a832
Fix `module automatic`
2024-11-13 07:10:48 -05:00
Wilson Snyder
3ffea76e11
Add `--no-std-waiver` and default reading of standard lint waivers file ( #5607 ).
2024-11-12 22:11:19 -05:00
Wilson Snyder
0bf413b260
Add `lint_off --contents` in configuration files. ( #5606 )
2024-11-12 20:21:16 -05:00
Wilson Snyder
779cf9248a
Cleanup/standardize configuration file string handling
2024-11-12 11:29:27 -05:00
Krzysztof Starecki
1d06364284
Support vpiDefName ( #5572 )
2024-11-12 11:28:39 -05:00
Wilson Snyder
4d95f6f7b8
Add `--waiver-multiline` for context-sensitive `--waiver-output`.
2024-11-11 20:00:26 -05:00
Wilson Snyder
46a5f04840
Internals: Link 'std' in LinkFind
2024-11-11 09:44:08 -05:00
Wilson Snyder
7c8ff1d19c
Add `--no-std-package` as subset-alias of `--no-std`.
2024-11-11 08:30:07 -05:00
Wilson Snyder
15d1751b23
Internals: Defer `class extends` resolution until link
2024-11-10 19:34:00 -05:00
Wilson Snyder
b71d49e55a
Internals: Defer `$unit` package resolution until link
2024-11-10 18:36:12 -05:00
Wilson Snyder
c3b2bfbc39
Internals: Fix missing cleanFileline
2024-11-10 18:26:23 -05:00
github action
b74a8f133f
Apply 'make format'
2024-11-10 21:54:54 +00:00
Wilson Snyder
873048c21c
Fix 'local::' parsing in wrong scope
2024-11-10 16:51:34 -05:00
Wilson Snyder
75e9986d39
Fix local:: mis-allowed in `class extends`
2024-11-10 16:43:21 -05:00
Geza Lore
863abdb1f7
Fix NBAs to unpacked arrays of unpacked structs ( #5603 )
...
This happened to work before #5516 , by creating a whole shadow copy of
the entire array. Revert back to that behaviour for now, it will be
slow, but works still.
Fixes #5590
2024-11-10 17:38:28 +00:00
Geza Lore
03bd1bfc63
Move Concat balancing from DFG to FuncOpt ( #5602 )
...
This means it applies more widely, e.g. inside sequential logic.
2024-11-10 17:23:11 +00:00
Wilson Snyder
4257fcf9d0
Change parsing of cells to be non-symbol table sensitive.
2024-11-10 12:08:37 -05:00
Wilson Snyder
a68da7e220
Internals: Style cleanup. Ignore whitespace if diff. No functional change.
2024-11-10 10:59:18 -05:00
Geza Lore
77ef2cd487
Split up assignments to wides with Concat on the RHS ( #5599 )
...
Add a new pass to split up (recursively):
foo = {l, r};
into the following, with the right indices, iff the concatenation
straddles a wide word boundary.
foo[_:_] = r;
foo[_:_] = l;
This eliminates more wide temporaries.
Another 23% speedup on VeeR EH2 high_perf. Also brings the predicted
stack size from 8M to 40k.
2024-11-10 15:51:59 +00:00
Wilson Snyder
7f1aae640f
Fix dotted reference in delay value ( #2410 ).
2024-11-10 10:23:29 -05:00
Wilson Snyder
0ec025c40c
Internals: Rename rule. No functional change.
2024-11-10 10:14:42 -05:00
Wilson Snyder
bc87270ca9
Add UNSUPPORTED on property variable, instead of syntax error.
2024-11-09 22:26:59 -05:00
Wilson Snyder
0e11b0929c
Internals: whitespace
2024-11-09 21:33:22 -05:00
Wilson Snyder
2f4d1647f0
Fix non-interface error message
2024-11-09 20:28:47 -05:00
Wilson Snyder
99e7dbc82b
Internals: Put unsupported nettypes into symbol table, so parse as idType
2024-11-09 17:15:41 -05:00
Wilson Snyder
c7a7965c49
Rename identifer token
2024-11-09 16:49:34 -05:00
Geza Lore
f073b278f9
Balance concatenations in DFG ( #5598 )
...
The DFG peephole pass converts all associative trees into right leaning,
which is good for simplifying pattern recognition, but can lead to an
excessive amount of wide intermediate results being constructed for
right leaning concatenations.
Add a new pass to balance concatenation trees by trying to:
- Create VL_EDATASIZE (32-bit) sub-terms, so words can then be packed
easily afterwards
- Try to ensure the operands of a concat are roughly the same width
within a concatenation tree. This does not yield the shortest tree,
but it ensures it has many sub-nodes that are small enough to fit into
machine registers.
This can eliminate a lot of wide intermediate results, which would need
temporaries, and also increases ILP within sub-expressions (assuming the
C compiler can't figure that out itself).
This is over 2x run-time speedup on the high_perf configuration of
VeeR EH2 (which you could arguably also get with -fno-dfg, but oh well).
2024-11-09 18:14:19 +00:00
Wilson Snyder
4969125e5a
Add error on soft constraints of randc
2024-11-09 12:45:55 -05:00
Wilson Snyder
d230ccd716
Add error on `solve before` of `randc` variable.
2024-11-09 12:26:48 -05:00
Wilson Snyder
3fae11595a
Support `pure constraint`.
2024-11-09 12:05:26 -05:00
Wilson Snyder
1e546bb9d9
Add assertion on firing event inside class ( #5597 )
2024-11-09 09:28:40 -05:00
Wilson Snyder
e55ed8eb66
Commentary
2024-11-09 08:24:50 -05:00
Yilou Wang
a173883b2d
Support basic constrained random for multi-dimensional dynamic array and queue ( #5591 )
2024-11-08 14:04:58 -05:00
Wilson Snyder
61d2284eab
Commentary
2024-11-08 07:47:46 -05:00
Ryszard Rozak
6083480abb
Fix `rand` dynamic arrays with null handles ( #5594 )
...
l
2024-11-08 06:53:43 -05:00
Wilson Snyder
2e1128b417
Internals: Iterator cleanup. No functional change intended.
2024-11-06 19:21:03 -05:00
Yilou Wang
e47208d9b3
Support queue's assignment `push_back/push_front('{})` ( #5585 ) ( #5586 )
...
Co-authored-by: Udaya Raj Subedi <075bei047.udaya@pcampus.edu.np>
2024-11-06 17:31:48 -05:00
Wilson Snyder
87bd8fefa0
Add error on `wait` with missing `.triggered`. ( #4457 )
2024-11-05 01:22:56 -05:00
Wilson Snyder
753ea29df8
Add error on illegal enum base type ( #3010 ).
2024-11-05 00:58:46 -05:00
Wilson Snyder
b1dfdef0a9
Add error when improperly storing to parameter ( #5147 ).
2024-11-05 00:17:40 -05:00
Wilson Snyder
2e4676dc11
Internals: Add missing VL_RESTORERS to V3LinkLValue; probably fixes no real cases, bug better safe.
2024-11-05 00:03:23 -05:00
Wilson Snyder
eaaf91c82b
Internals: Cleanup VL_RESTORER format in V3LinkLValue. No functional change.
2024-11-04 23:55:39 -05:00
Bartłomiej Chmiel
4e71f359bf
Fix duplicate scope identifiers decoding ( #5584 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Co-authored-by: Ryszard Rozak <rrozak@antmicro.com>
2024-11-04 06:06:15 -08:00
Ryszard Rozak
b3348a38d0
Internals: Remove repeated clearing of constraints ( #5583 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2024-11-04 04:48:55 -08:00
Wilson Snyder
7854118883
Fix negative assignment pattern keys ( #5580 ).
2024-11-02 10:06:01 -04:00
github action
e1a9734917
Apply 'make format'
2024-11-02 13:43:43 +00:00
Zhou Shen
589612f914
Fix can't locate scope error in interface task delayed assignment ( #5462 ) ( #5568 )
2024-11-02 09:42:57 -04:00
Geza Lore
f458951b17
Fix slow unsized number parsing ( #5577 )
...
Try to avoid allocating and deallocating a full --max-num-width
buffer on parsing every single unsized number literal.
2024-11-01 14:10:44 +00:00
Andrew Nolte
4448778dbf
Add coverage point hierarchy to coverage reports ( #5575 ) ( #5576 )
2024-11-01 09:30:44 -04:00
Todd Strader
9fae951d9d
Fix --output-groups leftover files issue ( #5574 )
2024-10-31 14:38:53 -04:00
Todd Strader
0f2a8c6c22
Fix BLKANDNBLK for for VARXREFs ( #5569 )
2024-10-29 07:27:40 -04:00
Wilson Snyder
2f272a4190
Fix `$countbits` in assert with non-tristates ( #5566 ).
2024-10-27 09:30:54 -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
Todd Strader
83081aaefc
Fix struct literal on pattern assignment ( #5552 ) ( #5559 )
2024-10-24 18:50:57 -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
Todd Strader
8cc7e180ca
Fix array trace splitting ( #5549 )
2024-10-23 11:51:48 -04:00
Yilou Wang
2409f32d87
Fix multi-range indices assignment ( #5534 ) ( #5547 )
...
Co-authored-by: Udaya Raj Subedi <075bei047.udaya@pcampus.edu.np>
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
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 <rrozak@antmicro.com>
2024-10-14 07:41:17 -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
789698cb5c
Fix coverage counts missing due to table optimization ( #5473 ) ( #5474 ).
...
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
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 <rrozak@antmicro.com>
2024-10-10 14:40:07 +02: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
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
Ryszard Rozak
009d1f2f5b
Fix -j option without argument in hierarchical verilation ( #5514 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
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
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
4bdfc653a3
Add error on misused genvar ( #408 ).
2024-10-03 18:54:30 -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
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
Mariusz Glebocki
0547108e3f
Add `-output-groups` to build with concatenated .cpp files ( #5257 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
Co-authored-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Bartłomiej Chmiel <bachm44@gmail.com>
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
Co-authored-by: Ryszard Rozak <rrozak@antmicro.com>
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
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 <akozdra@antmicro.com>
2024-09-27 20:38:49 +02:00
Arkadiusz Kozdra
02e7767886
Fix randomize with foreach constraints ( #5492 )
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
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
91c8866ac3
Fix exponential ConcatN ( #5488 )
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Szymon Gizler <sgizler@internships.antmicro.com>
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
Geza Lore
3bc09d49fb
Generate one trigger per SenItem instead of per SenTree ( #5483 )
2024-09-25 10:35:50 +01: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
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
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
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
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
Wilson Snyder
48faf8d036
Fix tracing when name() is empty ( #5470 ).
2024-09-21 08:25:14 -04:00
Wilson Snyder
774ec42be4
Internals: Experimental cleanup; avoid :: on package symbol tables
2024-09-20 20:39:49 -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
Yilou Wang
70112438c3
Support packed/unpacked and dynamic array unconstrained randomization ( #5414 ) ( #5415 )
2024-09-19 20:07:05 -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 <akozdra@antmicro.com>
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
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
195a665293
Internals: Fix V3LinkDot debug message print
2024-09-15 21:18:51 -04:00
Wilson Snyder
19170badd3
Fix warning IEEE reference ( #5453 )
2024-09-15 11:05:48 -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
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 <akozdra@antmicro.com>
2024-09-11 15:57:45 +02:00
Arkadiusz Kozdra
6b8f253ecd
Re-sync parser in constraints and cross coverpoints
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
2024-09-11 15:57:45 +02:00
Arkadiusz Kozdra
ac29393ec9
Do not parse covergroup identifiers as types
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
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
3525484730
Commentary
2024-09-10 19:04:55 -04:00
Arkadiusz Kozdra
4a58997604
Support basic constrained queue randomization ( #5413 )
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
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 <akozdra@antmicro.com>
2024-09-10 07:17:21 -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
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
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
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
Krzysztof Bieganski
51691dfde5
Fix driving clocking block in Reactive
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
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 <akozdra@antmicro.com>
2024-09-04 07:57:51 -04:00
Arkadiusz Kozdra
d3fcec3e84
Fix clearing trigger of events with no sentrees ( #5426 )
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
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
Todd Strader
201e343795
Fix sformatf internal error on initial automatics ( #5423 )
2024-08-30 19:35:47 -04:00
Krzysztof Bieganski
657d7f257b
Support named event locals ( #5422 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
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
Krzysztof Bieganski
f133a2811f
Fix capturing params in `randomize() with` ( #5416 ) ( #5418 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
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
Krzysztof Bieganski
675d9a641e
Call `pre`/`post_randomize` on `randomize() with` ( #5412 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2024-08-28 19:42:49 +02:00
Krzysztof Bieganski
d896f1ff08
Fix queue `[$-i]` select as reference argument ( #5411 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2024-08-28 17:29:12 +02:00
Krzysztof Bieganski
155dcc5658
Fix empty `foreach` in `if` in constraints ( #5408 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
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 <kbieganski@antmicro.com>
2024-08-27 12:53:44 +02:00
Wilson Snyder
ae35be9102
Internals: Reformat with new settings (last commit). No functional change.
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
f0cd6dd95c
Fix REALCVT warning on integral timescale conversions ( #5378 ).
2024-08-24 08:01:28 -04:00
Wilson Snyder
f9511e9755
Internals: Make V3Number::selfTest()
2024-08-24 05:41:22 -04:00
Wilson Snyder
8741fd17ad
Internals: cppcheck cleanups. No functional change intended.
2024-08-23 18:24:34 -04:00
Bartłomiej Chmiel
ffe76717c6
Thread pool rewrite ( #5161 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Krzysztof Bieganski <kbieganski@antmicro.com>
Co-authored-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
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
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
Wilson Snyder
43a57da950
Add quotes to not-found filenames
2024-08-20 14:47:43 -04:00
James Bailey
99a43b7695
Fix +: and -: unpacked array slicing when array has nonzero low index ( #5345 ) ( #5387 )
...
Co-authored-by: James Bailey <james.bailey@awaveip.com>
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 <kbieganski@antmicro.com>
2024-08-20 13:25:58 -04: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 <kbieganski@antmicro.com>
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
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
Krzysztof Bieganski
b100615726
Internals: Relax requirements for `AstClass` iteration methods ( #5335 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2024-08-09 10:05:52 +01:00
Krzysztof Bieganski
ec0815e9ac
Fix NBAs in suspendables ( #5348 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2024-08-08 22:12:00 +01:00
Krzysztof Bieganski
97e9996f0b
Fix optimized-out sentrees with `--timing` ( #5080 ) ( #5349 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
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 <kbieganski@antmicro.com>
2024-08-08 21:55:46 +01:00
Krzysztof Bieganski
701fa5438a
Fix output clockvar overwriting signal ( #5320 ) ( #5347 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
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 <akozdra@antmicro.com>
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 <akozdra@antmicro.com>
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 <akozdra@antmicro.com>
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 <bchmiel@antmicro.com>
2024-08-06 08:48:12 -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 <kbieganski@antmicro.com>
2024-08-05 17:56:03 -04:00
Bartłomiej Chmiel
7d5e19365e
Support assertcontrol directive type ( #5310 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
2024-08-05 17:54:13 -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 <akozdra@antmicro.com>
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 <kbieganski@antmicro.com>
2024-07-31 22:30:48 +01: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
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
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 <akozdra@antmicro.com>
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 <rrozak@antmicro.com>
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
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 <bchmiel@antmicro.com>
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
Krzysztof Bieganski
f5caa4b7dc
Fix randomizing current object with `rand` class instance member ( #5292 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2024-07-22 14:41:12 +02: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
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 <akozdra@antmicro.com>
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 <kbieganski@antmicro.com>
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 <kbieganski@antmicro.com>
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 <kbieganski@antmicro.com>
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 <koblonczek@antmicro.com>
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
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 <kboronski@antmicro.com>
2024-07-12 16:18:18 +02:00
Krzysztof Bieganski
2696a9a5bd
Fix unconstrained randomization of unpacked structs ( #5252 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
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 <kbieganski@antmicro.com>
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
Bartłomiej Chmiel
11da07d3b9
Support `$assertcontrol` assertion_type ( #5236 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
Co-authored-by: Ryszard Rozak <rrozak@antmicro.com>
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
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
fe0b210a0c
Fix errors on using string in incorrect format ( #5340 ).
2024-07-09 08:29:22 -04:00
Wilson Snyder
b66fdd7421
Fix unknown conversion on queues ( #5220 ).
2024-07-08 10:19:51 -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
a6d438d111
Fix mis-removing $value$plusargs calls ( #5127 ) ( #5137 ). [Seth Pellegrino]
...
Co-authored-by: Seth Pellegrino <seth@codecopse.net>
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 <akozdra@antmicro.com>
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
Bartłomiej Chmiel
864a852bca
Add `--compiler-include` for additional C++ includes ( #5139 ) ( #5202 )
2024-06-27 18:53:44 -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
Wilson Snyder
3315a6e431
Internals: Also cleanup gettes/setters in .cpp. No functional change intended.
2024-06-22 19:50:59 -04:00
Tim Hutt
aadd5ea509
Fix linking with pthreads on CMake ( #5194 )
2024-06-21 10:34:11 -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
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 <bchmiel@antmicro.com>
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
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 <akozdra@antmicro.com>
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
Arthur Rosa
2537431273
Fix table optimization when applied on real data type ( #5172 ) ( #5173 )
2024-06-11 13:26:11 -04:00
Arkadiusz Kozdra
e9f59e44a5
Fix non-constant replication in concats ( #5171 )
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
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 <akozdra@antmicro.com>
* wording/formatting
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
---------
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
2024-06-10 08:38:26 -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
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
Yutetsu TAKATSUKASA
6584b4d426
Fix assertion failure in V3Gate ( #5101 )
2024-06-08 08:37:01 -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
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
3f886f7c61
Fix select value too wide ( #5148 ) ( #5153 ).
...
Co-authored-by: Dercury <dercury@qq.com>
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
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
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
Wilson Snyder
f84592af49
Fix x-valued parameters with `--x-assign unique` ( #5129 ).
2024-05-21 08:07:57 -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 <kbieganski@antmicro.com>
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 <akozdra@antmicro.com>
2024-05-13 10:23:51 -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
Wilson Snyder
ed01befc25
Fix tracing interface functions ( #5108 ).
2024-05-08 22:23:53 -04:00
Wilson Snyder
1cc37ad6ce
Internals: Add missing VL_DO_DANGLING. No functional change intended.
2024-05-08 08:36:24 -04:00
Bartłomiej Chmiel
2a9f29912c
Add parameterless assert control system tasks ( #5010 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Co-authored-by: Ryszard Rozak <rrozak@antmicro.com>
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
Co-authored-by: Arkadiusz Kozdra <akozdra@antmicro.com>
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
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
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
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
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
Bartłomiej Chmiel
d1b45b8d32
Fix attempted to destroy locked thread pool error ( #5040 )
2024-04-29 07:59:24 -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
Wilson Snyder
4f3a816fb0
Fix false ASSIGNIN on functions with explicit port map ( #5069 ).
2024-04-26 19:26:21 -04:00
Arkadiusz Kozdra
5b839699ac
Support empty queue as dynarray default value ( #5055 )
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
2024-04-18 11:53:23 -05:00
Wilson Snyder
5d8da6b4ac
Fix width extension on delays ( #5045 ).
2024-04-13 08:16:59 -04:00
Wilson Snyder
8e44487354
Tests: update style
2024-04-13 08:02:25 -04:00
Paul Wright
a8b5738b44
Support __en/__out signals on top level inout ports ( #4812 ) ( #4856 )
2024-04-11 09:02:58 -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
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 <akozdra@antmicro.com>
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
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
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
Fuad Ismail
1c79df8630
Support stream operation on unpacked array ( #4714 ) ( #5006 )
2024-03-21 18:26:42 -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 <akozdra@antmicro.com>
2024-03-20 08:54:23 -04:00
Arkadiusz Kozdra
26f15e11c4
Fix unique {} constraints missing semicolon ( #5001 )
...
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
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
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
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
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
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
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