• Aucun résultat trouvé

Some Modular Adders and Multipliers for Field Programmable Gate Arrays

N/A
N/A
Protected

Academic year: 2021

Partager "Some Modular Adders and Multipliers for Field Programmable Gate Arrays"

Copied!
13
0
0

Texte intégral

(1)Some Modular Adders and Multipliers for Field Programmable Gate Arrays Jean-Luc Beuchat. To cite this version: Jean-Luc Beuchat. Some Modular Adders and Multipliers for Field Programmable Gate Arrays. [Research Report] LIP RR-2002-37, Laboratoire de l’informatique du parallélisme. 2002, 2+10p. �hal02101822�. HAL Id: hal-02101822 https://hal-lara.archives-ouvertes.fr/hal-02101822 Submitted on 17 Apr 2019. HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés..

(2) Laboratoire de l’Informatique du Parallélisme École Normale Supérieure de Lyon Unité Mixte de Recherche CNRS-INRIA-ENS LYON no 5668.    

(3)           .  .   .   

(4)   Ó . École Normale Supérieure de Lyon 46 Allée d’Italie, 69364 Lyon Cedex 07, France Téléphone : +33(0)4.72.72.80.37 Télécopieur : +33(0)4.72.72.80.80 Adresse électronique :   

(5).

(6)    

(7)          .    . 

(8)  . . 

(9)      

(10)          

(11) .                        ! 

(12) "      #     

(13)   #     

(14)  $       %   # %      ! 

(15)  &    

(16)     

(17)    

(18)       m         

(19)      (2n ± 1)  ! 

(20)   '    "  (2n + 1)  

(21)             

(22)  

