• 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
real coercion
real number modeling
AMS
mixed signal design
debug
Elaborator
AMS Designer
detailed discipline resolution
Mixed-Signal
analog/mixed-signal
AMS simulation
japanese blog
wreal
AMS Verification
mixed-signal verification

Start Your Engines: エラボレータによるミックスシグナル・パーティションのデバッグ

16 Aug 2023 • 1 minute read

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

ミックスシグナルのパーティション問題は、ミックスシグナル機能検証フローにおいてよく起きる問題です。ミックスシグナルのエラボレータが持つオプション機能がユーザを悩ませる事もあります。例えば electrical のディシプリンや real のコアージョンが、デザインに想定されている構成よりもアグレッシブ過ぎる事があります。

ケイデンスのミックスシグナル・ソリューションは、様々な抽象レベルとデザイン階層レベルで様々なコンフィギュレーションの組み合わせを提供します。この柔軟性により、エラボレータは "最大限に保守的な" アプローチで、ユーザが最も正確なシミュレーション結果が得られる様にデザインのパーティショニングを行います。

この過剰に保守的なパーティショニング動作から、パフォーマンスやエラボレーションの問題が発生する事があります。その場合はそこから一歩後ろに下がって、より適切な落しどころを探る必要があります。ミックスシグナルのエラボレータは充分に柔軟であり、ユーザが適切に制御する事でパフォーマンスのボトルネックを解消し、デザインのコンフィギュレーション自身を変えずにエラボレーションのエラーを解消可能です。

ミックスシグナルユーザによく見られる光景は、このトリッキーな状況をデバッグし解決する知識不足です。エラボレータのパーティション関連のデバッグとそれを制御する機能を知る事で、その苦境から抜け出す事が出来ます。

以下に2つのユースケースを説明します:

1)  -disres detailed オプションの使用(精度を高く保ちながらデザインの大部分をアナログドメインとして解決する)

この xrun オプションはデジタルブロックの境界に直接ミックスシグナルのパーティションを指定します。これによりインターフェースエレメント(IE)が適切に自動挿入されます。このオプションにより、非常にアグレッシブな electrical ディシプリン伝播アルゴリズムが有効になります。この electrical ディシプリンの解決はアナログのリーフレベルから始まり、ボトムアップで上位レベルに伝播していきます。その後、トップダウンで階層走査していきデジタルとして定義された境界で停止します。

このオプションを使うマイナス効果は、デザイン階層の意図しない領域(例えば RTL や Verilog のゲートレベルネットリスト等)にまで electrical ディシプリンが伝播し、アナログ精度によるシミュレーション速度の低下をもたらす事です。また複雑なSV構文等へのIEの挿入で、エラボレーションエラーを引き起こす事もあります。

+dr_info オプションを追加する事で、 ポートやネットがどちらのディシプリンに属しているかのデバッグに必要な情報を xrun.log ファイルに出力します。 xrun.log ファイルには DR_INFO キーワードでデバッグ情報が表示されます。

DR_INFO の情報を理解するには、どの様にポートやネットが解決されたかを示すキーワードを知っておく事が重要です。これにより全体を見てのパーティションデバッグを容易にし、どこで暗黙的な設定上書きが有効になったかを確認可能です。

以下が xrun.log ファイル中の DR_INFO の例です:

Discipline resolution Pass...

DR_INFO: Performing Bottom-up Traversal..

DR_INFO: top.I3.a has setting discipline logic

DR_INFO: top.I3.nz has resolved discipline logic

DR_INFO: top.I302.a has declared discipline logic

DR_INFO: top.net34 has resolved discipline electrical

DR_INFO: top.I56.dr_out has setting discipline electrical

DR_INFO: top.I4.amp_in has declared discipline electrical

  • setting キーワードは、エラボレーションオプションによりディシプリンの解決処理時にネットやポートにその指定がなされた事を示します。このディシプリンを上書きする xrun オプションは -setdiscipline です。
  • resolved キーワードは通常のディシプリンの解決処理が行われた事を示します。この場合、ポート/ネットは全体のディシプリン解決処理の最後に解決されます。
  • declared キーワードはビヘイビアモデルのポートで明示的にドメインが指定されている事、もしくは明示的にアサインされている事を示します。この明示的なポート/ネットの指定は、他のエラボレータオプションでは上書きされません。

