Expand description
Three-cluster SHA-profile signer top.
SignerTop is the narrow global layer above three structurally identical
four-context lane clusters. It admits at most one job per cycle, preserves
each cluster’s local 0..=3 tag namespace, and merges only registered
512-bit cluster beats plus compact error metadata. Complete context results
and context RAM ports never cross this boundary.
The data path has two explicit ownership stages. A rotating arbiter first registers one cluster as frame owner. On the following cycle, a canonical cluster beat may enter the one-entry global elastic register. The owner stays locked through beat 34, so frames cannot interleave. When that final beat is captured, its cluster may release local credit because the global register now owns the transfer. External delivery is counted separately when the downstream consumer accepts the registered final beat.
While an output beat is stalled, every data and metadata bit remains stable. If the consumer accepts it, the register may capture the next beat in the same cycle. Capturing a final beat also pre-grants a different already-primed cluster. Consequently that next cluster can refill the global register in the stalled final beat’s eventual downstream-handshake cycle, without an extra inter-frame output bubble after the registered grant stage.
Error completions use an independent one-entry elastic merge. The selected
cluster alone receives error_ready; after capture, the global register
owns the job identity, local context, and cluster identity until the host
accepts exactly one notification.
Canonical keep, last, final padding, beat count, and frame job identity
are checked before a cluster receives data ready. A violation is never
captured, latches a structural fault, and requires shared reset. Shared reset
also flushes all three clusters, grant state, output-valid bits, and error
ownership. Resetless beat/job registers are ignored while their resettable
valid bits are clear.
This module is Rust/RHDL source. Behavioral or generated-hierarchy evidence does not imply synthesis, placement, routing, resource, timing, throughput, side-channel, or FPGA-card evidence.
Structs§
- Global
Beat Validation Input - Inputs for defensive canonical-control and frame-identity validation.
- Global
Error Merge - Independent one-entry elastic error-completion merge.
- Global
Error Merge Control - Resettable control for
GlobalErrorMerge. - Global
Error Merge Input - Input to the independent global error merge.
- Global
Error Merge Output - Registered error output and per-cluster capture handshakes.
- Global
Error Source - One held lane-local error completion offered to the global merge.
- Global
Frame Merge - Registered global frame merge with one elastic output slot.
- Global
Frame Merge Control - Narrow resettable state for
GlobalFrameMerge. - Global
Frame Merge Input - Input to the registered, frame-locked data merge.
- Global
Frame Merge Output - Data-merge controls, registered output, and audit pulses.
- Global
Frame Source - One selectable registered cluster beat.
- Global
Lane Selection - Three-way rotating selection result.
- Signer
Error Completion - Error completion returned to the host with global cluster identity.
- Signer
Output Beat - Global output beat with source-cluster identity outside SHA state.
- Signer
Top - Exactly three identical four-context lane clusters and narrow global merges.
- Signer
TopControl - Narrow resettable global admission/fault state.
- Signer
TopInput - External streaming input to the three-cluster signer top.
- Signer
TopOutput - Global signer status, data output, and independent error output.
Constants§
- SIGNER_
CLUSTER_ COUNT - Number of independently placed lane-local signer clusters.
- SIGNER_
FRAME_ BEATS - Number of beats in one canonical fused output frame.
Functions§
- global_
beat_ is_ canonical_ kernel - Validate one candidate before granting its cluster
ready. - global_
error_ merge_ kernel - State transition for
GlobalErrorMerge. - global_
frame_ merge_ kernel - State transition for
GlobalFrameMerge. - select_
global_ lane_ kernel - Select one of three eligible clusters with rotating fairness.
- signer_
top_ kernel - Native-lane transition retained for the original two-const API.
- signer_
top_ with_ lane_ kernel - State transition and narrow global connectivity for an injected lane.
Type Aliases§
- Modular
Sha256 Signer Top - Production signer skeleton linked with a separately generated full SHA lane.
- Sha256
Signer Top - Production three-cluster, 64-round SHA-profile signer top.