Metadata-Version: 2.4
Name: peakrdl-pss
Version: 0.0.1
Summary: Generate a PSS (Portable Test and Stimulus) register package from SystemRDL
Author: Matthew Ballance
License: Apache-2.0
Project-URL: Source, https://git.dvkit.org/psstools/peakrdl-pss.git
Keywords: SystemRDL,PeakRDL,PSS,Portable Test and Stimulus,CSR,registers,generator
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: systemrdl-compiler<2,>=1.27
Requires-Dist: jinja2>=3.0
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-book-theme; extra == "docs"
Requires-Dist: sphinxemoji; extra == "docs"
Requires-Dist: pygments-systemrdl; extra == "docs"
Provides-Extra: dev
Requires-Dist: ruff; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Dynamic: license-file

# peakrdl-pss

Generate a **PSS (Portable Test and Stimulus) register package** from a
SystemRDL register description.

```bash
python3 -m pip install peakrdl-pss
peakrdl pss my_design.rdl -o my_regs.pss
```

The output is a `.pss` file containing a `packed_s<>` struct and a
`pure component ... : reg_c<>` per register type, and a
`pure component ... : reg_group_c` per `addrmap`/`regfile` implementing the
offset functions a PSS tool uses to resolve addresses.

Where a construct has no PSS representation, the export **fails** rather than
emitting something plausible — a 128-bit register emitted as a `reg_c` parses
cleanly and is wrong. Where the mapping is possible but lossy, the exporter emits
it and reports exactly what it dropped.

## Documentation

See `docs/` (Sphinx): the mapping, the CLI, diagnostics by ID, and what is not
supported.

## Development

```bash
ivpm update && source .envrc
python -m pip install -e . --no-deps
pytest
```

See the contributing page in the docs for how the test suite is organized.
