Module Field_ops_lib

module Adder_subtractor_pipe : sig ... end

Multistage fully-pipelined ripple-carry-adder (or subtractor).

module Approx_msb_multiplier : sig ... end

Computes the most significant half of the product of two operands with under approximation.

module Arbitrate : sig ... end

Internal module to arbitrate access to an expensive resource.

module Barrett_mult : sig ... end

Modulo multiplication with barrett reduction.

module Barrett_reduction : sig ... end

Calculates a mod p using barret reduction, where p is a compile-time known prime.

module Bram_reduce : sig ... end

Module to reduce numbers modulo a fixed constant with just two subtraction stages.

module Extended_euclidean : sig ... end

Internal module for computing the extended euclidean algorithm.

module Ground_multiplier : sig ... end

A full "naive" multiplication module without tricks.

module Half_width_multiplier : sig ... end

Computes the least significant half of the product of two operands.

module Karatsuba_ofman_mult : sig ... end

Multiplier using the karatsuba-ofman algorithm.

module Modulo_adder_pipe : sig ... end

Computes (a + b mod P) over multiple pipeline stages.

module Modulo_adder_subtractor_pipe : sig ... end

Multistage pipelined ripple-carry-adder (or subtractor), internally used to implement modulo_add and modulo_sub.

module Modulo_double_pipe : sig ... end

Computes (2 * x) mod p

module Modulo_fourfold_pipe : sig ... end

Computes (4 * x) mod p

module Modulo_subtractor_pipe : sig ... end

Computes (a - b mod P) over multiple pipeline stages.

module Modulo_triple_pipe : sig ... end

Computes (3 * x) mod p using an a modulo adder and a modulo double.

module Montgomery_mult : sig ... end

Computes z' = x' * y' mod p, where p is a prime, where x', y' and z' are x, y and z in montgomery space.

module Montgomery_reduction : sig ... end

Computes z' = x' * y' mod p, where p is a prime, where x', y' and z' are x, y and z in montgomery space.

module Multiplier_input : sig ... end
module Naf : sig ... end

Internal module to represent constants in Non Adjacent Form

module Named_register : sig ... end

Special module to create a D FF hierarchically that can be pblocked easily.

module Radix : sig ... end
module Reg_with_enable : sig ... end

Shadow Signal.reg and Signal.pipeline because we want ~enable to be a non-optional argument.

module Squarer : sig ... end

Presently unused module to compute modulo square of two numbers.

module Which_config : sig ... end

A global constant to specify the intended level of pipelining in designs.

module With_shift : sig ... end

Internal module.