Brevet FR2664421A1 — publié le 19920110

Décodeur Dréchargé à autoverrouillage L'invention concerne un mode de réalisation d'un circuit décodeur. Un tel circuit comporte plusieurs entrées destinées à à recevoir des bits d'adresse et plusieurs sorties fournissant des signaux de sélection. Pour toute valeur déterminée de l'adresse appliquée en entrée, le décodeur sélectionne, c'est-à-dire provoque l'activation d'une seule de ces sorties. Ainsi, un décodeur à n bits d'adresse peut sélectionner une sortie parmi 2n au plus. Les décodeurs sont couramment utilisés dans les circuits complexes pour réaliser une fonction de sélection quelconque, par exemple pour adresser une mémoire ou un banc de registre en fonction d'une adresse proprement dite. Un décodeur peut servir également pour commander un circuit décaleur ("barrel shifter") en fonction d'une valeur binaire de décalage. Un tel circuit décaleur a fait l'objet de la demande de brevet français FR 89 16174 déposée le 07 décembre 1990 et ayant pour titre "Circuit décaleur avec générateur de bits de parité". Pour réaliser un décodeur, on utilise généralement un ensemble de portes ET à plusieurs entrées dont les sorties constituent les sorties du décodeur. D'autre part, chaque entrée d'une porte ET reçoit un des bits de l'adresse ou son complément de sorte qu'une seule de ces portes ET fournisse un signal de sortie actif. Bien entendu, il et équivalent d'utiliser des portes NI qui peuvent être préférées aux portes ET pour des raisons de commodité de réalisation dans la technologie utilisée. En particulier, dans le but d'augmenter la densité d'intégration, on utilise des portes logiques dynamiques utilisant la technique de la précharge. Une porte de ce type est réalisée au moyen d'une ligne préchargée à une tension déterminée pendant une phase de précharge. Puis, au cours d'une phase d'évaluation suivante, cette ligne est potentiellement déchargée en fonction des signaux d'entrée. Ce type de porte préchargée est particulièrement bien adapté à la technologie MOS ou CMOS. Avec la convention de la logique positive (signal actif correspondant à une tension positive et inactif lorsque sa tension est nulle), on réalise une porte NI CMOS préchargée de la façon suivante : la ligne est préchargée par l'intermédiaire d'un transistor PMOS relié à une tension positive Vdd et rendu passant pendant la phase de précharge et plusieurs transistors NMOS branchés en parallèle entre cette ligne et la masse reçoivent sur leurs grilles des signaux d'entrée qui sont validés pendant la phase d'évaluation. Ces portes NI préchargées en technologie CMOS peuvent donc être utilisées pour réaliser un décodeur. Dans ce cas, chaque sortie du décodeur est associée à une ligne d'une porte NI et, pendant la phase d'évaluation, une seule de ces lignes reste chargée. Bien entendu, les signaux de sélection issus des sorties du décodeur sont généralement destinés à commander d'autres circuits tels que les amplificateurs de lecture et d'écriture de registres ou d'une mémoire. Ils peuvent aussi servir d'entrée à d'autres circuits logiques. Si les circuits commandés par le décodeur sont eux-mêmes des circuits préchargés, il faut prévoir des moyens pour maintenir à zéro les sorties du décodeur pendant toute la phase de précharge et n'autoriser le transfert de l'état d'une ligne vers sa sortie que pendant la phase d'évaluation des circuits commandés. Pour cela, on interpose habituellement entre chaque ligne et sa sortie correspondante un circuit réalisant la fonction ET entre l'état de la ligne et un signal d'horloge d'évaluation, c'est-à-dire actif en dehors des périodes de précharge.On réalise ainsi un fonctionnement en deux phases : une phase de précharge suivie d'une phase d'évaluation. Ces phases sont définies par deux signaux d'horloge qui ne doivent pas se recouvrir. Bien entendu, l'idéal serait d'utiliser deux signaux d'horloge complémentaires l'un de l'autre de façon à avoir la vitesse de fonctionnement maximale. Cependant, cette solution idéale n'est généralement pas possible car il faut tenir compte des retards inévitables entre les changements d'état des lignes et ceux des signaux de sortie au niveau des entrées des circuits commandés par le décodeur. Il faut donc prévoir une période de non recouvrement correspondant à un retard entre la fin de la phase de précharge et le début de la phase d'évaluation suivante des circuits commandés. Selon la solution habituelle, ce retard est obtenu en agissant directement sur le déphasage des signaux d'horloge définissant les phases de précharge et d'évaluation. Ce déphasage doit être le plus faible possible mais suffisant pour assurer un fonctionnement correct malgré la dispersion des caractéristiques des circuits due aux tolérances de fabrication. Il en résulte que cette solution n'est pas optimale du point de vue performances. L'invention a pour but de remédier à cet inconvénient tout en proposant une solution simple à réaliser. Elle consiste à tirer profit du fait que dans un décodeur, une seule sortie est active à la fois et que par conséquent, une seule ligne reste chargée pendant la phase d'évaluation. Ainsi, chaque ligne non sélectionnée permet de dériver un signal d'évaluation dont le déphasage par rapport au signal d'horloge de précharge prend toujours la valeur minimale et suffisante indépendamment des dispersions de fabrication. Plus précisément l'invention a pour objet un décodeur comportant plusieurs entrées pour recevoir des bits d'adresse et plusieurs sorties fournissant des signaux de sélection dont un seul est actif en fonction de la valeur de ladite adresse appliquée en entrée, la valeur logique de chaque sortie étant définie pendant une phase d'évaluation par l'état logique d'une ligne associée qui est préchargée pendant une phase de précharge précédant ladite phase d'évaluation , ledit décodeur étant caractérisé en ce qu'il comporte des moyens pour transférer l'état logique de chaque ligne vers la sortie associée et pour conditionner ledit transfert par l'état déchargé d'une autre ligne Ainsi, une ligne quelconque peut jouer le rôle de générateur de signal d'autorisation de transfert pour une ou plusieurs autres lignes quelconques.Parmi toutes les possibilités envisageables, il convient cependant de choisir parmi celles dont la réalisation est la plus simple ou qui présente la meilleure immunité aux dispersions. En particulier, il est préférable d'organiser le circuit de façon symétrique, ce qui permet un dimensionnement uniforme des composants. Dans ce but et selon un autre aspect de l'invention, le décodeur est caractérisé en ce que lesdites lignes sont placées selon une disposition régulière qui permet de considérer l'ensemble des lignes comme étant formé de plusieurs paires de lignes, la distance entre deux lignes d'une paire quelconque étant constante, et en ce que le transfert de l'état logique de chaque ligne d'une paire vers la sortie associée est conditionné par l'état déchargé de l'autre ligne de la même paire. En l'absence de contrainte particulière de topologie, il est préférable de réduire au maximum les longueurs des liaisons électriques. Aussi, selon un mode de réalisation particulier de l'invention, chaque paire de lignes est constituée de deux lignes voisines. L'invention propose également un mode de réalisation particulièrement simple qui sera exposé en détail dans la description qui va suivre. La figure 1 représente un schéma d'ensemble du décodeur selon l'invention. La figure 2 représente les circuits associés à deux lignes du décodeur. La figure 3 est un chronogramme servant à expliquer le fonctionnement. La figure 4 représente un détail de réalisation de l'invention. La figure 1 représente le décodeur 1 selon l'invention ainsi qu'un circuit 5 générateur d'adresses et, à titre d'illustration, un circuit préchargé 6 commandé par le décodeur 1. Le générateur 5 d'adresses fournit à l'entrée du décodeur 1 les bits d'adresse AI, A2, ..., Ai, ..., An et, selon la réalisation représentée, il fournit également les bits d'adresse complémentaires AI* , A2*, .., Ai* ..., An*. La réalisation détaillée du générateur 5 peut être très variable selon le type d'utilisation du décodeur. Généralement, le générateur 5 comprend un registre de sortie contenant chaque bit d'adresse et son complément. L'entrée 4 du décodeur 1 reçoit les bits d'adresse et consiste essentiellement en un réseau d'interconnexion permettant de transférer sélectivement les bits d'adresse Ai ou leurs compléments Ai* vers les entrées correspondantes de la matrice 2 formée de p portes NI préchargées. Dans le cas où le générateur 5 ne fournirait pas les compléments des bits d'adresse, le circuit d'entrée 4 comprendra également un ensemble d'inverseurs pour fournir ces compléments. Les p sorties Cl, C2, ..., Cj, ..., Cp du décodeur 1 correspondent aux sorties des portes NI de la matrice 2. Ces sorties Cj sont reliées à l'entrée d'autres circuits placés en aval. Chacun de ces circuits 6 fournit une ou plusieurs sorties S fonction des signaux de sélection Cj et d'autres variables d'entrée X, Y. Le décodeur selon l'invention étant de type préchargé, il comporte un circuit de précharge 3 synchronisé par un- signal d'horloge CK qui définit la phase de précharge. D'autre part, les sorties du générateur 5 sont validées pendant la phase d'évaluation pouvant, selon l'invention, être définie par le signal d'horloge CK* complément de CK. Les circuits 6 sont aussi de type préchargé et comportent par conséquent des circuits de précharge synchronisés par l'horloge CK. L'ensemble représenté à la figure 1 fonctionne de la façon suivante. Lorsque CK = 1, les circuits de précharge du décodeur 1 et de chaque circuit aval 6 sont actifs et toutes les sorties Cj sont à 0. Lorsque CR repasse à 0, les circuits de précharge sont désactivés et simultanément les signaux d'adresse Ai sont validés mais les sorties Cj sont maintenues à 0 tant que chacune des lignes n'est pas dans un état stable. La figure 2 montre de façon plus détaillée les éléments constitutifs du décodeur 1. Deux lignes SELj, SELk associées respectivement aux sorties Cj, Ck ont été représentées. Chacune de ces lignes, par exemple SELj, permet de réaliser une porte NI à n entrées aji, aj2, ..., aji, ...ajn. Cette porte comporte un transistor PMOS de précharge Pj dont le chemin drain-source relie la ligne SELj à une tension positive Vdd et n transistors NMOS (non référencés) dont les chemins drain-source relient chacun la ligne SELj à la masse. Le transistor Pj reçoit sur sa grille le signal CK* qui est le complément du signal CK définissant la phase de précharge. Chaque transistor NMOS reçoit sur sa grille un signal aji ayant pour valeur celle du bit d'adresse de même poids Ai ou de son complément Ai*. De façon analogue, la porte NI associée à la ligne SELk comporte un transistor PMOS de précharge Pk et n transistors NMOS disposés de la même façon et recevant sur leurs grilles les signaux aki. La ligne SELj est reliée à l'entrée d'un amplificateur commandé Tj, dont la sortie constitue la sortie Cj du décodeur. L'amplificateur Tj est commandé par la sortie Rk d'un inverseur Qk relié en entrée à la ligne SELk. De même, la ligne SELk est reliée à la sortie Ck par l'intermédiaire de l'amplificateur Tk commandé par la sortie Rj de l'inverseur Qj dont l'entrée est reliée à la ligne SELj. Il convient cependant de noter que la figure 2 montre une réalisation fonctionnelle des amplificateurs Tj, Tk et des inverseurs Qj, Qk. Nous verrons en référence à la figure 4 comment réaliser pratiquement ces circuits. A titre d'illustration, la figure 2 comporte un circuit préchargé 6 commandé par la sortie Cj. La sortie S du circuit 6 vérifie l'équation logique : S = (Y + X.Cj)*, où le symbole * indique qu'il s'agit du complément de l'expression entre parenthèses. Les chronogrammes de la figure 3 vont maintenant nous aider à expliquer le fonctionnement du circuit de la figure 2. La figure 3 représente les variations en fonction du temps des signaux CK, SELj, SELk, Cj, S pendant deux cycles complets comprenant chacun une phase de précharge, repectivement PC1, PC2 et une phase d'évaluation, respectivement EV1, EV2. Nous nous sommes placés dans le cas où l'état de la ligne S pendant une phase d'évaluation ne dépend que du signal de sélection Cj, c'est-à-dire avec Y = 0 et X = 1, pour le circuit 6 représenté comme exemple. L'exemple de fonctionnement donné à la figure 3 suppose que SELj est sélectionnée au cycle 1, puis que ni SELj ni SELk ne sont sélectionnées au cycle 2. La première phase de précharge PC1 correspondant à l'état haut du signal d'horloge CK entre les instants tO et tl. Pendant cet intervalle de temps, CK* est à zéro, ce qui rend conducteurs tous les transistors de précharge du décodeur et du circuit 6. Il en résulte que les lignes SELj, SELk et S se chargent à la tension positive Vdd. La première phase d'évaluation EV1 commence à l'instant tl où CK repasse à zéro. Les transistors de précharge sont alors bloqués et les lignes d'adresse Ai sont évaluées. Selon notre hypothèse, la ligne SELj est sélectionnée, ce qui signifie que les signaux aji appliqués aux grilles des transistors NMOS de cette ligne sont tous à zéro et que la ligne reste chargée. Par contre l'un au moins des signaux aki commandant la ligne SELk prend une tension positive, ce qui provoque la décharge de cette ligne. Conformément à l'invention, tant que la ligne SELk n'est pas suffisamment déchargée l'amplificateur Tj a sa sortie maintenue à la tension de masse.La décharge de SELk provoque à partir de l'instant t2 la transmission de l'état logique de la ligne SELj sur la sortie Cj, ce qui provoque ensuite à partir de l'instant t3 la décharge de la ligne S. Le changement d'état de la ligne S est en fait retardé par rapport à celui de la sortie Cj qui est lui-même retardé par rapport à celui de la ligne SELk. Ces retards qui ont été exagérés sur la figure pour des raisons de clarté sont dus aux temps de commutation des circuits (inverseurs, amplificateurs) ainsi qu'aux délais de transmission (effet capacitif) des différentes liaisons. La phase de précharge suivante PC2 entre les instants t4 et t5 provoque à nouveau la charge des lignes SELj, SELk, S. A partir de l'instant t4, les entrées aki sont à 0, la ligne SELk repasse à 1 et par conséquent la sortie Cj repasse à zéro, ce qui assure la charge de la ligne S. La phase d'évaluation suivante EV2 débute à l'instant t5. Comme les lignes SELj et SELk ne sont pas sélectionnées, elles subissent une décharge, ce qui a pour effet notamment de maintenir la sortie Cj à zéro. On obtiendrait d'ailleurs le même résultat si la ligne SELk avait été sélectionnée. Le montage de la figure 2 réalise donc une synchronisation du signal de sortie associé à une ligne par l'état d'une autre ligne et réciproquement. Ainsi, lorsque le décodeur est réalisé sous forme de circuit intégré, il y a compensation automatique des variations des caractéristiques des circuits dues aux tolérances de fabrication car les constantes de temps des différentes lignes varient de la même façon. On peut bien sûr envisager différentes organisations du décodeur. Théoriquement, n'importe quelle ligne pourrait servir à synchroniser n'importe quelle autre, voire plusieurs autres. Cependant, toujours dans le but de compenser au mieux les tolérances de fabrication, il est préférable de choisir les solutions qui assurent le maximum de symétrie. On a donc intérêt à regrouper les lignes par paires de sorte que la distance électrique (en pratique physique) entre deux lignes d'une paire quelconque reste constante et à utiliser une ligne de la paire pour synchroniser l'autre et réciproquement. En particulier, chacune des ces paires pourra être constituée de deux lignes voisines de façon à racourcir les liaisons Bien entendu, on pourrait choisir d'autres solutions pour tenir compte de contraintes topologiques particulières. La réalisation de la figure 2 pourrait donner l'impression que la mise en oeuvre de l'invention entraîne une complication du circuit (adjonction d'inverseurs supplémentaires associés à chaque ligne). En réalité, ce n'est pas forcément le cas en particulier dans le cadre d'une réalisation en technologie CMOS. La figure 4 illustre cette possibilité. Elle représente la réalisation CMOS de l'amplificateur Tj de la ligne SELj. Un premier inverseur CMOS P1, N1 dont l'entrée est reliée à la ligne SELj a sa sortie reliée à une entrée d'une porte NI ("NOR") CMOS P2, P3, N2, N3 ayant Cj comme sortie et dont une seconde entrée reçoit SELk. La porte P2, P3, N2, N3 est alors commandée par le signal SELk appliqué aux grilles des transistors N3 et P3. En pratique, il conviendrait bien sûr de dimensionner les transistors P3 et N3 par rapport aux autres transistors de façon à ce qu'ils commutent plus rapidement pour ne pas retarder la remise à zéro de la sortie Cj lors des précharges ou son changement d'état lors des évaluations. Revendications 1. Décodeur (1) comportant plusieurs entrées pour recevoir des bits d'adresse (Ai, A2, ..., Ai, ..., An) et plusieurs sorties (C1, C2, ..., Cj, ..., Cp) fournissant des signaux de sélection dont un seul est actif en fonction de la valeur de ladite adresse appliquée en entrée, la valeur logique de chaque sortie (Cj) étant définie pendant une phase d'évaluation (CK*) par l'état logique d'une ligne (SELj) associée qui est préchargée pendant une phase de précharge (CK) précédant ladite phase d'évaluation (CK*), ledit décodeur étant caractérisé en ce qu'il comporte des moyens (Tj, Qk) pour transférer l'état logique de chaque ligne (SELj) vers la sortie (Cj) associée et pour conditionner ledit transfert par l'état déchargé d'une autre ligne (SELk). 2. Décodeur selon la revendication 1, caractérisé en ce que lesdites lignes (SELj, SELk) sont placées selon une disposition régulière qui permet de considérer l'ensemble des lignes comme étant formé de plusieurs paires de lignes, la distance entre deux lignes d'une paire quelconque étant constante, et en ce que le transfert de l'état logique de chaque ligne (SELj) d'une paire vers la sortie (Cj) associée est conditionné par l'état déchargé de l'autre ligne (SELk) de la même paire. 3. Décodeur selon la revendication 2, caractérisé en ce que chacune desdites paires de lignes (SELj, SELk) est constituée de deux lignes voisines. 4. Décodeur selon l'une des revendications 1 à 3, caractérisé en ce que chaque ligne (SELj) est préchargée par au moins un transistor (Pj) MOS à canal p commandé à l'état passant par un signal d'horloge (CK*), en ce que ladite ligne (SELj) est reliée à la masse par l'intermédiaire du chemin drain-source d'une pluralité de transistors MOS à canal n dont les grilles reçoivent respectivement les bits d'adresse (Ajl, Aj2, Aji, ..., Ajn) ou leur complément et en ce que chaque ligne (SELj) est reliée à une sortie associée (Cj) par l'intermédiaire d'un amplificateur (Tj) commandé en fonction de l'état de ladite autre ligne (SELk). 5. Décodeur selon la revendication 4, caractérisé en ce que ledit amplificateur commandé (Tj) d'une ligne (SELj) comporte un premier inverseur CMOS (P1, N1) dont l'entrée est reliée à ladite ligne (SELj) et dont la sortie est reliée à une première entrée d'une porte NI CMOS (P2, P3, N2, N3) à deux entrées dont la seconde entrée est reliée à ladite autre ligne (SELk). 6. Utilisation du décodeur selon l'une des revendications 1 à 5, pour commander le décalage dans un circuit décaleur de type préchargé. 7. Utilisation du décodeur selon l'une des revendications 1 à 5, pour commander la sélection en lecture et/ou écriture des registres d'un banc de registres ou d'une mémoire, les circuits de lecture et/ou d'écriture des cellules mémoires desdits registres étant de type préchargé.