필사 모드: 오픈 FPGA & RISC-V 개발 2026 완벽 가이드 - Yosys · NextPnR · IceStorm · Lattice ECP5 · SiFive · BeagleV-Fire · Tang Nano · Pulpino 심층 분석
한국어프롤로그 — "FPGA는 비싸고 어렵다"는 통념이 무너진 2026년
2010년대 중반까지 FPGA는 "비싸고, 툴은 더 비싸고, 라이선스는 안 풀린다"의 동의어였다. Xilinx Vivado는 수십 GB짜리 무료 에디션을 깔아야 했고, Altera Quartus도 마찬가지였다. 합성 결과는 블랙박스. 클라우드 빌드도 불가능. 한 줄 바꾸면 30분 기다리는 게 일상이었다.
2026년의 풍경은 다르다. iCE40 / ECP5 / Gowin 일부 칩은 **Yosys + NextPnR + IceStorm/Project Trellis/Apicula** 완전 오픈 툴체인으로 합성부터 비트스트림까지 만들 수 있다. RISC-V 코어는 **PULPino, Rocket, BOOM, VexRiscv, Ariane(CVA6), OpenTitan** 등이 모두 오픈 소스. SBC는 **VisionFive 2, Milk-V Mars, BeagleV-Fire, HiFive Premier P550, Banana Pi BPI-F3, LicheePi 4A** 등 30달러부터 시작한다.
ASIC도 손에 닿는다. **Tiny Tapeout**은 SkyWater 130nm 또는 GlobalFoundries 180nm에서 50~300달러로 학생/취미가도 칩을 떠받게 한다. **OpenROAD**는 RTL → GDSII까지 오픈 EDA로 흘릴 수 있다.
이 글은 그 전체 지형 — FPGA 벤더, 오픈 툴체인, 보드, RISC-V 코어, HDL 언어, 시뮬레이터, 형식 검증, 오픈 ASIC, 한국·일본 흐름 — 을 2026년 시점에서 한 번에 정리한다.
1장 · FPGA의 기본 - LUT · FF · BRAM · DSP · 클록 도메인
FPGA(Field-Programmable Gate Array)는 **재구성 가능한 디지털 회로 어레이**다. 핵심 구성요소는 다섯 가지.
| 자원 | 역할 | 단위 |
| --- | --- | --- |
| LUT (Look-Up Table) | 4~6 입력 truth table, 임의 조합 회로 구현 | iCE40 4-LUT, ECP5 4-LUT, 7-series 6-LUT |
| FF (Flip-Flop) | 동기 레지스터, 보통 LUT당 1개 | LUT-FF 쌍 |
| BRAM (Block RAM) | 18~36 kbit 듀얼 포트 메모리 블록 | iCE40 4 kbit EBR, ECP5 18 kbit EBR |
| DSP slice | 곱셈/누산기, 신호 처리/AI 가속 | iCE40에는 거의 없음, ECP5 18×18, 7-series DSP48 |
| Clock / PLL | 클록 분배, 주파수 합성 | 보통 4~8 글로벌 클록 |
LUT 수가 칩 크기의 1차 지표지만, **BRAM과 DSP가 응용을 결정**한다. 비디오/AI 가속이라면 DSP가, 캐시·FIFO 많으면 BRAM이 병목이다.
iCE40 HX8K: 7,680 LUT4, 7,680 FF, 32×4kbit BRAM = 128 kbit, DSP 없음
iCE40 UP5K: 5,280 LUT4, 5,280 FF, 30×4kbit + 4×128kbit SPRAM = ~640 kbit, DSP 8개
ECP5 LFE5UM-85F: 84K LUT4, 84K FF, 208×18kbit = ~3.7 Mbit, DSP 156개
Artix-7 XC7A100T: 101K LUT6, 126K FF, 4.86 Mbit BRAM, DSP48 240개
"몇 LUT 짜리 칩 사야 하나"는 합성을 한번 돌려야 답이 나온다. 보통 **취미는 5K~10K LUT (iCE40 HX/UP5K, Tang Nano 9K), 학습/RISC-V soft core는 25K~85K LUT (ECP5, Cyclone 10), 본격 SoC는 100K+ (Artix-7, Zynq)** 가 가이드라인이다.
2장 · FPGA 벤더 지형 - AMD/Xilinx · Intel/Altera · Lattice · Microchip · GOWIN · EFINIX
2025년 Intel은 **Altera를 분사 후 매각 진행**해 다시 독립 회사가 됐고, 2022년 AMD가 인수한 Xilinx는 **AMD Adaptive Computing**로 흡수됐다. 2026년 6대 벤더는 다음과 같다.
| 벤더 | 대표 패밀리 | 강점 | 툴체인 | 오픈 툴체인 |
| --- | --- | --- | --- | --- |
| AMD / Xilinx | 7-series, UltraScale+, Versal ACAP | 최대 시장 점유, AI Engine, Zynq SoC | Vivado, Vitis | 부분 (yosys+nextpnr-xilinx 실험) |
| Intel → Altera (재독립) | Cyclone 10, Stratix 10/12, Agilex | HBM 통합, 고밀도 | Quartus Prime | 없음 |
| Lattice Semiconductor | iCE40, ECP5, MachXO5, CrossLink-NX, Avant | 저전력, 작은 패키지, 오픈 친화 | Radiant, Diamond, icecube2 | **완전 (Yosys + NextPnR)** |
| Microchip | PolarFire, PolarFire SoC, IGLOO2 | flash 기반(부팅 즉시), RISC-V SoC 통합 | Libero SoC | 부분 |
| GOWIN | LittleBee, Arora V, Aurora | 중국 저가, 광범위한 패키지 | GoWin EDA | **부분 (Apicula/nextpnr-himbaechel)** |
| EFINIX | Trion, Titanium | 저전력, AI 가속 (Quantum core) | Efinity | 없음 |
2026년 핵심 트렌드.
- **AMD Versal ACAP** — FPGA + ARM + AI Engine을 한 칩에. 4nm 공정, HBM 통합. AI 추론 데이터센터.
- **Lattice Avant** — Lattice의 첫 mid-range FPGA, 2023년 발표, 2025년 양산. ECP5보다 5배 큰 logic.
- **Microchip PolarFire SoC** — 5코어 RISC-V (U54 4 + E51 1) + FPGA. BeagleV-Fire 탑재.
- **GOWIN GW5A** — Arora V 5nm, 한국·일본 메이커 시장 활발.
오픈 툴체인 측면에서 **Lattice는 사실상 표준**이다. iCE40 (IceStorm), ECP5 (Project Trellis), MachXO (Project Oxide) 전 라인업이 Yosys/NextPnR로 흘러간다. Lattice 자신도 Radiant 안에 Yosys를 옵션으로 넣었다. GOWIN은 **Apicula** + nextpnr-himbaechel로 LittleBee/Arora V 일부가 들어왔다.
3장 · Yosys - 오픈 합성기의 사실상 표준
**Yosys**는 Claire Wolf(Clifford Wolf)가 2012년부터 개발한 Verilog 합성기다. ISC 라이선스. 2026년 0.45 버전이 안정 릴리스.
Yosys는 단순한 합성기가 아니라 **모듈식 RTL → gate-level 변환기**다. read_verilog로 시작해서 proc, opt, techmap, abc 같은 패스를 거쳐 write_verilog나 write_blif로 끝난다.
iCE40 타깃 합성 한 줄
yosys -p "synth_ice40 -top top -json out.json" design.v
더 자세한 흐름
yosys -p "
read_verilog design.v
hierarchy -check -top top
proc; opt; fsm; opt
memory_bram -rules ice40.txt
techmap; opt
abc -lut 4
clean
write_json out.json
"
핵심 기능.
- **다중 백엔드** - iCE40, ECP5, Xilinx 7-series(실험), Gowin, Intel(실험), Nexus, ASIC(ABC + Liberty)
- **SystemVerilog 지원** — Verilog 2005는 완전, SV 2017은 부분(파라미터, interface 일부). 완전 SV는 **slang + Yosys** 또는 **sv2v** 변환으로.
- **Verific 프론트엔드** — 상업용 파서, Yosys+Verific은 SV/VHDL 풀 지원. 비공개.
- **Yosys cell library** — 시뮬레이션 모델까지 함께 제공.
2024년 **YosysHQ**가 Yosys 본가를 운영하고, Tabby CAD Suite(Yosys + Verific + SymbiYosys 상용)로 비즈니스 모델을 만들었다. 핵심은 **여전히 ISC 오픈 소스**.
4장 · NextPnR - 현대적 P&R, arachne-pnr를 대체
**NextPnR**(2018~)는 Yosys의 짝이 되는 place-and-route 도구다. 이전 세대 **arachne-pnr**(iCE40 전용, 단순 SA 기반)을 대체했다.
NextPnR이 가져온 것.
- **타이밍 분석 기반 P&R** — 정적 타이밍을 P&R 루프에 직접 반영.
- **다중 디바이스** — iCE40, ECP5, Nexus(MachXO5), Gowin(himbaechel), 실험적 Xilinx.
- **HeAP placer + router** — 더 큰 디자인을 견딘다.
- **GUI** — placement 결과를 시각화.
흐름은 단순.
Yosys 합성
yosys -p "synth_ice40 -top top -json top.json" top.v
NextPnR P&R
nextpnr-ice40 --hx8k --package ct256 \
--json top.json \
--pcf top.pcf \
--asc top.asc
icepack: ASCII → 비트스트림
icepack top.asc top.bin
iceprog: 보드에 굽기
iceprog top.bin
ECP5 흐름도 같은 모양.
yosys -p "synth_ecp5 -top top -json top.json" top.v
nextpnr-ecp5 --25k --package CABGA381 \
--json top.json --lpf top.lpf \
--textcfg top.config
ecppack --svf top.svf top.config top.bit
ujprog top.bit # 또는 openFPGALoader
Gowin도 거의 동일.
yosys -p "synth_gowin -top top -json top.json" top.v
nextpnr-himbaechel --device GW1NR-LV9QN88PC6/I5 \
--json top.json --vopt cst=top.cst \
--write top_pnr.json
gowin_pack -d GW1N-9C -o top.fs top_pnr.json
openFPGALoader -b tangnano9k top.fs
**NextPnR 0.7+** (2025)는 멀티스레드 라우터로 100K LUT급 디자인의 P&R 시간을 절반 이하로 줄였다.
5장 · Project IceStorm · Project Trellis · Project NX/Apicula - 비트스트림 리버스 엔지니어링
오픈 툴체인의 진짜 어려움은 **비트스트림 포맷**이다. 합성과 P&R은 알고리즘이지만, 비트스트림은 벤더가 비공개로 한 비트 단위 인코딩이다. 이걸 푸는 게 "프로젝트들"이다.
| 프로젝트 | 타깃 | 시작 | 상태 |
| --- | --- | --- | --- |
| **IceStorm** | Lattice iCE40 (HX, LP, UP, UltraPlus) | 2015 | 완성, 사실상 1차 표준 |
| **Project Trellis** | Lattice ECP5 (LFE5U/UM 12/25/45/85) | 2017 | 완성 |
| **Project Oxide / nextpnr-nexus** | Lattice Nexus (MachXO5, CrossLink-NX, CertusPro-NX) | 2020 | 진행 중 |
| **Project Apicula** | Gowin LittleBee, Arora V (일부) | 2020 | 부분 |
| **Project U-Boot / SymbiFlow → F4PGA** | Xilinx 7-series (Artix-7) | 2017 | 정체, 부분 |
| **prjpolarfire** | Microchip PolarFire | 2024 (실험) | 초기 |
핵심은 **IceStorm**과 **Project Trellis**다. Claire Wolf의 **Project IceStorm**(2015)이 모든 것의 출발이었다. iCE40의 비트스트림을 한 비트씩 추적해 풀었고, 그 위에 Yosys synth_ice40 백엔드와 arachne-pnr/nextpnr-ice40이 올라왔다. 데이비드 셰이(David Shah)의 **Project Trellis**(2017)는 같은 작업을 ECP5에 했다. 이 두 프로젝트가 없었다면 NextPnR도 의미가 없었다.
2025~2026년 흐름.
- **Project Oxide → nextpnr-nexus** — MachXO5/CrossLink-NX 부분 지원. Lattice도 일부 협조.
- **Apicula** — Robert Ou 등이 GOWIN GW1N 시리즈를 풀었고, GW2A도 진행. Tang Nano 9K/20K는 실전 사용 가능.
- **prjpolarfire** — PolarFire 비트스트림 분석 시작. 시간이 걸린다.
핵심 교훈은 **하드웨어 회사의 협조 없이도 비트스트림은 풀 수 있다**는 것. 그러나 풀려면 사람의 시간이 필요하다.
6장 · 오픈 FPGA 보드 - iCEbreaker · OrangeCrab · Tang Nano · ECPIX-5 · Arty A7
2026년 오픈 툴체인이 도는 보드를 카테고리별로 정리한다.
**iCE40 계열 (가장 쉬움)**
| 보드 | FPGA | 메모리 | 가격(2026) | 특징 |
| --- | --- | --- | --- | --- |
| iCEbreaker | iCE40-UP5K | 5K LUT + 1Mbit SPRAM | $50 | 1bitsquared 제작, PMOD 다수, RISC-V 워크숍 표준 |
| TinyFPGA BX | iCE40 LP8K | 7.6K LUT | $35 | USB 직접 부팅, breadboard 친화 |
| iCE40-HX8K Breakout | iCE40 HX8K | 7.6K LUT | $80 | Lattice 공식, 학습용 |
| Olimex iCE40-HX8K-EVB | iCE40 HX8K | + Cortex-M0 | $40 | 유럽 제작 |
| Fomu | iCE40-UP5K | 5K LUT | $50 | USB 포트에 들어가는 초소형 |
**ECP5 계열 (RISC-V soft core 실용 영역)**
| 보드 | FPGA | 가격 | 특징 |
| --- | --- | --- | --- |
| OrangeCrab | ECP5 25F/85F | $129 | Feather 폼팩터, DDR3 |
| ECPIX-5 | ECP5 45F/85F | $150 | LambdaConcept, RISC-V Linux 가능 |
| Versa-ECP5 (Lattice 공식) | ECP5 45F | $250+ | DDR3, PCIe x1, Ethernet |
| Colorlight 5A-75B | ECP5 25F | $25 | LED 컨트롤러 보드 hack, 정말 저렴 |
| ULX3S | ECP5 12/25/45/85F | $115~ | EMARD 제작, HDMI, ESP32, micSD, 가장 보편적 |
**Gowin 계열 (가장 싸다)**
| 보드 | FPGA | 가격 | 특징 |
| --- | --- | --- | --- |
| Tang Nano 9K | GW1NR-9 (8640 LUT) | $20 | HDMI, micSD, 입문 표준 |
| Tang Nano 20K | GW2AR-18 (20736 LUT) | $30 | SDRAM 내장, RISC-V Linux 시도권 |
| Tang Primer 20K | GW2A-18 | $50 | 더 큰 LUT, Pmod |
| Tang Mega 138K | GW5AT-138 | $100 | Arora V, AI 토이 가능 |
**Xilinx (오픈 툴체인 부분 / Vivado 메인)**
| 보드 | FPGA / SoC | 가격 | 특징 |
| --- | --- | --- | --- |
| Arty A7-35T / 100T | Artix-7 | $129~$249 | Digilent, RISC-V soft core 학습 표준 |
| Zybo Z7-10 / 20 | Zynq-7000 (ARM + FPGA) | $199~$299 | Linux + FPGA |
| PYNQ-Z2 | Zynq-7020 | $229 | Python 위에서 FPGA 조작 (PYNQ 프레임워크) |
| Genesys 2 | Kintex-7 | $1000+ | 고사양 학습/연구 |
**Intel/Altera**
| 보드 | FPGA | 가격 | 특징 |
| --- | --- | --- | --- |
| CYC1000 | Cyclone 10 LP | $50 | Trenz, 컴팩트 |
| DE10-Lite / DE10-Nano | MAX10 / Cyclone V | $85~$150 | 학습 표준, Terasic |
학습 1단계는 **iCEbreaker (iCE40-UP5K, $50)**, 2단계는 **ULX3S 또는 OrangeCrab (ECP5, $115~$150)**, 3단계는 **Arty A7-100T 또는 Zybo Z7-20**으로 권장된다. Tang Nano 9K는 "20달러로 일단 시작해보고 싶다"에 최적.
7장 · RISC-V - ISA부터 확장 셋까지
**RISC-V**는 UC Berkeley에서 2010년 시작된 오픈 ISA다. 2015년 RISC-V Foundation(현 RISC-V International) 발족 후, 2026년 현재 다음과 같은 표준이 굳어졌다.
| 확장 | 의미 | 비고 |
| --- | --- | --- |
| RV32I / RV64I | 32/64-bit base integer | 필수 |
| M | 곱셈/나눗셈 | 사실상 필수 |
| A | atomic | SMP, 멀티코어 필수 |
| F / D / Q | float 32/64/128 | 부분 채택 |
| C | compressed (16-bit insns) | 코드 크기 1.5배 절감 |
| B | bit manipulation (Zba/Zbb/Zbs) | 2021 비준 |
| V | vector | 2021 비준, AI 핵심 |
| Zicsr / Zifencei | CSR / fence.i | 시스템 필수 |
| H | hypervisor | 2023 비준 |
| Zk* | scalar crypto | 2021 |
전형적 "RV64GC" 프로파일 = RV64IMAFDCZicsr_Zifencei. Linux 디스트로 표준.
2025년 비준된 **RVA23**이 2026년 데이터센터/모바일 baseline. RVA23은 V (Vector v1.0), B, Zk*, H, Zicboz 등을 의무화한다. Android RISC-V 포팅이 RVA23 기준이다.
8장 · 오픈 RISC-V 코어 - PULPino · Rocket · BOOM · Ariane · VexRiscv · OpenTitan
오픈 소스 RISC-V CPU 코어 IP는 2026년 거의 "골라 쓰는" 단계다.
| 코어 | 출신 | HDL | 특징 | 라이선스 |
| --- | --- | --- | --- | --- |
| **Rocket Chip** | UC Berkeley | Chisel | RV64GC 5-stage in-order, Linux capable | BSD |
| **BOOM** | UC Berkeley | Chisel | OoO superscalar, 연구 표준 | BSD |
| **CVA6 (Ariane)** | OpenHW / ETH | SystemVerilog | RV64GC 6-stage, Linux, 산업 검증 | Solderpad |
| **CV32E40P (PULPino)** | OpenHW / ETH | SystemVerilog | RV32IMC, 작고 산업급 | Solderpad |
| **CV32E40X / CV32E41P** | OpenHW | SystemVerilog | XIF 확장 포트, P-ext 실험 | Solderpad |
| **Ibex** | lowRISC | SystemVerilog | RV32IMC, OpenTitan 내장 | Apache 2.0 |
| **VexRiscv** | SpinalHDL | SpinalHDL | 플러그인 기반, 합성 친화 | MIT |
| **NaxRiscv** | SpinalHDL | SpinalHDL | OoO, VexRiscv의 후계 | MIT |
| **PicoRV32** | Clifford Wolf | Verilog | 초소형, iCE40-UP5K에 들어감 | ISC |
| **SERV** | Olof Kindgren | Verilog | bit-serial, 가장 작은 RV32I | ISC |
| **Western Digital SweRV / EH1/2** | WD | SystemVerilog | embedded, NVMe controller 출신 | Apache 2.0 |
| **OpenTitan Ibex 기반 root of trust** | lowRISC + Google | SystemVerilog | TPM-like 보안 칩, ChromeOS 탑재 | Apache 2.0 |
| **Microchip MiV** | Microchip | (closed netlist) | PolarFire 내장 소프트 코어 | proprietary |
선택 가이드.
- **iCE40-UP5K에 RISC-V 한번 올려보고 싶다** → PicoRV32 또는 SERV.
- **ECP5에서 Linux 부팅** → VexRiscv (LiteX SoC와 함께) 또는 Rocket Chip.
- **산업급 RV32 마이크로컨트롤러 IP** → CV32E40P (PULPino) 또는 Ibex.
- **연구용 OoO** → BOOM 또는 NaxRiscv.
- **보안 root of trust** → OpenTitan.
**LiteX**(Florent Kermarrec)는 VexRiscv를 중심으로 SoC를 5분 만에 생성하는 프레임워크다. ECP5/ULX3S/OrangeCrab/Tang Nano에서 Linux를 부팅하는 가장 빠른 길.
9장 · SiFive · Andes · Codasip - 상업 RISC-V IP
**SiFive** (Berkeley founders, 2015)는 RISC-V 상업 IP의 대표 주자다. 2026년 라인업.
| 라인 | 대표 코어 | 타깃 | 비고 |
| --- | --- | --- | --- |
| Performance | P870 | 데이터센터, 모바일 | OoO RV64GCV, RVA23 |
| Intelligence | X280, X390 | AI/ML 에지 추론 | 1024-bit vector |
| Essential | E2, E3, E6, E7, E76 | 마이크로컨트롤러 | E76 = HiFive Premier P550 |
| Automotive | S26, S2C26 | ASIL-B/D | ISO 26262 |
2025년 발표 **SiFive P870-D**는 데이터센터급 16코어 RV64GCV, 5GHz. 인텔의 Lunar Lake 시대에 RISC-V가 노트북·서버를 노린다.
다른 상업 IP.
- **Andes Technology** — 대만, AndeStar V5 ISA(RISC-V 호환 + 확장), Andriy N25/A25/AX65/AX27.
- **Codasip** — 체코, custom RISC-V 코어 생성기 + Codasip Studio.
- **Cortus** — 프랑스, APS25.
- **Esperanto Technologies** — ET-SoC-1 1088코어 RISC-V AI 추론 칩.
- **Tenstorrent** — Jim Keller의 회사, Ascalon (16-wide OoO RV64), 노트북 SoC 진출.
2026년 핵심 흐름은 **"RV64 server-class core"**. ARM Neoverse에 진짜로 도전할 RISC-V 코어들이 처음 나왔다.
10장 · RISC-V SBC - VisionFive 2 · Milk-V · BeagleV · HiFive · Banana Pi · LicheePi
물리적 RISC-V 컴퓨터(보드)는 2026년 사실상 모든 가격대에 존재한다.
| 보드 | SoC | RISC-V 코어 | 가격 | 비고 |
| --- | --- | --- | --- | --- |
| **VisionFive 2** | StarFive JH7110 | 4×SiFive U74 @1.5GHz | $60~$80 | Debian/Ubuntu 안정, IMG GPU |
| **Milk-V Mars** | StarFive JH7110 | 4×U74 | $50~ | RPi 폼팩터 |
| **Milk-V Mars CM** | JH7110 | 4×U74 | $40 | CM4 폼팩터 |
| **Milk-V Meles** | TH1520 | 4×Xuantie C910 | $100~ | T-Head, Alibaba |
| **Milk-V Pioneer** | SG2042 | 64×C920 | $1500 | mainboard form, 데스크탑 |
| **Pine64 Star64** | JH7110 | 4×U74 | $70~ | Pine64 ecosystem |
| **BeagleV-Ahead** | TH1520 | 4×C910 | $150 | BeagleBoard.org |
| **BeagleV-Fire** | Microchip MPFS025T | 4×U54 + 1×E51 + FPGA | $150 | FPGA 통합 |
| **SiFive HiFive Unmatched** | FU740 | 4×U74 + 1×S7 | (단종) | 2021 |
| **HiFive Premier P550** | EIC7700X (ESWIN) | 4×SiFive P550 | $399 | RVA22, 2024 출시 |
| **Banana Pi BPI-F3** | SpacemiT K1 | 8×X60 | $90~ | RVV 1.0 vector |
| **Sipeed LicheePi 4A** | TH1520 | 4×C910 @1.85GHz | $150~ | 8/16GB RAM 옵션 |
| **Sipeed LicheePi 3A** | TH1520 | 4×C910 | $80 | 경량 |
| **Tang Mega 138K Pro** | Gowin GW5AT-138 + LiteX VexRiscv | soft core | $100 | 소프트 RISC-V FPGA |
성능과 소프트웨어 성숙도를 본다면.
- **데스크탑 대체 시도** — Milk-V Pioneer, HiFive Premier P550.
- **취미·홈서버** — VisionFive 2, Milk-V Mars, Pine64 Star64. Ubuntu/Debian/Fedora 패키지 풍부.
- **FPGA 합쳐서 디지털 설계 학습** — BeagleV-Fire.
- **벡터 가속 베타** — Banana Pi BPI-F3, LicheePi 4A.
2026년 RISC-V SBC의 진짜 문제는 여전히 **GPU 드라이버**와 **Linux 커널 V 확장 지원**이다. 메인라인 커널은 V 1.0 RVV가 들어왔지만 사용자 공간 라이브러리는 따라가는 중.
11장 · BeagleV-Fire와 PolarFire SoC - FPGA + RISC-V 합본
**BeagleV-Fire**(2024)는 BeagleBoard.org가 만든 보드인데, 핵심은 **Microchip PolarFire SoC MPFS025T-FCSG325E**다. 한 패키지 안에 다음이 들어있다.
- 4×SiFive U54 RV64GC Linux capable 코어 @600MHz
- 1×SiFive E51 RV64IMAC monitor 코어
- ~25K LUT + 68 LSRAM (PolarFire FPGA fabric)
- 통합 메모리 컨트롤러, PCIe, USB
이 보드의 의미는 **Zynq의 RISC-V 버전**이라는 점이다. ARM Cortex-A + FPGA의 Zynq처럼, RISC-V + FPGA가 한 칩에 있어서, 소프트웨어는 Linux로, 가속은 FPGA로 분담할 수 있다. 게다가 PolarFire는 **flash 기반**이라 부팅이 즉시 (SRAM 기반 Xilinx는 부팅 시 비트스트림 로딩 시간이 필요).
BeagleV-Fire에서 RISC-V Linux 부팅 후 FPGA 비트스트림 교체
sudo mtd-utils flashcp custom.spi /dev/mtd-fpga
또는 BeagleV-Fire의 gateware update tool
sudo /opt/microchip/fpga-config-tool/fct \
--bitstream custom.dat --slot golden
sudo reboot
Microchip은 **Libero SoC**(폐쇄형 툴)을 메인으로 밀지만, BeagleV-Fire 커뮤니티는 **VexRiscv + LiteX**를 PolarFire에서 동작시키는 길도 연다.
12장 · HDL 언어 - Verilog · SystemVerilog · VHDL · Chisel · SpinalHDL · Amaranth · Veryl
하드웨어 기술 언어(HDL) 지형은 2026년 다섯 갈래.
**1. 고전 Verilog / SystemVerilog (산업 표준)**
// SystemVerilog 2017 — 단순 register
module reg8 (
input logic clk,
input logic rst_n,
input logic [7:0] din,
output logic [7:0] dout
);
always_ff @(posedge clk or negedge rst_n) begin
if (!rst_n) dout <= 8'h00;
else dout <= din;
end
endmodule
SV 2017은 `logic`, `always_ff/comb`, `interface`, `package`, `bind`, assertion(SVA) 같은 산업 필수 기능을 추가. 2023 표준은 사실상 마이너 업데이트.
**2. VHDL 2019**
entity reg8 is
port (
clk : in std_logic;
rst_n : in std_logic;
din : in std_logic_vector(7 downto 0);
dout : out std_logic_vector(7 downto 0)
);
end entity;
architecture rtl of reg8 is
begin
process (clk, rst_n) is
begin
if rst_n = '0' then
dout <= (others => '0');
elsif rising_edge(clk) then
dout <= din;
end if;
end process;
end architecture;
유럽·방산·항공에서 강세. **GHDL**이 오픈 시뮬레이터, 합성은 `ghdl-yosys-plugin`이 푼다.
**3. Chisel (Scala 기반, UC Berkeley)**
class Reg8 extends Module {
val io = IO(new Bundle {
val din = Input(UInt(8.W))
val dout = Output(UInt(8.W))
})
val r = RegInit(0.U(8.W))
r := io.din
io.dout := r
}
Chisel은 **Scala embedded DSL**. Rocket Chip, BOOM, Chipyard 전 생태계가 Chisel이다. 출력은 FIRRTL → SystemVerilog. 2024 Chisel 6은 Scala 2.13/3 기반.
**4. SpinalHDL (Scala 기반, VexRiscv 생태계)**
class Reg8 extends Component {
val io = new Bundle {
val din = in UInt(8 bits)
val dout = out UInt(8 bits)
}
val r = Reg(UInt(8 bits)) init(0)
r := io.din
io.dout := r
}
Chisel과 비슷한 철학이지만 syntax가 더 가볍고 시뮬레이션이 더 빠르다. VexRiscv/NaxRiscv가 이 위에서 만들어졌다.
**5. Python HDL — Amaranth (구 nMigen) · Migen · MyHDL · PyMTL**
Amaranth
from amaranth import *
class Reg8(Elaboratable):
def __init__(self):
self.din = Signal(8)
self.dout = Signal(8)
def elaborate(self, platform):
m = Module()
m.d.sync += self.dout.eq(self.din)
return m
Amaranth(M-Labs, 구 nMigen)는 Yosys와 직접 통합. LiteX의 일부 컴포넌트가 Amaranth.
**6. Veryl (Rust 스타일, 2023~)**
module reg8 (
clk: input clock,
rst_n: input reset,
din: input logic<8>,
dout: output logic<8>,
) {
always_ff (clk, rst_n) {
if_reset {
dout = 0;
} else {
dout = din;
}
}
}
Veryl은 Verilog로 트랜스파일된다. 모듈 import, 타입 추론, namespace 등 모던 언어 기능.
**7. CIRCT (MLIR 기반, LLVM 산하)**
CIRCT는 LLVM 안에 있는 **회로 IR**. FIRRTL/HW/SV/Calyx 등 여러 dialect를 가진다. 2026년 Chisel은 CIRCT 백엔드로 거의 완전히 옮겨갔다.
학습 1단계는 SystemVerilog (산업 표준), 2단계는 Chisel 또는 SpinalHDL (RISC-V SoC 생태계), 3단계는 Amaranth 또는 Veryl을 권장한다.
13장 · Verilator · Icarus · GHDL · Cocotb - 시뮬레이터
RTL을 굽기 전에 **시뮬레이션**으로 검증한다. 2026년 도구.
| 도구 | 언어 | 속도 | 라이선스 | 특징 |
| --- | --- | --- | --- | --- |
| **Verilator 5** | SV (synthesizable) | 매우 빠름 | LGPL | C++ 컴파일, 산업 표준. 5.x는 SV 어설션 강화 |
| **Icarus Verilog (iverilog)** | Verilog/SV (event-driven) | 보통 | GPL | 가장 쉬운 시작점 |
| **GHDL** | VHDL | 빠름 | GPL | VHDL 1987~2019 |
| **CXXRTL** | Yosys 백엔드 | 매우 빠름 | ISC | Yosys 합성 결과 C++ |
| **Verilator-cocotb** | Cocotb 결합 | 빠름 | 혼합 | Python 테스트벤치 |
| **Modelsim / Questa** | SV/VHDL | 보통 | 상용 | Intel 인수 후 ED 라이선스, 학생 무료 부분 |
| **VCS (Synopsys)** | SV | 빠름 | 상용 | 산업 표준 |
| **Xcelium (Cadence)** | SV/VHDL | 빠름 | 상용 | 산업 표준 |
Verilator 흐름.
합성 가능한 Verilog → C++ 컴파일
verilator --cc design.v --exe sim_main.cpp \
--trace --build -j 0
시뮬레이션 실행
./obj_dir/Vdesign
파형은 GTKWave 또는 Surfer
gtkwave dump.vcd
**Cocotb**(2013~)는 Python coroutine 기반 테스트벤치다. 2026년 1.9 안정.
tb_reg8.py
from cocotb.clock import Clock
from cocotb.triggers import RisingEdge
@cocotb.test()
async def test_reg8(dut):
cocotb.start_soon(Clock(dut.clk, 10, units="ns").start())
dut.rst_n.value = 0
await RisingEdge(dut.clk)
dut.rst_n.value = 1
dut.din.value = 0xA5
await RisingEdge(dut.clk)
await RisingEdge(dut.clk)
assert dut.dout.value == 0xA5
Makefile 한 줄
SIM = verilator
TOPLEVEL_LANG = verilog
VERILOG_SOURCES = $(PWD)/reg8.sv
TOPLEVEL = reg8
MODULE = tb_reg8
include $(shell cocotb-config --makefiles)/Makefile.sim
**파형 뷰어**는 전통적으로 **GTKWave**가 표준이었지만, 2024~2025년 **Surfer**(Rust로 만든 최신 wave viewer)가 빠르게 인기를 얻고 있다. WASM 빌드가 있어서 브라우저에서도 동작한다.
14장 · SymbiYosys · 형식 검증 - 시뮬레이션을 넘어
시뮬레이션은 입력 케이스를 직접 만들어야 한다. **형식 검증(formal verification)** 은 **수학적으로 속성이 모든 케이스에서 성립함을 증명**한다.
**SymbiYosys**(YosysHQ)는 Yosys 위에 올라간 형식 검증 driver다. 내부 엔진은 Z3, Yices2, Boolector, CVC4 등 SMT 솔버.
// add4.sv with SVA property
module add4 (
input logic [3:0] a, b,
output logic [4:0] s
);
assign s = a + b;
// 속성: a + b는 절대 음수가 아니다 (signed 해석)
property no_overflow_msb;
@(posedge $time) (s <= 30);
endproperty
assert property (no_overflow_msb);
endmodule
add4.sby
[tasks]
prove
[options]
prove: mode prove
prove: depth 20
[engines]
prove: smtbmc z3
[script]
read -formal add4.sv
prep -top add4
[files]
add4.sv
sby -f add4.sby prove
결과: PASS — 또는 반례 .vcd
형식 검증이 강력한 곳은 **AXI/Wishbone 같은 버스 프로토콜**과 **암호 모듈**이다. Symbiotic EDA가 만든 **Wishbone formal property**와 **AXI VIP**가 대표.
YosysHQ는 **Tabby CAD Suite**로 Verific(SV/VHDL 풀 파서) + Yosys + SBY + 상용 지원을 묶어 판다. 오픈 SBY는 그대로 무료.
15장 · 표준 버스 - AXI · AXI-Lite · Wishbone · TileLink
SoC 안에서 IP 블록이 서로 말하는 데 쓰이는 **표준 버스**.
| 버스 | 출신 | 특징 | 사용처 |
| --- | --- | --- | --- |
| **AMBA AXI4** | ARM (free spec) | 5 채널 split transaction, burst | Xilinx, ARM, Intel, 사실상 산업 표준 |
| **AXI4-Lite** | ARM | AXI의 단순 버전, register 인터페이스 | 제어 레지스터, 작은 IP |
| **AXI4-Stream** | ARM | 데이터 스트림, no addressing | DSP/AI dataflow |
| **AHB / APB** | ARM | 구형, embedded MCU | Cortex-M MCU |
| **Wishbone B4** | OpenCores | 오픈, 단순 | OpenRISC, 오픈 IP 다수 |
| **TileLink** | Chipyard / SiFive | RISC-V SoC cache coherent | Rocket/BOOM, Chipyard |
| **OCP** | Accellera | (사실상 사용 줄음) | 일부 ASIC |
| **NoC** | 다수 | network on chip, scalable | 멀티코어 |
오픈 RISC-V SoC는 보통 **TileLink**(Rocket Chip, Chipyard) 또는 **Wishbone**(LiteX, VexRiscv)을 쓰고, 외부 인터페이스만 AXI로 변환한다. AXI ↔ Wishbone, AXI ↔ TileLink 변환 IP는 모두 오픈으로 있다.
**IP-XACT**(IEEE 1685)는 IP 메타데이터 표준이다. 포트, 레지스터, 메모리 맵을 XML로 기술해 자동 RTL 래퍼 생성. Kactus2(오픈 툴)가 대표.
16장 · 오픈 ASIC - OpenROAD · SkyWater 130nm · GlobalFoundries 180nm · Tiny Tapeout
FPGA는 재구성 가능하지만 **ASIC**(application-specific IC)은 한 번 굳히면 끝. 오픈 ASIC 흐름이 2020년 이후 가능해졌다.
**OpenROAD**(DARPA IDEA, UCSD/UMich)는 RTL → GDSII 전체 흐름의 오픈 EDA다. Yosys(합성) → OpenROAD(floorplan, place, CTS, route, DRC/LVS) → GDSII.
OpenROAD flow scripts
git clone https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
cd OpenROAD-flow-scripts
./build_openroad.sh
디자인 추가
cp -r designs/gcd flow/designs/sky130hd/my_design
Makefile config 수정
make DESIGN_CONFIG=./designs/sky130hd/my_design/config.mk
**PDK**(process design kit)는 chip을 굽기 위한 디바이스 모델/룰. 오픈 PDK 두 개가 핵심.
| PDK | 노드 | 후원 | 비고 |
| --- | --- | --- | --- |
| **SkyWater SKY130** | 130nm | Google / SkyWater | 2020 공개, 가장 성숙 |
| **GlobalFoundries GF180MCU** | 180nm | Google / GF | 2022 공개, 아날로그 친화 |
| **IHP SG13G2** | 130nm BiCMOS | IHP (독일) | 2023 공개, SiGe BiCMOS |
| (실험) PDK@22FDX | 22nm | NDA 필요 | 미공개 |
**Tiny Tapeout**(Matt Venn, 2022~)은 결정적 변화다. 130nm Sky130에 사용자 디자인을 **타일** 단위로 모아서 한 칩에 굽고, 각 사용자에게 PCB를 보낸다. 2026년 회차 가격은 1×1 tile = $50, 2×2 = $200, 8×2 = $300.
Tiny Tapeout 디자인은 Verilog 한 모듈로 압축
module tt_um_my_design (
input wire [7:0] ui_in, // 8 inputs (switches/buttons)
output wire [7:0] uo_out, // 8 outputs (LEDs)
input wire [7:0] uio_in, // bidirectional in
output wire [7:0] uio_out, // bidirectional out
output wire [7:0] uio_oe, // bidirectional enable
input wire ena, // enable
input wire clk, // clock
input wire rst_n // reset
);
// your design here
endmodule
**OpenLane**(Efabless)은 SkyWater + OpenROAD를 묶은 흐름. **Mflowgen**(UT Austin)도 비슷한 역할. 2026년 **OpenLane 2** Python 기반으로 재작성.
Efabless **caravel** 칩은 RISC-V (PicoRV32) + 사용자 영역 약 10mm² 슬롯. caravel을 통한 MPW 셔틀(multi-project wafer)이 1년에 몇 회 돌아간다. 학생/소형 팀이 처음으로 "내 ASIC"을 가질 수 있게 된 흐름.
17장 · OpenTitan · Caliptra - 보안 RoT 오픈 하드웨어
**OpenTitan**(lowRISC + Google, 2019~)은 오픈 **security root of trust** 칩 설계다. Ibex RV32IMC 코어, AES/SHA/HMAC/PRNG 가속기, life cycle manager, OTP fuse, USB, SPI를 한 칩에. Google Titan(Chromebook 보안 칩), Apple T2의 오픈 대응.
2024년 Google이 양산 OpenTitan 기반 칩을 발표. 2026년에는 데이터센터 NIC, 서버 BMC, IoT 게이트웨이가 OpenTitan을 RoT로 채택하는 흐름.
**Caliptra**(OCP, Microsoft/Google/AMD/NVIDIA, 2022~)는 데이터센터 가속기/SoC 안에 들어가는 RoT IP. OpenTitan 일부를 활용. Open Compute Project 표준.
핵심 의미는 **"보안 칩도 오픈이 가능하다"**는 것. 클로즈드 보안의 시대(TPM 메이커가 만들고 안 보여주는)에서 오픈 검증 가능 보안의 시대로.
18장 · Chipyard · LiteX · Caravel - RISC-V SoC 통합 프레임워크
"코어 + 메모리 + UART + SPI + Ethernet"을 매번 직접 짜는 건 비효율. SoC 통합 프레임워크가 채워준다.
**Chipyard**(UC Berkeley, 2018~)는 Chisel 기반 RISC-V SoC 생성기다. Rocket/BOOM/CVA6 코어 + L2 cache + 가속기(NVDLA, Gemmini) + 메모리 컨트롤러 + 주변장치를 조립한다.
// Chipyard config
class MyConfig extends Config(
new boom.common.WithNLargeBooms(1) ++
new freechips.rocketchip.subsystem.WithNBigCores(2) ++
new chipyard.config.AbstractConfig
)
Chipyard 워크플로는 simulator(VCS/Verilator)와 FPGA(FireSim)와 ASIC(Hammer)를 동시에 본다. **FireSim**(AWS F1)은 RISC-V SoC를 클라우드 FPGA에서 cycle-accurate로 시뮬레이션.
**LiteX**(Florent Kermarrec, 2018~)는 Migen/Amaranth 기반 SoC 생성기. VexRiscv/NaxRiscv 코어 + Wishbone 버스 + LiteDRAM + LiteEth + LiteSDCard 등 IP. iCEbreaker, ULX3S, OrangeCrab, Arty, Tang Nano에서 Linux를 부팅하는 가장 쉬운 길.
ULX3S에서 LiteX + VexRiscv + Linux
git clone https://github.com/litex-hub/linux-on-litex-vexriscv
cd linux-on-litex-vexriscv
./make.py --board=ulx3s --variant=85F --cpu-variant=linux \
--build --load
**Caravel**(Efabless)은 ASIC 셔틀용 RISC-V 래퍼. 사용자 영역 + management SoC(PicoRV32 기반).
19장 · 한국 FPGA / RISC-V 흐름 - ETRI · KAIST · 리벨리온스
한국의 FPGA/RISC-V 활동은 학계 중심에서 산업 중심으로 옮겨가는 중이다.
- **ETRI(한국전자통신연구원)** — RISC-V 기반 시스템 반도체 연구. 2024년 ETRI RISC-V Linux 보드 데모.
- **KAIST** — 전자과 디지털 디자인 강의는 SystemVerilog + Vivado 표준. RISC-V 강의도 Chipyard/Rocket 활용.
- **서울대·포항공대·고려대** — RISC-V SoC 연구.
- **리벨리온스(Rebellions, 2020~)** — AI 추론 칩 ATOM (1세대 GDDR6, 2세대 HBM). 자체 RISC-V 기반 control core. SK Telecom 데이터센터 채택.
- **퓨리오사AI(FuriosaAI)** — Warboy 1세대 (2021), RNGD 2세대 (2024). RISC-V 아닌 자체 NPU지만 RISC-V를 host로 검토.
- **사피온(Sapeon)** — SK 계열 NPU.
- **딥엑스(DEEPX)** — edge AI NPU.
- **텔레칩스 / 실리콘마이터스** — 자동차/전력 반도체에 RISC-V 도입 검토.
한국 FPGA 메이커 시장은 Lattice/Xilinx/Intel + 최근 Tang Nano(GOWIN) 가성비로 다변화. **메이커페어 서울** 2025에서 Tang Nano 워크숍, ULX3S 워크숍이 잡혔다.
오픈 RISC-V SBC는 **알리/직구**로 들어온다. VisionFive 2, Milk-V, LicheePi 모두 한국 커뮤니티(클리앙, RPi Korea 게시판) 후기 활발.
20장 · 일본 흐름 - PEZY-SC · Renesas RZ/Five · AIST OpenTitan
일본은 RISC-V/FPGA 영역에서 특이한 위치다. ARM Cortex와 NEC/Renesas/Toshiba 자체 코어가 강해서 RISC-V는 늦었지만, 2024~2026년 가속.
- **Renesas RZ/Five (2023)** — 첫 양산 RISC-V MPU. Andes AX45MP 듀얼 코어 RV64GC + RGMII Ethernet. 산업용.
- **Renesas R9A02G021 (2024)** — RISC-V 기반 32-bit MCU. AndesCore N22.
- **PEZY-SC4 / SC4s** — PEZY Computing의 매니코어 가속기. 1세대(SC1)는 MIPS, 후속은 자체 ISA + RISC-V host 검토. 일본 슈퍼컴퓨터 Top500 진출 이력.
- **AIST(産業技術総合研究所)** — OpenTitan 일본 포트, RISC-V CPU 연구.
- **Tokyo Tech, Tohoku, Kyoto** — RISC-V SoC, 양자/AI 가속기 연구.
- **Hayabusa / Konzo Lab (RISC-V 보드 커뮤니티)** — Akihabara 메이커 씬에서 Tang Nano/iCEbreaker 워크숍.
흥미로운 점은 일본이 **차량용 RISC-V**에 강하다는 것. Renesas는 ISO 26262 ASIL-D RISC-V를 양산했다. 자동차 ECU의 ARM → RISC-V 전환의 첫 산업 사례가 일본에서 나올 가능성.
**METI(경제산업성)**의 라피더스(Rapidus) 2nm 파운드리는 직접 RISC-V는 아니지만, 일본 내 첨단 노드 회복이 RISC-V SoC 양산을 받친다.
21장 · 응용 사례 - 레트로 컴퓨팅 · HFT · 비디오 · AI · 보안
오픈 FPGA/RISC-V가 실제로 쓰이는 영역.
**1. 레트로 컴퓨팅 / 게임 (FPGA NES/SNES/MD)**
| 프로젝트 | 보드 | 비고 |
| --- | --- | --- |
| **MiSTer FPGA** | DE10-Nano (Cyclone V SoC) | NES, SNES, MD, PS1, Amiga, MSX 등 200+ 시스템 |
| **Analogue Pocket** | Altera Cyclone 10 | GB/GBC/GBA + 코어 |
| **MARSx (오픈)** | ECP5 | 진행 중 |
| **NESCube** | iCE40 | NES one-chip |
MiSTer는 2017년 이후 사실상 레트로 FPGA의 표준이 됐다. 코어 200+ 개를 오픈 소스로 받아 SD 카드에 넣어 부팅.
**2. HFT (high frequency trading)**
거래소 시장 데이터 피드 파싱, 주문 생성, FIX → market protocol 변환을 **나노초 레이턴시**로 처리하기 위해 Xilinx UltraScale+/Versal를 쓴다. 오픈 툴체인은 거의 없고 Vivado.
**3. 비디오 / 영상 처리**
HDMI 입력 → AI 추론(소형 ML) → HDMI 출력 같은 라이브 비디오. ECP5(OrangeCrab) + Wuxx HDMI Pmod 또는 Zybo Z7에서. Sipeed Tang Mega 138K로 60fps 4K 처리 시도.
**4. AI 가속기**
NVDLA(NVIDIA Deep Learning Accelerator, 오픈), Gemmini(Chipyard), VTA(TVM)를 FPGA에 합성. ECP5 85F에서 작은 모델, Versal AI Edge에서 큰 모델.
**5. 보안 root of trust**
OpenTitan을 데이터센터 NIC, 서버 BMC, IoT 게이트웨이에 탑재. ChromeOS Titan-C(OpenTitan 기반), Caliptra(OCP) 양산 시작.
**6. 학습 / 교육**
RV32IMC를 처음부터 짜보는 강의가 KAIST/Berkeley/ETH 모두에서 표준화. iCEbreaker + PicoRV32, ULX3S + VexRiscv, Arty + Rocket 조합.
22장 · 비교 매트릭스 - FPGA 보드 / RISC-V SBC 한 장 표
| 구분 | 보드 | 칩 | LUT or 코어 | 메모리 | 가격(2026) | 핵심 강점 | 약점 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| FPGA 입문 | iCEbreaker | iCE40-UP5K | 5K LUT4 | 1Mbit SPRAM | $50 | 완전 오픈, 워크숍 표준 | DSP 없음 |
| FPGA 입문 | Tang Nano 9K | GW1NR-9 | 8.6K LUT4 | 32Mbit PSRAM | $20 | 가성비 최강, HDMI 내장 | 툴 미성숙 |
| FPGA 중급 | ULX3S | ECP5 25/85F | 25K~84K LUT | 32MB SDRAM | $115~ | HDMI, SD, ESP32 통합 | 폼팩터 큼 |
| FPGA 중급 | OrangeCrab | ECP5 85F | 84K LUT | 128MB DDR3 | $129 | Feather 폼팩터, USB | 핀 적음 |
| FPGA 학습 | Arty A7-100T | Artix-7 | 101K LUT6 | 256MB DDR3 | $249 | RISC-V 학습 표준 | Vivado 필요 |
| FPGA + ARM | Zybo Z7-20 | Zynq-7020 | 53K LUT + 2×A9 | 1GB DDR3 | $299 | Linux + FPGA | Vivado 필요 |
| FPGA + RISC-V | BeagleV-Fire | PolarFire SoC | 25K LUT + 5×SiFive | 2GB DDR4 | $150 | RISC-V Linux + FPGA | flash 한번 |
| RISC-V 입문 | Milk-V Mars | JH7110 | 4×U74 | 1~8GB | $50~ | RPi 폼팩터 | GPU 약함 |
| RISC-V 데스크탑 | HiFive Premier P550 | EIC7700X | 4×SiFive P550 | 16GB DDR5 | $399 | RVA22, mITX | RVV는 다음 세대 |
| RISC-V 벡터 | Banana Pi BPI-F3 | SpacemiT K1 | 8×X60 | 4/8/16GB | $90~ | RVV 1.0 | 소프트웨어 미성숙 |
| RISC-V 워크스테이션 | Milk-V Pioneer | SG2042 | 64×C920 | DDR4-3200 | $1500 | 64코어 | 가격, 전력 |
| 보안 | OpenTitan (양산) | EarlGrey | Ibex RV32 + crypto | 1MB SRAM | 칩 단위 OEM | 오픈 RoT | 보드 적음 |
| 레트로 | MiSTer (DE10-Nano) | Cyclone V SoC | 41K LE + 2×A9 | 1GB DDR3 | $230 (보드+IO) | 200+ 코어 | 폐쇄 Quartus |
23장 · 학습 로드맵 - 0주부터 1년까지
처음 FPGA/RISC-V에 들어가는 사람을 위한 12개월 로드맵.
**Week 1~2 — Verilog 기초**
- Verilog 2005 문법, always block, register, FSM.
- 시뮬레이터: iverilog + GTKWave. 또는 EDA Playground(브라우저).
- 책: Pong P. Chu, "FPGA Prototyping by Verilog Examples".
**Week 3~6 — 첫 보드, 첫 블링크 → 첫 UART**
- iCEbreaker 또는 Tang Nano 9K 구입.
- LED 블링크 → UART echo → 7-seg → VGA.
- 오픈 툴체인 (Yosys + NextPnR + IceStorm).
**Week 7~12 — SystemVerilog + 형식 검증**
- always_ff/comb, interface, package, SVA.
- SymbiYosys로 간단 properties 증명.
- Verilator로 cocotb 테스트벤치.
**Month 4~6 — 첫 RISC-V soft core**
- PicoRV32를 iCE40-UP5K에 굽고 펌웨어 실행.
- 또는 VexRiscv를 ULX3S에 굽고 LiteX로 Linux.
- 어셈블리부터 GCC, OpenOCD 디버깅.
**Month 7~9 — Chisel / SpinalHDL 또는 ECP5 SoC**
- Chisel/Bootcamp(Berkeley) 또는 SpinalHDL 워크숍.
- Rocket Chip을 Chipyard로 시뮬레이션.
**Month 10~12 — ASIC 흐름 또는 RISC-V SBC + 가속기**
- Tiny Tapeout에 작은 디자인 제출 ($50).
- 또는 VisionFive 2/BeagleV-Fire에 가속기 IP 연결.
비용은 $30(Tang Nano)~$300(보드 + ASIC tile)로 학부생 수준 예산이 충분하다. 1년이 지나면 SoC 한 개를 "내가 RTL부터 짠" 수준에 도달한다.
24장 · 함정과 빠지기 쉬운 곳
- **합성과 시뮬레이션 결과 차이** — `initial`, `#delay`, race condition은 시뮬레이션에는 통하지만 합성에서 무시되거나 다르게 동작.
- **클록 도메인 크로싱(CDC)** — 다른 클록 사이 신호는 반드시 동기화. metastability 방지. 형식 검증(CDC linter)을 돌려야.
- **타이밍 위반** — 첫 컴파일은 통과해도 더 큰 디자인에선 setup/hold 위반. NextPnR의 `--seed` 변경, 파이프라이닝.
- **LUT/FF 부족 → ECP5로** — iCE40 5K는 RISC-V Linux 무리, 보통 VexRiscv RV32IM에서도 ECP5 25F 이상 필요.
- **벤더 라이브러리 의존** — Vivado primitives(BUFG, IOBUF)를 명시적으로 쓰면 다른 FPGA에 안 옮긴다. inferable code 우선.
- **시뮬레이션만 믿기** — 형식 검증, 합성 후 timing 보고, 보드 실측까지 해야 진짜 검증.
- **비트스트림 인코딩 차이** — 같은 ECP5 칩이라도 Lattice Diamond와 Yosys+nextpnr 결과가 다를 수 있음. 일부 코너 케이스는 Yosys가 보수적.
- **RISC-V V extension** — RVV 1.0이 비준됐지만 GCC/LLVM 자동 벡터화는 2026년에도 진행 중. 손으로 intrinsics 짜는 단계.
25장 · 결론 - 디지털 설계의 진짜 민주화
2026년 디지털 회로 설계는 더 이상 "비싼 EDA 라이선스를 가진 사람만"의 일이 아니다.
- $20짜리 Tang Nano로 첫 블링크.
- 무료 Yosys/NextPnR로 어떤 iCE40/ECP5/Gowin 비트스트림이든.
- 무료 Verilator/Cocotb로 산업급 시뮬레이션.
- 무료 SymbiYosys로 형식 검증.
- $50 Tiny Tapeout으로 ASIC.
- $50~$1500 RISC-V SBC로 데스크탑부터 워크스테이션까지.
거기에 더해, **소스 코어**(PicoRV32, VexRiscv, Rocket, BOOM, CVA6, Ibex), **소스 SoC 프레임워크**(Chipyard, LiteX), **소스 PDK**(SKY130, GF180MCU), **소스 RoT**(OpenTitan, Caliptra)까지 한 줄로 깔린다. 이걸 학생 한 명이 다 만질 수 있다.
남은 격차는 두 가지다. 첫째, **고밀도 FPGA**(Versal, Stratix 10)의 오픈 툴체인은 아직 멀었다. 둘째, **7nm 이하 ASIC**의 오픈 PDK는 NDA 너머에 있다. 그러나 학습·취미·중소 양산은 이미 오픈이 충분하다.
진짜 메시지는 단순하다. **"내가 만든 회로를 칩에 굽는" 일이 책 100권 값 안에 들어왔다.** 다음에 할 일은 학습이 아니라 만드는 것이다.
참고 자료
- Yosys: https://github.com/YosysHQ/yosys
- NextPnR: https://github.com/YosysHQ/nextpnr
- Project IceStorm: https://github.com/YosysHQ/icestorm
- Project Trellis: https://github.com/YosysHQ/prjtrellis
- Project Oxide (Nexus): https://github.com/gatecat/prjoxide
- Project Apicula (Gowin): https://github.com/YosysHQ/apicula
- SymbiYosys: https://github.com/YosysHQ/sby
- Verilator: https://www.veripool.org/verilator/
- Icarus Verilog: http://iverilog.icarus.com/
- Cocotb: https://www.cocotb.org/
- GTKWave: https://gtkwave.sourceforge.net/
- Surfer waveform viewer: https://surfer-project.org/
- RISC-V International: https://riscv.org/
- Rocket Chip: https://github.com/chipsalliance/rocket-chip
- BOOM: https://github.com/riscv-boom/riscv-boom
- CVA6 (Ariane): https://github.com/openhwgroup/cva6
- CV32E40P: https://github.com/openhwgroup/cv32e40p
- Ibex: https://github.com/lowRISC/ibex
- VexRiscv: https://github.com/SpinalHDL/VexRiscv
- PicoRV32: https://github.com/YosysHQ/picorv32
- SERV: https://github.com/olofk/serv
- OpenTitan: https://opentitan.org/
- Caliptra: https://www.opencompute.org/projects/caliptra
- Chipyard: https://chipyard.readthedocs.io/
- LiteX: https://github.com/enjoy-digital/litex
- Chisel: https://www.chisel-lang.org/
- SpinalHDL: https://spinalhdl.github.io/SpinalDoc-RTD/
- Amaranth HDL: https://amaranth-lang.org/
- Veryl: https://veryl-lang.org/
- CIRCT (MLIR): https://circt.llvm.org/
- OpenROAD: https://theopenroadproject.org/
- OpenLane: https://github.com/The-OpenROAD-Project/OpenLane
- SkyWater PDK: https://github.com/google/skywater-pdk
- GlobalFoundries 180MCU PDK: https://github.com/google/gf180mcu-pdk
- Tiny Tapeout: https://tinytapeout.com/
- Efabless caravel: https://github.com/efabless/caravel
- BeagleV-Fire: https://beagleboard.org/beaglev-fire
- VisionFive 2: https://www.starfivetech.com/en/site/boards
- Milk-V: https://milkv.io/
- Sipeed LicheePi: https://wiki.sipeed.com/
- Lattice Semiconductor: https://www.latticesemi.com/
- AMD Adaptive Computing: https://www.amd.com/en/products/adaptive-socs-and-fpgas.html
- SiFive: https://www.sifive.com/
- MiSTer FPGA: https://misterfpga.org/
현재 단락 (1/574)
2010년대 중반까지 FPGA는 "비싸고, 툴은 더 비싸고, 라이선스는 안 풀린다"의 동의어였다. Xilinx Vivado는 수십 GB짜리 무료 에디션을 깔아야 했고, Altera...