SystemVerilog

RTL設計

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 との違い

項目VerilogSystemVerilog
reg / wirelogic(統合)
always1種類always_ff / always_comb / always_latch
データ構造弱いstruct / enum / typedef
検証機能ほぼなしclass / randomize / coverage
主な用途RTLRTL + 検証(UVM)
標準IEEE 1364IEEE 1800

6. SystemVerilog を学ぶメリット

  • RTL 設計の品質が上がる
  • 検証(Verification)スキルが身につく
  • UVM を扱えるようになる
  • ASIC/FPGA のどちらでも通用する
  • キャリアの幅が大きく広がる(検証エンジニアは需要が高い)

7. まとめ

SystemVerilog は、Verilog を拡張し、設計と検証を統合した現代の標準 HDLです。

コメント

タイトルとURLをコピーしました