(23)      ( ! 

(24)       m    

(25)      .   # %   (2n + 1)      ) * 

(26) ! +         

(27)             

(28)   (Z∗2 +1 , ·)! n.  

(29)  ,  

(30) %  m %  m   % (  ,     - . *-   /   -    .  * 

(31)    .        *       m   (  !   -   -    0           $  .   -%   -     ! 1 /   *  -  -

(32)     *   m  -   /    (2n ± 1)! 1   -         (2n + 1)   .   -         ( ! 1       

(33)       m 0-          -!  -  -      (2n + 1)  -  * 

(34)   )  - 00 &  & *2           (Z∗2 +1 , ·)! n.   

(35) -0    %   m%     m% (.

(36) 3.    

(37)           .   )  

(38)          &. 

(39)      

(40)    

(41) ! 4  

(42)         

(43)           

(44) 

(45)         5      67% 8% 9:! 

(46)   

(47)                    "   . 

(48)  ;  <   ! ="%      (    5( :      %  # %  .     ! 

(49)      #     

(50)   "  #    .  

(51)  ! .            >?@@ 

(52)  

(53) " 

(54)     ". &                ,&  1 A# 5,1A: 69! 

(55)      

(56)          

(57)             54 :    54 :  >?B  >?@@  ! >?B  >?@@ ,1A.      

(58)      ! B 

(59) ,1A    " 5>?B:   5>?@@:       " 7  #   51C:% "    %             ! 

(60) % >?B (       #  D   ! B 

(61) #   

(62)     7E8 ) "

(63)     "

(64)    & 53% % 7% F  38  :! >?@@     3F × 3F  .   "          $ 3F   3  ! 3FG     ) # 5  # 4 )   :       H .         ! 

(65)        (.

(66)  

(67)  . 

(68)  # !. 

(69)     

(70)   m   "  x  y   {0, . . . , m − 1}  &    x + y < m, x+y (x + y)  m = 53: x + y − m  x + y ≥ m,      

(71) "      %   %   ! 

(72)     

(73) " ?  % 

(74)       ! 

(75)  

(76) .   

(77) .  "           

(78) "     ! @ 

(79)  % k = log2 m + 1  

(80)     "

(81) 

(82)  0   

(83)        m 

(84)    ! 

(85)      

(86)  

(87)       m  69$ •  

(88)   

(89) .          

(90)    (x + y)  m   

(91)     x  y 5 3 :! @    " #   

(92)  ?   "

(93)  

(94)  0  D 5k · 22k  :! •  

(95)    3    m         "  ) "

(96) 

(97)  

(98)  ! 

(99)  

(100)   

(101)   0  k · 22k   k · 2k+1  ! •

(102)

(103)  

(104)   

(105)  "     B0  53:     

(106)  3     

(107)     3!  69       .  

(108)  

(109) ! 

(110)  

(111)  0  "         ?   

(112)  "   ( !.   

(113)   

(114)

(115)  !".        

(116) 

(117)    

(118) 

(119) 

(120)  m = 13  

(121)

(122)  j = 4 23 < 13 < 24  

(123)  2 − m = 3 • 

(124)  x = 3  y = 4    s0 = 7  s1 = 10    

(125)  

(126)

(127)     

(128) 

(129)  (x + y)  m = s0  24 = 7 j. •. 

(130)  x = 12  y = 1 

(131)  s0 = 13  s1 = 16   

(132)  

(133)   

(134)     

(135)   

(136)

(137)   (x + y)  m = s1  24 = 0. •. 

(138) . . x = 10  y = 7 s0 = 17 (x + y)  m = s1  24 = 4. .  (2n ± 1)  . s1 = (s0  24 ) + 3 = 4.    

(139)  

(140) . s0.   

(141)

(142) . 4    

(143)             .   &    m!    %  52n − 1: %  *   %  &  639$  (x + y + 1)  2n  x + y + 1 ≥ 2n , n (x + y)  (2 − 1) = 5: x+y  x + y + 1 < 2n..

(144) . 

(145)  . # $  ) m !. ,

(146)   

(147) 

(148)  2j−1 < m < 2j.  j  s0 ← x + y  s1 ← (s0   (x + y)   (x + y) .  2j ) + 2j − m % 

(149)      s0  sj 1   $!  m ← s1  2.   m ← s0  2j !

(150) %.  3   

(151)  

(152)   

(153)   

(154) "    ! ;  

(155)   x + y + 1 ≥ 2n % "  "       

(156)     "

(157)  ?!  

(158)  D

(159)       *  %   I 0 . . . 0J  I 1 . . . 1J 5!! 0    2n − 1 5 2n − 1):! @ 

(160)     

(161)   

(162)     D% B0  5:    " " $  (x + y + 1)  2n (x + y)  (2n − 1) = x+y.  x + y ≥ 2n ,  x + y < 2n .. 5:.  

(163)  

(164)    ÓÙØ  

(165)   x + y   "

(166) 

(167)  

(168)       ! @ .  .      x + y  x + y + 1   %   

(169)   

(170)       ÓÙØ 5 3:!    

(171) %      3%    ÓÙØ  

(172)  x + y! Single representation of zero. Optional pipeline stage x x. y. x. y. x. y. y. x. k. 2 −m ROM (x+y) mod m. 0. 1. 1. (d) n. Modulo (2 −1) operators Modulo (2 +1) operators (numbers in normal representation). x’ y’. y n+1 bits. 1 2. n. n bits. 0. 01 or 11. (h). y. x. y n+1 bits. n+1 bits. n+1 bits. (x’+y’+1) mod m. x. 10. n+1 bits. Most significant bit. Most significant bit. x. (x’+y’+1) mod m (g). (f). n. Modulo (2 +1) operators (diminished−one number system). 0. (x+y) mod m. (e). (b) Hybrid operator (c) Adder based operator. 1. 1. (x+y) mod m. (x+y) mod m. n. y. 1. (x+y) mod m. x’ y’. x. 0. (x+y) mod m. (a) Table based operator. y. 1. ROM 0. 1. Double representation of zero. n bits n bits. 1. (x+y+1) mod m (i). n+1 bits. n. 2. 00 n+1 bits. n+1 bits 0 n+1 bits. n+1 bits. (x+y+1) mod m. (x+y+1) mod m (j). (k).  3$ 4  

(173)    m  ! ;   (2n + 1)     #! 4

(174)     

(175) "    "           

(176)   (2n + 1)    

(177)  @;B # 

(178)  6F9! 

(179)  

(180)         

(181)  

(182)    % "

(183)  x      x = x − 1  

(184)   0 .           639$ (x + y  + 1)  (2n + 1) =. . x + y  (x + y  + 1)  2n. = (x + y  + ¯ÓÙØ )  2n ..  x + y ≥ 2n,  x + y < 2n.. 57:.

(185) .    

(186)           .  3   3

(187)   "

(188) "      

(189)   (2n + 1)    

(190) . 

(191) ! 

(192)     

(193)   

(194)   

(195)    

(196)   (2n − 1) !.  & 

(197)  (28 + 1) 

(198)

(199)  ! ! $

(200) !$

(201)  ! !  " 8         

(202) 

(203) 

(204) 

(205) (2. + 1).  

(206)  !

(207)  "

(208)  

(209)  # $. •. 

(210)  x = 28  y = 28      x = 28 − 1 y  = 28 − 1  (x + y  + 1)  (28 + 1) = 28 − 2          

(211)  

(212) 

(213) (x + y)  (28 + 1) = 28 − 1. •. 

(214)  x = 13  y = 4 

(215)  (x +y  +1)  (28 +1) = (12+3+¯  )  28 = 16        

(216)  

(217) 

(218) 17. 1 .  

(219)   (2n + 1)   "        ! 

(220)  

(221)     

(222)    

(223)         ! 

(224) . % 

(225)       

(226)     

(227)         "

(228)      ! 

(229)   (2n + 1)   " & $  n   x = 2n  y = 2n, 2 n (x + y + 1)  (2 + 1) = x + y + 1  x + y < 2n,   x + y − 2n  2n ≤ x + y < 2n+1  2n  x = 2n  y = 2n , = n (x + y)  2 + ¯ÓÙØ  0 ≤ x + y < 2n+1 .. 5K:. "      B0  5K:       3   3' 6K9! 

(230)     " #   

(231)   ?

(232)  

(233)      "

(234)  

(235)     0   2n !.  

(236)  (28 + 1) 

(237)

(238)  !" 8.  

(239)    

(240) 

(241) (2 •. + 1). 

(242)  

(243) 

(244) 

(245)   

(246) 

(247)     %& 

(248) '. 

(249) . x = 28  y = 28 

(250)  

(251)   ()*    

(252)

(253)   (2 + 28 )  (28 + 1) = 28 − 1         

(254)  8.  . # . 28 . . •. 

(255)  x = 13  y = 4    (x + y)  28 = 17  ¯  = 1   #  

(256)   

(257) 

(258)    +

(259)   

(260)   18 = (13 + 4 + 1)  (28 + 1). •. 

(261)  x = 1  y = 28 − 2 

(262)  (x + y)  28 = 28 − 1  ¯  = 1    #    

(263) 

(264)        (x + y + 1)  (28 + 1) = 28. +  

(265)     

(266)   .  

(267)   ?! 1  & 

(268)  (n + 2)  s = sn+1 sn . . . s0 = x + y ! 

(269)   (2n + 1)     ? .  $ (x + y + 1)  (2n + 1) = (x + y)  2n + sn+1 2n + sn+1 ∨ sn . 58:   .  

(270)  

(271)     ? !  3#   

(272)   

(273) "     "

(274) 

(275) 0  "          !  >?B  >?@@  % 

(276)     .   "

(277)  

(278)    

(279)  5 :  

(280)   (2n + 1)  &   ,1A !  

(281)  

(282)         "

(283)   

(284)     % "

(285)    

(286)     x, y = 0! 

(287)            

(288)      " &  ξ = (x − 1)  (2n + 1)$ 

(289)   (0 − 1)    2n 5 (2n + 1):! Carry chain LUT. 0. 1. MUXCY. LUT. s1. 1. MUXCY. 0. 1. MUXCY. s1 LUT. s0. s sn+1n. 0. 0. 1. MUXCY. XORG. sn+1 sn s0. LUT. LUT. Slice of a Virtex−II FPGA.  $ "     

(290)  "  (2n + 1)   >?B  >?@@  5 :!.

(291) 7. 

(292)  . .

(293)      . +

(294)  " ,   "

(295) 

(296)   

(297)  

(298)  D  >=;1    

(299)       3! 

(300)    "  

(301)     

(302)    %   

(303)   m%          .  ! +

(304)  

(305)     ?  "

(306) 

(307)  ½       

(308)    

(309)      

(310)      m!  &  ?       

(311)    (2n −1)  5  3:! 

(312)               &    

(313)        &  

(314)  3! 

(315)     (2n − 1)     

(316)   5 :   0  ?   

(317)   ! 

(318)     

(319)       ! 

(320)  ?     

(321)      5!! 

(322)        D:       

(323) "       

(324)    !   3$ ,      (2n − 1)   <,>KB8 !.

(325) .

(326) .

(327) .

(328) . n=4. n=8. n = 12. n = 16. n = 20. n = 24. n = 28. n = 32.    

(329)      

(330)     

(331)      

(332)  .   

(333)      

(334)      

(335)      

(336)  .    

(337)      

(338)      

(339)      

(340)  .    

(341)      

(342)      

(343)      

(344)  .    

(345)      

(346)      

(347)      

(348)  .    

(349)     

(350)    

(351)      

(352)  .    

(353)      

(354)      

(355)      

(356)  .    

(357)      

(358)      

(359)     

(360)  .      

(361)    &    (2n + 1)   >?B ! ;  

(362)  0  D% 

(363) 

(364)     5 3:   

(365)            5n ≤ 8:!  

(366)  

(367)      

(368)  "#   n ≤ 5!  n = 4% 

(369)     0     " 7E8 ) #.    %      0   7!  !  n = 7% 5219     

(370)     

(371)  0   77!K  ! 

(372)  ?   

(373) " 

(374)   "  (2n + 1)  

(375)     

(376)      !   $ ,      (2n + 1)   <,>KB8 !.

(377) .

(378) .

(379) .

(380) . n=4. n=8. n = 12. n = 16. n = 20. n = 24. n = 28. n = 32.    

(381)      

(382)      

(383)      

(384)  .    

(385)      

(386)     

(387)    

(388)  .      

(389)      

(390)     

(391)  .      

(392)      

(393)      

(394)  .      

(395)      

(396)      

(397)  .      

(398)      

(399)      

(400)  .      

(401)      

(402)      

(403)  .      

(404)      

(405)      

(406)  .  

(407)  

(408)  

(409)       m    

(410)        w = xy% "

(411)  0 ≤ x, y < m%   

(412)    m! 4   

(413)   %   

(414) 

(415)        

(416)  !  689   

(417)   

(418) . '!  

(419)    

(420) "    >14@    L . 0% "   

(421)            

(422)   #      ( !     %  m               5  :! 

(423)   

(424) 

(425) "        

(426)  ?   "

(427)  

(428)  0 %  

(429)  

(430)       ! .          . 

(431)   m    

(432)      (        # ! 

(433)          

(434)  2k "  xy  

(435)         ½          ! " # # ! $% & #' (!)  "#! # * &+,- ./ # #'0

(436) . % ! #%%  ! " #%  #%   1)' 2 )2# !3! !    4%56%% #  # 7 )8 # 7 )44 3 

(437) 9  # #!    !  ! #  %

(438) 9  !%#! !' ! 7+1: # "! '  , %  $' ' ;# 

(439) 

(440)  !.  # 7 )8 ! 7 )44 3  #'  <    !  $  

(441)

(442) 

(443) =#  > #!  " 3 #   '   ## !   #%   # #  # #3   %

(444).

(445) K.    

(446)           .     m ! (  2j % 

(447)  

(448)     " $ (xy)  m = ((xy)  2j + 2j · (xy)  2j )  m  ((xy)  2j − (m − 2j ) · (xy)  2j )  m  m > 2j , = ((xy)  2j + (2j − m) · (xy)  2j )  m  m < 2j  ((xy)  2j + (−(m − 2j ) · (xy)  2j )  m)  m  m > 2j , =  m < 2j . ((xy)  2j + ((2j − m) · (xy)  2j )  m)  m. 5:. 

(449)    "

(450)  m = 2j .  

(451) "   "   .   

(452)  ! 

(453) . 

(454)  0     %     .     (−(m − 2j ) · (xy)  2j )  m  ((2j − m) · (xy)  2j )  m%   m ! 1  & p0 = (xy)  2j  p1 = (−(m − 2j ) · (xy)  2j )  m 5 p1 = ((2j − m) · (xy)  2j )  m:! +

(455)  "   

(456) 

(457)  " "   $ •  m > 2j % 0 ≤ p0 , p1 ≤ m − 1  "  

(458)  0 ≤ p0 + p1 ≤ 2m − 2! 

(459)  &     

(460)    "

(461) 

(462)   m       5 :! •  m < 2j % "

(463)  0 ≤ p0 < 2j % 0 ≤ p1 < m%  0 ≤ p0 + p1 ≤ 2j + m − 2! 

(464)  

(465)   

(466)   m      2j + m − 2! @ 

(467)    .    

(468)  2m% 

(469)      & $  p0 + p1  p0 + p1 < m, (xy)  m = 5F: p0 + p1 − m  m ≤ p0 + p1 < 2m.  2j + m − 2 < 2m% "  

(470)  2j ≤ m + 1! 4 m < 2j % B0  5F:

(471)  2 2j = m + 1!  

(472)     2j % 

(473)   m       $    p0 + p1 < m, p0 + p1 (xy)  m = p0 + p1 − m  m ≤ p0 + p1 < 2m,   p0 + p1 − 2m  p0 + p1 ≥ 2m.      

(474)   

(475) "    !.  ' 

(476)  (2n − 1)  !" n      

(477) 

(478) 

(479) (2 

(480) . −1).  

(481)  

(482)   

(483)    

(484)

(485)  j = n,  m = 2n −1 < 2n. (xy)  (2n − 1) = ((xy)  2n + (xy)  2n )  (2n − 1).. Modulo m adder. y. 2 k− m. p. 1. ROM.    -

(486)  

(487)    

(488)   

(489) 

(490)  

(491) 

(492). x. ROM. y. p. (x*y) mod m. 0. Modulo m adder p. 1 0. (x*y) mod m. x. m = 2j + 1. (a) Table based (b) Multiplication with subsequent modulo correction j operator (m>2 ). −2m. 1. x y. ROM. −m 0. p. 0. (x*y) mod m.              

(493)  .. (c) Multiplication with subsequent modulo correction j (m<2 ).  $ 

(494)  

(495)    m   ! .  (2n + 1)    . ) (2n + 1)          B0  5:! @ 

(496)    (   .     % 

(497)      

(498) . 

(499)  

(500) " ?  ! +       

(501)     

(502)  

(503)     )  6E9!.  

(504)  ψ = ψn . . . ψ0  

(505)  

(506)       y% !! ψ = (y − 1)  (2n + 1)! +

(507)  n  % )

(508)  

(509) 

(510)  n −1 2  n 2i xy  (2 + 1) = (2 (−2ψ2i + ψ2i+1 + ψ2i−1 )x − 1) +  (2n + 1),.  2 i=0 n. Èi. 5E:.

(511) 8. 

(512)  . "

(513)  ψ−1 = (ψ¯n ∧ ψ¯n−1 )  (2n + 1)! B 

(514)    i         

(515)  

(516)       x 5  ? A:! +

(517)  n  % 

(518)   xy  (2n + 1)    xy  (2 + 1) = n. . È n−1. . (2n−1 (ψn−1 + ψn−2 )x − 1)+ 2. n−1 2 −1.  i=0. (2 (−2ψ2i + ψ2i+1 + ψ2i−1 )x − 1) + . 2i. Èi. n−1 +1 2. 

(519).  (2n + 1),. 53:. "

(520)  ψ−1 = ψ¯n  (2n + 1)! )   

(521)    

(522)      

(523)     "

(524)    % 

(525)    (2n + 1)  "

(526) "  (2n + 1)        (2n + 1)       6E9! 

(527)  

(528)     #     

(529)           (  "  

(530)       B0  5E:  53:     "  (2n + 1)     4 ! A

(531) 0       n/2    i  

(532)     n/2 !  

(533)   (2n + 1)   

(534)     "      ! , 0%  "   

(535)   n/2 i=0 i "

(536) ( n/2 − 1) n/2 n. 

(537)  % "   ( i=0 i + n/2 − 1)  (2 + 1)% "

(538) 

(539)  

(540)  

(541)       

(542)  !  7   

(543)   

(544) "     "

(545) 

(546)  #   

(547)  

(548)       x  y %   (xy −1)  (2n +1)! 4 (x+(2n −1)+1)  (2n +1) = (x−1)  (2n +1)%        

(549)        

(550)  "

(551)   (2n + 1) ! 

(552)      . i  "

(553)       5 7 :$       

(554)  (a + 1)  (2n + 1) = n−1 ¯n i=0 ai 2 + a n "

(555)  a ∈ {0, . . . , 2 }! n. (y−1)mod(2 +1). (x−1)mod 2 a. n+1 bits. an. b n+1 bits. an−1... a0. (a+b+1) mod (2n +1). a Partial Product Generation. n. (y−1)mod 2. Partial Product Generation. 1 n bits. n+1 bits n. (a+1)mod(2 +1) Conversion from diminished− one representation to normal representation. n bits. 1 n. (a+b+2) mod (2 +1). (Σ Pi + n/2 − 1) mod (2 n+1). n. Optional pipeline stage. n. (x−1)mod(2 +1). (Σ Pi + n/2 ) mod (2 n+1). (b) Multiplication in Z *2n+1. (a) Diminished−one number system.  7$ 

(556)    (2n + 1)      ) * 

(557) ! 1    

(558)      Z∗2 +1 = {a ∈ Z2 +1 | gcd(a, 2n + 1) = 1} 5!! 

(559)       Z2 +1 :! 4 (Z∗2 +1 , ·)   % " #" 

(560)  (xy)  (2n + 1) = 0    

(561)  .      

(562)   2n  0! 

(563)  #     " "    

(564)       ) * 

(565) $ • ;  

(566)      2n % 

(567)  

(568)        x ∈ Z∗2 +1  (x − 1)  2n ! +       (0 − 1)  2n = 2n − 1% "

(569) 

(570)  

(571)  

(572)       2n ! @     

(573) # 

(574)  (x − 1)  (2n + 1) = (x − 1)  2n "

(575)  1 ≤ x ≤ 2n − 1! • 

(576)     

(577)           0       5 7:! @   .    

(578)      

(579)        (a + b + 2)  (2n + 1)   n. n. n. n. n. (a + b + 2)  (2 + 1) = n. n−1 .

(580). si 2 + sn+1 ∨ sn i.  2n ,. 533:. i=0. "

(581)  s = sn+1 sn . . . s0 = a + b + 1!   .  

(582)  

(583)     ? ,! )    Z∗2 +1      

