Cours interactifs d'électronique

xLogicCircuits Lab 1: Les circuits pour l'électronique numérique


Adaptation de la présentation de David Eck eck@hws.edu dont le site est David Eck
Auteur : David Eck eck@hws.edu
Traduction & adaptation : Philippe Tixier tixierp@minitel.net
date : 20/05/2000
Remerciements : Jean Michel Douin du CNAM, java.cnam.fr et bien sur David Eck eck@hws.edu


Il est possible, en théorie, de construire un ordinateur en faisant appel uniquement à des transistors. C'est ce qu'on faisait il y a cinquante ans ! Dans un ordinateur les transistors sont les premières briques de construction qu'on a su très vites rassemblés (intégrés) pour former des fonctions à transistors (Technologie TTL pour transistor transistor logic) d'abord simples puis de plus en plus complexes, pour en arriver aujourd'hui aux circuits très complexes que sont les micro-processeurs. Ainsi les derniers micro-processeurs intègrent (rassemblent) sur une même puce (un même circuit intégré) plus de trois millions de transistors !
Les opérations que réalisent ces circuits logiques (rassemblant ces transistors) sont appelés OU, ET, NON, elles sont simples et le simulateur que nous vous proposons vous permettra de connaître et sentir leurs fonctionnements.

Ce simulateur est expliqué au chapître 2 in The Most Complex Machine.

Les parties de cette présentation sont :

Ce fichier de présentation utilise une applette appelée "xLogicCircuits." appelée dans le fichier : simul-elec.htm. En cliquant sur ce bouton vous la démarrez et êtes devant une fenêtre qui vous permet, après un "clear" de dessiner et tester les circuits logiques que vous construisez.

