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

mod  m  Operations    87


                 end if;
               end process register_ty;
               shift_register: process(clk)
               begin
                 if clk’event and clk = ‘1’ then
                   if load = ‘1’ then int_x <= x;
                   elsif update = ‘1’ then int_x <=
                     ‘0’&int_x(K-1 downto 1);
                   end if;
                 end if;
               end process shift_register;
               xi <= int_x(0);
                  The complete model additionally includes a k-state counter and a
               control unit.



          3.6 FPGA Implementations
               Several multipliers have been implemented within Spartan3 (speed -5)
               programmable devices. As before, the times (period, Total Time) are
               expressed in  ns, and the parameters FFs and LUTs represent the
               numbers of flip-flops and look-up tables, respectively. Every slice
               includes two flip-flops and two look-up tables. All the source files are
               available at www.arithmetic-circuits.org.


               3.6.1 mod m Adders/Subtractors
               The cost and delay of several mod m adders/subtractors are shown
               in Table 3.2.

                    K      m             LUTs     Slices   Total time
                    8      239           25       13       9
                                 64
                    192    2 192  – 2 − 1  577    384      45
                    256    2 256  – 2 224  770    514      52
                                  96
                           – 2 192  – 2 − 1
                    521    2 521  – 1    1,567    1,044    105

                  TABLE 3.2  Cost and Delay of mod m Adders/Subtractors

               3.6.2 mod m Multipliers
               Two values of m have been considered. For m = 239 (k = 8), the best
               option is the combinational circuit described in Sec. 3.4.1 (Fig. 3.4).
               The implementation results are the following:

                               LUTs     Slices   Total time
                               31       18       15
   99   100   101   102   103   104   105   106   107   108   109