title: Porte C
text: # Porte C
  
  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
  
  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.
  
  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 |
  