Verilog-A

アナログ設計

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-ASPICE
抽象度高い低い
記述数式ベース回路図ベース
シミュレーション速度速い遅い
モデルの自由度高い低い
主な用途モデル、AMS検証デバイスレベル解析

Verilog-A は SPICE の代わりではなく、補完的な存在

Verilog-A を使うメリット

アナログ回路の本質を理解できる

回路の動作を数式で表現するため、理解が深まる。

シミュレーションが圧倒的に速い

SPICE の 10〜1000 倍速いこともある。

AMS 検証で必須

デジタルとアナログの協調検証に欠かせない。

IP の抽象化に使える

内部回路を隠しつつ動作だけ提供できる。

まとめ

Verilog-A は、アナログ回路の振る舞いを高速にシミュレーションするための強力な言語。アナログ・ミックスドシグナル設計の“必須スキル”と言える。

ソース

Download Verilog-AMS (Analog/Mixed-Signal) - Accellera Systems Initiative

コメント

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