この記事で学べること
- RNM(Real Number Modeling)の基本概念
- アナログとデジタルを跨ぐ混在領域で RNM が必要とされる理由
- wreal / real / nettype など RNM を構成する要素の正しい理解
- AMS シミュレーションとの違いと役割分担
- 実務で RNM が使われる典型的なシーン
- モデル化の際に陥りやすい誤解と注意点
概要(全体像)
RNM(Real Number Modeling)は、アナログ信号を「実数値」としてデジタルシミュレータ上で扱うための抽象化手法です。
従来の SPICE や Verilog-AMS のような連続時間アナログシミュレーションではなく、離散イベント駆動のデジタルシミュレーションでアナログ的な振る舞いを近似的に再現します。
その結果、
- 高速(数百〜数千倍)
- 大規模 SoC でも実行可能
- デジタル検証環境(UVM)と自然に統合
といったメリットが得られます。
なぜ重要なのか(背景・目的)
現代の SoC は、以下のような アナログ+デジタルの混在システムが一般的です。
- ADC / DAC
- PLL / CDR
- センサフロントエンド
- 電源制御回路
- SerDes / PHY
これらのアナログブロックは、デジタルロジックと密接に連携して動作します。しかし、アナログ回路を SPICE で詳細にシミュレーションすると、SoC 全体では現実的な時間で終わりません。
そこで登場するのが RNM です。
RNM の目的
- アナログブロックの機能レベルの振る舞いを高速に再現
- デジタル検証環境(UVM)でアナログ値を扱えるようにする
- SoC 全体の機能検証を現実的な時間で完了させる
RNM は「アナログの本質的な振る舞いだけを抽象化して、デジタル検証に組み込む」ための技術です。
基本概念の整理
Real Number(実数値)とは
定義:離散イベントシミュレーションで扱える実数型の値
例:0.75 V、−0.1 A、1.23 GHz
実務での意味:アナログ信号を「連続時間」ではなく「イベント発生時に更新される実数値」として扱う
wreal(wired-real)
定義:Verilog-AMS で導入された「実数値を運ぶネット型」
例:wreal vin;
実務での意味:アナログ信号をデジタルシミュレータで扱うための最も一般的な RNM 手段
SystemVerilog RNM(nettype + resolution function)
定義:SystemVerilog 2012 以降で導入された、実数ネットの拡張機能
例:
nettype real sum_t with sum_resolve;実務での意味:複数ドライバの統合(加算・最大値など)を柔軟に定義でき、wreal の制約を克服
離散イベント駆動モデル
定義:値が変化したタイミングでのみシミュレーションが進む方式
例:vin が 0.5 → 0.6 に変化した瞬間だけイベント発生
実務での意味:アナログ波形を「連続時間で追わない」ため高速化が可能
アナログモデルとの違い
| 項目 | RNM | Verilog-A / SPICE |
|---|---|---|
| 時間 | 離散 | 連続 |
| 精度 | 機能レベル | 回路レベル |
| 速度 | 非常に高速 | 遅い |
| 目的 | SoC 機能検証 | 回路特性解析 |
RNM は「精度より速度」を優先するモデルです。
実務での具体的な利用シーン
ADC/DAC の機能モデル
- ADC:
vin→digital_code - DAC:
digital_code→vout
→ UVM 環境で容易に扱える
PLL のロック判定モデル
- 周波数誤差
- 位相誤差
- ロック時間
→ 実数値で近似し、デジタルロジックとの連携を検証
電源制御(PMIC)モデル
- 電圧レベル
- 電流制限
- パワーグッド判定
→ SoC の電源シーケンス検証に必須
SerDes / PHY のアナログフロントエンド
- イコライザゲイン
- スライサ閾値
→ デジタル CDR ロジックとの協調検証
センサインタフェース
- 温度、光、圧力などの物理量を実数値で表現
→ デジタル側の補正アルゴリズムを検証
誤解しやすい点・注意点
RNM はアナログ精度を保証しない
- ノイズ、寄生、微分方程式は扱えない
- 回路レベルの解析には不向き
連続時間の振る舞いは再現できない
- フィルタ、微分方程式、連続時間ループは RNM では表現困難
- 必要なら Verilog-A などと併用する
モデルの抽象度が重要
- 抽象化しすぎると機能検証が不十分
- 詳細化しすぎると速度低下
→ 適切なバランスが必要
複数ドライバの扱いに注意
- wreal は単一ドライバが基本
- SystemVerilog nettype でResolution関数を定義する必要がある場合も
関連する専門用語の整理
| 用語 | 定義 | 例 | 実務での意味 |
|---|---|---|---|
| RNM | 実数値でアナログを抽象化する手法 | ADC モデル | SoC 機能検証を高速化 |
| wreal | 実数値を運ぶネット型 | wreal vin; | RNM の基本的な信号表現 |
| nettype | SystemVerilog の実数ネット型 | nettype real sum_t | 複数ドライバの統合が可能 |
| Resolution関数 | 複数ドライバの値を統合する関数 | 加算/最大値 | 電流合成などの表現 |
| 離散イベント | 値変化時のみシミュレーション | vin が変化した瞬間 | 高速化の鍵 |
| Verilog-A | 連続時間アナログ記述言語 | フィルタモデル | 回路特性の抽象化 |
| AMS シミュレーション | アナログ+デジタル混在シミュレーション | PLL 解析 | 精度重視の解析 |
まとめ
- RNM は アナログ信号を実数値としてデジタルシミュレータで扱うための抽象化技術
- SPICE や Verilog-A と異なり、離散イベント駆動で高速に動作
- SoC の 機能検証(特に UVM)と相性が良い
- ADC/DAC、PLL、電源制御、SerDes など多くのアナログブロックで利用
- 精度より速度を優先するため、抽象度の設計が重要
- wreal と SystemVerilog nettype を正しく理解することで、より柔軟な RNM モデルが構築できる


コメント