Aller au contenu

Porte C

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 7 novembre 2020 à 17:10 et modifiée en dernier par CodexBot (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

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é introduite par David E. Muller (pour cette raison, on l'appelle souvent Porte C de Muller, Muller C-element en anglais).

Symboles

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

Implémentation

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[1].

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

Table de vérité

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

Portes C asymétriques

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

  1. 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

  • Sylvain Guilley, Evaluation de différentes structures en transistors des portes « C-Element » (lire en ligne) [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