Skip to main content

Sphinx Doc

Automated Sphinx documentation generator for SystemVerilog and Python UVM testbenches.

Features

  • ๐Ÿ“„ Automatic Documentation Generation: Parses SystemVerilog (.sv, .svh) files and generates beautiful Sphinx documentation
  • ๐Ÿ Python Support: Also supports Python UVM (PyUVM) testbenches with autodoc
  • ๐Ÿ“ฆ Complete Package: Includes parser, generator, and Sphinx configuration
  • ๐ŸŽจ Professional Theme: Uses Read the Docs theme with customizable styling
  • ๐Ÿ” Detailed Extraction: Extracts classes, modules, functions, tasks, variables, and comments
  • ๐Ÿ“š Collapsible Source: Includes collapsible source code blocks for better readability
  • ๐Ÿ”— Cross-References: Automatic linking and indexing
  • ๐ŸŽฏ Language Auto-Detection: Automatically detects SystemVerilog and Python files

Installation

pip install sphinx-doc

Sample Files for Testing

After installation, the package includes sample SystemVerilog and Python files in the tests/ directory for quick testing and experimentation.

Sample File Structure

The sample files include:

  • tests/env/: SystemVerilog environment components (agent, env, sequence library)
  • tests/tests/: SystemVerilog test cases (random and directed tests)
  • tests/pyenv/: Python environment components (agent, env, config)
  • tests/pytests/: Python test cases

Try It Out

sphinx-doc -e "/path/to/tests/env" -t "/path/to/tests/tests" --view

Quick Start

Check Version

sphinx-doc --version
# or
sphinx-doc -V

Generate Documentation (Auto-Detect Language)

# Generates RST and builds HTML automatically
sphinx-doc --env ./testbench/env --test ./testbench/tests

# Build and open in browser
sphinx-doc -e ./env -t ./tests --view

# Generate only RST files (skip HTML build)
sphinx-doc --env ./testbench/env --test ./testbench/tests --no-build

Multiple Directories (Mixed Languages)

# Mix SystemVerilog and Python - auto-detected
sphinx-doc -e ./env -e ./pyenv -t ./tests -t ./pytests

Full Options

sphinx-doc \
  --env ./path/to/environment \
  --test ./path/to/tests \
  --output ./documentation \
  --project-name "My UVM Testbench" \
  --author "Your Name" \
  --revision "1.0.0"

Command Line Options

Main Command: sphinx-doc

  • --env PATH or -e PATH: Path to environment directory (auto-detects .sv/.svh or .py files). Can be used multiple times.
  • --test PATH or -t PATH: Path to tests directory (auto-detects .sv/.svh or .py files). Can be used multiple times.
  • --output PATH: Output directory for documentation (default: ./docs)
  • --project-name NAME: Project name for documentation (default: auto-detected)
  • --author NAME: Author name (default: "Your Name")
  • --revision VER: Documentation revision/version (default: "1.0.0")
  • --theme THEME: Sphinx HTML theme (default: sphinx_rtd_theme)
  • --no-build: Skip HTML build (only generate RST files)
  • --view: Open documentation in browser after building
  • --version or -V: Show package version and exit

Documentation Features

SystemVerilog Support

  • Modules: Full module extraction with ports and descriptions
  • Classes: UVM classes with inheritance, variables, and methods
  • Interfaces: Interface definitions with port tables
  • Functions/Tasks: Complete signatures with collapsible source code
  • Comments: Extracts block comments (/* */), line comments (//), and inline comments (//<)
  • Auto-Detection: Automatically finds .sv and .svh files

Python Support

  • Auto-documentation: Uses Sphinx autodoc for Python modules
  • Docstring Styles: Supports Google and NumPy docstring formats
  • Class/Function Documentation: Automatic extraction from Python docstrings
  • Cross-linking: Links between Python and SystemVerilog components
  • Auto-Detection: Automatically finds .py files

Generated Documentation Structure

docs/
โ”œโ”€โ”€ build/
โ”‚   โ””โ”€โ”€ html/
โ”‚       โ””โ”€โ”€ index.html  (Main documentation)
โ””โ”€โ”€ source/
    โ”œโ”€โ”€ conf.py
    โ”œโ”€โ”€ index.rst
    โ”œโ”€โ”€ environment.rst
    โ”œโ”€โ”€ testcases.rst
    โ”œโ”€โ”€ sv_env/
    โ”‚   โ”œโ”€โ”€ component1.rst
    โ”‚   โ””โ”€โ”€ component2.rst
    โ””โ”€โ”€ sv_tests/
        โ”œโ”€โ”€ test1.rst
        โ””โ”€โ”€ test2.rst

Example Project Structure

my_uvm_project/
โ”œโ”€โ”€ env/
โ”‚   โ”œโ”€โ”€ my_env.sv
โ”‚   โ”œโ”€โ”€ my_agent.sv
โ”‚   โ””โ”€โ”€ my_driver.sv
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ base_test.sv
โ”‚   โ””โ”€โ”€ my_test.sv
โ”œโ”€โ”€ pyenv/                  (optional)
โ”‚   โ”œโ”€โ”€ my_env.py
โ”‚   โ””โ”€โ”€ my_agent.py
โ””โ”€โ”€ pytests/                (optional)
    โ””โ”€โ”€ test_my_env.py

Comment Style Guide

Block Comments (Before Construct)

/*
 * This is a UVM driver for AXI protocol.
 * Handles write and read transactions.
 */
class axi_driver extends uvm_driver;

Line Comments (Variable Description)

// Transaction queue for storing incoming requests
mailbox #(axi_transaction) req_queue;

Inline Comments (Same Line)

bit [7:0] data;  //< 8-bit data payload

Function/Task Comments (Inside Body)

function void my_function();
  /* Brief: Performs initialization of driver components */
  // Function implementation
endfunction

Customization

The generated conf.py can be customized for:

  • Theme selection
  • Color schemes
  • Sidebar navigation
  • Table of contents depth
  • Code highlighting styles

Building Documentation Manually

If you want to modify and rebuild:

cd docs
sphinx-build -b html source build/html

Requirements

  • Python 3.8+
  • Sphinx 5.0+
  • sphinx-rtd-theme 1.0+
  • sphinx-verilog-domain 0.2+

License

MIT License - See LICENSE file for details

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

For issues and questions:

Changelog

Version 1.0.1 (2025-01-01)

  • Initial release
  • SystemVerilog parsing support
  • Python autodoc integration
  • Collapsible source code
  • Professional theme

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinx_doc-1.1.1.tar.gz (35.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphinx_doc-1.1.1-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_doc-1.1.1.tar.gz.

File metadata

  • Download URL: sphinx_doc-1.1.1.tar.gz
  • Upload date:
  • Size: 35.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for sphinx_doc-1.1.1.tar.gz
Algorithm Hash digest
SHA256 94e94234decaeefe0354ef460240e73bec05a5373fa7d5daac63b912d67675fb
MD5 cdc32db37f89b595745fb2402c47cb6b
BLAKE2b-256 eaefa91d79755a9b3c2aba2b43048b3e8878e733df981aabaef612e77bd06d42

See more details on using hashes here.

File details

Details for the file sphinx_doc-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: sphinx_doc-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 39.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.0

File hashes

Hashes for sphinx_doc-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3f1301f26425fb0009d8efd90d7fb4036d4ff351c8db1bd566528abed777a4a6
MD5 513d03257dcc7448056053af5a11be78
BLAKE2b-256 edfccb2e23ed6a1238800c5450f3500d3b8a2d079bb280f84bc06f6b9d416e83

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 files

1.1.0

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page