Wilson Snyder
522bead374
Version bump
2024-04-05 05:52:00 -04:00
Wilson Snyder
030286142f
Commentary: Changes update
2024-04-04 22:11:33 -04:00
Wilson Snyder
8a4ceb5717
Tests: Fix test failure, last commit.
2024-04-02 07:04:27 -04:00
Andrew Nolte
63fa6accc4
[Vpi] Fix missing scopes 2 ( #4965 )
2024-04-01 23:11:15 -04:00
Wilson Snyder
28718f964a
Fix tracing replicated hierarchical models ( #5027 ) ( #5029 )
2024-03-30 16:00:52 -04:00
Wilson Snyder
1d486e3a59
Rename statsPrintSummary()
2024-03-30 13:19:47 -04:00
Wilson Snyder
9b396f7125
Fix pylint warning
2024-03-30 13:13:51 -04:00
Wilson Snyder
e16cbce52e
Internals: Fix clang_check_attributes false error print
2024-03-30 11:58:34 -04:00
Wilson Snyder
840970e8f7
Internals: Add VL_MT_SAFE flags
2024-03-30 11:54:29 -04:00
Wilson Snyder
e390d6779d
Internals: Rename threadsInModel()
2024-03-30 11:13:14 -04:00
Wilson Snyder
39ee522f92
Commentary: Changes update
2024-03-28 08:22:15 -04:00
Wilson Snyder
9526efcf72
Fix V3Hash MacOS ambiguity ( #5011 )
2024-03-28 08:11:48 -04:00
github action
d397e0d838
Apply 'make format'
2024-03-28 11:32:57 +00:00
Szymon Gizler
8301fdc6d3
Add JSON AST dumps ( #5020 )
2024-03-28 07:32:18 -04:00
Arkadiusz Kozdra
f645382f11
Support inside range with implicit type conversion ( #5026 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-03-28 07:31:45 -04:00
Wilson Snyder
1ed5557d2d
Support 1800-2023 class and function :initial, :extends, :final virtual overrides ( #5025 ). ( #5025 )
2024-03-27 23:57:58 -04:00
Wilson Snyder
28b9216f8a
Fix tracing class parameters ( #5014 ).
2024-03-27 20:07:46 -04:00
Wilson Snyder
0114cb67ca
Fix $readmem with missing newline ( #5019 ).
2024-03-27 18:42:20 -04:00
Wilson Snyder
ea8f86dd30
Internals: Prefer '(void)' to avoid unused var. No functional change.
2024-03-27 18:07:14 -04:00
Wilson Snyder
0ff77fc352
Internals: Remove extra single-line {}. No functional change.
2024-03-27 17:57:49 -04:00
Wilson Snyder
341963e820
Internals: Avoid '%Error' so can grep logs for real errors
2024-03-27 09:00:34 -04:00
Wilson Snyder
db60b92613
Fix internal error on missing pattern key ( #5023 )
2024-03-27 08:41:58 -04:00
Geza Lore
98206a4f04
Improve V3List user interface ( #4996 )
2024-03-25 23:06:25 +00:00
Wilson Snyder
4df9e2e0e5
Add printing summary reports ( #4909 ) ( #5018 )
2024-03-25 07:03:17 -04:00
Wilson Snyder
34e4cffb62
Add stats on output size
2024-03-24 10:50:53 -04:00
Wilson Snyder
71d76c993c
Fix MSVC++ warnings. No functional change.
2024-03-24 10:19:26 -04:00
Wilson Snyder
e67bdb4c08
Commentary
2024-03-24 09:23:37 -04:00
Wilson Snyder
23f013f2d7
Add stats on input size etc ( #5017 )
2024-03-24 09:14:31 -04:00
Geza Lore
9b729b80e0
Plug memory leaks ( #5016 )
2024-03-23 22:12:43 +00:00
Wilson Snyder
38ad328956
Remove duplicate stop ignored messages
2024-03-22 19:35:42 -04:00
Wilson Snyder
f767f0cfaa
Commentary
2024-03-22 19:35:13 -04:00
Fuad Ismail
1c79df8630
Support stream operation on unpacked array ( #4714 ) ( #5006 )
2024-03-21 18:26:42 -04:00
Wilson Snyder
248573205b
Commentary: Changes update
2024-03-20 18:27:35 -04:00
Arkadiusz Kozdra
88831ca21b
Fix preprocessor to respect strings in joins ( #5007 )
...
This adheres more to the wording used in IEEE 1800-2017 22.5.1,
specifying the join operator to be more of a delimiter than join:
> A `` delimits lexical tokens without introducing white space,
> allowing identifiers to be constructed from arguments.
Before, string RHS arguments to the join operator were silently dropped.
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-03-20 08:54:23 -04:00
Arkadiusz Kozdra
26f15e11c4
Fix unique {} constraints missing semicolon ( #5001 )
...
Signed-off-by: Arkadiusz Kozdra <[email protected] >
2024-03-19 08:22:39 -04:00
Ryszard Rozak
5c0a7e06dc
Fix inout ports of unpacked stuct type ( #5000 )
2024-03-19 06:43:06 -04:00
Andrew Nolte
290b313dc0
Fix missing VPI scopes ( #4918 )
2024-03-18 20:47:28 -04:00
Wilson Snyder
93e5ca3f6d
Fix class type as an associative array parameter ( #4997 ).
2024-03-18 20:44:18 -04:00
Geza Lore
6ffff8565f
Use the same serial ordering within MTasks as we use in serial mode ( #4994 )
...
The goal here is to use as single ordering heuristic (which can be
improved later) within MTasks as we do for serial code ordering. The
heuristic itself is factored out into the new OrderMoveGraphSerializer.
This also yields slightly nicer ordering than the previously use
GraphStream, so we end up with fewer trigger (domain) conditionals in
the MTasks, this can be worth a few percent speedup.
This has the somewhat nice side-effect of reusing OrderMoveGraphVertex
for both serial and parallel mode, so MTaskMoveGraphVertex can be
removed.
Serial mode yields identical output.
2024-03-17 13:15:39 +00:00
Geza Lore
494e05b326
Fix install instructions for attribute checks, do the same in CI ( #4995 )
...
On Ubuntu 22.04, pip install clang picks up a mismatched version by
default. There are 'apt' packages with correct dependencies, so use
those instead.
2024-03-17 12:10:13 +00:00
Kevin Nygaard
a24f61403a
Support implicitly-typed variable definitions in for-loop initializers ( #4945 ) ( #4986 )
...
- Adds support for C-style for-loop initializers
- Current implementation supports: for (x a = 1, y b = 2, ...)
- This patch extends support to: for (x a = 1, b = 2, ...)
- Adds unit test for new feature
2024-03-16 19:02:37 -04:00
Geza Lore
292cc54768
Compute MTask affinity in V3VariableOrder ( #4991 )
...
Instead of carrying around MTask affinity from scheduling, compute it in
V3VariableOrder (where it is used), by tracing through the code. This
simplifies some code and has the benefit of handling variables
introduced after scheduling. It's worth a few % speed at run-time, and
the new implementation of V3VariableOrder is slightly more efficient,
though the speed/space is still dominated by the TSP sort.
2024-03-16 16:32:12 +00:00
Geza Lore
e8a9662eb5
Simplify LogicMTask/ExecMTask IDs ( #4990 )
...
There is no strong need to re-map LogicMTask IDs and it just adds extra
processing. Instead we just allocate a separate set of ExecMTask IDs as
they are created, which can also be used as the unique profiling ID as
well. The only effect on the output of this is the change in mtask IDs
emitted, which was fairly arbitrary to begin with.
2024-03-16 14:02:17 +00:00
Wilson Snyder
0262819c20
Fix object assignment from conditionals ( #4968 ).
2024-03-16 09:12:18 -04:00
Wilson Snyder
d3b93a1113
Fix object reference to conditional null : null
2024-03-16 09:12:18 -04:00
Wilson Snyder
5f8c06c805
Internals: Add AstNode::isNull(). No functional change.
2024-03-16 09:12:18 -04:00
Kevin Nygaard
a5ad26cd28
Fix tests on macOS ( #4984 ) ( #4985 )
2024-03-16 09:08:03 -04:00
Fuad Ismail
5802818b9a
Add error when pass net to function argument ( #4132 ) ( #4966 )
2024-03-16 08:25:42 -04:00
Geza Lore
df519ff16e
Fix --prof-exec predicted time values ( #4988 )
...
Wrapping the functions in #4933 broke --prof-exec report as the
predicted MTask times are computed during thread packing, but are
emitted in the wrapping functions.
2024-03-16 12:17:24 +00:00
Geza Lore
bf8a88a0ad
Do not create any empty ExecMTasks ( #4987 )
2024-03-16 12:00:32 +00:00
Geza Lore
878204db73
Do not feed any empty logic into scheduling ( #4972 )
2024-03-16 10:35:56 +00:00
Nolan Poe
08c76b1da6
Fix GCC14 warnings on template specialization syntax ( #4974 ) ( #4975 )
2024-03-15 22:21:08 -04:00
Wilson Snyder
e82c9db6da
Fix unpacked structure upper bit cleaning ( #4978 ).
2024-03-15 21:56:24 -04:00
Wilson Snyder
65c3cb4708
Tests: stop testing if --fail-max tests fail
2024-03-15 21:11:24 -04:00
Wilson Snyder
0cab076b86
CI: Reenable address sanitizer and fix core dumps ( #4983 )
2024-03-15 21:06:21 -04:00
Wilson Snyder
3a28ed24ea
Revert last bin/verilator change.
2024-03-15 10:34:50 -04:00
Wilson Snyder
71775eae4c
sanitize
2024-03-15 10:32:31 -04:00
Wilson Snyder
953249aa43
CI: Add dist-vlt-3 to avoid out of disk space
2024-03-12 07:49:01 -04:00
Wilson Snyder
229dbbb100
Tests: RUn same job count as CPU instead of +1 to reduce CI congestion
2024-03-11 20:13:23 -04:00
Wilson Snyder
4a439beae5
Add error on missing pure virtual functions ( #4961 ).
2024-03-11 18:56:30 -04:00
Wilson Snyder
49022c3e73
Add error on calling static function without object ( #4962 ).
2024-03-11 18:23:55 -04:00
Geza Lore
c92ced4ac7
Do not defer deletion in const-bit-op-tree
...
Deferring deletion of unused terms is not necessary, but can cause huge
memory usage increases in some bad cases.
2024-03-11 17:33:40 +00:00
Wilson Snyder
ba47da6587
Internals: Move vl_timescaled_double to verilated_funcs.h. No functional change intended
2024-03-10 22:34:32 -04:00
Wilson Snyder
2c27f22900
Remove unused vltstd::exchange, should be using C++14 std::exchange instead
2024-03-10 22:32:51 -04:00
Geza Lore
c0391990ad
Increase graph ParallelismReprot values to uint64_t
2024-03-10 18:56:31 +00:00
Geza Lore
2247e1e345
Cleanup/simplify V3OrderParallel ( #4959 )
...
No functional change.
2024-03-10 18:15:45 +00:00
Geza Lore
e4847464d4
Split V3Partition into logically separate pieces ( #4958 )
...
V3Partition used to contain 2 conceptually separate set of algorithms
- The MTask partitioning/coarsening algorithm used by V3Order. This has
been moved to V3OrderParallel.cpp
- The lowering of AstExecGraph into per thread functions by packing
tasks into threads and creating additional code
(V3Partition::finalize). This has been moved to the new
V3ExecGraph.cpp
This patch is just code movement/rename with minimal fixes required to
do so.
2024-03-10 15:58:58 +00:00
Wilson Snyder
7694a7bf41
Fix suggestion of ulimit -s ( #4956 )
2024-03-10 11:20:25 -04:00
Geza Lore
a686e547cf
Factor out graph parallelism report into a generic algorithm ( #4957 )
...
This is a generic algorithm parametrised by a cost function, so
implement it as such for easy reuse.
2024-03-10 14:56:43 +00:00
Geza Lore
1481d34959
Add candidate item count to MergeCond stats
2024-03-09 22:11:04 +00:00
Nolan Poe
04512e5d04
Add custom version for verilator --version packaging ( #4954 )
2024-03-09 16:44:25 -05:00
Geza Lore
9a3aed57b1
Internals: Simplify/cleanup V3OrderSerial ( #4955 ). No functional change.
...
Remove redundant data structures and simplify/cleanup implementation.
No functional change. Output is identical.
2024-03-09 16:19:35 -05:00
Geza Lore
5a69321be3
Split V3Order into further part and decouple various components ( #4953 )
...
Continuing the idea of decoupling the implementations of the various algorithms.
The main points:
-Move the former "processDomain" stuff, dealing with assigning combinational logic into the relevant sensitivity domains into V3OrderProcessDomains.cpp
-Move the parallel code construction in V3OrderParallel.cpp (Could combine this with some parts of V3Partition - those not called from V3Partition::finalize - but that's not for this patch).
-Move the serial code construction into V3OrderSerial.cpp
-Factored the very small common code between the parallel and serial code construction (processMoveOneLogic) into V3OrderCFuncEmitter.cpp
2024-03-09 12:43:09 +00:00
Wilson Snyder
5ee938fd1c
Fix assignment of null into struct member ( #4952 ).
2024-03-08 17:33:51 -05:00
Arkadiusz Kozdra
f78783e187
Internals: Use LogOr/LogAnd on inside operator expansion ( #4951 )
...
This will help introducing constrained randomization, as SMT solvers
treat booleans and 1-bit vectors as incompatible types.
2024-03-08 08:17:41 -05:00
Wilson Snyder
11bfe7a7bb
cppcheck fixes. No functional change.
2024-03-07 19:20:00 -05:00
Wilson Snyder
8ba494c71f
Fix null characters in shortened identifiers ( #4946 ).
2024-03-07 18:09:55 -05:00
Geza Lore
acb63c929b
Split V3Order.cpp into multiple smaller files ( #4950 ). No functional change intended.
...
Move OrderBuildVisitor into V3OrderGraphBuilder.cpp (and rename to
V3OrderGraphBuilder). Move ProcessMoveBuildGraph to
V3OrderMoveGraphBuilder.cpp (and rename to V3OrderGraphBuilder).
This patch is pure code movement/rename, no refactoring at all.
2024-03-07 17:12:19 -05:00
Geza Lore
26dd5d4550
Add some missing VNUserInUse ( #4949 )
2024-03-07 20:26:58 +00:00
Bartłomiej Chmiel
32f288084a
Add UNUSEDLOOP when unused loop is removed ( #4926 )
2024-03-07 08:33:49 -05:00
Andrew Nolte
6db149c588
Fix generate blocks in vpi_iterate ( #3609 ) ( #4913 )
2024-03-06 18:33:30 -05:00
Geza Lore
0fed5f8b3e
Avoid creating redundant vertices in V3DfgPeephole ( #4944 )
...
Add a new data-structure V3DfgCache, which can be used to retrieve
existing vertices with some given inputs vertices. Use this in
V3DfgPeephole to eliminate the creation of redundant vertices.
Overall this is performance neutral, but is in prep for some future
work.
2024-03-06 18:01:52 +00:00
Geza Lore
a30930bdcc
Fix unsound temporary name generation in V3DfgRegularize
...
Sadly used to produce some conflicting names.
2024-03-05 19:17:41 +00:00
Geza Lore
3a1355fb54
Fix bad assertion in DFG variable elimination
...
Fixes #4943
2024-03-05 18:51:46 +00:00
Andrew Nolte
97db128d66
Tests: Add VPI dump testcases ( #4838 )
2024-03-05 12:08:22 -05:00
Wilson Snyder
3d57256070
Commentary: Changes update
2024-03-04 08:22:36 -05:00
Wilson Snyder
5dc8fb5b4f
Commentary ( #4930 )
2024-03-04 08:04:39 -05:00
Wilson Snyder
3f0d434f82
Gtkwave: Update from upstream for warning cleanup ( #4941 )
2024-03-03 19:24:03 -05:00
Wilson Snyder
2cdc5ea48b
Fix unaligned access in --trace --runtime-debug ( #4941 ).
2024-03-03 12:33:11 -05:00
Geza Lore
745605efe3
Fix DFG removing forceable signals ( #4942 )
...
DFG could remove forceable signals by replacing them with their
in-design driver. This is a bit of a pain to prevent, and ideally the
forcing transform should happen before DFG, but implementing it there is
a pain due to having to rewrite ports based on direction. This is an
attempted fix in DFG. More cases might remain.
2024-03-03 16:22:41 +00:00
Wilson Snyder
0fbd4313b2
Fix __Vlip undefined error in --freloop ( #4824 ).
2024-03-03 11:10:46 -05:00
Wilson Snyder
9f8f61ef2f
Internals: Only show SimulateVisitor note once per type
2024-03-03 11:10:19 -05:00
github action
4b1f4938b8
Apply 'make format'
2024-03-03 15:23:47 +00:00
Kefa Chen
5f1dc73a1b
Support public packed struct / union ( #860 ) ( #4878 )
2024-03-03 10:23:04 -05:00
Geza Lore
5e1fc6e24d
Add DFG 'regularize' pass, and improve variable removal ( #4937 )
...
This functionality used to be distributed in the removeVars pass and the
final dfgToAst conversion. Instead added a new 'regularize' pass to
convert DFGs into forms that can be trivially converted back to Ast, and
a new 'eliminateVars' pass to remove/repalce redundant variables. This
simplifies dfgToAst significantly and makes the code a bit easier to
follow.
The new 'regularize' pass will ensure that every sub-expression with
multiple uses is assigned to a temporary (unless it's a trivial memory
reference or constant), and will also eliminate or replace redundant
variables. Overall it is a performance neutral change but it does
enable some later improvements which required the graph to be in this
form, and this also happens to be the form required for the dfgToAst
conversion.
2024-03-02 19:49:29 +00:00
Wilson Snyder
0ec32ee404
Parse 1800-2023 map expressions and throw UNSUPPORTED
2024-03-02 10:15:19 -05:00
Wilson Snyder
97b21b3849
Parse 1800-2023
2024-03-02 10:15:19 -05:00
Wilson Snyder
214173c6b8
Support 1800-2023 preprocessor ifdef expressions; add PREPROC zero warning.
2024-03-02 10:15:19 -05:00
Wilson Snyder
3786f59e03
Change to IEEE 1800-2023 warning mentions
2024-03-02 10:15:19 -05:00
Wilson Snyder
fa7234ff68
Support 1800-2023 DPI headers, svGetTime/svgGetTimeUnit/svGetTimePrecision methods.
2024-03-02 10:15:19 -05:00
Wilson Snyder
91dd3c5fac
Support 1800-2023 keywords.
2024-03-02 10:15:19 -05:00
Wilson Snyder
a378dbd9b2
Tests: Fix t_dist_whitespace
2024-03-02 10:14:54 -05:00
Yutetsu TAKATSUKASA
da9521a351
Internals: Add --debug-width option for developers to check width consistency ( #4923 )
2024-03-02 08:57:26 -05:00
Wilson Snyder
af51107587
Fix statistics missing some additions.
2024-03-01 20:27:57 -05:00
Wilson Snyder
e60f652a64
Commentary ( #4936 )
2024-03-01 17:32:26 -05:00
Wilson Snyder
a4813ec677
Add warning on TOP-named modules ( #4935 ).
2024-03-01 17:28:12 -05:00
Kamil Rakoczy
01dadb0a8d
Fix try-lock spuriously fails ( #4931 ) ( #4938 )
2024-03-01 15:29:13 -05:00
Geza Lore
9dcb7ea6a9
Fix minor V3DfgPatternStats coding issues
2024-03-01 14:56:35 +00:00
github action
adfe072b89
Apply 'make format'
2024-03-01 14:15:34 +00:00
Yan Xu
b12f8b3d73
Fix V3Unknown unpacked struct x-assign ( #4934 )
2024-03-01 09:14:49 -05:00
Geza Lore
f56f318217
Make installation relocatable, and the installation testable ( #4927 )
...
Fixes #4893
2024-03-01 00:08:28 +00:00
Geza Lore
3af0eb7fa0
Internals: Emit a separate CFunc for each MTask body ( #4932 ) ( #4933 )
2024-02-29 16:53:53 -05:00
Wilson Snyder
a69cb9b044
Tests: Avoid verilated.v include in most tests
2024-02-27 18:08:37 -05:00
Geza Lore
b68a696859
Ignore all JSON tree dumps in test-snap/test-diff
2024-02-27 17:16:34 +00:00
Wilson Snyder
e320b0b581
Internals: Favor const_iterators. No functional change intended.
2024-02-25 17:12:13 -05:00
Wilson Snyder
42041f2403
Fix invalid cast on string structure creation ( #4921 ).
2024-02-25 08:19:53 -05:00
Wilson Snyder
881c6ee655
devel release
2024-02-24 07:52:19 -05:00
Wilson Snyder
d8b2993974
Version bump
2024-02-24 07:39:16 -05:00
Wilson Snyder
30e711aa5c
Commentary: Changes update
2024-02-23 11:49:42 -05:00
Yutetsu TAKATSUKASA
51ae8e13fb
Add --assert-case option ( #4919 )
2024-02-23 23:05:53 +09:00
Geza Lore
0892b39ad2
Fix incorrect code generation for change expression on typedefed unpacked array ( #4915 )
2024-02-23 03:53:42 -05:00
Geza Lore
5964d5cf63
Fix inconsistent driver resolution with typedefs ( #4917 )
2024-02-22 18:33:23 +00:00
Wilson Snyder
2162a31d3a
Commentary: Changes update
2024-02-22 03:57:56 -05:00
Paul Swirhun
e00e4d4245
Fix whitespace in pragma protect version ( #4914 )
2024-02-22 03:29:57 -05:00
Yutetsu TAKATSUKASA
4b9532fe24
Improve message for priority case assertion failure ( #4905 )
2024-02-22 03:09:14 -05:00
Jiangjie Weng
c3ff52208a
Commentary: Fix typo in the call condition of designp->nextTimeSlot() ( #4912 )
2024-02-21 10:15:29 -05:00
Andrew Nolte and Andrew Nolte
cfb73923bd
Test driver: Add -xrun Xcelium support ( #4896 )
...
Co-authored-by: Andrew Nolte <[email protected] >
2024-02-20 14:41:05 -05:00
Yutetsu TAKATSUKASA and Wilson Snyder
a951446f9b
Add --[no]-stop-fail option ( #4904 )
...
Co-authored-by: Wilson Snyder <[email protected] >
2024-02-19 21:26:58 +09:00
Wilson Snyder
a187a16e56
Commentary: Changes update
2024-02-13 21:47:09 -05:00
Wilson Snyder
d1dec38f38
Fix integer compare warning ( #4887 ). No functional change.
2024-02-13 18:37:41 -05:00
Yutetsu TAKATSUKASA
65b632a7dd
Improve assertion for unique case ( #4892 )
...
- Use parallel_case, unique, and unique0 in error message
- Distinguish multiple match and no match
- Show the case value that triggers the assertion
2024-02-13 21:53:32 +09:00
Geza Lore
ec0787015e
Ignore JSON tree dumps and DFG stats in test-snap/test-diff
2024-02-11 20:38:16 +00:00
Geza Lore
cbc76a7816
Dump DFG patterns with --stats ( #4889 )
...
With --stats, we will print DFG pattern combinations, one per line, as
S-expressions to new stat files, together with their frequency, to aid
discovery of new peephole patterns.
2024-02-11 15:41:10 +00:00
Szymon Gizler
d667b73e8d
Add --json-only and related JSON dumping ( #4715 ) ( #4831 ).
2024-02-09 17:50:09 -05:00
Wilson Snyder
248de2be2e
Fix coverage with member
2024-02-08 21:51:36 -05:00
Wilson Snyder
365537d8e3
Fix coverage of delayed nets
2024-02-08 20:25:17 -05:00
Wilson Snyder
a23cf1ceea
Fix toggle coverage dataDeclp error on multi-edge driven signals.
2024-02-08 19:21:44 -05:00
Wilson Snyder
be471e9ccc
Internals: Minor coverage reformatting/renaming. No functional change.
2024-02-08 19:10:38 -05:00
Wilson Snyder
d0e7eaafc9
Tests: Define stop uniformly. No functional change.
2024-02-08 18:39:13 -05:00
Wilson Snyder
13b7cce8be
Fix compile error on structs with queues (and ignore toggle coverage on queues).
2024-02-08 08:44:27 -05:00
Wilson Snyder
efff630763
Fix tautological-compare warnings.
2024-02-07 22:16:08 -05:00
Wilson Snyder
e2e0795538
Fix toggle coverage of unpacked unions with reals.
2024-02-07 21:03:32 -05:00
Wilson Snyder
c20634e4f8
Fix coverage of real arrays giving operator^ not defined
2024-02-07 20:11:27 -05:00
Wilson Snyder
715dce546f
Fix debug infinite loop when bad coverage pointers
2024-02-07 19:57:02 -05:00
Wilson Snyder
07d86bf91d
Allow loop unrolling with coverage
2024-02-07 19:56:32 -05:00
Krzysztof Bieganski
fe8c7c5a94
Fix timing with expr on assign LHS ( #4880 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2024-02-06 07:27:19 -05:00
Wilson Snyder
7ada5195d8
Fix this in member initialization ( #4710 ). ( #4876 )
2024-02-04 19:44:10 -05:00
Wilson Snyder
a6ad85244f
Backout ( #4710 ) due to leak
2024-02-04 18:13:22 -05:00
Wilson Snyder
f13f2296de
Fix this in member initialization ( #4710 ).
2024-02-04 16:09:01 -05:00
Wilson Snyder
b1d901f100
Tests: Hardcode copyright exceptions ( #4874 )
2024-02-04 15:43:01 -05:00
Wilson Snyder
8ab576f7e6
Internals: Use std::to_string. No functional change intended.
2024-02-04 14:38:25 -05:00
Wilson Snyder
6f92c9c974
CI: Update upload-artifacts/download-artifacts version ( #4875 )
2024-02-04 10:29:34 -05:00
Wilson Snyder
7425037db6
Fix Copyright
2024-02-04 09:35:19 -05:00
Geza Lore
6ca60429ce
Fix incorrect temporary insertion in loop conditions with statements ( #4873 )
...
When the condition of an AstWhile loop contains a statement (e.g.
through an AstExprStmt), temporaries inserted in that statement need to
go before that statement, not in the AstWhile precondition.
2024-02-04 09:19:54 -05:00
Bartłomiej Chmiel and Bartłomiej Chmiel
c702fc944e
Fix SystemC biguint sign desynchronization ( #4870 )
...
* Fix writing to SystemC values with `VL_ASSIGN_SBW`
Signed-off-by: Krzysztof Bieganski <[email protected] >
Co-authored-by: Bartłomiej Chmiel <[email protected] >
2024-02-02 07:00:13 -05:00
Yutetsu TAKATSUKASA
999c9ae21c
Fix #4864 of wrong runtime result ( #4867 )
...
* Fix #4864 . Ignore if EQ/NE is under SHIFTR.
2024-01-30 00:00:00 +09:00
Szymon Gizler
c715cfc254
Add --valgrind switch ( #4828 )
2024-01-29 07:50:05 -05:00
Wilson Snyder
22687a6901
Internals: Use C++14 quoted literal std::string
2024-01-28 21:00:20 -05:00
Wilson Snyder
eecdf4b0f3
Internals: Use C++14 exchange
2024-01-28 21:00:20 -05:00
Wilson Snyder
e3e5f30ba1
Check for C++14 without also accepting GNU C++11 ( #4865 )
2024-01-28 19:42:29 -05:00
Wilson Snyder
ce174743bb
Fix some MSVC warnings
2024-01-28 14:47:14 -05:00
Wilson Snyder
a84be1844f
MSVC fix, part of fix of null ( #4862 ).
2024-01-28 11:05:38 -05:00
Wilson Snyder
9ccef4180f
Fix $fwrite of null ( #4862 ).
2024-01-28 09:05:50 -05:00
Wilson Snyder
3bf896f7db
Commentary: Changes update
2024-01-28 09:04:29 -05:00
Yutetsu TAKATSUKASA
e4a0e5aad6
Fix #4857 consider NOT when checking EQ/NEQ under AND/OR tree ( #4863 )
2024-01-28 22:36:09 +09:00
Wilson Snyder
d6f8ccd20b
Add unroll_disable and unroll_full loop control metacomments ( #3260 ).
2024-01-26 07:49:07 -05:00
Wilson Snyder
94460867d3
Fix nondeterministic fork/tristate ordering ( #4690 ).
2024-01-25 20:33:43 -05:00
Wilson Snyder
5b70325e52
Internals: Style/debug cleanups. No functional change.
2024-01-25 20:26:56 -05:00
Wilson Snyder
3aece189ac
Fix tracing chandles ( #4860 ).
2024-01-25 08:13:52 -05:00
Wilson Snyder
188f0eb4ad
Tests: Add t_enum_enumvalue_struct_bad ( #2855 )
2024-01-25 07:57:45 -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
c8a40e0b52
Commentary; Tests: Check summary options match guide options
2024-01-24 19:28:46 -05:00
Wilson Snyder
771cb5f60b
Tests: Fix last commit when no coroutines.
2024-01-24 18:48:27 -05:00
Wilson Snyder
23836ee8d0
Document gprof steps better. Add t_prof_timing test to show GCC bug ( #4858 ).
2024-01-24 17:55:23 -05:00
github action
8a7f36c34b
Apply 'make format'
2024-01-24 12:46:22 +00:00
Jonathan Schröter
31262e81f9
Fix to not emit already waived warnings in waiver output ( #4574 ) ( #4818 )
2024-01-24 07:45:38 -05:00
github action
3d006afacc
Apply 'make format'
2024-01-24 03:08:39 +00:00
Wilson Snyder
74ec50f933
Support interface class diamond relationship.
2024-01-23 22:07:35 -05:00
Wilson Snyder
21e85f87bc
Fix compilation error on multi-inherited interface class usage ( #4819 ).
2024-01-23 19:36:11 -05:00
github action
0b8daf4ae4
Apply 'make format'
2024-01-23 18:06:10 +00:00
Paul Swirhun
6c0c88cfc4
Fix unsafe write in wide array insertion ( #4850 ) ( #4855 )
2024-01-23 13:05:27 -05:00
Wilson Snyder
f0d010d9c5
Github: Update actions ( #4852 )
2024-01-22 22:32:00 -05:00
Wilson Snyder
2989e54eaa
Add unsupported warning on property iff ( #4848 )
2024-01-21 16:18:48 -05:00
Wilson Snyder
1a2c9ca813
Updat GTKwave libraries from upstream
2024-01-21 13:59:54 -05:00
Wilson Snyder
e3f3e3399f
Commentary: Changes update
2024-01-21 13:50:27 -05:00
Yutetsu TAKATSUKASA
6b8531f0a6
Fix widthMin in replaceShiftOp ( #4837 ) ( #4841 ) ( #4849 )
2024-01-21 10:30:01 -05:00
Yutetsu TAKATSUKASA
50df902b54
Fix incorrect bit-op-tree NOT optimization ( #4832 ) ( #4847 )
...
* Fix #4832 . Bit-op-tree opt. should not touch a subtree under NOT in AND/OR tree.
2024-01-21 07:25:24 -05:00
Wilson Snyder
3a5248a919
Internals: Mark structs final/VL_NOT_FINAL. No functional change intended.
2024-01-20 15:06:46 -05:00
Wilson Snyder
1a92502788
Add --main support for dumping coverage, and +verilator+coverage+file runtime option.
2024-01-20 12:28:49 -05:00
Wilson Snyder
a38fea1f9e
Tests: Use context coverage write
2024-01-20 11:19:42 -05:00
Wilson Snyder
d595d4c7ac
Tests: Use --binary with some --timing tests
2024-01-20 10:57:00 -05:00
Wilson Snyder
a43fd06f85
Tests: Imply no driver.pl make when using --build. No functional change intended
2024-01-20 10:37:35 -05:00
Wilson Snyder
375a121377
Tests: Use lint() where able instead of compile(). No functional change intended.
2024-01-20 10:25:17 -05:00
Wilson Snyder
fef0502d50
Tests: Imply make_main=>0 on --main tests
2024-01-20 10:17:35 -05:00
Wilson Snyder
c30b9d04a8
Change unused vars to standard void syntax. No functional change intended.
2024-01-20 08:57:22 -05:00
Wilson Snyder
89cfa0737f
Internals: Fix cppcheck warnings
2024-01-17 19:48:07 -05:00
Wilson Snyder
8b03f2d47b
Commentary
2024-01-17 19:47:07 -05:00
Anthony Donlon
f80c167d65
Fix warnings in verilated_sc_trace.h for Clang. No functional change. ( #4807 ) ( #4827 )
2024-01-17 19:30:42 -05:00
Szymon Gizler
db3ce29b36
Fix wrong utimes() param ( #4829 )
2024-01-17 08:32:44 -05:00
Wilson Snyder
6f96c6763d
Commentary
2024-01-17 08:25:54 -05:00
Szymon Gizler
372cdf1fc8
Tests: Let debugger handle signals instead of test driver ( #4817 )
2024-01-16 11:18:20 -05:00
github action
54922c036a
Apply 'make format'
2024-01-14 00:53:31 +00:00
Adrian Sampson
2e999a5441
Fix too null pointer dereference ( #4810 ) ( #4825 )
2024-01-13 20:52:50 -04:00
Tim Hutt
5073f208af
Internals: Use more standard syntax for avoiding unused variable warnings ( #4826 )
2024-01-13 15:34:59 -05:00
Larry Doolittle
c9d7486d16
Fix maybe-uninitialized compiler warning ( #4820 ) ( #4822 )
2024-01-12 13:09:34 -05:00
Wilson Snyder
27d906a6b3
Commentary: Changes update
2024-01-12 08:20:53 -05:00
Wilson Snyder
21bf2d62d2
Fix mis-splitting of dump control functions ( #4821 ).
2024-01-12 08:19:30 -05:00
Wilson Snyder
fcdd8e5da6
Fix missing includes with multiple inheritance ( #3819 partial)
2024-01-11 20:19:48 -05:00
Andrew Nolte
ab47fc6656
Fix localparam elaboration ( #3858 ) ( #4794 )
2024-01-11 07:49:07 -05:00
Szymon Gizler
5f52c066e5
Internals: Add serializeOnly() and dumpTreeEitherLevel() ( #4815 ) ( #4715 ). No functional change intended.
2024-01-09 10:35:13 -05:00
Wilson Snyder
19cb366e5d
Update ifdef ( #4805 ) ( #4807 ). No functional change.
2024-01-08 07:35:34 -05:00
Anthony Donlon
55d1b87b34
Support parsing anonymous primitive instantiations ( #4809 )
2024-01-07 10:59:56 -05:00
Wilson Snyder
eec41fd039
Fix lint_off disables on preprocessor warnings ( #4703 ).
2024-01-06 18:49:19 -05:00
Wilson Snyder
69043549d6
Fix const anon union ( #4800 )
2024-01-06 17:26:07 -05:00
Wilson Snyder
68e4eeb53e
Add predicted stack overflow warning ( #4799 ).
2024-01-06 16:16:14 -05:00
Wilson Snyder
0ca90257a5
Add predicted stack overflow warning ( #4799 ).
2024-01-06 16:14:58 -05:00
Anthony Donlon
7507c5f56c
Support SystemC 3.0.0 public review version ( #4805 ) ( #4807 )
2024-01-06 06:01:35 -05:00
Wilson Snyder
acbbb2594a
Tests: Make some tests single-threaded only, for faster regressions
2024-01-05 18:25:39 -05:00
Wilson Snyder
5294140753
Fix delays using wrong timeunits when modules inlined ( #4806 ).
2024-01-05 18:07:24 -05:00
Wilson Snyder
a36a07c297
Internals: Favor UASSERT over v3fatalSrc. No functional change intended.
2024-01-05 18:00:06 -05:00
Wilson Snyder
47b129bf07
Commentary
2024-01-05 07:14:40 -05:00
Chykon
1a0c8f1573
Commentary: Add a link to Create-Binary Execution to the list of examples ( #4802 )
2024-01-04 10:47:22 -05:00
Wilson Snyder
2be6f03848
Commentary: runtime debugging
2024-01-03 21:03:17 -05:00
github action
4172c0f29e
Apply 'make format'
2024-01-03 12:13:21 +00:00
Pengcheng Xu
ec01008fe3
Change zero replication width error to ZEROREPL warning ( #4753 ) ( #4762 )
2024-01-03 07:11:50 -05:00
Marlon James
8ea814e4b4
Fix VPI parameter iteration ( #4798 )
2024-01-02 18:57:34 -05:00
Marlon James
0195fe9dfd
Add vpiConstType support to vpi_get_str() ( #4797 )
2024-01-02 18:52:57 -05:00
Marlon James
e430ea13f4
Fix vpi_get() and vpi_get64() to return vpiUndefined on errors ( #4795 )
...
See IEEE 1800-2017 section 38.6 and 38.7.
2024-01-02 16:25:14 -05:00
Mariusz Glebocki
719954a24a
Internals: Make V3Const.cpp parseable by non-compilers ( #4796 )
2024-01-02 14:51:40 -05:00
Paul Wright
3adb31f53b
Fix $time not rounding up ( #4790 ) ( #4792 )
2024-01-01 20:11:46 -05:00
Wilson Snyder
3eaed3b6f5
Remove deprecated 32-bit pointer mode ( #4791 ).
2024-01-01 10:16:48 -05:00
Wilson Snyder
22de598456
devel release
2024-01-01 03:46:48 -05:00
Wilson Snyder
5c5314b39c
Version bump
2024-01-01 03:42:12 -05:00
Wilson Snyder
e76f29e5ba
Copyright year update
2024-01-01 03:19:59 -05:00
Wilson Snyder
5a83209b9b
Tests: Fix last commit on width ( #4781 ).
2023-12-31 13:28:49 -05:00
Wilson Snyder
4655ee014b
Fix max multiply width. ( #4781 )
2023-12-31 11:42:06 -05:00
Wilson Snyder
12f0017d4a
Commentary: Changes update
2023-12-31 11:35:11 -05:00
Wilson Snyder
ca3b5fbe99
Add verilated asserts that VL_MULS_MAX_WORDS does not overflow ( #4781 ). No functional change intended.
2023-12-30 15:31:58 -05:00
Wilson Snyder
9de6612cde
Avoid shift by 32 even if later masked, to avoid sanitizer warning ( #4781 ). No functional change intended.
2023-12-30 14:46:57 -05:00
Rasfunk
2d7e8b58e4
Require C++14 or newer ( #4784 ) ( #4786 )
2023-12-29 10:39:00 -05:00
Wilson Snyder
f3a97841bd
Commentary
2023-12-27 15:35:22 -05:00
Wilson Snyder
40f0378136
CI: Run --sanitize on Ubuntu 22.04 in prep for eventual 24.04. ( #4782 )
2023-12-27 15:01:17 -05:00
Wilson Snyder
17b6ce1379
Commentary: Changes update
2023-12-27 10:15:29 -05:00
Wilson Snyder
14ac24cacc
Commentary: sccache
2023-12-26 15:15:15 -05:00
Wilson Snyder
6bf253deda
Tests: Test for unsupported default disable ( #4016 )
2023-12-24 13:11:09 -05:00
Wilson Snyder
aa4346a0e3
Tests: Add test for unfixed ( #4237 )
2023-12-24 12:19:15 -05:00
Wilson Snyder
8c541a6e4d
Tests: Add test for unfixed ( #4038 )
2023-12-24 12:17:54 -05:00
Wilson Snyder
1a43afe6f7
Fix $finish twice to no longer exit ( #4757 ).
2023-12-24 11:02:52 -05:00
Wilson Snyder
9882c4c761
Github: Commentary
2023-12-24 10:35:12 -05:00
Wilson Snyder
54ad04b6e9
Fix 'for' loop with outside variable reference ( #4660 ).
2023-12-24 10:17:44 -05:00
Fan Shupei
540cd772e4
Add user C/C++ code to final achieve, and make a libmodel.a ( #4749 ) ( #4754 )
2023-12-23 09:31:10 -05:00
Krzysztof Bieganski
621de301c7
Run the V3Fork stage only if --timing is set ( #4778 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-12-22 22:57:45 +01:00
Wilson Snyder
8769c1a92b
Internals: Add -fno-dead-cells, -fno-dead-assigns for debug use
2023-12-22 16:26:51 -05:00
github action
8e1c0b0852
Apply 'make format'
2023-12-21 12:49:55 +00:00
Jordan McConnon
56d6791205
Support invoking interface methods on virtual interface variables ( #4774 ) ( #4775 )
2023-12-21 07:49:07 -05:00
Krzysztof Bieganski
016e630ecf
Refine dynamic NBA condition ( #4773 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-12-20 18:12:17 +01:00
Wilson Snyder
69b779b4a8
Internals: Cleanup cpp-check warnings. No functional change.
2023-12-20 07:49:03 -05:00
Wilson Snyder
7a537765bc
Tests: Comment driver.pl with some argument meanings. No functional change.
2023-12-19 22:43:18 -05:00
Wilson Snyder
21b2e874ce
Tests: Make some includes more generic to help copying tests. No test change.
2023-12-19 21:08:30 -05:00
Wilson Snyder
55ad950609
Fix power operator with wide numbers and constants ( #4721 ) ( #4763 )
2023-12-19 19:22:54 -05:00
Todd Strader
654ab117f2
Fix tracing FST enums ( #4661 ) ( #4756 )
2023-12-19 11:07:06 -05:00
Todd Strader
5ec9bfc47d
Support packages in vpi_handle_by_name() ( #4768 )
2023-12-15 17:32:23 -05:00
Todd Strader
1066f06ec1
Support VPI parameter iteration ( #4765 )
2023-12-15 13:53:13 -05:00
Todd Strader
668dbb25ab
Tests: Use test macros in t_vpi_package ( #4726 ) ( #4764 ).
2023-12-15 12:11:51 -05:00
Todd Strader
fced4d6e57
Support vpiConstType in vpi_get() ( #4761 )
2023-12-14 20:37:47 -05:00
Geza Lore
c5ba6e22fa
Minor cleanup of trace internals
2023-12-12 20:27:16 +00:00
Geza Lore
6012ec8eb7
Put dynamic NBA commit in eval_phase__nba
...
Fixes #4634
2023-12-12 18:11:43 +00:00
Mariusz Glebocki
75a44e5aa9
Fix deadlocks in error handler ( #4672 )
2023-12-12 08:10:01 -05:00
Ryszard Rozak
a811f2e17d
Support inside operator on unpacked arrays and queues ( #4751 )
2023-12-12 09:20:22 +01:00
Stefan Wallentowitz
b65f2509a2
Devcontainer support ( #4748 )
...
devcontainers are a convenient way to provide users a reproducible
build environment. It is currently supported by Visual Studio Code,
Visual Studio and IntelliJ.
When the user opens the verilator repo in VSCode with the standard
devcontainer extension installed, VSCode will ask the user if they
want to reopen in the devcontainer, then build the Docker image as per
our definition and then restart VSCode 'remotely' attached to the
Docker container.
More information:
https://code.visualstudio.com/docs/devcontainers/containers
Also:
- zlibc is missing on Debian-based systems now
- Add non-root user to Dockerfile and make default
2023-12-12 08:46:25 +01:00
Ryszard Rozak
b60117c713
Fix typedefs pointing to parameterized classes ( #4747 )
...
* Skip handling of ClassOrPackageRef nodes that point to Typedefs
2023-12-08 07:13:38 -05:00
Ryszard Rozak
d3142736c8
Tests: Add a test for type parameters in virtual interfaces ( #4746 )
2023-12-08 07:11:32 -05:00
Ryszard Rozak
1ececf1127
Support multiple parameters in virtual interfaces ( #4745 )
2023-12-07 13:56:16 +01:00
Geza Lore
a09f7713ce
Fix race in t_interface_virtual_sched_ico
2023-12-06 16:32:22 +00:00
Geza Lore
f3bace10ae
Improve V3Premit performance etc. ( #4736 )
...
- Enable creating constant pool entries for RHS of simple
var = const assignments
- Never extract ArraySel (it's just pointer arithmetic)
- Remove unnecessary AstTraceInc precond child tree
- Always fully recurse expressions (fix transplanted from #4617 )
- General cleanup
Overall the patch is performance neutral to slightly positive, but saves
~10% peak Verialtor memory usage due to not creating temporaries (which
are later expanded) for any ArraySels.
2023-12-06 09:42:46 -05:00
Wilson Snyder
39d9bd4d47
Internals: V3LinkDot fix missing restorer.
2023-12-06 08:29:33 -05:00
Ryszard Rozak
eb2cfe1d19
Support parameterized virtual interaces ( #4047 ) ( #4743 )
2023-12-06 08:02:04 -05:00
Ryszard Rozak
ca5a7d7656
Add class name in the error msg about calling 'new' on virtual class ( #4739 )
2023-12-05 16:31:59 +01:00
Krzysztof Bieganski
ea2084392f
Support --timing triggers for virtual interfaces ( #4673 )
2023-12-04 22:11:07 -05:00
Geza Lore
5d99534d54
Improve W primitive operations with -Oz ( #4733 )
2023-12-02 22:59:30 +00:00
Geza Lore
f048cff093
Add inline for VL_ATTR_ALWINLINE, even on non GNU-C platforms ( #4734 )
...
This is required to avoid multiple definition errors at link time for
functions defined in headers and marked VL_ATTR_ALWINLINE.
2023-12-02 21:51:59 +00:00
Wilson Snyder
f571181d36
Commentary: Changes update
2023-12-02 16:48:33 -05:00
Wilson Snyder
fc9b66b078
Tests: Fix t_assigndly_dynamic_notiming_bad to survive new dead code elimination
2023-12-02 15:57:38 -05:00
Wilson Snyder
f039a94744
Tests: Add _bad to some negative tests.
2023-12-02 09:48:06 -05:00
Wilson Snyder
b4baa7ce02
Internals: Avoid extranious base class calls in recent commit.
2023-12-01 19:05:21 -05:00
Krzysztof Boroński
bd38c8fe3c
Fix # 0 delays for process resumption, etc. ( #4697 )
2023-12-01 13:08:58 -05:00
Todd Strader
9a0748d8ed
vpi_iterate packages with vpiInstance ( #4726 )
2023-12-01 07:34:09 -05:00
Wilson Snyder
feae9ca4aa
Internals: Use astgen for cross-node pointers. No functional change intended. ( #4727 )
2023-11-30 19:58:16 -05:00
Ryszard Rozak
d1ee9827a0
Fix block names of nested do..while loops ( #4728 )
2023-11-30 14:32:12 +01:00
Todd Strader
1fe591ae20
fix --rrsim ( #4725 )
2023-11-30 07:15:12 -05:00
Krzysztof Bieganski
b820e1b587
Support iff in sensitivity list ( #1482 ) ( #4626 )
...
Adds a new field to `AstSenItem` that stores the `iff` condition which is then handled by `SenExprBuilder`.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-11-29 19:10:32 +01:00
Ryszard Rozak
ebfc2a4942
Fix parameter passing to ports ( #4723 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-11-29 17:07:23 +00:00
Wilson Snyder
7167d4bdc0
Fix shift of > 32-bit number ( #4719 ).
2023-11-27 21:41:32 -05:00
Wilson Snyder
a022b672a0
Fix 0**0 with wide numbers ( #4721 ).
2023-11-26 17:11:22 -05:00
William D. Jones
a7a48221d3
Fix Windows include gates in filesystemFlush implementation. ( #4720 )
2023-11-26 05:26:20 +01:00
Wilson Snyder
e5118661a7
Commentary
2023-11-24 13:02:05 -05:00
Wilson Snyder
58d9a5ebac
Use newline instead of endl, for fewer stream flushes
2023-11-24 11:45:52 -05:00
Wilson Snyder
fae7f11222
Fix compilers seeing empty input due to file system races ( #4708 ). Part 2.
2023-11-22 05:18:13 -05:00
Wilson Snyder
1986e62477
Internals: Remove unused append dumpTreeFile option
2023-11-21 22:32:13 -05:00
Wilson Snyder
0ee2a0e6d7
Don't remove DepSet as messes with skip-identical, part of last commit
2023-11-21 22:08:47 -05:00
Wilson Snyder
2b28ddd0c6
Fix MSWIN compile in last commit
2023-11-21 21:49:36 -05:00
Wilson Snyder
b15ef49c57
Fix compilers seeing empty input due to file system races ( #4708 ).
2023-11-21 21:22:35 -05:00
Wilson Snyder
ed05caec93
Rename __hier*.f files to match other generated files
2023-11-21 20:31:54 -05:00
Wilson Snyder
25ca965938
Commentary
2023-11-21 19:17:39 -05:00
github action
ead27db9f0
Apply 'make format'
2023-11-21 02:02:56 +00:00
Jinyan Xu
4650105d90
Fix conflicted namespace for coroutines ( #4701 ) ( #4707 )
2023-11-20 21:02:10 -05:00
Krzysztof Bieganski
b8417abee5
Fix dynamic NBAs with automatic vars ( #4696 )
...
This patch addresses two issues with NBAs in non-inlined functions/tasks:
- If the NBA writes to a local automatic var, the var could cease to exist before the NBA executes. This is normally addressed by fork dynscopes (#4356 ), but NBA-to-fork transformation happens way after `V3Fork` (in `V3Timing`). To solve this, we put NBAs that write to locals under forks in `V3Fork` already. This way, such locals will be put in dynscopes, and will still exist after the task containing the NBA exits.
- The above change means that any writes in forks other than `fork..join` should be handled by `V3Fork`. Thus, in `V3SchedTiming`, we only have to worry about read references, so we can simply copy all remaining locals. Because we copy, lifetimes are not an issue. This fixes a bug that allowed assignment intravals to be overwritten if they go out of scope in the containing function.
2023-11-16 11:21:23 +01:00
Krzysztof Boroński
cc982ec7fe
Fix range access to fields under classes that depend on parameter resolution ( #4681 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-11-15 14:24:41 +01:00
Ryszard Rozak
2dba76a7c2
Fix access type of function arguments ( #4692 ) ( #4694 )
2023-11-14 17:02:13 -05:00
Wilson Snyder
9fd5634778
Internals: Remove unneeded private's. No functional change
2023-11-13 21:37:45 -05:00
Wilson Snyder
c8063e5732
Internals: Misc cleanups in V3Graph and V3Dead. No functional change.
2023-11-12 22:08:08 -05:00
Wilson Snyder
ee3ba7c761
Internals: Use faster VNVisitorConst where able. No functional change intended.
2023-11-12 18:26:40 -05:00
Geza Lore
2882737bcd
V3Const: Fix select into And/Or/Xor pattern ( #4689 )
2023-11-12 19:41:18 +00:00
Geza Lore
47588f343b
astgen: Enforce the use of aliased operand accessors ( #4688 )
...
This patch enforces the use of the most specific accessors for operands
which have an '@astgen alias' declaration, by making the superclass
accessors of the same operands private. This ensures client code is
cleaner as you can't use multiple different methods to reference the
same operands (which we used to in some places). Also prep for some
refactoring.
2023-11-12 18:30:48 +00:00
Geza Lore
1c0af6c7bc
Reduce peak memory use of V3Subst ( #4687 )
...
V3Subst is currently the pass responsible for peak memory usage. This
patch saves ~16% of peak memory on OpenTitan.
2 changes:
- It is actually safe to delete the substituted expressions immediately,
but this is the lesser contribution
- More importantly, we only ever substitute STMTTEMP variables, which
are always defined within the same CFunc, so we can limit the scope of
the optimization to CFunc. This allows us to reclaim the SubstVarEntry
structures at the end of every CFunc, rather than at the end of the
whole pass, which gives us most of the memory savings.
Generated output is identical
2023-11-12 16:01:07 +00:00
Geza Lore
b07ffb3c78
Cleanup V3Gate ( #4667 ) ( #4685 )
...
Lot of redundant/dead/obsolete code here. NFCI, but contains some minor
bug fixes.
2023-11-12 15:29:25 +00:00
Geza Lore
bea82def10
Add node memory usage info to V3Stats ( #4684 )
2023-11-12 14:19:53 +00:00
Wilson Snyder
671a857560
Fix compiler warning on 'wait' with non-zero constant.
2023-11-12 08:44:55 -05:00
Wilson Snyder
eff2d977c1
Fix mis-elimination of variables across randomize()
2023-11-12 07:32:08 -05:00
Wilson Snyder
30a0d62436
Fix assignment of class reference to itself causing double free.
...
Test in next commit.
2023-11-12 07:30:56 -05:00
Wilson Snyder
91d0f25442
Internals: Fix style of iterator. No functional change.
2023-11-11 20:52:23 -05:00
Wilson Snyder
4a10c9ef6f
Internals: Rename. No functional change.
2023-11-11 20:47:10 -05:00
Wilson Snyder
9d7f5bdc26
Internals: Dump CFunc entry points.
2023-11-11 20:34:51 -05:00
Wilson Snyder
99dbd23f1b
Support passing constraints to --xml-only output (still otherwise unsupported) ( #4683 )
2023-11-11 20:20:37 -05:00
Wilson Snyder
673f086e87
Commentary: Update contributors.
2023-11-11 18:49:51 -05:00
Wilson Snyder
4103925835
Commentary: add docs/README.rst
2023-11-11 17:19:27 -05:00
Wilson Snyder
cad2780219
Fix display with no % printing assoc array ( #4376 ).
2023-11-11 15:28:44 -05:00
Wilson Snyder
4636a7f14b
Internals: Fix uninitalized variables ( #4636 )
2023-11-11 14:58:54 -05:00
Wilson Snyder
a64bdf50fb
Commentary
2023-11-11 14:48:51 -05:00
Wilson Snyder
706534ffe1
Fix 'for' loop with outside variable reference ( #4660 ).
2023-11-11 14:47:54 -05:00
Wilson Snyder
4286af3599
Commentary: Changes update
2023-11-11 10:38:37 -05:00
Wilson Snyder
9a0254a118
Optimize timing-delayed queue ( #4584 ). ( #4669 )
2023-11-11 10:04:10 -05:00
Wilson Snyder
f3ae4b8786
Fix spelling
2023-11-10 23:25:53 -05:00
Anthony Donlon
6566e853cd
Support ccache when compiling Verilator with CMake ( #4678 )
2023-11-09 21:05:36 -05:00
Anthony Donlon
ab06ace1f6
Fix trace when using SystemC with certain configurations ( #4676 )
2023-11-09 07:48:23 -05:00
David Ledger
9a65ed4ce2
Fix Mingw Compilation ( #4675 )
2023-11-08 06:27:56 -05:00
Marlon James
5ba7084815
Fix VPI TOP level variable iteration ( #3919 ) ( #4618 )
2023-11-07 07:47:55 -05:00
Wilson Snyder
dc10118d3b
Fix C++20 compilation errors ( #4670 )
2023-11-06 07:13:31 -05:00
Wilson Snyder
27102ea0fb
CI: Combine lint and build workflows ( #4671 )
2023-11-06 07:13:00 -05:00
Geza Lore
c563175ff0
Fix scheduling of external force signals ( #4668 )
...
Used to set the wrong public flag on forceEn/forceVal, which means they
were not included in ICO as necessary, but V3Gate tended to inline them,
so this was hard to hit.
Fixes #4577
2023-11-05 16:58:22 +00:00
Krzysztof Boroński
b110c55993
Fix a memory leak in V3Fork ( #4628 )
2023-11-05 11:39:06 -05:00
Geza Lore
dc346b7ffa
Remove deprecated options ( #4663 )
2023-11-04 17:28:36 +00:00
Anthony Donlon
88fcbf5f1d
Fix interface parameters used in loop generate constructs ( #4664 ) ( #4665 )
2023-11-04 13:19:35 -04:00
Wilson Snyder
eace1d9c67
Internals: Use UINFO for preproc debug, to avoid stderr/cout output reordering confusion.
2023-11-04 10:51:14 -04:00
Anthony Donlon
d0d39c13e7
Fix linking parameterized hierarchical blocks and recursive hierarchical blocks ( #4654 )
2023-11-03 07:55:53 -04:00
Anthony Donlon
2733d43ea7
Fix identifiers that end with '_' on Windows ( #4655 )
2023-11-02 17:53:52 -04:00
Geza Lore
ae6ec411d0
Remove dead code from V3EmitV
2023-11-02 20:25:44 +00:00
Geza Lore
8a77af7a6d
Remove redundant user*ClearTree calls
2023-11-02 19:16:48 +00:00
Wilson Snyder
2a57ead7e3
Commentary ( #4517 )
2023-11-01 17:43:11 -04:00
Wilson Snyder
839315b271
devel release
2023-10-31 19:53:03 -04:00
Wilson Snyder
67dfa37c56
Version bump
2023-10-31 19:50:01 -04:00
Wilson Snyder
590188820d
Commentary: Changes update
2023-10-31 19:49:40 -04:00
Ryszard Rozak
a764c70b4a
Fix handling of static keyword in methods ( #4649 )
2023-10-31 08:15:54 -04:00
Wilson Snyder
a27abab65f
Fix PCH to recompile on version change
2023-10-31 08:10:41 -04:00
Wilson Snyder
c241ec90ec
Commentary: Changes update
2023-10-30 22:10:03 -04:00
Krzysztof Bieganski
f789d28277
Fix signals read via virtual iface optimized out ( #4645 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-10-30 21:26:46 -04:00
Wilson Snyder
c1c8b30a35
CI: Add lint-py action ( #4640 )
2023-10-30 08:02:54 -04:00
Wilson Snyder
15046c6c59
Commentary: Icarus URL ( #4639 )
2023-10-30 08:01:12 -04:00
Ícaro Lima
1da15181da
Update CONTRIBUTORS ( #4641 )
2023-10-29 16:44:42 -04:00
Wilson Snyder
3c6b755352
Tests: Rename t_opt_dead
2023-10-29 09:42:52 -04:00
Geza Lore
3c144ada53
Delete AstNode user5 ( #4638 )
...
This saves about 5% memory. V3AstUserAllocator is appropriate for most use
cases, performance is marginally up as we are mostly D-cache bound on
large designs.
2023-10-29 01:12:27 +01:00
Wilson Snyder
7ba6647c4f
Internals: Cleanup some V3Graph constructors/funcs and docs. No functional change.
2023-10-28 20:11:28 -04:00
Geza Lore
e708670f9a
Minor memory optimizatoin of AstUser*Allocator
2023-10-28 20:31:57 +01:00
Geza Lore
de4c6065dc
make: add test-snap/test-diff targets ( #4635 )
2023-10-28 15:58:29 +01:00
Geza Lore
d60f180f43
Avoid double traversal of maps
...
The typical find/if-not-exists-insert pattern can be achieved with 1
lookup instead of 2 using emplace with a sentinel value. Also maps value
initialize their values when inserted with the [] operator, this is
defined and so there is no need to explicitly insert zeroes for integer
values.
2023-10-28 13:41:43 +01:00
Geza Lore
30318a6654
C++11 cleanup
2023-10-28 11:26:48 +01:00
Geza Lore
d8420413b7
test: fix FST trace file names
2023-10-28 10:40:07 +01:00
Geza Lore
a5951babfc
test: make output deterministic
2023-10-28 10:36:30 +01:00
Geza Lore
2cba167634
Make eval loop construction more unified and the output more readable
2023-10-28 08:48:04 +01:00
Krzysztof Boroński
89743aae5d
Fix stable name generation in V3Fork ( #4615 ) ( #4624 )
2023-10-27 15:08:02 -04:00
Ryszard Rozak
e6135981a5
Fix dynamic casts of null values ( #4631 )
2023-10-27 15:58:40 +02:00
Kamil Rakoczy
739521333c
Tests: Fix clang_check_attributes missing dataclass decorator ( #4604 ) ( #4611 )
2023-10-27 08:24:27 -04:00
Ryszard Rozak
64af83161a
Fix rand fields of reference types ( #4627 )
2023-10-26 17:17:23 -04:00
Chih-Mao Chen
98252634fc
Include systemc instead of systemc.h in model header files ( #4622 ) ( #4623 )
...
This may require that SystemC programs add:
using namespace sc_core;
using namespace sc_dt;
2023-10-26 14:36:18 -04:00
Krzysztof Boroński
a87fb57656
Allow assigning events ( #4403 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-10-26 16:38:47 +02:00
Geza Lore
34708bbba1
Respect --dump-tree-addrids in tree dumps
2023-10-25 18:17:26 +01:00
Krzysztof Boroński and Wilson Snyder
f91259f46d
Fix insertion at queue's end ( #4619 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
Co-authored-by: Wilson Snyder <[email protected] >
2023-10-25 17:41:28 +02:00
Marlon James
cf6e362972
Support VPI variables of real and string data types ( #4594 )
2023-10-24 20:46:20 -04:00
Geza Lore
95c4ade718
Unify code generation for trace declarations in both trace formats ( #4612 )
...
This patch adds some abstract enums to pass to the trace decl* APIs, so
the VCD/FST specific code can be kept in verilated_{vcd,fst}_*.cc, and
removed from V3Emit*. It also reworks the generation of the trace init
functions (those that call 'decl*' for the signals) such that the scope
hierarchy is traversed precisely once during initialization, which
simplifies the FST writer. This later change also has the side effect of
fixing tracing of nested interfaces when traced via an interface
reference - see the change in the expected t_interface_ref_trace - which
previously were missed.
2023-10-24 16:33:29 +01:00
Ryszard Rozak
84125d7c92
Fix virtual methods ( #4616 )
2023-10-24 15:51:46 +02:00
Geza Lore
17721aff55
Remove unused IMPLICITWIRE var type
2023-10-24 10:02:00 +01:00
Geza Lore
d1b6224c2b
Associate trace codes with function indices ( #4610 )
...
For each traced variable, also register the trace function index that
will write it.
2023-10-23 16:01:55 +01:00
github action
1bd31742b9
Apply 'make format'
2023-10-23 14:07:52 +01:00
Geza Lore
165a2ef1b8
Separate tracing of const values from non-const values
...
Some values emitted to the trace files are constant (e.g.: actual
parameter values), and never change. Previously we used to trace these
in the 'full' dumps, which also included all other truly variable
signals. This patch introduces a new generated trace function 'const',
to complement the 'full' and 'chg' flavour, and 'const' now only
contains the constant signals, while 'full' and 'chg' contain only the
truly variable signals. The generate 'full' and 'chg' trace functions
now have exactly the same shape. Note that 'const' signals are still
traced using the 'full*' dump methods of the trace buffers, so there is
no need for a third flavour of those.
2023-10-23 14:07:52 +01:00
Ryszard Rozak
774c10396c
Fix try_put method of unbounded mailbox ( #4608 )
2023-10-23 14:33:22 +02:00
Marlon James
33c5b5feb8
Add sv_vpi_user.h from IEEE 1800-2017 Annex M ( #4606 )
2023-10-22 20:41:40 -04:00
Wilson Snyder
b83b9974ee
Fix gcc -O0 incompatible allocator warning
2023-10-22 09:51:02 -04:00
Wilson Snyder
bcbe5059a9
Internal: V3Graph style cleanup. No functional change
2023-10-22 09:50:38 -04:00
Wilson Snyder
5bda901146
Internals: Fix stats report to include main AstCFile made
2023-10-21 20:56:24 -04:00
Geza Lore
82565690c7
test driver.pl: don't redirect to STDOUT of interactive GDB
2023-10-22 00:56:10 +01:00
Geza Lore
978d900e36
Simplify and fix code stats
...
V3Stats for "fast" code have bit-rotted a little and is causing some
problems with tests that rely on stats outputs. The problem is that not
all code is necessarily reachable from eval() any more (due to the
complexity of some the features added over the past few years), so it
might miss some things, as for measuring the "fast" code, it is trying
to trace the execution paths via calls, starting from eval(). It also
appears the fast code can also contain calls to slow code in some
circumstances.
To avoid all that, removed trying to trace dynamic execution, and simply
report the static node counts, which is enough for testing.
Similarly, the variable counts are somewhat dubious, as they don't
include all data types, or all instances of a module in some stages.
Removing these as they are not widely used nor dependable. More specific
stats can be added if required and can be well defined.
2023-10-22 00:25:07 +01:00
Geza Lore
d330100542
Create implicit nets for inputs of gate primitives.
...
Prior to this we failed to create implicit nets for inputs of gate
primitives, which is required by the standard (IEEE 1800-2017 6.10).
Note: outputs were covered due to being modeled as the LHS of
assignments, which do create implicit nets.
2023-10-21 22:45:26 +01:00
Geza Lore
4c0edd2efb
Improve --prof-exec infrastructure and report
...
Again --prof-exec have bit-rotted a little with all the recent changes
to the structure of the generated code. This patch contains a few
improvements:
- Repalce the eval/evl_loop begin/end events with generic
section_push/section_pop events, that can be arbitrarily sprinkled
into the generate code (so long as they are matched correctly) to
measure various sections. The report then contains a nested profile
of the sections, and the VCD trace shows the section names.
- Better handling of exec graphs
- Clearer overall statistics
2023-10-21 21:09:03 +01:00
Geza Lore
146cdc020d
Remove V3AstConstOnly.h
...
This is now redundant with the introduction of VNVisitorConst
2023-10-21 20:41:46 +01:00
Geza Lore
52f2b9ef58
Remove pointless test
...
t_optm_if_cond was a test for a then non-existent optimization to merge
conditionals. V3MergeCond implements this and has its own tests.
2023-10-21 20:41:46 +01:00
Geza Lore
a09506a0ad
Trivial simplification of V3EmitCModel
...
Still some remains of the --threads 0 mode. Remove unnecessary complexity
from V3EmitCModel. (Also don't pretend there is an MTask in single
threaded mode, when there really isn't.)
2023-10-21 20:41:46 +01:00
Geza Lore
10d33238b9
Do not merge entry/exit MTasks during coarsening
2023-10-21 19:31:52 +01:00
Geza Lore
b78ea06829
Make VL_LOCK_SPINS configurable
...
It's unlikely one value fits all use case, so making VL_LOCK_SPINS
configurable at model build time.
For testing, we reduce the value as we expect high contention.
2023-10-21 18:05:53 +01:00
Wilson Snyder
eae942b91c
Internals: Fix some lint-py warnings
2023-10-21 12:48:36 -04:00
Geza Lore
1075b006b5
Consider children of AstConcat in V3InstrCount
...
Previously V3InstrCount used to completely ignore an AstConcat,
including its children (see the rational in the comment). The problem is
the operands can be huge and expensive compound expressions (especially
since DFG), and not just a simple variable reference. This fix gains
some MT speed improvement.
2023-10-21 17:15:40 +01:00
Wilson Snyder
afaa02709c
CI: Increase CCACHE_MAXSIZE ( #4595 )
2023-10-21 10:38:46 -04:00
Wilson Snyder
332a687aef
Commentary
2023-10-21 10:35:07 -04: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
Geza Lore
cbc2f9eb32
Do not overwrite LD_LIBRARY_PATH in t_flag_ldflags
2023-10-21 11:34:36 +01:00
Quentin Corradi
26e3785963
Fix PLI/DPI user defined system task/function grammar ( #4587 ) ( #4588 )
...
According to 1800-2017 36.3, 1800-2017 A.9.3, 1364-2005 20.2 and 1364-2005 A.9.3, user defined system task and function identifiers can use the same character set for the second character as all the following characters.
2023-10-21 02:43:49 -04:00
Wilson Snyder
f8b7fb72b8
Fix fault on empty clocking block ( #4593 ).
2023-10-21 02:40:08 -04:00
Krzysztof Bieganski
7b12f6a1dd
Support NBAs in non-inlined functions/tasks ( #4496 ) ( #4572 )
2023-10-20 20:01:45 -04:00
Mariusz Glebocki
c7a0613c57
Support Clang 16 ( #4592 )
2023-10-20 15:47:09 -04:00
Aleksander Kiryk
83a0085c4d
Support wait fork ( #4586 )
2023-10-20 07:13:57 -04:00
Wilson Snyder
05bb7fa821
Tests: Use UVM with UVM_NO_DPI defined
2023-10-20 02:37:11 -04:00
Wilson Snyder
4cc42133b5
Internals: Rename some parser rules. No functional change.
2023-10-19 20:13:27 -04:00
Wilson Snyder
a773a52559
Cleanup some IEEE references
2023-10-19 19:26:36 -04:00
Wilson Snyder
5af271cf3a
Fix display optimization ignoring side effects ( #4585 ).
2023-10-19 18:33:58 -04:00
Wilson Snyder
0c2bab1f69
Fix method narrowing conversion compiler error ( #4568 ).
2023-10-18 17:51:25 -04:00
Wilson Snyder
b7233d063f
Internals: Fix same() called outside of sameTree ( #4561 ).
2023-10-18 17:36:21 -04:00
Krzysztof Bieganski
8720841c48
Fix to not remap local assign intravals in forks ( #4583 )
2023-10-18 16:49:20 -04:00
Wilson Snyder
263697e491
Commentary ( #4580 )
2023-10-18 08:15:55 -04:00
Wilson Snyder
493f1da266
Fix compile warning on unused member function variable ( #4567 ).
2023-10-18 08:09:54 -04:00
Wilson Snyder
8b44a54bb2
Support Verilated precompiled header compilations ( #4580 )
2023-10-18 08:08:15 -04:00
Wilson Snyder
b5828a7ce9
Fix header order botched by clang-format in recent commit.
2023-10-18 06:37:46 -04:00
Wilson Snyder
51a18225ad
cmake: Fix missing headers
2023-10-18 06:37:38 -04:00
Wilson Snyder
28625451dd
Fix MSVC makefile list (part of previous commit)
2023-10-18 06:07:05 -04:00
Wilson Snyder
3914176bc4
Internals: Remove unused IGNORED to fix MSVC warning. No functional change intended.
2023-10-18 06:06:00 -04:00
Wilson Snyder
13989b965d
Tests: Add --binary with split, to check parallel builds
2023-10-17 23:13:04 -04:00
github action
770cd24f27
Apply 'make format'
2023-10-18 02:50:27 +00:00
Wilson Snyder
431bb1ed16
Support compiling Verilator with gcc/clang precompiled headers ( #4579 )
2023-10-17 22:49:28 -04:00
Ryszard Rozak
3bb9c7ee92
Fix dictionaries with keys of class types ( #4576 )
2023-10-17 17:15:24 +02:00
Ryszard Rozak
45edcbb03e
Fix logical expressions with class objects - caching in v3Const ( #4552 )
2023-10-17 07:38:45 -04:00
Ryszard Rozak
e99fd2892b
Make VNDeleter a member of VNVisitor. No function change. ( #4573 )
2023-10-17 09:26:53 +02:00
Krzysztof Bieganski
99ea16d7fd
Fix dynamic triggers for named events ( #4571 )
2023-10-16 11:06:41 -04:00
Krzysztof Bieganski
bc9ff6d1bf
Fix interface comparison ( #4570 )
2023-10-16 11:05:39 -04:00
Aleksander Kiryk
ad3bcbb1bb
Support disable fork ( #4125 ) ( #4569 )
2023-10-16 14:02:29 +02:00
Yutetsu TAKATSUKASA
25dde58297
Internals: Use VN_AS instead of static_cast. Fix some wrong types. ( #4561 )
2023-10-16 05:17:52 -04:00
Anthony Donlon
bba3487dc4
Internals: Fix hash and comparison function for AstBasicDType ( #4564 )
2023-10-15 15:15:46 -04:00
Anthony Donlon
4fdaa46328
Fix using functions/tasks following class definition inside module ( #4553 )
2023-10-15 13:01:32 -04:00
Anthony Donlon
4427f03b08
Fix error message for invalid parameter overrides ( #4559 )
2023-10-15 12:59:36 -04:00
Yutetsu TAKATSUKASA
4e2c63c8cb
Support concatenation of unpacked arrays ( #4558 )
2023-10-15 12:53:35 -04:00
github action
afecde87d8
Apply 'make format'
2023-10-15 11:00:14 +00:00
Wilson Snyder
c14eae6d56
Add SIDEEFFECT warning on mishandled side effect cases ( #487 partial)
2023-10-15 06:44:35 -04:00
Wilson Snyder
684aba0e90
Fix purity calculation during V3Const simplifying Ast
2023-10-15 06:25:42 -04:00
Wilson Snyder
46f8a659b3
Fix shift to remove operation side effects ( #4563 ).
2023-10-14 22:34:37 -04:00
Wilson Snyder
3940a214d0
Internals: Reorder some shift functions for next commit. No functional change.
2023-10-14 22:23:58 -04:00
Wilson Snyder
411f563cbe
Internals: Remove unneeded pure checks. No functional change.
2023-10-14 22:23:58 -04:00
Wilson Snyder
b5a6b34968
Tests: Remove old hack from before unpacked structs
2023-10-14 22:23:58 -04:00
github action
fa8eaf7355
Apply 'make format'
2023-10-14 19:20:22 +00:00
Wilson Snyder
7eb09c3445
Fix instance arrays connecting to array of structs ( #4557 ).
2023-10-14 15:19:19 -04:00
Varun Koyyalagunta
edfd3d7206
Fix large constant buffer overflow ( #4556 )
2023-10-13 07:08:58 +09:00
Wilson Snyder
d699caf255
Revert fix Verilated Makefile to get CXX etc. from environment ( #4549 ) ( #4554 ).
2023-10-12 04:22:58 -04:00
Wilson Snyder
bd4eede6b4
Commentary: Changes update
2023-10-10 20:43:32 -04:00
Wilson Snyder
1fd8e772b0
Fix loss of warning source content with `line enter (due to earlier commit 472ad90d83).
2023-10-10 20:40:21 -04:00
Anthony Donlon
7ce0bd1181
Fix broken link error for enum references ( #4551 )
2023-10-10 17:55:40 -04:00
Gus Smith
a4b7c39a9a
Fix Verilated Makefile to get CXX etc. from enviorment ( #4549 ) ( #4554 )
2023-10-10 17:53:02 -04:00
Mariusz Glebocki
a5ee8b39ef
Internals: Remove use of V3Width code from V3AstNodes ( #4537 ). No functional change intended.
...
`getCommonClassTypep` and its helper code has been moved to AstNode
class. This is a lot better place for this functionality. Moreover, it
allowed to get rid of the dependency on V3Width from generic AST-related
code.
2023-10-09 17:43:27 -04:00
Ryszard Rozak
5b06c60318
Internals: Change deleteTree to pushDeletep ( #4548 ). No functional change intended.
2023-10-09 09:45:09 -04:00
Wilson Snyder
b306715b4a
Optimize empty expression statements ( #4544 ).
2023-10-09 05:50:31 -04:00
Wilson Snyder
8d99bdac25
Internals: Move afterCommentp to AstNode. No functional change.
2023-10-09 05:03:57 -04:00
github action
e114dfda6d
Apply 'make format'
2023-10-09 08:14:14 +00:00
Wilson Snyder
472ad90d83
Change lint_off to not propagate upwards to files including where the lint_off is.
2023-10-09 04:12:01 -04:00
Wilson Snyder
622f0c047c
Fix reporting `line at wrong spot. Rework some internal fileline parsing functions.
2023-10-08 20:38:45 -04:00
Wilson Snyder
7f38414276
Internals: Rename addIgnoreMatch. No functional change.
2023-10-08 01:02:23 -04:00
Wilson Snyder
1d3d59243c
Fix preprocessor to show `line 2 on resumed file per IEEE.
2023-10-07 14:29:46 -04:00
Wilson Snyder
e2343c03e0
Internals: Create V3WidthCommit from overly fat header. No functional change intended.
2023-10-06 23:18:26 -04:00
Wilson Snyder
0e0df1fb3b
Fix enum functions in localparams ( #3999 ).
2023-10-06 22:38:46 -04:00
Wilson Snyder
800a789f50
Fix inlining of real functions miscasting ( #4543 ).
2023-10-06 21:33:31 -04:00
Wilson Snyder
106664b942
Internals: Fix long lines. No functional change.
2023-10-05 20:07:53 -04:00
Ryszard Rozak
1c738c6b83
Fix object destruction after a copy constructor ( #4540 ) ( #4541 )
2023-10-05 07:21:33 -04:00
Wilson Snyder
25fa1d7c6a
Commentary: Changes update
2023-10-04 20:17:14 -04:00
Wilson Snyder
45162652de
Commentary
2023-10-04 20:13:59 -04:00
Wilson Snyder
537650a2cd
Fix stream of 32 bit ( #4536 ).
2023-10-03 22:10:50 -04:00
Todd Strader
f849073137
Fix non-inlined interface tracing ( #3984 ) ( #4530 )
2023-10-03 19:55:25 -04:00
Ryszard Rozak
a3c154dcd3
Fix this in a constructor ( #4533 )
2023-10-03 14:32:18 +02:00
Ryszard Rozak
1b8228b642
Fix stream operations with operands of struct type ( #4531 ) ( #4532 )
2023-10-03 07:23:20 -04:00
Wilson Snyder
732d03f4e5
Fix conversion of integers in $display %e ( #4528 ).
2023-10-01 13:00:16 -04:00
Wilson Snyder
33787c6add
Internals: Fix number nodep cloning, and assert stays consistent ( #4528 partial)
2023-10-01 12:46:35 -04:00
Ryszard Rozak
44e7d2ebe6
Internals: rename VPurity class and related functions. No functional change ( #4523 )
2023-09-29 12:23:51 +02:00
Wilson Snyder
e49ae663a6
Fix constification of $realtobits, $bitstoreal ( #4522 ).
2023-09-28 22:45:00 -04:00
Wilson Snyder
2385ab8294
Tests: randc now supported
2023-09-26 22:53:25 -04:00
Wilson Snyder
84ccb23098
Fix C++11 compiler constexpr return error
2023-09-26 22:43:17 -04:00
Wilson Snyder
ad343f8260
Add warning on interface instantiation without parens ( #4094 ).
2023-09-26 22:15:48 -04:00
Wilson Snyder
018d766179
Fix clang error ( #4462 )
2023-09-26 21:07:43 -04:00
Justin Thiel
a948be184c
Tests: Add t_interface_localparam_unsup ( #3857 partial) ( #3858 )
2023-09-26 20:35:23 -04:00
Wilson Snyder
72b4a74245
Fix clang error on last commit
2023-09-26 19:58:09 -04:00
Wilson Snyder
36c824d973
Add trace() API even when Verilated without --trace ( #4462 ).
2023-09-26 18:37:50 -04:00
Anthony Donlon
229ce1aecf
Fix handling input file path separator ( #4515 ) ( #4516 )
2023-09-26 15:42:15 -04:00
Anthony Donlon
be45a9b7d5
Style: Update clang-format config to make formatted code consistent between versions. No functional change ( #4520 )
2023-09-26 15:05:57 -04:00
Wilson Snyder
d2c72a7f21
CI: Disable m32 runs
2023-09-25 12:30:25 -04:00
Anthony Donlon
60e9827ffe
Support converting parameters inside modules to localparams ( #4511 )
2023-09-25 11:39:04 -04:00
Wilson Snyder
a9256d4758
CI: Disable m32 runs
2023-09-25 11:28:44 -04:00
Anthony Donlon
750b5be5d3
Remove support for parameterized UDPs ( #4518 )
2023-09-25 10:40:44 -04:00
Mariusz Glebocki
28bd7e5b19
Rework multithreading handling to separate by code units that use/never use it. ( #4228 )
2023-09-24 22:12:23 -04:00
Anthony Donlon
d64c023099
CI: Cancel previous runs for pull requests automatically ( #4512 )
2023-09-23 11:50:05 -04:00
Wilson Snyder
429cb1f7f7
Commentary ( #4517 )
2023-09-23 09:04:35 -04:00
Wilson Snyder
9f75068059
Cleanup some error messages to properly quote
2023-09-23 08:52:50 -04:00
Ryszard Rozak
4636e9cffb
Fix passing arguments by reference ( #3385 partial) ( #4489 )
2023-09-20 07:33:11 -04:00
Wilson Snyder
4b2bf556d8
Tests: Revert UVM upstream ( chipsalliance/uvm-verilator#7 )
2023-09-20 07:32:21 -04:00
Kamil Rakoczy
a16ea94836
Fix detecting local vars in nested forks ( #4493 ) ( #4506 )
2023-09-19 17:32:42 -04:00
Michal Czyz
b9ea249f81
Rewrite usage of annotation options ( #4486 ) ( #4504 )
2023-09-19 09:08:17 -04:00
Wilson Snyder
470f480bc1
Fix -m32 compile issue
2023-09-19 07:23:35 -04:00
Wilson Snyder
24ff3155ae
Support randc ( #4349 ).
2023-09-18 21:17:21 -04:00
Ryszard Rozak
47b3f464a9
Disable conversion of impure logical expressions to bitwise expressions ( #487 partial) ( #4437 )
2023-09-18 09:21:30 -04:00
github action
cd201f8eb8
Apply 'make format'
2023-09-18 01:44:43 +00:00
Wilson Snyder
016278a759
Commentary
2023-09-17 21:43:00 -04:00
Wilson Snyder
b68f101e81
Support preprocessing __LINE__
2023-09-17 19:49:38 -04:00
Wilson Snyder
ab13548018
Support resizing function call inout arguments ( #4467 ).
2023-09-17 18:23:44 -04:00
Wilson Snyder
f507ee56b0
Fix warning in configure sc_main compile. ( #4499 )
2023-09-17 08:01:54 -04:00
Wilson Snyder
761adf1cf0
Internals: Add cloneTreePure to prepare for side effect check.
...
Use cloneTreePure when what is being cloned must be side-effect free.
Use cloneTree when safe to contain side effects (e.g. cloning module).
2023-09-16 22:50:54 -04:00
Wilson Snyder
cd1fe64e6c
devel release
2023-09-16 21:46:01 -04:00
Wilson Snyder
8f43e74288
Update CMakeList version
2023-09-16 20:54:54 -04:00
Wilson Snyder
cef3960a4e
Version bump
2023-09-16 18:36:39 -04:00
Wilson Snyder
783b7ecdab
Fix clang override warning (last commit)
2023-09-16 17:52:02 -04:00
Wilson Snyder
8bd1c63b32
Support function non-constant default arguments ( #4470 ).
2023-09-16 17:37:25 -04:00
Wilson Snyder
e6fb7e970d
Fix recursive display causing segfault ( #4480 ).
2023-09-16 10:10:21 -04:00
Wilson Snyder
891cc0f9b6
Fix t_dist_cppstyle Perl performance issue ( #4085 ).
2023-09-16 09:22:12 -04:00
Wilson Snyder
10fbe74cef
Commentary: Changes update
2023-09-15 23:25:28 -04:00
Wilson Snyder
05d04a3959
Internals: Fix misnamed member. No functional change.
2023-09-15 23:02:34 -04:00
Wilson Snyder
19f7279542
Fix false INFINITELOOP on forever..mailbox.get() ( #4323 ).
2023-09-15 22:05:55 -04:00
Wilson Snyder
aa608472ae
Support recursive function calls ( #3267 ).
2023-09-15 20:46:31 -04:00
Wilson Snyder
26ed2a06a0
Tests: Add UVM test that generates ok with known issues commented out. ( #1538 ) ( #3267 ) ( #4125 ) ( #4323 ) ( #4349 ) ( #4465 ) ( #4467 ) ( #4468 ) ( #4470 ) ( #4493 ) ( #4494 ) ( #4495 ) ( #4496 ) ( #4497 )
2023-09-15 20:26:46 -04:00
Wilson Snyder
07013da13d
Tests: Disabled test ( #4493 )
2023-09-15 19:56:05 -04:00
Wilson Snyder
d840c612d4
Fix IGNOREDRETURN to not warn on void-cast static function calls.
2023-09-15 19:01:11 -04:00
Wilson Snyder
188cf85b3f
Suppress some debug unknown hash/simulate warnings in UVM.
2023-09-15 18:33:02 -04:00
Wilson Snyder
c52ba28dd0
Tests: Fix commentary to unify issue references.
2023-09-15 18:12:11 -04:00
Wilson Snyder
10c1653e72
Fix ZERODLY to not warn on 'wait(0)'.
2023-09-15 08:53:29 -04:00
Wilson Snyder
2fbd41e13b
Tests: Add t_queue_persistence.pl as broken test ( #3385 ) ( #4489 )
2023-09-15 07:59:06 -04:00
Ryszard Rozak
96857c5f95
Fix the error message when the type of ref argument is wrong ( #4490 )
2023-09-15 07:17:24 -04:00
Wilson Snyder
131eb319e0
Tests: Advance UVM through V3LinkDot Param ( #1538 partial)
2023-09-14 20:09:43 -04:00
Wilson Snyder
6e589377f4
Fix reference to extended class in parameterized class ( #4466 ).
2023-09-14 20:07:49 -04:00
Wilson Snyder
2c84b37bf7
Internals: Rename some V3LinkDot variables. No functional change.
2023-09-14 20:06:20 -04:00
Kamil Rakoczy
0d67caff77
Internals: V3Task: refactor common code to connectPort. No functional change intended ( #4488 )
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2023-09-14 07:24:49 -04:00
Anthony Donlon
3dde57d539
Fix lint of case statements with enum and wildcard bits ( #4464 ) ( #4487 )
2023-09-14 07:22:49 -04:00
Kamil Rakoczy
ec2e3ec0e4
Update clang_check_attributes to take into account MT_DISABLED ( #4479 )
2023-09-13 16:32:18 -04:00
Kamil Rakoczy
9fe459c820
Internals: V3LockGuard: Add constructor for adopting already locked mutex. ( #4476 )
2023-09-13 13:52:59 -04:00
Wilson Snyder
823e0723fb
Internals: Remove legacy define. No functional change.
2023-09-13 08:46:51 -04:00
Kamil Rakoczy
8bd6d7c5b1
Internals: Add V3ThreadSafety ( #4477 )
2023-09-13 07:57:48 -04:00
Wilson Snyder
839a8fa4d9
Fix error on enum with VARHIDDEN of cell ( #4482 ).
2023-09-12 17:47:57 -04:00
Krzysztof Boroński
24917a187a
Fix V3CUse, do not consider implementations (.cpp) at all ( #4386 )
2023-09-12 17:59:57 +02:00
Ryszard Rozak
6c6f03cf7c
Fix static cast from a stream type ( #4469 ) ( #4485 )
2023-09-12 11:06:12 -04:00
Kamil Rakoczy and Mariusz Glebocki
5676443139
Internals: Rename and slightly change other threads stopping/resuming methods. ( #4478 )
...
Co-authored-by: Mariusz Glebocki <[email protected] >
2023-09-11 13:43:26 -04:00
Kamil Rakoczy and Mariusz Glebocki
e77d847671
Check whether V3ERROR_NO_GLOBAL_ is not already defined. ( #4475 )
...
Co-authored-by: Mariusz Glebocki <[email protected] >
2023-09-11 09:01:34 -04:00
Kamil Rakoczy and Mariusz Glebocki
0baee84e96
Move dpiTemporaryVarSuffix() to header. ( #4474 )
...
Co-authored-by: Mariusz Glebocki <[email protected] >
2023-09-11 09:01:09 -04:00
Ryszard Rozak
c446cc2596
Internals: Remove unused constructor. No functional change. ( #4473 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-09-11 07:10:33 -04:00
Ryszard Rozak
b66c4153b1
Compute purity of AstCMethodHard ( #4460 )
2023-09-11 13:06:15 +02:00
Wilson Snyder
d72f1b89fc
Internals: Minor internal code coverage cleanups
2023-09-10 18:53:51 -04:00
Wilson Snyder
b5b278d072
Fix fork crash with no init, test for ( #4471 )
2023-09-10 08:53:21 -04:00
Wilson Snyder
cb5466a90b
Tests: UVM passes V3Param stage
2023-09-09 11:54:55 -04:00
Wilson Snyder
4de25369da
Tests: Add t_uvm_all
2023-09-08 22:29:23 -04:00
Wilson Snyder
cdd8953085
Disable Subst when not pure
2023-09-08 21:52:33 -04:00
Wilson Snyder
2f2f0164ff
Internals: Use specific types on some cloneTrees. No functional change.
2023-09-08 21:51:59 -04:00
Kamil Rakoczy
6e977e1024
Generate compile_commands.json using bear ( #4463 )
2023-09-08 17:26:11 -04:00
Krzysztof Boroński
70b11f91b4
Support block_item_declaration in forks ( #4455 )
2023-09-08 16:40:14 +02:00
Wilson Snyder
014301587f
Unsupported instead of syntax error on parameter var initial values
2023-09-08 08:37:17 -04:00
Krzysztof Bieganski
139e93d371
Internals: Reduce the number of typechecks in graphs ( #4398 ). No functional change intended.
2023-09-08 07:35:52 -04:00
Krzysztof Bieganski
fb1fc46b06
Internals: Rework self pointers ( #4396 )
2023-09-08 07:34:35 -04:00
Wilson Snyder
9882ab6c67
Tests: Remove unstable new test
2023-09-08 07:22:52 -04:00
Ryszard Rozak
1a1f919882
Check the output in t_class_method_str_literal.v ( #4459 )
2023-09-08 08:51:54 +02:00
Ryszard Rozak
91227d26bb
Internals: Rename pure to dpiPure. No functional change. ( #4461 )
2023-09-08 08:51:19 +02:00
Wilson Snyder
11b5dae88d
Support let
2023-09-07 21:45:51 -04:00
Wilson Snyder
0c7d485417
Fix error printing internal name()
2023-09-06 21:07:06 -04:00
Ryszard Rozak
c40e34b134
Support assignments of stream expressions on queues to packed values ( #4458 )
2023-09-06 15:25:48 +02:00
Wilson Snyder
6cdf8da3f7
Fix documentation line wrap ( #4456 )
2023-09-05 07:25:33 -04:00
Wilson Snyder
c65265477f
Tests: Enable cover named property
2023-09-03 21:02:42 -04:00
Wilson Snyder
de77f1ee5c
Improve error that assert-under-assert is unsupported
2023-09-03 09:08:43 -04:00
Wilson Snyder
c8c980c49d
Fix mis-warning on #() in classes' own functions.
2023-09-02 08:33:56 -04:00
Wilson Snyder
ad329612fd
Internals: Remove unnecessary cloneTree.
2023-09-01 20:13:20 -04:00
Wilson Snyder
c324895cbc
Internals: Remove unnecessary cloneTree.
2023-09-01 19:49:57 -04:00
Wilson Snyder
679a4314dc
Tests: Avoid side effect on array index
2023-09-01 19:26:50 -04:00
Wilson Snyder
36932d31c4
Fix C++11 missing C++14's std::make_unique.
2023-09-01 18:07:15 -04:00
Wilson Snyder
ed25aaaad9
Internals: Fix g++ std11 warning. No functional change.
2023-09-01 17:59:30 -04:00
Wilson Snyder
147aa41ba5
Internals: Fix virt call in constructor warning. No functional change.
2023-09-01 17:58:17 -04:00
Ryszard Rozak
5b7e32581b
Internals: Cleanup V3Task. No function change intended. ( #4454 )
2023-09-01 08:03:16 -04:00
Wilson Snyder
2f90fb2bec
Set lifetime for repeat variable ( #4451 partial)
2023-08-31 18:34:37 -04:00
Wilson Snyder
8c480fd39e
Internals: Fix cppcheck warnings
2023-08-31 18:29:58 -04:00
Krzysztof Bieganski
ffbbd438ae
Internals: Use runtime type info instead of dynamic_cast for faster graph type checks ( #4397 )
2023-08-31 18:00:53 -04:00
Anthony Donlon
96ee81fa3f
Fix unstable output of VHashSha256 ( #4453 )
2023-08-31 13:42:37 -04:00
Wilson Snyder
3d2399ea0f
Tests: Enable fixed-earlier ( #2314 )
2023-08-30 18:10:30 -04:00
Wilson Snyder
6d5dde8645
Fix duplicate Vfork functions ( #4418 )
2023-08-30 17:59:25 -04:00
Wilson Snyder
048c9f3fe2
Support extra commas before $display
2023-08-30 17:31:11 -04:00
Wilson Snyder
373265752f
Fix display %x formatting of real.
2023-08-30 17:21:33 -04:00
Wilson Snyder
5e6519c1b0
Commentary
2023-08-30 07:46:39 -04:00
Wilson Snyder
ccdb52c1d9
Fix lifetime unknown error on enum.name ( #4448 ).
2023-08-30 07:20:25 -04:00
Yinan Xu
b4b74d72f0
Add prepareClone and atClone APIs for Verilated models ( #3503 ) ( #4444 )
...
This API is used if the user copies the process using `fork`
and similar OS-level mechanisms. The `at_clone` member function
ensures that all model-allocated resources are re-allocated, such
that the copied child process/model can simulate correctly.
A typical allocated resource is the thread pool, which every model
has its own pool.
2023-08-30 07:02:55 -04:00
Wilson Snyder
ca6ab584d0
Internals: Remove cloneTreeNull. No functional change intended.
2023-08-29 20:29:11 -04:00
github action
799a502cac
Apply 'make format'
2023-08-29 23:56:25 +00:00
Ethan Sifferman
8d1570db28
Add check for conflicting options e.g. binary+lintonly ( #4409 )
2023-08-29 19:55:37 -04:00
Wilson Snyder
2a30bbe493
Fix internal error on real conversion ( #4447 ).
2023-08-29 18:07:23 -04:00
Anthony Donlon
cf6566b9bc
Internal: Optimize program size by refactoring error reporting routines ( #4446 )
2023-08-29 16:54:32 -04:00
Krzysztof Boroński
c3e19f2821
Move variables mutated under fork..join_none/join_any blocks into anonymous objects ( #4356 )
2023-08-29 20:01:00 +02:00
Ryszard Rozak
e24197fd16
Don't move function calls before the expression ( #4413 )
2023-08-28 15:44:41 +02:00
Anthony Donlon
63db60f646
Fix using type in parameterized classes without #() ( #4281 ) ( #4440 )
...
* Check whether a class is parameterized or not with AstClass::isParameterized method
* Fix usage conflict of user2 pointer in V3Param.cpp
2023-08-26 12:06:26 -01:00
Wilson Snyder
e66b28823d
Internals: Cleanup some spacing. No functional change.
2023-08-26 05:59:56 -04:00
Wilson Snyder
77bd565ef6
Commentary: Changes update
2023-08-25 08:28:26 -04:00
Wilson Snyder
00d63883f8
Fix false MULTITOP on bound interfaces ( #4438 ).
2023-08-25 08:21:15 -04:00
Wilson Snyder
10dd675371
Fix false UNUSEDPARAM on generate localparam ( #4427 ).
2023-08-25 07:59:29 -04:00
Ryszard Rozak
2daa32b98b
Support assignments of packed values to stream expressions on queues ( #4401 )
2023-08-25 11:24:12 +02:00
Ryszard Rozak
e8e7912871
Tests: Fix t_net_delay test ( #4436 )
2023-08-23 13:27:17 -01:00
Ryszard Rozak
90079c2974
Fix nested assignments on the LHS ( #4435 )
2023-08-23 12:08:22 +02:00
Wilson Snyder
967a8530dd
Fix errors on some $past cases ( #4425 )
2023-08-22 01:49:06 -04:00
Krzysztof Boroński
ef4794e36d
Support parenthesesless calls to static methods ( #4432 )
2023-08-22 06:06:34 +01:00
Aleksander Kiryk
7c7c92d2dd
Fix coroutine handle movement during queue manipulation ( #4431 )
2023-08-21 10:22:09 -04:00
Wilson Snyder
95f3dd0535
Commentary ( #4429 )
2023-08-21 06:23:35 -04:00
Anthony Donlon
768b78e7d0
Fix checking for parameter and port connections in the wrong place ( #4428 )
2023-08-20 08:55:16 -04:00
Aleksander Kiryk
4370254e73
Fix ++/-- under statements ( #4399 )
2023-08-19 07:03:21 -04:00
Wilson Snyder
436f72582b
Update GTKWave from upstream.
2023-08-19 06:57:43 -04:00
Wilson Snyder
af3aba7821
Commentary: Changes update
2023-08-19 04:56:49 -04:00
github action
7479db6ffc
Apply 'make format'
2023-08-19 08:52:38 +00:00
Frans Skarman
e9cc2786b7
Add --no-trace-top option ( #4422 )
2023-08-19 04:51:29 -04:00
Anthony Donlon
cbdee5a804
Fix Windows filename format, etc. ( #3873 ) ( #4421 )
...
* Ignore CLion project files and CMake outputs
* Supporting stripping file path that contains backslash
* Set /bigobj flag and increase stack size for windows platform
* Fix MSVC warnings
2023-08-16 07:34:57 -04:00
Anthony Donlon
0f66262fa1
Internals: Refactor AstNode::checkTreeIter for better stack size ( #4420 )
2023-08-16 07:32:39 -04:00
Jose Loyola
6c80457262
CI: Refactor docker build action to define DOCKER_HUB_NAMESPACE as repo variable ( #4419 )
2023-08-15 06:45:07 +02:00
Wilson Snyder
16008acdf1
Internals: Add disabled duplicate function check ( #4418 )
2023-08-12 10:51:35 -04:00
Wilson Snyder
5447ed2629
Fix multple function definitions in V3Sched ( #4416 ).
2023-08-12 10:41:44 -04:00
Wilson Snyder
9eba61018a
Tests: Ignore debug message in error line
2023-08-12 09:39:02 -04:00
Wilson Snyder
bc97319402
Internals: State commentary. No functional change.
2023-08-12 08:55:08 -04:00
Wilson Snyder
709db5c648
Internals: Avoid unordered_set
2023-08-12 08:46:25 -04:00
Krzysztof Boroński
b752faa107
Fix jumping over object initialization ( #4411 )
2023-08-11 18:28:37 +02:00
Krzysztof Boroński
8d512c3187
Fix variable lifetimes in extern methods ( #4414 )
2023-08-11 16:52:59 +02:00
Ryszard Rozak
2d9bc73709
Fix dtype of condition operation on class objects ( #4345 ) ( #4352 )
2023-08-07 05:54:30 -04:00
Ryszard Rozak
b0942ed8c7
Fix detection of mixed blocking and nonblocking assignment in nested assignments ( #4404 )
2023-08-07 11:35:44 +02:00
Wilson Snyder
b1c1aa53a9
devel release
2023-08-06 10:53:16 -04:00
Wilson Snyder
f79749e7b2
Version bump
2023-08-06 10:39:35 -04:00
Krzysztof Bieganski
1a77030c9b
Internals: Speedup to only typecheck node child getters in debug builds ( #4394 )
2023-08-05 03:24:00 -04:00
Wilson Snyder
817ade27fb
Commentary: Changes update
2023-08-05 03:18:00 -04:00
Aleksander Kiryk
4afa14b612
Internals: Remove m_pkgp and m_classp from WidthVisitor ( #4402 )
2023-08-05 03:07:23 -04:00
Krzysztof Bieganski
9caa79a7ea
Internals: Remove the name field from AstVarRef ( #4395 )
2023-08-03 02:52:52 -04:00
Wilson Snyder
446f21d2a0
Tests: Fix more missing internal code coverage
2023-07-27 06:53:43 -04:00
Wilson Snyder
06521f6cf1
Tests: Fix some missing coverage, and cleanup some error messages
2023-07-27 06:53:43 -04:00
github action
75336670d7
Apply 'make format'
2023-07-27 09:44:05 +00:00
Andrew Miloradovsky
106a9fe67f
Fix config_build.h issues ( #4380 ) ( #4381 )
2023-07-27 05:42:35 -04:00
Wilson Snyder
a5eccc199b
Commentary: Changes update
2023-07-27 04:01:28 -04:00
Vito Gamberini
837d9f9d77
Require CMake config minimum version 3.13 ( #4389 ) ( #4390 )
2023-07-26 17:54:18 -04:00
Anthony Donlon
959387b69f
Support property declaration with empty parentheses ( #4313 ) ( #4317 )
2023-07-26 05:18:21 -04:00
Ryszard Rozak
fd0703b8c8
Fix selects on unpacked structs ( #4359 )
2023-07-25 12:50:24 +02:00
Ryszard Rozak
3ff608b9cb
Fix non-public methods with wide output ( #4364 )
2023-07-25 04:55:58 -04:00
Aleksander Kiryk
edc0a0e982
Optimize V3Number::opAdd ( #4385 )
2023-07-24 17:09:27 -04:00
Aleksander Kiryk
1549ff9185
Support more types in wait ( #4374 )
2023-07-24 08:14:01 -04:00
Wilson Snyder
3454641244
Commentary: Add website badge
2023-07-21 04:11:15 -04:00
Wilson Snyder
5dedf25e3b
Commentary: Add website badge
2023-07-21 04:07:29 -04:00
Wilson Snyder
7214c180ae
Commentary: Add website badge
2023-07-21 04:06:22 -04:00
Ryszard Rozak
aa0ef554b3
Fix order of evaluation of function calls in statements ( #4375 )
2023-07-21 03:29:11 -04:00
Ryszard Rozak
a6015863d8
Support for static method calls as default values of function arguments ( #4378 )
2023-07-21 03:27:00 -04:00
Aleksander Kiryk
5a694ccb8a
Fix assign to input var in methods ( #4367 )
2023-07-17 09:52:37 -04:00
Aleksander Kiryk
f7d09c671a
Fix VlProcess not found ( #4368 )
2023-07-17 09:52:07 -04:00
Ryszard Rozak
4de1b22672
Fix handling of super.new calls ( #4366 )
2023-07-17 13:30:42 +02:00
Krzysztof Boroński
4bdda3f240
Improve propagation of process requirement and decouple it from suspendability ( #4321 )
2023-07-14 17:12:02 +02:00
Ryszard Rozak
ced1dfeffd
Fix select operation on assoc array with wide keys ( #4360 )
2023-07-12 18:48:24 +02:00
Krzysztof Boroński
0774f825cf
Internals: Use pointer to const nodes in V3MemberMap ( #4353 )
2023-07-12 11:36:24 -04:00
Ryszard Rozak
23fe5c1b93
Fix string concatenations ( #4354 )
2023-07-10 12:58:54 -04:00
Wilson Snyder
bd4afeea69
Tests: Fix removing line numbers ( #4352 )
2023-07-10 08:17:49 -04:00
Julian Daube
3ee9b33f8a
Fix cmake astgen for Rocky Linux 8.7 ( #4343 )
2023-07-09 06:02:21 +05:00
Wilson Snyder
5be0813893
Explicity reference std:: in header files ( #4338 ). No functional change intended.
2023-07-08 13:20:40 -04:00
Wilson Snyder
f94c1b32e5
Internals: Make V3MemberMap to remove member cache ( #4350 )
2023-07-08 12:40:27 -04:00
Wilson Snyder
ff4923cf67
Internals: Make V3MemberMap towards removing member cache ( #4350 )
2023-07-08 12:27:50 -04:00
Krzysztof Bieganski
5788bc8048
Propagate class timescale to class package ( #4348 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-07-07 17:27:33 +02:00
Wilson Snyder and Ahmed El-Mahmoudy
5749662194
Documentation: Drop analytics_id unless VERILATOR_ANALYTICS_ID set ( #4333 )
...
Co-authored-by: Ahmed El-Mahmoudy <[email protected] >
2023-07-07 10:44:33 -04:00
Krzysztof Bieganski
d5d1cc47e0
Fix multiple edge timing controls in class methods ( #4318 ) ( #4320 ) ( #4344 )
...
Multiple edge timing controls in class methods would cause compilation errors on
the generated C++ code. This is because the `SenExprBuilder` used for these
would get recreated per timing control, resulting in duplicate variable names.
The fix is to have a single `SenExprBuilder` per scope.
2023-07-07 08:19:49 -04:00
Ryszard Rozak
da043ca16d
Fix comparison of class objects ( #4346 )
2023-07-07 16:20:23 +05:00
Aleksander Kiryk
9aa90569bf
Support string replication with variable ( #4341 )
2023-07-07 13:05:06 +05:00
Wilson Snyder
294d78e0e2
Backout unstable dbb35ab8 ( #4318 ) ( #4320 )
2023-07-05 14:26:28 -04:00
Wilson Snyder
8182c3fe2c
Tests: Fix t_vpi_unimpl exiting early with missed error
2023-07-05 14:12:22 -04:00
Wilson Snyder
6f7bc38088
Tests: Improve specparam verilog.y coverage
2023-07-05 14:11:55 -04:00
Wilson Snyder
dcbc0ccfdc
Commentary: Revert lost name.
2023-07-05 13:55:47 -04:00
Aleksander Kiryk
399319dc1c
Fix wildcard referring types ( #4336 ) ( #4342 )
2023-07-05 13:08:00 -04:00
Krzysztof Bieganski
35d6da391b
Fix multiple edge timing controls in class methods ( #4318 ) ( #4320 )
...
Multiple edge timing controls in class methods would cause compilation errors on the generated C++ code. This is because the `SenExprBuilder` used for these would get recreated per timing control, resulting in duplicate variable names. The fix is to have a single `SenExprBuilder` per scope.
2023-07-05 10:36:10 +00:00
Aleksander Kiryk
fcbd7c87af
Fix unexpected RefDType on assoc arrays ( #4337 )
2023-07-04 18:13:22 +05:00
Ryszard Rozak
97feba6898
Support locator methods with "with" on assoc arrays ( #4335 )
2023-07-04 18:11:15 +05:00
Aleksander Kiryk
9249ffdb84
Fix queue slicing ( #4329 )
2023-07-03 13:55:24 -04:00
أحمد المحمودي
71df9e3381
Commentary: Fix typo of concurrent ( #4332 )
2023-07-02 16:12:09 -04:00
Wilson Snyder
3c964147be
Add MISINDENT lint warning for misleading indentation.
2023-07-01 10:45:25 -04:00
Wilson Snyder
54b4b6b378
Internals: Fix missing calls to cleanFileline.
2023-07-01 08:59:26 -04:00
Wilson Snyder
cff37f0775
Add GENUNNAMED lint warning.
...
Also fix generate-for blocks with empty statements getting lost.
2023-07-01 08:31:53 -04:00
Wilson Snyder
8b1cc3b303
Commentary: Changes update
2023-07-01 07:35:58 -04:00
Mariusz Glebocki
65b6121186
Revert .gdbinit modified by accident. ( #4330 )
...
`test_regress/.gdbinit` has been modified in
d42f9c095b most likely by accident.
Restore its previous content.
2023-06-30 16:57:31 -04:00
Ryszard Rozak
3d30527860
Fix unique..with method on queues of class objects ( #4328 )
2023-06-30 17:04:09 +02:00
Ryszard Rozak
24a9f7c650
Fix references to members of results of static methods ( #4327 )
2023-06-30 13:23:34 +02:00
Ryszard Rozak
242f661644
Fix selects of static members ( #4326 )
2023-06-30 09:12:22 +02:00
Aleksander Kiryk
32019d2bc4
Fix state update for always processes ( #4311 )
2023-06-29 09:21:49 -04:00
Krzysztof Boroński
b252bb048f
Fix unhandled overloads in V3InstrCount ( #4324 )
2023-06-28 08:49:56 -04:00
Ryszard Rozak
ba47c01a01
Fix implicit calls of base class constructors with optional arguments ( #4319 )
2023-06-27 16:08:38 +02:00
Ryszard Rozak
51266898ec
Fix comparison of string parameters ( #4308 )
2023-06-27 10:40:45 +02:00
Wilson Snyder
f9164ab0d2
Internals: Assert dtype comparison. No functional change intended.
2023-06-25 07:40:00 -04:00
Wilson Snyder
c43e707f43
Internals: refactor sameTreeIter. No functional change.
2023-06-25 07:26:45 -04:00
Mariusz Glebocki
85b7f828b3
Internals: Use std::packaged_task as a job wrapper; add and use V3ThreadPool::ScopedExclusiveAccess ( #4310 ).
...
* Add VL_ASSERT_CAPABILITY; add assumeLocked and pretendUnlock to V3Mutex.
* Pass jobs as template-arguments and use std::packaged_task.
* Add and use V3ThreadPool::ScopedExclusiveAccess.
2023-06-23 18:25:12 -04:00
Wilson Snyder
7005a65d32
Tests: Attempt 20.04 fix for (#b1aec9b) ( #4307 )
2023-06-23 07:09:07 -04:00
Wilson Snyder
776d4e6ac2
CI: Build 20.04 on pull requests
2023-06-23 07:08:04 -04:00
Jiamin Zhu
1c88c3083c
Fix splitting coroutines ( #4297 ) ( #4307 )
2023-06-23 06:01:38 -04:00
Ryszard Rozak
4522834f7a
Fix duplicate fork names ( #4295 )
2023-06-22 06:51:53 -04:00
Ryszard Rozak
9ee5fd0585
Fix handling of ref types in initial values of type parameters ( #4304 )
2023-06-20 14:10:07 -04:00
Wilson Snyder
63b2dbb827
Fix error when multiple duplicate DPI exports ( #4301 ).
2023-06-20 06:26:46 -04:00
Wilson Snyder
5bee8ef15b
Remove long deprecated verilated_heavy.h
2023-06-17 08:45:13 -04:00
Wilson Snyder
e7de3d368f
Commentary: Deprecation planned for 32-bit pointer -m32 mode ( #4268 ).
2023-06-17 08:44:13 -04:00
Wilson Snyder
d45deccc0a
Internals: Favot std::array. No functional change intended.
2023-06-16 19:44:40 -04:00
Wilson Snyder
d5b03ab721
Tests ( #3806 ) ( #3807 )
2023-06-16 18:30:25 -04:00
Ryszard Rozak
d1ff81a41c
Fix class reference assignment checking ( #4296 )
2023-06-15 14:00:47 +02:00
Krzysztof Bieganski
43fa6858f6
Fix VlForkSync redeclaration ( #4277 )
...
Given nested forks, if the inner fork had a `join` or `join_any` at the end,
`V3Sched::transformForks()` would decide that the fork's `VlForkSync` variable
should be passed in from the outside. This resulted in the `VlForkSync` getting
redeclared as a function argument. Ultimately, it led to C++ compilation errors
due to variable redeclaration.
Fixed by rearranging the `if`s that decide whether a variable should be passed
in or left as-is.
2023-06-15 07:49:50 -04:00
Wilson Snyder
db7eb45433
Contributors: Add Krzysztof Boronski and re-sort
2023-06-14 18:53:44 -04:00
Krzysztof Boronski
21c01ba97b
V3Fork - transform processes that can outlive their parents into separate tasks ( #4253 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-06-14 20:44:53 +02:00
Ryszard Rozak
b517fb5ee3
Support some stream operations on queues ( #4292 )
2023-06-13 22:46:42 -04:00
Wilson Snyder
9dbc669199
devel release
2023-06-13 19:39:50 -04:00
Wilson Snyder
7d2d32420a
Version bump
2023-06-13 19:31:57 -04:00
Wilson Snyder
48e98ea2bd
Internals: Sort some error codes ( #4253 ). No functional change intended.
2023-06-13 08:52:13 -04:00
Wilson Snyder
01d0f0327b
Commentary ( #4254 )
2023-06-13 08:22:57 -04:00
Wilson Snyder
0dc887720d
Tests: Fix tests, broke in commit 3a9eeabd
2023-06-12 22:38:45 -04:00
Wilson Snyder
e08bbcdb07
Commentary
2023-06-12 21:59:52 -04:00
Wilson Snyder
70d26ec123
Commentary ( #4211 ) ( #4254 )
2023-06-12 21:59:33 -04:00
Wilson Snyder
a06f260f42
Fix C++11 compiler error with C++14 rbegin
2023-06-12 21:46:32 -04:00
Wilson Snyder
d42f76c346
Tests: Fix tests, broke in commit 3a9eeabd
2023-06-12 21:36:23 -04:00
Wilson Snyder
66c3d6d2d1
Commentary
2023-06-12 20:52:29 -04:00
Wilson Snyder
81affad2dc
Tests: Fix test, broke in previous commit
2023-06-12 20:41:33 -04:00
Wilson Snyder
2488af9066
Commentary: Changes update
2023-06-12 20:38:33 -04:00
Wilson Snyder
5cf9d78516
Commentary
2023-06-12 20:28:32 -04:00
Wilson Snyder
3a9eeabdb2
Tests: Auto detect and exit --timing with no coroutines
2023-06-12 20:09:12 -04:00
Julien Margetts
ac4315e145
Fix LATCH warning on function local variables ( #4221 ) ( #4284 )
2023-06-12 09:24:46 -04:00
John Wehle
5094e94df1
Fix tracing undefined alignment ( #4201 ) ( #4288 )
2023-06-12 07:13:00 -04:00
Àlex Torregrosa
4b7b185d05
Fix VCD scope types ( #4227 ) ( #4282 )
2023-06-08 11:43:04 -04:00
Aleksander Kiryk
6cb0335d28
Support array max ( #4275 )
2023-06-07 07:44:21 -04:00
Aleksander Kiryk
c248318958
Fix struct redefinition ( #4276 )
2023-06-06 18:28:35 -04:00
Ryszard Rozak
c3e5db5f04
Fix names of foreach blocks ( #4264 )
2023-06-06 16:24:42 +02:00
Krzysztof Bieganski
058233fc87
Set the global usesTiming flag if forks exist ( #4274 )
2023-06-06 09:35:12 -04:00
Mariusz Glebocki
186c851695
Internals: Avoid pessimistic mutex locking in waitIfStopRequested() ( #4272 ). No functional change intended.
...
`stopRequested()` reads only atomic variables. It doesn't need a mutex
to do this.
This function is called in `waitIfStopRequested()`, which in turn
is called before execution of every job, and inside some jobs. With this
change the mutex inside `waitIfStopRequested` needs to be locked only in
very rare cases instead of every time.
2023-06-05 19:40:36 -04:00
Mariusz Glebocki
5aa36357f6
Internals: Use auto instead of SFINAE in return type ( #4271 ). No functional change intended.
2023-06-05 18:53:19 -04:00
Wilson Snyder
191d30cf1c
Update gtkwave from upstream ( #4141 )
2023-06-03 12:10:07 -04:00
Andrei Kostovski
d8c2ecaaf8
Commentary: Update install.rst for help2man ( #4260 ) ( #4261 )
2023-06-03 10:31:17 -04:00
github action
a7b0551d23
Apply 'make format'
2023-06-03 14:11:23 +00:00
John Wehle
dc34968fe7
Add class specific same methods for AstVarScope, AstVar, and AstScope ( #4203 ) ( #4250 )
2023-06-03 10:07:39 -04:00
Jiamin Zhu
45f064f7cb
Fix missing assignment for wide class members. ( #4267 )
2023-06-03 06:40:23 -07:00
Krzysztof Boroński
545caba720
Give iterated variables in foreach loops VAUTOM lifetimes ( #4265 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-06-02 17:16:42 +02:00
Krzysztof Boroński
0e24f36fef
Use STATIC lifetime for variables created from clocking items ( #4262 )
...
Signed-off-by: Krzysztof Boronski <[email protected] >
2023-06-01 17:49:27 +02:00
Aleksander Kiryk
db7935faf3
Add std::process class ( #4212 )
2023-06-01 10:02:08 -04:00
Adrien Le Masle
9cc218db3e
Fix incorrect multi-driven lint warning ( #4231 ) ( #4248 )
2023-06-01 08:43:17 -04:00
Ryszard Rozak
15f8ebc562
Fix static methods with prototypes ( #4220 )
2023-05-31 21:18:32 -04:00
github action
205cae963b
Apply 'make format'
2023-05-31 16:03:33 +00:00
Don Williamson
df2746de71
Add --main-top-name option for C main TOP name ( #4235 ) ( #4249 )
2023-05-31 09:02:26 -07:00
Risto Pejašinović
7f471d862e
Fix operator == for unpacked struct, if elements are VlUnpacked arrays ( #4247 )
2023-05-31 08:34:34 -04:00
Risto Pejašinović
338acabe2b
Fix AstStructSel clean when data type is structure ( #4241 ) ( #4244 )
2023-05-30 23:44:48 -04:00
Ryszard Rozak
4f1f487ae4
Fix function calls in with statements ( #4245 )
2023-05-30 09:02:59 -04:00
Krzysztof Bieganski
77502aeb97
Add warning that timing controls in DPI exports are unsupported ( #4238 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-05-30 09:00:10 -04:00
Ryszard Rozak
ba82d43ca1
Support for condition operator on class objects ( #4214 )
2023-05-30 08:59:00 -04:00
Wilson Snyder
e9135598b3
Fix method calls on function return values.
2023-05-29 18:51:27 -04:00
Risto Pejašinović
1c0739db10
Fix unpacked struct == and != operators ( #4234 ) ( #4240 )
2023-05-29 12:08:39 -04:00
Ryszard Rozak
dfd3907787
Mark AstMemberSel as clean ( #4236 )
2023-05-29 09:35:53 +02:00
Wilson Snyder
1069652701
Fix some AstExprStmt handling issues, towards side effect fixes.
2023-05-27 12:43:40 -04:00
Wilson Snyder
70b82f1aec
Internals: V3Dead cleanups. No functional change.
2023-05-27 11:46:25 -04:00
Wilson Snyder
5573bdb219
Internals: Cleanup V3SplitAs VL_RESTORED. No functional change intended.
2023-05-27 10:43:04 -04:00
Wilson Snyder
cf68578261
Internals: Cleanup V3SplitAs VL_RESTORED. No functional change intended.
2023-05-27 10:17:51 -04:00
Wilson Snyder
f407d442d4
Commentary
2023-05-27 09:43:23 -04:00
Wilson Snyder
7f12ad9d91
Commentary: Changes update
2023-05-27 07:17:37 -04:00
Wilson Snyder
5efe9367d2
Fix SystemC signal copy macro use ( #4135 ).
2023-05-27 07:00:26 -04:00
Wilson Snyder
cfce92645f
Tests: Check equality of complex types.
2023-05-26 18:01:11 -04:00
Krzysztof Bieganski
519792d02b
Fix to commit coroutines immediately on wait statements ( #4229 )
...
Event-triggered coroutines live in two stages: 'uncommitted' and 'ready'. First
they land in 'uncommitted', meaning they can't be resumed yet. Only after
coroutines from the 'ready' queue are resumed, the 'uncommitted' ones are moved
to the 'ready' queue, and can be resumed. This is to avoid self-triggering in
situations like waiting for an event immediately after triggering it.
However, there is an issue with `wait` statements. If you have a `wait(b)`, it's
being translated into a loop that awaits a change in `b` as long as `b` is
false. If `b` is false at first, the coroutine is put into the `uncommitted`
queue. If `b` is set to true before it's committed, the coroutine won't get
resumed.
This patch fixes that by immediately committing event controls created from
`wait` statements. That means the coroutine from the example above will get
resumed from now on.
2023-05-25 20:20:44 -04:00
Jiamin Zhu
bfa1f2d7ce
Fix missing assignment for wide unpacked structs ( #4233 )
2023-05-25 20:13:02 -04:00
Aleksander Kiryk
42beaf467c
Tests: Add incomplete type definition test ( #4230 )
2023-05-25 14:06:37 -04:00
Mariusz Glebocki
8303938d0e
Internals: Make mutex classes uncopyable. ( #4223 )
2023-05-25 07:35:14 -04:00
Mariusz Glebocki
0ece155418
Internals: Move some includes to .cpp files. ( #4224 )
2023-05-24 18:53:14 -04:00
Ryszard Rozak
4f7e155e59
Fix class parameters of enum types ( #4219 )
2023-05-24 15:51:03 +02:00
Wilson Snyder
ff324625e4
CI: Disable m32 on g++
2023-05-23 23:04:24 -04:00
Wilson Snyder
fd7515b046
Tests: Cleanup scenarios lines. No test run change.
2023-05-23 22:40:19 -04:00
Wilson Snyder
607f853bc7
CI: Disable m32 on g++
2023-05-23 22:35:07 -04:00
Wilson Snyder
09fb1174f1
CI: Disable m32 on g++
2023-05-23 22:34:27 -04:00
Wilson Snyder
542eaab3dd
CI: Disable m32 on g++
2023-05-23 22:28:40 -04:00
Wilson Snyder
a301a498f5
CI: Disable m32 on g++
2023-05-23 22:27:10 -04:00
Wilson Snyder
d66e749ec8
CI: Fix mold build
2023-05-23 22:25:03 -04:00
Wilson Snyder
c8ca54ea31
CI: Disable m32 on g++
2023-05-23 22:24:47 -04:00
Wilson Snyder
5704552053
Fix ci for mold
2023-05-23 21:30:39 -04:00
Wilson Snyder
426069a4dd
Configure for faster C++ linking using 'mold', if it is installed.
2023-05-23 21:26:29 -04:00
Wilson Snyder
19d0aabe7a
Internals: Fix extra cast on ExprStmt.
2023-05-23 20:52:30 -04:00
Krzysztof Boroński
fb0d735f68
Tests: Skip t_suspendable_deep if coroutines are not supported by CXX toolchain ( #4217 )
2023-05-23 14:02:40 -04:00
Krzysztof Boroński
167a30be1c
Fix deep traversal of class inheritance timing ( #4216 )
2023-05-23 09:01:57 -04:00
Wilson Snyder
5982528274
Fix duplicate std:: declaration with -I ( #4215 ).
2023-05-22 20:32:20 -04:00
Krzysztof Boroński
de3095e3b4
Fix missing class forward declarations ( #4151 )
2023-05-22 08:29:01 -04:00
Wilson Snyder
8e0682f442
Fix V3Expand ignoring side effects
2023-05-21 21:02:39 -04:00
Wilson Snyder
140994d2c4
Internals: Cleanup more VL_RESTORER. No functional change intended.
2023-05-21 14:06:39 -04:00
Wilson Snyder
950e29d56e
Internals: Cleanup some missing VL_RESTORER in V3Gate. No functional change intended.
2023-05-21 12:49:07 -04:00
Wilson Snyder
65667356b6
wip
2023-05-21 12:24:00 -04:00
Wilson Snyder
6b393e9d7c
Internals: Allow statement-in-statement recursion in V3Premit
2023-05-21 12:03:13 -04:00
Wilson Snyder
4818130e4f
Internals: Remove dead code, addBeforeStmt
2023-05-20 22:37:28 -04:00
Ryszard Rozak
9da3aacd08
Fix bit selections under parameterized classes ( #4210 )
2023-05-18 20:01:36 -04:00
Krzysztof Bieganski
729f8b9334
Move suspendable detection to a separate visitor ( #4208 )
...
This makes the implementation of the detection and propagation of the
suspendable property simpler and easier to read. More importantly, there are no
more jumps around the AST with the `visit` functions, which in some cases could
result in incorrect visitor context while in the `visit` function. See the added
test, which would cause Verilator to segfault before this patch.
In testing, verilation performance was not shown to be affected by this change.
Though there is a slight performance improvement from this patch, due to adding
one more check before refreshing class member cache.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-05-17 17:09:33 +00:00
Ryszard Rozak
279216048b
Fix dotted references in parameterized classes ( #4206 )
2023-05-16 07:40:02 -04:00
Ryszard Rozak
2ce7a348df
Fix references to members of parameterized base classes ( #4196 )
2023-05-15 19:50:04 -04:00
Wilson Snyder
46f719ceaa
Tests: Fix some coverage holes
2023-05-13 20:15:03 -04:00
Mariusz Glebocki
949be301de
Internals: Fix unbalanced V3LockGuard locking ( #4193 )
2023-05-13 10:32:33 -04:00
Mariusz Glebocki
be429a5800
Internals: Lock the same mutex reference as specified in VL_ACQUIRE. ( #4194 )
2023-05-13 10:28:34 -04:00
Mariusz Glebocki
e7714e0902
Internals: Add additional clang's thread safety analysis annotations ( #4195 )
...
* Simplify some Clang-specific attribute defines.
* Add `VL_RETURN_CAPABILITY` and `VL_PT_GUARDED_BY`.
2023-05-12 09:06:36 -04:00
Krzysztof Bieganski
4835ed6967
Fix forced assignments that override non-continuous assignments ( #4183 ) ( #4192 )
...
Only assign forced value on release if it was forced in the first place.
2023-05-12 06:57:12 -04:00
Ryszard Rozak
0198a3fc52
Use unchanged copy of parameterized class for instantation ( #4179 )
2023-05-11 09:56:15 +02:00
Krzysztof Boroński
e095bf1af0
Support inside expressions with strings and doubles ( #4138 ) ( #4139 )
2023-05-10 20:36:41 -04:00
Aylon Chaim Porat
d5de67c6dc
Fix wide structure VL_TOSTRING_W generation ( #4188 ) ( #4189 )
...
* V3Common.cpp::makeVlToString: fix `VL_TOSTRING_W` statement generation to include width argument
* fix contribution name
* add testcase for long struct `VL_TO_STRING_W` bug
2023-05-10 20:34:44 -04:00
Ryszard Rozak
2267db093f
Fix hashes of instances of parameterized classes ( #4182 )
2023-05-10 18:34:29 -04:00
Ryszard Rozak
5aecfa98a1
Internals: Add param value string to hash in V3Param.cpp ( #4186 )
2023-05-10 17:52:17 -04:00
Wilson Snyder
485e230dd8
Commentary ( #4187 )
2023-05-10 17:51:22 -04:00
Wilson Snyder
befb415f27
Fix mod/div/round argument side effects
2023-05-07 22:31:31 -04:00
Wilson Snyder
c0490627bf
Tests: Update historical
2023-05-07 22:00:52 -04:00
Wilson Snyder
d269fbb446
Add creating __inputs.vpp file with --debug ( #4177 ).
2023-05-07 17:58:14 -04:00
Wilson Snyder
444020f7c7
Fix super.new missing data type ( #4147 ).
2023-05-07 16:47:34 -04:00
Wilson Snyder
6188083baa
Tests: Improve randc tests
2023-05-07 15:08:44 -04:00
Wilson Snyder
c2a524d80b
Commentary ( #4175 )
2023-05-07 08:36:03 -04:00
Wilson Snyder
e6f5a0495f
Fix $fscanf of decimals overflowing variables ( #4174 ).
2023-05-07 08:25:10 -04:00
Wilson Snyder
0606a29f13
Fix arrays of unpacked structs ( #4173 ).
2023-05-06 21:41:17 -04:00
Wilson Snyder
c6052830e1
Fix C++17 requirement on previous commit.
2023-05-06 20:23:35 -04:00
Wilson Snyder
4bb876aee5
Fix false IMPLICITSTATIC on package functions.
2023-05-06 19:48:22 -04:00
Wilson Snyder
a3640c1767
Support get_randstate/set_randstate class method function.
2023-05-06 19:09:19 -04:00
Wilson Snyder
250c6950cf
Fix randomize missing simple class rand members.
2023-05-06 18:33:08 -04:00
Wilson Snyder
76f5de6e54
Replace flake8 with ruff for Python linting
2023-05-06 06:08:32 -04:00
Wilson Snyder
1a1c5c5d44
Internals: Fix pylint warning
2023-05-06 06:05:11 -04:00
Wilson Snyder
4ae80f9a9f
Commentary
2023-05-05 22:50:28 -04:00
github action
8a3cb8daa8
Apply 'make format'
2023-05-06 02:37:42 +00:00
Ethan Sifferman
64ab537b68
Add NEWERSTD warning when using feature in newer language standard ( #4168 ) ( #4172 ).
2023-05-05 22:36:51 -04:00
Wilson Snyder
fdea386727
Fix false WIDTHEXPAND on array declarations ( #3959 ).
2023-05-05 22:05:19 -04:00
Wilson Snyder
28944ed862
Fix crash on duplicate imported modules ( #3231 ).
2023-05-05 20:31:48 -04:00
Wilson Snyder
3250ee5707
Commentary: Changes update
2023-05-05 20:24:45 -04:00
Wilson Snyder
d308a561e4
Fix detection of wire/reg duplicates
2023-05-05 20:16:27 -04:00
Wilson Snyder
584f8cc9e7
Internal: With --xml-only support --debug-exit-uvm
2023-05-05 13:47:34 -04:00
Kamil Rakoczy
61e1483b74
Add multi-threaded Verilating at emit stage ( #3608 )
2023-05-05 08:36:20 -04:00
Wilson Snyder
3bb4e34044
Commentary
2023-05-04 19:04:38 -04:00
Kamil Rakoczy
832b17d4d2
clang_check_attributes: fix mt-safe checks for global objects in constructor context ( #4171 )
2023-05-04 14:00:30 -04:00
Krzysztof Bieganski
76c5875912
Fix marking overridden methods as coroutines ( #4120 ) ( #4169 )
...
This patch fixes two cases where methods in base classes were not being marked
as coroutines, even though they were being overridden by coroutines.
- One case is the class member cache not getting refreshed for searched classes.
- The other is when the overriding methods are not declared as `virtual`. In
that case, the `isVirtual()` getter on such a method returns false, which led
to `V3Timing` skipping the step of searching for overridden methods.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-05-04 15:27:45 +02:00
Ryszard Rozak
266dc7679a
Don't link AstRefDType if it has parameterized class ref ( #4164 ) ( #4170 )
2023-05-04 15:09:01 +02:00
Jose Loyola
d693dc85e4
Add Github action to build and push docker images ( #4163 )
2023-05-04 07:44:55 -04:00
Wilson Snyder
add68130b8
Internals: Rename to dumpLevel(), to avoid confusion with make-a-dump()
2023-05-03 18:04:10 -04:00
Tudor Timi
d9b5680a45
Fix crash caused by $display() optimization ( #4165 ) ( #4166 )
2023-05-03 17:04:18 -04:00
Wilson Snyder
dc25be536c
Internals: Deprecate VL_ATTR_ALIGNED, use alignas instead.
2023-05-02 21:21:10 -04:00
Stefan Wallentowitz
7708c88e32
Fix duplicate static names in blocks in functions ( #4144 ) ( #4160 )
...
Static variables of functions are created in the function. When blocks
in a function use identical names for static variables, we need to name
those variables properly.
2023-05-02 20:24:44 -04:00
february cozzocrea
707f230353
Commentary: Update install.rst help2man dependency ( #4161 )
2023-05-02 14:32:24 -04:00
Kamil Rakoczy
49d2eb9a08
Fix initialization order of initial static after function/task ( #4159 )
2023-05-02 11:50:57 -04:00
github action
128186ea68
Apply 'make format'
2023-05-02 11:29:45 +00:00
Hennadii Chernyshchyk and Oleh Maks
949be9d0a1
Optimize VPI callValueCbs ( #4155 )
...
Co-authored-by: Oleh Maks <[email protected] >
2023-05-02 07:28:56 -04:00
Wilson Snyder
3e986517c3
devel release
2023-04-30 07:10:14 -04:00
Wilson Snyder
5d3a9eec7f
Version bump
2023-04-30 07:08:27 -04:00
Wilson Snyder
3d21a79148
Fix pylint warning
2023-04-29 22:22:38 -04:00
Wilson Snyder
e15f5266a3
Commentary: Changes update
2023-04-29 22:16:53 -04:00
Toru Niina
9130eb8b99
Fix DPI function type alias ( #4148 ) ( #4149 )
2023-04-28 07:21:09 -04:00
Ryszard Rozak
09e856d2f3
Fix deleting unused parameterized classes ( #4150 )
2023-04-28 07:20:25 -04:00
Ryszard Rozak
ee5c0a2902
Support parameterized class references in extends statement ( #4146 )
2023-04-24 17:25:53 -04:00
Ryszard Rozak
621b7e63cf
Print the type of provided RHS in class type check ( #4145 )
2023-04-24 17:24:04 -04:00
github action
c6bf9fb89e
Apply 'make format'
2023-04-24 11:29:33 +00:00
Risto Pejašinović and Risto Pejasinovic
f794180865
Fix hier attribute of --xml-only cell section to respect begin blocks ( #4129 ) ( #4133 )
...
Co-authored-by: Risto Pejasinovic <[email protected] >
2023-04-24 07:28:29 -04:00
Geza Lore
0e769d42a1
Optimize trigger evaluation
...
Pack the elements of VlTriggerVec as dense bits (instead of a 1 byte
bool per bit), and check whether they are set on a word granularity.
This effectively transforms conditions of the form `if (trig.at(0) |
trig.at(2) | trig.at(64))` into `if (trig.word(0) & 0x5 | trig.word(1) &
0x1)`. This improves OpenTitan ST by about 1%, worth more on some other
designs.
2023-04-24 09:09:36 +02:00
Wilson Snyder
cbeb9d39ff
Fix -CFLAGS to allow overriding optimization levels ( #4140 ).
2023-04-23 10:18:48 -04:00
Wilson Snyder
5a98c1a3b1
Commentary
2023-04-23 10:10:05 -04:00
Geza Lore
cac634d39b
Fix DfgToAst conversion of CountBits ( #4101 ) ( #4143 )
2023-04-23 08:49:44 -04:00
Peter Monsson
08330bad0b
Fix variables in class methods to be automatic ( #4111 ) ( #4137 )
2023-04-21 08:07:22 -04:00
Ryszard Rozak
84a46939b3
Fix class extend param references ( #4136 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-04-20 07:11:35 -04:00
Kamil Rakoczy
65a484e00b
Internal: Update clang_check_annotations conditions ( #4134 )
2023-04-20 07:02:31 -04:00
Krzysztof Boroński
843fdd3e57
Resolve class lvalues after parameterization ( #4131 )
2023-04-19 18:05:37 -04:00
Ryszard Rozak
a10b51705f
Fix class param extends A=B ( #4128 )
...
Visit global class params even if a class extends a param
2023-04-17 09:08:57 -03:00
Eyck Jentzsch
df86e39845
Fix systemc namespace issues ( #4126 ) ( #4127 )
...
* replaces use of "systemc.h" with <systemc> to avoid default namespace import
2023-04-17 06:57:29 -03:00
Wilson Snyder
7f49b6c102
Parse 'let' as unsupported
2023-04-16 17:23:16 -04:00
Krzysztof Boroński
754a0b8320
Fix to use parallel build for projects with a lot of files ( #4116 )
2023-04-14 18:52:05 -04:00
Krzysztof Boroński
7d3b3761b2
Fix including __Syms header in generated C++ files ( #4123 )
2023-04-14 11:53:27 -04:00
Ryszard Rozak
d1b80ffa29
Support parameterized return types of methods ( #4122 )
2023-04-14 08:52:43 -04:00
Ryszard Rozak
f95ce886f1
Fix duplicating parameter class types ( #4115 )
2023-04-14 06:51:33 -04:00
Wilson Snyder
fa16eff003
Commentary ( #4118 )
2023-04-14 06:46:53 -04:00
Geza Lore
23f90b13f3
Do not create unnecessary DPI AstSenTrees
...
No functional change
2023-04-13 14:01:45 +01:00
Geza Lore
37e7b5dfc7
Fix unused/hard-coded argument
...
No functional change.
2023-04-13 14:01:37 +01:00
Kamil Rakoczy
e1683afb31
Internals: V3ThreadPool: add function waiting for list of futures ( #4112 )
2023-04-12 08:49:48 -04:00
Kamil Rakoczy
e38b359d75
Internals: Refactor for better clang thread-safety analysis ( #4092 )
2023-04-11 07:25:10 -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
0307d59c1f
Fix unpacked structs under classes ( #4102 ).
2023-04-10 19:40:34 -04:00
Wilson Snyder
3aa013c8db
Tests: Remove old file
2023-04-10 19:40:34 -04:00
github action
fc70876aa9
Apply 'make format'
2023-04-10 23:38:20 +00:00
Srinivasan Venkataramanan
722ab9306a
Support class method calls without parenthesis ( #3902 ) ( #4082 )
2023-04-10 19:37:24 -04:00
Wilson Snyder
2ab34b5eeb
Fix false error on new const assignment ( #4098 ).
2023-04-09 19:46:47 -04:00
Wilson Snyder
e3bdae77a0
Tests: Add randsequence test
2023-04-09 17:08:04 -04:00
Wilson Snyder
663d6a1c8d
Commentary
2023-04-09 10:23:35 -04:00
Wilson Snyder
bf5cbb512e
Add UNSUPPORTED on dotted disable instead of syntax error
2023-04-09 10:11:47 -04:00
Wilson Snyder
d4bb58630e
Support 'for' initialization with comma
2023-04-09 09:56:39 -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
7ae0c5d546
Internals: cppcheck fixes. No functional change intended
2023-04-08 21:36:32 -04:00
Wilson Snyder
114d93b212
Internals: Move -debug-exit-uvm to post V3LinkDot, just before V3Param ( #1538 )
2023-04-08 15:11:26 -04:00
Wilson Snyder
13a87e5514
Parse process class, and report runtime errors ( #3612 )
2023-04-08 15:04:42 -04:00
Wilson Snyder
d67d75282c
Support ++/-- on dotted member variables.
2023-04-07 20:57:17 -04:00
Kamil Rakoczy
827cbf22c9
Fix sense expression variable naming ( #4081 )
2023-04-07 07:23:37 -04:00
Wilson Snyder
2530cda507
Fix debug crash when no std:: used
2023-04-06 21:43:39 -04:00
Wilson Snyder
38000a3da0
Fix unnecessary verilated_std.sv waivers in --waiver-output.
2023-04-06 21:43:23 -04:00
Wilson Snyder
6c21b21ecc
Internals: Indent verilated_std.sv with Verilog-mode. No functional change.
2023-04-06 21:27:16 -04:00
Wilson Snyder
8caf9be3e6
Internals: Favor {} constructor syntax. No functional change intended.
2023-04-06 21:04:26 -04:00
Krzysztof Bieganski
cdb61842d6
Internals: Remove VlNow ( #4089 )
...
`VlNow{}` is completely unnecessary, as coroutines are always on the
heap (unless optimized out). Also fix access of var ref passed to forked processes.
2023-04-06 10:31:52 -04:00
Wilson Snyder
05660d1118
Add CONSTRAINTIGN warning when constraint ignored. Likewise ignore constraint_mode, rand_mode.
2023-04-05 21:27:37 -04:00
Ryszard Rozak
a3f9221a67
Fix importing symbols from base class ( #4084 )
2023-04-04 20:56:18 -04:00
Wilson Snyder
7e1980af7a
Tests: Avoid t_dist failures on deleted files.
2023-04-02 15:10:45 -04:00
Wilson Snyder
921fd919b5
Tests: Improve short circuit test
2023-04-01 23:10:05 -04:00
Robert Balas and Robert Balas
fc5a5ea53d
Commentary: Fix spelling mistakes ( #4080 )
...
Co-authored-by: Robert Balas <[email protected] >
2023-04-01 20:45:28 -04:00
Wilson Snyder
86156dd05b
Revert false-positive static error ( #4072 ) ( #4077 )
2023-04-01 18:54:37 -04:00
Wilson Snyder
3219ffddd4
Tests: Ignore commented out messages
2023-04-01 18:17:45 -04:00
Wilson Snyder
3a01c32bf9
Revert false-positive static error ( #4072 ) ( #4077 )
2023-04-01 15:45:34 -04:00
Wilson Snyder
9ffd0a4e70
Support queue[$-1] selects.
2023-04-01 15:23:39 -04:00
Wilson Snyder
90e049c674
Internals: Remove unneeded variable. No functional change.
2023-04-01 11:46:43 -04:00
Wilson Snyder
69121633cf
Support class srandom and class random stability.
2023-04-01 10:50:27 -04:00
Wilson Snyder
28eadded87
Update include/gtkwave from upstream
2023-04-01 10:38:47 -04:00
Wilson Snyder
93c598dd19
Commentary
2023-04-01 10:38:33 -04:00
Krzysztof Bieganski
d012563ab1
Fix tracing with awaits at end of block ( #4075 ) ( #4076 )
...
Given an await at the end of a block, e.g. at the end of a loop body, a trace
activity setter was not inserted, as there were no following statements. This
patch makes the activity update unconditional.
2023-03-31 13:51:31 -04:00
Krzysztof Bieganski
0b96789e65
Add error on static access to non-static class member ( #4072 )
...
Before this patch, it was possible to access non-static class members using
static access, which resulted in C++ compilation errors. This adds
verilation-time checks for such situations.
2023-03-27 10:46:51 -04:00
Wilson Snyder
947402bc57
Fix interface generate begin ( #4065 ).
2023-03-26 08:49:38 -04:00
Yutetsu TAKATSUKASA
d4107dce52
Improve xor tree optimization ( #4071 )
...
* AstNot does not have to be frozen in an xor tree during BitOp tree optimization.
* Tests: Update stats.
2023-03-26 20:36:32 +09:00
Yutetsu TAKATSUKASA
990b19e048
Fix incorrect optimization of bit op tree ( #4059 ) ( #4070 )
2023-03-26 03:29:10 -04:00
Srinivasan Venkataramanan
2290e6ccf2
Fix info message prints under --assert ( #4036 ) ( #4053 )
2023-03-24 19:22:48 -04:00
Wilson Snyder
14c8f072f1
Commentary
2023-03-24 19:06:07 -04:00
Krzysztof Bieganski
c55df02b1a
Fix C++ compile errors when passing class refs as task arg ( #4063 )
...
1. Fixes passing a null reference as a task argument. Before this patch it would
cause a C++ compile error like `cannot convert ‘VlNull’ to ‘VlClassRef<...>’`.
2. Fixes passing a class reference as a task argument when the argument is a
reference to a base class. Before the patch it would cause a C++ compile
error like `cannot convert ‘VlClassRef<{DERIVED_CLASS}>’ to ‘VlClassRef<{BASE_CLASS}>`.
2023-03-24 13:18:59 -04:00
Ryszard Rozak
5b86248b54
Add error if class types don't match ( #4064 )
2023-03-24 13:18:20 -04:00
Josep Sans
449ac44131
Fix _Vilp used before declaration ( #4057 ) ( #4062 )
2023-03-24 11:51:02 +01:00
Ryszard Rozak
f439a7927f
Fix parameters in a class body to be localparam ( #4061 )
2023-03-23 10:20:35 +01:00
Aleksander Kiryk
277bd67f72
Fix NBAs inside fork-joins ( #4050 )
2023-03-21 10:39:29 -04:00
Krzysztof Bieganski
5de8ccbf32
Fix task calls as fork statements ( #4055 )
...
Before this patch, calling tasks directly under forks would result in each
statement of these tasks being executed concurrently. This was due to Verilator
inlining tasks most of the time. Such inlined tasks' statements would simply
replace the original call, and there would be no indication that these used to
be grouped together. Ultimately resulting in `V3Timing` treating each statement
as a separate process.
The solution is simply to wrap each fork sub-statement in a begin in `V3Begin`
(except for the ones that are begins, as that would be pointless). `V3Begin` is
already aware of forks, and is supposed to avoid issues like this one, so it
seems like a natural fit. This also protects us from similar bugs, i.e. if some
statement gets replaced or expanded into multiple statements.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2023-03-21 13:50:53 +01:00
Wilson Snyder
577e0700ba
Commentary: Changes update
2023-03-21 04:52:12 -04:00
github action
71a37484f5
Apply 'make format'
2023-03-21 08:43:31 +00:00
Jesse Taube
daf157e6c0
Fix false LATCH warning on --assert 'unique else if' ( #4033 ) ( #4054 ).
2023-03-21 04:42:19 -04:00
Iztok Jeras
2aa6a229ca
Change range order warning from LITENDIAN to ASCRANGE ( #4010 )
2023-03-20 20:44:11 -04:00
Wilson Snyder
9b869edd90
Internals: Fix cppcheck warnings. No functional change.
2023-03-18 19:28:48 -04:00
Wilson Snyder
2b21697b86
Support class extends of package::class.
2023-03-18 17:26:36 -04:00
Wilson Snyder
895ab8789b
Internals: Fix recently added assertion false firing
2023-03-18 17:11:39 -04:00
Wilson Snyder
5f02f95ce6
Commentary ( #3906 ) ( #3931 )
2023-03-18 15:49:11 -04:00
Wilson Snyder
f2aac8c49a
Internals: Use VNVisitorConst where possible, for better performance. No functional change indended.
2023-03-18 12:23:17 -04:00
Wilson Snyder
82e653a739
Internals: Avoid emit inheritance in V3EmitCBase. No functional change intended.
2023-03-18 12:23:17 -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
Wilson Snyder
ba9e141fae
Commentary: Update CONTRIBUTING and internals xrefs ( #4043 )
2023-03-18 10:23:19 -04:00
Wilson Snyder
d60a3e2b66
Fix random internal crashes ( #666 ).
...
Internally, in V3Broken check m_interpp for null, and make several cleanups
in the addNext/addNextHere/unlinkFr* methods.
2023-03-18 09:48:26 -04:00
Yu-Sheng Lin
70c2d1eded
Fix install, standardization in cmake CMakeLists.txt ( #3974 )
2023-03-18 07:38:09 -04:00
Wilson Snyder
80cbf81b3b
Internals: Fix missing relink() and add assert
2023-03-17 22:29:48 -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
Wilson Snyder
d6c5d40f9b
Internals: Add VNVisitorConst class.
2023-03-17 19:59:09 -04:00
Ryszard Rozak
371b8310d9
Support method calls without parenthesis ( #4034 )
...
* Support method class without parenthesis
Signed-off-by: Ryszard Rozak <[email protected] >
* Delete replaced nodes
Signed-off-by: Ryszard Rozak <[email protected] >
---------
Signed-off-by: Ryszard Rozak <[email protected] >
2023-03-17 13:25:39 +01:00
Ryszard Rozak
1ac721af8f
Add STATICVAR warning and convert to automatic ( #4027 ) ( #4030 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-03-17 07:48:41 -04:00
Wilson Snyder
85fd88ace2
Optimize duplicate JumpBlocks away ( #4028 )
2023-03-16 22:29:06 -04:00
Wilson Snyder
ed1e377bb1
Fix large return blocks with --comp-limit-blocks ( #4028 ).
2023-03-16 21:40:01 -04:00
Wilson Snyder
4240c29f4b
Internals: Fix missing broken check
2023-03-16 21:14:49 -04:00
Wilson Snyder
51ba4a1531
Fix clocking block scope internal error ( #4032 ).
2023-03-16 20:48:18 -04:00
Wilson Snyder
d1b55cb7aa
Fix compile error last commit ( #4029 )
2023-03-16 20:22:08 -04:00
Kamil Rakoczy
bbf53bd5af
Add VL_MT_SAFE attribute to several functions. ( #3729 )
2023-03-16 19:48:56 -04:00
Wilson Snyder
b2ced6ff1d
Add more debug info to --report-unoptflat graph ( #4039 )
2023-03-16 19:47:13 -04:00
Wilson Snyder
a9b07fe7d7
Tests: Remove unintended t_0 test
2023-03-16 18:44:28 -04:00
Kamil Rakoczy
66e4656a8e
Fix event controls reusing same variable ( #4014 )
2023-03-16 07:12:54 -04:00
Wilson Snyder
8f4d4f07a4
Commentary
2023-03-16 07:09:16 -04:00
Wilson Snyder
8e55580cde
Update include/gtkwave from upstream
2023-03-15 22:11:06 -04:00
Wilson Snyder
8ae79066a2
Fix false ENUMVALUE on expressions and arrays.
2023-03-15 21:56:35 -04:00
Wilson Snyder
36da6a3563
Fix parsing #1_2 delays
2023-03-15 21:22:28 -04:00
Wilson Snyder
45690faea7
Parse defparam = as unsupported
2023-03-15 21:04:10 -04:00
Wilson Snyder
046fecbb35
Fix fclose(0).
2023-03-15 20:49:59 -04:00
Ryszard Rozak
0f6024ef3c
Fix rand fields in base classes ( #4025 )
2023-03-15 11:48:18 -04:00
Wilson Snyder
2488b5a97f
Fix pullup/pulldown to create implicit wires.
2023-03-14 21:14:27 -04:00
Wilson Snyder
56de6f1a9f
Fix min/typ/max internal error
2023-03-14 20:40:58 -04:00
Wilson Snyder
0fc5d37901
Fix bounded queues with parameter bounds
2023-03-14 20:29:47 -04:00
Wilson Snyder
ea4cc4e076
Parse nettype with package, still unsupported
2023-03-14 19:52:01 -04:00
Wilson Snyder
9e25c21fed
Fix unpacked struct clocking
2023-03-14 19:35:40 -04:00
Ryszard Rozak
fc3fdcc71c
Tests: Fix randomize_method test ( #4024 )
2023-03-14 13:47:43 -04:00
Ryszard Rozak
80b7b8bbdb
Don't call randomize on null field ( #4023 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-03-14 14:48:06 +01:00
Wilson Snyder
a8ce272e4a
Commentary: spelling
2023-03-14 08:39:54 -04:00
Wilson Snyder
72963c4e20
Commentary ( #4020 )
2023-03-14 08:29:39 -04:00
Ryszard Rozak
4e5bd361e0
Internal: Fix dumping of AstMethodCall ( #4021 )
2023-03-14 06:54:45 -04:00
Ryszard Rozak
ed1a9309d4
Throw warning if static variable is declared in a loop ( #4018 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-03-14 10:03:08 +01:00
Ryszard Rozak
1d0a06438c
Assign unique names for blocks in do..while loop ( #4019 )
2023-03-14 09:54:43 +01:00
Wilson Snyder
2c62714a30
Fix push to dynamic queue in struct ( #4015 ).
2023-03-13 22:03:53 -04:00
Wilson Snyder
f13e753b52
Change ZERODLY to a warning.
2023-03-12 21:28:14 -04:00
Wilson Snyder
39a5bce8a6
Parse covergroup, still unsupported.
2023-03-12 14:11:11 -04:00
Wilson Snyder
ba953bfa94
Commentary: Changes update
2023-03-12 10:49:19 -04:00
Wilson Snyder
1debd0405b
Support complicated IEEE 'for' assignments.
2023-03-12 10:46:40 -04:00
Wilson Snyder
1f1d9312d2
Parse event 'iff', still unsupported.
2023-03-11 22:39:59 -05:00
Wilson Snyder
259201b352
Support $fopen as an expression
2023-03-11 18:11:01 -05:00
Wilson Snyder
bb45bd048e
Commentary
2023-03-11 11:27:40 -05:00
Wilson Snyder
5489ec6eff
Parse 'first_match', and still unsupported.
2023-03-11 11:08:37 -05:00
Wilson Snyder
e55e81bcd0
Parse sequence 'local input', still unsupported.
2023-03-11 10:53:10 -05:00
Wilson Snyder
5c5c758718
Parse 'wait_order' and test, still unsupported.
2023-03-11 10:47:08 -05:00
Wilson Snyder
b87669039e
Commentary
2023-03-10 22:25:47 -05:00
Wilson Snyder
60a6ed2a20
Support assert property statement-else-statement
2023-03-10 22:13:17 -05:00
Wilson Snyder
81e8388c3f
Parse 'expect', still unsupported.
2023-03-10 21:48:56 -05:00
Wilson Snyder
4532680e5f
Internals: Cleanup assert/assume. No functional change.
2023-03-10 21:17:54 -05:00
Andrew Nolte
fc17ab280a
Add --public-depth to force public to a certain instance depth ( #3952 )
2023-03-09 21:48:05 -05:00
Wilson Snyder
621cd0f008
Internals: Framework for renaming warnings ( #4010 partial)
2023-03-08 21:32:37 -05:00
Andrew Nolte
13c9877099
Add --public-params flag ( #3990 )
2023-03-08 19:38:26 -05:00
Wilson Snyder
ff889fde18
Add debug comment when trace disabled ( #4004 ).
2023-03-06 18:22:46 -05:00
Krzysztof Boroński
f68c16a5e6
Fix symbol entries when inheriting classes ( #3995 ) ( #3996 )
2023-03-06 07:43:58 -05:00
Ryszard Rozak
cc45f64280
Add __PVT__ prefix to selects nodes ( #4001 )
2023-03-06 13:18:48 +01:00
Wilson Snyder
725ec088ea
Parse 'sequence' declarations, property case/if, still unsupported.
2023-03-06 05:12:09 -05:00
Wilson Snyder
87c3de5aab
Parse 'matches', still unsupported.
2023-03-05 23:58:54 -05:00
Wilson Snyder
6d7c04a3de
Parse cycle delays and boolean abbrev, still unsupported.
2023-03-05 23:22:41 -05:00
Wilson Snyder
d0f5ce0cc4
Parse intersect/throughout/within, still unsupported.
2023-03-05 19:57:09 -05:00
Wilson Snyder
cb89ef9885
Parse more property expression syntax, as still unsupported
2023-03-05 19:42:21 -05:00
Wilson Snyder
90360d40fd
Change property expression handling towards eventual more general expressions.
2023-03-05 18:52:55 -05:00
Wilson Snyder
15dcd326f8
Internals: Parse weak/strong but do not lex
2023-03-05 18:30:43 -05:00
Wilson Snyder
ae1eb56695
Internals: Parser commentary
2023-03-05 17:59:17 -05:00
Wilson Snyder
a47fd07585
Internals: Standard grammar for property_expression |-> |=>.
2023-03-05 16:59:24 -05:00
Wilson Snyder
19bc257002
Internals: UNSUPPORTED commentary
2023-03-05 16:45:07 -05:00
Wilson Snyder
a1d4cd658e
devel release
2023-03-04 11:31:58 -05:00
Wilson Snyder
21093fd1bd
Version bump
2023-03-04 11:19:44 -05:00
Wilson Snyder
329a933efd
Internals: Parse nettype as unsupported
2023-03-04 10:50:28 -05:00
Wilson Snyder
e21198cb2d
Add warning on missing class reference #()
2023-03-03 21:06:52 -05:00
Wilson Snyder
ab502c5196
Fix coverage of class methods ( #3998 ).
2023-03-03 19:26:15 -05:00
Felix Neumärker
12728bc478
Fix UNDRIVEN warning seg fault ( #3989 )
2023-03-03 18:54:38 -05:00
Wilson Snyder
3fc684359a
Fix prettyName in structure dumps, partial ( #4001 )
2023-03-03 18:49:26 -05:00
Wilson Snyder
1e28387541
Tests: Add nettype test
2023-03-02 20:29:42 -05:00
Wilson Snyder
dd917d50eb
Internals: Parse interconnect then say unsupported
2023-03-02 20:02:14 -05:00
Kamil Rakoczy
0130c2bceb
Internals: update clang attributes check report conditions ( #3997 )
2023-03-02 18:37:07 -05:00
Wilson Snyder
8a5804fc3a
Tests: Add tagged union test
2023-03-02 08:11:11 -05:00
Wilson Snyder
3df29085c8
Fix end label fileline reporting.
2023-03-02 07:50:16 -05:00
Wilson Snyder
976af0068b
Support parsing min:typ:max parameters
2023-03-01 23:11:48 -05:00
Wilson Snyder
a85e6a9d8c
Commentary: Changes update
2023-03-01 22:43:39 -05:00
Wilson Snyder
463ea57b0a
Add error (vs previous warning) on enum value overflow.
2023-03-01 22:36:42 -05:00
Wilson Snyder
326a60d307
Add error on mixing .name and by-port instantiations.
2023-03-01 21:19:21 -05:00
Ryszard Rozak
2c60c5f816
Support recursive methods ( #3987 )
2023-03-01 21:07:37 -05:00
Cameron Kirk
faf3804b9a
Fix LITENDIAN warning is backwards ( #3966 ) ( #3967 ).
2023-03-01 11:46:44 -05:00
github action
08a433260c
Apply 'make format'
2023-03-01 05:44:35 +00:00
Wilson Snyder
7fc278f6db
Fix import of extends typedefs
2023-03-01 00:30:45 -05:00
Wilson Snyder
b1a95f642f
Support cast to numbers from strings.
2023-02-28 23:34:33 -05:00
Wilson Snyder
c6a569df49
Commentary
2023-02-28 18:38:52 -05:00
Krzysztof Boroński
06661ab676
Disallow ++/-- over expressions with potential side effects ( #3976 ).
2023-02-28 15:21:58 -05:00
Wilson Snyder
d9a0e69597
Commentary, fix copyright
2023-02-28 01:09:09 -05:00
Wilson Snyder
a0997d0b98
Fix internal error with UNSUPPORTED of procedural clocked assertions
2023-02-28 00:35:58 -05:00
Felix Neumärker
a3ff375ce7
Fix timing delays to not truncate below 64 bits ( #3973 ) ( #3982 )
2023-02-27 21:42:22 -05:00
Wilson Snyder
c03affa544
Fix enum.next(0) and enum.prev(0).
2023-02-26 15:24:24 -05:00
Wilson Snyder
4703fc39be
Add error to avoid @* fatal
2023-02-26 13:13:02 -05:00
Wilson Snyder
9bf0e54937
Internals: add const
2023-02-26 12:21:17 -05:00
Wilson Snyder
b039f246df
Lint check posedge of nonintegral
2023-02-26 12:08:10 -05:00
Wilson Snyder
a93b344096
Tests: use standard lower case for Perl vm_prefix
2023-02-26 10:18:40 -05:00
Peter Debacker and Peter Debacker
191c71edea
Fix cmake on macOS to mark weak symbols with -U linker flag ( #3978 ) ( #3979 )
...
Co-authored-by: Peter Debacker <[email protected] >
2023-02-23 17:27:29 -05:00
Wilson Snyder
b4dd398af6
Tests: Cleanup some C++ new calls. No functional change.
2023-02-23 06:14:54 -05:00
Wilson Snyder
cfe0fdd5cc
Untabify
2023-02-23 05:47:56 -05:00
Adam Bagley
003a8cfe75
Add lint warning on always_comb multidriven ( #3888 ) ( #3939 )
2023-02-23 05:36:28 -05:00
Wilson Snyder
7559af5879
Fix missing error on negative replicate ( #3963 ).
2023-02-22 19:11:02 -05:00
Ryszard Rozak
47a7e75841
Fix subsequent parameter declarations ( #3969 )
2023-02-22 11:26:25 +01:00
Wilson Snyder
adf1de45de
With -Wpedantic change ASSIGNIN to a warning
2023-02-21 16:45:35 -05:00
Ryszard Rozak
45f955f175
Fix self references to parameterized classes ( #3962 )
2023-02-17 11:17:35 -05:00
Ryszard Rozak
063f9a7a4c
Fix dicts declared with ref type ( #3960 )
2023-02-16 12:49:45 -05:00
Wilson Snyder
c82a098f2e
Internals: Parse class extends ::
2023-02-14 21:23:55 -05:00
Wilson Snyder
393b7714c4
Convert some mis-syntax errors to UNSUPPORTED
2023-02-14 20:48:52 -05:00
Wilson Snyder
43d8de4f80
Support property var decls.
2023-02-14 20:44:14 -05:00
Wilson Snyder
026bbc306b
Removed deprecated --cdc option.
2023-02-13 22:49:51 -05:00
Wilson Snyder
f8b0e359b9
Support class parameters without initial values.
2023-02-13 22:06:52 -05:00
Wilson Snyder
94ef1b76d0
Fix error text on packed struct init.
2023-02-13 20:58:49 -05:00
Wilson Snyder
50929e5d43
Fix packed array structure replication.
2023-02-13 07:49:08 -05:00
github action
3f4b7af8a1
Apply 'make format'
2023-02-13 04:21:52 +00:00
Larry Doolittle
bc6a7787ed
Fix date on the front page of verilator.pdf ( #3956 ) ( #3957 )
2023-02-12 23:21:03 -05:00
Wilson Snyder
5064ec2806
Support type case and type equality comparisons.
2023-02-12 20:09:10 -05:00
Wilson Snyder
4f19eeaffa
Fix type(typedef) operation core dump
2023-02-12 19:57:52 -05:00
Wilson Snyder
10d0088f73
Fix generate case with empty body statements.
2023-02-12 18:14:18 -05:00
Wilson Snyder
15d0ec317d
Fix lint for non-integral types in packed structs.
2023-02-12 16:32:36 -05:00
Wilson Snyder
260d58e47e
Tests: Add struct tests
2023-02-12 13:30:52 -05:00
Wilson Snyder
d9c4d9316f
Parse checkers as UNSUPPORTED.
2023-02-11 14:31:28 -05:00
Wilson Snyder
e9441cff50
Parse external constraints as UNSUPPORTED.
2023-02-11 13:29:52 -05:00
Wilson Snyder
daa545774e
Parse randsequence as UNSUPPORTED.
2023-02-11 13:03:10 -05:00
Wilson Snyder
dee2e45e27
Tests: Add defparam not resolved test
2023-02-11 11:00:07 -05:00
Wilson Snyder
4d29487e75
Fix -Wpedantic on std::process.
2023-02-11 10:55:06 -05:00
Wilson Snyder
2bb2935924
Commentary: Changes update
2023-02-11 10:38:00 -05:00
Larry Doolittle
aff3f7c4f6
Fix build on hppa ( #3954 )
...
As supplied by John David Anglin in Debian bug #1030913
2023-02-11 04:23:26 -05:00
Wilson Snyder
5aa4f46101
Internals: Add some std::. No functional change intended.
2023-02-10 20:32:39 -05:00
Zixi Li
8f87022496
Fix CMake bad C identifiers ( #3948 ) ( #3951 )
2023-02-10 20:06:05 -05:00
Ryszard Rozak
d34aa10faf
Fix class field linking when a super classes is a param ( #3949 )
2023-02-10 07:44:14 -05:00
Kamil Rakoczy
93d50c4499
Internals: Add mutex to V3Error ( #3680 )
2023-02-09 22:15:37 -05:00
Todd Strader
4eb280601e
handle constant format field widths ( #3946 )
2023-02-09 10:09:00 -05:00
Wilson Snyder
b778784333
Add --annotate-points option, change multipoint on line reporting ( #3876 ).
2023-02-08 20:22:54 -05:00
Todd Strader
9121a81a74
Fix constant enum methods ( #3621 )
2023-02-08 18:50:27 -05:00
Todd Strader
d3cbb1e53f
Fix constant string function assignment ( #3945 )
2023-02-08 18:48:07 -05:00
Wilson Snyder
cf88700fc2
Fix virus detection false positive ( #3944 ).
2023-02-08 18:44:07 -05:00
Ryszard Rozak
072d76fe8e
Use VAR_BASE as attr type if a select's base is a ref ( #3943 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-02-07 15:10:19 +01:00
Aleksander Kiryk
3436d1780f
Fix namespace fallback resolution ( #3863 ) ( #3942 )
2023-02-07 07:13:55 -05:00
Wilson Snyder
1607225063
Fix VPI upper interface scopes not found ( #3937 ).
2023-02-05 16:16:39 -05:00
Wilson Snyder
807e5b22a0
Fix verilator_difftree header flush
2023-02-05 15:20:56 -05:00
Wilson Snyder
2c64b83c19
Internals: Fix constructor syntax
2023-02-05 14:29:49 -05:00
Wilson Snyder
dfc98e77c0
Commentary
2023-02-05 14:12:27 -05:00
Wilson Snyder
936bb7b1ed
Add error on size with unsized number
2023-02-05 14:06:03 -05:00
Wilson Snyder
88e5017564
Internals: Directly assign dtype instead of using dtype's dtype
2023-02-05 13:50:29 -05:00
Wilson Snyder
508f6f7e5a
Fix core dump with initial variable delays
2023-02-05 13:17:35 -05:00
Wilson Snyder
70eceae3d8
Fix core dump on bad dotted reference.
2023-02-05 12:45:14 -05:00
Wilson Snyder
eb5aad94f1
Support to packed array
2023-02-05 10:18:03 -05:00
Wilson Snyder
2d89c458f6
Fix force/release of real.
2023-02-04 20:37:36 -05:00
Wilson Snyder
d33ded22f9
Internals: Remove unused variable
2023-02-04 19:50:04 -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
Wilson Snyder
6908e471e7
Revert: e3558d9e: Support vpiDefName ( #3906 ) ( #3931 )
2023-02-03 21:26:21 -05:00
Andrew Nolte
e3558d9e1b
Support vpiDefName ( #3906 ) ( #3931 )
2023-02-03 19:14:41 -05:00
Wilson Snyder
11043aeb9b
Work around mswin crash with --std ( #3933 )
2023-02-03 19:01:20 -05:00
Wilson Snyder
15c163c12e
github: msbuild compile with -j 3
2023-02-03 18:47:54 -05:00
Wilson Snyder
c7ed73e249
Fix MSVC++ compile warning
2023-02-03 18:47:37 -05:00
Wilson Snyder
4aa3e72509
Fix cmake 3.12+ warnings on MSWIN.
2023-02-03 17:16:39 -05:00
Aleksander Kiryk
31130c4b4a
Fix std:: to be parsed first ( #3864 ) ( #3928 )
2023-02-03 09:04:16 -05:00
github action
00f0027c80
Apply 'make format'
2023-02-03 13:48:46 +00:00
Joseph Nwabueze
c8be50d40b
Add /*verilator public[flat|flat_rd|flat_rw| ]*/ metacomments ( #3894 )
2023-02-03 08:47:55 -05:00
Wilson Snyder
e16e9b89cd
Commentary ( #3932 ).
2023-02-03 07:27:23 -05:00
Yoda Lee
80b291407b
Add cmake warning if multiple SOURCES w/o PREFIX ( #3916 ) ( #3927 )
2023-02-02 22:08:13 -05:00
David Stanford
d2aff13402
Commentary: Add some more details to the vpi example ( #3925 )
2023-02-02 21:51:23 -05:00
github action
82f450d838
Apply 'make format'
2023-02-03 00:11:37 +00:00
Wilson Snyder
f6d4f1ad02
Fix very long VPI signal names ( #3929 ).
2023-02-02 19:10:23 -05:00
Wilson Snyder
645e1387e0
Tests: Fix merge conflict failure
2023-02-02 19:10:20 -05:00
Andrew Nolte
d3c14cc1ac
Split WIDTH warning into WIDTHEXPAND and WIDTHTRUNC ( #3900 )
2023-02-02 18:25:25 -05:00
Ryszard Rozak
33468fa0e7
Fix class extend parameter dot case ( #3926 )
2023-02-02 17:59:47 -05:00
Ryszard Rozak
0e955d503e
Handle references of static members of type aliases of a parametrized class ( #3922 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-02-02 08:36:11 +01:00
Andrew Nolte
18e317fb78
Fix inconsistent naming of generate scope arrays ( #3840 )
2023-02-01 17:30:02 -05:00
Wilson Snyder
ef9f443532
Fix single-element replication to dynarray/unpacked/queue ( #3548 ).
2023-01-31 22:43:41 -05:00
Wilson Snyder
6e3b957b30
Tests: Add iterate check ( #3919 )
2023-01-31 19:34:27 -05:00
Wilson Snyder
aea1834ed8
Commentary ( #3920 )
2023-01-31 12:11:35 -05:00
Ryszard Rozak
7f3e178b68
Fix paramaterized class function linkage ( #3917 )
...
* Visit function arguments even if the function is unlinkable
* Don't use m_unlinedScopep in AstLambdaArgRef handling
2023-01-30 22:20:56 -05:00
Larry Doolittle
87a7881d46
Add SOURCE_DATE_EPOCH for docs/guide/conf.py ( #3918 )
2023-01-30 22:14:33 -05:00
Larry Doolittle
29f4821d78
Tests: Check Makefiles for stray tabs ( #3914 )
2023-01-30 07:31:39 -05:00
Larry Doolittle
9f9c84aa64
Internals: Avoid using <tab> in the middle of lines ( #3913 )
2023-01-29 22:39:22 -05:00
Larry Doolittle
d80e0523cc
Fix nonsensical permissions of some files in test_regress/t ( #3912 )
...
chmod a-x *.out *.v *.vlt
2023-01-29 20:32:19 -05:00
Wilson Snyder
164aa96953
Fix GCC warning (fixes recent #3510 )
2023-01-29 17:34:48 -05:00
Wilson Snyder
6a12c4d02a
Commentary: Changes update
2023-01-29 16:57:30 -05:00
Wilson Snyder
6a7dfb7696
Fix pattern assignment to unpacked structs ( #3510 ).
2023-01-29 16:50:10 -05:00
Wilson Snyder
4208db7811
Support multiple-output buf/not gate primitives
2023-01-28 23:20:48 -05:00
Wilson Snyder
a19dddf05e
Fix real parameters of infinity and NaN.
2023-01-28 22:11:09 -05:00
Wilson Snyder
7855a78a0f
Support %p of union with real
2023-01-28 21:41:50 -05:00
Wilson Snyder
248bd173d3
Support interface classes and class implements.
2023-01-28 18:06:37 -05:00
Wilson Snyder
8d2be855f5
Internals: Parsing and tests for class interfaces
2023-01-28 16:30:47 -05:00
Wilson Snyder
ba8700f99d
Support $changed_gclk, $fell_gclk, $rose_gclk, $stable_gclk
2023-01-28 14:05:26 -05:00
Wilson Snyder
f20997a2f0
Support global clocking and $global_clock.
2023-01-28 12:31:52 -05:00
Wilson Snyder
bea225e191
Fix duplicate name check on extern symbols
2023-01-28 11:55:44 -05:00
Wilson Snyder
93517b8378
Support unpacked unions.
2023-01-27 22:41:12 -05:00
Kamil Rakoczy
a39c7f7dac
Internals: Add V3ThreadPool class ( #3898 )
...
The thread pool is self tested, but not otherwise used by the code yet.
2023-01-27 10:43:50 -05:00
Wilson Snyder
5125b94fd8
Commentary ( #3908 )
2023-01-26 18:27:00 -05:00
Ilya Barkov
d118a739dc
Fix cinlude check ( #3907 )
2023-01-26 06:35:59 -05:00
Wilson Snyder
c2a8810eb1
Tests: Check for new .pl file copyrights
2023-01-25 22:14:43 -05:00
Ryszard Rozak
91c44d7830
Support class extending its parameter ( #3904 )
2023-01-25 20:33:18 -05:00
Wilson Snyder
21aafe8f50
Tests: Fix file length issue (cousin of #3905 )
2023-01-25 19:42:28 -05:00
Ryszard Rozak
4a8cfe367d
Support function calls without parenthesis ( #3903 ) ( #3902 )
...
Signed-off-by: Ryszard Rozak <[email protected] >
2023-01-24 15:36:30 +01:00
Ryszard Rozak
b56e7f6910
Support static function variables ( #3830 )
2023-01-23 08:35:10 -05:00
Wilson Snyder
8a85cedaf5
Tests: Update test, part of ( #3378 ) ( #3892 )
2023-01-23 07:23:42 -05:00
Varun Koyyalagunta
be26e8da1b
Support struct I/O in --lib-create ( #3378 ) ( #3892 )
2023-01-22 22:24:36 -05:00
Wilson Snyder
b2dd5de860
Tests: Fix some unusual check_finished cases.
2023-01-22 22:21:36 -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
665758a68b
devel release
2023-01-22 11:55:22 -05:00
Wilson Snyder
5b8941d717
Version bump
2023-01-22 11:52:21 -05:00
Wilson Snyder
f4865a4bb2
Fix configure; always look for std=c++17 rather than by distro.
...
This backs out #606b35853b, which is believed no longer needed due to
(#3881 ) being fixed.
If this proves wrong and additional OS dependencies are needed, we should
use a feature test macro so that the OS test doesn't need upkeep.
2023-01-22 09:53:55 -05:00
Wilson Snyder
53835355b0
Add CFG_CXXFLAGS_STD so CFG_CXXFLAGS_STD_NEWEST can still exist ( #3881 )
2023-01-22 09:44:50 -05:00
Wilson Snyder
5cd3d831bb
Commentary: Changes update
2023-01-22 08:59:06 -05:00
Geza Lore
3069860fdf
Allow mismatched widths in operands of shifts in DFG
...
Fixes #3872 .
Testing this is a bit tricky, as the front-end fixes up the operand
widths in shifts to match, and we need V3Const to introduce a mismatched
one by reducing `4'd2 ** x` (with x being 2 2-bit wide signal) to `4'd1
<< x`, but t_dfg_peephole runs with V3Const disabled exactly because it
makes it hard to write tests. Rather than fixing this one case in
V3Const (which we should do systematically at some point), I fixed DFG
to accept these just in case V3Const generates more of them. The
assertions were there only because of paranoia (as I thought these were
not possible inputs), the code otherwise works.
2023-01-22 10:55:03 +00:00
Wilson Snyder
3a8288b0f6
Move test driver documentation into internals.rst
2023-01-21 16:17:26 -05:00
Wilson Snyder
30fd49e21f
Tests: Suppress test leak
2023-01-21 14:46:21 -05:00
Wilson Snyder
bc7048e8d1
Convert verilator_includer to python3
2023-01-21 14:40:22 -05:00
Wilson Snyder
a98eceb501
Tests: Call debug earlier to allow command line override
2023-01-21 14:05:11 -05:00
Wilson Snyder
c2bdd06fcc
Fix VPI one-time timed callbacks ( #2778 ).
2023-01-21 13:43:27 -05:00
Ilya Barkov
8918f17c17
Support class queue equality ( #3895 )
2023-01-21 13:20:02 -05:00
Wilson Snyder
604af511fc
Tests: Fix missing include ( #2778 partial)
2023-01-20 21:15:01 -05:00
Wilson Snyder
5a39fc4ba9
Tests: Add t_dist_copyright.pl
2023-01-20 20:42:46 -05:00
Wilson Snyder
30d6edd2e5
Cleanup missing copyrights and those on simply copied files. No functional change.
2023-01-20 20:42:30 -05:00
Wilson Snyder
79f99dddf7
Tests: Rename to .out suffix
2023-01-20 20:32:52 -05:00
Wilson Snyder
c3fa475096
Remove leakchecking.txt
2023-01-20 20:32:52 -05:00
James Shi
5ef373500f
Fix module parameter name collision ( #3854 ) ( #3855 )
2023-01-20 18:38:59 -05:00
Ryszard Rozak
be53eec5ca
Support property calls without parenthesis ( #3879 ) ( #3893 )
2023-01-20 07:25:37 -05:00
github action
41e5f6b7d5
Apply 'make format'
2023-01-19 23:22:37 +00:00
James Shi
c1c0aa61f9
Fix signed/unsigned parameter types ( #3866 )
2023-01-19 18:00:32 -05:00
Wilson Snyder
e94023367f
Fix elaboration of member selected classes ( #3890 ).
2023-01-19 17:44:27 -05:00
Wilson Snyder
317fe7a787
Fix VL_CPU_RELAX on MIPS/Armel/s390/sparc ( #3891 )
2023-01-19 17:22:28 -05:00
Wilson Snyder
035bf13e4a
Fix foreach unnamedblk duplicate error ( #3885 ).
2023-01-18 21:48:06 -05:00
Wilson Snyder
6a60ace2c7
Commentary ( #3887 )
2023-01-18 18:21:53 -05:00
Joey Liu
901d1d8087
Fix unpacked array expansion ( #3861 )
2023-01-18 14:35:48 -05:00
github action
6cd26edb64
Apply 'make format'
2023-01-18 16:48:16 +00:00
Gökçe Aydos
956fd89b87
Support import/export lists in modport ( #3886 )
2023-01-18 11:46:51 -05:00
Wilson Snyder
3fe81a3832
Add manpages for missing user commands (using help2man)
2023-01-17 19:26:12 -05:00
Ilya Barkov
ff2f711d0c
Fix chain call of abstract class constructor ( #3868 ) ( #3883 )
2023-01-17 13:02:39 -05:00
Wilson Snyder
46cc7b5d07
Test ( #3876 )
2023-01-17 07:31:04 -05:00
Kamil Rakoczy
4d453c6822
Fix to use same std flag in Verilator and Verilated design ( #3881 )
2023-01-17 07:11:12 -05:00
Aleksander Kiryk
a1160a85a3
Support p format for UnpackArray ( #3877 )
2023-01-16 12:41:02 -04:00
Andrew Nolte and Andrew Nolte
e5eb7d8930
Add VL_VALUE_STRING_MAX_WORDS override ( #3869 )
...
Co-authored-by: Andrew Nolte <[email protected] >
2023-01-13 15:23:15 -05:00
Wilson Snyder
83f6b11235
Fix astgen in CMakeLists.txt ( #3867 )
2023-01-13 09:33:50 -05:00
Wilson Snyder
5fce23e90d
Fix empty case items crash ( #3851 ).
2023-01-10 07:18:12 -05:00
Wilson Snyder
7e4760a7e4
Commentary ( #3847 )
2023-01-10 07:13:08 -05:00
Larry Doolittle
2d6d1235d6
Commentary: Spelling (and grammar) fixes ( #3846 )
2023-01-08 18:17:24 -05:00
Wilson Snyder
520f6e5fdc
CI: Try apt twice to reduce false network failures
2023-01-07 20:27:00 -05:00
Wilson Snyder
30f6831be6
Commentary: Changes update
2023-01-07 14:54:12 -05:00
Wilson Snyder
26e2f9e629
Commentary: Remove unintended text
2023-01-06 07:34:24 -05:00
Wilson Snyder
1d2293b783
Fix some indents of warnMore
2023-01-05 17:59:51 -05:00
Ryszard Rozak
4784daa7dc
Add IMPLICITSTATIC warning when a ftask/function is implicitly static ( #3839 )
2023-01-05 17:42:05 -05:00
Sören Tempel
78fe77db0f
Fix compatibility with musl libc / Alpine Linux ( #3845 )
2023-01-05 15:50:25 -05:00
Wilson Snyder
c039a5229d
github: Remove 18.04
2023-01-05 07:25:34 -05:00
Larry Doolittle
2ab70ba452
Internals: Cleanup .txt file whitespace ( #3842 )
2023-01-05 05:00:54 -05:00
Larry Doolittle
4370490a71
Convert three files from Unicode to ASCII ( #3841 )
2023-01-04 21:19:07 -05:00
Yutetsu TAKATSUKASA
816cff009a
Fix #3824 of wrong bit op tree optimization ( #3825 )
...
* Tests: Add a test to reproduce #3824
* Fix #3824 of wrong bitOpTree optimization. Consider constant 1 in an Or-tree made by shift-out.
2023-01-04 23:10:55 +09:00
Wilson Snyder
e004ea7ae2
Revert ( #3835 ) ( #3836 )
2023-01-03 08:25:30 -05:00
Andrew Nolte
6159a7dd8d
Fix VPI generate scope array naming ( #3835 ) ( #3836 )
2023-01-03 07:38:55 -05:00
Kamil Rakoczy
be65030d61
Fix cmake upper-case and missing include directory ( #3838 )
2023-01-02 06:25:50 -05:00
Geza Lore
a168d593eb
Fix some front-end memory leaks
2023-01-01 15:31:29 +00:00
Geza Lore
6ab47f799b
Actually delete the netlist when VL_LEAK_CHECKS
2023-01-01 15:31:29 +00:00
Geza Lore
fd52f7f479
Fix memory leak in V3Sched.
...
Fixes #3834 .
2023-01-01 15:31:29 +00:00
Wilson Snyder
b24d7c83d3
Copyright year update
2023-01-01 10:18:39 -05:00
Ryszard Rozak
bf4a844f2b
Fix self references when param class instantiated ( #3833 )
2022-12-30 06:05:01 -05:00
Wilson Snyder
5dbff89a90
Internal line coverage fixes
2022-12-29 20:18:28 -05:00
Wilson Snyder
9255707dd4
Fix detecting multiple pattern defaults
2022-12-29 20:16:30 -05:00
Wilson Snyder
24198ef0ed
Internal line coverage fix
2022-12-29 14:18:45 -05:00
Wilson Snyder
8064b78d4f
Test: Rename
2022-12-29 14:10:47 -05:00
Wilson Snyder
fde380868a
Fix misc memory leaks
2022-12-29 13:59:24 -05:00
Wilson Snyder
be42dc906c
Fix GDB watchedit
2022-12-29 13:58:19 -05:00
Wilson Snyder
bad4110b03
For --stat, add total elapsed time
2022-12-29 11:48:19 -05:00
github action
f6b101d98b
Apply 'make format'
2022-12-26 09:31:25 +00:00
Larry Doolittle
80a144797d
Commentary: Fix more spelling ( #3828 )
2022-12-26 10:30:41 +01:00
Kritik Bhimani
a86ded97c9
CI: Add ci for cmake on windows ( #2681 ) ( #3819 )
2022-12-23 18:12:17 -05:00
Wilson Snyder
45abcb6107
Internals: Some V3LinkInc cleanups. No functional change.
2022-12-23 16:17:08 -05:00
Wilson Snyder
1f58f48c05
Tests: Rename test of last commit
2022-12-23 13:12:21 -05:00
Wilson Snyder
d5a18c99fe
fungetc has lvalue character argument.
2022-12-23 13:00:34 -05:00
Wilson Snyder
c0499da28b
Spelling fixes
2022-12-23 11:32:38 -05:00
Wilson Snyder
3ccb2e0f2d
Fix initiation of function variables ( #3815 ).
2022-12-23 10:51:52 -05:00
Wilson Snyder
afd7c2ae25
Internals: Use visitor to refactor Ctors, prep for ( #3815 )
2022-12-23 10:12:11 -05:00
Krzysztof Bieganski
bb44d4e4f2
Support clocking blocks ( #3674 )
2022-12-23 07:34:49 -05:00
Wilson Snyder
d64971ba35
Fix some MSVC warnings.
2022-12-22 12:19:09 -05:00
Wilson Snyder
71d29a235f
Commentary: Changes update
2022-12-20 19:51:17 -05:00
Kritik Bhimani
65daf99bf4
Support Windows-native builds using cmake ( #3814 )
2022-12-20 19:42:27 -05:00
Jevin Sweval
299261714b
Fix crash in DFT due to width use after free ( #3817 ) ( #3820 )
2022-12-20 19:36:04 -05:00
Aleksander Kiryk
c2b09e35f8
Support unpacked structs ( #3802 )
2022-12-20 19:22:42 -05:00
Wilson Snyder
c3b4bc85fa
Tests: Ignore tabs in .mk.in
2022-12-20 11:20:23 -05:00
Jevin Sweval
3340f7b0b4
Fix macOS weak symbols with -U linker flag ( #3823 )
2022-12-20 11:17:43 -05:00
Mariusz Glebocki
cb413aa264
Tests: Make it mt-safe to call operators on guarded and local objects. ( #3821 )
2022-12-19 10:53:28 -05:00
Kamil Rakoczy
982fa3d7bb
Fix signed/unsigned comparison compile warning ( #3822 )
2022-12-19 10:52:19 -05:00
Wilson Snyder
51de2c9194
Remove reader task code which was non-functional ( #3360 )
2022-12-17 16:48:08 -05:00
Wilson Snyder
a15cd76a28
Tests: Add copyright.
2022-12-16 18:09:00 -05:00
Kamil Rakoczy
7a15457511
Tests: Add multithreading attribute checks ( #3748 )
2022-12-16 11:19:27 -05:00
Kamil Rakoczy
4f7df4a915
Internals: Mark more VL_MT_SAFE functions ( #3816 ).
2022-12-16 10:14:02 -05:00
Wilson Snyder
a554dd7c8d
Optimize expansion of extend operators - fix earlier commit.
2022-12-15 22:49:49 -05:00
Wilson Snyder
073af8e1f2
Fix to zero possibly uninitialized bits in replications ( #3815 )
2022-12-15 22:00:21 -05:00
Wilson Snyder
2eafd82696
Internals: Mark more VL_MT_SAFE functions ( #3748 ). No functional change
2022-12-15 21:32:34 -05:00
Wilson Snyder
7d93952a0d
Fix make intermediate ( #3748 )
2022-12-15 19:53:51 -05:00
Wilson Snyder
1ddb2dd5e7
Fix make intermediate ( #3748 )
2022-12-15 19:26:54 -05:00
Wilson Snyder
2770ddf071
Optimize expansion of extend operators.
2022-12-15 07:38:53 -05:00
Wilson Snyder
bae60ab8ea
devel release
2022-12-14 22:08:39 -05:00
Wilson Snyder
4cefccf5d2
Version bump
2022-12-14 21:59:58 -05:00
Kamil Rakoczy
925fb921a2
Fix missing VL_REQUIRES in definition ( #3804 )
2022-12-14 21:16:16 -05:00
github action
fcd1306ef3
Apply 'make format'
2022-12-14 12:08:19 +00:00
Kritik Bhimani
9d2f1c607a
Fix MSVCC issues ( #3813 )
2022-12-14 07:07:25 -05:00
Wilson Snyder
f331c192b4
Tests: Fix duplicated if.
2022-12-12 21:32:45 -05:00
github action
d192372c7e
Apply 'make format'
2022-12-12 23:46:23 +00:00
Kritik Bhimani
7b073fec7d
Fix MSVC++ portability issues ( #3812 )
2022-12-12 18:45:32 -05:00
Wilson Snyder
424faa883e
Internals: Mark more VL_MT_SAFE functions. No functional change
2022-12-11 23:10:59 -05:00
Wilson Snyder
61d6546400
Internals: Mark more VL_MT_SAFE functions. No functional change
2022-12-11 23:03:27 -05:00
Wilson Snyder
972a11537c
Internals: Fix lint-py warnings
2022-12-11 21:58:02 -05:00
Wilson Snyder
609bfa46e8
Fix ENUMVALUE on parameter, again ( #3777 ).
2022-12-11 21:10:12 -05:00
Wilson Snyder
01b521a0ea
Commentary: Changes update
2022-12-11 15:10:23 -05:00
Wilson Snyder
0a3c90e517
Fix forked processes compiled as slow/cold ( #3766 )
2022-12-11 14:44:18 -05:00
Wilson Snyder
afc66f6a85
Fix make jobserver with submakes ( #3758 ).
2022-12-11 14:19:40 -05:00
Wilson Snyder
722e38f532
Commentary, part of last commit ( #3783 )
2022-12-11 13:30:00 -05:00
Wilson Snyder
86b07423a9
Fix ENUMVALUE on parameter ( #3777 ).
2022-12-11 13:28:24 -05:00
Wilson Snyder
3f4d4dec77
Fix ENUMVALUE on typedef ( #3777 )
2022-12-11 11:50:22 -05:00
Wilson Snyder
86e3c02339
Internal: Remove stale make rule ( #3811 ).
2022-12-11 09:48:25 -05:00
Wilson Snyder
b6cdae30f6
docs: Fix grammar.
2022-12-10 20:09:47 -05:00
Wilson Snyder
a9ff0a0f32
docs: Fix grammar
2022-12-09 23:16:14 -05:00
Wilson Snyder
a0e7930036
docs: Fix spelling
2022-12-09 22:39:41 -05:00
Wilson Snyder
d61ad04f32
docs: Fix and test for AsciiDoc breaks ( #3728 )
2022-12-09 21:01:33 -05:00
Wilson Snyder
0824ef377f
wip
2022-12-09 20:32:09 -05:00
Wilson Snyder
fc2654f1f6
msg
2022-12-09 20:17:19 -05:00
Kamil Rakoczy
5aa935d170
Internals: Add annotations for check attributes ( #3803 )
2022-12-09 07:12:26 -05:00
Wilson Snyder
bcf58defe0
Update include/gtkwave from upstream
2022-12-08 07:30:23 -05:00
Wilson Snyder
2dc0053ea4
Tests: rename
2022-12-08 07:23:53 -05:00
Krzysztof Bieganski
4b6e15d0eb
Fix non-blocking assignments in forks ( #3781 ) ( #3800 )
2022-12-06 07:16:07 -05:00
Krzysztof Bieganski
87bb32fde1
Fix forks without any delayed statements ( #3792 ) ( #3801 )
2022-12-06 07:14:29 -05:00
Wilson Snyder
ea1b141d13
Support probablity distribution functions.
2022-12-04 17:30:51 -05:00
Wilson Snyder
84c7368621
Rename std.sv and add to install.
2022-12-03 11:31:26 -05:00
Wilson Snyder
675cc891a5
Tests: Add rerunnable(0)
2022-12-02 19:57:40 -05:00
Wilson Snyder
0809c17ce1
Tests: Rename some tests that should be _bad.
2022-12-02 19:17:29 -05:00
Larry Doolittle
f27cf4c804
Commentary: Fix spelling in C++ comments ( #3797 ) ( #3798 )
2022-12-02 18:46:38 -05:00
Wilson Snyder
701d2277cd
Tests: rename
2022-12-02 07:34:34 -05:00
Wilson Snyder
338e875b70
Internals: Mark more VL_MT_SAFE functions. No functional change
2022-12-01 19:32:09 -05:00
Wilson Snyder
87135d0b2d
Internals: Fix missing const. No functional change.
2022-12-01 18:47:09 -05:00
Wilson Snyder
e465a30eee
Fix lint_off EOFNEWLINE in .vlt files ( #3796 ).
2022-12-01 18:27:36 -05:00
Yutetsu TAKATSUKASA
889a1211f1
Fix 3786 (Internal error in bit op tree optimization) ( #3793 )
...
* Tests: Add a test to reproduce 3786
* Fix #3786 (Internal error in bit op tree optimization).
2022-12-01 22:00:24 +09:00
Wilson Snyder
31d8b4cb8e
Internals: Rename AstNodeSystem*D etc. No functional change intended.
2022-11-30 22:08:57 -05:00
Wilson Snyder and G-A. Kamendje
d87ef8394a
Fix CASEINCOMPLETE when covers all enum values ( #3745 ) ( #3782 ).
...
Co-authored-by: "G-A. Kamendje" <[email protected] >
2022-11-30 19:42:21 -05:00
Wilson Snyder
4f4c26383c
Support unpacked byte assignment from strings.
2022-11-30 19:17:28 -05:00
Wilson Snyder
42e4e18ec8
Support multiple $dumpvar identifiers
2022-11-30 18:13:57 -05:00
Wilson Snyder
355c4f76d0
Add error when super.new is not first statement ( #3789 )
2022-11-30 07:41:57 -05:00
Ryszard Rozak
073dc03adc
Support super.new calls ( #3789 )
2022-11-30 06:42:48 -05:00
Wilson Snyder
468a33b61c
Move SystemC requirement out of .cpp files ( #3507 )
2022-11-29 22:44:37 -05:00
Wilson Snyder
8ff607f679
Deprecate verilated_fst_sc.cpp and verilated_vcd_sc.cpp ( #3507 )
2022-11-29 22:17:50 -05:00
Wilson Snyder
6143892619
Internals: Add some VL_UNLIKELY. No functional change.
2022-11-29 20:36:56 -05:00
Wilson Snyder
b51bb4d0e7
Internal: Add node objects to UASSERT ( #3786 )
2022-11-29 18:34:44 -05:00
Wilson Snyder
f0a7abcef8
Internals: Use named accessors instead of op1p etc. No functional change intended.
2022-11-29 18:17:50 -05:00
Ryszard Rozak
faedcc755b
Tests: Add test of passing this as argument ( #3790 )
2022-11-29 10:46:26 -05:00
Yinan Xu
ff9596bb23
Fix missing user objects in --lib-create mode ( #3780 ) ( #3784 )
2022-11-29 09:02:39 -05:00
Wilson Snyder
7d807a7e0e
Commentary
2022-11-29 07:33:12 -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 <[email protected] >
2022-11-28 16:53:55 +01:00
Wilson Snyder
4452a9b10f
Internals: Fix some VL_MT metacomments.
2022-11-28 07:08:34 -05:00
Larry Doolittle
6349e76abd
Remove $date from .vcd files ( #3779 )
2022-11-27 20:24:22 -05:00
Wilson Snyder
f4be3d5d2b
Fix empty string literals converting to string types ( #3774 ).
2022-11-27 13:28:57 -05:00
Wilson Snyder
054b792021
Fix ENUMVALUE error to show value location ( #3783 )
2022-11-27 08:44:30 -05:00
Wilson Snyder
c303ba7f0a
Prefer std:: in examples
2022-11-27 08:32:34 -05:00
Wilson Snyder
2c7f1ef40f
Internals: Cleanup debug dumps so can grep-out leading-dashed lines
2022-11-27 08:31:22 -05:00
Wilson Snyder
5f583b0680
Fix clang warning from previous commits.
2022-11-27 06:27:51 -05:00
Wilson Snyder
fa4270b551
bisonpre: Commentary
2022-11-27 06:18:58 -05:00
Wilson Snyder
d8071819fc
Fix unquoted name in dtype errors.
2022-11-27 05:59:40 -05:00
Wilson Snyder
833780fac1
Internal: cppcheck fixes. No functional change intended.
2022-11-27 05:52:40 -05:00
Wilson Snyder
4b3731d318
Remove env from main() to be C++11 compatible
2022-11-23 18:50:31 -05:00
Ryszard Rozak
68f8617f79
Support member selects in with clauses ( #3775 )
2022-11-23 13:15:10 -05:00
Wilson Snyder
a83ed6b06f
Internals: Fix destructor calling virtual. No functional change intended.
2022-11-23 07:04:22 -05:00
github action
821dd070bf
Apply 'make format'
2022-11-23 09:08:02 +00:00
Yves Mathieu
06fdf7be58
Add support of Events for VCD/FST traces ( #3759 )
2022-11-23 04:07:14 -05:00
Wilson Snyder
e97e6c2213
Fix V3Tristate warning ( #3773 )
2022-11-22 17:46:58 -05:00
Geza Lore
508e937164
Fix tautological predicate in V3DfgPeephole
...
Fixes #3771
2022-11-22 15:05:34 +00:00
Ryszard Rozak
57975c82b7
Support 'with' in unique, unique_index, min, max in queues ( #3772 )
2022-11-22 09:10:25 -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
0af02563ca
Internals: Fix verilog.y style
2022-11-21 20:22:13 -05:00
Wilson Snyder
b82ce5743b
Internals: Fix verilog.y style
2022-11-21 08:30:40 -05:00
Wilson Snyder
d3c1f4353e
Fix float parameters without parens
2022-11-21 06:48:13 -05:00
Ryszard Rozak
62bdd3ab49
Fix timing control in while-break loops ( #3733 ) ( #3769 )
2022-11-21 06:27:55 -05:00
Wilson Snyder
2eed4452ad
Internals: Fix constructor style.
2022-11-20 20:13:55 -05:00
Wilson Snyder
f44cd9cd48
Internals: Fix constructor style.
2022-11-20 17:40:38 -05:00
Wilson Snyder
25f970eac2
Internals: Fix constructor style.
2022-11-20 15:06:49 -05:00
Geza Lore
3abb65d732
Strengthen AstNode types to AstNodeExpr
...
Declare every AstNode children and variables as AstNodeExpr where we
statically know this is the appropriate sub-type.
2022-11-20 19:31:28 +00:00
Wilson Snyder
352d0b4582
Internals: Fix constructor style.
2022-11-20 13:11:01 -05:00
github action
a60e273c29
Apply 'make format'
2022-11-20 15:26:23 +00:00
Jiacheng Qian
47253450a4
Fix to escape VERILATOR_ROOT file paths ( #3764 ) ( #3765 )
2022-11-20 10:25:41 -05:00
Wilson Snyder
278d532368
Tests: Add TEST_DUMPFILE define
2022-11-20 09:40:02 -05:00
Wilson Snyder
6297650fef
Tests: Fix internal error stability
2022-11-20 07:45:51 -05:00
Wilson Snyder
5634e96bb6
Tests: Remove unsupported() in tests, instead check whatever is current behavior
2022-11-19 22:43:10 -05:00
Wilson Snyder
e266b2cb03
Tests: Add $dist tests
2022-11-19 22:01:55 -05:00
Wilson Snyder
0af3efda5c
Tests: Fix top_filename to properly test ( #3767 )
2022-11-19 17:09:43 -05:00
Wilson Snyder
d3e1c40238
Tests: Cleaner macro. No functional change.
2022-11-19 17:06:11 -05:00
Wilson Snyder
aacb38b776
Support assignment expressions.
2022-11-19 15:23:37 -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
Andrew Nolte
cd2208ea3f
Contributors ( #3762 )
2022-11-19 14:09:51 -05:00
Wilson Snyder
3a27e3d67b
Fix false ENUMVALUE errors in unstable branch ( #3761 )
2022-11-19 14:07:39 -05:00
Wilson Snyder
09dff9c3a7
Fix false ENUMVALUE errors in unstable branch ( #3761 )
2022-11-19 13:30:23 -05:00
Wilson Snyder
f266b02bc7
Internals: Improve dtype small dump.
2022-11-19 13:23:28 -05:00
Wilson Snyder
de9c92fd14
Internals: Add missing const. No functional change.
2022-11-19 10:48:46 -05:00
Wilson Snyder
0322e9da7e
Fix randcase inside function.
2022-11-18 21:30:34 -05:00
Wilson Snyder
b2d92b7c25
Allow ENCAPSULATED and ENUMVALUE to be disabled
2022-11-18 21:30:34 -05:00
Ryszard Rozak
ef72b73a59
Support foreach loops on strings ( #3760 )
2022-11-18 07:07:56 -05:00
Wilson Snyder
749aab0a56
Support triple-quote blocks.
2022-11-17 20:38:01 -05:00
github action
cd8528e83b
Apply 'make format'
2022-11-18 00:14:05 +00:00
Wilson Snyder
e8a1e4745c
Support $stacktrace
2022-11-17 19:12:54 -05:00
Wilson Snyder
96306b7630
Tests: Update t_class_class
2022-11-17 18:15:38 -05:00
Ryszard Rozak
d41efb189d
Fix pre/postincrement operations ( #3744 ) ( #3756 )
2022-11-17 13:26:45 -05:00
Wilson Snyder
3c77c7bb92
Support and
2022-11-16 21:10:54 -05:00
Ryszard Rozak
3ddfa214e3
Fix $unit as base package for other packages ( #3755 )
2022-11-16 18:58:57 -05:00
Wilson Snyder
a58cd66358
Fix printtimescale
2022-11-16 18:17:24 -05:00
Kamil Rakoczy
79e0fa3327
CI: Switch building pull requests to ubuntu 22.04 ( #3753 )
2022-11-16 10:14:12 -05:00
Miodrag Milanović
f782496092
Fix for mingw cross-compile, arm and riscv ( #3752 )
2022-11-16 05:34:25 -08:00
Mariusz Glebocki
dc28e7f3e2
Commentary. Remove repeated entry in Verilator help. ( #3754 )
2022-11-16 05:32:32 -08:00
Wilson Snyder
e6da59eecd
Internals: Mark some VL_PURE functions. No functional change.
2022-11-15 09:18:47 -05:00
Wilson Snyder
04f68cbd99
Internals: Spacing
2022-11-13 21:58:18 -05:00
Wilson Snyder
8c6d1e53ca
Internals: Fix some 'p' names, and make new base class for VlDeleter. No functional change intended.
2022-11-13 17:40:50 -05:00
Wilson Snyder
c6ecd60993
Support pre_randomize and post_randomize.
2022-11-13 11:59:40 -05:00
Wilson Snyder
ee26dddfa1
Internals: Fix constructor style.
2022-11-13 11:23:57 -05:00
github action
d1658b9e82
Apply 'make format'
2022-11-13 14:27:37 +00:00
Wilson Snyder
818347f99b
Internals: Fix some unnecessary member paddings. No functional change intended.
2022-11-13 09:26:46 -05:00
Kritik Bhimani
201419c646
Fix MSVC compiler errors ( #3742 ) ( #3746 )
2022-11-13 08:35:06 -05:00
Wilson Snyder
d25834e57b
Add ENUMVALUE warning when value misused for enum ( #726 ).
2022-11-12 20:11:05 -05:00
Wilson Snyder
4f50073feb
Internals: Fix constructor style.
2022-11-12 19:51:03 -05:00
Wilson Snyder
218dd4322b
Fix C++11 warnings
2022-11-12 16:03:13 -05:00
Geza Lore
eaf09ba0e7
Dfg: resolve multi-driven signal ranges
...
In order to avoid unexpected breakage on multi-driven variables, we
resolve in DFG construction by using only the first driver encountered.
Also issues the MULTIDRIVEN error for these signals.
2022-11-12 20:34:51 +00:00
github action
8291d8bcc1
Apply 'make format'
2022-11-12 17:10:41 +00:00
Wilson Snyder
0a045a7bf6
Change ENDLABEL from warning into an error.
2022-11-12 12:09:48 -05:00
Geza Lore
dbcaad99c5
Dfg: Fix crash on additional driver from non-DFG logic
...
Ensure variables written by non-DFG code are kept
Fixes #3740
2022-11-12 11:55:49 +00:00
Wilson Snyder
6736e92cdb
Internals: Fix some ugly line breaks. No functional change.
2022-11-11 22:33:17 -05:00
Wilson Snyder
a427860825
Support randcase.
2022-11-11 21:53:05 -05:00
William D. Jones
41d2ebe288
Fix CONTEXT compile error on mingw64 ( #3741 ).
2022-11-11 21:43:10 -05:00
Wilson Snyder
227e61f891
Fix comparing ranged slices of unpacked arrays.
2022-11-11 18:01:30 -05:00
Wilson Snyder
b2e61425d6
Fix const initial assignments.
2022-11-11 17:45:34 -05:00
Wilson Snyder
9d7c4d9af3
Fix wait 0.
2022-11-11 17:18:59 -05:00
Wilson Snyder
0c75d4eaca
Internals: Fix constructor style.
2022-11-10 22:58:27 -05:00
Wilson Snyder
528a73a492
Fix instability after disable iff error.
2022-11-10 22:09:24 -05:00
Wilson Snyder
fbf2e59c85
Fix loss of V3Simulate on expression statements.
2022-11-10 20:49:11 -05:00
Wilson Snyder
16586d1d37
Fix tracing parameters overridden with -G ( #3723 ).
2022-11-10 20:30:10 -05:00
Ryszard Rozak
441b5da5ce
Fix 'with' clause handling in functions ( #3739 )
2022-11-10 18:08:15 -05:00
Kamil Rakoczy
207bc2b18a
Fix comment annotation
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2022-11-10 13:36:14 +00:00
Wilson Snyder
e64295e92b
Fix missing UNUSED warnings with --coverage ( #3736 ).
2022-11-09 21:45:14 -05:00
Ryszard Rozak
cbf9cc8e5f
Fix return in constructors ( #3734 )
2022-11-09 06:32:22 -05:00
Ryszard Rozak
a29d9469da
Fix jump handling in do while loops ( #3731 )
2022-11-08 20:01:08 -05:00
Geza Lore
2a3eabff73
Various Dfg performance improvements
2022-11-06 15:54:51 +00:00
Geza Lore
454efbe3fc
Dfg: Use a worklist driven algorithm for unused vertex removal
...
This improves verilation speed slightly.
2022-11-06 14:13:42 +00:00
Geza Lore
fb9ec03c3f
DfgPeephole: Use a work list driven algorithm for speed
...
Replace the 'run to fixed point' algorithm with a work list driven
approach. Instead of marking the graph as changed, we explicitly add
vertices to the work list, to be visited, when a vertex is changed. This
improves both memory locality (as the work list is processed in last in
first out order), and removed unnecessary visitations when only a few
nodes changes.
2022-11-05 20:31:09 +00:00
Wilson Snyder
21926eeb6b
Tests: Improve some coverage
2022-11-05 11:40:34 -04:00
Geza Lore
6ae6b16223
V3Const: Fix folding of LogAnd with non-bool operands
...
Folding an AstLogAnd with a non-zero constant operand used to coerce the
type of the other operand, yielding an ill-typed node that DFG was then
unhappy about. Add a RedOr instead if the width of the replacement
operand is greater than zero.
Fixes #3726
2022-11-05 13:36:21 +00:00
Wilson Snyder
167f4ebbd4
Commentary: Changes update
2022-11-05 09:32:41 -04:00
Kamil Rakoczy
d6126c4b32
Remove --no-threads; require --threads 1 for single threaded ( #3703 ).
2022-11-05 08:47:34 -04:00
Ryszard Rozak
8d61cea366
Fix return type of $countbits functions to int ( #3725 )
2022-11-04 08:58:17 -04:00
Geza Lore
65e08f4dbf
Make all expressions derive from AstNodeExpr ( #3721 ).
...
Apart from the representational changes below, this patch renames
AstNodeMath to AstNodeExpr, and AstCMath to AstCExpr.
Now every expression (i.e.: those AstNodes that represent a [possibly
void] value, with value being interpreted in a very general sense) has
AstNodeExpr as a super class. This necessitates the introduction of an
AstStmtExpr, which represents an expression in statement position, e.g :
'foo();' would be represented as AstStmtExpr(AstCCall(foo)). In exchange
we can get rid of isStatement() in AstNodeStmt, which now really always
represent a statement
Peak memory consumption and verilation speed are not measurably changed.
Partial step towards #3420
2022-11-03 16:02:16 +00:00
Wilson Snyder
cf4c00e3b4
Internals: if assertion should be VL_UNLIKELY
2022-11-02 20:11:25 -04:00
Ryszard Rozak
bac98df46b
Support named properties ( #3667 )
2022-11-01 18:53:47 -04:00
Wilson Snyder
0b0b642241
devel release
2022-10-29 17:54:12 -04:00
Wilson Snyder
52d29d238c
Version bump
2022-10-29 17:45:54 -04:00
Geza Lore
0675510eb9
DFG: Fix attempted evaluation of constants wider than 32 bits
...
Fixes #3718
2022-10-28 17:14:19 +01:00
Geza Lore
99791ac8b3
Reduce verbosity of DFG debug
2022-10-28 16:35:53 +01:00
Wilson Snyder
ee26378394
Tests: Fix instability ( #3717 )
2022-10-28 10:32:52 -04:00
Geza Lore
54c4351c39
V3Const: Do not introduce redundant AstExtend
...
Fixes #3716
2022-10-28 14:54:00 +01:00
Geza Lore
e504e9aced
Optimize clocked processes to comb when referencing const variables
...
In V3Active, we try hard to turn `always @(a or b or c)` into an
`always_comb` if the only variables read in the block are also in the
sensitivity list. In addition, also allow this optimization when reading
variables that are not in the sensitivity list, but are known to be
constant/never changing after initialization. In particular lookup
tables introduced by V3Table are covered by this. This can have a
significant impact on designs that use the `always @(a or b or c)` style
for combinational logic.
2022-10-28 14:37:30 +01:00
Geza Lore
ef2776034e
Adjust instruction count estimates for AstCMethodHard
...
The cost of an AstCMethodHard right now is generally unknown. However,
VlTriggerVec::at is used a lot in conditions, so we make an effort
to estimate this correctly via 2 changes:
- In general when an AstVarRef appears as the target of an
AstCMethodHard, we cost it as a simple address computation (an add)
- Check for VlTriggerVec::at explicitly when costing AstCMethodHard,
which is essentially a load.
This can have a significant effect when there are a lot of unique
triggers in the design.
2022-10-28 14:37:30 +01:00
Wilson Snyder
5c658f8cd5
Fix width mismatch on inside operator ( #3714 ).
2022-10-28 06:38:49 -04:00
Wilson Snyder
0ed7aaeabd
Update include/gtkwave/fstapi.c from upstream.
2022-10-27 21:37:09 -04:00
Wilson Snyder
5f9b0929b4
Commentary: Changes update
2022-10-27 21:35:09 -04:00
Geza Lore
65290afe0a
Fix VString::endsWith when suffix is longer than input string.
2022-10-27 18:38:44 +01:00
Kamil Rakoczy
ed93a111c2
Fix deadlock in `timeprecision` when using systemC ( #3707 )
2022-10-26 04:50:28 -07:00
Wilson Snyder
3487701b04
Tests: Cover some previously uncovered warnings
2022-10-22 16:03:42 -04:00
Wilson Snyder
d33a3d09f7
Tests: Fix bison-dependent .out
2022-10-22 14:35:36 -04:00
Wilson Snyder
0716a28816
Tests: Check for v3warn/v3error without a test
2022-10-22 13:46:49 -04:00
Wilson Snyder
8e1901da10
Tests: Cover some previously uncovered warnings
2022-10-22 13:45:48 -04:00
Wilson Snyder
ecfa385f13
Test/cleanup endtable without table
2022-10-22 12:30:44 -04:00
Wilson Snyder
63df87e220
Commentary
2022-10-22 12:18:28 -04:00
Wilson Snyder
495d52d30f
Test and fix extra end_keywords
2022-10-22 12:17:56 -04:00
Wilson Snyder
2df886b2b0
Tests: Check std:: package for mailbox/process/semaphore
2022-10-22 10:58:10 -04:00
Krzysztof Bieganski
fcf0d03cd4
Dynamic triggers for non-static contexts ( #3599 )
...
In non-static contexts like class objects or stack frames, the use of
global trigger evaluation is not feasible. The concept of dynamic
triggers allows for trigger evaluation in such cases. These triggers are
simply local variables, and coroutines are themselves responsible for
evaluating them. They await the global dynamic trigger scheduler object,
which is responsible for resuming them during the trigger evaluation
step in the 'act' eval region. Once the trigger is set, they await the
dynamic trigger scheduler once again, and then get resumed during the
resumption step in the 'act' eval region.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-22 14:05:39 +00:00
Wilson Snyder
4154584c4b
Commentary: Changes update
2022-10-21 20:04:07 -04:00
Wilson Snyder
a57a3579c0
Fix false LATCH warning on 'unique if' ( #3088 ).
2022-10-21 19:10:06 -04:00
Wilson Snyder
203993b018
Internals: Fix constructor style.
2022-10-21 19:03:40 -04:00
Wilson Snyder
347e9b4ec8
Fix cell assigning integer array parameters ( #3299 ).
2022-10-21 18:26:39 -04:00
Wilson Snyder
9d02082801
Internals: Avoid VM_COVERAGE ifdef in library to get closer to libverilated.a
2022-10-21 17:09:06 -04:00
Krzysztof Bieganski
785c51dd0b
Fix emitting timing debug info with --protect-ids ( #3689 ) ( #3701 )
2022-10-21 16:56:44 -04:00
Jiuyang Liu
2e4f5c863f
Fix VPI inline module naming mismatch ( #3690 ) ( #3694 )
2022-10-21 13:04:42 -04:00
HungMingWu
196f3292d5
Improve V3Ast function usage ergonomics ( #3650 )
...
Signed-off-by: HungMingWu <[email protected] >
2022-10-21 14:12:12 +01:00
Arkadiusz Kozdra
627a144b83
Support access to constructs inside type parameters ( #3702 )
...
This changeset brings support for accesses like:
class Cls#(type TYPE1);
TYPE1::some_method();
endclass
It is done by delaying dot resolution on type parameters until they get
resolved by V3Param, and doing a more thorough reference skip.
2022-10-21 09:00:40 -04:00
Krzysztof Bieganski
5688d1a935
Internals: Add V3UniqueNames consistency assertion ( #3692 )
2022-10-21 07:05:38 -04:00
Geza Lore
8b0d71994d
DFG: don't try to call DfgVertex::width() on arrays
...
In DFG DfgVertex::width() is only defined for vertices representing
packed values, which DfgVertex::hash() used to violate. The only
non-packed values at the moment are DfgVarArray, which is a
DfgVertexVar, which are handled specially anyway, so this is easy to
fix.
Fixes #3682
2022-10-21 10:57:13 +01:00
Wilson Snyder
79682e6072
Support empty generate_regions ( #3695 ). [mpb27]
2022-10-20 22:04:50 -04:00
Wilson Snyder
7e1b92fa75
Add --get-supported to determine what features are in Verilator ( #3688 ).
2022-10-20 21:42:30 -04:00
Wilson Snyder
ca8ef7ce73
github: upload-artifacts/download-artifacts/cache@v3 ( #3700 )
2022-10-20 20:23:04 -04:00
Wilson Snyder
23d538fdaf
github: upload-artifacts/download-artifacts/cache@v3
2022-10-20 20:04:45 -04:00
Wilson Snyder
aaadc3def7
github: Use checkout@v3 ( #3700 )
2022-10-20 19:57:50 -04:00
Krzysztof Bieganski
444a4a760c
Support timing with more Clang and libc++ versions ( #3669 ) ( #3698 )
2022-10-20 19:54:22 -04:00
Wilson Snyder
b42799f3b5
Commentary
2022-10-20 19:48:13 -04:00
Geza Lore
7b07cf912e
Delete trigger dump when --protect-ids is used
...
In order to not leak signal names with --protect-ids, we simply make the
trigger dump function empty (this is a debug only construct).
Partial fix for #3689
2022-10-20 15:44:51 +01:00
Geza Lore
6a3ec17887
DFG: Do not inline SystemC variables
...
The emitted SystemC types (e.g. sc_bv) are not interchangeable with
Verilator internal C++ types (e.g.: VlWide), so the variables themselves
are not interchangeable (but can be assigned to/from each other). We can
preserve correctness simply be not inlining any SystemC variables (i.e.:
don't simplify any 'sc = nonSc' or 'nonSc = sc' assignments). SystemC
types only appear at top level ports so this should have no significant
impact.
Fixes #3688
2022-10-20 15:44:51 +01:00
Krzysztof Bieganski
8c3ca30c91
Fix print format warning on some platforms ( #3699 )
2022-10-20 10:15:29 -04:00
Arkadiusz Kozdra
0e4da3b0bf
Support virtual interfaces ( #3654 )
2022-10-20 06:31:00 -04:00
Krzysztof Bieganski
e6add5e0b8
Fix trace activity with --timing ( #3576 ) ( #3678 ) ( #3696 )
2022-10-20 06:28:55 -04:00
Krzysztof Bieganski
22243d1e49
Support class type params without defaults ( #3693 )
2022-10-19 21:59:26 -04:00
Krzysztof Bieganski
bec0b7d4d0
Disallow delays with --lib-create ( #3691 )
2022-10-19 20:52:29 -04:00
Wilson Snyder
f6f13c7fda
Internals: Comment out debug that may flag ASAN problem ( #3574 )
2022-10-18 21:17:52 -04:00
Wilson Snyder
e7068369fe
Fix $display of fixed-width numbers ( #3565 ).
2022-10-18 21:10:35 -04:00
Wilson Snyder
b930d0731a
Fix foreach and pre/post increment in functions ( #3613 ).
2022-10-18 20:04:09 -04:00
Wilson Snyder
2723223884
Fix LSB error on --hierarchical submodules ( #3539 ).
2022-10-18 17:29:51 -04:00
Kamil Rakoczy
b6c116d4bf
Internals: Add VL_MT_SAFE annotations to const functions ( #3681 )
2022-10-18 17:07:09 -04:00
Kamil Rakoczy
54e3f15dce
Internals: Add attribute when using clang to VL_MT_SAFE and VL_MT_UNSAFE ( #3685 )
2022-10-18 05:15:33 -04:00
github action
c057847760
Apply 'make format'
2022-10-17 23:52:01 +00: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
5c65e0cfa1
Dfg: Fix incorrect folding of associative expressions with shared terms
...
Fixes #3679
2022-10-17 15:03:30 +01:00
Geza Lore
840e26b69a
Fix incorrect return in DFG decomposition
...
Fixes #3676
2022-10-17 14:41:20 +01:00
Krzysztof Bieganski
5e79652922
Test tracing with --timing and --main ( #3656 )
...
Add a test for tracing with `--main` and `--timing`.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-17 12:36:37 +02:00
Wilson Snyder
cb7b024e8f
Commentary: Spelling, and add upgrade notes ( #3462 )
2022-10-16 11:10:41 -04:00
Wilson Snyder
f3292a3651
Tests: Prove fixed ( #2410 )
2022-10-16 10:36:18 -04:00
Wilson Snyder
76ccd332a6
Internals: Remove DETECTARRAY, dead code.
2022-10-16 09:41:51 -04:00
Wilson Snyder
3cd2c8532d
Internals: Cleanup spacing of Vi for loops.
2022-10-15 18:47:10 -04:00
Wilson Snyder
c0739e908c
Fix internal traceActivity to be zero reset not randomized.
2022-10-15 18:37:44 -04:00
Wilson Snyder
379a947379
Tests: Fix some internal code coverage holes
2022-10-15 13:59:07 -04:00
Wilson Snyder
916a3d9066
Fix --main --trace missing initial timestep ( #3678 ).
2022-10-15 13:24:38 -04:00
Wilson Snyder
b16b607b98
Commentary: Changes update
2022-10-15 11:04:03 -04:00
Wilson Snyder
732d5bea10
Commentary: Standard format for company contributions
2022-10-15 10:59:31 -04:00
Wilson Snyder
d9a0d0ade2
Commentary (fix earlier commit)
2022-10-15 10:57:46 -04:00
Wilson Snyder
e32ff0e1a6
Tests: Better mailbox and semaphore tests.
2022-10-15 10:37:24 -04:00
Wilson Snyder
5957156dee
Tests: Fix bad result check.
2022-10-15 06:57:12 -04:00
Wilson Snyder
14f58ed6c7
Add error on real edge event control.
2022-10-15 06:21:34 -04:00
Arkadiusz Kozdra
038d57070b
Support standalone 'this' in classes ( #3675 ) ( #2594 ) ( #3248 )
2022-10-14 08:55:55 -04:00
Krzysztof Bieganski
8a347248f5
Use AstDelay nodes for intra-assignment delays ( #3672 )
...
Also fix messy implementation of net delays.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-14 09:35:26 +02:00
Krzysztof Bieganski
caed086516
Move Postponed logic after the eval loop ( #3673 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-13 21:04:43 +02:00
Krzysztof Bieganski
68927d4fd3
Make class ref typing stricter ( #3671 )
...
Prevents the possibility of assigning an integer to a class reference,
both at the SystemVerilog and the emitted C++ levels.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-13 14:33:15 +02:00
Geza Lore
b2070a9407
Commentary: Mention DFG in changes
2022-10-12 10:21:02 +01:00
github action
8dacbdec3a
Apply 'make format'
2022-10-11 09:04:38 +00:00
Geza Lore
2a110c91cf
Speed up DfgGraph decomposition algorithms
2022-10-11 09:55:08 +01:00
Krzysztof Bieganski
ba052beccd
Make reference to increment temporary an rvalue ( #3659 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-10 13:58:05 +02:00
Wilson Snyder
6f9c585452
Spelling ( #3664 )
2022-10-09 14:18:14 -04:00
Wilson Snyder
18c26b90af
Fix --trace with --main/--binary ( #3664 )
2022-10-09 14:16:44 -04:00
Geza Lore
ff49f797e5
Speed up DfgGraph::addGraph
...
Append whole lists in one go, rather than going item by item.
2022-10-08 12:46:02 +01:00
Geza Lore
c033a0d7c8
Optimize DfgGraph vertex storage
...
Vertices representing variables (DfgVertexVar) and constants (DfgConst)
are very common (40-50% of all vertices created in some large designs),
and we also need to, or can treat them specially in algorithms. Keep
these as separate lists in DfgGraph for direct access to them. This
improve verilation speed.
2022-10-08 12:46:02 +01:00
Geza Lore
461f3c1004
DFG: Remove topological sort
...
Cyclic components are now extracted separately, so there is no
functional reason to have to do a topological sort (previously we used it
to detect cyclic graphs). Removing it to gain some speed.
2022-10-08 12:46:02 +01:00
Geza Lore
90447d54d1
Make DfgConst hold V3Number directly
...
Remove intermediary AstConst. No functional change intended.
2022-10-08 12:46:02 +01:00
Geza Lore
439d30a953
Minor cleanup in V3Number
2022-10-08 12:46:02 +01:00
Iztok Jeras
a972230b3a
Commentary: example_binary does not uses SystemC code ( #3662 )
2022-10-08 09:50:15 +03:00
Geza Lore
29a080dd9b
DFG: Special case representation of AstSel
...
AstSel is a ternary node, but the 'widthp' is always constant and is
hence redundant, and 'lsbp' is very often constant. As AstSel is fairly
common, we special case as a DfgSel for the constant 'lsbp', and as
'DfgMux` for the non-constant 'lsbp'.
2022-10-06 19:59:01 +01:00
Geza Lore
0570cb8d9f
DFG: Correctly set dtype when converting DfgCountOnes to Ast
2022-10-06 19:59:01 +01:00
Geza Lore
6fa14bf029
Speed up DfgPeephole in various ways
2022-10-06 19:59:01 +01:00
Geza Lore
4f0158b5e0
Speed up Dfg common sub-expression elimination
...
Added a DfgVertex::user() mechanism for storing data in vertices.
Similar in spirit to AstNode user data, but the generation counter is
stored in the DfgGraph the vertex is held under. Use this to cache
DfgVertex::hash results, and also speed up DfgVertex hashing in general.
Use these and additional improvements to speed up CSE.
2022-10-06 19:59:01 +01:00
Krzysztof Bieganski
97add4d57a
Fix null access on optimized-out fork statements ( #3658 )
...
`V3SchedTiming` currently assumes that if a fork still exists, it must
have statements within it (otherwise it would have been deleted by
`V3Timing`). However, in a case like this:
```
module t;
reg a;
initial fork a = 1; join
endmodule
```
the assignment in the fork is optimized out by `V3Dead` after
`V3Timing`. This leads to `V3SchedTiming` accessing fork's `stmtsp`
pointer, which at this point is null. This patch addresses that issue.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-10-06 15:38:59 +02:00
Geza Lore
5b742571d3
DFG: run removeVars after CSE
...
This enables removing some more redundant variables.
2022-10-06 09:31:56 +01:00
Geza Lore
a83043d735
DfgPeephole: Rework folding of associative operations
...
Allow constant folding through adjacent nodes of all associative
operations, for example '((a & 2) & 3)' or '(3 & (2 & a))' can now be
folded into '(a & 2)' and '(2 & a)' respectively. Also improve speed of
making associative expression trees right leaning by using rotation of
the existing vertices whenever instead of allocation of new nodes.
2022-10-06 09:10:26 +01:00
Geza Lore
22fcd616aa
DfgPeephole: Further restrict PUSH_REDUCTION_THROUGH_CONCAT
...
Only apply when there is guaranteed to be a subsequent constant folding
and elimination of some of the expression, otherwise this sometimes
interferes with the simplification of concatenations and harms overall
performance.
2022-10-06 09:10:26 +01:00
Krzysztof Bieganski
1a8188e1b4
Fix linker errors in user-facing timing functions ( #3657 )
...
Before this change, a design verilated with `--timing` that does not
actually use timing features would be emitted with `eventsPending` and
`nextTimeSlot` declared in the top class. However, their definitions
would be missing, leading to linker errors during design compilation.
This patch makes Verilator always emit the definitions, which prevents
linker errors. Trying to use `nextTimeSlot` without delays in the design
will result in an error at runtime.
2022-10-05 18:16:05 -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
Geza Lore
f23f3ca907
Try to ensure DFG peephole patterns don't grow the graph
...
Some optimizations are only a net win if they help us remove a graph
node (or at least ensure they don't grow the graph), or yields otherwise
special logic, so try to apply them only in these cases.
2022-10-04 18:54:46 +01:00
Geza Lore
965d99f1bc
DFG: Make implementation more similar to AST
...
Use the same style, and reuse the bulk of astgen to generate DfgVertex
related code. In particular allow for easier definition of custom
DfgVertex sub-types that do not directly correspond to an AstNode
sub-type. Also introduces specific names for the fixed arity vertices.
No functional change intended.
2022-10-04 15:49:30 +01:00
Krzysztof Bieganski
56ac054fb2
Internals: Refactor verilated_timing.* ( #3653 ).
...
* Put suspended coroutine source location in a separate struct,
* Have `dump()` always print, wrap calls in `VL_DEBUG_IF`,
* Improve const correctness.
2022-10-03 11:40:30 -04:00
Wilson Snyder
ced82cbac4
Internals: Add some internal coverage exclusions etc. No functional change.
2022-10-03 10:57:37 -04:00
Geza Lore
2fc1746ef5
Tracing: Clear offload buffer pointers when no longer needed
...
These are also used as a marker (when non-nullptr) when creating a
buffer. Reset them when they are not valid to avoid invalid write if a
buffer is created after a close (due to a subsequent re-open).
Fixes #3651 .
2022-10-03 10:50:47 +01:00
Wilson Snyder
10fc1f757c
Internals: cppcheck cleanups. No functional change intended.
2022-10-02 23:04:55 -04:00
Wilson Snyder
90009b9ec7
Commentary: Fix sphinx doc warnings
2022-10-02 16:47:32 -04:00
Wilson Snyder
4367e03e46
Internals: Make VL_UNREACHABLE similar to std::unreachable()
2022-10-02 16:35:45 -04:00
Wilson Snyder
c9634695a7
Fix std::exchange for C++11 compilers
2022-10-02 16:25:11 -04:00
Geza Lore
2a12b052f2
DFG: handle simple always blocks
2022-10-01 16:46:58 +01:00
Geza Lore
84b9502af4
DFG: Add more peephole patterns
2022-10-01 16:46:58 +01:00
Geza Lore
694bdbc130
DFG: Improve .dot dumps slightly
2022-10-01 16:46:58 +01:00
Wilson Snyder
880cac2fdd
Merge branch 'master' into develop-v5
2022-10-01 11:24:55 -04:00
github action
a204b24fcf
Apply 'make format'
2022-10-01 15:06:12 +00:00
Marcel Chang
526e6b9fc7
Add --dump-tree-dot to enable dumping Ast Tree .dot files ( #3636 )
2022-10-01 11:05:33 -04:00
github action
f1ba6cb517
Apply 'make format'
2022-10-01 14:53:40 +00:00
Kanad Kanhere
159cf0429c
Support linting for top module interfaces ( #3635 )
2022-10-01 10:48:37 -04:00
Ryszard Rozak
46b8dca360
Add handling of tristate select/extend ( #3604 )
2022-10-01 10:34:30 -04:00
Wilson Snyder
4db998d357
CI: coverage on 22.04
2022-10-01 10:09:14 -04:00
Wilson Snyder
0b843ada03
devel release
2022-10-01 08:34:43 -04:00
Wilson Snyder
746c7ea8f7
Version bump
2022-10-01 08:28:27 -04:00
Wilson Snyder
5ed882faf2
Fix unused compiler warning when not VL_THREADED.
2022-09-30 23:41:35 -04:00
Wilson Snyder
fa4b10b4d9
Commentary: Changes update
2022-09-30 23:03:26 -04:00
Geza Lore
cc51966ad1
DFG: Remove unconneced variables early
2022-09-30 11:53:03 +01:00
Geza Lore
c9d6344f2f
DFG: Extract cyclic components separately
...
A lot of optimizations in DFG assume a DAG, but the more things are
representable, the more likely it is that a small cyclic sub-graph is
present in an otherwise very large graph that is mostly acyclic. In
order to avoid loosing optimization opportunities, we explicitly extract
the cyclic sub-graphs (which are the strongly connected components +
anything feeing them, up to variable boundaries) and treat them
separately. This enables optimization of the remaining input.
2022-09-30 09:51:10 +01:00
Geza Lore
acebafcbc2
DFG: Partial support for unpacked arrays
...
Representation and Ast / Dfg conversions available, for element-wise
access only. Not much optimization yet (only CSE).
2022-09-29 19:00:45 +01:00
Geza Lore
4a1a2def95
DFG: make variable inlining part of the peephole optimizer
...
This saves some traversals and prepares us to better handle cyclic DFGs.
2022-09-29 18:40:10 +01:00
Geza Lore
09e352ef66
DFG: support hashing of graphs circular through variables
...
No functional change
2022-09-29 18:40:10 +01:00
Geza Lore
17976d7401
DFG: fix REPLACE_EQ_OF_CONST_AND_CONST peephole pattern
2022-09-29 18:40:10 +01:00
Wilson Snyder
f25a9a4c80
examples: Use SC_ZERO_TIME in tracing ( #3646 )
2022-09-28 19:11:00 -04:00
Wilson Snyder
cd2a5771b8
Add --timing to --binary ( #3625 ).
2022-09-28 19:02:23 -04:00
Krzysztof Bieganski
9c2ead90d5
Add custom memory management for verilated classes ( #3595 )
...
This change introduces a custom reference-counting pointer class that
allows creating such pointers from 'this'. This lets us keep the
receiver object around even if all references to it outside of a class
method no longer exist. Useful for coroutine methods, which may outlive
all external references to the object.
The deletion of objects is deferred until the next time slot. This is to
make clearing the triggered flag on named events in classes safe
(otherwise freed memory could be accessed).
2022-09-28 18:54:18 -04:00
Geza Lore
a999c73ce0
Commentary
2022-09-28 14:43:40 +01:00
Wilson Snyder
b92173bf3d
Add --binary option as alias of --main --exe --build ( #3625 ).
2022-09-28 09:04:33 -04:00
github action
91823c41c5
Apply 'make format'
2022-09-28 02:22:05 +00:00
Wilson Snyder
c6bce636ee
Merge branch 'master' into develop-v5
2022-09-27 22:19:04 -04:00
Wilson Snyder
75a70bee6d
Update to clang-format-14 on Ubuntu22.04
2022-09-27 21:47:45 -04:00
Wilson Snyder
1b1907af49
Tests: Rename some tests
2022-09-27 18:42:03 -04:00
Jake Merdich
1b18eee5dc
Tests: Fix CCache test not properly skipped ( #3643 )
...
If the skip condition happens, the rest still runs and it fails. Don't do that.
2022-09-27 09:11:49 -04:00
Ryszard Rozak
4931e48016
Support resolving assignments with equal strengths ( #3637 )
2022-09-26 21:21:37 -04:00
Geza Lore
1b17acdb01
DFG: Support AstSel and AstConcat on LHS of assignments
...
Added DfgVertexVariadic to represent DFG vetices with a varying number
of source operands. Converted DfgVar to be a variadic vertex, with each
driver corresponding to a fixed range of bits in the packed variable.
This allows us to handle AstSel on the LHS of assignments. Also added
support for AstConcat on the LHS by selecting into the RHS as
appropriate.
This improves OpenTitan ST speed by ~13%
2022-09-26 19:54:52 +01:00
Geza Lore
9c1cc5465d
DFG: Support packed structure and union types
2022-09-26 18:31:50 +01:00
Geza Lore
d8b5359fcb
Merge branch 'master' into develop-v5
2022-09-26 14:45:08 +01:00
Geza Lore
f96454adcc
gitignore .gdb_history
2022-09-26 14:43:09 +01:00
Geza Lore
9da012568c
Ensure DFG stats are consistent
2022-09-26 14:38:26 +01:00
Geza Lore
9a20a258f5
Omit AstNode::m_editCount in release build
...
This is only a debugging aid at this point, so compile out of the
release build. This reduces peak memory consumption by 4-5%. We still
keep the global counters to detect the tree have changed, to avoid
unnecessary dumps.
2022-09-25 08:57:33 +01:00
Geza Lore
10796457d2
V3Life: don't depend on AstNode::editCountGbl()
...
No functional change intended.
2022-09-24 20:45:30 +01:00
Geza Lore
78e659a142
Reduce size of FileLine
...
Multiple tricks to reduce the size of class FileLine from 72 to 40
bytes:
- Reduce file name index from 32 to 16 bits. This still allows 64K
unique input files, which is hopefully enough.
- Intern message/warning enable bitset and use a 16-bit index, again
allowing 64K unique sets which is hopefully enough.
- Put the m_waive flag into the sign bit of one of the line numbers.
- Use explicit reference counting to avoid overhead of shared_ptr.
Added assertions to ensure interned data fits within it's index space.
This saves ~5-10% peak memory consumption at no measurable run-time cost
on various designs.
2022-09-24 20:16:21 +01:00
Geza Lore
2f50642ecb
Exclude VL_DEFINE_DEBUG_FUNCTIONS from code coverage
2022-09-23 17:20:24 +01: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
3a8a314566
Merge branch 'master' into develop-v5
2022-09-23 11:21:12 +01:00
Geza Lore
050060b139
Make enum constructors and operators constexpr
2022-09-23 11:10:28 +01:00
Geza Lore
ddb678cc5b
Merge branch 'master' into develop-v5
2022-09-22 17:33:36 +01:00
Geza Lore
63c694f65f
Streamline dump control options
...
- Rename `--dump-treei` option to `--dumpi-tree`, which itself is now a
special case of `--dumpi-<tag>` where tag can be a magic word, or a
filename
- Control dumping via static `dump*()` functions, analogous to `debug()`
- Make dumping independent of the value of `debug()` (so dumping always
works even without the debug flag)
- Add separate `--dumpi-graph` for dumping V3Graphs, which is again a
special case of `--dumpi-<tag>`
- Alias `--dump-<tag>` to `--dumpi-<tag> 3` as before
2022-09-22 17:24:41 +01:00
github action
12093e6939
Apply 'make format'
2022-09-21 19:22:15 +00:00
Geza Lore
9949a6cd17
Generate AstGen::checkTreeiter to enforce Ast op*p use
...
Use astgen to generate a more thorough version of AstNode::checkTree,
which checks that operands are or consistent structure and type, as
described in the @astgen op directives. Also change checkTree to always
run when --debug-check is given.
Fix discovered fallout.
2022-09-21 18:12:11 +01:00
Geza Lore
4600932d8c
Remove unused files
2022-09-21 14:16:20 +01:00
Geza Lore
79ded3bb61
Merge branch 'master' into develop-v5
2022-09-21 14:15:21 +01:00
Geza Lore
95145038b4
Generate AstNode accessors via astgen
...
Introduce the @astgen directives parsed by astgen, currently used for
the generation child node (operand) accessors. Please see the updated
internal documentation for details.
2022-09-21 14:05:27 +01:00
Geza Lore
ce03293128
Generate AstNode accessors via astgen
...
Introduce the @astgen directives parsed by astgen, currently used for
the generation child node (operand) accessors. Please see the updated
internal documentation for details.
2022-09-21 13:56:03 +01:00
Geza Lore
72e7271a14
Merge branch 'master' into develop-v5
2022-09-21 12:19:00 +01:00
Geza Lore
0a8cfb8d2c
Put dump file in TEST_OBJ_DIR
2022-09-21 11:35:03 +01:00
Kamil Rakoczy
0b07679ff2
v3errorEnd: look for instance only when warning is not ignored ( #3632 )
...
This approach reduced total time of V3Undriven stage from 34,2s to 2,5s
in design containing almost 400 000 unused variables.
Signed-off-by: Kamil Rakoczy <[email protected] >
2022-09-21 10:54:23 +01:00
Wilson Snyder
550a5111b7
Commentary
2022-09-20 20:28:43 -04:00
Wilson Snyder
d162619bd3
Merge branch 'master' into develop-v5
2022-09-20 20:06:21 -04:00
Wilson Snyder
5df14627fd
Fix 32-bit build of previous commit
2022-09-20 18:23:44 -04:00
Mariusz Glebocki
fc3ce29845
Improve Verilation memory by reducing V3Number size ( #3521 )
2022-09-20 16:46:47 -04:00
Yu-Sheng Lin
bba800f2d6
Fix calling trace() after open() segfault ( #3610 ) ( #3627 )
2022-09-20 16:45:09 -04:00
Ryszard Rozak
fe2a1e1749
Remove assignments with strengths weaker than strongest non-tristate RHS ( #3629 )
2022-09-19 04:54:20 -04:00
Wilson Snyder
fc4ffd454e
Rename --bin to --build-dep-bin.
2022-09-18 10:32:43 -04:00
Wilson Snyder
8dae4ad93a
Tests: Rename to avoid dash.
2022-09-18 10:19:15 -04:00
Wilson Snyder
8da261f302
Tests: Rename to avoid dash.
2022-09-18 10:19:15 -04:00
Geza Lore
7bc7b5372e
Merge branch 'master' into develop-v5
2022-09-17 16:12:28 +01:00
Geza Lore
7d88e63bab
astgen: generate type specific addNext, remove astNextNull
...
Generate type specific static overloads of Ast<Node>::addNext, which
return the correct sub-type of the 'this' they were invoked on.
Also remove AstNode::addNextNull, which is now only used in the parser,
implement in verilog.y directly as a template function.
2022-09-17 15:05:22 +01:00
Wilson Snyder
a214fd1f78
Internals: Fix constructor syntax in new develop-v5 code
2022-09-17 08:56:41 -04:00
Wilson Snyder
79be097e34
Sort -V env variable output
2022-09-17 08:17:55 -04:00
Wilson Snyder
11b0d36ba2
Merge cleanups from 'develop-v5'. No functional change
2022-09-17 08:17:22 -04:00
Wilson Snyder
1234ee5fd2
Merge branch 'master' into develop-v5
2022-09-17 08:02:25 -04:00
Wilson Snyder
80b73859a2
Commentary: Some fixes from 'develop-v5'
2022-09-17 08:00:40 -04:00
Wilson Snyder
a548a77f26
Merge branch 'develop-v5' into master: Changes file
2022-09-17 07:58:56 -04:00
Wilson Snyder
d6bfb37e6a
Docker: Use 22.04
2022-09-17 07:47:06 -04:00
Geza Lore
af305bf280
Merge branch 'master' into develop-v5
2022-09-16 16:24:36 +01:00
Geza Lore
38a8d7fb2e
Remove redundant 'inline' keywords from definitions
...
Also add checks to t/t_dist_cppstyle
2022-09-16 15:52:25 +01:00
Geza Lore
0c70a0dcbf
Remove redundant 'virtual' keywords from overridden methods
...
'virtual' is redundant when 'override' is present, so keep only
'override'.
Add t/t_dist_cppstyle.pl to check for this.
2022-09-16 15:19:38 +01:00
Geza Lore
d16619fe86
astgen: Explicitly generate AstNode members
...
Generate boilerplate members of AstNode sub-types directly via astgen.
This is in preparation for generating additional members.
2022-09-16 11:18:20 +01:00
Wilson Snyder
ab6e1c2399
Commentary on --main
2022-09-15 20:26:08 -04:00
Wilson Snyder
2dc85a5acd
Internals: enum constructor cleanups. No functional change intended.
2022-09-15 19:58:10 -04:00
Kamil Rakoczy
dbe1348b4c
Tests: Fix earlier commit, add build jobs to stats ( #3623 ) ( #3626 )
2022-09-15 11:29:50 -04:00
Geza Lore
22846df03e
Merge branch 'master' into develop-v5
2022-09-15 14:01:19 +01:00
Wilson Snyder
d74536a4dc
Internals: Cleanup some constructors. No functional change intended.
2022-09-15 08:54:04 -04:00
Kamil Rakoczy
da20da264b
Add --build-jobs, and rework arguments for -j ( #3623 )
2022-09-15 08:28:58 -04:00
Geza Lore
22b9dfb9c9
Split and re-order AstNode definitions ( #3622 )
...
- Move DType representations into V3AstNodeDType.h
- Move AstNodeMath and subclasses into V3AstNodeMath.h
- Move any other AstNode subtypes into V3AstNodeOther.h
- Fix up out-of-order definitions via inline methods and implementations
in V3Inlines.h and V3AstNodes.cpp
- Enforce declaration order of AstNode subtypes via astgen,
which will now fail when definitions are mis-ordered.
2022-09-15 13:10:39 +01:00
Geza Lore
27031ed688
Merge branch 'master' into develop-v5
2022-09-15 10:28:35 +01:00
Wilson Snyder
e43c089ab8
Commentary
2022-09-14 23:26:34 -04:00
Wilson Snyder
d85b909054
Internals: Use std:: for mem and str functions.
2022-09-14 21:10:19 -04:00
Wilson Snyder
75fd71d7e5
Add --main to generate main() C++ (previously was experimental only) ( #3265 ).
2022-09-14 20:18:40 -04:00
Wilson Snyder
9efd64ab98
Commentary
2022-09-14 20:13:28 -04:00
Wilson Snyder
7aa01625d8
Commentary: Changes update
2022-09-14 08:15:42 -04:00
Ryszard Rozak
a3c58d7b70
Support IEEE constant signal strengths ( #3601 ).
2022-09-14 07:39:27 -04:00
Kamil Rakoczy
ae466b1703
Internals: Improve Verilation peak memory usage in V3Subst ( #3512 ).
2022-09-14 07:37:51 -04:00
Geza Lore
2564484429
astgen: Rewrite in a more OOP way, in preparation for extensions
...
Rely less on strings and represent AstNode classes as a 'class Node',
with all associated properties kept together, rather than distributed
over multiple dictionaries or constructed at retrieval time.
No functional change intended.
2022-09-13 21:54:12 +01:00
Kamil Rakoczy
93a044f587
Internals: Rework addFilesp towards parallel emit ( #3620 ). No functional change intended.
2022-09-13 12:15:34 -04:00
Wilson Snyder
81fe35ee2e
Fix typedef'ed class conversion to boolean ( #3616 ).
2022-09-12 18:03:56 -04:00
Geza Lore
08b6bdddf9
Update default --mod-prefix when --prefix is repeated
...
Fixes #3603
2022-09-12 17:25:09 +01:00
Kamil Rakoczy
4d49db48a3
Internals: Remove usage of user1 from EmitCTrace ( #3617 ). No Functional change intended.
2022-09-12 12:00:41 -04:00
Kamil Rakoczy
9b2266f68c
Internals: Remove usage of global state in V3EmitCFunc ( #3615 ). No functional change intended.
2022-09-12 11:59:14 -04:00
Wilson Snyder
752f425025
Tests: Process/Semaphore/Mailbox testing (all fail until supported)
2022-09-11 13:05:24 -04:00
Gustav Svensk
47262cd4ec
Fix arguments in non-static method call ( #3547 ) ( #3582 )
2022-09-11 12:33:31 -04:00
Wilson Snyder
47e64535d6
Commentary
2022-09-11 12:25:44 -04:00
Wilson Snyder
45d622e4bc
Github actions: Avoid cpan cert expirations.
2022-09-08 11:06:44 -04:00
Wilson Snyder
249feaae7c
Tests: Remove lint-py, need ci package.
2022-09-07 22:59:32 -04:00
Wilson Snyder
9a27004ae5
Github actions: Avoid cpan cert expirations.
2022-09-07 22:49:09 -04:00
Wilson Snyder
42283150d7
Actions: Use 22.04 for contrib action
2022-09-07 22:13:02 -04:00
Wilson Snyder
5a1bcf9794
Tests: Add lint-py checker
2022-09-07 22:04:57 -04:00
Wilson Snyder
361cef4633
Fix pylint warnings.
2022-09-07 21:48:52 -04:00
Geza Lore
90ab746a42
Make it possible to parallelize ico and act scheduling sections
...
Small fixup patch so the 'ico' and 'act' scheduling sections could be
ordered as multi-threaded. However, we still only order these single
threaded at the moment (but switching them to multi-threaded now works).
2022-09-06 16:01:13 +01:00
github action
e94cdcf29c
Apply 'make format'
2022-09-05 22:43:09 +00:00
Mladen Slijepcevic
1af046986d
Fix thread saftey in SystemC VL_ASSIGN_SBW/WSB ( #3494 ) ( #3513 ).
2022-09-05 18:42:12 -04:00
Wilson Snyder
1c9263a25b
Commentary
2022-09-05 15:20:08 -04:00
Geza Lore
fd6275a62b
Merge branch 'master' into develop-v5
2022-09-05 17:03:43 +01:00
Krzysztof Bieganski
6b6790fc50
Preserve return type of AstNode::addNext via templating ( #3597 )
...
No functional change intended.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 16:56:57 +01:00
Krzysztof Bieganski
fb931087ab
Add stats tracking for V3Undriven. ( #3600 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 16:20:38 +01:00
Krzysztof Bieganski
a2e1b32a1c
Fix inlining of forks ( #3594 )
...
Before this change, some forked processes were being inlined in
`V3Timing` because they contained no `CAwait`s. This only works under
the assumption that no `CAwait`s will be added there later, which is not
true, as a function called by a forked process could be turned into a
coroutine later. The call would be wrapped in a new `CAwait`, but the
process itself would have already been inlined at this point.
This commit moves the inlining to `transformForks` in `V3SchedTiming`,
which is called at a point when all `CAwait`s are already in place.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 15:19:19 +01:00
Krzysztof Bieganski
54f89bce42
Move SenExprBuilder to a header. ( #3598 )
...
No functional change intended.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 15:17:51 +01:00
Krzysztof Bieganski
8b19d02e3b
Fix co_await VlNow{} being added too many times ( #3596 )
...
(or not at all)
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 11:46:34 +01:00
Krzysztof Bieganski
da7ad35577
Fix fork debug output ( #3593 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-09-05 11:27:24 +01:00
Geza Lore
937e893b6d
Build verilator_bin with -O3 ( #3592 )
...
This is consistently a few percent faster.
2022-09-03 22:10:07 +01:00
Geza Lore
d42a2d6494
Fix V3Gate crash on circular logic
...
The recent patch to defer substitutions on V3Gate crashes on circular
logic that has cycle length >= 3 with all inlineable signals (cycle
length 2 is detected correctly and is not inlined). Fix by stopping
recursion at the loop-back edge.
Fixes #3543
2022-09-02 19:58:58 +01:00
Geza Lore
8e8f4b1e5c
Remove AstVarScope::valuep() and related code
...
This is detritus from when V3TraceDecl used to run after V3Gate, today
V3TraceDecl runs before V3Gate and this value has no function at all.
No functional change intended.
2022-09-02 16:44:13 +01:00
Geza Lore
298f71f2b1
Merge branch 'master' into develop-v5
2022-09-02 12:19:35 +01:00
Geza Lore
2ba39b25f1
Replace dynamic_casts with static_casts
...
dynamic_cast is not free. Replace obvious instances (where the result is
unconditionally dereferenced) with static_cast in contexts with
performance implications.
2022-09-02 12:08:34 +01:00
Geza Lore
5c828b7e60
V3Partition: use V3Lists to keep track of SiblingMCs
...
Replace std::set<SiblingMC> with V3Lists to keep track of SiblingMCs
associated with MTasks, use a std::set<LogicMTask*> for ensuring
uniqueness. This yields a bit more speed in PartContraction.
2022-09-01 19:40:44 +01:00
Geza Lore
4640bea31a
V3Partition: More improvements for PartFixDataHazards
...
- Remove redundant loop through the MTask graph
- Gather variables directly from the OrderGraph, which is simpler and
faster.
2022-09-01 16:30:04 +01:00
Geza Lore
875361d7ce
V3Partition: Reduce working set size of PartContraction ( #3587 )
...
This yields an additional 25% speedup of MT scheduling.
2022-09-01 16:29:40 +01:00
Wilson Snyder
849bb5590a
Merge branch 'master' into develop-v5
2022-08-31 19:51:07 -04:00
Wilson Snyder
8d0c06e570
devel release
2022-08-31 19:49:24 -04:00
Wilson Snyder
5b2fbf4f37
Version bump
2022-08-31 19:46:45 -04:00
Wilson Snyder
592dab2bdb
Commentary: Changes update
2022-08-31 19:27:43 -04:00
Wilson Snyder
51daa64e9a
Fix --hierarchical with order-based pin connections ( #3585 ).
2022-08-31 18:12:21 -04:00
Geza Lore
c0f9b0d8f6
V3Partition: Refactor initialization of MTask dependencies
...
No functional change
2022-08-31 16:54:04 +01:00
Geza Lore
505bba14eb
Improve PartFixDataHazards for clarity and speed.
...
- Use modern C++
- Implement OrderLogicVertex->LogicMTask map with
OrderLogicVertex::userp(), insteas of std::unordered_map
- Simplify data structures
- Simplify code and assert properties
No functional change.
2022-08-31 16:52:05 +01:00
Geza Lore
ebbe24966c
Remove unnecessary virtual methods
2022-08-31 16:52:05 +01:00
Geza Lore
881c3f6e40
Minor optimization of PartContraction
...
Remove rarely used debug code from initialization loop.
2022-08-31 16:52:05 +01:00
Geza Lore
546aeab9f2
V3Order: Minor refactoring for clarity
...
Refactor ProcessMoveBuildGraph utilizing the fact that OrderGraph is a
bipartite graph, also remove unnecessary unordered_map and distribute
variable domain map. No functional change.
2022-08-31 16:52:05 +01:00
Geza Lore
8de21e9bb7
Document and ensure OrderGraph is bipartite
...
Minor refactoring and documentation. No functional change.
2022-08-31 16:52:05 +01:00
Geza Lore
2ecda74471
Merge branch 'master' into develop-v5
2022-08-31 10:45:18 +01:00
Aleksander Kiryk
2136afde6b
Support negated properties ( #3572 )
2022-08-30 06:33:42 -04:00
Wilson Snyder
ea55db7286
Internals: Cleanup some string constructors. No functional change.
2022-08-30 01:02:39 -04:00
Wilson Snyder
819e8741cc
Merge branch 'master' into develop-v5
2022-08-30 00:20:21 -04:00
Wilson Snyder
6a5f77b278
Internals: Cleanup some string/model constructors. No functional change.
2022-08-29 23:50:32 -04:00
Wilson Snyder
8658a0d7dc
Internals: Constructor format update. No functional change.
2022-08-29 23:05:52 -04:00
Wilson Snyder
c335aad25f
Fix --hierarchical with order-based pin connections ( #3583 ).
2022-08-29 22:49:19 -04:00
Wilson Snyder
9d9d647c1f
Fix indentation of --protect import function SV code.
2022-08-29 22:28:02 -04:00
Wilson Snyder
d47a37fb76
Internals: Cleanup constructors etc. No functional change.
2022-08-29 22:17:27 -04:00
Aleksander Kiryk
24ec84851a
Support $sampled ( #3569 )
2022-08-29 08:39:41 -04:00
Arkadiusz Kozdra
0a3a15a66e
Support class parameters ( #2231 ) ( #3541 )
2022-08-28 10:24:55 -04:00
Wilson Snyder
2358ced061
Rename tracing rolloverSize and add test ( #3570 ).
2022-08-28 08:25:02 -04:00
Krzysztof Bieganski
2af5304884
Fix tracing of slow coroutines ( #3576 part) ( #3579 )
2022-08-26 05:11:44 -05:00
Varun Koyyalagunta
5869fdf7f6
Fix $dump systemtask with --output-split-cfuncs ( #3495 ) ( #3497 )
2022-08-25 18:29:11 -05:00
Krzysztof Bieganski
1a1d2ecfd9
Enable tracing in generated main ( #3578 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-08-25 14:55:37 +01:00
Geza Lore
5c356a4680
Merge branch 'master' into develop-v5
2022-08-22 14:32:06 +01:00
Krzysztof Bieganski
39af5d020e
Timing support ( #3363 )
...
Adds timing support to Verilator. It makes it possible to use delays,
event controls within processes (not just at the start), wait
statements, and forks.
Building a design with those constructs requires a compiler that
supports C++20 coroutines (GCC 10, Clang 5).
The basic idea is to have processes and tasks with delays/event controls
implemented as C++20 coroutines. This allows us to suspend and resume
them at any time.
There are five main runtime classes responsible for managing suspended
coroutines:
* `VlCoroutineHandle`, a wrapper over C++20's `std::coroutine_handle`
with move semantics and automatic cleanup.
* `VlDelayScheduler`, for coroutines suspended by delays. It resumes
them at a proper simulation time.
* `VlTriggerScheduler`, for coroutines suspended by event controls. It
resumes them if its corresponding trigger was set.
* `VlForkSync`, used for syncing `fork..join` and `fork..join_any`
blocks.
* `VlCoroutine`, the return type of all verilated coroutines. It allows
for suspending a stack of coroutines (normally, C++ coroutines are
stackless).
There is a new visitor in `V3Timing.cpp` which:
* scales delays according to the timescale,
* simplifies intra-assignment timing controls and net delays into
regular timing controls and assignments,
* simplifies wait statements into loops with event controls,
* marks processes and tasks with timing controls in them as
suspendable,
* creates delay, trigger scheduler, and fork sync variables,
* transforms timing controls and fork joins into C++ awaits
There are new functions in `V3SchedTiming.cpp` (used by `V3Sched.cpp`)
that integrate static scheduling with timing. This involves providing
external domains for variables, so that the necessary combinational
logic gets triggered after coroutine resumption, as well as statements
that need to be injected into the design eval function to perform this
resumption at the correct time.
There is also a function that transforms forked processes into separate
functions.
See the comments in `verilated_timing.h`, `verilated_timing.cpp`,
`V3Timing.cpp`, and `V3SchedTiming.cpp`, as well as the internals
documentation for more details.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-08-22 13:26:32 +01:00
Geza Lore
9ac64d0b92
Improve performance of MTask coarsening
...
Various optimizations to speed up MTasks coarsening (which is the long
pole in the multi-threaded scheduling of very large designs).
The biggest impact ones:
- Use efficient hand written Pairing Heaps for implementing priority
queues and the scoreboard, instead of the old SortByValueMap. This
helps us avoid having to sort a lot of merge candidates that we will
never actually consider and helps a lot in performance.
- Remove unnecessary associative containers and store data structures
(the heap nodes in particular) directly in the object they relate to.
This eliminates a huge amount of lookups and helps a lot in
performance.
- Distribute storage for SiblingMC instances into the LogicMTask
instances, and combine with the sibling maps. This again eliminates
hash table lookups and makes storage structures smaller.
- Remove some now bidirectional edge maps, keep only the forward map.
There are also some other smaller optimizations:
- Replaced more unnecessary dynamic_casts with static_casts
- Templated some functions/classes to reduce the number of static
branches in loops.
- Improves sorting of edges for sibling candidate creation
- Various micro-optimizations here and there
This speeds up MTask coarsening by 3.8x on a large design, which
translates to a 2.5x speedup of the ordering pass in multi-threaded
mode. (Combined with the earlier optimizations, ordering is now 3x
faster.)
Due to the elimination of a lot of the auxiliary data structures, and
ensuring a minimal size for the necessary ones, memory consumption of
the MTask coarsening is also reduced (measured up to 4.4x reduction
though the accuracy of this is low).
The algorithm is identical except for minor alterations of the order
some candidates are added or removed, this can cause perturbation in the
output due to tied scores being broken based on IDs.
2022-08-20 21:18:50 +01:00
Wilson Snyder
7cc89b8b42
Merge branch 'master' into develop-v5
2022-08-20 14:19:45 -04:00
Wilson Snyder
c6607724cb
Fix clang warning.
2022-08-20 14:19:00 -04:00
Wilson Snyder
ebb37b0156
Merge branch 'master' into develop-v5
2022-08-20 14:02:09 -04:00
Wilson Snyder
90dc04cf93
Add --future0 and --future1 options.
2022-08-20 14:01:13 -04:00
Krzysztof Bieganski
10cf492946
Add support for expressions in event controls ( #3550 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-08-19 20:18:38 +02:00
Geza Lore
4d81eb021d
Revert "Improve performance of MTask coarsening"
...
This reverts commit 83475008d9 .
2022-08-19 18:03:45 +01:00
Geza Lore
83475008d9
Improve performance of MTask coarsening
...
Various optimizations to speed up MTasks coarsening (which is the long
pole in the multi-threaded scheduling of very large designs).
The biggest impact ones:
- Use efficient hand written Pairing Heaps for implementing priority
queues and the scoreboard, instead of the old SortByValueMap. This
helps us avoid having to sort a lot of merge candidates that we will
never actually consider and helps a lot in performance.
- Remove unnecessary associative containers and store data structures
(the heap nodes in particular) directly in the object they relate to.
This eliminates a huge amount of lookups and helps a lot in
performance.
- Distribute storage for SiblingMC instances into the LogicMTask
instances, and combine with the sibling maps. This again eliminates
hash table lookups and makes storage structures smaller.
- Remove some now bidirectional edge maps, keep only the forward map.
There are also some other smaller optimizations:
- Replaced more unnecessary dynamic_casts with static_casts
- Templated some functions/classes to reduce the number of static
branches in loops.
- Improves sorting of edges for sibling candidate creation
- Various micro-optimizations here and there
This speeds up MTask coarsening by 3.8x on a large design, which
translates to a 2.5x speedup of the ordering pass in multi-threaded
mode. (Combined with the earlier optimizations, ordering is now 3x
faster.)
Due to the elimination of a lot of the auxiliary data structures, and
ensuring a minimal size for the necessary ones, memory consumption of
the MTask coarsening is also reduced (measured up to 4.4x reduction
though the accuracy of this is low).
The algorithm is identical except for minor alterations of the order
some candidates are added or removed, this can cause perturbation in the
output due to tied scores being broken based on IDs.
2022-08-19 16:59:20 +01:00
Geza Lore
03ac7ad730
Make PartPropagateCp specific to the MTask graph
...
While keeping the client code abstract in PartPropagateCp is nice for
testing, there is performance to be had removing the abstraction. As
this code dominates in scheduling large designs, we eliminate the
abstraction and re-work the testing to use the actual LogicMTask and
MTaskEdge graph types. No functional change intended.
2022-08-19 14:06:11 +01:00
Geza Lore
cd50949a7e
Reuse MTaskEdge instances in MT scheduling
...
Instead of deleting then re-allocating MTaskEdge instances when merging
two MTasks, just redirect the edged of the donor MTask to the recipient
MTask. This is both faster as it avoids an allocation and a deletion,
together with one update of the sibling maps, and also makes the
algorithm more stable due to MergeCandidate IDs being stable and
allocated up front for all MTaskEdges, before any SiblingMCs are
allocated.
Perturbations in output are expected as the IDs used to break ties
between merge candidates with equal costs are not updated when
redirecting an edge (on purpose). The relinking of only one end of the
graph edges also perturbs the order in which they are enumerated, which
does change candidate opportunities when the number of edges is larger
than PART_SIBLING_EDGE_LIMIT. Confirmed output is identical when
IDs are updated and edges are updated to appear in their original order.
2022-08-19 14:06:11 +01:00
Geza Lore
f0040c7b9a
Remove reliance on pointer comparison in MT scheduling
...
The critical path propagation used to rely on a pointer comparison to
break equal scoring critical path updates. Use the corresponding mtask
ids instead, which is deterministic across invocations.
2022-08-19 14:06:11 +01:00
Geza Lore
f8a0389e73
Do not use stepCost when gathering sibling merge candidates
...
siblingPairFromRelatives gathers neighbours of a vertex, and sorts them.
It then takes the N best nodes, and creates sibling merge candidates
from them. We now use the unadjusted cost instead of the step cost of
the vertices when sorting. This is both faster as we need not do the
log-space rounding to compute stepCost, and will also make similar but
yet cheaper nodes appear closer to the front as we don't lose precision
in rounding, hence they are more likely to be entered as merge
candidates. Note that when creating the merge candidate, we still use
the stepCost, so it's purpose of reducing the propagation of critical
path updates is maintained in full. In summary, this should make both
Verilator and the generated model very slightly faster, at least in
theory, and I have observed minor improvement in places.
2022-08-19 14:06:11 +01:00
Geza Lore
b436794773
Add specialized GraphStreamUnordered
...
GraphStreamUnordered used to be GraphStream<std::less<const
V3GraphVertex*>>, but a lot of performance improvements can be had by a
specialized implementation, so added a highly optimized one. This helps
a lot with --debug-partition.
2022-08-19 14:06:11 +01:00
Geza Lore
1404319b28
Merge branch 'master' into develop-v5
2022-08-19 13:39:44 +01:00
Geza Lore
90d22cbec6
Fix AstNode::exists return type
2022-08-19 13:22:06 +01:00
Krzysztof Bieganski
33e2acfe61
Fix AstNode::forall return type ( #3559 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-08-19 12:33:17 +01:00
Ryszard Rozak
db5fdfb0ee
Fix === with some tristate constants ( #3551 ).
2022-08-18 07:03:05 -04:00
Krzysztof Bieganski
951cd73fe0
Handle MemberSel in V3EmitV.cpp ( #3555 )
2022-08-18 06:33:45 -04:00
Arkadiusz Kozdra
0eeb40b975
Fix converting subclasses to string ( #3552 )
2022-08-17 18:08:43 -04:00
Wilson Snyder
93272c13fd
Tests: Confirm fixed ( #181 )
2022-08-15 22:17:36 -04:00
Wilson Snyder
43abaeb055
Tests: Confirm fixed ( #485 )
2022-08-15 22:17:17 -04:00
Wilson Snyder
18b9e661c9
Tests: Confirm fixed ( #446 )
2022-08-15 22:17:09 -04:00
Wilson Snyder
f435d96241
Fix case statement comparing string literal ( #3544 ).
2022-08-15 21:56:09 -04:00
github action
d32e3f042f
Apply 'make format'
2022-08-12 10:56:12 +00:00
Mostafa Gamal
df5f95a5bd
Fix nested default assignment for struct pattern ( #3511 ) ( #3524 )
2022-08-12 06:55:07 -04:00
Drew Ranck
b0c475205b
Fix void-cast queue pop_front or pop_back ( #3542 ) ( #3364 )
...
Fix compile error for queue method usage, if it is the
first statement in a block of code, and the return
value is not used. Example:
> if (foo)
> void'(bar.pop_front());
2022-08-12 06:51:25 -04:00
Wilson Snyder
1e2219347e
Internals: Cleanup ifdef, move up not under compilver version ifdef
2022-08-11 17:41:43 -04:00
Wilson Snyder
cbe1b8e266
Fix segfault exporting non-existant package ( #3535 ).
2022-08-08 17:53:50 -04:00
Mariusz Glebocki
2b12fe5773
Internals: Construct V3Number with correct type instead of changing it manually. ( #3529 )
2022-08-08 08:17:02 -04:00
Geza Lore
a4fd6d38fb
Add operator != to VlWide
...
This is required by VlUnpacked::neq
2022-08-07 13:13:28 +01:00
Yutetsu TAKATSUKASA
d20f22beb1
Fix tristate logic when reading inout port in a module #3399 ( #3523 )
...
* Tests: Add a test to reproduce #3399
* Fix #3399 . When reading an inout port in a module, it should refer the
original inout port, not the generated MODTEMP.
2022-08-07 21:12:57 +09:00
Wilson Snyder
f4fe10844b
Tests: Fix t_flag_help.pl ( #3532 ).
2022-08-07 04:57:59 -04:00
Mariusz Glebocki
122e89ffde
Fix V3Number::isMsbXZ(). ( #3530 )
2022-08-05 19:12:52 +01:00
Geza Lore
c266739e9f
Merge branch 'master' into develop-v5
2022-08-05 12:17:57 +01:00
Geza Lore
96a4b3e5a5
Update clang-format config and apply
...
- Regroup and sort #include directives (like we used to, but automatic)
- Set AlwaysBreakTemplateDeclarations to true
2022-08-05 12:00:24 +01:00
Geza Lore
7403226a97
Merge branch 'master' into develop-v5
2022-08-04 10:03:38 +01:00
Geza Lore
fac8e76923
Rework SortByValueMap for better performance
...
Keep a single std::set of key/value pairs, and a single unordered_map
from key to iterators into the set. Also improve some of the accessing
mechanisms using modern C++. This speeds up multi-threaded ordering by
about 10%.
2022-08-03 21:17:02 +01:00
Geza Lore
b864f5f5ba
V3Partition: use static_cast with LogicMTaskVertex
...
dynamic_cast is not free, and the mtask graph contains only
LogicMTaskVertex vertices, use static_cast instead for some speedup.
2022-08-03 17:05:01 +01:00
Geza Lore
f9f66d787e
Fix integer overflow in V3Unroll ( #3451 )
2022-08-03 09:41:30 +01:00
Geza Lore
bd211c87aa
astgen: split 'visit' method declarations from definitions
...
Add definitions to V3Ast.cpp, and use static_cast.
This fixes a lot of clang-tidy noise.
2022-08-02 17:53:19 +01:00
Geza Lore
6c33e6e889
Tell clang-tidy .h files are C++ (not C) headers
2022-08-02 17:53:19 +01:00
Geza Lore
6fc25dae9e
Fix clang-tidy warnings ( #3522 )
2022-08-02 15:58:48 +01:00
Kamil Rakoczy
cfb6fd8b34
Reduce max RSS usage ( #3483 )
...
By constant folding nodes earlier in V3Expand, we can save some max RSS on large designs.
2022-08-02 13:36:14 +01:00
Geza Lore
39d1a62f9e
Fix change detection on unpacked arrays
...
Expand array assignment when creating the trigger, as V3Expand might
mangle it otherwise.
2022-08-02 13:01:41 +01:00
Geza Lore
ba66fa7200
Merge branch 'master' into develop-v5
2022-08-02 11:16:35 +01:00
Geza Lore
cb60663d49
V3Gate: Defer substitutions until required as well
...
Similarly to the earlier patch that defers constant folding on optimized
logic, now we also defer the variable substitutions as well. This again
eliminates a lot of traversals, and yields another ~10x speedup of V3Gate
on a design where V3Gate used to dominate while producing identical
results.
2022-08-01 12:54:41 +01:00
Geza Lore
0d2bf23d82
V3Gate: Defer constant folding until required
...
Rather than constant folding each logic block after every substitution,
only constant fold updated blocks when re-analysed, or at the end. This
removes a lot of invocations of V3Const on large blocks that can be
optimized well, and should yield the same result.
This speeds up V3Gate by ~4x on a design where V3Gate dominates.
2022-07-31 20:42:04 +01:00
Geza Lore
682a60e325
Cleanup V3Gate, no functional change
2022-07-31 20:07:54 +01:00
Geza Lore
2ab6272cc7
Use AstNode::foreach in V3Gate
...
This yields a little speedup.
2022-07-31 20:05:25 +01:00
Geza Lore
152a6cd886
Improve AstNode::foreach (also exists and forall)
...
Speed improvements:
- Use a direct, recursion-free implementation
- Improve pre-fetching
Functionality:
- Support remove/replace of currently iterated node
2022-07-31 19:07:32 +01:00
Wilson Snyder
3c54d5df70
Merge branch 'master' into develop-v5
2022-07-30 14:42:51 -04:00
Wilson Snyder
f91793e931
Revert - SC overrides cause non-override clang error.
2022-07-30 13:53:54 -04:00
Wilson Snyder
12925cd8b0
Internals: clang-tidy cleanups. No functional change intended.
2022-07-30 12:49:30 -04:00
Wilson Snyder
daac7cb90d
Merge branch 'master' into develop-v5
2022-07-30 12:09:05 -04:00
Wilson Snyder
a2d26b45bb
Internals: Fix some clang-tidy issues. No functional change intended.
2022-07-30 11:54:28 -04:00
Wilson Snyder
dce8f3d25d
Internals: Spacing from develop-v5. No functional change.
2022-07-30 11:54:28 -04:00
Geza Lore
38e5b6c1ad
Replace __gcov_flush with __gcov_dump
...
__gcov_flush was a private function and was removed from later GCC
versions (at least from 11.2.0, possibly earlier). Replace with the
documented public __gcov_dump.
2022-07-30 16:02:03 +01:00
Wilson Snyder
4859f5e1fa
Merge branch 'master' into develop-v5
2022-07-30 10:26:16 -04:00
Wilson Snyder
b9d7819faa
Internals: Fix some cppcheck issues. Some dump functions fixed.
2022-07-30 10:01:39 -04:00
Geza Lore
ad2fbfe62d
Merge branch 'master' into develop-v5
2022-07-29 12:04:24 +01:00
Yutetsu TAKATSUKASA
1f9323d086
Set correct dtype in replaceShiftSame() ( #3520 )
...
* Tests: Add a test to reproduce bug3399
* Fix3399. Set the correct dtype in replaceShiftSame().
* Tests: update stats.
* Update Changes
2022-07-29 07:05:04 +09:00
Geza Lore
574dbfded1
V3MergeCond: Fix incorrect merge of assignments to the condition
2022-07-28 15:50:02 +01:00
Wilson Snyder
2a87387eb3
Documentation fixes ( #3514 )
2022-07-28 08:41:01 -04:00
Geza Lore
a5ddd10e31
Tests: compare VCD files both ways
...
vcddiff is a bit broken, and sometimes 'vcddiff a b' fails while the
files are indeed equivalent. There is a chance however that 'vcddif b a'
will succeed in this case, so compare trace files both ways when
checking test results and claim success if vcddiff succeeds in at least
one direction.
2022-07-27 10:48:02 +01:00
github action
e871cd8a44
Apply 'make format'
2022-07-25 21:47:29 +00:00
Mostafa Gamal
7b431b37c7
Fix struct pattern assignment ( #2328 ) ( #3517 ).
2022-07-25 17:46:22 -04:00
Gustav Svensk
eeef5ab4de
Fix sformat string incorrectly cleared ( #3515 ) ( #3519 ).
2022-07-25 17:36:34 +02:00
Geza Lore
ac4ec87942
Respect clang's default -fbracket-depth by default
...
Set default value of --comp-limit-parens to 240, to respect default
maximum nesting of parentheses in clang (which is controlled by
-fbracket-depth and defaults to 256). For code generation consistency,
also use the same default with gcc.
2022-07-25 12:59:26 +01:00
Geza Lore
290c2e0388
Mark FileLine::v3errorEndFatal as noreturn
2022-07-25 12:51:02 +01:00
Geza Lore
89924bda51
Always type '$clog2' as signed 32
2022-07-25 12:48:13 +01:00
Yutetsu TAKATSUKASA
60eab3eb8c
Fix wrong result of bit op tree optimization #3509 ( #3516 )
...
* Tests: Add a test to reproduce #3509
* Tests: Compile without tautological-compare check because bit op tree optimization is disabled in the test.
* Internals: Dedup code. No functional change is intended.
* Fix #3509 .
"2'b10 == (2'b11 & {1'b0, val[0]})" and "2'b10 != (2'b11 & {1'b0, val[0]})" were
wrongly optimized to "!val[0]" and "val[0]" respectively.
Now properly optimize them to 1'b0 and 1'b1.
* Commentary
* Commentary: Update Changes
2022-07-24 19:54:37 +09:00
Geza Lore
386401da60
Merge branch 'master' into develop-v5
2022-07-22 15:09:20 +01:00
Geza Lore
31abe537a0
Fix DPI export trigger sensitivity in 'nba'
...
Fixes #3508
2022-07-21 17:43:03 +01:00
Geza Lore
e0b61ceabd
Remove legacy #ifdef SYSTEMC_64BIT_PATCHES
...
These days this is always false, see #3505
2022-07-21 15:01:17 +01:00
Geza Lore
f9ecbdc70b
Merge branch 'master' into develop-v5
2022-07-21 09:56:14 +01:00
Geza Lore
30e3edb81d
Remove deprecated and unused timescale override defines
...
These have been 'deprecated' for 2 years and are otherwise unused except
for using a temporary placeholder value, which I have inlined with the
default value.
Also remove the now VL_TIME_STR_CONVERT utility function (and
corresponding unit tests), which have no references in any project on
GitHub.
2022-07-20 14:06:09 +01:00
Arkadiusz Kozdra
542e324869
Wildcard index type support for associative arrays ( #3501 ).
...
Associative arrays that specify a wildcard index type may be indexed by
integral expressions of any size, with leading zeros removed
automatically. A natural representation for such expressions is a
string, especially that the standard explicitly specifies automatic
casts from string indices to bit vectors of equivalent size.
The automatic cast part is done implicitly by the existing type system.
A simpler way to just make this work would be to convert wildcard index
type to a string type directly in the parser code, but several new AST
classes are needed to make sure illegal method calls are detected.
The verilated data structure implementation is reused, because there is
no need for differentiating the behavior on C++ side.
2022-07-20 15:01:36 +02:00
Geza Lore
1c5e5704f5
Fix iteration fixup in AstNode::addHereThisAsNext
...
Previous version broke verialor_ext_tests due to iteration order
mismatch after 3fc8249429
2022-07-20 13:08:51 +01:00
Geza Lore
1d400dd98c
Configure tracing at run-time, instead of compile time ( #3504 )
...
All remaining use of conditional compilation in the tracing
implementation of the run-time library are replaced with the use of
VerilatedModel::traceConfig, and is now done at run-time.
2022-07-20 11:27:10 +01:00
Geza Lore
a4ed3c2086
Make parallel tracing switchable at run-time
2022-07-19 17:13:13 +01:00
Geza Lore
efb5caad22
Improve robustness of trace configuration
...
Always fail if adding a model to a trace file that has already executed
a dump. We used to do this before as well, though in a less robust way.
We will be relying on this property more in the future, so improve the
check.
2022-07-19 14:16:08 +01:00
Geza Lore
3a002b6cf2
Remove VerilatedVcd::m_evcd and related dead code.
...
The legacy code that was using this was removed earlier, and m_evcd was
constant false, so removed.
2022-07-19 13:58:18 +01:00
Geza Lore
f8b7981be4
Make use of FST writer thread switchable at run-time.
...
Always build the FST libray with -DFST_WRITER_PARALLEL, iff VL_THREADED.
This supports run-time enablement of the FST writer thread, and has no
measurable performance impact on single threaded tracing but simplifies
the library build.
Note: the actual choice of using the fst writer thread is still compile
time, but can now be made run-time easily.
2022-07-19 13:48:03 +01:00
Geza Lore
b55ee79d86
Fix typo
2022-07-19 12:36:21 +01:00
Geza Lore
af70db88db
Remove unused method
2022-07-19 11:32:16 +01:00
Geza Lore
7ef033f876
Ensure generated Makefile for hierarchical build is stable.
...
Avoid iterating unordered_map. Iterate sorted blocks instead.
2022-07-19 11:32:01 +01:00
Geza Lore
db59c07f27
Implement trace offloading with fewer ifdefs
...
Step towards a proper run-time library. Reduce the amount of ifdefs in
the implementation of offloaded tracing. There are still a very small
number of ifdefs left, which will need more careful changes in order to
keep user API compatibility.
2022-07-19 11:31:35 +01:00
Geza Lore
9085e34d70
Pass VerilatedModel at trace registration time
2022-07-19 11:00:09 +01:00
Arkadiusz Kozdra
0dfa7d3af5
Internals: const-qualify findDType function. No functional change. ( #3502 )
2022-07-18 18:58:55 +02:00
Geza Lore
c28bf9ce24
Fix change detection over unpacked arrays.
2022-07-18 12:25:22 +01:00
Geza Lore
5a1f1796d7
Fix t/t_public_{clk,src}.pl after merge of master
2022-07-15 16:48:22 +01:00
Geza Lore
ffc95fcf0e
Merge branch 'master' into develop-v5
2022-07-15 16:48:14 +01:00
Todd Strader
b0e796ca83
Public combo propagation issues ( #2905 )
2022-07-15 11:44:32 -04:00
Geza Lore
3773e2ef95
Simplify primary input checks
2022-07-15 16:18:41 +01:00
Geza Lore
00c1f67c57
Make trigger dumping functions always Slow code
2022-07-14 16:28:09 +01:00
Geza Lore
3f19ba1554
Improve handling of extra trigges in V3Sched.
...
Add utility class for allocation, and add human readable text to debug
code.
2022-07-14 16:06:15 +01:00
Geza Lore
f37cc2353d
Fix standard library incldues
2022-07-14 15:49:00 +01:00
Geza Lore
6a7bda6910
Correctly schedule combinational logic driven from DPI exports.
...
Fixes #3429 .
2022-07-14 15:35:49 +01:00
Geza Lore
ff1b9930fc
Handle multiple external domains in V3Order
...
Make the external domains provider of ordering populate an output
vector, which then allows us to add multiple external sensitivities to
combinational logic.
2022-07-14 11:09:40 +01:00
Geza Lore
582da6df9a
Merge branch 'master' into develop-v5
2022-07-14 10:08:52 +01:00
Geza Lore
3bd830eacf
Minor clean up of initialization
2022-07-13 18:24:48 +01:00
Geza Lore
f4efcbde5c
Remove simple use of static data from V3OutFormatter::indentSpaces
2022-07-13 16:15:21 +01:00
Geza Lore
658819bb71
Trivial static const -> constexpr
2022-07-13 16:01:03 +01:00
Geza Lore
3fc8249429
Use AstNode::addHereThisAsNext in a few places
2022-07-13 13:57:00 +01:00
Geza Lore
e0a38ce2c2
Remove unnecessary AstNode::clearIter()
2022-07-13 13:57:00 +01:00
Geza Lore
178e1789b5
Make AstNode::addHereThisAsNext always O(1)
...
Using unlinkFrBackWithNext is O(n) in the size of the list if unlinking
from the middle, so addHereThisAsNext also had this complexity. This
patch implements addHereThisAsNext directly, which is always O(1).
2022-07-13 12:13:40 +01:00
William D. Jones
108c900387
Fix unique_ptr memory header for MinGW64 ( #3493 ).
2022-07-13 06:38:03 -04:00
Wilson Snyder
63507e8e29
Internals: Favor UASSERT_OBJ when have object.
2022-07-12 18:02:57 -04:00
Geza Lore
87f1e06c41
Small algorithmic improvement of PartContraction::siblingPairFromRelatives
...
Use std::partial_sort for the non-exhaustive case. This is O(n) instead
of O(n*log(n)) in the size of the candidate list being sorted. (It
actually is O(n*log(k)), but k is constant 6 in the non-exhaustive
case).
2022-07-12 19:10:01 +01:00
Geza Lore
7e8bafd217
Remove static data use from PartContraction::siblingPairFromRelatives
...
Use std::sort with lambda rather than qsort with static function and
static data. Verilation performance neutral.
2022-07-12 19:09:40 +01:00
Geza Lore
457ad07ade
Remove unnecessary static state from V3EmitCFunc
2022-07-12 17:51:17 +01:00
Geza Lore
c9ac9a75a6
Merge branch 'master' into develop-v5
2022-07-12 17:29:45 +01:00
Geza Lore
79c901c220
Tighten signatures/implementaion of VerilatedModel abstract methods.
2022-07-12 16:06:08 +01:00
Geza Lore
b61d819fcb
Move contextp() under VerilatedModel
2022-07-12 16:06:08 +01:00
Geza Lore
f4038e3674
Move thread pool and execution profiler into the context. ( #3477 )
...
Fixes #3454
2022-07-12 11:41:15 +01:00
Arkadiusz Kozdra
8377514127
Add support for $test$plusargs(expr) ( #3489 )
2022-07-11 06:21:35 -04:00
Wilson Snyder
d8ea989eda
Tests/examples: Remove some legacy Verilator:: calls.
2022-07-09 09:50:50 -04:00
Wilson Snyder
5f3316d3dc
* Fix empty string arguments to display ( #3484 ).
2022-07-09 08:30:57 -04:00
Wilson Snyder
a4fddb3fbe
Fix table misoptimizing away display ( #3488 ).
2022-07-09 07:55:46 -04:00
Wilson Snyder
3d71716a8a
Internals: Constructor style cleanup. No functional change.
2022-07-09 07:40:07 -04:00
Yutetsu TAKATSUKASA
9f37cef1bb
Fix #3470 of incorrect bit op tree optimization ( #3476 )
...
* Tests: Add a test to reproduce #3470
* Update LSB during return path of traversal. No functional change is intended.
* Introduce LeafInfo::m_msb
* Update LeafInfo::m_msb when visitin AstCCast
* Internals: Add comment, reorder. No functional change is intended.
* Delete explicit from copy constructor to fix build error.
* Update Changes
* Internals: Remove unused parameter. No functional change is intended.
* Tests: Add explanation to t_const_opt.
2022-07-06 08:33:37 +09:00
Geza Lore
0de1bbc85b
Add and use VL_CONSTEXPR_CXX17
2022-07-05 14:21:28 +01:00
Geza Lore
3aa8624658
Set 'threads' in tests via parameter to compile
...
This is in preparation to #3454 .
2022-07-05 12:33:41 +01:00
Geza Lore
42b711b862
Don't use 'assert' in profiler initialization
2022-07-05 12:18:54 +01:00
Wilson Snyder
b25b798dbe
Merge branch 'master' into develop-v5
2022-07-04 13:20:03 -04:00
Mariusz Glebocki
2873dbe154
Optimize file writing by using a memory buffer. ( #3461 )
2022-07-04 10:23:31 -04:00
Felix Yan
31a83cb0d8
Fix use of C++17 on Arch Linux ( #3479 )
2022-06-29 11:24:30 -04:00
Geza Lore
383e384739
Remove always true cfg_with_threaded from test driver
2022-06-27 15:23:32 +01:00
Geza Lore
1bb6433649
Improve worker thread shutdown.
...
Always ensure worker thread task queue is drained before shutting down.
2022-06-27 15:03:36 +01:00
Yutetsu TAKATSUKASA
ced39d0982
Internals: preparation for fixing #3470 ( #3475 )
...
* Internals: Let LeafInfo class. No functional change is intended.
* Internals: Rename LeafInfo::width -> LeafInfo::varWidth(). No functional change is intende.
2022-06-27 22:41:33 +09:00
Wilson Snyder
fc4d6a62af
Remove VL_PROFILER ifdef. Partial ( #3454 ).
2022-06-22 20:06:23 -04:00
Wilson Snyder
fa99cbbc73
Commentary: Fix mis-sorted option names. No functional change.
2022-06-21 19:28:26 -04:00
Wilson Snyder
49455721a3
Commentary
2022-06-21 19:28:23 -04:00
Unai Martinez-Corral
11032b1936
Fix bisonpre for MSYS2 ( #3471 )
2022-06-20 11:59:27 -04:00
Wilson Snyder
e7ca4a69e3
Merge branch 'master' into develop-v5
2022-06-19 15:22:09 -04:00
Wilson Snyder
f2fba51fe2
devel release
2022-06-19 15:13:29 -04:00
Wilson Snyder
7c79f0d431
Version bump (Changes update)
2022-06-19 15:10:23 -04:00
Wilson Snyder
41b9b30b9b
Version bump
2022-06-19 15:01:17 -04:00
Wilson Snyder
1fa82ffb7b
Commentary: Update ChangeLog
2022-06-19 15:00:10 -04:00
Wilson Snyder
4f93ac6477
Internals: Style modernization. No functional change intended.
2022-06-15 18:49:32 -04:00
Krzysztof Bieganski
f7533010c6
Internals: Add setNoopt() function to LifeVisitor ( #3468 )
2022-06-15 18:11:03 -04:00
Todd Strader
47b650d821
Fix public unpacked input ports ( #3465 )
2022-06-15 07:41:59 -04:00
Geza Lore
0c2c097377
Add -fno-merge-cond-motion option
...
This disables code motion during V3MergeCond, for debugging.
2022-06-13 14:16:11 +01:00
Geza Lore
d721f70690
Commentary
2022-06-13 12:14:37 +01:00
Kevin Kiningham
ea8aaa21e8
Fix compile error under strict C++11 mode ( #3463 )
2022-06-13 12:14:02 +01:00
Kamil Rakoczy
660d1059b0
With --no-decoration, remove output whitespace ( #3460 )
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2022-06-10 07:26:33 -04:00
Wilson Snyder
e7dc2de14b
Fix BLKANDNBLK on $readmem/$writemem ( #3379 ).
2022-06-04 12:43:18 -04:00
github action
aca9fd3bed
Apply 'make format'
2022-06-04 16:30:41 +00:00
Wilson Snyder
09f3f40462
Fix clang-discovered missing comma.
2022-06-04 12:27:44 -04:00
Wilson Snyder
e2525d8440
Tests: Fix racy tests for develop-v5.
2022-06-04 12:22:11 -04:00
Wilson Snyder
6769106881
Merge branch 'master' into develop-v5
2022-06-04 12:17:29 -04:00
Wilson Snyder
32100a3c91
Tests: Fix racy tests for develop-v5.
2022-06-04 12:17:04 -04:00
Wilson Snyder
0f324c8309
Merge branch 'master' into develop-v5
2022-06-04 11:59:49 -04:00
Wilson Snyder
67f7432dd7
Commentary ( #3436 ).
2022-06-04 08:37:42 -04:00
Wilson Snyder
59dc2853e3
Support concat assignment to packed array ( #3446 ).
2022-06-03 21:32:13 -04:00
Wilson Snyder
ada58465b2
Add -f<optimization> options to replace -O<letter> options ( #3436 ).
2022-06-03 20:43:16 -04:00
Wilson Snyder
173f57c636
Changed --no-merge-const-pool to -fno-merge-const-pool ( #3436 ).
2022-06-03 19:41:59 -04:00
Wilson Snyder
1f3e8640f7
Examples: -Os should be a compile flag, not Verilator flag.
2022-06-03 18:45:39 -04:00
Wilson Snyder
6039e9dcc3
Commentary
2022-06-02 21:32:22 -04:00
Yutetsu TAKATSUKASA
d64f979f99
Fix BitOpTree optimization to consider polarity of frozen node ( #3445 ) ( #3459 )
...
* Tests: add a test to another failing case of #3445
* Consider polarity as lsb in BitOpTree optimization.
2022-06-01 09:26:16 +09:00
Huanghuang Zhou
0c53d19113
Commentary: InstrCountVisitor documentation ( #3457 )
...
Signed-off-by: huanghuang.zhou <[email protected] >
2022-05-31 07:10:58 -04:00
Geza Lore
c64a07fd09
CI: fix cache keys in test jobs
2022-05-30 18:35:59 +01:00
Geza Lore
694919b9d1
CI: add ubuntu-22.04 regressions
2022-05-30 18:34:41 +01:00
Geza Lore
606b35853b
Configure and compile with C++17 on Ubuntu 22.04
...
The packaged libsystemc on Ubuntu 22.04 uses C++17, so default to that
on that platform. Keep C++14 elsewhere.
2022-05-30 18:34:41 +01:00
Yutetsu TAKATSUKASA and Geza Lore
26b7452178
Fix #3445 of BitOpTreeOpt ( #3453 )
...
* Tests: Check BitOpTree statistics in t_const_opt.
* Tests: Add a test to reproduce #3445
* Fix #3445 . Don't forget LSB of frozen node in BitOpTreeOpt.
* Apply suggestions from code review
Co-authored-by: Geza Lore <[email protected] >
2022-05-30 19:33:06 +09:00
Geza Lore
b51f887567
Perform VCD tracing in parallel when using --threads ( #3449 )
...
VCD tracing is now parallelized using the same thread pool as the model.
We achieve this by breaking the top level trace functions into multiple
top level functions (as many as --threads), and after emitting the time
stamp to the VCD file on the main thread, we execute the tracing
functions in parallel on the same thread pool as the model (which we
pass to the trace file during registration), tracing into a secondary
per thread buffer. The main thread will then stitch (memcpy) the buffers
together into the output file.
This makes the `--trace-threads` option redundant with `--trace`, which
now only affects `--trace-fst`. FST tracing uses the previous offloading
scheme.
This obviously helps a lot in VCD tracing performance, and I have seen
better than Amdahl speedup, namely I get 3.9x on XiangShan 4T (2.7x on
OpenTitan 4T).
2022-05-29 19:08:39 +01:00
Geza Lore
c4b8675d77
Always inline some small, hot trace routines
2022-05-28 12:47:09 +01:00
Geza Lore
a7cd7a1ed9
Initialize VerilatedTrace members in class
2022-05-28 12:47:07 +01:00
Geza Lore
a48c779367
Rename verilated_trace_imp.cpp -> verilated_trace_imp.h
...
Also fix file header to describe purpose of this file.
2022-05-28 12:20:35 +01:00
Geza Lore
cf1eccc24f
Make local function 'static' in verilated_profiler.h
2022-05-28 12:17:39 +01:00
Geza Lore
d45caca011
Remove legacy VCD tracing API
...
This has not been used by Verilator for a while, but was kept for
compatibility with some external code. Now removed.
2022-05-28 12:07:24 +01:00
Geza Lore
0722f47539
Improve V3MergeCond by reordering statements ( #3125 )
...
V3MergeCond merges consecutive conditional `_ = cond ? _ : _` and
`if (cond) ...` statements. This patch adds an analysis and ordering
phase that moves statements with identical conditions closer to each
other, in order to enable more merging opportunities. This in turn
eliminates a lot of repeated conditionals which reduced dynamic branch
count and branch misprediction rate. Observed 6.5% improvement on
multi-threaded large designs, at the cost of less than 2% increase in
Verilation speed.
2022-05-27 16:57:51 +01:00
Geza Lore
3af5e7e8da
Remove scope pointer from OrderEitherVertex.
...
For ordering, only the scope of logic vertices should be relevant, so
remove the scope pointer from OrderEitherVertex and move it into
OrderLogicVertex. This does not change single-threaded scheduling at
all. Theoretically, multi-threaded scheduling should not be affected
either though due to some implementation quirk depending on vertex order
in a graph the MT schedule is perturbed by this change, but the
performance effect of this is negligible on all benchmarks I have access
to.
No functional change intended.
Fixes #3442
2022-05-25 20:32:32 +01:00
Geza Lore
160f3ee4a7
Remove dead code, no functional change
2022-05-25 19:11:20 +01:00
Krzysztof Bieganski
3a310f19f0
Adjust loop conditions in VlTriggerVec functions
...
This change is not a functional one; it is only meant to appease the
compiler with respect to warnings such as GCC's `-Wtype-limits`.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-25 18:45:59 +01:00
Krzysztof Bieganski
d7a75dc026
Merge branch 'master' into develop-v5
2022-05-25 11:06:38 +02:00
github action
a372e010bd
Apply 'make format'
2022-05-25 04:51:51 +00:00
Wilson Snyder
530817191e
Support non-ANSI interface port declarations ( #3439 ).
2022-05-25 00:50:50 -04:00
Geza Lore
1282548a1c
Only consider definitions in t_flag_csplit
2022-05-20 18:02:00 +01:00
Geza Lore
c7610ed044
Fix FST tracing thread in CMake build
2022-05-20 17:04:46 +01:00
Geza Lore
ffc1c51526
Commentary
2022-05-20 16:44:53 +01:00
Geza Lore
b130a8cfeb
Add -DVM_TRACE_VCD in model builds with Make with --trace
2022-05-20 16:44:38 +01:00
Geza Lore
551bd284dd
Rename some internals related to multi-threaded tracing
...
Rename the implementation internals of current multi-threaded tracing to
be "offload mode". No functional change, nor user interface change
intended.
2022-05-20 16:44:35 +01:00
Wilson Snyder
f0a2c98376
Commentary
2022-05-20 08:34:32 -04:00
Krzysztof Bieganski
9edccfdffa
Initial support for intra-assignment timing controls, net delays ( #3427 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 19:19:44 +01:00
Geza Lore
1a056f6db9
Fix invalid conditional merging when starting at 'c = c ? a : b'
...
Fixes #3409 .
2022-05-17 18:36:40 +01:00
Krzysztof Bieganski
e018eb7bac
Support AstClass::repairCache() after V3Class ( #3431 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 09:22:43 -04:00
Krzysztof Bieganski
0a91ddf38a
Tests: Better grep check in t_foreach ( #3435 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 09:20:59 -04:00
Krzysztof Bieganski
67bb2c640e
Tests: Rename t_timing_clkgen to t_timing_clkgen1 ( #3430 )
...
This is a pre-PR to #3363 , which will introduce more clock gen tests.
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 09:19:51 -04:00
Krzysztof Bieganski
561eaa311d
Tests: Enable CI testing with GCC 10 ( #3432 )
...
This is a pre-PR to #3363 .
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-17 09:19:06 -04:00
Geza Lore
282887d9c6
Fix code coverage holes
...
Fixes #3422
2022-05-16 21:22:21 +01:00
Krzysztof Bieganski
3f7a248ed4
Refactor some of the Begin handling to a separate function ( #3426 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-16 20:45:33 +01:00
Krzysztof Bieganski
ecaa07a72a
Rename AstTimingControl to AstEventControl ( #3425 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2022-05-16 20:44:41 +01:00
Geza Lore
0e62cd11da
Don't issue DEPRECATED for now no-op clock_enable attribute
...
Fixes #3421
2022-05-16 18:57:51 +01:00
Wilson Snyder
99bdc27be3
Internals: Cleanup some statics, trivial part towards ( #3419 )
2022-05-15 14:26:55 -04:00
Wilson Snyder
c3c46967dc
Tests: Appease sanitizer ( #3121 ).
2022-05-15 11:50:52 -04:00
Wilson Snyder
7f1a9239ab
Commentary, fix typo ( #3121 )
2022-05-15 11:14:07 -04:00
Geza Lore
599d23697d
IEEE compliant scheduler ( #3384 )
...
This is a major re-design of the way code is scheduled in Verilator,
with the goal of properly supporting the Active and NBA regions of the
SystemVerilog scheduling model, as defined in IEEE 1800-2017 chapter 4.
With this change, all internally generated clocks should simulate
correctly, and there should be no more need for the `clock_enable` and
`clocker` attributes for correctness in the absence of Verilator
generated library models (`--lib-create`).
Details of the new scheduling model and algorithm are provided in
docs/internals.rst.
Implements #3278
2022-05-15 16:03:32 +01:00
Geza Lore
c8102c8ffe
Fix typo
2022-05-15 16:01:35 +01:00
Wilson Snyder
5aa12e9b51
Add assert when VerilatedContext is mis-deleted ( #3121 ).
2022-05-15 10:51:03 -04:00
Geza Lore
829437b20b
Commentary - dependencies
2022-05-15 15:25:46 +01:00
Wilson Snyder
3c4131d45d
Fix 'with' operator with type casting ( #3387 ).
2022-05-15 09:53:48 -04:00
Wilson Snyder
ae8d8ee1ac
Fix crash with misuse of display.
2022-05-15 09:29:45 -04:00
Geza Lore
39b7c47e7b
Merge branch 'master' into develop-v5
2022-05-15 13:39:14 +01:00
Geza Lore
89ec3d16dc
Allow const nodes in VNRef
...
No functional change.
2022-05-15 13:30:07 +01:00
Geza Lore
f6f03bc261
Merge branch 'master' into develop-v5
2022-05-15 12:05:12 +01:00
Wilson Snyder
7602c983c5
Commentary
2022-05-14 18:16:31 -04:00
HungMingWu
560efb2c9e
Internals: Fix memory leak in V3FileLine ( #3407 ) ( #3408 ). No functional change intended.
2022-05-14 18:15:38 -04:00
Wilson Snyder
c2328ef46a
Spelling fixes.
2022-05-14 16:12:57 -04:00
Geza Lore
766fb56651
Merge branch 'master' into develop-v5
2022-05-14 10:30:45 +01:00
Wilson Snyder
f6035447ae
Internals: Use mutable for mutexes. No functional change.
2022-05-13 07:21:39 -04:00
Wilson Snyder
38438b3373
Internals: Cleanup some defaults. No functional change.
2022-05-12 23:30:39 -04:00
Wilson Snyder
71dedccbbe
Support compile time trace signal selection with tracing_on/off ( #3323 ).
2022-05-12 22:28:08 -04:00
Martin Stadler
cddbe4642f
Fix cmake rules to support higher-level targest ( #3377 ) ( #3386 ).
...
Don't add linker flags as generator expression to support linking `TARGET` to higher-level targets in a top-level CMakeLists.txt file.
2022-05-11 21:33:05 -04:00
Wilson Snyder
bdfdc737a0
Internals: Cleanup V3Config. No functional change intended.
2022-05-11 00:47:52 -04:00
Wilson Snyder
3d045c3aee
Internals: Cleanup some verilog.y formatting. No functional change.
2022-05-09 00:37:51 -04:00
HungMingWu
9583f152ee
Fix compile error when enable VL_LEAK_CHECKS ( #3411 ).
...
Signed-off-by: HungMingWu <[email protected] >
2022-05-08 20:49:13 -04:00
Wilson Snyder
5b2755d28d
Untabify verilog.y ( #3412 ). No functional change.
2022-05-08 20:46:18 -04:00
Geza Lore
bec4610e12
Merge branch 'master' into develop-v5
2022-05-08 15:50:50 +01:00
Kamil Rakoczy
9378259779
Fix UNOPTFLAT warning from initial static var ( #3406 )
...
Signed-off-by: Kamil Rakoczy <[email protected] >
2022-05-06 10:24:03 +02:00
Wilson Snyder
3d762282b9
Fix hang with large case statement optimization ( #3405 ).
2022-05-05 07:02:52 -04:00
Wilson Snyder
184ebe72a2
Merge branch 'master' into develop-v5
2022-05-02 22:27:58 -04:00
Wilson Snyder
30783e6a79
devel release
2022-05-02 22:23:05 -04:00
Wilson Snyder
aa86c777f4
Version bump
2022-05-02 22:17:20 -04:00
Geza Lore
a2792785fe
Add V3GraphVertex::dotRank to add GraphViz ranks to graph dumps
...
This is a simple debugging aid to allow constraining the graph layout
via GraphViz rank directives. Note this is not related in any way to the
vertex 'rank' attribute used by some of the graph algorithms.
No functional change.
2022-05-02 10:27:26 +01:00
Wilson Snyder
267315e7d4
Commentary: Update ChangeLog
2022-05-01 22:01:30 -04:00
Geza Lore
2ad0bcbba9
Merge branch 'master' into develop-v5
2022-05-01 16:49:42 +01:00
Wilson Snyder
99d39cb6ff
Fix autoconf warning
2022-05-01 10:43:04 -04:00
Wilson Snyder
915ceb2d04
Tests: Untabify tests. No functional change.
2022-05-01 10:10:00 -04:00
Geza Lore
88bb7cdca6
Merge branch 'master' into develop-v5
2022-04-29 17:14:11 +01:00
Geza Lore
49c90ecbce
Issue consistent INITIALDLY/COMBDLY/BLKSEQ warnings
...
Some cases of warnings about the use of blocking and non-blocking
assignments in combinational vs sequential processes were suppressed in
a way that is inconsistent with the *actual* current execution model of
Verilator. Turning these back on to, well, warn the user that these might
cause unexpected results. V5 will clean these up, but until then err on
the side of caution.
Fixes #864 .
2022-04-29 17:05:44 +01:00
Geza Lore
8395004d25
Add AstNode::exists and AstNode::forall predicates
2022-04-29 15:44:22 +01:00
Kamil Rakoczy
5de1c619c8
Fix foreach segmentation fault ( #3400 ).
2022-04-28 06:11:31 -04:00
Yoda Lee
a6d678d41d
Fix hang in generate symbol references ( #3391 ) ( #3398 )
2022-04-27 18:40:36 -04:00
Aliaksei Chapyzhenka
2b91d764b5
Added missing #include <memory> ( #3392 )
...
Fixes #3390
2022-04-23 20:11:46 +01:00
Geza Lore
46de9460a6
Merge branch 'master' into develop-v5
2022-04-23 15:38:30 +01:00
Geza Lore
62337bb6ac
Future proofing some tests. No functional change.
2022-04-23 15:12:52 +01:00
Geza Lore
9abab2c366
Add separate AstInitialStatic node for static initializers
...
Static variable initializers run before initial blocks, so use an
explicitly different procedure type for them. This also enables us to
now raise errors for assignments to const variables in initial blocks.
2022-04-23 15:12:49 +01:00
Geza Lore
b22e368b25
Add default parameters to some Ast nodes for convenience
...
Also update usage to utilize. No functional change.
2022-04-23 14:47:16 +01:00
Geza Lore
a9cd2998e5
Don't mangle run-time library method names.
2022-04-23 14:47:16 +01:00
Geza Lore
f1ea30f257
Use iterate*Const V3EmitV visitors. No functional change.
2022-04-23 14:47:12 +01:00
Geza Lore
0b74e9b354
Ensure topological ordering of module list.
...
At the end of V3Param, fix up the module list to be topologically
sorted. We need to do this at the end as a later instantiation of a
recursive module might instantiate an earlier specialization, which we
cannot know until we processed everything. The rest of the compiler
depends on the module list being topologically sorted.
Fixes #3393
2022-04-23 13:25:27 +01:00
Geza Lore
8189416d0c
Partial cleanup of V3Param. No functional change.
2022-04-23 13:03:52 +01:00
Geza Lore
5f0e1fae7f
Simplify and clarify reporting of enclosing instance
...
Rename AstNodeModule::hierName -> someInstanceName and explain that this
is only used for user messages.
Rename AstNode::locationStr -> instanceStr and simplify implementation.
In particular, do not report an instance if we can't find a reasonable
guess.
2022-04-22 23:38:23 +01:00
HungMingWu
880a9be3b1
Internal: Add C++20ish reverse_view for range loops. No functional change ( #3388 ).
...
Signed-off-by: HungMingWu <[email protected] >
2022-04-18 13:03:56 -04:00
Wilson Snyder
7bfc1a00a7
Fix tracing interfaces inside interfaces ( #3309 ).
2022-04-14 09:14:44 -04:00
Wilson Snyder
92f64de115
Add FIXMEV5 comments
2022-04-13 22:18:59 -04:00
Wilson Snyder
f4baa86b71
Devel version 5
2022-04-13 07:15:11 -04:00
Julien Margetts
baff64a43d
Add VK_USER_OBJS dependency to --create-lib library ( #3370 ) ( #3382 ).
2022-04-12 07:04:31 -04:00
github action
b7f2bb0e80
Apply 'make format'
2022-04-12 10:54:48 +00:00
HungMingWu
08e0a397d3
Fix debugi-V3Param null pointer fault ( #3380 ) ( #3381 )
...
Signed-off-by: HungMingWu <[email protected] >
2022-04-12 06:53:52 -04:00
Wilson Snyder
5f333be947
Internals: Dump TraceDecl codes.
2022-04-10 19:40:27 -04:00
Wilson Snyder
f5f4e15ce2
Fix filenames with dots overwriting debug .vpp files ( #3373 ).
2022-04-10 10:33:16 -04:00
Geza Lore
fbd568dc47
Prep for multiple AstExecGraph. No functional change.
2022-04-10 12:00:17 +01:00
Geza Lore
c79ea88576
Fix incorrect localization when encountering non-leaf functions.
...
Fixes #3286 .
2022-04-09 20:30:39 +01:00
Wilson Snyder
9be4e7b576
Fix Bison 3.8.2 error ( #3366 ).
2022-03-31 19:14:13 -04:00
Wilson Snyder
33105f017c
Commentary
2022-03-30 20:17:59 -04:00
Wilson Snyder
e02f97854c
Deprecate 'vluint64_t' and similar types ( #3255 ).
2022-03-27 15:27:40 -04:00
Wilson Snyder
960d0de361
Tests: Cleanup vluint_t/vlsint_t in tests, part of ( #3255 )
2022-03-27 15:03:25 -04:00
Wilson Snyder
31ce1fdfd3
Tests: Check legacy part of ( #3255 )
2022-03-27 14:50:49 -04:00
Wilson Snyder
9821381059
Tests: new t_lint_latch_5 test ( #2997 ).
2022-03-27 14:42:36 -04:00
Wilson Snyder
3f7bf3d2dc
Fix MSVC localtime_s ( #3124 ).
2022-03-27 13:59:18 -04:00
Geza Lore
f9e69984ff
Set vlSymsp in modules at construction time.
...
This ensures it's available from very early on. No functional change.
2022-03-27 16:10:20 +01:00
Geza Lore
b1b5b5dfe2
Improve run-time profiling
...
The --prof-threads option has been split into two independent options:
1. --prof-exec, for collecting verilator_gantt and other execution
related profiling data, and
2. --prof-pgo, for collecting data needed for PGO
The implementation of execution profiling is extricated from
VlThreadPool and is now a separate class VlExecutionProfiler. This means
--prof-exec can now be used for single-threaded models (though it does
not measure a lot of things just yet). For consistency VerilatedProfiler
is renamed VlPgoProfiler. Both VlExecutionProfiler and VlPgoProfiler are
in verilated_profiler.{h/cpp}, but can be used completely independently.
Also re-worked the execution profile format so it now only emits events
without holding onto any temporaries. This is in preparation for some
future optimizations that would be hindered by the introduction of function
locals via AstText.
Also removed the Barrier event. Clearing the profile buffers is not
notably more expensive as the profiling records are trivially
destructible.
2022-03-27 15:57:30 +02:00
Geza Lore
c7440b250f
Validate integer run-time arguments
2022-03-26 22:58:47 +00:00
Geza Lore
bab8462789
Rebuild run-time library if generated makefile changes
...
The generated makefile contains compiler options that are passed when
building the run-time library, so re-build if it changes.
2022-03-26 21:29:03 +00:00
Wilson Snyder
4eaa6fdd06
Internals: Use python pass appropriately. No functional change intended.
2022-03-26 15:57:52 -04:00
Wilson Snyder
38b2845e2a
Tests: Fix whitespace test and resulting fallout.
2022-03-26 15:41:32 -04:00
Xi Zhang
14d24213a8
Support LoongArch ISA multithreading ( #3353 ) ( #3354 )
2022-03-17 09:04:47 -04:00
Wilson Snyder
c61258c0d0
Commentary ( #3351 )
2022-03-14 09:10:03 -04:00
Yutetsu TAKATSUKASA
47226236f4
Internals: Resolve potential SEGV risk ( #3350 )
2022-03-13 18:13:51 +09:00
Wilson Snyder
e744c21f56
devel release
2022-03-12 13:17:48 -05:00
Wilson Snyder
89a0632ecc
Version bump
2022-03-12 13:09:08 -05:00
Wilson Snyder
dcc05db7f1
Commentary: Changes updated.
2022-03-12 11:34:04 -05:00
Drew Ranck
90fb2e5487
Fix ++/-- tree fix in case statements ( #3346 ) ( #3349 ).
2022-03-12 11:24:32 -05:00
Wilson Snyder
b5ce7d5982
Add VERILATOR_VERSION_INTEGER for determining API ( #3343 ).
2022-03-12 11:17:39 -05:00
Wilson Snyder
f211616a4c
Fix missing debug, and code cleanup in V3LinkInc.
2022-03-11 07:34:11 -05:00
Chuxuan Wang
a9cb9bac21
Commentary in docs/guide/connecting.rst ( #3345 )
2022-03-09 03:57:55 -05:00
Wilson Snyder
ae005434e4
Fix $fscanf etc to return -1 on EOF ( #3313 ).
2022-03-07 17:44:16 -05:00
Wilson Snyder
ef87d057fc
Fix $fscanf etc to return -1 on EOF ( #3113 ).
2022-03-07 17:43:33 -05:00
github action
181b9a5795
Apply 'make format'
2022-03-06 22:17:42 +00:00
Wilson Snyder
9baf9c55c2
Commentary
2022-03-06 17:16:41 -05:00
Yutetsu TAKATSUKASA
e29132377e
Fix driver.pl when expected value is 0 ( #3339 )
...
* Tests: use defined() to accept $expvalue==0
* Tests: Update expected stats of t_cast_huge in --vltmt mode
2022-03-06 14:43:28 +09:00
Yutetsu TAKATSUKASA
999751c422
Count non-empty always blocks in V3Split ( #3337 )
...
"Optimizations, Split always" in stats now means the number of newly added always.
Co-authored-by: Wilson Snyder <[email protected] >
2022-03-06 12:56:34 +09:00
Wilson Snyder
22656d6fdd
Fix Vdeeptemp error with --threads and --compiler clang ( #3338 ).
2022-03-05 20:17:36 -05:00
Wilson Snyder
ef0c5fd772
Fix unnamedblk error on foreach ( #3321 ).
2022-03-05 17:05:22 -05:00
Wilson Snyder
90c61c79d6
Fix unnamedblk error on foreach ( #3321 ).
2022-03-05 17:04:52 -05:00
Wilson Snyder
4ba3bff87f
Fix class stringification on wide arrays ( #3312 ).
2022-03-05 16:32:30 -05:00
Wilson Snyder
c3dd6f5344
Fix public function arguments that are arrayed ( #3316 ).
2022-03-05 16:19:53 -05:00
Wilson Snyder
321880f5a6
Add trace dumpvars() call for selective runtime tracing ( #3322 ).
2022-03-05 15:44:32 -05:00
Geza Lore
3737d209f6
Keep recursive module list topologically ( #3324 ).
...
Fixes (#3324 ).
2022-03-05 15:04:13 +00:00
Todd Strader
29c4b0a141
Fix cast to array types ( #3333 )
2022-03-03 07:48:04 -05:00
Wilson Snyder
956f64c6ba
Fix compile error with --trace-fst --sc ( #3332 ).
2022-03-02 07:26:26 -05:00
Larry Doolittle
c2d18d8ae4
Commentary: More minor spelling fixes in docs/guide/*.rst ( #3331 )
2022-03-01 22:07:12 -05:00
Geza Lore
5b9806ae6d
Improve V3Combine
...
- Always use a fast function to replace a slow one if available
- Iterate to fixed point (i.e.: if combining made more functions
identical, combine those too). This will be more useful in the future.
- Use only single, const traversal
2022-02-27 20:40:58 +00:00
Geza Lore
665fa140a8
V3Combine: Fix crash if CCall in expression position
2022-02-27 12:52:40 +00:00
Yutetsu TAKATSUKASA
32f843a214
Internals: Don't show "Split always" statistics twice. (Split and Reorder were shown). ( #3328 )
2022-02-27 20:33:54 +09:00
Larry Doolittle
72a3c756ad
Commentary: Minor spelling fixes in docs/guide/*.rst ( #3327 )
2022-02-27 10:01:44 +00:00
github action
47069dfe52
Apply 'make format'
2022-02-27 07:53:05 +00:00
HungMingWu
43a84d7ad8
Internals: Fix VL_RESTORER behavior on passing a lvalue reference ( #3326 )
...
Signed-off-by: HungMingWu <[email protected] >
2022-02-27 07:52:11 +00:00
Jamie Iles
b6ca2a42f2
Fix FST traces to include vector range ( #3296 ) ( #3297 )
2022-02-26 12:52:24 -05:00
Wilson Snyder
e52a4ac74f
Fix $readmem file not found to be warning not error ( #3310 ).
2022-02-19 10:04:12 -05:00
Geza Lore
decfa6bd7a
V3Order: Use unique ordinals per function name
...
This helps diffing generated code after reordering output, otherwise no
functional change.
2022-02-16 18:36:40 +00:00
Geza Lore
8931bd37e2
Cleanup V3Changed and V3GenClk
2022-02-16 18:09:19 +00:00
Geza Lore
4b79d23d00
Replace SenTreeSet with generic collection
...
Introduce VNRef that can be used to wrap AstNode keys in STL
collections, resulting in equality comparisons rather than identity
comparisons. This can then replace the SenTreeSet data-structure.
2022-02-16 18:09:19 +00:00
github action
77fe7c426e
Apply 'make format'
2022-02-16 05:11:38 +00:00
Raynard Qiao
331c2244fc
Fixed signed number operation ( #3294 ) ( #3308 )
2022-02-16 00:10:34 -05:00
Wilson Snyder
5a3eab634a
Suppress WIDTH warning on negate using carry bit ( #3295 ). [Peter Monsson]
2022-02-13 15:28:07 -05:00
Wilson Snyder
77e68acf54
Suppress WIDTH warning on negate using carry bit ( #2395 ). [Peter Monsson]
2022-02-13 15:27:31 -05:00
Wilson Snyder
7a355d448a
Fix skipping public enum values with four-state values ( #3303 ).
2022-02-10 19:27:28 -05:00
Wilson Snyder
3b7ad1820d
GTKWave header updates from upstream.
2022-02-09 21:56:22 -05:00
Wilson Snyder
d3b63b2653
Fix error if file not found
2022-02-09 21:56:22 -05:00
Wilson Snyder
046896e60a
Commentary
2022-02-09 21:56:22 -05:00
Geza Lore
fb9119ff49
Rename AstCFunc attribute for clarity.
...
'formCallTree' -> 'isFinal'. No functional change.
2022-01-28 16:18:50 +00:00
Guokai Chen
818aaa8b89
Fix macOS arm64 build by excluding x86 only cpuid header ( #3285 ) ( #3291 )
...
Signed-off-by: Guokai Chen <[email protected] >
2022-01-23 09:15:09 -05:00
Geza Lore
26bdfc3474
Commentary
2022-01-21 05:53:42 +00:00
Wilson Snyder
0e91d8a10e
Internal: Rename for clarity. No functional change.
2022-01-19 19:14:09 -05:00
Wilson Snyder
434c3c3ef3
Removed the deprecated "fl" attribute in XML output; use "loc" attribute instead.
2022-01-17 16:22:07 -05:00
Wilson Snyder
21e05c43dd
Removed the deprecated lint_off flag -msg; use -rule instead.
2022-01-17 16:04:06 -05:00
Wilson Snyder
0e154b35ef
devel release
2022-01-17 15:54:31 -05:00
Wilson Snyder
e6554e061c
Version bump
2022-01-17 15:52:26 -05:00
Wilson Snyder
0f004c8e7b
Commentary, ChangeLog up to date
2022-01-17 14:16:09 -05:00
Julie Schwartz
f5b1a5cd58
Fix make support for BSD ar ( #2999 ) ( #3256 ). [Julie Schwartz]
...
While GNU 'ar' supports '@' to specify a file, BSD 'ar' does not.
The max line length can be handled by 'xargs' instead, which will know
to break up the command. In case there are multiple calls, only build
the index (specified with '-s') once in a later call.
2022-01-17 14:04:43 -05:00
Wilson Snyder
48a098b041
Tests: Fix some force/release coverage holes.
2022-01-16 16:53:06 -05:00
Geza Lore
f8c0169e82
Implement 'forceable' attribute
...
Using the 'forceable' directive in a configuration file, or the /*
verilator forceable */ metacomment on a variable declaration will
generate additional public signals that allow the specified signals to
be forced/released from the C++ code.
2022-01-16 15:31:37 +00:00
Geza Lore
539c9d4c63
Merge alternate 'force'/'release' implementation
...
- Add more tests, including for tracing.
- Apply some cleaner, more generic abstractions in the implementation.
- Use clearer AstRelease which is not an assignment.
2022-01-16 15:31:37 +00:00
Geza Lore
b4d8220cbb
Deprecate --cdc ( #3279 )
2022-01-16 15:30:44 +00:00
Wilson Snyder
5eded789aa
Fix test
2022-01-09 19:29:30 -05:00
Wilson Snyder
e931c6230a
Run EmitV test after all stages, and fix resulting fallout
2022-01-09 18:11:24 -05:00
Geza Lore
64a6e1ac8b
Add AstNode::foreach method for simple pre-order traversal ( #3276 )
2022-01-09 22:34:10 +00:00
Wilson Snyder
50094ca296
Internals: Add cpplint control file and related cleanups
2022-01-09 16:49:38 -05:00
Wilson Snyder
15b32dc140
Internals: cpplint cleanups. No functional change.
2022-01-08 12:01:39 -05:00
Wilson Snyder
441ecfedc9
Internals: Make all .h files compilable
2022-01-08 11:18:23 -05:00
HungMingWu
78147ee8d7
Fix compile error at GCC11
...
Fixes #3273
Signed-off-by: HungMingWu <[email protected] >
2022-01-08 10:40:51 +00:00
Geza Lore
8c58612a3b
Improve V3Inline speed and memory consumption
...
Avoid cloning the module when inlining the last instance that references
that module. This saves a lot of memory because it saves cloning
singleton modules (those with a single instance), which we always
inline. The top few levels of the hierarchy are often simple wrappers,
including the one added by Verilator in V3LinkLevel::wrapTop. Cloning
these and putting off deleting the originals can be very expensive
because they often have a lot of contents inlined into them, so each
layer of wrapper that is inlined would essentially add a whole new clone
of the large top-level. Directly inlining the module for the last cell
without cloning saves us from all this duplicate memory consumption and
also from having to create the clones in the first place.
Also added minor traversal speedups
This reduces the memory consumption of V3Inline by 80% and peak memory
consumption of Verilator by about 66% on a large design, while speeding
up the V3Inline pass by ~3.5x and the whole of Verilator by ~8% while
producing identical output.
2022-01-07 12:11:10 +00:00
Geza Lore
56f9d244de
Cleanup V3Inline. No functional change.
2022-01-07 12:08:17 +00:00
Geza Lore
2ba9eb4228
Speed up TSP sort implementation
...
- More efficient comparison by pre-computing sorting keys.
- Remove work items in algorithms known to be redundant earlier.
This greatly reduces data structure sizes.
- Use V3GraphVertex->user() for state tracking instead of unordered_map
while both of these are constant time, they do add up.
- In `makeMinSpanningTree`, instead of batch inserting outgoing edges of
each visited vertex into an ordered set, keep an ordered set of sorted
vectors of edges. This reduces the size of the ordered set
significantly (it is now O(V) rather than O(E), and as the subject
graph is a complete graph, V ~ sqrt(E), so this is a significant gain).
- Use a vector + sorting in `perfectMatching` instead of an ordered set.
This is faster on large working sets.
This yields 3.8x speedup on the variable order pass and overall 14%
verilation speed gain on a large design.
2022-01-07 12:05:52 +00:00
Geza Lore
9a8c878f2d
Avoid repeated traversal for SC text sections in emit when not needed
...
Repeatedly traversing whole modules in emit (due to file splitting)
looking for `systemc_* sections can add up to a lot of time on large
designs that have been flattened and need to be split into many files.
Assuming `systemc_* is a rarely used feature, just don't bother if we
don't need to. This gain 9% verilation speed improvement on a large
benchmark.
2022-01-07 12:05:50 +00:00
Wilson Snyder
41a563bdc8
Internal cleanups towards recursive functions ( #3267 )
2022-01-04 20:19:58 -05:00
Yutetsu TAKATSUKASA
4e5f30858b
Fix #3258 of internal error with inout port ( #3268 )
...
* Tests: Modify t_tri_inout to reproduce #3258
* Set direction of __en accorting to its main signal direction
* Update Changes
2022-01-05 08:37:20 +09:00
Wilson Snyder
b989ac6db5
Internals: Support linking recursive function calls (but not later stages)
2022-01-03 18:50:41 -05:00
Wilson Snyder
4d1f4bbf49
Backout last commit; is unstable.
2022-01-03 13:04:47 -05:00
Wilson Snyder
e9ad665d32
Internals: Support linking recursive function calls (but not later stages)
2022-01-03 12:25:50 -05:00
Wilson Snyder
78052f87bd
Tests: Update recursive function tests
2022-01-03 12:02:53 -05:00
Wilson Snyder
ebf5c11e03
Internals: In astgen text output, pickup missing node references
2022-01-02 20:54:39 -05:00
Wilson Snyder
7e355e211c
Fix dangling node on error
2022-01-02 20:54:13 -05:00
Wilson Snyder
f36461e696
Internals: Remove dead code
2022-01-02 18:38:07 -05:00
github action
88d7ca01b0
Apply 'make format'
2022-01-02 20:13:16 +00:00
Wilson Snyder
2e2b82c052
Support class static members ( #2233 ).
2022-01-02 15:09:07 -05:00
Wilson Snyder
f1bb0544be
Internals: Cleanups towards static class members. No functional change intended.
2022-01-02 15:03:57 -05:00
Wilson Snyder
3b1371124e
Update bug template.
2022-01-02 14:03:20 -05:00
Wilson Snyder
e6857df5c6
Internals: Rename Ast on non-node classes ( #3262 ). No functional change.
...
This commit has the following replacements applied:
s/\bAstUserInUseBase\b/VNUserInUseBase/g;
s/\bAstAttrType\b/VAttrType/g;
s/\bAstBasicDTypeKwd\b/VBasicDTypeKwd/g;
s/\bAstDisplayType\b/VDisplayType/g;
s/\bAstNDeleter\b/VNDeleter/g;
s/\bAstNRelinker\b/VNRelinker/g;
s/\bAstNVisitor\b/VNVisitor/g;
s/\bAstPragmaType\b/VPragmaType/g;
s/\bAstType\b/VNType/g;
s/\bAstUser1InUse\b/VNUser1InUse/g;
s/\bAstUser2InUse\b/VNUser2InUse/g;
s/\bAstUser3InUse\b/VNUser3InUse/g;
s/\bAstUser4InUse\b/VNUser4InUse/g;
s/\bAstUser5InUse\b/VNUser5InUse/g;
s/\bAstVarType\b/VVarType/g;
2022-01-02 14:03:20 -05:00
github action
73374a0303
Apply 'make format'
2022-01-02 18:36:52 +00:00
Wilson Snyder
e334740dd6
Add AstInitialAutomatic as prep for static class members
2022-01-02 12:35:44 -05:00
Wilson Snyder
84ee833ea7
Ignore --x-initial unique inside classes.
2022-01-02 12:26:10 -05:00
Wilson Snyder
b7ad1e6d61
Internals: Rename some non-nodes to avoid Ast prefix. No functional change.
2022-01-02 10:37:20 -05:00
github action
340efe3a3a
Apply 'make format'
2022-01-02 14:46:15 +00:00
Wilson Snyder
2342549caf
Internals: V3Class cleanup. No functional change.
2022-01-02 09:43:37 -05:00
Wilson Snyder
028737cde8
Tests: Add unsupported t_class_static_member tests.
2022-01-02 09:43:26 -05:00
Wilson Snyder
bf972963f4
Misc internal and test work towards enum type checks ( #726 ).
2022-01-01 22:16:58 -05:00
Wilson Snyder
9bda91b3bf
Fix clang compile warning
2022-01-01 19:33:12 -05:00
Wilson Snyder
e4c5eb5e69
Fix spurious UNUSED by ignoring inout pin connections ( #3242 ).
2022-01-01 18:37:34 -05:00
Wilson Snyder
2e8cc22c54
Copyright year update.
2022-01-01 18:34:15 -05:00
Wilson Snyder
655910d486
Fix associative array first method as statement ( #3228 ).
2022-01-01 17:10:26 -05:00
github action
2a0ec88379
Apply 'make format'
2022-01-01 21:55:27 +00:00
Wilson Snyder
80859a609a
Fix $fclose not accepting expressions ( #3237 ).
2022-01-01 16:48:15 -05:00
Wilson Snyder
d679d50eca
Fix $random not updating seed ( #3238 ). [Julie Schwartz]
2022-01-01 16:43:06 -05:00
Wilson Snyder
65de118e51
Internals: Factor common V3Width function.
2022-01-01 16:15:53 -05:00
Wilson Snyder
4cd56b1fb9
Use C++11 standard types for MacOS portability ( #3254 ) ( #3257 ).
2022-01-01 16:04:20 -05:00
Wilson Snyder
f3945e7c02
Tests: Add t_class_param_pkg test.
2022-01-01 14:30:41 -05:00
Wilson Snyder
5ef982b4b5
Fix internal error on reference to typedef'ed class
2022-01-01 13:48:53 -05:00
Wilson Snyder
f96d336b97
Internals: Pre-elaboration progress towards class parameters.
2022-01-01 12:50:43 -05:00
Wilson Snyder
a68a4fc888
Commentary
2022-01-01 12:26:30 -05:00
Wilson Snyder
0c3ffa1841
Support force/release ( #2491 ) ( #2593 ).
2022-01-01 12:24:19 -05:00
Wilson Snyder
24a0d2a0c9
Internals: Favor member assignment initialization. No functional change intended.
2022-01-01 11:46:49 -05:00
Wilson Snyder
ca42be982c
Copyright year update.
2022-01-01 08:26:40 -05:00
Wilson Snyder
ffc31e2efa
devel release (overdue)
2022-01-01 08:25:44 -05:00
Wilson Snyder
8952aa59ff
Tests: Add force/release tests.
2021-12-31 15:17:16 -05:00
Wilson Snyder
2966f03042
Tests: Enumerations supported
2021-12-31 15:10:29 -05:00
Wilson Snyder
d15e9e2b7a
Internals: Refactor Tristate pull creation. No functional change.
2021-12-31 14:46:16 -05:00
Wilson Snyder
fd45be3def
Internals: Fix class dump
2021-12-22 20:06:14 -05:00
Yutetsu TAKATSUKASA
0658a7654f
Add tests of tracing SystemC model verilated with --hierarchical ( #3252 )
...
* Tests: Add t_hier_block_sc_trace(fst|vcd) that tests tracing hierarchical block on SystemC.
* Add a check that elaboration is done before a trace file is opened.
* Add a check that elaboration is done before trace() is called to verilated SystemC model.
* Tests: call sc_core::sc_start(sc_core::SC_ZERO_TIME) before opening a trace file
* Tests: Fix t_trace_two_sc to call sc_start before opening trace
* Use vl_fatal as suggested in PR review.
2021-12-23 08:41:11 +09:00
Wilson Snyder
7526151670
Fix bad ending address on $readmem ( #3205 ).
2021-12-21 19:55:04 -05:00
Wilson Snyder
560b59f97f
Use C++11 standard types for MacOS portability ( #3254 ).
2021-12-21 13:18:05 -05:00
Geza Lore
b2ca89c185
Add final time and memory stats for "emit" stage
2021-12-20 14:33:10 +00:00
Geza Lore
1de2de4bde
Fix splitting of large _eval and related functions
...
Fix bug that only used to measure size of first statement in functions
to determine if splitting was necessary. Measure whole function instead.
2021-12-20 11:24:11 +00:00
Wilson Snyder
4135867e53
Internals: Some V3Tristate cleanups. No functional change.
2021-12-19 16:06:45 -05:00
Geza Lore
ff425369ac
Reduce .rodata footprint of trace initialization ( #3250 )
...
Trace initialization (tracep->decl* functions) used to explicitly pass
the complete hierarchical names of signals as string constants. This
contains a lot of redundancy (path prefixes), does not scale well with
large designs and resulted in .rodata sections (the string constants) in
ELF executables being extremely large.
This patch changes the API of trace initialization that allows pushing
and popping name prefixes as we walk the hierarchy tree, which are
prepended to declared signal names at run-time during trace
initialization. This in turn allows us to emit repeat path/name
components only once, effectively removing all duplicate path prefixes.
On SweRV EH1 this reduces the .rodata section in a --trace build by 94%.
Additionally, trace declarations are now emitted in lexical order by
hierarchical signal names, and the top level trace initialization
function respects --output-split-ctrace.
2021-12-19 15:15:07 +00:00
Yutetsu TAKATSUKASA
30ccccdb67
Support FST tracing in hierarchical verilation ( #3251 )
...
* Rename t_hier_block_trace -> t_hier_block_trace_vcd
* Add t_hir_block_trace_fst test
* Support FST dump with hierarchical verilation
2021-12-18 16:57:28 +09:00
Wilson Snyder
5e3016f34a
Fix foreach on dotted reference.
2021-12-12 20:44:58 -05:00
Wilson Snyder
f775feb7f0
Fix foreach on dotted reference.
2021-12-12 20:43:15 -05:00
Wilson Snyder
0a94ea5386
Fix missing override
2021-12-12 19:53:20 -05:00
Wilson Snyder
aa8423ba46
Tests: Add t_class_param_mod.pl
2021-12-12 19:49:06 -05:00
Wilson Snyder
d753f36ebc
Internals: Add missing broken assertions & cloneTrees
2021-12-12 18:10:52 -05:00
Wilson Snyder
55976dbc25
Tests: Add t_class_param_nconst_bad test.
2021-12-12 15:26:29 -05:00
Wilson Snyder
77c005835d
Internals: Const cleanup. No functional change.
2021-12-12 15:12:45 -05:00
Wilson Snyder
6b0601fd54
Support lower dimension looping in foreach loops ( #3172 ).
2021-12-11 20:39:58 -05:00
Wilson Snyder
c1652979d5
Avoid += in configure ( #3132 )
2021-12-11 18:58:26 -05:00
Wilson Snyder
740fee660e
Fix associative array foreach loop ( #3229 ).
2021-12-11 18:38:23 -05:00
Wilson Snyder
984ee624ed
Fix break under foreach loop ( #3230 ).
...
Internals: Move Foreach handling into V3Width.
2021-12-11 15:06:33 -05:00
Adrien Le Masle
00ef0519f5
Fix top level parameter overwrite when a package has same parameter ( #3241 ) ( #3247 )
2021-12-11 14:55:59 -05:00
Wilson Snyder
59d170c6f8
Support up to 64 bit enums for .next/.prev/.name ( #3244 ).
2021-12-11 11:29:01 -05:00
Wilson Snyder
9a722ccf62
Internals: Cleanup of InitArray stuff. No functional change intended.
2021-12-11 11:22:04 -05:00
Wilson Snyder
748fa4cb80
Fix coredump after huge enum warning.
2021-12-10 23:08:03 -05:00
Wilson Snyder
694cf371f9
Tests: Always failing tests
2021-12-10 21:22:23 -05:00
Wilson Snyder
8696e38e6f
Primary inputs and outputs (VL_INW/VL_OUTW) now use VlWide type ( #3236 ).
2021-12-09 19:41:33 -05:00
Wilson Snyder
706162ecc6
Commentary
2021-12-09 19:30:16 -05:00
Adrien Le Masle
c3f17ce2c4
Fix VL_STREAML_FAST_QQI with 64 bit left-hand-side ( #3232 ) ( #3235 )
2021-12-09 17:30:04 -05:00
Wilson Snyder
41f29d2ce3
Tests ( #3230 )
2021-12-06 21:27:32 -05:00
Unai Martinez-Corral
7b119a594f
Fix MSWIN compile error ( #2681 ).
2021-12-06 08:15:58 -05:00
Wilson Snyder
b7d20b102b
Internals: Remove unused and cleanup VL_ASSIGNSEL.
2021-12-05 11:59:49 -05:00
Wilson Snyder
ac05a779ae
devel release
2021-12-05 11:16:02 -05:00
Wilson Snyder
935032366f
Version bump
2021-12-05 11:10:19 -05:00
Yutetsu TAKATSUKASA
1160dddc6d
Fix bit op tree optimization ( #3221 )
...
* Add a test to reproduce #3197
* Fix #3197 . Optimize correctly even if a variable is >32
* Quick exit instead of continue. No functional change is intended.
* Delete comment-out line.
* update per review comment
2021-11-30 23:20:00 +09:00
Wilson Snyder
293a5f402b
Fix timescale portability on Arm64 ( #3222 ).
2021-11-28 15:47:19 -05:00
Wilson Snyder
ca09f73446
Tests: Fix open test on some automount cloud providers
2021-11-28 15:40:35 -05:00
Wilson Snyder
e814855357
Tests: Skip gdb tests if no gdb
2021-11-28 15:33:33 -05:00
Wilson Snyder
692306ef44
Optimize $random concatenates/selects ( #3114 ).
2021-11-28 14:17:28 -05:00
Wilson Snyder
ffdc0afe5f
Disable unintended debug message
2021-11-28 14:10:50 -05:00
Wilson Snyder
98037cad56
Internals: Optimize VL_RANDOM to have unclean output
2021-11-28 14:00:19 -05:00
Wilson Snyder
61e3536163
Internals: Remove some unused arguments.
2021-11-28 13:44:16 -05:00
Wilson Snyder
a1a186a86c
Internals: Remove some unused arguments.
2021-11-28 13:07:37 -05:00
Wilson Snyder
04e0c7e4f1
Support tracing through --hierarchical/--lib-create libraries ( #3200 ).
2021-11-27 17:07:27 -05:00
Wilson Snyder
833686446c
Commentary, ChangeLog up to date
2021-11-27 09:05:51 -05:00
Wilson Snyder
c6dae40cf6
Support task name in $display %m ( #3211 ).
2021-11-26 20:38:48 -05:00
Wilson Snyder
cd737065f2
Internals: More const. No functional change intended.
2021-11-26 17:55:36 -05:00
Wilson Snyder
010084201a
Internals: Remove dead code.
2021-11-26 16:15:08 -05:00
Wilson Snyder
60f7eff701
Remove dead statistic.
2021-11-26 16:10:16 -05:00
Wilson Snyder
d1862e25eb
Internals: Cleanup some constructor-constructor assigns. No functional change intended.
2021-11-26 16:05:07 -05:00
Wilson Snyder
b0018fd680
Internals: Remove dead output variable. No functional change.
2021-11-26 15:13:36 -05:00
Wilson Snyder
2742a8c813
Internals: No need for variable name on immediate visitors. No functional change intended.
2021-11-26 10:52:45 -05:00
Wilson Snyder
05e12ab60e
Internals: More const. No functional change intended.
2021-11-26 10:52:45 -05:00
Michaël Lefebvre
9bda2cb4ad
Fix some SliceSels not being constants ( #3186 ) ( #3218 ).
2021-11-26 10:51:11 -05:00
Wilson Snyder
393b9e435d
Internals: Revert previous commit const for clang.
2021-11-25 09:47:06 -05:00
Wilson Snyder
e87a726989
Internals: More const. No functional change intended.
2021-11-25 09:05:50 -05:00
Wilson Snyder
62387a0e32
Fix display of empty string constant ( #3207 ) ( #3215 ).
2021-11-25 08:03:27 -05:00
Wilson Snyder
31079ca8b5
Fix $size on dynamic strings ( #3216 ).
2021-11-25 07:50:47 -05:00
Wilson Snyder
4184ad1921
Commentary
2021-11-23 18:27:40 -05:00
Wilson Snyder
e7ebe0e280
Fix $fopen etc on integer arrays ( #3214 ).
2021-11-23 18:22:16 -05:00
Wilson Snyder
c14bbb9421
Fix incorrect width after and-or optimization ( #3208 ).
2021-11-23 18:15:21 -05:00
Wilson Snyder
b1b92b7dd4
Fix hang on recursive definition error ( #3199 ).
2021-11-23 07:27:41 -05:00
Julie Schwartz
a14394dbb5
Commentary: remove duplicate/wrong change-log entry ( #3212 )
2021-11-18 05:15:02 -05:00
Wilson Snyder
96b7831243
Commentary: C++14 moves to 2023.
2021-11-17 18:56:11 -05:00
Wilson Snyder
1e440765c0
Commentary, about previous commit: Fix display of signed without format ( #3204 ).
2021-11-17 18:52:53 -05:00
Wilson Snyder
2ccf49031b
Fix $display of signed/unsigned without format ( #3207 ).
2021-11-17 18:50:52 -05:00
Wilson Snyder
0abc856be9
Fix %0 format on $value$plusargs.
2021-11-17 17:54:07 -05:00
Wilson Snyder
d2a8fa7440
Fix display of empty string constant ( #3207 ).
2021-11-17 17:46:08 -05:00
Wilson Snyder
106d635d0f
Fix vluint64 portability ( #3150 ).
2021-11-17 07:10:48 -05:00
Wilson Snyder
cff9f8143e
Commentary
2021-11-17 07:06:43 -05:00
Wilson Snyder
cfa401e01d
Internals: Add lib-create const and improve comments.
2021-11-14 12:01:02 -05:00
Wilson Snyder
d6195e354f
Add some missing COLD attributes.
2021-11-14 11:05:20 -05:00
Wilson Snyder
c0892dd11c
When using --lib-create, disable tracing hash/internals. Partial ( #3200 ).
2021-11-14 10:16:59 -05:00
Wilson Snyder
899de9a282
Add --lib-create, similar to --protect-lib but without protections ( #3200 ).
2021-11-14 09:39:31 -05:00
Wilson Snyder
4b593f8eb3
Commentary
2021-11-14 09:01:03 -05:00
Wilson Snyder
28b6e79cf7
Tests: Rename t_lib_prot tests in prep for new options.
2021-11-14 08:58:04 -05:00
Wilson Snyder
fe5822ba54
Commentary
2021-11-13 15:01:27 -05:00
Wilson Snyder
c496649c49
Internals: Remove unused DfaGraph code.
2021-11-13 14:48:21 -05:00
Wilson Snyder
37e3c6da70
Internals: Add more const. No functional change intended.
2021-11-13 13:50:44 -05:00
Wilson Snyder
4cb5c1e1db
Internals: More const. No functional change.
2021-11-13 11:38:12 -05:00
Wilson Snyder
b7a7504ba5
Internals: More obvious debug filename.
2021-11-13 11:35:03 -05:00
Wilson Snyder
3a5cbd5b67
Internals: Untabify some embedded tabs.
2021-11-13 10:46:25 -05:00
Wilson Snyder
27883b52d6
Internals: Add const
2021-11-13 10:42:26 -05:00
Wilson Snyder
b95ee84343
Commentary
2021-11-13 10:41:00 -05:00
Geza Lore
185e5d8f42
Make 'bit', 'logic' and 'time' types unsigned by default
...
IEEE 1800-2017 6.11.3 says these types are unsigned. Until now these
types were treated as not having a signedness (NOSIGN), and nodes having
these types were later resolved by V3Width to be unsigned. This is a bit
problematic when creating nodes of these types after V3Width. Treating
these types as unsigned from the get go is fine, and actually improves
generated code slightly.
2021-11-09 21:54:21 +00:00
Geza Lore
987ce927eb
Remove unused code. No functional change.
2021-11-09 19:46:19 +00:00
Yutetsu TAKATSUKASA
b08c694cd6
Fix wrong bit op tree optimization ( #3185 )
...
* Add a test to reproduce bug3182. Run the same HDL with -Oo to confirm the result is same.
* Hopefully fix #3182 . The result can be 0 only when polarity is true (no AstNot is found during traversal).
2021-11-06 12:31:50 +09:00
Geza Lore
e69a8e838d
Improve memory usage of V3Partition. Only performance change intended. ( #3192 )
2021-11-05 22:08:54 -04:00
Wilson Snyder
61612582e6
Improve memory usage of V3Partition. Only performance change intended.
2021-11-04 07:39:28 -04:00
Wilson Snyder
8b00939f0c
Improve performance of V3Scoreboard. Only performance change intended.
2021-11-03 22:16:18 -04:00
Wilson Snyder
da5644211f
Improve memory usage of V3Partition. Only performance change intended.
2021-11-03 22:01:40 -04:00
Wilson Snyder
c1d7bfa617
Internals: Skip some asserts in fastpath partitioning.
2021-11-03 19:19:23 -04:00
Wilson Snyder
c26ce25cea
Internals: Add more const. No functional change.
2021-11-03 17:49:19 -04:00
Wilson Snyder
758264dc77
Fix nested generate if genblk naming ( #3189 ).
2021-11-01 08:59:00 -04:00
Wilson Snyder
304697d133
Commentary
2021-11-01 08:57:43 -04:00
Teng Huang
fdbf465eda
Fix array method names with parens ( #3181 ) ( #3183 )
2021-10-26 12:20:45 -04:00
Wilson Snyder
90102d9867
Commentary
2021-10-25 21:02:02 -04:00
Wilson Snyder
a1bb471aca
Internals: Iterate sentree in clocker to avoid confusing iterateChildren. No functional change intended.
2021-10-25 20:19:49 -04:00
Wilson Snyder
4ef37d9411
Commentary
2021-10-25 19:53:41 -04:00
Yutetsu TAKATSUKASA
f3b10df454
Skip merging assign statements if a variable is marked split_var to fix #3177 ( #3179 )
...
* add tests to reproduce #3177 .
Any random test circuits can be added to t_split_var_4.v later because it uses CRC to check the result while
t_split_var_0.v has just barrel shifters.
* Fix #3177 . Don't merge assign statements if a variable is marked split_var.
2021-10-25 20:56:59 +09:00
Geza Lore
f5a226a183
Partial clean up of V3Order. No functional change intended.
...
This is a partial cleanup of V3Order with the aim of increasing clarity:
- Split the initial OrderGraph building and the actual ordering process
into separate classes (OrderVisitor -> OrderBuildVisitor + OrderProcess)
- Remove all the historical cruft from the graph building phase (now in
OrderBuildVisitor), and add more assertions for assumptions.
- Change the dot styling of OrderGraph to use shapes and more easily
distinguishable colors.
- Expand vague comments, remove incorrect comments, and add more.
- Replace some old code with cleaner C++11 constructs.
- Move code about a bit so logically connected sections are closer to
each other, scope some definitions where they are used rather than file
scope.
- The actual ordering process (now in OrderProcess) is still largely
unchanged.
The generated code is identical to before (within the limits of the
exiting non-determinism).
2021-10-24 16:49:05 +01:00
Geza Lore
5515eed0b6
Make AstTopScope accessible from AstNetlist
...
AstTopScope is a singleton node and making it accessible without a
traversal simplifies some code and decouple some other.
2021-10-24 13:00:29 +01:00
Geza Lore
381c87a1eb
Remove VN_CAST_CONST and VN_AS_CONST.
...
The _CONST suffix on these macros is only lexical notation, pointer
constness can be preserved by overloading the underlying
implementations appropriately. Given that the compiler will catch
invalid const usage (trying to assign a non-const pointer to a const
pointer variable, etc.), and that the declarations of symbols should
make their constness obvious, I see no reason to keep the _CONST
flavours.
2021-10-24 11:43:48 +01:00
github action
20e896ec21
Apply 'make format'
2021-10-22 18:51:57 +00:00
Geza Lore
70603bb752
Add static assertions for unnecessary VN_IS/VN_AS/VN_CAST
...
Fail at compile time if the result of these macros can be statically
determined (i.e.: they aways succeed or always fail). Remove unnecessary
casts discovered. No functional change.
2021-10-22 19:39:24 +01:00
Geza Lore
7cb6dc664e
Generate YYSTYPE members with astgen
...
In preparation for strengthening Ast type system. No functional change.
2021-10-22 19:27:32 +01:00
Geza Lore
dae9fa5053
Use VN_AS wherever possible and obvious. No functional change.
2021-10-22 14:06:00 +01:00
Wilson Snyder
aa1a0b0f13
Tests: Fix numactl on WSL2
2021-10-19 21:24:22 -04:00
Wilson Snyder
371bf01957
Tests: Fix numactl on WSL2
2021-10-19 21:21:52 -04:00
Wilson Snyder
ef7759a522
Commentary re: WSL2
2021-10-19 20:34:13 -04:00
Wilson Snyder
0ef9087f89
Commentary
2021-10-17 14:51:50 -04:00
Wilson Snyder
00059987a1
devel release
2021-10-17 14:47:19 -04:00
Wilson Snyder
8f090176a6
Version bump
2021-10-17 14:36:23 -04:00
Wilson Snyder
43e8263d1f
Commentary
2021-10-17 14:35:34 -04:00
Geza Lore
ac622f9db8
Introduce VN_AS for downcasting to known AstNode subtype.
...
VN_AS should be used over VN_CAST in code where the author knows up
front (i.e.: statically) what the true type of the node is. This has
multiple benefits over VN_CAST:
- In the debug build: Asserts node type is as expected
- In the optimized build: It is faster as no superfluous type test
- And (I would argue most importantly) it documents intent in the code
No current instances of VN_CAST changed in this patch
2021-10-16 23:52:31 +01:00
Wilson Snyder
749a66b7a2
Add assertion on mix of combo/posedge ( #3170 )
2021-10-16 18:14:32 -04:00
Geza Lore
fc80ace6e4
Reduce size of astgen generated implementation boilerplate.
...
Rely on C++ templates instead for simplicity. No functional change.
2021-10-16 20:15:51 +01:00
Wilson Snyder
b8f6b262e4
Fix false EOFNEWLINE warning when DOS carriage returns present ( #3171 ).
2021-10-13 21:21:51 -04:00
Wilson Snyder
b64e89f7ed
Fix calling new with arguments in same class ( #3166 ).
2021-10-12 21:22:59 -04:00
Wilson Snyder
c3bec344a4
Fix missing install of vl_file_copy/vl_hier_graph ( #3165 ).
2021-10-12 20:20:45 -04:00
Iru Cai
9731ec76e3
Fix $urandom_range when the range is 0 ... UINT_MAX ( #3161 )
2021-10-11 06:45:19 -06:00
Matthew Ballance
a9646cf45c
Fix constructor-parameter argument comma-separation in C++ ( #3162 )
2021-10-09 17:19:31 -06:00
Wilson Snyder
5f597dd9fc
Tests: Improve internal coverage holes
2021-10-05 22:02:37 -04:00
Wilson Snyder
7d57c3ca78
Internals: Remove dead code.
2021-10-05 22:02:23 -04:00
Wilson Snyder
4739956cfe
Internals: Add missing const. No functional change.
2021-10-05 21:20:22 -04:00
Wilson Snyder
e202a6324a
Tests: Improve internal coverage holes
2021-10-05 21:09:57 -04:00
Wilson Snyder
66d70c8b37
Internal coverage: Fix some test runs having conflicting sources.
2021-10-05 20:22:29 -04:00
Wilson Snyder
02aa639425
Internals: Add some const etc. No functional change.
2021-10-05 19:42:31 -04:00
Wilson Snyder
55da66164b
Fix verilator_gantt time on Arm.
2021-10-04 22:13:34 -04:00
Wilson Snyder
2560fc867f
verilator_gantt: Fix reading broken /cpu/procinfo reports
2021-10-02 11:10:43 -04:00
Wilson Snyder
f5c9deecb8
Tests: Add verilator_gantt no-proc test.
2021-10-02 10:05:59 -04:00
github action
20af8a36a7
Apply 'make format'
2021-09-28 11:29:21 +00:00
Zhanglei Wang
1c1c805b07
Fix internal error on bad widths ( #3140 ) ( #3145 )
2021-09-28 07:28:02 -04:00
Wilson Snyder
9029da5ab8
Add profile-guided optmization of mtasks ( #3150 ).
2021-09-26 22:51:11 -04:00
Wilson Snyder
def7c8fe4d
Commentary
2021-09-26 16:21:58 -04:00
Wilson Snyder
9184c4f501
Fix cygwin compile error due to missing -std=gnu++14 ( #3149 )
2021-09-26 16:19:46 -04:00
Wilson Snyder
44809f1843
Remove unused CFG_CXXFLAGS_STD_OLDEST
2021-09-26 16:01:25 -04:00
Wilson Snyder
87ced0cc3e
Fix crash on clang 12/13 ( #3148 ).
2021-09-25 17:10:57 -04:00
Wilson Snyder
741bb5328e
verilator_gantt: Fix argument report omitting last digits
2021-09-24 21:11:15 -04:00
Wilson Snyder
33650336f5
Commentary
2021-09-24 08:49:16 -04:00
Wilson Snyder
bbce1dc256
Commentary
2021-09-24 08:48:20 -04:00
Wilson Snyder
8ab51dbf22
Verilator_gantt: remove ASCII graphics
2021-09-24 08:48:20 -04:00
Wilson Snyder
fd4595d6b4
verilator_gantt: Add eval count to report
2021-09-24 08:48:20 -04:00
github action
204804ae52
Apply 'make format'
2021-09-24 03:00:42 +00:00
Wilson Snyder
c2819923c5
Verilator_gantt now shows the predicted mtask times, eval times, and additional statistics.
2021-09-23 22:59:36 -04:00
Wilson Snyder
68f1432a68
Gantt: Subtract common start in slowpath to reduce collection measurement error.
2021-09-23 19:43:20 -04:00
Keith Colbert
0defb61a18
Fix --waiver-output for multiline warnings ( #2429 ) ( #3141 )
2021-09-22 07:42:59 -04:00
Wilson Snyder
0fc805202c
Commentary ( #3139 )
2021-09-21 18:15:56 -04:00
Wilson Snyder
a7374e84a2
Tests: Some coverage improvements
2021-09-20 18:20:48 -04:00
Wilson Snyder
76681fd931
Commentary
2021-09-17 20:18:47 -04:00
Wilson Snyder
2418df7bb2
Commentary
2021-09-17 20:03:45 -04:00
Wilson Snyder
97d8d32049
Commentary
2021-09-17 18:52:12 -04:00
Wilson Snyder
08c8b0d7d6
Fix removing if statement with side effect in condition ( #3131 ).
2021-09-13 15:52:53 -04:00
Wilson Snyder
81fd3e4732
Commentary
2021-09-13 15:47:03 -04:00
Wilson Snyder
d384a69877
Fix display has no time units on class function ( #3116 ).
2021-09-08 19:31:46 -04:00
github action
a8b480559d
Apply 'make format'
2021-09-08 22:46:27 +00:00
Wilson Snyder
f1b8b1d99b
Format: perltidy spacing cleanup. No functional change.
2021-09-08 18:45:25 -04:00
Wilson Snyder
f67637144f
Internals: Some verilog.y format cleanups. No functional change.
2021-09-08 08:34:53 -04:00
Wilson Snyder
4b274a8d4d
Convert verilator_gantt to python
2021-09-08 08:16:31 -04:00
Wilson Snyder
c678e7ec3e
Format: perltidy spacing cleanup. No functional change.
2021-09-07 23:50:28 -04:00
Wilson Snyder
2a79e46c46
Tests: Fix t_dist_fixme to detect later files.
2021-09-07 19:27:46 -04:00
Wilson Snyder
d09b6a7d2c
Include processor information in verilator_gantt data file.
2021-09-05 11:56:28 -04:00
Wilson Snyder
35eac0c457
Commentary: Fix profcfunc naming.
2021-09-05 11:33:20 -04:00
Wilson Snyder
cac0b0f316
Tests: Fix t_gantt_io
2021-09-04 16:51:55 -04:00
Wilson Snyder
8519dc1383
Tests: Skip unstability
2021-09-04 13:48:16 -04:00
Wilson Snyder
72f198d79e
Tests: Add t_gantt_io test
2021-09-04 12:44:13 -04:00
Wilson Snyder
1cb8091125
verilator_profcfunc: Also allow eval_step.
2021-09-04 12:28:26 -04:00
Wilson Snyder
18c543f2f2
Convert verilator_difftree to Python
2021-09-04 09:31:22 -04:00
Wilson Snyder
496b9f9c63
Tests: Add difftree test.
2021-09-04 08:27:59 -04:00
Wilson Snyder
1ee46ac5e1
Convert verilator_profcfunc to python.
2021-09-04 08:21:09 -04:00
Wilson Snyder
f37c875be8
Internal: Remove fixme
2021-09-04 08:07:48 -04:00
Wilson Snyder
56dc66d842
Fix verilator_profcfunc profile accounting ( #3115 ).
2021-09-03 19:59:10 -04:00
Wilson Snyder
7ae54ef973
Commentary
2021-09-02 09:00:01 -04:00
Iru Cai
4ed00c563c
Support displaying x and z in $display task ( #3107 ) ( #3109 )
2021-09-02 08:10:52 -04:00
Daniel Bates
a49bfe871c
Docs: Fix typo in coverage instructions ( #3111 )
2021-09-02 07:41:10 -04:00
Wilson Snyder
6d97fea2f5
Internals: Cleanup some const, etc. No functional change.
2021-09-01 22:15:38 -04:00
Wilson Snyder
da833d55fe
devel release
2021-09-01 21:08:17 -04:00
Wilson Snyder
960813cb0f
Version bump
2021-09-01 20:58:03 -04:00
Wilson Snyder
cd56dfee1c
Update GTKwave from upstream.
2021-09-01 20:45:41 -04:00
Wilson Snyder
3e03cd5a4d
Commentary
2021-09-01 20:39:59 -04:00
Krzysztof Bieganski
cd9e9da4b5
Support assignment patterns as children of pins ( #3041 )
...
Signed-off-by: Krzysztof Bieganski <[email protected] >
2021-08-30 10:44:03 -04:00
Wilson Snyder
f64d9d87f6
Clang compile fix
2021-08-28 17:44:19 -04:00
Wilson Snyder
43aa3229fb
Support empty queue assignment to delete queue
2021-08-28 17:23:35 -04:00
Wilson Snyder
27d53691bd
Add header guards on Dpi.h generated files ( #2979 ).
2021-08-23 21:43:54 -04:00
Wilson Snyder
959793cde3
Internals: Cleanup VL_VALUE_STRING_MAX widths ( #3050 ).
2021-08-23 21:13:33 -04:00
Wilson Snyder
c3d64d9743
Fix internal error on wide -x-initial unique ( #3106 ).
2021-08-23 20:13:09 -04:00
Wilson Snyder
f9806595f2
Add error when constant function under a generate ( #3103 ).
2021-08-21 10:33:20 -04:00
Geza Lore
34a0bb448e
Improve V3MergeCond
...
- Merge AstNodeIf nodes as well (not just assignment from AstCond)
- Merge merged results recursively (optimizes nested conditionals/ifs)
- Only checking mergeability once per node.
- Don't add redundant masking
- Duplicate cheap statements in both branches, if doing so yields a
larger merge
- Include reduced nodes before the starting conditional in the merge
2021-08-19 18:55:39 +01:00
Geza Lore
8681861be9
Improve bitop tree optimization
...
- Remove redundant casting
- Cheaper final XOR parity flip (~/^1 instead of != 0)
- Support XOR reduction of ~XOR nodes
- Don't add redundant masking of terms
- Support unmasked terms
- Add cheaper implementation for single bit only terms
- Ensure result is clean under all circumstances (this fixes current bugs)
2021-08-18 22:00:13 +01:00
Geza Lore
fffc63970d
Use narrowest RedXor
2021-08-18 22:00:09 +01:00
Ivan Vnučec
8f527a0c6e
Commentary ( #3102 )
...
Actually you can see `https://github.com/verilator/verilator ` URL in your browser.
2021-08-18 15:19:02 -04:00
Geza Lore
c69ddc46f8
Fix bitop tree optimization dropping necessary cleaning AND ( #3097 )
...
Fixes #3096 .
2021-08-14 21:09:01 +01:00
Yutetsu TAKATSUKASA
4ec8bc3589
Fix op count and wrong optimization in bitop tree ( #3099 )
...
- Fix op calculation.
- Fix wrong optimization revealed by changing the op calculation:
Not(CCast(And(a, b))) must be frozen.
2021-08-14 12:28:47 +01:00
Geza Lore
536bdf506e
Fix re-evaluation of logic dependent on state set in DPI exports ( #3091 ).
...
Verilator should now correctly re-evaluate any logic that depends on
state set in a DPI exported function, including if the DPI export is
called outside eval, or if the DPI export is called from a DPI import.
Whenever the design contains a DPI exported function that sets a
non-local variable, we create a global __Vdpi_export_trigger flag, that
is set in the body of the DPI export, and make all variables set in any
DPI exported functions dependent on this flag (this ensures correct
ordering and change detection on state set in DPI exports when needed).
The DPI export trigger flag is cleared at the end of eval, which ensured
calls to DPI exports outside of eval are detected. Additionally the
ordering is modifies to assume that any call to a 'context' DPI import
might call DPI exports by adding an edge to the ordering graph from the
logic vertex containing the call to the DPI import to the DPI export
trigger variable vertex (note the standard does not allow calls to DPI
exports from DPI imports that were not imported with 'context', so we
do not enforce ordering on those).
2021-08-12 21:43:32 +01:00
Pieter Kapsenberg
d1836b7b6f
Traces show array instances using brackets instead of parens ( #3092 ) ( #3095 )
2021-08-12 20:40:44 +03:00
Geza Lore
00fe36f44c
Name temporary variables based on hash of related node.
...
This improves output stability by removing sequence numbers and hence
can improve ccache hit rate. No functional change intended.
2021-08-11 17:29:22 +01:00
Geza Lore
5adc856950
Tests: ignore all hashes in files_identical
...
Also add 'h' prefix to all printed hashes, to reduce ambiguity. No
functional change.
2021-08-11 16:55:11 +01:00
Geza Lore
bc3e24c8cd
Use c++XX instead of gnu++XX language standards.
...
The GNU extensions to C/C++ are not required to build Verilator. Note
this change does not affect __attribute__, __builtin_* and intrinsics,
which are still available when using GCC or Clang with the standard
language options.
2021-08-04 11:48:32 +01:00
Geza Lore
2c8456ea75
Internals: Cleanup V3SplitVar
...
- Use C++11 initialization syntax
- Use C++11 for loops
- Add const
- Factor out repeated _->fileline() sub-expressions
- Factor out issuing warning message
No functional change.
2021-08-02 15:48:26 +01:00
Geza Lore
519cc7d61c
Internals: Remove code duplication from V3Order
...
No functional change
2021-08-02 14:06:50 +01:00
Wilson Snyder
0f4daa12e4
Ignore sv-test's `pragma protect end
2021-07-29 09:00:10 -04:00
Wilson Snyder
6bad0e14ce
Support timeunit/timeprecision in $unit.
2021-07-29 08:40:41 -04:00
Geza Lore
3ec3c2c268
Internals: Cleanup V3Expand
...
- Use C++ initialization syntax
- Add const
- Make members static where appropriate
- Factor out repeated _->fileline() sub-expressions
No functional change.
2021-07-27 13:18:57 +01:00
Wilson Snyder
b8e804f05b
Internals: Some clang-tidy cleanups. No functional change intended.
2021-07-25 13:38:27 -04:00
Geza Lore
cdeb6e792f
Add --instr-count-dpi option, change default to 200
...
This replaces the former static AstNode::INSTR_COUNT_DPI, and makes it
user adjustable to fit the design.
Fixes #3068 .
2021-07-25 16:40:12 +01:00
Wilson Snyder
deebfa3239
Tests: Remove Ubuntu 16.04 as github removes in a month.
2021-07-25 11:22:25 -04:00
Wilson Snyder
f937e3282f
Tests: Ignore DepSet hash numbers. ( #3083 )
2021-07-25 11:20:19 -04:00
Geza Lore
b46664c70a
Internals: Use C++11 constexpr for instruction count costs
...
No functional change.
2021-07-25 13:32:40 +01:00
github action
33af14eba8
Apply 'make format'
2021-07-25 01:07:07 +00:00
Steven Hugg
18b0f6387d
Add XML ccall, constpool, initarray, and if/while begins ( #3080 )
...
* EmitXml: Added <ccall>, <constpool>, <initarray>/<inititem>, wrapped children of <if> and <while> with <begin> elements to prevent ambiguity
* EmitXml: added signed="true" to signed basicdtypes
2021-07-24 21:06:06 -04:00
Wilson Snyder
43ecaec9a0
Internal C++11 flex cleanups. No functional change intended.
2021-07-24 12:49:07 -04:00
Wilson Snyder
275885a797
Internals: Fix some long UNSUP lines. No functional change.
2021-07-24 12:21:04 -04:00
Wilson Snyder
68aa731ce9
Fix missing null on blackbox parse.
2021-07-24 12:13:19 -04:00
Wilson Snyder
b90fce55f4
Includes: Refactor verilated.h and deprecate verilated_heavy.h ( #2701 ).
2021-07-24 10:00:33 -04:00
Wilson Snyder
44173b40a1
Internals: Remove dead code. No functional change.
2021-07-24 09:18:49 -04:00
Wilson Snyder
ab13a2ebdc
Internals: Use C++11 const and initializers. No functional change intended.
2021-07-24 08:36:11 -04:00
Wilson Snyder
19875d2e85
Increase split count of ChangeDet ( #3072 ).
2021-07-23 19:24:25 -04:00
Geza Lore
1de33b9fb7
Support localparams in tasks/functions
2021-07-23 20:34:49 +01:00
Geza Lore
90c917ee83
Enable now supported tests for string array initializers
...
Fixes #2895 .
2021-07-23 17:21:15 +01:00
Geza Lore
4ab4c0c8ba
Emit parameter values as 'static constexpr' instead of enum
...
All parameters that are required in the output are now emitted as
'static constexpr, except for string or array of strings parameters,
which are still emitted as 'static const' (required as std::string is
not a literal type, so cannot be constexpr). This simplifies handling
of parameters and supports 'real' parameters.
2021-07-23 17:20:26 +01:00
Geza Lore
9907d211ff
Make VlWide and VlUnpacked C++20 compatible aggregates.
...
C++20 requires that aggregate types do not have a user declared
constructor, not even an explicitly defaulted one. We need these types
to be aggregates for static initialization.
Fixes #3076 .
2021-07-23 12:57:45 +01:00
Wilson Snyder
13933743ad
Suppress creating change_request if not needed.
2021-07-22 20:50:03 -04:00
Wilson Snyder
fc25721e55
Increase instruction count of ChangeDet ( #3072 )
2021-07-22 20:13:45 -04:00
Wilson Snyder
fa64f8fb32
Internals: C++11 cleanup. No functional change intended.
2021-07-22 20:05:54 -04:00
Geza Lore
ab4063f098
Emit implementations into separate files based on required headers.
...
This patch partitions AstCFuncs under an AstNodeModule based on which
header files they require for their implementation, and emits them
into separate files based on the distinct dependency sets. This helps
with incremental recompilation of the output C++.
2021-07-22 18:01:07 +01:00
Geza Lore
8bb77f86ec
Emit: Factor out parent module access via user4
...
No functional change.
2021-07-22 16:31:46 +01:00
Geza Lore
42d918c163
Internals: Omit selfPointer from ConstPool references
...
AstVarRefs to constant pool values are special and they have no use for
the selfPointer. Removing it simplifies future downstream code.
2021-07-22 13:35:22 +01:00
Geza Lore
e3dd70c373
Internals: Simplify V3CUse
...
No functional change intended.
2021-07-20 19:52:15 +01:00
Geza Lore
9273fafbbf
Internals: Split parts of V3CUse into V3Common
...
Apart from adding required AstCUse, V3CUse also used to create some
standard methods for classes. This is now done in a separate pass
V3Common. Note that this is not a performance issue, as V3Common just
iterates through each module, which are stored in a simple linked list
under the netlist, and does not need to traverse the whole netlist.
2021-07-20 17:18:52 +01:00
Geza Lore
d9c893af11
Internals: Add VString::startsWith predicate function
2021-07-20 14:29:43 +01:00
Geza Lore
a9c4a96c0f
Internals: const pointer argument
2021-07-20 14:29:36 +01:00
Geza Lore
32e99ba0d9
Emit: Attach VL_ATTR_COLD to definitions as well as declarations.
...
This is required by clang if the definition precedes the declaration
(which can happen when building via __ALL.cpp), otherwise we get a
warning.
2021-07-20 13:52:53 +01:00
Wilson Snyder
da8930a57a
Fix multitop to go to stderr ( #3070 )
2021-07-20 08:00:14 -04:00
Geza Lore
1166728a8d
Tests: make t_trace_*two* tests less sensitive to file names
...
No functional change intended
2021-07-19 17:48:41 +01:00
Geza Lore
30fa5e41be
Don't emit trace files with --lint-only
2021-07-19 17:48:38 +01:00
Geza Lore
cf39331d1f
Emit: Factor out visitor that can emit constant initializers
...
This is needed both by the V3EmitCConstPool emitter and the
V3EmitCHeaders emitter.
2021-07-14 13:56:04 +01:00
Geza Lore
bac84726e1
Emit: Clean up some code coverage holes
2021-07-14 12:27:33 +01:00
Geza Lore
ddef61d62e
Internals: Move AstNodeCCall::m_selfPointer to AstCCall
...
Other sub-classes of AstNodeCCall do not need the self pointer. Moving
it into the specific sub-class that needs it clarifies V3Descope and
Emit. No functional change intended.
2021-07-13 17:47:42 +01:00
Geza Lore
4081a1a539
Internals: Separate emitting of C++ headers and implementation
...
Internal AstNodeModule headers (.h) and implementation (.cpp) files are
now emitted separately in V3EmitC::emitcHeaders() and
V3EmitC::emitcImp() respectively. No functional change intended
2021-07-13 17:43:44 +01:00
Geza Lore
1691bbfe25
Remove unnecesasry and incorrect trace class CUse.
2021-07-13 14:20:57 +01:00
Geza Lore
17cc452f79
Add V3VariableOrder pass
...
A separate V3VariableOrder pass is now used to order module variables
before Emit. All variables are now ordered together, without
consideration for whether they are ports, signals form the design, or
additional internal variables added by Verilator (which used to be
ordered and emitted as separate groups in Emit). For single threaded
models, this is performance neutral. For multi-threaded models, the
MTask affinity based sorting was slightly modified, so variables with no
MTask affinity are emitted last, otherwise the MTask affinity sets are
sorted using the TSP sorter as before, but again, ports, signals, and
internal variables are not differentiated. This yields a 2%+ speedup for
the multithreaded model on OpenTitan.
2021-07-12 14:53:40 +01:00
Wilson Snyder
8ecdc85cf7
Internals: C++11 style cleanups. No functional change.
2021-07-11 18:42:01 -04:00
Geza Lore
5ad3c4e499
Internals: Speed up and improve V3Broken
...
This patch makes OpenTitan verilation with --debug-check 22% faster, and
the same with --debug --no-dump-tree 91% faster. Functionality is the
same (including when VL_LEAK_CHECKS is defined), except V3Broken can now
always find duplicate references via child/next pointers if the target
node is not `maybePointedTo()` (previously this only happened when
compiled with VL_LEAK_CHECKS). The main change relates to storing the
v3Broken traversal state in the AstNode by stealing a byte from what
used to be unused flags. We retain an unordered_set only for marking
pointers as valid to be referenced via a non-child/non-next member
pointer.
2021-07-11 21:03:17 +01:00
Geza Lore
8073e8bb46
Fix typo
2021-07-11 16:52:02 +01:00
Geza Lore
8a9d6d225b
Internals: Add source file/line info to BROKEN_RTN messages
2021-07-11 16:50:05 +01:00
Wilson Snyder
c7499133b2
Internals: C++11 for bool. No functional change.
2021-07-11 10:42:32 -04:00
Wilson Snyder
687dd440a9
Removed deprecated Verilator tarball generation makefile rules.
2021-07-11 10:25:24 -04:00
Wilson Snyder
f1bb0bb725
Tests: Whitespace check all git files
2021-07-11 10:25:13 -04:00
Wilson Snyder
a8168d5d62
Commentary
2021-07-11 09:46:00 -04:00
Geza Lore
896b18e024
Emit function locals in the place they appear in the tree
...
Do not sort and hoist function local variables to the top of the
function definition. The stack layout of automatic variables is not
defined by C so the compilers can lay these out optimally. Simplifies
internals for follow on work. Effect on model performance is neutral to
very slight improvement, so we do not seem to be loosing anything.
2021-07-10 15:20:19 +01:00
Geza Lore
766ad14ae0
Check function locals are referenced only when in scope
...
V3Broken now checks that AstVar nodes referenced in an AstCFunc are
either external, or appear in the tree before the reference, and are in
scope.
Fix V3Begin to move lifted AstVars to beginning of FTask, rather than
end, which trips the above check.
2021-07-10 15:20:19 +01:00
Geza Lore
add3811f46
Internals: Fix debug prints racing with option parsing.
...
debug() declared by VL_DEGUB_FUNC used to cache the result of the debug
level lookup (which depends on options) in a static. This meant that if
the debug() function was called before option parsing, the default debug
level of 0 would be used for the rest of the program, even if a --debug
option was given. Fixed by not caching the debug level until after
option parsing is complete.
2021-07-10 12:57:40 +01:00
Wilson Snyder
f55177a49f
Tests: Fix coverage holes. No functional change.
2021-07-10 07:11:50 -04:00
Wilson Snyder
bdceb08963
Internals: Fix off-by-one #line.
2021-07-10 07:11:34 -04:00
Geza Lore
825d6b87a8
Internals: Put AstNode flags in padding gap, initialize spare bits
...
The bool AstNode flags fit in a padding gap after m_type. This reduces
memory consumption by about 2% on OpenTitan. Initializing the unused
bits in the flags then avoids a read-modify-write in the constructor
(replacing it with a store constant). Overall verilation speed is about
1% faster.
2021-07-10 08:56:05 +01:00
Wilson Snyder
61e2e55ba5
Internals: Fix coverage holes. No functional change.
2021-07-09 18:11:59 -04:00
Wilson Snyder
e6b75f752b
Commentary
2021-07-09 17:46:11 -04:00
Geza Lore
a4f5d95648
Fix -G to treat simple integer literals as signed ( #3060 )
...
The -G option now correctly parses simple integer literals as signed
numbers, which is in line with the standard and is significant when
overriding parameters without a type specifier.
Fixes #3060
2021-07-08 13:42:25 +01:00
Geza Lore
686baaf2cf
Internals: Streamline trace function generation
...
Remove magic code fragments form EmitCTrace, so Emit need not be aware
that a function is tracing related or not (apart from the purpose of
file name generation). All necessary code is now generated via text
nodes in V3TraceDecl and V3Trace. No functional change intended.
2021-07-08 02:08:09 +01:00
Geza Lore
76b3776fa3
Change generated tracing routines to use snake_case
...
For consistency with the rest of the generated code, generated methods
related to tracing now use snake_case instead of camelCase. No
functional change intended.
2021-07-08 02:08:09 +01:00
Wilson Snyder
3ed2af638b
devel release
2021-07-07 20:50:11 -04:00