BoxLambda è un progetto che unisce hardware e software per creare un microcomputer homebrew in stile retrò basato su FPGA. L'obiettivo è creare un ambiente sandbox per sperimentare con software e gateware FPGA.
Configurazione fisica

La configurazione fisica.
Funzionalità attuali
- FPGA di destinazione: Arty-A7-100T.
- Core Ibex RISC-V con timer macchina e supporto per interruzioni hardware.
- Interconnessione basata su architettura Harvard.
- Accesso a bassa latenza a registri e memoria su tutto il SoC.
- Conteggi di cicli di istruzioni prevedibili.
- Supporto per riconfigurazione parziale DFX FPGA.
- Accesso alla memoria esterna DDR3 tramite il controller di memoria Litex.
- Accesso di debug basato su OpenOCD su FPGA e Verilator.
- Grafica VGA basata su VERA: 2 livelli, modalità tile o bitmap, 2 banchi di 64 sprite, 128KB di Video RAM, palette di 256 colori.
- Audio PSG duale YM2149.
- Controller per SD Card e File System FatFs.
- GPIO a 24 pin, UART, Controller Flash SPI, Controller I2C.
- Supporto per orologio e calendario in tempo reale (RTCC).
- Supporto per tastiera e mouse USB HID.
- Ambiente C standard basato su Picolibc.
- Suite di applicazioni di test che copre tutti i componenti SoC, funzionante sia su FPGA che su Verilator.
- Core Mecrisp Forth + C FFI.
Diagramma a blocchi del gateware

Diagramma a blocchi del software

Diagramma a blocchi dell'architettura del sistema operativo BoxLambda.
Obiettivi principali
-
Creare un sandbox per sperimentare con software e gateware FPGA:
- Dovrebbe essere facile iniziare e fare qualcosa: creare, hackerare, armeggiare.
- Abbastanza semplice per una persona: Un individuo motivato può sviluppare una solida comprensione dell'intero sistema, compresi software e hardware.
- Comportamento deterministico: La durata di operazioni come l'accesso alla memoria interna o ai registri deve essere prevedibile per progettazione.
- Ambiente runtime autonomo che supporta programmazione interattiva di alto livello e programmazione di sistema di basso livello.
- Creare un'architettura modulare che consenta una combinazione di componenti software e hardware. Opzionalmente, supportare la riconfigurazione parziale FPGA.
-
Hardware di destinazione: Arty-A7 di Digilent.
-
Il computer supporta le seguenti periferiche:
- Tastiera USB HID
- Mouse USB HID (opzionale)
- Joystick USB HID (opzionale)
- Orologio e calendario in tempo reale (opzionale)
- Porta seriale
- Archiviazione su scheda SD
- Archiviazione su memoria Flash
- Display VGA
- Uscita audio
-
Il supporto audio e grafico consente demo 2D in stile retrò e gameplay.
Stato (aprile 2026)
- Infrastruttura (sistema di build, ecc.): Completata.
- Gateware: Completato e soddisfa i requisiti.
- Software: Sviluppo in corso.
- Architettura del sistema operativo: definita.
- Core C di BoxLambda: parzialmente completato.
- Core Mecrisp Forth: completato.
- Ambiente Mecrisp Forth: parzialmente completato.
- FFI Forth<->C: completata.
- Livello del filesystem: completato.
Registro delle modifiche
Collegamenti
Documentazione