L'électronique numérique : Les fonctions standards et les circuits de calcul - Quiz
Les fonctions standards et les circuits de calcul
Les circuits logiques combinatoires permettent de construire des fonctions numériques complètes à partir de portes logiques. Certaines de ces fonctions sont tellement courantes qu'elles sont devenues des fonctions standards de l'électronique numérique.
Ces circuits permettent notamment de calculer, de comparer, de sélectionner ou de transformer des informations binaires.
Le demi-additionneur
Le demi-additionneur est le circuit combinatoire le plus simple permettant d'additionner deux bits.
Lorsque l'on additionne deux bits A et B, il faut produire deux résultats : le bit de somme et le report, noté C (carry).
| A | B | Somme S | Report C |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
La somme est obtenue avec une porte XOR :
S = A ⊕ B
Le report est obtenu avec une porte AND :
C = A · B
Lorsque 1 + 1 est effectué, le résultat binaire est 10. Le 0 constitue la somme du bit actuel et le 1 est envoyé vers la position binaire suivante sous forme de report.
Le circuit du demi-additionneur
Un demi-additionneur peut donc être réalisé avec seulement deux portes principales : une porte XOR pour la somme et une porte AND pour le report.
Les deux portes reçoivent les mêmes entrées A et B, mais produisent deux résultats différents.
Le demi-additionneur permet ainsi de transformer :
A + B
en deux sorties :
S + C
où S est la somme et C le report (carry).
Le demi-additionneur présente cependant une limitation : il ne possède pas d'entrée permettant de recevoir le report provenant du bit précédent.
L'additionneur complet
L'additionneur complet permet d'additionner des nombres comportant plusieurs bits. Il possède trois entrées :
- A : premier bit à additionner ;
- B : deuxième bit à additionner ;
- Cin : report provenant de la position précédente.
Il possède également deux sorties :
- S : bit de somme ;
- Cout : report transmis à la position suivante.
La table de vérité est :
| A | B | Cin | S | Cout |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
La somme peut être exprimée par :
S = A ⊕ B ⊕ Cin
Le report (carry) est obtenu par :
Cout = A · B + Cin · (A ⊕ B)
Construire un additionneur complet
Un additionneur complet peut être construit à partir de deux demi-additionneurs et d'une porte OR.
Le premier demi-additionneur additionne A et B. Il produit une somme intermédiaire et un premier report.
Le deuxième demi-additionneur additionne cette somme intermédiaire avec Cin.
Les deux reports sont ensuite combinés avec une porte OR pour produire Cout.
L'additionneur binaire à plusieurs bits
Pour additionner deux nombres binaires comportant plusieurs bits, on associe plusieurs additionneurs complets.
Chaque additionneur traite une position binaire et transmet son report à l'additionneur situé à la position suivante.
Pour une addition sur quatre bits, quatre additionneurs peuvent ainsi être reliés en chaîne.
Le report produit par le premier étage devient l'entrée de report du deuxième, puis celui du deuxième devient l'entrée du troisième, et ainsi de suite.
Le circuit effectue donc l'addition bit par bit, en commençant par le bit de poids faible.
Par exemple :
0111
\+ 0011
──────
1010
L'additionneur traite successivement les différentes positions et transmet les reports nécessaires vers la gauche.
Le temps de propagation dans un additionneur
Dans un additionneur où les reports traversent successivement plusieurs étages, le résultat final ne peut être stabilisé qu'après la propagation du report à travers les différents additionneurs.
Cette organisation est appelée additionneur à propagation de retenue.
Plus le nombre de bits est important, plus le report peut devoir traverser d'étages avant d'atteindre le résultat final. La vitesse du calcul est donc limitée par cette propagation.
Le soustracteur
Les circuits numériques doivent également pouvoir effectuer des soustractions binaires.
On peut construire un soustracteur à partir de portes logiques en utilisant les mêmes principes que pour l'addition.
Un demi-soustracteur reçoit deux bits A et B et produit une différence ainsi qu'un emprunt.
| A | B | Différence D | Emprunt E |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
La différence est obtenue avec une porte XOR :
D = A ⊕ B
L'emprunt vaut :
E = A · B
Le soustracteur complet
Pour effectuer une soustraction sur plusieurs bits, il faut également pouvoir recevoir un emprunt provenant de la position précédente.
On utilise alors un soustracteur complet possédant trois entrées :
- A : premier bit ;
- B : deuxième bit ;
- Ein : emprunt entrant.
Ses sorties sont :
- D : différence ;
- Eout : emprunt sortant.
Plusieurs soustracteurs complets peuvent être associés pour effectuer une soustraction sur plusieurs bits.
La soustraction par complément à deux
Dans de nombreux systèmes numériques, la soustraction n'est pas réalisée avec un circuit totalement séparé de l'additionneur. Elle peut être transformée en addition grâce au complément à deux.
Pour calculer :
A − B
on peut effectuer :
A + complément à deux de B
Le complément à deux d'un nombre s'obtient en inversant tous ses bits puis en ajoutant 1.
Cette méthode permet à un même circuit arithmétique de réaliser aussi bien des additions que des soustractions.
Le comparateur
Un comparateur logique permet de déterminer la relation entre deux valeurs binaires.
Selon le circuit, il peut indiquer si :
- A = B ;
- A > B ;
- A < B.
Pour comparer deux bits, une porte XNOR peut déterminer s'ils sont identiques.
Pour des nombres comportant plusieurs bits, les différentes positions sont comparées et les résultats sont combinés afin de déterminer la relation entre les deux nombres.
Le multiplexeur
Un multiplexeur, souvent abrégé MUX, permet de sélectionner une entrée parmi plusieurs et de transmettre cette entrée vers une sortie.
Il possède des entrées de données et une ou plusieurs entrées de commande.
Avec deux entrées de données D0 et D1 et une entrée de commandeS :
| C | Sortie S |
|---|---|
| 0 | D0 |
| 1 | D1 |
La fonction peut être écrite :
S = C · D0 + C · D1
Le multiplexeur agit donc comme un commutateur électronique commandé par des signaux logiques.
Les multiplexeurs à plusieurs entrées
Avec deux bits de sélection, un multiplexeur peut choisir entre quatre entrées. Avec trois bits de sélection, il peut en choisir huit.
Plus généralement, n bits de sélection permettent de sélectionner une entrée parmi :
2n
entrées possibles.
Les multiplexeurs sont utilisés pour choisir quelle donnée doit être transmise dans une partie d'un circuit numérique.
Le démultiplexeur
Le démultiplexeur, ou DEMUX, réalise la fonction inverse du multiplexeur.
Il reçoit une donnée en entrée et utilise les lignes de sélection pour déterminer vers laquelle de plusieurs sorties cette donnée doit être envoyée.
Avec une entrée de données et deux sorties, une ligne de sélection permet de choisir la sortie active.
Le démultiplexeur peut donc être utilisé pour distribuer une information vers une destination choisie.
L'encodeur
Un encodeur transforme une information représentée par plusieurs lignes d'entrée en un code binaire plus compact.
Par exemple, un encodeur possédant huit entrées peut produire trois bits de sortie, car trois bits permettent de représenter huit possibilités :
23 = 8
Lorsqu'une entrée est activée, l'encodeur produit sur ses sorties le code binaire correspondant à cette entrée.
Les encodeurs sont notamment utilisés lorsqu'il faut transformer une sélection physique ou logique en une représentation binaire.
L'encodeur prioritaire
Dans un encodeur classique, on suppose généralement qu'une seule entrée est active à la fois. Dans certaines applications, plusieurs entrées peuvent cependant être activées simultanément.
Un encodeur prioritaire attribue alors une priorité aux différentes entrées.
Si plusieurs entrées sont actives, le circuit encode celle qui possède la priorité la plus élevée.
Le décodeur
Un décodeur réalise l'opération inverse de l'encodage. Il reçoit un code binaire en entrée et active une sortie correspondant à ce code.
Avec deux bits d'entrée, quatre sorties peuvent être sélectionnées :
| A | B | Sortie active |
|---|---|---|
| 0 | 0 | S0 |
| 0 | 1 | Y1 |
| 1 | 0 | S2 |
| 1 | 1 | S3 |
Un décodeur possédant n entrées peut théoriquement sélectionner jusqu'à 2n sorties.
Les décodeurs pour afficheurs
Un décodeur peut également transformer un code binaire en plusieurs signaux permettant de commander un afficheur.
Par exemple, un décodeur peut recevoir un nombre codé en binaire et produire les signaux nécessaires pour allumer les différents segments d'un afficheur numérique.
Pour afficher les chiffres de 0 à 9 sur un afficheur à sept segments, le circuit détermine quels segments doivent être allumés pour chaque valeur reçue.
Le démultiplexage et le décodage
Le démultiplexeur et le décodeur peuvent sembler proches car ils utilisent tous deux des lignes de sélection pour déterminer une sortie.
La différence principale est que le démultiplexeur transmet une donnée vers la sortie sélectionnée, tandis que le décodeur active une sortie correspondant au code reçu.
Les circuits arithmétiques
Les additionneurs et les soustracteurs constituent des circuits arithmétiques. Ils permettent de réaliser les opérations nécessaires aux calculs numériques.
En combinant plusieurs circuits élémentaires, on peut réaliser des unités capables d'effectuer différentes opérations sur des nombres binaires.
Ces circuits constituent notamment les bases des unités arithmétiques et logiques, ou ALU (Arithmetic Logic Unit), utilisées dans les processeurs.
L'unité arithmétique et logique
Une ALU est un circuit capable d'effectuer différentes opérations arithmétiques et logiques sur des données binaires.
Selon les signaux de commande reçus, elle peut par exemple effectuer une addition, une soustraction ou une opération logique.
Elle reçoit généralement :
- des données binaires à traiter ;
- des signaux indiquant l'opération à effectuer ;
- éventuellement des informations provenant d'une opération précédente.
Elle produit le résultat de l'opération ainsi que différents signaux indiquant certaines propriétés du résultat, selon son architecture.
Les signaux de commande
Les circuits standards ne réalisent pas nécessairement une seule fonction. Certains possèdent des entrées de commande permettant de choisir leur fonctionnement.
Par exemple, un circuit peut recevoir deux nombres binaires et plusieurs bits de commande. La combinaison de ces bits détermine l'opération que le circuit doit effectuer.
Les signaux de commande permettent ainsi de transformer plusieurs fonctions élémentaires en un circuit multifonction.
Assembler les fonctions standards
Les fonctions standards peuvent être associées entre elles pour construire des circuits plus complexes.
Un multiplexeur peut sélectionner une donnée, un additionneur peut effectuer un calcul sur cette donnée, puis un comparateur peut vérifier le résultat. Chaque bloc réalise une fonction précise et les sorties d'un bloc peuvent alimenter les entrées d'un autre.
Cette organisation par blocs permet de construire progressivement des systèmes numériques complexes tout en conservant une structure compréhensible.
Des circuits standards aux processeurs
Les processeurs utilisent un très grand nombre de circuits combinatoires associés à des circuits capables de mémoriser des informations.
Les additionneurs, comparateurs, multiplexeurs, décodeurs et autres fonctions logiques sont utilisés à différents endroits du processeur pour traiter, sélectionner et transformer les données binaires.
Les circuits combinatoires assurent ainsi une grande partie des opérations instantanées effectuées sur les données, tandis que les circuits séquentiels permettent de conserver les états et d'organiser les opérations dans le temps.