Geza Lore
056c3ee331
Testing: Add --enable-asan configure option to compile with AddressSanitizer ( #6404 )
2025-09-09 08:55:49 +01:00
Wilson Snyder
7d3c58d21c
Docs: Notes about `--x-initial-edge` ( #6377 comment)
2025-09-04 09:09:54 -04: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
Wilson Snyder
48a12fb0f4
Document and test `+verilator+rand+reset+2` usage ( #6285 partial)
2025-08-16 11:47:19 -04:00
Wilson Snyder
833c31b031
Add `-DVERILATOR=1` definition to compiler flags when using verilated.mk.
2025-07-28 18:01:50 -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
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
Geza Lore
7a3f1f16ca
Optimize DFG before V3Gate ( #6141 )
2025-07-01 17:55:08 -04:00
Wilson Snyder
916a89761e
Add `--work` library-selection option ( #5891 partial).
2025-06-29 20:17:27 -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
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
Wilson Snyder
4c2eb8c0b8
Commentary: Fix broken links
2025-06-15 14:51:56 -04:00
Wilson Snyder
40881d7e79
Commentary: Changes update
2025-05-29 18:59:51 -04:00
Bartłomiej Chmiel
9cc4cc0efd
Add `--hierarchical-threads` ( #6037 )
2025-05-26 09:37:35 -04:00
Wilson Snyder
f8359adcc0
Commentary: Changes update
2025-05-20 22:51:07 -04:00
Wilson Snyder
66667b6172
Support SARIF JSON diagnostic output with `--diagnostics-sarif`. ( #6017 )
2025-05-17 15:46:15 -04:00
Wilson Snyder
8100bc64a0
Commentary
2025-05-11 22:36:16 -04:00
Wilson Snyder
d0424862f9
Commentary: Changes update
2025-05-10 13:22:26 -04:00
Wilson Snyder
51616ecf2f
Internals: Rename to instances, and other minor cleanups
2025-05-04 14:57:10 -04:00
Wilson Snyder
e837f780a2
Commentary
2025-05-03 04:25:01 -04:00
Wilson Snyder
8b52bd817f
Add PROCINITASSIGN on initial assignments to process variables ( #2481 ).
2025-04-30 22:00:06 -04:00
Wilson Snyder
c9be36911f
Cleanup documentated option sort order, and enforce with test
2025-04-26 17:14:49 -04:00
Wilson Snyder
0984fd045f
Change `--trace` to `--trace-vcd`.
2025-04-05 10:46:39 -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
64caa700d3
Commentary: Changes update
2025-03-12 07:58:26 -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
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
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
5daf7385f1
Commentary: Changes update
2025-02-24 04:04:23 -05:00
Kamil Rakoczy
2e1fa8f338
Add `--preproc-resolve` for modules in preprocessor output ( #5789 )
...
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
2025-02-22 04:47:54 +10: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
Krzysztof Bieganski
283f6c7433
Add `--preproc-token-limit` ( #5768 )
2025-02-07 10:32:12 -05:00
Wilson Snyder
6281385ee8
Commentary/Internals: Sort option names. No functional change.
2025-01-24 21:31:57 -05:00
Bartłomiej Chmiel
0507fb4655
Improve hierarchical DPI wrapper scheduling performance ( #2583 ) ( #5734 )
2025-01-20 14:24:09 -05:00
Andrew Nolte
f8dd65c7cd
Add `--public-ignore` to ignore public metacomments ( #7819 )
2025-01-11 12:29:39 -05:00
Wilson Snyder
76b2ac9cc1
Support `+incdir` with multiple directories.
2025-01-05 19:30:39 -05:00
Wilson Snyder
8fbb725f34
Copyright year update.
2025-01-01 08:30:25 -05:00
Wilson Snyder
7a8f71e7d8
Add `--fno-slice` to disable array assignment slicing ( #5644 ).
2024-11-28 13:49:34 -05:00
Wilson Snyder
25d75ee86f
Add `--fno-inline-funcs` to disable function inlining.
2024-11-25 19:59:10 -05:00
Wilson Snyder
749b0345df
Commentary: Changes update
2024-11-23 22:06:07 -05:00
Wilson Snyder
9bde98e912
Commentary
2024-11-14 21:07:45 -05:00
Wilson Snyder
3ffea76e11
Add `--no-std-waiver` and default reading of standard lint waivers file ( #5607 ).
2024-11-12 22:11:19 -05:00
Wilson Snyder
0bf413b260
Add `lint_off --contents` in configuration files. ( #5606 )
2024-11-12 20:21:16 -05:00
Wilson Snyder
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
Wilson Snyder
4d95f6f7b8
Add `--waiver-multiline` for context-sensitive `--waiver-output`.
2024-11-11 20:00:26 -05:00
Wilson Snyder
7c8ff1d19c
Add `--no-std-package` as subset-alias of `--no-std`.
2024-11-11 08:30:07 -05: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
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
2c445e4bfd
Commentary: Changes update
2024-10-07 21:44:07 -04:00
Mariusz Glebocki
0547108e3f
Add `-output-groups` to build with concatenated .cpp files ( #5257 )
...
Signed-off-by: Bartłomiej Chmiel <bchmiel@antmicro.com>
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
Signed-off-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Mariusz Glebocki <mglebocki@antmicro.com>
Co-authored-by: Arkadiusz Kozdra <akozdra@antmicro.com>
Co-authored-by: Bartłomiej Chmiel <bachm44@gmail.com>
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
Co-authored-by: Ryszard Rozak <rrozak@antmicro.com>
2024-09-30 21:42:36 -04:00
Wilson Snyder
e566b5a4f5
Change .vlt config files to be read before .v files ( #5185 ).
2024-09-09 20:18:54 -04:00
Wilson Snyder
8db9c1d227
Commentary: Changes update
2024-08-21 08:40:14 -04:00
Bartłomiej Chmiel
a730daabef
Support 'parameter type' in hierarchical blocks ( #5309 ) ( #5333 )
2024-08-21 05:30:59 -04:00
Ryan Ziegler
947b6fd23f
Add `--emit-accessors` ( #5182 ) ( #5227 )
2024-07-06 13:12:53 +01:00
Bartłomiej Chmiel
864a852bca
Add `--compiler-include` for additional C++ includes ( #5139 ) ( #5202 )
2024-06-27 18:53:44 -04:00
Bartłomiej Chmiel
9e2c8aefc8
Add `--pins-sc-uint-bool` to force SystemC uint type ( #5192 )
2024-06-25 05:27:09 -04:00
Wilson Snyder
f84592af49
Fix x-valued parameters with `--x-assign unique` ( #5129 ).
2024-05-21 08:07:57 -04:00
Wilson Snyder
8fd038f88e
Add `--localize-max-size` option and optimization ( #5072 ).
2024-04-30 19:46:54 -04:00
Paul Wright
a8b5738b44
Support __en/__out signals on top level inout ports ( #4812 ) ( #4856 )
2024-04-11 09:02:58 -04:00
Szymon Gizler
8301fdc6d3
Add JSON AST dumps ( #5020 )
2024-03-28 07:32:18 -04:00
Wilson Snyder
4df9e2e0e5
Add printing summary reports ( #4909 ) ( #5018 )
2024-03-25 07:03:17 -04:00
Wilson Snyder
91dd3c5fac
Support 1800-2023 keywords.
2024-03-02 10:15:19 -05:00
Wilson Snyder
e60f652a64
Commentary ( #4936 )
2024-03-01 17:32:26 -05:00
Yutetsu TAKATSUKASA
51ae8e13fb
Add --assert-case option ( #4919 )
2024-02-23 23:05:53 +09:00
Yutetsu TAKATSUKASA
a951446f9b
Add --[no]-stop-fail option ( #4904 )
...
Co-authored-by: Wilson Snyder <wsnyder@wsnyder.org>
2024-02-19 21:26:58 +09:00
Wilson Snyder
a187a16e56
Commentary: Changes update
2024-02-13 21:47:09 -05:00
Geza Lore
cbc76a7816
Dump DFG patterns with --stats ( #4889 )
...
With --stats, we will print DFG pattern combinations, one per line, as
S-expressions to new stat files, together with their frequency, to aid
discovery of new peephole patterns.
2024-02-11 15:41:10 +00:00
Szymon Gizler
d667b73e8d
Add --json-only and related JSON dumping ( #4715 ) ( #4831 ).
2024-02-09 17:50:09 -05:00
Szymon Gizler
c715cfc254
Add --valgrind switch ( #4828 )
2024-01-29 07:50:05 -05:00
Wilson Snyder
d6f8ccd20b
Add `unroll_disable` and `unroll_full` loop control metacomments ( #3260 ).
2024-01-26 07:49:07 -05:00
Wilson Snyder
d4c8a15407
Add --runtime-debug for Verilated executable runtime debugging.
2024-01-25 07:34:30 -05:00
Wilson Snyder
354a534d68
Add '--decorations node' for inserting debug comments into emitted code.
2024-01-24 21:51:47 -05:00
Wilson Snyder
e76f29e5ba
Copyright year update
2024-01-01 03:19:59 -05:00
Wilson Snyder
25ca965938
Commentary
2023-11-21 19:17:39 -05:00
Geza Lore
dc346b7ffa
Remove deprecated options ( #4663 )
2023-11-04 17:28:36 +00:00
Wilson Snyder
6cdf8da3f7
Fix documentation line wrap ( #4456 )
2023-09-05 07:25:33 -04:00
Ethan Sifferman
8d1570db28
Add check for conflicting options e.g. binary+lintonly ( #4409 )
2023-08-29 19:55:37 -04:00
Frans Skarman
e9cc2786b7
Add --no-trace-top option ( #4422 )
2023-08-19 04:51:29 -04:00
Wilson Snyder
3c964147be
Add MISINDENT lint warning for misleading indentation.
2023-07-01 10:45:25 -04:00
Wilson Snyder
cff37f0775
Add GENUNNAMED lint warning.
...
Also fix generate-for blocks with empty statements getting lost.
2023-07-01 08:31:53 -04:00
Don Williamson
df2746de71
Add --main-top-name option for C main TOP name ( #4235 ) ( #4249 )
2023-05-31 09:02:26 -07:00
Wilson Snyder
c2a524d80b
Commentary ( #4175 )
2023-05-07 08:36:03 -04:00
Iztok Jeras
2aa6a229ca
Change range order warning from LITENDIAN to ASCRANGE ( #4010 )
2023-03-20 20:44:11 -04:00
Ryszard Rozak
1ac721af8f
Add STATICVAR warning and convert to automatic ( #4027 ) ( #4030 )
...
Signed-off-by: Ryszard Rozak <rrozak@antmicro.com>
2023-03-17 07:48:41 -04:00
Andrew Nolte
fc17ab280a
Add --public-depth to force public to a certain instance depth ( #3952 )
2023-03-09 21:48:05 -05:00
Andrew Nolte
13c9877099
Add --public-params flag ( #3990 )
2023-03-08 19:38:26 -05:00
Wilson Snyder
adf1de45de
With -Wpedantic change ASSIGNIN to a warning
2023-02-21 16:45:35 -05:00
Wilson Snyder
026bbc306b
Removed deprecated --cdc option.
2023-02-13 22:49:51 -05:00
Aleksander Kiryk
31130c4b4a
Fix std:: to be parsed first ( #3864 ) ( #3928 )
2023-02-03 09:04:16 -05:00
Kamil Rakoczy
6ea725f479
Add --verilate-jobs option ( #3889 )
...
Currently this option isn't used, but in the future it will be used to specify parallelization of Verilation step.
2023-01-22 21:52:52 -05:00
Ryszard Rozak
4784daa7dc
Add IMPLICITSTATIC warning when a ftask/function is implicitly static ( #3839 )
2023-01-05 17:42:05 -05:00
Wilson Snyder
b24d7c83d3
Copyright year update
2023-01-01 10:18:39 -05:00
Aleksander Kiryk
c2b09e35f8
Support unpacked structs ( #3802 )
2022-12-20 19:22:42 -05:00
Wilson Snyder
afc66f6a85
Fix make jobserver with submakes ( #3758 ).
2022-12-11 14:19:40 -05:00
Wilson Snyder
b6cdae30f6
docs: Fix grammar.
2022-12-10 20:09:47 -05:00
Wilson Snyder
d61ad04f32
docs: Fix and test for AsciiDoc breaks ( #3728 )
2022-12-09 21:01:33 -05:00