Transactron
Transactron is a library for Amaranth HDL which makes designing complex digital designs easier. It provides an abstraction for ready/valid handshake signals, automatically generates arbitration circuits, and presents an intuitive, object-oriented-like interface to the circuit designer. The main advantages of using Transactron are:
- Abstracted handshake signalling makes it easier to design complex, latency-insensitive, pipelined circuits.
- Object-oriented-like interface allows to encapsulate complex behavior of a module and present a simple interface for its users. The syntax used is friendly for people coming from software development background.
- Thanks to auto-generated arbitrators and a rich library of reusable components, refactoring circuits is powerful and requires less effort. For example, when constructing pipelines, switching between lock-step, FIFO-coupled or combinational connection is as simple as switching a connector module.
A Transactron module defines a number of methods, which represent actions which can be performed by the circuit. If an action cannot be performed at a given time (e.g. a pop from an empty FIFO queue), the method is marked as not ready. A method can be called by other methods or by transactions, which represent single cycle state changes in a circuit. A given transaction can only be run when every method it calls is ready. When two different transactions call the same method, they are in conflict, which indicates a structural hazard. Transactron ensures that two conflicting transactions never run in the same clock cycle.
Transactron is inspired by Bluespec and its concept of guarded atomic actions. However, while Bluespec requires to follow its paradigm strictly down to simple register assignments, Transactron's abstractions are intended to be used at module boundaries, while the actual logic is written in plain Amaranth. Transactron is just a library and, as such, allows smooth interoperation with plain Amaranth HDL code.
A short video introduction to the Transactron library and its concepts is available here (ORConf 2025).
State of the project
The library is in alpha stage of development, but is already well tested because it serves a foundation for the Coreblocks out-of-order RISC-V CPU.
Documentation
The documentation is automatically generated using Sphinx. It includes a tutorial, which demonstrates how to start developing hardware using Transactron.
Community
We have a community IRC channel - #coreforge at libera.chat bridged with Matrix #coreforge:fossi-chat.org. You are welcome to join and share feedback, ask questions, or discuss the development of Coreforge Foundation projects :)
Contributing
Set up the development environment following the project documetation.
External contributors are welcome to submit pull requests for simple contributions directly. For larger changes, please discuss your plans with us through the issues page or the discussions page first. This way, you can ensure that the contribution fits the project and will be merged sooner.
License
This project is three-clause BSD licensed.
Metadata
Release files for transactron 0.13.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| transactron-0.13.1.tar.gz | 205.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| transactron-0.13.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 358.8 kB
Release files / transactron-0.13.1.tar.gz
| Download URL | transactron-0.13.1.tar.gz |
|---|---|
| Size | 205.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b27e842c3845da0deb5f360c9106a6f55ae4fa80005afaf70080ae15cbf20b93
|
|
BLAKE2b-256 checksum How to use checksums |
1e334f59a0ae11ba1f1ce49ecbfd8122a5cbb9c19669b0c08268be0276968f9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / transactron-0.13.1-py3-none-any.whl
| Download URL | transactron-0.13.1-py3-none-any.whl |
|---|---|
| Size | 153.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
240ae59cfecee7a720df04daf61aa6808cd14d37089b84fc9dc2b555dac2bd5c
|
|
BLAKE2b-256 checksum How to use checksums |
995c9e216e1f0f69f3872545262e220f102ca6761e7c24107c4e3b29e7908561
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency log