PREVIEW
Counter (4-bit)

Counter (4-bit)

Counters signal_cellular_alt_2_bar Intermediate schedule 25 min

Interactive Circuit

Compteur

Vue d'ensemble

  • Objectif : le compteur est un circuit numérique séquentiel qui progresse à travers une séquence d'états prédéterminée à la réception d'impulsions d'horloge. Il s'incrémente, se décrémente ou suit un motif spécifique, en stockant chaque valeur sous forme de nombre binaire.
  • Symbole : le compteur est représenté par un bloc rectangulaire avec des entrées d'horloge (CLK), d'effacement (CLR) et d'autorisation (EN), ainsi que plusieurs bits de sortie (Q0-Q3) et une sortie de retenue.
  • Rôle dans DigiSim.io : sert de bloc de construction séquentiel fondamental pour créer des circuits de calage, de comptage et de contrôle dans les systèmes numériques.

composant compteur

Description fonctionnelle

Comportement logique

Le compteur change d'état sur les fronts d'horloge en fonction des entrées de contrôle, en suivant typiquement une séquence de comptage binaire.

Table de fonctionnement :

CLK CLR EN Opération Effet sur la sortie
X 1 X Effacement (async) Q = 0
0 1 Comptage ascendant Q[n+1] = Q[n] + 1
0 0 Maintien Q[n+1] = Q[n]
0 X Pas de changement Q[n+1] = Q[n]

Note : ↑ indique un front montant, ↓ indique un front descendant, X signifie « peu importe ». Le compteur ne compte que vers le haut et boucle de la valeur maximale à 0.

Entrées et sorties

  • Entrées :

    • CLK (Clock) : broche 0. Déclenche les transitions d'état sur le front montant.
    • CLR (Clear) : broche 1. Réinitialise le compteur à zéro de manière asynchrone lorsque HIGH.
    • EN (Enable) : broche 2. Autorise le comptage lorsque HIGH.
    • LD (Load) : broche 3. Réservée pour usage futur (chargement parallèle non actuellement pris en charge).
  • Sorties :

    • Q0-Q3 : sortie 4 bits représentant la valeur de comptage actuelle en binaire.
    • Carry : sortie 1 bit qui passe à HIGH lorsque le compteur atteint sa valeur maximale (15 pour 4 bits).

Paramètres configurables

  • Largeur du compteur : le nombre de bits dans le compteur, déterminant sa plage de comptage maximale (par exemple, 4 bits : 0-15).
  • Direction de comptage : si le compteur s'incrémente, se décrémente ou les deux.
  • Modulus : la valeur de comptage maximale avant le bouclage (par exemple, modulo-10 pour le comptage décimal).
  • Délai de propagation : le temps nécessaire pour que les sorties se mettent à jour après un front d'horloge.

Représentation visuelle dans DigiSim.io

Le compteur est affiché sous la forme d'un bloc rectangulaire avec des entrées sur le côté gauche et des sorties sur le côté droit. L'entrée d'horloge est typiquement marquée d'un symbole triangulaire indiquant la sensibilité au front. Lorsqu'il est connecté dans un circuit, le composant indique visuellement son état actuel via les valeurs binaires affichées sur ses sorties et les changements de couleur sur les fils de connexion.

Valeur pédagogique

Concepts clés

  • Logique séquentielle : démontre comment les circuits peuvent maintenir et changer d'état au fil du temps.
  • Comptage binaire : illustre la représentation des nombres binaires et l'arithmétique.
  • Fonctionnement piloté par horloge : montre comment les signaux d'horloge contrôlent le calage dans les systèmes numériques.
  • Machines à états : introduit le concept de machines à états finis et de transitions d'état.
  • Systèmes à rétroaction : démontre comment les valeurs de sortie influencent les états futurs.

Objectifs d'apprentissage

  • Comprendre comment les compteurs maintiennent et mettent à jour leur état en fonction des signaux d'horloge.
  • Apprendre la différence entre le fonctionnement asynchrone et synchrone des compteurs.
  • Reconnaître comment les compteurs sont utilisés pour les applications de calage, de comptage et de contrôle.
  • Appliquer les compteurs pour concevoir des diviseurs de fréquence, des minuteries et des séquenceurs d'état.
  • Comprendre la relation entre la fréquence d'horloge, le contrôle d'autorisation et la vitesse de comptage.

