• 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: ミックスシグナル検証でのコネクトモジュールの作成と挿入
Custom IC Japan
Custom IC Japan

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
AMS
AMS Designer
ミックスシグナル検証
AMS検証
Mixed-Signal
ミックスシグナル
AMS simulation
japanese blog
mixed-signal design
ミックスシグナルデザイン
ミックスシグナル設計
AMS Verification
mixed-signal verification

Start Your Engines: ミックスシグナル検証でのコネクトモジュールの作成と挿入

1 Jul 2024 • 1 minute read

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

ボンジュール!

これまでの記事で、Spectre AMS DesignerとAccelleraで定義されたVerilog-AMS標準言語を使う事でコネクトモジュールの作成と挿入が簡単に実現出来る事を説明してきました。今回の記事ではそこでの動作記述を再利用します。

Verilog-AMS ディシプリン

Verilog-AMS HDLはディシプリンに基づいてネットを定義出来ます。これはミックスシグナルシミュレーションのキーコンセプトの1つです。

  • Verilog-AMSでは保存系ディシプリンを宣言出来ます。ここではエレクトリカル・ディシプリンが広く使われ、このディシプリンにより、電気的特性に基づいた信号の性質を定義しています。電気的保存系ディシプリンでは、端子に対する電圧及び電流へのアクセスが提供され、またそれらの値はアナログソルバ内部で計算されます。エレクトリカル・ディシプリンはファイル disciplines.vams の中に定義されています。
  • Verilog-AMSでは離散ディシプリンもあります。これらはロジック・イベント・シミュレータで計算されます。

logic1ディシプリンをどう作る?

図 1: logic1 ディスクリート・ディシプリンのソースコード

複数の異なるディシプリンが同一ノードに接続されている場合、シミュレータのエラボレーション時にそのノードが検出され、ノードは“ミックスシグナル”ノードになります。もしシミュレータがそのディシプリン不整合に対するユーザ定義のコネクトルールを持っている場合、そこに対応するコネクトモジュールを挿入します。もし対応するものが無い場合、エラボレーションエラーになります。

コネクトモジュールとは?

コネクトモジュールは動作記述モデルであり、0/1の論理信号をアナログもしくは同等のエレクトリカル・ディシプリンに変換します。例えるならこれはレベルシフタのようなもので、ここでは2つのディシプリン間の変換を行い、2つのドメイン間を橋渡します。

コネクトモジュールには2つの機能があります:

  • デジタル(ロジック)とアナログドメイン間の変換
  • ロジック及びアナログ情報に応じた、デジタルとアナログの信号制御

アナログのミックスシグナルシミュレーションでは、設計者はロジック端子とエレクトリカル端子を接続する必要があります。Verilog-AMSに対応するシミュレータではこれを簡単に行えます。AMSシミュレータがエラボレーション処理に入ると、複数の異なるディシプリンが同じノードに接続されている箇所を見つけ出し、Verilog-AMSのコネクトルールで定義されたコネクトモジュールを自動的に挿入して行きます。この処理はコネクトルールに変換が定義されている場合にのみ実行されます。

logic-to-electrical (L2E) コネクトモジュールを作るには?

logic-to-electrical変換動作モデルの詳細は、過去のブログを参照して下さい。動作モデル L2Econv の記述をコピーし、moduleの文字列を connectmodule と置き換えます。作業はこれだけです。下記の図は L2E コネクトモジュールです。コメント行で動作を説明しています。

  

図 2: L2Econv コネクトモジュールのソースコード

electrical-to-logic コネクトモジュールを作るには?

Electrical-to-logic変換動作モデルの詳細は過去のブログを参照して下さい。動作モデル E2Lconv の記述をコピーし、moduleの文字列を connectmodule と置き換えます。下記の図は E2L コネクトモジュールです。コメント行で動作を説明しています。

  

図 3: E2Lconv コネクトモジュールのソースコード

ディシプリン不整合を持つ2つのポートがある場合に、AMSシミュレータに自動的にL2Econv/E2Lconvを挿入させるには?

Verilog-AMS標準規格にはコネクトルールが用意されており、そのルールによって、例えばロジックの入力端子がエレクトリカルの出力端子に接続されている箇所に、適切にコネクトモジュールを挿入する事が可能です。

逆にエレクトリカルの入力端子にロジックの出力端子が接続されている箇所に対するルールを定義する事も出来ます。以下はコネクトルール中にコネクトモジュールの電圧を定義し、 L2Econv へ接続する記述です。

  

図4: コネクトルールのソースコード

コネクトルール記述には次の3つのVerilog-AMSキーワードが使われています: connectrules, connect, endconnectrules

このコネクトルール amsSignalCR では2つのモジュール L2Econv 及び E2Lconv が定義され、それらは logic1 と electrical ディシプリンを持つモジュールポートの接続箇所に自動挿入されます。

CMの自動挿入

