Skip to content
Published on

ハードウェアHDLとチップ設計 2026 — SystemVerilog / Chisel / SpinalHDL / Amaranth / Yosys / Verilator / TinyTapeout / OpenROAD 深掘りガイド

Authors

1章 · 2026年のHDLマップ — クラシック / Scala / Python / オープンEDAの四大陸

2026年のハードウェア記述言語とチップ設計の風景を一枚の地図にすると、4つの大きな大陸が見える。

  • クラシックHDL — Verilog(1984年、Phil Moorby)、SystemVerilog(2005年、IEEE 1800)、VHDL(1987年、IEEE 1076)。業界標準であり、すべてのEDAフローの共通語。
  • Scala系HDL — Chisel(UC Berkeley、2012年)、SpinalHDL(2015年、関数型Scala代替)、Bluespec SystemVerilog。パラメータ化・再利用性・生成性において一段上。
  • Python系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。

この4つの大陸は互いに通信する。ChiselはVerilogへelaborateされ、Amaranthも同様だ。YosysはSystemVerilogの合成可能サブセットを読み、OpenROADはYosysのネットリストを受け取って配置配線を行う。つまり言語は多岐に分かれていてもバックエンドはますます収束している

本記事は各大陸を一章ずつ追い、最後に韓国と日本の半導体風景、そして「誰がどの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)・アサーション・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で書くと、logicalways_ffalways_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は合成器に「これはフリップフロップだ」と明確に認識させる。2026年に新規に書かれるRTLはほぼすべてSystemVerilogだ。

SystemVerilogの真の強み — UVMとアサーション

SystemVerilogの本当の強さは検証側にある。UVM(Universal Verification Methodology、2011年)はOOPベースのテストベンチフレームワークで、業界検証の標準だ。SystemVerilog Assertion(SVA)は時間的プロパティを第一級として扱う。

// シンプルなSVA — req後4サイクル以内に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を業界標準にした主要な理由の一つだ。


3章 · VHDL — ヨーロッパと軍事でまだ生きている

VHDLは1987年に米国国防総省のVHSICプログラムから生まれた言語で、IEEE 1076として標準化された。Adaの影響を受けた強型・冗長な言語だ。

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は冗長だがその分明示的だ。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個のカウンタを生成し、偶数インデックスのみ特殊扱い
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コアはすべてがチゼルで書かれている。

  • Rocket — in-order、5段scalar RISC-V(Linux起動可能)
  • BOOM — Berkeley Out-of-Order Machine、4-way superscalar
  • Chipyard — Rocket / BOOM / 周辺IPを組み合わせたSoCフレームワーク

2026年のRISC-V学術界と産業界でChiselは頻繁に目にするRTL記述言語の一つだ。SiFive(Berkeleyのスピンアウト)も自社IPをChiselで書いている。


5章 · SpinalHDL — Scala陣営のもう一つの強力な選択肢

ChiselがBerkeley・SiFive中心だとすれば、SpinalHDLはCharles Paponが2015年にフランスで始めたScalaベースHDLだ。哲学は似ているが、以下の違いがある。

  • コンパイルモデル — ChiselはFIRRTLを経由するが、SpinalHDLは直接Verilog/VHDLを生成
  • Bundle / IOの扱い — SpinalHDLはmaster/slaveインターフェースの概念が第一級
  • ステートマシンStateMachineクラスが組み込み
  • シミュレーションSpinalSimが組み込みで、Verilator/Icarusをバックエンドに使う
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より文法が少し自然だという評価が多く、ヨーロッパと日本の趣味家コミュニティで強い。


6章 · Bluespec SystemVerilog — Atomic Actionでハードを記述する

BluespecはMITのArvind教授が1990年代から研究したguarded atomic actionベースの言語だ。2000年代初頭にBluespec Inc.が商用化し、2020年にオープンソース化(BSC、Bluespec Compiler)された。

中核となるアイデアは「ハードウェアをトランザクションとしてモデル化する」ことだ。ruleはatomicであり、スケジューラが衝突するルールを自動的に直列化する。

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だ — 条件が偽ならルールが発火しない。このような自動スケジューリングがBluespecの魅力であり、学習曲線の出所でもある。

実際の使用先はMITの研究、一部IBMのASIC、RISC-V Piccolo/Fluteコアだ。産業界の主流ではないが、学術界と検証コミュニティでは今も活発だ。


