WebFPGA, 보드 구매 후 웹 IDE에서 FPGA를 프로그래밍하는 2019년 프로젝트
- WebFPGA는 보드를 구매한 뒤 Web IDE에서 FPGA 장치를 프로그래밍하도록 구성한 프로젝트임
- 사이트는 프로젝트 정보와 범위를 Kickstarter 페이지로 안내하고, 지원 포럼·블로그·문서 링크를 함께 제공함
- 명령줄 흐름으로 IceStorm 또는 Cloud Synthesis 사용법을 안내하며, Linux용 udev 규칙 파일도 배포함
- 사용자 데모로 FPGA에서 동작하는 LED 이진 카운터 동영상을 공개함
Hacker News opinions
작은 FPGA 보드는 헬로 월드 다음에 어디에 써야 할지 늘 막막함.
C64의 PLA·CIA·SID 대체, 브레드보드용 글루 로직, TTL-VGA 변환 같은 용도가 있음. 이런 작업은 FPGA가 오래전부터 맡아 왔음.
콘솔 탈옥에도 쓸 수 있음.
iCE40UP5K면 기본 주변장치를 붙인 단순한 RISC-V 소프트코어는 합성할 수 있음. 크거나 빠르진 않지만 쓸 만한 수준임.
UP5K의 장점은 오픈 툴체인이 수 초 안에 돈다는 점임. Vivado 같은 일반적인 폐쇄형 FPGA 툴 흐름과 다름.
임베디드 기기나 콘솔, 휴대폰에 글리치 공격을 할 때도 FPGA를 씀.
핀 입력에 1마이크로초 안에 결정적으로 반응해야 하고 MCU 주변장치가 못 해주면 FPGA가 필요함. 순수 연산은 대규모 병렬성이나 맞춤 캐시·인터커넥트 같은 아주 특수한 경우가 아니면 일반 CPU가 더 나음.
2013년 Mojo 이후라면 선택지가 달라졌음. Lattice는 오픈소스 툴체인 지원이 많이 좋아졌고, Gowin과 Tang Nano 보드는 가격과 기능의 균형이 흥미로움.
Fomu는 USB 포트에 꽂는 완전 오픈소스 보드이고 오픈 툴체인을 지원함. 가격은 약 $50이고 RISC-V 소프트코어도 돌릴 수 있음.
합성을 클라우드에서 하는 건 스마트폰만 있거나 로컬 합성을 돌릴 사양이 안 되는 사람에게는 이유가 있을 듯함.
그래도 이 정도 툴체인은 브라우저에서 WASM으로 돌릴 수 있음. Yosys 기반 yowasp.org가 이미 있음.
웹 IDE는 블링키나 헬로 월드에는 괜찮아도 금방 제대로 된 로컬 IDE가 필요해짐. Mbed처럼 웹 IDE에만 투자하면 곤란함.
Yowasp를 Lattice UP5K 실험 개발에 써 봤는데 Windows와 Linux를 오가기에 편했고 당시에는 잘 작동했음.
FPGA를 해보고 싶었지만 설치 과정이 부담스러웠음. 이런 도구면 진입 장벽이 낮아질 것 같음.