Bus de données 8 bits
Vue d'ensemble
- Objectif : le bus de données 8 bits est un composant visuel et fonctionnel qui représente un chemin de données partagé dans les architectures de CPU. Il accepte plusieurs entrées trois états (entrées bus) et fournit en sortie la valeur de bus résolue. Le composant aide les utilisateurs à comprendre l'architecture de bus et à déboguer les problèmes de conflit de bus.
- Symbole : le bus de données est représenté par un bloc rectangulaire allongé avec des bus d'entrée et de sortie 8 bits, avec des lignes internes montrant le chemin de flux de données.
- Rôle dans DigiSim.io : fournit une représentation visuelle des connexions de bus dans les conceptions de CPU, facilitant la compréhension du flux de données et le débogage de problèmes comme les conflits de bus ou les entrées flottantes.

Description fonctionnelle
Comportement logique
Le bus de données 8 bits est principalement un composant de transmission qui accepte plusieurs entrées (configurées comme entrées bus) et fournit en sortie la valeur résolue. L'arbitrage trois états réel est géré par le simulateur événementiel de DigiSim :
- Lorsqu'un seul pilote est actif, la sortie reflète la valeur de ce pilote.
- Lorsqu'aucun pilote n'est actif (tous en haute impédance), les sorties sont en haute impédance.
- Lorsque plusieurs pilotes sont actifs avec des valeurs en conflit, un conflit de bus est détecté et journalisé.
Table de fonctionnement :
| Pilotes actifs | Valeurs des pilotes | Sortie Q0-Q7 | Statut |
|---|---|---|---|
| 0 | Tous en haute impédance | Haute impédance | Aucun pilote |
| 1 | Valeur V | V | Normal |
| 2+ (identique) | Toutes identiques | V | Avertissement |
| 2+ (conflit) | Différentes | Indéfinie | Conflit ! |
Note : le conflit de bus est journalisé par le simulateur et peut indiquer une erreur de conception
Entrées et sorties
Entrées :
- D0-D7[7:0] : entrées de données 8 bits configurées comme entrées bus. Plusieurs sources trois états peuvent se connecter à chaque broche, le simulateur résolvant la valeur réelle.
Sorties :
- Q0-Q7[7:0] : sorties de données 8 bits qui reflètent la valeur de bus résolue. Les sorties passent en haute impédance lorsque toutes les entrées correspondantes sont en haute impédance.
Disposition des broches
Broches d'entrée (côté gauche) :
- Broches 0-7 : D0-D7 (entrées bus — acceptent plusieurs connexions trois états)
Broches de sortie (côté droit) :
- Broches 0-7 : Q0-Q7 (sorties de la valeur de bus résolue)
Paramètres configurables
- Détection de conflit : détection et journalisation automatiques des conflits de bus.
- Délai de propagation : délai minimal pour la transmission du signal.
Représentation visuelle dans DigiSim.io
Le bus de données 8 bits est affiché sous la forme d'un bloc rectangulaire (112x160 pixels) avec :
- 8 broches d'entrée sur le côté gauche (D0-D7), marquées comme entrées bus
- 8 broches de sortie sur le côté droit (Q0-Q7)
- Lignes horizontales internes montrant le flux de données
- Étiquettes « DATA BUS » et « 8-BIT » au centre
Les broches d'entrée bus plus épaisses indiquent que plusieurs sources trois états peuvent se connecter, les distinguant des entrées régulières à source unique.
Valeur pédagogique
Concepts clés
- Architecture de bus : démontre comment plusieurs composants partagent un chemin de données commun.
- Logique trois états : montre comment les sorties trois états permettent le partage de bus sans multiplexeurs.
- Conflit de bus : illustre les conflits potentiels lorsque plusieurs pilotes sont actifs.
- Visualisation du flux de données : rend les concepts abstraits de bus tangibles et visibles.
- Conception modulaire : encourage à considérer les composants du CPU comme des modules séparés communiquant via des bus.
Objectifs d'apprentissage
- Comprendre comment les bus de données permettent la communication des composants dans les CPU.
- Apprendre l'importance de l'arbitrage de bus et des signaux de contrôle.
- Reconnaître le conflit de bus comme une erreur de conception courante et comment l'éviter.
- Appliquer les concepts d'architecture de bus dans la conception de systèmes numériques modulaires.
- Comprendre le rôle des tampons trois états dans les conceptions basées sur des bus.
Exemples d'utilisation / scénarios
- Chemin de données du CPU : bus de données central reliant l'ALU, les registres et la mémoire.
- Interface de données mémoire : flux de données bidirectionnel entre le CPU et la RAM/ROM.
- Banc de registres : bus commun pour la lecture/écriture de plusieurs registres.
- Interface E/S : échange de données entre le CPU et les périphériques.
- Débogage et visualisation : rendre les signaux de bus visibles pour le dépannage.
Intégration dans l'ordinateur 8 bits
Dans l'architecture d'ordinateur 8 bits de DigiSim, le bus de données connecte tous les composants principaux :
┌──────────────────────────────────────────────────────────────────┐
│ 8-BIT DATA BUS │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │
│ │ ACC │ │ ALU │ │ RAM │ │ ROM │ │ IR │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ └───┬────┘ │
│ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │TRI-BUF │ │TRI-BUF │ │TRI-BUF │ │TRI-BUF │ │TRI-BUF │ │
│ │(ACC_OE)│ │(ALU_OE)│ │(RAM_OE)│ │(ROM_OE)│ │(IR_OE) │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ └───┬────┘ │
│ │ │ │ │ │ │
│ └────────────┴────────────┴─────┬──────┴───────────┘ │
│ │ │
│ ┌────────▼────────┐ │
│ │ DATA BUS │ │
│ │ 8-BIT │ │
│ └────────┬────────┘ │
│ │ │
│ ┌───────────────────────────────┼───────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ ACC │ │ RAM │ │ MAR │ │
│ │ (IN) │ │ (DIN) │ │ (DIN) │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘
Coordination des signaux de contrôle
L'unité de commande s'assure qu'un seul pilote est actif à un moment donné :
| Étape de microcode | Pilote actif | Signal de contrôle |
|---|---|---|
| Lecture instruction | ROM | ROM_OE = 1 |
| Chargement depuis RAM | RAM | RAM_OE = 1 |
| Résultat ALU | ALU | ALU_OE = 1 |
| Sortie ACC | Accumulateur | ACC_OE = 1 |
| Chargement immédiat | IR (opérande) | IR_OE = 1 |
Notes techniques
- Le composant bus de données est principalement visuel — le simulateur gère l'arbitrage de bus réel.
- Les entrées bus sont marquées avec
isBusInput: truedans la configuration du composant. - La fonction
resolveBusContentiondu simulateur gère les scénarios à plusieurs pilotes. - Chaque bit du bus est résolu indépendamment.
- Les entrées en haute impédance (flottantes) se propagent comme sorties en haute impédance.
- La détection de conflit aide à identifier les problèmes de calage où plusieurs pilotes se chevauchent.
- Dans les circuits physiques, le conflit de bus peut provoquer un courant excessif et des dommages potentiels.
Débogage des problèmes de bus
Problèmes courants
- Toutes les sorties en haute impédance : aucun pilote n'est activé. Vérifier les signaux d'autorisation de sortie.
- Valeurs inattendues : mauvais pilote activé. Vérifier le calage du signal de contrôle.
- Avertissements de conflit : plusieurs pilotes actifs. Vérifier l'exclusion mutuelle dans la logique de contrôle.
- Erreurs intermittentes : problèmes de calage. Assurer un séquençage correct des signaux d'autorisation.
Conseils de débogage
- Utilisez l'oscilloscope pour observer les signaux d'autorisation de sortie.
- Vérifiez qu'un seul signal OE est actif pendant chaque phase d'horloge.
- Vérifiez que les signaux OE sont correctement synchronisés avec l'horloge.
- Utilisez l'état visuel du composant bus de données pour voir le statut actif/inactif.
Composants associés
- Accumulateur : se connecte au bus de données pour les opérations arithmétiques.
- ALU (8 bits) : fournit les résultats de calcul au bus de données.
- RAM : lit/écrit des données via le bus.
- ROM : fournit les données d'instruction au bus.
- Registre d'instruction (IR) : reçoit les instructions du bus, fournit en sortie les opérandes.
- Registre d'adresse mémoire (MAR) : peut recevoir des adresses depuis le bus de données.
- Tampon trois états (8 bits) : aiguille les sorties des composants vers le bus.
- Unité de commande : coordonne quel composant pilote le bus.