(584)        

(585)  @;B # 

(586)  6F9! 4   (2n + 1)  

(587)   0      

(588)     5      63% 7% 39:! 

(589)      ) * 

(590) 

(591)      =MMM    6K9! 

(592)  

(593)              ! ="%  (2n + 1)       

(594)     3'%       . 

(595)   ! 

(596)       

(597)     " 

(598)   ! 16.

(599) .    

(600)           . 

(601)  "     B0  5E:  B0  53:       

(602)   s = n/2 i=0 i + n/2 − 1 "

(603)       % 

(604)     (2n + 1) ! + .  

(605)  n    & s0 = s  2n  s1 = s  2n! 4 0 ≤ s0 ≤ 2n − 1  0 ≤ s1 ≤ n/2% "  $ s  (2n + 1) = (s0 + 2n s1 )  (2n + 1) = (s0 − s1 )  (2n + 1) = (s0 + 2n − s1 + 1)  (2n + 1) = (s0 + s¯1 + 2)  (2n + 1)  s0 + s¯1 + 2  s0 + s¯1 + 1 < 2n , = s0 + s¯1 + 1 − 2n  s0 + s¯1 + 1 ≥ 2n , "

(606) 

(607)  

(608)  

(609)       (xy)  (2n + 1)!  K   

(610)   

