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.