• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. カスタムIC/ミックスシグナル
  3. Start Your Engines: ミックスシグナルモデリングでelectrical信号をlogic値に変…
Custom IC Japan
Custom IC Japan

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
AMS
AMS Designer
Verilog-AMS
Mixed-Signal
AMS simulation
japanese blog

Start Your Engines: ミックスシグナルモデリングでelectrical信号をlogic値に変換するベストプラクティス

12 Jun 2023 • 2 minute read

 Cadence® Spectre® AMS Designer は、高いパフォーマンスのミックスシグナル・シミュレーション・システムです。複数エンジンの使用や、さまざまなプラットフォームから実行できる機能により、ミックスシグナル・デザイン検証を「活性化」し、市場競争でチェッカーフラッグを受けることができます。Start Your Enginesブログ・シリーズは、シミュレーションのパフォーマンスをチューンアップし、生産性向上に役立つヒントと洞察を提供します。

 ボンジュール!

この記事では Accellera で定義された Verilog-AMS 標準言語を用いて、electrical 信号から logic 値に変換する方法を紹介します。ここでは 3 つのビヘイビアモデルを例示し、その比較を行います。その中から皆さんのアプリケーションに合うものを選んで下さい。

始めに、対象モデルのシンボルを作成します。

  

このモデル名は E2L_conv で、以下の端子を持ちます:

  • 1 つのelectrical入力、端子名 e
  • 1 つのlogic出力、端子名 l

このモデルは下記のパラメタを持ちます:

パラメタ名 説明
vdd=1.0 電源電圧
vthi=vdd/1.5 変換の上限しきい値
vtlo=vthi/2 変換の下限しきい値
vtol=vdd/100 電圧トレランス
tr=10n 立ち上がり時間
ttol=tr/3 しきい値を跨いだ時の時間トレランス
analogMaxStep=10p アナログソルバの maxstep

vthi から vtlo の間隔は、ヒステリシス特性の幅を示しています。

E2Lconv モジュールはアナログのコンパレータのような物ですが、electrical 出力の代わりに logic 値の出力を持つ所が異なります。

各モデルには disciplines.vams ファイルがインクルードされ、これにより Verilog-AMS の discipline 定義 (electrical) と電圧アクセス関数の定義を提供しています。

モデル 1: アナログソルバのタイムステップ毎にE2L変換処理を行うモデル

このモデルでは、アナログソルバのアナログステップ毎に electrical - logic 変換を行います。この analog ブロック内部では、aevent 変数によりクロック生成を行っています。aevent 変数はまず 1 に初期化され、その後のアナログステップ毎に -1 が掛けられます。つまり、この変数 aevent は +1 と -1 の間でトグルする事になります。デジタルソルバでは、always ブロック内にあるクロスイベントの検出機能で、変数 aevent が 0 をまたぐ事を検出します。これは具体的には always @( cross( aevent, 0, ttol, vtol )) で記述されます。これによりアナログとデジタルの双方のソルバを同期させるイベントを生成します。更に、analog コンテキスト内にある $bound_step 関数により、アナログソルバによるシミュレーション中での隣接時間ポイントの最大時間間隔を定義します。ここで適切な時間ステップを定義する事で、モデルに必要な精度でアナログ入力をトラッキングする事が可能です。但し、この $bound_step に小さい値を設定した場合、アナログとデジタルソルバ間の同期処理を増加させ、過渡シミュレーションの速度低下を及ぼす事があります。

これでlogic出力値を持つデジタルドライバが完成です。

  • 1’b1: electrical の入力値が上限しきい値 (vthi) を超えた事を示す
  • 1’b0: 入力値が下限しきい値 (vtlo) と等しいか下回っている事を示す

assign 文による lout からの出力値は、デジタルソルバ上で動く logic ドライバです。

  

テストベンチでは electrical の電源を置き、対象となる electrical 入力に対して三角波を出力します。SimVision MS を使う事で、自動生成されたスケマティックが表示可能です。下記図のように、そのスケマティック上に値を表示する事も出来ます。Verilog-AMS で記述された E2L_conv モジュールはミックスシグナルのモデルであり、インスタンスは青色で表示されます。

  

下記の図では結果波形を表示しています。

  • 赤色の波形は electrical 入力で三角波の電圧です。しきい値 vthi 及び vtlo に注目して下さい。
  • 緑色の波形は変換された logic 値の出力です。 値 V(e) がしきい値 vthi を超えた時に 1’b1 、 同様にして値 V(e) が vtlo を下回った時に 1’b0 に変化します。

Model 2: アナログ入力の上限/下限しきい値で発生するイベントでE2L変換処理を行うモデル

このモデルは下記の動作を行います:

  • electrical 入力の立ち上がりがしきい値 vthi を超えるか、立下りがしきい値 vtlo を下回る場合、アナログとデジタルの同期を行う
  • 同期時に electrical - logic 変換を行う

ここでは2つの always ブロックを使用してこの処理を行います。最初の always ブロックは、V(e) の立ち上がりでしきい値 vthi を超えた時にトリガされます。2つ目の always ブロックは、V(e) の立下りでしきい値 vtlo を下回った時にトリガされます。

  

