Skip to main content

dau sim

dau simulator

Build Status codecov License PyPI

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:

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)

Source distribution for dau-sim 0.3.0
File Size Uploaded
dau_sim-0.3.0.tar.gz 142.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dau-sim 0.3.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page