4.1 Les portes logiques⚓︎
1. Notions d’algèbre de Boole⚓︎
Dans les systèmes digitaux (systèmes informatiques et autres automatismes numériques) toutes les données sont traitées et enregistrées à partir d'éléments d'informations binaires.
Ces informations binaires à la manière des contacts électriques n'ont que deux états possibles : un contact électrique est ouvert ou fermé, de même le bit est une information élémentaire qui ne peut prendre que deux valeurs 0 et 1.
Les opérations logiques sont en informatique aussi courantes si ce n'est pas plus que les opérations arithmétiques. La logique combinatoire tout comme l'arithmétique repose sur quelques opérations élémentaires.
• En arithmétique, ces opérations sont l'addition, la soustraction, la multiplication et la division ( \(+\), \(-\), \(*\), \(/\) ). Il est possible à partir de là d'imaginer toutes les autres opérations telles que les exposants, les racines, les logarithmes etc.
• En logique, les opérations fondamentales sont le ET, le OU et le NON.
Nous utiliserons des signes particuliers pour représenter ces trois opérations fondamentales lors d'écriture d'équations logiques. C'est George Boole, un mathématicien britannique, qui le premier eu l'idée de reprendre des notations algébriques pour créer les bases de ce qui sera la logique informatique. Nous ferons donc de la logique booléenne et aussi de l'algèbre booléenne en écrivant des équations logiques pour exprimer les relations entre les variables logiques appelées aussi variables booléennes.
Cette logique a trouvé après George Boole ses premières applications dans les circuits électriques. C'est Claude Shannon, un autre père fondateur des théories à la base de l'informatique, qui entreprit de mettre en équation les circuits électriques où des relais électriques considérés comme des variables logiques en agissent sur des contacts ouverts (0) ou fermé (1).
La manière la plus simple de comprendre les fonctions logiques est de se les représenter par des schémas électriques qui comportent un ou plusieurs contacts et une lampe. Cette lampe s'allume "à condition" que les contacts électriques y laissent passer le courant. C'est dans l'expression de cette condition que va intervenir la logique.
Le schéma ci-dessus traduit la condition la plus simple : La lampe s'allume si le bouton poussoir A est actionné. Autrement dit ( S = 1) si ( A = 1). Le fonctionnement de ce circuit s'exprime par l'équation logique \(S = A\)
c'est ce que l'on a mis en oeuvre dans le chapitre sur les booléens (exercice 4) en utilisant un simulateur de courant électrique. Toutes les tables de vérités ET, OU, NON, NAND peuvent être simulés à l'aide d'un circuit électriques.
2. Les portes logiques⚓︎
2.1 Présentation⚓︎
Nous avons jusqu'ici utilisé des boutons poussoirs et une lampe pour illustrer le fonctionnement des opérateurs logiques. En électronique digitale, les opérations logiques sont effectuées par des portes logiques. Ce sont des circuits de très petite taille implantés en très grand nombre sur des puces de silicium et qui combinent les signaux logiques présentés à leurs entrées sous forme de tensions. On aura par exemple 5V pour représenter l'état logique 1 et 0V pour représenter l'état 0.
Dans un microprocesseur moderne on compte plusieurs dizaines de milliards de portes logiques. Selon leur type, il faut de 2 à 10 transistors (composant électronique de base des portes logiques) pour réaliser chaque porte logique.
Ci-dessous les schémas des portes logiques courantes avec leurs entrées (‘pattes’ situées à gauche) et leurs sorties (‘pattes’ situées à droite)
AND, OR, NOT n’ont plus de secret pour vous !
2.2 XOR et NAND⚓︎
XOR est le OU EXCLUSIF. Il répond comme OR sauf quand les deux entrées sont à 1 : sa sortie est alors à 0.
illustration :
- Un établissement de soin accueille des personnes âgées OU malades : c’est le OR
- Un restaurateur vous propose fromage OU dessert : c’est le XOR
NAND (pour Not AND) et NOR (pour Not OR) sont les AND et OR suivies de NON. Elles répondent exactement le contraire de AND et OR.
Exercice
Rendez-vous à la page simulateur ou simulateur. Ce simulateur vous propose toutes ces portes logiques.
Câblez et vérifiez les tables de vérité des fonctions AND et OR Etablir les tables de vérité des fonctions XOR, NAND, NOR
Remarque : Evitez les boutons PuschOn au profit des Toggle (bouton à bascule) qui ont l’avantage de rester dans l’état ou vous les basculez. Ici le bouclage des cablages n’est pas représenté c’est pourquoi une alimentation (DC) ou une LED ne comporte qu’un seul pôle
Préparez une trace écrite contenant les copies partielles d’écran de vos montages et les tables de vérité associées.
Mais quel rapport avec les ordinateurs ?
Nous allons répondre à cette question en nous limitant à l’opération la plus simple que nous demandons à un ordinateur : réaliser la somme de deux entiers.
C’est la plus simple mais d’elle découlent :
- les différences (même processus avec un entier signé négatif)
- certaines multiplications (sommes répétitives)
Poser verticalement et calculer en binaire la somme des deux entiers \(A = {14}_{10}\) et \(B = {9}_{10}\)
somme en binaire
Qu’avez-vous fait ?
Commençons par la colonne de droite (bit de \(2^0\) de poids faible) : vous avez réalisé une opération logique :
- si les deux étaient à 0 vous avez écrit en dessous 0 pour la somme.
- si un des deux étaient à 0 et l’autre à 1 vous avez écrit en dessous 1 pour la somme.
- si les deux étaient à 1 vous avez écrit en dessous 0 pour la somme. et vous avez pensé à mettre la retenue à 1.
Ecrire ci-dessous les tables de vérité des deux opérations logiques qui donnent (pour le bit de poids faible)
- la somme à partir des deux opérandes
- la retenue (0 si elle n’existe pas, 1 si elle existe)
Recherchez plus haut quelles portes logiques étudiées effectuent exactement ces même tâches.
solution
On obtient pour la somme la table de vérité du OU
et pour la retenue la table de vérité du ET
3. Les additionneurs⚓︎
Recherchez sur internet une image correspondant au mot clé ‘half adder’ ou ‘demi additionneur’ le schéma doit confirmer votre réponse précédente.
Quel mot anglais se cache dans ces schémas derrière la lettre C (ou Cout) ? Pourquoi parle-t-on d’une fonction logique à 2 entrées et 2 sorties ?
solution
Le half adder ajoute deux bits ensemble. Le demi additionneur a deux signaux d'entrée représentant des chiffres binaires (a et b) et deux signaux de sortie, dont l'un est le résultat de l'addition (s), et l'autre le carry en classe supérieure (C). Il est important de noter qu'un demi additionneur ne peut pas être utilisé pour ajouter des nombres binaires à plusieurs chiffres parce qu'il n'y a pas de port de niveau inférieur. Le demi additionneur est un circuit combiné de circuits XOR et AND. Son but, comme son nom l'indique, est d'ajouter des chiffres. Le processus d'addition de nombres dans le système binaire est réduit à l'addition de chiffres, où l'on obtient ainsi une somme et un carry. Puisque le demi additionneur lui-même ne peut pas calculer le résultat entier, il est combiné avec un autre demi additionneur et un circuit OU pour faire un additionneur complet.
A partir de la deuxième colonne (bits de \(2^1\) puis suivants), la prise en compte des deux bits en provenance de A et B ne suffit plus. Il faut aussi considérer la retenue.
La fonction logique ‘half adder’ ne suffit plus, on a besoin de la fonction ‘full adder’.
Cherchez sur internet un schéma en portes logiques de ‘full adder’ (ou ‘plein additionneur’). Il était un peu compliqué à deviner !
solution
A l’aide du simulateur, câblez un full adder.
Vérifier qu’il fonctionne correctement et établir sa table de vérité.
Préliminaire : Construction d’entrées sélectionnables (0/1) par bouton (Toggle) puis regroupement sur un petit espace
Ce petit ‘pavé’ constitue une entrée avec sa diode témoin, celle-ci n’est pas indispensable mais aide à la visualisation de l’état de l’entrée (0 ou 1). Ce pavé est à raccorder aux portes logiques à partir de la borne de sortie du Toggle. Vous répéterez cette petite construction pour constituer autant d’entrées que nécessaires.
Pour visualiser les sorties, il suffira bien évidemment de raccorder une DEL.
A partir du schéma que vous avez trouvé, réalisez sur le simulateur le montage de l’additionneur plein avec ses entrées, la combinaison des portes logiques, les sorties.
solution
Puis etablissez la table de vérité complète que vous avez établie à l’aide de votre montage (5 colonnes, 8 lignes)
solution
Le simulateur propose la fonction Full adder toute faite. Sur votre schéma précédent conservez les entrées et les sorties et retirez toutes les portes logiques. Remplacez cet ensemble de porte logique par un ‘full adder’, recâblez, vérifiez votre table de vérité.
solution
Réalisation d’un additionneur 4 bit
Sur l’image ci-dessous, on a représenté une addition posée verticalement. Recopiez ce schéma sur le simulateur et câblez dans l’espace libre les ‘full adder’ nécessaires pour les additions se fassent correctement quels que soient les entrées choisies