Module Msm_pippenger.Top

Computes the MSM over a stream of input points and scalars.

After processing has finished, will return a stream of num_buckets * num_windows back to the host, with buckets in high -> low order.

start is pulsed high for one clock cycle to initialize the bucket RAMs. When input points are ready to be streamed in, scalar_and_input_point will raise high.

After clear, this module immediately sets all bucket RAMs to the Identity point, and then signals a start to the controller.

This module will then wait for input points until last_scalar is high, and when the result is ready will be outputted on result_point. After the last result point has been read the we will start to re-initialize bucket RAMs to Identity, and wait for new input points to be streamed in.

Currently this top implements a fully pipelined adder, with two pippenger controllers running over half the windows each.

module Make (Config : Config.S) : sig ... end