US動画ご質問/ご提案サイトマップリンクIBIS-AMIモデルとは?HOMEIBIS-AMIモデルとは?IBIS-AMIモデルとは?IBISモデルとIBIS-AMIモデルは何が違うのでしょうか?IBIS-AMIモデルはIBISモデルと全く異なる概念で動作します。10Gbps以上のSerDes(高速シリアル伝送)では、高周波他帯の伝送路損失をIC側で補うしくみとして、イコライザを採用しているケースがあります。このシミュレーションを実行する場合、従来のIBISモデルでは複雑なイコライザを表現する事は不可能ですが、IBIS-AMIモデルでは複雑なイコライザのモデル化や、SerDesに特化した高速シミュレーションを実行する事が可能です。コンパイルされた機密性の高いモデル形式を提供する事も可能です。IBIS-AMIモデルを用いた解析を実行する場合、必ずしもIBIS-AMIモデルやシミュレータ内部の詳細について熟知する必要はありませんが、内部動作を知る事により、適切な解析や考察が可能になります。ここでは、従来と全く異なるモデルであるIBIS-AMIモデルについて説明します。SerDesシステムとIBIS-AMIモデル最初にSerDesシステムに着目しましょう。SerDesシステムは、アナログ部とアルゴリズミック部の2つの部に分けて表現されます。アナログ部は、伝送線路とビアで構成される基板の配線、Sパラメータでモデル化されたコネクタ等、様々なパッシブ要素で構成されるインターコネクト、パッケージと、チャネルに直接接続する為のフロントエンドとして機能するアナログバッファで構成されます。アナログバッファはIBISモデルでモデル化されます。アルゴリズミック部としては、フロントエンド前のトランスミッタ部分とその後のレシーバ部分にはイコライザがあります。Equalizer)、CDRをIBIS-AMIモデルで表現する事が可能となりました。IBIS-AMIモデルでは畳み込み積分、統計解析の手法でアイパターンを計算している為、SerDesのチャネルを効率よく高速に解析する事が可能です。SPICEモデルを使用した場合と比較して、1,000倍以上の速さでアイパターンを計算する事が可能です。Ratio)やジッタ分布を評価する事が可能です。IBIS-AMIは従来のIBISシミュレーションとは全く異なる概念で動作します。AMIを使用するIBISモデルでは、.ami拡張子のAMIのパラメーターファイルと、.dll(Windowsの動的ライブラリ)または.so(Linuxの動的ライブラリ)を参照します。シミュレーションを実行すると、EDAツールとICベンダーから提供されたこれらの動的ライブラリが協調して動作します。仕様書で多く規定がされており、昨今開発中のSerDes仕様に合わせて、拡張されています。IBISファイルによる紐づけ、プログラムに渡すフラグ・パラメータの定義IBIS-AMIの解析には、少なくとも下記3つのファイルが必要になります。これらの3つのファイルを同じフォルダ内において使用します。/.soファイルと対話するここからは具体的なモデル記述例をご紹介します。下記はAMIモデルにおけるIBISファイル例です。パッケージモデルはRLC形式で指定することはできますが、広帯域で精度のよいパッケージモデルが提供される場合、回路でもしくはInterconnectモデルとしてS-parameterを接続する場合もあります。Model]があります。アーキテクチャ情報、AMIの動作プログラム本体である実行ファイルとAMIパラメータ定義ファイルが記載されており、解析実行時はこの情報を元に、各ファイルが協調し動作します。下記はAMIモデルの記載例です。Reserved_Parametersは予約パラメータです。基本的には触りませんが、これらのモデルの記載を確認することにより、提供されたAMIモデルがどういう想定で動作するのか、そのシナリオを読み解くことは可能です。シナリオについてはこの後、用意されたシナリオとフラグと動作ケースで詳しくご説明します。Model_Specificは、ICベンダーが公開している提供するAMIモデルに応じたパラメータです。EDAツールによってはこれらの設定がシミュレーションのコンポーネントの設定値として読み込まれるので、テキスト情報を直接編集する必要がないケースもあります。IBIS-AMI利用者は、AMIパラメータ定義ファイル内で公開されているパラメータモデルと変数タイプ、範囲の情報として確認することができます。AMIモデルはOSに合わせて.dllファイルと.soファイルはどちらかの形式で提供されていますが、32ビットまたは64ビットのOSに依存することに注意してください。Variant)どちらで表現されます。FFE)、CTLEで構成される場合、出力の関係が線形時不変になりますので、下記のようにインパルス応答の重ね合わせで表現することができます。インパルス応答と畳み込みLTIではインパルス応答による計算を行うことで、ランダムビット列のバスタブカーブやアイパターンを高速に計算できるという点でメリットがあります。Equalizer)の場合は、非線形で時変のシステムとなりますので、インパルス応答の重ね合わせで表現できません。以上より、AMIでは想定されるシステムに応じて、統計モード、タイムドメインモードという2つのシナリオが想定されています。GetWave_Existsについて紐解いていきます。上記AMI_Txモデルで想定されるシナリオを確認してみましょう。Init_Returns_Impulseは、AMI_Init()関数の返り値です。この関数は、LTIモデル、NLTVモデルに関わらず必ず実装されている関数です。Init_Returns_ImpulseフラグがTrueである場合、インパルス応答によるLTIモデルであることを示し、Falseの場合は、LTIとしてモデル化できないことを示しています。LTI(線形、時不変)の仮定に基づいてBERを合成する場合、この関数で計算が行われ、GetWave関数の実装は必要ありません。()関数の返り値です。この関数の実装はオプションです。GetWave関数では、NLTVモデルにおいて、入力ビットシーケンスを計算して対応する応答に変換するメカニズムを実装します。GetWave_ExistsフラグがTrueの場合はNLTVモデルであることを示しており、Falseの場合はLTIモデルであることを示しています。この2つの関数のフラグの値をまとめると下記のようになります。上記のTxモデルにおいては、LTIで表現されるシステムであることが分かります。AMIモデルは、異なるICベンダーから提供されるAMIモデルを協調させて動作します。続いて、Tx、Rxモデル共にInit_Returns_ImpulseフラグはTrue、つまりTx、Rx共にLTIとしてモデル化できる場合のみ期待通り動作します。Rxモデルの値によらず動作は保証されます。章では、システムシミュレーション(チャネル解析)のために、統計的シミュレーション(統計モード)、時間領域シミュレーション(タイムドメインモード)の2つのシナリオのシミュレーションのリファレンスフローが定義されています。EDAツールには、このリファレンスフローに従って生成される波形と一致した波形を出力する動作が期待されます。システムシミュレーションでは、通常、トランスミッタ(Tx)モデルとレシーバ(Rx)モデルの間にパッシブチャネルを配置します。以下では、2つのシナリオのそれぞれにおけるEDAツールのリファレンスフローを説明します。これによって、EDAツールでどのような結果を出力するのかを理解することができます。統計的シミュレーションのリファレンスフローEDAツールは、統計的シミュレーションのシミュレーションを次のステップで進めます。アナログチャネルの複合インパルス応答を計算します。フィルタリング効果(例:イコライゼーション)は含まれません。実行可能モデルファイルの動作で表現されます。得たインパルス応答を渡してTxの実行可能モデルファイルのAMI_Init関数を実行し、インパルス応答を得ます。得たインパルス応答を渡してRxの実行可能モデルファイルのAMI_Init関数を実行し、インパルス応答を得ます。得たインパルス応答を用いて、残りのシミュレーション/解析(例えば、統計的処理等)を実施して結果を得ます。「アルゴリズムモデル」の動作が完全に表現されます。TxとRxのAMI_Close関数を実行して最終的な処理を行います。時間領域シミュレーションのリファレンスフローEDAツールは、時間領域シミュレーションのシミュレーションを次のステップで進めます。アナログチャネルの複合インパルス応答を計算します。フィルタリング効果(例:イコライゼーション)は含まれません。実行可能モデルファイルの動作で表現されます。インパルス応答を渡してTxの実行可能モデルファイルのAMI_Init関数を実行し、インパルス応答を得ます。得たインパルス応答を渡してRxの実行可能モデルファイルのAMI_Init関数を実行し、インパルス応答を得ます。得られるインパルス応答は何も変化しない場合があります。Txとアナログチャネルの合成インパルス応答(モデルによっては入力のインパルス応答から何も変化しない場合があります)備考:例えば、RxのAMI_Init関数に最適化アルゴリズムが含まれている場合、最適化が正しく機能するためには、RxのAMI_Init関数が返すインパルス応答にTxのイコライゼーションの効果が含まれていなければなりません。モデルにTxのAMI_Init関数と同等またはそれ以上のイコライゼーションを実行するAMI_GetWave関数が含まれている場合、Txの実行可能モデルファイル内でイコライゼーション効果が「ダブルカウント」される可能性があります。ツールによって異なる動作をする場合があります。出力から入力の)逆畳み込みを使用する。注意:RxのAMI_Init関数に渡されるインパルス応答が常にTxフィルタの効果を含むことが保証されていないため、RxのAMI_Init関数はすべての状況下で正確な最適化ができない場合があります。このため、RxのAMI_Init関数のパラメータが常に有効な値にデフォルト設定されるようにするか、ユーザー定義の係数を受け入れてシミュレーションを確実に成功させるために自動最適化ルーチンをオフにできるようなメカニズムを備えることが、Rxの実行可能モデルの作成者に求められています。Txに入力するためのデジタル波形を生成します。TxとRxのGetWave_Existsの値によって、それぞれ以下の動作をします。