結果波形を下記の図に示します。

  • 赤色の波形は eletrical 入力で三角波の電圧です。しきい値 vthi 及び vtlo に注目して下さい。
  • 緑色の波形は変換された logic 値の出力です。 値 V(e) がしきい値 vthi を超えた時に 1’b1 、 同様にして値 V(e) が vtlo を下回った時に 1’b0 に変化します。

  

Model 3: 動的に変化する電源電圧に応じたアナログ入力の上限/下限しきい値で発生するイベントでE2L変換処理を行うモデル

このモデルではモデル 2 の記述を再利用しますが、上限と下限のしきい値はテストベンチの電源電圧 v(vdd) に応じて動的に計算しています。この処理には新しく導入する文字列パラメタ vddnode を使います。このパラメタはテストベンチに置かれた電源のノードをモジュール外参照させています。このモジュールの analog ブロックでは Verilog-AMS のシステム関数 $analog_node_alias を利用し、モジュール内部ノードの vdd とモジュール外ノードの tb.vdd を参照した文字列パラメタとを結びつけています。

この電圧 V(vdd) が変化した場合、上限と下限のしきい値が更新されます。

  

結果波形を以下に示します。

  • 黄色の波形は電源電圧 V(vdd) を表し、時刻 200ns で 1 ボルトから 2 ボルトに変化しています。
  • 赤色の波形は electrical 入力で三角波の電圧です。しきい値 vthi 及び vtlo が 2 ボルトに変化している事が分かると思います。
  • 緑色の波形は変換された logic 値の波形です。

  

このテストベンチのシミュレーション結果から、時間ウィンドウ 0s から 200ns の間で v(vdd)=1 ボルトに応じた E2L_conv の変換が行われ、時間ウィンドウ 200ns から 400ns の間は v(vdd)=2 ボルトでの変換が行われている事が分かります。しきい値 vthi 及び vtlo はテストベンチの電源電圧値 V(vdd) に従い変化しています。

間違いやすい点について

  • モデル 1, 2, 3 について: cross や above のトレランス定義忘れ(時間トレランス等)。高速化の為には適切な設定が必要です。
  • モデル 1 について: electrical 信号のサンプリングでの $bound_step 設定値の過大もしくは過少設定。

モデルの比較

  • モデル 1: このモデルでは E2L 変換精度を保つ為、アナログソルバ上でのブレークポイントが非常に多くなり、AMS シミュレーションが非常に遅くなる可能性があります。ブレークポイントはアプリケーションに応じて最適化すべきです。
  • モデル 2: 良い書き方ですが、事前に電源電圧 vdd を知っている必要があります。またこの電源電圧 vdd は、シミュレーション前に決められた内部パラメタ vthi 及び vtlo の値に合わせて一定である必要があります。
  • モデル 3: しきい値 vthi 及び vtlo は電源電圧に応じて変化します。また electrical から logic への変換トリガは必要な場合にのみ行われます。
  • 3つ全てのモデルは無限のアナログ入力抵抗を持ちます。

結論

  • ミックスシグナル技術者としては、基本的にモデル 3 が一番良いモデルです。このモデルはテストベンチ上の電源電圧や入力信号の周波数に賢く対応します。アナログとデジタルの同期も必要な時だけ行われます。
  • ここで提示した electrical - logic 変換の動作モデルは Xcelium 内部で使用される Cadence Verilog-AMS 及び SystemVerilog-AMS コンパイラのコネクトモジュールとしても利用可能です。利用するには、モジュール記述を connectmodule に置き換え、コネクトルールを設定した .vams ファイルを作成します。
  • SimVision MS はミックスシグナルモデルのインタラクティブデバッグに非常に有用です。ソースコードデバッガ、デザイン階層表示、波形表示、スケマティックトレーサ機能を持っています。

この記事を通して、ご自身でこの機能を試す気持ちになって頂けると嬉しいです!より詳細な情報が必要な場合は Cadence のサポートチームにご連絡下さい。

関連リソース

Product Manual Spectre AMS Designer and Xcelium Simulator Mixed-Signal User Guide
Troubleshooting  Information

Spectre AMS Designer (英語版/日本語版)

Spectre AMS Designer Product Page

Blogs

Start Your Engines: An Innovative and Efficient Approach to Debug Interface Elements with SimVision MS (英語版/日本語版)

Start Your Engines: Win Le Mans with the SimVision Mixed-Signal Debug Option (英語版/日本語版)

Start Your Engines: Mixed-Signal Modeling Methods for Converting an Electrical Signal to a Real Number (英語版/日本語版)

Start Your Engines: Mixed-Signal Modeling Best Practices for Converting a Real Number Signal to Electrical (英語版/日本語版)

日本語プロダクトページ AMS Designer日本語資料

ケイデンス社の回路設計製品およびサービスの詳細については、www.cadence.com をご覧ください。

Start Your Enginesについて

Start Your Enginesシリーズでは、AMS Designerの新機能の紹介、既存機能の強化のためのヒントなど、さまざまなトピックについて、アナログ/ミックスシグナル分野の専門家がブログ記事をお届けしています。

カスタムIC/ミックスシグナル Blogs 無料定期購読のご案内

新規ブログが公開された際に通知を受け取る方法を、こちらにてご案内しています。是非ご登録ください。

- Andre Baguenier
- Translator: Ryo Sato