- NOT
-
Fonction logique
Pour les articles homonymes, voir combinatoire (homonymie).Cet article se place d'emblée dans le cadre de la logique classique.
Il existe deux grands types de fonctions logiques :
- les fonctions logiques « combinatoires », bases du calcul booléen, qui résultent de l'analyse combinatoire des variations des grandeurs d'entrées uniquement.
- les fonctions logiques « séquentielles » ou bascules, qui résultent de l'association de plusieurs fonctions logiques « combinatoires » et qui supposent l'existence d'une horloge qui donne le temps : dans ce cas, les valeurs de sorties dépendent non seulement des valeurs d'entrée, mais aussi des valeurs de sortie à l'instant précédent.
Les fonctions logiques combinatoires directement issues des mathématiques (algèbre de Boole) sont les outils de base de l'électronique numérique donc de l'automatisme et de l'informatique. Elles sont mises en oeuvre en électronique sous forme de portes logiques. Ainsi les circuits électroniques calculent des fonctions logiques de l'algèbre de boole.
- Ces portes électroniques sont construites à partir de plusieurs transistors reliés entre eux. Dans d'autres applications, on peut trouver des portes logiques à base de relais, de fluides ou d'éléments optiques ou mécaniques
- Selon la modélisation utilisée, on prendra en compte les temps de retard ou pas dans les calculs.
Sommaire
Historique
De la roue dentée à la molécule
Les premières fonctions logiques furent réalisées de manière mécanique. Charles Babbage, vers 1837, conçut la « machine analytique », assemblage de portes reliées à des roues dentées pour effectuer des opérations logiques. Par la suite, les opérations logiques furent effectuées grâce à des relais électromagnétiques.
En 1891, Almon Strowger déposa un brevet pour un appareil contenant un commutateur basé sur une porte logique ((en) Brevet U.S. 0447918). Son brevet ne fut guère exploité jusque dans les années 1920. À partir de 1898, Nikola Tesla déposa une série de brevets concernant des appareils basés sur des circuits à portes logiques. Finalement, les tubes à vides remplacèrent les relais pour les opérations logiques. En 1907, Lee De Forest modifia l'un de ces tubes et l'utilisa comme une porte logique ET. Claude E. Shannon introduisit l'utilisation de l'algèbre de Boole dans la conception de circuits en 1937. Walther Bothe, inventeur du circuit de coïncidence, reçut le prix Nobel de physique en 1954, pour la création de la première porte logique ET électronique moderne en 1924. Des travaux de recherche sont actuellement menés pour la génération de portes logiques moléculaires.
Les portes logiques à transistors
La forme la plus simple de la logique électronique est la logique à diodes. Cela permet la fabrication de portes ET et OU, mais pas de portes NON ce qui conduit à une logique incomplète. Pour créer un système logique complet, il est nécessaire d'utiliser des lampes ou des transistors.
La famille la plus simple de portes logiques utilisant des transistors bipolaires est appelée résistance-transistor ou RTL (resistor-transistor logic). Au contraire des portes à diodes, les portes RTL peuvent être mises en cascade indéfiniment pour produire des fonctions logiques complexes. Pour diminuer le temps de retard, les résistances utilisées par les portes RTL furent remplacées par des diodes, ce qui donna naissance aux portes logiques diode-transistor ou DTL (diode-transistor logic). On découvrit ensuite qu'un transistor pouvait faire le travail de deux diodes en prenant la place d'une seule, ce qui mena à la création de portes logiques transistor-transistor ou TTL (transistor-transistor logic). Dans certains types de circuits, les transistors bipolaires furent remplacés par des transistors à effet de champ (MOSFET) ce qui donna naissance à la logique CMOS.
Les concepteurs de circuits logiques utilisent actuellement des circuits intégrés préfabriqués, notamment en TTL, la série 7400 de Texas Instruments, et en CMOS, la série 4000 de RCA, ainsi que leurs dérivés plus récents. La plupart de ces circuits contiennent des transistors à plusieurs émetteurs, utilisés pour implémenter la fonction ET, et qui ne sont pas disponibles séparément. De plus en plus, ces circuits logiques fixes sont remplacés par des circuits programmables, qui permettent aux concepteurs d'intégrer un grand nombre de portes logiques diverses dans un seul circuit intégré. La nature programmable de ces circuits, parmi lesquels les FPGA, a enlevé au hardware son aspect "dur" : il est désormais possible de changer les fonctions logiques d'un système en reprogrammant certains de ses composants, ce qui permet de modifier les caractéristiques d'un circuit logique hardware.
Les portes logiques électroniques diffèrent de manière significative de leurs équivalents à relais et contacts. Elles sont bien plus rapides, moins gourmandes et beaucoup plus petites (au moins un million de fois dans la plupart des cas). De plus, il y a une différence fondamentale dans la structure. Les circuits à contacts créent un chemin continu, dans lequel le courant peut circuler dans les deux directions entre l'entrée et la sortie. La porte logique à semi-conducteurs, au contraire, agit comme un puissant amplificateur de tension, qui reçoit un courant faible en entrée et produit une tension de basse impédance en sortie. Le courant ne peut pas circuler entre la sortie et l'entrée d'une porte à semi-conducteurs.
Un autre grand avantage des circuits logiques standardisés est qu'ils peuvent être mis en cascade. Autrement dit, la sortie d'une porte peut être reliée aux entrées d'une ou plusieurs portes, et ainsi de suite à l'infini, ce qui permet de construire des circuits d'une complexité quelconque sans avoir besoin de connaître le fonctionnement interne des portes. Dans la pratique, la sortie d'une porte ne peut être connectée qu'à un nombre fini d'entrées, mais cette limite est rarement atteinte dans les nouveaux circuits CMOS comparé aux circuits TTL. Il existe également un délai nommé temps de propagation entre la modification d'une entrée et la modification correspondante en sortie. Dans des portes en cascade, le temps de propagation total est à peu près égal à la somme des temps de propagation individuels, ce qui peut poser problème dans les circuits à grande vitesse.
Classification
Niveaux logiques
En algèbre de Boole, une donnée, qu'elle soit en entrée ou en sortie, n'a que deux niveaux possibles. Selon les applications, ces deux niveaux peuvent porter des noms différents : marche / arrêt, haut / bas, un (1) / zéro (0), vrai / faux, positif / négatif, positif / nul, circuit ouvert / circuit fermé, différence de potentiel / pas de différence, oui / non.
Dans le cas de circuits électroniques, les deux niveaux sont représentés par deux niveaux de tension, « haut » et « bas ». Chaque type de circuit possède ses propres niveaux de tension, pour s'assurer de la connectivité entre les entrées et sorties des circuits. Habituellement, deux niveaux bien distincts (ne risquant pas de se chevaucher) sont définis ; la différence entre les deux niveaux varie entre 0,7 volts et 28 volts (ce dernier dans le cas des relais).
Pour harmoniser la notation, ces deux niveaux seront notés ici 1 et 0.
Fonctions logiques
Les portes peuvent être classées suivant leur nombre d'entrées :
- « portes » sans entrée : VRAI, FAUX ;
- portes à une entrée : NON (NOT), OUI ;
- portes à deux entrées : ET (AND), NON-ET (NAND), OU (OR), NON-OU (NOR), OU exclusif (XOR), coïncidence dite aussi NON-OU exclusif ou équivalence (XNOR), implication ;
- À partir de trois entrées, le nombre de fonctions commence à subir l'influence de l'explosion combinatoire. On note toutefois l'existence de : ET, OU, etc. à plus de deux entrées.
Il est possible de reconstituer les fonctions NON, ET et OU en utilisant uniquement soit la fonction NON-ET, soit la fonction NON-OU. On évoque cette caractéristique sous la notion d'universalité des opérateurs NON-OU et NON-ET (cf. le connecteur binaire d'incompatibilité, appelé aussi barre de Sheffer).
Lorsqu'on associe deux portes logiques compatibles, on peut connecter deux entrées ensemble, ou une entrée sur une sortie. Il ne faut en aucun cas connecter deux sorties différentes car elles peuvent produire des données différentes ; dans le cas de portes électroniques, cela équivaudrait à un court-circuit.
Représentation
Pour définir chacune des fonctions logiques, nous donnerons plusieurs représentations :
- une représentation électrique : schéma développé à contacts ;
- une représentation algébrique : équation ;
- une représentation arithmétique : table de vérité ;
- une représentation temporelle : chronogramme ;
- une représentation graphique : symbole logique.
Dans le cas de portes électroniques, un niveau logique est représenté par un voltage défini (selon le type de composant utilisé). Chaque porte logique doit donc être alimentée pour délivrer la tension de sortie appropriée. Dans la représentation en symboles logiques, cette alimentation n'est pas représentée, mais elle doit l'être dans un schéma électronique complet.
La représentation d'un système combinatoire incluant plusieurs fonctions logiques peut aussi se faire grâce à un schéma à contact, une équation, une table de vérité et un schéma graphique. Dans ce dernier cas on parlera d'un logigramme.
Représentation graphique
Deux ensembles de symboles sont utilisés pour représenter les fonctions logiques ; les deux sont définis par la norme ANSI/IEEE 91-1984 et son supplément 91a-1991. La représentation par « symboles distinctifs », basée sur les schématisations classiques, est utilisée pour les schémas simples et est plus facile à tracer à la main. Elle est parfois qualifiée de « militaire », ce qui reflète ses origines, sinon son usage actuel.
La représentation « rectangulaire » se base sur la norme CEI 60617-12 ; toutes les portes y sont représentées avec des bords rectangulaires et un symbole, ce qui permet la représentation d'un plus grand nombre de types de circuits. Ce système a été repris par d'autres standards comme EN 60617-12:1999 en Europe et BS EN 60617-12:1999 au Royaume-Uni.
Type Symbole américain Symbole européen Opération booléenne entre A et B Table de vérité ET Entrée Sortie A B A ET B 0 0 0 0 1 0 1 0 0 1 1 1 OU Entrée Sortie A B A OU B 0 0 0 0 1 1 1 0 1 1 1 1 NON Entrée Sortie A NON A 0 1 1 0 En électronique, une porte NON est plus communément appelée inverseur. Le cercle utilisé sur la représentation est appelé « bulle », et on l'utilise généralement dans les diagrammes pour montrer qu'une entrée ou une sortie est inversée. NON-ET (NAND) Entrée Sortie A B A NAND B 0 0 1 0 1 1 1 0 1 1 1 0 NON-OU (NOR) Entrée Sortie A B A NOR B 0 0 1 0 1 0 1 0 0 1 1 0 OU exclusif (XOR) Entrée Sortie A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 NON-OU exclusif ou OU-exclusif complémenté (XNOR) Entrée Sortie A B A XNOR B 0 0 1 0 1 0 1 0 0 1 1 1 Une porte NON-ET (NAND) peut également être représentée en utilisant le symbole OU avec des bulles (inverseurs) sur les entrées, et une porte NON-OU (NOR) peut être représentée par un symbole ET avec des bulles sur les entrées. Cela reflète les lois d'équivalence de De Morgan ; cela permet également de rendre un diagramme plus lisible, ou de fabriquer un circuit facilement avec des portes préfabriquées, car un circuit qui a des bulles des deux côtés peut être remplacé par un circuit non-inversé en changeant la porte. Si une porte NON-ET est représentée par un OU avec des entrées inversées, ou qu'un NON-OU est représenté par un ET avec des entrées inversées, le remplacement se fait automatiquement dans le schéma (les bulles « s'annulent »). Cela est courant dans les diagrammes logiques réels — si bien que le lecteur ne doit pas s'habituer à associer les symboles aux portes OU et ET automatiquement, mais doit aussi prendre en compte les inverseurs pour déterminer la bonne fonction représentée. Les entrées inversées sont particulièrement utiles dans le cas de signaux « actifs à l'état bas ».
Les deux autres portes fréquemment rencontrées sont la fonction OU exclusif et son inverse. Un OU exclusif à deux entrées ne renvoie un 1 que quand les deux entrées sont différentes, et un 0 quand elles sont égales, quelle que soit leur valeur. S'il y a plus de deux entrées, la porte renvoie 1 si le nombre d'entrées égales à 1 est impair ([1]). Dans la pratique, ces portes sont souvent réalisées à partir de combinaisons de portes logiques plus simples.
Autres fonctions logiques
Portes logiques à 3 états
Les portes logiques dites « à trois états » possèdent une sortie qui peut prendre trois états différents : haut, bas et haute impédance ou Z. L'état de haute impédance ne joue aucun rôle dans la logique proprement dite qui demeure binaire ; il équivaut en fait à un circuit ouvert, ou à une « absence » de sortie. Ces portes sont utilisées dans les bus électroniques pour l'envoi de données ; un groupe de portes à trois états contrôlées par un circuit approprié équivaut à un multiplexeur qui peut être réparti physiquement sur plusieurs appareils ou plusieurs cartes électroniques.
Unités de stockage
En plus du concept de portes logiques, se pose le problème du stockage d'un bit d'information. Les portes logiques présentées plus haut ne stockent pas de données : quand une entrée change, la sortie réagit immédiatement (au temps de propagation près). Il est possible de créer des éléments de stockage soit avec des condensateurs, soit en utilisant le feedback. En connectant la sortie d'une porte à son entrée, on renvoie la sortie dans le circuit logique ; elle peut ainsi être conservée ou modifiée en utilisant les autres entrées. En connectant des portes de cette manière, on crée un verrou (latch en anglais). D'autres circuits un peu plus complexes utilisent des signaux d'horloge (des signaux qui oscillent à une fréquence connue) et changent quand le signal d'horloge passe à 1 ; on les appelle des bascules (flip-flops en anglais). En combinant plusieurs bascules en parallèle pour stocker une valeur de plusieurs bits, on crée un registre.
Les registres et autres circuits de stockage sont regroupés sous le terme de « mémoires électroniques ». Leurs performances varient en termes de vitesse, de complexité et de fiabilité de la mémoire. Leurs types peuvent être très différents selon les applications.
Autres unités
Les circuits logiques peuvent également contenir des éléments comme des multiplexeurs, des unités arithmétiques et logiques (en anglais : Arithmetic and Logic Unit ou ALU) et des mémoires. L'assemblage de tels éléments constitue des microprocesseurs qui peuvent contenir plus de 100 millions de portes logiques. Les composants de microprocesseurs sont à base de transistors à effet de champ, en particulier des MOSFET.
Liens
Références
- (en) Symbols for logic gates. Twenty First Century Books, Breckenridge, CO.
- (en) Tesla's invention of the AND logic gate. Twenty First Century Books, Breckenridge, CO.
- (en) Wireless Remote Control and the Electronic Computer Logic logic elements
- (en) LEGO Logic Gates. goldfish.org.uk, 2005.
Voir aussi
- (en) Cet article est partiellement ou en totalité issu d’une traduction de l’article de Wikipédia en anglais intitulé « Logic gate ».
- Portail de la logique
- Portail de l’électricité et de l’électronique
- Portail de l’informatique
Catégorie : Fonction logique
Wikimedia Foundation. 2010.