-setdiscipline オプションを適切にRTLスコープ境界へ指定する事で、ユーザが望まない場所への electrical ディシプリン指定を避ける事が可能です。これにより electrical ディシプリンの RTL ブロックへの伝播を防ぐ事になり、つまり的確なミックスシグナル境界での分割が行えます。

2) -rnm_tech オプションは、デザイン構成にリアルナンバーモデル(RNM)の抽象度を混載する場合の、real コアージョンを制御します。このオプションはエラボレータのコアージョン機能を有効化させ、純粋なデジタル RNM 構成のデザインを作る事が可能です。RNM の抽象度に SPICE モデルを入れる場合は、このオプションが暗黙的に有効化され、ベストの精度を得る為の最大限保守的なパーティション設定を行います。

デフォルトの real コアージョンアルゴリズムを使う場合のマイナス効果は、real ネットタイプを RTL 階層の奥深くまで伝播させ、またエラボレーションエラーを引き起こす可能性もある事です。例えば、コアージョンの境界が複雑な SV 構文上に設定されるとIEの自動挿入が対応しない場合もあり、不要なネット/ポートのコアージョンを行う事でエラボレーション速度低下を招く場合もあります。

-rnm_info オプションは、real ネットタイプがどのポート/ネットに設定されたかのデバッグに必要な情報を xrun.log ファイルに出力します。xrun.log ファイルには RNM_INFO キーワードでデバッグ情報が表示されます。

RNM_INFO の情報を理解するには、どの様にポートやネットが解決されたかを示すキーワードを知っておく事が重要です。これにより全体を見てのパーティションデバッグを容易にし、どこで設定上書きが有効になったかを確認可能です。

以下が xrun.log に表示される RNM_INFO の例です:

RNM_INFO: tb.top_ana.iout is declared wrealsum with resolution 'CDS_res_wrealsum'

RNM_INFO: tb.test.op is declared wrealmax with resolution 'CDS_res_wrealmax'

RNM_INFO: tb.VDDS is declared nettype 'wreal1driver' with resolution 'CDS_res_wreal1driver'

RNM_INFO: tb.VSSS is declared nettype 'wreal1driver' with resolution 'CDS_res_wreal1driver'

RNM_INFO: tb.POWER_OK is coerced to nettype 'wrealmax' with resolution 'CDS_res_wrealmax'

RNM_INFO: tb.startReset is coerced to nettype 'wrealsum' with resolution 'CDS_res_wrealsum'

coerced キーワードは通常のコアージョン処理が行われた事を示します。このポート/ネットはエラボレータにより暗黙的に real ネットタイプにコアージョンされます。

declared キーワードは明示的に real ネットタイプが指定されている事を示します。この明示的なポート/ネットの指定は、他のエラボレータオプションで上書きされません。

ユーザは以下の xrun エラボレーションオプションで、real コアージョンを制御可能です:

  • アグレッシブではないコアージョンには、-rnm_coerce default 及び -rnm_tech オプションを使用します。これにより型を持たない wire のネット/ポートのコアージョン処理をボトムアップに限定します。
  • アグレッシブなコアージョンには -rnm_tech(-rnm_coerce detailed[訳注:この場合 -rnm_coerce は省略可能です]) 及び オプションを使用します。ボトムアップ処理を行った後、SV 構文や electrical 境界に辿り着くまでトップダウンでの階層走査を行います。
  • コアージョンはデザインスコープごとにON/OFF可能です。

例えば以下の例では、インスタンス tb.dut.cint でコアージョンを有効化し、更にその有効化された内部の tb.dut.cinst.dlint.d で無効化しています:

-rnm_coerce "on inst-tb.dut.cinst-"  -rnm_coerce "off net-tb.dut.cinst.dlint.d-" 

全てのエラボレータのデバッグオプションの詳細は Spectre AMS Designer and Xcelium Simulator Mixed-Signal User Guide を参照して下さい。

関連リソース

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

Spectre AMS Designer Product Page

One-Stop Knowledge Resource for Mixed-Signal Verification

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

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

Start Your Enginesについて

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

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

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

- Rick Sanborn
- Translator: Ryo Sato