Exemples d'utilisation / scénarios

  • Division de fréquence : division d'un signal d'horloge en fréquences plus basses.
  • Comptage d'événements : décompte des occurrences d'événements externes.
  • Génération de calage : création de délais précis et de signaux de calage.
  • Adressage mémoire : génération d'adresses mémoire séquentielles pour les opérations d'accès.
  • Séquencement de contrôle : coordination du calage des opérations dans les systèmes numériques.
  • Génération de formes d'onde numériques : création de signaux numériques périodiques avec des motifs spécifiques.

Notes techniques

  • Les compteurs peuvent être implémentés selon deux architectures principales : asynchrone (à propagation) et synchrone. Les compteurs synchrones mettent à jour tous les bits simultanément sur un front d'horloge, fournissant un fonctionnement sans glitches au prix d'une complexité accrue.
  • La fréquence de comptage maximale est limitée par les délais de propagation à travers la logique du compteur.
  • Pour des plages de comptage plus larges, plusieurs compteurs peuvent être mis en cascade en utilisant la sortie de retenue d'un compteur pour activer le suivant.
  • L'entrée de réinitialisation a typiquement la priorité sur toutes les autres entrées, effaçant immédiatement le compteur quels que soient les états d'horloge ou d'autorisation.
  • Dans DigiSim.io, les compteurs fonctionnent à une vitesse adaptée à l'observation visuelle, alors que les compteurs matériels réels peuvent fonctionner à des fréquences beaucoup plus élevées.

Caractéristiques

  • Configuration des entrées :

    • Entrée d'horloge (CLK) : déclenche les transitions d'état
    • Entrée de réinitialisation (RST) : réinitialise de manière asynchrone le compteur à zéro
    • Entrée d'autorisation (EN) : active/désactive l'opération de comptage
    • Contrôle de direction (UP/DOWN) : détermine la direction de comptage (haut ou bas)
    • Compatible avec les niveaux logiques numériques standard
    • Fonctionnement déclenché par front (typiquement front montant)
  • Configuration des sorties :

    • Plusieurs sorties d'état (Q0-Q3 pour un compteur 4 bits)
    • Sortie de retenue/emprunt (Cout) — activée lorsque le compteur boucle
    • Chaque sortie reflète la valeur de comptage binaire actuelle
    • Capable de piloter les charges numériques standard
    • Habituellement disponible en versions synchrones et asynchrones
  • Fonctionnalité :

    • Parcourt séquentiellement les valeurs binaires lors des transitions d'horloge
    • Séquence de comptage binaire (0, 1, 2, 3, ...)
    • Comportement de bouclage à la valeur de comptage maximale/minimale
    • Peut être configurée pour différentes séquences de comptage
    • Peut compter vers le haut, vers le bas ou les deux selon la conception
    • Capacité de comptage modulo-N (compteurs avec valeurs maximales spécifiques)
  • Délai de propagation :

    • Horloge à sortie : 10-25 ns typique
    • Temps de mise en place : 5-15 ns avant le front d'horloge
    • Temps de maintien : 0-5 ns après le front d'horloge
    • Réinitialisation à sortie : 5-20 ns
    • Dépendant de la technologie (TTL, CMOS, etc.)
    • Varie avec la taille du compteur et l'implémentation
  • Sortance :

    • Pilote typiquement 10-20 charges standard
    • La charge de sortie affecte le délai de propagation
    • Peut nécessiter une mise en tampon pour les applications à forte sortance
  • Consommation :

    • Consommation statique minimale dans les implémentations CMOS
    • La consommation dynamique augmente avec la fréquence d'horloge
    • Proportionnelle au nombre de bits qui changent d'état
    • Plus élevée dans les conceptions synchrones à hautes fréquences
    • L'entrée d'autorisation peut être utilisée pour la gestion de l'alimentation
  • Complexité du circuit :

    • Modérée (nécessite des bascules plus la logique de contrôle)
    • Conceptions synchrones plus complexes que les asynchrones
    • La complexité augmente avec la largeur du compteur
    • Les fonctionnalités supplémentaires (chargement, effacement, etc.) augmentent la complexité
    • Les séquences de comptage spécialisées nécessitent une logique supplémentaire

