Wilson Snyder
8df584ca1d
Version bump
2026-01-01 07:24:47 -05:00
Wilson Snyder
13327fa9c0
Copyright year update.
2026-01-01 07:22:09 -05:00
Wilson Snyder
4080284e53
Fix warning lint directive ordering and consistency ( #4185 ) ( #5368 ) ( #5610 ) ( #6876 ).
2025-12-30 20:31:34 -05:00
Wilson Snyder
e6114b6bbb
Commentary
2025-12-30 08:24:41 -05:00
Wilson Snyder
c76c31ae6c
Commentary: Changes update
2025-12-30 07:34:09 -05:00
Wilson Snyder
2025b81614
Internals: Refactor V3Error, and handle UNDRIVEN/UNSUPPORTED/WIDTH consistently ( #6874 )
2025-12-30 07:08:25 -05:00
Kaleb Barrett
aa94219531
Support vpiSigned ( #6868 ) ( #6870 )
2025-12-29 20:12:19 -05:00
Wilson Snyder
2e394c3c04
Internals: Refactor some V3Error code handling and add tests. No functional change intended.
2025-12-29 18:17:24 -05:00
Wilson Snyder
4775399716
Commentary: spelling
2025-12-28 21:30:16 -05:00
Wilson Snyder
a0798eb838
Tests: Add t_uvm_dpi not forceable check
2025-12-28 14:27:40 -05:00
apocelipes
c35dde7c9c
Fix missing include on FreeBSD ( #6864 )
2025-12-27 10:17:03 -05:00
Wilson Snyder
2318adabd3
Fix JSON output case statements ( #6733 ).
2025-12-26 22:43:06 -05:00
Wilson Snyder
7a2b20cff3
Fix formatting of %p to be spaceless
2025-12-26 21:45:52 -05:00
Wilson Snyder
b50e8bb9c1
Internals: Add '--debug-runtime-timeout'
2025-12-26 12:59:35 -05:00
Iztok Jeras
6a07595a44
Commentary: Text formatting fix ( #6863 )
2025-12-25 19:01:38 -05:00
Wilson Snyder
397e64903c
Fix typedef :: class reference error ( #6862 ).
2025-12-24 10:01:46 -05:00
Wilson Snyder
a0f0edd594
Commentary: Update contributors.
2025-12-24 09:06:31 -05:00
Wilson Snyder
9eba7bcd91
Tests: Commentary
2025-12-23 20:50:18 -05:00
Wilson Snyder
1b93033690
Add --quiet-build to suppress make/compiler informationals.
2025-12-23 19:21:42 -05:00
Wilson Snyder
921ad64d22
Commentary: Changes update
2025-12-23 19:20:42 -05:00
Wilson Snyder
3f4fe73191
Tests: Indent fixes
2025-12-23 19:20:36 -05:00
Wilson Snyder
5dc05e1fa8
Internals: Update some JSON references. No functional change.
2025-12-23 10:13:23 -05:00
Krzysztof Bieganski
a2fcd37c08
Fix unsupported if virtual interface warning ( #6558 ) ( #6861 )
2025-12-23 10:12:34 -05:00
Wilson Snyder
742c0b134c
Tests: Update t_disable_task_unsup ( #6853 partial)
2025-12-21 21:26:16 -05:00
Wilson Snyder
f6b966ed16
Fix randc on extended class ( #6852 ).
2025-12-21 19:56:55 -05:00
Wilson Snyder
1d7f5ed33e
Commentary
2025-12-21 18:55:51 -05:00
Wilson Snyder
4201450a8a
Fix class reference throwing cannot detect changes error ( #6851 ).
2025-12-21 18:44:55 -05:00
Wilson Snyder
ef5ca74e94
Tests: Better handle multiline statements in t_dist_warn_coverage
2025-12-21 16:15:33 -05:00
Wilson Snyder
a6f608c616
Tests: Add t_rand_stability_class
2025-12-21 15:28:10 -05:00
Jose Drowne
c0a0f0dab9
Optimize inlining small C functions and add -inline-cfuncs ( #6815 )
2025-12-21 13:14:50 -05:00
github action
e6877e83fd
Apply 'make format'
2025-12-21 13:59:15 +00:00
Thomas Aldrian
361ab194ff
Internals: Modport expression parsing and tests ( #2601 partial) ( #6848 )
2025-12-21 08:58:21 -05:00
Wilson Snyder
32dafdcc61
Internals: Cleanup some docstrfmt issues.
2025-12-20 22:41:26 -05:00
Wilson Snyder
fa99e7b697
Internals: Format CITATION.cff as proper YAML
2025-12-20 22:19:15 -05:00
Wilson Snyder
a64b083b2a
Fix JSON missing signed indication ( #6845 ).
2025-12-20 22:11:09 -05:00
Wilson Snyder
605915f307
Commentary: Changes update
2025-12-20 22:04:29 -05:00
Wilson Snyder
2c156d6655
Tests: Reformat some recent tests to mostly verilog-format standard. No test functional change.
2025-12-20 21:46:43 -05:00
Wilson Snyder
ffa87540cc
Fix randcase under fork ( #6843 ).
2025-12-20 21:25:01 -05:00
Geza Lore
f990dd747e
Change metacomments to not enable warnings disabled in control file ( #6836 ) ( #6842 )
...
Track the location based message/feature enable bits separately for code
and control file directives. A message/feature is disabled if disabled
either in the control file, or in code directives/metacomments. That is,
enabled only if both agree should be enabled.
2025-12-20 06:33:46 -05:00
em2machine
3ceac0b37e
Fix parameterized class module parameters ( #6754 ) ( #6834 )
2025-12-19 12:57:15 -05:00
Pawel Kojma
5244766b7b
Support reduction or in constraints ( #6840 )
2025-12-19 12:37:20 -05:00
Yangyu Chen
47d1a50aa4
Fix setting thread count in VerilatedContext ( #6826 partial) ( #6841 )
2025-12-19 10:59:43 -05:00
Wilson Snyder
5cee225022
Add NUMA example commentary ( #6839 partial)
2025-12-19 07:47:13 -05:00
Oleh Maksymenko
a098e4894f
Fix JSON dump missing output ports ( #6751 ) ( #6831 )
2025-12-19 07:30:33 -05:00
Wilson Snyder
be08862109
CI: Add format-yaml ( #6838 )
2025-12-18 21:45:43 -05:00
Wilson Snyder
c2c00888d6
Fix firing array selects of events ( #6829 ).
2025-12-18 20:45:22 -05:00
Wilson Snyder
24e43f4ddd
Internals: Add assertion at expected expressions ( #6829 partial)
2025-12-18 20:37:11 -05:00
Geza Lore
04a7b31b84
Fix false IMPLICITSTATIC on localparam ( #6835 )
2025-12-18 12:51:31 +00:00
Yilou Wang
41937ecbe4
Fix member select of variable without randmode ( #6800 ) ( #6833 )
2025-12-18 06:49:04 -05:00
Wilson Snyder
b90865a08a
Change --lint-only and --json-only to imply --timing ( #6790 ).
2025-12-17 19:24:43 -05:00
Wilson Snyder
12ff481689
REVERT 612237b7: Optimize trace code for faster compiles on repeated types ( #6707 ) ( #6832 partial).
2025-12-17 17:37:35 -05:00
Todd Strader
d10e841b56
Skip properties for expression coverage ( #6830 )
2025-12-17 13:51:40 -05:00
Yangyu Chen
bd38775ad2
V3DfgPasses: Optimize mux with UInt To OneHot ( #6822 )
...
Signed-off-by: Yangyu Chen <[email protected] >
2025-12-17 12:07:21 -05:00
em2machine
6f43ad8607
Fix type deduction for variable parameterized classes ( #6281 ) ( #6813 )
2025-12-17 08:08:44 -05:00
github action
fe5d6b213c
Apply 'make format'
2025-12-17 02:18:36 +00:00
Wilson Snyder
7e5c5d677f
Tests: Remove old benchmarksim, should use rtlmeter instead
2025-12-16 21:17:27 -05:00
Thomas Dybdahl Ahle
5115be6e6b
Fix duplicate name error with interface initial blocks ( #6804 ) ( #6805 ).
2025-12-16 20:57:58 -05:00
Wilson Snyder
41c4f948fe
Support assert under assert ( #6146 ).
2025-12-16 20:45:31 -05:00
Wilson Snyder
f1ee434dca
Commentary: Changes update
2025-12-16 20:43:08 -05:00
Luca Colagrande
a9ef4b3ff1
Fix nested struct within parameter port list ( #6818 ) ( #6824 )
2025-12-16 18:08:49 -05:00
Todd Strader
35dcf70f48
Optimize trace code for faster compiles on repeated types ( #6707 )
2025-12-16 17:52:00 -05:00
Dan Ruelas-Petrisko
394d9cf168
Support -libmap ( #5891 partial) ( #6764 )
2025-12-16 11:21:46 -05:00
Wilson Snyder
66b3790444
Commentary: Changes update
2025-12-16 08:14:37 -05:00
Wilson Snyder
ef3fdbdcba
Tests: Favor --binary. No test change.
2025-12-16 08:14:25 -05:00
Geza Lore
47a4f7fb9b
Improve reusability of --dump-inputs output ( #6812 )
2025-12-16 11:08:19 +00:00
Ryszard Rozak
25f72e4305
Support force assignments to unpacked array elements of simple types (partial #4735 ) ( #6787 )
2025-12-16 08:35:59 +01:00
Krzysztof Bieganski
7e67f73844
Fix process reference giving no return statement error ( #6767 ) ( #6823 )
2025-12-15 18:09:45 -05:00
dependabot[bot]
2f9e1fa454
Bump actions/cache from 4 to 5 ( #6819 )
2025-12-15 11:37:46 -05:00
dependabot[bot]
9bb3e9dd45
Bump actions/download-artifact from 6 to 7 ( #6820 )
2025-12-15 11:37:39 -05:00
dependabot[bot]
bcc661c116
Bump actions/upload-artifact from 5 to 6 ( #6821 )
2025-12-15 11:37:29 -05:00
Alex Solomatnikov
8da8ca4203
Fix error on resized lvalues with warning suppressed ( #6497 ) ( #6816 )
2025-12-15 06:49:32 -05:00
Geza Lore
a1cd7d1f3a
Add 'make venv' target ( #6775 )
...
Fixes #6775
2025-12-14 11:18:32 +00:00
Wilson Snyder
dc00bf2484
Fix 'void(' mis-throwing assertion
2025-12-13 21:43:27 -05:00
Wilson Snyder
27558c9349
Internals: Reorganize system function/task parse rules. No functional change.
2025-12-13 21:34:28 -05:00
Wilson Snyder
5634795140
Improve message on cast assertion failure.
2025-12-13 20:51:13 -05:00
em2machine
aff501f5c4
Fix resolution of specialized typedefs ( #6754 ) ( #6808 )
2025-12-12 15:20:15 -05:00
em2machine
2995748d46
Fix parameterized class function ( #6659 ) ( #6802 )
2025-12-12 04:17:08 -08:00
Geza Lore
0901c91b45
Tests: Fix t_dist_attributes_bad ( #6801 )
2025-12-12 02:59:01 -08:00
Wilson Snyder
86ad6f832a
Commentary: Changes update
2025-12-11 21:07:24 -05:00
Wilson Snyder
b7bc6c3c65
Tests: clang-format DPI and remove commented header
2025-12-11 21:07:00 -05:00
Yilou Wang
f097e8a34e
Fix write variable placement for global constraints ( #6740 ) ( #6750 ) ( #6797 )
2025-12-11 14:16:34 -05:00
Geza Lore
cfd22a95e2
Tests: Fix malloc.h test includes on macOS ( #6795 partial) ( #6792 )
...
Replace 'malloc.h' with the standard 'stdlib.h'.
2025-12-11 11:38:14 -05:00
Geza Lore
5bb98187fc
Tests: Fix t_vpi_hierarchy_clear on macOS ( #6793 )
2025-12-11 15:23:03 +00:00
Geza Lore
af1be26b96
Fix O(n*2) analysis in const-bit-op-tree ( #6791 )
...
Note this might miss some cases where a sub-tree within an And/Or/Xor
tree is optimizeable, but not the whole tree, but in practice this seems
to work better than the alternative of keeping a set of failed nodes and
bail early.
2025-12-11 14:32:25 +00:00
em2machine
afc4bed0f8
Fix generate function(s) inside of generate blocks ( #1011 ) ( #6789 )
2025-12-10 20:53:19 -05:00
Wilson Snyder
f9f16b438f
Tests: Imply --lint-only with test.lint()
2025-12-10 19:52:51 -05:00
Wilson Snyder
5d768a4a20
Internals: Fix rand dump text
2025-12-10 19:07:51 -05:00
Pawel Kojma
37318ab2bd
Fix input sampling of clocking block signals ( #6788 )
2025-12-10 10:59:08 -05:00
Aliaksei Chapyzhenka
3b0db630c1
Support SystemC time resolution with step 10/100 ( #6633 ) ( #6715 )
2025-12-09 19:34:29 -05:00
Wilson Snyder
075d624b29
Add SUPERNFIRST error on super.new on non-first statement ( #6784 ).
2025-12-09 19:22:59 -05:00
dependabot[bot]
d467fda7c6
Bump actions/create-github-app-token from 2.2.0 to 2.2.1 ( #6778 )
2025-12-09 19:17:54 -05:00
Ryszard Rozak
0f355c717e
Fix disable iff in simple properties ( #6783 )
2025-12-09 07:18:32 -05:00
Wilson Snyder
db2099a4dc
Add -Wno-vla-cxx-extension CLang flag, and UVM DPI tests ( #6782 )
2025-12-09 07:15:28 -05:00
Geza Lore
e6a3d61d25
Internals: Add Caliptra to RTLMeter runs ( #6781 )
2025-12-09 06:23:24 +00:00
Wilson Snyder
ec38fb723d
Internals: Remove added debug to avoid false leak warning
2025-12-08 21:33:21 -05:00
Wilson Snyder
a3f913c5b1
Fix randomize call in parameterized class
2025-12-08 20:26:53 -05:00
Wilson Snyder
0f46f6eb40
Internals: Fix missing override
2025-12-08 20:17:40 -05:00
Wilson Snyder
29ae520e69
Fix class param static not found again error ( #6768 ).
2025-12-08 20:11:28 -05:00
Wilson Snyder
bd87dfc579
Internals: Add --debug-exit-elab; remove --debug-exit-uvm*
2025-12-08 18:02:46 -05:00
em2machine
d0a5da2445
Fix typedef derived from type defined inside interface ( #3441 ) ( #6776 )
2025-12-08 15:36:21 -05:00
Geza Lore
7e55c62cac
Improve combinational cycle fixup in Dfg ( #6744 ) ( #6746 )
...
Now that we have an efficient algorithm to analyse which bits in a
combinational cycle are not dependent on the cycle, can simplify the
cycle fixup algorithms. Remove FixUpSelDrivers: this was a heuristic
to save on the expensive independent bits analysis, but itself can
cause a performance problem on certain inputs that result in a large
number of attempted fixups. Doing this simplifies the driver tracing
algorithm, and because we now only attempt to trace drivers that are
known to be independent of the cycles, it should always succeed...
Unless of course there is a mismatch between the independent bit
analysis ant the driver tracing algorithm. In such case (when we managed
to prove independence, but then fail to trace a driver), we will crash,
which is still easier to sv-bugpoint than a performance bug.
Fixes #6744
2025-12-08 18:43:21 +00:00
Geza Lore
1baa832efc
Fix reordering of function body inlined on RHS of <= NBA ( #6780 )
2025-12-08 18:42:52 +00:00
Christian Hecken
9a23711ff9
Fix stale pointers in VerilatedImpData::m_hierMap ( #6726 )
2025-12-07 15:42:29 -05:00
Wilson Snyder
ae480c5f76
Fix enum item references in class extends with parameters.
2025-12-07 15:26:52 -05:00
Wilson Snyder
8130fed777
Fix pre/post_randomize on extended classes ( #6467 ).
2025-12-07 14:14:48 -05:00
Wilson Snyder
0e3dffa5d1
Commentary: Changes update
2025-12-07 14:12:11 -05:00
Wilson Snyder
ba9d6df20c
Fix class-in-class extends with parameters ( #6773 ).
2025-12-07 13:38:25 -05:00
Wilson Snyder
4b02e32314
Fix DPI under param class ( #6733 partial)
2025-12-07 13:30:54 -05:00
Wilson Snyder
7946e9d197
Internals: Add some missing cfunc attribute dumps
2025-12-07 13:25:37 -05:00
Wilson Snyder
35a794687b
Internals: Add some additional dangling checks. No functional change intended
2025-12-07 13:25:37 -05:00
Geza Lore
587f363e03
Build Verilator itself with -fno-exceptions ( #6774 )
2025-12-07 08:25:43 -05:00
Matthew Ballance
0e03ab2a57
Fix crash when super.new() called without a base class ( #6772 )
2025-12-06 18:08:51 -05:00
Wilson Snyder
040484cc3f
Fix extern function that returns parametrized class ( #4924 ).
2025-12-06 16:16:06 -05:00
Geza Lore
5278f42025
Fix Dfg assertion on out of bounds selects
2025-12-06 15:31:27 +00:00
em2machine
c2cba8bfc6
Fix localparam type assignment from interface type parameters ( #6637 ) ( #6732 )
2025-12-06 09:42:59 -05:00
github action
ba3794a495
Apply 'make format'
2025-12-06 14:12:22 +00:00
Dan Ruelas-Petrisko
8c252952db
Support config instance clauses ( #5891 partial) ( #6745 )
2025-12-06 09:11:20 -05:00
Geza Lore
18dd44e970
Fix --lib-create with multi-bit clocks ( #6759 )
2025-12-05 15:21:35 +00:00
Geza Lore
e2c05ae15e
Fix select assignment expansion ( #6757 )
2025-12-05 10:07:53 -05:00
Geza Lore
df7726c40d
Fix Dfg reusing volatile variables
...
Forceable/externally written variables cannot be used as the canonical
result variable for a Dfg value as the variables value can be
inconsistent with its Dfg drivers (e.g. when forced).
2025-12-05 14:12:36 +00:00
Wilson Snyder
cfada791e6
Internals: Fix leak in covergroup, last commit
2025-12-05 04:14:24 -05:00
Wilson Snyder
2f4b178957
Support parsing only of covergroup.option.option_name
2025-12-04 21:55:55 -05:00
Ryszard Rozak
f2c2daa017
Throw UNSUPPORTED on force / release statements with complex select expressions ( #6755 )
2025-12-04 14:06:47 +01:00
Yilou Wang and Udaya Raj Subedi
1fc86fd2f1
Fix randomize called within func/task ( #6144 ) ( #6753 )
...
Co-authored-by: Udaya Raj Subedi <[email protected] >
2025-12-04 07:18:07 -05:00
Yilou Wang
22cd9bcadc
Support rand_mode in global constraint gathering ( #6740 ) ( #6752 )
2025-12-04 07:16:03 -05:00
Wilson Snyder
4426aff3d3
Internals: Fix coredump when dump with bad null enum itemp()
2025-12-03 21:35:59 -05:00
Wilson Snyder
7957701db8
Suppress unsupported for unused constant sequences
2025-12-03 21:23:48 -05:00
Wilson Snyder
4dedfbfe08
Commentary: Changes update
2025-12-03 21:21:42 -05:00
Matthew Ballance
3fc70b61d0
Fix internal fault when cross-class calling with DPI ( #6735 ) ( #6742 )
...
Signed-off-by: Matthew Ballance <[email protected] >
2025-12-02 22:05:59 -05:00
Wilson Snyder
9a1dba357e
Fix randsequence return inside function
2025-12-02 17:54:40 -05:00
Geza Lore
60fe2c873c
Optimize trace initialization code size ( #6749 )
2025-12-02 07:19:45 -05:00
Yilou Wang
e25c66de07
Support complex std::randomize patterns ( #6736 ) ( #6737 )
2025-12-01 16:26:16 -05:00
Wilson Snyder
b9b6eb61d9
Support randsequence ( #6131 )
2025-11-30 09:04:42 -05:00
Geza Lore
35615c268b
Fix Dfg independent bits analysis performance ( #6731 ) ( #6743 )
...
This removes a factor N from DfgBreakCycles, by doing the necessary data
flow analysis for the entire graph up front, and resulting the result for
all subsequent cycle fixups in the current iteration.
Fixes #6731
2025-11-29 19:01:22 +00:00
Wilson Snyder
287d8aef9e
Fix duplicate member on interface always
2025-11-29 10:24:37 -05:00
Wilson Snyder
1583c79a8a
Add assert ( #6740 partial)
2025-11-28 09:55:19 -05:00
Jonathan Drolet
f2e05bc0b7
Support unpacked struct in localparam ( #6053 partial) ( #6708 )
2025-11-27 23:17:18 +04:00
Artur Bieniek
2c5ff3f63f
Fix fork scheduling semantics ( #6730 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-11-26 15:52:53 +03:00
Yilou Wang
f4654a451b
Support array reference arguments into 'std::randomize()' ( #6384 ) ( #6719 )
2025-11-26 15:50:24 +03:00
Wilson Snyder
8293a8d035
Fix multitop cross references ( #6699 ).
2025-11-26 06:09:29 -05:00
Wilson Snyder
9155e2529b
Internals: Add AstLoop statement constructor. No functional change.
2025-11-25 09:05:42 -05:00
Wilson Snyder
e65f052abf
Commentary: Changes update
2025-11-25 09:05:33 -05:00
Geza Lore
7cfe9b5356
Fix --prof-exec using --lib-create
2025-11-25 10:08:03 +00:00
Geza Lore
d2ce5e62e7
Internals: Factor out --prof-exec section handling, add debug code
2025-11-25 10:08:03 +00:00
dependabot[bot]
9e37a09765
Bump actions/create-github-app-token from 2.1.4 to 2.2.0 ( #6729 )
2025-11-24 10:10:39 -05:00
dependabot[bot]
a3f388dd14
Bump actions/checkout from 5 to 6 ( #6728 )
2025-11-24 10:09:59 -05:00
Christian Hecken
c267a67f68
Tests: Fix make_main traceEverOn after eval ( #6727 )
2025-11-24 07:37:49 -05:00
Wilson Snyder
201416a0c7
Tests: Misc cleanups
2025-11-23 17:14:44 -05:00
Wilson Snyder
840c8f5782
Internals: Auto-set useRandimizeMethods if new a AstRandCase. No functional change
2025-11-23 17:14:19 -05:00
Geza Lore
6ab8d56993
Optimize combinational loops through sign extension ( #6724 )
2025-11-23 19:26:51 +00:00
Wilson Snyder
07056b11f5
Tests: add driver.py test.priority settings ( #6725 )
2025-11-23 11:57:08 -05:00
Geza Lore
6a83112380
Internals: Fix minor macOS issues
2025-11-23 11:04:51 +00:00
github action
28c78d3f9a
Apply 'make format'
2025-11-23 01:21:13 +00:00
Dan Ruelas-Petrisko
9346b98cb6
Support config cell clauses ( #6717 )
2025-11-22 20:17:17 -05:00
Geza Lore
ea9cc0e4c1
Set runtime worker thread stack sizes on macOS ( #6721 )
...
The default stack size of secondary thread on macOS is 512k, which is
too small even to run some of the tests. Unfortunately changing the
thread size must happen via `pthred_create` attributes, which are not
available via the c++ threading APIs. Use pthreads directly on macOS,
and set the worker thread sizes to the same as the main thread stack.
2025-11-22 20:13:46 -05:00
Michael Bikovitsky
9632c614be
Fix X handling in UDPs ( #6723 )
2025-11-22 20:09:49 -05:00
Wilson Snyder
087ca15138
Support clocking output delay 1step ( #6681 ).
2025-11-22 17:40:40 -05:00
Wilson Snyder
24117bc599
Internals: Add format-bash make rule (not in automatic format)
2025-11-22 12:30:29 -05:00
Wilson Snyder
3ab21332c9
Internals: Add some missing Python files to lint
2025-11-22 12:22:39 -05:00
Wilson Snyder
44102de362
Tests: Rename control files to .vc. No test function change.
2025-11-22 12:09:22 -05:00
Wilson Snyder
91a59bbcc5
Documentation: Adapt format suggested by docstrfmt
2025-11-22 10:59:38 -05:00
Geza Lore
7c09985695
Tests: Fix t_dpi_arg_inout_unpack
2025-11-22 14:44:20 +00:00
Geza Lore
602e82a3b7
Internals: Avoid argparse.FileType deprecated in Python 3.14
2025-11-22 09:47:11 +00:00
Geza Lore
259365d408
Commentary: Changes update
2025-11-22 08:55:47 +00:00
Wilson Snyder
4cc4ff3e07
Commentary: Fix some .rst style issues
2025-11-21 22:25:03 -05:00
Wilson Snyder
0e8ec49cf6
Internals: format-yaml
2025-11-21 20:21:13 -05:00
Wilson Snyder
dabfb7291b
CI: Pin gsersemi version
2025-11-21 20:07:32 -05:00
Wilson Snyder
86004fb582
Internals: Group the format makefile rules. No rule change.
2025-11-21 20:02:46 -05:00
Wilson Snyder
6bba9f6c40
Internals: Defer interface typedefs, and add more tests ( #3441 tests)
2025-11-21 19:42:22 -05:00
Wilson Snyder
7e3cab8e5d
Commentary: Changes update
2025-11-21 19:39:51 -05:00
Igor Zaworski
98d0eac149
Fix of deleting linked node in V3Randomize ( #6718 )
...
Signed-off-by: Igor Zaworski <[email protected] >
2025-11-21 07:07:50 -05:00
Jakub Wasilewski
0b8c369740
Add sc_biguint pragma ( #6712 )
2025-11-20 17:08:59 -05:00
github action
0703159dbc
Apply 'make format'
2025-11-20 11:39:49 +00:00
Dan Ruelas-Petrisko
a4e901135b
Support config default liblist ( #6714 )
2025-11-20 06:38:46 -05:00
Dan Ruelas-Petrisko
7edf6d4749
Support --top specifying config name ( #6710 )
2025-11-19 20:23:02 -05:00
Yilou Wang
00988aed70
Support General Global Constraints ( #6709 ) ( #6711 )
2025-11-19 11:08:42 -05:00
Christian Hecken and Christian Hecken
edb84f3776
Tests: Add --gdbsim to iverilog with use_libvpi ( #6701 )
...
Co-authored-by: Christian Hecken <[email protected] >
2025-11-17 07:29:45 -05:00
Christian Hecken
5ef235b5ef
Tests: Add v_flags, XRUN define to xrun run flags ( #6703 )
2025-11-17 05:50:02 -05:00
Wilson Snyder
e61012e30d
Improve class extends error format
2025-11-16 21:00:13 -05:00
Wilson Snyder
84173048d2
Internals: Fix hasing node informational on AstCaseItem
2025-11-16 18:37:58 -05:00
Wilson Snyder
eb6ce0799c
Tests ( #6698 testcase only)
2025-11-16 17:16:21 -05:00
Wilson Snyder
382d90e03e
Makefile: Hide deplist echo
2025-11-16 17:16:14 -05:00
Wilson Snyder
19d5adcbdf
Commentary: Changes update
2025-11-16 17:13:49 -05:00
Wilson Snyder
03e5c3b2ff
Tests: Reindent some tests. No functional change.
2025-11-16 17:13:01 -05:00
github action
59bc4cf66b
Apply 'make format'
2025-11-16 03:53:48 +00:00
Jean-Nicolas Strauss
6454a8802e
Fix stream operator widening ( #6693 ) ( #6697 )
2025-11-15 22:52:52 -05:00
Yilou Wang
048c97f0ae
Support std::randomize(){...} ( #4706 ) ( #6573 )
2025-11-14 14:32:01 -05:00
Ryszard Rozak
f32095dd17
Support constexpr cycle delay in sequences ( #6691 )
2025-11-14 13:48:46 +01:00
Pawel Kojma
0dce8feead
Support parsing of dotted bins_expression ( #6683 )
2025-11-14 06:41:46 -05:00
Geza Lore
43975bcbdd
Optimize $past delayed variable reuse ( #6689 )
...
As the TODO in the original code suggested, we can re-use delayed values
of expressions if they appear in multiple $past calls.
2025-11-13 17:04:50 +00:00
Geza Lore
a1056c6ae9
Add -param/-port options to public_flat* control directives ( #6685 )
2025-11-13 06:59:02 -05:00
Wilson Snyder
5c0ad5bd1f
Internals: cppcheck fixes. No functional change. ( #6687 )
2025-11-12 18:54:22 -05:00
Wilson Snyder
67094f6a88
Tests: Disable t_udp_sequential until fix ( #6056 workaround)
2025-11-12 18:52:17 -05:00
Wilson Snyder
7db8bc84aa
Tests: Add more 'config' unsupported tests ( #5891 partial)
2025-11-12 18:37:09 -05:00
Geza Lore
158f51fb54
Optimize functions reading external parameters as pure ( #6684 )
2025-11-12 08:27:42 -05:00
Geza Lore
0dc9f779f8
Add -fno-inline-funcs-eager option to disable excessive inlining ( #6682 )
2025-11-11 21:46:19 +00:00
Geza Lore
c5f8656aa0
Fix bounds checking in non-inlined function ( #6677 )
2025-11-11 06:47:49 -05:00
Wilson Snyder
eb40c24b78
Tests: Rename tests to proper categories
2025-11-10 20:56:38 -05:00
Todd Strader
34f63396cb
Fix free collision ( #6675 )
2025-11-10 16:44:41 -05:00
Geza Lore
8e35c81399
Fix --expand-limit not respected for expressions ( #6670 )
2025-11-10 17:18:33 +00:00
Pawel Kojma
0062a422a4
Support #1step delay as statement ( #6671 )
2025-11-10 09:39:33 -05:00
Artur Bieniek
19bbeb24a6
Fix large array initialization ( #6669 )
2025-11-10 09:19:08 -05:00
Geza Lore
6e05361318
Tests: Add case for bind into parametrised hier_block
...
Using `bind` into a parametrized hier_block used to be broken due to name
mangling, but was 'unintentionally' fixed by
916a89761e . Adding test to avoid
regressions.
2025-11-10 12:32:10 +00:00
Wilson Snyder
fbb195e054
Tests: Add UVM 2020-3.1 hello world
2025-11-09 15:02:22 -05:00
Wilson Snyder
c87a3e92fc
Commentary: Changes update
2025-11-09 14:50:31 -05:00
Geza Lore
c7ff73a083
Add --unroll-limit option ( #6654 ) ( #6668 )
2025-11-09 12:46:25 -05:00
Geza Lore
f4086496cb
Internals: Refactor file handling in EmitC* ( #6667 )
...
Combined the 3 various APIs used in EmitC* passes to handle file
opening/splitting into a single one. This removes a lot of copy paste
and makes everything consistent.
All C++ file handling goes through `EmitCBaseVisitor` using the
`openNewOutputHeaderFile`, `openNewOutputSourceFile` and
`closOutputFile` methods.
To emit a new kind of file, always derive a new class from
`EmitCBaseVisitor`, and use the above APIs, they will take care of
everything else in a consistent matter.
Subsequently also removed V3OutSCFile, and instead included
verilated_sc.h (which included the systemc header itself) in the two
files that need it (the primary model header, and the root module
header).
Functional changes:
- The PCH header did not use to have a corresponding AstCFile. Now it
does, though this makes no difference in the output
- All 'slow' sources now have '__Slow' in the name automatically (the
only one missing was for the ConstPool files)
Rest of the output is identical except for the header line now being
present in all generated C++ files.
2025-11-09 17:41:13 +00:00
Paul Swirhun and Paul Swirhun
aaafa6e8df
Fix local interface parameter hierarchical access ( #6661 ) ( #6666 )
...
Co-authored-by: Paul Swirhun <[email protected] >
2025-11-09 10:48:55 -05:00
Geza Lore
107776f324
Optimize repeated function call during symbol table init ( #6665 )
2025-11-08 16:48:00 -05:00
Wilson Snyder
c493982511
Spelling fixes
2025-11-08 16:09:45 -05:00
Wilson Snyder
234b15a3e6
Commentary: Changes update
2025-11-08 16:09:24 -05:00
Wilson Snyder
78d27842cf
Internals: Recogize "fixes" strings in log-changes
2025-11-08 13:56:21 -05:00
github action
c3cd379fd5
Apply 'make format'
2025-11-08 15:57:16 +00:00
Geza Lore
8ad8d4f807
Fix long C++ compilation due to VerilatedScope constructors ( #6664 )
...
The Syms class can contain a very large number of VeriltedScope
instances if `--vpi` is used, all of which need a call to the default
constructor in the constructor of the Syms class. This can lead to very
long compilation times, even without optimization on some compilers.
To avoid the constructor calls, hold VeriltedScope via pointers in the
Syms class, and explicitly new and delete them in the Syms
constructor/destructor. These explicit new/delte can then be
automatically split up into sub functions when the Syms
constructor/destructor become large.
Regarding run-time performance, this should have no significant effect,
most interactions are either during construction/destruction of the Syms
object, or are via pointers already. The one place where we used to
refer to VerilatedScope instances is when emitting an AstScopeName for
things like $display %m. For those there will be an extra load
instruction at run-time, which should not make a big difference.
Patch 3 of 3 to fix long compile times of the Syms module in some
scenarios.
2025-11-08 15:56:15 +00:00
Geza Lore
ec3c9832de
Fix crash on Dfg driver lookup
...
Fixes #6649
2025-11-08 13:55:56 +00:00
Geza Lore
3b7ddce207
Optimize run-time symbol table construction of public variables ( #6663 )
...
Follow up from #6662 `VerilatedScope::varInsert` can do its work in one
pass, no need to emit it twice.
2025-11-08 13:29:44 +00:00
Geza Lore
71dcf30c1f
Do not include redundant headers in Syms implementation files
...
These are all available through the PCH
2025-11-08 10:36:41 +00:00
Geza Lore
0f96bd0f4d
Fix splitting of Syms constructor/destructor bodies ( #6662 )
...
Splitting of the Syms constructor/destructor were a bit arbitrarily
enforced with some parts splitable, while others not. There was also an
issue that even if the constructor and destructor bodies were split, we
would still end up with both in the same file that was double the size of
the intended split limit.
To fix, first all statements required in the Syms constructor and
destructor are gathered into a vector, then if the total number of
statements required for both is bigger than the split limit, the
implementations are split into sub-functions, one per file, as before,
ensuring that none of the functions are bigger than the split limit.
Also add __Slow suffix to the names of the files.
Patch 2 of 3 to fix long compile times of the Syms module in some
scenarios.
2025-11-08 10:36:12 +00:00
Geza Lore
2fabf50801
Use explicit ctor/dtor functions for VerilatedModules ( #6660 )
...
In order to avoid long compile times of the Syms constructor due to
having a very large number of member constructor sto call, move to using
explicit ctor/dtor functions for all but the root VerilatedModule. The
root module needs a constructor as it has non-default-constructible
members. The other modules don't.
This is only part of the fix, as in order to avoid having a default
constructor call the VerilatedModule needs to be default constructible.
I think this is now true for modules that do not contain strings or
other non trivially constructible/destructible variables.
Patch 1 of 3 to fix long compile times of the Syms module in some
scenarios.
2025-11-07 19:57:10 +00:00
github action
eafad9742a
Apply 'make format'
2025-11-07 13:14:00 +00:00
Geza Lore
0b0e103fde
Fix ccache-report with PCH files
2025-11-07 09:41:23 +00:00
Geza Lore
9d74984163
Fix non-deterministic output when splitting Syms file
2025-11-06 15:46:14 +00:00
Bartłomiej Chmiel
5adecb9fa3
Support multi-expression sequences ( #6639 )
2025-11-06 08:42:27 -05:00
Geza Lore
f7e12e9219
Fix slow compilation of generated sampled value code ( #6652 )
...
For handling $past and similar functions, we used to collect sampled
values of variables at the beginning of the main _eval function. If we
have many of these, this can grow _eval very large which can make C++
compilation very slow. Apply usual fix of emitting the necessary code in
a separate function and then splitting it based on size.
2025-11-06 13:31:40 +00:00
Todd Strader
47b52800bf
Fix expression coverage of system calls ( #6592 )
2025-11-06 08:23:35 -05:00
Christian Hecken
100c831474
Tests: Fix Icarus vvp execution with use_libvpi ( #6648 )
2025-11-05 13:41:53 -05:00
Geza Lore
cb5f038060
Internals: Optimzie unlinking rest of list after head (tail) ( #6643 )
...
AstNode::unlinkFrBackWithNext is O(n) if the subject node is not the
head of the list. We sometimes want to unlink the rest of the list
starting at the node after the head (e.g.: in
V3Sched::util::splitCheck), this patch makes that O(1) as well.
2025-11-05 15:55:30 +00:00
Geza Lore
a35d4a4b4b
Add memory usage statistics on macOS ( #6644 )
...
Add memory usage statistics on macOS
2025-11-05 15:45:35 +00:00
Ryszard Rozak
96ece751fa
Internals: Simplify release handling. No functional change intended ( #6647 )
2025-11-05 10:20:18 -05:00
Geza Lore
4404978765
Fix command line statistics with --stats ( #6645 ) ( #6646 )
...
Fixes #6645
2025-11-05 14:59:25 +00:00
Yilou Wang
0853aa7515
Support basic global constraints ( #6551 ) ( #6552 )
2025-11-05 07:14:03 -05:00
github action
574c69c092
Apply 'make format'
2025-11-05 10:50:31 +00:00
Jens Yuechao Liu
e2f5854088
Fix slice memory overflow on large output arrays ( #6636 ) ( #6638 )
2025-11-05 05:48:22 -05:00
Geza Lore
fe1a9e9ea7
Internals: Cleanup V3EmitCSyms ( #6635 )
2025-11-04 18:00:26 -05:00
Todd Strader
94d0513bc7
Don't pick initial random values for verilator-created variables ( #6611 )
2025-11-04 16:11:53 -05:00
Todd Strader
2c01aff2b3
Fix expression short circuiting ( #6483 )
2025-11-04 10:34:58 -05:00
Pawel Kojma
5d5798b4af
Fix parsing of with clause inside covergroups ( #6618 )
2025-11-04 09:12:30 -05:00
Artur Bieniek
8eed4e32ba
Support this.randomize() with constraints ( #6634 )
2025-11-04 08:28:42 -05:00
Wilson Snyder
ea75163567
Fix determining Verilator revision when within git submodules without tags.
2025-11-03 19:59:59 -05:00
Wilson Snyder
1d9c5c2c6b
Fix determining Verilator revision when within git submodules without tags.
2025-11-03 18:36:20 -05:00
Wilson Snyder
c299b71677
Commentary: Changes update
2025-11-03 18:27:18 -05:00
Krzysztof Bieganski
0eaa9ed144
Fix --timing with --x-initial-edge ( #6603 ) ( #6631 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-11-03 09:39:23 -05:00
Geza Lore
faaa2db844
Fix merging of impure assignments in gate optimization ( #6629 ) ( #6630 )
2025-11-03 07:29:39 -05:00
Geza Lore
d3ca79368c
Internals: Replace AstMTaskBody with AstCFunc( #6280 ) ( #6628 )
...
AstMTaskBody is somewhat redundant and is problematic for #6280 . We used
to wrap all MTasks in a CFunc before emit anyway. Now we create that
CFunc when we create the ExecMTask in V3OrderParallel, and subsequently
use the CFunc to represent the contents of the MTask. Final output and
optimizations are the same, but internals are simplified to move
towards #6280 .
No functional change.
2025-11-03 06:32:03 +00:00
Geza Lore
d066504bb9
Optimize away calls to empty functions ( #6626 )
2025-11-02 16:11:02 -05:00
Wilson Snyder
611ffbe04e
devel release
2025-11-02 11:18:20 -05:00
Wilson Snyder
184f8f7920
Version bump
2025-11-02 11:12:46 -05:00
Wilson Snyder
89f0e1def0
Commentary
2025-11-02 10:48:48 -05:00
Wilson Snyder
d49697a85f
Tests: Redo uvm test and package to be version based and use uvm_info
2025-11-02 10:46:16 -05:00
Wilson Snyder
c801237ce8
Add --preproc-defines.
2025-11-01 23:27:43 -04:00
Wilson Snyder
1d69c18e33
Internals: Fix verilated.mk duplicate rule
2025-11-01 23:22:08 -04:00
Wilson Snyder
e089817951
Tests: Reanme dump test
2025-11-01 22:05:52 -04:00
Wilson Snyder
d4aa00dbeb
Change --preproc-comments to be new name of --pp-comments option.
2025-11-01 21:59:16 -04:00
Wilson Snyder
e6cdaf112c
Internals: Add --dump-inputs to make __inputs without needing --debug
2025-11-01 20:34:06 -04:00
Wilson Snyder
8750cdac73
Update UVM 1800.2 2017-1.1 waivers
2025-11-01 16:34:31 -04:00
Wilson Snyder
2b8c9a1cff
Internals: Remove mis-merged duplicate Makefile targets
2025-11-01 14:19:29 -04:00
Wilson Snyder
cd8af21915
Add lint-py type checking using mypy
2025-11-01 14:15:39 -04:00
Wilson Snyder
782fe1daf2
Internals: Add more python strict typing. No functional change intended
2025-11-01 14:14:56 -04:00
Wilson Snyder
5847b105a5
Internals: Run format-make
2025-11-01 14:12:47 -04:00
Wilson Snyder
330b2589ed
Internals: Run format-yaml
2025-11-01 14:11:47 -04:00
Wilson Snyder
76ec35a8f6
Internals: Move max_procs to VtOs package. No test change intended.
2025-11-01 12:17:22 -04:00
Wilson Snyder
00ac706f67
Commentary: Changes update
2025-11-01 11:46:00 -04:00
Geza Lore
2e502aead8
Internals: Make all scheduling region use a single trigger vector. ( #6620 )
...
The 'act' region used to have 2 trigger vectors ('act' and 'pre'), now
it uses a single "extended" trigger vector where the top bits are what
used to be the used bits in the 'pre' trigger vector. Please see the
description above `TriggerKit`. Also move the extra triggers from the
low end to the high end in the trigger vectors.
2025-11-01 15:43:20 +00:00
Paul Swirhun and Paul Swirhun
e27613ed45
Fix interface parameter access in parameter map ( #6587 ) ( #6621 ) ( #6623 )
...
Co-authored-by: Paul Swirhun <[email protected] >
2025-10-31 23:06:26 -04:00
Paul Swirhun and Paul Swirhun
847de990de
Tests: Fix sched_getaffinity fallback for MacOS ( #6622 ) ( #6624 )
...
Co-authored-by: Paul Swirhun <[email protected] >
2025-10-31 21:55:45 -04:00
Paul Swirhun and Paul Swirhun
10935ee031
Fix HIERPARAM to be suppressed for interface ports ( #6587 ) ( #6609 )
...
Co-authored-by: Paul Swirhun <[email protected] >
2025-10-31 15:49:30 -04:00
Geza Lore
922223a9c3
Internals: Replace VlTriggerVec with unpacked array ( #6616 )
...
Removed the VlTriggerVec type, and refactored to use an unpacked array
of 64-bit words instead. This means the trigger vector and its
operations are now the same as for any other unpacked array. The few
special functions required for operating on a trigger vector are now
generated in V3SchedTrigger as regular AstCFunc if needed.
No functional change intended, performance should be the same.
2025-10-31 18:29:11 +00:00
Wilson Snyder
08330f5fe2
Fix constant-arrayed instance parameters ( #6614 ).
2025-10-30 19:18:47 -04:00
github action
884b48578d
Apply 'make format'
2025-10-30 22:42:18 +00:00
Wilson Snyder
85119cb32e
Fix waiving messages with empty contents ( #6610 ).
2025-10-30 18:41:18 -04:00
Wilson Snyder
d81da042cd
Tests: Rename tests to match warning name
2025-10-30 18:32:25 -04:00
Wilson Snyder
1e08c912d7
Commentary: Changes update
2025-10-30 18:26:46 -04:00
Geza Lore
da1bca5c9b
CI: Add BlackParrot to RTLMeter runs ( #6615 )
2025-10-30 20:34:31 +00:00
Geza Lore
da7dd1fa16
Internals: Move roundUpToMultipleOf into vlstd::
2025-10-30 15:58:49 +00:00
Geza Lore
cc910fa4c4
Internals: Clear 'isPure' cache in V3Depth
2025-10-30 15:18:47 +00:00
Geza Lore
a4c5d2e29c
Fix ENUMVALUE error when overriding enum param from CLI using -G/-pvalue
2025-10-30 12:04:12 +00:00
Geza Lore
2a0b331ee3
Fix -G and -pvalue with --hierarchical.
...
Properly strip these from the hier_block builds, but not from the top
level wrapper. Improve existing test to cover.
2025-10-30 12:04:12 +00:00
Todd Strader
af2771e901
Fix function call expression coverage ( #6589 )
2025-10-29 19:26:46 -04:00
Geza Lore
287fdb7312
Fix mis-ignoring virtual interface member triggers ( #5116 reopened) ( #6613 )
2025-10-29 17:27:15 -04:00
Todd Strader
50b89ac9b5
Tests: Add --top-filename to driver.py ( #6612 )
2025-10-29 16:45:10 -04:00
Igor Zaworski
28dd90e92d
Fix side effects for improved function/task/process purity ( #6559 )
2025-10-29 14:27:31 -04:00
Geza Lore
1f04cd868c
CI: Run some RTLMeter cases with --hierarchical ( #6605 )
2025-10-28 20:48:08 -04:00
Geza Lore
04e39168c4
CI: Disable ccache on macOS ( #6607 )
2025-10-28 18:11:04 +00:00
Geza Lore
ffbb3229a8
Change default thread pool sizes to respect processor affinity ( #6604 )
...
Instead of using the number of processors in the host, use the number of
processors available to the process, respecting cpu affinity
assignments. Without pthreads, fall back and use the number of
processors in the host as before.
This is now applied everywhere so runing `nuamctl -C 0-3 verilator` or
`numactl -C 0-3 Vsim` should behave as if the host has 4 cores (e.g.
like in CI jobs)
2025-10-28 18:10:40 +00:00
Geza Lore
5642de432b
Tests: Add tests for -fno-dfg-peephole* ( #6606 )
...
Fixes -fno-dfg-peeophole-right-leaning-assoc.
Fixes #6601
2025-10-28 17:59:11 +00:00
Geza Lore
766514bdcf
Fix --hierarchical with --binary ( #6602 )
...
Used to fail with "can't use --exe with --lib-create", and we didn't
have any tests for it before. (The equivalent --main --exe --build
--timing works)
2025-10-28 17:02:21 +00:00
Wilson Snyder
b652009235
Internals: Fix name of some static and thread variables. No functional change.
2025-10-27 20:49:41 -04:00
Wilson Snyder
9513edfdd6
Fix processor parsing static position ( #6598 )
2025-10-27 20:44:55 -04:00
Wilson Snyder
f9adc3461d
Tests: Fix coverage holes from t_dist_docs_options
2025-10-27 19:16:53 -04:00
Wilson Snyder
1a1862352a
Commentary: Changes update
2025-10-27 19:14:57 -04:00
Geza Lore
cddbb5e095
Internals: Split some code from V3Sched.cpp
...
Add V3SchedUtil.cpp that contains common small utility functions.
Add V3SchedTrigger.cpp that contains functionality building the trigger
mechanism code.
No functional change, just code movement. Prep for some further work.
2025-10-27 21:18:47 +00:00
dependabot[bot]
151b17ac82
CI: Bump actions/upload-artifact from 4 to 5 ( #6600 )
2025-10-27 13:46:11 -04:00
dependabot[bot]
fafe3737a2
CI: Bump actions/download-artifact from 5 to 6 ( #6599 )
2025-10-27 13:04:36 -04:00
Geza Lore
60c532908e
Internals: Create if statements for triggers during scheduling ( #6280 ) ( #6581 )
...
The AstIf nodes conditional on events being triggered used to be created
in V3Clock. Now it is in V3Sched*, in order to avoid having to pass
AstActive in CFunc or MTask bodies. No functional change intended, some
improved optimization due to simplifying timing triggers that were
previously missed, also fixes what seems like a bug in the original
timing commit code.
2025-10-27 10:41:30 +00:00
Geza Lore
6ec5c85bea
Fix incorrectly resuming process waiting on multiple events ( #6597 )
...
This fixes the bug discovered with #6581 .
2025-10-26 15:41:49 +00:00
Geza Lore
1efec71437
Internals: Remove unused VCMethod::SCHED_TRIGGERED
2025-10-26 10:34:12 +00:00
Geza Lore
f8ea1d3490
Testing: Ignore t_flag_debugi9 in make test-snap
2025-10-26 09:55:24 +00:00
Geza Lore
e00a919269
Tests: Fix race condition in t_flag_csplit
2025-10-26 09:47:23 +00:00
Geza Lore
d236e4c054
Internals: Cleanup scheduling
...
sched_forks.tree used to be dumped before sched.tree, while it's
basically after, so move transformForks in to a separate pass. Also
extract inlined visitors in V3SchedTiming.
2025-10-26 09:47:09 +00:00
Geza Lore
388fc863f4
Internals: Enable VL_DBG_AS in asan builds
2025-10-26 09:00:58 +00:00
Geza Lore
bfb20397d9
Internals: Fix fallout from #6588
2025-10-26 08:48:26 +00:00
Geza Lore
7225c902ee
Fix V3Life eliminating assignments across timing controls ( #6593 ) ( #6596 )
...
For both JumpBlock and Loop, record if they contain a timing control and
do not eliminate assignments across them if so.
Fixes #6593
2025-10-25 21:59:21 +02:00
Geza Lore
0ead54b17e
Support dotted access to ports of a direct hier_block instance. ( #6595 )
...
Accessing the ports of hier_block instances directly under the current
hier_block (or top level) work just fine (the heir stub .sv has them),
and this can simplify hooking up dotted references into hier blocks:
push part of the reference under the hier block into the hier block, and
wire it to a port, then resolve the rest of the reference to the port of
the instance.
2025-10-25 18:39:21 +01:00
Wilson Snyder
68b227065e
Tests: Fix coverage holes from t_dist_docs_options
2025-10-25 11:00:25 -04:00
Wilson Snyder
bd4743f420
Tests: Rename some optimization tests
2025-10-25 10:57:39 -04:00
Wilson Snyder
dd76a5b8ba
Add t_dist_docs_options checks, and fix related docs and coverage issues
2025-10-25 10:53:24 -04:00
Wilson Snyder
e21dd04159
Tests: Rename test_regress/t/t_dist_docs_options.py
2025-10-25 10:53:24 -04:00
Geza Lore
92b490f2f7
Fix excessive logic replication in Dfg circular driver tracing ( #6561 ) ( #6594 )
...
Cache already traced vertices and reuse them on subsequent traces. This
avoids a potential combinatorial explosion in the size of the resulting
circuit.
2025-10-25 15:07:22 +01:00
Wilson Snyder
e732f656a9
Change verilator_difftree to return exit code 1 on mismatch, 2 on error.
2025-10-25 08:25:29 -04:00
Wilson Snyder
9f6719d28d
Fix segfault on type casts ( #6574 ).
2025-10-24 20:14:41 -04:00
Wilson Snyder
c1ecddf26a
Commentary: Changes update
2025-10-24 20:13:34 -04:00
Geza Lore
d864057a60
Internals: Refactor AstNodeBlock representation ( #6280 ) ( #6588 )
...
Internals: Refactor AstNodeBlock representation (#6280 )
AstNodeBlock now has 2 child lists: 'declsp' to hold declarations within
the block, and 'stmtsp' to hold the procedural statements.
AstBegin is then just a simple subtype of AstNodeBlock.
AstFork is a proper superset of AstNodeBlock (and also AstBegin), and
adds 'forksp' which hold the parallel statements. Having the sequential
'stmtsp' in AstFork is required to properly implement variable
initializers in fork blocks (IEEE 1800-2023 9.3.2), this makes that
clear, while also separating the non AstNodeStmt declarations
(for #6280 ). The actual fork branches in 'AstFork::forkps()' are all
AstBegin nodes. This is required as lowering stages will introduce
additional statements in each parallel branch. (We used to wrap AstFork
statements into AstBegin in 3 different places, now they always are
AstBegin and this is enforced via the type checker/V3Broken).
Also fixes incorrect disabling of forked processes from within the `fork`.
2025-10-24 14:00:07 +01:00
Bartłomiej Chmiel
65c5071246
Internals: Cleanup V3FuncOpt ( #6590 )
2025-10-24 07:42:13 -04:00
Christian Hecken
cc28b07dc1
Tests: Fix driver.py error for missing scenario ( #6586 )
2025-10-23 12:48:02 -04:00
Christian Hecken
bf2422b55b
Tests: Fix driver.py --xrun option raising error ( #6585 )
2025-10-23 12:47:05 -04:00
Geza Lore
d33da1ebb6
Internals: Refactor ForkVisitor ( #6280 )
...
Simplify, but otherwise no functional change. Prep for #6280 .
2025-10-23 16:37:31 +01:00
Geza Lore
21ef11099e
Tests: Fix trace file name in t_wrapper_context_fst
2025-10-23 16:25:27 +01:00
Geza Lore
f9c5db907a
Internals: Strengthen statement node types in parser ( #6280 )
2025-10-22 18:58:32 +01:00
Geza Lore
5ac345e09c
Internals: Add AstStmtPragma ( #6280 )
...
Trivial adaptor node to put AstPragma in AstNodeStmt position, which
will be required in various places. Also fix dumping of AstPragma.
2025-10-22 18:51:11 +01:00
Igor Zaworski
43373010dc
Add $cpure ( #6580 )
2025-10-22 06:18:27 -07:00
Geza Lore
cb3c2706a8
Internals: Remove funcLocal from 'fork' locals
2025-10-22 11:14:21 +01:00
Geza Lore
d65ba037a8
Internals: Simplify parsing of 'fork' blocks
2025-10-22 08:48:28 +01:00
Ryszard Rozak
e00403351c
Fix references to interfaces containing generate blocks ( #6579 )
2025-10-22 08:37:43 +02:00
Matt Stroud
6f055f84ce
Fix missing net type mappings in FST traces ( #6582 ) ( #6583 )
2025-10-21 21:07:51 -04:00
Geza Lore
cc77233902
Internals: AstExecGraph is an AstNodeStmt ( #6280 )
2025-10-21 17:35:22 +01:00
Geza Lore
ec91158130
Internals: Refactor AstCFunc internals ( #6280 ) ( #6578 )
...
- Delete 'finalsp'. It was used in one place, basically unnecessary and
safe to remove.
- Make 'argsp' a 'List[AstVar]'. This held before. It holds the function
argument and return variables.
- Replace 'intitsp' with 'varsp' and make it into 'List[AstVar]' to hold
the function local variables. This was most of its use before. The few
places we inserted statements here now moved into 'stmtsp' by
inserting at the front of the list.
2025-10-21 16:37:32 +01:00
Geza Lore
c471323601
Internals: Remove unused AstNode::swapWith
2025-10-21 12:41:50 +01:00
Geza Lore
8daae7336d
Internals: Remove redundant AstNode::addNextStmt
2025-10-21 12:41:50 +01:00
Geza Lore
cf275b6e58
Internals: Refactor text based Ast constructs ( #6280 ) ( #6571 )
...
Remove the large variety of ways raw "text" is represented in the Ast.
Particularly, the only thing that represents a string to be emitted in
the output is AstText.
There are 5 AstNodes that can contain AstText, and V3Emit will throw an
error if an AstText is encountered anywhere else:
- AstCStmt: Internally generated procedural statements involving raw
text.
- AstCStmtUser: This is the old AstUCStmt, renamed so it sorts next to
AstCStmt, as it's largely equivalent. We should never create this
internally unless used to represent user input. It is used for $c,
statements in the input, and for some 'systemc_* blocks.
- AstCExpr: Internally generaged expression involving raw text.
- AstCExprUser: This is the old AstUCFunc, renamed so it sorts next to
AstCExpr. It is largely equivalent, but also has more optimizations
disabled. This should never be created internally, it is only used for
$c expressions in the input.
- AstTextBlock: Use by V3ProtectLib only, to generate the hierarchical
wrappers.
Text "tracking" for indentation is always on for AstCStmt, AstCExpr, and
AstTextBlock, as these are always generated by us, and should always be
well formed.
Tracking is always off for AstCStmtUser and AstCExprUser, as these
contain arbitrary user input that might not be safe to parse for
indentation.
Remove subsequently redundant AstNodeSimpleText and AstNodeText types.
This patch also fixes incorrect indentation in emitted waveform tracing
functions, and makes the output more readable for hier block SV stubs.
With that, all raw text nodes are handled as a proper AstNodeStmt or
AstNodeExpr as required for #6280 .
2025-10-21 12:41:29 +01:00
Wilson Snyder
14e3448ba6
Fix with inside a with
2025-10-21 00:40:47 -04:00
Wilson Snyder
61de46cea2
Add --aslr and --no-aslr options.
2025-10-20 19:41:32 -04:00
Wilson Snyder
24e665f38f
Commentary: Changes update
2025-10-20 19:32:19 -04:00
Geza Lore
8f13bc0477
Improve conditional merging to preserve branch prediction
2025-10-20 20:01:48 +01:00
Geza Lore
f73dde6dd9
Fix hierarchical with parametrized instances under hier block ( #6572 )
2025-10-20 19:26:13 +01:00
Todd Strader
ffd7ec1007
Fix DFG synthesis non-determinism ( #6557 ) ( #6568 )
2025-10-20 16:16:36 +01:00
Bartłomiej Chmiel
9bd30baba4
Fix $finish inside fork blocks ( #6555 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-10-20 10:16:05 -04:00
Geza Lore
61c64e4a3b
Internals: Make AstCExpr always cleanOut ( #6280 ) ( #6570 )
...
There was exactly one place in V3Task, handling DPI arguments when we
relied on cleanOut of AstCExpr being false for masking. Made that code
do the relevant masking via a few new run-time functions, which also
eliminates some special cases in the relevant V3Task functions.
2025-10-19 09:44:33 +01:00
Geza Lore
4ef6f00423
Fix single element unpacked array DPI parameters
2025-10-18 17:21:21 +01:00
Igor Zaworski
5c412e5e81
Support impure expressions in inside ( #6562 )
2025-10-17 09:08:57 -04:00
Ryszard Rozak
af2327aaf4
Fix hierarchical references with parameterized modules and interfaces ( #5649 ) ( #6566 )
2025-10-17 09:06:46 -04:00
Igor Zaworski
96ed725278
Support case impure expressions ( #6563 )
2025-10-17 09:00:32 -04:00
Geza Lore
3d5d2db64b
Tests: Remove unused JSON dumps
...
These seem to have been accidentally comitted
2025-10-17 09:03:12 +01:00
Aleksander Kiryk
94525cae5d
Fix std::process::get_randstate to not affect random stability ( #6550 ) ( #6565 )
2025-10-16 21:11:07 -04:00
Geza Lore
982c7fb058
Remove obsolete DepSet from output file names ( #6564 )
2025-10-16 20:34:09 -04:00
Geza Lore
794247450f
Internals: Simplify AstScopeName ( #6280 )
...
Reduce reliance on AstText where not necessary.
2025-10-15 09:14:51 +01:00
Geza Lore
0c712d7c60
Internals: Refactor `systemc_* section handling ( #6280 )
2025-10-15 09:14:51 +01:00
Artur Bieniek
cefcf836fd
Fix signal code reporting ( #6554 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-10-14 07:04:53 -04:00
Geza Lore
eb53bca6fd
Internals: Make AstAssignW a procedural statement ( #6280 ) ( #6556 )
...
Initial idea was to remodel AssignW as Assign under Alway. Trying that
uncovered some issues, the most difficult of them was that a delay
attached to a continuous assignment behaves differently from a delay
attached to a blocking assignment statement, so we need to keep the
knowledge of which flavour an assignment was until V3Timing.
So instead of removing AstAssignW, we always wrap it in an AstAlways,
with a special `keyword()` type. This makes it into a proper procedural
statement, which is almost equivalent to AstAssign, except for the case
when they contain a delay. We still gain the benefits of #6280 and can
simplify some code. Every AstNodeStmt should now be under an
AstNodeProcedure - which we should rename to AstProcess, or an
AstNodeFTask). As a result, V3Table can now handle AssignW for free.
Also uncovered and fixed a bug in handling intra-assignment delays if
a function is present on the RHS of an AssignW.
There is more work to be done towards #6280 , and potentially simplifying
AssignW handing, but this is the minimal change required to tick it off
the TODO list for #6280 .
2025-10-14 09:05:19 +01:00
Wilson Snyder
958d096e7f
Improve some error message formats
2025-10-13 20:30:47 -04:00
Wilson Snyder
9dfc050fb5
Fix '' with multiple format strings
2025-10-13 19:47:08 -04:00
Wilson Snyder
b99b3d7b9c
Tests: Reformat t_display
2025-10-13 19:44:57 -04:00
Artur Bieniek
16fdd0e93c
Fiix fault on operations on uninitialized strings ( #6520 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-10-13 07:29:23 -04:00
Wilson Snyder
01157d414b
Optimize constant string arguments before Emit, and cleanup V3EmitV
2025-10-12 20:09:03 -04:00
Wilson Snyder
eae1e5bdf2
Internals/Tests: Cleanup some missing dev coverage items
2025-10-11 20:58:03 -04:00
Wilson Snyder
71941cc673
Fix incorrect nested interface-class error ( #6549 ).
2025-10-11 19:07:37 -04:00
Wilson Snyder
fac4ed49af
Commentary: Changes update
2025-10-11 19:05:44 -04:00
Wilson Snyder
8785086bc8
Internals/Tests: Add --debug-preproc-passthru to cleanup some missing dev coverage items
2025-10-11 14:15:04 -04:00
Wilson Snyder
6e8bd3da19
Internals/Tests: Cleanup some missing dev coverage items
2025-10-11 12:54:55 -04:00
Wilson Snyder
078275034d
Internals: Parse randsequence but still unsupported ( #6131 partial)
2025-10-11 10:47:46 -04:00
Bartłomiej Chmiel and Wilson Snyder
31e73f1645
Support simple cycle delay sequence expressions inside assertion properties ( #6508 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
2025-10-10 16:16:15 +02:00
Igor Zaworski
2ac7cf51a9
Optimization of typedef params ( #6543 ) ( #6547 )
2025-10-10 10:05:47 -04:00
Wilson Snyder
4f1d8a1b15
Tests: Revert bad expect test
2025-10-10 07:59:55 -04:00
Artur Bieniek
a7f4ff7b06
Tests: Set higher timeout with ASAN ( #6546 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-10-10 06:37:53 -04:00
Wilson Snyder
3027f67b6f
Internals/Tests: Cleanup some missing dev coverage items
2025-10-09 22:33:04 -04:00
Wilson Snyder
802ba0c2bf
Internals: Add assert to dev coverage exclusion
2025-10-09 22:33:04 -04:00
Wilson Snyder
41b05cb1f8
Fix intent error on quoted strings ( #6544 ).
2025-10-09 21:24:27 -04:00
Wilson Snyder
3306ed146b
Internals: Use multi-character puts. No functional change intended.
2025-10-09 21:23:11 -04:00
Wilson Snyder
fb4951d2df
Commentary: Changes update
2025-10-09 21:22:24 -04:00
Geza Lore
9dc0cf5a7c
Internals: Use a V3Graph for the hierarchical plan ( #6545 )
...
I stared this because the emitted makefiles for hierarchical verilation
were non-deterministic (iterating unordered_map indexed by pointers).
Then I realized that the V3HierPlan is just a dependency graph encoded
in a slightly idiosyncratic way. We do have a data structure to use for
that instead.
With that the output should always be deterministic + have nicer dumps.
2025-10-09 21:41:23 +02:00
Geza Lore
e63d486422
Internals: Fix coverage exclusion
2025-10-09 16:58:06 +01:00
Igor Zaworski
1a91ab02cf
Fix passing typedef value as parameter ( #6543 )
2025-10-09 10:08:06 -04:00
Geza Lore
7b4ad29260
Testing: Ignore non-deterministic tests in make test-snap
...
Added tests with expectedly unstable output to ignore list for
`make test-snap` and `make test-diff`.
2025-10-09 10:34:31 +01:00
Geza Lore
e33b24fad2
Fix Dfg circular driver tracing with partial assignments
2025-10-09 09:31:19 +01:00
Geza Lore
49c51af841
Deprecate '--make cmake' option ( #6540 )
2025-10-08 09:40:17 -04:00
Artur Bieniek
222a3655ba
[ #84482 ] Fix inconsistent force assignment ( #6541 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-10-08 09:39:50 -04:00
Geza Lore
c8c53f9a18
Tests: Remove sanitize option and parameter
...
Fixes #6536
2025-10-08 08:51:42 +01:00
Geza Lore
838b8a2bec
Internals: Remove dead code, fix or sign off coverage
...
Remove/fix/signoff uncontroversial code coverage holes. Also added a
couple TODOs that should be investigated at some point
2025-10-08 08:24:06 +01:00
Wilson Snyder
1a8f9f0483
Improve lint_off to allow multiple messages and comments ( #2755 partial).
2025-10-07 22:49:42 -04:00
Wilson Snyder
2631af977a
Tests: Update t_lint_historical.v
2025-10-07 22:44:39 -04:00
Wilson Snyder
165622a9e9
Add NORETURN warning on functions without return values ( #6534 ).
2025-10-07 21:06:11 -04:00
Wilson Snyder
f979e459e8
Add error on ranges with tristate values ( #6534 ).
2025-10-07 20:36:50 -04:00
Wilson Snyder
9d6f127a4e
Internals: Fix extra spaces in emit. No functional change.
2025-10-07 19:22:16 -04:00
Wilson Snyder
bfe39ce5bc
Fix --trace-max-width and increase to 4096. ( #2385 ).
2025-10-07 18:50:31 -04:00
Geza Lore
832f41f0fe
Internals: Hide CC make rules ( #6537 )
...
All code is built as C++ via CXX, but we still have some references to
CC. Trying to make sure we don't add plain C later by hiding the C
compiler. (So it's always enough to override CXX=... in configure)
2025-10-07 17:37:42 +01:00
Geza Lore
97707bdc72
CI: Run coverage job on 'pr: dev-coverage' label in PRs ( #6527 )
2025-10-07 17:03:13 +01:00
Bartłomiej Chmiel
888169571b
Fix memory leak for unsupported $past ( #6535 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-10-07 09:56:11 -04:00
Geza Lore
d7fbea62f9
CI: Notify PRs when coverage report is available
2025-10-07 12:58:21 +01:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
728f56e581
Bump actions/checkout from 4 to 5 ( #6533 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 09:12:28 +01:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1268a28e7b
Bump actions/upload-pages-artifact from 3 to 4 ( #6532 )
...
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact ) from 3 to 4.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases )
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
dependency-version: '4'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 09:12:03 +01:00
Wilson Snyder
717667034b
Fix loop exits on $finish
2025-10-06 19:19:15 -04:00
Wilson Snyder
5229ce8660
Fix error on circular structure typedef
2025-10-06 18:45:56 -04:00
Bartłomiej Chmiel
9f5d22b21f
Fix parsing of eventually[] and pexpr memory leaks ( #6530 )
...
* Fix parsing of eventually[]
* Fix parser memory leaks for pexpr
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-10-06 15:42:40 +02:00
Geza Lore
0280de11da
CI: Adjust reusable-build workflow parameters
...
Add an explicit 'sha' parameter to reusable-build, to define which
commit to build. This will be needed for PR coverage jobs. Consequently
use the 'archive' output from reusable-build to simplify retrieving the
resulting artifact in dependent jobs. Also fetch full history in
coverage builds.
2025-10-05 09:30:49 +01:00
Geza Lore
b4d064d166
CI: Deploy coverage reports to GitHub pages
2025-10-05 07:47:59 +01:00
Geza Lore
6dd52e1927
CI: Adjust codecov.io configuration
...
Disable statuses and PR comments, make precision and ranges match lcov
reports generated by 'make coverage-report', remove unnecessary
contents. Rename codecov.yml -> .codecov.yml
2025-10-05 07:10:04 +01:00
Geza Lore
29dacd3441
CI: Create and upload HTML coverage reports
2025-10-04 19:35:21 +01:00
Geza Lore
540e042221
CI: Add ability to generate patch coverage reports
2025-10-04 17:53:18 +01:00
Wilson Snyder
f09c30df35
Internals: Refector to create single V3Number::emitC. Fix some double emit issues ( #6528 ).
2025-10-04 07:23:13 -04:00
Geza Lore
a03d327e96
CI: Fix error on test failures
2025-10-03 19:58:03 +01:00
Todd Strader
defe282fe8
Fix always_ff on constant ( #6519 )
2025-10-03 13:16:12 -04:00
Geza Lore
ce0a05691b
Internals: Improve coverage flow ( #6526 )
...
See addes "Code coverage" section in docs/internals.rst
2025-10-03 17:18:24 +01:00
Geza Lore
62dbbbba85
Internals: Rename --enable-asan to --enable-dev-asan and related
2025-10-03 12:26:48 +01:00
Ryszard Rozak and Nikolai Kumar
2c74765246
Fix find_index methods of associative arrays ( #6525 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
Co-authored-by: Nikolai Kumar <[email protected] >
2025-10-02 12:05:24 -04:00
Bartłomiej Chmiel
cb5c56dac4
Internals: fix assertion type dumping ( #6523 )
2025-10-02 12:03:45 -04:00
github action
0b23787d6c
Apply 'make format'
2025-10-01 20:26:28 +00:00
Geza Lore
aaa49273cf
Internals: Fix coverage exclusion markers
2025-10-01 21:22:16 +01:00
Geza Lore
e9c48cd1ce
Internals: Optimize temporary memory allocations ( #6517 )
...
This patch gets rid of over 80% of temporary dynamic memory allocations
(when a malloced node is immediately freed with no other malloc in
between). It also gets rid of over 20% of all calls to malloc.
It's worth ~3% average verilation speed up with tcmalloc, and more
without tcmalloc.
2025-10-01 15:01:30 +01:00
Geza Lore
435e1149d5
Internals: Remove dupliacte netSig parse rules
2025-10-01 10:46:55 +01:00
Geza Lore
4d518873d0
Fix stray net delay in parser
...
Fixes #6500
2025-10-01 10:19:39 +01:00
Wilson Snyder
caca1fcef0
Internals: Change order of V3Number constructor args to follow V3Const. No functional change intended.
2025-09-30 22:04:24 -04:00
Wilson Snyder
8efc9d6219
Fix configure misdetecting C++14 ( #6488 ) ( #6515 ).
2025-09-30 16:57:33 -04:00
Szymon Gizler
e21c4fbbb5
Fix .vlt public_flat* and others to support long identifier names ( #6516 )
2025-09-30 16:55:11 -04:00
Geza Lore
b902e4bcf5
Reduce memory use of statistic collection ( #6513 )
2025-09-30 07:06:57 -04:00
Wilson Snyder
c5f3192588
Change default --expand-limit to 256 ( #3419 ). ( #6489 )
2025-09-30 06:53:10 -04:00
Geza Lore
e04f51ebd2
Internals: Change AstAssignVarScope into AstAliasScope ( #6280 ) ( #6512 )
...
Rename and make it derive from AstNode instead of AstNodeAssign.
Small step towards #6280 . No functional change.
2025-09-30 06:40:17 +01:00
Geza Lore
283810cbf7
Internals: Make AstNodeBlock an AstNodeStmt ( #6280 ) ( #6511 )
...
Small step towards #6280 . No functional change.
2025-09-30 06:39:51 +01:00
Wilson Snyder
0640ddba80
Commentary: Changes update
2025-09-29 21:11:29 -04:00
Wilson Snyder
0865bee500
Commentary: Fix html build ( #6502 )
2025-09-29 21:11:22 -04:00
Geza Lore
202a53f4f6
Internals: Parse ++/-- in statement position as AstStmtExpr ( #6280 ) ( #6510 )
...
Small step towards #6280 . No functional change.
2025-09-29 21:01:40 +02:00
Ryszard Rozak
09518ee207
Support aliases with more operands ( #6501 )
2025-09-29 13:23:51 -04:00
Geza Lore
5cd8bd0356
Remove use of VL_INLINE_OPT macro ( #6507 )
2025-09-29 18:07:36 +01:00
Geza Lore
5247e40659
CI: Add 60 minute timeout to RTLMeter compile and run steps ( #6506 )
...
The default timeout for a job in GitHub Actions is 6 hours, which is
both too long, but more importantly, when reached the job is 'cancelled'
instead of 'failed'. Use the new `--timeout` option on `rtlmeter run`
instead to add a 60 minute timeout to compile and execute steps. (This
is ~3x longer than recent worst runs in the CI)
2025-09-29 17:37:06 +01:00
Geza Lore
603f4c615a
Improve Loop unrolling ( #6480 ) ( #6493 )
...
This patch implements #6480 . All loop statements are represented using
AstLoop and AstLoopTest.
This necessitates rework of the loop unroller to handle loops of
arbitrary form. To enable this, I have split the old unroller used for
'generate for' statements and moved it into V3Param, and subsequently
rewrote V3Unroll to handle the new representation. V3Unroll can now
unroll more complex loops, including with loop conditions containing
multiple variable references or inlined functions.
Handling the more generic code also requires some restrictions. If a
loop contains any of the following, it cannot be unrolled:
- A timing control that might suspend the loop
- A non-inlined call to a non-pure function
These constructs can change the values of variables in the loop, so are
generally not safe to unroll if they are present. (We could still unroll
if all the variables needed for unrolling are automatic, however we
don't do that right now.)
These restrictions seem ok in the benchmark suite, where the new
unroller can generally unroll many more loops than before.
2025-09-29 15:25:25 +01:00
Geza Lore
5c72b45975
Internals: Clean up V3Branch ( #6505 )
...
No functional change
2025-09-29 14:51:37 +01:00
Igor Zaworski
83f4db956b
Fix side effects when using select ( #6460 )
2025-09-29 08:20:54 -04:00
Wilson Snyder
bdae48f6ae
Optimize duplicate 'if' and '?:' conditions ( #3807 ) ( #6495 )
2025-09-29 08:18:54 -04:00
Krzysztof Bieganski
7e854a9e63
Internals: Simplify SystemC-related timing code ( #6503 )
2025-09-29 07:12:35 -04:00
Geza Lore
98786e609a
CI: Fix write permissions in format job
...
Fixes #6496
2025-09-29 07:49:54 +01:00
Wilson Snyder
5a5c38e478
Format
2025-09-28 21:26:21 -04:00
Wilson Snyder
3b049ab9ee
Tests: Add t_lint_always_comb_automatic ( #2862 )
2025-09-28 21:23:15 -04:00
Wilson Snyder
21b42c4463
Fix LATCH warning with CASEINCOMPLETE ( #3301 ).
2025-09-28 21:13:42 -04:00
Wilson Snyder
ca0a679413
Format
2025-09-27 20:59:44 -04:00
Wilson Snyder
a7e6efb4c0
Internals: Some prep from branch towards multitrace ( #5813 prep)
2025-09-27 20:54:26 -04:00
Wilson Snyder
8c7c6c594a
Internals: Rename VStringSet/VStringList. No functional change.
2025-09-27 20:51:37 -04:00
Wilson Snyder
7ef3b808ea
Fix false BLKSEQ on non-edged sensitivity list ( #6492 ).
2025-09-27 20:50:32 -04:00
Wilson Snyder
3b623dc12e
Internals: Refactor to create VCMethod ( #3715 ). No functional change intended.
2025-09-27 08:22:17 -04:00
Wilson Snyder
89cd5417ef
Internals: Refactor to create V3AstAttr.h ( #6491 ). No functional change intended.
2025-09-27 08:19:57 -04:00
Wilson Snyder
b3350a4f3b
Add error on virtual new ( #6486 ).
2025-09-26 21:23:40 -04:00
Wilson Snyder
1761622e14
Fix unused parameterized class causing internal error ( #4013 ).
2025-09-26 20:50:47 -04:00
Wilson Snyder
ebee20c47d
Commentary: Changes update
2025-09-26 20:49:27 -04:00
Ryszard Rozak
500312c050
Support for simple alias statements ( #6339 )
2025-09-26 15:19:48 +02:00
Wilson Snyder
4ad1dde723
Internals: Emit newlines for AstCStmt automatically. No functional change intended.
2025-09-26 08:25:47 -04:00
Wilson Snyder
62880c125e
Fix configure misdetecting C++14 ( #6488 ).
2025-09-26 08:24:34 -04:00
Wilson Snyder
21dbdbf69d
Tests: Auto-skip when not in root repo
2025-09-25 21:08:24 -04:00
Wilson Snyder
269476df6e
Add FUNCTIMCTL now as a named error, so can disable ( #6385 ).
2025-09-25 19:19:31 -04:00
Wilson Snyder
87224db145
Test: Update t_interface_parent_scope ( #1623 )
2025-09-25 10:50:32 -04:00
Todd Strader
aa6fbd35db
Add HIERPARAM error code ( #6456 ) ( #6484 )
2025-09-25 10:27:26 -04:00
Wilson Snyder
c9e021924f
Support class package reference on pattern keys ( #5653 ).
2025-09-25 06:52:42 -04:00
Geza Lore
63f5f5c328
Internals: Remove redundant AstNode methods ( #6481 )
...
AstNode::isFirstInMyListOfStatements
AstNode::isStandaloneBodyStmt
2025-09-24 09:53:39 +02:00
Wilson Snyder
28ee2ebb30
Fix PROTOTYPEMIS error on implicit logic ( #6482 ).
2025-09-23 22:28:21 -04:00
Wilson Snyder
fd12ab3413
Fix interface exposure with --public-depth or --trace-depth ( #5758 ).
2025-09-23 22:05:51 -04:00
Wilson Snyder
d972b7465a
Add error on function invoking time-controlling statements ( #6385 ).
2025-09-23 20:16:23 -04:00
Wilson Snyder
734e7a9526
Add error on function invoking task.
2025-09-23 19:51:34 -04:00
Wilson Snyder
90bc1daa9d
Commentary: Changes update
2025-09-23 19:50:43 -04:00
Wilson Snyder
4e00539308
Fix MISINDENT on SweRV verilator_ext_tests with GenBlock ( #6470 repair)
2025-09-23 19:49:57 -04:00
Artur Bieniek
f719d66129
Fix timeprecision backward assignment ( #6469 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-09-23 17:17:07 -04:00
Geza Lore
800af37975
Internals: Refactor generate construct Ast handling ( #6280 ) ( #6470 )
...
Internals: Refactor generate construct Ast handling (#6280 )
We introduce AstNodeGen, the common base class of AstGenBlock,
AstGenCase, AstGenFor, and AstGenIf, which together represent all SV
generate constructs. Subsequently remove AstNodeFor, AstNodeCase
(AstCase is now directly derived from AstNodeStmt) and adjust internals
to work on the new representation.
Output is identical modulo hashes do to changed AstNode type ids, no
functional change intended.
Step towards #6280 .
2025-09-23 19:49:01 +01:00
Fabian Keßler-Schulz
df187c4406
Fix Windows compilation of Verilator with spaces in the path ( #6477 )
2025-09-23 14:25:25 -04:00
Geza Lore
6f250b3f8d
Internals: Make AstNode::{is/as/cast} available to client code ( #6478 )
...
As opposed to VN_{IS/AS/CAST} these are usable in templated code.
2025-09-23 16:39:18 +01:00
Ryszard Rozak
be0392a2b2
Fix splitting hierarchically referenced variables ( #6475 )
2025-09-23 10:16:49 -04:00
Wilson Snyder
b794c7c8d4
Add error on parameter values from hierarchical paths ( #1626 ) ( #6456 ).
2025-09-22 22:24:45 -04:00
Wilson Snyder
e74c8372ea
Commentary: Python venv
2025-09-22 19:56:39 -04:00
Geza Lore
40ca0527db
Internal: Refactor AstAssignAlias ( #6280 ) ( #6473 )
...
Rename AstAssignAlias to AstAlias and make it derive from AstNode
instead of AstNodeStmt.
Replace AstAlias with AstAssignW in V3LinkDot::linkDotScope, which is
the last place we need to be aware of the alias construct. Using
AstAssignW dowstream enables further optimization while preserving the
same functionality.
2025-09-22 16:30:26 -04:00
Wilson Snyder
a647747260
Add IMPLICITSTATIC also on procedure variables.
2025-09-21 19:52:19 -04:00
Wilson Snyder
9e664a3921
Internals: Cleanup some V3LinkParse code; ignore whitespace if diff. No functional change.
2025-09-21 15:30:49 -04:00
Wilson Snyder
ad6379b762
Internals: Cleanup some V3LinkParse code. No functional change intended.
2025-09-21 15:28:36 -04:00
Wilson Snyder
e0e0fb08a5
Fix missing BLKSEQ when connecting module port to array ( #2973 ).
2025-09-21 13:02:50 -04:00
Wilson Snyder
006b45526b
Tests: Rename t_lint_blkseq. No test change.
2025-09-21 12:56:01 -04:00
Wilson Snyder
3dc430085d
Internals: Misc verilated_random style cleanups. No functional change.
2025-09-21 12:33:38 -04:00
Wilson Snyder
9697a5ce6d
Add verilator_gantt profiling of DPI imports ( #3084 ).
2025-09-21 11:37:44 -04:00
Wilson Snyder
53b8a5b027
Add error on zero/negative unpacked dimensions ( #1642 ).
2025-09-21 09:41:58 -04:00
Wilson Snyder
ed380f08fe
Tests: Add t_forceable_public flat ( #3955 )
2025-09-20 23:06:41 -04:00
Wilson Snyder
9af8e76e87
Fix assertion on streaming from queues
2025-09-20 20:52:46 -04:00
Wilson Snyder
af54a26b43
Fix parsing of with (...) {...} but still unsupported
2025-09-20 19:59:31 -04:00
Wilson Snyder
a4db488b02
Internals: Fix some object-less asserts
2025-09-20 17:40:50 -04:00
Wilson Snyder
580a843474
Fix randomize inside module without any classes
2025-09-20 17:13:54 -04:00
Wilson Snyder
b237eec801
Add error on string addition
2025-09-20 13:47:17 -04:00
Geza Lore
e0e8503151
Internals: Make all AstBegin constructor arguments explicit ( #6464 )
2025-09-20 13:16:03 -04:00
Wilson Snyder
19ca140165
Improve adding model error message
2025-09-20 11:32:15 -04:00
Wilson Snyder
bfc438c455
Tests: Add t_param_default_override ( #4920 )
2025-09-20 11:32:15 -04:00
Wilson Snyder
d3b085ab8a
Fix t_sarif ( #6463 partial)
2025-09-20 11:32:15 -04:00
Geza Lore
d1eda66668
Deprecate clocker attribute and --clk option ( #6463 )
...
The only use for the clocker attribute and the AstVar::isUsedClock that
is actually necessary today for correctness is to mark top level inputs
of --lib-create blocks as being (or driving) a clock signal. Correctness
of --lib-create (and hence hierarchical blocks) actually used to depend
on having the right optimizations eliminate intermediate clocks (e.g.:
V3Gate), when the top level port was not used directly in a sensitivity
list, or marking top level signals manually via --clk or the clocker
attribute. However V3Sched::partition already needs to trace through the
logic to figure out what signals might drive a sensitivity list, so it
can very easily mark all top level inputs as such.
In this patch we remove the AstVar::attrClocker and AstVar::isUsedClock
attributes, and replace them with AstVar::isPrimaryClock, automatically
set by V3Sched::partition. This eliminates all need for manual
annotation so we are deprecating the --clk/--no-clk options and the
clocker/no_clocker attributes.
This also eliminates the opportunity for any further mis-optimization
similar to #6453 .
Regarding the other uses of the removed AstVar attributes:
- As of 5.000, initial edges are triggered via a separate mechanism
applied in V3Sched, so the use in V3EmitCFunc.cpp is redundant
- Also as of 5.000, we can handle arbitrary sensitivity expressions, so
the restriction on eliminating clock signals in V3Gate is unnecessary
- Since the recent change when Dfg is applied after V3Scope, it does
perform the equivalent of GateClkDecomp, so we can delete that pass.
2025-09-20 15:50:22 +01:00
Wilson Snyder
50dfdcb6cc
Support digits in $sscanf field width formats ( #6083 ).
2025-09-20 10:26:36 -04:00
Wilson Snyder
7f85d7f453
Add error on localparam value from hierarchical path ( #6456 ).
2025-09-20 09:59:48 -04:00
Wilson Snyder
f970485e19
Fix some missing E_UNSUPPORTED errors
2025-09-20 08:19:42 -04:00
Wilson Snyder
e5e7e844c4
Tests: Fix assignment type mismatch ( #6461 )
2025-09-19 22:59:13 -04:00
Wilson Snyder
4e866fd710
Add error on module automatic variables.
2025-09-19 22:05:03 -04:00
Wilson Snyder
2a498cb670
Commentary: Changes update
2025-09-19 22:02:54 -04:00
Bartłomiej Chmiel
bbcb9315f3
Fix loss of clock attribute in Dfg variable removal ( #6453 )
2025-09-19 14:44:34 +01:00
Artur Bieniek
08be65a7dd
Optimize dead functions in more cases ( #6430 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-09-19 09:36:57 -04:00
Geza Lore
e24f84f713
Fix false assertion failure on failed Dfg driver tracing ( #6459 )
2025-09-19 13:31:07 +01:00
Artur Bieniek
c1ac2a79db
Resolve data types of method calls without parenthesis ( #6457 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-09-19 07:43:22 -04:00
Krzysztof Bieganski
0391f113b0
Fix segfault on unsupported PLI calls ( #6458 )
2025-09-19 06:59:48 -04:00
Bartłomiej Chmiel
d26fccaa44
Use C++14 decay_t ( #6454 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-09-18 16:57:13 +02:00
Wilson Snyder
46e56ca6fc
Fix elaboration displays with some %p ( #6451 ).
2025-09-18 08:35:07 -04:00
Geza Lore
92f30dd28f
CI: Exclude 'Example' and 'hello' cases from RTLMeter PR reports ( #6452 )
...
These are too small and noisy to be useful, remove to avoid false
conclusions.
2025-09-18 13:02:37 +01:00
Geza Lore
b85a482db0
CI: fix typo
2025-09-18 11:34:59 +01:00
Wilson Snyder
c15489b711
Fix associative array default type resolution
2025-09-17 23:39:47 -04:00
Wilson Snyder
7f871467bf
Internals: Cleanup assertion
2025-09-17 23:38:00 -04:00
Wilson Snyder
3a039df351
Tests: Strictly test exit codes (no unexpected core dumps)
2025-09-17 21:01:11 -04:00
Wilson Snyder
542ffcca60
Prevent internal error on pattern mismatch
2025-09-17 21:01:11 -04:00
Geza Lore
ed6687359b
Fix memory leak in V3Const::ifMergeAdjacent ( #6449 )
2025-09-18 00:45:28 +02:00
Wilson Snyder
57c82b9c34
Fix false unique assertions on else ; ( #6450 ).
2025-09-17 17:43:36 -04:00
Geza Lore
0e2f0381d0
CI: Improve and cleanup ( #6448 )
...
Chores:
- Remove ci-ccache-maint. This has never been useful and is just cruft.
- Remove then unused CI_COMMIT
- Change job names so they come out nicer in the web views
- Make os-name input to reusable-build always explicit
Improvements:
- Have at most build-test job in progress per branch
- Cancel in-progress build-test jobs on PRs
- In forks (that is, not on 'verilator/verilator'), cancel any
in-progress build-test jobs on push to the branch
2025-09-17 20:41:29 +01:00
Geza Lore
1432bb8889
Revert "CI: Make formatting dispatch workflows on verilator/verilator"
...
This reverts commit 64dbd4abcc .
2025-09-17 13:53:20 +01:00
Artur Bieniek
3c8b8b65d0
Fix relinking super functions to parametrized class ( #6431 ) ( #6438 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-09-17 08:07:04 -04:00
Geza Lore
64dbd4abcc
CI: Make formatting dispatch workflows on verilator/verilator
...
Use the CI GitHub APP for authentication in the format job. This should
correctly trigger workflows after the push of the formatting.
2025-09-17 12:57:26 +01:00
Artur Bieniek
bee58510e7
Add cast in gdbinit.py ( #6447 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-09-17 07:23:47 -04:00
Wilson Snyder
b10c6293d9
Fix elaboration displays with %m ( #6445 ).
2025-09-16 20:50:15 -04:00
Geza Lore
4ab0690428
CI: Add -DVL_LEAK_CHECKS in asan builds ( #6444 )
2025-09-17 00:18:58 +01:00
github action
841254e9e8
Apply 'make format'
2025-09-16 23:02:39 +00:00
Wilson Snyder
d7f4dbfd13
Fix class.randomize without parens.
2025-09-16 18:56:04 -04:00
Wilson Snyder
2dbf587118
Commentary: Changes update
2025-09-16 18:54:40 -04:00
Wilson Snyder
4d1eea35e1
Internals: Show only first warning suppression for low debug levels.
2025-09-16 18:51:35 -04:00
Geza Lore
f39d6e6108
Deprecate sensitivity list on public_flat_rw attributes ( #6443 )
...
These are no longer required for correct scheduling. They are still
accepted for backward compatibility, but have no effect on simulation
and are dropped in the front-end. Also removed the then redundant
AstAlwaysPublic class.
Fixes #6442
2025-09-16 22:38:53 +01:00
Geza Lore
ad530c4b08
Internals: Make V3Broken AllocTable thread safe ( #6441 )
...
Added a lock around the table used to detect memory leaks. Note the only
part that is multi-threaded at the moment is V3Emit where we create
AstCFiles and the like, so the lock should be almost always uncontested.
2025-09-16 20:40:38 +01:00
Geza Lore
b60ad953c4
Disable multi-threading in V3FuncOpt ( #6440 )
...
This code is not thread safe. Specifically AstNode constructors are not
thread safe, as they may create entries in the shared Dtype table via
which can be racy.
2025-09-16 19:23:05 +01:00
Geza Lore
a44907b700
Fix memory leaks - batch 4 ( #6439 )
2025-09-16 19:22:36 +01:00
Ryszard Rozak
c856380fac
Support modports referencing clocking blocks ( #4555 ) ( #6436 )
2025-09-16 13:25:40 -04:00
Geza Lore
ef458be855
Fix memory leaks in assignment pattern processing ( #6437 ).
2025-09-16 12:31:16 -04:00
Wilson Snyder
9187b4d552
Fix internal error on out-of-bounds real array access.
2025-09-16 08:18:51 -04:00
Wilson Snyder
2b3bf5f51d
Fix false missing implementation warning.
2025-09-16 07:48:20 -04:00
dependabot[bot]
a8d70c6edf
Bump actions/create-github-app-token from 2.1.1 to 2.1.4 ( #6435 )
2025-09-16 07:20:46 -04:00
Bartłomiej Chmiel
dca555b6d7
Fix pre/post increments in assertions ( #6434 )
2025-09-15 10:50:31 -04:00
Wilson Snyder
b11ec23891
Add waiver
2025-09-14 23:59:42 -04:00
Wilson Snyder
39a9a00299
Fix external function declarations with class typedef references ( #6433 expanded).
2025-09-14 23:52:48 -04:00
Wilson Snyder
3f7d13b2cf
Internals: Less debug verbosity
2025-09-14 22:41:35 -04:00
Wilson Snyder
218af5500b
Fix external function declarations with class typedef references ( #6433 ).
2025-09-14 21:53:13 -04:00
Wilson Snyder
12c524ac06
Internals: Refactoring ( #6433 prep). No functional change intended.
2025-09-14 21:50:19 -04:00
Wilson Snyder
5e4668c146
Support get/set_randstate as class method.
2025-09-14 10:33:50 -04:00
Wilson Snyder
4b5e602392
Tests: Skip for reloc t_lint_assigneqexpr_bad
2025-09-14 10:33:27 -04:00
Wilson Snyder
a2b6aca288
Tests: Refactor to create test.root variable. No test change.
2025-09-14 08:43:52 -04:00
Wilson Snyder
b455f9b591
Add ASSIGNEQEXPR when use = inside expressions ( #5567 ).
2025-09-14 08:28:47 -04:00
Wilson Snyder
06c3c87f4e
Internals: Refactoring V3Param. No functional change intended.
2025-09-13 22:47:51 -04:00
Wilson Snyder
121193e49b
Internals: Refactoring V3Param. No functional change intended.
2025-09-13 22:39:45 -04:00
Wilson Snyder
d7b8ede53f
Internals: Refactoring V3Param. No functional change intended.
2025-09-13 22:07:13 -04:00
Wilson Snyder
e348c9c344
Internals: Create common function for inlinedDots handling
2025-09-13 19:35:56 -04:00
Wilson Snyder
f7ad54b324
Commentary: Changes update
2025-09-13 12:05:39 -04:00
Wilson Snyder
ff0bf0a5e3
Tests: Add testcase ( #4998 )
2025-09-13 10:45:05 -04:00
Wilson Snyder
155cd9a8d0
Commentary
2025-09-13 10:23:37 -04:00
Wilson Snyder
663a9a3add
Add waiver for foreach SIDEEFFECT in future UVM
2025-09-13 10:21:42 -04:00
Bartłomiej Chmiel
be813e96dd
Fix hierarchical --prof-pgo ( #6213 )
2025-09-13 10:19:00 -04:00
Wilson Snyder
907047d823
Tests: Remove unneeded AUTOARGS. No test change.
2025-09-13 09:28:43 -04:00
Wilson Snyder
62d403c060
Internals: Reformat verilated_std.sv. No functional change.
2025-09-13 09:10:51 -04:00
Wilson Snyder
419e775dfb
Tests: Support ANSI input in driver
2025-09-13 08:53:23 -04:00
Artur Bieniek
1f61351e8f
Fix resolving parameters ( #6388 ) ( #6418 ) ( #6421 ) ( #6438 ) ( #6429 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-09-12 14:24:07 -04:00
أحمد المحمودي
39fd625f0c
Add $(LDFLAGS) and $(LIBS) to when building shared libs ( #6425 ) ( #6426 )
2025-09-12 12:40:13 -04:00
Wilson Snyder
8b7a841f09
Tests: Relax contributors for multi-language names
2025-09-12 08:43:45 -04:00
Wilson Snyder
a4656b823d
Commentary: Changes update
2025-09-12 08:37:26 -04:00
Wilson Snyder
1308be28fe
Tests: Rename t_class_link*
2025-09-12 08:37:15 -04:00
Artur Bieniek
990ee994db
Fix resolving parameters ( #6388 ) ( #6418 ) ( #6421 )
2025-09-12 07:18:12 -04:00
Bartłomiej Chmiel
9a6b24fca4
Fix parsing for sequence expressions ( #6427 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-09-12 07:17:26 -04:00
Wilson Snyder
f53ca6ceee
Commentary: Changes update
2025-09-11 21:13:47 -04:00
Wilson Snyder
04aa6ebb42
Tests: t_dynarray ( #2618 )
2025-09-11 20:05:49 -04:00
Geza Lore
4866cfa09f
Fix deep shift pattern performance ( #6379 ) ( #6420 )
2025-09-11 11:10:14 -04:00
Geza Lore
56927fb955
Fix memory leaks - batch 3 ( #6419 )
2025-09-11 12:01:36 +01:00
Geza Lore
f1396fbced
Fix memory leaks - batch 2 ( #6417 )
2025-09-10 22:42:45 +01:00
Geza Lore
57d8bb5d1f
Internals: Always attempt to release resources on termination ( #6416 )
...
Replace std::exit with v3Global.exit, and make V3Error::vlAbort call
v3Global.shutdown. This gives us an opportunity to release resources to
facilitate leak checking even when exiting early on an error.
Note we still don't release most resources by default without
VL_LEAK_CHECKS, so there is no behaviour change there.
2025-09-10 13:20:19 -04:00
Geza Lore
d3aab31bcf
CI: Report RTLMeter performance numbers for all runs in PR comment ( #6415 )
2025-09-10 18:18:23 +01:00
Krzysztof Bieganski
5349b51e71
Allow pure functions in sensitivity lists ( #6393 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-09-10 17:37:34 +02:00
Artur Bieniek and Krzysztof Bieganski
1923d23cff
Fix resolving default params upon instantiation or reference ( #4497 ) ( #6388 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
Signed-off-by: Artur Bieniek <[email protected] >
Co-authored-by: Krzysztof Bieganski <[email protected] >
2025-09-10 07:58:15 -04:00
Geza Lore
c6b0918db5
Improve Dfg variable removal and temporary insertion ( #6401 )
...
Combined Dfg variable elimination into the regularization pass that runs
before converting back to Ast. This avoids introducing some unnecessary
temporaries.
Added replacing of variables with constants in the Ast if after the
Dfg passes they are known to be constants. This is only done in final
scoped Dfg application.
Avoid introducing temporaries for common sub-expressions that are
cheaper to re-compute than store in a temporary variable.
Enable removal of redundant unpacked array variables.
Also fixes #6394 as this patch involved changes to that code.
2025-09-10 12:38:49 +01:00
Krzysztof Bieganski
6c69210037
Fix multiple resolution of classes, broke recently ( #6396 ) ( #6410 ) ( #6413 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-09-10 07:09:55 -04:00
Geza Lore
7f945bf89e
Optimize constant folding in wide expression expansion ( #6381 )
...
Do not apply V3Const in V3Expand after a function if nothing was
expanded in it.
Also fix statistics counter while at it.
Inspired by #6379 , follow up from #6111
2025-09-10 11:45:08 +01:00
Wilson Snyder
220a3faf7c
Fix parameter implicit type from string ( #6414 ).
2025-09-09 19:49:11 -04:00
Wilson Snyder
a9f95f2f08
Fix false CONSTVAR error on initializers ( #4992 ).
2025-09-09 19:27:43 -04:00
Wilson Snyder
f8f5f8f84b
Commentary: Fix warning documentation, add consistency test.
2025-09-09 19:14:48 -04:00
Wilson Snyder
f57d1255e9
Fix import error format
2025-09-09 18:32:04 -04:00
Wilson Snyder
1fd9f3ce92
Commentary: Changes update
2025-09-09 17:47:26 -04:00
Wilson Snyder
90e20cba3d
Commentary: Update GitHub issue templates
2025-09-09 17:46:58 -04:00
Geza Lore
dd11d5a598
Fix memory leaks - batch 1 ( #6411 )
2025-09-09 22:39:44 +01:00
Geza Lore
83ff8e13ba
Internals: Make bison output have correct debug info ( #6409 )
...
1. Move class V3ParseGrammar into V3ParseGrammar.h so editors understand
it as c++ code
2. Fix #line directives in the bison output file
This together enables us to gdb through V3ParseGrammar, verilog.y, and
the bison generated C code step by step, with all source annotations in
the debug info pointing to the right place (e.g.: you will step to the
right place in verilog.y, then step back to the bison generated switch
statement/loop, and then step into calls in V3ParseGrammar as kind of
expected.
2025-09-09 15:47:45 +01:00
Geza Lore
77e5bb9ec9
CI: Run 24.04 clang build/test with --enable-asan ( #6408 )
2025-09-09 15:15:29 +01:00
Geza Lore
5ffa05fba0
Fix AddressSanitizer issues ( #6406 )
...
These are all genuine bugs, brief descriptions.
1. V3OrderCFuncEmitter.h used to delete a node early that was still
reference in a graph dump later. Not a big deal, it can be deleted
later at the end of V3Order.
2. V3Param.cpp: this one is tricky. The variable referenced by
AstVarXRef was deleted at the end of `visit(AstGenCase*)`, but then
`visit(AstVarXRef*)` checks `nodep->varp()` (already deleted) to see
if it's in an interface.
3. V3String::wildMatch is sometimes called with an empty 's' (the string
we are matching against tha pattern 'p'), in which case it used to go
off into the woods. Added check on call. An arbitrary number of `*`
will still match the empty string.
4. V3Task.cpp: There was an error reported for an unsupported construct,
then a subsequent SEGV. Just signal the error upward so we bail on an
error in a more graceful way.
5. verylog.y: Some unsupported constructs failed to set the parsed node,
so some memory thrash made it into some code downstream. Just parse
these into nullptr.
Also increased the timeout on one test, which sometimes tripped with
asan on GCC during heavy host load.
2025-09-09 13:55:00 +01:00
Krzysztof Bieganski
0743d84bcc
Fix timing control under fork under function ( #6407 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-09-09 14:12:24 +02:00
Wilson Snyder
b45cf5960a
Tests: Imporove t_covergroup_unsup ( #6133 )
2025-09-09 07:32:58 -04:00
Geza Lore
056c3ee331
Testing: Add --enable-asan configure option to compile with AddressSanitizer ( #6404 )
2025-09-09 08:55:49 +01:00
Wilson Snyder
c6ffd22c45
Improve interface parent error wording ( #5357 )
2025-09-08 07:21:03 -04:00
Geza Lore
a1167b3d55
Fix use after free in V3LinkDot ( #6403 )
2025-09-08 10:24:55 +01:00
Wilson Snyder
e60f52ee0c
Internals: Add CCall assertion
2025-09-07 17:18:23 -04:00
Wilson Snyder
72acb2edfd
CI: rename workflow for consistency
2025-09-07 16:29:29 -04:00
Geza Lore
6bc48fcdb3
Improve Dfg type system ( #6390 )
...
Added a mini type system for Dfg using DfgDataType to replace Dfg's use
of AstNodeDType. This is much more restricted and represents only the
types Dfg can handle in a canonical form. This will be needed when
adding more support for unpacked arrays and maybe unpacked structs one
day.
Also added an internal type checker for DfgGraphs which encodes all the
assumptions the code makes about type relationships in the graph. Run
this in a few places with --debug-check. Fix resulting fallout.
2025-09-07 20:38:50 +01:00
Wilson Snyder
f67534069c
CI: Avoid man page builds ( #6402 )
2025-09-07 13:32:34 -04:00
Wilson Snyder
4d671dc5d7
De-debug, as on wrong branch ;)
2025-09-07 11:27:48 -04:00
Wilson Snyder
f851671c41
debug
2025-09-07 11:19:48 -04:00
Wilson Snyder
d186dcdc32
ci: avoid man page builds ( #6398 )
2025-09-06 18:48:39 -04:00
Krzysztof Bieganski
46f8003c4e
Fix import of class with default params ( #6396 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-09-06 21:21:50 +02:00
Wilson Snyder
3549fd1aa0
Add parsing of $assert*, $coverage* and $q_* as still unsupported.
2025-09-06 10:31:08 -04:00
Wilson Snyder
819625de61
Lint cleanup
2025-09-06 09:04:05 -04:00
Wilson Snyder
aa28a8d1e1
Fix cell scoping performance ( #6059 ).
2025-09-06 08:35:07 -04:00
Wilson Snyder
0d1f036f17
Add error on non-packed struct randc ( #5999 ).
2025-09-06 08:24:19 -04:00
Wilson Snyder
b4a9ff4ffe
Commentary: Changes update
2025-09-06 08:23:18 -04:00
Wilson Snyder
f41e36b99f
Commentary: Convert docs examples to 2 space indents.
2025-09-06 07:51:49 -04:00
Wilson Snyder
85454f6083
Fix wire array with initial assignment ( #6391 ).
2025-09-05 17:31:17 -04:00
Geza Lore
141de7b94a
Tests: Do not redirect interactive debugger stdout ( #6389 ) ( #6392 )
2025-09-05 17:06:23 -04:00
Artur Bieniek
905c0c4f6d
Optimize dead functions without references ( #6380 )
2025-09-05 13:23:43 -04:00
Jakub Wasilewski
a364704e3a
Improve covergroup with function sample handling ( #6387 )
2025-09-05 13:16:30 -04:00
Ryszard Rozak
107f64e53b
Fix segfault when modport variable is unresolved ( #6386 )
2025-09-05 14:27:46 +02:00
Geza Lore
a966e6aa13
Improve automatic selection of logic for Dfg synthesis ( #6370 )
...
Reduce set of synthesized logic to be more in-line with what Dfg used to
handle before + drivers of circular variables. This was always the
intention but the previous algorithm was both a bit too eager, and also
missed some circular variables. We can add back more heuristics based on
performance measurements for non-circular logic later.
2025-09-05 08:14:48 +01:00
Wilson Snyder
feea221f39
Fix COVERAGEIGN-ignored get_inst_coverage and other covergroup methods ( #6383 ).
2025-09-04 22:18:56 -04:00
Geza Lore
a12caa4799
Internals: Remove double Class::Class
2025-09-04 19:18:02 +01:00
Geza Lore
63993436c9
Fix driver tracing of partially assigned variable ( #6364 ) ( #6378 )
...
Fixes #6364
2025-09-04 15:02:33 +01:00
Wilson Snyder
7d3c58d21c
Docs: Notes about --x-initial-edge ( #6377 comment)
2025-09-04 09:09:54 -04:00
dependabot[bot]
319ab84f90
Bump actions/checkout from 4 to 5 ( #6374 )
2025-09-04 08:21:26 -04:00
Wilson Snyder
4e091a1cf1
Tests: Ignore all bots in t_dist_contributors.py
2025-09-04 06:56:48 -04:00
dependabot[bot]
e3acd528d8
Bump actions/create-github-app-token from 2.0.6 to 2.1.1 ( #6375 )
2025-09-04 06:21:48 -04:00
dependabot[bot]
43a03b1660
Bump docker/metadata-action from 4 to 5 ( #6376 )
2025-09-04 06:21:14 -04:00
Igor Zaworski
4070db9990
Fix rand variable inside constraint ( #6315 )
2025-09-04 06:19:08 -04:00
Geza Lore
5f0eb007b1
Internals: Squelch false GCC fallthrough warning ( #6369 )
2025-09-03 20:14:11 -04:00
Wilson Snyder
bd7f6d3c19
Fix randomize local after parameters applied ( #6371 ).
2025-09-03 20:04:41 -04:00
Wilson Snyder
929d2ad83a
Fix package imports not found after parameters applied ( #6373 ).
2025-09-03 19:45:43 -04:00
Wilson Snyder
7a4049b683
Fix docs HTML format from last commit
2025-09-03 19:28:17 -04:00
Wilson Snyder
e2b9cadb1d
Commentary: Changes update
2025-09-03 18:55:41 -04:00
Wilson Snyder
1ceda731e5
CI: Avoid duplicate action runs on dependabot
2025-09-03 18:54:27 -04:00
dependabot[bot]
fcebac6b16
Bump docker/setup-buildx-action from 2 to 3 ( #6372 )
2025-09-03 18:50:58 -04:00
dependabot[bot]
1158842b7e
Bump docker/login-action from 2 to 3 ( #6368 )
2025-09-03 18:50:33 -04:00
dependabot[bot]
2a09114dc7
Bump actions/download-artifact from 4 to 5 ( #6367 )
2025-09-03 18:50:12 -04:00
dependabot[bot]
d95e4dc150
Bump docker/setup-qemu-action from 2 to 3 ( #6366 )
2025-09-03 18:49:54 -04:00
dependabot[bot]
17f29b41c2
Bump docker/build-push-action from 4 to 6 ( #6365 )
2025-09-03 18:49:34 -04:00
Wilson Snyder
98c7089f5b
Commentary: CONTRIBUTORS for dependabot
2025-09-03 14:59:20 -04:00
Geza Lore
a49334f3e4
Internals: Move Dfg CSE into separate source file ( #6363 )
...
Parts of this algorithm were distributed over many files some
masquerading as re-usable APIs, they were not. Move everything into one
file and avoid unnecessary virtual functions.
2025-09-03 17:34:55 +01:00
Geza Lore
5161cea8cd
Internals: Improve astgen type enums to be switch statement friendly ( #6362 )
...
- Remove _ENUM_END, so -Wswitch does not demand it's covered. Use the
new NUM_TYPES constexpr member instead.
- Remove 'at' prefix. This seems historical and is not particularly useful.
- Fix some cppcheck warts while at it
2025-09-03 13:56:11 +01:00
Geza Lore
8bf2240d40
Internals: Add DfgWorklist commonly used in algorithms ( #6361 )
2025-09-03 13:55:33 +01:00
Wilson Snyder
1e4ede08b6
CI: Put all OS builds into build-deploy workflow, add passed job ( #6358 )
2025-09-03 06:32:10 -04:00
Geza Lore
041dad92cf
Internals: Remove use of DfgVetex::equals from V3DfgPeephole
...
This is both unnecessary and slower than the existing `isSame`.
2025-09-03 10:27:42 +01:00
Wilson Snyder
4cda2c0a4e
CI: Add dependabot
2025-09-02 19:27:08 -04:00
Geza Lore
e63ed0a931
Internals: Manage DfgVertex user data via a typed map ( #6356 )
...
Add DfgUserMap as a handle around the one pointer worth of algorithm
specific 'user' storage in each DfgVertex. This reduces verbosity,
improves type safety and correctness. Also enables us to remove one
pointer from DfgVertex to reduce memory use. No functional change.
2025-09-02 22:21:24 +01:00
Geza Lore
a6f26b85b3
Internals: Improve DFG implementation details ( #6355 )
...
Large scale refactoring to simplify some of the more obtuse internals of
DFG. Remove multiple redundant internal APIs, simplify representation of
variables, fix potential unsoundness in circular decomposition. No
functional change intended.
2025-09-02 16:50:40 +01:00
Wilson Snyder
67f26508ba
Support $sscanf %t
2025-09-01 14:40:22 -04:00
Wilson Snyder
33b838f139
Support 'this.super'
2025-09-01 13:07:02 -04:00
Krzysztof Bieganski
f58b323736
Wrap forked processes in begins early ( #6343 ) ( #6354 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-09-01 17:25:57 +02:00
Wilson Snyder
37c79532fe
Add VERILATOR_SOLVER to verilator -V
2025-09-01 08:45:01 -04:00
Wilson Snyder
4bf2d0d755
Tests: More uvm_dpi testing ( #4566 )
2025-09-01 08:32:13 -04:00
Lan Zongwei
b3e70efa30
Fix cmake variable APPLE ( #6351 )
2025-08-31 19:42:31 -04:00
Geza Lore
68ce45f203
Internals: Post RTLMeter metrics in PR comment ( #6349 )
...
Fixes #6301
2025-08-31 20:52:43 +01:00
Geza Lore
5bdc9abd2f
Internals: Use Verilator CI App in 'RTLMeter PR results'
2025-08-31 18:17:40 +01:00
Lan Zongwei
c03cb9d9c2
CI: introduce osx-build github workflow ( #6352 ).
2025-08-31 12:58:05 -04:00
Geza Lore
34e3892367
Internals: Add 'RTLMeter PR results' workflow v3
2025-08-31 17:00:57 +01:00
Wilson Snyder
9953851287
Tests: Add t_math_synmul and t_math_wallace from verilator_ext_tests
2025-08-31 11:12:14 -04:00
Wilson Snyder
c73259d2f0
Tests: Upgrade some failing tests without expected .out files.
2025-08-31 11:12:14 -04:00
Geza Lore
8ac8c64885
Internals: Add 'RTLMeter PR results' workflow v2
2025-08-31 16:01:58 +01:00
Geza Lore
7ac610a3cb
Internals: Add 'RTLMeter PR results' workflow
...
Workflows triggered for a PR from a fork can never have write
permissions, so to post a comment on a PR, it must be done from a
separate workflow triggered by 'workflow_run' in the main repository.
2025-08-31 15:06:50 +01:00
Lan Zongwei
2aa260a03b
Fix V3Hash MacOS ambiguity again ( #6350 )
2025-08-31 09:54:13 -04:00
Wilson Snyder
4eb030717a
devel release
2025-08-30 18:15:10 -04:00
Wilson Snyder
51cdf52d0f
Version bump
2025-08-30 18:11:51 -04:00
Wilson Snyder
6a14facf48
Tests: Fix version miscompare in t_uvm_dpi
2025-08-30 18:10:13 -04:00
Wilson Snyder
7bb38d21b9
Commentary: Changes update
2025-08-30 17:58:12 -04:00
Congcong Cai
ca2c40347b
Fix undefined weak link for Apple GCC etc ( #6348 )
2025-08-30 14:25:20 -04:00
Geza Lore
b0044da8a7
Internals: Upload published nightly RTLMeter results artifact ( #6346 )
...
First half of #6301
2025-08-30 16:08:44 +01:00
Geza Lore
3770273637
Optimize logic in non-virtual interfaces with DFG ( #6347 )
2025-08-30 10:35:16 -04:00
Geza Lore
c33f2b42aa
Fix wide select expansion and substitution ( #6341 ) ( #6345 )
2025-08-30 10:34:39 -04:00
Wilson Snyder
14ec6258d9
Internals: Fix compiler warning last commit
2025-08-30 08:22:22 -04:00
Wilson Snyder
b6ecffeb60
Support recursive constant functions.
2025-08-30 07:45:35 -04:00
Wilson Snyder
712ff95a48
Internals: Remove unneeded return, cleanup param test. No functional change
2025-08-30 07:42:41 -04:00
Wilson Snyder
fbfd1f12dd
Tests: Fix sarif reruns
2025-08-29 21:36:54 -04:00
Krzysztof Bieganski
40dda323fe
Fix upcasting class type parameters ( #6344 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-08-29 21:20:09 -04:00
Wilson Snyder
91ae4c35b7
Add error on force/release non-constant selects.
2025-08-29 21:19:37 -04:00
Wilson Snyder
a3d7b7d779
Commentary: Changes update
2025-08-29 21:13:43 -04:00
Wilson Snyder
91d138248d
Tests: Favor all caps for tests' parameters. No test change.
2025-08-29 18:33:14 -04:00
8868d459a2
Fix broken support of unassigned virtual interfaces ( #6253 ) ( #6338 )
...
* Fix broken support of unassigned virtual interfaces
Unassigned virtual interface support added by #6245 is broken - PR marks
dead module as alive - we can't do that as once a module is dead it
needs to remain dead because earlier steps (e.g. port resolution) have
already been skipped.
This commit handles unassigned virtual interfaces at the beginning of
first pass of LinkDot (so it is never marked as dead, and no linking
steps are getting skipped).
Fixes #6253 .
* Apply suggestions from code review
Co-authored-by: Wilson Snyder <[email protected] >
* Apply 'make format'
* Revert add of redundant iterateChildren() call
* Add original test case
---------
Co-authored-by: Wilson Snyder <[email protected] >
Co-authored-by: github action <[email protected] >
2025-08-28 09:03:46 -04:00
Geza Lore
1043a6c6be
Fix splitting of assignments to SC variables ( #6329 ) ( #6336 )
...
SC variables can only be assigned whole, so do not split up
concatenation assignments in V3FuncOpt.
Fixes #6329
2025-08-28 08:48:51 +01:00
Wilson Snyder
409e036eca
Add error on gate primitive connection width mismatch
2025-08-27 22:28:09 -04:00
Wilson Snyder
e32108713d
Fix randomize on function-local variable ( #6234 ).
2025-08-27 21:25:40 -04:00
Wilson Snyder
54efa86a6c
Fix error on too many UDP port inputs
2025-08-27 07:48:33 -04:00
Ryszard Rozak
ac21d25d43
Support simple disable within task ( #6334 )
2025-08-26 10:39:24 -04:00
Geza Lore
a841a962ce
Optimize interfaces in Dfg ( #6332 )
...
Interfaces that have no corresponding virtual interface references can
be safely optimized by Dfg after V3Scope. Enabling it to do so.
2025-08-26 11:24:15 +01:00
Wilson Snyder
5f23bf95f6
Internals: Refactor V3EmitUtil to not be base class. No functional change.
2025-08-25 22:05:40 -04:00
Wilson Snyder
ac2859bf24
Internals: Upgrade to clang-format-18 ( #6333 )
2025-08-25 20:47:48 -04:00
Wilson Snyder
703f0d8c5d
Commentary: spelling
2025-08-25 18:47:08 -04:00
Wilson Snyder
3d76bb9944
Commentary: Changes update
2025-08-25 17:50:29 -04:00
Geza Lore
02e64f0795
Optimize multiplexers in Dfg synthesis ( #6331 )
...
The previous algorithm was designed to handle the general case where a
full control flow path predicate is required to select which value to
use when synthesizing control flow join point in an always block.
Here we add a better algorithm that tries to use the predicate of
the closest dominating branch if the branch paths dominate the joining
paths. This is almost universally true in synthesizable logic (RTLMeter
has no exceptions), however there are cases where this is not
applicable, for which we fall back on the previous generic algorithm.
Overall this significantly simplifies the synthesized Dfg graphs and
enables further optimization.
2025-08-25 13:47:45 +01:00
Igor Zaworski
c2cac8a7fd
Fix of localize for super constructors with function calls as arguments ( #6330 )
2025-08-25 06:55:11 -04:00
Wilson Snyder
ac2a75fbb5
Support future sampled value functions.
2025-08-23 21:16:53 -04:00
Wilson Snyder
7affb3e580
Internals: Add $past variable statistic
2025-08-23 21:10:46 -04:00
Wilson Snyder
b226be7f98
Fix to select UDPs when they are the only candidate for a top module.
2025-08-23 15:20:58 -04:00
Wilson Snyder
f45b811c22
Commentary: Changes update
2025-08-23 15:20:36 -04:00
Aleksander Kiryk
ee1ab074dc
Internals: Fix missing variable initializations ( #6327 )
2025-08-23 10:59:12 -04:00
Aleksander Kiryk
a9aa2f11b8
Improve testing on FreeBSD ( #6328 )
...
* Skip profiling tests on non-glibc platforms
* Enforce dumb terminal in tests
* Include POSIX headers whenever __unix__ macro is defined
* Treat no procfs as normal condition
* Respect MAKE variable when running make
2025-08-23 10:49:03 -04:00
Aleksander Kiryk
353a2e3d20
Fix gathering senaitivities from virtual interface members ( #6325 )
2025-08-23 10:45:13 -04:00
Aleksander Kiryk
34315a4f70
Fix FreeBSD missing headers ( #6326 )
...
* Include missing libgen.h
* Include missing cinttypes
2025-08-23 10:38:18 -04:00
Aleksander Kiryk
d56d1a7719
Fix queue extend to check bounds ( #6324 )
2025-08-23 10:37:40 -04:00
Geza Lore
1c86ff0af2
Fix corner case bugs in module and variable inlining ( #6322 )
...
There were a couple corner case bugs in V3Inline, and one in Dfg when
dealing with inlining of modules/variables.
V3Inline:
- Invalid code generated when inlining an input that also had an
assignment to it (Throws an ASSIGNIN, but this is sometimes reasonable
to do, e.g. hiererchical reference to an unonnected input port)
- Inlining (aliasing) publicly writeable input port.
- Inlining forcable port connected to constant.
Dfg:
- Inining publicly writeable variables
The tests that cover these are the same and fixing one will trigger the
other bug, so fixing them all in one go. Also cleanup V3Inline to be less
out of order and rely less on unique APIs only used by V3Inine (will
remove those in follow up patch).
Small step towards #6280 .
2025-08-22 21:43:49 +01:00
Igor Zaworski
f506aa878b
Fix of inline constraints with member selects ( #6321 )
2025-08-22 07:58:03 -04:00
Igor Zaworski
b95a974ff1
Support generic interfaces ( #6272 )
2025-08-22 06:44:35 -04:00
Artur Bieniek
b19215770b
Fix direct NBA to dynamically-sized variable ( #6310 )
2025-08-22 06:21:13 -04:00
Wilson Snyder
457fcc267b
Support elaboration-time printing of unpacked array with %p ( #4732 ).
2025-08-21 21:44:31 -04:00
Wilson Snyder
e202cb31d8
Change $display("%p") to remove space after }.
2025-08-21 21:33:05 -04:00
Wilson Snyder
b96f35b8fe
Internals: Add AstToStringN ( #4732 prep)
2025-08-21 21:09:10 -04:00
Wilson Snyder
997d5ecdf1
Internals: Cleanup cppcheck c casts. No functional change intended.
2025-08-21 20:06:43 -04:00
Igor Zaworski
631714c50a
Fix expression type comparison ( #6316 )
2025-08-21 06:26:30 -04:00
Geza Lore
327d55d13d
Internals: Fix remaining cppcheck errors ( #6319 )
...
Fixed the non const-related issue and added suppressions for the const
ones. With that `make cppcheck` should be clean.
2025-08-21 09:43:37 +01:00
Wilson Snyder
bd91b619ad
Support $fread with missing start ( #6125 ).
2025-08-20 21:19:42 -04:00
Wilson Snyder
dc5a17fea0
Support unpacked array with methods ( #6134 ).
2025-08-20 21:01:34 -04:00
Wilson Snyder
254eb407ff
Commentary: Changes update
2025-08-20 21:00:40 -04:00
Geza Lore
92d47ca23a
Internals: Add separate cppcheck targets for whole components ( #6318 )
...
cppcheck provides best results when analysing the whole program. It also
has a builtin `-j` option to run on multiple threads.
Replace existing cppcheck-* targets with cppcheck-verilator,
cppcheck-runtime, cppcheck-example and cppcheck-vlc that checks each of
those components as a whole. Each of these runs on the maximum available
logical processors on the host by default, as reported by `nproc`, but
can be manually overridden with `make CPPCHECK_JOBS=<number>` instead.
The `make cppcheck` target runs the 4 cppcheck-* targets listed above
sequentially (but each of them uses the specified CPPCHECK_JOBS threads)
2025-08-20 13:49:59 -04:00
Geza Lore
67da797816
Internals: Cleanup cppcheck warnings ( #6317 )
...
`make cppcheck-4` is now clean.
2025-08-20 18:21:24 +01:00
Ryszard Rozak
3d3462b209
Support disabling a fork from within that fork ( #6314 )
2025-08-20 12:21:07 -04:00
Igor Zaworski
11667160f2
Fix static vars under member select ( #6313 )
2025-08-20 11:23:16 -04:00
Ryszard Rozak
95c8b7bb00
Support separate coverage counters for toggles 0->1 and 1->0 ( #6086 )
2025-08-20 07:31:04 -04:00
Wilson Snyder
9b2f55ab39
Internals: Fix up include/ cppcheck issues ( #6311 )
2025-08-20 07:27:55 -04:00
Wilson Snyder
f71b8e6195
Internals: Fix up include/ cppcheck issues ( #6311 )
2025-08-19 21:36:52 -04:00
Geza Lore
d1f71f2342
Internals: Improve V3Rtti for cppcheck ( #6312 )
...
Rewrite with much less running around in the templates. Use private
methods only + friend functions that do the actual type check. This
avoids cppcheck warnings.
2025-08-19 23:05:34 +01:00
Geza Lore
a0edd4e907
Internals: Improve cppcheck flow and fix up issues ( #6311 )
...
Added cppcheck-suppressions.txt in the repo root. You can add new
patterns in there instead of having to parse the XML output.
Also configure to add the -D__GNUC__ preprocessor macro, which makes it
understand UASSERT (it understands the 'noreturn' function attribute).
Added some case by case specific suppressions and fixed up other code,
especially in V3Ast*h and V3Dfg*.h, including code generated by astgen
that had some no-ops that irks cppcheck.
One thing it does not seem to like is `const` class members with default
initializers in the class. It will assume that's always the value, even
if overridden in the constructor. We had few so removed them.
With that a lot of files in `src/` are now clean or only have a handful
of issues. Therefore, I have also deleted cppcheck_filtered, and made it
produce human readable output straight to the terminal.
Regarding cleaning up the reported nits, I kind of got bored after
V3[A-E] so pausing here. Apologies for the merge conflicts.
Tested with cppcheck 2.13.0
2025-08-19 22:02:10 +01:00
Geza Lore
636a6b8cd2
Optimize complex combinational logic in DFG ( #6298 )
...
This patch adds DfgLogic, which is a vertex that represents a whole,
arbitrarily complex combinational AstAlways or AstAssignW in the
DfgGraph.
Implementing this requires computing the variables live at entry to the
AstAlways (variables read by the block), so there is a new
ControlFlowGraph data structure and a classical data-flow analysis based
live variable analysis to do that at the variable level (as opposed to
bit/element level).
The actual CFG construction and live variable analysis is best effort,
and might fail for currently unhandled constructs or data types. This
can be extended later.
V3DfgAstToDfg is changed to convert the Ast into an initial DfgGraph
containing only DfgLogic, DfgVertexSplice and DfgVertexVar vertices.
The DfgLogic are then subsequently synthesized into primitive operations
by the new V3DfgSynthesize pass, which is a combination of the old
V3DfgAstToDfg conversion and new code to handle AstAlways blocks with
complex flow control.
V3DfgSynthesize by default will synthesize roughly the same constructs
as V3DfgAstToDfg used to handle before, plus any logic that is part of a
combinational cycle within the DfgGraph. This enables breaking up these
cycles, for which there are extensions to V3DfgBreakCycles in this patch
as well. V3DfgSynthesize will then delete all non synthesized or non
synthesizable DfgLogic vertices and the rest of the Dfg pipeline is
identical, with minor changes to adjust for the changed representation.
Because with this change we can now eliminate many more UNOPTFLAT, DFG
has been disabled in all the tests that specifically target testing the
scheduling and reporting of circular combinational logic.
2025-08-19 15:06:38 +01:00
Geza Lore
6a67c0a0e5
Iternals: Fix AstSplitPlaceholder, it is a statement ( #6280 ) ( #6309 )
2025-08-19 11:14:28 +01:00
Geza Lore
6b9cc8a36e
Internals: Fix AstNodeCoverDecl, it is not a statement ( #6280 ) ( #6308 )
2025-08-19 11:14:17 +01:00
Geza Lore
0bf9fc270f
Iternals: Remove AstAssignPre/AstAssignPost ( #6307 )
...
Replace with AstAlwaysPre/AstAlwaysPost with AstAssign under them.
Step towards #6280
2025-08-19 09:27:59 +01:00
Geza Lore
c9a6d06544
Improve V3LifePost to not require AstAssignPre/AssignPost ( #6306 )
...
Rewrote V3LifePost to not depend on having AstAssignPre and
AstAssignPost types, but work with generic AstNodeAssign. There is an
extra flag in AstVarScope to denote it's part of an NBA and should be
considered.
Step towards #6280 .
2025-08-19 00:11:14 +01:00
Wilson Snyder
c90f9e53b7
Add ALWNEVER warning, for always @* that never execute ( #6291 ) ( #6303 )
2025-08-18 12:00:53 -04:00
Artur Bieniek
53c59e7ac7
Fix referencing module variables above classes ( #6304 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-08-18 08:51:25 -04:00
Geza Lore
9dc31e4556
Fix unsound assertion in V3Delayed ( #6305 )
2025-08-18 13:46:35 +01:00
Geza Lore
c172cc2ab0
Internals: Simplify port connect after instance dearray ( #6302 )
...
Pre pull for #6298
2025-08-18 09:55:54 +01:00
Wilson Snyder
25d71a43a5
For hier-generated Verilog, use always_comb
2025-08-17 20:14:19 -04:00
Wilson Snyder
88046c8063
Internals: Rename AstSenTree pointers to sentreep. No functional change intended except JSON.
2025-08-17 19:14:34 -04:00
Wilson Snyder
dbdf235115
Commentary: Changes update
2025-08-17 14:53:59 -04:00
Wilson Snyder
eaecdf7477
Tests: Improve check for member brace initialization.
2025-08-17 14:40:10 -04:00
Geza Lore
f6edf26eb2
Fix hierarchical NBAs ( #6286 ) ( #6300 )
...
NBAs targeting a variable in a different scope are now allocated
temporary variables for captured values in the scope of the NBA, not the
scope of the target variable.
Fixes #6286
2025-08-17 19:35:40 +01:00
Wilson Snyder
b14539569f
Internals: Check and enforce member brace initialization. No functional change intended
2025-08-17 13:20:52 -04:00
Wilson Snyder
7126293086
Support enum.next with a parameter
2025-08-16 21:06:35 -04:00
Wilson Snyder
36c4a24661
Internals: constifyParamsEdit return value was unused. No functional change.
2025-08-16 21:03:12 -04:00
Wilson Snyder
49ca1cfdd7
Commentary
2025-08-16 18:32:40 -04:00
Wilson Snyder
48a12fb0f4
Document and test +verilator+rand+reset+2 usage ( #6285 partial)
2025-08-16 11:47:19 -04:00
Wilson Snyder
340d1aff4a
Tests: Cleanup to favor '--binary'. No test change intended.
2025-08-16 09:26:42 -04:00
Wilson Snyder
000d697b51
Commentary: Changes update
2025-08-16 09:08:09 -04:00
Geza Lore
a300bfc538
Internals: Add AstNodeStmt.h ( #6295 )
...
Move AstNodeStmt and all its subtypes into AstNodeStmt.h.
This is the first step for #6280 .
No functional change
2025-08-16 09:46:18 +01:00
Geza Lore
6f69c990fd
Internals: Remove AstCondBound and AstNodeCond ( #6293 ) ( #6294 )
...
Fixes #6293
2025-08-15 15:49:06 -07:00
Geza Lore
d273e2cbd0
Internals: Do not astgen useless Dfg vertex subtypes
2025-08-15 20:06:58 +01:00
Sergey Fedorov
ece4469869
Fix PowerPC support ( #6292 )
2025-08-15 11:25:32 -07:00
Geza Lore
9c11f5e05d
Fix DFG circular driver tracing
2025-08-15 10:20:20 +01:00
Mateusz Gancarz
e753480b19
Fix no matching function calls for randomized VlWide in unpacked and dynamic arrays ( #6290 )
2025-08-14 05:19:33 -07:00
Wilson Snyder
047a12cc62
Fix variables hiding package imports ( #6289 ).
2025-08-13 18:05:37 -04:00
Wilson Snyder
75c6745868
Test driver.py: Pass-through +verilator+ arguments to runtime
2025-08-12 19:32:56 -04:00
Wilson Snyder
60cbbf0ec1
Add error on mismatching prototypes ( #6207 ).
2025-08-11 19:50:47 -04:00
Geza Lore
762c5f573c
Improve DFG to enable breaking more combinational cycles
2025-08-11 09:44:31 +01:00
Geza Lore
7696b0651c
Internals: Improve DFG dumping functions
2025-08-10 16:48:40 +01:00
Wilson Snyder
e6e52dd60a
Tests: Fix t_constraint_nosolver_bad.py ( #6273 )
2025-08-10 08:43:04 -04:00
Wilson Snyder
eb80db9397
Clarify extern error message
2025-08-10 08:38:26 -04:00
Wilson Snyder
641dd756c0
Add check for mis-assignment of dynamic/automatics per IEEE
2025-08-10 07:23:28 -04:00
Wilson Snyder
a74a3bb689
Internals: No need for 'if' before VL_FFLUSH_I
2025-08-10 06:13:18 -04:00
Geza Lore
d28436dccc
Fix stray ']' in Verilog code output for non-constant select ( #6277 )
2025-08-09 14:59:58 +01:00
Wilson Snyder
3ca1c9b6dd
Internals: Fix and enforce brace new constructors. No functional change intended.
2025-08-08 18:21:12 -04:00
Wilson Snyder
1eccfa64b5
Commentary
2025-08-08 17:54:48 -04:00
Wilson Snyder
1d05028087
Add compiler warning disable '-Wno-int-in-bool-context'
2025-08-08 17:54:48 -04:00
Geza Lore
16d32cdd4a
Internals: Refactor Ast to Dfg conversion for reusability. ( #6276 )
...
This is mainly code motion, with minimal algorithmic changes to
facilitate reusing parts in future code. No functional change intended.
2025-08-08 22:53:12 +01:00
Wilson Snyder
d1f851e1e1
Internals: Optimize empty 'if' into StmtExpr
2025-08-08 05:10:40 -04:00
Wilson Snyder
6a225d5d00
Internals: Remove AstSysFuncAsTask
2025-08-08 05:09:54 -04:00
Wilson Snyder
b12b1c9658
Commentary: Changes update
2025-08-08 05:09:16 -04:00
Geza Lore
dbb8cbece2
CI: Improve RTLMeter failure issue body ( #6275 )
2025-08-08 09:13:29 +01:00
Geza Lore
9ddbf5f4b8
CI: Only raise RTLMeter failure issue on failure
2025-08-08 08:07:55 +01:00
Geza Lore
b2388faa5e
CI: Add running RTLMeter workflow on selective PRs ( #6271 )
...
Runs RTLMeter on PRs if the PR has the 'pr: rtlmeter' label applied to
it. This should make it easy to selectively require the RTLMeter
workflows to pass on a PR that is potentially invasive, per our own
judgement.
2025-08-07 19:30:43 +01:00
Geza Lore
188a12f609
CI: Add raising GitHub issue on failure of scheduled RTLMeter job ( #6270 )
2025-08-07 18:17:00 +01:00
Todd Strader
6bd6663dc9
Fix spurious VPI value change callbacks ( #6274 )
2025-08-07 16:37:33 +01:00
Artur Bieniek
5b7188fcaf
Fix same variable on the RHS forced to two different LHSs. ( #6269 )
2025-08-06 17:37:00 -04:00
github action
dc049fdd74
Apply 'make format'
2025-08-06 21:30:37 +00:00
Michael Bedford Taylor
218659f4e8
Support parameter resolution of 1D unpacked array slices ( #6257 ) ( #6268 )
2025-08-06 17:29:40 -04:00
Igor Zaworski
6c1cfc68cf
Fix dynamic cast purity ( #6267 )
...
Signed-off-by: Igor Zaworski <[email protected] >
2025-08-06 07:09:44 -04:00
Wilson Snyder
fbaff52668
Change runtime to exit() instead of abort(), unless under +verilated+debug.
2025-08-05 18:43:29 -04:00
Wilson Snyder
06c570e159
Commentary
2025-08-05 17:56:12 -04:00
Wilson Snyder
c005486acf
Support by ignoring delay2 on UDPs
2025-08-05 17:34:42 -04:00
Wilson Snyder
6467351752
Add error on class 'function static'.
2025-08-05 17:12:00 -04:00
Wilson Snyder
4bd17f0a6f
Commentary: Changes update
2025-08-05 17:08:09 -04:00
Wilson Snyder
870c398094
Fix incorrect Non-ANSI I/O declaration conflict error ( #6258 ) broke with #bd1ac038
2025-08-05 16:33:28 -04:00
Geza Lore
86c56e8e14
Fix true cycle detection in DFG
2025-08-05 15:04:07 +01:00
Geza Lore
25d968b833
Fix infinite loop in VString::replaceSubstr
...
If the replaced string was a suffix of the replacement, we used to get
an infinite loop.
2025-08-05 14:41:38 +01:00
Geza Lore
2c41a7bbf6
Adjust make test-snap / make test-diff rules
2025-08-05 14:41:38 +01:00
Geza Lore
158a54a7ff
Defer deletion of eliminated Ast variables until end of Dfg pass. ( #6263 )
...
This is currently unnecessary but future patch will depend on it.
2025-08-05 14:29:33 +01:00
Geza Lore
8c9a4fec83
Emit memory addresses of vertices in Dfg dumps
2025-08-05 13:03:57 +01:00
Geza Lore
53332ae03e
Unify the two DFG cycle finding algorithms. ( #6262 )
...
Both V3DfgBreakCycles.cpp and V3DfgDecomposition.cpp used to contain an
implementation of the same algorithm to color strongly connected
components. Now there is only one, and it lives in V3DfgColorSCCs.cpp.
2025-08-05 13:03:30 +01:00
Geza Lore
4a5935d248
Merge DFG components made acyclic into the original acyclic sub-graph. ( #6261 )
...
After making a cyclic DFG component acyclic, merge that component back
into the acyclic sub-graph of the input graph. This enables optimizing
through the components that were made acyclic in their larger context.
2025-08-05 12:11:02 +01:00
Geza Lore
78c9e7773a
Allow more variable removal in scoped DFG ( #6260 )
2025-08-05 11:18:33 +01:00
Geza Lore
d2edab458e
Refactor Dfg variable flags ( #6259 )
...
Store all flags in a DfgVertexVar relating to the underlying
AstVar/AstVarScope stored via AstNode::user1(). user2/user3/user4 are
then usable by DFG algorithms as needed.
2025-08-05 10:24:54 +01:00
Geza Lore
d415757b0e
Remove unhelpful DFG debug dumps
2025-08-05 05:06:44 +01:00
Ryszard Rozak
7d2b6bd921
Internals: Optimize updates of Vtogcov signals. No functional change intended. ( #6110 )
2025-08-04 13:29:56 +01:00
Wilson Snyder
52ac3b3a0d
Add error on too many pattern members for structure
2025-08-03 17:26:51 -04:00
Wilson Snyder
f106c1eaec
Fix genvar check to be more strict about generate-for usage only
2025-08-03 16:57:12 -04:00
Wilson Snyder
309129ebcf
Add PARAMNODEFAULT error, for parameters without defaults.
2025-08-03 15:27:37 -04:00
Geza Lore
deed20fb78
Fix partial DFG conversion of concat assignments ( #6255 )
...
When we had a `{a, b} = ...`, and the DFG conversion of `a = ...`
succeeded, but `b = ...` failed, we still used to include `a = ...` in
the DFG, which then caused a spurious multi-driver error for `a` on
a subsequent DFG pass, as the original `{a, b} = ...` was still present
in the Ast, but we also had the extra `a = ...` from converting out of
DFG on the previous pass.
In this patch we only convert assignments with a concatenation on the
LHS, if all target LValues can be converted into DFG.
This is the proper fix for #4231
2025-08-03 14:52:20 +01:00
Wilson Snyder
36577bb549
Add check for missing 'parameter' on implicit types
2025-08-02 17:02:45 -04:00
Wilson Snyder
de9671d4a3
Tests: uvm_regex.cc from upstream has clang warnings
2025-08-02 15:03:09 -04:00
Wilson Snyder
12355270b3
Tests: Add uvm_dpi
2025-08-02 13:50:16 -04:00
Wilson Snyder
473d54aa95
Internals: Fis emit spacing etc. No functional change
2025-08-02 13:47:07 -04:00
Wilson Snyder
dca504c706
Internals: Use UINFOTREE istead of dumpTree
2025-08-02 13:44:40 -04:00
Wilson Snyder
7bb790f7e4
CI: Proactively use windows-2025
2025-08-01 12:05:53 -04:00
Ryszard Rozak
f9bdab65f0
Fix coverage of variables of complex types ( #6250 )
2025-08-01 13:24:18 +02:00
Szymon Gizler
61f4c97f40
Support unassigned virtual interfaces ( #5265 ) ( #6245 )
2025-08-01 12:39:13 +02:00
Rodrigo Batista de Moraes
d0f0919830
Fix write of 0 in '%c' ( #6248 ) ( #6249 )
2025-08-01 07:54:18 +02:00
Wilson Snyder
bd1ac03828
Add I/O versus data declaration checking.
2025-07-31 18:38:50 -04:00
Wilson Snyder
00948a45a3
Commentary: Changes update
2025-07-31 18:09:51 -04:00
Wilson Snyder
5faaa7ec58
Commentary ( #6246 )
2025-07-31 18:09:43 -04:00
Ryszard Rozak
d8f1e1113a
Fix error when force assignment is used with ref function args ( #6244 )
2025-07-31 12:48:37 +02:00
Wilson Snyder
9d38e63269
Remove error on missing forward declarations of typedef in class ( #6207 ).
2025-07-30 09:14:13 -04:00
Geza Lore
9d2adf3e49
Internals: Enable EmitV to output formatted code to std::ostream ( #6239 )
...
Introduce V3OutStream as a V3OutFormatter that writes to a stream
instead of a file. This can be used to emit formatted code fragments
e.g. in debug prints and graph dumps.
2025-07-30 13:41:21 +02:00
Igor Zaworski
2b62f5a625
Add error when trying to assign class object to variable of non-class types ( #6237 )
2025-07-30 09:48:02 +02:00
Wilson Snyder
0da9f6eb03
Fix queue typedef with unbounded slice ( #6236 ).
2025-07-28 19:36:52 -04:00
Wilson Snyder
2ff6ee9613
Support vpi_handle_by_name with $root..
2025-07-28 18:03:21 -04:00
Wilson Snyder
833c31b031
Add -DVERILATOR=1 definition to compiler flags when using verilated.mk.
2025-07-28 18:01:50 -04:00
Ryszard Rozak
a5b0a0d9dd
Add support for $countones in constraints ( #6144 ) ( #6235 )
2025-07-28 16:14:03 +02:00
Wilson Snyder
0bd291e6cd
Fix unused variable compile error ( #6222 partial)
2025-07-28 02:27:55 -04:00
Wilson Snyder
5c1d7f3ce9
Fix negate of wide structure selections ( #6186 ).
2025-07-28 02:20:57 -04:00
Wilson Snyder
e69df457fd
Fix MODDUP with duplicate packages to take first package ( #6222 ).
2025-07-28 01:45:03 -04:00
Wilson Snyder
47c5b220b3
Support non-ansi ports with wire before input
2025-07-27 17:13:56 -04:00
Wilson Snyder
64a82508f2
Fix error on with to give UNSUPPORTED ( #6134 )
2025-07-27 16:12:16 -04:00
Wilson Snyder
7c71bdf2d6
Commentary
2025-07-27 15:55:59 -04:00
Paul Swirhun
bd2cb989d1
Support bit queue streaming ( #5830 ) ( #6103 ).
2025-07-27 15:29:56 -04:00
github action
92a4bff047
Apply 'make format'
2025-07-27 14:31:15 +00:00
Wilson Snyder
d359fffcdc
Internals: Refactor V3Task and add loop assert ( #6218 )
2025-07-27 10:30:19 -04:00
Wilson Snyder
55b836e25a
Commentary: Changes update
2025-07-27 09:44:51 -04:00
Wilson Snyder
c4b3f1e99c
Tests: Add test and assert for nested simulated loops ( #6223 )
2025-07-27 09:43:46 -04:00
Geza Lore
895b85a16e
Fix Replicate with unsigned count but MSB set ( #6231 ) ( #6233 )
...
Correctly compute witdh of AstReplicate in its constructor when the
count is unsigned but its MSB is set.
2025-07-27 12:30:19 +02:00
Wilson Snyder
1725ee9c52
Fix loop initialization visibility outside loop ( #4237 ).
2025-07-27 03:42:41 -04:00
Wilson Snyder
d93abd002f
Internals: V3Unroll refactoring. No functional change intended
2025-07-27 03:36:41 -04:00
Wilson Snyder
470f99694e
Revert d8dbb08a: Support bit queue streaming ( #5830 ) ( #6103 )
2025-07-26 17:59:52 -04:00
Wilson Snyder
f3560837ec
Add error on missing forward declarations ( #6207 ).
2025-07-26 17:11:35 -04:00
Paul Swirhun
d8dbb08a95
Support bit queue streaming ( #5830 ) ( #6103 )
2025-07-26 16:53:51 -04:00
Wilson Snyder
c2e0f496bd
Internals: Free up 32 bits in FileLine.
...
Limits columns to 16M columns, or may report wrong column on such long lines.
Limits single token to 64K lines, or may report wrong line for that token.
2025-07-26 15:55:33 -04:00
Wilson Snyder
39a5c731ac
Tests: Fix missing forward decls ( #6202 partial)
2025-07-26 15:48:19 -04:00
Wilson Snyder
42e1c83875
Internals: Add some FileLine stats
2025-07-26 15:46:25 -04:00
Geza Lore
504884b7d5
Refactor DFG context objects ( #6232 )
...
- Move All DFG context objects to V3DfgContext.h
- Add separate object for ast2dfg and dfg2ast passes
- Factor out commonalities
No functional change
2025-07-26 20:37:01 +01:00
github action
94ef630490
Apply 'make format'
2025-07-26 06:45:26 +00:00
Wilson Snyder
d289934ca9
Improve --skip-identical to skip on identical input file contents ( #6109 ).
2025-07-26 02:43:57 -04:00
github action
20bd80698d
Apply 'make format'
2025-07-25 18:06:24 +00:00
George Polack
f1826a7c20
Support Verilog real to SystemC double ( #6136 ) ( #6158 )
2025-07-25 20:05:36 +02:00
Wilson Snyder
fa62cd3486
Fix --stats overridden by skipping identical build ( #6220 ).
2025-07-25 07:23:02 -04:00
Yilou Wang
10ac99ac05
Support randomization of scope variables with 'std::randomize()' ( #5438 ) ( #6185 )
2025-07-25 12:13:46 +02:00
Wilson Snyder
b408e097f6
Fix unsigned replicate ( #6229 )
2025-07-24 22:55:26 -04:00
Geza Lore
94bebb2bcb
Fix dereferencing stale iterator in DfgVertex::scopep() ( #6227 )
...
Fix dereferencing stale iterator in DfgVertex::scopep()
Fixes part of #6225
2025-07-24 15:31:31 +01:00
Geza Lore
2be257369a
Fix component numbers of new Vertices in V3DfgBreakCycles ( #6228 )
...
Fix component numbers of new Vertices in V3DfgBreakCycles
Fixes part of #6225
2025-07-24 15:31:09 +01:00
Artur Bieniek
04c38d5b3b
Tests: Switch to measuring CPU time instead of real time in test timeouts ( #6224 )
...
Signed-off-by: Artur Bieniek <[email protected] >
2025-07-24 11:27:02 +02:00
Wilson Snyder
4882a3c827
Commentary: Changes update
2025-07-24 02:44:54 -04:00
Wilson Snyder
e995646898
Internals: Favor std::array. No functional change intended.
2025-07-24 02:39:03 -04:00
Wilson Snyder
2287d420ee
Optimize to return memory when using -build ( #6192 ) ( #6226 ).
2025-07-24 08:36:58 +02:00
Wilson Snyder
db5b2669fc
Add current memory usage statistic ( #6192 partial)
2025-07-24 08:36:58 +02:00
Wilson Snyder
460bfbf181
Fix replicate of negative giving 'REPLICATE has no expected width' internal error ( #6048 ).
2025-07-23 18:07:50 -04:00
Wilson Snyder
050e5ddb5b
Fix internal error after bad method
2025-07-23 17:17:35 -04:00
Wilson Snyder
393f0e4acb
Tests: Example format
2025-07-23 14:58:58 -04:00
Geza Lore
7c5d462564
Remove AstJumpLabel ( #6221 )
...
Remove AstJumpLabel
AstJumpGo now references one if its enclosing AstJumpBlocks, and
branches straight after the referenced block.
That is:
```
JumpBlock a {
...
JumpGo(a);
...
}
// <--- the JumpGo(a) goes here
```
This is sufficient for all use cases and makes control flow much easier to
reason about. As a result, V3Const can optimize a bit more aggressively.
Second half of, and fixes #6216
2025-07-23 17:51:16 +01:00
Geza Lore
763183f067
Internals: Remove AstWhile::precondsp() ( #6219 ). No functional change intended.
2025-07-23 08:50:39 -04:00
Geza Lore
2958a5aaae
Internals: Do not emit temporaries for atomic assignments. ( #6217 )
...
Added test for a particularly convoluted case requiring fixup in
V3Premit. To help with statistics stability, also prevent V3Premit from
introducing temporaries for assignment where the RHS reads the LHS, but
the assignment is known to be atomic (by emitted C++ semantics).
Also rename `createWideTemp` to `createTemp`, as it is used for non-wide
expressions as well.
2025-07-23 11:48:55 +02:00
Geza Lore
344fabf56a
Fix incorrect assumption in V3DfgDecomposition ( #6215 )
...
Due to SCC merging the deleted assumption/assertion can be violated.
Fixes #6211 .
2025-07-22 14:03:35 +01:00
Geza Lore
9f04ee68c8
Optimize combinational cycles through arrays in DFG ( #6210 )
...
Extending V3DfgBreakCycles to handle common cases involving unpacked
arrays.
2025-07-22 08:23:45 +01:00
github action
b5126a6abe
Apply 'make format'
2025-07-21 23:29:42 +00:00
Danny Oler
74d4b0c0ea
Fix automatic task variables in unrolled loops with forks ( #6194 ) ( #6201 ).
2025-07-21 19:28:50 -04:00
Geza Lore
7401a8a43a
Refactor DFG IndependentBits analysis to work for any vertex. ( #6209 )
...
This used to be restricted to variable vertices, but now can handle
arbitrary circular vertices that represent packed values. It also
converges faster than the earlier version. Prep for resolving loops
through arrays.
2025-07-21 19:57:02 +01:00
Geza Lore
7646e7d89c
Exclude SystemC variables from DFG ( #6208 )
...
SystemC variables are fairly special (they can only be assigned to/from,
but not otherwise participate in expressions), which complicates some
DFG code. These variables only ever appear as port on the top level
wrapper, so excluding them from DFG does not make us loose any
optimizations, but simplifies internals.
2025-07-21 18:32:08 +01:00
Geza Lore
a8dca71ed0
Support more complex combinational assignments in DFG. ( #6205 )
...
Previously DFG was limited to having a Sel, or an ArraySel potentially
under a Concat on the LHS of combinational assignments. Other forms or
combinations were not representable in the graph.
This adds support for arbitrary combinations of the above by
combining DfgSplicePacked and DfgSpliceArray vertices introduced in
#6176 . In particular, Sel(ArraySel(VarRef,_),_) enables a lot more code
to be represented in DFG.
2025-07-21 12:33:12 -04:00
Igor Zaworski
98b8d43a4a
Fix parameter-dependent type linking ( #6170 )
2025-07-21 07:30:10 -04:00
Bartłomiej Chmiel
d419c49921
Internals: Fix unused variable, no functional change ( #6204 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-07-21 07:28:01 -04:00
Max Wipfli
a50ea2a1a6
Optimize 2 ** X to 1 << X if base is signed ( #6203 )
2025-07-20 09:56:34 -04:00
Wilson Snyder
078bb21a89
Add wire data type checking per IEEE.
2025-07-20 07:21:30 -04:00
Wilson Snyder
b8b9478938
Improve enum base type checking error message.
2025-07-19 22:37:07 -04:00
Wilson Snyder
f535a73ea7
Commentary: Changes update
2025-07-19 21:12:23 -04:00
Wilson Snyder
641e0e5672
Internals: Fix assertion if bad display
2025-07-19 21:12:10 -04:00
Ibrahim Burak Yorulmaz
9d146eae16
Fix VPI signal range order ( #6189 ) ( #6200 )
2025-07-19 20:22:02 -04:00
Wilson Snyder
7d43a935bd
Add SPECIFYIGN warning for specify constructs that were previously silently ignored.
2025-07-18 19:32:34 -04:00
Yilou Wang
9b99d9697f
Fix virtual interface member propagation ( #6175 ) ( #6184 )
2025-07-18 09:07:31 -04:00
Ryszard Rozak
a21ecb2ab9
Add support for randomize..with on objects of aliased types ( #6195 )
2025-07-18 13:04:47 +02:00
Ryszard Rozak
28808f38bb
Dump function to which AstAddrOfCFunc points ( #6188 )
2025-07-18 08:37:00 +02:00
Wilson Snyder
7a6775ca84
Internals: Rename memPeakUsageBytes
2025-07-17 22:16:59 -04:00
Wilson Snyder
e527ff49a3
Report --stats final results after build phase
2025-07-17 20:41:46 -04:00
Wilson Snyder
c1506deef9
Add enum base type checking per IEEE.
2025-07-17 20:20:43 -04:00
Wilson Snyder
87050670b4
Fix structure select causing 'Wide Op' error ( #6191 ).
2025-07-17 18:17:49 -04:00
Wilson Snyder
fb1373b854
Tests: Reformat. Ignore whitespace if comparing. No test functional change.
2025-07-16 21:31:40 -04:00
Wilson Snyder
7f1011e5f7
Make some CVTREAL fatal where IEEE requires it.
2025-07-16 18:07:07 -04:00
Wilson Snyder
7a32771c7e
Commentary: Changes update
2025-07-16 17:26:01 -04:00
Wilson Snyder
94b043d6c9
Internals: Print versions with make format
2025-07-16 17:25:22 -04:00
Igor Zaworski
8c5ba3a0d7
Fix conflicting function/class name linking error ( #6182 )
2025-07-16 17:25:01 -04:00
Igor Zaworski
826e5b0826
Fix --coverage-expr null pointer dereference ( #6181 )
2025-07-16 12:07:34 -04:00
Artur Bieniek
abd509ce53
Support delays in emitted Verilog ( #6177 )
2025-07-16 11:52:56 -04:00
Ryszard Rozak
1bf24c7eb4
Add support for disabling begin just under fork from outside that begin ( #5432 partial) ( #6183 )
2025-07-16 16:04:17 +02:00
Wilson Snyder
1f0357ba93
Add NOEFFECT warning, replacing previous foreach error.
2025-07-16 08:18:57 -04:00
Wilson Snyder
db6b17fdb4
Fix error message
2025-07-15 17:41:08 -04:00
Artur Bieniek
f3e109d8c5
Support covergroup extends, etc. ( #6160 )
2025-07-15 09:31:08 -04:00
Wilson Snyder
371ac07c6f
Fix CVTREAL not being able to be disabled in e.g. primitive terminals.
2025-07-14 20:08:44 -04:00
Wilson Snyder
caf3522364
Support implicit enum declarations with packed dimensions
2025-07-14 19:50:02 -04:00
Geza Lore
03e0d49d99
Optimize DFG partial assignments ( #6176 )
...
This is mostly a refactoring, but also enables handling some more
UNOPTFLAT, when the variable is only partially assigned in the cycle.
Previously the way partial assignments to variables were handled were
through the DfgVerexVar types themselves, which kept track of all
drivers. This has been replaced by DfgVertexSplice (which always drives
a DfgVeretexVar), and all DfgVertexVar now only have a single source,
either a DfgVertexSplice, if partially assigned, or an arbitrary
DfgVertex when updated as a whole.
2025-07-14 17:09:34 -04:00
Ryszard Rozak
e2e5d9eaf1
Support disabling a fork from outside that fork ( #6174 )
2025-07-14 06:51:58 -04:00
Wilson Snyder
2f199f20cf
Add ENUMITEMWIDTH error, and apply to X-extended and ranged values.
2025-07-12 14:14:17 -04:00
Wilson Snyder
cefe1845df
Commentary: Changes update
2025-07-11 21:53:29 -04:00
Yilou Wang
1044398f95
Support member-level triggers for virtual interfaces ( #5166 ) ( #6148 )
2025-07-11 21:04:51 -04:00
Geza Lore
77180c4020
Optimize more cycles in DFG ( #6173 )
...
Added a second algorithm to break cycles in DFG by identifying which
bits of a circular variable are actually independent of the variable,
then reuse the existing (but extended) driver tracing algorithm to
eliminate them.
This can fix up things like: `assign gray = binary ^ (gray >> 1)`
2025-07-11 14:19:09 -04:00
github action
2fc12d951e
Apply 'make format'
2025-07-11 17:11:31 +00:00
Petr Nohavica
0982260d3b
Fix constructor parameters in inheritance hierarchies ( #6036 ) ( #6070 )
2025-07-11 13:10:36 -04:00
Artur Bieniek
58b867c39c
Support multiple variables on RHS of a force assignment ( #6163 )
2025-07-10 21:12:44 -04:00
Igor Zaworski
4e8a8a0398
Fix param-dependent class typedef linking ( #6171 )
2025-07-10 21:11:09 -04:00
Artur Bieniek
4dc6a31276
Fix omitting error when assigning to an input ( #6169 )
2025-07-10 20:37:55 -04:00
Geza Lore
ce77bac99a
Break some combinational cycles in DFG ( #6168 )
...
Added an algorithm that can break some combinational cycles in DFG, by
attempting to trace driver logic until we escape the cycle. This can
eliminate a decent portion of UNOPTFLAT warnings. E.g. due to this code:
```systemverilog
assign a[0] = .....;
assign a[1] = ~a[0];
```
2025-07-10 18:46:45 +01:00
Igor Zaworski
31c279a7b3
Support randomize() on class member selects ( #6161 )
2025-07-10 04:59:05 -04:00
Bartłomiej Chmiel
9ad0de1efd
Fix uninitialized thread PGO counters ( #6167 )
2025-07-10 04:56:14 -04:00
Wilson Snyder
d89df33fcd
Change control file public_flat_* and other signal attributes to support __ in names ( #6140 ).
2025-07-09 20:48:00 -04:00
Martin Stadler
d1462f3120
Fix cmake -Wno compiler flag testing ( #6145 )
2025-07-09 19:31:42 -04:00
Wilson Snyder
9fc7143fce
Fix genvar error with -O0 ( #6165 ).
2025-07-09 19:11:48 -04:00
Wilson Snyder
597b973f7b
Internals: Fix some style issues. No functional change.
2025-07-09 18:52:26 -04:00
Wilson Snyder
a84c5d2010
Commentary: Changes update
2025-07-09 18:51:49 -04:00
Igor Zaworski
dbfbc657e1
Fix class extends dotted error ( #6162 )
2025-07-09 17:12:11 -04:00
Ryszard Rozak
8b3a6ba542
Support disable dotted references ( #6154 )
2025-07-09 16:59:26 -04:00
Wilson Snyder
8ba7cec15b
devel release
2025-07-08 23:22:58 -04:00
Wilson Snyder
f037ac50b4
Version bump
2025-07-08 23:02:26 -04:00
Wilson Snyder
1f0e767b61
Commentary: Changes update
2025-07-08 17:37:21 -04:00
Igor Zaworski
5777ab75c7
Fix crash with --dumpi-V3LinkDot without --debug ( #6159 )
2025-07-08 10:28:17 -04:00
Geza Lore
e494cf22a4
Add DfgPeephole patterns ( #6149 )
2025-07-07 16:25:29 +01:00
Wilson Snyder
5a6d5ed96b
Support property iff and implies.
2025-07-03 21:13:04 -04:00
Wilson Snyder
26c7f1adb6
Tests: Change default indent to 2 spaces (match edaplayground). No functional change.
2025-07-03 20:43:13 -04:00
Wilson Snyder
f77af4e6f6
Important: Change --assert to be the default; use --no-assert for legacy behavior and faster runtimes.
2025-07-03 19:36:28 -04:00
Wilson Snyder
1cd65e90bd
Commentary: Changes update
2025-07-03 19:11:09 -04:00
Wilson Snyder
e3c7dee6ef
Internals: Add UINFOTREE method
2025-07-03 19:07:50 -04:00
Wilson Snyder
6c9cbaef62
Internals: Clean up some constructors. No functional change intended.
2025-07-03 18:59:32 -04:00
Todd Strader
08fef668cd
Fix more wide ternary + coverage cases ( #6155 )
2025-07-03 18:00:39 -04:00
Tobias Rosenkranz
92970bd9a0
Update docker base image to Ubuntu 24.04 ( #6147 )
2025-07-03 15:29:03 -04:00
Paul Swirhun
e0c3b42262
Fix developer build error on MacOS/Flex2.6.4 ( https://github.com/verilator/verilator/pull/6153 )
2025-07-02 19:56:10 -07:00
Wilson Snyder
4ddc649836
Add UNSUPPORTED rather than syntax error on pullup/pulldown strengths
2025-07-02 20:54:47 -04:00
Wilson Snyder
77908447e6
Support scoped new ( #4199 ).
2025-07-02 19:54:57 -04:00
Wilson Snyder
bb41c6b26b
Internals: Fix wrong fileline on some parsing scan-aheads.
2025-07-02 18:47:27 -04:00
Todd Strader
ae0f29ed37
Fix wide non-blocking assignment mis-optimization ( #6150 ) ( #6152 )
2025-07-02 18:43:10 -04:00
Wilson Snyder
73ca2ab997
Support $past_gclk
2025-07-01 18:00:04 -04:00
Geza Lore
7a3f1f16ca
Optimize DFG before V3Gate ( #6141 )
2025-07-01 17:55:08 -04:00
Wilson Snyder
e015805194
Fix stripping on randomize ( #6144 partial)
2025-07-01 08:57:08 -04:00
Wilson Snyder
73da5e51a6
Commentary: Changes update
2025-07-01 08:07:54 -04:00
Wilson Snyder
9598ef9315
Internals: Avoid - in enum name
2025-07-01 05:45:10 -04:00
Wilson Snyder
cd0f35fe67
Fix recursive module assertion, broken recent lib commit ( #5891 partial fix)
2025-06-30 20:30:27 -04:00
Wilson Snyder
d455ec6229
Fix specparam PATHPULSE broken recent commit ( #6142 ).
2025-06-30 18:33:50 -04:00
Tobias Rosenkranz
db854fc3d2
Improve docker image size ( #6139 )
2025-06-30 08:04:18 -04:00
github action
b27bd6526a
Apply 'make format'
2025-06-30 01:00:56 +00:00
Wilson Snyder
916a89761e
Add --work library-selection option ( #5891 partial).
2025-06-29 20:17:27 -04:00
Geza Lore
c3d86626ee
Internals: Remove unused AstNodeModule 'activesp' child ( #6138 )
2025-06-29 09:56:44 -04:00
Wilson Snyder
5d32fc56ac
Support 'config' parsing, but not functionally
2025-06-28 20:32:19 -04:00
Wilson Snyder
93f447dd4a
Support constant functions with left-hand-side concatenates.
2025-06-28 17:12:03 -04:00
Geza Lore
bc892deacc
Safely support non-overlapping blocking/non-blocking assignments ( #6137 )
...
The manual for the BLKANDNBLK warning describes that it is safe to
disable that error if the updated ranges are non-overlapping. This
however was not true (see the added t_nba_mixed_update* tests).
In this patch we change V3Delayed to use a new ShadowVarMasked
scheme for variables that have mixed blocking and non-blocking
updates (or the FlagUnique scheme for unpacked variables), which
is in fact safe to use when the updated parts are non-overlapping.
Furthermore, mixed assignments are safe as far as scheduling is
concerned if either:
- They are to independent parts (bits/members/etc) (with this patch)
- Or if the blocking assignment is in clocked (or suspendable) logic.
The risk in scheduling is a race between the Post scheduled NBA
commit, and blocking assignments in combinational logic, which might
order incorrectly.
The second point highlights that we can handle stuff like this safely,
which is sometimes used in testbenches:
```systemverilog
always @(posedge clk) begin
if ($time == 0) a = 0;
end
always @(posedge clk) begin
if ($time > 0) a <= 2;
end
````
The only dangerous case is:
```systemverilog
always @(posedge clk) foo[idx] <= val;
assign foo[0] = bar;
```
Whit this patch, this will still resolve fine at run-time if 'idx' is
never zero, but might resolve incorrectly if 'idx' is zero.
With the above in mind, the BLKANDNBLK warning is now only issued if:
- We can't prove that the assignments are to non-overlapping bits
- And the blocking assignment is in combinational logic
These are the cases that genuinely require user attention to resolve.
With this patch, there are no more BLKANDNBLK warnings in the RTLMeter
designs.
Fixes #6122 .
2025-06-28 20:45:45 +01:00
Wilson Snyder
b914cda1c7
Internals: cppcheck cleanups. No functional change.
2025-06-28 12:29:41 -04:00
Wilson Snyder
62e5e3aa0c
Fix interface array connections with non-zero low declaration index.
2025-06-28 09:43:02 -04:00
Wilson Snyder
f508dadc97
Support specparam ( #5767 ).
2025-06-28 08:23:43 -04:00
Wilson Snyder
189d094202
Commentary
2025-06-27 22:31:51 -04:00
Wilson Snyder
3defaf8ffb
Rename Verilator Config Files to Verilator Control Files.
...
Avoids conflict with IEEE `config`. No functional change intended.
2025-06-27 20:38:01 -04:00
Todd Strader
73696f0a71
Tests: Add coverpoints test ( #6118 )
2025-06-27 15:47:13 -04:00
Wilson Snyder
17c2512d03
Fix pre_randomize/post_randomize when no randomize ( #6128 ).
2025-06-26 18:35:49 -04:00
Wilson Snyder
75229cc03d
Fix pre_randomize/post_randomize when no randomize ( #6122 ).
2025-06-26 18:34:20 -04:00
Wilson Snyder
e422c183ff
Fix method calls without parenthesis ( #6127 ).
2025-06-26 18:16:21 -04:00
Wilson Snyder
68e1ed55f6
Commentary: Changes update
2025-06-26 17:42:10 -04:00
Wilson Snyder
993f65f3b4
Internals/CI: Format cmakefiles using mbake
2025-06-26 17:36:56 -04:00
Wilson Snyder
2c5e9a785a
Standardize indent of emitted makefile
2025-06-26 17:36:15 -04:00
Kamil Rakoczy
d183b4edde
Fix variables declared in fork after taskify ( #6126 )
2025-06-26 10:28:58 -04:00
Geza Lore
818e6d3ebf
Disable Vortex:sane:sgem pending fix
...
This design has a BLKANDNBLK warning which might or might not cause
problems depending on how the ordering ended up. See #6122 .
2025-06-26 10:57:51 +01:00
Wilson Snyder
2df0390c04
Commentary
2025-06-25 21:14:25 -04:00
Wilson Snyder
6cd0948c8c
Internals: Standardize Makefile indents. No functional change intended.
2025-06-25 21:10:46 -04:00
Wilson Snyder
3209bee3b3
Fix colon-divide operator without space ( #6121 ).
2025-06-25 04:56:52 -04:00
Wilson Snyder
88d0d85ca6
Internals: Apply format-yaml. No functional change.
2025-06-24 18:29:38 -04:00
Wilson Snyder
51545b36ca
Internals: Add format-make rule and standardize Makefile indents. No functional change intended.
2025-06-24 17:58:55 -04:00
Wilson Snyder
6af694b04b
Support $timeformat with missing arguments ( #6113 ).
2025-06-24 17:30:05 -04:00
Wilson Snyder
f9f70383fa
Fix instability in non-data type internal error
2025-06-24 17:29:44 -04:00
Geza Lore
916d473eff
Internals: Replace unnecessary AstSel::widthp() child node with const in node ( #6117 )
2025-06-24 11:59:09 -04:00
Wilson Snyder
a9e9ab50bd
Commentary: Changes update
2025-06-23 18:40:49 -04:00
Wilson Snyder
544cb4a90f
Fix decoding octal string escapes with 1-2 digits ( #6108 ).
2025-06-23 18:37:44 -04:00
Wilson Snyder
11998ccc58
Revert requiring C++20 until SystemC sorted ( #6101 ) ( #6107 )
2025-06-23 18:35:26 -04:00
Geza Lore
2daa09a255
Optimize constify within Expand and Subst ( #6111 )
...
These passes blow up the Ast size on some designs, so delaying running V3Const
until after the whole pass can notably increase peak memory usage. In this
patch we apply V3Const per CFunc within these passes, which saves on memory.
Added -fno-const-eager to disable the intra-pass V3Const application, for
debugging.
2025-06-23 17:58:26 -04:00
Geza Lore
d35e4a2b60
Improve memory usage for SenTrees in V3OrderProcessDomains ( #6112 )
2025-06-23 14:22:10 -04:00
Wilson Snyder
c0b505849c
Require C++20 for configure ( #6101 ) ( #6107 )
2025-06-22 08:21:21 -04:00
Wilson Snyder
49fe129634
Fix --lib-create with double-underscore ( #6099 ).
2025-06-18 08:56:32 -04:00
Peter Birch
75df36bc8f
Add hint of the signed rhsval in oversized replication error ( #6098 )
2025-06-17 16:59:18 -07:00
Geza Lore
48600c77b5
Fix DFG binToOneHot table index missing driver ( #6100 )
2025-06-17 15:53:47 +01:00
Wilson Snyder
5b410e9331
CI: Add actor to help cancel-in-progress group ( #6097 )
2025-06-16 17:44:06 -07:00
Geza Lore
277611bcdd
Add DFG binToOneHot pass to generate one-hot decoders ( #6096 )
...
Somewhat commonly, there is code out there that compares an expression (or
variable) against many different constants, e.g. a one-hot decoder:
```systemverilog
assign oneHot = {x == 3, x == 2, x == 1, x == 0};
```
If the width of the expression is sufficiently large, this can blow up
a GCC pass and take an egregious amount of memory and time to compile.
Adding a new DFG pass that will generate a cheap one-hot decoder:
to compute:
```systemverilog
wire [$bits(x)-1:0] idx = <the expression being compared many times>
reg tab [1<<$bits(x)] = '{default: 0};
reg [$bits(x)-1:0] pre = '0;
always_comb begin
tab[pre] = 0;
tab[idx] = 1;
pre = idx ; // This assignment marked to avoid a false UNOPFTLAT
end
```
We then replace the comparisons `x == CONST` with `tab[CONST]`.
This is generally performance neutral, but avoids the compile time and memory
blowup with GCC (128GB+ -> 1GB in one example).
We do not apply this if the comparisons seem to be part of a `COMPARE ?
val : COND` conditional tree, which the C++ compilers can turn into jump
tables.
This enables all XiangShan configurations from RTLMeter to now build with GCC,
so in this patch we enabled those in the nightly runs.
2025-06-16 23:14:24 +01:00
Geza Lore
de2818c733
Add RTLMeter badge and note in internals docs ( #6095 )
2025-06-16 16:35:31 +01:00
Geza Lore
832629c602
Internals: Refactor DFG getCanonicalVariable for reusability ( #6094 )
...
This changes hashed names in the generated code, but otherwise no
functional change.
2025-06-16 07:25:44 -04:00
Geza Lore
5e5b5ab69d
Restrict Dfg PUSH_SEL_THROUGH_CONCAT pattern ( #6092 )
...
This pattern is bit dubious and can blow up the size of the logic.
Restrict it to only apply if it strictly does not increase DFG size.
2025-06-15 18:10:42 -04:00
Wilson Snyder
173e9d2a94
Commentary: Changes update
2025-06-15 14:52:28 -04:00
Wilson Snyder
4c2eb8c0b8
Commentary: Fix broken links
2025-06-15 14:51:56 -04:00
Geza Lore
d059806dbd
Fix Dfg eliminateVar pass to remove more variables ( #6091 )
...
Failing to reset the work list pointer in vertices leads to not removing
some redundant variables if they become redundant after having been
considered once already.
2025-06-15 18:12:37 +01:00
Geza Lore
bca2e2c16e
Optimize DFG De Morgan patterns ( #6090 )
...
It's ok if the replaced vertex has multiple sinks, this pattern cannot
increase the size of logic even then.
2025-06-15 11:00:11 -04:00
Todd Strader
47f5a6a52b
Fix unpacked to packed parameter assignment ( #6088 ) ( #6081 )
2025-06-12 12:47:58 -04:00
Todd Strader
206a0b4fd2
Fix casting reals to large integrals ( #6085 )
2025-06-12 11:53:10 -04:00
Bartłomiej Chmiel
dc307270f7
Fix nested hier blocks workers error ( #6087 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-06-12 07:15:46 -04:00
Wilson Snyder
4990b44120
Fix trace hierarchicalName runtime errors ( #5668 ) ( #6076 ).
2025-06-10 20:17:32 -04:00
Paul Swirhun
4925f9ad73
Support 1-bit params with -G and -pvalue ( #6051 ) ( #6082 )
2025-06-10 17:39:13 -04:00
Paul Swirhun
ac06b6fc4f
Fix streaming operator packing order ( #5903 ) ( #6077 )
2025-06-10 17:23:16 -04:00
Kamil Rakoczy
58ea7ad361
Fix class typedef elaboration ( #6080 )
2025-06-10 12:03:26 -04:00
Wilson Snyder
75a36a6ef8
Commentary: Changes update
2025-06-10 08:22:43 -04:00
Wilson Snyder
b553502d8a
Fix number dumps to show 'null'
2025-06-10 08:17:45 -04:00
Wilson Snyder
1c357ba508
Commentary
2025-06-10 08:17:45 -04:00
Bartłomiej Chmiel
86d2ea8c70
Optimize DPI temporary 'for' loop performance ( #6079 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-06-10 08:17:26 -04:00
Geza Lore
07394fcafa
Automatically publish scheduled RTLMeter results ( #6074 )
...
Update RTLMeter workflow to automatically push the performance numbers
from scheduled (nightly) runs to verilator/verilator-rtlmeter-results
2025-06-10 13:06:05 +01:00
Todd Strader
d9534ec626
Fix x assign vs init randomization ( #6075 )
2025-06-09 17:59:01 -04:00
Geza Lore
a6bae7f196
DFG peephole: Only push SEL through COND when SEL is the only sink. ( #6071 )
...
This avoids potential O(n) logic duplication where 'n' is the fanout of
the COND node.
Fixes #6064 .
2025-06-08 11:12:39 +01:00
Wilson Snyder
5b2dc52681
Fix array bounds checking with class member selects ( #5996 ) ( #5997 ).
2025-06-07 17:20:48 -04:00
Todd Strader
a044697990
Fix signed cast ( #6912 ) ( #6068 )
2025-06-06 21:13:31 -04:00
Wilson Snyder
54e637c72b
Fix --skip-identical skipping on some errors ( #6066 ).
2025-06-06 17:18:02 -04:00
Wilson Snyder
db03b95389
Commentary: Changes update
2025-06-06 17:17:25 -04:00
Todd Strader
d49efa79df
Fix type operator for interface signals ( #6050 ) ( #6049 )
2025-06-06 11:29:33 -04:00
Todd Strader
9fc223d3ee
Commentary: FPGA PROCASSINIT guidance ( #6067 )
2025-06-06 09:59:05 -04:00
Ryszard Rozak
1a3fd92063
Tests: Fix t_interface_array2 tests ( #6065 )
2025-06-06 06:28:29 -04:00
Wilson Snyder
ed46878f7b
Fix virtual interface array typedef expressions ( #6057 ).
2025-06-04 21:43:46 -04:00
Wilson Snyder
593da4e38f
Internals: Fix missing const. No functional change.
2025-06-04 21:43:30 -04:00
Todd Strader
cfbcfd913c
Fix packed array deduction ( #6046 )
2025-05-31 07:55:00 -04:00
Wilson Snyder
79de1ff507
Fix WIDTHCONCAT on packed pattern assignment ( #6045 ).
2025-05-31 07:38:15 -04:00
Nick Brereton
8a8f04153a
Fix method calls and new to access interface arrays ( #5973 )
2025-05-29 22:11:47 -04:00
Wilson Snyder
8031ca2616
Add MODMISSING error, in place of unnamed error ( #6054 ).
2025-05-29 21:02:00 -04:00
Wilson Snyder
40881d7e79
Commentary: Changes update
2025-05-29 18:59:51 -04:00
Wilson Snyder
b0d1f720e0
Tests: Rename t_dpi_instr_count_large
2025-05-29 18:58:22 -04:00
Bartłomiej Chmiel
7dbe4f1807
Fix V3OrderParallel scoring contraction hang ( #6052 )
2025-05-29 10:31:57 -04:00
Todd Strader
5fcd0e52e7
Fix casting to arrays of enums ( #6044 )
2025-05-27 21:14:09 -04:00
Todd Strader
76aced4d40
Fix parameter types of user defined arrays ( #6042 )
2025-05-27 18:35:21 -04:00
Todd Strader
66259d8909
Fix GCC 10 read-only linker error ( #6040 )
2025-05-27 10:11:56 -04:00
Todd Strader
4b041c636f
Fix --x-initial and --x-assign random stability ( #2662 ) ( #5958 ) ( #6018 ) ( #6025 )
2025-05-27 09:31:55 -04:00
Paul Swirhun
e84fe36518
Tests: Add test coverage for stream to packed N-dim arrays ( #6039 )
2025-05-26 09:50:40 -04:00
Bartłomiej Chmiel
9cc4cc0efd
Add --hierarchical-threads ( #6037 )
2025-05-26 09:37:35 -04:00
Paul Swirhun
c9fa54536e
Tests: Fix MacOS test driver when child process finishes ( #6032 ) ( #6038 )
...
os.read(fd, 1) returns b'' on MacOS when the
child process exits, whereas it must be throwing an OSError
on other platforms.
2025-05-26 08:58:20 -04:00
Petr Nohavica
22d484d54d
Fix associative arrays with enum keys ( #6034 ) ( #6035 )
2025-05-24 17:59:23 -04:00
Ryszard Rozak
90d4cf1361
Internals: V3Coverage cleanup. No functional change. ( #6033 )
2025-05-23 17:38:34 -04:00
Wilson Snyder
7c427d4cc3
Sort compile options to force ccache miss
2025-05-22 21:32:34 -04:00
Wilson Snyder
46c7b69c64
Internals: UINFO now includes newline itself. No functional change.
2025-05-22 20:29:32 -04:00
Wilson Snyder
091be59f0d
Tests: Use make -j when few tests.
2025-05-22 17:53:04 -04:00
Wilson Snyder
af30436357
Internals: Rename VL_PACK/VL_UNPACK in prep for future fix. No functional change intended.
2025-05-22 06:54:16 -04:00
Wilson Snyder
7b2dc46399
Commentary: Changes update
2025-05-22 06:45:39 -04:00
Ryszard Rozak
2491f25da7
Add filtering type option in verilator_coverage ( #6030 )
2025-05-22 02:42:09 -07:00
Todd Strader
d400584460
Fix concatenation and type casting ( #6012 ) ( #6013 )
2025-05-21 08:41:29 -04:00
Wilson Snyder
de08655c5b
Internals: Fix some legacy casts. No functional change.
2025-05-20 22:51:54 -04:00
Wilson Snyder
f8359adcc0
Commentary: Changes update
2025-05-20 22:51:07 -04:00
github action
a227aad13d
Apply 'make format'
2025-05-20 23:46:57 +00:00
Joel Bodenmann
80ea173390
Add missing FreeBSD include ( #6027 ) ( #6028 )
...
Fixes #6027
2025-05-20 16:46:07 -07:00
Bartłomiej Chmiel
6d257ef52c
Improve hierarchical scheduling visualization in V3ExecGraph ( #6009 )
2025-05-20 12:15:09 -04:00
Shou-Li Hsu
25cb31c38b
Add aggregate type error checks ( #5570 ) ( #5950 )
2025-05-20 09:10:22 -04:00
Ryszard Rozak
bed0456eca
Add ternary operator into branch coverage ( #5880 )
2025-05-19 09:35:35 -04:00
Wilson Snyder
ad08302e5f
Support parameter forward types.
2025-05-19 08:35:38 -04:00
Geza Lore
f74c67da46
CI: Add variable to explicitly enable some GitHub workflows ( #6021 )
...
To run scheduled instances of the RTLMeter or coverage workflows, the
ENABLE_SCHEDULED_JOBS variable must explicitly be set to 'true' in the
repository settings. This enables each fork to decide whether to run the
scheduled instances or not.
2025-05-18 21:13:37 -04:00
Wilson Snyder
27eb8cfe8a
Fix extraneous WIDTH warning on assoc.exists()
2025-05-18 11:25:25 -04:00
Yutetsu TAKATSUKASA
b26658fd96
Fix wrong optimization result of shifted out variable ( #6016 ) ( #6019 )
2025-05-18 07:18:37 -04:00
Wilson Snyder
0c8c7fb03c
Remove symbol table from parser: Support redeclaring type as non-type; major parsing change ( #2412 ).
2025-05-18 07:13:37 -04:00
Wilson Snyder
6bb16d6c52
Disable symbol from parser: Support redeclaring type as non-type; major parsing change ( #2412 ).
2025-05-18 07:13:37 -04:00
Wilson Snyder
2c465d9741
Internals: Fix MSVC warning.
2025-05-17 22:56:59 -04:00
Wilson Snyder
19be36dbcb
Tests: Cleanup some type tests
2025-05-17 21:09:05 -04:00
Wilson Snyder
3b632739a8
Internals: Add RequireDType and check for recursive data types, in prep for future parser.
2025-05-17 20:40:03 -04:00
Wilson Snyder
640339ec36
Revert 'Fix --x-initial and --x-assign random stability ( #2662 ) ( #5958 ).' See ( #6018 ).
...
Reverts 4581023805 plus line in Changes file
2025-05-17 20:27:03 -04:00
Wilson Snyder
647404ec1e
Tests: Improve warning coverage
2025-05-17 16:28:09 -04:00
Wilson Snyder
338a456f09
Commentary: Changes update
2025-05-17 15:48:01 -04:00
Wilson Snyder
66667b6172
Support SARIF JSON diagnostic output with --diagnostics-sarif. ( #6017 )
2025-05-17 15:46:15 -04:00
Wilson Snyder
7a5c223ccf
Tests: Improve warning coverage
2025-05-16 22:32:25 -04:00
Wilson Snyder
2dbe897e1b
Add security policy
2025-05-16 22:08:12 -04:00
Zhen Yan
fc700538a5
Fix arithmetic left-shift by constants over 32 bits ( #6007 ) ( #6015 )
2025-05-16 21:57:52 -04:00
github action
8d3b47a18a
Apply 'make format'
2025-05-16 23:16:40 +00:00
Wilson Snyder
1bcd5ee0c1
Fix spelling
2025-05-16 19:02:19 -04:00
Wilson Snyder
9430960b18
Commentary: Changes update
2025-05-16 18:59:35 -04:00
Todd Strader
4581023805
Fix --x-initial and --x-assign random stability ( #2662 ) ( #5958 )
2025-05-16 13:54:51 -04:00
Ryszard Rozak and Tomasz Gorochowik
73b3648262
Fix skipped genblocks in toggle coverage ( #6010 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
Co-authored-by: Tomasz Gorochowik <[email protected] >
2025-05-16 08:24:57 -04:00
Zhen Yan
6b42d789af
Fix checking for too-wide divide and modulus ( #6003 ) ( #6006 )
2025-05-15 10:43:45 -04:00
Ryszard Rozak
6db599da45
Fix slicing of AstExprStmt nodes ( #6005 )
2025-05-14 11:55:02 -04:00
Geza Lore
2f6ecd1853
Fix folding of LteS in DfgPeephole ( #6004 )
...
Fixes #6000
2025-05-14 13:33:20 +01:00
Wilson Snyder
4c4fdb5dfe
Internals: Refactor some JSON and error code
2025-05-13 22:26:15 -04:00
Wilson Snyder
3dfd53a549
CI: Move coverage + contributor actions to 24.04
2025-05-13 22:21:21 -04:00
Ryszard Rozak
91c52a4972
Support for assignments to concatenations with impure RHS ( #6002 )
2025-05-12 19:19:38 -04:00
Wilson Snyder
ac2313ecb7
Fix some errors exceeding the --error-limit
2025-05-11 22:36:40 -04:00
Wilson Snyder
8100bc64a0
Commentary
2025-05-11 22:36:16 -04:00
Wilson Snyder
aee5051526
CI: Reduce action permissions per best practices
2025-05-11 17:43:48 -04:00
Wilson Snyder
0162e15b6e
Tests: Rename property tests
2025-05-11 08:24:11 -04:00
Dominick Grochowina
295fae0edc
Fix nullptr segfault in VerilatedVcd::emitTimeChange() ( #5980 )
2025-05-11 08:01:13 -04:00
Wilson Snyder
fe4ad7de64
Internals: Use magic string for warnMore so lock-free.
2025-05-10 18:06:33 -04:00
Wilson Snyder
680236b03e
Internals: Redo post-error additional information to be part of error calls.
2025-05-10 16:20:12 -04:00
Wilson Snyder
0f528d136d
Fix arithmetic right-shift by constants over 32 bits ( #5994 ).
2025-05-10 13:59:56 -04:00
Wilson Snyder
d9dcde60a6
Fix duplicate error first-lines, and some internal V3Error cleanups
2025-05-10 13:29:30 -04:00
Wilson Snyder
d0424862f9
Commentary: Changes update
2025-05-10 13:22:26 -04:00
Yutetsu TAKATSUKASA
100e3d7702
Fix const-bit-op-tree with single-bit masks ( #5993 ) ( #5998 )
2025-05-10 06:01:15 -04:00
Wilson Snyder
d22608a49f
Internals: Refactor common V3JsonFile. No functional change.
2025-05-09 22:00:29 -04:00
Wilson Snyder
5d0fd8b9a7
Commentary
2025-05-09 21:22:17 -04:00
Wilson Snyder
7191a0ba8b
Internals: Favor preincrements. No functional change.
2025-05-09 21:20:35 -04:00
Ryszard Rozak
c2d289dc71
Tests: Fix t_math_signed3 test ( #5995 )
2025-05-09 11:09:33 -04:00
Bartłomiej Chmiel
5f4646f617
Ignore dependencies from different hierarchical schedules ( #5954 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-05-08 11:45:10 +01:00
Yilou Wang
a80aa07de6
Support constrained random for associative arrays ( #5985 ) ( #5986 )
2025-05-07 07:07:16 -04:00
Ryszard Rozak
2358f5c2a2
Fix AstAssignW conversion ( #5991 ) ( #5992 )
2025-05-07 05:54:18 -04:00
Wilson Snyder
bc3bf6ab5e
Tests: Add t_param_type_bad3
2025-05-06 21:11:34 -04:00
Wilson Snyder
b099d6fe63
Fix implicit dtype numbering to be per-module.
...
Internals: Remove use of parser in implicit dtype numbering.
2025-05-06 20:39:17 -04:00
Wilson Snyder
d5f773f385
Internals: Move hasParameterList away from symbol table. No functional change intended.
2025-05-06 08:03:30 -04:00
Wilson Snyder
da5eb620bf
Internals: Move timeunit to pragma, in prep for future parser. No user-functional change intended.
2025-05-06 06:34:49 -04:00
Yutetsu TAKATSUKASA
2ed754d5ea
Fix Inconsistent assignment error by split-var ( #5984 ) ( #5988 )
2025-05-06 05:00:17 -04:00
Wilson Snyder
fe562d4715
Internals: Move Stream dtype conversion to V3Width, towards future parser
2025-05-05 19:54:52 -04:00
Wilson Snyder
49e5c305a4
Tests: Split and rename t_parse_sync_bad
2025-05-05 18:35:50 -04:00
Wilson Snyder
69eb76ad66
Fix constant propagation of post-expand stages ( #5983 ).
2025-05-05 07:04:20 -04:00
Wilson Snyder
a3662cc3f5
Internals: Refactor to create replaceWithKeepDType. No functional change.
2025-05-05 06:31:06 -04:00
Bartłomiej Chmiel
1e74451534
Internals: Change naming convention for Vthread funcs ( #5982 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-05-05 05:25:39 -04:00
Wilson Snyder
66e105b444
Fix constant propagation of post-expand stages ( #5963 ) ( #5972 ).
2025-05-04 21:41:14 -04:00
Wilson Snyder
413183bad8
Fix localize of coroutines ( #5972 partial)
2025-05-04 21:25:44 -04:00
Wilson Snyder
11cfa61f80
Fix casting etc of typedef'ed doubles.
2025-05-04 16:34:37 -04:00
Wilson Snyder
27ad648c16
Commentary: Indicate V3Number width() criticality.
2025-05-04 16:24:36 -04:00
Wilson Snyder
d47b88a30c
Internals: Remove accidental debug message
2025-05-04 15:49:23 -04:00
Wilson Snyder
51616ecf2f
Internals: Rename to instances, and other minor cleanups
2025-05-04 14:57:10 -04:00
Wilson Snyder
01e66ac349
Commentary: Changes update
2025-05-04 14:49:44 -04:00
Geza Lore
223bb9ba9a
Fix streaming to/from packed arrays ( #5976 )
...
bug from 6bb57e4630
Fixes RTLMeter OpenTitan. Fixes #5955 .
2025-05-04 19:28:51 +01:00
Geza Lore
70c84d3abd
Preserve C++ widths in V3Expand ( #5975 )
...
During V3Expand, some w32/1 (width == 32, widthMin == 1), nodes (e.g.:
RedOr) are replaced with w1 nodes (width == widthMin == 1) (e.g.: Neq).
However, V3Expand runs after V3Clean, when we are in C++ width world,
so we need to preserve the width/widthMin distinction, otherwise a later
constant folding can eliminate e.g. a necessary AstAnd used clear an
intermediate result (isAllOnes is true for a Const 1 with w1, but false
for a Const 1 with w32/1).
Attempting to fix by preserving all width/widthMin during a replacement
in V3Expand.
DFG itself is fine, but the transformed code hits the above.
Fixes #5953
2025-05-04 16:31:27 +01:00
Wilson Snyder
ea65bcd86b
Add lib.map information to unsupported message, etc
2025-05-03 05:30:40 -04:00
Wilson Snyder
e837f780a2
Commentary
2025-05-03 04:25:01 -04:00
Wilson Snyder
1a1c6e8797
Change cell messages to instance to match IEEE
2025-05-03 04:00:47 -04:00
Wilson Snyder
15ebbd309f
Fix always processes ignoring $finish ( #5971 ).
2025-05-02 07:36:42 -04:00
Wilson Snyder
3b8d10cae5
Commentary
2025-05-02 07:35:38 -04:00
Wilson Snyder
2c0372acdf
Tests: Fix relocation of extract tests
2025-04-30 23:02:19 -04:00
Wilson Snyder
8b52bd817f
Add PROCINITASSIGN on initial assignments to process variables ( #2481 ).
2025-04-30 22:00:06 -04:00
Wilson Snyder
38dd9a344e
Improve documentation for BADVLTPRAGMA
2025-04-30 20:32:30 -04:00
Wilson Snyder
cbf46d0ded
Tests: Add mis-include test.
2025-04-30 19:00:17 -04:00
Wilson Snyder
b10b22d09f
Change unsupported 'tagged' into parse-level message
2025-04-30 18:30:19 -04:00
Wilson Snyder
0664cf407c
Fix constant propagation making upper bits Xs ( #5969 ).
2025-04-30 08:22:05 -04:00
Wilson Snyder
4e667fabb7
Internals: Add V3Number width-and-opAssign. No functional change.
2025-04-30 08:08:44 -04:00
Wilson Snyder
5ca62de167
Fix filename backslash escapes in C code ( #5947 ).
2025-04-29 19:27:38 -04:00
Wilson Snyder
d3016b62f5
Internals: Constructor cleanup. No functional change.
2025-04-29 19:23:35 -04:00
Wilson Snyder
7d4d618d98
Test: display fix
2025-04-29 19:23:08 -04:00
Wilson Snyder
9b3fccdcb7
Add BADVLTPRAGMA on unknown Verilator pragmas ( #5945 ).
2025-04-29 18:18:54 -04:00
Wilson Snyder
8da539ed8a
Fix sign extension of signed compared with unsigned case items ( #5968 ).
2025-04-28 22:22:50 -04:00
Wilson Snyder
3658e5f0f1
Internals: Rename widthToFit, no functional change.
2025-04-28 21:54:58 -04:00
Wilson Snyder
5083972536
Internals: Defer AstCast into V3LinkDot, in preparation for future parser
2025-04-28 19:34:40 -04:00
Wilson Snyder
f983ce4875
Internals: Defer DTypeRef versus IfaceDTypeRef determination into V3LinkDot, in preparation for future parser
2025-04-27 22:11:28 -04:00
Wilson Snyder
4c4a39a115
Internals: Refactor V3LinkDot dump and comments. No functional change intended.
2025-04-27 16:52:26 -04:00
Wilson Snyder
cb1661f9d0
Internals: Cleanups (from parse branch). No functional change intended.
2025-04-27 14:17:24 -04:00
Wilson Snyder
eb5676366b
devel release
2025-04-27 13:06:34 -04:00
Wilson Snyder
eca2b4c960
Version bump
2025-04-27 12:58:57 -04:00
Wilson Snyder
c9be36911f
Cleanup documentated option sort order, and enforce with test
2025-04-26 17:14:49 -04:00
Wilson Snyder
c3d1c3b952
Fix vlSelf error on fork repeats ( #5927 ).
2025-04-26 09:52:44 -04:00
Wilson Snyder
e7adae6f81
Internals: Cleanup some vlSelf code. No functional change intended.
2025-04-26 09:51:02 -04:00
Wilson Snyder
abc46db3c0
Tests: Cleanup some .cpp paths. No test functional change indended.
2025-04-25 20:57:11 -04:00
Wilson Snyder
dd6cd3decb
Commentary: Changes update
2025-04-25 20:55:18 -04:00
Wilson Snyder
ebe49552b0
Fix packed selection using over 32-bit index ( #5957 ).
2025-04-24 18:25:55 -04:00
Bartłomiej Chmiel
d6e52b9400
Support profiling nested hierarchical mtasks with verilator_gantt ( #5956 )
2025-04-24 07:50:07 -04:00
Geza Lore
6ac2aa2d99
Add RTLMeter GitHub workflows ( #5948 )
...
Add the GitHub Actions workflows for running RTLMeter.
Runs start daily, at 02:00 UTC, on ubuntu-24.04. There are 2 runs:
- Using GCC, with default verilator options
- Using Clang, with "--threads 4"
Each run uses a maximum of 2 runners in parallel (so max 4 in total),
and takes slightly over 2 hours to complete.
The jobs will fail if a benchmark is broken, so this already serves as a
regression test for the included designs.
For now, performance metrics are recorded as artefacts of the run but
not otherwise published.
Performance metrics are always recorded for all successful jobs, even if
some cases are failing.
2025-04-19 15:42:33 +01:00
github action
7aad136972
Apply 'make format'
2025-04-18 09:36:29 +00:00
John Khoo
fee839a80e
Update UNOPTFLAT warning to suggest isolate_assignments ( #5942 )
2025-04-18 18:35:36 +09:00
Ryszard Rozak
cbabd8abe1
Internals: Fix redundant edges in V3Trace ( #5939 ). No functional change intended..
...
Signed-off-by: Ryszard Rozak <[email protected] >
2025-04-17 06:23:18 -04:00
Wilson Snyder
3ecd58460f
Internals: Apply make format-json format-yaml. No functional change.
2025-04-16 07:34:57 -04:00
Wilson Snyder
09d27fa8a7
Commentary: Changes update
2025-04-16 07:34:04 -04:00
Yilou Wang
e0fdb933a0
Support constraint random for StructArray ( #5805 ) ( #5937 )
2025-04-16 07:08:46 -04:00
d0c4cc3938
Support user-defined primitives (UDPs) ( #468 ) ( #5807 ) ( #5936 )
...
Co-authored-by: Bartłomiej Chmiel <[email protected] >
Co-authored-by: Zhou Shen <[email protected] >
2025-04-16 06:32:18 -04:00
Ryszard Rozak
6a6a7b7e9f
Fix stream expressions ( #5938 )
2025-04-15 11:50:43 -04:00
github action
e3e8f18a4e
Apply 'make format'
2025-04-15 01:41:13 +00:00
Brian Li
50d7f2afc6
Support assigning unpacked arrays to queues ( #5924 ) ( #5928 )
2025-04-14 21:40:17 -04:00
Wilson Snyder
0359bf38e6
Commentary: Changes update
2025-04-12 18:10:55 -04:00
Wilson Snyder
174eafd74c
Update libfst from upstream
2025-04-12 18:10:40 -04:00
Zhouyi Shen
3694d153ae
Fix backward compatibility for TRACE option & Fix missing C++ regeneration when Verilog files are updated ( #5934 )
2025-04-12 17:49:41 -04:00
Andrew Voznytsa
9367e85c88
Add ccache support for generated cmake files ( #5926 ) ( #5930 )
2025-04-12 16:02:31 -04:00
Wilson Snyder
7a2732f211
Fix parsing (no support) of covergroup functions
2025-04-12 13:07:38 -04:00
github action
999f251b3d
Apply 'make format'
2025-04-12 11:36:25 +00:00
Robin Heinemann
10c3320c6b
Support soft unions ( #5912 ) ( #5932 )
2025-04-12 07:35:37 -04:00
Todd Strader
7336b9ebfc
Add V3EmitV support for sampled value functions ( #5931 )
2025-04-11 12:25:56 -04:00
Bartłomiej Chmiel
84f26ed3d7
Add visualization of multi-threaded waiting time with verilator_gantt ( #5929 )
2025-04-10 10:03:58 -04:00
Wilson Snyder
fc8e1b5a2e
Fix several cmake issues, including TRACE_VCD
2025-04-10 07:49:58 -04:00
Ryszard Rozak
6bb57e4630
Fix assignments with stream expressions and unpacked arrays ( #5915 )
2025-04-09 06:37:52 -04:00
Wilson Snyder
2eb9076381
Revert 1ea9018e59
2025-04-09 00:00:22 -04:00
Wilson Snyder
1ea9018e59
Change JSON make format to have trace_fst/trace_saif/trace_vcd
2025-04-08 22:42:02 -04:00
Wilson Snyder
a094fd954b
Internals: Remove duplication in verilated.cpp file lists. No functional change intended.
2025-04-08 22:30:44 -04:00
Wilson Snyder
7c2b1971a4
Support class extends with arguments.
2025-04-08 22:09:40 -04:00
Wilson Snyder
86f6ac2960
Fix port default values with --coverage-line creating 0=0 ( #5920 ).
2025-04-08 20:48:57 -04:00
Wilson Snyder
f5312b83b9
Fix %% on elaboration severity tasks ( #5922 ).
2025-04-07 08:38:05 -04:00
Wilson Snyder
0a3de7c74a
Commentary: Changes update
2025-04-07 08:32:31 -04:00
Wilson Snyder
b26a19279a
Support simple checker blocks ( #4066 ).
2025-04-06 23:42:49 -04:00
Wilson Snyder
fcefa96397
Tests: Disable warning in t_gantt_numa.
2025-04-06 23:16:51 -04:00
Wilson Snyder
c8a945f363
Internals: Minor refactoring of checker parsing/tests. No functional change.
2025-04-06 23:13:24 -04:00
Wilson Snyder
c7ff82f06b
Tests: Fix driver.py not stopping on interrupts ( #5752 ) ( #5921 )
2025-04-06 19:03:39 -04:00
Wilson Snyder
6997a7c516
Fix format mis-indendenting t_assert_ctl_arg
2025-04-06 12:44:30 -04:00
Wilson Snyder
eefbd94966
Fix format mis-indendenting t_assert_ctl_arg
2025-04-06 10:39:07 -04:00
Wilson Snyder
d1a0bad334
Tests: Add test for ( #4040 ).
2025-04-06 10:24:49 -04:00
github action
5cca1b101c
Apply 'make format'
2025-04-06 01:19:33 +00:00
Wilson Snyder
18aeb080ad
Fix empty test, part of last commit.
2025-04-05 21:14:27 -04:00
Wilson Snyder
e9fe8f65a8
Change error messages to more often suggest documentation
2025-04-05 17:10:44 -04:00
github action
eccfd8c6f9
Apply 'make format'
2025-04-05 19:37:32 +00:00
Wilson Snyder
af03d91714
Tests: Fix truncated file
2025-04-05 15:36:24 -04:00
Wilson Snyder
c3fd34b489
Tests: Add t_virtual_interface_delayed ( #4322 )
2025-04-05 15:31:17 -04:00
Wilson Snyder
e12b971ba6
Optimize SAIF writes ( #5916 )
2025-04-05 15:09:32 -04:00
github action
2bbb24eb38
Apply 'make format'
2025-04-05 18:20:51 +00:00
Wilson Snyder
34a760b75b
Optimize duplicate timestamps out of traces ( #4686 )
2025-04-05 14:19:58 -04:00
Wilson Snyder
7cc40d277b
Tests: Cleanup some .out filenames. No test coverage change.
2025-04-05 13:46:22 -04:00
Wilson Snyder
0984fd045f
Change --trace to --trace-vcd.
2025-04-05 10:46:39 -04:00
Wilson Snyder
d5077a9d35
Commentary ( #5919 )
2025-04-05 09:45:07 -04:00
Yutetsu TAKATSUKASA
b9f0612db8
Fix LATCH warning for automatic variables ( #5918 )
2025-04-05 06:21:34 -04:00
Wilson Snyder
6ba06498db
Fix segfault in fork synchronization ( #5906 ).
2025-04-04 08:15:39 -04:00
Wilson Snyder
73d52c00bb
Tests: Note other simulator results
2025-04-04 07:44:04 -04:00
Wilson Snyder
87ee6c8746
Tests: Only != is globally allowed to compare strings
2025-04-03 21:26:53 -04:00
Mateusz Gancarz
e4771dac7f
In SAIF dumps include signals with TC 0 ( #5914 )
2025-04-03 16:25:10 -04:00
Wilson Snyder
14e7b1076e
Commentary: Changes update
2025-04-02 23:17:39 -04:00
Wilson Snyder
f55fee1cf0
Internals: Fix missing semis; no functional change
2025-04-02 23:13:43 -04:00
Ryszard Rozak
353a4b7b4a
Fix parameters referencing interface fields ( #1593 ) ( #5910 )
2025-04-02 09:43:12 -04:00
Wilson Snyder
6d1e82b908
Add numactl-like automatic assignment of processor affinity ( #5911 )
2025-04-02 08:27:23 -04:00
Krzysztof Sychla
cd5997a2e6
Support $setuphold ( #5884 )
2025-04-02 06:08:51 -04:00
Wilson Snyder
0b9c2163d5
Tests: Cleanup some gantt tests; no test functional change
2025-04-01 22:54:39 -04:00
Wilson Snyder
168f0ed9e5
Fix new this ( #5909 ).
2025-04-01 08:12:34 -04:00
Wilson Snyder
538f39edf9
Fix grammar.
2025-04-01 07:54:56 -04:00
github action
e3c1d36e6e
Apply 'make format'
2025-04-01 11:34:45 +00:00
Brian Li
559d990e82
Support command-line overriding `define ( #5900 ) ( #5908 )
2025-04-01 07:33:49 -04:00
Wilson Snyder
f3684a85b9
Fix delayed assignment malformed LHS assertion ( #5904 ).
2025-03-30 17:38:54 -04:00
Wilson Snyder
b49351356e
Fix delays inside interface functions, and classes inside interfaces ( #5846 ).
2025-03-30 16:40:22 -04:00
Wilson Snyder
21229e0350
Update libfst from upstream ( gtkwave/libfst#12 )
2025-03-30 11:10:38 -04:00
Wilson Snyder
6f87443da5
Commentary
2025-03-30 11:02:21 -04:00
Wilson Snyder
0a860f151c
Cleanup some missed make clean files
2025-03-30 11:02:05 -04:00
Wilson Snyder
2116b424b9
Tests: Cleanup as --binary implies --timing. No test functional change.
2025-03-29 15:50:07 -04:00
Wilson Snyder
e6a997e316
CI: Use reusable workflow, so tests start after build ( #5901 )
2025-03-29 15:09:32 -04:00
Wilson Snyder
f29eeecee7
Fix process comparisons ( #5896 ).
2025-03-29 07:16:54 -04:00
Wilson Snyder
2b8b1c4281
Tests: Disable running some lint tests on vltmt
2025-03-29 07:14:45 -04:00
Wilson Snyder
610b2e75af
CI: Add vltmt-2 to bring longpath test time down
2025-03-29 06:54:30 -04:00
Wilson Snyder
fd960b5f77
Commentary: Changes update
2025-03-28 23:14:15 -04:00
Wilson Snyder
9b48cc33db
Fix process comparisons ( #5896 ).
2025-03-28 22:40:21 -04:00
Wilson Snyder
844448655e
Add `systemc_header_post
2025-03-28 22:40:21 -04:00
Wilson Snyder
b4ef6ce860
Support systemc_interface and related inside class`.
2025-03-28 22:40:21 -04:00
Wilson Snyder
6edf2f80a2
Tests: Rename t_extend_c_class
2025-03-28 22:40:21 -04:00
Wilson Snyder
8e7f29b07e
Fix incorrect systemc block token names
2025-03-28 22:40:21 -04:00
Geza Lore
28824b7597
Fix ccache with clang ( #5899 )
...
Lately ccache was mostly missing when using clang. Add '-Xclang
-fno-pch-timestamp' as recommended in the ccache manual. This indeed
fixes the caching.
2025-03-28 18:25:53 +00:00
Geza Lore
39c3e79a3c
Fix V3Gate assertion on eliminated circular logic ( #5889 ) ( #5898 )
...
Fixes #5889
2025-03-28 17:04:09 +00:00
Geza Lore
b6bcbd5660
Internals: Fix clang-tidy warnings in DFG ( #5893 ) ( #5897 )
2025-03-28 12:06:13 -04:00
Wilson Snyder
ed1e3ec4a2
Internals: Fix some clang-tidy issues. No functional change.
2025-03-27 21:21:37 -04:00
Wilson Snyder
98b89d0f2c
Fix some cppcheck warnings. No functional change intended.
2025-03-27 19:46:59 -04:00
Wilson Snyder
5e69faff46
Fix clang 20 warnings
2025-03-27 19:01:25 -04:00
Wilson Snyder
40acac1c57
Fix queue accessing past end (Clang 20 GLIBC warning)
2025-03-27 19:00:43 -04:00
Wilson Snyder
d26d62a176
Tests: Add driver.py --driver-clean
2025-03-27 18:33:18 -04:00
Bartłomiej Chmiel
8965401d10
Fix PGO profiling for multi-threaded hierarchical scenarios ( #5888 )
2025-03-27 11:10:48 -04:00
Luca Colagrande
b9a571916c
ci: Enable manual Docker image build and push ( #5885 )
2025-03-26 09:46:36 -04:00
Bartłomiej Chmiel
cdab9479b8
Commentary: Fix bugpoint link ( #5883 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-03-26 07:05:18 -04:00
Wilson Snyder
ce058cc432
Fix $fscanf not returning -1 on EOF ( #5881 ).
2025-03-25 08:28:36 -04:00
Wilson Snyder
4dd49e1244
Commentary: Changes update
2025-03-25 08:24:19 -04:00
Bartłomiej Chmiel
fabded95df
Support multi-thread hierarchical simulation ( #2583 ) ( #5871 )
2025-03-24 18:39:29 -04:00
Wilson Snyder
7521c2c644
Standardize some error messages.
2025-03-23 19:51:54 -04:00
Wilson Snyder
464e19caaa
Tests: Fix ubuntu24.04-arm issues
2025-03-22 16:55:53 -04:00
Wilson Snyder
0b6be2809e
Tests: Fix bad ETA at startup
2025-03-22 08:49:40 -04:00
Wilson Snyder
f9109eb61f
Delay deletes in V3Fork ( #5862 attempt)
2025-03-22 08:03:25 -04:00
Wilson Snyder
48effad448
Add DEPRECATED warning on --xml-only and --xml-output.
2025-03-21 21:32:05 -04:00
Wilson Snyder
29b439b93f
Commentary
2025-03-21 17:43:07 -04:00
Nick Brereton
27e39d7821
Fix interface array assignments ( #5270 ) ( #5633 ) ( #5869 )
2025-03-21 17:00:49 -04:00
Todd Strader
8c287134d7
Add warning on expression coverage class references ( #5870 )
2025-03-21 08:55:38 -04:00
Wilson Snyder
c508fd5d24
Internals: Remove single-statement braces. No functional change.
2025-03-19 22:55:11 -04:00
Wilson Snyder
62afbed3cd
Commentary: Changes update
2025-03-19 19:06:44 -04:00
Todd Strader
d2b7b567df
Fix expression coverage on additional nodes ( #5849 partial) ( #5867 )
2025-03-19 19:01:31 -04:00
Wilson Snyder
39bdd427d6
Fix unresolved typedefs as parameters ( #5850 ).
2025-03-19 18:02:56 -04:00
Geza Lore
4a2212949e
Fix change detection at time 0 ( #5864 )
...
Initialize "previous value" variables in the static initializer
function, instead of the 'initial' blocks function. Fixes #5499
2025-03-18 13:34:04 +00:00
Wilson Snyder
780163b91e
Internals: Avoid extra op#() calls. No functional change intended.
2025-03-16 14:34:19 -04:00
Wilson Snyder
21eb43a554
Commentary: Changes update
2025-03-15 21:59:47 -04:00
Wilson Snyder
353ef5c436
Commentary
2025-03-15 21:57:31 -04:00
Wilson Snyder
77cc93c176
Fix detecting bad datatype on $countones ( #5674 ).
2025-03-15 21:57:10 -04:00
Wilson Snyder
418fc2c246
Fix reduction-or on class pointers (prep #5674 )
2025-03-15 21:46:37 -04:00
William D. Jones
13c22690c4
Fix algorithm header portability in V3Os.cpp (for std::replace). ( #5861 )
2025-03-15 21:43:06 -04:00
Tobias Jensen
ae87df7a5d
Fix Windows paths in perl ( #5858 ) ( #5860 )
...
Add colon to no escape list, for windows paths
2025-03-15 14:22:10 -04:00
Geza Lore
59cb53cfbc
Set trigger vector in whole words ( #5857 )
...
Having many triggers still hits a bottleneck in LLVM leading to long
compile times.
Instead of setting triggers bit-wise, set them as a whole 64-bit word
when possible. This improves C++ compile times by ~4x on some large
designs and has minor run-time performance benefit.
2025-03-14 14:06:51 +00:00
Geza Lore
aca3b1636a
Remove unused gtkwave/wavealloca.h
2025-03-13 14:43:35 +00:00
Ryszard Rozak
9a6598b36f
Fix streaming of unpacked arrays concatenations ( #5856 )
2025-03-13 13:56:29 +01:00
Geza Lore
51a97ccb90
Update libfst from upstream ( #5855 )
...
Ignore whitespace if comparing this change.
2025-03-13 07:24:47 -04:00
Wilson Snyder
0aac3074b6
Fix recursive error on virtual interfaces ( #5854 ).
2025-03-12 17:57:02 -04:00
Wilson Snyder
391d4e1c32
Fix segmentation fault on member compare ( #5853 ).
2025-03-12 08:06:34 -04:00
Wilson Snyder
45add07205
Internals: Minor V3Param cleanups. No functional change.
2025-03-12 07:58:26 -04:00
Wilson Snyder
64caa700d3
Commentary: Changes update
2025-03-12 07:58:26 -04:00
github action
a5eb9a5b9d
Apply 'make format'
2025-03-11 23:58:06 +00:00
Andrew Voznytsa
6a48d3bb83
Add --make json to enable integration with non-make/cmake build systems ( #5799 )
2025-03-11 19:57:21 -04:00
Wilson Snyder
53151d7c5f
Fix emitting this ( #5849 )
2025-03-11 17:53:35 -04:00
Wilson Snyder
78198d90e1
Commentary: Changes update
2025-03-11 17:49:19 -04:00
Wilson Snyder
9c044a9184
Commentary
2025-03-11 17:47:58 -04:00
github action
f62b3faaf2
Apply 'make format'
2025-03-11 21:45:01 +00:00
Gilberto Abram
4dbb066b96
Fix removal of callbacks no longer in current list ( #5851 ) ( #5852 )
2025-03-11 17:44:12 -04:00
Yilou Wang
7fe51583e5
Fix foreach of assocArr inside a constraint block ( #5727 ) ( #5841 )
2025-03-11 13:32:34 -04:00
Geza Lore
6ecdd14fdb
Fix NBA shared flag reuse ( #5848 )
...
Fixes #5847
2025-03-11 07:40:21 -04:00
Wilson Snyder
8157f21c3e
Internals: Refactor hasGParam. No functional change intended.
2025-03-09 16:10:38 -04:00
Wilson Snyder
781bd3cc09
Commentary: Changes update
2025-03-09 13:15:53 -04:00
Wilson Snyder
a2e91f3cf2
Internals: Add some const. No functional change.
2025-03-09 13:13:57 -04:00
Geza Lore
d9701e6406
Automatically split some packed variables ( #5843 )
...
This patch adds a heuristic to V3SplitVar, and it attempts to split up
packed variables that are only referenced via constant index,
non-overlapping bit/range selects. This can eliminate some UNOPTFLAT cases.
2025-03-09 10:31:01 -04:00
Wilson Snyder
128231b077
Tests: Parameter pattern init ( #3144 )
2025-03-08 19:13:20 -05:00
Wilson Snyder
ce2f335786
Internals: Set isParameterized near hasGParam. No functional change intended.
2025-03-08 17:53:24 -05:00
Wilson Snyder
9632dfdf93
Internals: Remove some unneeded this->. No functional change.
2025-03-08 17:48:20 -05:00
Wilson Snyder
8026b2a7f3
Fix checking built-in method arguments ( #5839 )
2025-03-08 14:11:12 -05:00
Wilson Snyder
24dbb0bc5c
Internals: V3Width call refactoring. No functional change.
2025-03-08 12:44:30 -05:00
github action
5045bf53df
Apply 'make format'
2025-03-08 16:09:07 +00:00
Wilson Snyder
51fcb881d5
Fix error on out-of-range lvalue part select ( #5820 ).
2025-03-08 11:05:58 -05:00
Geza Lore
20b964a9a2
Fix splitting of packed ports with non-zero based ranges ( #5842 )
2025-03-08 09:37:30 -05:00
Wilson Snyder
10a77a17a9
Commentary ( #5840 )
2025-03-07 23:31:34 -05:00
Wilson Snyder
a62f7fe4ae
Commentary: Changes update
2025-03-07 18:03:01 -05:00
Mateusz Gancarz
9b4509f7d9
Add --trace-saif for SAIF power traces ( #5812 )
2025-03-07 10:41:29 -05:00
Geza Lore
96bffd49aa
Fix invalidating variable caches in SenExprBulider ( #5834 ) ( #5835 )
2025-03-07 07:18:34 -05:00
Krzysztof Bieganski
b2093b513a
Fix type_id package scope resolution ( #5826 )
2025-03-06 17:41:27 -05:00
Wilson Snyder
8e87a99628
Fix rand_mode method with cast ( #5831 ).
2025-03-05 21:43:50 -05:00
Wilson Snyder
258becd179
Add empty veriuser.h for legacy compatibility.
2025-03-04 21:25:28 -05:00
Geza Lore
2cad858d32
Bump vcddiff ( #5828 )
...
For #5806 via veripool/vcddiff#5
2025-03-04 16:21:25 +00:00
Bartłomiej Chmiel
a3b2c2af17
Support force/release with a variable reference ( #5721 ) ( #5810 )
2025-03-04 10:12:02 -05:00
Wilson Snyder
27d3eb5b7b
Fix UNOPTFLAT warnings with --coverage-trace and always_comb ( #5821 ).
2025-03-02 20:02:55 -05:00
Wilson Snyder
ce211ebceb
Internals: Make some auto more explicit. No functional change.
2025-03-02 17:01:35 -05:00
Wilson Snyder
4bf8f47f59
Commentary: Changes update
2025-03-02 17:01:06 -05:00
Wilson Snyder
b54f897090
Tests: Fix Ubuntu24.04 clang test issues, and enable action ( #5824 )
2025-03-02 16:53:59 -05:00
Wilson Snyder
d31bce915c
Actions: Turn off Ubuntu 20.04 ( #5774 ) ( #5823 )
2025-03-02 12:33:36 -05:00
Geza Lore
0133bc6b09
Do not use function locals in SenExprBuilder ( #5822 )
...
Function locals are not safe here because we might need to split up
the generated function. V3Localize can fix them later if safe.
2025-03-02 16:13:59 +00:00
Geza Lore
bab949a468
Use tcmalloc on non 22.04 CI builds ( #5818 )
2025-03-02 08:13:20 +00:00
Geza Lore
99064d3e39
Make mold static link tcmalloc ( #5817 )
2025-03-02 00:20:16 +00:00
Geza Lore
fc302a5207
Fix sorting of wide SenItems ( #5816 )
...
This used to throw Error: Value too wide for 64-bits expected in this context
2025-03-01 22:11:43 +00:00
Geza Lore
14f618b0f6
Fix invalid code motion over branches ( #5811 ) ( #5814 )
2025-02-28 13:32:03 -05:00
Wilson Snyder
a9762e0c5c
Fix coredump on fork inside disable named block by adding an UNSUPPORTED
2025-02-27 21:42:20 -05:00
Wilson Snyder
098ee6fa7a
Internals: Cleanup some missing VL_RESTORERs. No functional change intended.
2025-02-27 21:18:27 -05:00
Wilson Snyder
7f94fa1da7
Add check for let misused in statement context ( #5733 ).
2025-02-26 09:08:41 -05:00
Wilson Snyder
3b98db17cc
Fix reset of automatic function variables ( #5747 ).
...
Also required V3Life optimize CRESET(x) ... ASSIGN(rhs, x) to remove the
extraneous CRESET to avoid creating new UNOPTFLAT situations.
2025-02-25 22:48:53 -05:00
Wilson Snyder
233b6eafba
Commentary: Changes update
2025-02-25 22:44:55 -05:00
Wilson Snyder
489349ffbd
Internals: Reduce verbosity of SplitVar
2025-02-25 20:41:00 -05:00
Wilson Snyder
b52e1d3ede
Fix wrong fileline on 1step
2025-02-25 20:40:33 -05:00
Bartłomiej Chmiel
6a8f97e184
Internals: Fix typos ( #5803 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2025-02-25 12:44:14 -05:00
Kamil Rakoczy
3ab89d5be7
Add used language to --preproc-resolve output ( #5795 )
2025-02-25 07:03:25 -05:00
Wilson Snyder
b35ab0b843
Tests: Fix last commit
2025-02-24 22:39:30 -05:00
Wilson Snyder
6c46c4f6f7
Tests: Add unsupported test for specparam ( #5767 ).
2025-02-24 21:01:05 -05:00
Wilson Snyder
2455d15271
Change --output-groups to default to value of --build-jobs.
...
Those using build farms may need to now use `--output-groups 0` or otherwise.
2025-02-24 20:39:27 -05:00
Wilson Snyder
d232923051
Change --output-groups to default to value of --build-jobs.
...
Those using build farms may need to now use `--output-groups 0` or otherwise.
2025-02-24 20:38:08 -05:00
Wilson Snyder
e6678f6546
devel release
2025-02-24 18:33:43 -05:00
Wilson Snyder
436d3d76f0
Version bump
2025-02-24 18:19:40 -05:00
Wilson Snyder
c1f0787669
Commentary: Changes update
2025-02-24 18:15:08 -05:00
Yilou Wang
dae4c8ee22
Support constrained random for arrays in structs ( #5765 ) ( #5802 )
2025-02-24 17:51:51 -05:00
Wilson Snyder
5daf7385f1
Commentary: Changes update
2025-02-24 04:04:23 -05:00
Wilson Snyder
4ce8164277
Fix parsing input wire with default and range ( #5800 ).
2025-02-24 03:51:49 -05:00
Todd Strader
7ec32799b0
Fix expression coverage + VarXRefs ( #5797 )
2025-02-22 15:55:23 -05:00
Geza Lore
812861e7f2
Optimize splitting trigger computation and dump ( #5798 )
2025-02-23 05:57:36 +10:00
Wilson Snyder
1857f6399c
Fix $monitor with dotted references ( #5794 ).
2025-02-21 17:18:49 -05:00
Todd Strader
f7ccc013e7
Improve V3EmitV for interfaces ( #5796 )
2025-02-21 16:49:14 -05:00
Kamil Rakoczy
2e1fa8f338
Add --preproc-resolve for modules in preprocessor output ( #5789 )
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2025-02-22 04:47:54 +10:00
Todd Strader
70459b3208
Fix V3EmitV for non-zero based arrays ( #5790 )
2025-02-21 05:49:32 +11:00
Ryszard Rozak
2a23ec74e4
Fix dpi context functions ( #5788 )
2025-02-20 10:15:09 +01:00
Wilson Snyder
be1ace423e
Fix time import error on time parameters ( #5786 ).
2025-02-19 17:03:59 -05:00
Wilson Snyder
2d0149b703
Commentary: Changes update
2025-02-19 17:00:29 -05:00
Todd Strader
34ced254c0
Support expression coverage ( #5719 )
2025-02-19 16:42:23 -05:00
Wilson Snyder
fe15171649
Internals: cppcheck cleanups. No functional change.
2025-02-18 01:14:51 -05:00
Wilson Snyder
4092ac7e72
Commentary: Changes update
2025-02-18 01:05:10 -05:00
Yutetsu TAKATSUKASA
1a07af57a3
Fix unpacked split_var ( #5782 ) ( #5785 )
2025-02-18 05:34:57 +11:00
Kamil Rakoczy
c840ffb0ae
Support nested classes ( #4178 ) ( #5778 )
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2025-02-17 23:47:41 +11:00
Wilson Snyder
fbe8439eb8
Commentary: Changes update
2025-02-15 00:58:14 -05:00
Wilson Snyder
754c5c71f1
Fix force VPI public signal visibility ( #5225 ).
2025-02-15 00:58:14 -05:00
Wilson Snyder
6940ee420d
Commentary
2025-02-15 00:58:14 -05:00
Todd Strader
b645fcf027
More V3EmitV support ( #5779 )
2025-02-14 14:58:11 -05:00
Krzysztof Bieganski
ffb02cea15
Fix ignoring joins in stringify in preprocessor ( #5777 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-02-13 18:33:12 -05:00
Krzysztof Bieganski
f753ae2518
Support selects on arbitrary string expressions ( #5773 )
2025-02-11 12:06:34 -05:00
Dave Sargeant
caa19c0cb3
Fix VFileContent reference count ( #5769 ) ( #5771 )
2025-02-10 10:04:04 -05:00
Trung Nguyen
aa3942ab24
Internals: constexpr for VlUnpacked data access ( #5725 ) ( #5770 )
...
Add `constexpr` to data access functions of `VlUnpacked` whose `std::array` equivalent in C++14 is `constexpr`.
2025-02-09 22:45:50 -05:00
github action
cc1133c0d9
Apply 'make format'
2025-02-08 00:07:38 +00:00
Moubarak Jeje
ac659d525b
Support VPI array accessors ( #5612 )
2025-02-07 19:06:46 -05:00
Krzysztof Bieganski
283f6c7433
Add --preproc-token-limit ( #5768 )
2025-02-07 10:32:12 -05:00
Moubarak Jeje
5b65c15eca
Internals: Add datap cast functions ( #5761 )
2025-02-05 15:29:54 -05:00
Yilou Wang
6b4183632c
Support Unpacked Structures' Constrained Randomization ( #5657 ) ( #5759 )
2025-02-03 11:56:00 -05:00
Wilson Snyder
e0e164cea2
Internals: Optimize clearFired ( #5753 )
2025-01-30 07:52:38 -05:00
Bartłomiej Chmiel
a379382d32
Fix handling forced assigns in V3Life ( #5757 )
2025-01-28 07:30:40 -05:00
Wilson Snyder
e2a6e19cac
Cleanup V3EmitMk report style
2025-01-25 17:52:27 -05:00
Wilson Snyder
61bfb6c308
Remove list/map from keyword warnings.
...
Reduces warning verbosity from `map` in UVM.
Assumes user doesn't do a `using namespace std`.
2025-01-25 16:08:15 -05:00
Wilson Snyder
bdcfc4e286
Reduce verbosity under --debug default level
2025-01-25 16:01:20 -05:00
Wilson Snyder
70c6651aac
Fix -Wno-subobject-linkage on GCC ( #5754 )
2025-01-25 15:45:30 -05:00
Wilson Snyder
41bb54bc2c
Add Makefile targets count to stats
2025-01-25 13:35:56 -05:00
Wilson Snyder
001c098e5a
Optimize empty function definition bodies ( #5750 ).
2025-01-25 12:13:25 -05:00
Wilson Snyder
98e40c847c
Internals: Suppress vlSelf unused suppression when known used. No functional change intended.
2025-01-25 12:06:05 -05:00
Wilson Snyder
05c7a3b90b
Optimize labels as final if block statements ( #5744 ).
2025-01-25 10:29:35 -05:00
Wilson Snyder
694f2ff7c7
Tests: renames
2025-01-25 10:24:59 -05:00
Wilson Snyder
6281385ee8
Commentary/Internals: Sort option names. No functional change.
2025-01-24 21:31:57 -05:00
Wilson Snyder
7e6dd9473f
Commentary: Changes update
2025-01-24 21:27:52 -05:00
Wilson Snyder
929e15fa4c
Fix various round-trip Verilog output, including packed arrays
2025-01-24 21:00:45 -05:00
Wilson Snyder
432d5f851d
Internals: Cleanup some misnamed nodep's. No functional change.
2025-01-24 20:52:31 -05:00
Wilson Snyder
d4f4fefd1d
Fix -j ignored after -f ( #5749 ).
2025-01-24 17:30:59 -05:00
Wilson Snyder
d8080008b4
Commentary
2025-01-24 07:47:32 -05:00
Wilson Snyder
bed9aa9904
Internals: Cleanup std::string empty string constructors.
2025-01-24 07:47:32 -05:00
Bartłomiej Chmiel
35fa0d051d
Support integer atom type ports in --hierarchical ( #5748 )
2025-01-24 07:47:11 -05:00
Bartłomiej Chmiel
0507fb4655
Improve hierarchical DPI wrapper scheduling performance ( #2583 ) ( #5734 )
2025-01-20 14:24:09 -05:00
Geza Lore
f4a01eb452
Fix inlined expression with assignment under LHS of NBA ( #5736 ) ( #5740 )
2025-01-20 07:23:10 -05:00
Wilson Snyder
4954e76b28
Commentary: Changes update
2025-01-18 15:26:41 -05:00
Wilson Snyder
fa1b11252e
Fix duplicate-named class variable equivalence ( #5737 ).
2025-01-18 15:25:49 -05:00
Andrew Nolte
dddc1b5b4d
Fix vpiDefName issues with non-inlined scopes and dpi conflicts ( #5732 )
2025-01-16 15:02:36 -05:00
Natan Kreimer
20faa99464
Fix VPI iteration over hierarchy ( #5314 ) ( #5731 )
2025-01-13 07:40:34 -05:00
Ethan Sifferman
dc43071f1c
Improve `resetall support ( #5728 ) ( #5730 )
2025-01-11 22:53:11 -05:00
Wilson Snyder
fdf29b970f
Fix VL_UNLIKELY with constructors
2025-01-11 15:27:11 -05:00
Wilson Snyder
70814fa11a
Commentary: Add --public-ignore to ignore public metacomments ( #5716 ).
2025-01-11 12:34:12 -05:00
Wilson Snyder
529b8337ec
Commentary: Changes update
2025-01-11 12:30:07 -05:00
Andrew Nolte
f8dd65c7cd
Add --public-ignore to ignore public metacomments ( #7819 )
2025-01-11 12:29:39 -05:00
Wilson Snyder
28a59a2b21
Update gtkwave from upstream.
2025-01-11 12:16:46 -05:00
Yilou Wang
d3e205f201
Support constraints on associative array user-defined keys ( #5671 ) ( #5729 )
2025-01-11 12:07:52 -05:00
Wilson Snyder
dfe28f7ed0
Fix misoptimizing away $urandom ( #5703 ).
2025-01-11 08:48:40 -05:00
github action
bb871728c9
Apply 'make format'
2025-01-10 00:05:16 +00:00
Krzysztof Starecki
69dce205d3
Support multidimensional array access via VPI ( #2812 ) ( #5573 )
2025-01-09 19:04:26 -05:00
Krzysztof Bieganski
052812bb87
Fix BLKSEQ on suspendable processes ( #5722 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2025-01-09 08:40:32 -05:00
Yilou Wang
0380a36c76
Fix constrained random for > 64-bit associative arrays ( #5670 ) ( #5682 )
2025-01-09 08:33:38 -05:00
Wilson Snyder
44f49669a3
Support side effects of form variable[index_function()]++.
2025-01-08 19:37:20 -05:00
github action
ff244c1d1f
Apply 'make format'
2025-01-08 14:44:48 +00:00
Krzysztof Starecki
260ac342f4
Tests: Add support for Questa in TestSimulator class ( #5718 )
2025-01-08 09:43:57 -05:00
Nick Brereton
87d856339f
Add lint error on importing package within a class ( #5634 ) ( #5679 )
2025-01-07 16:52:44 -05:00
Wilson Snyder
e171463fa2
Add COVERIGN warning, as a more specific UNSUPPORTED error.
2025-01-06 18:48:32 -05:00
Wilson Snyder
481adf8fe7
Commentary
2025-01-06 17:56:50 -05:00
Andrew Nolte
b8288b97f7
Improve VPI write errors ( #5712 )
2025-01-06 17:56:18 -05:00
Andrew Nolte
0d34f56b74
Fix packages with --public-depth 1 ( #5708 )
2025-01-06 15:21:32 -05:00
Wilson Snyder
dcaf6476e8
Fix matching language extension options including dots.
2025-01-05 22:52:29 -05:00
Wilson Snyder
76b2ac9cc1
Support +incdir with multiple directories.
2025-01-05 19:30:39 -05:00
Wilson Snyder
b6a400ee9b
Support generated classes ( #5665 ).
2025-01-05 17:10:04 -05:00
Wilson Snyder
78d6ec8114
Fix error message when call task as a function ( #3089 ).
2025-01-04 12:55:15 -05:00
Wilson Snyder
88dd95980a
Internal cleanups, remove extra iterate, but no functional change intended
2025-01-04 12:50:55 -05:00
Wilson Snyder
b531001f55
Fix segfault when only enum value referenced in package ( #5714 ).
2025-01-04 10:36:34 -05:00
Wilson Snyder
1d0563212e
Fix pattern assignment to real inside struct ( #5713 ).
2025-01-03 19:39:48 -05:00
Wilson Snyder
8ca49d98c1
Fix %p format output for real inside struct ( #5713 ).
2025-01-03 19:15:03 -05:00
Wilson Snyder
036c1fb0f9
Commentary: Changes update
2025-01-03 10:02:48 -05:00
Wilson Snyder
19258ee18a
Commentary
2025-01-03 10:00:56 -05:00
أحمد المحمودي
578d8d8391
Fix man pages whatis section ( #5710 )
2025-01-03 09:58:33 -05:00
Geza Lore
010ae580b1
Fix V3Simulate constant reuse ( #5709 )
...
Use a generational allocator for reusing AstConst across
V3Simulate::clear(), instead of using user1 (which is also used
to store values of nodes).
Also fix invalid lookup on array initializer
2025-01-03 05:33:29 -05:00
Wilson Snyder
951f5eaa82
Commentary
2025-01-02 08:09:02 -05:00
Wilson Snyder
3a69dd4a43
Commentary
2025-01-02 08:07:57 -05:00
Wilson Snyder
f52155a768
Copyright year update.
2025-01-02 06:21:30 -05:00
Wilson Snyder
16b3d9101c
devel release
2025-01-01 09:11:15 -05:00
Wilson Snyder
8ff77e9d47
Version bump
2025-01-01 09:04:41 -05:00
Wilson Snyder
4361c516fd
Commentary: Update contributors.
2025-01-01 09:04:21 -05:00
Wilson Snyder
7d5772c749
Commentary: Changes update
2025-01-01 08:45:29 -05:00
Wilson Snyder
f5e2f60dcc
Update include/gtkwave from upstream
2025-01-01 08:40:49 -05:00
Wilson Snyder
8fbb725f34
Copyright year update.
2025-01-01 08:30:25 -05:00
Bartłomiej Chmiel
72a47e16c1
Fix verilator_gantt for hierarchically Verilated models ( #5700 )
2024-12-23 09:10:46 -06:00
Wilson Snyder
530ebecfb7
Tests: Add module-in-module coverage
2024-12-19 21:42:52 -05:00
Wilson Snyder
9a3dcaa10b
Fix spelling
2024-12-19 21:30:14 -05:00
Wilson Snyder
8a121803f5
Add configure CFG_CXX_VERSION
2024-12-19 20:56:47 -05:00
Wilson Snyder
bb45fd6c6c
Add error on --savable --timing ( #5690 ).
2024-12-19 17:30:40 -05:00
Wilson Snyder
62945bb3bc
Commentary: Changes update
2024-12-19 17:23:44 -05:00
Todd Strader
079a53e820
Commentary: SYMRSVDWORD + VPI documentation ( #5696 )
2024-12-19 17:14:15 -05:00
Todd Strader
a23fad91a3
Tests: Reduce test_regress VPI copypasta ( #5694 ) ( #5693 )
2024-12-19 16:29:16 -05:00
Anthony Moore
5f1df5b389
Add a default CMAKE_BUILD_TYPE ( #5691 ) ( #5692 )
2024-12-19 15:17:44 -05:00
Todd Strader
74d5d008bb
Fix VPI + SYMRSVDWORD intersection ( #5686 )
2024-12-19 15:15:28 -05:00
Todd Strader
8a9fc9237d
Tests: Execute t_emit_accessors ( #5689 ) ( #5688 )
2024-12-19 15:01:57 -05:00
Ryszard Rozak
c093b24342
Fix width extension of operands of inside operator ( #5685 )
2024-12-19 15:51:51 +01:00
Wilson Snyder
29fb82d3b7
Commentary
2024-12-16 18:02:17 -05:00
Wilson Snyder
c7355b4056
Commentary: Changes update
2024-12-15 09:19:30 -05:00
Wilson Snyder
4b4ca90c71
Internals: Create FuncRef/TaskRef directly from Func/Task pointer. No functional change intended
2024-12-15 09:15:49 -05:00
Wilson Snyder
6aa7123a8c
Internals: Function/variable renames. No functional change.
2024-12-14 12:49:42 -05:00
Wilson Snyder
80b2fa3583
Add error on randc inside dist
2024-12-14 11:47:46 -05:00
Wilson Snyder
7886204690
Tests: Add t_class_new_scoped (unsupported)
2024-12-13 17:58:08 -05:00
Wilson Snyder
c2dcca980e
Improve to throw UNSUPPORTED instead of syntax error on extend class arguments
2024-12-13 17:15:04 -05:00
Wilson Snyder
a23dfdc4ee
Fix backward external constraint error, from recent new support.
...
(Thanks sv-tests!)
2024-12-13 16:54:14 -05:00
Todd Strader
41a038b79b
Fix interface bracketed array parameter access ( #5678 ) ( #5677 )
2024-12-13 12:00:49 -05:00
Ryszard Rozak
a8e06874bd
Fix randomize..with of parameterized classes ( #5676 )
...
Broke in 7a04a5b
2024-12-13 09:32:47 -05:00
Yilou Wang
54ef9ad31c
Support associative array basic constrained randomization ( #5658 ) ( #5670 )
2024-12-12 11:31:54 -05:00
Bartłomiej Chmiel
32f9cf072b
Fix hierarchical verilation for projects with dot-f dependency lists ( #5199 ) ( #5669 )
2024-12-12 11:25:19 -05:00
Ryszard Rozak
03e8ef0b0f
Fix wildcard equality and inside operators for non-fourstate expressions ( #5673 )
2024-12-12 14:51:48 +01:00
Wilson Snyder
a2f327f729
Support extern constraint
2024-12-12 08:16:19 -05:00
Wilson Snyder
6e204ed0dd
Internals: Cleanup 'error error' on fatals
2024-12-11 08:52:41 -05:00
Bartłomiej Chmiel
58ddf997e3
Improve optimization of duplicate wide expressions ( #5637 )
...
Prevent inlining of expensive wide expressions in V3Gate (#5637 )
2024-12-11 11:45:31 +00:00
Ryszard Rozak
9656311521
Fix error on duplicated declaration of gen block ( #5663 )
2024-12-06 07:20:31 -05:00
Wilson Snyder
676fd31635
Commentary: Changes update
2024-12-05 08:54:43 -05:00
Wilson Snyder
a7f8c9cc74
Commentary
2024-12-05 08:54:00 -05:00
Wilson Snyder
a247041cab
Internals: Refactor 713dab27 to avoid IfaceRef being known in LinkCells
2024-12-03 12:00:56 -05:00
Wilson Snyder
59fd238a05
Tests: Add t_interface_hidden
2024-12-03 12:00:56 -05:00
Yilou Wang
a64660a530
Fix foreach mixed array ( #5655 ) ( #5656 )
2024-12-03 07:57:50 -05:00
Todd Strader
e9a1c75b7f
Tests: Demonstrate unsupported scoped pattern array init ( #5652 )
2024-12-02 18:33:34 -05:00
Todd Strader
b6f292f556
Fix imported array assignment literals ( #5642 ) ( #5648 )
2024-12-02 15:08:47 -05:00
Wilson Snyder
4781a6046a
Update error as misnamed port dtype might be interface
2024-12-02 07:35:44 -05:00
Wilson Snyder
b16b48f458
Internals: Misc ANSI port parsing cleanups; baseline for future commit.
2024-12-02 07:21:39 -05:00
Wilson Snyder
b4e91c87a6
Tests: Add t_interface_find
2024-12-02 07:20:40 -05:00
Bartłomiej Chmiel
a668b7c658
Fix missing VlProcess handle in coroutines with splits ( #5623 ) ( #5650 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2024-12-02 05:43:26 -05:00
Wilson Snyder
94fd17e4f7
Internals: Port parsing cleanups
2024-12-01 23:03:19 -05:00
Wilson Snyder
abd4c480cd
Tests: Fix JSON file number, from earlier commit
2024-12-01 23:00:27 -05:00
Wilson Snyder
aa2b653c71
Internals: With --dumpi-tree >= 9, create pre-sort cells.tree
2024-12-01 17:38:02 -05:00
Wilson Snyder
d75f41b641
Tests: Add param type to t_typename test
2024-12-01 17:28:13 -05:00
Wilson Snyder
b0f898cec8
Internals: Determine needing verilated_std without symbol table
2024-12-01 11:35:00 -05:00
Wilson Snyder
9ec5413d33
Tests: Cleaner error summaries
2024-12-01 10:27:05 -05:00
Wilson Snyder
611567c385
Internals: add make format-c/format-py. No functional change.
2024-12-01 10:26:01 -05:00
Wilson Snyder
7a04a5b9a8
Internals: Refactor symIterate functions. No functional change intended
2024-11-30 22:55:16 -05:00
Wilson Snyder
2d71d66cf5
Commentary
2024-11-30 22:35:36 -05:00
Wilson Snyder
a51e26e62d
Internals: Some V3LinkCells debug improvements. No functional change.
2024-11-30 20:09:05 -05:00
Wilson Snyder
5021989cb6
Tests: Rename interface-to-wire ( #5649 test partial)
2024-11-30 19:05:26 -05:00
Wilson Snyder
2284ada723
Tests: Interface-to-wire ( #5649 test partial)
2024-11-30 19:00:00 -05:00
Wilson Snyder
e44f34dde3
Improve concat lint error & cleanups for future commit.
2024-11-30 18:56:00 -05:00
Wilson Snyder
0c820c3068
Internals: Standardize template argument names. No functional change.
2024-11-29 20:20:38 -05:00
Wilson Snyder
990ccd6763
Internals: Standardize on template<typename. No functional change.
2024-11-29 18:01:50 -05:00
Wilson Snyder
f631587a20
Internals: Rename classOrPackageSkip as kept confusing with member accessor. No functional change.
2024-11-29 16:57:18 -05:00
Wilson Snyder
9f8fcaf827
Fix linking types of typedefs
2024-11-29 16:09:39 -05:00
Wilson Snyder
d7893a60ca
Internals: In V3LinkDot debug, show node name prefix. No functional change.
2024-11-29 16:09:04 -05:00
Wilson Snyder
93090c56ee
Fix mis-aliasing of instances with mailbox parameter types ( #5632 partial).
2024-11-29 09:20:02 -05:00
Wilson Snyder
d750ffc129
Internals: Fix debug dump of deleted nodes.
2024-11-29 08:51:32 -05:00
Wilson Snyder
7efa0fc82a
Internals: Rewrite skipRefp to avoid recursion and fix const-ness. No functional change intended.
2024-11-29 08:10:51 -05:00
Wilson Snyder
8db9db7e25
Internals: Rename same() function. No functional change.
2024-11-28 15:01:58 -05:00
Wilson Snyder
d165671225
Improve error when no parameter type value ( #5645 partial)
2024-11-28 14:09:06 -05:00
Wilson Snyder
7a8f71e7d8
Add --fno-slice to disable array assignment slicing ( #5644 ).
2024-11-28 13:49:34 -05:00
Wilson Snyder
e0ad430cd9
Internals: V3Slice style cleanup. No functional change; ignore whitespace
2024-11-28 13:33:59 -05:00
Wilson Snyder
7695687e87
Commentary: Changes update
2024-11-27 17:56:05 -05:00
Todd Strader
94e545bdca
Fix interface and struct pattern collision ( #5640 ) ( #5639 )
2024-11-27 17:20:21 -05:00
Wilson Snyder
99daa8d24b
Support default disable iff and $inferred_disable ( #4016 ).
2024-11-26 22:27:32 -05:00
Wilson Snyder
e14903cfb2
Internals: Fix null skipRef for consistency. No functional change intended.
2024-11-26 22:10:54 -05:00
Wilson Snyder
bee344d1ae
Add error on illegal --prefix etc. values ( #5507 ).
2024-11-26 21:06:43 -05:00
Wilson Snyder
713dab278c
Fix mis-public interfaces, broke in f58aee2ff2
2024-11-26 19:16:05 -05:00
Wilson Snyder
29ad93c89d
Tests: Add t_interface_colon_bad ( #5281 )
2024-11-25 21:50:24 -05:00
Wilson Snyder
7a9140821d
Fix public_module requiring a wire to become public ( #4916 ).
2024-11-25 21:21:11 -05:00
Wilson Snyder
2ba0749993
Tests: Verify function ref ( #3385 )
2024-11-25 20:38:41 -05:00
Wilson Snyder
25d75ee86f
Add --fno-inline-funcs to disable function inlining.
2024-11-25 19:59:10 -05:00
Wilson Snyder
a72009fb41
Fix UNDRIVEN on refs
2024-11-25 18:41:38 -05:00
Wilson Snyder
a934d965be
Internals: Rename isInoutish
2024-11-25 18:25:36 -05:00
Wilson Snyder
1277a40b31
Tests: Add driver --obj-suffix option
2024-11-24 21:12:08 -05:00
Wilson Snyder
6f35fec5ce
Commentary
2024-11-24 20:47:57 -05:00
Wilson Snyder
f58aee2ff2
Internals: Defer marking variables as IfaceRef until cells resolved. No functional change intended.
2024-11-24 18:33:10 -05:00
Wilson Snyder
f5ee7aa0ab
Internals: Decouple Bison class/package symbol table parsing from Link symbol table. ( #5629 )
...
Not intended to change non-error cases, but side-effects are likely.
2024-11-24 18:19:19 -05:00
Wilson Snyder
749b0345df
Commentary: Changes update
2024-11-23 22:06:07 -05:00
Wilson Snyder
7e9535381a
Tests: Use VM_PREFIX
2024-11-23 22:02:19 -05:00
github action
0d5fedce92
Apply 'make format'
2024-11-24 03:02:04 +00:00
sumpster
24b5c641f5
Fix array of struct member overwrites on member update ( #5605 ) ( #5618 ) ( #5628 )
2024-11-23 22:01:02 -05:00
sumpster
ca31bcdbb6
Tests: Fix solver help output detection case insensitive ( #5626 ) ( #5627 )
2024-11-23 18:10:37 -05:00
Ryszard Rozak
ae990ebcda
Add warning on global constraints ( #5625 )
2024-11-22 08:47:14 -05:00
Bartłomiej Chmiel
58dae8f931
Fix clang_check_attributes TypeError when accessing compilation database ( #5622 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
2024-11-21 07:05:18 -05:00
Ryszard Rozak
5470cf9fa9
Support randomize size constraints with restrictions ( #5582 partial) ( #5611 )
2024-11-15 10:45:06 -05:00
Wilson Snyder
9bde98e912
Commentary
2024-11-14 21:07:45 -05:00
Wilson Snyder
81ac386a4a
Tests: Renames
2024-11-14 21:05:59 -05:00
Tom Manner
c98744b914
Internals: Fix VerilatedContext::randSeed comments ( #5609 )
2024-11-14 11:07:23 -05:00
Greg Davill
904be103df
Support parameter names in pattern initialization ( #5593 ) ( #5596 )
2024-11-14 07:25:58 -05:00
Wilson Snyder
8e82440a55
Fix extranous local:: error
2024-11-13 19:15:10 -05:00
Wilson Snyder
32c789c355
Commentary
2024-11-13 19:14:38 -05:00
Wilson Snyder
d4a8cbb1d6
Fix function fork...join_none regression with unknown type ( #4449 ).
2024-11-13 08:00:43 -05:00
Wilson Snyder
192236a832
Fix module automatic
2024-11-13 07:10:48 -05:00
Wilson Snyder
e223228ec0
Fix installation of waiver file ( #5607 )
2024-11-12 22:41:05 -05:00
github action
c7dbdf876a
Apply 'make format'
2024-11-13 03:12:11 +00:00
Wilson Snyder
3ffea76e11
Add --no-std-waiver and default reading of standard lint waivers file ( #5607 ).
2024-11-12 22:11:19 -05:00
Wilson Snyder
09547f839f
Tests: Remove file-number hardcoded dependencies.
2024-11-12 21:39:13 -05:00
Wilson Snyder
0bf413b260
Add lint_off --contents in configuration files. ( #5606 )
2024-11-12 20:21:16 -05:00
Wilson Snyder
a5b2cb6ddf
Commentary: Changes update
2024-11-12 17:19:42 -05:00
Wilson Snyder
779cf9248a
Cleanup/standardize configuration file string handling
2024-11-12 11:29:27 -05:00
Krzysztof Starecki
1d06364284
Support vpiDefName ( #5572 )
2024-11-12 11:28:39 -05:00
Wilson Snyder
833c215c45
Tests: Move uvm to subdirectory and add context-sensitive waivers
2024-11-11 20:49:59 -05:00
Wilson Snyder
4d95f6f7b8
Add --waiver-multiline for context-sensitive --waiver-output.
2024-11-11 20:00:26 -05:00
Wilson Snyder
46a5f04840
Internals: Link 'std' in LinkFind
2024-11-11 09:44:08 -05:00
Wilson Snyder
3c686d0eb2
Commentary
2024-11-11 08:44:46 -05:00
Wilson Snyder
7c8ff1d19c
Add --no-std-package as subset-alias of --no-std.
2024-11-11 08:30:07 -05:00
Wilson Snyder
151c5b6a1d
Tests: Rename some tests
2024-11-10 20:00:16 -05:00
Wilson Snyder
15d1751b23
Internals: Defer class extends resolution until link
2024-11-10 19:34:00 -05:00
Wilson Snyder
b71d49e55a
Internals: Defer $unit package resolution until link
2024-11-10 18:36:12 -05:00
Wilson Snyder
c3b2bfbc39
Internals: Fix missing cleanFileline
2024-11-10 18:26:23 -05:00
github action
b74a8f133f
Apply 'make format'
2024-11-10 21:54:54 +00:00
Wilson Snyder
873048c21c
Fix 'local::' parsing in wrong scope
2024-11-10 16:51:34 -05:00
Wilson Snyder
75e9986d39
Fix local:: mis-allowed in class extends
2024-11-10 16:43:21 -05:00
Geza Lore
863abdb1f7
Fix NBAs to unpacked arrays of unpacked structs ( #5603 )
...
This happened to work before #5516 , by creating a whole shadow copy of
the entire array. Revert back to that behaviour for now, it will be
slow, but works still.
Fixes #5590
2024-11-10 17:38:28 +00:00
Geza Lore
03bd1bfc63
Move Concat balancing from DFG to FuncOpt ( #5602 )
...
This means it applies more widely, e.g. inside sequential logic.
2024-11-10 17:23:11 +00:00
Wilson Snyder
4257fcf9d0
Change parsing of cells to be non-symbol table sensitive.
2024-11-10 12:08:37 -05:00
Wilson Snyder
a68da7e220
Internals: Style cleanup. Ignore whitespace if diff. No functional change.
2024-11-10 10:59:18 -05:00
Geza Lore
77ef2cd487
Split up assignments to wides with Concat on the RHS ( #5599 )
...
Add a new pass to split up (recursively):
foo = {l, r};
into the following, with the right indices, iff the concatenation
straddles a wide word boundary.
foo[_:_] = r;
foo[_:_] = l;
This eliminates more wide temporaries.
Another 23% speedup on VeeR EH2 high_perf. Also brings the predicted
stack size from 8M to 40k.
2024-11-10 15:51:59 +00:00
Wilson Snyder
7f1aae640f
Fix dotted reference in delay value ( #2410 ).
2024-11-10 10:23:29 -05:00
Wilson Snyder
0ec025c40c
Internals: Rename rule. No functional change.
2024-11-10 10:14:42 -05:00
Wilson Snyder
bc87270ca9
Add UNSUPPORTED on property variable, instead of syntax error.
2024-11-09 22:26:59 -05:00
Wilson Snyder
0e11b0929c
Internals: whitespace
2024-11-09 21:33:22 -05:00
Wilson Snyder
b741105329
Tests: Fix t_dist_whitespace error message
2024-11-09 20:47:59 -05:00
Wilson Snyder
2f4d1647f0
Fix non-interface error message
2024-11-09 20:28:47 -05:00
Wilson Snyder
4a88ddc616
Tests: Fix interface syntax error
2024-11-09 17:22:16 -05:00
Wilson Snyder
99e7dbc82b
Internals: Put unsupported nettypes into symbol table, so parse as idType
2024-11-09 17:15:41 -05:00
Wilson Snyder
c7a7965c49
Rename identifer token
2024-11-09 16:49:34 -05:00
Geza Lore
f073b278f9
Balance concatenations in DFG ( #5598 )
...
The DFG peephole pass converts all associative trees into right leaning,
which is good for simplifying pattern recognition, but can lead to an
excessive amount of wide intermediate results being constructed for
right leaning concatenations.
Add a new pass to balance concatenation trees by trying to:
- Create VL_EDATASIZE (32-bit) sub-terms, so words can then be packed
easily afterwards
- Try to ensure the operands of a concat are roughly the same width
within a concatenation tree. This does not yield the shortest tree,
but it ensures it has many sub-nodes that are small enough to fit into
machine registers.
This can eliminate a lot of wide intermediate results, which would need
temporaries, and also increases ILP within sub-expressions (assuming the
C compiler can't figure that out itself).
This is over 2x run-time speedup on the high_perf configuration of
VeeR EH2 (which you could arguably also get with -fno-dfg, but oh well).
2024-11-09 18:14:19 +00:00
Wilson Snyder
4969125e5a
Add error on soft constraints of randc
2024-11-09 12:45:55 -05:00
Wilson Snyder
d230ccd716
Add error on solve before of randc variable.
2024-11-09 12:26:48 -05:00
Wilson Snyder
3fae11595a
Support pure constraint.
2024-11-09 12:05:26 -05:00
Wilson Snyder
1e546bb9d9
Add assertion on firing event inside class ( #5597 )
2024-11-09 09:28:40 -05:00
Wilson Snyder
138daaf565
Commentary: Changes update
2024-11-09 08:35:40 -05:00
Wilson Snyder
3438d8f2b0
Tests: Use illegal struct
2024-11-09 08:34:17 -05:00
Wilson Snyder
e55ed8eb66
Commentary
2024-11-09 08:24:50 -05:00
Wilson Snyder
a55daf5367
Commentary
2024-11-09 07:56:47 -05:00
Yilou Wang
a173883b2d
Support basic constrained random for multi-dimensional dynamic array and queue ( #5591 )
2024-11-08 14:04:58 -05:00
Wilson Snyder
61d2284eab
Commentary
2024-11-08 07:47:46 -05:00
Ryszard Rozak
6083480abb
Fix rand dynamic arrays with null handles ( #5594 )
...
l
2024-11-08 06:53:43 -05:00
Wilson Snyder
2e1128b417
Internals: Iterator cleanup. No functional change intended.
2024-11-06 19:21:03 -05:00
Yilou Wang and Udaya Raj Subedi
e47208d9b3
Support queue's assignment push_back/push_front('{}) ( #5585 ) ( #5586 )
...
Co-authored-by: Udaya Raj Subedi <[email protected] >
2024-11-06 17:31:48 -05:00
Wilson Snyder
87bd8fefa0
Add error on wait with missing .triggered. ( #4457 )
2024-11-05 01:22:56 -05:00
Wilson Snyder
753ea29df8
Add error on illegal enum base type ( #3010 ).
2024-11-05 00:58:46 -05:00
Wilson Snyder
b1dfdef0a9
Add error when improperly storing to parameter ( #5147 ).
2024-11-05 00:17:40 -05:00
Wilson Snyder
2e4676dc11
Internals: Add missing VL_RESTORERS to V3LinkLValue; probably fixes no real cases, bug better safe.
2024-11-05 00:03:23 -05:00
Wilson Snyder
eaaf91c82b
Internals: Cleanup VL_RESTORER format in V3LinkLValue. No functional change.
2024-11-04 23:55:39 -05:00
Bartłomiej Chmiel and Ryszard Rozak
4e71f359bf
Fix duplicate scope identifiers decoding ( #5584 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
Co-authored-by: Ryszard Rozak <[email protected] >
2024-11-04 06:06:15 -08:00
Ryszard Rozak
b3348a38d0
Internals: Remove repeated clearing of constraints ( #5583 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-11-04 04:48:55 -08:00
Wilson Snyder
7854118883
Fix negative assignment pattern keys ( #5580 ).
2024-11-02 10:06:01 -04:00
Wilson Snyder
ed0e1af7aa
Commentary: Changes update
2024-11-02 09:47:55 -04:00
github action
e1a9734917
Apply 'make format'
2024-11-02 13:43:43 +00:00
Zhou Shen
589612f914
Fix can't locate scope error in interface task delayed assignment ( #5462 ) ( #5568 )
2024-11-02 09:42:57 -04:00
Geza Lore
76b4c2f254
driver.py: Properly detect cfg with ccache ( #5579 )
2024-11-01 17:14:17 +00:00
Wilson Snyder
b097cec72d
Tests: Reduce false t_const_number_unsized_parse timeouts ( #5577 )
2024-11-01 12:39:29 -04:00
Wilson Snyder
9689a4f58a
Internals: Support VL_UNREACHABLE in C++23/MSVC. No functional change intended.
2024-10-31 21:29:13 -04:00
Geza Lore
aac0186871
Fix pylint 3.2.7 global-variable-not-assigned ( #5578 )
2024-11-01 15:27:08 +00:00
Geza Lore
f458951b17
Fix slow unsized number parsing ( #5577 )
...
Try to avoid allocating and deallocating a full --max-num-width
buffer on parsing every single unsized number literal.
2024-11-01 14:10:44 +00:00
Andrew Nolte
4448778dbf
Add coverage point hierarchy to coverage reports ( #5575 ) ( #5576 )
2024-11-01 09:30:44 -04:00
Todd Strader
dab826bef9
VPI error instead of fatal for vpi_get_value() on large signals ( #5571 )
2024-10-31 17:02:37 -04:00
Todd Strader
9fae951d9d
Fix --output-groups leftover files issue ( #5574 )
2024-10-31 14:38:53 -04:00
Todd Strader
0f2a8c6c22
Fix BLKANDNBLK for for VARXREFs ( #5569 )
2024-10-29 07:27:40 -04:00
Wilson Snyder
68e0cf5523
devel release
2024-10-27 10:08:18 -04:00
Wilson Snyder
d6ba65ba75
Version bump
2024-10-27 09:38:06 -04:00
Wilson Snyder
f496138855
Commentary: Changes update
2024-10-27 09:33:54 -04:00
Wilson Snyder
2f272a4190
Fix $countbits in assert with non-tristates ( #5566 ).
2024-10-27 09:30:54 -04:00
Wilson Snyder
469eca7de2
Commentary: Changes update
2024-10-25 18:54:39 -04:00
Todd Strader
ec2eae607a
Fix enum name method ( #5563 )
2024-10-25 18:49:45 -04:00
Ryszard Rozak
292c2e289e
Support rand dynamic arrays of objects ( #5557 ) ( #5564 )
2024-10-25 12:00:43 -04:00
Ryszard Rozak
87ac61140d
Tests: Don't use indices in check_rand ( #5561 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-10-25 11:06:32 -04:00
Geza Lore
81ee89de15
Properly skip t_ccache_report when no ccache ( #5562 )
2024-10-25 14:33:26 +01:00
Todd Strader
83081aaefc
Fix struct literal on pattern assignment ( #5552 ) ( #5559 )
2024-10-24 18:50:57 -04:00
Tomasz Gorochowik
fd2917c928
Commentary: Fix sv-bugpoint paragraph typo ( #5558 )
2024-10-24 09:41:27 -04:00
Ryszard Rozak
4cd69f9feb
Fix queue element access ( #5551 )
2024-10-24 09:40:54 -04:00
Eric Müller
4e5c7f4568
Fix build on gcc when using the spack wrapper ( #5555 )
2024-10-24 07:53:11 -04:00
Tomasz Gorochowik
647af27274
Commentary: Mention sv-bugpoint in the contributing guidelines ( #5553 )
2024-10-24 07:42:57 -04:00
Todd Strader
8cc7e180ca
Fix array trace splitting ( #5549 )
2024-10-23 11:51:48 -04:00
Todd Strader
d3d45c0be5
Tests: Fix file_grep_count() error message ( #5550 )
2024-10-23 10:07:03 -04:00
Wilson Snyder
549dd31224
Commentary: Changes update
2024-10-22 09:34:09 -04:00
Wilson Snyder
36888fac5d
Fix long module names crashing string handling ( #5546 ).
2024-10-22 09:25:58 -04:00
Yilou Wang and Udaya Raj Subedi
2409f32d87
Fix multi-range indices assignment ( #5534 ) ( #5547 )
...
Co-authored-by: Udaya Raj Subedi <[email protected] >
2024-10-21 09:56:50 -04:00
Yilou Wang
8c3cc3af8f
Fix struct array assignment ( #5455 ) ( #5537 )
2024-10-21 09:54:33 -04:00
Todd Strader
76fe224e7c
Fix complex user type problem with --x-assign ( #5543 )
2024-10-18 19:52:25 -04:00
Krzysztof Boroński
7ccc93d9df
Fix reduction methods for verilated types ( #5542 )
2024-10-18 19:51:44 -04:00
Geza Lore
55661e7f71
Install public executables into bindir instead of pkgdatadir ( #5140 ) ( #5544 )
...
Instead of installing redirect scripts in to bindir, and real
executables in to pkgdatadir/bin, we now put the real executables into
bindir, and add redirect scripts into pkgdatadir/bin. (That is, we
redirect in the opposite direction as before).
This enables the same relocatable and testable installations as before
without putting architecture specific binaries into pkgdatadir, so
hopefully we now conform to the Linux Filesystem Hierarchy Standard.
This requires a small fixup in the installed `verilator` script to
hardcode the relative path between bindir and pkgdatadir.
Fixes #5140
2024-10-18 10:06:28 +01:00
Aidan McNay
ece0613e09
Commentary: Fix CMake comments ( #5545 )
2024-10-17 16:39:51 -04:00
Ryszard Rozak
0dce97b09d
Fix assignments of concatenation to queues and dynamic arrays ( #5540 )
2024-10-15 07:35:59 -04:00
Ryszard Rozak
a3d0cc6522
Fix static function wrappers ( #5536 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-10-14 07:41:17 -04:00
Wilson Snyder
1df20f7076
Remove driver.pl - deprecated earlier with driver.py
2024-10-13 21:55:31 -04:00
Wilson Snyder
2fc94557a0
Fix error on enums with x/z using .name(), and internal refactoring
2024-10-11 22:37:48 -04:00
Vito Gamberini and Wilson Snyder
789698cb5c
Fix coverage counts missing due to table optimization ( #5473 ) ( #5474 ).
...
Co-authored-by: Wilson Snyder <[email protected] >
2024-10-10 21:22:06 -04:00
Yilou Wang
3cced9baad
Fix foreach on associative arr with the same logic and update the tests ( #5530 )
2024-10-10 12:50:43 -04:00
Yilou Wang
f3cc32554c
Fix foreach with 2-D queues and dynamic arrays ( #5525 ) ( #5529 )
2024-10-10 10:50:37 -04:00
Ryszard Rozak
2a905c1d6e
Fix copy constructor of classes that use std::process ( #5528 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-10-10 14:40:07 +02:00
Wilson Snyder
230b145c04
Commentary
2024-10-10 08:14:21 -04:00
Wilson Snyder
9f34764f4b
Tests: Find filenames with fix me
2024-10-10 07:48:23 -04:00
Wilson Snyder
69ac3c14e8
Fix crash with internal assertion on short array initializer (partial #5511 )
2024-10-10 07:20:44 -04:00
Wilson Snyder
f98637e122
Internals: Cleanup style of coverage visitors. No functional change. Ignore whitespace if diff.
2024-10-09 18:13:23 -04:00
Wilson Snyder
6d936654ba
Commentary: Changes update
2024-10-09 18:01:34 -04:00
Wilson Snyder
4dd4047c47
Internals: Less verbose docs build
2024-10-09 18:01:30 -04:00
Zhou Shen
1710b6bab4
Support for wired nets, wor/trior/wand/triand. ( #5496 )
2024-10-09 17:53:46 -04:00
Geza Lore
041f6603c3
Make incorrect soft ordering constraint into a hard constraint. ( #5520 )
...
An ordering constraint between NBA commit blocks ('Post' logic) and the
written variable were previously added as soft constraints (cutable
edges). However these are required for correctness, so if it ever is
cut we will have incorrect simulation results.
Change these into hard constraints instead. This necessitates adding a
flag on AstVar to ignore special variables constructed during V3Delayed
that might otherwise appear as degenerate logic loops. E.g.:
if (VdlySet) {
VdlySet = 0; // <- This write to VdlySet can and must be ignored
LHS = VdlyVal;
}
No functional change, but you might get an error if this constraint was
ever violated. (Theoretically it should never be, as these variables
were inserted in a way that does not require violating these constraints
...)
2024-10-09 11:43:53 +01:00
Geza Lore
5acced1e33
Refactor V3Delay for extensibility ( #5516 )
...
* Refactor V3Delay for extensibility
Introduce the concept of an "NBA Scheme", which is the lowering pattern
we can use for various variables that are the targets of NBAs.
E.g.:
- ShadowVariable (old default scheme)
- FlagShared (old array set flag scheme)
- ValueQueueWhole (recent dynamic commit queue)
We now analyse all AstAssignDly before making any decisions on which
scheme to apply. We then choose a specific scheme for each variable that
is the target of an NBA, and then all NBAs targeting that variable use
the same scheme. This enables easy mix and match of schemes as needed,
while remaining consistent by design after extensions.
Output is perturbed due to node insertion order, but no functional
or performance change is intended.
2024-10-09 10:39:40 +01:00
Yilou Wang
920c8012de
Support unconstrained randomization for associative array and queue ( #5515 )
2024-10-08 10:54:20 -04:00
Geza Lore
8f1ea09558
Add lsb index to V3Number::setMask ( #5522 )
2024-10-08 13:15:36 +01:00
Wilson Snyder
b873c23cf2
Internals: Refactor into V3Width enumSelect function
2024-10-07 21:44:07 -04:00
Wilson Snyder
13c7b6e827
Tests: Faster first retry
2024-10-07 21:44:07 -04:00
Wilson Snyder
bbce7926b9
Tests: Remove unused clk input
2024-10-07 21:44:07 -04:00
Wilson Snyder
2c445e4bfd
Commentary: Changes update
2024-10-07 21:44:07 -04:00
Furqan Nadir
338d54fd34
Commentary: Add name to CONTRIBUTORS ( #5519 )
2024-10-07 14:10:43 -04:00
Ryszard Rozak
009d1f2f5b
Fix -j option without argument in hierarchical verilation ( #5514 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2024-10-07 07:31:59 -04:00
github action
08279645ca
Apply 'make format'
2024-10-06 22:10:07 +00:00
Wilson Snyder
28ecd8e908
Support local and protected on typedef ( #5460 ).
2024-10-06 18:08:40 -04:00
Wilson Snyder
bc8a332ee8
Tests: Disable last test due to clang warning
2024-10-06 05:00:57 -04:00
Wilson Snyder
d52822781c
Tests: Fix driver for --iv etc
2024-10-06 04:49:53 -04:00
github action
bdd37e40fe
Apply 'make format'
2024-10-06 08:02:10 +00:00
Wilson Snyder
4b713e9882
Fix pattern initialization with typedef key ( #5512 ).
2024-10-06 04:01:15 -04:00
Wilson Snyder
fd9f5ab34e
Fix not reporting class reference with extra parameters ( #5467 ).
2024-10-04 05:38:36 -04:00
Wilson Snyder
d06f986b51
Add elaboration dot-error message context, plus debug improvements
2024-10-04 05:38:05 -04:00
Wilson Snyder
8638e46cb7
Fix IEEE version number
2024-10-04 05:22:09 -04:00
Wilson Snyder
85909f02b3
Commentary
2024-10-04 05:21:18 -04:00
Nathan Graybeal
3572bd2f1a
Fix configure inserting absolute paths for Python and Perl ( #5504 ) ( #5505 )
...
* Migrate all tools to AC_CHECK_PROG
2024-10-04 10:08:44 +01:00
Wilson Snyder
ff1d20d50c
Tests: Add t_struct_initial_assign, still fails ( #5380 ) ( #5381 ).
2024-10-03 20:36:23 -04:00
Wilson Snyder
c300075a20
Tests: Remove driver Python version package requirement ( #5505 )
2024-10-03 19:39:28 -04:00
Wilson Snyder
4bdfc653a3
Add error on misused genvar ( #408 ).
2024-10-03 18:54:30 -04:00
Wilson Snyder
554653900a
Commentary: Move C++20 deprec to after Ubuntu 20.04 EOL
2024-10-03 18:15:51 -04:00
Wilson Snyder
b90b81e12c
Tests: Fix string !== for other simulators.
2024-10-03 18:14:53 -04:00
Han Qi
bf2b4e1b6a
Fix equivalence checking when replacing type parameters ( #5213 ) ( #5255 )
2024-10-03 21:19:07 +01:00
Yilou Wang
c05c48aaf3
Support unpacked array Constrained Randomization ( #5437 ) ( #5489 )
2024-10-02 10:29:47 -04:00
Fabian Keßler
39143cc15a
Fix explicit CMAKE_INSTALL_PREFIX usages ( #5500 )
2024-10-01 13:38:16 -04:00
Wilson Snyder
03012da11c
Internals: astgen: Detect bad node types after edits.
...
Also add checks for nodes that can be multiple types with syntax
`AstNode<AstNodeExpr|AstNodeDType>`
2024-09-30 22:25:28 -04:00
0547108e3f
Add -output-groups to build with concatenated .cpp files ( #5257 )
...
Signed-off-by: Bartłomiej Chmiel <[email protected] >
Signed-off-by: Ryszard Rozak <[email protected] >
Signed-off-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Mariusz Glebocki <[email protected] >
Co-authored-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Bartłomiej Chmiel <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
Co-authored-by: Ryszard Rozak <[email protected] >
2024-09-30 21:42:36 -04:00
Bartłomiej Chmiel
1a31aa5d62
Internals: Fix annotation checker not considering base class virtual function annotations ( #5459 )
2024-09-30 21:34:34 -04:00
Wilson Snyder
13a1240359
Commentary: Changes update
2024-09-29 21:41:05 -04:00
Wilson Snyder
b7e5486baa
Internals: Fix astgen spacing
2024-09-29 16:56:50 -04:00
Wilson Snyder
afeca21d73
Internals: For debug, quote symbol table to see spaces.
2024-09-29 16:56:32 -04:00
Wilson Snyder
d0ec6092b3
Change package import/export to link post-parsing, prep for later commit.
2024-09-28 20:55:22 -04:00
Wilson Snyder
5c923d6629
Fix to avoid IMPLICIT creation if data type of same name.
2024-09-28 17:58:26 -04:00
Wilson Snyder
1dc6fd3d93
Internals: Move interface error to later phase, prep for later commit. No functional change intended.
2024-09-28 17:37:44 -04:00
Arkadiusz Kozdra
5b56c80830
Better error recovery ( #5493 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-27 20:38:49 +02:00
Wilson Snyder
2291d3d4c6
Tests: Fix some non-IEEE issues in tests.
2024-09-27 09:00:20 -04:00
Arkadiusz Kozdra
02e7767886
Fix randomize with foreach constraints ( #5492 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-26 19:31:06 +02:00
Geza Lore
2a01365f9b
Fix V3Table trying to generate 'x' bits in the lookup table. ( #5491 )
...
Due to out of range selects, V3Table attempted to create a table in the
constant pool with an 'x' value in it, which caused an internal error.
Ensure V3Table behaves the same for out of range selects as the original
logic would.
There is a related bug #5490 , about leaving partially out of range
selects in the logic after inserting bounds checks in V3Unknown.
2024-09-26 16:31:47 +01:00
Arkadiusz Kozdra and Szymon Gizler
91c8866ac3
Fix exponential ConcatN ( #5488 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Szymon Gizler <[email protected] >
2024-09-26 05:12:24 -04:00
Wilson Snyder
798bbe98e8
Add syntax error on empty case items, per IEEE grammar.
2024-09-25 22:40:28 -04:00
Wilson Snyder
a3bbf13506
Internals: Minor parser reorgs in prep for future pull. No functional change intended.
2024-09-25 20:41:49 -04:00
Wilson Snyder
650da7beb2
Examples: Cleanup some spacing
2024-09-25 14:24:01 -04:00
Geza Lore
3bc09d49fb
Generate one trigger per SenItem instead of per SenTree ( #5483 )
2024-09-25 10:35:50 +01:00
Wilson Snyder
6c61a9aff3
Support objcache when compiling Verilated files with cmake.
2024-09-24 20:55:11 -04:00
Wilson Snyder
a4085f3a06
Internals: Standardize format of CMake files with gersemi. No functional change intended.
2024-09-24 20:43:19 -04:00
Wilson Snyder
3ae18af8dd
Fix short-circuting on method calls ( #5486 ).
2024-09-24 20:24:27 -04:00
Wilson Snyder
811eab8fa5
Fix short-circuting with associative array access ( #5484 ).
2024-09-24 19:24:01 -04:00
Wilson Snyder
4ec75b2618
Fix over-permissive parsing of UDPs without identifiers
2024-09-24 18:53:32 -04:00
Wilson Snyder
5a65d27851
Internals: bisonpre: Support -Wcounterexamples
2024-09-23 21:42:02 -04:00
Chris Bachhuber
685ea0bc65
Add Docker pre-commit hook ( #5238 ) ( #5452 )
2024-09-23 07:37:24 -04:00
Wilson Snyder
c48d80592e
Fix extra dot in coverage point hierarchy when using name()=''.
2024-09-23 07:34:12 -04:00
Wilson Snyder
0aa8356eca
Change --main and --binary to use a TOP hierarchy name of "" ( #5482 ).
2024-09-22 23:03:51 -04:00
Wilson Snyder
670b7c5243
Support DPI imports and exports with double underscores ( #5481 ).
2024-09-22 22:11:01 -04:00
Wilson Snyder
706679e6b1
Support DPI imports and exports with double underscores.
2024-09-22 22:06:39 -04:00
Wilson Snyder
d288488b7f
Fix --binary with .cpp PLI filenames under relative directory paths.
2024-09-22 16:47:15 -04:00
Chris Bachhuber
b17619296a
Documentation: Highlight syntax in install.rst ( #5478 )
2024-09-22 15:55:12 -04:00
Wilson Snyder
88bd479bc7
Add error on instances without parenthesis.
2024-09-22 12:25:35 -04:00
Wilson Snyder
2584befa5a
Internals: Show tree traversal in V3LinkDot Resolve debug. No functional change intended.
2024-09-22 10:46:04 -04:00
Wilson Snyder
90215878f8
Tests: Improve t_dist_warn_coverage.py
2024-09-22 09:10:03 -04:00
Wilson Snyder
a1a74cb1d9
Fix mis-parsing of constraint = new.
2024-09-22 09:10:01 -04:00
Wilson Snyder
9f9770e722
Parse elaboration-time nettype declarations (as UNSUPPORTED)
2024-09-21 21:00:02 -04:00
Wilson Snyder
888af29a72
Delay struct type determination until elaboration
2024-09-21 20:27:55 -04:00
Wilson Snyder
5f39c69d19
Delay parameter type assignment determination until elaboration
2024-09-21 20:27:41 -04:00
Wilson Snyder
e7de2c5a05
Remove warning on unsized numbers exceeding 32-bits.
2024-09-21 19:19:12 -04:00
Geza Lore
59b07529b1
driver.py: fix aslr_off ( #5477 )
2024-09-21 16:37:51 +01:00
Geza Lore
a6e9bce0dd
driver.py: consume all stdout from subprocess ( #5476 )
2024-09-21 16:24:45 +01:00
Wilson Snyder
2c52119d6c
Tests: Rename some tests into proper groups. No functional change.
2024-09-21 10:04:58 -04:00
Wilson Snyder
48faf8d036
Fix tracing when name() is empty ( #5470 ).
2024-09-21 08:25:14 -04:00
Wilson Snyder
0484143282
Tests: Update t_timing_finish ( #5472 )
2024-09-21 07:46:04 -04:00
Wilson Snyder
0ee214a157
Tests: Fix t_timing_fork_comb_bad committed earlier
2024-09-20 22:16:00 -04:00
Wilson Snyder
774ec42be4
Internals: Experimental cleanup; avoid :: on package symbol tables
2024-09-20 20:39:49 -04:00
Wilson Snyder
5a6f2b661d
Tests: Avoid multiple lint/compile runs in one test; hard to debug
2024-09-20 20:34:35 -04:00
Wilson Snyder
80cba789f4
Internals: Remove V3LinkParse's need of class links. No functional change intended.
2024-09-20 18:26:23 -04:00
Wilson Snyder
92dd8ee8f5
Fix timing mode not exiting on empty events ( #5472 ).
2024-09-20 17:46:27 -04:00
Todd Strader
1665d15d4d
Fix user-type parameter overlap ( #5469 )
2024-09-20 14:29:31 -04:00
Wilson Snyder
f0fb0b05ff
Internals: Misc V3Param cleanups.
2024-09-20 08:59:10 -04:00
Wilson Snyder
02e88e3848
Fix suppression of WIDTH* warnings when immediately under a size cast ( #3417 ).
2024-09-19 22:56:47 -04:00
Wilson Snyder
87eef36b1c
Tests: Fix driver race sometimes missing final log data
2024-09-19 22:49:40 -04:00
Wilson Snyder
579257bc42
Tests: Fix driver not accepting debug pass-down flags to Verilator, broke earlier commit.
2024-09-19 22:08:40 -04:00
Wilson Snyder
e2041f7450
Commentary: Changes update
2024-09-19 20:29:39 -04:00
Yilou Wang
70112438c3
Support packed/unpacked and dynamic array unconstrained randomization ( #5414 ) ( #5415 )
2024-09-19 20:07:05 -04:00
Wilson Snyder
175e1dde73
Tests: Run t_hier_block_cmake.py first so finishes
2024-09-19 19:33:43 -04:00
Wilson Snyder
e990415ee0
Tests: Improve driver performance with forkserver
2024-09-19 19:28:07 -04:00
Wilson Snyder
1543b202b2
Tests: Move per-command expect= to instead check logfiles
2024-09-19 18:53:22 -04:00
Wilson Snyder
f63168a5b5
CI: More parallelism
2024-09-19 18:51:33 -04:00
Wilson Snyder
49bccb5f1b
Commentary
2024-09-19 17:58:37 -04:00
Wilson Snyder
c7e1358bb7
Tests: Fix --gdb with one test ( #5466 )
2024-09-19 17:06:32 -04:00
Geza Lore
62a58f420c
Fix latest pylint issues ( #5465 )
2024-09-19 15:51:13 +01:00
Arkadiusz Kozdra
dd95e033e7
Support inside array constraints ( #5448 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-19 07:27:59 -04:00
Wilson Snyder
371a4055b0
Fix false LIFETIME warning on repeat in fork-join ( #5456 ).
2024-09-18 21:20:17 -04:00
Wilson Snyder
f251f7b774
Tests: CONSTRIAINTIGN, ZERODLY no longer need suppression on UVM
2024-09-17 21:21:08 -04:00
Wilson Snyder
0f3e0de891
Commentary
2024-09-17 20:58:14 -04:00
Wilson Snyder
7081ea0ede
Support as a task call
2024-09-17 20:53:08 -04:00
Wilson Snyder
fb04765c0e
Fix class reference with pin that is a class reference ( #5454 ).
2024-09-17 17:38:18 -04:00
Wilson Snyder
b8bda729d4
Tests: Fix debug message
2024-09-16 20:29:23 -04:00
Wilson Snyder
195a665293
Internals: Fix V3LinkDot debug message print
2024-09-15 21:18:51 -04:00
Wilson Snyder
c8de3630a5
Tests: Fix driver error report, and passing --dumpi-tree
2024-09-15 21:10:44 -04:00
Wilson Snyder
99a29acca0
CI: One-time yamlfix cleanups. No functional change intended.
2024-09-15 14:37:09 -04:00
Wilson Snyder
48a607cc78
Internals: Cleanup Makefile.in to commented sections. No functional change intended.
2024-09-15 13:55:43 -04:00
Wilson Snyder
19170badd3
Fix warning IEEE reference ( #5453 )
2024-09-15 11:05:48 -04:00
Wilson Snyder
77fc771ed0
Tests: Fix missing stdout on execute()
2024-09-14 18:01:49 -04:00
github action
9b9a554489
Apply 'make format'
2024-09-14 00:46:48 +00:00
Wilson Snyder
0fe8c73d19
Fix $fatal to not be affected by +verilator+error+limit ( #5135 ).
2024-09-13 20:45:44 -04:00
Wilson Snyder
eb66e137db
Fix fault on defparam with UNSUPPORTED ignored ( #5450 ).
2024-09-13 18:31:55 -04:00
Wilson Snyder
c2b82c293f
Tests: Fix driver creating .out with --gold
2024-09-13 18:31:35 -04:00
Arkadiusz Kozdra
0b7510befa
Support basic dist constraints ( #5431 )
2024-09-12 05:20:36 -07:00
Arkadiusz Kozdra
140eb0a6e5
Re-sync parser on endclass
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-11 15:57:45 +02:00
Arkadiusz Kozdra
6b8f253ecd
Re-sync parser in constraints and cross coverpoints
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-09-11 15:57:45 +02:00
Arkadiusz Kozdra
ac29393ec9
Do not parse covergroup identifiers as types
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
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
f4e4602dcb
Tests: Fix driver handling of interrupts
2024-09-10 20:29:26 -04:00
Wilson Snyder
521c5c2f75
Fix extra events in traces ( #5405 ).
2024-09-10 19:14:52 -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 <[email protected] >
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 <[email protected] >
2024-09-10 07:17:21 -04:00
Wilson Snyder
283a5edbdb
Tests: Make GCOV_PREFIX path directories
2024-09-09 21:47:47 -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
Wilson Snyder
434896d50c
Tests: test class IGNOREDRETURN.
2024-09-09 19:48:15 -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
07bb8c701d
Convert test driver to Python ( #5427 )
2024-09-08 13:00:03 -04: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
Wilson Snyder
d01b917062
Commentary: Changes update
2024-09-07 15:24:06 -04:00
Wilson Snyder
b21117091b
CI: Add Ubuntu 24.04 GCC; combine reloc with GCC-10 runs
2024-09-07 13:43:47 -04:00
Wilson Snyder
3a73d83741
Tests: Fix clang 18 warning
2024-09-07 10:20:59 -04:00
Wilson Snyder
9643232d36
CI: Add Ubuntu 24.04 script (not enabled yet)
2024-09-07 10:12:35 -04:00
Wilson Snyder
7b41d2046d
Fix GTKWave clang 18 warning
2024-09-07 10:12:09 -04:00
Wilson Snyder
7eb1b6c32b
Tests: Fix GCC 13.2.0 issues. No functional change.
2024-09-06 22:04:49 -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
Wilson Snyder
1c38744fd1
Tests: Fix requiring core dump
2024-09-04 20:10:05 -04:00
Krzysztof Bieganski
51691dfde5
Fix driving clocking block in Reactive
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
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 <[email protected] >
2024-09-04 07:57:51 -04:00
Wilson Snyder
e4ff0909dc
Tests: Misc test cleanups from Python branch.
2024-09-03 21:42:06 -04:00
Wilson Snyder
d3670b6890
Test: Remove old test
2024-09-03 21:32:09 -04:00
Wilson Snyder
7a74ddc1af
Internals: Fix some getter/setter ordering. No functional change intended.
2024-09-02 18:48:49 -04:00
Wilson Snyder
551862a55e
Tests: Move some misplaced files. No functional change.
2024-09-02 15:50:40 -04:00
Arkadiusz Kozdra
d3fcec3e84
Fix clearing trigger of events with no sentrees ( #5426 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
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
github action
e9f758ce67
Apply 'make format'
2024-09-02 01:13:41 +00:00
Wilson Snyder
b698bfd850
Tests: Untabify some tests.
2024-09-01 21:12:37 -04:00
Wilson Snyder
c9970ff822
Tests: Fix --verbose broken display
2024-09-01 21:01:07 -04:00
Wilson Snyder
df594ee430
Tests: Fix ll scan test.
2024-09-01 20:59:42 -04:00
Todd Strader
201e343795
Fix sformatf internal error on initial automatics ( #5423 )
2024-08-30 19:35:47 -04:00
Wilson Snyder
9a307c4abd
Tests: Cleanup trace_filename use. No test functionality change.
2024-08-30 18:34:42 -04:00
Krzysztof Bieganski
657d7f257b
Support named event locals ( #5422 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
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
Wilson Snyder
cdfb2221bb
Tests: Remove ancient GCC 4.4 skip.
2024-08-29 19:25:22 -04:00
Krzysztof Bieganski
f133a2811f
Fix capturing params in randomize() with ( #5416 ) ( #5418 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
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
Wilson Snyder
f4fe89a8c4
Commentary: Changes update
2024-08-28 17:32:57 -04:00
Krzysztof Bieganski
675d9a641e
Call pre/post_randomize on randomize() with ( #5412 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-28 19:42:49 +02:00
Krzysztof Bieganski
d896f1ff08
Fix queue [$-i] select as reference argument ( #5411 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-08-28 17:29:12 +02:00
Arkadiusz Kozdra
5cb6f370e9
Internals: Emit rand constraint right away. No functional change intended. ( #5409 )
...
This change gets rid of most of the shared pointers and useless memory
allocations. Also takes advantage of higher-arity bvxor/concat to
reduce amount of data sent to the solver.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-08-28 16:11:39 +02:00
Kaleb Barrett
e04ef5d83a
Add method to check if there are VPI callbacks of the given type ( #5399 )
2024-08-27 17:36:51 -04:00
Krzysztof Bieganski
155dcc5658
Fix empty foreach in if in constraints ( #5408 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
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 <[email protected] >
2024-08-27 12:53:44 +02:00
Wilson Snyder
d40f7f5167
Tests: Fix lint-py (last commit)
2024-08-27 05:31:40 -04:00
Wilson Snyder
34bb013941
Tests: Fix broken t_proc.pl, and misc cleanups.
2024-08-26 21:53:36 -04:00
Wilson Snyder
ae35be9102
Internals: Reformat with new settings (last commit). No functional change.
2024-08-26 21:53:36 -04:00
Wilson Snyder
bde4097df2
Internals: Add .style.yapf
2024-08-26 21:53:36 -04:00
Wilson Snyder
17b70788df
Internals: Run yapf3 in parallel
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
4e86e60491
Tests: Use only case-sensitve non-extended regexps
2024-08-26 08:14:39 -04:00
Wilson Snyder
d3e07b6ad9
Internals: Always use parallel for make -j 4 clang-format yapf format-pl-exec
...
make[1]: Entering directory '/svaha/wsnyder/SandBox/homecvs/v4/verilator'
yapf3 -i bin/verilator_ccache_report bin/verilator_difftree bin/verilator_gantt bin/verilator_includer bin/verilator_profcfunc examples/json_py/vl_file_copy examples/json_py/vl_hier_graph docs/guide/conf.py docs/bin/vl_sphinx_extract docs/bin/vl_sphinx_fix src/astgen src/bisonpre src/config_rev src/cppcheck_filtered src/flexfix src/vlcovgen src/.gdbinit.py test_regress/t/*.pf nodist/clang_check_attributes nodist/code_coverage nodist/dot_importer nodist/fuzzer/actual_fail nodist/fuzzer/generate_dictionary nodist/install_test nodist/log_changes nodist/code_coverage.dat
chmod a+x test_regress/t/*.pl
clang-format-14 -i ./include/verilated.cpp ./include/verilated_cov.cpp ./include/verilated_dpi.cpp ./include/verilated_fst_c.cpp ./include/verilated_fst_sc.cpp ./include/verilated_probdist.cpp ./include/verilated_profiler.cpp ./include/verilated_random.cpp ./include/verilated_save.cpp ./include/verilated_threads.cpp ./include/verilated_timing.cpp ./include/verilated_vcd_c.cpp ./include/verilated_vcd_sc.cpp ./include/verilated_vpi.cpp ./examples/make_hello_c/sim_main.cpp ./examples/make_hello_sc/sc_main.cpp ./examples/make_protect_lib/sim_main.cpp ./examples/make_tracing_c/sim_main.cpp ./examples/make_tracing_sc/sc_main.cpp ./src/VlcMain.cpp ./src/VlcTop.cpp ./src/V3Active.cpp ./src/V3ActiveTop.cpp ./src/V3Assert.cpp ./src/V3AssertPre.cpp ./src/V3Ast.cpp ./src/V3AstNodes.cpp ./src/V3Begin.cpp ./src/V3Branch.cpp ./src/V3Broken.cpp ./src/V3CCtors.cpp ./src/V3CUse.cpp ./src/V3Case.cpp ./src/V3Cast.cpp ./src/V3Class.cpp ./src/V3Clean.cpp ./src/V3Clock.cpp ./src/V3Combine.cpp ./src/V3Common.cpp ./src/V3Config.cpp ./src/V3Const.cpp ./src/V3Coverage.cpp ./src/V3CoverageJoin.cpp ./src/V3Dead.cpp ./src/V3Delayed.cpp ./src/V3Depth.cpp ./src/V3DepthBlock.cpp ./src/V3Descope.cpp ./src/V3Dfg.cpp ./src/V3DfgAstToDfg.cpp ./src/V3DfgCache.cpp ./src/V3DfgDecomposition.cpp ./src/V3DfgDfgToAst.cpp ./src/V3DfgOptimizer.cpp ./src/V3DfgPasses.cpp ./src/V3DfgPeephole.cpp ./src/V3DfgRegularize.cpp ./src/V3DupFinder.cpp ./src/Verilator.cpp ./src/V3EmitCBase.cpp ./src/V3EmitCConstPool.cpp ./src/V3EmitCFunc.cpp ./src/V3EmitCHeaders.cpp ./src/V3EmitCImp.cpp ./src/V3EmitCInlines.cpp ./src/V3EmitCMain.cpp ./src/V3EmitCMake.cpp ./src/V3EmitCModel.cpp ./src/V3EmitCPch.cpp ./src/V3EmitCSyms.cpp ./src/V3EmitMk.cpp ./src/V3EmitV.cpp ./src/V3EmitXml.cpp ./src/V3Error.cpp ./src/V3ExecGraph.cpp ./src/V3Expand.cpp ./src/V3File.cpp ./src/V3FileLine.cpp ./src/V3Force.cpp ./src/V3Fork.cpp ./src/V3Gate.cpp ./src/V3Global.cpp ./src/V3Graph.cpp ./src/V3GraphAcyc.cpp ./src/V3GraphAlg.cpp ./src/V3GraphPathChecker.cpp ./src/V3GraphTest.cpp ./src/V3Hash.cpp ./src/V3Hasher.cpp ./src/V3HierBlock.cpp ./src/V3Inline.cpp ./src/V3Inst.cpp ./src/V3InstrCount.cpp ./src/V3Interface.cpp ./src/V3Param.cpp ./src/V3ParseGrammar.cpp ./src/V3ParseImp.cpp ./src/V3ParseLex.cpp ./src/V3PreProc.cpp ./src/V3PreShell.cpp ./src/V3Premit.cpp ./src/V3ProtectLib.cpp ./src/V3Randomize.cpp ./src/V3Reloop.cpp ./src/V3Sampled.cpp ./src/V3Sched.cpp ./src/V3SchedAcyclic.cpp ./src/V3SchedPartition.cpp ./src/V3SchedReplicate.cpp ./src/V3SchedTiming.cpp ./src/V3SchedVirtIface.cpp ./src/V3Scope.cpp ./src/V3Scoreboard.cpp ./src/V3Slice.cpp ./src/V3Split.cpp ./src/V3SplitAs.cpp ./src/V3SplitVar.cpp ./src/V3StackCount.cpp ./src/V3Stats.cpp ./src/V3StatsReport.cpp ./src/V3String.cpp ./src/V3Subst.cpp ./src/V3TSP.cpp ./src/V3Table.cpp ./src/V3Task.cpp ./src/V3ThreadPool.cpp ./src/V3Timing.cpp ./src/V3Trace.cpp ./src/V3TraceDecl.cpp ./src/V3Tristate.cpp ./src/V3Undriven.cpp ./src/V3Unknown.cpp ./src/V3Unroll.cpp ./src/V3VariableOrder.cpp ./src/V3Waiver.cpp ./src/V3Width.cpp ./src/V3WidthCommit.cpp ./src/V3WidthSel.cpp ./src/V3Life.cpp ./src/V3LifePost.cpp ./src/V3LinkCells.cpp ./src/V3LinkDot.cpp ./src/V3LinkInc.cpp ./src/V3LinkJump.cpp ./src/V3LinkLValue.cpp ./src/V3LinkLevel.cpp ./src/V3LinkParse.cpp ./src/V3LinkResolve.cpp ./src/V3Localize.cpp ./src/V3MergeCond.cpp ./src/V3Name.cpp ./src/V3Number.cpp ./src/V3OptionParser.cpp ./src/V3Options.cpp ./src/V3Order.cpp ./src/V3OrderGraphBuilder.cpp ./src/V3OrderMoveGraph.cpp ./src/V3OrderParallel.cpp ./src/V3OrderProcessDomains.cpp ./src/V3OrderSerial.cpp ./src/V3Os.cpp ./src/V3Param.cpp ./src/V3ParseGrammar.cpp ./src/V3ParseImp.cpp ./src/V3ParseLex.cpp ./src/V3PreProc.cpp ./src/V3PreShell.cpp ./src/V3Premit.cpp ./src/V3ProtectLib.cpp ./src/V3Randomize.cpp ./src/V3Reloop.cpp ./src/V3Sampled.cpp ./src/V3Sched.cpp ./src/V3SchedAcyclic.cpp ./src/V3SchedPartition.cpp ./src/V3SchedReplicate.cpp ./src/V3SchedTiming.cpp ./src/V3SchedVirtIface.cpp ./src/V3Scope.cpp ./src/V3Scoreboard.cpp ./src/V3Slice.cpp ./src/V3Split.cpp ./src/V3SplitAs.cpp ./src/V3SplitVar.cpp ./src/V3StackCount.cpp ./src/V3Stats.cpp ./src/V3StatsReport.cpp ./src/V3String.cpp ./src/V3Subst.cpp ./src/V3TSP.cpp ./src/V3Table.cpp ./src/V3Task.cpp ./src/V3ThreadPool.cpp ./src/V3Timing.cpp ./src/V3Trace.cpp ./src/V3TraceDecl.cpp ./src/V3Tristate.cpp ./src/V3Undriven.cpp ./src/V3Unknown.cpp ./src/V3Unroll.cpp ./src/V3VariableOrder.cpp ./src/V3Waiver.cpp ./src/V3Width.cpp ./src/V3WidthCommit.cpp ./src/V3WidthSel.cpp ./include/verilated.h ./include/verilated_config.h ./include/verilated_cov.h ./include/verilated_cov_key.h ./include/verilated_dpi.h ./include/verilated_fst_c.h ./include/verilated_fst_sc.h ./include/verilated_funcs.h ./include/verilated_imp.h ./include/verilated_intrinsics.h ./include/verilated_profiler.h ./include/verilated_random.h ./include/verilated_save.h ./include/verilated_sc.h ./include/verilated_sc_trace.h ./include/verilated_sym_props.h ./include/verilated_syms.h ./include/verilated_threads.h ./include/verilated_timing.h ./include/verilated_trace.h ./include/verilated_trace_imp.h ./include/verilated_types.h ./include/verilated_vcd_c.h ./include/verilated_vcd_sc.h ./include/verilated_vpi.h ./include/verilatedos.h ./include/verilatedos_c.h ./src/V3Active.h ./src/V3ActiveTop.h ./src/V3Assert.h ./src/V3AssertPre.h ./src/V3Ast.h ./src/V3AstInlines.h ./src/V3AstNodeDType.h ./src/V3AstNodeExpr.h ./src/V3AstNodeOther.h ./src/V3AstUserAllocator.h ./src/V3Begin.h ./src/V3Branch.h ./src/V3Broken.h ./src/V3CCtors.h ./src/V3CUse.h ./src/V3Case.h ./src/V3Cast.h ./src/V3Class.h ./src/V3Clean.h ./src/V3Clock.h ./src/V3Combine.h ./src/V3Common.h ./src/V3Config.h ./src/V3Const.h ./src/V3Coverage.h ./src/V3CoverageJoin.h ./src/V3Dead.h ./src/V3Delayed.h ./src/V3Depth.h ./src/V3DepthBlock.h ./src/V3Descope.h ./src/V3Dfg.h ./src/V3DfgCache.h ./src/V3DfgOptimizer.h ./src/V3DfgPasses.h ./src/V3DfgPatternStats.h ./src/V3DfgPeephole.h ./src/V3DfgVertices.h ./src/V3DupFinder.h ./src/V3EmitC.h ./src/V3EmitCBase.h ./src/V3EmitCConstInit.h ./src/V3EmitCFunc.h ./src/V3EmitCMain.h ./src/V3EmitCMake.h ./src/V3EmitMk.h ./src/V3EmitV.h ./src/V3EmitXml.h ./src/V3Error.h ./src/V3ExecGraph.h ./src/V3Expand.h ./src/V3File.h ./src/V3FileLine.h ./src/V3Force.h ./src/V3Fork.h ./src/V3FunctionTraits.h ./src/V3Gate.h ./src/V3Global.h ./src/V3Graph.h ./src/V3GraphAlg.h ./src/V3GraphPathChecker.h ./src/V3GraphStream.h ./src/V3Hash.h ./src/V3Hasher.h ./src/V3HierBlock.h ./src/V3Inline.h ./src/V3Inst.h ./src/V3InstrCount.h ./src/V3Interface.h ./src/V3LangCode.h ./src/V3LanguageWords.h ./src/V3Life.h ./src/V3LifePost.h ./src/V3LinkCells.h ./src/V3LinkDot.h ./src/V3LinkInc.h ./src/V3LinkJump.h ./src/V3LinkLValue.h ./src/V3LinkLevel.h ./src/V3LinkParse.h ./src/V3LinkResolve.h ./src/V3List.h ./src/V3Localize.h ./src/V3MemberMap.h ./src/V3MergeCond.h ./src/V3Mutex.h ./src/V3Name.h ./src/V3Number.h ./src/V3OptionParser.h ./src/V3Options.h ./src/V3Order.h ./src/V3OrderCFuncEmitter.h ./src/V3OrderGraph.h ./src/V3OrderInternal.h ./src/V3OrderMoveGraph.h ./src/V3Os.h ./src/V3PairingHeap.h ./src/V3Param.h ./src/V3Parse.h ./src/V3ParseImp.h ./src/V3ParseSym.h ./src/V3PchAstMT.h ./src/V3PchAstNoMT.h ./src/V3PreExpr.h ./src/V3PreLex.h ./src/V3PreProc.h ./src/V3PreShell.h ./src/V3Premit.h ./src/V3ProtectLib.h ./src/V3Randomize.h ./src/V3Reloop.h ./src/V3Rtti.h ./src/V3Sampled.h ./src/V3Sched.h ./src/V3Scope.h ./src/V3Scoreboard.h ./src/V3SenExprBuilder.h ./src/V3SenTree.h ./src/V3Simulate.h ./src/V3Slice.h ./src/V3Split.h ./src/V3SplitAs.h ./src/V3SplitVar.h ./src/V3StackCount.h ./src/V3Stats.h ./src/V3StdFuture.h ./src/V3String.h ./src/V3Subst.h ./src/V3SymTable.h ./src/V3TSP.h ./src/V3Table.h ./src/V3Task.h ./src/V3ThreadPool.h ./src/V3Timing.h ./src/V3Trace.h ./src/V3TraceDecl.h ./src/V3Tristate.h ./src/V3Undriven.h ./src/V3UniqueNames.h ./src/V3Unknown.h ./src/V3Unroll.h ./src/V3VariableOrder.h ./src/V3Waiver.h ./src/V3Width.h ./src/V3WidthCommit.h ./src/V3WidthRemove.h ./src/VlcBucket.h ./src/VlcOptions.h ./src/VlcPoint.h ./src/VlcSource.h ./src/VlcTest.h ./src/VlcTop.h ./src/config_build.h ./src/config_package.h ./src/config_rev.h ./src/verilog.y ./src/V3PreLex.l ./src/verilog.l test_regress/t/*.c* test_regress/t/*.h
make[1]: Leaving directory '/svaha/wsnyder/SandBox/homecvs/v4/verilator'
2024-08-26 05:01:37 -04:00
Wilson Snyder
fa4af38b0a
configure: Print inbound CXX setting
2024-08-26 04:58:59 -04:00
Wilson Snyder
a9635aaa2c
Tests: Default to check_finished=>1
2024-08-24 19:27:59 -04:00
Wilson Snyder
f0cd6dd95c
Fix REALCVT warning on integral timescale conversions ( #5378 ).
2024-08-24 08:01:28 -04:00
Wilson Snyder
d8fdfa6be2
Internals: git ignore nohup.out
2024-08-24 07:56:48 -04:00
Wilson Snyder
f9511e9755
Internals: Make V3Number::selfTest()
2024-08-24 05:41:22 -04:00
Wilson Snyder
cfe1f23fff
Commentary: Changes update
2024-08-23 18:45:54 -04:00
Wilson Snyder
8741fd17ad
Internals: cppcheck cleanups. No functional change intended.
2024-08-23 18:24:34 -04:00
ffe76717c6
Thread pool rewrite ( #5161 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
Signed-off-by: Bartłomiej Chmiel <[email protected] >
Signed-off-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Krzysztof Bieganski <[email protected] >
Co-authored-by: Arkadiusz Kozdra <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
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
Wilson Snyder
48776277bd
devel release
2024-08-21 08:55:53 -04:00