CASCADED MULTIPLIER USING A SET OF ELEMENTARY OPERATORS

Abstract: 1. A multiplier of the cascade type utilizing a set of elementary operators, each elementary operator having a first Y register (101) to receive and supply a first signal of at least two bits, a second RI register (102) to receive an intermediate signal of n bits, a third X register (103) to receive a multiplicand signal of n bits and an overlap bit and to supply this multiplicand signal, D and Q decoding circuits (112 to 117) to receive a multiplying signal of three bits and to supply the high value bit of this signal, an adder (110) having a carry input and a carry output, and an S circuit (111) to supply a multiplication signal of nine bits obtained in accordance with Booth's algorithm between the multiplicand, the intermediate signal and the multiplier, characterized in that each operator comprises computing means (108) making it possible to perform partial multiplications on the groups of bits in accordance with Booth's algorithm connected with a multiplexer (109) making it possible to select the partial result necessary for effecting the full computation in accordance with the said algorithm and an adder (11) having an input and a carry output and in that in order to perform at least one multiplication using a multiplicand of 2 (n-1) bits and a multiplier of four bits, it comprises a first stage comprising a first operator (0) an a second operator (1) and a second stage comprising a third operator (2) and a fourth operator (3), in that the overlap bit and the low value bit of the multiplier signal of the first operator are at zero, that the two other bits of this multiplier signal are the two bits of low value of the multiplier, that the bit with the high value of the latter is applied to the carry input of the first operator, that the multiplier signal from the second operator is the same as that of the first one, that the X register of the first operator receives the n bits of low value of the multiplicand, that the overlap bit of the second operator copies the bit of high value received by this X register, that the X register of the second operator receives the other bits of the multiplicand of which the one with the high value is copied twice, that the intermediate signal of the first stage is equal to zero, that the register of the first operator receives the two bits of high value from the multiplier, that the carry output of the first operator is connected with the carry input of the second operator, that the D circuits of the third and the fourth operators receive the two bits of high value from the Y register of the first operator from the multiplier and from a circuit Q of the first stage of low value preceding these two bits, that the carry input of the third operator receives the bit of high value from the multiplier, that the multiplicand is directly transmitted between the outputs of the X circuits of the first and the second operators and the inputs of the X circuits of third and fourth operators, that the overlap bit of the third operator is maintained at zero and that of the fourth operator copies the bit of high value of the X register of the third operator, that the two bits of low value of the multiplication signal of the first operator are transmitted to two inputs of high value of the Y register of the fourth operator, that the other bits of this multiplication signal and the multiplication signal of the second operator are transmitted to the RI registers of the second stage with an offset to the right and a double repetition of the bit of high value, that the (m-4) outputs of high value of the Y register of the first operator and the outputs of the Y register of the second operator are connected with the inputs of the Y register of the third operator and with the (m-4) inputs of low value of the Y register of the fourth operator, and that the carry output of the third operator is connected with the carry input of the fourt operator.