Méthodes d'implémentation

  1. Compteur asynchrone (à propagation)

    • Construit à partir de bascules en cascade, généralement de type T ou JK
    • La sortie de chaque bascule pilote l'horloge de la suivante
    • Conception simple avec un nombre minimal de composants
    • Le délai de propagation s'accumule à travers les étages
    • Inadapté aux applications haute vitesse
    • Souffre de glitches pendant les transitions
  2. Compteur synchrone

    • Toutes les bascules partagent une horloge commune
    • Les transitions d'état se produisent simultanément
    • Nécessite une logique combinatoire supplémentaire
    • Fonctionnement à plus haute vitesse que les conceptions asynchrones
    • Comportement de calage plus prévisible
    • Couramment implémenté avec des bascules JK ou D
  3. Compteur décimal (compteur BCD)

    • Compte de 0 à 9 (modulo-10)
    • Utilisé pour les applications de comptage décimal
    • Souvent construit avec une rétroaction pour réinitialiser au comptage 10
    • Courant dans les applications d'affichage et de calage
    • Peut comporter des sorties codées BCD
  4. Compteur Johnson (compteur en anneau tordu)

    • Séquence spéciale avec un seul bit changeant à la fois
    • Utile pour les machines à états et les applications de contrôle
    • Nécessite moins de portes de décodage pour la détection d'état
    • Fournit 2n états avec n bascules
    • Meilleure immunité au bruit grâce à une distance de Hamming de 1
  5. Compteur en anneau

    • « 1 » circulant dans un champ de « 0 »
    • Utilisé pour les opérations de séquencement
    • Sortie codée one-hot (un seul bit actif à la fois)
    • Logique de décodage simple
    • Nécessite une initialisation
    • Inefficace pour les grands nombres de comptage (n bascules pour n états)
  6. Implémentation par circuits intégrés

    • Disponible sous forme de CI compteurs dédiés
    • Couramment dans la série 74xx (74160-74169, 74190-74193)
    • Diverses fonctionnalités : préréglable, mise en cascade, haut/bas, etc.
    • Différentes technologies pour diverses exigences vitesse/consommation
    • Peut inclure des fonctionnalités supplémentaires comme les sorties trois états
  7. Implémentation FPGA/ASIC

    • Implémentée à l'aide de bascules et de LUT
    • Hautement configurable et optimisable
    • Peut implémenter des séquences de comptage spécialisées
    • Souvent synthétisée à partir de descriptions HDL
    • Économe en ressources dans la logique programmable moderne

Applications

  1. Calage et contrôle

    • Division d'horloge
    • Génération d'impulsions
    • Implémentation de délais
    • Opérations de contrôle de séquencement
    • Implémentation de machines à états
  2. Division de fréquence

    • Diviseurs d'horloge pour la génération de fréquences plus basses
    • Prédiviseurs dans les circuits de minuterie
    • Synthèse de fréquence
    • Systèmes d'accord numérique
    • Gestion d'horloge dans les systèmes numériques
  3. Adressage mémoire

    • Compteur de programme dans les CPU
    • Génération d'adresses pour l'accès séquentiel à la mémoire
    • Compteurs de rafraîchissement dans la mémoire dynamique
    • Implémentation de pointeur de pile
    • Contrôleurs DMA
  4. Comptage d'événements

    • Comptage d'événements externes
    • Comptage d'impulsions en instrumentation
    • Systèmes de décompte
    • Mesure d'occurrence
    • Surveillance du flux de trafic
  5. Conversion de données

    • Convertisseurs analogique-numérique (approximation successive)
    • Génération de modulation de largeur d'impulsion
    • Génération de formes d'onde numériques
    • Algorithmes de traitement du signal
    • Génération de séquences pseudo-aléatoires
  6. Systèmes d'affichage

    • Multiplexage de chiffres LED/LCD
    • Contrôle de rafraîchissement d'affichage
    • Balayage dans les affichages matriciels
    • Calage pour la génération vidéo
    • Génération de caractères
  7. Instrumentation et mesure

    • Compteurs de fréquence
    • Mesure de période
    • Minuteries et chronomètres numériques
    • Comptage d'impulsions
    • Instrumentation scientifique

