Skip to main content

Module engine

Module engine 

Source
Expand description

UbftEngine: the register file, the trusted-key loader and the Ed25519 verify core around UbftSigner and UbftVerifier.

The register map and the streams are in super.

§Trusted keys

The host writes up to KEY_SLOTS Ed25519 public keys (one per peer replica) and key_mask before start. After start the loader puts each masked slot’s key into the verify core, one at a time (about 108,000 cycles each for the 1,1,1,0 core), and opens the verify stream once every masked slot has settled. A key that does not decode sets fault bit 3; records naming that slot then fail their certificate check.

§Certificate requests

The verify core asks for one Ed25519 check per new batch certificate. The request is held in registers in front of the Ed25519 core (its input logic is deep; see crate::verify::engine), with the public key of the request’s key slot.

Structs§

CfgWrite
A register write from a component that embeds the engine (the same offsets and rules as an AXI-Lite write; no response).
UbftEngine
The uBFT signature service kernel.
UbftInput
Kernel inputs.
UbftOutput
Kernel outputs.

Functions§

latency_word_kernel
One register word of a latency block (i = 0 N, 1 LAST, 2 MIN, 3 MAX, 4 SUM lo, 5 SUM hi).
ubft_engine_kernel
The kernel’s logic.