Acerca de BoxLambda
BoxLambda es un proyecto híbrido hardware-software que crea un microordenador casero de estilo retro basado en FPGA. El objetivo es crear un entorno de espacio aislado para experimentar con software y gateware FPGA.
Configuración Física

La configuración física.
Características Actuales
- FPGA objetivo: Arty-A7-100T.
- Núcleo Ibex RISC-V con temporizador de máquina y soporte de interrupciones por hardware.
- Interconexión basada en arquitectura Harvard.
- Acceso de baja latencia a registros y memoria en todo el SoC.
- Conteo de ciclos de instrucción predecible.
- Soporte de reconfiguración parcial DFX de FPGA.
- Acceso a memoria externa DDR3 a través del controlador de memoria Litex.
- Acceso de depuración basado en OpenOCD en FPGA y Verilator.
- Gráficos VGA basados en VERA: 2 capas, modo tile o mapa de bits, 2 bancos de 64 sprites, 128KB de RAM de video, paleta de 256 colores.
- Audio PSG YM2149 doble.
- Controlador de tarjeta SD y sistema de archivos FatFs.
- GPIO de 24 pines, UART, controlador de flash SPI, controlador I2C.
- Soporte de reloj y calendario en tiempo real (RTCC).
- Soporte de teclado y ratón USB HID.
- Entorno C estándar basado en Picolibc.
- Suite de aplicaciones de prueba que cubre todos los componentes del SoC, ejecutándose tanto en FPGA como en Verilator.
- Núcleo Mecrisp Forth + FFI C.
Diagrama de Bloques de Gateware

Diagrama de Bloques de Software

Diagrama de Bloques de la Arquitectura del SO BoxLambda.
Objetivos Clave
-
Crear un espacio aislado para experimentar con software y gateware FPGA:
- Debería ser fácil comenzar y hacer algo: crear, hackear, modificar.
- Suficientemente Simple para Una Sola Persona: Una persona motivada puede desarrollar una comprensión sólida de todo el sistema, incluyendo software y hardware.
- Comportamiento Determinista: La duración de operaciones como el acceso a memoria interna o registros debe ser predecible por diseño.
- Entorno de Ejecución Autónomo que soporte programación interactiva de alto nivel y programación de sistemas de bajo nivel.
- Crear una Arquitectura Modular que permita combinar componentes de software y hardware. Opcionalmente, soportar Reconfiguración Parcial de FPGA.
-
Hardware objetivo: Arty-A7 de Digilent.
-
La computadora soporta los siguientes periféricos:
- Teclado USB HID
- Ratón USB HID (opcional)
- Joystick USB HID (opcional)
- Reloj y Calendario en Tiempo Real (opcional)
- Puerto serie
- Almacenamiento en tarjeta SD
- Almacenamiento en memoria flash
- Pantalla VGA
- Salida de audio
-
El sonido y los gráficos soportan demos y juegos 2D de estilo retro.
Estado (Abril 2026)
- Infraestructura (sistema de compilación, etc.): Completa.
- Gateware: Completo y cumpliendo requisitos.
- Software: Desarrollo en curso.
- Arquitectura del SO: definida.
- Núcleo C de BoxLambda: parcialmente completado.
- Núcleo Mecrisp Forth: completado.
- Entorno Mecrisp Forth: parcialmente completado.
- FFI Forth<->C: completado.
- Capa del sistema de archivos: completada.
Registro de Cambios
Enlaces
Documentación