Skip to content
Published on

하드웨어 HDL & 칩 디자인 2026 — SystemVerilog / Chisel / SpinalHDL / Amaranth / Yosys / Verilator / TinyTapeout / OpenROAD 심층 가이드

Authors

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)로 변환된다.

import chisel3._
import chisel3.util._

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 MachineStateMachine 클래스가 내장
  • 시뮬레이션SpinalSim이 내장, Verilator/Icarus를 backend로 활용
import spinal.core._
import spinal.lib._

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)는 180nm130nm 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