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 | |
|---|---|---|---|
| dau_sim-0.3.0.tar.gz | 142.8 kB | 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
|