open-standards/wai/wai-quantum-landscape-fpga/PROVENANCE.md
Transaction Science 98c4784bb3
Some checks failed
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Has been cancelled
wai-quantum-landscape-fpga reference design / does this change touch it (push) Successful in 50s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 23s
wai-quantum-landscape-fpga reference design / the member against the model of the logic, and the logic against the model · linux, release (push) Successful in 4m8s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 31s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 2m59s
wai-quantum-landscape-fpga reference design / the board's code on the board's processor's architecture · linux-arm64, release (push) Successful in 2m5s
wai-quantum-landscape-fpga: PROVENANCE names the copyright holder, Open Interface Engineering, Inc.
The same holder that relicensed the emulator in #664.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 03:49:23 -05:00

42 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Where this design came from
The engine's logic, its register-level model, the host and the power-measurement scripts were
written in a private repository, where the first version of the design was built and measured on
the board, at commit `24bb5c8e8032e95a614a9db1e6f2e98ac7ea1233`. There the host crate's manifest
declared `CC0-1.0`, and the logic, the build script and the shell scripts carried no licence. They
are released here under this repository's `Apache-2.0`, by their copyright holder, Open Interface
Engineering, Inc., on 2026-11-05. This repository's `LICENSE` governs everything under this directory. The logic, the
testbenches, the build script, the constraints and the scripts carry
`SPDX-License-Identifier: Apache-2.0`; the Rust sources, as elsewhere in this repository, carry no
header and are covered by `LICENSE` and by `license = "Apache-2.0"` in `Cargo.toml`.
## What changed from that code
- **The draws.** The first version drew its own randomness from a 128-bit xoroshiro128+ register and
compared 16 bits against 16-bit cut points, so its sampling was statistical: right in distribution,
different in every bit. Here the engine computes the reference's draws, SplitMix64 over a counter, and
compares 53 bits against 54-bit cut points the host computes with the reference's `cuts`, so its
sampling kernel gives the reference's bits.
- **The table window.** The first version held fields −64 to 63 and refused a job whose uncertain
fields fell outside. Here the window's start and width are registers, and the host places them.
- **Fields and cost** widen from 11 and 10 bits to 20, and a cell update takes four clocks, not three.
- **The job form.** The first host read a request of `key=value` lines and printed a replay line of its
own. Here the host is a `Member` of `wai_quantum::quantum_landscape`, so a job is the spec's JSON
request, its answer the spec's answer, sealed, and the starts, default temperature, limits and
refusals are the reference's, because they are the reference's code.
- **The link.** The first version had only the EMIO port. The AXI link (`rtl/landscape_axi.v`,
`src/axi.rs`), its testbench, the joint-statistics test (`src/exact.rs`) and the latency
measurement (`src/latency.rs`) were written here, after the release.
- **The member's contract.** The host certifies the member and gives it a schedule of temperatures,
as the spec's member trait now says; the first host stated its own parity and took a start
temperature and a sweep count.
- **Names.** Modules, files and the engine's ID (`LAND`) are named for what they do.
## What is not here
No bitstream (README, "Build and load"). Nor the known-answer vehicle the power campaigns checked
the meter with: a design of the maintainers' own from 2026-09 and the script that runs it, both in
the private repository. A builder uses a known answer of their own (`KNOWN_ANSWER` in
`scripts/power_campaign.sh`) or none; the null and the clock-scaling check need nothing else. The first version's raw power logs are in
`measurements/2026-11-05/` as they were written, under that version's tool name; its predictions are
the files committed before that measurement, copied unchanged.