Expand description
On-chip U280 benchmark control for the SHA-256 WOTS signer.
This module keeps the benchmark workload, one-time seed allocation, signer
handshakes, frame validation, counters, checksum, and AXI4-Lite control in
Rust/RHDL. The generated Vitis-facing Verilog wrapper is wiring only: it
maps named ports to the packed AxiLiteBenchmarkInput and
AxiLiteBenchmarkOutput fields using RHDL Digital metadata.
§One-time-key boundary
A launch snapshots a 192-bit test nonce and a 64-bit base index. Job j
receives the private seed nonce || big_endian(base + j). A nonzero batch
is accepted only when base + batch fits in 64 bits, so the half-open range
[base, base + batch) is injective and a representable next index remains.
The continuously loaded kernel advances its configured base atomically when
the launch is accepted. That is not durable allocation: software must
reserve and persist the nonce/range before every launch, including warmups
and retries, and must restore a never-before-used range after reset or
reprogramming.
This is an on-chip compute benchmark. It does not include PCIe, HBM, DDR,
or result-DMA traffic, and its 512-bit XOR fold is an observability checksum,
not a cryptographic authenticator.
Structs§
- AxiLite
Benchmark Config - Mutable launch configuration.
- AxiLite
Benchmark Control - Resettable AXI channel ownership and interrupt state.
- AxiLite
Benchmark Input - Packed AXI4-Lite slave inputs consumed by the RHDL kernel adapter.
- AxiLite
Benchmark Kernel With Signer - AXI4-Lite-only benchmark kernel over an injected signer component.
- AxiLite
Benchmark Output - Packed AXI4-Lite slave outputs produced by the RHDL kernel adapter.
- Benchmark
Checksum Input - Input to the 512-bit observability fold.
- Benchmark
Counter Audit Input - Counter/ownership audit after all current-cycle admissions and terminals.
- Benchmark
Counter Audit Output - Counter/ownership invariants and exact healthy terminal predicate.
- Benchmark
Engine Control - Resettable benchmark ownership and counter state.
- Benchmark
Engine Data - Resettable run data and retained results.
- Benchmark
Engine Input - Configuration offered to the on-chip benchmark engine.
- Benchmark
Engine Output - Complete benchmark status retained for AXI4-Lite reads.
- Benchmark
Engine With Signer - On-chip workload generator, injected signer driver, checker, and counter bank.
- Benchmark
Frame Validation Input - Input to the benchmark’s independent frame checker.
- Benchmark
JobMaterial - Deterministic private seed and already-hashed benchmark message.
- Benchmark
Launch Validation Input - Launch-range validation input.
- Benchmark
Launch Validation Output - Launch-range validation result.
- Benchmark
Live Job - One exact live-job ownership record in the three-cluster/four-context signer.
- Benchmark
Read Decode Input - Read-decode input assembled entirely from RHDL state.
- Benchmark
Read Decode Output - Read-decode result.
- Benchmark
Scoreboard Admission Input - Candidate signer admission offered to the exact ownership scoreboard.
- Benchmark
Scoreboard Admission Output - Allocation decision for one accepted signer start.
- Benchmark
Scoreboard Audit Input - Input to the live-job scoreboard integrity audit.
- Benchmark
Scoreboard Audit Output - Integrity and population summary for the live-job scoreboard.
- Benchmark
Scoreboard Lookup Input - Lookup request for a data or error completion owner.
- Benchmark
Scoreboard Lookup Output - Exact live-owner lookup result.
- External
Modular Sha256 Signer Top - Behavioral production signer with an unresolved external HDL definition.
- Inline
Benchmark Signer - Copyable adapter that expands an ordinary
SignerTopinto its parent.
Constants§
- AXI_
RESP_ OKAY - AXI4-Lite
OKAYresponse. - AXI_
RESP_ SLVERR - AXI4-Lite
SLVERRresponse. - BENCHMARK_
ABI_ VERSION - Stable register-map version: major 1, minor 0.
- BENCHMARK_
AXI_ ADDR_ BITS - AXI4-Lite address width used by the named Vitis wrapper.
- BENCHMARK_
AXI_ RANGE_ BYTES - AXI4-Lite register aperture in bytes.
- BENCHMARK_
CHECKSUM_ WORDS - Number of 32-bit words in the observable 512-bit checksum.
- BENCHMARK_
FAULT_ ADMISSION - A signer admission pulse violated the benchmark ownership contract.
- BENCHMARK_
FAULT_ COUNTER - A completion counter exceeded the accepted batch contract.
- BENCHMARK_
FAULT_ ERROR - A transferred error completion had invalid identity or handshake metadata.
- BENCHMARK_
FAULT_ FRAME - A transferred output beat violated canonical control or frame identity.
- BENCHMARK_
FAULT_ NONE - No structural fault.
- BENCHMARK_
FAULT_ SIGNER - The wrapped signer reported a sticky structural fault.
- BENCHMARK_
LIVE_ JOB_ SLOTS - Exact number of live signer contexts represented by the ownership scoreboard.
- BENCHMARK_
NONCE_ WORDS - Number of 32-bit words in the test-only 192-bit nonce prefix.
- BENCHMARK_
REJECT_ INDEX_ OVERFLOW base + batchrequired a 65th bit and was rejected.- BENCHMARK_
REJECT_ NONE - No launch rejection.
- BENCHMARK_
REJECT_ ZERO_ BATCH - A zero-length batch was rejected.
- BENCHMARK_
SIGNER_ TOP_ MODULE - Canonical separately generated production signer module used by Phase A.
- REG_
ABI_ VERSION - Read-only ABI version.
- REG_
ACCEPTED_ LO - Accepted-job counter, low word; high word follows.
- REG_
AP_ CTRL - Standard Vitis control register.
- REG_
BASE_ HI - Current base/next-index high word.
- REG_
BASE_ LO - Current base/next-index low word.
- REG_
BATCH - Requested batch size.
- REG_
BEATS_ LO - Transferred-beat counter, low word; high word follows.
- REG_
CHECKSUM_ 0 - First checksum word; sixteen consecutive words end at
0x0cc. - REG_
CODES - Low byte is structural fault code; next byte is last rejection code.
- REG_
COMPLETED_ LO - Successful-frame completion counter, low word; high word follows.
- REG_
COMPLETION_ SPAN_ LO - Last-minus-first successful completion span, low word.
- REG_
ELAPSED_ LO - Active run cycles, low word; high word follows.
- REG_
ERRORS_ LO - Identified error-completion counter, low word; high word follows.
- REG_
FIRST_ COMPLETION_ LO - Zero-based cycle of the first successful final beat, low word.
- REG_GIE
- Global interrupt enable.
- REG_IER
- Per-event interrupt enable (
done,fault). - REG_ISR
- Toggle-on-write interrupt status (
done,fault). - REG_
LAST_ COMPLETION_ LO - Zero-based cycle of the last successful final beat, low word.
- REG_
NONCE_ 0 - First nonce-prefix word; words are consecutive through
0x02c. - REG_
PAYLOAD_ CYCLES_ LO - Inclusive first-to-last transferred-payload span, low word.
- REG_
RUN_ BASE_ HI - Base index latched by the most recently accepted launch, high word.
- REG_
RUN_ BASE_ LO - Base index latched by the most recently accepted launch, low word.
- REG_
STATUS - Packed busy/fault/rejection status.
Traits§
- Benchmark
Signer Component - Exact synchronous signer interface accepted by the benchmark engine.
Functions§
- axi_
lite_ benchmark_ kernel - State transition for
AxiLiteBenchmarkKernelWithSigner. - benchmark_
checksum_ kernel - XOR-fold one transferred 512-bit beat plus its job/cluster/beat identity.
- benchmark_
counter_ audit_ kernel - Cross-check counters against the exact live-job scoreboard.
- benchmark_
engine_ kernel - State transition for
BenchmarkEngineWithSigner. - benchmark_
frame_ is_ canonical_ kernel - Independently validate canonical framing and batch identity.
- benchmark_
job_ material_ kernel - Construct one deterministic benchmark job.
- benchmark_
launch_ validation_ kernel - Reject zero batches and any reservation whose exclusive end needs 65 bits.
- benchmark_
merge_ write_ kernel - Merge one AXI write word according to byte strobes.
- benchmark_
read_ decode_ kernel - Decode the stable benchmark register map.
- benchmark_
scoreboard_ admission_ kernel - Allocate the first free capacity slot in the admitted cluster.
- benchmark_
scoreboard_ audit_ kernel - Audit cluster partitioning and count live ownership in one linear pass.
- benchmark_
scoreboard_ lookup_ kernel - Match a returned
(job_id, cluster)against exactly one live owner.
Type Aliases§
- AxiLite
Benchmark Kernel - Const-generic inline-signer AXI kernel retained for source compatibility.
- Benchmark
Engine - Const-generic inline-signer benchmark engine retained for source compatibility.
- Modular
Wots Sha256 AxiLite Benchmark Kernel - Production AXI4-Lite benchmark linked to the external RHDL signer top.
- Modular
Wots Sha256 Benchmark Engine - Production benchmark engine linked to the separately generated signer top.
- Wots
Sha256 AxiLite Benchmark Kernel - Production inline-lane AXI4-Lite benchmark kernel.
- Wots
Sha256 Benchmark Engine - Production inline-lane benchmark engine.