Expand description
The verifier card kernel: VERIFY_UNITS verify units, HBM, registers.
Status: interface only. The ports, the register map and the HBM layout
below are fixed so the host tools can be written against them; the kernel
body is being built (see super).
§Ports
| Port | Direction | Carries |
|---|---|---|
s_axi_control | AXI4-Lite slave | the registers below |
m_axi_records{u} | AXI4 read master | unit u’s records |
m_axi_verdicts{u} | AXI4 write master | unit u’s verdict bytes |
Both of unit u’s ports reach the same 1 GiB HBM group, HBM[4u:4u+3].
§HBM layout per unit
records{u}:countrecords ofRECORD_BYTES, back to back, from a 4 KiB-aligned address.verdicts{u}:countverdict bytes in record order, from a 64-byte aligned address, padded to whole 64-byte beats. The host zero-fills it; a written verdict always has bit 7 set.
Every unit verifies the same count records. The host gives each unit
whole batches (all 128 records of a batch in a row), so a unit asks the
Ed25519 core for at most one certificate check per 128 records.
§Register map (32-bit words)
| Offset | Name | Access |
|---|---|---|
0x000 | AP_CTRL: bit 0 ap_start, 1 ap_done (clear on read), 2 ap_idle, 3 ap_ready | RW |
0x004 | GIE | RW |
0x008 | IER bit 0 | RW |
0x00c | ISR bit 0 (write 1 to toggle) | RW |
0x010 + 0x10·u | arg records{u} (u64) | W |
0x018 + 0x10·u | arg verdicts{u} (u64) | W |
0x090 | arg count: records per unit (u32) | W |
0x098 + 4w | args key0..key7: trusted Ed25519 public key, bytes 4w..4w+4 little endian | W |
0x200 | MAGIC = MAGIC (“DSV1”) | R |
0x204 | ABI = ABI_VERSION | R |
0x208 | SHAPE: units bits 0..8, lanes 8..12, log2 contexts 12..16, table mask 16..28 | R |
0x20c | FAULT: bit 0 read error, 1 write error, 2 Ed25519 core error, 3 key rejected | R |
0x210/0x214 | TICKS lo (snapshots hi) / hi | R |
0x218/0x21c | START_TICK lo/hi | R |
0x220/0x224 | DONE_TICK lo/hi: the last verdict write acknowledged | R |
0x228/0x22c | KEY_TICK lo/hi: the trusted key finished loading | R |
0x230 | VALID: records verified valid, all units | R |
0x234 | CERT_CHECKS: Ed25519 verifications issued | R |
0x238 | CERT_FAILS: Ed25519 verifications that failed | R |
0x240 + 4u | RETIRED[u]: verdicts produced by unit u | R |
Arguments are accepted only while idle; a finished kernel stays done until
reset (one run per reset), exactly as in crate::engine. The run is
timed from START_TICK to DONE_TICK, which includes loading the trusted
key into the Ed25519 core.
Structs§
- ArItem
- A read address on its way to HBM.
- AwItem
- A write address on its way to HBM.
- BItem
- A write response on its way back to a unit.
- Cluster
Input - Cluster inputs: the kernel’s plus the Ed25519 core’s outputs.
- Cluster
Output - Cluster outputs: the kernel’s plus the Ed25519 core’s inputs.
- EdCommand
- What the cluster asks of the Ed25519 verify core.
- EdStatus
- What the cluster sees of the Ed25519 verify core.
- RItem
- A read beat on its way back to a unit.
- Unit
Control - What the cluster tells a unit (static during a run, latency tolerant).
- Unit
Status - What a unit reports (counters, latency tolerant).
- Verify
Args - Host arguments.
- Verify
Cluster - Everything of the kernel except the Ed25519 core.
- Verify
Engine - The verifier card kernel:
VerifyClusterplus the Ed25519 verify core. - Verify
Engine Input - Kernel inputs.
- Verify
Engine Output - Kernel outputs.
- WItem
- A write beat on its way to HBM.
Constants§
- ABI_
VERSION - Register-map version of the verifier kernel.
- ARG_
COUNT - Offset of arg
count. - ARG_KEY
- Offset of arg
key0; wordw’s is+ 4w. - ARG_
RECORDS - Offset of arg
records0; unitu’s is+ 0x10·u. - ARG_
VERDICTS - Offset of arg
verdicts0; unitu’s is+ 0x10·u. - MAGIC
MAGICregister value (“DSV1” in little-endian ASCII).- REG_ABI
- Offset of
ABI. - REG_
CERT_ CHECKS - Offset of
CERT_CHECKS. - REG_
CERT_ FAILS - Offset of
CERT_FAILS. - REG_
DONE_ TICK - Offset of
DONE_TICKlo. - REG_
FAULT - Offset of
FAULT. - REG_
KEY_ TICK - Offset of
KEY_TICKlo. - REG_
MAGIC - Offset of
MAGIC. - REG_
RETIRED - Offset of
RETIRED[0]; unitu’s is+ 4u. - REG_
SHAPE - Offset of
SHAPE. - REG_
START_ TICK - Offset of
START_TICKlo. - REG_
TICKS - Offset of
TICKSlo. - REG_
VALID - Offset of
VALID.
Functions§
- verify_
cluster_ kernel - The cluster’s logic.
- verify_
engine_ kernel - Wires the cluster to the Ed25519 core.
- words64_
kernel - Eight little-endian 64-bit words of 64 bytes.
Type Aliases§
- Cert
Core - The Ed25519 verify core of the kernel: one verify machine, its own
SHA-512 ring, one scalar ring (
1,1,1,0), sized for one certificate check per 128 DSig verifications.