AI 요약
이 프로젝트는 FPGA(Field Programmable Gate Array) 하드웨어 상에서 독자적인 소프트 CPU를 설계하고 이를 활용해 완전한 기능을 갖춘 과학용 계산기를 제작하는 전 과정을 담고 있습니다. 하드웨어 설계 언어인 SystemVerilog를 사용하여 CPU, ALU, I/O 인터페이스를 정의했으며, 이를 제어하기 위한 전용 마이크로코드(펌웨어)와 어셈블러, 스크립트 컴파일러를 직접 개발했습니다. 개발자는 시뮬레이션 가속을 위해 Verilator를 활용했으며, 사용자가 웹 브라우저나 데스크톱에서 계산기를 테스트할 수 있도록 Qt 프레임워크 기반의 시각적 디버거를 제공합니다. 또한, Cyclone II FPGA를 타겟으로 Quartus 13.0 SP1 환경에서 실제 하드웨어 합성이 가능하도록 구성되었습니다. 단순한 하드웨어 설계를 넘어 BCD 산술 연산 검증 및 복잡한 연산 구현을 위한 알고리즘 연구까지 포함된 통합 프로젝트입니다.
핵심 인사이트
- 독자적인 아키텍처 설계: 범용 CPU가 아닌 계산기 연산에 최적화된 니블(Nibble) 단위의 소프트 CPU와 마이크로코드를 SystemVerilog로 구현함.
- 다양한 시뮬레이션 환경 제공: Verilator 5.x(데스크톱용) 및 4.228(WebAssembly용)을 지원하여 윈도우(WSL2), 웹, 안드로이드 등 멀티 플랫폼에서 동작 확인 가능.
- 특정 하드웨어 최적화: Cyclone II FPGA 계열을 위해 Quartus 13.0 SP1 버전을 사용하며, 실제 물리적 보드인 'RevB' 보드 합성을 지원함.
주요 디테일
- 소프트웨어 스택: Python 3 기반의 어셈블러와 도구들을 사용하여 마이크로코드를 컴파일하며, UI 구동을 위해 Qt 6.9 이상의 버전과 MSVC 2022 컴파일러가 필요함.
- BCD 산술 연산: 일반적인 이진수 연산이 아닌 정밀도가 중요한 계산기를 위해 BCD(Binary-Coded Decimal) 연산을 검증하는 골든 레퍼런스(Pathfinding/Proto)를 포함함.
- 디버깅 시스템: Qt 기반 시뮬레이터는 하드웨어 레벨의 동작을 시각적으로 추적할 수 있는 디버거를 내장하여 개발 편의성을 높임.
- 빌드 시스템: WSL2 환경에서의 빌드 프로세스를 표준화하고, ModelSim을 통한 CPU 자가 진단(self-test) 및 GtkWave를 활용한 파형 분석 환경 구축.
- 연구 프로젝트 연계: 복잡한 수학적 연산 증명을 위한 'Pathfinding' 프로젝트를 통해 알고리즘의 하드웨어 이식 가능성을 사전에 검증함.
향후 전망
- 하드웨어 설계 기초부터 마이크로코드 작성, 고수준 UI 연결까지의 전체 파이프라인을 제공하여 컴퓨터 구조 및 FPGA 교육용 리소스로 널리 활용될 것으로 보임.
- WebAssembly 지원을 통해 저수준 하드웨어 에뮬레이션의 웹 이식 기술 발전에 기여할 것으로 예상됨.
출처:hackernews
