Metadata-Version: 2.4
Name: peakrdl-rust
Version: 0.1.0
Summary: Generate a Rust crate from SystemRDL for accessing control/status registers.
Keywords: SystemRDL,PeakRDL,CSR,compiler,tool,registers,generator,Rust,PAC,embedded
Author: Dana Sorensen
Author-email: Dana Sorensen <dana.r.sorensen@gmail.com>
License-Expression: LGPL-2.1-or-later
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Plugins
Classifier: License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Classifier: Typing :: Typed
Requires-Dist: case-converter>=1.2.0
Requires-Dist: jinja2>=3.1.6
Requires-Dist: systemrdl-compiler>=1.29.3
Requires-Dist: peakrdl-cli>=1.4.0 ; extra == 'cli'
Requires-Python: >=3.9
Provides-Extra: cli
Description-Content-Type: text/markdown

# PeakRDL-rust

Generate Rust code for accessing control/status registers from a SystemRDL description.

This is currently in an alpha state. Feel free to try it out and report any bugs
encountered.

## Installation

It can be installed from PyPI using

```bash
pip install peakrdl-rust[cli]
```

## Usage

For usage available options, use

```bash
peakrdl rust --help
```

## TODO

- [x] Arrays
- [x] Enum encoding
- [x] Reg impl with regwidth != accesswidth
- [x] Impl Default for registers
- [x] Test generator
- [x] Add field constants (width, offset, etc.)
- [x] Impl Debug for registers
- [x] Add ARCHITECTURE.md
- [x] Find/generate additional test input
- [x] Mem components
- [x] More efficient field tests
- [x] Set up github actions/PyPI publishing
- [ ] Automatically run tests
- [ ] Regwidth > native integer types
- [ ] Fixedpoint/signed UDPs
