밑바닥부터 설계하는 FPGA 계산기

2021년 2월 텍사스 정전 사태 당시 HP-41CV에서 영감을 받아 시작된 이 프로젝트는 FPGA를 이용해 16자리 BCD 연산이 가능한 계산기를 밑바닥부터 설계하는 과정을 다룹니다. Verilog 소스를 수정 없이 웹(WebAssembly)과 실제 하드웨어(EP2C5 보드)에서 모두 구동하는 프레임워크를 구축하고, 12비트 고정 길이 명령어를 가진 커스텀 CPU까지 직접 설계했습니다.

AI 요약

2021년 2월 미국 텍사스주 오스틴의 기록적인 한파와 정전 사태 속에서 저자는 HP-41CV 계산기를 사용하며 자신만의 계산기를 만들기로 결심했습니다. 이 프로젝트는 단순히 기성 부품을 조립하는 것이 아니라, 삼각함수와 로그 등 복잡한 수치 연산을 덧셈과 곱셈만으로 16자리 정밀도까지 구현하는 수치 해석 단계부터 철저히 진행되었습니다. 개발의 효율성을 위해 하나의 Verilog 소스 코드를 ModelSim, Verilator, Qt, WebAssembly 등 4가지 환경에서 공통으로 사용할 수 있는 혁신적인 통합 테스트 프레임워크를 구축한 것이 특징입니다. 하드웨어 측면에서는 EP2C5 개발 보드와 직접 주문한 키패드 매트릭스, OLED 디스플레이 PCB를 결합했습니다. 특히 일반적인 CPU가 지원하지 않는 16자리 BCD(Binary Coded Decimal) 가수를 처리하기 위해, 니블(nibble) 단위 주소 지정이 가능한 12비트 고정 길이 명령어 세트 기반의 전용 CPU 아키텍처를 독자적으로 설계하며 하드웨어와 소프트웨어를 아우르는 풀스택 엔지니어링의 과정을 상세히 공개했습니다.

핵심 인사이트

  • 프로젝트 기점: 2021년 2월 텍사스 오스틴 정전 사태 당시 HP-41CV의 조작감에서 영감을 받아 '밑바닥부터의 설계'를 시작함.
  • 수치 연산 정밀도: 덧셈, 뺄셈, 곱셈만을 활용하여 tan, ln, exp, sqrt 등의 함수를 최대 16자리 소수점 정밀도로 계산하는 알고리즘 검증 완료.
  • 크로스 플랫폼 검증: 단일 Verilog RTL 소스를 수정 없이 웹 브라우저(WebAssembly)와 실제 FPGA(EP2C5) 보드 양쪽에서 구동할 수 있는 환경을 구축함.

주요 디테일

  • 하드웨어 구성: Altera Cyclone II 계열의 EP2C5 개발 보드, 리본 케이블로 연결된 키패드 매트릭스, OLED 디스플레이 PCB를 직접 제작 및 사용.
  • 전용 CPU 설계: 16자리 BCD 가수를 효율적으로 처리하기 위해 일반적인 CPU에는 없는 '니블(4비트) 단위 주소 지정' 기능을 포함한 아키텍처 설계.
  • 명령어 세트 아키텍처(ISA): 하드웨어 구현의 단순화와 효율성을 위해 12비트 고정 길이 명령어를 채택.
  • 무료 도구 활용: 하드웨어 시뮬레이션 및 소프트웨어 개발의 모든 단계에서 ModelSim, Verilator 등 무료 및 오픈소스 도구만을 활용하여 비용 효율성을 극대화.
  • 검증 프레임워크: Qt 기반의 데스크톱 프로토타입과 디버거 콘솔을 통해 하드웨어가 실제 생산되기 전 로직의 완결성을 사전 검증함.

향후 전망

  • 특수 목적 컴퓨팅: 범용 CPU의 한계를 넘어 특정 연산(BCD 등)에 최적화된 전용 프로세서 설계 방식이 하비스트와 교육 현장에서 시뮬레이션 기술과 결합되어 더욱 확산될 것으로 보임.
  • 임베디드 시뮬레이션 고도화: WebAssembly를 활용해 하드웨어 소스(RTL)를 웹에서 즉시 테스트하는 기법이 복잡한 FPGA 프로젝트의 표준 검증 절차로 자리 잡을 가능성이 높음.
Share

이것도 읽어보세요

댓글

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

댓글 (0)

불러오는 중...