Page 63 - Hardware Implementation of Finite-Field Arithmetic
P. 63

46     Cha pte r  T w o


               Algorithm 2.9—Barrett reduction with B = 2
               y := x(n-1..k-1); prod := y*c; q := prod(n+2..n-k+1);
               prod := q*m; r := x(k+1..0) - prod(k+1..0);
               while r >= m loop r := r-m; end loop;
               z := r;
                  The datapath corresponding to Algorithm 2.9 is shown in Fig. 2.9.
               The size of the multiplier inputs  mul1 and  mul2 depends on the




                                 y = x (n – 1..k – 1)
                                         m        c


                             1        0  1        0    sel_mul

                                   mul 1       mul 2


                                      n 1  by n 2
                                      multiplier
                                          mul_out (n + 2 .. 0)

                                                         ce_prod
                                   (n + 3)-bit register
                                          prod
                      q = prod (n +2 .. n – k + 1)  prod (k +1 ..0)
                                      x (k + 1..0)  m


                                    1       0   1       0    sel_sub

                                    sub 1             sub 2

                                      (k + 2)-bit subtractor  sign

                                               dif

                                       (k + 2)-bit register  ce_r

                                          dif

                                            z

               FIGURE 2.9   Datapath of a Barrett reducer.
   58   59   60   61   62   63   64   65   66   67   68