アナログ、ミックスシグナル設計の黒魔術に光をあてる 第2部: ミックスシグナル検証 (続き)

前回の記事では、抽象度の高いレベルにおける検証について考察しました。アナログ設計者にとって、検証は重要なツールであり、課題は、手法の適応と有効利用するためのそれらの支援にあります。今回は、検証に必要な技術の中から、機能記述モデリング、具体的には検証のためのアナログ/ミックスシグナルの機能記述モデリングについて考えてみましょう。

デジタルとアナログ/ミックスシグナル・デザインでは、根本的な違いが存在します。デジタル設計では、デザインの振る舞いを正確に表現する機能記述モデルからゲートレベルの回路を合成することが標準的な手法です。これにより、機能記述モデルが、回路動作のゴールデン・データベースであり、高度に自動化された設計フローは、トランジスタ・レベルのネットリストやレイアウトの動作が元となる機能記述モデルと等価であることを確実にします。例えば、フォーマル検証によって、合成後のネットリストが元のモデルと等価であるかが検証されます。ゴールデン・データベースの機能記述モデルによるシミュレーションは、実行速度が速く、デジタル設計者は、メトリクス・ドリブン検証などの、より高機能な検証手法を用いることを可能とします。検証に利用可能な機能記述モデルをベースとしたデジタル設計の手法と比較して、アナログ設計は、トランジスタ・レベルのネットリストを生成するための回路図を設計者により作成することから開始され、続いて、作成した回路図のデザインが設計仕様を満たすまでシミュレーションを繰り返し、パラメータを調整することが行われます。アナログ設計者にとっての検証は、ダイレクト・テストを用いたシミュレーションとして考えられています。ダイレクト・テストの実行では、仕様に準拠していることを検証するためにデザインがシミュレーションされます。アナログ設計者は、デザインの機能記述モデルの作成や修正を特に必要と考えない状況が多くみられます。この結果、デジタル設計においてデザインの検証に機能記述が用いられる一方で、アナログ設計では、同様の検証手法を適用することが難しい状況が従来から続いています。

今回の議題の機能記述モデリングについて考える前に、機能記述モデルを適用することで解決したい問題点について再確認したいと思います。慣例的に、アナログ設計では、機能記述モデルは、シミュレーション速度の向上のために用いられます。このことから、アナログ設計において機能記述を用いる一般的な目的は、シミュレーションの精度とパフォーマンスのバランスを取ることにあるといえます。精度を求めるあまり、機能記述に非線形を注力したモデルを作成すると、これはシミュレーション時間を劇的に遅くする要因となります。例えば、オペアンプの出力電圧範囲を制限することを機能記述で表現しようとすると、コンピュータの計算負荷のかかる関数を用いて伝達関数を表現することが必要になります。また、この出力飽和をモデリングすることは、結果として、収束の問題をもたらすことも理解しておくことが必要です。対して、デザイン全体を検証するためのシステム・レベルのデザインの動作をモデリングする場合は、非常に詳細なモデルは必要ではないかもしれません。システム・レベル検証では、回路パフォーマンスの詳細をモデリングする代わりに、ファンクション動作の記述が注力される点となります。
これは、検証のためのモデル作成時には、設計過程で回路パフォーマンスの検証を行う適切な箇所がシステム・レベルではなく、ブロック・レベルであるという仮定を行うためです。これに対して、システム・レベル検証では、ブロックが正しく動作しているか、システムやソフトウェアが正しく動作しているかを、検証することが目的となります。検証するために、真の機能記述モデルは、ブロックの端子レベルの動作を表すモデルが要求されます。例としては、入力端子の電圧や電流の入力信号や、入力端子から出力端子への伝達関数を表すモデルなどが挙げられます。機能記述モデリングに話を戻すと、アナログ・デザインのシミュレーションをするのか、システム・レベルの検証を実施したいのかという、シミュレーションの目的により、異なる機能記述モデリングの取り組み方があると言えます。

ミックスシグナル検証のツールが開発[1]されてから、設計や検証で異なるモデルが用いられています。この寄稿では、モデリングの3つのレベル(1次、2次、3次のオーダー・モデル)を例として紹介します。ここで、1次オーダー・モデルは、ブロックのファンクションのモデルです。2次オーダー・モデルは、ブロックの構造記述です。3次オーダー・モデルは、アナログ機能記述のプリミティブが組み込まれている構造記述となります。各モデルの違いを表1に表しています。

