Skip to main content

dau build

Build tools for dau

Build Status codecov License

Overview

dau-build turns a declarative FPGA build spec into the files a build needs: generated SystemVerilog, artlink.manifest/v0 artifact bundles, backend handoff manifests, Vivado Tcl, and ordered hardware command plans. The operations are typed ccflow.CallableModels composed from the Hydra config tree in dau_build/config. The whole pipeline composes, inspects and tests on a development machine; the steps that need Vivado, a JTAG cable or a PCIe bus run only when you pass execute=true.

Two synthesis engines are supported: Vivado for the FPGA bitstream flow, and yosys for open-source synthesis that runs in CI. The config plumbing does not depend on either, so more can be added.

Other packages extend dau-build by composition rather than by editing it. A package registers its own config tree on the shared Hydra search path through a hydra.lernaplugins entry point, and its task, design and board groups then compose through this CLI without dau-build importing the package. The core registry arrives the same way: dau-core publishes each hardware building block as a CoreDefinition at /dau-core/<name>, and the synthesize-cores task resolves cores from that registry to characterize them one at a time, out of context. Without a synthesis host it stages the Tcl and a command plan; with model.execute=true on a machine that has Vivado it runs the synthesis and reports any drift from the resource and timing envelope the registry records:

dau-build task=tasks/build/synthesize-cores   'model.cores=[/dau-core/int32-predicate-filter]'   model.output_root=outputs/ooc model.part=xc7a200tfbg484-2

Installation

Python 3.11 or later. There is no package index release yet; install from a clone or straight from GitHub:

pip install git+https://github.com/dau-dev/dau-build.git

For development, clone and run make develop. Vivado and yosys are needed only for the steps that run them; everything else composes, generates and tests without them.

Quickstart

Build the checked-in identity example. No board and no vendor tools are needed:

dau-build task=tasks/spec/inspect  spec=specs/identity
dau-build task=tasks/spec/build     spec=specs/identity model.output_root=outputs/identity
dau-build task=tasks/spec/validate  model.manifest_path=outputs/identity/dau-identity.manifest model.root=outputs/identity
dau-build task=tasks/sim/simulate   spec=specs/identity model.module=dau_identity_top

Task names are paths into the config tree (task=tasks/spec/inspect).

Documentation

Metadata

Release files for dau-build 0.15.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-build 0.15.0
File Size Uploaded
dau_build-0.15.0.tar.gz 270.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dau-build 0.15.0
File Interpreter ABI Platform
dau_build-0.15.0-py3-none-any.whl Python 3 none any Details

Total release size: 591.4 kB

Release files / dau_build-0.15.0.tar.gz

Download URL dau_build-0.15.0.tar.gz
Size 270.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f1c6cd4402c646c2c0a7a3be5684345f5fdac42ddd2eea62adb05cb322496dad
BLAKE2b-256 checksum
How to use checksums
b75024eccb40d2fc5691d416fe3128de393271268589dd14daa9c463536c6c71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / dau_build-0.15.0-py3-none-any.whl

Download URL dau_build-0.15.0-py3-none-any.whl
Size 321.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0bbfc9f67ae2544aae60138343a5fca58f8db618191c998038be1c278755b1fc
BLAKE2b-256 checksum
How to use checksums
53eb5f0a94b2ea7404d2c2f1f0c4ad2b66015e7c81069b7306cfa383f3d431a7
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.15.0 This release

2 release files

0.14.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

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