Verilog-A は、アナログ回路の動作を数式ベースで記述するためのハードウェア記述言語です。
SPICE モデルより抽象度が高く、アナログ回路の振る舞いを簡潔に表現できるため、アナログ設計・ミックスドシグナル検証・システムレベルモデリングで広く使われています。
Verilog-A とは何か
Verilog-A は、アナログ回路の振る舞いを 連続時間の数式で記述するための HDL です。
特徴
- SPICE より抽象度が高い
- アナログ動作を微分方程式で記述できる
- モデルが軽く、シミュレーションが高速
- Verilog-AMS のアナログ部分として利用される
- 回路図に依存しない“振る舞いモデル”を作れる
Verilog-A が使われる場面
アナログ回路の振る舞いモデル
- オペアンプ
- ADC/DAC のアナログ部分
- PLL の VCO
- センサ回路
などの“理想化モデル”を作るのに最適。
ミックスドシグナル検証
デジタルとアナログが混在する SoC では、SPICE だけでは遅すぎるため、Verilog-A モデルが必須。
システムレベルの性能評価
- ノイズ
- ゲイン
- 帯域
- 遅延
などを抽象化して高速に評価できる。
回路 IP のブラックボックス化
企業間で IP を共有する際、内部回路を隠しつつ動作だけ提供できる。
Verilog-A の基本構造
モジュール定義
`include "discipline.vams"
module resistor(p, n);
inout p, n;
electrical p, n;
parameter real R = 1k;
analog begin
V(p, n) <+ R * I(p, n);
end
endmoduleアナログブロック
analog begin ... end の中に連続時間の式を書く。
端子の discipline
electrical(電圧・電流)thermal(温度)mechanical(力学)
など、物理量を扱える。
主要な演算子
V(a, b):電圧I(a, b):電流<+:寄与(contribution)ddt():微分idt():積分laplace_nd():ラプラス変換
よく使う Verilog-A モデル例
抵抗
V(p, n) <+ R * I(p, n);コンデンサ
I(p, n) <+ C * ddt(V(p, n));電圧制御電流源(VCCS)
I(out, gnd) <+ gm * V(in, gnd);オペアンプの簡易モデル
V(out) <+ A * (V(inp) - V(inn));ノイズモデル
I(p, n) <+ white_noise(4 * `P_K * T / R, "thermal");Verilog-A と SPICE の違い
| 項目 | Verilog-A | SPICE |
|---|---|---|
| 抽象度 | 高い | 低い |
| 記述 | 数式ベース | 回路図ベース |
| シミュレーション速度 | 速い | 遅い |
| モデルの自由度 | 高い | 低い |
| 主な用途 | モデル、AMS検証 | デバイスレベル解析 |
Verilog-A は SPICE の代わりではなく、補完的な存在。
Verilog-A を使うメリット
アナログ回路の本質を理解できる
回路の動作を数式で表現するため、理解が深まる。
シミュレーションが圧倒的に速い
SPICE の 10〜1000 倍速いこともある。
AMS 検証で必須
デジタルとアナログの協調検証に欠かせない。
IP の抽象化に使える
内部回路を隠しつつ動作だけ提供できる。
まとめ
Verilog-A は、アナログ回路の振る舞いを高速にシミュレーションするための強力な言語。アナログ・ミックスドシグナル設計の“必須スキル”と言える。
ソース
Download Verilog-AMS (Analog/Mixed-Signal) - Accellera Systems Initiative

コメント