C'est trop fastoche !

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.

Les circuits séquentiels

Les circuits séquentiels sont des circuits numériques dont le fonctionnement dépend non seulement des valeurs présentes sur leurs entrées, mais également de leur état précédent.

Contrairement à un circuit combinatoire, un circuit séquentiel possède donc une forme de mémoire. Il peut conserver une information et l'utiliser pour déterminer son comportement futur.

Cette propriété permet de réaliser des systèmes capables de mémoriser des données, de compter des événements, de suivre une succession d'étapes ou de synchroniser différentes opérations.

Circuit combinatoire et circuit séquentiel

Dans un circuit combinatoire, la sortie dépend uniquement des entrées présentes :

Sortie = fonction des entrées

Dans un circuit séquentiel, la sortie dépend des entrées et de l'état mémorisé :

Sortie = fonction des entrées + état précédent

Le circuit séquentiel doit donc posséder des éléments capables de conserver un état logique.

Circuit combinatoire Circuit séquentiel
Entrées Oui Oui
Sorties Oui Oui
Mémoire Non Oui
État précédent utilisé Non Oui
Dépendance au temps Indirecte Importante

L'état d'un circuit

L'état d'un circuit correspond aux informations qu'il conserve à un instant donné.

Pour un circuit très simple, l'état peut être représenté par un seul bit :

  • 0 : premier état ;
  • 1 : second état.

Un circuit possédant plusieurs éléments de mémoire peut conserver plusieurs bits et donc un grand nombre d'états différents.

Avec n bits de mémoire, il est possible de représenter :

2n

états différents.

La boucle de rétroaction

La mémoire d'un circuit séquentiel repose généralement sur une rétroaction.

Une partie de la sortie du circuit est réinjectée vers son entrée. Le circuit peut ainsi utiliser son propre état actuel pour déterminer son état suivant.

On obtient une structure générale :

Entrées → Logique → Sorties
         ↑
         │
      Mémoire

La rétroaction est l'un des éléments fondamentaux permettant au circuit de conserver une information.

Un circuit capable de conserver un bit

Pour mémoriser une information binaire, il faut pouvoir conserver durablement un état logique jusqu'à ce qu'une nouvelle commande provoque son changement.

Un circuit peut ainsi être placé dans l'état 0 ou dans l'état 1, puis conserver cet état même lorsque le signal qui l'a provoqué n'est plus présent.

Ce principe constitue la base des éléments de mémoire utilisés dans les circuits numériques.

Les verrous logiques

Un verrou logique, ou latch, est un élément capable de mémoriser un bit.

Contrairement à une porte logique classique, il ne produit pas simplement une sortie déterminée par les entrées actuelles. Il peut conserver sa sortie lorsque les conditions d'entrée ne demandent pas de changement.

Le verrou constitue ainsi l'un des premiers éléments permettant de construire une véritable mémoire numérique.

Le verrou SR

Le verrou SR est l'une des formes les plus simples de mémoire logique.

Les lettres S et R correspondent généralement à :

  • S : Set, qui place la mémoire à 1 ;
  • R : Reset, qui place la mémoire à 0.

Le verrou possède une sortie principale Q et généralement sa sortie complémentaire Q̅.

Lorsque la commande Set est activée, le circuit mémorise l'état 1. Lorsque la commande Reset est activée, il mémorise l'état 0.

Lorsque les commandes n'imposent aucun changement, le circuit conserve son état précédent.

La sortie complémentaire

Les éléments de mémoire possèdent souvent deux sorties complémentaires :

Q̅ = NOT(Q)

Lorsque Q = 1, la sortie complémentaire vaut 0. Lorsque Q = 0, elle vaut 1.

Ces deux sorties permettent d'utiliser directement l'information mémorisée et son complément dans différentes parties d'un circuit.

La condition interdite du verrou SR

Selon la technologie utilisée pour réaliser le verrou SR, certaines combinaisons simultanées des entrées peuvent produire un état interdit.

Cette situation apparaît lorsque les commandes Set et Reset sont activées en même temps alors que le fonctionnement du circuit ne définit pas correctement l'état qui doit être mémorisé.

Les architectures suivantes ont notamment été conçues pour éviter cette ambiguïté et permettre un contrôle plus précis de la mémoire.

Le verrou D

