Metadata-Version: 2.4
Name: cocotbext-avalon
Version: 0.1.2
Summary: Reusable Avalon-ST and Avalon-MM bus functional models for cocotb
Author: Yaroslav Mariukha
License-Expression: Apache-2.0
Project-URL: Source, https://github.com/yarko18/cocotbext-avalon
Project-URL: Issues, https://github.com/yarko18/cocotbext-avalon/issues
Classifier: Framework :: cocotb
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
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: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Requires-Python: <3.14,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: cocotb<3,>=2.0
Requires-Dist: cocotb-bus<1,>=0.3
Dynamic: license-file

<!--
Copyright 2026 Yaroslav Mariukha
SPDX-License-Identifier: Apache-2.0
-->

# cocotbext-avalon

Reusable Avalon Streaming (Avalon-ST) and Avalon Memory-Mapped (Avalon-MM)
bus functional models for cocotb.

## Install

```bash
python -m pip install cocotbext-avalon
```

For local development:

```bash
python -m pip install -e .
```

## Usage

```python
from cocotbext.avalon import (
    AvalonFormat,
    AvalonMMBus,
    AvalonMMMasterBFM,
    AvalonMMMemoryBFM,
    AvalonMMSlaveBFM,
    AvalonMMTransaction,
    AvalonSTBeat,
    AvalonSTBus,
    AvalonSTFrame,
    AvalonSTMonitor,
    AvalonSTSink,
    AvalonSTSource,
)
```

`AvalonSTSource`, `AvalonSTSink`, and `AvalonSTMonitor` support packetized and
non-packetized streams, pause generators, sideband signals, and ready modes
`ready_latency=0, ready_allowance=0` and
`ready_latency=1, ready_allowance=1`.

`AvalonMMMasterBFM`, `AvalonMMSlaveBFM`, and `AvalonMMMemoryBFM` support
register-style accesses, bursts, byte enables, wait-request backpressure,
variable-latency reads, and optional transaction recording.

## License

Apache-2.0. See `LICENSE` and `NOTICE`.