表1:機能記述モデルの比較
モデル・タイプ 1次オーダー・
モデル
2次オーダー・
モデル
3次オーダー・
モデル
記述 機能
モデル
構造
モデル
階層構造
モデル
ブロック ----- SAH,
1.5b pipeline stage,
2 bit flash ADC,
digital correction block
Op Amp
Comparator
Switch
Capacitor
D flip-flop
パラメータ Latency
Input Range
INL
DNL
Noise
ADC Offset
SHA: offset, gain, noise, range
Pipeline Stage ADC: offset, gain, noise, range
Pipeline Stage DAC: offset, gain, noise, range
Flash ADC: offset, gain, noise, range
Op Amp: offset, gain, noise, range
Comparator: delay, rise/fall time
Switch: on resistance, off resistance, delay
D flip-flop: delay, rise/fall tims

検証を目的としたモデル作成では、機能モデルを用いることが有効です。ここでは、システム・レベルの検証を焦点にしているので、構造モデリングによる回路の詳細な記述は、シミュレーション速度を遅くするだけの効果しか得られません。機能モデルと構造モデルのシミュレーション結果を比較すると、設計でのモデリングの効果について理解できると思います。特に、シミュレーションの実行時間の効果が観測されます。機能モデルを用いることは、多くのシミュレーションにおいて、パフォーマンスの改善が見込めます。もし設計仕様に対するブロックの動作を検証する場合には、周波数に対するダイナミックレンジの測定など、精度が重要となります。

表2:1次と2次オーダー・モデルの比較
  Verilog-AMS
機能モデル
Verilog-AMS
構造モデル
INL 0.5 bits 0.3 bits
SINAD @
Fin=1.37MHz
60.2dB 60.5dB
SINAD @
Fin=12.3MHz
60.0dB 60.4dB
Simulation Time 3s 1042s

次に、システム・レベルの検証について考察します。この例では、ADCがセンサーの出力の観測に用いられています。センサーは、制御の系に含まれています。このため、温度や圧力など種々の値を測定することにも対応が可能です。また、他のセンサーやADCからの複数の入力も持っているデザインを例として考えています。全てのこれらの信号は、マイクロコントローラーの入力で、DACやアクチュエータを通してシステムにフィードバックされます。このシステムでは、制御ループが適切に動作していることを検証するには、実行時間の長いシミュレーションが必要となります。アナログ・ブロックに構造モデルを用いてシステムのシミュレーション検証を実施することは、現実的ではありません。そこで、機能記述によりブロックのファンクション動作をモデリングしたモデルを用いることで、ミックスシグナルのシステムのシミュレーション検証が可能となります。

次に、ファンクション動作モデルと構造モデルの違いを考察したいと思います。この例では、10ビットのSAR ADC(逐次比較型ADC)をモチーフにしています。はじめに、アナログ設計者がモデリングするときの最初の取り掛かりとして考えるであろう構造モデルについて考察します。回路パフォーマンスを評価できるように、デザインの各ブロックがモデル化されパラメータ可変のモデルとして与えられます。さらに、設計者が接続や動作をデバッグし易いように、全ての中間ノードがアクセスできる構造になっています。

図1:ADCの構造モデル図1:ADCの構造モデル画像をクリックすると拡大表示されます

回路のシミュレーション結果を確認すると、入力と出力の信号だけでなく、Analog In や OutputのReconstructed Analog 信号を観測することができます。

図2:10ビットSAR ADC構造モデルの波形図2:10ビットSAR ADC構造モデルの波形画像をクリックすると拡大表示されます

この例では、サンプル・ホールド回路の出力信号SH outなどの他の信号なども観測することができます。さらに、D/A変換器の変換の各レベルの出力ステップ DAC Successive Approximationが完全であるかを観測することができます。付加的な利点としては、モデルができているならば、この構造モデルのシミュレーションのテスト・デザインを、トランジスタ・レベルのブロックをシミュレーションするテストベンチとして用いることができることです。これにより、トランジスタ・レベルのADC全体を動作させたパフォーマンスを見ることができます。このようなことから、構造モデルは、アナログ設計者では有効な手法と言えます。

今度は、システム検証のためのADCモデルについて考えてみたいと思います。このとき、ブロックそれぞれの動作の詳細は重要ではありません。端子特性や伝達関数が注目するポイントになります。この例では、変換の開始からサンプルされた入力まで、2クロック・サイクルの遅延をもっています。そして、変換が終了しデータが出力されるまでに、12クロック・サイクルの遅延があります。これは、サンプリングの2クロック・サイクルの遅延と、A/D変換の10クロック・サイクルの遅延です。

図3:10ビットSAR ADCのVerilog-Aコード図3:10ビットSAR ADCのVerilog-Aコード

