Continuous Mode
The following figure shows the iterative functions the Integer Square Root core performs.
The SQRT Unit block performs this calculation:
When (RemainderIn * 4 + DataIn) > (ValueIn * 4),
RemainderOut = (RemainderIn * 4 + DataIn) – (ValueIn * 4)
ValueOut = ValueIn * 4 + 1
Else
RemainderOut = RemainderIn * 4 + DataIn
ValueOut = ValueIn * 4
The Data Register block determines whether the register is needed on the output for pipelining. The maximum number of pipelines cannot exceed the width of output data (i.e., the input value’s width divided by 2). Pipeline registers are evenly distributed in the iterative chain.