(611) "    ! 4       .  "

(612)  x, y ∈ Z∗2 +1 ! 

(613)            

(614)  

(615)       ?  

(616)    

(617)         (2n + 1)  5 7:!  &  

(618)  0 ≤ s  (2n + 1) ≤ 2n − 1! ;  

(619)      D% (xy)  (2n + 1) = (s  (2n + 1) + 1)  2n  "  

(620)      

(621)       

(622)  &     5 K:! n. 1. 1. 1. 1. 1. (y−1)mod 2. 1. 1. 1. 1. 1. s0. 1. Unsigned multiplier. 1. x != 0 y == 0. x == 0 y != 0. x == 0 y == 0. 1 s1. 1 1. 1 s1. n. Partial Product Generation. Modulo (2n +1) correction. Carry−propagate adders. Partial Product Generation. n. y & "0...0". n. (y−1)mod(2 +1) (x−1)mod 2. x & "0...0". n. (x−1)mod(2 +1). s0. Σ Pi + n/2 − 1. x. y. x != 0 y != 0. n most sig− nificant bits n least sig− nificant bits. 1. carry−out n bits. 1. n (xy) mod (2 +1). 1. (Σ Pi + n/2 − 1) mod (2 n+1). (Σ Pi + n/2) mod (2 n+1). (a) Diminished−one number system. (b) Multiplication in Z *2n+1. (c) Modified Low−High algorithm.  K$ " 