Le verrou D simplifie le fonctionnement du verrou SR en utilisant une seule entrée de donnée, appelée D.

Une seconde entrée, souvent appelée Enable, détermine lorsque la donnée peut être prise en compte.

Lorsque le verrou est actif, la sortie suit la donnée présente sur D. Lorsqu'il n'est plus actif, la dernière valeur est conservée.

Le verrou D permet donc de mémoriser directement un bit sans avoir à gérer séparément les commandes Set et Reset.

L'horloge

De nombreux circuits séquentiels utilisent une horloge, ou clock, pour organiser les changements d'état.

L'horloge est un signal périodique qui alterne entre les niveaux logiques 0 et 1.

Elle fournit un rythme commun auquel différents éléments du circuit peuvent synchroniser leurs changements.

On peut représenter une horloge par une succession régulière :

0 → 1 → 0 → 1 → 0 → 1 → ...

La fréquence de l'horloge indique le nombre de cycles effectués chaque seconde.

Les fronts de l'horloge

Un signal d'horloge possède deux changements principaux :

  • le front montant : passage de 0 vers 1 ;
  • le front descendant : passage de 1 vers 0.

Certains circuits séquentiels réagissent au front montant, d'autres au front descendant.

Cela permet de déclencher une modification d'état à un instant précis du cycle d'horloge.

Les bascules

Une bascule, ou flip-flop, est un élément de mémoire conçu pour fonctionner de manière synchronisée avec une horloge.

Elle peut mémoriser un bit et ne modifier son état qu'à un moment déterminé par le signal d'horloge.

Les bascules constituent des éléments fondamentaux des circuits séquentiels synchrones.

La bascule D

La bascule D possède une entrée de donnée D et une entrée d'horloge.

Lors du front actif de l'horloge, la valeur présente sur D est mémorisée dans la bascule.

La sortie Q prend alors cette valeur et la conserve jusqu'au prochain événement de mémorisation.

On peut résumer son fonctionnement par :

Qsuivant = D

La bascule D est particulièrement utilisée pour stocker et transférer des données synchronisées.

La bascule JK

La bascule JK possède deux entrées principales, J et K, ainsi qu'une entrée d'horloge.

Selon les valeurs de J et K, la bascule peut conserver son état, le mettre à 1, le mettre à 0 ou l'inverser.

J K État suivant
0 0 Conservation
0 1 0
1 0 1
1 1 Inversion

Cette capacité d'inversion rend la bascule JK particulièrement intéressante pour certains circuits de comptage.

La bascule T

La bascule T possède une entrée T.

Lorsque T = 0, elle conserve son état.

Lorsque T = 1, elle inverse son état à chaque événement d'horloge.

T État suivant
0 Q
1 Q̅

Cette fonction d'inversion répétée est particulièrement adaptée à la réalisation de compteurs et de diviseurs de fréquence.

Les entrées asynchrones

Certaines bascules possèdent des entrées capables de modifier directement leur état sans attendre le prochain front d'horloge.

On trouve notamment des entrées appelées Preset et Clear, selon les composants.

Le Preset permet généralement de forcer la sortie à 1, tandis que le Clear permet de la forcer à 0.

Ces commandes sont particulièrement utiles pour initialiser un circuit dans un état connu lors de sa mise sous tension.

Les circuits synchrones

Dans un circuit séquentiel synchrone, les changements d'état sont organisés par une horloge commune.

Les différents éléments du circuit évoluent ainsi selon un rythme défini.

Cette organisation facilite la conception de systèmes complexes car les changements d'état peuvent être coordonnés avec précision.

Les circuits asynchrones

Dans un circuit séquentiel asynchrone, les changements d'état ne sont pas nécessairement commandés par une horloge commune.

Le circuit peut réagir directement aux modifications de ses entrées ou de ses états internes.

Ces circuits peuvent être rapides et économes dans certaines applications, mais leur conception est plus délicate car les temps de propagation et les changements d'état doivent être soigneusement maîtrisés.

Le registre

Plusieurs éléments de mémoire peuvent être associés pour mémoriser plusieurs bits simultanément. L'ensemble forme un registre.

Un registre de 8 bits peut par exemple conserver une valeur composée de huit bits :

10110110

Chaque bit est mémorisé par un élément de stockage, généralement une bascule.

Les registres peuvent également permettre de transférer, décaler ou charger des données selon leur architecture.

