Geza Lore
1a64c7d232
Fix run-time formatting of variable wider than 1023 bits ( #2261 )
2020-04-15 17:26:15 -04:00
Wilson Snyder
f3308d236b
clang-format remaining sources. No functional change.
2020-04-15 07:58:34 -04:00
Geza Lore
dc5c259069
Improve tracing performance. ( #2257 )
...
* Improve tracing performance.
Various tactics used to improve performance of both VCD and FST tracing:
- Both: Change tracing functions to templates to take variable widths as
template parameters. For VCD, subsequently specialize these to the
values used by Verilator. This avoids redundant instructions and hard
to predict branches.
- Both: Check for value changes via direct pointer access into the
previous signal value buffer. This eliminates a lot of simple pointer
arithmetic instructions form the tracing code.
- Both: Verilator provides clean input, no need to mask out used bits.
- VCD: pre-compute identifier codes and use memory copy instead of
re-computing them every time a code is emitted. This saves a lot of
instructions and hard to predict branches. The added D-cache misses
are cheaper than the removed branches/instructions.
- VCD: re-write the routines emitting the changes to be more efficient.
- FST: Use previous signal value buffer the same way as the VCD tracing
code, and only call the FST API when a change is detected.
Performance as measured on SweRV EH1, with the pre-canned CoreMark
benchmark running from DCCM/ICCM, clang 6.0.0, Intel i7-3770 @ 3.40GHz,
and IO to ramdisk:
+--------------+---------------+----------------------+
| VCD | FST | FST separate thread |
| (--trace) | (--trace-fst) | (--trace-fst-thread) |
------------+-----------------------------------------------------+
Before | 30.2 s | 121.1 s | 69.8 s |
============+==============+===============+======================+
After | 24.7 s | 45.7 s | 32.4 s |
------------+--------------+---------------+----------------------+
Speedup | 22 % | 256 % | 215 % |
------------+--------------+---------------+----------------------+
Rel. to VCD | 1 x | 1.85 x | 1.31 x |
------------+--------------+---------------+----------------------+
In addition, FST trace size for the above reduced by 48%.
2020-04-14 00:13:10 +01:00
Wilson Snyder
dba88bae3c
Support class new.
2020-04-12 18:57:12 -04:00
Wilson Snyder
afa8e4c786
Internals: Favor const_iterator. No functional change.
2020-04-11 10:54:42 -04:00
Wilson Snyder
1a6c2fc55d
Fix class members getting misoptimized away.
2020-04-10 21:10:21 -04:00
Wilson Snyder
343db78c03
Fix including verilated_sc in Syms to fix compile order problem exposed in #2237 .
2020-04-09 23:03:47 -04:00
Wilson Snyder
4556b6c022
Fix clang warning.
2020-04-07 12:17:48 -04:00
Wilson Snyder
f13bd1aec4
Fix clang unused warning.
2020-04-06 08:53:19 -04:00
Wilson Snyder
b6c21ad21a
Fix duplicate traces with $dumpfile, part of #2237 .
2020-04-06 08:33:51 -04:00
Wilson Snyder
50535a1894
Internals: cppcheck 1.90 fixes. No functional change intended.
2020-04-05 18:57:47 -04:00
Wilson Snyder
a494ad5ec7
Support $ferror, #1638 .
2020-04-05 11:22:05 -04:00
Wilson Snyder
e55338f927
Support $fflush without arguments, #1638 .
2020-04-05 10:11:28 -04:00
Wilson Snyder
6eadb8e771
Add simplistic class support with many restrictions, see manual, #377 .
2020-04-05 09:30:23 -04:00
Wilson Snyder
1ce360ed5b
Add SPDX license identifiers. No functional change.
2020-03-21 11:24:24 -04:00
Wilson Snyder
808c958d42
Internals: Add AstNodeCCall and other items towards classes.
2020-03-07 12:52:11 -05:00
Wilson Snyder
e70cba77e6
Add support for dynamic arrays, #379 .
2020-03-07 10:24:27 -05:00
Wilson Snyder
fd656f6cc1
Fix clang asserted missing lock on m_dumping.
2020-03-03 19:20:04 -05:00
Wilson Snyder
a7e65379fa
Ignore $dumpflush, think causes travis thread error.
2020-03-02 17:56:42 -05:00
Wilson Snyder
905067d13f
Fix $dumpvar multithreaded assert, broke last commit.
2020-03-02 07:43:10 -05:00
Wilson Snyder
30a33a6104
Add support for and , #2126 .
2020-03-01 21:39:23 -05:00
Wilson Snyder
609a5dc26d
Fix cppcheck warnings. No functional change intended.
2020-02-03 23:21:56 -05:00
Wilson Snyder
f3ebdc40c6
Fix some coverage lost when multithreaded, #2151 .
2020-02-03 18:43:41 -05:00
Wilson Snyder
2ca9f73b31
Internals: Cleanup Emit towards constructor/destructor output.
2020-02-02 21:15:07 -05:00
Wilson Snyder
a8ad97eef2
Add VL_CACHE_LINE_BYTES and use 64 as defult.
2020-02-01 20:28:03 -05:00
Wilson Snyder
ee7da1e690
Remove .h comments for empty sections.
2020-02-01 20:11:21 -05:00
Wilson Snyder
969a46faf6
Internals: V3Emit refactoring. No functional change intended.
2020-02-01 19:32:04 -05:00
Wilson Snyder
119162912a
Internals: Determine emit forward declaraions in new pass, towards classes.
2020-02-01 16:51:05 -05:00
Wilson Snyder
80d94891e1
Internals: Allow const & non-member CFuncs for class branch. No functional change.
2020-02-01 10:57:55 -05:00
Wilson Snyder
9fd81b2c6b
Support string character access via indexing.
2020-01-26 16:38:22 -05:00
Wilson Snyder
d64e6b3f9c
Internals: Refactoring towards classes. No functional change intended.
2020-01-25 09:33:43 -05:00
Wilson Snyder
d68ffba8cd
Internals: Rename to prefixNameProtect. No functional change intended.
2020-01-25 09:16:00 -05:00
Wilson Snyder
a4e8d39932
Spelling fixes
2020-01-24 20:10:44 -05:00
Geza Lore
220daa5f33
Internals: Restore AstNode naming property. #2133 .
...
The intention was that all subclasses of AstNode which are
intermediate must be abstract as well and called AstNode*. This was
violated recently by 28b9db1903 . This
patch restores that property by:
- Renaming AstFile to AstNodeFile
- Introducing AstNodeSimpleText as the common base of AstText and
AstTextBlock, rather than AstTextBlock deriving from AstText.
2020-01-21 19:54:14 -05:00
Yutetsu TAKATSUKASA
fbdf5f2dad
Internals: Mark all visit() with VL_OVERRIDE. Closes #2132 .
...
* Add VL_OVERRIDE macro so that compiler can tell my typo when trying to override a function.
* Mark visit() with VL_OVERRIDE. No functional change intended.
2020-01-21 17:35:56 -05:00
Wilson Snyder
0352ceea44
Internals: Refactor some emit code towards classes. No functional change intended.
2020-01-20 14:07:03 -05:00
Wilson Snyder
18e837336a
Internals: Rename MethodCall. No functional change.
2020-01-18 14:11:05 -05:00
Wilson Snyder
09199f79a6
Internals: Add VL_DO_CLEAR delete protections. No functional change intended.
2020-01-18 10:29:49 -05:00
Wilson Snyder
623c4ec103
Internals: Create VL_DO_DANGLING. No functional change intended.
2020-01-16 20:17:11 -05:00
Pieter Kapsenberg
4443ab34fd
Support left justified . Closes #2101 .
2020-01-15 07:32:45 -05:00
Wilson Snyder
67bb0c78c8
Codacity fix.
2020-01-14 07:13:35 -05:00
Wilson Snyder
918df2e618
Support / with assoc arrarys. Closes #2100 .
2020-01-14 07:01:17 -05:00
Wilson Snyder
b71eb76252
For / allow 64-bit addressing.
2020-01-11 14:08:07 -05:00
Wilson Snyder
9978cbfa5c
Fix tracing -1 index arrays. Closes #2090 .
2020-01-08 07:32:31 -05:00
Wilson Snyder
f23fe8fd84
Update copyright year.
2020-01-06 18:05:53 -05:00
Wilson Snyder
f540dead79
Internals: new() support code, and misc stuff.
2019-12-24 12:47:27 -05:00
Wilson Snyder
5089f997cc
Internals: Use standard function for include guards. No functional change intended.
2019-12-23 19:00:17 -05:00
Wilson Snyder
49db4d2b66
Internals: Trivial spacing change to force CI rebuild. No functional change.
2019-12-22 20:02:37 -05:00
Wilson Snyder
b087673254
Fix output endif spacing. No functional change.
2019-12-22 18:21:43 -05:00
Yutetsu TAKATSUKASA
8cdc0c4e00
Support string putc, getc, substr, bug1606.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2019-12-15 08:09:52 -05:00
Wilson Snyder
700f2072c0
Framework for WDatas being vectors of 64-bit EDatas, but not supporting this at this time.
2019-12-08 21:36:38 -05:00
Todd Strader
4480938b25
Fix interface reference tracing, bug1595.
2019-12-07 12:28:19 -05:00
Wilson Snyder
2076b0219d
Fix labels on functions with returns, bug1614.
2019-12-01 17:19:03 -05:00
Wilson Snyder
e28175108f
Support queues (excluding {} notation and pattern assignments), bug545.
2019-12-01 12:35:49 -05:00
Wilson Snyder
b81295230a
Support associative arrays.
2019-12-01 11:52:48 -05:00
Wilson Snyder
38e586fabe
Internals: Misc refectoring for assoc/queues.
2019-12-01 06:09:58 -05:00
Wilson Snyder
2ff22d9050
Fix earlier +verilated+error+count to do all .
2019-11-17 08:12:39 -05:00
Wilson Snyder
d480c2f033
Add +verilator+error+limit to see more assertion errors.
2019-11-16 18:25:47 -05:00
Wilson Snyder
21a380def0
Rework variable emit to prep for other data types.
2019-11-12 21:52:25 -05:00
Wilson Snyder
77e30d4920
Internals: Remove dead code. No functional change.
2019-11-12 18:55:16 -05:00
Wilson Snyder
98dcbc6b3e
Remove footprint comment when single threaded.
2019-11-11 22:21:37 -05:00
Wilson Snyder
4767083a72
Internals: Rework AstInitArray to have O(1) access. No functional change intended.
2019-11-09 17:12:26 -05:00
Wilson Snyder
5811ec07e6
Update URLs to https://verilator.org
2019-11-07 22:33:59 -05:00
Wilson Snyder
f1b10e2b4c
Improve error messages on DIDNOTSETTLE, bug1556.
2019-11-06 19:47:34 -05:00
Wilson Snyder
c1a9ada279
Protect change request filenames.
2019-11-05 21:53:26 -05:00
Wilson Snyder
40bdd85a07
Fix minor output spacing issues.
2019-10-29 23:19:59 -04:00
Wilson Snyder
9f977ed419
Codacy/Cppcheck cleanups and badge.
2019-10-24 21:48:45 -04:00
Wilson Snyder
91f1acd85f
Add --protect-ids to obscure information in objects, bug1521.
2019-10-06 13:24:21 -04:00
Wilson Snyder
307549e8a6
Internals: Fix some cppcheck warnings.
2019-10-06 08:20:02 -04:00
Wilson Snyder
09b79a731a
Fix more output spacing issues.
2019-10-05 21:52:33 -04:00
Wilson Snyder
4544a2fd99
Fix extra declaration of trace() in submodules.
2019-10-05 20:16:33 -04:00
Wilson Snyder
9bf6135f6d
Remove some output tabs.
2019-10-05 17:35:08 -04:00
Wilson Snyder
d472ef63e9
Internals: Cleanup some misnamed classes. No functional change.
2019-10-05 08:17:21 -04:00
Wilson Snyder
771a301f66
Commentary: Remove newlines, upsets some patches. No functional change.
2019-10-04 20:17:11 -04:00
Stefan Wallentowitz
045ff25f80
Support vpiModule, bug1469.
...
Add very basic support for vpiModule. Basically it allows to traverse
the module tree to find a variable etc. It does not support more than
vpi_iterate and vpi_scan for vpiModule along basic operations like
vpi_get_str on vpiModule.
The support is added non-intrusively to non-VPI verilator runs. It
essentially:
- Tracks the creation of cell instances and keeps them alive until
the emit phase. They are there converted to scopes if modules.
- Emits empty (don't add anything during construction)
VerilatedScopes for all inlined modules, only for those inlined
modules that are on the hierarchical path to public variables.
- Adds VerilatedHierarchy as abstraction to structure of the
scopes. It is only created for VPI designs. It allows to traverse
the hierarchy from the top (NULL).
Signed-off-by: Stefan Wallentowitz <stefan@wallentowitz.de>
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2019-10-01 21:57:45 -04:00
Wilson Snyder
f6e0e9adec
Internals: Use SHA256 instead of insecure SHA1.
2019-09-28 13:32:28 -04:00
Todd Strader
28b9db1903
Add AstVFile and AstTextBlock, towards bug1490.
2019-09-27 04:24:38 -04:00
Wilson Snyder
8490046028
Internals: AstComment optional suppression of at. No functional change intended.
2019-09-23 18:44:45 -04:00
Wilson Snyder
e556269692
Commentary - Spelling fixes
2019-09-12 07:22:22 -04:00
Wilson Snyder
fa904f386c
Commentary - Spelling fixes
2019-09-09 07:50:21 -04:00
Wilson Snyder
314cd92129
Support $fseek, $ftell, $frewind, bug1496.
2019-09-03 21:28:15 -04:00
Wilson Snyder
6b798830c9
Fix spacing
2019-07-29 21:07:37 -04:00
Wilson Snyder
a7e5cccf33
In errors, single quote signals and other from-user data.
2019-07-11 22:36:32 -04:00
Wilson Snyder
8548ecfdac
Internals: Add UASSERT_OBJ macro to replace hand-done ifs. No functional change intended.
...
This makes it easier to filter out correctly zero code-coverage lines.
2019-07-06 12:57:50 -04:00
Wilson Snyder
01ef7122e9
Internals: Add lcov code coverage markers.
2019-06-30 22:37:03 -04:00
Alex Chadwick
5da5e32e86
Fix --savable invalid C++ on packed arrays, bug1465.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2019-06-14 18:42:27 -04:00
Wilson Snyder
b83b606267
Internals: Detab and fix spacing style issues. No functional change.
...
When diff, recommend using "git diff --ignore-all-space"
When merging, recommend using "git merge -Xignore-all-space"
2019-05-19 16:13:13 -04:00
Wilson Snyder
13ecb8e177
Fix fault on with %t, bug1443.
2019-05-16 19:35:10 -04:00
Wilson Snyder
c8849094fc
Fix spacing of last commit.
2019-05-14 22:05:37 -04:00
Wilson Snyder
afea6d84e3
Mark infrequently called functions with GCC cold attribute.
2019-05-14 22:03:50 -04:00
Wilson Snyder
1f714c6813
Commentary: Spelling fixes.
2019-05-11 18:42:27 -04:00
Todd Strader
eac3458647
Internals: V3Number tracks node information, part of bug1305.
...
Signed-off-by: Wilson Snyder <wsnyder@wsnyder.org>
2019-05-09 20:03:19 -04:00
Wilson Snyder
55a25674a2
Add --trace-fst-thread.
2019-05-02 20:33:05 -04:00
Wilson Snyder
3acb85a005
Fix FST enums not displaying, bug1426.
2019-05-01 19:18:45 -04:00
Wilson Snyder
7bf3366041
Support .
2019-03-07 20:56:53 -05:00
Wilson Snyder
60f2f176a2
Fix DPI export void compiler error, bug1391.
2019-01-16 00:38:42 -05:00
Wilson Snyder
8a4aeddbb0
Copyright year update.
2019-01-03 19:17:22 -05:00
Wilson Snyder
49353784fd
Fix __Slow files getting compiled with OPT_FAST, bug1370.
2018-11-29 20:35:21 -05:00
Wilson Snyder
d464ce1477
Fix unneeded emit comment. No functional change.
2018-10-29 20:48:50 -04:00
Wilson Snyder
b8098098d8
Internals: Refactor input/output to new class in prep for ref support.
2018-10-27 17:29:00 -04:00