(623)  

(624)    (2n + 1)      ) * 

(625)   

(626)  

(627)     

(628)  & 1"=

(629) 

(630)     639! .

(631)      . 

(632) .    

(633)    

(634)       m  .   

(635)  ! 

(636)  ?  .   

(637)       !      

(638)    

(639)      m         "

(640)  0    >?@@  ! +   

(641)     0 .  3FG  #% "

(642) 

(643) & 

(644)   ?    m!  

(645)  k = log2 m + 1  

(646)     0   m! +

(647)  m ≤ 2k % B0  5: . (xy)  m = ((xy)  2k + ((2k − m) · (xy)  2k )  m. 

(648)     .   

(649)  k " (xy)  2k     k ! , 0% 

(650)  # 4 )  &  

(651)  3G×3F  5! 3 .   3F    :  

(652)   m     "   3!   $ )   "

(653)  0    <,>78 ! B 

(654)    0       3FG  #! ! ? @ 1!' ?@. m=5. m = 13. m = 29. m = 61. m = 125. m = 253. m = 509. m = 1021.  

(655) .  

(656) .  

(657) .  

(658) .  

(659) .  

(660) .  

(661) .  

(662) .

(663) F. 

(664)  .   7  D 

(665)    

(666)        (2n + 1)   "

(667)  x, y ∈ Z∗2 +1 ! @ 

(668) . ? % "   

(669)  " 

(670)   .   

(671)   5 7  K:         

(672)  & 1"=

(673) 

(674)      639! 

(675)    n × n    %  ? 

(676)  

(677)      "

(678)  x = 0  y = 0%    5 K:!  ?     

(679) $ • 

(680)  

(681)              (2n + 1)     

(682)       ) * 

