- Published on
오픈 FPGA & RISC-V 개발 2026 완벽 가이드 - Yosys · NextPnR · IceStorm · Lattice ECP5 · SiFive · BeagleV-Fire · Tang Nano · Pulpino 심층 분석
- Authors

- Name
- Youngju Kim
- @fjvbn20031
프롤로그 — "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 짜리 칩 사야 하나"는 합성을 한번 돌려야 답이 나온다. 보통 취미는 5K10K LUT (iCE40 HX/UP5K, Tang Nano 9K), 학습/RISC-V soft core는 25K85K 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 | 249 | Digilent, RISC-V soft core 학습 표준 |
| Zybo Z7-10 / 20 | Zynq-7000 (ARM + FPGA) | 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 | 150 | 학습 표준, Terasic |
학습 1단계는 iCEbreaker (iCE40-UP5K, 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 | 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)
import chisel3._
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 생태계)
import spinal.core._
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
import cocotb
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 = 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 연결.
비용은 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.
- 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/