SystemVerilog は、Verilog を大幅に拡張した 設計(Design)+検証(Verification)を統合した HDL で、ASIC/FPGA 開発の事実上の標準言語です。特に検証分野では、SystemVerilog と UVM(Universal Verification Methodology)が世界的に主流となっています。
1. SystemVerilog とは何か
SystemVerilog は、Verilog(IEEE 1364)を拡張し、設計(Design)と検証(Verification)を1つの言語で扱えるようにした HDL です。現在は IEEE 1800 として標準化されています。
● 特徴
- Verilog の完全上位互換
- RTL 設計を強化(logic, always_ff, always_comb)
- 検証機能が強力(class, randomize, constraint)
- UVM の基盤となる言語
- ASIC/FPGA の両方で利用可能
2. SystemVerilog が使われる場面
● RTL 設計(ASIC/FPGA)
- always_ff / always_comb による安全な記述
- interface によるバス接続の簡略化
- enum / struct による可読性向上
- parameter の強化
● 検証(Verification)
SystemVerilog の最大の強みは 検証機能です。
- class ベースのオブジェクト指向
- randomize / constraint によるランダム検証
- mailbox / semaphore による同期
- coverage による網羅性チェック
- UVM による大規模検証環境構築
● SoC の IP 検証
- AXI / AHB / APB
- PCIe / USB
- DDR PHY
などの複雑なプロトコル検証に必須。
3. SystemVerilog の基本構造
● logic 型(reg と wire の統合)
logic [7:0] data;→ Verilog の reg/wire 問題を解消。
● always_ff(順序回路)
always_ff @(posedge clk) begin
q <= d;
end→ 合成可能なフリップフロップ記述を保証。
● always_comb(組み合わせ回路)
always_comb begin
y = a & b;
end→ センシビリティリストの書き忘れを防止。
● enum(FSMが書きやすい)
typedef enum logic [1:0] {
IDLE, READ, WRITE
} state_t;● struct(バスの可読性向上)
typedef struct packed {
logic [7:0] addr;
logic [7:0] data;
logic we;
} bus_t;4. SystemVerilog の強み
● class ベースのオブジェクト指向
class Packet;
rand bit [7:0] addr;
rand bit [7:0] data;
endclass● randomize / constraint(制約ランダム)
pkt.randomize() with { addr < 128; };● coverage(網羅性の測定)
covergroup cg;
coverpoint addr;
endgroup● interface(接続の簡略化)
interface axi_if(input clk);
logic [31:0] addr;
logic [31:0] data;
endinterface● UVM(業界標準の検証フレームワーク)
SystemVerilog の class 機能をベースに構築された検証手法。
5. Verilog との違い
| 項目 | Verilog | SystemVerilog |
|---|---|---|
| 型 | reg / wire | logic(統合) |
| always | 1種類 | always_ff / always_comb / always_latch |
| データ構造 | 弱い | struct / enum / typedef |
| 検証機能 | ほぼなし | class / randomize / coverage |
| 主な用途 | RTL | RTL + 検証(UVM) |
| 標準 | IEEE 1364 | IEEE 1800 |
6. SystemVerilog を学ぶメリット
- RTL 設計の品質が上がる
- 検証(Verification)スキルが身につく
- UVM を扱えるようになる
- ASIC/FPGA のどちらでも通用する
- キャリアの幅が大きく広がる(検証エンジニアは需要が高い)
7. まとめ
SystemVerilog は、Verilog を拡張し、設計と検証を統合した現代の標準 HDLです。

コメント