Sobre o BoxLambda
BoxLambda é um projeto híbrido de hardware e software que cria um microcomputador caseiro baseado em FPGA com estilo retrô. O objetivo é criar um ambiente sandbox para experimentar com software e gateware de FPGA.
Configuração Física

A configuração física.
Funcionalidades Atuais
- FPGA alvo: Arty-A7-100T.
- Núcleo Ibex RISC-V com temporizador de máquina e suporte a interrupções de hardware.
- Interconexão baseada na arquitetura Harvard.
- Acesso de baixa latência a registradores e memória em todo o SoC.
- Contagens de ciclo de instrução previsíveis.
- Suporte a Reconfiguração Parcial de FPGA DFX.
- Acesso à memória externa DDR3 através do controlador de memória Litex.
- Acesso de depuração baseado em OpenOCD no FPGA e Verilator.
- Gráficos VGA baseados em VERA: 2 camadas, modo tile ou bitmap, 2 bancos de 64 sprites, 128KB de RAM de vídeo, paleta de 256 cores.
- Áudio PSG YM2149 duplo.
- Controlador de Cartão SD e Sistema de Arquivos FatFs.
- GPIO de 24 pinos, UART, Controlador SPI Flash, Controlador I2C.
- Suporte a Relógio e Calendário em Tempo Real (RTCC).
- Suporte a Teclado e Mouse USB HID.
- Ambiente C padrão baseado em Picolibc.
- Conjunto de aplicativos de teste cobrindo todos os componentes do SoC, executando tanto no FPGA quanto no Verilator.
- Núcleo Mecrisp Forth + C FFI.
Diagrama de Blocos do Gateware

Diagrama de Blocos do Software

Diagrama de Blocos da Arquitetura do SO BoxLambda.
Principais Objetivos
-
Criar um sandbox para experimentar com software e gateware de FPGA:
- Deve ser fácil começar e fazer algo: criar, hackear, mexer.
- Simples o Suficiente para uma Pessoa: Um indivíduo motivado pode desenvolver um entendimento sólido de todo o sistema, incluindo software e hardware.
- Comportamento Determinístico: A duração de operações como acesso à memória interna ou a registradores deve ser previsível por design.
- Ambiente de Execução Autossuficiente compatível com programação interativa de alto nível e programação de sistemas de baixo nível.
- Criar uma Arquitetura Modular que permita uma combinação de componentes de software e hardware. Opcionalmente, suporte a Reconfiguração Parcial de FPGA.
-
Hardware Alvo: Arty-A7 da Digilent.
-
O computador suporta os seguintes periféricos:
- Teclado USB HID
- Mouse USB HID (opcional)
- Joystick USB HID (opcional)
- Relógio e Calendário em Tempo Real (opcional)
- Porta serial
- Armazenamento em cartão SD
- Armazenamento em memória Flash
- Display VGA
- Saída de áudio
-
O som e os gráficos suportam demos e jogabilidade 2D em estilo retrô.
Status (abril de 2026)
- Infraestrutura (sistema de build, etc.): Completa.
- Gateware: Completo e atendendo aos requisitos.
- Software: Desenvolvimento em andamento.
- Arquitetura do SO: definida.
- Núcleo C do BoxLambda: parcialmente concluído.
- Núcleo Mecrisp Forth: concluído.
- Ambiente Mecrisp Forth: parcialmente concluído.
- FFI Forth<->C: concluída.
- Camada do sistema de arquivos: concluída.
Registro de Alterações
Links
Documentação