Porte C

Un article de Wikipédia, l'encyclopédie libre.

La porte C est une porte logique utilisée en logique séquentielle. Elle permet de créer un rendez-vous entre ses entrées, c'est-à-dire que si celles-ci sont toutes identiques, elle recopie leur état (0 ou 1) en sortie ; sinon, sa sortie garde la même valeur. Cette propriété la rend intéressante pour la réalisation de circuits asynchrones. Elle a été inventée en 1955 par David E. Muller[1] (pour cette raison, on l'appelle souvent Porte C de Muller, Muller C-element en anglais).

Symboles[modifier | modifier le code]

Cette porte existe pour un nombre quelconque d'entrées.

Implémentation[modifier | modifier le code]

Une implémentation CMOS statique simple d'une porte C à deux entrées. Les entrées agissent sur des transistors en série (à gauche) et en parallèle (au milieu).
Implémentation semi-statique d'une porte C. Elle n'utilise que les transistors disposés en série, la porte gardant son état grâce à un bouclage.
L'implémentation à partir de quatre portes Non-ET. Elle se généralise à n entrées en utilisant une porte Non-ET réunissant toutes les entrées, n portes à deux entrées, et une porte à n+1 entrées qui fournit la sortie.

De multiples implémentations sont utilisées : des implémentations CMOS purement statiques, qui utilisent 12 transistors pour une porte à deux entrées, une implémentation à base d'un rebouclage avec un inverseur "faible" (dite parfois semi-statique), n'en utilisant que 8, et des implémentations dynamiques conservant leur état grâce à un condensateur.

Enfin, lorsqu'une bibliothèque matérielle ne possède pas de porte C, il est possible d'en créer une à partir de plusieurs portes de base, par exemple de portes Non-ET.

Lorsqu'une porte C doit posséder de nombreuses entrées, les implémentations classiques ne sont plus efficaces : dans la plupart des cas, on utilise plusieurs portes C plus petites (disposées en arbres ou à la suite, selon que l'on veuille minimiser les délais ou la taille). On peut aussi utiliser des portes de logique combinatoire disposées en arbre pour indiquer les cas où toutes les entrées sont identiques, agissant sur une bascule RS[2].

On pourra se reporter à la bibliographie pour une comparaison de certaines implémentations.

Table de vérité[modifier | modifier le code]

A B Sortie
0 0 0
0 1 Pas de changement
1 0 Pas de changement
1 1 1

Portes C asymétriques[modifier | modifier le code]

On parle aussi de portes C asymétriques, où seule une partie des entrées permet de mettre la sortie à 0 et une partie de la mettre à 1 (avec forcément des entrées communes pour éviter un conflit). On marque ces entrées avec un symbole + (respectivement -) pour celles contribuant à la mettre à 1 (respectivement 0), sans marquer les entrées communes.

Par exemple, une porte ayant une asymétrie positive aura la table de vérité suivante:

A+ B Sortie
0 0 0
0 1 0
1 0 Pas de changement
1 1 1

Références[modifier | modifier le code]

  1. H. C. Breadley, « ILLIAC II — A short description and annotated bibliography », IEEE Transactions on Electronic Computers, vol. EC-14, no 3,‎ , p. 399–403 (lire en ligne [PDF]).
  2. Tzyh-Yung Wuu et Sarma B. K. Vrudhula, A Design of a Fast and Area Efficient Multi-input Muller C-element, (lire en ligne)

Bibliographie[modifier | modifier le code]

  • Sylvain Guilley, Evaluation de différentes structures en transistors des portes « C-Element » (HAL hal-00707987) [PDF]
  • Florent Ouchet, Analyse et amélioration de la robustesse des circuits asynchrones QDI, (lire en ligne), Structure des portes C-elements
    Thèse présentée en 2011 en vue de l'obtention d'un doctorat de l'Institut polytechnique de Grenoble