공학용 계산기 제작을 위한 Verilog 기반 니블(Nibble) CPU 설계기

FPGA를 기반으로 독자적인 니블(Nibble) CPU와 마이크로코드 펌웨어를 설계하여 과학용 계산기를 구현하는 오픈소스 프로젝트가 공개되었습니다. Cyclone II FPGA와 Quartus 13.0 SP1을 지원하며, Verilator 5.x 및 Qt 6.9+ 환경을 통해 데스크톱과 웹 브라우저에서 모두 시뮬레이션 및 디버깅이 가능합니다.

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 지원을 통해 저수준 하드웨어 에뮬레이션의 웹 이식 기술 발전에 기여할 것으로 예상됨.
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...