(683)   ( ! 

(684)        $  

(685)    (2n + 1)  . 

(686)  "    (n + 1)      ! , 0% 

(687)  "  (2n + 1)  .       0 2 · n/2 5 7:  n/2 + 2 5 K:      .   

(688)     ! • 

(689)  & 1"=

(690) 

(691)           "

(692)  

(693)   (2n + 1)       ! 

(694)  n × n       n    Pi = 2ixi y% i ∈ {0, . . . , n − 1} "

(695)         ! 

(696)  

(697)   #     

(698)    ;   .   "

(699)  

(700) 1C      

(701)     ! 

(702) 

(703) ) * 

(704)   

(705)       % 

(706)     

(707) 

(708) "    51C   ? :! • ="% "

(709)           

(710)   % 

(711)        7     n ≤ 28! 

(712)     ?    

(713)    

(714)    

(715)       

(716)        

(717)  & 1"=

(718) 

(719)   ?  ! n.   7$ ) (2n + 1)     Z∗2. n +1. %  *"  #%   0. %  *"    0. %  *"  #%   0. %  *"    0. %  *"  #%   0. %  *"    0.  <,>B8 !. n=4. n=8. n = 12. n = 16. n = 20. n = 24. n = 28. n = 32.   

(720)      

(721)     

(722)      

