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.