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

mod  m  Reduction    37


                         q (n – k – 1..0) a (k – 1..0)


                             (n-k)-bit by k bits
                                multiplier
                                    product (n – 1..0)        r (k – 1..0)
                                                                      –m
                                               r (t – 1..0)
               product (n – 1..k)  product (k – 1..0)
                      (n – k)-bit register                 sign   (k + 1)-
                     initially: x n–1 , ... , x k  t-bit adder   bit adder
                    after reload: r t–1 , ... , r k
                                                sum (t – 1..0)
                                                              0     1
                                           t-bit register
                       q (n – k – 1..0)  initially: x k–1 , ... , x 0
                                       after reload: r k–1 , ... , r 0
                                                              z (k – 1..0)
                                            r (t – 1..0)
               FIGURE 2.5  Datapath of a mod 2  − a reducer.
                                        k

                                       q (3)a (0)  q (2)a (0)  q (1)a (0)  q (0)a (0)

                                                                    product 0
                              q (3)a (1)  q (2)a (1)  q (1)a (1)  q (0)a (1)

                                                           product
                                                               1
                     q (3)a (2)  q (2)a (2)  q (1)a (2)  q (0)a (2)

                                                   product
                                                       2
                 HA     FA       FA       HA
               product 6  product 5  product 4  product 3
                                     r 4   r 3  r 2      r 1     r 0
                                     HA   HA     FA      FA       HA
                                    sum 4  sum 3  sum 2  sum 1    sum 0

               FIGURE 2.6 Carry-save multiplier and carry-ripple adder.



                              T ≈ snT   ≤ (n − k + 1)nT             (2.32)
                                    MULT           MULT
                  Obviously faster multipliers and/or adders could be used.  A
               VHDL file tpkma_reducer.vhd is available at www.arithmetic-
               circuits.org. The corresponding entity declaration is
   49   50   51   52   53   54   55   56   57   58   59