Web presence for Zuspec - a Python-based multi-abstraction hardware modeling language.
This repository contains the Zuspec project website, built with Sphinx and hosted on GitHub Pages.
- Python 3.8 or later
- pandoc (for PDF generation)
- LaTeX (for PDF generation)
- Install Python dependencies:
pip install -r docs/requirements.txt
pip install ivpm- Install project dependencies:
python3 -m ivpm update --anonymous-gitBuild the main documentation:
makeThis will:
- Generate PDFs from markdown sources in
papers/ - Build Sphinx documentation to
docs/_build/html - Copy the built documentation to
web/ - Create a
.nojekyllfile for GitHub Pages
The output will be in the web/ directory.
Individual packages have their own documentation in packages/*/docs/. To build these:
# Build all available package docs
./build-package-docs.sh
# Copy package docs to web output
make copy-package-docsNote: Package documentation is optional and requires each package's dependencies to be installed.
To clean build artifacts:
make clean # Clean main docs only
make clean-all # Clean main docs and all package docsThe documentation is organized as follows:
-
docs/ - Main Sphinx documentation
- index.rst - Main landing page
- overview.rst - Project overview and motivation
- installation.rst - Installation instructions
- papers.rst - Academic papers and publications
- packages/ - Documentation for individual packages
- zuspec-dataclasses/ - Core language package
- zuspec-be-sv/ - SystemVerilog backend
- zuspec-be-sw/ - Software (C/C++) backend
- zuspec-be-hdlsim/ - HDL simulation backend
- zuspec-be-trace/ - Trace generation backend
- zuspec-be-fv/ - Formal verification backend
-
papers/ - Source materials for papers
- zuspec_pythonic_hw_dev/ - Main paper on Zuspec
-
packages/ - Git submodules of individual Zuspec packages
- Each package has its own documentation in
docs/subdirectory - Package docs are linked from the main site
- Each package has its own documentation in
The website is automatically built and deployed to GitHub Pages when changes are pushed to the main branch. See .github/workflows/ci.yaml for the workflow configuration.
The CI builds:
- Main Sphinx documentation
- Paper PDFs
- Deploys to gh-pages branch
Individual package documentation is built separately in their own repositories.
Contributions are welcome! Please submit issues and pull requests on GitHub.
See the LICENSE file for details.
- Website: https://zuspec.github.io/
- GitHub Organization: https://github.com/zuspec/