verilator/docs
Geza Lore 52287c025f
Tests: Add TSan and failing multi-threaded data race test (#7913)
PR #7902 uncovered a pre-existing bug in multi-threaded scheduling,
where we can end up with an un-ordered R-W hazard in the MTask graph,
resulting in non-deterministic runtime behaviour.

This is extremely hard to actually trigger on a small example, so using
ThreadSanitizer to flag it, which can identify the race reliably.

In this patch:
- Add configure and `verilator --get-supported TSAN` to check if the
  configured compiler supports ThreadSanitizer
- Add a --tsan option to the test driver.py which builds the test with
  thread sanitizer (similar idea to --gdbsim).
- Add a tests.enable_tsan() method to allow turning on TSan in the test
  Python file.
- Add a suppressions file that waives TSan errors in the runtime library
- Finally add `t_sched_hybrid_hazard` that demonstrates the data race
  triggered after #7902. This is currently expected failing, fix later.

With the suppression, there are 17 vltmt tests failing due races in the
generated code. (Using `driver.py --vltmt --tsan --quiet -j0`)
2026-07-10 14:34:51 +01:00
..
_static Fix Codacy warnings. No functional change. 2021-07-07 19:42:49 -04:00
bin Add SPDX copyright identifiers, and get 'reuse' clean. No functional change. 2026-01-26 20:24:34 -05:00
gen Support NBAs in initial blocks (#7754) 2026-06-20 17:23:05 -04:00
guide Tests: Add TSan and failing multi-threaded data race test (#7913) 2026-07-10 14:34:51 +01:00
.gitignore Spelling fixes. 2022-05-14 16:12:57 -04:00
AGENTS.md CI: Autoformat markdown files 2026-06-15 17:44:50 -04:00
CONTRIBUTING.rst Commentary: Use standard multiline rst comments, other cleanups 2026-06-18 21:58:01 -04:00
CONTRIBUTORS Fix $display accepting streaming concat arguments (#7663) (#7890) 2026-07-09 08:41:40 -04:00
Makefile Add SPDX copyright identifiers, and get 'reuse' clean. No functional change. 2026-01-26 20:24:34 -05:00
README.rst Commentary: Use standard multiline rst comments, other cleanups 2026-06-18 21:58:01 -04:00
internals.rst Commentary: Make RST documents round-trip clean. No output change intended. 2026-06-21 10:15:47 -04:00
security.rst Commentary: Use standard multiline rst comments, other cleanups 2026-06-18 21:58:01 -04:00
spelling.txt Commentary: Changes update 2026-07-03 13:01:05 -04:00
verilated.dox Cleanup missing copyrights and those on simply copied files. No functional change. 2023-01-20 20:42:30 -05:00

README.rst

..
   SPDX-FileCopyrightText: 2003-2026 Wilson Snyder
   SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0

Verilator Documentation
=======================

This folder contains sources for Verilator documentation.

For formatted documentation see:

- `Verilator README <https://github.com/verilator/verilator>`_

- `Verilator installation and package directory structure
  <https://verilator.org/install>`_

- `Verilator manual (HTML) <https://verilator.org/verilator_doc.html>`_, or
  `Verilator manual (PDF) <https://verilator.org/verilator_doc.pdf>`_

- `Subscribe to Verilator announcements
  <https://github.com/verilator/verilator-announce>`_

- `Verilator forum <https://verilator.org/forum>`_

- `Verilator issues <https://verilator.org/issues>`_