dau sim
dau simulator
Overview
dau-sim simulates digital hardware designs on csp's reactive stream processing engine. Hardware signals become CSP time-series edges, combinational logic becomes CSP nodes, and clock domains become CSP clock processes. The result is a cycle-accurate simulator with deterministic event scheduling and multi-clock support.
Supported inputs:
- Amaranth HDL, Python-native hardware description
- SystemVerilog / Verilog, parsed with pyslang
- Hand-constructed IR, for programmatic design generation
Output formats: VCD (IEEE 1364-2001) waveform files. FST and live streaming are planned.
Installation
pip install dau-sim
For development:
git clone https://github.com/dau-dev/dau-sim.git
cd dau-sim
pip install -e ".[develop]"
Quick Start
from amaranth.lib import wiring
from amaranth.lib.wiring import In, Out
from amaranth.hdl import Module
from dau_sim.frontends import from_amaranth
from dau_sim.compiler import compile_module
class Counter(wiring.Component):
en: In(1)
count: Out(8)
def elaborate(self, platform):
m = Module()
with m.If(self.en):
m.d.sync += self.count.eq(self.count + 1)
return m
cm = compile_module(from_amaranth(Counter()))
traces = cm.run(cycles=20, inputs={"en": 1})
cm.write_vcd("counter.vcd", traces)
In the DAU stack
dau-sim is a general simulator. It knows nothing about DAU contracts or
tiles. The rest of the stack uses it through composition: the simulate task
in dau-build drives it from the same declarative build spec as synthesis,
so one description both simulates and builds:
# in a dau-build checkout, which carries the identity example
dau-build task=tasks/sim/simulate model.module=dau_identity_top model.spec_path=examples/identity/dau-build.yaml
Design-specific verification, such as the golden-equal cocotb benches for
the DAU operator tiles, lives with the tiles in dau-core.
Documentation
| Topic | Description |
|---|---|
| Amaranth | Simulating Amaranth HDL designs |
| Verilog / SystemVerilog | Simulating SV/V designs and hand-built IR |
| cocotb | Running cocotb testbenches against dau-sim |
| CLI | Command-line interface reference |
| Architecture | Pipeline and internal design |
| API Reference | Full API tables |
| Benchmarks | Performance numbers and execution modes |
License
This project is licensed under the Apache 2.0 License. See LICENSE for details.
Metadata
Release files for dau-sim 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dau_sim-0.3.0.tar.gz | 142.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dau_sim-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 317.6 kB
Release files / dau_sim-0.3.0.tar.gz
| Download URL | dau_sim-0.3.0.tar.gz |
|---|---|
| Size | 142.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fee7329025671d88b23319b51c34fb6092cacc85256fe602c4becf79bc4c72d9
|
|
BLAKE2b-256 checksum How to use checksums |
4ef16d5751a1bc461be7af42742069bd9489be03cb7cc8ef7fc0f6cbd22084ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / dau_sim-0.3.0-py3-none-any.whl
| Download URL | dau_sim-0.3.0-py3-none-any.whl |
|---|---|
| Size | 174.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ecf762ace094d84c357b8c424c6c22ceff9519acd525446ac7b82f067121d805
|
|
BLAKE2b-256 checksum How to use checksums |
ffeb5f7e38b168ca1d208e9ca52f712b80459a9f4d16089a2658e6dec78599f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Security for dau-sim 0.3.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.