Bus de Datos de 8 Bits
Descripción general
- Propósito: El bus de datos de 8 bits es un componente visual y funcional que representa una vía de datos compartida en arquitecturas de CPU. Acepta múltiples entradas en tercer estado (entradas de bus) y emite el valor resuelto del bus. El componente ayuda a los usuarios a comprender la arquitectura de bus y a depurar problemas de contención de bus.
- Símbolo: El bus de datos está representado por un bloque rectangular alargado con buses de entrada y salida de 8 bits, con líneas internas que muestran la ruta de flujo de datos.
- Rol en DigiSim.io: Proporciona una representación visual de las conexiones de bus en diseños de CPU, facilitando la comprensión del flujo de datos y la depuración de problemas como la contención de bus o las entradas flotantes.

Descripción funcional
Comportamiento lógico
El bus de datos de 8 bits es principalmente un componente de paso a través que acepta múltiples entradas (configuradas como entradas de bus) y emite el valor resuelto. La arbitración en tercer estado real es manejada por el simulador basado en eventos de DigiSim:
- Cuando exactamente un controlador está activo, la salida refleja el valor de ese controlador.
- Cuando ningún controlador está activo (todos en alta Z), las salidas están en alta Z.
- Cuando múltiples controladores están activos con valores en conflicto, se detecta y registra la contención de bus.
Tabla de función:
| Controladores activos | Valores del controlador | Salida Q0-Q7 | Estado |
|---|---|---|---|
| 0 | Todos Alta-Z | Alta-Z | Sin controlador |
| 1 | Valor V | V | Normal |
| 2+ (mismos) | Todos iguales | V | Advertencia |
| 2+ (conflicto) | Diferentes | Indefinido | ¡Contención! |
Nota: La contención de bus es registrada por el simulador y puede indicar un error de diseño
Entradas y salidas
Entradas:
- D0-D7[7:0]: Entradas de datos de 8 bits configuradas como entradas de bus. Múltiples fuentes en tercer estado pueden conectarse a cada pin, con el simulador resolviendo el valor real.
Salidas:
- Q0-Q7[7:0]: Salidas de datos de 8 bits que reflejan el valor resuelto del bus. Las salidas van a alta Z cuando todas las entradas correspondientes están en alta Z.
Distribución de pines
Pines de entrada (lado izquierdo):
- Pines 0-7: D0-D7 (Entradas de bus - aceptan múltiples conexiones en tercer estado)
Pines de salida (lado derecho):
- Pines 0-7: Q0-Q7 (Salidas del valor resuelto del bus)
Parámetros configurables
- Detección de contención: Detección y registro automáticos de conflictos de bus.
- Retardo de propagación: Retardo mínimo para el paso a través de señales.
Representación visual en DigiSim.io
El bus de datos de 8 bits se muestra como un bloque rectangular (112x160 píxeles) con:
- 8 pines de entrada en el lado izquierdo (D0-D7), marcados como entradas de bus
- 8 pines de salida en el lado derecho (Q0-Q7)
- Líneas horizontales internas que muestran el flujo de datos
- Etiquetas "DATA BUS" y "8-BIT" en el centro
Los pines de entrada de bus más gruesos indican que múltiples fuentes en tercer estado pueden conectarse, distinguiéndolos de las entradas regulares de fuente única.
Valor educativo
Conceptos clave
- Arquitectura de bus: Demuestra cómo múltiples componentes comparten una vía de datos común.
- Lógica en tercer estado: Muestra cómo las salidas en tercer estado permiten compartir el bus sin multiplexores.
- Contención de bus: Ilustra conflictos potenciales cuando múltiples controladores están activos.
- Visualización del flujo de datos: Hace tangibles y visibles los conceptos abstractos de bus.
- Diseño modular: Fomenta pensar en los componentes de CPU como módulos separados que se comunican a través de buses.
Objetivos de aprendizaje
- Comprender cómo los buses de datos permiten la comunicación entre componentes en las CPUs.
- Aprender la importancia del arbitraje de bus y las señales de control.
- Reconocer la contención de bus como un error de diseño común y cómo evitarla.
- Aplicar conceptos de arquitectura de bus en el diseño de sistemas digitales modulares.
- Comprender el papel de los buffers en tercer estado en diseños basados en bus.
Ejemplos de uso
- Ruta de datos de CPU: Bus de datos central que conecta la unidad aritmético-lógica, registros y memoria.
- Interfaz de datos de memoria: Flujo de datos bidireccional entre CPU y RAM/ROM.
- Banco de registros: Bus común para leer/escribir múltiples registros.
- Interfaz de E/S: Intercambio de datos entre CPU y dispositivos periféricos.
- Depuración y visualización: Hacer visibles las señales de bus para la solución de problemas.
Integración en la computadora de 8 bits
En la arquitectura de computadora de 8 bits de DigiSim, el bus de datos conecta todos los componentes principales:
┌──────────────────────────────────────────────────────────────────┐
│ BUS DE DATOS DE 8 BITS │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌────────┐ │
│ │ ACC │ │ ALU │ │ RAM │ │ ROM │ │ IR │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ └───┬────┘ │
│ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │BUF-3E │ │BUF-3E │ │BUF-3E │ │BUF-3E │ │BUF-3E │ │
│ │(ACC_OE)│ │(ALU_OE)│ │(RAM_OE)│ │(ROM_OE)│ │(IR_OE) │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ └───┬────┘ │
│ │ │ │ │ │ │
│ └────────────┴────────────┴─────┬──────┴───────────┘ │
│ │ │
│ ┌────────▼────────┐ │
│ │ BUS DE DATOS │ │
│ │ 8-BIT │ │
│ └────────┬────────┘ │
│ │ │
│ ┌───────────────────────────────┼───────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ ACC │ │ RAM │ │ MAR │ │
│ │ (IN) │ │ (DIN) │ │ (DIN) │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘
Coordinación de señales de control
La unidad de control garantiza que solo un controlador esté activo en cualquier momento:
| Paso de microcódigo | Controlador activo | Señal de control |
|---|---|---|
| Buscar instrucción | ROM | ROM_OE = 1 |
| Cargar desde RAM | RAM | RAM_OE = 1 |
| Resultado de ALU | ALU | ALU_OE = 1 |
| Salida ACC | Acumulador | ACC_OE = 1 |
| Carga inmediata | IR (operando) | IR_OE = 1 |
Notas técnicas
- El componente bus de datos es principalmente visual; el simulador gestiona el arbitraje real del bus.
- Las entradas de bus están marcadas con
isBusInput: trueen la configuración del componente. - La función
resolveBusContentionen el simulador maneja los escenarios de múltiples controladores. - Cada bit del bus se resuelve de forma independiente.
- Las entradas de alta Z (flotantes) se propagan como salidas de alta Z.
- La detección de contención ayuda a identificar problemas de temporización donde múltiples controladores se superponen.
- En circuitos físicos, la contención de bus puede causar corriente excesiva y daños potenciales.
Depuración de problemas de bus
Problemas comunes
- Todas las salidas en alta Z: Ningún controlador está habilitado. Verifique las señales de habilitación de salida.
- Valores inesperados: Controlador incorrecto habilitado. Verifique la temporización de las señales de control.
- Advertencias de contención: Múltiples controladores activos. Verifique la exclusión mutua en la lógica de control.
- Errores intermitentes: Problemas de temporización. Asegure una secuenciación adecuada de las señales de habilitación.
Consejos de depuración
- Use el osciloscopio para observar las señales de habilitación de salida.
- Verifique que solo una señal OE esté activa durante cada fase del reloj.
- Compruebe que las señales OE estén correctamente sincronizadas con el reloj.
- Use el estado visual del componente bus de datos para ver el estado activo/inactivo.
Componentes relacionados
- Acumulador: Se conecta al bus de datos para operaciones aritméticas.
- Unidad aritmético-lógica (8 bits): Proporciona resultados de cómputo al bus de datos.
- RAM: Lee/escribe datos a través del bus.
- ROM: Proporciona datos de instrucción al bus.
- Registro de instrucciones (IR): Recibe instrucciones del bus, emite operandos.
- Registro de dirección de memoria (MAR): Puede recibir direcciones del bus de datos.
- Buffer en tercer estado (8 bits): Controla las salidas de componentes hacia el bus.
- Unidad de control: Coordina qué componente conduce el bus.