Limitations

  1. Contraintes de calage

    • Exigences de temps de mise en place et de maintien
    • Sensibilité au décalage d'horloge dans les conceptions synchrones
    • Limitations de fréquence de fonctionnement maximale
    • Délai de propagation à travers les étages du compteur
    • Exigences de récupération de réinitialisation
  2. Glitches et conditions de course

    • Glitches de sortie pendant les transitions dans les conceptions asynchrones
    • Critique dans les applications de contrôle
    • Peut nécessiter une synchronisation avec l'horloge système
    • Plusieurs transitions de sortie non simultanées dans les conceptions asynchrones
    • Glitches de décodage possibles pendant les transitions
  3. Consommation

    • La consommation dynamique augmente avec la fréquence
    • Consommation élevée dans les applications fonctionnant en continu
    • Pics de consommation pendant les transitions multiples de bits
    • Consommation en veille dans les systèmes toujours actifs
    • Préoccupations de durée de vie de la batterie dans les applications portables
  4. Sensibilité au bruit

    • Sensibles au bruit sur la ligne d'horloge
    • Faux comptage dû au bruit
    • Anti-rebond d'entrée requis pour les entrées mécaniques
    • Préoccupations d'interférences électromagnétiques
    • Rebond de masse dans les conceptions haute vitesse
  5. Limitations du compteur

    • Plage de comptage maximale limitée par la largeur en bits
    • Exigences d'initialisation
    • Les compteurs à séquence spécifique nécessitent une logique supplémentaire
    • Complexité de mise en cascade pour des plages de comptage plus larges
    • Surcharge dans les séquences de comptage spécialisées

Détail de l'implémentation du circuit

Compteur ascendant synchrone 4 bits

graph TB
    CLK[Clock CLK] --> FF0[Flip-Flop 0]
    CLK --> FF1[Flip-Flop 1]
    CLK --> FF2[Flip-Flop 2]
    CLK --> FF3[Flip-Flop 3]
    
    RST[Reset RST] --> FF0
    RST --> FF1
    RST --> FF2
    RST --> FF3
    
    FF0 --> Q0[Q0]
    FF1 --> Q1[Q1]
    FF2 --> Q2[Q2]
    FF3 --> Q3[Q3]
    
    EN[Enable Logic<br/>AND Gates] -.-> FF0
    EN -.-> FF1
    EN -.-> FF2
    EN -.-> FF3

Compteur réversible synchrone 4 bits 74LS193

    ┌───────────────────┐
    │                   │
    │      74LS193      │
    │                   │
    │                   │
CLK ┤CP↑           Q0   ├── Q0
    │                   │
MR  ┤MR            Q1   ├── Q1
    │                   │
D0  ┤D0            Q2   ├── Q2
D1  ┤D1            Q3   ├── Q3
D2  ┤D2                 │
D3  ┤D3            TC↑  ├── Cout
    │                   │
PE  ┤PE            TC↓  ├── Bout
    │                   │
CPU ┤CPU                │
CPD ┤CPD                │
    │                   │
    └───────────────────┘

CP↑ = horloge de comptage ascendant, CPD = horloge de comptage descendant, MR = Master Reset, PE = autorisation de chargement parallèle, D0-D3 = entrées de données pour chargement parallèle, TC↑ = comptage terminal ascendant, TC↓ = comptage terminal descendant

Composants associés

  • Compteur binaire : compteur de base qui suit la séquence binaire
  • Compteur décimal : compte de 0 à 9 (séquence BCD)
  • Compteur réversible : peut compter dans les deux directions
  • Compteur Johnson : un registre à décalage avec rétroaction inversée
  • Compteur en anneau : registre à décalage avec rétroaction directe pour la génération de séquences
  • Compteur programmable : compteur avec modulus programmable
  • Compteur de code Gray : compteur avec un seul bit changeant entre les états
  • Compteur préréglable : compteur avec capacité de chargement parallèle
  • Compteur à propagation : compteur asynchrone utilisant des bascules en cascade
  • Diviseur de fréquence : compteur utilisé spécifiquement pour la division d'horloge

school Parcours d'apprentissage

arrow_back Prérequis

arrow_forward Prochaines étapes

help_outline Foire aux questions

Comment fonctionnent les compteurs binaires ?

Les compteurs incrémentent (ou décrémentent) leur valeur à chaque impulsion d'horloge. Un compteur 4 bits séquence 0000 à 0001 à 0010 à ... à 1111 à 0000 (0-15).

Quelle est la différence entre les compteurs à propagation et synchrones ?

Propagation : chaque étage déclenche le suivant (plus lent, plus simple). Synchrone : tous les étages partagent une horloge (plus rapide, plus complexe).

play_arrow Exécuter le circuit en direct

Voir d'autres composants