dau build
Build tools for dau
Overview
dau-build turns declarative FPGA build specs into concrete artifacts: generated SystemVerilog, artlink.manifest/v0 artifact bundles, backend handoff manifests, Vivado Tcl, and ordered hardware command plans. Every operation is a typed ccflow.CallableModel composed from a Hydra config tree in dau_build/config, so the whole pipeline composes, inspects, and tests on a development machine, with the privileged steps (Vivado, JTAG, PCIe) gated behind an explicit execute=true.
Two synthesis engines are supported: Vivado (the FPGA bitstream flow) and yosys (open-source synthesis that runs in CI). The config plumbing is backend-agnostic, so more can be added.
Composition is the extension mechanism: any package can register its own config tree on the shared Hydra search path via a hydra.lernaplugins entry point, and its task/design/board groups compose through this CLI without dau-build importing that package. The core registry itself arrives this way — dau-core publishes every hardware building block as a CoreDefinition at /dau-core/<name>, and the synthesize-cores task resolves cores from that registry to run per-core out-of-context characterization (staged Tcl + command plan anywhere; model.execute=true on a synthesis host runs Vivado and flags envelope drift against the registered numbers):
dau-build task=tasks/build/synthesize-cores 'model.cores=[/dau-core/int32-predicate-filter]' model.output_root=outputs/ooc model.part=xc7a200tfbg484-2
Quickstart
Build the checked-in identity example — no board or vendor tools required:
dau-build task=tasks/spec/inspect model.spec_path=examples/identity/dau-build.yaml
dau-build task=tasks/spec/build model.spec_path=examples/identity/dau-build.yaml 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 model.module=dau_identity_top model.spec_path=examples/identity/dau-build.yaml
Task and step names are path-style, mirroring the config tree (task=tasks/spec/inspect, step=steps/inspect).
Documentation
The documentation is organized into four sections:
- Tutorial — Build the identity example.
- How-to — Run a build end to end · Program a bitstream on dpv1 · Extend dau-build.
- Reference — Commands · Config groups · Task and step catalog.
- Explanation — Architecture: how Hydra composition, ccflow evaluation, and the search-path extension model work, and the current state of backend support.
[!NOTE] This library was generated using copier from the Base Python Project Template repository.
Metadata
Release files for dau-build 0.14.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_build-0.14.0.tar.gz | 235.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dau_build-0.14.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 523.0 kB
Release files / dau_build-0.14.0.tar.gz
| Download URL | dau_build-0.14.0.tar.gz |
|---|---|
| Size | 235.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b18cfab4476545ed0018e62b0f5bb7f1966352a241f0d332565a2342b43d6965
|
|
BLAKE2b-256 checksum How to use checksums |
b70ed4e172faeab61efc9fc71d54bc7a0cdef92f382f7812cf7546b27b5c5fa6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / dau_build-0.14.0-py3-none-any.whl
| Download URL | dau_build-0.14.0-py3-none-any.whl |
|---|---|
| Size | 287.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f3ecc32edec1c94d694e1975d0cfecec0a36ac63e981ede11297bb8983dfaea0
|
|
BLAKE2b-256 checksum How to use checksums |
c0caa6d210a051392fdf3e0c3201b9721a5dd62eadad5af736379864259957bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|