Continuous Mode

The following figure shows the iterative functions the Integer Square Root core performs.

Figure 1. Integer Square Root Iterative Blocks (Continuous Mode)

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.