CPU Simple de 4 Bits

Construye un CPU completo de 4 bits a partir de los componentes que has creado—contador de programa, registros, ALU y lógica de control trabajando juntos.

Overview

Este es el proyecto culminante—combinando todos los bloques de construcción digitales en una computadora funcional. Tu CPU buscará instrucciones en la ROM, las decodificará, ejecutará operaciones en la ALU, almacenará resultados en registros y usará el contador de programa para secuenciar a través de tu programa. Es una computadora real y funcional construida con lógica básica.

Components Needed

  • 1x SN74LS181 IC (ALU)
  • 2x SN74HC161 IC (Contador)
  • 2x SN74HC374 IC (Registro)
  • 2x SN74HC138 IC (Decodificador)
  • 4x SN74HC153 IC (MUX)
  • severalx Varios ICs de compuertas lógicas
  • 1x 28C16 EEPROM
  • 16x LED
  • manyx Cables

Instructions

  1. Definir la Arquitectura

    Planifica tu CPU: ancho de datos de 4 bits, instrucciones de 8 bits (opcode de 4 bits + operando de 4 bits), 2 registros de propósito general (A y B), ALU basada en acumulador, 256 bytes de memoria de programa.

  2. Diseñar el Conjunto de Instrucciones

    Crea 8-16 instrucciones: LOAD, STORE, ADD, SUB, AND, OR, JUMP, JUMP_IF_ZERO, HALT, etc. Documenta la codificación binaria de cada una.

  3. Construir la Ruta de Datos

    Conecta PC → ROM → Registro de Instrucción → Decodificador. Conecta los registros a la ALU a través de MUXes. Conecta la salida de la ALU de vuelta al archivo de registros y la interfaz de memoria.

  4. Implementar la Lógica de Control

    Construye el decodificador de instrucciones para generar señales de control. Conecta las señales de control a las habilitaciones de carga de registros, selectores de MUX, función de la ALU y lectura/escritura de memoria.

  5. Escribir un Programa de Prueba

    Crea un programa simple en código máquina: cargar valores, sumarlos, almacenar el resultado. Programa la EEPROM con tu código máquina.

  6. Probar y Depurar

    Usa el reloj paso a paso para observar la ejecución de cada instrucción. Monitorea los buses de datos, el contenido de los registros y las señales de control. Depura los problemas una instrucción a la vez.

Challenges

  • Añade más instrucciones (desplazamiento, comparación, llamada/retorno)
  • Implementa ramificaciones condicionales basadas en banderas de la ALU
  • Añade capacidad de interrupciones
  • Expande a una ruta de datos de 8 bits
  • Construye un ensamblador para convertir ensamblador a código máquina