7章 · Amaranth(旧nMigen) / MyHDL / Migen — Python陣営

Migen → nMigen → Amaranthの系譜

  • Migen(2011年、Sébastien Bourdeauducq) — Pythonによる同期回路記述。FPGA親和的、MiSoC SoCビルダー同梱。
  • nMigen(2018年、Whitequark / M-Labs) — Migenの再設計版。よりクリーンなモデルとシミュレータ。
  • Amaranth(2022年、nMigenリブランド) — 現在活発に開発中。0.5+系列が安定。
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を書く利点は明確だ — 標準ライブラリ、パッケージ管理、テストフレームワークがそのまま使える。欠点は合成バックエンドが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は冗長だがハードウェアレベルの意図が非常に明確だ。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ネットリスト)
  2. フロアプラン — OpenROADのinit_floorplanplace_pins
  3. 配置(Placement) — RePlAce(UCSD)
  4. CTS(Clock Tree Synthesis) — TritonCTS
  5. 配線(Routing) — TritonRoute / FastRoute
  6. 静的タイミング解析 — OpenSTA(Parallax)
  7. DRC / LVS — KLayout + Magic + Netgen

オープンPDK(Skywater 130nm、GlobalFoundries 180nm)と組み合わせるとRTL→GDSII の全フローがオープンソースで閉じる。2026年に学生がノートパソコンでSoCをテープアウト直前まで持っていけるようになった理由だ。

OpenLane — OpenROADの統合ラッパー

OpenLaneはEfablessが作ったOpenROADベースのRTL2GDSフローだ。Tcl/Pythonスクリプトでステージをまとめてくれる。

# OpenLane実行例(概念)
make mount
./flow.tcl -design my_chip

config.tclまたはconfig.jsonにPDK、デザインファイル、クロック定義を書けば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モデル
  • abc統合 — BerkeleyのABCがlogic optimizationを担う
# シンプルなYosys合成例
yosys -p "
  read_verilog counter.v
  synth -top counter
  write_json counter.json
"

このコマンド一行でVerilog → gate-level JSONネットリストが生成される。このJSONはnextpnrが配置配線にそのまま使う。

Yosysの限界と補完

産業EDAと比較してYosysが弱い領域は以下。

  • 非常に大規模なデザイン(数十万セル以上)の合成品質
  • High-effort logic optimization
  • Power-aware synthesis(UPF/CPF)

この限界はYosys + ABC + デザイナのヒントである程度埋まる。それでも学生・趣味家・小規模ASICフローでは十分にproduction-readyだ。


10章 · Verilator / Icarus Verilog / GHDL — オープンシミュレーション三銃士

Verilator

Verilator(Wilson Snyder、Veripool)はcycle-accurateなVerilog/SystemVerilogシミュレータだ。イベント駆動ではなくサイクルベース — 毎クロックで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++のテストベンチだ。

#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)の事実上の標準シミュレータだ。数十MHzのcycleシミュレーション速度を出す — 産業用商用シミュレータに匹敵する。

Icarus Verilog

Icarus Verilog(Steve Williams、2000年〜)はより伝統的なイベント駆動シミュレータだ。Verilatorより遅いが、Verilogの全シミュレーションセマンティクス(initialブロック、force/releaseなど)をより完全にサポートする。小規模なテストベンチに適している。

iverilog -o counter_sim counter.v tb_counter.v
vvp counter_sim

GHDL

GHDL(Tristan Gingold)はVHDL用シミュレータだ。LLVMまたはGCCバックエンドでコンパイルされる。

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の配置配線にオープンが出した答え

nextpnr(YosysHQ)はFPGAの配置配線ツールだ。Project IceStorm(Clifford Wolf)、Project Trellis、Project Apiculaといったリバースエンジニアリングされたbitstream documentationの上で動作する。

サポートするFPGAファミリは以下。

  • Lattice iCE40 — IceStormベース、完全オープン
  • Lattice ECP5 — Trellisベース、完全オープン
  • 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 — オープンツールチェーンがベンダツールチェーンと同等かそれ以上
  • Xilinx 7-Series — 実験的だが可能。産業ではVivadoが標準
  • Versal / Stratix 10 / Agilex — 産業ツール専用、オープンフローなし

