Brevet FR2712410A1 — publié le 19950519

CIRCUIT ÉElÉVATEUR AU CARRÉ DE NOMBRES BINAIRES La présente invention concerne un circuit permettant d'élever au carré un nombre binaire X de n bits, noté ci-après [xn-l,Xn_2,... x0]. Pour élever un nombre binaire au carré, il est courant d'utiliser une table de carrés stockée dans une mémoire morte (ROM), le nombre X étant appliqué sur les lignes d'adresses de la mémoire ROM. Pour stocker tous les carrés d'un nombre X de n bits, la taille de la mémoire ROM doit être de 2n mots de 2n bits. La surface occupée par une telle table en mémoire ROM est importante. En outre, une mvmoire ROM présente un temps d'accs élevé. Dans les technologies courantes actuelles, il n'est pas possible d'accéder à des mots sucoessifs d'une mémoire ROM à une fréquence aussi élevée que de 1 'ordre de 50 MHz. Une autre méthode pour élever le nombre X au carré consiste à utiliser un multiplieur binaire auquel on fournit deux fois le nombre X. On décrit ci-après le fonctionnement d'un multiplieur binaire classique particulier, dit multiplieur de Booth, qui présente l'avantage d'être rapide et d'occuper une surface rela- tivement faible. En multipliant un nombre binaire X exprimé en décimal par x020+x121+... xi2i+... xn-12n-1l et un nombre binaire Y exprimé en décimal par yo20+ yl21+... yi2i+... yn_12n-1, on obtient un produit XY égal, en décimal, à la somme de tous les produits xiyj2i+j, o xi= O ou 1, yj= 0 ou 1, et i et j varient entre 0 et n-1. Les produits xiyj (égaux à 0 ou 1) sont rangés dans un tableau de 2n-1 colonnes numérotées de 0 à 2n-2 de droite à gauche et correspondant à des bits de poids successifs du pro- duit binaire XY, et de n lignes numérotées L1 à Ln. La figure 1 représente un tel tableau avec un exemple de nombres X et Y de quatre bits. Dans une colonne de rang k, on range successivement tous les produits xiyj tels que i+j= k. On obtient, commne cela est représenté, un remplissage triangulaire du tableau. La valeur (0 ou 1) de chaque produit xiyj est obte- nue par des circuits de prétraitement qui effectuent un ET logi- que entre le bit xi du nombre X et le bit yj du nombre Y. Chaque ligne Lp (p=l, 2... n) correspond à un mot Lp dont les bits de rangs successifs sont constitués respectivement par les contenus des cases de la ligne Lp. Le produit binaire XY recherché est obtenu en effectuant la somme des mots Li à Ln. Ci après,-on utilise indifféremment les termes "ligne" du tableau et "mot", ainsi que "case", "terme", et "bit" de tableau. Pour effectuer la somme des mots L1 à Ln, il est courant d'utiliser une première série d'additionneurs pour sa"- mer les mots par couples, une deuxième série d'additionneurs pour sommer, par couples, les sorties des additionneurs de la première série... Dans l'exemple de la figure 1, un premier additionneur formerait la somme des mots L1 et L2, un deuxième la scmme des mots L3 et L4, et un troisième la somme des résul- tats fournis par les premier et deuxième additionneurs. Dans le cas général, il faut n-1 additionneurs pour sommer les n mots L. Lorsque l'on utilise un multiplieur de Booth pour élever au carré un nombre X, on obtient un tableau du type de la figure 1 en remplaçant les y par des x. La figure 2A représente une cellule d'addition élémen- taire d'un additionneur classique. Deux bits de rang i, Ai, Bi, de deux mots à additionner sont fournis à une porte OU Exclusif dont la sortie fournit la somaume Si des bits Ai et Bi. En outre, la porte 10 reçoit une retenue Ci-1 provenant de la cellule précédente effectuant la somme des bits de rang i-1 des10 deux mots à additionner. La cellule fournit une retenue Ci à la cellule suivante par l'intermédiaire d'une porte OU 12 recevant les sorties de trois portes ET 14. Une première des portes 14 reçoit les bits Ai et Bi, une deuxième les bits Ai et Ci-1, et la troisième les bits Bi et Ci-1. Un additionneur de p bits comprend p-l cellules du type de la figure 2A, appelées cellules omplètes d'addition, et, pour le rang 0, une cellule plus simple, appelée cellule de demi-addition, décrite ultérieurement. L'ensemble des portes 12 et 14 présente un certain temps de commutation. Ainsi, une retenue Ci se stabilise avec un certain retard par rapport au moment o les entrées Ai, Bi et Ci-1 sont stables. Il en est de même pour la retenue Ci-1 qui prend une valeur stable avec un certain retard par rapport au moment o les entrées de la cellule précédente sont stables...25 On dit que la retenue se propage de la cellule de rang 0 jusqu'à la cellule de rang le plus élevé. Le temps de stabilisation de la sortie d'un additionneur de p bits est sensiblement égal au temps de propagation, proportionnel à p. Si, de plus, la sortie d'un premier additionneur est fournie à un deuxième additionneur, la sortie du deuxième addi- tionneur ne peut se stabiliser que si la sortie du premier addi- tionneur est stable; le temps de stabilisation du dernier additionneur d'un ensemble d'additionneurs disposés en "cascade" croit avec le nombre d'additionneurs. En conséquence, pour augmenter la rapidité d'un cir- cuit, tel qu'un multiplieur de Booth, utilisant des addition- neurs disposés en cascade, on a intérêt à diminuer la taille des additionneurs et le nombre d'additionneurs disposés en cascade. Le tableau de la figure 1 présente oertaines caracté- ristiques qui permettent de simplifier les additionneurs à utiliser et de diminuer leur temps de stabilisation. En effet, un grand nombre de cases du tableau sont vides (à 0). Pour sommer les mots L3 et L4, par exemple, il faut normalement un additionneur de 5 bits. Toutefois, les bits de rang 0 et 1 du mot L3 sont nuls et les bits de rang 0 à 2 et 4 du mot L4 sont nuls. Dans un additionneur qui somme les mots L3 et L4, les sorties SO et S1 sont forcées à 0 et la sortie S2 est directe- ment reliée au bit de rang 2 (x2y0) du mot L3. Pour sommer les bits de rang 3, on utilise une cellule de demi-addition et, finalement, pour sommer les bits de rang 4, puisque l'un de ces bits est nul, on utilise une cellule similaire à une cellule de demi-addition. Ainsi, au lieu d'utiliser un additionneur de 5 bits, on utilise un additionneur omprenant seulement deux cellules de demi-addition. La figure 2B représente une cellule de demi-addi- tion. Quand l'un des bits des nombres à additionner est nul, ou bien si la cellule d'addition est la première (elle ne reçoit pas de retenue), la structure de la cellule est plus simple. Dans le cas o l'un des bits, par exemple Bi, est nul, la cel- lule comprend une porte OU exclusif 16 reoevant le bit non-nul Ai et la retenue Ci-1 fournie par la oellule précédente. Une porte ET 18 recevant les bits Ai et Ci-1 fournit la retenue Ci à la cellule suivante. La première cellule d'un additionneur a une structure identique sauf que i=0 et le bit B0 est fourni à la porte 16 à la place de la retenue Ci-1. La structure de la figure 2B est plus simple et plus rapide que celle de la figure 2A. On a donc intérêt à 1 'adopter chaque fois que possible. Un objet de la présente invention est de prévoir un circuit élévateur au carré basé sur la méthode de Booth, qui soit particulièrement rapide. Un autre objet de la présente invention est de prévoir un tel circuit élévateur au carré qui occupe une surface parti- culièrement faible. Ces objets sont atteints grace à un circuit élévateur au carré d'un nombre binaire X de n bits xo à xnl, comprenant des circuits de prétraitement pour former l'ensemble des pro- duits xixj des bits du nombre X, o i et j varient entre 0 et n-l tel que i nissent des mots tels que chacun est formé par une succession aussi complète que possible de produits choisis parmi ceux qui restent dudit ensemble après la formation du mot précédent, chaque produit xixj de cette succession étant classé à un rang i+j+l du mot si i est différent de j ou à un rang 2i si i=j. Des additionneurs sont connectés pour former la somme des mots en tant que carré du nombre X. Selon un mode de réalisation de la présente invention, les circuits de prétraitement comprennent des moyens pour former la somme des produits correspondant normalement à deux bits de même rang de deux mots, cette somme étant fournie' sur l'un desdits deux bits, et l'autre desdits deux bits étant forcé à 0, la retenue de la somme étant propagée vers un bit normalement nul de l'un des mots. Selon un mode de réalisation de la présente invention, les circuits de prétraitement forment directement à partir des bits du nombre X les valeurs des bits à modifier par ladite somme et la propagation de ladite retenue. Selon un mode de réalisation de la présente invention, les additionneurs comprennent des additionneurs à sauvegarde de retenue disposés en cascade. Selon un mode de réalisation de la présente invention, le circuit élève au carré un nombre signé X' de n+1 bits xO à xn. Pour cela, les circuits de prétraitement ajoutent audit ensemble pour former lesdits mots, les termes: 1 classé au rang n+l d'un mot, xn classé au rang 2n d'un mot, et les inverses des produits xixn, o i varie de O à n-l, classés respectivement aux rangs i+n+l d'un mot. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposes en détail dans la description suivante de modes de réalisation faite à titre non limitatif à 1 'aide des figures jointes parmi lesquelles: la figure 1, précédemment décrite, est destinée à illustrer une méthode classique de multiplication de deux nom- bres binaires; les figures 2A et 2B, précédemment décrites, représen- tent des oellules élémentaires d'un additionneur; les figures 3A à 3D illustrent, à l'aide d'un exemple, des étapes d'optimisation d'un circuit élévateur au carré de nombres positifs selon 1' invention; les figures 4A et 4B représentent deux modes de réali- sation de circuit élévateur au carré selon l'invention, réalisés à partir des tableaux des figures 3B et 3D; les figures 5A à 5C illustrent, à l'aide d'un exemple, des étapes d'optimisation d'un circuit élévateur au carré de nombres signés selon 1' invention; la figure 6 représente un mode de réalisation d'un circuit élévateur au carré réalisé à partir du tableau de la figure 5C; les figures 7A et 7B illustrent, à l'aide d'un autre exemple, une étape initiale et une étape finale d'une optimisa- tion de circuit élévateur au carré de nombres positifs selon l'invention; la figure 8 représente un mode de réalisation avanta- geux de circuit élévateur au carré réalisé à partir du tableau de la figure 7B; les figures 9A et 9B illustrent, à l'aide d'un autre exemple, une étape initiale et une étape finale d'une optimisa- tion de circuit élévateur au carré de nombres signés selon l'invention; et la figure 10 représente un mode de réalisation avanta- geux de circuit élévateur au carré réalisé à partir du tableau de la figure 9B. La méthode de Booth et les circuits qui en découlent n'ont pas, à la connaissance de la demanderesse, été spécifique- ment adaptés à la réalisation d'opérations d'élévation au carré. La présente invention propose une telle adaptation dont on verra qu'elle conduit à la réalisation de circuits particu- lièrement simples et rapides. La figure 3A reprend le tableau de la figure 1 dans le cas de l'élévation au carré d'un nombre X, tous les couples de produits égaux étant regroupés. Dans chaque colonne, chaque couple de produits xixj, xjxi est remplacé par le produit 2xixj. Les produits xixi (0 par O ou 1 par 1) sont égaux à xi, conmme cela apparaît dans les tableaux. La multiplication par 2 d'un produit xixj revient à décaler ce produit d'une colonne vers la gauche. La figure 3B représente le résultat de oes décalages à gauche. On obtient un tableau de n/2 + 1 lignes (3 dans l'exemple) si n est pair, et (n+l)/2 lignes si n est impair. Chaque produit xixj, tel que i produit Xkxk) est rangé dans la colonne de rang 2k. La somme des mots L correspondant aux lignes du tableau constitue le carré X2 recherché. Ainsi, la présente invention propose, dans un premier temps, de réarranger les mots à additionner de façon à obtenir n/2 +1 mots, si n est pair, ou (n+l)/2 mots, si n est impair, au lieu des n mots obtenus en appliquant directement la méthode de Booth. On notera de plus que les mots à additionner ccmpren- nent un grand nombre de bits à 0 (correspondant à des cases vides ou à 0). Ainsi, outre le fait que l'on réduit le nombre d'additionneurs, on peut utiliser des additionneurs comprenant un plus petit nombre de cellules complètes d'addition. Chaque additionneur sera donc plus rapide et moins enxanbrant. Un autre aspect de la présente invention consiste à effectuer des opérations d'optimisation pour annuler des cases supplémentaires du tableau, de manière à annuler des cases extrêmes des lignes, ou même des lignes complètes. La figure 3C illustre une étape d'optimisation du tableau de la figure 3B selon cet aspect. On a représenté dans le tableau 3B précédent, par un cadre en pointillés, les éléments que l'on modifie pour effectuer oette optimisation. Pour obtenir le tableau de la figure 3C, le terme (xlx2) de la ligne L2, colonne 4, est remplacé par la somme de ce terme et de celui (x2) de la ligne L3, colonne 4, ce qui fournit le terme xl*x2 à la ligne L2, colonne 4. Le symbole * indique que le nombre qui le précède est transformé en son inverse logique. Bien entendu, la somme des termes xlx2 et x2 génère une retenue xlx2. Cette retenue est reportée dans une case vide à la ligne L2, colonne 5. Selon encore un autre aspect de l'invention, une somme (par exemple xl*x2 dans la colonne 4) et une retenue (par exemple xlx2 dans la colonne 5) ne sont pas obtenues par une cellule d'additionneur qui somme les valeurs des cases cor- respondantes (xlx2 et x2), mais directement à partir des bits (xl et x2) du nombre X par des portes logiques. Ceci permet de diminuer le nombre de portes logiques reliées en série et donc d'augmenter la vitesse de réponse du circuit. L'étape de la figure 3C permet de supprimer une ligne du tableau. Pour obtenir le carré x2, il suffit de sommer les deux mots correspondant aux deux lignes du tableau. On économise l'emploi d'un additionneur par rapport à un circuit réalisé à partir du tableau de la figure 3B. La figure 3D représente une étape d'optimisation du tableau de la figure 3C. Les éléments modifiés dans le tableau de la figure 3C sont encadrés par des pointillés. Le terme (xoxl) en ligne L1, colonne 2, est remplacé par la somme de celui-ci et du terme (xl) en ligne L2, colonne 2. On obtient, en ligne L1, colonne 2, le terme xo*xl, et la retenue, xoxl, est reportée en ligne L2, colonne 3 o elle remplit une case vide. Comme précédemment, oes somme et retenue sont obtenues direc- tement à partir des bits xo et xl du nombre X. Cette optimisation permet de faire apparaitre une case vide (un O) supplémentaire à l'extrémité droite de la ligne L2 (du mot L2). Ainsi, pour sommer les mots L1 et L2, il faut un additionneur de 4 bits seulement au lieu de 5 dans le cas de la figure 3C. Les bits de rangs 3 à 6 des mots L1 et L2 sont four- nis à l'additionneur et les bits de rangs O à 2 du mot L1 cons- tituent directement les bits de rangs 0 à 2 du nombre X2. Cette optimisation permet donc de diminuer la taille de l'addition- neur, et par conséquent la taille et le temps de réponse du circuit. La figure 4A représente un circuit élévateur au carré réalisé à partir du tableau de la figure 3B. Ce circuit comprend des circuits de prétraitement 30 recevant les bits du nombre X à élever au carré. Ces circuits de prétraitement fournissent tous les termes non-nuls (xixj, xk) du tableau de la figure 3B; ils sont obtenus directement à partir des bits x du nombre X par des portes ET. Un additionneur 5 bits 32 somme les bits de rangs 2 à 6 de mots Ll et L2. Les bits de rangs O et 1 du mot Ll sont fournis directement en tant que bits de rangs O et 1 du carré x2. Un additionneur 4 bits 34 somme le mot L3 aux 4 bits de poids fort de sortie de l'additionneur 32, les deux sorties de poids faible étant fournies directement en tant que bits de rangs 2 et 3 du carré X2. Tous les bits sauf un du mot L3 étant nuls, l'additionneur 36 ne comprend que des cellules de demi- addition. La figure 4B représente un mode de réalisation de circuit élévateur au carré selon l'invention issu de l' étape d'optimisation de la figure 3D. Ce circuit comprend aussi des circuits de prétraitement 30 recevant les bits du nombre X et fournissant tous les termes non-nuls du tableau de la figure 3D. Ces termes sont obtenus directement à partir de bits x du nombre X par des combinaisons adéquates de portes logiques que l'homme du métier saura trouver par une simple consultation du tableau (par exemple, le terme x0*xl est obtenu par une porte ET recevant le bit xi et l'inverse du bit xo). Les bits de rangs 0 à 2 du mot L1 sont fournis en tant que bits de rangs 0 à 2 du nombre x2, et les bits de rangs 3 à 6 des mots L1 et L2 sont sommés par l'additionneur 36 pour fournir les 5 bits restants de rangs 3 à 7 du nombre X2. Avec ce mode de réalisation, on écono- mise un additionneur par rapport à celui de la figure 4A. Jusqu'ici, on a supposé que le nombre X était posi- tif. Toutefois, la présente invention s'applique également à des nombres binaires signés X' de n+l bits [xn,xnl,... x0], dont le bit xn est un bit de signe. Un nombre signé X' est exprimé, en décimal, par la somme des produits xi2i (i variant de 0 à n-l) et du terme -xn2n. Lorsque l'on élève ce nombre au carré, on obtient, en décimal, la somme des termes suivants: - x2, carré en décimal du nombre binaire positif X= [xnl,xn_2,. xo]; - la somme des termes -xixn2i+n+l, o i varie de 0 à n-l; et..DTD: le terme xn22n. Si l'on applique la règle classique du "complément à 2" pour exprimer des nombres binaires signés, o l'opposé d'un nombre binaire est égal à son inverse plus 1, le carré X'2 s'exprime, en décimal, par la somme des termes X2, xn22n, 2n+l, et des produits (xixn)*2i+n+l, o i varie de 0 à n-1. La figure 5A représente un tableau regroupant ces termes, à l'aide d'un exemple o le nombre signé X' est de 5 bits (4 bits et 1 bit de signe). Les termes du nombre x2 sont disposés de la mnême manière que dans le tableau de la figure 3B dans les colonnes 0 à 6. En outre, dans deux lignes supplémen- taires (L4 et L5), on trouve les termes (xixn)*, o i varie de 0 à n-l, classés dans les colonnes respectives i+n+l. On trouve dans la colonne n+ l (5), le terme 1, et dans la colonne 2n (8), le terme xn (x4). Comme précédemment, il faut sommer les lignes du tableau pour obtenir le carré x'2 recherché. L'organisation de la figure 5A n'est pas optimale mais est déjà plus avanta- geuse qu'une organisation que l'on obtiendrait en appliquant la méthode de Booth. La figure 5B représente une étape d'optimisation du tableau de la figure 5A. Les termes correspondant au nombre X2 sont optimisés selon ce qui a été décrit en relation avec la figure 3D. Le terme x4 de la colonne 8 est reporté à la première ligne de la colonne 8. On obtient ainsi n/2 +2 lignes à additionner (si n est pair) alors qu'avec la méthode de Booth il fallait additionner au moins n+l lignes. La figure 5C représente un tableau qui illustre une étape d'optimisation supplémentaire selon l'invention. Dans le tableau de la figure 5B, on a entouré par des pointillés les termes affectés par cette optimisation. Le terme (xlx2) de la ligne L2, colonne 5, est remplacé par la somme des termes de la colonne 5, lignes L2 à L4 (xlx2, (x0x4)*, 1). Cette somme est notée Si dans le tableau de la figure 5C et s'exprime par: Si = xOx4 XOU xlx2, o XOU désigne l'opérateur logique aJ Exclusif. La retenue de cette somme est reportée dans la colonne 6. Cette retenue est sommée aux termes (x2x3, x3) des lignes L1 et L2, colonne 6 pour former une somme S2 remplaçant le terme (x2x3) de la ligne Ll, colonne 6. Cette somme S2 s'exprime par: S2 = x2*x3 XOUJ xlx2 0J (x0x4)*. La retenue C2 de oette somme S2 est insérée à la case vide de la ligne L1, colonne 7. La retenue C2 s'exprime par: C2 = x3(x2 OU (xOx4)*). On dira que la retenue de la somme des termes de la colonne 5 a été propagée vers une case vide d'une colonne (7) de rang supé- rieur. Ainsi, on libère les cases de rangs 6 à 8 de la ligne L2, qui reçoivent respectivement les termes restants (xlx4)*, (x2x4)*, et (x3x4)* de la ligne L3. On arrive à réduire le tableau de deux lignes. La figure 6 représente un mode de réalisation de circuit élévateur au carré selon 1 'invention issu de l'optimi- sation de la figure 5C. Ce circuit se distingue de oelui de la figure 4B par le fait que les circuits de prétraitement 30 fournissent les valeurs du tableau de la figure 5C et que l'additionneur 36 est un additionneur de 5 bits sommant les termes des colonnes 3 à 7 de la figure 5C. Les termes de la colonne 8 sont ignorés car ils correspondent au bit de signe, qui est toujours nul car un carré est positif. En outre, 1 'additionneur 36 de 5 bits devrait normalement fournir la somme sur 5 bits et 1 bit de retenue. A la figure 6, le bit de retenue de l'additionneur 36, qui constituerait un neuvième bit du carré X'2, est ignoré. Un nombre binaire X' de n bits et 1 bit de signe peut prendre des valeurs décimales entre -2n et 2n -1. Dans un grand nombre de cas, par exemple si le nombre X' correspond à la différence de deux nombres binaires positifs de n bits, le nombre X' ne prend des valeurs décimales qu'entre -(2n -1) et 2n -1; dans ce cas, le carré du nombre X' s'exprime sur 2n bits. Par contre, si le nombre X' peut prendre la valeur -2n, le carré de ce nombre s'exprime sur 2n+1 bits; on tient alors compte de la colonne de rang 2n. Les figures 7A et 7B représentent des tableaux oorres- pondant aux étapes d'optimisation des figures 3A et 3D avec l'exemple d'un nombre X positif de n=8 bits. Dans la figure 7A, les termes sont répartis selon la règle générale exposée en relation avec la figure 3B. Le tableau camprend 5 lignes au lieu des 8 lignes obtenues en appliquant la méthode de Booth. Dans la figure 7B, le nombre de lignes du tableau a été réduit à 4 selon ce qui a été décrit en relation avec la figure 3C et on a annulé les termes les plus à droite jusqu'à la colonne 4 des lignes 2 et 3 selon ce qui a été décrit en rela- tion avec la figure 3D. Le terme de la ligne Li, colonne 2 (x0xl) a été remplacé par la somme de ce terme et de celui (xl) de la ligne L2, colonne 2. Le terme (xox2) de la ligne Li, colonne 3, est remplacé par la somme de oe terme et de la retenue de la somme effectuée dans la colonne 2. Dans la colonne 3, le signe + entouré correspond à l'opération OU Exclusif. Le terme de la ligne Li, colonne 4 (x0x3), est remplacé par la somme des termes des lignes L1 à L3 de la colonne 4 et de la retenue de la somme effectuée dans la colonne 3. Cette somme SO est exprimée par: SO = x0x3 XCU x2(xO OU xl*). Coanre la somme SO correspond à la somme de quatre termes, on a une double retenue. L'une, xlx2, est insérée à la ligne L3, colonne 5, et l'autre, x0x2x3, est insérée à la ligne L4, colonne 5, dans deux cases vides respectives. Bien entendu, camme on l'a précédemment mentionrx, les sormes insérées dans des cases du tableau ne sont pas obtenues par des additionneurs, mais directement par des circuits logiques, à partir des bits du nombre X. Ainsi, par exemple, le terme xOx2x3 de la ligne L4, colonne 5, est obtenu par une porte ET à trois entrées reoevant les bits x0, x2 et x3 respecti- vement. Dans le tableau de la figure 7B, on a également annulé le terme de la ligne L4, colonne 10, en le scamant au terme de la ligne précédente en reportant la retenue dans la colonne 11, et on a annulé le terme de la ligne L3, colonne 12, en le sanmmant au terme de la ligne précédente en reportant la retenue à la place du 0 de la ligne L2, colonne 13. En faisant apparaître des 0 aux extrémités des lignes, on simplifie la structure des additionneurs qui vont additionner ces lignes. Notamment, en faisant apparaître des 0 à l'extrémité droite des lignes, le nombre de bits des additionneurs diminue. Une optimisation particulièrement bonne est obtenue lorsque l'on a supprimé le plus grand nombre possible de termes aux extré- mités gauche et droite des lignes du tableau. Ces suppressions peuvent se faire de nombreuses manières qui apparaîtront à l'homme du nmétier, les suppressions illustrées dans les tableaux n'en constituent que des exemples. En effet, les termes de chaque colonne peuvent être permutés et chaque permutation peut entraîner une somme de termes différente pour annuler une case du tableau. La figure 8 représente un mode de réalisation particu- lièrement avantageux de circuit élévateur au carré selon 1 'invention issu de 1' optimisation du tableau de la figure 7B. Les termes de rangs 0 à 4 de la première ligne du tableau de la figure 7B sont fournis directement en tant que bits de rangs 0 à 4 du carré X2 à fournir. Selon un mode de réalisation avantageux de l'inven- tion, on utilise des additionneurs à sauvegarde de retenue (CARRY-SAVE) pour effectuer les sommes. Un additionneur à sauve- garde de retenue est un additionneur présentant trois entrées et deux sorties. Les trois entrées reçoivent trois nombres binaires à additionner. Une cellule élémentaire d'un tel additionneur est similaire à celle d'un additionneur normal, telle que repré- sentée dans la figure 2A, sauf que l'entrée Ci-1 de la cellule reçoit le bit de rang i du troisième nombre à additionner et que la sortie Ci de la porte OU 12 n'est pas reliée à la cellule suivante. Les sorties Si des portes OU exclusif 10 constituent une première sortie S de 1'additionneur à sauvegarde de retenue et les sorties Ci des portes (XJU 12 constituent la deuxième sortie C de oet additionneur. En outre, les rangs des sorties C sont augmentés de 1. Un tel additionneur a l'avantage de ne pas présenter de retard de stabilisation dû à la propagation des retenues. Son temps de réponse est approximativement égal au temps de commutation de la porte OU exclusif 10. Un premier de ces additionneurs à sauvegarde de retenue, 80, reçoit les bits de rangs 5 à 14 des mots L1 à L3. Les trois bits de rangs 12 à 14 du mot L3 étant nuls, les cellules élémentaires correspondantes de l'additionneur 80, qui ne doivent alors sommer que deux bits chacun, sont du type simple de la figure 2B. Un deuxième additionneur à sauvegarde de retenue 82 reçoit les deux sorties de l'additionneur 80 et les bits de rangs 5 à 9 du mot L4. Comme les bits de rangs 10 à 14 du mot L4 sont nuls, les cellules correspondantes de l'additionneur 82 sont du type simple de la figure 2B. Finalement, un additionneur normal (sans sauvegarde de retenue) 84 somme les sorties de 1'additionneur 82 et fournit les bits de rangs 5 à 15 du carré X2. L'additionneur 80 est un additionneur de 10 bits. Sa sortie S est fournie sur 10 bits et sa sortie C sur 11. Ainsi, l'additionneur 82 est un additionneur de 11 bits et fournit une sortie S sur 11 bits et une sortie C sur 12 bits. L'additionneur 84 est donc un additionneur de 12 bits et fournit normalement une sortie sur 13 bits. Seulement 11 parmi oes 13 bits sont utilisés, les autres étant nuls. Il s'avère en fait, dans l'exemple de la figure 7B, que les trois derniers bits de la sortie C de l'additionneur 82 sont toujours nuls; oeci permet de simplifier les additionneurs 82 et 84 en utilisant pour ces bits à 0 des cellules de demi-addition dans 1 'additionneur 84 et de supprimer les portes 12 et 14 des cellules correspondantes de 1 'additionneur 82. La figure 9A représente un tableau, correspondant à celui de la figure 5B, pour un nombre X' de n=8 bits xo à x7 et d'un bit de signe x8. Ce tableau est rempli selon les règles générales déjà énoncées en relation avec les figures 5A et 5B. La figure 9B représente une optimisation du tableau de la figure 9A selon ce qui a été décrit en relation avec la figure 5C. En effectuant des sommes qui ne seront pas décrites en détail, on a annulé des termes dans les lignes afin de pou- voir remonter les lignes 5 et 6 de la figure 9A. Les nouvelles valeurs des termes, provenant de sommes de termes de mêmes colonnes et de propagations de retenues, sont inscrites dans les cases. La somanme S1 à la ligne L4, colonne 9, s'exprime par x3x4 XCU xox8. La retenue Cl de oette somme, dans la ligne L3, colonnme 10, s'exprime par x3x4 aOU (xOxB)*. La somme S2 dans la ligne L2, colonne 10, s'exprime par x4*x5 XOU x6x3 et la retenue C2 de cette somanme, dans la ligne L3, colonne 11, s'exprime par x4*x5x6x3. La figure 10 représente un mode de réalisation de circuit élévateur au carré selon l'invention issu de l'optimi- sation de la figure 9B. Ce circuit est similaire à celui de la figure 8 sauf que l'on fournit à l'additionneur 80 un bit sup- plémentaire, de rang 12, du mot L3, et à l'additionneur 82 six bits supplémentaires, de rangs 10 à 15 du mot L4. Bien entendu, les circuits de prétraitement 30 de ce circuit sont distincts de ceux de la figure 8 puisque les fonctions logiques qu'ils doivent assurer, indiquées dans le tableau de la figure 9B, sont distinctes. La présente invention a été décrite à 1 'aide d'exem- ples particuliers de simplifications possibles de tableaux. Bien entendu, de nombreuses autres possibilités restent offertes à l'homme du métier en permutant les termes des colonnes et en annulant des termes à sa discrétion. REVENDICATIONS 1. Circuit élévateur au carré d'un nombre binaire X de n bits xo à xn-1, caractérisé en ce qu'il comprend: - des circuits de prétraitement (30) pour former 1 'ensemble des produits xixj des bits du nombre X, o i et J varient entre 0 et n-1 tel que ij, les sorties des circuits de prétraitement fournissant des mots (LO, L1...) tels que chacun est formé par une succession aussi complète que possible de produits choisis parmi ceux qui restent dudit ensemble après la formation du mot précédent, chaque produit xixj de oette succes- sion étant classé à un rang i+j+1 du mot si i est différent de J ou à un rang 2i si i=j; et - des additionneurs connectés pour former la somme des mots en tant que carré du nombre X. 2. Circuit élévateur au carré selon la revendication 1, caractérisé en ce que les circuits de prétraitement (30) comprennent des moyens pour former la saomme des produits correspondant normalement à deux bits de même rang de deux mots, cette somme étant fournie sur l'un desdits deux bits, et 1' autre desdits deux bits étant forcé à 0, la retenue de la somme étant propagée vers un bit normalement nul de l'un des mots. 3. Circuit élévateur au carré selon la revendication 2, caractérisé en oe que les circuits de prétraitement forment directement à partir des bits du nombre X les valeurs des bits à modifier par ladite somme et la propagation de ladite retenue. 4. Circuit élévateur au carré selon la revendication 1, caractérisé en ce que les additionneurs omprennent des additionneurs à sauvegarde de retenue (80, 82) disposés en cascade. 5. Circuit élévateur au carré, selon l'une quelconque des revendications 1 à 4, d'un nombre signé X' de n+l bits xO à xn, caractérisé en ce que les circuits du prétraitement compren- nent des moyens pour ajouter audit ensemble pour former lesdits mots, les termes: 1 classé au rang n+1 d'un mot, xn classé au rang 2n d'un mot, et les inverses des produits xixn, o i varie de 0 à n-l, classés respectivement aux rangs i+n+l d'un mot. 6. Circuit élévateur au carré de nombres signés selon la revendication 5, caractérisé en ce que n=8 et en ce que les mots à additionner comprennent: - un premier mot (L1) de 15 bits successifs xo, 0, xO*xl, xo(xl XOU x2), xOx3 XOU x2(xO OU xl*), xOx4, x0X5, xOx6, xOx7, xlx7, x2x7, x3x7, x4x7, x5x7, x6x7; - un deuxième mot (L2) de 15 bits successifs 0, 0, O, O, 0, xlx3, XlX4, xlx5, xlx6, x2x6, x4*x5 XOU x6x3, x4(x5 XOU x6), x5*x6, x5x6, x7; - un troisième mot (L3) de 13 bits successifs O, O, 0, O, O, xlx2, x2x3, x2x4, x2x5, x3x5, x3x4 OU (xOx8)*, x4*x5x6x3, x4x5x6; - un quatrième mot (L4) de 16 bits successifs O, O, O, O, O, xOx2x3, x3, O, x3*x4, x3x4 XOU xox8, (xlx8)*, (x2x8)*, (x3x8)*, (x4x8)*, (x5x8)*, (x6x8)*; les bits d'un rang donné supérieur à 4 étant permu- tables entre les mots.