Skip to content

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

日本語
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

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で書くと、`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`は合成器に「これはフリップフロップだ」と明確に認識させる。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)に変換される。

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をバックエンドに使う

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_floorplan`、`place_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)は**180nm**と**130nm 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

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

작성 글자: 0원문 글자: 22,737작성 단락: 0/435