Description: MULTIPLIEUR DU TYPE EN CASCADE UTILISANT UN ENSEMBLE D'OPERATEURS ELEMENTAIRES La présente invention se rapporte aux multiplieurs du type en cascade utilisant un ensemble d'opérateurs élémentaires du même type. Chacun de oes opérateurs élémentaires permet d'effectuer très rapidement la multiplication d'un nombre binaire (multiplicande) par une petite partie d'un autre nombre binaire (multiplicateur). En les associant en cascade, selon la structure connue sous le nom anglo-saxon de "pipeline", on obtient en sortie du dernier étage de cette structure le produit complet du multiplicande par le multiplicateur. Le problème de la multiplication en binaire est compliqué par l'usage -quasi général- de la représentation des nombres négatifs en complément à deux. Dans son ouvrage "Automatic Digital Calculators" (London, Butterworths Scientific Publications, 1953) Booth a décrit un algorithme qui permet de résoudre oe problème en procédant à une suite d'opérations élémentaires entre le multiplicande et chacun des bits successifs du multiplicateur, compte tenu de la valeur du bit précédent. Cet algorithme a depuis été généralisé pour pouvoir diviser le multiplicateur en groupes de bits et non plus en bits isolés. Un tel groupement complique bien entendu les opérations, et ceci d'autant plus que le nombre de bits groupés est important. Aussi dans la pratique on se contente de diviser le multiplicateur en groupes de deux bits. Un opérateur élémentaire permettant d'effectuer une multiplication 7x2 avec conservation du signe, a été décrit dans la demande de brevet N0 82 21 627 déposée par la demanderesse le 23 décembre 1982 et dont les éléments suivant sont repris pour la compréhension de l'invention. Selon l'algorithme de Booth, une multiplication partielle de rang j entre un multiplicande X et un groupe de deux bits Y2j+1 Y2j du multiplicateur, se fait en ajoutant au résultat intermédiaire précédent Ij 1 l'un des cinq nombres O, X, 2X, -X, -2X, et en décalant de deux bits vers la droite le résultat S. de omette opération pour obtenir un nouveau résultat intermédiaire Ij. Le choix entre ces cinq nombres se fait selon la valeur des deux bits Y2j+l, Y2j, et du bit Y2j-1 de groupe précédent, selon la table suivante: : Y2j+1 Y2j Y2j-l Nombre à ajouter 0 0 0 0 0 0 1 X 0 1 0 X 0 1 1 2X 1 0 0 -2X 1 0 1 -x 1 1 0 -x 1 1 1 0 En traduisant cette table en fonctions logiques on obtient: Sj = Ij-I . AUA ((Ij-I+ X)(B . C) U (Ij- 1 + 2X) (B.C)U(Ij-1-X)(B.C)U(Ij-1-2X)(B.C)) avec: A = (Y2j @ Y2j-l) U(Y2j+l @ Y2j) B = (Y2j @ Y2j-1) C = Y2j+1 Dans ces expressions @ désigne l'opérateur OU-exclusif. L'opérateur élémentaire représenté sur la figure 1 permet de réaliser une telle multiplication partielle entre un nombre X comportant sept bits (dont le signe) et deux bits Y2X+l et Y2j d'un nombre Y, soit une multiplication 7x2 avec conservation du signe. L'opérateur de la figure 1 comprend trois registres d'entrée 101, 102, 103 qui permettent de recevoir les données en entrée. Le registre 101 comprend sept cases qui permettent tout d'abord de mémoriser les bits de poids forts de Y non utilisés dans l'opérateur j ni dans ceux qui le précèdent. Les cases libérées par l'utilisation des bits de Y permettent de mémoriser les bits de poids faibles de la somme Sj, qui n'interviennent plus dans les calculs partiels ultérieurs par suite du décalage à droite dans l'algorithme de Booth. Le registre est muni d'une sortie sur laquelle on trouve une recopie de l'entrée après le pas d'horloge H appliqué au registre par quatre dispositifs de retard 104 à 107 en série destinés à améliorer le comportement du circuit. Pour simplifier, la figure représente le cas où l'on a en entrée, et donc en sortie, du registre les six bits de poids forts de Y. Le registre 102 comprend neuf cases qui permettent de mémoriser les neuf bits de poids forts du résultat intermédiaire Ij 1 Celui-ci est obtenu par décalage de deux bits vers la droite de la somme Sj 1 en sortie de l'étage précédent et adjonction de deux bits de poids forts égaux au bit de poids fort de Sj 1 Les deux bits de poids faibles qui débordent dans ce décalage sont rangés dans le registre 101 où ils remplacent Y21 et Y2jl qui arrivent dans l'opérateur par d'autres entrées. Le registre 102 est aussi muni d'une sortie qui recopie son entrée sous la commande de H en sortie du dispositif à retard 104. Ces différents décalages sont obtenus par câblage entre les deux opérateurs mis en cascade pour former deux étages successifs d'un multiplieur complet. Le registre 103 comprend dix cases qui permettent de mémoriser les sept bits du nombre X, ainsi que trois bits supplémentaires. Ces bits supplémentaires comprennent un bit de poids faible, dit de recoupe. Les deux autres bits supplémentaires sont deux bits de poids forts qui recopient le bit de signe de X et permettent lors des opérations de garder oe signe. En effet l'opération 2X < ou -2x) se traduit par un décalage d'un bit à gauche, et il est de plus nécessaire de prévoir le cas où l'addition des signes délivre une retenue et donc nécessite encore un autre bit à gauche. Ce registre 103 est également muni d'une sortie qui recopie son entrée sous la commande de H en sortie du dispositif à retard 105. Cette sortie du registre 103 est appliquée à un dispositif de calcul 108 suivi d'un multiplexeur 109. Ce dispositif de calcul effectue sur l'ensemble des dix bits les opérations X (transfert direct), X (complémentation bit à bit de X), 2X (décalage d'un bit Åa gauche), et 2X (complémentation suivie d'un décalage à gauche). Le multiplexeur 109 sélectionne le résultat de l'une de ces quatre opérations sous la commande de deux signaux binaires qui représentent respectivement Y2jl et B. Ces signaux sont obtenus d'une manière décrite plus loin. Le multiplexeur est conçu pour ne sélectionner que les neuf bits de poids fort en éliminant ainsi le bit de recoupe qui a servi dans la multiplication par 2 et qui n'est plus utile ensuite. Le nombre en sortie du multiplexeur 109 est additionné à Ij disponible en sortie du registre 102, dans un additionneur de neuf bits 110. Cet additionneur est muni d'une entrée et d'une sortie de retenue. Pour l'usage de l'opérateur en multiplieur 7x2 on applique, par calage externe, le bit Y2jl sur l'entrée de retenue de l'additionneur. En effet, comme on peut le voir dans le tableau ci-dessus définissant l'algorithme de Booth, l'addition de -x et -2X est à faire seulement lorsque Y2jsl = 1. Comme on dispose de X et 2X, en sortie du muitiplexeur 109 dans ce cas, le fait de rajouter 1 par l'entrée de retenue donne bien -x et -2X en complément à 2, qui est le code utilisé. La sortie de l'additionneur, ainsi que Ii 1 sont appliqués à un multiplexeur 111 qui sélectionne l'un de ces deux signaux sous la commande du signal A, obtenu de la manière expliquée plus loin, et délivre le signal Sj. Les deux bits Y2; 1 et Y2jy en provenance de l'étage précédent, sont appliqués à une porte OU-exclusif 112 qui délivre le signal B défini plus haut. Ce signal B est mémorisé dans une bascule maître-esclave 113 pour être appliqué au multiplexeur 109. Cette bascule est commandée par l'horloge H en sortie du dispositif à retard 107. Le bit Y2j+1 en provenance de l'étage précédent est mémorisé dans une bascule malitre-esdave 114 pour être appliqué au multiplexeur 109. Cette bascule est commandée par l'horloge H directement. Les deux bits Y2j et Y2j+1 sont également appliqués à une porte OU-exclusif 115 dont la sortie est connectée à une porte OU 116. L'autre entrée de cette porte reçoit le signal B, et sa sortie délivre le signal A défini plus haut. Ce signal A est mémorisé dans une bascule maître esclave 117 pour être appliqué au multiplexeur 111. Cette bascule est commandée par l'horloge H en sortie du dispositif à retard 106. Les signaux X et Y2j+l, nécessaires pour l'étage suivant, sont disponibles en sortie du registre 103 et de la bascule 114, avec le retard d'un pas d'horloge qui correspond au chargement du registre et de la bascule. Il en est de même pour les signaux Y2j+2 et Y2j+3 (contenus dans Y) et Sj. Pour simplifier la figure on a représenté X sur neuf bits, ce qui inclut les deux bits de signe SX. Par contre le bit de recoupe R n'est pas disponible, parce qu'il n'y a pas d'utilité à le transmettre. Un tel opérateur peut être intégré dans un circuit intégré prédiffusé du commerce, contenu dans un seul bottier. En cascadant quatre de ces circuits intégrés on obtient, avec seulement quatre bottiers, un multiplieur 7x8 avec conservation du signe sans aucun circuit supplémentaire Le résultat sera obtenu avec un retard de quatre coups d'horloge, mais la vitesse de sortie de ces résultats sera égale à celle d'un multiplieur parallèle. Une multiplication 7x8 est toutefois relativement limitée, et il est souhaitable de pouvoir effectuer des calculs plus importants, tout en gardant la vitesse de sortie et en ayant une structure la plus modulaire possible. Pour pela, l'invention propose un multiplieur du type en cascade utilisant un ensemble d'opérateurs élémentaires, chaque opérateur élémentaire ayant un premier registre Y pour recevoir et délivrer un premier signal d'au moins deux bits et au plus m bit (m 7), un deuxième registre RI pour recevoir un signal intermédiaire de n bits, un troisième registre X pour recevoir un signal multiplicande de n bits et un bit de recoupe et délivrer ce signal multiplicande, des circuits de décodage D et Q pour recevoir un signal multiplicateur de trois bits et délivrer le bit de poids fort de oe signal, un additionneur neuf bits muni d'une entrée de retenue et d'une sortie de retenue, et un circuit S pour délivrer un signal de multiplication de neuf bits obtenu selon l'algorithme de Booth entre le multiplicande, le signal intermédiaire et le multiplicateur, principalement caractérisé en ce que, pour effectuer au moins une multiplication entre un multiplicande de 2 (n-l) bits et un multiplicateur de quatre bits, il comprend un premier étage comportant un premier opérateur et un deuxième opérateur et un deuxième étage comportant un troisième opérateur et un quatrième opérateur, que le bit de recoupe et le bit de poids faible du signal multiplicateur du premier opérateur sont à zéro, que les deux autres bits de ce signal multiplicateur sont les deux bits de poids faible du multiplicateur, que le bit de poids le plus fort de ceux-ci est appliqué Åa l'entrée de retenue du premier opérateur, que le signal multiplicateur du deuxième opérateur est le même que celui du premier, que le registre X du premier opérateur reçoit les n bits de poids faible du multiplicande, que le bit de recoupe du deuxième opérateur recopie le bit de poids fort reçu par oe registre X, que le registre X du deuxième opérateur reçoit les autres bits du multiplicande dont celui de poids fort qui est reporté deux fois, que le signal intermédiaire du premier étage est égal â zéro, que le registre Y du premier opérateur reçoit les deux bits de poids fort du multiplicateur, que la sortie de retenue du premier opérateur est reliée à ltentrée de retenue du deuxième opérateur, que les circuits D du troisième et du quatrième opérateur reçoivent du registre Y du premier opérateur les deux bits de poids fort du multiplicateur et d'un circuit Q du premier étage le bit de poids faible précédant ces deux bits, que l'entrée de retenue du troisième opérateur reçoit le bit de poids fort du multiplicateur, que le multiplicande est transmis directement entre les sortie des circuits X des premier et deuxième opérateurs et les entrées des circuits X des troisième et quatrième opérateurs, que le bit de recoupe du troisième opérateur est maintenu à zéro et celui du quatrième opérateur recopie le bit de poids fort du registre X du troisième opérateur, que les deux bits de poids faible du signal de multiplication du premier opérateur sont transmis aux deux entrées de poids fort du registre Y du quatrième opérateur, que les autres bits de ce signal de multiplication ainsi que le signal de multiplication du deuxième opérateur sont transmis aux registres RI du deuxième étage avec décalage à droite et double répétition du bit de poids fort, que les (m-4) sorties de poids fort du registre Y du premier opérateur et les sorties du registre Y du deuxième opérateur sont reliées aux entrées du registre Y du troisième opérateur et aux (m-4) entrées de poids faible du registre Y du quatrième opérateur, et que la sortie de retenue du troisième opérateur est reliée à l'entrée de retenue du quatrième opérateur. D'autres particularités et avantages de l'invention apparaîtront clairement dans la description suivante présentée à titre d'exemple non limitatif et faite en regard des figures annexées qui représentent: - la figure 1, le schéma d'un opérateur connu de la demande de brevet 82 21 627; - la figure 2, un premier étage d'un multiplieur en cascade; - la figure 3, l'interconnexion entre un premier et un deuxième étage d'un multiplieur en cascade. Pour faciliter la description, on a représenté sur la figure 2 le premier étage d'un multiplieur 16x16 entre deux nombres entiers signés. Ce multiplieur réalise donc une multiplication 16x2 entre un nombre X comprenant 16 bits X0 à X15, et les deux premiers bits Y0 et Y1 d'un nombre Y comprenant 16 bits Y0 à Y15. Cet étage comprend deux opérateurs identiques numérotés 0 et 1. Le schéma interne de ces opérateurs est celui de la figure 1 et pour faciliter la compréhension du dessin on a représenté schématiquement les circuits en entrée et en sortie en séparant en deux parties certains d'entre eux (X, Y, 110). Ces deux opérateurs fonctionnent en parallèle pour multiplier chacun une moitié du multiplicande X par les deux bits de poids faible du multiplicateur Y. Pour oela l'opérateur 0, qui travaille sur les poids faibles du multiplicande, reçoit sur son registre d'entrée X les neuf bits de poids faible X0 à X8 appliqués sur les entrées du registre X autres que celle de recoupe. L'entrée R du bit de recoupe est maintenue à zéro pour avoir en cas de décalage à gauche un bit de poids faible à zéro. L'opérateur 0 reçoit également sur son registre d'entrée RI les neuf bits de poids faible lo à 18 du résultat intermédiaire de l'étage précédent, qui dans oe cas sont à zéro puisque nous décrivons le premier étage. Il reçoit aussi sur son registre d'entrée Y les sept bits de poids faible Y2 à Y8 qui ne sont pas utilisés pour la multiplication, et sont simplement transmis sur la sortie de ce registre pour être appliqués à l'étage suivant. Les deux premiers bits de poids faible Y0 et Y1 du multiplicateur (effectivement utilisés dans oet étage) sont appliqués aux divers circuits de décodage détaillés sur la figure 1 et rassemblés sur la figure 2 dans un circuit d'entrée appelé D. Y1 est également appliqué à ltentrée de retenue de l'additionneur de l'opérateur 0. Le circuit D devrait recevoir également un bit Y 1 Comme celuizi n'existe pas, on lui substitue un bit Q qui est maintenu à zéro. En sortie de l'opérateur O on trouve, outre Y2 à Y8 déjà vus, les neuf bits de poids faible X0 à X8 en sortie du registre X, les neuf bits de poids faible S00 àS08 du résultat de la multiplication 16x2 en sortie du multiplexeur 111 appelé S sur la figure, et le bit Y1 en sortie de la bascule 114 appelée Q sur la figure puisque oe bit va jouer pour l'étage suivant le rôle du bit Q. On a également en sortie de l'opérateur 0 la retenue de ltaddi- tionneur de celui-ci. L'opérateur 1, qui travaille sur les poids forts du multiplicande, reçoit sur son registre d'entrée X les huit bits de poids fort X8 à X15. X9 à X15 sont appliqués sur les sept entrées de poids faible et X15, qui représente le signe, est recopié sur les deux entrées de poids fort pour les raisons données dans la description de l'opérateur. X8 est appliqué à l'entrée du bit de recoupe, ce qui explicite plus particulièrement l'intérêt de ce bit. En effet Si l'on effectue un décalage à gauche (représentant une multiplication par 2), il faut disposer du bit précédent à droite puisque ce décalage s'opère sur la totalité du nombre, lequel est présent en deux morceaux dans les deux opérateurs. L'opérateur 1 reçoit également sur son registre d'entrée Rl les neuf bits de poids fort 19 à 117 (dans oe cas à zéro), et sur son registre d'entrée Y les sept bits de poids fort Yg à Y15, qui sont transmis sur la sortie de ce registre. Pour effectuer la multiplication, les bits Y0 et Y1, ainsi que Q, sont appliqués à l'opérateur 1 de la même manière qu'à l'opérateur 0, sauf pour la retenue entrante qui reçoit le bit de retenue sortante de l'opérateur 0, oe qui assure la continuité entre les deux morceaux de la multiplication. En sortie de cet opérateur 1 on trouve, outre Yg à Y15 déjà vus, les sept bits de poids fort X9 à X15 et les deux bits de signe supplémentaires, les neuf bits de poids fort 51 à S18 du résultat de la multiplication 16x2, et le bit Y La sortie de retenue est disponible, mais n'est pas utile ici puisqu'elle représente le signe du résultat, lequel est déjà contenu au moins une fois dans le nombre en sortie de S. Pour effectuer une multiplication avec un multiplicateur de plus de deux bits, il faut mettre en cascade plusieurs étages identiques à celui de la figure 2, avec un câblage inter-étage adéquat pour obtenir notamment les décalages nécessaires et ranger les résultats qui débordent On a représenté sur la figure 3 la mise en cascade d'un deuxième étage comprenant deux opérateurs 2 et 3, avec le premier étage de la figure 1, représenté partiellement, pour pouvoir effectuer une multiplication 16x4. Ce deuxième étage utilise donc les trois bits Y1 à Y3 du multiplicateur, qui sont appliqués sur les circuits D des deux opérateurs, avec Y3 appliqué en plus à l'entrée de retenue de l'opérateur 2. Y2 et Y3 sont pris en sortie du registre Y de l'opérateur 0, et dans la version représentée Y1 en sortie respectivement des deux circuits Q des opérateurs 0 et 1. Des variantes éventuelles consisteraient à relier la sortie de l'un de ces circuits Q aux deux entrées correspondantes des circuits D. Les sorties des registres X du premier étage sont directement reliées aux entrées des registres X du deuxième étage, puisque le multiplicande est transmis sans changement le long des étages avec simplement le retard dO à chaque étage. De même l'entrée R de l'opérateur 2 est maintenue à zéro. Dans une multiplication à plusieurs chiffres (plusieurs bits pour un nombre binaire), le résultat intermédiaire correspondant à la multiplication par un chiffre du multiplicateur doit être décalé d'un chiffre vers la droite avant d'être additionné au résultat intermédiaire suivant. Donc le nombre formé des bits So0 à 518 doit être décalé de deux bits vers la droite (puisque le premier étage a utilisé deux bits du multiplicateur) pour être transmis au deuxième étage. Pour cela on stocke les deux bits S00 et S01 qui forment les deux bits de poids faible Mo et M1 du résultat final, dans les deux étages de poids fort du registre Y de l'opérateur 3, en réunissant les entrées et sorties correspondantes. Ces deux étages sont libérés en décalant le multiplicande de deux bits vers la droite, en connectant d'abord les sorties Yll à Y15 de l'opérateur 1 aux cinq entrées de poids faible du registre Y de l'opérateur 3, puis en connectant les sorties Ylo et Yg de cet opérateur 1, et Y8 à Y4 de l'opérateur 0, aux entrées du registre Y de l'opérateur 2. On a vu plus haut que Y3 et Y2 sont utilisés dans les circuits D pour le calcul, et n'ont donc plus à être transmis aux registres Y du deuxième étage. On a donc Y4 à Y10 disponibles en sortie du registre Y de l'opérateur 2, et Yll à Y15 avec M0 et M1 en sortie du registre Y de l'opérateur 3. Par ailleurs Y3 (nécessaire pour le troisième étage) est disponible en sortie des deux circuits Q du deuxième étage, comme on l'a vu. Les bits S02 à S08 deviennent donc les bits de résultat intermédiaire à I0 à I6, et les bits S10 à S18 les bits intermédiaires I7 à I15. I0 à I8 sont appliqués au registre d'entrée RI de l'opérateur 2, et 19 à I15 au registre d'entrée RI de l'opérateur 3. Comme 19 à I15 ne représentent que sept bits, I15 est également recopié sur les deux entrées de poids fort de ce dernier registre. Le résultat de la multiplication 16x4 effectuée par ces deux étages est composé des deux bits de poids faible M0 et M1 déjà vus, et des 18 bits de poids fort S20 à S28 et S30 à S38 disponibles en sortie des registres S des deux opérateurs du second étage. Pour obtenir une multiplication complète de deux nombres de 16 bits entre eux, il faut six étages supplémentaires par rapport aux deux déjà décrits. Entre deux étages successifs j et j+l le nombre X est transmis sans changement, comme décrit entre les deux premiers. Les deux bits Y2j+ 3 et Y2j+2 nécessaires pour la multiplication dans l'étage j+l, sont pris en sortie du registre Y de l'opérateur j de poids faible, et l'ensemble des bits restants de Y, ainsi que les bits de résultat M déjà obtenus, sont décalés à droite de deux pas pour être appliqués en entrée des registres Y de l'étage j+l. Ceci libère à gauche la place pour les deux nouveaux bits de poids faible du résultat en sortie des circuits S de l'étage j. Les seize bits restants en sortie des circuits S de l'étage j sont décalés à droite de deux pas pour être appliqués aux registres Ri de l'étage j+l, et celui de poids fort est appliqué également aux deux entrées de Rl ainsi libérées. n est remarquable que cette règle de câblage, identique entre tous les étages, conduise à remplacer pas à pas le nombre Y par le nombre M représentant les poids faibles du résultat final de la multiplication 16x16. En sortie du dernier étage on aura donc le résultat de la multiplication, avec les 14 bits de poids faible dans les deux registres Y du dernier étage, et les 18 bits de poids fort dans les deux registres S de celui-ci, soit donc 32 bits, nombre maximum pour un produit 16x16. ll est aisé en effectuant pas à pas à la main les calculs correspondant aux huit étages successifs de montrer que le résultat est toujours correct, en particulier quant à la conservation du signe pour les produits extrêmes concernant les plus grands nombres positifs et négatifs.

Claims: REVENDICATIONS 1. Multiplieur du type en cascade utilisant un ensemble d'opérateurs élémentaires, chaque opérateur élémentaire ayant un premier registre Y (101) pour recevoir et délivrer un premier signal d'au moins deux bits, un deuxième registre RI (102) pour recevoir un signal intermédiaire de n bits, un troisième registre x (103) pour recevoir un signal multiplicande de n bits et un bit de recoupe et délivrer ce signal multiplicande, des circuits de décodage D et Q (112-117) pour recevoir un signal multiplicateur de trois bits et délivrer le bit de poids fort de ce signal, un additionneur (110) muni d'une entrée de retenue et d'une sortie de retenue, et un circuit s (ici) pour délivrer un signal de multiplication de neuf bits obtenu selon l'algorithme de Booth entre le multiplicande, le signal intermédiaire et le multiplicateur, caractérisé en oe que, pour effectuer au moins une multiplication entre un multiplicande de 2 (n-I) bits et un multiplicateur de quatre bits, il comprend un premier étage comportant un premier opérateur (o) et un deuxième opérateur (1) et un deuxième étage comportant un troisième opérateur (2) et un quatrième opérateur (3), que le bit de recoupe et le bit de poids faible du signal multiplicateur du premier opérateur sont à zéro, que les deux autres bits de ce signal multiplicateur sont les deux bits de poids faible du multiplicateur, que le bit de poids le plus fort de ceux-ci est appliqué à l'entrée de retenue du premier opérateur, que le signal multiplicateur du deuxième opérateur est le même que celui du premier, que le registre X du premier opérateur reçoit les n bits de poids faible du multiplicande, que le bit de recoupe du deuxième opérateur recopie le bit de poids fort reçu par ce registre X, que le registre X du deuxième opérateur reçoit les autres bits du multiplicande dont celui de poids fort est recopié deux fois, que le signai intermédiaire du premier étage est égal à zéro, que le registre Y du premier opérateur reçoit les deux bits de poids fort du multiplicateur, que la sortie de retenue du premier opérateur est reliée à l'entrée de retenue du deuxième opérateur, que les circuits D du troisième et du quatrième opérateur reçoivent du registre Y du premier opérateur les deux bits de poids fort du multiplicateur et d'un circuit Q du premier étage de poids faible précédant ces deux bits, que l'entrée de retenue du troisième opérateur reçoit le bit de poids fort du multiplicateur, que le multiplicande est transmis directement entre les sorties des circuits X des premier et deuxième opérateurs et les entrées des circuits X des troisième et quatrième opérateurs, que le bit de recoupe du troisième opérateur est maintenu à zéro et celui du quatrième opérateur recopie le bit de poids fort du registre X du troisième opérateur, que les deux bits de poids faible du signal de multiplication du premier opérateur sont transmis aux deux entrées de poids fort du registre Y du quatrième opérateur, que les autres bits de ce signal de multiplication ainsi que le signai de multiplication du deuxième opérateur sont transmis aux registres RI du deuxième étage avec décalage à droite et double répétition du bit de poids fort, que les (m-4) sorties de poids fort du registre Y du premier opérateur et les sorties du registre Y du deuxième opérateur sont reliées aux entrées du registre Y du troisième opérateur et aux (m-4) entrées de poids faible du registre Y du quatrième opérateur, et qu; la sortie de retenue du troisième opérateur est reliée à l'entrée de retenue du quatrième opérateur. 2. Multiplieur selon la revendication i, pour effectuer une multiplication entre un multiplicande de 2 (n-l) bits et un multiplicateur de 16 bits, caractérisé en ce qu'il comprend en outre six étages supplémentaires ayant chacun deux opérateurs, que les registres Y peuvent mémoriser au moins sept bits, et que les liaisons entre ces étages sont identiques à celles entre les deux premiers étages; le résultat de la multiplication étant donné sur 14 bits de poids faibles dans les registres Y du dernier étage, et sur de 2 n bits de poids fort dans les circuits S de cet étage. 3. Multiplieur selon l'une quelconque des revendications 1 et 2, caractérisé en ce que n = 9.

Inventors: CHARLEC, JEAN-PAUL, MULLER, BERNARD-PIERRE
Applicants: THOMSON-CSF
Application year: 1984
Main classification: G06F7
IPC codes: G06F7