Expand description
Fully pipelined arithmetic modulo 2^255 - 19.
Values use five little-endian radix-2^51 limbs at module boundaries. Each
limb product is a reusable six-stage cell containing six independent
26 x 17 multiplies. Zero-extending these operands fits the DSP48E2’s
signed 27 x 18 multiplier. Five cells form a row and five rows form the
complete 150-multiply matrix. This hierarchy keeps RHDL compilation bounded while
exposing the same DSP-level parallelism as the high-throughput datapath.
Structs§
- Field
AddSub In - Input transaction for
FieldAddSubPipe. - Field
AddSub Out - Output transaction from
FieldAddSubPipe. - Field
AddSub Pipe - Four-stage modular adder/subtractor with one-operation-per-cycle issue.
- Field
Element51 - Canonical field element in five little-endian radix-
2^51limbs. - Field
MulIn - Input transaction for
FieldMulPipe. - Field
MulOut - Output transaction from
FieldMulPipe. - Field
MulPipe - Seventeen-stage, initiation-interval-one field multiplier.
Functions§
- field_
add_ kernel - Canonical field addition in a single combinational RHDL kernel.
- field_
addsub_ kernel - State transition for
FieldAddSubPipe. - field_
eq_ kernel - Return true when two canonical field elements are equal.
- field_
from_ words_ kernel - Decode four little-endian words into radix-
2^51limbs. - field_
mul_ kernel - State transition for
FieldMulPipe. - field_
neg_ kernel - Canonical additive inverse.
- field_
sub_ kernel - Canonical field subtraction in a single combinational RHDL kernel.
- field_
to_ words_ kernel - Encode canonical radix-
2^51limbs as four little-endian words.