L'électronique numérique
L'électronique numérique est une branche de l'électronique dans laquelle les informations sont représentées et traitées sous forme de valeurs discrètes. La représentation la plus courante utilise deux états, notés 0 et 1, qui correspondent physiquement à des niveaux électriques définis par le circuit.
Cette manière de représenter l'information permet de manipuler des nombres, des textes, des images, des sons, des mesures et des instructions sous une forme adaptée au traitement électronique. Une information complexe est transformée en une succession de valeurs binaires que les circuits peuvent stocker, déplacer, comparer et modifier.
Du signal électrique à l'information numérique
Dans un circuit électronique réel, un 0 et un 1 ne sont pas des valeurs abstraites. Ils sont représentés par des niveaux de tension ou, dans certaines technologies, par des niveaux de courant ou des états électriques particuliers.
Un circuit numérique définit des plages dans lesquelles une tension est reconnue comme un état logique. Cette distinction permet au système de tolérer de petites perturbations sans modifier immédiatement l'information.
Une information provenant du monde réel est souvent analogique. Un microphone produit par exemple une tension qui varie continuellement avec le son. Pour être traitée numériquement, cette information doit être échantillonnée puis représentée par des valeurs numériques.
À l'inverse, lorsqu'un système numérique doit commander un phénomène physique, les données numériques peuvent être reconverties en un signal électrique adapté au dispositif commandé.
La représentation de l'information
La plus petite unité d'information numérique est le bit. Il peut prendre deux états : 0 ou 1.
En regroupant plusieurs bits, le nombre de valeurs représentables augmente rapidement. Huit bits forment un octet et permettent de représenter 256 valeurs différentes. Avec 16 bits, 65 536 valeurs peuvent être représentées, et avec 32 bits, plus de quatre milliards de combinaisons sont possibles.
Ces combinaisons peuvent représenter des nombres, mais aussi des caractères, des couleurs, des adresses mémoire, des instructions ou toute autre information définie par le système.
Le traitement logique
Les circuits numériques manipulent les bits grâce à des opérations logiques. Ces opérations permettent de déterminer une nouvelle valeur à partir d'une ou plusieurs valeurs d'entrée.
Une condition peut ainsi être vérifiée, plusieurs informations peuvent être combinées, une valeur peut être inversée ou plusieurs possibilités peuvent être sélectionnées.
Les opérations élémentaires sont ensuite associées pour réaliser des fonctions beaucoup plus complexes. Un circuit capable d'effectuer une addition, de comparer deux nombres ou de sélectionner une donnée est finalement constitué d'un très grand nombre d'opérations logiques organisées entre elles.
La logique et les circuits
La théorie logique fournit les règles permettant de décrire le comportement d'un circuit numérique. Elle permet de passer d'une expression représentant une condition à une organisation concrète de composants électroniques.
Les relations entre les entrées et les sorties peuvent être décrites mathématiquement, représentées sous forme de tableaux ou directement traduites en circuits électroniques.
Cette séparation entre la fonction recherchée et sa réalisation physique facilite considérablement la conception de systèmes numériques complexes.
Les circuits combinatoires
Dans un circuit combinatoire, la sortie dépend des valeurs présentes sur les entrées au moment considéré.
Une modification d'une entrée se propage donc à travers le circuit et finit par modifier les sorties correspondantes. Le circuit ne conserve pas l'état précédent de ses entrées.
Les circuits réalisant des additions, des comparaisons, des sélections ou des conversions de codes appartiennent notamment à cette catégorie.
La mémoire et les circuits séquentiels
Un système numérique doit souvent conserver une information afin de poursuivre une opération. Il utilise alors des circuits séquentiels, capables de conserver un état.
Le résultat produit par un circuit séquentiel dépend donc non seulement des entrées actuelles, mais également de l'état dans lequel se trouvait précédemment le circuit.
Cette propriété permet de construire des compteurs, des registres, des mémoires, des séquences de commande et des systèmes capables d'exécuter des opérations dans un ordre déterminé.
Le temps dans les systèmes numériques
Les circuits numériques complexes doivent coordonner leurs opérations. Une horloge fournit souvent une référence temporelle commune à de nombreux blocs.
Elle produit un signal périodique dont les transitions servent de repères pour enregistrer des données ou déclencher certaines opérations. La fréquence de cette horloge indique le nombre de cycles effectués chaque seconde.
Tous les circuits numériques ne fonctionnent cependant pas obligatoirement avec une horloge. Certains circuits réagissent directement aux changements de leurs entrées et d'autres utilisent des mécanismes de synchronisation particuliers.
Les fonctions numériques
En combinant les opérations élémentaires, il devient possible de construire des fonctions numériques de plus en plus élaborées.
Un système peut par exemple effectuer des calculs arithmétiques, stocker temporairement une donnée, compter des événements, comparer des valeurs, choisir une source parmi plusieurs ou commander une succession d'opérations.
Ces fonctions constituent les briques à partir desquelles sont construits les circuits numériques complexes. Leur organisation détermine l'architecture générale du système.
Les différentes architectures
La manière dont les fonctions numériques sont regroupées et reliées définit l'architecture du circuit.
Un circuit simple peut être conçu pour réaliser une fonction fixe. Un système plus complexe peut comporter plusieurs unités de calcul, des blocs de mémoire, des circuits de contrôle et des interfaces permettant d'échanger des données avec l'extérieur.
L'architecture dépend de la fonction recherchée, de la quantité de données à traiter, de la vitesse nécessaire, de la consommation électrique et de la possibilité ou non de modifier le comportement du circuit après sa fabrication.
La conception des circuits numériques
La conception commence généralement par la définition de la fonction que doit réaliser le système. Les ingénieurs décrivent ensuite les opérations nécessaires et organisent les différents blocs logiques.
Pour les circuits simples, cette organisation peut être représentée directement sous forme de schéma. Pour les systèmes comportant des milliers ou des millions de fonctions, des méthodes de conception spécialisées deviennent indispensables.
Des outils informatiques permettent de simuler le fonctionnement du circuit avant sa fabrication. Ils vérifient les relations logiques, les temps de propagation et le comportement dans différentes conditions.
La description matérielle
Lorsque les circuits deviennent très complexes, leur fonctionnement peut être décrit à l'aide de langages de description matérielle. Ces langages permettent de représenter le comportement et la structure d'un système numérique sous une forme exploitable par les outils de conception.
Le concepteur peut ainsi décrire une opération, un registre, une machine à états ou l'organisation de plusieurs blocs sans dessiner individuellement chaque porte logique.
Les outils de synthèse transforment ensuite cette description en une réalisation matérielle constituée de fonctions logiques et de connexions adaptées à la technologie utilisée.
La réalisation physique
Une fois la conception validée, le circuit peut être transformé en une réalisation physique. Dans un circuit intégré, les fonctions logiques sont finalement construites à partir de transistors et de leurs interconnexions sur une puce de silicium.
Dans d'autres systèmes, les fonctions numériques peuvent être réalisées à l'aide de plusieurs composants reliés sur une carte électronique.
Le même raisonnement logique peut donc conduire à des réalisations physiques très différentes selon les contraintes de coût, de volume, de puissance, de vitesse et de quantité produite.
Les avantages du traitement numérique
La représentation binaire permet de reproduire et de transmettre une information avec une grande fiabilité. Tant que les niveaux électriques restent suffisamment éloignés des seuils de décision, de petites perturbations ne modifient pas la valeur logique reconnue.
Les données numériques peuvent également être copiées sans perte liée à la copie elle-même, stockées dans de grandes quantités de mémoire et traitées par des circuits programmables ou spécialisés.
Cette robustesse explique le développement de l'électronique numérique dans les systèmes informatiques, les télécommunications, l'automobile, l'industrie, les appareils multimédias et les équipements scientifiques.
De la logique élémentaire aux systèmes numériques
L'électronique numérique forme ainsi une chaîne de conception progressive. Les informations sont d'abord représentées sous forme binaire, puis manipulées par des règles logiques. Ces règles permettent de construire des fonctions combinatoires et séquentielles, qui sont ensuite regroupées en architectures de plus en plus complexes.
La conception moderne permet finalement de transformer une description logique en un ensemble physique de millions ou de milliards de transistors capables de traiter automatiquement des informations à très grande vitesse.
- Le système binaire
- L'algèbre de Boole
- Les tableaux de Karnaugh
- Les portes logiques
- Les fonctions standards et les circuits de calcul
- Les circuits séquentiels
- Les architectures de circuits
- La pratique et les langages de description (VHDL/Verilog)
Le système binaire
Dans la vie courante, nous utilisons principalement le système décimal. Il utilise dix chiffres, de 0 à 9, pour représenter les nombres. Les ordinateurs, les circuits numériques et de nombreux appareils électroniques utilisent cependant un autre système : le système binaire.
Le système binaire n'utilise que deux chiffres : 0 et 1. Ces deux valeurs correspondent particulièrement bien au fonctionnement de l'électronique numérique, dans laquelle un signal peut être interprété comme ayant deux états distincts.
Deux valeurs suffisent
Un circuit électronique peut facilement distinguer deux états électriques. Par exemple, une tension faible peut représenter 0 et une tension élevée peut représenter 1.
Ces deux états permettent de représenter une information de manière fiable, même lorsque le signal subit de petites perturbations. Un circuit numérique ne cherche donc pas nécessairement à mesurer précisément chaque valeur de tension : il détermine principalement dans quel état logique se trouve le signal.
Le système binaire est ainsi particulièrement adapté aux circuits numériques. Les transistors peuvent être utilisés pour établir, interrompre ou contrôler ces états électriques, ce qui permet de réaliser des opérations logiques et de stocker des informations.
Les chiffres binaires
Un chiffre du système binaire est appelé un bit, contraction de binary digit. Un bit ne peut prendre que deux valeurs : 0 ou 1.
Avec un seul bit, on peut donc représenter deux possibilités :
- 0 : première possibilité ;
- 1 : deuxième possibilité.
Avec deux bits, quatre combinaisons différentes sont possibles :
- 00
- 01
- 10
- 11
Avec trois bits, on obtient huit combinaisons. Avec quatre bits, seize combinaisons. Plus le nombre de bits augmente, plus le nombre de valeurs différentes pouvant être représentées augmente.
Le nombre de combinaisons
Chaque bit possède deux états possibles. Avec plusieurs bits, chaque position peut donc prendre indépendamment la valeur 0 ou 1.
Nombre de valeurs = 2n
où n représente le nombre de bits.
Ainsi :
- 1 bit → 2 valeurs ;
- 2 bits → 4 valeurs ;
- 3 bits → 8 valeurs ;
- 4 bits → 16 valeurs ;
- 8 bits → 256 valeurs ;
- 16 bits → 65 536 valeurs.
Avec n bits, on peut représenter les nombres entiers non signés allant de 0 à 2n − 1.
La position des chiffres
Comme dans le système décimal, la position d'un chiffre binaire détermine sa valeur. Mais au lieu d'utiliser des puissances de 10, le système binaire utilise des puissances de 2.
Dans un nombre binaire, le chiffre situé complètement à droite correspond à 20, celui situé juste à sa gauche à 21, puis 22, 23, etc.
Pour un nombre de huit bits :
| Position | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Valeur | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Le bit situé le plus à droite est appelé le bit de poids faible, ou LSB (Least Significant Bit). Le bit situé le plus à gauche est le bit de poids fort, ou MSB (Most Significant Bit).
Lire un nombre binaire
Pour convertir un nombre binaire en nombre décimal, il suffit d'additionner les puissances de 2 correspondant aux positions où se trouvent des 1.
Prenons le nombre binaire 1011.
Ses positions correspondent à :
| Binaire | 1 | 0 | 1 | 1 |
|---|---|---|---|---|
| Puissance | 23 | 22 | 21 | 20 |
| Valeur | 8 | 0 | 2 | 1 |
On obtient :
10112 = 8 + 2 + 1 = 1110
Le nombre 1011 en binaire représente donc le nombre 11 en décimal.
Compter en binaire
Le principe du comptage est le même qu'en décimal : lorsque toutes les possibilités d'une position sont utilisées, on revient à zéro et on augmente la position suivante.
En partant de zéro :
| Décimal | Binaire |
|---|---|
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
| 10 | 1010 |
| 11 | 1011 |
| 12 | 1100 |
| 13 | 1101 |
| 14 | 1110 |
| 15 | 1111 |
Avec quatre bits, le plus grand nombre représentable est donc 1111, qui correspond à 15.
Passer du décimal au binaire
Pour convertir un nombre décimal en binaire, on peut rechercher les puissances de 2 qui permettent de construire ce nombre.
Prenons 13. Les puissances de 2 nécessaires sont :
13 = 8 + 4 + 1
On utilise donc 23, 22 et 20, mais pas 21.
On obtient :
1310 = 11012
Une autre méthode consiste à effectuer des divisions successives par 2 et à conserver les restes. En lisant les restes de la dernière division vers la première, on obtient l'écriture binaire.
Les nombres binaires et les nombres décimaux
Le système binaire et le système décimal représentent exactement les mêmes nombres. Seule leur écriture change.
Par exemple :
- 510 = 1012
- 1010 = 10102
- 2010 = 101002
- 3210 = 1000002
- 10010 = 11001002
Les petits indices 2 et 10 permettent de préciser la base utilisée et d'éviter toute ambiguïté.
L'addition binaire
L'addition binaire repose sur quelques règles simples :
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 10
La dernière règle est importante. En binaire, 10 représente le nombre décimal 2. Lorsqu'on additionne deux 1, on écrit donc 0 et on reporte 1 dans la colonne suivante.
Par exemple :
0101
\+ 0011
──────
1000
Cela correspond à :
5 + 3 = 8
La soustraction binaire
La soustraction utilise également le principe du système décimal, mais avec seulement les chiffres 0 et 1.
- 0 − 0 = 0
- 1 − 0 = 1
- 1 − 1 = 0
Lorsque l'on doit effectuer 0 − 1, il faut emprunter une unité à la position suivante. En binaire, cette unité vaut 102, soit 2 en décimal.
Par exemple :
1010
− 0011
──────
0111
Ce qui correspond à :
10 − 3 = 7
La multiplication binaire
La multiplication binaire est particulièrement simple puisque chaque chiffre est soit 0, soit 1.
- 0 × 0 = 0
- 0 × 1 = 0
- 1 × 0 = 0
- 1 × 1 = 1
La multiplication par 2 correspond également à un décalage d'un bit vers la gauche. Par exemple :
0011 × 2 = 0110
Le nombre 0011 vaut 3 et 0110 vaut 6.
Les nombres entiers non signés
Lorsque tous les bits servent à représenter la valeur du nombre, on parle d'un nombre non signé. Tous les nombres représentés sont alors positifs ou nuls.
Avec 8 bits, on peut représenter :
0 à 28 − 1 = 255
Le nombre 00000000 représente 0 et 11111111 représente 255.
Les nombres signés
Pour représenter également des nombres négatifs, il faut réserver une partie de l'information à la représentation du signe. Une méthode très utilisée dans les ordinateurs est le complément à deux.
Avec 8 bits en complément à deux, les valeurs représentables vont de −128 à +127.
Cette représentation permet aux circuits électroniques d'effectuer les additions et les soustractions de nombres positifs et négatifs avec les mêmes circuits arithmétiques.
Les groupes de bits
Les bits sont généralement regroupés afin de manipuler plus facilement les informations.
Un groupe de 4 bits est appelé un nibble. Un groupe de 8 bits constitue un octet, ou byte en anglais.
Un octet peut représenter 256 valeurs différentes, de 0 à 255 lorsqu'il est utilisé comme nombre non signé.
Les tailles plus importantes sont ensuite constituées de plusieurs octets : 16 bits, 32 bits, 64 bits, etc.
Le système hexadécimal
Écrire de longues suites de 0 et de 1 devient rapidement difficile à lire. En électronique et en informatique, on utilise donc souvent le système hexadécimal, qui possède une base 16.
Il utilise les chiffres de 0 à 9 puis les lettres A à F.
| Décimal | Hexadécimal | Binaire |
|---|---|---|
| 0 | 0 | 0000 |
| 1 | 1 | 0001 |
| 2 | 2 | 0010 |
| 3 | 3 | 0011 |
| 4 | 4 | 0100 |
| 5 | 5 | 0101 |
| 6 | 6 | 0110 |
| 7 | 7 | 0111 |
| 8 | 8 | 1000 |
| 9 | 9 | 1001 |
| 10 | A | 1010 |
| 11 | B | 1011 |
| 12 | C | 1100 |
| 13 | D | 1101 |
| 14 | E | 1110 |
| 15 | F | 1111 |
Chaque chiffre hexadécimal correspond exactement à 4 bits. La conversion est donc particulièrement simple.
Par exemple :
1011 01102 = B616
Le binaire dans l'électronique numérique
Le système binaire est particulièrement adapté aux circuits numériques parce que les composants électroniques peuvent être utilisés pour distinguer deux états logiques.
Un circuit peut par exemple interpréter une tension située dans une certaine plage comme un 0 logique et une tension située dans une autre plage comme un 1 logique.
Il ne faut cependant pas confondre directement 0 et 1 avec deux valeurs de tension universelles. Les niveaux électriques dépendent de la technologie utilisée. Un 0 logique et un 1 logique correspondent à des plages de tensions définies par le circuit.
Les bits comme informations
Un bit ne représente pas nécessairement un nombre. Il peut représenter n'importe quelle information pouvant être codée avec deux états.
Un bit peut par exemple indiquer :
- éteint ou allumé ;
- faux ou vrai ;
- non ou oui ;
- désactivé ou activé.
Plusieurs bits permettent alors de représenter un nombre beaucoup plus important d'états. Huit bits peuvent représenter 256 combinaisons différentes, seize bits peuvent en représenter 65 536.
Représenter des nombres avec des circuits
Un ensemble de bits peut représenter directement un nombre. Par exemple, un registre de huit bits peut contenir :
00101101
Ce nombre vaut :
32 + 8 + 4 + 1 = 45
Le circuit peut donc stocker, transmettre ou traiter la valeur 45 sous la forme d'une succession de huit états logiques.
Représenter des textes, des images et des sons
Le principe binaire ne sert pas uniquement à représenter des nombres. Des systèmes de codage permettent d'associer des suites de bits à des caractères, des couleurs, des pixels ou des échantillons sonores.
Un texte peut ainsi être transformé en une suite de nombres correspondant aux caractères. Une image numérique est constituée de pixels auxquels sont attribuées des valeurs numériques représentant notamment leurs couleurs. Un son numérisé est représenté par une succession de valeurs mesurées à intervalles réguliers.
Dans tous ces cas, l'information finale est stockée et manipulée sous forme de bits.
Le binaire et les circuits logiques
Les bits peuvent être traités par des portes logiques. Une porte logique reçoit une ou plusieurs valeurs binaires et produit une valeur binaire en fonction d'une règle précise.
Les principales portes logiques sont NON (NOT), ET (AND), OU (OR), ainsi que NAND, NOR, XOR et XNOR.
En combinant ces portes, on peut réaliser des circuits capables d'effectuer des calculs, de comparer des valeurs, de mémoriser des informations ou de prendre des décisions logiques.
Le système binaire constitue ainsi le langage numérique utilisé par les circuits électroniques pour représenter et traiter les informations. Les portes logiques, les additionneurs, les registres, les mémoires, les processeurs et de nombreux autres circuits numériques manipulent tous des suites de bits.