Expand description
The host’s view: ubft_new’s register map, plus what rhdl_ubft measured.
The arguments sit at the offsets of the HLS kernel’s xubft_hw.h, so
ubft_new’s host code (or XRT’s set_arg) drives rhdl_ubft unchanged.
ap_ctrl behaves as ap_ctrl_hs: write bit 0 to start; bit 1
(ap_done) rises when the run ends and clears when read; bit 2
(ap_idle) is high while stopped.
rhdl_ubft adds one argument ubft_new lacks: session at 0x080/0x084
(64 bits), a host-chosen id that is never reused and is signed into every
certify share (sign layout v2, so a share from an old run does not verify).
Writes to 0x800..0xFFF while stopped go to the signature scheme’s
configuration window (crate::ports::CfgWrite).
From regs::STATUS on, rhdl_ubft adds read-only counters the HLS kernel
does not have. The host reads them after a run instead of guessing from
wall-clock time:
| Offset | Word |
|---|---|
0x100 | MAGIC = “RUB1” (MAGIC) |
0x104 | SHAPE: build nodes bits 0..8, window 8..16, scheme 16..24 |
0x108 | DECIDED: slots decided |
0x10c | FAST: decided on the fast path |
0x110 | SLOW: decided on the slow path |
0x114 | VIEWS: view changes |
0x118 | CYCLES: clock cycles of the run (lo) |
0x11c | FIRST: cycle of the first decision |
0x120 | LAST: cycle of the last decision |
0x124 | SLOT_MIN: fewest cycles from a slot’s start to its decision |
0x128 | SLOT_MAX: most |
0x12c | SLOT_SUM lo; 0x130 hi |
0x134 | VERIFIED: certify shares verified (valid) |
0x138 | REJECTED: shares that failed verification |
0x13c | STATE: submachine bits 0..2, state 8..14, view 16..32 |
0x140 | FAULT (see Status::fault) |
Structs§
- Args
- The run’s arguments, as the host wrote them.
- Control
- The register block.
- Control
In - Inputs of
Control. - Control
Out - Outputs of
Control. - Control
State - The control block’s registers.
- Status
- What the protocol reports to the host.
Constants§
- MAGIC
- “RUB1”.
Functions§
- arg64_
word - The value of 64-bit argument
vat register offsetat(low word atbase, high atbase + 4). - control_
kernel - The control block’s logic.
- set_
arg64 vwith the 32-bit word atatreplaced bydata, ifatis its low (base) or high (base + 4) word.