Comparateur
Vue d'ensemble
- Objectif : Le comparateur est un circuit numérique qui compare deux nombres binaires et produit des sorties indiquant leurs valeurs relatives (égales, supérieures ou inférieures). Il détermine la relation entre deux entrées binaires et génère des signaux d'état basés sur cette comparaison.
- Symbole : Le comparateur est représenté par un bloc rectangulaire avec deux entrées pour les nombres comparés (A et B) et des sorties indiquant le résultat de la comparaison (A=B, A>B, A<B).
- Rôle dans DigiSim.io : Sert de composant fondamental de prise de décision dans les circuits numériques, permettant les opérations de comparaison de valeurs essentielles à l'implémentation de logique conditionnelle, de réseaux de tri et de systèmes de commande.

Description fonctionnelle
Comportement logique
Le comparateur examine deux entrées binaires et détermine leur relation, en activant la ligne de sortie appropriée pour indiquer si la première entrée est égale, supérieure ou inférieure à la seconde.
Table de vérité (pour un comparateur 1 bit) :
| A | B | A=B | A>B | A<B | Relation |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | Égal |
| 0 | 1 | 0 | 0 | 1 | Inférieur |
| 1 | 0 | 0 | 1 | 0 | Supérieur |
| 1 | 1 | 1 | 0 | 0 | Égal |
Remarque : pour les comparateurs multi-bits, la comparaison s'étend sur tous les bits.
Entrées et sorties
Entrées :
- A[n:0] : premier opérande n bits pour la comparaison.
- B[n:0] : second opérande n bits pour la comparaison.
- Certaines implémentations peuvent inclure des entrées de commande supplémentaires comme un enable (EN) ou des entrées de mise en cascade pour construire des comparateurs plus grands.
Sorties :
- Égal (=) : sortie 1 bit qui est HIGH lorsque A est égal à B.
- Supérieur (>) : sortie 1 bit qui est HIGH lorsque A est supérieur à B.
- Inférieur (<) : sortie 1 bit qui est HIGH lorsque A est inférieur à B.
Paramètres configurables
- Largeur en bits : nombre de bits des entrées comparées (1 bit, 4 bits, 8 bits, etc.).
- Mode de comparaison : indique si la comparaison concerne des nombres binaires non signés ou signés (complément à deux).
- Délai de propagation : temps nécessaire pour que les sorties changent après une modification des entrées.
- Configuration des sorties : certaines implémentations peuvent avoir des sorties actives à l'état bas ou omettre certains résultats de comparaison.
Représentation visuelle dans DigiSim.io
Le comparateur est affiché sous la forme d'un bloc rectangulaire avec des entrées étiquetées sur le côté gauche (A[n:0], B[n:0]) et des sorties (=, >, <) sur le côté droit. Une fois connecté dans un circuit, le composant indique visuellement le résultat de la comparaison par les valeurs affichées sur ses sorties et par des changements de couleur sur les fils de connexion.
Valeur pédagogique
Concepts clés
- Comparaison binaire : démontre comment les circuits numériques déterminent la relation entre des nombres binaires.
- Prise de décision : illustre comment les ordinateurs effectuent des comparaisons qui pilotent les opérations conditionnelles.
- Détermination de magnitude : montre comment la taille relative de valeurs binaires est établie dans les systèmes numériques.
- Logique combinatoire : présente une application pratique des circuits combinatoires à sorties multiples.
- Opérations bit à bit : introduit le concept de comparaison bit par bit et la manière dont elle détermine les relations entre nombres.
Objectifs d'apprentissage
- Comprendre comment les systèmes numériques comparent des valeurs numériques.
- Apprendre l'implémentation d'opérations de comparaison à l'aide de portes logiques.
- Reconnaître comment les résultats de comparaison pilotent la prise de décision dans les systèmes numériques.
- Appliquer les concepts de comparateur à la conception de circuits de sélection, de chercheurs de min/max et de détecteurs de plage.
- Comprendre la différence entre comparaison de nombres signés et non signés.
Exemples d'utilisation / Scénarios
- Branchement conditionnel : déterminer s'il faut effectuer un branchement dans un CPU en fonction de la comparaison de valeurs de registres.
- Réseaux de tri : blocs de construction pour ranger des données par ordre croissant ou décroissant.
- Détection de seuil : identifier quand une valeur dépasse ou tombe en dessous de seuils spécifiques.
- Comparaison d'adresses : déterminer quand une adresse mémoire correspond à une valeur spécifique pour le décodage.
- Comparaison à fenêtre : détecter quand une valeur tombe dans une plage spécifique.
- Détection de zéro : identifier quand un résultat de calcul est égal à zéro.
Notes techniques
- Les comparateurs simples 1 bit sont typiquement implémentés à l'aide de portes XOR (pour l'égalité) et de portes ET avec inverseurs (pour les inégalités).
- Les comparateurs multi-bits peuvent être construits comme des comparateurs à propagation (simples mais plus lents) ou comparateurs parallèles (plus rapides mais plus complexes).
- Pour la comparaison de nombres signés, le bit de poids fort nécessite un traitement spécial car il représente le signe.
- La mise en cascade de plusieurs comparateurs permet de comparer des nombres binaires plus larges, au prix d'un délai de propagation accru.
- Dans DigiSim.io, le comportement du comparateur modélise des composants numériques réels avec une gestion correcte des entrées multi-bits.
- Pour un fonctionnement à haute vitesse, des techniques look-ahead similaires à celles des additionneurs peuvent être implémentées pour réduire le délai de comparaison.
Applications
- Unités arithmétiques et logiques (ALU) dans les processeurs
- Comparaison d'adresses dans les systèmes mémoire
- Décodage d'instructions dans les CPU
- Algorithmes de tri de données
- Comparateurs à fenêtre dans les convertisseurs analogique-numérique
- Vérification de plage dans les systèmes de sécurité et de validation
- Systèmes de vérification de mots de passe
- Comparaison de magnitude dans les systèmes de commande
- Tests d'égalité dans les processeurs de signaux numériques
- Prédiction de branchement dans les processeurs en pipeline
Implémentation
Les comparateurs peuvent être implémentés en utilisant :
- Des portes logiques de base (ET, OU, NON, XOR)
- Des CI comparateurs spécialisés (74HC85, 74LS682, etc.)
- Des dispositifs logiques programmables (FPGA, CPLD)
- Des fonctions ALU intégrées dans les microprocesseurs
- Diverses architectures :
- Comparateurs à propagation (plus simples mais plus lents)
- Comparateurs parallèles (plus rapides mais plus complexes)
- Architectures arborescentes (équilibre vitesse/complexité)
Implémentation du circuit
Un comparateur 1 bit de base peut être implémenté avec la logique suivante :
Détection d'égalité
graph LR
A[A] --> XNOR[XNOR Gate]
B[B] --> XNOR
XNOR --> EQ[Equal A=B]
Détection « supérieur à »
graph LR
A[A] --> AND1[AND Gate]
BN[B'] --> AND1
AND1 --> GT[Greater Than A>B]
Détection « inférieur à »
graph LR
AN[A'] --> AND2[AND Gate]
B[B] --> AND2
AND2 --> LT[Less Than A<B]
Pour les comparateurs multi-bits, ces circuits sont combinés avec une logique de mise en cascade appropriée.
Composants associés
- Comparateur de magnitude : spécialisé dans la comparaison de magnitude de nombres binaires
- Comparateur d'égalité : se concentre uniquement sur la détermination de l'égalité de deux valeurs
- Comparateur à fenêtre : détermine si une valeur tombe dans une plage spécifiée
- ALU : contient une fonctionnalité de comparaison parmi de nombreuses autres opérations
- Porte XNOR : utilisée pour la comparaison d'égalité bit à bit
- Soustracteur : peut être utilisé pour la comparaison en examinant le signe de la différence