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)
L'algèbre de Boole
L'algèbre de Boole est une branche des mathématiques qui a été développée au XIXe siècle par le mathématicien anglais George Boole. Elle permet de décrire mathématiquement des raisonnements qui ne possèdent que deux états, comme vrai ou faux, oui ou non, activé ou désactivé.
Les deux valeurs logiques
En algèbre de Boole, une variable logique ne peut prendre que deux valeurs :
- 0 représente généralement faux, inactif ou absent ;
- 1 représente généralement vrai, actif ou présent.
Ces correspondances sont des conventions. Dans un circuit électronique, le 0 et le 1 correspondent à des niveaux logiques définis par la technologie utilisée.
Une variable logique peut être représentée par une lettre, par exemple A. Elle peut donc avoir seulement deux états :
A = 0 ou A = 1
Les opérations logiques
L'algèbre de Boole permet de combiner plusieurs variables à l'aide d'opérations logiques.
Les trois opérations fondamentales sont :
- NON : inverse une valeur logique ;
- ET : donne 1 lorsque toutes les conditions sont vraies ;
- OU : donne 1 lorsqu'au moins une condition est vraie.
Ces opérations mathématiques correspondent directement à des fonctions que les circuits électroniques peuvent réaliser.
L'opération NON
L'opération NON, appelée NOT en anglais, inverse la valeur de son entrée.
Si l'entrée vaut 0, la sortie vaut 1. Si l'entrée vaut 1, la sortie vaut 0.
| A | NON A |
|---|---|
| 0 | 1 |
| 1 | 0 |
On peut écrire cette opération avec une barre au-dessus de la variable :
S = A
On rencontre également les notations ¬A ou NOT A.
Une opération NON ne possède donc qu'une seule entrée et une seule sortie. En électronique, elle est réalisée par une porte NOT, également appelée inverseur.
L'opération ET
L'opération ET, appelée AND en anglais, donne 1 uniquement lorsque toutes ses entrées valent 1.
Avec deux variables A et B :
| A | B | A ET B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
L'opération ET s'écrit généralement :
S = A · B
Le symbole · représente ici une opération logique et non une multiplication ordinaire, même si les règles de calcul des valeurs 0 et 1 donnent le même résultat.
Une porte AND peut par exemple commander une lampe uniquement lorsque deux conditions sont simultanément satisfaites : un interrupteur A doit être activé et un interrupteur B doit également être activé.
L'opération OU
L'opération OU, appelée OR en anglais, donne 1 lorsqu'au moins une de ses entrées vaut 1.
| A | B | A OU B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
L'opération OU s'écrit :
S = A + B
Le symbole + représente ici une addition logique et non une addition arithmétique classique. Le résultat ne peut jamais être supérieur à 1.
Une porte OR peut par exemple commander une alarme si une condition A ou une condition B est détectée.
La table de vérité
Une table de vérité permet de présenter toutes les combinaisons possibles des entrées d'une opération logique et d'indiquer la valeur correspondante de la sortie.
Pour deux entrées, il existe quatre combinaisons possibles : 00, 01, 10 et 11. Pour trois entrées, il en existe huit. Plus le nombre d'entrées augmente, plus le nombre de combinaisons augmente selon la relation :
2n
où n est le nombre d'entrées.
L'opération OU exclusif
L'opération OU exclusif, appelée XOR, signifie « l'un ou l'autre, mais pas les deux ».
Avec deux entrées, la sortie vaut donc 1 lorsque les deux entrées sont différentes.
| A | B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
L'opération XOR s'écrit généralement :
S = A ⊕ B
Elle est particulièrement importante dans les circuits arithmétiques, notamment pour réaliser des additionneurs binaires.
L'opération NON-ET
L'opération NON-ET, appelée NAND, correspond à l'inverse de l'opération ET.
La sortie vaut donc 0 uniquement lorsque toutes les entrées valent 1.
| A | B | A NAND B |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
On peut l'écrire :
S = A · B
La porte NAND est particulièrement importante car elle est universelle : en combinant uniquement des portes NAND, il est possible de réaliser les autres fonctions logiques.
L'opération NON-OU
L'opération NON-OU, appelée NOR, correspond à l'inversion de l'opération OU.
La sortie vaut 1 uniquement lorsque toutes les entrées valent 0.
| A | B | A NOR B |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
On peut l'écrire :
S = A + B
Comme la porte NAND, la porte NOR est une porte universelle. Des circuits logiques complets peuvent donc être construits uniquement à partir de portes NOR.
L'opération NON-OU exclusif
L'opération NON-OU exclusif, appelée XNOR, est l'inverse de XOR.
La sortie vaut 1 lorsque les deux entrées sont identiques.
| A | B | A XNOR B |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Cette fonction est notamment utile pour comparer deux valeurs binaires.
Les lois de l'algèbre de Boole
Les opérations logiques obéissent à plusieurs règles qui permettent de transformer et de simplifier les expressions booléennes.
Pour l'opération ET :
- A · 0 = 0
- A · 1 = A
- A · A = A
- A · A = 0
Pour l'opération OU :
- A + 0 = A
- A + 1 = 1
- A + A = A
- A + A = 1
Ces règles permettent notamment de supprimer des parties inutiles d'une expression logique.
La commutativité
Les opérations ET et OU sont commutatives. L'ordre des variables ne change pas le résultat.
A · B = B · A
A + B = B + A
Ainsi, échanger les deux entrées d'une porte AND ou OR ne modifie pas sa sortie.
L'associativité
Les opérations ET et OU sont également associatives. Lorsque plusieurs opérations identiques sont effectuées, le regroupement des variables ne change pas le résultat.
(A · B) · C = A · (B · C)
(A + B) + C = A + (B + C)
La distributivité
L'algèbre de Boole possède également des lois de distributivité.
A · (B + C) = A · B + A · C
Il existe également une forme particulière de distributivité pour l'opération OU :
A + (B · C) = (A + B) · (A + C)
Ces règles permettent de transformer une expression logique tout en conservant exactement le même résultat.
Les lois de De Morgan
Les lois de De Morgan permettent de transformer une inversion portant sur plusieurs variables.
A · B = A + B
A + B = A · B
La première loi indique que le NON-ET d'un ensemble de valeurs équivaut au OU des valeurs inversées. La seconde indique que le NON-OU équivaut au ET des valeurs inversées.
Ces lois sont très utilisées pour transformer une expression et construire un circuit équivalent avec un autre type de portes logiques.
Les expressions booléennes
Une expression booléenne combine des variables et des opérations logiques pour déterminer une sortie.
Par exemple :
S = A · B + C
La sortie S vaut 1 lorsque A et B valent tous les deux 1, ou lorsque C vaut 1.
Une expression plus complexe peut être construite en associant plusieurs opérations :
S = (A + B) · C
Dans ce cas, on effectue d'abord l'opération OU entre A et B, puis on inverse C, avant d'effectuer l'opération ET entre les deux résultats.
Simplifier une expression booléenne
Une expression peut contenir des opérations qui ne sont pas nécessaires. Les lois de l'algèbre de Boole permettent de les supprimer et d'obtenir une expression plus simple.
Par exemple :
A + A · B = A
Cette relation signifie que la présence de A suffit à produire 1. Le terme A · B n'apporte donc aucune nouvelle possibilité.
La simplification d'une expression peut réduire le nombre de portes logiques nécessaires pour réaliser le circuit correspondant. Un circuit plus simple nécessite généralement moins de composants et peut être plus rapide et plus économique.
De l'expression logique au circuit
Une expression booléenne peut être transformée directement en circuit logique. Chaque opération correspond à une porte logique.
Pour l'expression :
S = A · B + C
on utilise d'abord une porte AND pour calculer A · B, puis une porte OR pour ajouter C au résultat.
À l'inverse, un circuit logique peut être traduit en expression booléenne. L'algèbre de Boole permet ainsi de passer du raisonnement mathématique au circuit électronique, et inversement.
De la table de vérité au circuit
Une table de vérité permet également de partir du comportement souhaité d'un circuit pour construire son expression logique.
Pour chaque ligne où la sortie vaut 1, on peut écrire une combinaison des entrées correspondant exactement à cette situation. Les différentes combinaisons sont ensuite reliées par des opérations OU.
Cette méthode permet de concevoir systématiquement des circuits logiques à partir de leur comportement attendu.
L'algèbre de Boole dans les circuits numériques
L'algèbre de Boole constitue le langage mathématique des circuits logiques. Elle permet de décrire les opérations effectuées sur les bits et de déterminer la sortie d'un circuit à partir de ses entrées.
En combinant des portes logiques, on peut construire des circuits de plus en plus complexes : additionneurs, comparateurs, multiplexeurs, décodeurs, registres et unités de calcul.
Ces circuits constituent eux-mêmes les éléments de base des systèmes numériques plus complexes, jusqu'aux processeurs et aux systèmes électroniques programmables.