필사 모드: 하드웨어 HDL & 칩 디자인 2026 — SystemVerilog / Chisel / SpinalHDL / Amaranth / Yosys / Verilator / TinyTapeout / OpenROAD 심층 가이드
한국어1장 · 2026년 HDL 지도 — 클래식 / 스칼라 / 파이썬 / 오픈 EDA 네 분류
2026년의 하드웨어 기술 언어와 칩 설계 환경을 한 장의 지도로 그리면 네 개의 큰 대륙이 보인다.
- **클래식 HDL** — Verilog (1984, Phil Moorby), SystemVerilog (2005, IEEE 1800), VHDL (1987, IEEE 1076). 산업 표준이며 모든 EDA 흐름의 공통어.
- **스칼라 기반 HDL** — Chisel (UC Berkeley, 2012), SpinalHDL (2015, Scala 함수형 대안), Bluespec SystemVerilog. 매개변수화·재사용성·생성성에서 한 단계 위.
- **파이썬 기반 HDL** — Amaranth (구 nMigen, 2018, M-Labs / Whitequark), MyHDL (2003, Jan Decaluwe), Migen (2011). 학습 곡선이 낮고 스크립트 친화적.
- **오픈 EDA 흐름** — Yosys (Clifford Wolf, 2012), Verilator (Wilson Snyder), Icarus Verilog (Steve Williams), GHDL (Tristan Gingold), nextpnr (YosysHQ), OpenROAD (DARPA IDEA, UC San Diego). 그리고 그 결과를 실리콘으로 보내는 TinyTapeout, Caravel, Skywater 130nm PDK.
이 네 대륙은 서로 통신한다. Chisel은 Verilog로 elaborate 되고, Amaranth도 마찬가지다. Yosys는 SystemVerilog의 합성 가능한 부분집합을 읽고, OpenROAD는 Yosys의 netlist를 받아 placement와 routing을 한다. 즉 **언어는 여러 갈래지만 백엔드는 점점 수렴하는 중**이다.
이 글은 각 대륙을 한 장씩 짚고, 마지막에 한국과 일본의 반도체 풍경, 그리고 "누가 어떤 HDL을 배워야 하나"의 실용 가이드로 마무리한다.
> 이 글의 모든 코드 예제는 2026년 5월 현재 안정 버전 기준이다. Verilator 5.x, Yosys 0.40+, OpenROAD 2.0, Chisel 6.x, Amaranth 0.5+.
2장 · Verilog / SystemVerilog — 산업 표준은 흔들리지 않는다
Verilog의 위치
Verilog는 1984년 Phil Moorby가 만든 언어다. 1995년 IEEE 1364로 표준화되었고, 2001년 (Verilog-2001), 2005년 (Verilog-2005) 두 번의 큰 개정을 거쳤다. ASIC과 FPGA 산업 전반에서 **사실상의 공용어**다.
2005년 IEEE 1800으로 **SystemVerilog**가 등장하면서 검증(verification)·assertion·OOP까지 포괄하게 되었다. 2026년 현재 IEEE 1800-2023이 최신 표준이며, 모든 메이저 EDA 벤더(Cadence, Synopsys, Siemens EDA)가 지원한다.
간단한 카운터 예제
module counter #(
parameter WIDTH = 8
)(
input wire clk,
input wire rst_n,
input wire enable,
output reg [WIDTH-1:0] count
);
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
count <= {WIDTH{1'b0}};
else if (enable)
count <= count + 1'b1;
end
endmodule
같은 코드를 SystemVerilog로 쓰면 `logic`, `always_ff`, `always_comb` 같은 명시적 의도 표현이 가능해진다.
module counter #(
parameter int WIDTH = 8
)(
input logic clk,
input logic rst_n,
input logic enable,
output logic [WIDTH-1:0] count
);
always_ff @(posedge clk or negedge rst_n) begin
if (!rst_n)
count <= '0;
else if (enable)
count <= count + 1'b1;
end
endmodule
`logic`은 wire/reg의 혼동을 없애고, `always_ff`는 synthesizer가 "이것은 flip-flop이다"라고 명확히 인식한다. 2026년 새 RTL은 거의 모두 SystemVerilog로 작성된다.
SystemVerilog의 강력한 부분 — UVM과 Assertion
SystemVerilog의 진짜 강점은 **검증** 쪽에 있다. UVM (Universal Verification Methodology, 2011)은 OOP 기반 testbench framework로, 산업 검증 표준이다. SystemVerilog Assertion(SVA)는 시간적 속성을 1급으로 다룬다.
// 간단한 SVA — 요청 후 4 cycle 안에 ack가 와야 한다
property req_ack_p;
@(posedge clk) disable iff (!rst_n)
req |-> ##[1:4] ack;
endproperty
assert property (req_ack_p)
else $error("ack timeout after req");
이런 시간 속성을 Verilog로는 procedural code 없이 표현할 수 없다. SVA가 SystemVerilog를 industry standard로 만든 핵심 이유 중 하나다.
3장 · VHDL — 유럽과 군사에서 여전히 살아있는
VHDL은 1987년 미국 국방부의 VHSIC 프로그램에서 나온 언어로, IEEE 1076으로 표준화되었다. Ada에 영향을 받은 강타입·verbose 언어다.
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
entity counter is
generic (
WIDTH : integer := 8
);
port (
clk : in std_logic;
rst_n : in std_logic;
enable : in std_logic;
count : out unsigned(WIDTH-1 downto 0)
);
end entity;
architecture rtl of counter is
signal count_r : unsigned(WIDTH-1 downto 0);
begin
process (clk, rst_n)
begin
if rst_n = '0' then
count_r <= (others => '0');
elsif rising_edge(clk) then
if enable = '1' then
count_r <= count_r + 1;
end if;
end if;
end process;
count <= count_r;
end architecture;
VHDL은 verbose하지만 그만큼 명시적이다. 2026년 산업 점유율은 다음과 같다.
- **미국 ASIC** — 5% 미만, 거의 SystemVerilog로 이전됨
- **유럽 (특히 독일·프랑스)** — 40% 안팎, 산업 자동화·항공우주에서 강세
- **방위산업** — 미국 군용 ASIC도 VHDL 유산 코드가 많음 (Sentinel, Patriot 등)
- **교육** — 독일·스위스 대학에서 학부 입문 언어
쇠퇴 중이지만 죽지 않은 언어다. **GHDL** 시뮬레이터가 오픈소스이고 Yosys-GHDL 플러그인이 합성을 지원한다.
4장 · Chisel — UC Berkeley가 만든 차세대 RTL 작성법
Chisel이 푸는 문제
Verilog의 한계는 **메타 프로그래밍의 빈약함**이다. `generate` 블록과 `parameter`로는 표현하기 어려운 복잡한 매개변수화·재사용이 많다. UC Berkeley는 2012년 RISC-V Rocket 코어를 만들면서 새 언어를 설계했다 — **Chisel** (Constructing Hardware in a Scala Embedded Language).
Chisel은 **Scala 내부 DSL**이다. Scala의 모든 기능(클래스, 함수, 패턴 매칭, 타입 시스템)을 그대로 쓸 수 있고, elaborate 시점에 Verilog 또는 FIRRTL (Flexible Intermediate Representation for RTL)로 변환된다.
class Counter(width: Int) extends Module {
val io = IO(new Bundle {
val enable = Input(Bool())
val count = Output(UInt(width.W))
})
val reg = RegInit(0.U(width.W))
when (io.enable) {
reg := reg + 1.U
}
io.count := reg
}
같은 카운터지만, `width`는 Scala의 `Int`다. 즉 **Scala로 임의 복잡한 계산을 한 뒤 그 결과로 하드웨어를 생성**할 수 있다.
// 16개의 카운터를 생성하되, 짝수 인덱스만 reset 가능
class MultiCounter extends Module {
val io = IO(new Bundle {
val enable = Input(Bool())
val out = Output(Vec(16, UInt(8.W)))
})
for (i <- 0 until 16) {
val c = Module(new Counter(8))
c.io.enable := io.enable
io.out(i) := c.io.count
if (i % 2 == 0) {
// 짝수만 특수 처리
}
}
}
이런 패턴을 Verilog의 `generate`로 쓸 수도 있지만, Scala만큼 표현력이 풍부하지는 않다.
Chisel의 실제 사용처 — Rocket, BOOM, Chipyard
UC Berkeley의 RISC-V 코어 전부가 Chisel로 작성됐다.
- **Rocket** — in-order, 5-stage scalar RISC-V (Linux 부팅 가능)
- **BOOM** — Berkeley Out-of-Order Machine, 4-wide superscalar
- **Chipyard** — Rocket/BOOM/주변 IP를 합친 SoC 프레임워크
2026년 RISC-V 학계와 산업에서 Chisel은 **자주 보이는 RTL 작성 언어** 중 하나다. SiFive(Berkeley spin-out)는 자체 IP를 Chisel로 작성한다.
5장 · SpinalHDL — Scala 진영의 또 다른 강력한 선택지
Chisel이 Berkeley·SiFive 중심이라면, **SpinalHDL**은 Charles Papon이 2015년 프랑스에서 시작한 Scala 기반 HDL이다. 철학은 비슷하지만 다음과 같은 차이가 있다.
- **컴파일 모델** — Chisel은 FIRRTL을 거치지만, SpinalHDL은 직접 Verilog/VHDL을 생성
- **Bundle / IO 다루는 법** — SpinalHDL은 `master`/`slave` interface 개념이 1급
- **State Machine** — `StateMachine` 클래스가 내장
- **시뮬레이션** — `SpinalSim`이 내장, Verilator/Icarus를 backend로 활용
class Counter(width: Int) extends Component {
val io = new Bundle {
val enable = in Bool()
val count = out UInt(width bits)
}
val counter = Reg(UInt(width bits)) init(0)
when (io.enable) {
counter := counter + 1
}
io.count := counter
}
object CounterGen extends App {
SpinalVerilog(new Counter(8))
}
SpinalHDL은 VexRiscv (오픈 RISC-V 코어, FPGA에서 인기), NaxRiscv (out-of-order) 같은 실전 코어를 만든다. Chisel보다 신택스가 조금 더 자연스럽다는 평이 많고, 유럽과 일본 hobbyist 커뮤니티에서 강세다.
6장 · Bluespec SystemVerilog — Atomic Action으로 하드웨어를 짜다
Bluespec은 MIT의 Arvind 교수가 1990년대부터 연구한 **guarded atomic action** 기반 언어다. 2000년대 초 Bluespec Inc.가 상업화했고, 2020년 오픈소스화(BSC, Bluespec Compiler)되었다.
핵심 아이디어는 "하드웨어를 트랜잭션으로 모델링한다"이다. `rule`은 atomic하며, scheduler가 충돌하는 rule들을 자동으로 직렬화한다.
module mkCounter (Counter#(8));
Reg#(UInt#(8)) count <- mkReg(0);
method UInt#(8) read = count;
method Action increment if (count < 255);
count <= count + 1;
endmethod
endmodule
`if (count < 255)`는 implicit guard다 — 조건이 거짓이면 rule이 발화하지 않는다. 이런 자동 스케줄링이 Bluespec의 매력이자 학습 곡선의 출처다.
실제 사용처는 **MIT 리서치, 일부 IBM ASIC, RISC-V Piccolo/Flute 코어**다. 산업에서 주류는 아니지만 학계와 verification community에서는 여전히 활발하다.
7장 · Amaranth (구 nMigen) / MyHDL / Migen — 파이썬 진영
Migen → nMigen → Amaranth의 계보
- **Migen** (2011, Sébastien Bourdeauducq) — Python으로 동기 회로 기술. FPGA-친화적, MiSoC SoC 빌더가 함께.
- **nMigen** (2018, Whitequark/M-Labs) — Migen의 재설계 버전. 더 깔끔한 모델, 더 좋은 시뮬레이터.
- **Amaranth** (2022, nMigen 리브랜딩) — 현재 활발히 개발. 0.5+ 버전이 안정 stage.
from amaranth import *
from amaranth.sim import Simulator
class Counter(Elaboratable):
def __init__(self, width: int):
self.width = width
self.enable = Signal()
self.count = Signal(width)
def elaborate(self, platform):
m = Module()
with m.If(self.enable):
m.d.sync += self.count.eq(self.count + 1)
return m
if __name__ == "__main__":
dut = Counter(8)
sim = Simulator(dut)
sim.add_clock(1e-6)
async def proc(ctx):
ctx.set(dut.enable, 1)
for _ in range(10):
await ctx.tick()
print(ctx.get(dut.count))
sim.add_testbench(proc)
with sim.write_vcd("counter.vcd"):
sim.run()
Python으로 RTL을 쓰는 것의 이점은 명확하다 — **표준 라이브러리, 패키지 관리, 테스트 프레임워크가 그대로 쓰인다**. 단점은 합성 backend가 Yosys로 한정된다는 점, 그리고 대형 ASIC 흐름에서는 산업 EDA 도구가 직접 Python을 받지 않는다는 점.
MyHDL
MyHDL (2003, Jan Decaluwe)은 더 오래된 Python HDL이다. `@always_seq`, `@always_comb` 데코레이터로 process를 표현한다.
from myhdl import block, always_seq, Signal, intbv
@block
def counter(clk, rst_n, enable, count):
@always_seq(clk.posedge, reset=rst_n)
def logic():
if enable:
count.next = count + 1
return logic
MyHDL은 verbose하지만 hardware-level 의도가 매우 명확하다. Amaranth로 점차 대체되는 추세지만, 기존 프로젝트가 많아서 살아있다.
8장 · OpenROAD — 오픈 EDA 종합 흐름
**OpenROAD** (Open Realization Of Autonomous Design)는 DARPA IDEA 프로그램(2018~)에서 시작된 오픈소스 EDA 흐름이다. UC San Diego의 Andrew Kahng 교수가 주도한다.
흐름은 다음과 같다.
1. **Synthesis** — Yosys (SystemVerilog → gate-level netlist)
2. **Floorplanning** — OpenROAD `init_floorplan`, `place_pins`
3. **Placement** — RePlAce (UCSD)
4. **CTS** (Clock Tree Synthesis) — TritonCTS
5. **Routing** — TritonRoute / FastRoute
6. **Static Timing Analysis** — OpenSTA (Parallax)
7. **DRC / LVS** — KLayout + Magic + Netgen
오픈 PDK(Skywater 130nm, GlobalFoundries 180nm)와 결합하면 **전체 RTL→GDSII 흐름이 오픈소스로 닫힌다**. 2026년 학생이 노트북에서 SoC를 tapeout 직전 단계까지 끌고 가는 것이 가능해진 이유다.
OpenLane — OpenROAD의 통합 wrapper
OpenLane은 Efabless가 만든 OpenROAD 기반 RTL2GDS flow다. Tcl/Python 스크립트로 단계를 묶어준다.
OpenLane 실행 예 (개념)
make mount
./flow.tcl -design my_chip
`config.tcl` 또는 `config.json`에 PDK, 디자인 파일, clock 정의를 적으면 OpenLane이 합성→배치→배선→GDSII까지 한 번에 돌린다. TinyTapeout이 이 위에서 동작한다.
9장 · Yosys (Clifford Wolf) — 오픈 합성의 심장
**Yosys**는 2012년 Clifford Wolf(YosysHQ 창립자)가 시작한 오픈 합성 도구다. 산업 표준 합성기 (Synopsys Design Compiler 등)와 비교해 작지만, 다음과 같은 강점이 있다.
- **SystemVerilog 합성 가능 부분집합 지원** — UHDM/sv2v를 거치면 더 광범위
- **VHDL** — GHDL 플러그인 경유
- **다중 백엔드** — Verilog, BLIF, JSON (nextpnr 용), Liberty timing model
- **abc 통합** — Berkeley의 ABC가 logic optimization을 담당
간단한 Yosys 합성 예
yosys -p "
read_verilog counter.v
synth -top counter
write_json counter.json
"
위 명령 한 줄로 Verilog → gate-level JSON netlist가 나온다. 이 JSON은 nextpnr가 placement·routing에 그대로 쓴다.
Yosys의 한계와 보완
산업 EDA와 비교해 Yosys가 약한 영역은 다음과 같다.
- 매우 큰 디자인의 합성 품질 (수십만 셀 이상)
- High-effort logic optimization
- Power-aware synthesis (UPF/CPF)
이 한계는 **Yosys + ABC + 디자이너 hint**로 어느 정도 메워진다. 그래도 학생/취미가/소형 ASIC 흐름에서는 충분히 production-ready다.
10장 · Verilator / Icarus Verilog / GHDL — 오픈 시뮬레이션 3대장
Verilator
**Verilator** (Wilson Snyder, Veripool)는 cycle-accurate Verilog/SystemVerilog 시뮬레이터다. **이벤트 기반이 아니라 cycle 기반** — 매 클록마다 RTL 모델을 평가한다. 그래서 매우 빠르다.
Verilator는 Verilog를 C++ 또는 SystemC로 변환한 뒤 컴파일한다.
verilator -Wall --cc counter.v --exe sim_main.cpp
cd obj_dir
make -j -f Vcounter.mk Vcounter
./Vcounter
`sim_main.cpp`는 C++ testbench다.
#include "Vcounter.h"
#include "verilated.h"
int main(int argc, char** argv) {
Verilated::commandArgs(argc, argv);
Vcounter* dut = new Vcounter;
for (int i = 0; i < 100; i++) {
dut->clk = 0; dut->eval();
dut->clk = 1; dut->eval();
}
delete dut;
return 0;
}
Verilator는 RISC-V 커뮤니티(Rocket/BOOM/CVA6)의 사실상 표준 simulator다. **수십 MHz의 cycle simulation 속도**를 낸다 — 산업 commercial simulator와 견줄 만하다.
Icarus Verilog
**Icarus Verilog** (Steve Williams, 2000~)는 더 전통적인 event-driven simulator다. Verilator보다 느리지만, Verilog의 전체 시뮬레이션 시맨틱(initial block, force/release 등)을 더 완전히 지원한다. 소규모 testbench에 적합하다.
iverilog -o counter_sim counter.v tb_counter.v
vvp counter_sim
GHDL
**GHDL** (Tristan Gingold)은 VHDL용 simulator다. LLVM 또는 GCC backend로 컴파일된다.
ghdl -a counter.vhd tb_counter.vhd
ghdl -e tb_counter
ghdl -r tb_counter --vcd=wave.vcd
VHDL 진영의 오픈 표준이다. Yosys-GHDL 플러그인을 거치면 VHDL을 Yosys로 합성할 수 있다.
11장 · nextpnr — FPGA Placement와 Routing의 오픈 답
**nextpnr** (YosysHQ)는 FPGA placement and routing 도구다. Project IceStorm (Clifford Wolf), Project Trellis, Project Apicula 같은 reverse-engineered bitstream documentation 위에서 동작한다.
지원 FPGA 패밀리는 다음과 같다.
- **Lattice iCE40** — IceStorm 기반, fully open
- **Lattice ECP5** — Trellis 기반, fully open
- **Lattice Nexus** — 부분 지원
- **Gowin** — Apicula 기반
- **Xilinx 7-Series** — Project XRay 기반, 실험적
iCE40 FPGA로 가는 흐름
yosys -p "synth_ice40 -top top -json design.json" design.v
nextpnr-ice40 --hx8k --json design.json --pcf pins.pcf --asc design.asc
icepack design.asc design.bin
iceprog design.bin # 실제 보드에 굽기
이 한 흐름으로 RTL → FPGA bitstream → 보드 굽기까지 전부 오픈 도구로 끝난다. **Lattice iCE40 HX8K나 ECP5 85K 보드는 50~150달러 수준**이라 학생도 부담 없이 시작할 수 있다.
Xilinx / Intel / Microsemi와의 비교
상업 FPGA 벤더(AMD Xilinx Vivado, Intel Quartus)와 비교한 오픈 흐름의 위치는 다음과 같다.
- **iCE40 / ECP5** — 오픈 toolchain이 vendor toolchain만큼 좋거나 더 좋다
- **Xilinx 7-Series** — 실험적이지만 가능. 산업에서는 Vivado가 표준
- **Versal / Stratix 10 / Agilex** — 산업 도구 전용, 오픈 흐름 없음
오픈 흐름이 따라잡는 속도는 빠르지만, **고급 FPGA의 DSP 블록·고속 SerDes·HBM 메모리 컨트롤러**는 vendor IP에 묶여 있다.
12장 · TinyTapeout — Matt Venn이 만든 저비용 실리콘의 길
**TinyTapeout**은 영국의 Matt Venn이 2022년 시작한 프로젝트다. 핵심 아이디어는 단순하다 — **여러 명의 작은 디자인을 한 reticle에 모아 한꺼번에 tape-out하면, 1인당 비용이 100~300달러까지 떨어진다.**
각 디자인은 매우 작다 — 보통 **1 tile = 약 100x100 마이크론**이고, 100~500 표준 셀 정도. 카운터, 작은 state machine, blinking LED 컨트롤러, 작은 CPU 등을 만들 수 있다.
TinyTapeout 세대 (2026년 5월 기준)
- **TT01** (2022) — 첫 시제품, Skywater 130nm
- **TT02 ~ TT05** (2023~2024) — Skywater 130nm, 점점 더 많은 참여자
- **TT06 ~ TT07** (2024~2025) — Skywater 130nm 안정화
- **TT08** (2025) — IHP SG13G2 130nm (독일 IHP 파운드리, BiCMOS, 오픈 PDK)
- **TT09** (2026 예정) — Skywater 또는 IHP 두 갈래
사용자 흐름
Verilog로 디자인 작성 (또는 Amaranth, Chisel, SpinalHDL...)
git clone https://github.com/TinyTapeout/tt-template
tt_um_yourname.v를 작성
config.yaml에 pin 매핑, 디자인 이름 등
GitHub Action이 OpenLane으로 GDSII까지 만들어준다
GitHub Action이 OpenLane을 돌려 GDSII를 만들고, Matt의 팀이 이걸 reticle에 모아 Efabless를 통해 Skywater 또는 IHP로 보낸다. **수개월 뒤 실제 칩과 PCB가 우편으로 도착**한다. 학생이나 hobbyist에게 이건 단순한 학습이 아니라 진짜 실리콘 경험이다.
13장 · Skywater 130nm + GlobalFoundries 오픈 PDK
PDK (Process Design Kit)는 파운드리가 디자이너에게 주는 "이 공정에서 회로를 그리는 방법" 매뉴얼이다. 표준 셀 라이브러리, 트랜지스터 모델, DRC 규칙, LVS 규칙 등이 들어있다. 전통적으로 **NDA 뒤에 잠긴 자산**이다.
Skywater 130nm — 첫 완전 오픈 PDK
2020년 6월, Google과 SkyWater(미국 미니애폴리스 근교 130nm 파운드리)는 **Skywater Open PDK**를 Apache 2.0 라이선스로 공개했다.
- 표준 셀 (sky130_fd_sc_hd, hs, ls, ms, hdll, lp)
- I/O 셀
- SRAM macros (OpenRAM)
- DRC / LVS 규칙
이건 오픈 EDA 운동의 역사적 사건이다. 누구든 **130nm SoC를 RTL부터 GDSII까지 끌고 갈 수 있게 됐다**. 130nm는 최첨단은 아니지만(2026년 첨단은 3nm/2nm) 학습·교육·소량 ASIC에는 충분하다.
GlobalFoundries 180nm + 130nm
2022년 GlobalFoundries(미국 fab)는 **180nm**와 **130nm BCDLite** PDK를 오픈했다. Skywater와 별도의 또 다른 옵션이다.
IHP SG13G2 130nm
독일 IHP는 **SG13G2 130nm BiCMOS** PDK를 오픈했다. BiCMOS는 일반 CMOS에 BJT(bipolar junction transistor)를 합친 공정으로, 아날로그/RF 회로에 강하다. TinyTapeout 08가 IHP를 처음 썼다.
이 세 PDK(Skywater 130nm, GF 180nm/130nm, IHP SG13G2)가 2026년 오픈 칩 디자인의 토대다.
14장 · Caravel — Efabless가 만든 오픈 칩 harness
**Caravel** (Efabless)은 사용자의 디자인을 감싸는 **표준 SoC harness**다. 사용자는 약 3000x3700 마이크론 크기의 user_project_wrapper 영역을 채우면 된다 — 그 주변에는 Caravel이 제공하는 management SoC (PicoRV32 CPU 기반), I/O, SPI, JTAG 등이 이미 들어있다.
+-----------------------------------+
| Caravel harness (관리 SoC) |
| +-----------------------------+ |
| | | |
| | user_project_wrapper | |
| | (디자이너가 채움) | |
| | | |
| +-----------------------------+ |
| PicoRV32, SPI, GPIO, ... |
+-----------------------------------+
Caravel은 다음 두 가지 큰 흐름에서 쓰인다.
- **OpenMPW** — Google이 후원한 Multi-Project Wafer 셔틀. Skywater에서 6세대까지 진행 (2020~2023)
- **chipIgnite** — Efabless의 상업 셔틀 서비스. 정기적 tape-out, 약 10000달러 수준
OpenMPW는 끝났지만, Caravel 자체는 살아있다. **TinyTapeout이 더 작은 단위로, Caravel/chipIgnite는 한 단계 큰 단위(전체 wafer reticle 한 칸)로 동작한다**.
15장 · RISC-V 코어 — Chipyard / OpenTitan / Ariane-CVA6 / BOOM
오픈 ISA인 **RISC-V**는 2026년 칩 디자인 풍경의 중심이다. 학계·산업·오픈소스가 모두 RISC-V로 모이는 이유는 단순하다 — **라이선스 부담 없이 자유롭게 코어를 만들 수 있다**.
Chipyard (UC Berkeley)
Chipyard는 Berkeley의 RISC-V SoC 프레임워크다. 다음을 묶는다.
- **Rocket** — in-order 5-stage scalar
- **BOOM** — out-of-order superscalar (4~10 wide)
- **CVA6 (Ariane)** — PULP 그룹의 6-stage in-order
- **Sodor** — 교육용 단순 코어
- **NVDLA** — NVIDIA Deep Learning Accelerator integration
- **Gemmini** — Berkeley의 systolic-array DNN accelerator
// Chipyard의 config 예 — Rocket + BOOM + accelerator
class MyBigConfig extends Config(
new chipyard.config.WithSystemBusWidth(128) ++
new boom.common.WithNBoomCores(2) ++
new freechips.rocketchip.subsystem.WithNBigCores(2) ++
new chipyard.config.AbstractConfig
)
전부 Chisel로 작성되어 있다. Verilator로 시뮬레이션하고, Yosys/OpenROAD로 합성할 수도 있다 (단순한 구성에 한해).
OpenTitan (Google)
**OpenTitan**은 Google이 주도하는 오픈 silicon root of trust 프로젝트다. lowRISC가 호스팅한다. CPU는 **Ibex** (4-stage in-order, 원래 PULP의 Zero-riscy에서 fork)다. 보안 가속기, AES, HMAC, KMAC, OTBN (Big Number coprocessor), Life Cycle Controller 등이 들어있다.
OpenTitan은 **실제 산업용 silicon root of trust 칩으로 tape-out**되었다. 2024년 OpenTitan Earl Grey 칩이 GlobalFoundries 22nm로 양산되었다 — 이는 오픈소스 ASIC 역사의 이정표다.
Ariane / CVA6
**Ariane** (ETH Zurich PULP 그룹)은 6-stage in-order RISC-V 코어로, Linux를 부팅할 수 있다. 2020년 **CVA6**로 OpenHW Group에 이전되었다. SystemVerilog로 작성됐고, 산업 검증을 통과한 verified 코어다.
BOOM (Berkeley Out-of-Order Machine)
**BOOM**은 Chris Celio가 박사과정 동안 만든 out-of-order RISC-V 코어다. Chisel로 작성됐고, x86 OoO core(예: Skylake)의 핵심 아이디어를 그대로 구현한다 — register renaming, reorder buffer, issue queue, ALU/FPU pipelines.
2026년 RISC-V OoO 진영의 두 축은 **BOOM (Berkeley)**과 **XiangShan (中国 ICT, 香山)**이다.
16장 · HLS — Vitis HLS / Intel oneAPI HLS / MaxCompiler
High-Level Synthesis는 **C/C++ 또는 SystemC를 RTL로 자동 변환**하는 도구다. ML accelerator, image processing pipeline 같은 고도로 병렬화된 데이터플로 회로에 강하다.
Vitis HLS (AMD/Xilinx)
Vitis HLS는 AMD Xilinx의 HLS 도구다. C++로 함수를 쓰면 Verilog 모듈로 나온다.
// Vitis HLS 예 — 8-tap FIR filter
#include "ap_int.h"
void fir(ap_int<16> in, ap_int<16> *out) {
static ap_int<16> shift_reg[8] = {0};
static const ap_int<16> coeffs[8] = {1, 2, 3, 4, 4, 3, 2, 1};
shift_reg[0] = in;
ap_int<32> sum = 0;
for (int i = 0; i < 8; i++) {
#pragma HLS UNROLL
sum += shift_reg[i] * coeffs[i];
}
for (int i = 7; i > 0; i--) {
#pragma HLS UNROLL
shift_reg[i] = shift_reg[i-1];
}
*out = sum.range(31, 16);
}
`#pragma HLS UNROLL`이 합성기에게 "이 루프를 unroll해서 병렬 회로로 만들어라"라고 지시한다.
Intel oneAPI HLS
Intel(현 Altera로 다시 분사) 진영은 oneAPI 기반 HLS를 제공한다. SYCL/DPC++ 기반.
MaxCompiler (Maxeler / Groq)
MaxCompiler는 dataflow 컴퓨팅 전용 HLS다. 원래 Maxeler가 만들었고, 2022년 Groq에 인수되었다. **MaxJ** (Java 기반 DSL)로 데이터플로 그래프를 기술한다. 금융·과학계산용 FPGA 가속기에 쓰였다.
HLS는 직접 RTL을 쓰는 것보다 빠르지만, **최적 PPA(Performance/Power/Area)는 일반적으로 RTL이 우세**하다. ML과 DSP 같은 데이터플로에 한해 HLS가 점점 더 산업 비중을 키우는 중이다.
17장 · 한국 반도체 — 삼성 / 하이닉스 / LG / KAIST
한국은 반도체 강국이지만 **HDL 표면적으로는 보수적**이다. 산업 흐름은 SystemVerilog + Synopsys/Cadence + 자체 검증 인프라가 표준이다.
삼성전자 파운드리 / 메모리
- **파운드리 (Foundry Business)** — 4nm GAA, 3nm GAA, 2nm 개발 중. 고객 RTL을 받는 입장이라 HDL은 SystemVerilog 또는 Verilog 중심.
- **메모리 (Memory Business)** — DRAM과 NAND. 메모리 controller와 PHY는 매우 정교한 SystemVerilog. UVM testbench가 산업 표준.
- **LSI** — Exynos AP, SoC 통합. ARM Cortex + 자체 GPU + NPU 통합. SystemVerilog + UPF (power intent).
삼성 파운드리에는 **SAFE (Samsung Advanced Foundry Ecosystem)** 라는 EDA 파트너 프로그램이 있다. Cadence, Synopsys, Siemens EDA의 도구가 삼성 PDK와 함께 검증된다.
SK하이닉스
SK하이닉스는 DRAM/NAND/HBM 강자다. HBM3E와 HBM4 개발에서 세계 최선두. PHY/controller HDL은 비공개지만, 표준은 SystemVerilog + UVM.
2024~2025년 SK하이닉스가 **NVIDIA H100/H200/B100/B200 HBM**의 주요 공급사가 되면서, 한국 반도체의 AI 가치사슬 위치가 한층 높아졌다.
LG (자율주행 / 차량 반도체)
LG화학·LG전자·LG이노텍은 자율주행 ECU와 차량 vision IC 쪽에서 자체 ASIC을 개발한다. 자동차 grade 인증(AEC-Q100, ISO 26262)이 핵심이라 HDL은 SystemVerilog + formal verification 중심.
KAIST와 학계
KAIST 전기전자공학과는 RISC-V 코어를 학부/대학원 수업에서 다룬다. **Chipyard와 SpinalHDL**을 같이 가르치는 수업도 있다. 서울대·POSTECH·UNIST도 RISC-V SoC 설계 수업을 운영한다.
한국 학생들에게 **TinyTapeout 참가는 점점 흔한 일**이 되고 있다 — 학부 캡스톤 프로젝트로 작은 칩 한 조각을 실제로 실리콘으로 만드는 경험을 한다.
18장 · 일본 반도체 — Sony / NEC / Renesas / Toshiba / Rapidus 2nm
일본 반도체는 1980년대 정점에서 후퇴했지만, **이미지 센서·자동차·MCU·메모리**에서 여전히 강하다. 그리고 2022년 시작된 **Rapidus**는 일본 반도체 부활 프로젝트의 중심이다.
Sony Semiconductor Solutions
Sony는 **CMOS image sensor의 세계 1위**다 (시장 점유 약 50%). iPhone과 안드로이드 플래그십의 메인 카메라 센서 대부분이 Sony다. CIS chip의 RTL은 자체 SystemVerilog + UVM 흐름이다.
NEC / Renesas / Toshiba
- **NEC** — 반도체 자체는 거의 정리됐지만, NEC Electronics→Renesas Electronics로 합쳐졌다
- **Renesas** — 자동차 MCU와 ARM 기반 SoC. R-Car (자동차 SoC) 시리즈가 핵심
- **Toshiba (Kioxia, NAND)** — NAND flash 메모리 (Kioxia로 분사)
- **ROHM, Rohm Semiconductor** — analog/power IC
이들의 HDL 흐름도 SystemVerilog + UVM이 표준이다. 일본 reliability 문화는 검증에 매우 많은 투자를 한다 — formal verification, UVM coverage, post-silicon validation까지.
Rapidus — 2nm GAA 도전
**Rapidus**는 2022년 8월에 일본 정부 주도로 만들어진 첨단 파운드리다. 토요타, 소니, NTT, NEC, SoftBank, Denso, 키오시아, 미츠비시UFJ, 미츠비시UFJ 등이 출자. IBM과 협력해 **2nm GAA (Gate-All-Around) 공정**을 개발 중이다. 홋카이도 치토세에 fab을 건설했다.
2025년 2nm 시제품, 2026~2027년 본격 양산 목표. 성공한다면 TSMC·삼성과 함께 세계 3대 첨단 파운드리가 된다. 다만 실제 양산까지는 아직 여러 변수가 있다. 일본의 EUV 인프라, 인력, 고객 확보 등.
일본 학생/엔지니어는 **Renesas, Sony, Rapidus 인턴십**과 **Toppan Photomask, Tokyo Electron, 디스코, Lasertec** 같은 장비/포토마스크 회사들에서 반도체 커리어를 시작한다.
19장 · 누가 어떤 HDL을 배워야 하나
산업 ASIC을 노린다면
- **SystemVerilog** (필수) — 산업 표준. UVM도 함께.
- **VHDL** (선택) — 유럽 채용 시 유리.
- **Tcl** — 모든 EDA 도구의 스크립트 언어.
- **Python** — 환경 자동화·결과 분석.
FPGA 엔지니어를 노린다면
- **SystemVerilog 또는 VHDL** — Vivado/Quartus가 둘 다 받는다.
- **Vitis HLS 또는 Intel HLS** — DSP/ML 가속 회로.
- **Yosys + nextpnr** — iCE40/ECP5 보드로 시작해 학습.
- **Verilator** — 빠른 시뮬레이션.
RISC-V / 오픈 칩 / 학계 진로
- **Chisel** (또는 SpinalHDL) — Chipyard·BOOM 코드를 읽으려면 필수.
- **SystemVerilog** — CVA6, OpenTitan 코드는 SV.
- **Amaranth** — 작은 SoC 빠르게 짤 때 좋다.
- **Verilator + Yosys + OpenROAD + Skywater 130nm** — 전체 RTL→GDSII 흐름.
- **TinyTapeout** — 첫 실리콘 경험으로 강력 추천.
취미가 / 학생
1. **iCE40 HX8K 보드** (대략 50달러) 또는 **ULX3S** (대략 130달러)를 사라
2. **Amaranth 또는 Chisel**으로 RTL을 쓰고, Yosys + nextpnr로 합성해 보드에 굽는다
3. RISC-V 코어 (PicoRV32, NEORV32, VexRiscv) 한 개를 통째로 이해해 본다
4. **TinyTapeout**에 작은 디자인을 한 번 보내본다 — 100~300달러로 실제 실리콘 경험
검증(Verification) 전문가
- **SystemVerilog + UVM** — 산업 표준 verification 언어.
- **SVA (Assertion)** — Formal verification의 입구.
- **cocotb** (Python) — Verilator/Icarus와 함께 쓰는 Python testbench framework. 점점 인기.
- **SymbiYosys** — 오픈 formal verification (Yosys 위).
20장 · 참고 / References
- IEEE 1800-2023 — [SystemVerilog Standard](https://standards.ieee.org/ieee/1800/7743/)
- IEEE 1076 — [VHDL Standard](https://standards.ieee.org/ieee/1076/10800/)
- Chisel — [chisel-lang.org](https://www.chisel-lang.org/)
- Chisel GitHub — [github.com/chipsalliance/chisel](https://github.com/chipsalliance/chisel)
- SpinalHDL — [spinalhdl.github.io](https://spinalhdl.github.io/SpinalDoc-RTD/)
- SpinalHDL GitHub — [github.com/SpinalHDL/SpinalHDL](https://github.com/SpinalHDL/SpinalHDL)
- Bluespec Compiler (BSC) — [github.com/B-Lang-org/bsc](https://github.com/B-Lang-org/bsc)
- Amaranth — [amaranth-lang.org](https://amaranth-lang.org/)
- Amaranth GitHub — [github.com/amaranth-lang/amaranth](https://github.com/amaranth-lang/amaranth)
- MyHDL — [myhdl.org](https://www.myhdl.org/)
- Migen — [github.com/m-labs/migen](https://github.com/m-labs/migen)
- Yosys — [yosyshq.net/yosys](https://yosyshq.net/yosys/)
- Yosys GitHub — [github.com/YosysHQ/yosys](https://github.com/YosysHQ/yosys)
- Verilator — [veripool.org/verilator](https://www.veripool.org/verilator/)
- Verilator GitHub — [github.com/verilator/verilator](https://github.com/verilator/verilator)
- Icarus Verilog — [steveicarus.github.io/iverilog](https://steveicarus.github.io/iverilog/)
- GHDL — [ghdl.github.io/ghdl](https://ghdl.github.io/ghdl/)
- nextpnr — [github.com/YosysHQ/nextpnr](https://github.com/YosysHQ/nextpnr)
- Project IceStorm — [clifford.at/icestorm](http://www.clifford.at/icestorm/)
- Project Trellis — [github.com/YosysHQ/prjtrellis](https://github.com/YosysHQ/prjtrellis)
- OpenROAD — [theopenroadproject.org](https://theopenroadproject.org/)
- OpenROAD GitHub — [github.com/The-OpenROAD-Project/OpenROAD](https://github.com/The-OpenROAD-Project/OpenROAD)
- OpenLane — [github.com/The-OpenROAD-Project/OpenLane](https://github.com/The-OpenROAD-Project/OpenLane)
- TinyTapeout — [tinytapeout.com](https://tinytapeout.com/)
- TinyTapeout GitHub — [github.com/TinyTapeout](https://github.com/TinyTapeout)
- Skywater 130nm PDK — [github.com/google/skywater-pdk](https://github.com/google/skywater-pdk)
- Open MPW (Google) — [efabless.com/openmpw](https://efabless.com/open_shuttle_program)
- Caravel — [github.com/efabless/caravel](https://github.com/efabless/caravel)
- Efabless — [efabless.com](https://efabless.com/)
- chipIgnite — [efabless.com/chipignite](https://efabless.com/chipignite)
- GlobalFoundries Open PDK — [github.com/google/gf180mcu-pdk](https://github.com/google/gf180mcu-pdk)
- IHP SG13G2 — [github.com/IHP-GmbH/IHP-Open-PDK](https://github.com/IHP-GmbH/IHP-Open-PDK)
- Chipyard — [chipyard.readthedocs.io](https://chipyard.readthedocs.io/)
- Chipyard GitHub — [github.com/ucb-bar/chipyard](https://github.com/ucb-bar/chipyard)
- Rocket Chip — [github.com/chipsalliance/rocket-chip](https://github.com/chipsalliance/rocket-chip)
- BOOM (Berkeley Out-of-Order Machine) — [github.com/riscv-boom/riscv-boom](https://github.com/riscv-boom/riscv-boom)
- OpenTitan — [opentitan.org](https://opentitan.org/)
- lowRISC — [lowrisc.org](https://lowrisc.org/)
- Ibex — [github.com/lowRISC/ibex](https://github.com/lowRISC/ibex)
- CVA6 (Ariane) — [github.com/openhwgroup/cva6](https://github.com/openhwgroup/cva6)
- VexRiscv — [github.com/SpinalHDL/VexRiscv](https://github.com/SpinalHDL/VexRiscv)
- PicoRV32 — [github.com/YosysHQ/picorv32](https://github.com/YosysHQ/picorv32)
- NEORV32 — [github.com/stnolting/neorv32](https://github.com/stnolting/neorv32)
- XiangShan — [github.com/OpenXiangShan/XiangShan](https://github.com/OpenXiangShan/XiangShan)
- Vitis HLS — [docs.amd.com/r/en-US/ug1399-vitis-hls](https://docs.amd.com/r/en-US/ug1399-vitis-hls)
- Intel HLS — [intel.com/content/www/us/en/software-kit/highlevel-synthesis-compiler](https://www.intel.com/content/www/us/en/software-kit/highlevel-synthesis-compiler.html)
- SymbiYosys — [github.com/YosysHQ/sby](https://github.com/YosysHQ/sby)
- cocotb — [cocotb.org](https://www.cocotb.org/)
- RISC-V International — [riscv.org](https://riscv.org/)
- Samsung Foundry — [samsungfoundry.com](https://semiconductor.samsung.com/foundry/)
- SK hynix — [skhynix.com](https://www.skhynix.com/)
- Renesas — [renesas.com](https://www.renesas.com/)
- Sony Semiconductor — [sony-semicon.com](https://www.sony-semicon.com/)
- Rapidus — [rapidus.inc](https://www.rapidus.inc/)
- Matt Venn (TinyTapeout 창립자) — [mattvenn.net](https://mattvenn.net/)
- Clifford Wolf (Yosys 창립자) — [clifford.at](http://www.clifford.at/)
현재 단락 (1/435)
2026년의 하드웨어 기술 언어와 칩 설계 환경을 한 장의 지도로 그리면 네 개의 큰 대륙이 보인다.