Wilson Snyder
e566b5a4f5
Change .vlt config files to be read before .v files ( #5185 ).
2024-09-09 20:18:54 -04:00
Bartłomiej Chmiel
d6923c8571
Improve performance of V3VariableOrder with parallelization ( #5406 )
2024-09-06 08:04:26 -04:00
Bartłomiej Chmiel
a730daabef
Support 'parameter type' in hierarchical blocks ( #5309 ) ( #5333 )
2024-08-21 05:30:59 -04:00
Wilson Snyder
43a57da950
Add quotes to not-found filenames
2024-08-20 14:47:43 -04:00
Tim Hutt
c812a9b18f
Fix shortened module names when searching for files ( #5196 ) ( #5246 )
2024-08-09 17:23:00 -04:00
Wilson Snyder
8707c88787
Tests: Close misc internal code coverage holes
2024-07-28 14:18:24 -04:00
Markus Krause
a01a21db86
Fix make flows to pass PYTHON3 (like perl) ( #5307 ) ( #5308 )
...
Fixes #5307
2024-07-26 09:35:37 -04:00
Wilson Snyder
74ae879c2f
Internals: Remove duplicate filenameNonExt. No functional change.
2024-07-14 11:31:32 -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
github action
d6e5703298
Apply 'make format'
2024-06-12 11:44:29 +00:00
Alex Solomatnikov
a9e50327fd
Fix hierarchical compilation with nested -F ( #5114 ) ( #5124 )
2024-06-12 07:42:52 -04:00
github action
1537c9badc
Apply 'make format'
2024-06-08 03:05:01 +00:00
Wilson Snyder
708f875b31
Fix MSVC warnings. No functional change intended.
2024-06-07 22:52:56 -04:00
Arkadiusz Kozdra
739be2f782
Support constrained randomization with external solvers ( #4947 )
2024-05-17 10:38:34 -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
Wilson Snyder
4df9e2e0e5
Add printing summary reports ( #4909 ) ( #5018 )
2024-03-25 07:03:17 -04:00
Bartłomiej Chmiel
32f288084a
Add UNUSEDLOOP when unused loop is removed ( #4926 )
2024-03-07 08:33:49 -05:00
Wilson Snyder
91dd3c5fac
Support 1800-2023 keywords.
2024-03-02 10:15:19 -05:00
Yutetsu TAKATSUKASA
da9521a351
Internals: Add --debug-width option for developers to check width consistency ( #4923 )
2024-03-02 08:57:26 -05:00
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
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
22687a6901
Internals: Use C++14 quoted literal std::string
2024-01-28 21:00:20 -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
Szymon Gizler
5f52c066e5
Internals: Add serializeOnly() and dumpTreeEitherLevel() ( #4815 ) ( #4715 ). No functional change intended.
2024-01-09 10:35:13 -05:00
Wilson Snyder
0ca90257a5
Add predicted stack overflow warning ( #4799 ).
2024-01-06 16:14:58 -05:00
Wilson Snyder
e76f29e5ba
Copyright year update
2024-01-01 03:19:59 -05:00
Wilson Snyder
8769c1a92b
Internals: Add -fno-dead-cells, -fno-dead-assigns for debug use
2023-12-22 16:26:51 -05:00
Wilson Snyder
58d9a5ebac
Use newline instead of endl, for fewer stream flushes
2023-11-24 11:45:52 -05:00
Wilson Snyder
b15ef49c57
Fix compilers seeing empty input due to file system races ( #4708 ).
2023-11-21 21:22:35 -05:00
Geza Lore
dc346b7ffa
Remove deprecated options ( #4663 )
2023-11-04 17:28:36 +00:00
Wilson Snyder
eace1d9c67
Internals: Use UINFO for preproc debug, to avoid stderr/cout output reordering confusion.
2023-11-04 10:51:14 -04:00
Geza Lore
30318a6654
C++11 cleanup
2023-10-28 11:26:48 +01:00
Geza Lore
d1c7875406
Fix conditionals on obsolete --threads 0
...
Since we removed --threads 0 support, the 'threads()' option always
returns a value >= 1. Remove corresponding dead code.
Some of the coverage counters appear to use atomics even if the model is
single threaded. I'm under the impression this was a bug originally so
those ones I changed to use threads() > 1 instead.
2023-10-21 15:14:27 +01:00
Wilson Snyder
b5828a7ce9
Fix header order botched by clang-format in recent commit.
2023-10-18 06:37:46 -04:00
github action
770cd24f27
Apply 'make format'
2023-10-18 02:50:27 +00:00
Wilson Snyder
431bb1ed16
Support compiling Verilator with gcc/clang precompiled headers ( #4579 )
2023-10-17 22:49:28 -04:00
Anthony Donlon
229ce1aecf
Fix handling input file path separator ( #4515 ) ( #4516 )
2023-09-26 15:42:15 -04:00
Mariusz Glebocki
28bd7e5b19
Rework multithreading handling to separate by code units that use/never use it. ( #4228 )
2023-09-24 22:12:23 -04:00
Wilson Snyder
cb5466a90b
Tests: UVM passes V3Param stage
2023-09-09 11:54:55 -04:00
github action
799a502cac
Apply 'make format'
2023-08-29 23:56:25 +00:00
Ethan Sifferman
8d1570db28
Add check for conflicting options e.g. binary+lintonly ( #4409 )
2023-08-29 19:55:37 -04:00
Frans Skarman
e9cc2786b7
Add --no-trace-top option ( #4422 )
2023-08-19 04:51:29 -04:00
Anthony Donlon
cbdee5a804
Fix Windows filename format, etc. ( #3873 ) ( #4421 )
...
* Ignore CLion project files and CMake outputs
* Supporting stripping file path that contains backslash
* Set /bigobj flag and increase stack size for windows platform
* Fix MSVC warnings
2023-08-16 07:34:57 -04:00
Andrew Miloradovsky
106a9fe67f
Fix config_build.h issues ( #4380 ) ( #4381 )
2023-07-27 05:42:35 -04:00
Krzysztof Boronski
21c01ba97b
V3Fork - transform processes that can outlive their parents into separate tasks ( #4253 )
...
Signed-off-by: Krzysztof Boronski <kboronski@antmicro.com>
2023-06-14 20:44:53 +02:00
Don Williamson
df2746de71
Add --main-top-name option for C main TOP name ( #4235 ) ( #4249 )
2023-05-31 09:02:26 -07:00
Mariusz Glebocki
0ece155418
Internals: Move some includes to .cpp files. ( #4224 )
2023-05-24 18:53:14 -04:00
Wilson Snyder
5982528274
Fix duplicate std:: declaration with -I ( #4215 ).
2023-05-22 20:32:20 -04:00
Kamil Rakoczy
b6dcec2710
Internals: Split Mutex class used in verilated code and verilator ( #4048 )
2023-04-11 07:23:24 -04:00
Wilson Snyder
fff0eb5d88
Internals: Use standard 'result' name for return variable. No functional change.
2023-04-08 22:11:28 -04:00
Wilson Snyder
8caf9be3e6
Internals: Favor {} constructor syntax. No functional change intended.
2023-04-06 21:04:26 -04:00
Tim Snyder
053f760e2a
Fix characters from DEFENV literals for conda ( #4035 ) ( #4044 )
...
The baked in DEFENV paths might end up with extra NULL characters
at the end if the binaries are installed by something that patches them
for relocatable installs (e.g. conda). Avoid this issue by immediately
passing them through std::string::c_str() method to stop at the first NULL
2023-03-18 11:25:27 -04:00
Kamil Rakoczy
798d7346cf
Internals: Add VL_MT_SAFE attribute to functions that requires locking. ( #3805 )
2023-03-17 20:24:15 -04:00
Kamil Rakoczy
bbf53bd5af
Add VL_MT_SAFE attribute to several functions. ( #3729 )
2023-03-16 19:48:56 -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
Wilson Snyder
5aa4f46101
Internals: Add some std::. No functional change intended.
2023-02-10 20:32:39 -05:00
Kamil Rakoczy
93d50c4499
Internals: Add mutex to V3Error ( #3680 )
2023-02-09 22:15:37 -05:00
github action
edc32ca82d
Apply 'make format'
2023-02-04 13:20:41 +00:00
Kritik Bhimani
dc9c81256d
Fix MsWin missing directory exception, and ::std ( #3928 ) ( #3933 ) ( #3935 )
2023-02-04 08:19:49 -05:00
Aleksander Kiryk
31130c4b4a
Fix std:: to be parsed first ( #3864 ) ( #3928 )
2023-02-03 09:04:16 -05:00
Andrew Nolte
d3c14cc1ac
Split WIDTH warning into WIDTHEXPAND and WIDTHTRUNC ( #3900 )
2023-02-02 18:25:25 -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
Wilson Snyder
1d2293b783
Fix some indents of warnMore
2023-01-05 17:59:51 -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
Kritik Bhimani
9d2f1c607a
Fix MSVCC issues ( #3813 )
2022-12-14 07:07:25 -05:00
Wilson Snyder
afc66f6a85
Fix make jobserver with submakes ( #3758 ).
2022-12-11 14:19:40 -05:00
Wilson Snyder
84c7368621
Rename std.sv and add to install.
2022-12-03 11:31:26 -05:00
Yinan Xu
e569ff2752
Add error when use --exe with --lib-create. ( #3785 )
2022-11-29 06:37:38 -05:00
Krzysztof Bieganski
68e1b473e2
Support `std::semaphore` and typed `std::mailbox` ( #3708 )
...
Signed-off-by: Krzysztof Bieganski <kbieganski@antmicro.com>
2022-11-28 16:53:55 +01:00
Wilson Snyder
833780fac1
Internal: cppcheck fixes. No functional change intended.
2022-11-27 05:52:40 -05:00
Wilson Snyder
66d85b3381
Internals: Fix cppcheck warnings. No functional change intended.
2022-11-21 21:40:49 -05:00
Wilson Snyder
73d6de4471
Internals: Fix constructor style.
2022-11-21 20:41:32 -05:00
Wilson Snyder
352d0b4582
Internals: Fix constructor style.
2022-11-20 13:11:01 -05:00
Wilson Snyder
21d80cdfa1
Internals: Fix constructor style.
2022-11-19 14:45:38 -05:00
Mariusz Glebocki
d0e7177d8e
Disable stack size limit ( #3706 ) ( #3751 )
2022-11-19 14:44:54 -05:00
Wilson Snyder
21926eeb6b
Tests: Improve some coverage
2022-11-05 11:40:34 -04:00
Kamil Rakoczy
d6126c4b32
Remove --no-threads; require --threads 1 for single threaded ( #3703 ).
2022-11-05 08:47:34 -04:00
Wilson Snyder
3487701b04
Tests: Cover some previously uncovered warnings
2022-10-22 16:03:42 -04:00
Wilson Snyder
7e1b92fa75
Add --get-supported to determine what features are in Verilator ( #3688 ).
2022-10-20 21:42:30 -04:00
Kamil Rakoczy
b6c116d4bf
Internals: Add VL_MT_SAFE annotations to const functions ( #3681 )
2022-10-18 17:07:09 -04:00
Topa Topino
46c5764383
Split UNUSED warning into genvar, param, and signal warnings ( #3607 )
2022-10-17 19:51:13 -04:00
Wilson Snyder
22ce36012e
Add VERILATOR_TIMING define ( #3684 )
2022-10-17 18:18:56 -04:00
Geza Lore
f87fe4c3b4
DfgPeephole: add constant folding for all integer types
...
Also added a testing only -fno-const-before-dfg option, as otherwise
V3Const eats up a lot of the simple inputs. A lot of the things V3Const
swallows in the simple cases can make it to DFG in complex cases, or DFG
itself can create them during optimization. In any case to save
complexity of testing DFG constant folding, we use this option to turn
off V3Const prior to the DFG passes in the relevant test.
2022-10-05 12:05:40 +01:00
Wilson Snyder
880cac2fdd
Merge branch 'master' into develop-v5
2022-10-01 11:24:55 -04:00
Marcel Chang
526e6b9fc7
Add --dump-tree-dot to enable dumping Ast Tree .dot files ( #3636 )
2022-10-01 11:05:33 -04:00
Wilson Snyder
cd2a5771b8
Add --timing to --binary ( #3625 ).
2022-09-28 19:02:23 -04:00
Wilson Snyder
b92173bf3d
Add --binary option as alias of --main --exe --build ( #3625 ).
2022-09-28 09:04:33 -04:00
Geza Lore
47bce4157d
Introduce DFG based combinational logic optimizer ( #3527 )
...
Added a new data-flow graph (DFG) based combinational logic optimizer.
The capabilities of this covers a combination of V3Const and V3Gate, but
is also more capable of transforming combinational logic into simplified
forms and more.
This entail adding a new internal representation, `DfgGraph`, and
appropriate `astToDfg` and `dfgToAst` conversion functions. The graph
represents some of the combinational equations (~continuous assignments)
in a module, and for the duration of the DFG passes, it takes over the
role of AstModule. A bulk of the Dfg vertices represent expressions.
These vertex classes, and the corresponding conversions to/from AST are
mostly auto-generated by astgen, together with a DfgVVisitor that can be
used for dynamic dispatch based on vertex (operation) types.
The resulting combinational logic graph (a `DfgGraph`) is then optimized
in various ways. Currently we perform common sub-expression elimination,
variable inlining, and some specific peephole optimizations, but there
is scope for more optimizations in the future using the same
representation. The optimizer is run directly before and after inlining.
The pre inline pass can operate on smaller graphs and hence converges
faster, but still has a chance of substantially reducing the size of the
logic on some designs, making inlining both faster and less memory
intensive. The post inline pass can then optimize across the inlined
module boundaries. No optimization is performed across a module
boundary.
For debugging purposes, each peephole optimization can be disabled
individually via the -fno-dfg-peepnole-<OPT> option, where <OPT> is one
of the optimizations listed in V3DfgPeephole.h, for example
-fno-dfg-peephole-remove-not-not.
The peephole patterns currently implemented were mostly picked based on
the design that inspired this work, and on that design the optimizations
yields ~30% single threaded speedup, and ~50% speedup on 4 threads. As
you can imagine not having to haul around redundant combinational
networks in the rest of the compilation pipeline also helps with memory
consumption, and up to 30% peak memory usage of Verilator was observed
on the same design.
Gains on other arbitrary designs are smaller (and can be improved by
analyzing those designs). For example OpenTitan gains between 1-15%
speedup depending on build type.
2022-09-23 16:46:22 +01:00
Geza Lore
ddb678cc5b
Merge branch 'master' into develop-v5
2022-09-22 17:33:36 +01:00