Brevet FR2320602A1 — publié le 19770304

La présente invention porte sur des circuits réalisant la multiplication de deux nombres binaires, l'un par Autre. Selon la technique connue, il existe des multiplieurs, à addition des produits partiels effectués. Ces multiplieurs comportent un seul étage formé par un additionneur recevant, en plusieurs cycles, les deux nombres à multiplier à travers un ensemble de portes ET, et un registre accumulateur. Les deux nombres à multiplier, l'un étant le multiplicateur et l'autre le multiplicande, sont contenus respectivement dans deux registres d'entrée. Le registre du multiplicateur a une sortie série reliée en commun à toutes les portes ET, le registre du multiplicande a des sorties en parallele reliées respectivement auxdites portes ET. L'additionneur reçoit les sorties des portes ET ainsi que les sorties de ltaccumulateur pour que les produits partiels se totalisent successivement. L'étage multiplieur est commande par une horloge de maniere que les bits du multiplicateur soient décalés d'un rang en progressant vers les poids forts, à chaque temps d'horloge définissant un cycle mineur de la multiplication. Au cours de chaque cycle mineur de la multiplication, chaque produit partiel subit un décalage d'un rang vers les poids forts, lors de son addition avec le résultat partiel contenu dans l'accumulateur. Si les deux nombres binaires présentent un nombre important de bits, le temps de calcul devient long, à moins d'utiliser des circuits dont les composants sont de performances élevée, qui sont par là même de coût élevé. La présente invention porte sur un multiplieur binaire réalisant un compromis entre le temps de calcul nécessaire pour délivrer le résultat de la multiplication et le prix de revient. Selon l'invention le multiplieur binaire, réalisant la multiplication d'un nombre binaire B de p bits, appelé multiplicande, pal un nombre binaire A de n bits, appelé multiplicateur, et délivrant le résultat R sur n+p bits dans un accumulateur, est caritctérisa en ce qu'il comporte m registres commandes en décalage simultanément, enregistrant le multiplicateur A divisé en m mots, AI à Am, constitués chacun par les bits du multiplicateur A de poids croissant selon une progression arithmétique de raison m et dont les premiers bits respectifs sont constitués par les bits de poids o à mi du multiplicateur A, m étant un entier supérieur à 1, et en ce qu'il comporte n étages de multiplication et d'addition associés respectivement aux m registres et ayant chacun un ensemble de p portes ET et un additionneur, dans un meme étage, les portes ET étant reliées d'une part en commun a une sortie série du registre associé et recevant d'autre part respectivement les p bits du multiplicande B tandis que leurs sorties respectives sont reliées à un premier groupe d'entrées de l'additionneur, l'additionneur ayant sa sortie de plus faible poids reliée audit accumulateur qui mémorise, ainsi, les n bits de plus faibles poids du résultat R, au cours des commandes successives de décalage des contenus des m registres, et ayant les p sorties suivantes reliées à un deuxieme groupe d'entrées de l'additionneur de l'étage suivant, lesdites p sorties de l'additionneur du dernier étage étant rebouclées sur le deuxième groupe d'entrées de l'additionneur du premier étage par l'intermédiaire dudit accumulateur qui mémorise les p bits de plus fort poids du résultat R, lorsque les bits de chacun des mots Ai à An ont été délivrés successivement sur la sortie-série de chaque registre. Selon une autre caractéristique de l'invention ledit accumulateur est constitué par un registre de sortie, d'une capacité égale à p bits, recevant le mot binaire délivré sur les p sorties de l'additionneur du dernier étage, qu'il transmet en mode synchrone à l'additionneur dudit premier étage, et par les m registres contenant les mots Ai à Am, ayant chacun une entrée série et recevant lebit de plus faible poids du mot délivré par l'additionneur de l'étage associé, à chaque commandé de décalage d'un rang de leur contenu. n étant un souslrmltiple du nombre n de bits, du multiplicateur A, on réalise la m multiplication en m cycles dont la durée totale sera de T. n, T etant la période d'horloge assurant les commandes de décalage des contenus des m registres, pendant chaque cycle, la multiplication simultanée du multiplicande par m bits du multiplicateur étant effectuée avec sommation des résultats partiels. Le multiplieur selon l'invention répond précisément à un compromis entre la vitesse de calcul et le prix de revient, il se réalise simplement à l'aide de portes ET, d'additionneurs et de registres. D'autres caractéristiques et avantages de la présente invention apparaitront au cours de la description d'un exemple de réalisation illustré dans la figure unique du dessin annexé. Dans cette figure on a considéré le cas où le multiplicateur A et le multiplicande B sont chacun à huit bits et où les bits du multiplicateur A sont répartis en deux mots AI et A2 chacun de quatre bits. Le mot Ai est défini par les bits ao, a2, a4 et a6 et le mot A2 par les bits al, a3, a5 et a7 du multi plicateur A, a à a7 représentant les huit bits, considérés par rangs croissants, o a7 7 de A, c'est-à-dire les bits correspondants aux rangs 2 a 27 de A. Le multipli cande B est défini par les huit bits b à b7. o Les deux mots Ai et A2 sont chargés dans deux registres du multiplicateur I et 2 à entrées en parallele, sorties en parallèle et à une entrée série, une sortie série. Le multiplicande est contenu dans un registre du multiplicande 3, à sortie en parallèle. A chacun des registres du multiplicateur I et 2 est associé un étage du multiplicateur comprenant un ensemble de huit portes ET, 10 à 17, respectivement 20 à 27 et un additionneur 18, respectivement 28. Les portes ET 10 à 17 ont chacune une première entrée reliée en commun à la sortie série du registre du multiplicateur I et ont leurs deuxièmes entrées reliées respectivement aux sorties en parallèle du registre du multiplicande 3. Les portes ET 20 à 27 ont chacune une première entrée reliée en commun à la sortie série du registre du multiplicateur 2 et ont leurs deuxièmes entrées reliées respectivement aux sorties en parallèle du registre du multiplicande 3. Chaque additionneur reçoit sur un premier groupe d'entrées un mot à huit bits délivrés par l'ensemble des portes ET de l'étage et sur un deuxième groupe d'entrées également un autre mot à huit bits. Chacun des additionneurs présente neuf sorties. La sortie de plus faible poids est reliée à l'entrée série du registre du zeltiplicateur 1 ou 2 associés à 11 étage ; les autres sorties de l'additionneur 18 du premier étage sont reliées au deuxième groupe d'entrée de l'additionneur 28 de l'étage suivant, tandis que les autres sorties de l'additionneur 28 (dernier étage) sont reliées à un registre accumulateur 4 à entrées en parallèle, de capacité égale à huit bits.Les sorties en parallèle de ltaccumula- teur 4 sont rebouclées sur le deuxième groupe d'entrées de ltadditionneur 18 (premier étage). Dans cette réalintion le mémorisation des seize bits du résultat R, R n A.B, est effectuée dans les registres 1 et 2 pour les huit bits de plus faible poids et dans le registre 4 pour les huit bits de plus forts poids, Les registres I et 2 du multiplicateur et le registre accumulateur 4 sont commandes par une horloge ainsi que symbolisez par la commande H. Le fonctionnement du rultiplicateur décrit est donné ci-apres. Une impulsion de commande est émise sur les entrées de charge C des registres I et~2 pour la muiorisation des deux mots Ai et A2 et sur ltentree de remise à zéro RAZ de l'accumulateur 4, avant les cycles de multiplication. Pour les cycles de wulti- plication les registres 1 et 2 sont coilaités en décalage série : après chaque impulsion d'horloge R leur contenu se décale d'un rang permettant ainsi de mémoriser le bit de poids le plus faible délivré par les additionneurs 18 et 28 auxquels ils sont respectivement connectes. Dès que les mots Ai et A2 sont chargés dans les registres 1 et 2 les bits respectifs, de poids le plus faible de chacun de ces mots, sont appliqués sir les portes ET 10 à 17, 20 à 27, Premier cycle : ao et ai commandent les ensembles de portes ET 10 à 17 et 20 à 27 permettant l'accès du mot B aux additionneurs 18 et 28 respectivement. Une première impulsion d'horloge commande alors la mémorisation du premier résultat partiel Ri de la multiplication, Ri = aO.B + alB. Cette mémorisation est faite dans les registres 1 et 2, pour les deux bits de plus faibles poids, respectivement désignés par r et r1 du résultat partiel Ri, et dans 1' accusu o lateur 4 pour les autres bits de Ri. - Deuxième cycle : la première impulsion d'horloge a décalé d'un rang les bits de AI et A2 dans les registres I et 2 respectivement, les bits a2 et a3 sont alors présents sur les portes ET 10 à 17 et 20 à 27 respectivement. Une deuxième impulsion d'horloge H commande la mémorisation du deuxième résultat partiel RZ de la multiplication, R2 8 Ri + a2B + a3B. Cette mémorisation est faite dans les registres I et 2 contenant maintenant, outre r0 et rl respectivement, les bits de poids 22 et 2 de R2 désignés par r2 et r3, et dans l'accumulateur 4 pour les autres bits de R2. - Troisième cycle et quatrième cycle : ces cycles sont analogues aux précédents. A la fin du troisième cycle on mémorise un nouveau résultat partiel, à la fin du quatrième cycle on mémorise le résultat final R, R - A.B. Le registre 1 contient alors les bits 0, r2, r4, r6 du résultat R et le registre 2 les bits rl, r3, r5 et r7 du résultat R, r à r7 désignant respectivement les huit bits de plus faible poids de R. L'accumulateur 4 contient alors les huit bits de poids élevé de R désignés de r8 à r130 Un câblage convenable des sorties en parallèle des registres 1 et 2 et des sorties en parallèle de l'accumulateur rend ce résultat directement disponible en parallèle I1 est évident qu'une commande appropriée de lecture des registres 1 et 2 puis de l'accumulateur 4 permet de délivrer en série les bits du résultat R. La présente invention a été décrite à l'aide d'un exemple dans lequel le multiplicateur A est un mot de huit bits et est divisé en deux mots Ai et A2 chacun de 4 bits. Dans le cas où le mot A est un mot de douze bits, il peut être divisé en deux, trois, quatre ou six mots ayant dans chacun des cas six, quatre, trois ou deux bits. Le multiplieur aura alors deux, trois quatre ou six étages comprenant chacun un ensemble de portes ET, en nombre défini par le nombre de bits du multiplicande, suivi d'un additionneur. Dans tous les cas la capacité de l'accumulateur tel que 4 est au moins égale au nombre de bits du multiplicande B.D'une manière générale à partir d'un multiplicateur A ayant n bits, défini par : A=a0, al, a2, .~., an 1 on prévoit la constitution de plusieurs mots, soit m mots, Ai, à Ai, dont les bits de chacun sont pris parmi les bits de A, aux rangs formant entre eux une progression arithmétique de raison ni, ces mots AI à Am ayant pour premier bit (bit de poids le plus faible) respectivement les m premiers bits de A, c'est-à-dire a à am -1 de puissance o à a o Les mots Ai à Am ainsi obtenus sont les suivants A1 = ao am a2m ... am(n-1) m A2 = a1 am+1 a2m+l ... am(n-1) +1 m Am = am-1 am+(m-1) a2m+(m-1) ... + a(n-1) +(m-1) Le multiplieur comporte alors m étages ayant chacun un ensemble de p portes ET, p étant le nombre de bits du multiplicande, et un additionneur. La multipli n cation A.B s'effectue en m cycles, en réalisant à chaque cycle la somme de m produits partiels issus des m ensembles des portes ET respectivement. Bien entendu, si le quotient n n'est pas un entier on substituera n par n' ni avec n' n n + (l à m), c'est-à-dire on ajoutera de 1 à m bits de valeur O à la définition du mot A pour que les mots A1 à Am constitués présentent le meme nombre de bits et ainsi que m soit un sous-multiple du nombre n' de bits alors considérés pour définir A. REVENDICATIONS 1/ Multiplieur binaire séquentiel réalisant la multiplication d'un nombre binaire B de p bits, appelé multiplicande, par un nombre binaire A de n bits, appelé multiplicateur, et délivrant le résultat R sur n+p bits-dans un accumulateur, caractérisé en ce qu'il comporte HI registres commandes en décalage simultanément, enregistrant le multiplicateur A divisé en m mots, Ai à Am, constitués chacun par les bits du multiplicateur A de poids croissant selon une progression arithmétique de raison m et dont les premiers bits respectifs sont constitués par les bits de poids o à m-i du multiplicateur A, m étant un entier supérieur à I, et en ce qu'il comporte m étages de multiplication et d'addition associés respectivement aux m registres et ayant chacun un ensemble de p portes ET et un additionneur, dans un même étage, les portes ET étant reliées d'une part en commun à une sortie série du registre associé et recevant d'autre part respectivement les p bits du multiplicande B tandis que leurs sorties respectives sont reliées à un premier groupe d'entrées de l'additionneur, l'additionneur ayant sa sortie de plus faible poids reliée audit accumulateur qui mémorise, ainsi les n bits de plus faibles poids du résultat R, au cours des commandes successives de décalage des contenus des m registres, et ayant les p sorties suivantes reliées à un deuxième groupe d'entrées de l'additionneur de l'étage suivant, lesdites p sorties de l'additionneur du dernier étage étant rebouclées sur le deuxième groupe d'entrées de l'additionneur du premier étage par l'intermédiaire dudit accumulateur qui mémorise les p bits de plus fort poids du résultat R, lorsque les bits de chacun des mots Ai à An ont été délivrés successivement sur la sortie-série de chaque registre. 2/ Multiplieur binaire séquentiel selon la revendication 1, caractérisé en ce que ledit accumulateur est constitué par un registre de sortie, de capacité choisie égale à p bits, recevant le mot binaire délivré sur les p sorties de l'additionneur du dernier étage, qu'il transmet à l'additionneur dudit premier étage, et par les m registres, contenant les mots Ai à Am, ayant chacun une entrée série et recevant le bit de plus faible poids du mot délivré par l'additionneur de l'étage associé, à chaque commande de décalage d'un rang de leur contenu,