FPGA 계산기를 처음부터 설계하다...16자리 BCD 정밀도의 맞춤형 프로세서 구현
개발자가 Altera Cyclone II FPGA로 완전한 과학용 계산기를 설계했다.
[한국정보기술신문] 한 개발자가 FPGA를 기반으로 완전한 과학용 계산기를 설계하고 구현했다. 이 프로젝트는 하드웨어 설계, 소프트웨어 개발, 시뮬레이션을 아우르는 복합적인 기술을 보여준다.

BCD 아키텍처의 선택
이 계산기는 이진 코드 십진법(BCD)을 내부 표현으로 사용한다. 각 십진 숫자가 4비트 니블로 인코딩되는 방식으로, "완벽한 십진 정확성으로 부동소수점 변환 오류가 없다." 이는 역사적인 HP 과학용 계산기의 설계 방식을 모방한 것이다.
커스텀 프로세서 아키텍처
설계팀은 니블 단위로 사고하는 특화된 프로세서를 개발했다. 12비트 고정 길이 명령어 세트, 하버드 메모리 모델, BCD 조정 명령어 포함 14개의 ALU 연산을 갖춘다. 메모리는 16자리 BCD 연산에 최적화된 니블 주소 지정 방식을 사용한다.
Altera Cyclone II FPGA 위에 구현된 이 프로세서는 적분 키패드 매트릭스와 OLED 디스플레이를 갖춘 커스텀 PCB와 3D 프린터로 제작한 인클로저로 구성된다. 35개 키의 완전한 계산기 인터페이스를 제공한다.
다층 검증 방법론
개발 과정에서 4단계 환경에서의 테스트가 이루어졌다. ModelSim에서 신호 수준 시뮬레이션, Verilator를 통한 주기 정확 C++ 모델링, Qt 기반 데스크톱 프로토타입 디버거, WebAssembly 컴파일로의 브라우저 실행 등이 포함된다.
삼각함수, 로그, 지수, 제곱근 같은 복잡한 함수는 덧셈, 뺄셈, 곱셈으로만 계산된다. 삼각함수는 CORDIC 알고리즘을 사용해 구현되었다. 이는 전문적인 임베디드 프로세서 수준의 정교한 설계다.
성능 명세
완성된 계산기는 FPGA의 약 1,593개 로직 셀을 사용한다. 전체 FPGA의 35%에 해당하는 점유율이다. 계산 정확도는 16자리 십진법으로 올바른 반올림과 보호 자리수 추적을 포함한다.
이 프로젝트는 개인이 완전한 컴퓨터 시스템을 설계할 수 있는 현대 도구의 능력을 보여준다. FPGA, 시뮬레이션 도구, PCB 설계, 3D 프린팅이 민주화되면서 하드웨어 엔지니어링의 진입 장벽은 크게 낮아지고 있다.
한국정보기술신문 정보기술분과 강민규 기자 news@kitpa.org











