Skip to main content
sphinx-systemverilog

A Sphinx autodoc extension for SystemVerilog, powered by pyslang.

Docs Source PyPI Python License

A Sphinx autodoc extension for SystemVerilog, powered by the pyslang parser.

It documents SystemVerilog source the way sphinx.ext.autodoc documents Python: declarations and their doc comments are pulled directly from source, supporting multiple comment dialects (a Python-docstring-like native style, NaturalDocs, and Doxygen).

📖 Documentation: https://dvkit.org/fvutils/sphinx-systemverilog/

Status: early development. See docs/design/ for the design and implementation plan.

Installation

pip install sphinx-systemverilog

Quick start

# docs/conf.py
extensions = ["sphinx_systemverilog"]
sv_source_dirs = ["../rtl"]
sv_doc_style = "native"
.. autosvclass:: my_pkg::my_transaction
   :members:

Documenting a design, not just its files

For RTL, the extension goes beyond what any single file says and documents the elaborated design — which is where the interesting information lives:

.. sv:instance-tree:: soc
soc
├── u_narrow : cluster #(W=8, WIDE=1'b0)
│   └── g_narrow.u_leaf : leaf #(W=8)
└── u_wide   : cluster #(W=32, WIDE=1'b1)
    └── g_wide.u_lane : lane #(W=32, LANES=4)
        ├── g_lp[*].u_g : leaf #(W=32)   (×4)
        └── u_l[3:0]    : leaf #(W=32)   (×4)

Generate blocks, instance arrays and resolved parameter values are all included, and every type name is a cross-reference. Alongside it:

  • sv:used-by — every site that instantiates a module, with its parameters and a link to the source line. No file-at-a-time tool can answer this.
  • sv:parameter-matrix — the parameter values a module is actually elaborated at, as opposed to its declared defaults.

These are also autosvmodule options (:show-instances:, :show-used-by:, :show-parameters-used:). They are off by default: each one walks the elaborated hierarchy, so a project that does not ask pays nothing for it.

See Design structure.

Development

source packages/python/bin/activate
pip install -e .
pytest -m "unit or sphinx"
sphinx-build -W docs docs/_build/html

Building against a real design

examples/cva6/ generates documentation from CVA6, OpenHW Group's RISC-V application-class core — a real design with generate loops, deep hierarchy and struct-valued configuration parameters. It is not part of the published docs (it needs a ~107 MB checkout) and is where the tool gets validated against something fixtures cannot simulate.

cd examples/cva6
make fetch && make open

License

Apache-2.0.

Metadata

Release files for sphinx-systemverilog 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sphinx-systemverilog 0.5.0
File Size Uploaded
sphinx_systemverilog-0.5.0.tar.gz 155.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sphinx-systemverilog 0.5.0
File Interpreter ABI Platform
sphinx_systemverilog-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 327.3 kB

Release files / sphinx_systemverilog-0.5.0.tar.gz

Download URL sphinx_systemverilog-0.5.0.tar.gz
Size 155.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0b826f1b5cba0fa4513a2e59520064bf0b1039f92edcee348603947bcca660ad
BLAKE2b-256 checksum
How to use checksums
a27cb7adf8ee06e3f71d82a97722da7ee1718ff23f4f49913e18d0dc389e806b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / sphinx_systemverilog-0.5.0-py3-none-any.whl

Download URL sphinx_systemverilog-0.5.0-py3-none-any.whl
Size 171.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4bbf1114cef4fbc624fb7c92b70dd8528b9658c8c53b406f4acedffba3bc644a
BLAKE2b-256 checksum
How to use checksums
3ee169859754ecd54724dccb9fe42f5bd93214255c510fb4fcd5a228e689b5bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

This release

0.5.0 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page