FR 2596544 A1 19871002 FR 8604506 A 19860328 Circuit arithmétique et logique" La présente invention concerne un étage de circuit pour réaliser des opérations à partir de données d'entrée arithmétiques et/ou logiques A et B, en prenant en compte une éventuelle retenue provenant d'un étage précédent, et fournir 05 un résultat de l'opération ainsi qu'une éventuelle retenue à transmettre à l'étage suivant, comportant un dispositif programmable de prétraitement des données constitué d'un réseau de transistors MOS fournissant sur une "connexion logique" la combinaison logique P = a.A.B. + O.A.B + YoA.B + 10 6.A.B, a, é, y, 6, étant des paramètres de programmation, un dispositif de propagation de la retenue constitué d'un transistor MOS inséré dans une chaîne de propagation de la retenue d'un étage au suivant, la chaîne étant en outre préchargée au cours d'un temps d'horloge dans chaque étage, un dispositif de 15 génération de retenue exclusive de la propagation, commandé entre autres par une ligne d'inhibition, et un dispositif engendrant le résultat logique du circuit. Un tel circuit est utilisé dans les unités arithmétiques et logiques de calculateurs, en particulier dans les 20 microprocesseurs. De tels circuits sont décrits dans une communication intitulée: "A comparison of ALU structures for VLSI technology" de Ong & Atkins au "16e symposium on computer arithmetics" tenu du 20 au 22 juin 1983 à Arrhus (DK), publié par -l'I.E.E.E., qui montre en particulier un dispositif programmable de prétraitement des données destiné au calcul de la retenue, et une chaîne de propagation de retenue liée à ce dispositif. L'invention se propose de simplifier la réalisation - 2 d'un circuit arithmétique et logique qui comporte les dispositifs cités ci-dessus. Le but est d'obtenir une surface minimale d'un cristal semiconducteur dans lequel est intégré le circuit. A cet effet l'invention considère l'interaction entre les différents circuits et obtient que, si chacun des circuits n'est peut être pas optimal, l'ensemble des circuits l'est. A cet effet le circuit selon l'invention est notamment remarquable en ce que le dispositif de génération de retenue est constitué d'au moins trois transistors MOS, en série 10 entre la sortie de la chaîne de propagation de retenue et un point de potentiel correspondant au niveau logique bas, dont les grilles sont reliées respectivement à l'une des entrées de données, à la connexion portant ladite combinaison logique, et à la ligne d'inhibition, en ce que le transistor de propaga15 tion de retenue à sa grille reliée par un inverseur à ladite connexion portant la combinaison logique, et en ce que le dispositif engendrant le résultat logique du circuit est une porte OU exclusif à deux entrées, reliées respectivement à ladite connection logique et, via un inverseur, à l'entrée de rete20 nue. Ainsi, au lieu de comporter un circuit de calcul d'une combinaison logique pour la fourniture du résultat de l'étage, et un autre circuit pour le calcul de la retenue, un circuit commun est utilisé et seulement trois transistors sont 25 ajoutés pour remplir la fonction complète. Ceci sera expliqué plus en détail en regard de la figure 1. Dans le cas particulier ou le circuit selon l'invention fait partie d'un bloc logique à sélection de retenue, et comporte à cet effet deux chaînes de propagation de retenue 30 et deux dispositifs de génération de retenue, il est notamment remarquable en ce que, l'un de ces deux dispositifs étant constitué des trois susdits transistors MOS en série entre la première chaîne de propagation et le potentiel logique bas, et la grille du transistor dont le drain est directement relié à 35 cette chaîne étant reliée à ladite connexion logique, l'autre dispositif de génération est constitué d'un seul transistor, dont la grille est également reliée à ladite connexion -3 logique, et qui est branché entre l'autre chaîne de propagation et la source du transistor dont le drain est relié à la première chaîne de propagation. On a donc réalisé un circuit pour sélection de 05 retenue en ajoutant seulement un transistor au dispositif de génération de retenue. La description qui va suivre, en regard des dessins annexés décrivant des exemples non limitatifs fera bien comprendre comment l'invention peut être réalisée. La figure 1 représente un bloc diagramme d'un circuit de l'art antérieur. La figure 2 est un schéma électrique d'un étage selon l'invention, à simple propagation de retenue. La figure 3 est un schéma électrique d'un étage 15 selon l'invention, prévu pour une sélection de retenue. Le circuit de la figure 1 est un étage d'une unité qui en comporte une pluralité. L'unité traite deux mots de n bits, et elle comporte n étages de circuit de ce type. Sur l'entrée A est présent un bit de l'un des deux mots correspondant au rang de l'étage considéré, et sur l'entrée B le bit correspondant de l'autre mot. Les entrées A et B combinées avec des lignes de programmation 'Prog" engendrent les signaux fournis par le dispositif PT: - P est la 'condition de propagation": une retenue est propagée de l'étage précédent vers le suivant. - G est la "condition de génération": la retenue en sortie de l'étage considérée COUT est engendrée, quelle que soit la retenue à l'entrée CIN (la retenue est active quand-CIN (ou 30 COUT) est au niveau bas). On prévoit aussi parfois un signal K entraînant l'absence d'une retenue, quelle que soit la retenue CIN. Toutefois ce signal est redondant, car on peut admettre que si P et G sont tous deux inactifs, c'est qu'il ne doit pas y avoir 35 de retenue. Un mode de réalisation minimum utilise généralement une disposition pour gérer la propagation de la retenue, connue sous le nom anglais 'manchester carry ripple": le signal P est utilisé pour propager CIN vers COUT; le signal G est utilisé 05 pour amener à zéro la sortie COUT. Si P et K sont tous deux à zéro, la sortie COUT est au niveau haut. Jusqu'à présent l'approche adoptée pour concevoir un tel circuit consistait à minimiser la dimension de chacun des trois blocs de la figure 1. On utilisait dans le dispositif programmable PT un ensemble 10 logique pour engendrer le signal P et un deuxième ensemble logique pour engendrer le signal K. La chaîne de propagation de retenue comportait simplement un transistor en série entre CIN et COUT pour commander la propagation, et un transistor entre 15 COUT et un point au niveau logique bas, en général appelé masse', pour imposer un niveau bas en sortie. Le dispositif R enfin est un circuit de calcul du bit résultat de l'étage. La figure 2 montre le détail d'un mode de réalisa20 tion de l'invention, dans lequel deux des trois blocs de la figure 1 sont imbriqués. Les lignes de programmation a, ô, y, 6 attaquent un réseau de portes logiques constituées chacune par un transistor N-MOS: la ligne a est reliée à la source du transistor 6, 25 la ligne l à celle du transistor 7, la ligne y à celle du transistor 11, et la ligne ô à celle du transistor 10. Le drain du transistor 6 est réuni à celui du transistor 7 et à la source du transistor 8 dont le drain est réuni à une connexion logique" portant le signal P. De même le drain du transistor 11 est réuni à celui du transistor 10 et à la source du transistor 9 dont le drain est réuni à la connexion logique P. Les grilles des transistors 6 et 11 sont réunies à l'entrée binaire B via un inverseur 13, celles des transistors 35 7 et 10 sont connectées à l'entrée B, celle du transistor 9 est connectée à l'entrée binaire A et celle du transistor 8 -5 est reliée, via un inverseur 12, à l'entrée A. Avec seulement les six transistors 6 à 11, et les deux inverseurs 12, 13, l'application linéaire complète: P = a A.B + i A.B + y.A.B.+ 6.A.B 05 peut être réalisée. Un inverseur supplémentaire 4 donne le signal P. Cet inverseur est rebouclé par un transistor p-mos 5 pour améliorer le niveau haut du signal. Ainsi cet inverseur a son entrée P reliée à une source de tension au niveau logique haut 10 (VDD) par un transistor 5 de polarité opposée à celle des transistors du réseau logique et de propagation, et dont la grille est reliée à la sortie dudit inverseur. Le transistor P-MOS 5 est juste assez actif pour procurer un bon signal haut après le réseau N-mos; il est utilisé à la place d'une charge 15 statique ou reliée à une horloge. L'inverseur 4 relie la ligne logique P à la grille d'un transistor N-MOS 15, inséré entre l'entrée de retenue CIN et la sortie de retenue COUT et qui constitue un élément d'une chaine de propagation de retenue d'un étage à l'autre. Le circuit est relié à une horloge (non représentée) par une ligne "Prechu. Lors d'un premier temps cette ligne est au niveau logique haut et le transistor NMOS 16 est passant, (sa grille est reliée à la ligne 'Prech") et relie donc un point au niveau haut (l'alimentation VDD), connecté 25 à son drain, à la sortie COUT, reliée à sa source. Au cours d'un deuxième temps la ligne "Prech" est à zéro et la sortie COUT est isolée de VDD. C'est à ce moment que les opération logiques du circuit sont réalisées. On se rend facilement compte que si un niveau haut est souhaité pour COUT, il suffit de ne pas décharger la ligne COUT, en d'autres termes il suffit de ne rien faire. C'est pourquoi le signal K de la figure 1 n'est pas utile ici. Rappelons que CIN et COUT sont au niveau bas lorsqu'une retenue est présente. La sortie COUT peut être déchargée par différents moyens: soit P = O et un zéro sur CIN peut être propagé, soit P = 1 (P = O) et un circuit spécifique appelé "générateur de retenue' engendre une retenue COUT en déchargeant la ligne COUT. Ce générateur de retenue est constitué par les trois transistors NMOS 1, 2, 3 en série entre la sortie COUT de retenue et un point de potentiel correspondant au niveau logique bas ("masse") dont les grilles sont reliées respectivement à l'une des entrées de données (A), à la connexion por1O Lant ladite combinaison logique (P), et à la ligne d'inhibition KILL. Cette ligne a pour but d'inhiber toute production de retenue, quelle que soit la combinaison logique e, par exemple dans le cas d'opérations logiques et non pas arithmé15 tiques. Si la ligne KILL est à la masse, le transistor 3 est bloqué et l'ensemble des transistor 1,2, 3 ne peut jamais décharger la ligne COUT. La conception de la chaîne de propagation n'est pas minimale puisqu'il y a trois transistors en série pour mettre 20 COUT à la masse (au lieu d'un) , mais il n'y a qu'un seul réseau logique au lieu de deux. La dernière partie du circuit est un montage OU exclusif entre CIN et P. Le signal CIN est obtenu à la sortie de l'inverseur 17 à partir de CIN. Le signal CIN est appliqué à 25 la grille du transistor NMOS 19 et à la source du transistor NMOS 18. Le signal P est appliqué à la grille du transistor 18 et à la source du transistor 19. Les drains des deux transistors sont réunis ensemble, et à la sortie de résultat S(i), via un inverseur 20. Deux transistors P-MOS 21, 22 en série à 30 partir de VDD sont reliés au point- commun des drains des transistors 18, 19, et leurs grilles sont reliées respectivement au signal P et au signal CIN. Si les deux signaux CIN et P sont à zéro, les transistors 18, 19 sont bloqués et leur drain est 'tiré" vers VDD par les transistors 21, 22 qui eux, étant de polarité opposée à celle des transistors 18, 19, sont passants. Si CIN et P sont hauts, les transistors 18, 19 sont passants et transmettent tous deux le niveau haut. Si CIN est haut et P bas, le transistor 19 transmet le zéro de P, et si P est haut et CIN est bas, le transistor 18 transmet le zéro de CIN. La sortie de l'inverseur 20 est donc haute si le 05 couple CIN-P a des valeurs 0-1 ou 1-0, et basse pour 0-0 et 1-1. Il est facile de vérifier que les trois parties cidessus remplissent les fonctions suivantes: P = a.A.B. + 1.A.B. + N.A.B. + 6.A.B. COUT = (A.P.K.)-.(P+CIN) ou bien COUT = A.K.P. + P.CIN ou K = KILL S = CIN 0 P Il faut remarquer que l'équation linéaire P(Q, f, y, 6) permet seize combinaisons: seulement huit sont réellement utilisées ici, mais on pourrait imaginer un circuit plus universel. Si l'on désire analyser plus en détail les combinaisons utiles, il est aisé de vérifier que l'on obtient les résultats d'opération suivants: -8 - 10 15 20 25 Lignes de prografmation la 1 l I Y I 6 I O O i o o O o i O o i o addition A.B.CIN+A.B A.B o soustract. A.B.CIN+ A.B S(i) f. a) 3 3 -) QO X) A décalé A A ou B A ou B excl A et B A et B A i i i Signal logique P A.B A o o o o A.B+A.B= A ou B excl A.yB. A 1 Si B=O A A.B A. B+A. B A.B A.B La figure 3 mais prévu pour mettre retenue. On entend par représente un circuit du même genre, en là oeuvre un dispositif de sélection de qu'au lieu de prévoir une chaine propageant la retenue d'un étage au suivant, et avec laquelle 30 chaque étage doit attendre le résultat de l'étage précédent, on prévoit deux chaines dont l'une introduit une retenue et l'autre une "non-retenue". Alors les calculs sont faits dans l'étage en même temps que dans l'étage précédent, après quoi, le résultat (retenue) de l'étage précédent étant disponible, 35 on n'a plus qu'à choisir entre les deux chaînes. Le circuit de - 9 la figure 3 comporte donc deux chaînes de propagation reliant deux entrées de retenue CIN, CINBIS à deux sorties de retenue COUT, COUTBIS. Les éléments de la figure 3 qui ne diffèrent pas de 05 ceux de la figure 2 portent les mêmes références et ne seront pas décrits à nouveau. Les éléments qui, bien que nouveaux par rapport à ceux de la figure 2, ont une fonction semblable, portent la même référence à laquelle est ajoutée la lettre B. C'est ainsi que le dispositif de génération de retenue sur 10 la ligne CIN, COUT est constitué des trois transistors N-MOS 1, 2, 3, en série entre la ligne COUT et la masse. Il est toutefois nécessaire, comme c'est le cas ici, que le transistor placé du côté de la ligne COUT soit celui dont la grille est 15 reliée à la connexion logique P, alors que dans le schéma de la figure 2 l'ordre de mise en série des trois transistors était indifférent. Alors le dispositif de génération de retenue pour la ligne COUTBIS(i) peut n'être constitué que d'un seul transistor N-MOS lB dont la grille est reliée à la 20 connexion logique P, et qui est branché avec son drain relié à la ligne de propagation COUTBIS(i) et sa source reliée à celle du transistor 1 dont le drain est relié à la ligne de propagation de retenue COUT(i). Bien entendu il faut néanmoins un autre transistor supplémentaire 16B pour réaliser la précharge 25 de la ligne COUTBIS à partir de la ligne "Prech". Les lignes C15 et C15BIS et les transistors 26, 26B servent à réaliser le choix entre les informations portées par les lignes CIN, CINBIS pour le calcul du résultat S(i) de l'étage, choix qui a 30 été expliqué plus haut. Les lignes C15 et C15bis apportent donc la retenue de l'étage précédent, ou d'un groupe d'étages -précédents, et l'inverse de cette retenue, respectivement, lorsque l'étage précédent a terminé ses calculs. Les transistors 26 et 26B dont les grilles sont respectivement reliées à la ligne C15 et à la ligne C15BIS, sont insérés entre]i sortie des inverseurs, respectivement 17 et 17B, et 3 lat source du transistor 18. Selon la retenue de l'étage - 10 précédent, c'est donc l'un ou l'autre des transistors 26, 26B qui est passant et ceci a pour effet de sélectionner CIN(i)'ou CINBIS(i), respectivement. Les différents inverseurs mentionnés ne sont pas représentés en détail, leur réalisation étant parfaitement 05 connue, par exemple dans la technologie dite C-MOS (un N-MOS et un P-MOS). Il est clair que les termes "haut" et "bas" signifient respectivement "à l'alimentation" et "à la masse" et que si on employait des transistors de polarités respectivement inverses, le niveau "haut" serait seulement haut en valeur absolue. - 11 REVENDICATIONS: 1. Circuit constituant un étage d'une unité qui en comporte une pluralité, pour réaliser des opérations à partir de données d'entrée arithmétiques et/ou logiques binaires A et 05 B, en prenant en compte une éventuelle retenue (CIN) provenant d'un étage précédent, et fournir un résultat de l'opération ainsi qu'une éventuelle retenue (COUT) à transmettre à l'étage suivant, comportant un dispositif programmable de prétraitement des données constitué d'un réseau de transistors MOS fournissant sur une connexion logique (P) la combinaison logique P = " A.B. + 0.A.B. + y A.B. + 6 A.B, a,, 'y, 6, étant des paramètres de programmation, un dispositif de propagation de la retenue constitué d'un transistor MOS inséré entre une entrée de retenue et une sortie de retenue d'une chai15 ne de propagation de la retenue d'un étage au suivant, la chaine étant en outre préchargée au cours d'un temps d'horloge dans chaque étage, un dispositif de génération de retenue exclusive de la propagation, commandé entre autres par une ligne d'inhibition (K), et un dispositif engendrant le résultat lo20 gique du circuit, caractérisé en ce que le dispositif de génération de retenue est constitué d'au moins trois transistors MOS (1, 2, 3), en série entre la sortie de la chaîne de propagation de retenue et un point de potentiel correspondant au niveau logique bas, dont les grilles sont reliées respective25 ment à l'une des entrées de données, à la connexion portant ladite combinaison logique (P), et à la ligne d'inhibition, en ce que le transistor de propagation de retenue (15) a sa grille reliée par un inverseur à ladite connexion portant la combinaison logique, et en ce que le dispositif engendrant le 30 résultat logique du circuit est une porte OU exclussif à deux entrées, reliées respectivement à ladite connexion logique et, via un inverseur, à l'entrée de retenue. - 12 2. Circuit selon la revendication 1, prévu pour mettre en oeuvre un dispositif de sélection de retenue, et comportant à cet effet deux chaînes de propagation de retenue (CIN, CINBIS) et deux dispositifs de génération de retenue, caracté05 risé en ce que, l'un de ces deux dispositifs étant constitué des trois susdits transistors MOS, en série entre la première chaine de propagation et le potentiel logique bas, la grille du transistor (1) dont le drain est directement relié à cette chaîne étant reliée à la connexion logique (P), l'autre 10 dispositif de génération est constitué d'un seul transistor (1B) dont la grille est également reliée à la connexion logique (P) et qui est branché entre l'autre chaine de propagation et la source du transistor (1) dont le drain est relié à la première chaine de propagation. 3. Circuit selon l'une des revendications 1 ou 2, dans lequel le réseau de transistors de prétraitement de données est constitué de quatre liaisons, chacune reliant l'une de quatre lignes de programmation (t, À, Y, 6) à la connexion portant ledite combinaison logique, chacune de ces liaisons comportant au moins l'espace drainsource d'un transistor MOS, caractérisé en ce que deux des liaisons comportent deux transistors en série alors que les deux autres liaisons ne comportent qu'un transistor, reliant chacun une ligne de programmation au point milieu des deux transistors d'une des liaisons à 25 deux transistors. 4. Circuit selon l'une des revendications 1 ou 2, caractérisé en ce que l'inverseur qui relie ladite ligne portant la combinaison logique à la grille du transistor de propagation (15) a son entrée- reliée à une source de tension au ni30 veau logique haut par un transistor (p) de polarité opposée à celle des transistors du réseau logique et de propagation, et dont la grille est reliée à la sortie dudit inverseur.