Spectre AMS Designerシミュレータでは自動挿入を有効化する方法が2つあります。

1つ目の方法では、コネクトルールだけを使用し、 xrun コマンドでシミュレーションを実行します。この時に、 -amsconnrule コマンドで定義を行います。

­­xrun -64 -clean -ams_edb -gui -debug -input probe.tcl tb.vams inv.v E2Lconv.vams L2Econv.vams amsSignalCR.vams -amsconnrules amsSignalCR -setd "cell-inv- logic1"

Spectre AMS Designerシミュレータでは、ユーザ定義されたコネクトモジュールを持つVerilog-AMSの動作記述ファイルは、 xrun コマンドを通してコンパイルされます。

2つ目の方法はAMS制御ファイルを使う事です。以下の例では、ファイル amscf.scs に amsd ブロックとIEカードが定義されています。

  

図 5: amscf.scs ファイルのソースコード 

これはコネクトモジュールの挿入を行う、Cadence 独自の方法です。IEカードではパラメタ設定が行えます。これは柔軟且つ強力な機能で、global設定の他、net, instance, port等、7種類のスコープ定義が可能です。

AMSシミュレータは、エラボレーション中にコネクトモジュールを挿入します。コネクトモジュールは階層毎のノードのディシプリン・レゾリューションと端子の入出力に応じて挿入されます。

SimVision MS Debugを使用し、テストベンチを表示すると、これらコネクトモジュールが必要な変換ポイントに自動挿入されている事を確認出来ます。コネクトモジュールは赤いひし形で表示され、それらの名前もアノーテート表示されます。

  

図 6: SimVision MS Debugが表示する、テストベンチ中に自動挿入された2つのコネクトモジュール。エレクトリカルのサイン波電源がデジタルのインバータに印加され、そのデジタル・インバータの出力がエレクトリカルの抵抗に印加される。

このテストベンチのネットリスト上では、これらのコネクトモジュールは見えません。SimVision MS Debugではこの見えない自動挿入されたコネクトモジュールが可視化出来ます。上記の図中の赤いひし形をご覧下さい。

下記の図はこのシミュレーション結果波形です:

  

図 7: SimVision MS Debugによるプロット。エレクトリカルのサイン波 V(clk) (赤線)、デジタルのインバータ信号(緑線)、及びエレクトリカルのレジスタ端子信号 V(clk_)

SimVision MS Debugによるインタラクティブデバッグ

L2Econv のインスタンスをSource Browser上に表示させ、ステップ実行による調査や、行ごとのブレークポイントを指定する事も出来ます。ブレークポイントを使うと、実行中に処理がその行に到達した時にデバッガが実行を停止させ、その時点の入出力や内部レジスタ、変数値を調査出来ます。バッチ実行でシミュレーションを流した場合には、このインタラクティブデバッグ機能は使用出来ず、モデル内部の処理を一行一行詳細に追っていく事は出来ません。このインタラクティブデバッグ機能はコード処理を可視化し、通常は見る事が出来ない、内部のアナログ及びデジタル値の変化を観測する事が可能になります。

  

図8: SimVision MS Debug 上の L2Econv コネクトモジュール表示

上記の図では、行番号21に設定されたブレークポイントでシミュレーションが停止している事が分かります。

結論

  • 一般的に、ミックスシグナルの技術者はディシプリンやコネクトモジュール、コネクトルールのコンセプトに慣れていた方が良いでしょう。
  • ここまでSpectre AMS Designerでのコネクトモジュール及びコネクトルールの作成について説明してきました。
  • Spectre AMS Designerではコネクトモジュールは簡単に作成出来ます。Cadenceでは強力なUniversal Connect Module (UCM)もデフォルトで用意しています。
  • 最も使いやすいコネクトモジュールの自動挿入はIEカードフローを使う事です。
  • SimVision MS Debugはコネクトモジュールとコネクトルールのインタラクティブデバッグに非常に有用です。

私の次のブログでは最新で先進の機能を持つ、Universal Connect Module(UCM)の核心について紹介する予定です。

SimVision MS Debugであなた自身のコネクトモジュールとコネクトルールを作成し、最適化に生かしてくれる事を願いします。更に詳細な情報が欲しい場合は、Cadenceのカスタマーサポートにお問い合わせ下さい。

~ Andre Baguenier
Translator: Ryo Sato

関連リソース

Blogs

Start Your Engines: Best Practices for Converting a Logic Signal to Electrical Value with Mixed-Signal Modelling [英語版/日本語版]

Start Your Engines: Best Practices for Converting an Electrical Signal to a Logic Value with Mixed-Signal Modeling [英語版/日本語版]

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 [英語版/日本語版]

Product Manual Spectre AMS Designer and Xcelium Mixed-Signal User Guide
Troubleshooting Information Spectre AMS Designer
ケイデンス・オンライン・サポート AMS Designer 日本語資料

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

Start Your Enginesについて

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

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

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