この例の回路シミュレーションの結果は次の様になります。観測される信号としては、入力と出力だけでなく、Analog InやOutputのReconstructed Analog信号も観測することができます。

図4:10ビットSAR ADC機能記述モデルの波形図4:10ビットSAR ADC機能記述モデルの波形画像をクリックすると拡大表示されます

モデルから得られたシミュレーション結果を並べて比較すると、クロックと出力の関係が、ADCの出力が12クロック・サイクルで行われるように、保持されていることがわかります。これは、検証のためのファンクション・モデルの一例です。アナログ入力からデジタル出力への伝達関数やレイテンシー、変換開始からデータが待機状態になるまでの遅延は、両方のモデルで同等となっています。機能記述モデルを用いることのトレード・オフの1つとしては、機能記述モデルは、デザインの下位階層の動作についての情報を持たないということには注意が必要です。

図5:構造モデルと機能記述モデルの結果比較図5:構造モデルと機能記述モデルの結果比較

システムのファンクション全体を検証することを目的とした場合、構造モデルを用いることは、シミュレーション速度を遅くするようなオーバーヘッドをもたらすことになります。

デジタル・セントリックなメトリクス・ドリブン検証は、動作シナリオを高いパーセンテージでカバーするための多くのシミュレーション実行を必要とします。したがって、デザインのアナログ部は、より高速にシミュレーションが実行されるモデルが必要となります。この目的として、VHDLやVerilog、SystemVerilogやe言語などの機能記述言語や検証言語には、実数値モデリング(Real Number Modeling)の機能が組み込まれています。実数値モデルは、連続値をイベント・ドリブンの離散時間モデルとして動作を表現します。デジタル信号では、1,0,X,Zの値で表現されるのに対して、実数値モデルでは、実数の連続値を取ることができます。例えば、-1から+1の間の任意の値(-1≤x≤+1)を取ることができます。次は、電圧制御発振器(VCO)を実数値モデルで記述したときの例です。

図6:VCOのReal Number Model (実数モデル)図6:VCOのReal Number Model (実数モデル)

vcoモデルの出力は、デザイン内の他のブロックをドライブするデジタルのクロック信号(clk)です。発振器の周波数を決める制御信号が、実数値モデル信号(vin)となります。発振周波数は、計算式 output frequency=center_freq+vco_gain*"vin" による、入力信号のレベルから計算されます。ここで、発振器のフリーラン周波数は、入力の中間の値 center_freq[Hz]で、発振器の利得はvco_gain[Hz/V]となります。

図7:Real Number Model (実数モデル) vs. アナログVCO図7:Real Number Model (実数モデル) vs. アナログVCO

この例のシミュレーション結果は、Verilog-Aモデルを用いたものと同等な結果が得られています。VCOの実数値モデルは、目的を満足する精度をとることができています。入力制御信号の電圧を変化させると、発振周波数はステップ状に変化します。Verilog Aモデルを用いた場合(この時は、アナログシミュレータの実行となります)と比較すると、実数値モデルの場合は、デジタル・シミュレータで実行することが可能で、デジタル・セントリックなミックスシグナル検証を実施する場合には、多くの優位点を持っています。設計者にとって、実数値モデリングは新しい試みであることから、ケイデンスは、モデリングを支援するための2つの新しいツールを提供しています。Schematic Model Generator(SMG [2])は、Virtuoso Schematic Editorを用いてブロック・ダイアグラムを記述することでモデル作成を支援するツールです。Analog and Mixed-Signal Design and Model Validation(amsDmv [3])は、シミュレーション検証エンジニアに作成したモデルを提供する前に、モデルが既存のデザインとファンクションが一致するかを確認するための支援ツールです。

今回の記事では、ミックスシグナルSoCに対してメトリクス・ドリブン検証を可能にするような効果的なアナログ・ファンクションのモデリング手法について紹介しました。次回の記事では、アサーションについて考察する予定です。アサーションは、検証フローの中で素子をチェックする機能です。アサーションは、デザインの動作が適切かどうかを検証するための有効な機能です。

参考文献

  1. “Modeling and Test Bench Generation: A Case Study with Pipelined A/D Converters”, Jonathan David, International Behavioral Modeling and Simulation Workshop 2002, pg.
  2. Schematic Model Generator Rapid Adoption Kit is on available on the support.cadence.com website
  3. AMS Design and Model Validation Rapid Adoption Kit is on available on the support.cadence.com website

システムソリューション部
Art Schaldenbrand

翻訳・監修: フィールドエンジニアリング&サービス本部
菅谷 英彦

Page Top