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
Arkadiusz Kozdra
f78783e187
Internals: Use LogOr/LogAnd on inside operator expansion ( #4951 )
...
This will help introducing constrained randomization, as SMT solvers
treat booleans and 1-bit vectors as incompatible types.
2024-03-08 08:17:41 -05:00
Wilson Snyder
8ba494c71f
Fix null characters in shortened identifiers ( #4946 ).
2024-03-07 18:09:55 -05:00
Geza Lore
acb63c929b
Split V3Order.cpp into multiple smaller files ( #4950 ). No functional change intended.
...
Move OrderBuildVisitor into V3OrderGraphBuilder.cpp (and rename to
V3OrderGraphBuilder). Move ProcessMoveBuildGraph to
V3OrderMoveGraphBuilder.cpp (and rename to V3OrderGraphBuilder).
This patch is pure code movement/rename, no refactoring at all.
2024-03-07 17:12:19 -05:00
Geza Lore
26dd5d4550
Add some missing VNUserInUse ( #4949 )
2024-03-07 20:26:58 +00:00
Bartłomiej Chmiel
32f288084a
Add UNUSEDLOOP when unused loop is removed ( #4926 )
2024-03-07 08:33:49 -05:00
Andrew Nolte
6db149c588
Fix generate blocks in vpi_iterate ( #3609 ) ( #4913 )
2024-03-06 18:33:30 -05:00
Geza Lore
0fed5f8b3e
Avoid creating redundant vertices in V3DfgPeephole ( #4944 )
...
Add a new data-structure V3DfgCache, which can be used to retrieve
existing vertices with some given inputs vertices. Use this in
V3DfgPeephole to eliminate the creation of redundant vertices.
Overall this is performance neutral, but is in prep for some future
work.
2024-03-06 18:01:52 +00:00
Geza Lore
a30930bdcc
Fix unsound temporary name generation in V3DfgRegularize
...
Sadly used to produce some conflicting names.
2024-03-05 19:17:41 +00:00
Geza Lore
3a1355fb54
Fix bad assertion in DFG variable elimination
...
Fixes #4943
2024-03-05 18:51:46 +00:00
Geza Lore
745605efe3
Fix DFG removing forceable signals ( #4942 )
...
DFG could remove forceable signals by replacing them with their
in-design driver. This is a bit of a pain to prevent, and ideally the
forcing transform should happen before DFG, but implementing it there is
a pain due to having to rewrite ports based on direction. This is an
attempted fix in DFG. More cases might remain.
2024-03-03 16:22:41 +00:00
Wilson Snyder
0fbd4313b2
Fix __Vlip undefined error in --freloop ( #4824 ).
2024-03-03 11:10:46 -05:00
Wilson Snyder
9f8f61ef2f
Internals: Only show SimulateVisitor note once per type
2024-03-03 11:10:19 -05:00
github action
4b1f4938b8
Apply 'make format'
2024-03-03 15:23:47 +00:00
Kefa Chen
5f1dc73a1b
Support public packed struct / union ( #860 ) ( #4878 )
2024-03-03 10:23:04 -05:00
Geza Lore
5e1fc6e24d
Add DFG 'regularize' pass, and improve variable removal ( #4937 )
...
This functionality used to be distributed in the removeVars pass and the
final dfgToAst conversion. Instead added a new 'regularize' pass to
convert DFGs into forms that can be trivially converted back to Ast, and
a new 'eliminateVars' pass to remove/repalce redundant variables. This
simplifies dfgToAst significantly and makes the code a bit easier to
follow.
The new 'regularize' pass will ensure that every sub-expression with
multiple uses is assigned to a temporary (unless it's a trivial memory
reference or constant), and will also eliminate or replace redundant
variables. Overall it is a performance neutral change but it does
enable some later improvements which required the graph to be in this
form, and this also happens to be the form required for the dfgToAst
conversion.
2024-03-02 19:49:29 +00:00
Wilson Snyder
0ec32ee404
Parse 1800-2023 map expressions and throw UNSUPPORTED
2024-03-02 10:15:19 -05:00
Wilson Snyder
97b21b3849
Parse 1800-2023
2024-03-02 10:15:19 -05:00
Wilson Snyder
214173c6b8
Support 1800-2023 preprocessor ifdef expressions; add PREPROC zero warning.
2024-03-02 10:15:19 -05:00
Wilson Snyder
3786f59e03
Change to IEEE 1800-2023 warning mentions
2024-03-02 10:15:19 -05:00
Wilson Snyder
91dd3c5fac
Support 1800-2023 keywords.
2024-03-02 10:15:19 -05:00
Yutetsu TAKATSUKASA
da9521a351
Internals: Add --debug-width option for developers to check width consistency ( #4923 )
2024-03-02 08:57:26 -05:00
Wilson Snyder
af51107587
Fix statistics missing some additions.
2024-03-01 20:27:57 -05:00
Wilson Snyder
a4813ec677
Add warning on TOP-named modules ( #4935 ).
2024-03-01 17:28:12 -05:00
Kamil Rakoczy
01dadb0a8d
Fix try-lock spuriously fails ( #4931 ) ( #4938 )
2024-03-01 15:29:13 -05:00
Geza Lore
9dcb7ea6a9
Fix minor V3DfgPatternStats coding issues
2024-03-01 14:56:35 +00:00
github action
adfe072b89
Apply 'make format'
2024-03-01 14:15:34 +00:00
Yan Xu
b12f8b3d73
Fix V3Unknown unpacked struct x-assign ( #4934 )
2024-03-01 09:14:49 -05:00
Geza Lore
3af0eb7fa0
Internals: Emit a separate CFunc for each MTask body ( #4932 ) ( #4933 )
2024-02-29 16:53:53 -05:00
Wilson Snyder
a69cb9b044
Tests: Avoid verilated.v include in most tests
2024-02-27 18:08:37 -05:00
Wilson Snyder
e320b0b581
Internals: Favor const_iterators. No functional change intended.
2024-02-25 17:12:13 -05:00
Wilson Snyder
42041f2403
Fix invalid cast on string structure creation ( #4921 ).
2024-02-25 08:19:53 -05:00
Yutetsu TAKATSUKASA
51ae8e13fb
Add --assert-case option ( #4919 )
2024-02-23 23:05:53 +09:00
Geza Lore
0892b39ad2
Fix incorrect code generation for change expression on typedefed unpacked array ( #4915 )
2024-02-23 03:53:42 -05:00
Geza Lore
5964d5cf63
Fix inconsistent driver resolution with typedefs ( #4917 )
2024-02-22 18:33:23 +00:00
Paul Swirhun
e00e4d4245
Fix whitespace in `pragma protect version` ( #4914 )
2024-02-22 03:29:57 -05:00
Yutetsu TAKATSUKASA
4b9532fe24
Improve message for priority case assertion failure ( #4905 )
2024-02-22 03:09:14 -05:00
Yutetsu TAKATSUKASA
a951446f9b
Add --[no]-stop-fail option ( #4904 )
...
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
2024-02-19 21:26:58 +09:00
Yutetsu TAKATSUKASA
65b632a7dd
Improve assertion for unique case ( #4892 )
...
- Use parallel_case, unique, and unique0 in error message
- Distinguish multiple match and no match
- Show the case value that triggers the assertion
2024-02-13 21:53:32 +09:00
Geza Lore
cbc76a7816
Dump DFG patterns with --stats ( #4889 )
...
With --stats, we will print DFG pattern combinations, one per line, as
S-expressions to new stat files, together with their frequency, to aid
discovery of new peephole patterns.
2024-02-11 15:41:10 +00:00
Szymon Gizler
d667b73e8d
Add --json-only and related JSON dumping ( #4715 ) ( #4831 ).
2024-02-09 17:50:09 -05:00
Wilson Snyder
248de2be2e
Fix coverage with member
2024-02-08 21:51:36 -05:00
Wilson Snyder
365537d8e3
Fix coverage of delayed nets
2024-02-08 20:25:17 -05:00
Wilson Snyder
a23cf1ceea
Fix toggle coverage dataDeclp error on multi-edge driven signals.
2024-02-08 19:21:44 -05:00
Wilson Snyder
be471e9ccc
Internals: Minor coverage reformatting/renaming. No functional change.
2024-02-08 19:10:38 -05:00
Wilson Snyder
13b7cce8be
Fix compile error on structs with queues (and ignore toggle coverage on queues).
2024-02-08 08:44:27 -05:00
Wilson Snyder
efff630763
Fix tautological-compare warnings.
2024-02-07 22:16:08 -05:00
Wilson Snyder
e2e0795538
Fix toggle coverage of unpacked unions with reals.
2024-02-07 21:03:32 -05:00
Wilson Snyder
c20634e4f8
Fix coverage of real arrays giving operator^ not defined
2024-02-07 20:11:27 -05:00
Wilson Snyder
715dce546f
Fix debug infinite loop when bad coverage pointers
2024-02-07 19:57:02 -05:00
Wilson Snyder
07d86bf91d
Allow loop unrolling with coverage
2024-02-07 19:56:32 -05:00
Krzysztof Bieganski
fe8c7c5a94
Fix timing with expr on assign LHS ( #4880 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2024-02-06 07:27:19 -05:00
Wilson Snyder
7ada5195d8
Fix `this` in member initialization ( #4710 ). ( #4876 )
2024-02-04 19:44:10 -05:00
Wilson Snyder
a6ad85244f
Backout ( #4710 ) due to leak
2024-02-04 18:13:22 -05:00
Wilson Snyder
f13f2296de
Fix `this` in member initialization ( #4710 ).
2024-02-04 16:09:01 -05:00
Geza Lore
6ca60429ce
Fix incorrect temporary insertion in loop conditions with statements ( #4873 )
...
When the condition of an AstWhile loop contains a statement (e.g.
through an AstExprStmt), temporaries inserted in that statement need to
go before that statement, not in the AstWhile precondition.
2024-02-04 09:19:54 -05:00
Yutetsu TAKATSUKASA
999c9ae21c
Fix #4864 of wrong runtime result ( #4867 )
...
* Fix #4864 . Ignore if EQ/NE is under SHIFTR.
2024-01-30 00:00:00 +09:00
Szymon Gizler
c715cfc254
Add --valgrind switch ( #4828 )
2024-01-29 07:50:05 -05:00
Wilson Snyder
22687a6901
Internals: Use C++14 quoted literal std::string
2024-01-28 21:00:20 -05:00
Wilson Snyder
eecdf4b0f3
Internals: Use C++14 exchange
2024-01-28 21:00:20 -05:00
Wilson Snyder
a84be1844f
MSVC fix, part of fix of null ( #4862 ).
2024-01-28 11:05:38 -05:00
Wilson Snyder
9ccef4180f
Fix $fwrite of null ( #4862 ).
2024-01-28 09:05:50 -05:00
Yutetsu TAKATSUKASA
e4a0e5aad6
Fix #4857 consider NOT when checking EQ/NEQ under AND/OR tree ( #4863 )
2024-01-28 22:36:09 +09:00
Wilson Snyder
d6f8ccd20b
Add `unroll_disable` and `unroll_full` loop control metacomments ( #3260 ).
2024-01-26 07:49:07 -05:00
Wilson Snyder
94460867d3
Fix nondeterministic fork/tristate ordering ( #4690 ).
2024-01-25 20:33:43 -05:00
Wilson Snyder
5b70325e52
Internals: Style/debug cleanups. No functional change.
2024-01-25 20:26:56 -05:00
Wilson Snyder
3aece189ac
Fix tracing chandles ( #4860 ).
2024-01-25 08:13:52 -05:00
Wilson Snyder
d4c8a15407
Add --runtime-debug for Verilated executable runtime debugging.
2024-01-25 07:34:30 -05:00
Wilson Snyder
354a534d68
Add '--decorations node' for inserting debug comments into emitted code.
2024-01-24 21:51:47 -05:00
github action
8a7f36c34b
Apply 'make format'
2024-01-24 12:46:22 +00:00
Jonathan Schröter
31262e81f9
Fix to not emit already waived warnings in waiver output ( #4574 ) ( #4818 )
2024-01-24 07:45:38 -05:00
github action
3d006afacc
Apply 'make format'
2024-01-24 03:08:39 +00:00
Wilson Snyder
74ec50f933
Support interface class diamond relationship.
2024-01-23 22:07:35 -05:00
Wilson Snyder
21e85f87bc
Fix compilation error on multi-inherited interface class usage ( #4819 ).
2024-01-23 19:36:11 -05:00
Wilson Snyder
2989e54eaa
Add unsupported warning on property iff ( #4848 )
2024-01-21 16:18:48 -05:00
Yutetsu TAKATSUKASA
6b8531f0a6
Fix widthMin in replaceShiftOp ( #4837 ) ( #4841 ) ( #4849 )
2024-01-21 10:30:01 -05:00
Yutetsu TAKATSUKASA
50df902b54
Fix incorrect bit-op-tree NOT optimization ( #4832 ) ( #4847 )
...
* Fix #4832 . Bit-op-tree opt. should not touch a subtree under NOT in AND/OR tree.
2024-01-21 07:25:24 -05:00
Wilson Snyder
3a5248a919
Internals: Mark structs final/VL_NOT_FINAL. No functional change intended.
2024-01-20 15:06:46 -05:00
Wilson Snyder
1a92502788
Add --main support for dumping coverage, and +verilator+coverage+file runtime option.
2024-01-20 12:28:49 -05:00
Wilson Snyder
c30b9d04a8
Change unused vars to standard void syntax. No functional change intended.
2024-01-20 08:57:22 -05:00
Wilson Snyder
89cfa0737f
Internals: Fix cppcheck warnings
2024-01-17 19:48:07 -05:00
Szymon Gizler
db3ce29b36
Fix wrong utimes() param ( #4829 )
2024-01-17 08:32:44 -05:00
github action
54922c036a
Apply 'make format'
2024-01-14 00:53:31 +00:00
Adrian Sampson
2e999a5441
Fix too null pointer dereference ( #4810 ) ( #4825 )
2024-01-13 20:52:50 -04:00
Tim Hutt
5073f208af
Internals: Use more standard syntax for avoiding unused variable warnings ( #4826 )
2024-01-13 15:34:59 -05:00
Wilson Snyder
21bf2d62d2
Fix mis-splitting of dump control functions ( #4821 ).
2024-01-12 08:19:30 -05:00
Wilson Snyder
fcdd8e5da6
Fix missing includes with multiple inheritance ( #3819 partial)
2024-01-11 20:19:48 -05:00
Andrew Nolte
ab47fc6656
Fix localparam elaboration ( #3858 ) ( #4794 )
2024-01-11 07:49:07 -05:00
Szymon Gizler
5f52c066e5
Internals: Add serializeOnly() and dumpTreeEitherLevel() ( #4815 ) ( #4715 ). No functional change intended.
2024-01-09 10:35:13 -05:00
Anthony Donlon
55d1b87b34
Support parsing anonymous primitive instantiations ( #4809 )
2024-01-07 10:59:56 -05:00
Wilson Snyder
eec41fd039
Fix lint_off disables on preprocessor warnings ( #4703 ).
2024-01-06 18:49:19 -05:00
Wilson Snyder
0ca90257a5
Add predicted stack overflow warning ( #4799 ).
2024-01-06 16:14:58 -05:00
Wilson Snyder
5294140753
Fix delays using wrong timeunits when modules inlined ( #4806 ).
2024-01-05 18:07:24 -05:00
Wilson Snyder
a36a07c297
Internals: Favor UASSERT over v3fatalSrc. No functional change intended.
2024-01-05 18:00:06 -05:00
github action
4172c0f29e
Apply 'make format'
2024-01-03 12:13:21 +00:00
Pengcheng Xu
ec01008fe3
Change zero replication width error to ZEROREPL warning ( #4753 ) ( #4762 )
2024-01-03 07:11:50 -05:00
Mariusz Glebocki
719954a24a
Internals: Make V3Const.cpp parseable by non-compilers ( #4796 )
2024-01-02 14:51:40 -05:00
Wilson Snyder
e76f29e5ba
Copyright year update
2024-01-01 03:19:59 -05:00
Wilson Snyder
54ad04b6e9
Fix 'for' loop with outside variable reference ( #4660 ).
2023-12-24 10:17:44 -05:00
Fan Shupei
540cd772e4
Add user C/C++ code to final achieve, and make a libmodel.a ( #4749 ) ( #4754 )
2023-12-23 09:31:10 -05:00
Krzysztof Bieganski
621de301c7
Run the `V3Fork` stage only if `--timing` is set ( #4778 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-12-22 22:57:45 +01:00
Wilson Snyder
8769c1a92b
Internals: Add -fno-dead-cells, -fno-dead-assigns for debug use
2023-12-22 16:26:51 -05:00
github action
8e1c0b0852
Apply 'make format'
2023-12-21 12:49:55 +00:00
Jordan McConnon
56d6791205
Support invoking interface methods on virtual interface variables ( #4774 ) ( #4775 )
2023-12-21 07:49:07 -05:00
Krzysztof Bieganski
016e630ecf
Refine dynamic NBA condition ( #4773 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-12-20 18:12:17 +01:00
Wilson Snyder
69b779b4a8
Internals: Cleanup cpp-check warnings. No functional change.
2023-12-20 07:49:03 -05:00
Wilson Snyder
55ad950609
Fix power operator with wide numbers and constants ( #4721 ) ( #4763 )
2023-12-19 19:22:54 -05:00
Todd Strader
654ab117f2
Fix tracing FST enums ( #4661 ) ( #4756 )
2023-12-19 11:07:06 -05:00
Geza Lore
c5ba6e22fa
Minor cleanup of trace internals
2023-12-12 20:27:16 +00:00
Geza Lore
6012ec8eb7
Put dynamic NBA commit in eval_phase__nba
...
Fixes #4634
2023-12-12 18:11:43 +00:00
Mariusz Glebocki
75a44e5aa9
Fix deadlocks in error handler ( #4672 )
2023-12-12 08:10:01 -05:00
Ryszard Rozak
a811f2e17d
Support inside operator on unpacked arrays and queues ( #4751 )
2023-12-12 09:20:22 +01:00
Ryszard Rozak
b60117c713
Fix typedefs pointing to parameterized classes ( #4747 )
...
* Skip handling of ClassOrPackageRef nodes that point to Typedefs
2023-12-08 07:13:38 -05:00
Ryszard Rozak
1ececf1127
Support multiple parameters in virtual interfaces ( #4745 )
2023-12-07 13:56:16 +01:00
Geza Lore
f3bace10ae
Improve V3Premit performance etc. ( #4736 )
...
- Enable creating constant pool entries for RHS of simple
var = const assignments
- Never extract ArraySel (it's just pointer arithmetic)
- Remove unnecessary AstTraceInc precond child tree
- Always fully recurse expressions (fix transplanted from #4617 )
- General cleanup
Overall the patch is performance neutral to slightly positive, but saves
~10% peak Verialtor memory usage due to not creating temporaries (which
are later expanded) for any ArraySels.
2023-12-06 09:42:46 -05:00
Wilson Snyder
39d9bd4d47
Internals: V3LinkDot fix missing restorer.
2023-12-06 08:29:33 -05:00
Ryszard Rozak
eb2cfe1d19
Support parameterized virtual interaces ( #4047 ) ( #4743 )
2023-12-06 08:02:04 -05:00
Ryszard Rozak
ca5a7d7656
Add class name in the error msg about calling 'new' on virtual class ( #4739 )
2023-12-05 16:31:59 +01:00
Krzysztof Bieganski
ea2084392f
Support --timing triggers for virtual interfaces ( #4673 )
2023-12-04 22:11:07 -05:00
Wilson Snyder
b4baa7ce02
Internals: Avoid extranious base class calls in recent commit.
2023-12-01 19:05:21 -05:00
Krzysztof Boroński
bd38c8fe3c
Fix # 0 delays for process resumption, etc. ( #4697 )
2023-12-01 13:08:58 -05:00
Todd Strader
9a0748d8ed
vpi_iterate packages with vpiInstance ( #4726 )
2023-12-01 07:34:09 -05:00
Wilson Snyder
feae9ca4aa
Internals: Use astgen for cross-node pointers. No functional change intended. ( #4727 )
2023-11-30 19:58:16 -05:00
Ryszard Rozak
d1ee9827a0
Fix block names of nested do..while loops ( #4728 )
2023-11-30 14:32:12 +01:00
Krzysztof Bieganski
b820e1b587
Support `iff` in sensitivity list ( #1482 ) ( #4626 )
...
Adds a new field to `AstSenItem` that stores the `iff` condition which is then handled by `SenExprBuilder`.
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-11-29 19:10:32 +01:00
Ryszard Rozak
ebfc2a4942
Fix parameter passing to ports ( #4723 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-11-29 17:07:23 +00:00
Wilson Snyder
7167d4bdc0
Fix shift of > 32-bit number ( #4719 ).
2023-11-27 21:41:32 -05:00
William D. Jones
a7a48221d3
Fix Windows include gates in filesystemFlush implementation. ( #4720 )
2023-11-26 05:26:20 +01:00
Wilson Snyder
e5118661a7
Commentary
2023-11-24 13:02:05 -05:00
Wilson Snyder
58d9a5ebac
Use newline instead of endl, for fewer stream flushes
2023-11-24 11:45:52 -05:00
Wilson Snyder
fae7f11222
Fix compilers seeing empty input due to file system races ( #4708 ). Part 2.
2023-11-22 05:18:13 -05:00
Wilson Snyder
1986e62477
Internals: Remove unused append dumpTreeFile option
2023-11-21 22:32:13 -05:00
Wilson Snyder
0ee2a0e6d7
Don't remove DepSet as messes with skip-identical, part of last commit
2023-11-21 22:08:47 -05:00
Wilson Snyder
2b28ddd0c6
Fix MSWIN compile in last commit
2023-11-21 21:49:36 -05:00
Wilson Snyder
b15ef49c57
Fix compilers seeing empty input due to file system races ( #4708 ).
2023-11-21 21:22:35 -05:00
Wilson Snyder
ed05caec93
Rename __hier*.f files to match other generated files
2023-11-21 20:31:54 -05:00
github action
ead27db9f0
Apply 'make format'
2023-11-21 02:02:56 +00:00
Jinyan Xu
4650105d90
Fix conflicted namespace for coroutines ( #4701 ) ( #4707 )
2023-11-20 21:02:10 -05:00
Krzysztof Bieganski
b8417abee5
Fix dynamic NBAs with automatic vars ( #4696 )
...
This patch addresses two issues with NBAs in non-inlined functions/tasks:
- If the NBA writes to a local automatic var, the var could cease to exist before the NBA executes. This is normally addressed by fork dynscopes (#4356 ), but NBA-to-fork transformation happens way after `V3Fork` (in `V3Timing`). To solve this, we put NBAs that write to locals under forks in `V3Fork` already. This way, such locals will be put in dynscopes, and will still exist after the task containing the NBA exits.
- The above change means that any writes in forks other than `fork..join` should be handled by `V3Fork`. Thus, in `V3SchedTiming`, we only have to worry about read references, so we can simply copy all remaining locals. Because we copy, lifetimes are not an issue. This fixes a bug that allowed assignment intravals to be overwritten if they go out of scope in the containing function.
2023-11-16 11:21:23 +01:00
Krzysztof Boroński
cc982ec7fe
Fix range access to fields under classes that depend on parameter resolution ( #4681 )
...
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
2023-11-15 14:24:41 +01:00
Ryszard Rozak
2dba76a7c2
Fix access type of function arguments ( #4692 ) ( #4694 )
2023-11-14 17:02:13 -05:00
Wilson Snyder
9fd5634778
Internals: Remove unneeded private's. No functional change
2023-11-13 21:37:45 -05:00
Wilson Snyder
c8063e5732
Internals: Misc cleanups in V3Graph and V3Dead. No functional change.
2023-11-12 22:08:08 -05:00
Wilson Snyder
ee3ba7c761
Internals: Use faster VNVisitorConst where able. No functional change intended.
2023-11-12 18:26:40 -05:00
Geza Lore
2882737bcd
V3Const: Fix select into And/Or/Xor pattern ( #4689 )
2023-11-12 19:41:18 +00:00
Geza Lore
47588f343b
astgen: Enforce the use of aliased operand accessors ( #4688 )
...
This patch enforces the use of the most specific accessors for operands
which have an '@astgen alias' declaration, by making the superclass
accessors of the same operands private. This ensures client code is
cleaner as you can't use multiple different methods to reference the
same operands (which we used to in some places). Also prep for some
refactoring.
2023-11-12 18:30:48 +00:00
Geza Lore
1c0af6c7bc
Reduce peak memory use of V3Subst ( #4687 )
...
V3Subst is currently the pass responsible for peak memory usage. This
patch saves ~16% of peak memory on OpenTitan.
2 changes:
- It is actually safe to delete the substituted expressions immediately,
but this is the lesser contribution
- More importantly, we only ever substitute STMTTEMP variables, which
are always defined within the same CFunc, so we can limit the scope of
the optimization to CFunc. This allows us to reclaim the SubstVarEntry
structures at the end of every CFunc, rather than at the end of the
whole pass, which gives us most of the memory savings.
Generated output is identical
2023-11-12 16:01:07 +00:00
Geza Lore
b07ffb3c78
Cleanup V3Gate ( #4667 ) ( #4685 )
...
Lot of redundant/dead/obsolete code here. NFCI, but contains some minor
bug fixes.
2023-11-12 15:29:25 +00:00
Geza Lore
bea82def10
Add node memory usage info to V3Stats ( #4684 )
2023-11-12 14:19:53 +00:00
Wilson Snyder
671a857560
Fix compiler warning on 'wait' with non-zero constant.
2023-11-12 08:44:55 -05:00
Wilson Snyder
eff2d977c1
Fix mis-elimination of variables across randomize()
2023-11-12 07:32:08 -05:00
Wilson Snyder
9d7f5bdc26
Internals: Dump CFunc entry points.
2023-11-11 20:34:51 -05:00
Wilson Snyder
99dbd23f1b
Support passing constraints to --xml-only output (still otherwise unsupported) ( #4683 )
2023-11-11 20:20:37 -05:00
Wilson Snyder
cad2780219
Fix display with no % printing assoc array ( #4376 ).
2023-11-11 15:28:44 -05:00
Wilson Snyder
4636a7f14b
Internals: Fix uninitalized variables ( #4636 )
2023-11-11 14:58:54 -05:00
Wilson Snyder
706534ffe1
Fix 'for' loop with outside variable reference ( #4660 ).
2023-11-11 14:47:54 -05:00
Wilson Snyder
f3ae4b8786
Fix spelling
2023-11-10 23:25:53 -05:00
David Ledger
9a65ed4ce2
Fix Mingw Compilation ( #4675 )
2023-11-08 06:27:56 -05:00
Marlon James
5ba7084815
Fix VPI TOP level variable iteration ( #3919 ) ( #4618 )
2023-11-07 07:47:55 -05:00
Wilson Snyder
dc10118d3b
Fix C++20 compilation errors ( #4670 )
2023-11-06 07:13:31 -05:00
Geza Lore
c563175ff0
Fix scheduling of external force signals ( #4668 )
...
Used to set the wrong public flag on forceEn/forceVal, which means they
were not included in ICO as necessary, but V3Gate tended to inline them,
so this was hard to hit.
Fixes #4577
2023-11-05 16:58:22 +00:00
Krzysztof Boroński
b110c55993
Fix a memory leak in V3Fork ( #4628 )
2023-11-05 11:39:06 -05:00
Geza Lore
dc346b7ffa
Remove deprecated options ( #4663 )
2023-11-04 17:28:36 +00:00
Anthony Donlon
88fcbf5f1d
Fix interface parameters used in loop generate constructs ( #4664 ) ( #4665 )
2023-11-04 13:19:35 -04:00
Wilson Snyder
eace1d9c67
Internals: Use UINFO for preproc debug, to avoid stderr/cout output reordering confusion.
2023-11-04 10:51:14 -04:00
Anthony Donlon
d0d39c13e7
Fix linking parameterized hierarchical blocks and recursive hierarchical blocks ( #4654 )
2023-11-03 07:55:53 -04:00
Anthony Donlon
2733d43ea7
Fix identifiers that end with '_' on Windows ( #4655 )
2023-11-02 17:53:52 -04:00
Geza Lore
ae6ec411d0
Remove dead code from V3EmitV
2023-11-02 20:25:44 +00:00
Geza Lore
8a77af7a6d
Remove redundant user*ClearTree calls
2023-11-02 19:16:48 +00:00
Ryszard Rozak
a764c70b4a
Fix handling of static keyword in methods ( #4649 )
2023-10-31 08:15:54 -04:00
Wilson Snyder
a27abab65f
Fix PCH to recompile on version change
2023-10-31 08:10:41 -04:00
Krzysztof Bieganski
f789d28277
Fix signals read via virtual iface optimized out ( #4645 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-10-30 21:26:46 -04:00
Geza Lore
3c144ada53
Delete AstNode user5 ( #4638 )
...
This saves about 5% memory. V3AstUserAllocator is appropriate for most use
cases, performance is marginally up as we are mostly D-cache bound on
large designs.
2023-10-29 01:12:27 +01:00
Wilson Snyder
7ba6647c4f
Internals: Cleanup some V3Graph constructors/funcs and docs. No functional change.
2023-10-28 20:11:28 -04:00
Geza Lore
e708670f9a
Minor memory optimizatoin of AstUser*Allocator
2023-10-28 20:31:57 +01:00
Geza Lore
d60f180f43
Avoid double traversal of maps
...
The typical find/if-not-exists-insert pattern can be achieved with 1
lookup instead of 2 using emplace with a sentinel value. Also maps value
initialize their values when inserted with the [] operator, this is
defined and so there is no need to explicitly insert zeroes for integer
values.
2023-10-28 13:41:43 +01:00
Geza Lore
30318a6654
C++11 cleanup
2023-10-28 11:26:48 +01:00
Geza Lore
2cba167634
Make eval loop construction more unified and the output more readable
2023-10-28 08:48:04 +01:00
Krzysztof Boroński
89743aae5d
Fix stable name generation in V3Fork ( #4615 ) ( #4624 )
2023-10-27 15:08:02 -04:00
Ryszard Rozak
64af83161a
Fix rand fields of reference types ( #4627 )
2023-10-26 17:17:23 -04:00
Chih-Mao Chen
98252634fc
Include systemc instead of systemc.h in model header files ( #4622 ) ( #4623 )
...
This may require that SystemC programs add:
using namespace sc_core;
using namespace sc_dt;
2023-10-26 14:36:18 -04:00
Krzysztof Boroński
a87fb57656
Allow assigning events ( #4403 )
...
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
2023-10-26 16:38:47 +02:00
Geza Lore
34708bbba1
Respect --dump-tree-addrids in tree dumps
2023-10-25 18:17:26 +01:00
Marlon James
cf6e362972
Support VPI variables of real and string data types ( #4594 )
2023-10-24 20:46:20 -04:00
Geza Lore
95c4ade718
Unify code generation for trace declarations in both trace formats ( #4612 )
...
This patch adds some abstract enums to pass to the trace decl* APIs, so
the VCD/FST specific code can be kept in verilated_{vcd,fst}_*.cc, and
removed from V3Emit*. It also reworks the generation of the trace init
functions (those that call 'decl*' for the signals) such that the scope
hierarchy is traversed precisely once during initialization, which
simplifies the FST writer. This later change also has the side effect of
fixing tracing of nested interfaces when traced via an interface
reference - see the change in the expected t_interface_ref_trace - which
previously were missed.
2023-10-24 16:33:29 +01:00
Ryszard Rozak
84125d7c92
Fix virtual methods ( #4616 )
2023-10-24 15:51:46 +02:00
Geza Lore
17721aff55
Remove unused IMPLICITWIRE var type
2023-10-24 10:02:00 +01:00
Geza Lore
d1b6224c2b
Associate trace codes with function indices ( #4610 )
...
For each traced variable, also register the trace function index that
will write it.
2023-10-23 16:01:55 +01:00
github action
1bd31742b9
Apply 'make format'
2023-10-23 14:07:52 +01:00
Geza Lore
165a2ef1b8
Separate tracing of const values from non-const values
...
Some values emitted to the trace files are constant (e.g.: actual
parameter values), and never change. Previously we used to trace these
in the 'full' dumps, which also included all other truly variable
signals. This patch introduces a new generated trace function 'const',
to complement the 'full' and 'chg' flavour, and 'const' now only
contains the constant signals, while 'full' and 'chg' contain only the
truly variable signals. The generate 'full' and 'chg' trace functions
now have exactly the same shape. Note that 'const' signals are still
traced using the 'full*' dump methods of the trace buffers, so there is
no need for a third flavour of those.
2023-10-23 14:07:52 +01:00
Wilson Snyder
b83b9974ee
Fix gcc -O0 incompatible allocator warning
2023-10-22 09:51:02 -04:00
Wilson Snyder
bcbe5059a9
Internal: V3Graph style cleanup. No functional change
2023-10-22 09:50:38 -04:00
Wilson Snyder
5bda901146
Internals: Fix stats report to include main AstCFile made
2023-10-21 20:56:24 -04:00
Geza Lore
978d900e36
Simplify and fix code stats
...
V3Stats for "fast" code have bit-rotted a little and is causing some
problems with tests that rely on stats outputs. The problem is that not
all code is necessarily reachable from eval() any more (due to the
complexity of some the features added over the past few years), so it
might miss some things, as for measuring the "fast" code, it is trying
to trace the execution paths via calls, starting from eval(). It also
appears the fast code can also contain calls to slow code in some
circumstances.
To avoid all that, removed trying to trace dynamic execution, and simply
report the static node counts, which is enough for testing.
Similarly, the variable counts are somewhat dubious, as they don't
include all data types, or all instances of a module in some stages.
Removing these as they are not widely used nor dependable. More specific
stats can be added if required and can be well defined.
2023-10-22 00:25:07 +01:00
Geza Lore
d330100542
Create implicit nets for inputs of gate primitives.
...
Prior to this we failed to create implicit nets for inputs of gate
primitives, which is required by the standard (IEEE 1800-2017 6.10).
Note: outputs were covered due to being modeled as the LHS of
assignments, which do create implicit nets.
2023-10-21 22:45:26 +01:00
Geza Lore
4c0edd2efb
Improve --prof-exec infrastructure and report
...
Again --prof-exec have bit-rotted a little with all the recent changes
to the structure of the generated code. This patch contains a few
improvements:
- Repalce the eval/evl_loop begin/end events with generic
section_push/section_pop events, that can be arbitrarily sprinkled
into the generate code (so long as they are matched correctly) to
measure various sections. The report then contains a nested profile
of the sections, and the VCD trace shows the section names.
- Better handling of exec graphs
- Clearer overall statistics
2023-10-21 21:09:03 +01:00
Geza Lore
146cdc020d
Remove V3AstConstOnly.h
...
This is now redundant with the introduction of VNVisitorConst
2023-10-21 20:41:46 +01:00
Geza Lore
a09506a0ad
Trivial simplification of V3EmitCModel
...
Still some remains of the --threads 0 mode. Remove unnecessary complexity
from V3EmitCModel. (Also don't pretend there is an MTask in single
threaded mode, when there really isn't.)
2023-10-21 20:41:46 +01:00
Geza Lore
10d33238b9
Do not merge entry/exit MTasks during coarsening
2023-10-21 19:31:52 +01:00
Wilson Snyder
eae942b91c
Internals: Fix some lint-py warnings
2023-10-21 12:48:36 -04:00
Geza Lore
1075b006b5
Consider children of AstConcat in V3InstrCount
...
Previously V3InstrCount used to completely ignore an AstConcat,
including its children (see the rational in the comment). The problem is
the operands can be huge and expensive compound expressions (especially
since DFG), and not just a simple variable reference. This fix gains
some MT speed improvement.
2023-10-21 17:15:40 +01:00
Geza Lore
d1c7875406
Fix conditionals on obsolete --threads 0
...
Since we removed --threads 0 support, the 'threads()' option always
returns a value >= 1. Remove corresponding dead code.
Some of the coverage counters appear to use atomics even if the model is
single threaded. I'm under the impression this was a bug originally so
those ones I changed to use threads() > 1 instead.
2023-10-21 15:14:27 +01:00
Quentin Corradi
26e3785963
Fix PLI/DPI user defined system task/function grammar ( #4587 ) ( #4588 )
...
According to 1800-2017 36.3, 1800-2017 A.9.3, 1364-2005 20.2 and 1364-2005 A.9.3, user defined system task and function identifiers can use the same character set for the second character as all the following characters.
2023-10-21 02:43:49 -04:00
Wilson Snyder
f8b7fb72b8
Fix fault on empty clocking block ( #4593 ).
2023-10-21 02:40:08 -04:00
Krzysztof Bieganski
7b12f6a1dd
Support NBAs in non-inlined functions/tasks ( #4496 ) ( #4572 )
2023-10-20 20:01:45 -04:00
Aleksander Kiryk
83a0085c4d
Support `wait fork` ( #4586 )
2023-10-20 07:13:57 -04:00
Wilson Snyder
4cc42133b5
Internals: Rename some parser rules. No functional change.
2023-10-19 20:13:27 -04:00
Wilson Snyder
a773a52559
Cleanup some IEEE references
2023-10-19 19:26:36 -04:00
Wilson Snyder
5af271cf3a
Fix display optimization ignoring side effects ( #4585 ).
2023-10-19 18:33:58 -04:00
Wilson Snyder
0c2bab1f69
Fix method narrowing conversion compiler error ( #4568 ).
2023-10-18 17:51:25 -04:00
Wilson Snyder
b7233d063f
Internals: Fix same() called outside of sameTree ( #4561 ).
2023-10-18 17:36:21 -04:00
Krzysztof Bieganski
8720841c48
Fix to not remap local assign intravals in forks ( #4583 )
2023-10-18 16:49:20 -04:00
Wilson Snyder
8b44a54bb2
Support Verilated precompiled header compilations ( #4580 )
2023-10-18 08:08:15 -04:00
Wilson Snyder
b5828a7ce9
Fix header order botched by clang-format in recent commit.
2023-10-18 06:37:46 -04:00
Wilson Snyder
51a18225ad
cmake: Fix missing headers
2023-10-18 06:37:38 -04:00
Wilson Snyder
28625451dd
Fix MSVC makefile list (part of previous commit)
2023-10-18 06:07:05 -04:00
Wilson Snyder
3914176bc4
Internals: Remove unused IGNORED to fix MSVC warning. No functional change intended.
2023-10-18 06:06:00 -04:00
github action
770cd24f27
Apply 'make format'
2023-10-18 02:50:27 +00:00
Wilson Snyder
431bb1ed16
Support compiling Verilator with gcc/clang precompiled headers ( #4579 )
2023-10-17 22:49:28 -04:00
Ryszard Rozak
45edcbb03e
Fix logical expressions with class objects - caching in v3Const ( #4552 )
2023-10-17 07:38:45 -04:00
Ryszard Rozak
e99fd2892b
Make VNDeleter a member of VNVisitor. No function change. ( #4573 )
2023-10-17 09:26:53 +02:00
Krzysztof Bieganski
99ea16d7fd
Fix dynamic triggers for named events ( #4571 )
2023-10-16 11:06:41 -04:00
Krzysztof Bieganski
bc9ff6d1bf
Fix interface comparison ( #4570 )
2023-10-16 11:05:39 -04:00
Aleksander Kiryk
ad3bcbb1bb
Support `disable fork` ( #4125 ) ( #4569 )
2023-10-16 14:02:29 +02:00
Yutetsu TAKATSUKASA
25dde58297
Internals: Use VN_AS instead of static_cast. Fix some wrong types. ( #4561 )
2023-10-16 05:17:52 -04:00
Anthony Donlon
bba3487dc4
Internals: Fix hash and comparison function for AstBasicDType ( #4564 )
2023-10-15 15:15:46 -04:00
Anthony Donlon
4fdaa46328
Fix using functions/tasks following class definition inside module ( #4553 )
2023-10-15 13:01:32 -04:00
Anthony Donlon
4427f03b08
Fix error message for invalid parameter overrides ( #4559 )
2023-10-15 12:59:36 -04:00
Yutetsu TAKATSUKASA
4e2c63c8cb
Support concatenation of unpacked arrays ( #4558 )
2023-10-15 12:53:35 -04:00
github action
afecde87d8
Apply 'make format'
2023-10-15 11:00:14 +00:00
Wilson Snyder
c14eae6d56
Add SIDEEFFECT warning on mishandled side effect cases ( #487 partial)
2023-10-15 06:44:35 -04:00
Wilson Snyder
684aba0e90
Fix purity calculation during V3Const simplifying Ast
2023-10-15 06:25:42 -04:00
Wilson Snyder
46f8a659b3
Fix shift to remove operation side effects ( #4563 ).
2023-10-14 22:34:37 -04:00
Wilson Snyder
411f563cbe
Internals: Remove unneeded pure checks. No functional change.
2023-10-14 22:23:58 -04:00
github action
fa8eaf7355
Apply 'make format'
2023-10-14 19:20:22 +00:00
Wilson Snyder
7eb09c3445
Fix instance arrays connecting to array of structs ( #4557 ).
2023-10-14 15:19:19 -04:00
Wilson Snyder
1fd8e772b0
Fix loss of warning source content with `line enter (due to earlier commit 472ad90d83).
2023-10-10 20:40:21 -04:00
Anthony Donlon
7ce0bd1181
Fix broken link error for enum references ( #4551 )
2023-10-10 17:55:40 -04:00
Mariusz Glebocki
a5ee8b39ef
Internals: Remove use of V3Width code from V3AstNodes ( #4537 ). No functional change intended.
...
`getCommonClassTypep` and its helper code has been moved to AstNode
class. This is a lot better place for this functionality. Moreover, it
allowed to get rid of the dependency on V3Width from generic AST-related
code.
2023-10-09 17:43:27 -04:00
Ryszard Rozak
5b06c60318
Internals: Change deleteTree to pushDeletep ( #4548 ). No functional change intended.
2023-10-09 09:45:09 -04:00
Wilson Snyder
b306715b4a
Optimize empty expression statements ( #4544 ).
2023-10-09 05:50:31 -04:00
Wilson Snyder
8d99bdac25
Internals: Move afterCommentp to AstNode. No functional change.
2023-10-09 05:03:57 -04:00
github action
e114dfda6d
Apply 'make format'
2023-10-09 08:14:14 +00:00
Wilson Snyder
472ad90d83
Change lint_off to not propagate upwards to files including where the lint_off is.
2023-10-09 04:12:01 -04:00
Wilson Snyder
622f0c047c
Fix reporting `line at wrong spot. Rework some internal fileline parsing functions.
2023-10-08 20:38:45 -04:00
Wilson Snyder
7f38414276
Internals: Rename addIgnoreMatch. No functional change.
2023-10-08 01:02:23 -04:00
Wilson Snyder
1d3d59243c
Fix preprocessor to show `line 2 on resumed file per IEEE.
2023-10-07 14:29:46 -04:00
Wilson Snyder
e2343c03e0
Internals: Create V3WidthCommit from overly fat header. No functional change intended.
2023-10-06 23:18:26 -04:00
Wilson Snyder
0e0df1fb3b
Fix enum functions in localparams ( #3999 ).
2023-10-06 22:38:46 -04:00
Wilson Snyder
800a789f50
Fix inlining of real functions miscasting ( #4543 ).
2023-10-06 21:33:31 -04:00
Wilson Snyder
106664b942
Internals: Fix long lines. No functional change.
2023-10-05 20:07:53 -04:00
Todd Strader
f849073137
Fix non-inlined interface tracing ( #3984 ) ( #4530 )
2023-10-03 19:55:25 -04:00
Ryszard Rozak
1b8228b642
Fix stream operations with operands of struct type ( #4531 ) ( #4532 )
2023-10-03 07:23:20 -04:00
Wilson Snyder
732d03f4e5
Fix conversion of integers in $display %e ( #4528 ).
2023-10-01 13:00:16 -04:00
Wilson Snyder
33787c6add
Internals: Fix number nodep cloning, and assert stays consistent ( #4528 partial)
2023-10-01 12:46:35 -04:00
Ryszard Rozak
44e7d2ebe6
Internals: rename VPurity class and related functions. No functional change ( #4523 )
2023-09-29 12:23:51 +02:00
Wilson Snyder
e49ae663a6
Fix constification of $realtobits, $bitstoreal ( #4522 ).
2023-09-28 22:45:00 -04:00
Wilson Snyder
ad343f8260
Add warning on interface instantiation without parens ( #4094 ).
2023-09-26 22:15:48 -04:00
Wilson Snyder
018d766179
Fix clang error ( #4462 )
2023-09-26 21:07:43 -04:00
Wilson Snyder
72b4a74245
Fix clang error on last commit
2023-09-26 19:58:09 -04:00
Wilson Snyder
36c824d973
Add trace() API even when Verilated without --trace ( #4462 ).
2023-09-26 18:37:50 -04:00
Anthony Donlon
229ce1aecf
Fix handling input file path separator ( #4515 ) ( #4516 )
2023-09-26 15:42:15 -04:00
Anthony Donlon
be45a9b7d5
Style: Update clang-format config to make formatted code consistent between versions. No functional change ( #4520 )
2023-09-26 15:05:57 -04:00
Anthony Donlon
60e9827ffe
Support converting parameters inside modules to localparams ( #4511 )
2023-09-25 11:39:04 -04:00
Anthony Donlon
750b5be5d3
Remove support for parameterized UDPs ( #4518 )
2023-09-25 10:40:44 -04:00
Mariusz Glebocki
28bd7e5b19
Rework multithreading handling to separate by code units that use/never use it. ( #4228 )
2023-09-24 22:12:23 -04:00
Wilson Snyder
9f75068059
Cleanup some error messages to properly quote
2023-09-23 08:52:50 -04:00
Ryszard Rozak
4636e9cffb
Fix passing arguments by reference ( #3385 partial) ( #4489 )
2023-09-20 07:33:11 -04:00
Kamil Rakoczy
a16ea94836
Fix detecting local vars in nested forks ( #4493 ) ( #4506 )
2023-09-19 17:32:42 -04:00
Wilson Snyder
24ff3155ae
Support randc ( #4349 ).
2023-09-18 21:17:21 -04:00
Ryszard Rozak
47b3f464a9
Disable conversion of impure logical expressions to bitwise expressions ( #487 partial) ( #4437 )
2023-09-18 09:21:30 -04:00
github action
cd201f8eb8
Apply 'make format'
2023-09-18 01:44:43 +00:00
Wilson Snyder
016278a759
Commentary
2023-09-17 21:43:00 -04:00
Wilson Snyder
b68f101e81
Support preprocessing __LINE__
2023-09-17 19:49:38 -04:00
Wilson Snyder
ab13548018
Support resizing function call inout arguments ( #4467 ).
2023-09-17 18:23:44 -04:00
Wilson Snyder
761adf1cf0
Internals: Add cloneTreePure to prepare for side effect check.
...
Use cloneTreePure when what is being cloned must be side-effect free.
Use cloneTree when safe to contain side effects (e.g. cloning module).
2023-09-16 22:50:54 -04:00
Wilson Snyder
783b7ecdab
Fix clang override warning (last commit)
2023-09-16 17:52:02 -04:00
Wilson Snyder
8bd1c63b32
Support function non-constant default arguments ( #4470 ).
2023-09-16 17:37:25 -04:00
Wilson Snyder
e6fb7e970d
Fix recursive display causing segfault ( #4480 ).
2023-09-16 10:10:21 -04:00
Wilson Snyder
05d04a3959
Internals: Fix misnamed member. No functional change.
2023-09-15 23:02:34 -04:00
Wilson Snyder
19f7279542
Fix false INFINITELOOP on forever..mailbox.get() ( #4323 ).
2023-09-15 22:05:55 -04:00
Wilson Snyder
aa608472ae
Support recursive function calls ( #3267 ).
2023-09-15 20:46:31 -04:00
Wilson Snyder
d840c612d4
Fix IGNOREDRETURN to not warn on void-cast static function calls.
2023-09-15 19:01:11 -04:00
Wilson Snyder
188cf85b3f
Suppress some debug unknown hash/simulate warnings in UVM.
2023-09-15 18:33:02 -04:00
Wilson Snyder
c52ba28dd0
Tests: Fix commentary to unify issue references.
2023-09-15 18:12:11 -04:00
Wilson Snyder
10c1653e72
Fix ZERODLY to not warn on 'wait(0)'.
2023-09-15 08:53:29 -04:00
Ryszard Rozak
96857c5f95
Fix the error message when the type of ref argument is wrong ( #4490 )
2023-09-15 07:17:24 -04:00
Wilson Snyder
131eb319e0
Tests: Advance UVM through V3LinkDot Param ( #1538 partial)
2023-09-14 20:09:43 -04:00
Wilson Snyder
6e589377f4
Fix reference to extended class in parameterized class ( #4466 ).
2023-09-14 20:07:49 -04:00
Wilson Snyder
2c84b37bf7
Internals: Rename some V3LinkDot variables. No functional change.
2023-09-14 20:06:20 -04:00
Kamil Rakoczy
0d67caff77
Internals: V3Task: refactor common code to connectPort. No functional change intended ( #4488 )
...
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
2023-09-14 07:24:49 -04:00
Anthony Donlon
3dde57d539
Fix lint of case statements with enum and wildcard bits ( #4464 ) ( #4487 )
2023-09-14 07:22:49 -04:00
Kamil Rakoczy
9fe459c820
Internals: V3LockGuard: Add constructor for adopting already locked mutex. ( #4476 )
2023-09-13 13:52:59 -04:00
Wilson Snyder
823e0723fb
Internals: Remove legacy define. No functional change.
2023-09-13 08:46:51 -04:00
Kamil Rakoczy
8bd6d7c5b1
Internals: Add V3ThreadSafety ( #4477 )
2023-09-13 07:57:48 -04:00
Wilson Snyder
839a8fa4d9
Fix error on enum with VARHIDDEN of cell ( #4482 ).
2023-09-12 17:47:57 -04:00
Krzysztof Boroński
24917a187a
Fix V3CUse, do not consider implementations (.cpp) at all ( #4386 )
2023-09-12 17:59:57 +02:00
Ryszard Rozak
6c6f03cf7c
Fix static cast from a stream type ( #4469 ) ( #4485 )
2023-09-12 11:06:12 -04:00
Kamil Rakoczy
5676443139
Internals: Rename and slightly change other threads stopping/resuming methods. ( #4478 )
...
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
2023-09-11 13:43:26 -04:00
Kamil Rakoczy
e77d847671
Check whether V3ERROR_NO_GLOBAL_ is not already defined. ( #4475 )
...
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
2023-09-11 09:01:34 -04:00
Kamil Rakoczy
0baee84e96
Move `dpiTemporaryVarSuffix()` to header. ( #4474 )
...
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
2023-09-11 09:01:09 -04:00
Ryszard Rozak
c446cc2596
Internals: Remove unused constructor. No functional change. ( #4473 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-09-11 07:10:33 -04:00
Ryszard Rozak
b66c4153b1
Compute purity of AstCMethodHard ( #4460 )
2023-09-11 13:06:15 +02:00
Wilson Snyder
d72f1b89fc
Internals: Minor internal code coverage cleanups
2023-09-10 18:53:51 -04:00
Wilson Snyder
b5b278d072
Fix fork crash with no init, test for ( #4471 )
2023-09-10 08:53:21 -04:00
Wilson Snyder
cb5466a90b
Tests: UVM passes V3Param stage
2023-09-09 11:54:55 -04:00
Wilson Snyder
cdd8953085
Disable Subst when not pure
2023-09-08 21:52:33 -04:00
Wilson Snyder
2f2f0164ff
Internals: Use specific types on some cloneTrees. No functional change.
2023-09-08 21:51:59 -04:00
Kamil Rakoczy
6e977e1024
Generate compile_commands.json using bear ( #4463 )
2023-09-08 17:26:11 -04:00
Krzysztof Boroński
70b11f91b4
Support block_item_declaration in forks ( #4455 )
2023-09-08 16:40:14 +02:00
Wilson Snyder
014301587f
Unsupported instead of syntax error on parameter var initial values
2023-09-08 08:37:17 -04:00
Krzysztof Bieganski
139e93d371
Internals: Reduce the number of typechecks in graphs ( #4398 ). No functional change intended.
2023-09-08 07:35:52 -04:00
Krzysztof Bieganski
fb1fc46b06
Internals: Rework self pointers ( #4396 )
2023-09-08 07:34:35 -04:00
Ryszard Rozak
91227d26bb
Internals: Rename pure to dpiPure. No functional change. ( #4461 )
2023-09-08 08:51:19 +02:00
Wilson Snyder
11b5dae88d
Support let
2023-09-07 21:45:51 -04:00
Wilson Snyder
0c7d485417
Fix error printing internal name()
2023-09-06 21:07:06 -04:00
Ryszard Rozak
c40e34b134
Support assignments of stream expressions on queues to packed values ( #4458 )
2023-09-06 15:25:48 +02:00
Wilson Snyder
c65265477f
Tests: Enable cover named property
2023-09-03 21:02:42 -04:00
Wilson Snyder
de77f1ee5c
Improve error that assert-under-assert is unsupported
2023-09-03 09:08:43 -04:00
Wilson Snyder
c8c980c49d
Fix mis-warning on #() in classes' own functions.
2023-09-02 08:33:56 -04:00
Wilson Snyder
ad329612fd
Internals: Remove unnecessary cloneTree.
2023-09-01 20:13:20 -04:00
Wilson Snyder
c324895cbc
Internals: Remove unnecessary cloneTree.
2023-09-01 19:49:57 -04:00
Ryszard Rozak
5b7e32581b
Internals: Cleanup V3Task. No function change intended. ( #4454 )
2023-09-01 08:03:16 -04:00
Wilson Snyder
2f90fb2bec
Set lifetime for repeat variable ( #4451 partial)
2023-08-31 18:34:37 -04:00
Wilson Snyder
8c480fd39e
Internals: Fix cppcheck warnings
2023-08-31 18:29:58 -04:00
Krzysztof Bieganski
ffbbd438ae
Internals: Use runtime type info instead of `dynamic_cast` for faster graph type checks ( #4397 )
2023-08-31 18:00:53 -04:00
Anthony Donlon
96ee81fa3f
Fix unstable output of VHashSha256 ( #4453 )
2023-08-31 13:42:37 -04:00
Wilson Snyder
6d5dde8645
Fix duplicate Vfork functions ( #4418 )
2023-08-30 17:59:25 -04:00
Wilson Snyder
048c9f3fe2
Support extra commas before $display
2023-08-30 17:31:11 -04:00
Wilson Snyder
373265752f
Fix display %x formatting of real.
2023-08-30 17:21:33 -04:00
Wilson Snyder
ccdb52c1d9
Fix lifetime unknown error on enum.name ( #4448 ).
2023-08-30 07:20:25 -04:00
Yinan Xu
b4b74d72f0
Add prepareClone and atClone APIs for Verilated models ( #3503 ) ( #4444 )
...
This API is used if the user copies the process using `fork`
and similar OS-level mechanisms. The `at_clone` member function
ensures that all model-allocated resources are re-allocated, such
that the copied child process/model can simulate correctly.
A typical allocated resource is the thread pool, which every model
has its own pool.
2023-08-30 07:02:55 -04:00
Wilson Snyder
ca6ab584d0
Internals: Remove cloneTreeNull. No functional change intended.
2023-08-29 20:29:11 -04:00
github action
799a502cac
Apply 'make format'
2023-08-29 23:56:25 +00:00
Ethan Sifferman
8d1570db28
Add check for conflicting options e.g. binary+lintonly ( #4409 )
2023-08-29 19:55:37 -04:00
Wilson Snyder
2a30bbe493
Fix internal error on real conversion ( #4447 ).
2023-08-29 18:07:23 -04:00
Anthony Donlon
cf6566b9bc
Internal: Optimize program size by refactoring error reporting routines ( #4446 )
2023-08-29 16:54:32 -04:00
Krzysztof Boroński
c3e19f2821
Move variables mutated under fork..join_none/join_any blocks into anonymous objects ( #4356 )
2023-08-29 20:01:00 +02:00
Ryszard Rozak
e24197fd16
Don't move function calls before the expression ( #4413 )
2023-08-28 15:44:41 +02:00
Anthony Donlon
63db60f646
Fix using type in parameterized classes without #() ( #4281 ) ( #4440 )
...
* Check whether a class is parameterized or not with AstClass::isParameterized method
* Fix usage conflict of user2 pointer in V3Param.cpp
2023-08-26 12:06:26 -01:00
Wilson Snyder
e66b28823d
Internals: Cleanup some spacing. No functional change.
2023-08-26 05:59:56 -04:00
Wilson Snyder
00d63883f8
Fix false MULTITOP on bound interfaces ( #4438 ).
2023-08-25 08:21:15 -04:00
Wilson Snyder
10dd675371
Fix false UNUSEDPARAM on generate localparam ( #4427 ).
2023-08-25 07:59:29 -04:00
Ryszard Rozak
2daa32b98b
Support assignments of packed values to stream expressions on queues ( #4401 )
2023-08-25 11:24:12 +02:00
Ryszard Rozak
90079c2974
Fix nested assignments on the LHS ( #4435 )
2023-08-23 12:08:22 +02:00
Wilson Snyder
967a8530dd
Fix errors on some $past cases ( #4425 )
2023-08-22 01:49:06 -04:00
Krzysztof Boroński
ef4794e36d
Support parenthesesless calls to static methods ( #4432 )
2023-08-22 06:06:34 +01:00
Anthony Donlon
768b78e7d0
Fix checking for parameter and port connections in the wrong place ( #4428 )
2023-08-20 08:55:16 -04:00
Aleksander Kiryk
4370254e73
Fix ++/-- under statements ( #4399 )
2023-08-19 07:03:21 -04:00
github action
7479db6ffc
Apply 'make format'
2023-08-19 08:52:38 +00:00
Frans Skarman
e9cc2786b7
Add --no-trace-top option ( #4422 )
2023-08-19 04:51:29 -04:00
Anthony Donlon
cbdee5a804
Fix Windows filename format, etc. ( #3873 ) ( #4421 )
...
* Ignore CLion project files and CMake outputs
* Supporting stripping file path that contains backslash
* Set /bigobj flag and increase stack size for windows platform
* Fix MSVC warnings
2023-08-16 07:34:57 -04:00
Anthony Donlon
0f66262fa1
Internals: Refactor AstNode::checkTreeIter for better stack size ( #4420 )
2023-08-16 07:32:39 -04:00
Wilson Snyder
16008acdf1
Internals: Add disabled duplicate function check ( #4418 )
2023-08-12 10:51:35 -04:00
Wilson Snyder
5447ed2629
Fix multple function definitions in V3Sched ( #4416 ).
2023-08-12 10:41:44 -04:00
Wilson Snyder
bc97319402
Internals: State commentary. No functional change.
2023-08-12 08:55:08 -04:00
Wilson Snyder
709db5c648
Internals: Avoid unordered_set
2023-08-12 08:46:25 -04:00
Krzysztof Boroński
b752faa107
Fix jumping over object initialization ( #4411 )
2023-08-11 18:28:37 +02:00
Krzysztof Boroński
8d512c3187
Fix variable lifetimes in extern methods ( #4414 )
2023-08-11 16:52:59 +02:00
Ryszard Rozak
2d9bc73709
Fix dtype of condition operation on class objects ( #4345 ) ( #4352 )
2023-08-07 05:54:30 -04:00
Ryszard Rozak
b0942ed8c7
Fix detection of mixed blocking and nonblocking assignment in nested assignments ( #4404 )
2023-08-07 11:35:44 +02:00
Krzysztof Bieganski
1a77030c9b
Internals: Speedup to only typecheck node child getters in debug builds ( #4394 )
2023-08-05 03:24:00 -04:00
Aleksander Kiryk
4afa14b612
Internals: Remove m_pkgp and m_classp from WidthVisitor ( #4402 )
2023-08-05 03:07:23 -04:00
Krzysztof Bieganski
9caa79a7ea
Internals: Remove the name field from `AstVarRef` ( #4395 )
2023-08-03 02:52:52 -04:00
Wilson Snyder
06521f6cf1
Tests: Fix some missing coverage, and cleanup some error messages
2023-07-27 06:53:43 -04:00
github action
75336670d7
Apply 'make format'
2023-07-27 09:44:05 +00:00
Andrew Miloradovsky
106a9fe67f
Fix config_build.h issues ( #4380 ) ( #4381 )
2023-07-27 05:42:35 -04:00
Anthony Donlon
959387b69f
Support property declaration with empty parentheses ( #4313 ) ( #4317 )
2023-07-26 05:18:21 -04:00
Ryszard Rozak
fd0703b8c8
Fix selects on unpacked structs ( #4359 )
2023-07-25 12:50:24 +02:00
Ryszard Rozak
3ff608b9cb
Fix non-public methods with wide output ( #4364 )
2023-07-25 04:55:58 -04:00
Aleksander Kiryk
edc0a0e982
Optimize V3Number::opAdd ( #4385 )
2023-07-24 17:09:27 -04:00
Aleksander Kiryk
1549ff9185
Support more types in wait ( #4374 )
2023-07-24 08:14:01 -04:00
Ryszard Rozak
aa0ef554b3
Fix order of evaluation of function calls in statements ( #4375 )
2023-07-21 03:29:11 -04:00
Ryszard Rozak
a6015863d8
Support for static method calls as default values of function arguments ( #4378 )
2023-07-21 03:27:00 -04:00
Aleksander Kiryk
5a694ccb8a
Fix assign to input var in methods ( #4367 )
2023-07-17 09:52:37 -04:00
Ryszard Rozak
4de1b22672
Fix handling of super.new calls ( #4366 )
2023-07-17 13:30:42 +02:00
Krzysztof Boroński
4bdda3f240
Improve propagation of process requirement and decouple it from suspendability ( #4321 )
2023-07-14 17:12:02 +02:00
Ryszard Rozak
ced1dfeffd
Fix select operation on assoc array with wide keys ( #4360 )
2023-07-12 18:48:24 +02:00
Krzysztof Boroński
0774f825cf
Internals: Use pointer to const nodes in V3MemberMap ( #4353 )
2023-07-12 11:36:24 -04:00
Ryszard Rozak
23fe5c1b93
Fix string concatenations ( #4354 )
2023-07-10 12:58:54 -04:00
Julian Daube
3ee9b33f8a
Fix cmake astgen for Rocky Linux 8.7 ( #4343 )
2023-07-09 06:02:21 +05:00
Wilson Snyder
5be0813893
Explicity reference std:: in header files ( #4338 ). No functional change intended.
2023-07-08 13:20:40 -04:00
Wilson Snyder
f94c1b32e5
Internals: Make V3MemberMap to remove member cache ( #4350 )
2023-07-08 12:40:27 -04:00
Wilson Snyder
ff4923cf67
Internals: Make V3MemberMap towards removing member cache ( #4350 )
2023-07-08 12:27:50 -04:00
Krzysztof Bieganski
5788bc8048
Propagate class timescale to class package ( #4348 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2023-07-07 17:27:33 +02:00
Krzysztof Bieganski
d5d1cc47e0
Fix multiple edge timing controls in class methods ( #4318 ) ( #4320 ) ( #4344 )
...
Multiple edge timing controls in class methods would cause compilation errors on
the generated C++ code. This is because the `SenExprBuilder` used for these
would get recreated per timing control, resulting in duplicate variable names.
The fix is to have a single `SenExprBuilder` per scope.
2023-07-07 08:19:49 -04:00
Aleksander Kiryk
9aa90569bf
Support string replication with variable ( #4341 )
2023-07-07 13:05:06 +05:00
Wilson Snyder
294d78e0e2
Backout unstable dbb35ab8 ( #4318 ) ( #4320 )
2023-07-05 14:26:28 -04:00
Aleksander Kiryk
399319dc1c
Fix wildcard referring types ( #4336 ) ( #4342 )
2023-07-05 13:08:00 -04:00
Krzysztof Bieganski
35d6da391b
Fix multiple edge timing controls in class methods ( #4318 ) ( #4320 )
...
Multiple edge timing controls in class methods would cause compilation errors on the generated C++ code. This is because the `SenExprBuilder` used for these would get recreated per timing control, resulting in duplicate variable names. The fix is to have a single `SenExprBuilder` per scope.
2023-07-05 10:36:10 +00:00
Aleksander Kiryk
fcbd7c87af
Fix unexpected RefDType on assoc arrays ( #4337 )
2023-07-04 18:13:22 +05:00
Ryszard Rozak
97feba6898
Support locator methods with "with" on assoc arrays ( #4335 )
2023-07-04 18:11:15 +05:00
Aleksander Kiryk
9249ffdb84
Fix queue slicing ( #4329 )
2023-07-03 13:55:24 -04:00
أحمد المحمودي
71df9e3381
Commentary: Fix typo of concurrent ( #4332 )
2023-07-02 16:12:09 -04:00
Wilson Snyder
3c964147be
Add MISINDENT lint warning for misleading indentation.
2023-07-01 10:45:25 -04:00
Wilson Snyder
54b4b6b378
Internals: Fix missing calls to cleanFileline.
2023-07-01 08:59:26 -04:00
Wilson Snyder
cff37f0775
Add GENUNNAMED lint warning.
...
Also fix generate-for blocks with empty statements getting lost.
2023-07-01 08:31:53 -04:00
Ryszard Rozak
24a9f7c650
Fix references to members of results of static methods ( #4327 )
2023-06-30 13:23:34 +02:00
Ryszard Rozak
242f661644
Fix selects of static members ( #4326 )
2023-06-30 09:12:22 +02:00
Aleksander Kiryk
32019d2bc4
Fix state update for always processes ( #4311 )
2023-06-29 09:21:49 -04:00
Krzysztof Boroński
b252bb048f
Fix unhandled overloads in V3InstrCount ( #4324 )
2023-06-28 08:49:56 -04:00