The same holder that relicensed the emulator in #664. Co-Authored-By: Claude Opus 5.5 <[email protected]>
3.1 KiB
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=valuelines and printed a replay line of its own. Here the host is aMemberofwai_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.