Le décalage des données

Lorsqu'un registre permet de déplacer les bits d'une position à une autre à chaque impulsion d'horloge, il constitue un registre à décalage.

Par exemple, un registre peut faire évoluer :

1011 → 0101 → 0010 → 0001

À chaque impulsion d'horloge, les bits sont déplacés selon la direction prévue par le circuit.

Les registres à décalage peuvent servir à transférer des données, convertir une transmission série en données parallèles ou effectuer certaines opérations sur des séquences binaires.

Le compteur

Un compteur numérique est un circuit séquentiel capable de modifier son état selon une succession prédéterminée à chaque impulsion d'horloge.

Un compteur binaire peut par exemple parcourir :

000 → 001 → 010 → 011 → 100 → 101 → 110 → 111 → 000

Chaque impulsion d'horloge provoque le passage à l'état suivant.

Un compteur à n bits peut représenter jusqu'à 2n états différents avant de revenir au premier état dans un compteur binaire classique.

La machine à états

Un système séquentiel peut posséder un nombre limité d'états et évoluer de l'un à l'autre selon les entrées et les événements d'horloge. On parle alors de machine à états finis.

Chaque état représente une situation particulière du système.

Les entrées déterminent les conditions permettant de passer d'un état à un autre, tandis que la logique du circuit détermine les sorties associées aux états.

Une machine peut par exemple posséder les états :

  • attente ;
  • démarrage ;
  • fonctionnement ;
  • arrêt.

Elle change d'état lorsque certaines conditions sont remplies.

Le diagramme d'états

Le fonctionnement d'une machine à états peut être représenté graphiquement par un diagramme d'états.

Chaque état est représenté par un élément graphique, généralement un cercle ou un rectangle, et les transitions entre les états sont représentées par des flèches.

Une condition peut être associée à chaque transition pour indiquer dans quelle situation le changement d'état doit avoir lieu.

La logique de prochain état

Dans un circuit séquentiel, il est utile de distinguer l'état actuel de l'état suivant.

L'état actuel est conservé par les éléments de mémoire. La logique combinatoire analyse cet état ainsi que les entrées pour déterminer l'état qui devra être mémorisé au prochain événement d'horloge.

On retrouve donc généralement deux parties :

  • une logique combinatoire qui calcule les prochaines valeurs ;
  • une mémoire qui conserve l'état.

La structure générale d'un circuit séquentiel synchrone

Un circuit séquentiel synchrone peut être représenté par trois éléments principaux :

Entrées → Logique combinatoire → Mémoire → Sorties

La mémoire renvoie également son état vers la logique combinatoire afin que celle-ci puisse calculer l'état suivant.

L'horloge commande le moment auquel le nouvel état est mémorisé.

Les temps de fonctionnement

Les circuits séquentiels doivent respecter certaines contraintes temporelles pour fonctionner correctement.

La donnée appliquée à l'entrée d'une bascule doit généralement rester stable pendant une certaine durée avant et après le front d'horloge.

On parle notamment de temps de setup et de temps de hold.

Si ces conditions ne sont pas respectées, la bascule peut ne pas mémoriser correctement la donnée.

La métastabilité

Lorsqu'une entrée change trop près du moment où une bascule doit l'échantillonner, son état interne peut devenir temporairement indéterminé. Ce phénomène est appelé métastabilité.

La sortie peut alors mettre un certain temps à atteindre un niveau logique stable.

Les systèmes numériques utilisent différentes techniques pour réduire le risque de propagation de cette situation, notamment lorsque des signaux provenant de domaines d'horloge différents doivent être transmis.

Les applications des circuits séquentiels

Les circuits séquentiels sont indispensables dès qu'un système doit conserver une information ou suivre une évolution dans le temps.

Ils sont notamment utilisés dans :

  • les mémoires numériques ;
  • les registres des processeurs ;
  • les compteurs ;
  • les horloges numériques ;
  • les temporisateurs ;
  • les contrôleurs ;
  • les machines à états ;
  • les systèmes de communication numérique ;
  • les microprocesseurs et microcontrôleurs.

Les circuits séquentiels permettent ainsi aux systèmes numériques de conserver leur état, de suivre une succession d'étapes et de faire évoluer leur fonctionnement au cours du temps.

↑ Retour en haut

Jeux