(Sorry, your browser doesn't do Java!)


Logique et circuits logiques

Une porte logique est un circuit logique simple ayant une ou deux entrées ou inputs et une sortie ou output. Les états des entrées et sorties peuvent être ON ou OFF (ouvert ou fermé, vrai ou faux, 1 ou 0, ..., ils sont binaires). L'état de la sortie est complètement déterminé par les états des entrées. Le changement d'état d'une ou plusieurs entrées peut engendrer (avec un léger petit retard) l'état de la sortie. Chaque porte logique représente une fonction de calcul logique simple. On peut concevoir des fonctions plus complexes en associant plusieurs fonctions, en les assemblant. On connecte alors la sortie d'une première porte à l'entrée d'une suivante et ainsi de suite.

Avec le simulateur proposé on peut associer (connecter entre elles) des portes logiques de différents types OU, ET, NON respectivement appelées en anglais OR, AND, NOT. Chaque type de porte a un fonctionnement logique différent pour produire l'état de sa sortie. Les circuits construits sont posés sur un plaque à essai. Cette plaque à essai peut contenir des portes, des connexions et des noeuds. Ensuite grâce à un processus d'intégration, elle pourra contenir aussi des circuits de circuits. Tous ces composants sont interconnectables par des fils. La plaque possède sur sa gauche, une palette de composants. Pour les utiliser il suffit de faire un cliqué glissé, avec la souris, du circuit de la palette jusqu'à la surface de la plaque à essai où l'on désire poser (laché du bouton de la la souris) le composant.
Les figures suivantes vous montre la palette de composants NON, OU, ET, ENTREE (Inputs), SORTIE (Outputs), NOEUD.

The standard component pallette

Il est à noter que deux fils qui se croisent ne signifie pas qu'ils se touchent, au contraire, si vous voulez connecter deux fils entre eux il vous faudra recourir à un noeud (Tack en anglais) et le poser à l'endroit où voulez que la connexion s'opère. Il est à noter que le noeud est pris ppar l'appelette comme un composant , il convient donc de penser à les positionner avant d'entreprendre les connexions.

Pour voir se simuler le circuit que vous avez construit, il faut cocher la coche power. L'ergonomie de cette applette est grande aussi il vous faut essayer et vous vous rendrez compte de la facilité d'utilisation. Pour ce faire, nous vous proposons de créer un premier circuitsimple !

  • cliquez sur "LaunchxLogicCircuits", pour démarrer l'applette du simulateur.
  • cliquez sur "clear" (bouton "clear" en haut de la plaque à essai.)
  • cliquez glissez sur l'opérateur "Not Gate" et amenez le au centre de la plaque à essai (centre de la fenêtre du simulateur).
  • cliquez glissez sur l'opérateur "Input" et amenez votre souris sur la plaque à essai (sur la gauche de l'opérateur "Not Gate"), lacher le bouton de la souris.
  • cliquez glissez sur l'opérateur "Outut" (utilisez si nécessaire l'ascenseur de la palette) et amenez votre souris sur la plaque à essai (sur la droite de l'opérateur "Not Gate")
  • cliquez glissez depuis le composant "Input" situé sur la frontière gauche de la plaque jusqu'à l'opérateur (centre de la fenêtre), cliquez sur le centre du composant.
  • cliquez glissez depuis le composant "Not Gate" situé au centre de la fenêtre jusqu'au composant de sortie (situé sur la frontière droite de la plaque).
    Voilà vous êtes prêt à essayer votre circuit.
    Pour ce faire :
  • cliquez sur la coche "power" en bas de la fenêtre. Vous voyez alors s'allumer la sortie !
  • cliquez sur le composant "Input", Vous voyez alors s'allumer l'entrée du circuit et s'éteindre la sortie, ce qui est convenable pour ce circuit !
  • recliquez sur le composant "Input", Vous voyez alors s'éteindre l'entrée du circuit et s'allumer la sortie, ce qui est encore convenable pour ce circuit !


    Voilà, c'est à vous d'essayer !

    Vous pouvez aussi agir sur le temps de propagation de l'information. Ainsi en mode"slow" vous verrez se propager lentement les états des entrées vers les sorties, ce qui facilite la compréhension du montage réalisé.

    Pour programmer cette vitesse cliquez sur le mot "Fast" dans la boite de texte en bas de l'applette et glissez sur le choix de votre convenance : "Moderate" ou "Slow" Le résultat se verra lorsque vous stimulerez les entrées de votre circuit. Essayer !

    Les portes logiques sont associées à des fonctions de logique mathématique qui calculent leurs états de sortie en fonction des états de leurs entrées. Ces états sont binaires, c'est à dire qu'ils ne peuvent prendre que deux états distincts. Ces états binaires sont généralement notés 1 ou 0, mais certains préfèrent les appeler vrai ou faux, ... Peu importe, du moment que l'on comprenne qu'il ne peut exister que deux états. Lorqu'il faut calculer il est pratique de prendre la notation mathématique : 1 ou 0 puisque la base numérique binaire nous permet alors d'opérer des calculs sur ces nombres binaires constitués de ces deux chiffres "1" ou "0". Il existe une correspondance entre ces nombres binaires constitués de "0" et de "1" par exemple : %101010 et nos nombres en base dix, ce qui permet à nos ordinateurs d'être des calculateurs experts (le symbole "%" signifie que le nombre est exprimé en binaire). A titre d'exemple on a :

     
    	0 = %0			 6  = %110
    	1 = %1			 7  = %111	
    	2 = %10			 8  = %1000
    	3 = %11			 9  = %1001
    	4 = %100		10 =  %1010
    	5 = %101		11 =  %1011
    
    Il est alors plus facile, en mathématiques de les présenter dans un format général sur huit chiffres binaires :
    		0 = %00000000		6  = %00000110
    		1 = %00000001		7  = %00000111	
    		2 = %00000010		8  = %00001000
    		3 = %00000011		9  = %00001001
    		4 = %00000100		10 = %00001010
    		5 = %00000101		11 = %00001011
    
    On peut, grâce à ce format représenter des nombres de 0 à 255 (2^8), ce format s'appelle l'octet (byte en anglais). Il en existe d'autres : le quartet pour 4 chiffres binaires, le mot pour 16, ...
    Voici un calculateur binaire qui permettra de vous faire une opinion sur les mathématiques binaires.
    La CALCULATRICE BINAIRE


    Lorsqu'on est en logique, les équations sont formées de lettres et de signes :
    C = A or B. Ces lettres représentent des valeurs binaires (0 ou 1) et le calcul de l'expression se fait sur ces valeurs en fonction des opérateurs existant dans l'expression.

    Les mathématiques logiques utilisent l'algèbre de BOOLE (du nom de son inventeur Mr George Boole 1815-1864, cf "Boole, L'oiseau de nuit en plein jour" de Diagne chez Belin éditeur. Les lettres utilisées dans les expressions mathématiques représentent en fait des valeurs logiques binaires (1 ou 0). Ces lettres sont combinées en utilisant les lois logiques des opérateurs tels : ET (&), OU, NON, ... Cela s'écrit généralement en anglais :
    and, or, and not. For example,

    (A and C) or (B and (not C))

    Chaque expression en algèbre de Boole peut correspondre à un circuit électronique. Les lettres de ces expressions représentent les entrées du circuit et le résultat sa sortie. Il existe donc une réalité électronique de l'algèbre de Boole, que l'on peut concevoir d'après ses lois.
    En voici un exemple :

    Circuit labeled with logical expressions

    Ce circuit représente une nouvelle fonction logique appelée : XOR, ce qui signifie OU exclusif. Son expression est (A and (not B)) or (B and (not A)).

    Essayez le et notez pour chaque état d'entrée ce que vous obtenez en sortie.

    Concevoir des circuits logiques

    Vous pouvez concevoir des circuits électronique répondant à vos propres souhaits de fonctionnements logiques. Une fois que vous avez réalisé un circuit qui vous plait, peut-être aimeriez-vous pouvoir le réutiliser dans un projet plus ambitieux ? Si c'est le cas, vous n'aimeriez pas avoir à tout refaire ! Il vous faut alors intégrer ("iconifier") ce circuit. Pour ce faire, une fois construit sur la plaque à essai le dit circuit, donnez un nom à votre circuit en remplissant la boite de texte en haut de la plaque à essai, puis cliquez sur le bouton "Iconify" en bas de la plaque. A partir de ce moment vous aurez le plaisir de voir que votre circuit est à votre disposition sur la palette d'opérateurs ! Ce nouveau composant répondra en tout point au circuit que vous aviez construit.

    (A and C) or (B and (not C)).

    Une fois que vous avez compris le processus d'intégration des circuits ("iconifier" dans cette applette) vous comprendrez la puissance que représente ce procédé surtout s'il peut être récursif (s'appliquer à lui même). En effet, une fois que vous avez intégré un circuit, vous le réutilisez dans un autre et vous avez la possibilité de nouveau de l'intégré ! Cela vous permet de créer des circuits de plus en plus complexes. Essayer !


    Circuits et calculs

    L'additionneur binaire est une applioation typique de l'intégration de fonction logique, on peut le construire et on peut également le trouver tout fait sous forme de circuits spécialisés. Voici des exemples d'addition de deux nombres binaires exprimés en quartets (4 bits - 4 chiffres binaires). Vous pourrez contrôler les résultats grâce à notre précédent calculateur.

          1011       1111       1111       1010       0111       0001
         +0110      +0001      +1111      +0101      +1010      +0011
         -----      -----      -----      -----      -----      -----
        =10001     =10000     =11110     =01111     =10001     =00100
    
    

    Le résultat se trouve sur 5 bits car il peut exister une retenue (en anglais : carry) à l'issue de la quatrième addition. Le circuit aura donc huit entrées et cinq sorties.


    GLOSSAIRE

    ALU : Unité Arithmétique et Logique (UAL en anglais) coeur du micro-processeur, lui même coeur du micro-ordinateur. Comme son nom l'indique cette unité s'occupe de gérer de calculer tous les calculs et opérations logiques des programmes qui s'exécutent sur un micro-ordinateur. La caractéristique d'une ALU est le nombre de bits qu'elle peut traiter simultanément, il existe des ALU de 4, 8, 16, 32, 64, ... bits.

    Bit : Le bit est un élément binaire, un chiffre binaire, cela vient de l'anglais : BInary-digiT. En électronique numérique, le bit ne peut prendre que deux états : 0 ou 1.

    Entrée : Input en anglais, ce qui permet de rentrer une information dans un circuit électronique. En électronique numérique, on parle d'information binaire, c'est à dire ne pouvant prendre que deux états : 0 ou 1, vrai ou faux, ...

    Sortie : output en anglais, ce qui permet de sortir une information d'un circuit électronique. En électronique numérique, on parle d'information binaire, c'est à dire ne pouvant prendre que deux états : 0 ou 1, vrai ou faux, ...


    Exercices

    Exercice 1: Un des exemples déjà utilisé dans cet exposé a été le OU exclusif d'équation :

    (A and (not B)) or (B and (not A)).

    Le fonctionnement de ce circuit peut se résumé de trois façons différentes mais équivalentes du point de vue de la sortie.
  • La sortie est à un (active) si il n'existe qu'une seule entrée à 1 (active), sinon elle est à zéro (non active).
  • La sortie est active (à 1) si les deux entrées sont dans des états différents.
  • Enfin, ce circuit est un additionneur arithmétique, alors que le OU est un additionneur logique.
  • Vérifiez par vous même le bien fondé de ces trois définitions de la relation de causalité (de cause à effet) de ce circuit.
    Une autre forme de cet équation de ce Ou exclusif est donné par l'expression :

    (A or B) and (not ((A and B)).

  • Vérifier que l'on obtient bien les mêmes résultats en sortie.
  • Combien d'essais différents (d'états d'entrées) doit-on faire pour répondre à cette question ?
  • Vérifier que le nombre répond à cette équation : 2 puissance 2 (c'est à dire 4=2^2).

    Construiser le circuit de cette deuxième équation équivalente du ou exclusif.

    Exercice 3: Considérer ces trois expressions logiques suivantes :

    (A and B and C) or (not B)

    (not ((not A) and (not B)))

    (not (A or B)) or (A and B)

    Pour chaque expression, construisez le circuit qui calcule le résultat de cette équation logique. Faites attention aux effets de la position des parenthèses.

    Exercice 4: Connaissez-vous les paradoxes ?
    Par exemple : je suis français et je dis que tous les français sont des menteurs ! c'est le paradoxe d'Epimenide (un Crétois), il en existe beaucoup. Je vous propose de trouver sa forme électronique ! Pour vous aider je vous dis qu'en électronique cela s'appelle un oscillateur (un circuit qui n'arrête pas de changer d'état de sortie sans que l'on touche à ses entrées, pour autant qu'il en possède.

    Exercise 5: Cette fois-ci on vous donne une table de vérité (c'est comme cela que ça s'appelle!) qui définit la sortie d'un circuit en fonction de ses entrées.

     Entrée 1   Entrée 2   Sortie 
    ON ON ON
    ON OFF ON
    OFF ON OFF
    OFF OFF ON

    "ON" signifie l'état "1" et "OFF" l'état "0"
    Construisez ce circuit. Pour vous aidez le livre The Most Complex Machines au chapître 2.1 vous fournit une méthode pour construire ce genre de circuit.

    Exercice 6: Voici une autre équation d'un circuit qu'on pourrait nommer "deux ou plus" :

    (A and (B or C or D)) or (B and (C or D)) or (C and D)

    Utilisez cette expression pour construire un circuit sur la plaque à essai de l'applette. Essayez de comprendre son fonctionnement et proposez ensuite un circuit et une équation qui possèderait 5 entrées toujours avec le même critère de sortie : "deux ou plus".

    Exercice 7: "La structure d'un additionneur sur 4 bits (chiffres binaires) est une fonction de base en électronique numérique. Pour créer une telle structure il faut commencer par concevoir un additionneur de deux entrées et deux bits de sortie (une pour le résultat et l'autre pour la retenue éventuelle du résultat. Pouvez vous construire un tel circuit additionnant deux entrées binaires et ayant deux sorties ?
    Il faut ensuite construire un circuit additionnant 4 bits (2bits + 2 bits - additionnées bit à bit) et ayant 3 sorties Et ainsi de suite, pensez à intégrer vos fonctions au fur et à mesure.

    Exercice 8: Ecrivez un court essai (quelques lignes) qui explique comment les intégration de circuits sont utilisées dans la conception de circuits toujours de plus en plus complexes et pourquoi cette intégration est-elle importante dans le monde technologique ?

    Exercice 9: Construisez un circuit appelé :"Select" qui répond au fonctionnement expliqué ci-après :

    Select Circuit

    La sortie de ce circuit est égale à A si C est à "1" ET sera égal B si D est à "1". Il est important de noter que les deux entrée C et D ne seront jamais, pendant le fonctionnement, égales à "1" en même temps ! Vous pourrez donner l'expression de la fonction du circuit : sortie = f(A, B, C, D)

    Exercice 10: Pour cet exercice, nous vous demandons de construire une mini-ALU (Unité Arithmétique et Logique) qui pourra calculer (addition et soustraction) sur des nombres de 4 bits (quartets) Il y aura 8 entrées (2 x 4 bits) pour rentrer les nombres à calculer, 2 entrées pour programmer l'addition ou la soustraction de ces nombres et enfin 5 sorties (4 + 1 retenue appelée en anglais carry).
    L'illustration qui suit montre les entrées et sortie (E/S, ou I/O en anglais) de cette ALU.

    Mini ALU

    Donc vous devrez opérer de la façon suivante :

  • Construire un additionneur (avec sélection de sa mise en fonctionnement de ses sorties) sur 4 bits
  • Construire un soustracteur (avec sélection de sa mise en fonctionnement de ses sorties) sur 4 bits
  • Relier les deux sous ensembles intégrés
  • tester le circuit.

    A start on the Mini ALU

    Bon courage !
    Cette série de cours peut-être illustrée par le livre : The Most Complex Machine: A Survey of Computers and Computing et vous pouvez trouver une aide auprès de :
    David Eck ou Philippe Tixier (tixierp@minitel.net)

    --David Eck eck@hws.edu), Summer 1997


    05 / 2000