オープンフローが追いつく速度は速いが、高度なFPGAのDSPブロック・高速SerDes・HBMメモリコントローラはベンダIPに縛られている。


12章 · TinyTapeout — Matt Vennが作った低コストシリコンへの道

TinyTapeoutは英国のMatt Vennが2022年に始めたプロジェクトだ。コアアイデアはシンプルだ — 複数人の小さなデザインを一つのreticleに集めて一度にtape-outすれば、一人当たりのコストが100〜300ドルまで下がる。

各デザインは非常に小さい — 通常1タイル=約100×100マイクロンで、100〜500標準セル程度。カウンタ、小さなステートマシン、点滅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にピンマッピング、デザイン名などを設定
# GitHub ActionがOpenLaneでGDSIIまで作成

GitHub ActionがOpenLaneを回してGDSIIを作り、Mattのチームがそれをreticleに集めてEfabless経由でSkywaterまたはIHPに送る。数ヶ月後、実際のチップとPCBが郵便で届く。学生や趣味家にとってこれは単なる学習ではなく本物のシリコン体験だ。


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マクロ(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を使った。

この3つのPDK(Skywater 130nm、GF 180nm/130nm、IHP SG13G2)が2026年のオープンチップ設計の土台だ。


14章 · Caravel — Efablessが作ったオープンチップハーネス

Caravel(Efabless)はユーザのデザインを包む標準SoCハーネスだ。ユーザは約3000×3700マイクロンのuser_project_wrapper領域を埋めればよい — その周囲にはCaravelが提供するmanagement SoC(PicoRV32 CPUベース)、I/O、SPI、JTAGなどがすでに入っている。

+-----------------------------------+
|  Caravel harness (管理SoC)         |
|  +-----------------------------+  |
|  |                             |  |
|  |  user_project_wrapper       |  |
|  |  (デザイナが埋める)          |  |
|  |                             |  |
|  +-----------------------------+  |
|  PicoRV32, SPI, GPIO, ...           |
+-----------------------------------+

Caravelは次の2つの大きな流れで使われる。

  • OpenMPW — Googleが支援したMulti-Project Waferシャトル。Skywaterで6世代まで進行(2020年〜2023年)
  • chipIgnite — Efablessの商用シャトルサービス。定期的なtape-out、約1万ドル

OpenMPWは終わったが、Caravel自体は生きている。TinyTapeoutがより小さな単位で、Caravel / chipIgniteが一段大きな単位(reticle全体の1枠)で動作する


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段scalar
  • BOOM — out-of-order superscalar(4〜10 wide)
  • CVA6(Ariane) — PULPグループの6段in-order
  • Sodor — 教育用シンプルコア
  • NVDLA — NVIDIA Deep Learning Accelerator統合
  • Gemmini — Berkeleyのsystolic-array DNNアクセラレータ
// Chipyardのconfig例 — Rocket + BOOM + アクセラレータ
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段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段in-order RISC-Vコアで、Linuxを起動できる。2020年にCVA6としてOpenHW Groupに移管された。SystemVerilogで書かれ、産業検証を通過したverified coreだ。

BOOM(Berkeley Out-of-Order Machine)

BOOMはChris Celioが博士課程で作ったout-of-order RISC-Vコアだ。Chiselで書かれ、x86 OoOコア(Skylakeなど)の核となるアイデアをそのまま実装する — register renaming、reorder buffer、issue queue、ALU/FPU pipeline。

2026年のRISC-V OoO陣営の二大柱は**BOOM(Berkeley)XiangShan(中国ICT、香山)**だ。


16章 · HLS — Vitis HLS / Intel oneAPI HLS / MaxCompiler

High-Level SynthesisはC/C++またはSystemCを自動的にRTLに変換するツールだ。MLアクセラレータや画像処理パイプラインのような高度に並列化されたデータフロー回路に強い。

Vitis HLS(AMD/Xilinx)

Vitis HLSはAMD XilinxのHLSツールだ。C++で関数を書けばVerilogモジュールが出てくる。

// Vitis HLS例 — 8-tap FIRフィルタ
#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が合成器に「このループを展開して並列回路にしろ」と指示する。

Intel oneAPI HLS

Intel陣営(現在Alteraとして再分社)はoneAPIベースのHLSを提供する。SYCL/DPC++ベース。

MaxCompiler(Maxeler / Groq)

MaxCompilerはデータフロー計算専用のHLSだ。元々Maxelerが作り、2022年にGroqに買収された。MaxJ(JavaベースDSL)でデータフローグラフを記述する。金融・科学計算用FPGAアクセラレータに使われた。

HLSは直接RTLを書くよりも速いが、最適なPPA(Performance/Power/Area)は一般的にRTLが優勢だ。MLやDSPのようなデータフローに限ってはHLSが産業比重をますます増やしている。


17章 · 韓国の半導体 — サムスン / SKハイニックス / LG / KAIST

韓国は半導体強国だがHDLの表面では保守的だ。産業フローはSystemVerilog + Synopsys/Cadence + 自社検証インフラが標準だ。

サムスン電子ファウンドリ / メモリ

  • ファウンドリ(Foundry Business) — 4nm GAA、3nm GAA、2nm開発中。顧客RTLを受け取る立場のためHDLはSystemVerilogまたはVerilog中心
  • メモリ(Memory Business) — DRAMとNAND。メモリコントローラとPHYは非常に精巧なSystemVerilog。UVMテストベンチが業界標準
  • 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を開発する。自動車グレード認証(AEC-Q100、ISO 26262)が核心のためHDLはSystemVerilog + formal verification中心だ。

KAISTと学界

KAIST電気電子工学科は学部/大学院の授業でRISC-Vコアを扱う。ChipyardとSpinalHDLを一緒に教える授業もある。ソウル大・POSTECH・UNISTもRISC-V SoC設計授業を運営している。

韓国の学生にとってTinyTapeout参加はますます一般的なことになっている — 学部キャップストーンプロジェクトとして小さなチップ一片を実際にシリコンに作る経験をする。


18章 · 日本の半導体 — ソニー / NEC / ルネサス / 東芝 / ラピダス2nm

日本の半導体は1980年代の頂点から退いたが、イメージセンサー・自動車・MCU・メモリでは今も強い。そして2022年に始まったラピダスは日本半導体復活プロジェクトの中心だ。

ソニーセミコンダクタソリューションズ

ソニーはCMOSイメージセンサーで世界1位だ(市場シェア約50%)。iPhoneとAndroidフラッグシップのメインカメラセンサーのほとんどがソニーだ。CISチップのRTLは自社SystemVerilog + UVMフローだ。

NEC / ルネサス / 東芝

  • NEC — 半導体自体はほぼ整理されたが、NECエレクトロニクス→ルネサスエレクトロニクスに統合された
  • ルネサス — 自動車MCUとARMベースSoC。R-Car(自動車SoC)シリーズが核心
  • 東芝(キオクシア、NAND) — NANDフラッシュメモリ(キオクシアに分社)
  • ROHM、ロームセミコンダクタ — アナログ/電源IC

これらのHDLフローもSystemVerilog + UVMが標準だ。日本のreliability文化は検証に非常に多く投資する — formal verification、UVM coverage、post-silicon validationまで。

ラピダス — 2nm GAAへの挑戦

ラピダスは2022年8月に日本政府主導で作られた先端ファウンドリだ。トヨタ、ソニー、NTT、NEC、ソフトバンク、デンソー、キオクシア、三菱UFJなどが出資。IBMと協力し2nm GAA(Gate-All-Around)工程を開発中。北海道千歳にfabを建設した。

2025年に2nm試作、2026〜2027年に本格量産が目標。成功すればTSMC・サムスンと並んで世界3大先端ファウンドリの一つになる。ただし実際の量産までにはまだいくつか変数がある。日本のEUVインフラ、人材、顧客確保など。

日本の学生/エンジニアはルネサス、ソニー、ラピダスのインターンシップや、凸版印刷(Toppan Photomask)、東京エレクトロン、ディスコ、レーザーテックといった装置/フォトマスク会社で半導体キャリアを始める。


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)を1つ丸ごと理解する
  4. TinyTapeoutに小さなデザインを一度送ってみる — 100〜300ドルで実シリコン体験

検証(Verification)の専門家

  • SystemVerilog + UVM — 業界標準の検証言語
  • SVA(Assertion) — Formal verificationの入口
  • cocotb(Python) — Verilator/Icarusと一緒に使うPythonテストベンチフレームワーク。人気上昇中
  • SymbiYosys — Yosys上のオープンformal verification

20章 · 参考 / References