BoxLambda 소개
BoxLambda는 하드웨어-소프트웨어 교차 프로젝트로, 홈브루 레트로 스타일 FPGA 기반 마이크로컴퓨터를 만듭니다. 목표는 소프트웨어와 FPGA 게이트웨어를 실험하기 위한 샌드박스 환경을 구축하는 것입니다.
물리적 구성

물리적 구성.
현재 기능
- 대상 FPGA: Arty-A7-100T.
- 머신 타이머 및 하드웨어 인터럽트를 지원하는 Ibex RISC-V 코어.
- 하버드 아키텍처 기반 상호 연결.
- SoC 전반에 걸친 저지연 레지스터 및 메모리 접근.
- 예측 가능한 명령어 사이클 수.
- DFX 부분 FPGA 재구성 지원.
- Litex 메모리 컨트롤러를 통한 DDR3 외부 메모리 접근.
- FPGA 및 Verilator에서 OpenOCD 기반 디버그 접근.
- VERA 기반 VGA 그래픽: 2개 레이어, 타일 또는 비트맵 모드, 64개 스프라이트 2뱅크, 128KB 비디오 RAM, 256색 팔레트.
- 듀얼 YM2149 PSG 오디오.
- SD 카드 컨트롤러 및 FatFs 파일 시스템.
- 24핀 GPIO, UART, SPI 플래시 컨트롤러, I2C 컨트롤러.
- 실시간 시계 및 달력(RTCC) 지원.
- USB HID 키보드 및 마우스 지원.
- Picolibc 기반 표준 C 환경.
- FPGA와 Verilator에서 모두 실행되는 모든 SoC 구성 요소를 포함한 테스트 애플리케이션 스위트.
- Mecrisp Forth 코어 + C FFI.
게이트웨어 블록 다이어그램

소프트웨어 블록 다이어그램

BoxLambda OS 아키텍처 블록 다이어그램.
주요 목표
-
소프트웨어와 FPGA 게이트웨어를 실험하기 위한 샌드박스 생성:
- 쉽게 시작하여 무언가를 할 수 있어야 함: 생성, 해킹, 개조.
- 한 사람에게 충분히 간단함: 동기부여된 개인이 소프트웨어와 하드웨어를 포함한 전체 시스템을 확실히 이해할 수 있어야 함.
- 결정적 동작: 내부 메모리 또는 레지스터 접근과 같은 작업의 지속 시간은 설계적으로 예측 가능해야 함.
- 자체 포함된 런타임 환경: 고수준 대화형 및 저수준 시스템 프로그래밍 지원.
- 모듈식 아키텍처 생성: 소프트웨어 및 하드웨어 구성 요소를 자유롭게 조합할 수 있음. 선택적으로 부분 FPGA 재구성 지원.
-
대상 하드웨어: Digilent의 Arty-A7.
-
컴퓨터는 다음 주변 장치를 지원합니다:
- USB HID 키보드
- USB HID 마우스 (선택 사항)
- USB HID 조이스틱 (선택 사항)
- 실시간 시계 및 달력 (선택 사항)
- 직렬 포트
- SD 카드 저장소
- 플래시 메모리 저장소
- VGA 디스플레이
- 오디오 출력
-
사운드 및 그래픽은 레트로 스타일의 2D 데모 및 게임 플레이를 지원합니다.
상태 (2026년 4월)
- 인프라 (빌드 시스템 등): 완료.
- 게이트웨어: 완료 및 요구 사항 충족.
- 소프트웨어: 개발 진행 중.
- OS 아키텍처: 정의됨.
- BoxLambda C 코어: 부분 완료.
- Mecrisp Forth 코어: 완료.
- Mecrisp Forth 환경: 부분 완료.
- Forth<->C FFI: 완료.
- 파일 시스템 계층: 완료.
변경 로그
링크
문서