(723)      

(724)     

(725) .    

(726)      

(727)      

(728)      

(729)      

(730)      

(731)  .    

(732)      

(733)      

(734)     

(735)     

(736)     

(737)  .    

(738)      

(739)       

(740)      

(741)      

(742)      

(743)  .    

(744)      

(745)      

(746)      

(747)      

(748)      

(749)  .    

(750)      

(751)      

(752)     

(753)      

(754)      

(755) .    

(756)       

(757)     

(758)      

(759)     

(760)      

(761)  .    

(762)      

(763)     

(764)      

(765)      

(766)      

(767)  .  

(768)   +

(769)                   # 5      %   %      :!       

(770)     "  (2n + 1) %  m      

(771)       #     >?@@  %      ) * 

(772)     D  ( !  ?    

(773)  

(774)  

(775)             . 

(776) 

(777)   m% 

(778)    (  %  

(779)          ! ="%  >=;1   "  0# ?  "       "

(780) 

(781) 

(782)           !  

(783)  

(784)  

(785)  " #  

(786) # 

(787)  I) /  N    

(788) 

(789) J 5  O 37F ,; 3 I ,@ ' 

(790) 

(791)  J:% 

(792)  4".    4  %  

(793)  <? C     

(794)   !      

(795)  2n + 1    

(796)   1     

(797)  B0  58:    (x + y + 1)  (2n + 1) "

(798)  0 ≤ x, y ≤ 2n !    %    

(799)  0 ≤ x + y ≤ 2n+1   x+y+1  x + y < 2n , n (x + y + 1)  (2 + 1) = x + y − 2n  x + y ≥ 2n . +

(800)    

(801) 

(802)  

(803)  "      

(804) 

(805)  .   

(806) $.

(807) E.    

(808)            • • •.  x + y = 2n+1 5!! x = y = 2n :% "

(809)  (x + y)  2n = 0% sn = 0% (x + y + 1)  (2n + 1) = 2n = x + y − 2n % "

(810) 

(811)  

(812)    !.  sn+1 = 1!  

(813)  .  2n ≤ x+y < 2n+1 % " #" 

(814)  sn+1 = 0  sn = 1! , 0% (x+y+1)  (2n +1) = (x+y)  2n = x + y − 2n !  %  0 ≤ x+y < 2n % sn+1 = sn = 0  (x+y)  2n = x+y! +   (x+y +1)  (2n +1) = x+y +1!. 

(815)   

(816)  !    " 

(817)    

(818)  −2ψ2i + ψ2i+1 + ψ2i−1 ∈ {−2, −1, 0, 1, 2}! B 

(819)   

(820) 

(821)  

(822)   (±2j x− 1)  (2n + 1)! 1 ξ = (x − 1)  (2n + 1)  

(823)  

(824)       x! +  

(825) 

(826) "        ξ! 1    

(827)    "

(828)  x = 0 5!! ξ = 2n :! 4 2n+q    −2q 5 (2n + 1):% "

Références

Documents relatifs

To test whether the vesicular pool of Atat1 promotes the acetyl- ation of -tubulin in MTs, we isolated subcellular fractions from newborn mouse cortices and then assessed

Néanmoins, la dualité des acides (Lewis et Bronsted) est un système dispendieux, dont le recyclage est une opération complexe et par conséquent difficilement applicable à

Cette mutation familiale du gène MME est une substitution d’une base guanine par une base adenine sur le chromosome 3q25.2, ce qui induit un remplacement d’un acide aminé cystéine

En ouvrant cette page avec Netscape composer, vous verrez que le cadre prévu pour accueillir le panoramique a une taille déterminée, choisie par les concepteurs des hyperpaysages

Chaque séance durera deux heures, mais dans la seconde, seule la première heure sera consacrée à l'expérimentation décrite ici ; durant la seconde, les élèves travailleront sur

A time-varying respiratory elastance model is developed with a negative elastic component (E demand ), to describe the driving pressure generated during a patient initiated

The aim of this study was to assess, in three experimental fields representative of the various topoclimatological zones of Luxembourg, the impact of timing of fungicide

Attention to a relation ontology [...] refocuses security discourses to better reflect and appreciate three forms of interconnection that are not sufficiently attended to