À propos de BoxLambda
BoxLambda est un projet hybride matériel-logiciel créant un micro-ordinateur homebrew basé sur FPGA, de style rétro. L'objectif est de créer un environnement bac à sable pour expérimenter avec des logiciels et du gateware FPGA.
Configuration physique

La configuration physique.
Fonctionnalités actuelles
- FPGA cible : Arty-A7-100T.
- Cœur Ibex RISC-V avec minuterie machine et support des interruptions matérielles.
- Interconnexion basée sur l'architecture Harvard.
- Accès registre et mémoire à faible latence à travers le SoC.
- Comptes de cycles d'instructions prévisibles.
- Support de la reconfiguration partielle DFX FPGA.
- Accès mémoire externe DDR3 via le contrôleur mémoire Litex.
- Accès de débogage basé sur OpenOCD sur FPGA et Verilator.
- Graphismes VGA basés sur VERA : 2 couches, mode tuile ou bitmap, 2 banques de 64 sprites, 128 Ko de RAM vidéo, palette de 256 couleurs.
- Audio PSG double YM2149.
- Contrôleur de carte SD et système de fichiers FatFs.
- GPIO 24 broches, UART, contrôleur SPI Flash, contrôleur I2C.
- Support de l'horloge temps réel et calendrier (RTCC).
- Support du clavier et de la souris USB HID.
- Environnement C standard basé sur Picolibc.
- Suite d'applications de test couvrant tous les composants SoC, fonctionnant à la fois sur FPGA et Verilator.
- Cœur Mecrisp Forth + FFI C.
Diagramme de blocs Gateware

Diagramme de blocs logiciel

Diagramme de blocs de l'architecture OS BoxLambda.
Objectifs clés
-
Créer un bac à sable pour expérimenter avec des logiciels et du gateware FPGA :
- Il devrait être facile de se lancer et de faire quelque chose : créer, hacker, bricoler.
- Assez simple pour une personne : Un individu motivé peut développer une solide compréhension de l'ensemble du système, y compris le logiciel et le matériel.
- Comportement déterministe : La durée des opérations telles que l'accès à la mémoire interne ou aux registres doit être prévisible par conception.
- Environnement d'exécution autonome supportant la programmation interactive de haut niveau et la programmation système de bas niveau.
- Créer une architecture modulaire permettant de mélanger et d'associer des composants logiciels et matériels. Optionnellement, support de la reconfiguration partielle FPGA.
-
Matériel cible : Arty-A7 de Digilent.
-
L'ordinateur supporte les périphériques suivants :
- Clavier USB HID
- Souris USB HID (optionnelle)
- Joystick USB HID (optionnel)
- Horloge temps réel et calendrier (optionnel)
- Port série
- Stockage sur carte SD
- Stockage en mémoire Flash
- Affichage VGA
- Sortie audio
-
Le son et les graphismes supportent des démos et du gameplay 2D de style rétro.
Statut (avril 2026)
- Infrastructure (système de build, etc.) : Terminée.
- Gateware : Terminé et répondant aux exigences.
- Logiciel : Développement en cours.
- Architecture OS : définie.
- Cœur C BoxLambda : partiellement terminé.
- Cœur Mecrisp Forth : terminé.
- Environnement Mecrisp Forth : partiellement terminé.
- FFI Forth<->C : terminée.
- Couche système de fichiers : terminée.
Journal des modifications
Liens
Documentation